From e8e46fa07e38d0af6b613441f630bc790fe851d0 Mon Sep 17 00:00:00 2001 From: Jesse James Isler Date: Mon, 18 Mar 2024 08:41:23 +0100 Subject: [PATCH] Initial commit --- !!!INFO!!! Daggerheart Open Beta Playtest.md | 129 + .obsidian/app.json | 3 + .obsidian/appearance.json | 5 + .obsidian/community-plugins.json | 4 + .obsidian/core-plugins-migration.json | 30 + .obsidian/core-plugins.json | 20 + .obsidian/graph.json | 22 + .../plugins/language-translator/data.json | 17 + .obsidian/plugins/language-translator/main.js | 490 + .../plugins/language-translator/manifest.json | 10 + .../plugins/language-translator/styles.css | 6 + .../plugins/obsidian-local-rest-api/data.json | 11 + .../plugins/obsidian-local-rest-api/main.js | 47727 ++++++++++++++++ .../obsidian-local-rest-api/manifest.json | 10 + .../obsidian-local-rest-api/styles.css | 35 + .obsidian/themes/Atom/manifest.json | 6 + .obsidian/themes/Atom/theme.css | 339 + .obsidian/themes/Blue Topaz/manifest.json | 7 + .obsidian/themes/Blue Topaz/theme.css | 28558 +++++++++ .obsidian/themes/Minimal/manifest.json | 8 + .obsidian/themes/Minimal/theme.css | 2150 + .obsidian/themes/Things/manifest.json | 7 + .obsidian/themes/Things/theme.css | 1611 + .obsidian/workspace.json | 167 + 1. Character Erstellung.md | 0 DH v1-2 Character Class - Druid 3 of 20.png | Bin 0 -> 337338 bytes Daggerheart Stats (Deutsch).png | Bin 0 -> 176888 bytes ...re - Digital Reader - Daggerheart Nexus.md | 103 + Dodging.png | Bin 0 -> 86318 bytes Evasion.png | Bin 0 -> 118965 bytes Health.png | Bin 0 -> 169464 bytes Pasted image 20240316101811.png | Bin 0 -> 83269 bytes Pasted image 20240316101816.png | Bin 0 -> 78941 bytes Pasted image 20240316102648.png | Bin 0 -> 119025 bytes Pasted image 20240316141356.png | Bin 0 -> 1544034 bytes Pasted image 20240316142325.png | Bin 0 -> 160209 bytes Pasted image 20240317143057.png | Bin 0 -> 61170 bytes Pasted image 20240317150924.png | Bin 0 -> 4004 bytes Pasted image 20240317150930.png | Bin 0 -> 57689 bytes Pasted image 20240317162016.png | Bin 0 -> 110231 bytes Pasted image 20240317162230.png | Bin 0 -> 78476 bytes Pasted image 20240317162625.png | Bin 0 -> 45313 bytes Pasted image 20240317164536.png | Bin 0 -> 77693 bytes School.png | Bin 0 -> 89786 bytes Weapons.png | Bin 0 -> 180621 bytes 45 files changed, 81475 insertions(+) create mode 100644 !!!INFO!!! Daggerheart Open Beta Playtest.md create mode 100644 .obsidian/app.json create mode 100644 .obsidian/appearance.json create mode 100644 .obsidian/community-plugins.json create mode 100644 .obsidian/core-plugins-migration.json create mode 100644 .obsidian/core-plugins.json create mode 100644 .obsidian/graph.json create mode 100644 .obsidian/plugins/language-translator/data.json create mode 100644 .obsidian/plugins/language-translator/main.js create mode 100644 .obsidian/plugins/language-translator/manifest.json create mode 100644 .obsidian/plugins/language-translator/styles.css create mode 100644 .obsidian/plugins/obsidian-local-rest-api/data.json create mode 100644 .obsidian/plugins/obsidian-local-rest-api/main.js create mode 100644 .obsidian/plugins/obsidian-local-rest-api/manifest.json create mode 100644 .obsidian/plugins/obsidian-local-rest-api/styles.css create mode 100644 .obsidian/themes/Atom/manifest.json create mode 100644 .obsidian/themes/Atom/theme.css create mode 100644 .obsidian/themes/Blue Topaz/manifest.json create mode 100644 .obsidian/themes/Blue Topaz/theme.css create mode 100644 .obsidian/themes/Minimal/manifest.json create mode 100644 .obsidian/themes/Minimal/theme.css create mode 100644 .obsidian/themes/Things/manifest.json create mode 100644 .obsidian/themes/Things/theme.css create mode 100644 .obsidian/workspace.json create mode 100644 1. Character Erstellung.md create mode 100644 DH v1-2 Character Class - Druid 3 of 20.png create mode 100644 Daggerheart Stats (Deutsch).png create mode 100644 Das Abenteuer/Quick Start Adventure - Digital Reader - Daggerheart Nexus.md create mode 100644 Dodging.png create mode 100644 Evasion.png create mode 100644 Health.png create mode 100644 Pasted image 20240316101811.png create mode 100644 Pasted image 20240316101816.png create mode 100644 Pasted image 20240316102648.png create mode 100644 Pasted image 20240316141356.png create mode 100644 Pasted image 20240316142325.png create mode 100644 Pasted image 20240317143057.png create mode 100644 Pasted image 20240317150924.png create mode 100644 Pasted image 20240317150930.png create mode 100644 Pasted image 20240317162016.png create mode 100644 Pasted image 20240317162230.png create mode 100644 Pasted image 20240317162625.png create mode 100644 Pasted image 20240317164536.png create mode 100644 School.png create mode 100644 Weapons.png diff --git a/!!!INFO!!! Daggerheart Open Beta Playtest.md b/!!!INFO!!! Daggerheart Open Beta Playtest.md new file mode 100644 index 0000000..de72c2e --- /dev/null +++ b/!!!INFO!!! Daggerheart Open Beta Playtest.md @@ -0,0 +1,129 @@ +# Spiel Informationen +Willkommen zum open Beta-Spieltest für die neue PNP Framework - Daggerheart! Bevor wir beginnen, gebe ich euch noch kurz einige Worte des Rates mit! +## Das Spiel befindet sich noch in der aktiven Entwicklung. +Ihr könnt euch das wie bei einem Early Access Game vorstellen, da einige Spells noch ein wenig zu viel Schaden austeilen oder gewisse sachen noch unfair wirken. Genau das Selbe auch mit den Gegnern, welche euch heute entgegenstehen. +## Auch wenn das Spiel noch in der Beta ist; Streams sind erlaubt und sogar erwünscht! +Die Entwickler bitten einfach darum, dass WENN gestreamt wird, dass angemerkt wird, dass sich das Spiel noch in der BETA befindet. Dies ist wichtig, da sich die Spielmechaniken weiterentwickeln werden und die entwickler keine Verwirrung wollen, wenn das endgültige Spiel erscheint. + +# James Tutorialomatik +Hier findet ihr eine kurze Übersicht WIE Daggerheart überhaupt funktioniert! Wenn euch Lesen anödet, und ihr Proficency in Englisch habt; so könnt ihr euch auch eine kleine Zusammenfassung von den Entwicklern hier ansehen: https://youtu.be/nYVrzqTPHRA + +## Was ist Daggerheart? +Daggerheart versucht ein modernes Pen & Paper zu sein, welches die Narration, Kopfkino, Gameplaymechanik und Taktik in einen grossen Topf wirft. Ebenfalls versucht Daggerfall die Spieler in die Story zu integrieren und den Spielern erlaubt, Gegenstände der Welt hinzuzdenken. (Kann von GM zu GM variieren) + +## Wie mache ich nun meine Aktionen? +In der Basis, basieren jegliche Aktionen die ihr macht auf den sogenannten "**DUALITY DICE**". Die **Duality Dice** sind an sich 2d12 welche sich in den Farben nicht ähneln. +![[Pasted image 20240316101811.png]]![[Pasted image 20240316101816.png]] + +Einer der beiden Würfel ist der **HOPE** (Hoffnung) Würfel, der andere der **FEAR** (Angst) Würfel. Sobald vom GM eine Aktion gewünscht wird, werden beide Würfel geworfen. Danach werden beide Würfel zusammengezählt und die Modifier hinzugefügt. Ist der **HOPE** würfel höher, so sagst du dein Resultat mit **HOPE** (Hoffnung) an. Ist der **FEAR** würfel höher, so sagst du dein Resultat mit **FEAR** an. + +Der Erfolg hängt jeh nach dem von dem GM festgelegten schwierigkeitswert ab. (Wie in 5E das DC system) + +| Sehr einfach | Einfach | Mittel | Schwer | Sehr schwer | Fast unmöglich | +| :----------: | :-----: | :----: | :----: | :---------: | :------------: | +| 5 | 10 | 15 | 20 | 25 | 30 | + +Dies sind die möglichen Auskommen der Würfel +> [!Tip] Kritischer Erfolg +> Beide Würfel, **HOPE** und **FEAR** Zeigen die gleiche Zahl +> *(Egal welche, auch 2x1)* +> - Du bekommst das, was du gewünscht hast, und ein wenig Mehr. +> - Füge dir eine **HOPE** und entferne einen Stress (Falls forhanden, wird später erklärt.) + +> [!check] Erfolg mit Hope +> Die Summe beider Würfel PLUS modifier übertreffen die DC. (Der **HOPE** Würfel ist höher als der **FEAR** Würfel) +> - Du bekommst das, was du gewünscht hast. +> - Füge deinem Character einen **HOPE-Point** hinzu + +> [!check] Erfolg mit Angst +> Bei einem Erfolg mit Angst bekommst du, was du willst, aber es ist mit Kosten oder Konsequenzen verbunden. Du könntest angegriffen werden, begrenzte Informationen erhalten, Gefahren anziehen usw. +> - Der GM erhält einen **FEAR-Point**. + +> [!failure] Bei einem Misserfolg mit Hope +> Die Dinge werden nicht nach Plan verlaufen. Du bekommst wahrscheinlich nicht, was du willst und musst die Konsequenzen tragen. +> - Füge deinem Character einen **HOPE-Point** hinzu + +> [!failure] Bei einem Misserfolg mit Angst +> Die Dinge laufen wirklich schlecht. Du bekommst wahrscheinlich nicht, was du willst, und es gibt eine große Konsequenz oder Komplikation deswegen. +> - Der GM erhält einen **FEAR-Point**. + +Ebenfalls kann vor dem Roll noch durch Nutzen von einem **FEAR-Point** eine **Experience** von deinem Charactersheet der Bonus davon genutzt werden. + +Nehmen wir an, ich der Spieler Möchte sich in einem Dungeon umsehen und ein Gefühl für den Raum erhalten. Der GM könnte dich dann fragen: +> Mach mir bitte einen **Action Throw** (Aktions Wurf) auf **Instinct** (Instinkt). + +Der Spieler könnte noch Fragen, ob er seine **Experience** (Erfahrung) als Architekt hinzufügen draft, wenn er einen **HOPE-Point** ausgibt.! + +![[Pasted image 20240316102648.png]] +Der Spieler wirft nun seine 2 Würfel, und diese landen wie folgend: + +| Hope Würfel | Fear Würfel | Instinkt Bonus | Experience | Resultat: | +| ----------- | ----------- | -------------- | ---------- | ------------- | +| 10 | 6 | +2 | +1 | 19 *mit Hope* | +Wie ihr oben Seht, hat der Spieler eine 18 *mit **HOPE*** gewürfelt, seinen Instinkt hinzugefügt und die Experience als Architekt hinzugefügt. + +Als GM könnte ich nun dem Spieler erklären: +> Du siehst, dass der Dungeon ausgehöhlt und dann mit Steinen verstärkt wurde. Würde hier eine grössere Explosion oder Erschütterung passieren, könnte es sein, dass ein Raum oder sogar der ganze Dungeon zusammenbricht! + +Neben den Action Rolls gibt es noch die **Reaction Rolls** (Reaktions Würfe). Reaction Rolls werden oft von Gegnern gefordert und agieren an sich wie **Action Rolls**. Der Unterschied ist, dass dieser Roll beim nicht bestehen dem GM keine Angriffstmöglichkeit gibt. Auch kanndir niemand mit Hope bei dem Wurf helfen,es passiert alles so schnell, dass du das alleine schaffen musst! +## Character +Die Erstellung des Character selbst werden wir in der RUNDE 0 machen. + +Aber ich werde auf das Charactersheet eingehen! +![[Pasted image 20240316141356.png]] +Das ist das Charactersheet auf [Daggerhearts Website](https://app.demiplane.com/nexus/daggerheart) Funktioniert an sich wie DND Beyond, nur anders :) + +## Evasion, Armor und HP + +Diese Punkte vom Charactersheet werden vor allem in Kampfsituationen gebraucht. + +Wird dein Character angegriffen, wird, so ist die Evasion die Nummer, welche vom Gamemaster überbieten werden muss. (In DND Terminologie kann man diese als ArmorClass ansehen) +![[Evasion.png]] + +Geht ein Angriff druch, So rolle den Schaden, welcher bei deiner Waffe steht. Nehmen wir an, dass der Schaden auf einer 13 Gelandet ist. +Dieser Schaden liegt nun zwischen 9 und 14, also eine **Major** wunde. +![[Pasted image 20240317150930.png]] +Dies würde 2 HP Schadenspunkte machen. +![[Pasted image 20240317162016.png]] + +**AAAABER**!! Errinnert ihr euch, vor 3 Bildern dass da ein "Armor" Slot war? +![[Pasted image 20240317162230.png]] +Wenn einer der Armor slots markiert wird, so kann der Wert der Armor (5) von dem einkommenden Schaden (13) entfernt werden. Dies setzt den Rest der Einkommenden Schaden auf 8, welches im "Minor" Bereich landet, und somit nur 1 HP Schaden nimmt. +![[Pasted image 20240317162625.png]] + +Sollte ein weiterer Armor Slot verwendet werden, um den Schaden unter 4 Damage gesetzt werden. So nimmt der Character anstelle von einem HP einen Stress! (Ist das Stress-Meter voll, so nimmt der Character trotzdem 1 HP Schaden) +![[Pasted image 20240317164536.png]] + +Stress wird oftmals auch für verschiedenste Aktivitäten oder Aktionen wie gewisse Spells oder Domain-Aktionen verwendet. + +Kommen wir noch kurz zu den Waffen selber, diese sind an sich ziemlich einfach abzuklären. + +Möchte jemand ein Monster angreifen So wirft jemand einen Attack Throw. Der Attack throw ist ein simpler Wurf mit dem Duality Dice, welcher dann mit dem benötigten Check dazugibt. + +Fast jede Waffe hat ein spezielles Feature; beispielsweise das von einem Unarmed Strike -Mein Beispiel ist, dass du jemanden mit Worten verletzen kannst und dann den Knowledge modifier für den Angriff dazuzählen kannst. + +![[Weapons.png]] + +Waffen sind ganz cool, aber es gibt noch etwas anderes schönes. Features und Domain Effects (Domänen Effekte)! + +## Features +Die Features formen euren Character tiefer. + +### Class Feature +Das Klassenfeature ist einzigartig pro klasse und kann + +*** +![[Pasted image 20240316142325.png]]! +*** +![[School.png]] +*** + +Diejenigen, die dämonische Vorfahren haben, sind die humanoiden Nachkommen der gefallenen Götter, die scharfe Eckzähne, spitze Ohren und Hörner besitzen, die es in einer Vielzahl von Stilen gibt. + +Furchtlos: Wenn du mit Furcht würfelst, kannst du dich dafür entscheiden, einen Stress zu markieren, anstatt dass die Spielleiterin Furcht erhält. + +Schreckensgesicht: Du hast einen Vorteil bei Würfen, um andere Nicht-Dämonen-Kreaturen einzuschüchtern. + +Diejenigen, die dämonische Vorfahren haben, sind die humanoiden Nachkommen der gefallenen Götter, die scharfe Eckzähne, spitze Ohren und Hörner besitzen, die es in einer Vielzahl von Stilen gibt. + +Während einige Dämonenhörner denen einer Ziege oder eines Widders ähneln, haben andere die Form eines durchdringenden Stachels. Es gibt keine Standardanzahl von Hörnern für Dämonen – obwohl zwei oder vier durchaus üblich sind – und einige haben Kronen aus vielen Hörnern oder nur einem. Sie können auch asymmetrisch wachsen und einzigartige Formen bilden, die Dämonen bekanntermaßen durch Schnitzereien und Ornamente verbessern. Ihre Haut, Haare und Hörner sind in einer Auswahl an kräftigen und lebendigen Farben wie rosigem Scharlachrot, tiefem Violett und pechschwarz erhältlich. Im Durchschnitt sind Dämonen zwischen 5 und 7 Fuß groß und haben bekanntermaßen lange Finger und spitze Nägel. \ No newline at end of file diff --git a/.obsidian/app.json b/.obsidian/app.json new file mode 100644 index 0000000..6abe4c1 --- /dev/null +++ b/.obsidian/app.json @@ -0,0 +1,3 @@ +{ + "alwaysUpdateLinks": true +} \ No newline at end of file diff --git a/.obsidian/appearance.json b/.obsidian/appearance.json new file mode 100644 index 0000000..1dee9b8 --- /dev/null +++ b/.obsidian/appearance.json @@ -0,0 +1,5 @@ +{ + "accentColor": "", + "baseFontSize": 22, + "cssTheme": "Atom" +} \ No newline at end of file diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json new file mode 100644 index 0000000..aeae495 --- /dev/null +++ b/.obsidian/community-plugins.json @@ -0,0 +1,4 @@ +[ + "language-translator", + "obsidian-local-rest-api" +] \ No newline at end of file diff --git a/.obsidian/core-plugins-migration.json b/.obsidian/core-plugins-migration.json new file mode 100644 index 0000000..436f43c --- /dev/null +++ b/.obsidian/core-plugins-migration.json @@ -0,0 +1,30 @@ +{ + "file-explorer": true, + "global-search": true, + "switcher": true, + "graph": true, + "backlink": true, + "canvas": true, + "outgoing-link": true, + "tag-pane": true, + "properties": false, + "page-preview": true, + "daily-notes": true, + "templates": true, + "note-composer": true, + "command-palette": true, + "slash-command": false, + "editor-status": true, + "bookmarks": true, + "markdown-importer": false, + "zk-prefixer": false, + "random-note": false, + "outline": true, + "word-count": true, + "slides": false, + "audio-recorder": false, + "workspaces": false, + "file-recovery": true, + "publish": false, + "sync": false +} \ No newline at end of file diff --git a/.obsidian/core-plugins.json b/.obsidian/core-plugins.json new file mode 100644 index 0000000..9405bfd --- /dev/null +++ b/.obsidian/core-plugins.json @@ -0,0 +1,20 @@ +[ + "file-explorer", + "global-search", + "switcher", + "graph", + "backlink", + "canvas", + "outgoing-link", + "tag-pane", + "page-preview", + "daily-notes", + "templates", + "note-composer", + "command-palette", + "editor-status", + "bookmarks", + "outline", + "word-count", + "file-recovery" +] \ No newline at end of file diff --git a/.obsidian/graph.json b/.obsidian/graph.json new file mode 100644 index 0000000..42a46ec --- /dev/null +++ b/.obsidian/graph.json @@ -0,0 +1,22 @@ +{ + "collapse-filter": true, + "search": "", + "showTags": false, + "showAttachments": false, + "hideUnresolved": false, + "showOrphans": true, + "collapse-color-groups": true, + "colorGroups": [], + "collapse-display": true, + "showArrow": false, + "textFadeMultiplier": 0, + "nodeSizeMultiplier": 1, + "lineSizeMultiplier": 1, + "collapse-forces": true, + "centerStrength": 0.518713248970312, + "repelStrength": 10, + "linkStrength": 1, + "linkDistance": 250, + "scale": 1, + "close": true +} \ No newline at end of file diff --git a/.obsidian/plugins/language-translator/data.json b/.obsidian/plugins/language-translator/data.json new file mode 100644 index 0000000..7bd1515 --- /dev/null +++ b/.obsidian/plugins/language-translator/data.json @@ -0,0 +1,17 @@ +{ + "targetLanguage": { + "text": "German", + "code": "de" + }, + "apiType": { + "text": "Builtin", + "value": "0" + }, + "translateApiUrl": "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0", + "maxCharacters": 2000, + "token": "", + "region": { + "text": "Global", + "code": "global" + } +} \ No newline at end of file diff --git a/.obsidian/plugins/language-translator/main.js b/.obsidian/plugins/language-translator/main.js new file mode 100644 index 0000000..f464258 --- /dev/null +++ b/.obsidian/plugins/language-translator/main.js @@ -0,0 +1,490 @@ +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); +var __export = (target, all) => { + __markAsModule(target); + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __reExport = (target, module2, desc) => { + if (module2 && typeof module2 === "object" || typeof module2 === "function") { + for (let key of __getOwnPropNames(module2)) + if (!__hasOwnProp.call(target, key) && key !== "default") + __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable }); + } + return target; +}; +var __toModule = (module2) => { + return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2); +}; +var __async = (__this, __arguments, generator) => { + return new Promise((resolve, reject) => { + var fulfilled = (value) => { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + }; + var rejected = (value) => { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + }; + var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); + step((generator = generator.apply(__this, __arguments)).next()); + }); +}; + +// src/main.ts +__export(exports, { + default: () => LanguageTranslator +}); +var import_obsidian3 = __toModule(require("obsidian")); + +// src/settingsTab.ts +var import_obsidian = __toModule(require("obsidian")); + +// src/apiTypes.ts +var API_TYPES; +(function(API_TYPES2) { + API_TYPES2[API_TYPES2["Builtin"] = 0] = "Builtin"; + API_TYPES2[API_TYPES2["Azure"] = 1] = "Azure"; + API_TYPES2[API_TYPES2["LibreTranslate"] = 2] = "LibreTranslate"; +})(API_TYPES || (API_TYPES = {})); +var apiTypes_default = API_TYPES; + +// src/apiUrls.ts +var API_URLS = { + AZURE_TRANSLATE_API_URL: "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0", + LIBRE_TRANSLATE_API_URL: "https://libretranslate.com/translate" +}; +var apiUrls_default = API_URLS; + +// src/langCodes.ts +var langCodes = [ + { text: "Afrikaans", code: "af" }, + { text: "Albanian", code: "sq" }, + { text: "Amharic", code: "am" }, + { text: "Arabic", code: "ar" }, + { text: "Armenian", code: "hy" }, + { text: "Assamese", code: "as" }, + { text: "Azerbaijani", code: "" }, + { text: "Bangla", code: "bn" }, + { text: "Bashkir", code: "ba" }, + { text: "Bosnian (Latin)", code: "bs" }, + { text: "Bulgarian", code: "bg" }, + { text: "Cantonese (Traditional)", code: "yue" }, + { text: "Catalan", code: "ca" }, + { text: "Chinese (Literary)", code: "lzh" }, + { text: "Chinese Simplified", code: "zh-Hans" }, + { text: "Chinese Traditional", code: "zh-Hant" }, + { text: "Croatian", code: "hr" }, + { text: "Czech", code: "cs" }, + { text: "Danish", code: "da" }, + { text: "Dari", code: "prs" }, + { text: "Divehi", code: "dv" }, + { text: "Dutch", code: "nl" }, + { text: "English", code: "en" }, + { text: "Estonian", code: "et" }, + { text: "Fijian", code: "fj" }, + { text: "Filipino", code: "fil" }, + { text: "Finnish", code: "fi" }, + { text: "French", code: "fr" }, + { text: "French (Canada)", code: "fr-ca" }, + { text: "Georgian", code: "ka" }, + { text: "German", code: "de" }, + { text: "Greek", code: "el" }, + { text: "Gujarati", code: "gu" }, + { text: "Haitian Creole", code: "ht" }, + { text: "Hebrew", code: "he" }, + { text: "Hindi", code: "hi" }, + { text: "Hmong Daw", code: "mww" }, + { text: "Hungarian", code: "hu" }, + { text: "Icelandic", code: "is" }, + { text: "Indonesian", code: "id" }, + { text: "Inuktitut", code: "iu" }, + { text: "Irish", code: "ga" }, + { text: "Italian", code: "it" }, + { text: "Japanese", code: "ja" }, + { text: "Kannada", code: "kn" }, + { text: "Kazakh", code: "kk" }, + { text: "Khmer", code: "km" }, + { text: "Klingon", code: "tlh-Latn" }, + { text: "Klingon (plqaD)", code: "tlh-Piqd" }, + { text: "Korean", code: "ko" }, + { text: "Kurdish (Central)", code: "ku" }, + { text: "Kurdish (Northern)", code: "kmr" }, + { text: "Kyrgyz", code: "ky" }, + { text: "Lao", code: "lo" }, + { text: "Latvian", code: "lv" }, + { text: "Lithuanian", code: "lt" }, + { text: "Macedonian", code: "mk" }, + { text: "Malagasy", code: "mg" }, + { text: "Malay", code: "ms" }, + { text: "Malayalam", code: "ml" }, + { text: "Maltese", code: "mt" }, + { text: "Maori", code: "mi" }, + { text: "Marathi", code: "mr" }, + { text: "Mongolian (Cyrillic)", code: "mn-Cyrl" }, + { text: "Mongolian (Traditional)", code: "mn-Mong" }, + { text: "Myanmar", code: "my" }, + { text: "Nepali", code: "ne" }, + { text: "Norwegian", code: "nb" }, + { text: "Odia", code: "or" }, + { text: "Pashto", code: "ps" }, + { text: "Persian", code: "fa" }, + { text: "Polish", code: "pl" }, + { text: "Portuguese (Brazil)", code: "pt" }, + { text: "Portuguese (Portugal)", code: "pt-pt" }, + { text: "Punjabi", code: "pa" }, + { text: "Queretaro Otomi", code: "otq" }, + { text: "Romanian", code: "ro" }, + { text: "Russian", code: "ru" }, + { text: "Samoan", code: "sm" }, + { text: "Serbian (Cyrillic)", code: "sr-Cyrl" }, + { text: "Serbian (Latin)", code: "sr-Latn" }, + { text: "Slovak", code: "sk" }, + { text: "Slovenian", code: "sl" }, + { text: "Spanish", code: "es" }, + { text: "Swahili", code: "sw" }, + { text: "Swedish", code: "sv" }, + { text: "Tahitian", code: "ty" }, + { text: "Tamil", code: "ta" }, + { text: "Tatar", code: "tt" }, + { text: "Telugu", code: "te" }, + { text: "Thai", code: "th" }, + { text: "Tibetan", code: "bo" }, + { text: "Tigrinya", code: "ti" }, + { text: "Tongan", code: "to" }, + { text: "Turkish", code: "tr" }, + { text: "Turkmen", code: "tk" }, + { text: "Ukrainian", code: "uk" }, + { text: "Urdu", code: "ur" }, + { text: "Uyghur", code: "ug" }, + { text: "Uzbek (Latin)", code: "uz" }, + { text: "Vietnamese", code: "vi" }, + { text: "Welsh", code: "cy" }, + { text: "Yucatec Maya", code: "yua" } +]; +var langCodes_default = langCodes; + +// src/regions.ts +var regions = [ + { text: "Global", code: "global" }, + { text: "East Asia", code: "eastasia" }, + { text: "Southeast Asia", code: "southeastasia" }, + { text: "Central US", code: "centralus" }, + { text: "East US", code: "eastus" }, + { text: "East US 2", code: "eastus2" }, + { text: "West US", code: "westus" }, + { text: "North Central US", code: "northcentralus" }, + { text: "South Central US", code: "southcentralus" }, + { text: "North Europe", code: "northeurope" }, + { text: "West Europe", code: "westeurope" }, + { text: "Japan West", code: "japanwest" }, + { text: "Japan East", code: "japaneast" }, + { text: "Brazil South", code: "brazilsouth" }, + { text: "Australia East", code: "australiaeast" }, + { text: "Australia Southeast", code: "australiasoutheast" }, + { text: "South India", code: "southindia" }, + { text: "Central India", code: "centralindia" }, + { text: "West India", code: "westindia" }, + { text: "Canada Central", code: "canadacentral" }, + { text: "Canada East", code: "canadaeast" }, + { text: "UK South", code: "uksouth" }, + { text: "UK West", code: "ukwest" }, + { text: "West Central US", code: "westcentralus" }, + { text: "West US 2", code: "westus2" }, + { text: "Korea Central", code: "koreacentral" }, + { text: "Korea South", code: "koreasouth" }, + { text: "France Central", code: "francecentral" }, + { text: "France South", code: "francesouth" }, + { text: "Australia Central", code: "australiacentral" }, + { text: "Australia Central 2", code: "australiacentral2" }, + { text: "UAE Central", code: "uaecentral" }, + { text: "UAE North", code: "uaenorth" }, + { text: "South Africa North", code: "southafricanorth" }, + { text: "South Africa West", code: "southafricawest" }, + { text: "Switzerland North", code: "switzerlandnorth" }, + { text: "Switzerland West", code: "switzerlandwest" }, + { text: "Germany North", code: "germanynorth" }, + { text: "Germany West Central", code: "germanywestcentral" }, + { text: "Norway West", code: "norwaywest" }, + { text: "Norway East", code: "norwayeast" } +]; +var regions_default = regions; + +// src/settingsTab.ts +var apiEntries = [ + { + text: "Builtin", + value: "0" + }, + { + text: "Azure", + value: "1" + }, + { + text: "LibreTranslate", + value: "2" + } +]; +var LanguageTranslatorSettingsTab = class extends import_obsidian.PluginSettingTab { + constructor(app, plugin) { + super(app, plugin); + this.plugin = plugin; + } + display() { + let { containerEl } = this; + containerEl.empty(); + containerEl.createEl("h2", { text: "Language Translator Settings" }); + new import_obsidian.Setting(containerEl).setName("Target Language").setDesc("Set the translation target language (automatically detects source language)").addDropdown((dropDown) => { + langCodes_default.forEach((el) => { + dropDown.addOption(el.code, el.text); + }); + dropDown.onChange((value) => __async(this, null, function* () { + this.plugin.settings.targetLanguage = langCodes_default.find((l) => l.code == value); + yield this.plugin.saveSettings(); + })); + dropDown.setValue(this.plugin.settings.targetLanguage.code); + }); + new import_obsidian.Setting(containerEl).setName("Translator API Type").setDesc("Set preferred API").addDropdown((dropDown) => { + apiEntries.forEach((el) => { + dropDown.addOption(el.value, el.text); + }); + dropDown.onChange((value) => __async(this, null, function* () { + this.plugin.settings.apiType = apiEntries.find((a) => a.value == value); + switch (Number(value)) { + case apiTypes_default.Builtin: + case apiTypes_default.Azure: + this.plugin.settings.translateApiUrl = apiUrls_default.AZURE_TRANSLATE_API_URL; + this.apiUrlTextSetting.setValue(apiUrls_default.AZURE_TRANSLATE_API_URL); + this.plugin.settings.region = { + text: "Global", + code: "global" + }; + break; + case apiTypes_default.LibreTranslate: + this.plugin.settings.translateApiUrl = apiUrls_default.LIBRE_TRANSLATE_API_URL; + this.apiUrlTextSetting.setValue(apiUrls_default.LIBRE_TRANSLATE_API_URL); + break; + default: + this.plugin.settings.translateApiUrl = apiUrls_default.AZURE_TRANSLATE_API_URL; + this.apiUrlTextSetting.setValue(apiUrls_default.AZURE_TRANSLATE_API_URL); + break; + } + yield this.plugin.saveSettings(); + })); + dropDown.setValue(this.plugin.settings.apiType.value); + }); + new import_obsidian.Setting(containerEl).setName("Azure Translator Region").setDesc("Set regions").addDropdown((dropDown) => { + regions_default.forEach((el) => { + dropDown.addOption(el.code, el.text); + }); + dropDown.onChange((value) => __async(this, null, function* () { + this.plugin.settings.region = regions_default.find((l) => l.code == value); + yield this.plugin.saveSettings(); + })); + dropDown.setValue(this.plugin.settings.region.code); + }); + new import_obsidian.Setting(containerEl).setName("API Url").addTextArea((text) => { + text.setPlaceholder("Enter url").setValue(this.plugin.settings.translateApiUrl).onChange((value) => __async(this, null, function* () { + console.log("New api url: " + value); + this.plugin.settings.translateApiUrl = value; + yield this.plugin.saveSettings(); + })); + text.setValue(this.plugin.settings.translateApiUrl); + text.inputEl.setAttr("rows", 4); + text.inputEl.addClass("settings_area"); + this.apiUrlTextSetting = text; + }); + new import_obsidian.Setting(containerEl).setName("API Token").addText((text) => { + text.setPlaceholder("Enter token").setValue(this.plugin.settings.token).onChange((value) => __async(this, null, function* () { + this.plugin.settings.token = value; + yield this.plugin.saveSettings(); + })); + text.setValue(this.plugin.settings.token); + }); + } +}; + +// src/translationServiceImplementation.ts +var import_obsidian2 = __toModule(require("obsidian")); + +// src/translation.ts +function getTextLibreTranslate(text, lang, token, translateApiUrl) { + return __async(this, null, function* () { + let res = ""; + const payload = JSON.stringify({ + q: text, + source: "auto", + target: lang, + format: "text", + api_key: token + }); + const myHeaders = new Headers({ + "Content-type": "application/json" + }); + try { + const response = yield fetch(translateApiUrl, { + method: "POST", + body: payload, + headers: myHeaders + }); + let jsonResponse = yield response.json(); + res = jsonResponse.translatedText || jsonResponse.error; + } catch (err) { + console.error(err); + } + return res; + }); +} +function getTextAzure(text, lang, region, token, translateApiUrl) { + return __async(this, null, function* () { + let res = ""; + const payload = JSON.stringify([{ text }]); + const myHeaders = new Headers({ + "Ocp-Apim-Subscription-Key": token, + "Ocp-Apim-Subscription-Region": region, + "Content-type": "application/json" + }); + try { + const response = yield fetch(`${translateApiUrl}&to=${lang}`, { + method: "POST", + body: payload, + headers: myHeaders + }); + const json = yield response.json(); + if (json.error) { + res = json.error.message; + } else { + res = json[0].translations[0].text; + } + } catch (err) { + console.error(err); + } + return res; + }); +} + +// src/translationServiceImplementation.ts +var AZURE_BUILTIN_KEY = "0bb27e8d40864db0a9854d8793e4fbb7"; +var TranslationServiceImplementation = class { + constructor(plugin) { + this.getBuiltinAzureToken = () => __async(this, null, function* () { + try { + return AZURE_BUILTIN_KEY; + } catch (err) { + console.log(err); + new import_obsidian2.Notice(err.message); + } + }); + this.plugin = plugin; + } + translate(lang, text) { + return __async(this, null, function* () { + let result = ""; + switch (Number(this.plugin.settings.apiType.value)) { + case apiTypes_default.Builtin: + let token = yield this.getBuiltinAzureToken(); + result = yield getTextAzure(text, lang, "westeurope", token, this.plugin.settings.translateApiUrl); + break; + case apiTypes_default.Azure: + result = yield getTextAzure(text, lang, this.plugin.settings.region.code, this.plugin.settings.token, this.plugin.settings.translateApiUrl); + break; + case apiTypes_default.LibreTranslate: + result = yield getTextLibreTranslate(text, lang, this.plugin.settings.token, this.plugin.settings.translateApiUrl); + break; + } + return result; + }); + } +}; + +// src/main.ts +var MAX_CHARACTERS = 2e3; +var DEFAULT_SETTINGS = { + targetLanguage: { + text: "English", + code: "en" + }, + apiType: { + text: "Builtin", + value: "0" + }, + translateApiUrl: apiUrls_default.AZURE_TRANSLATE_API_URL, + maxCharacters: MAX_CHARACTERS, + token: "", + region: { + text: "Global", + code: "global" + } +}; +var LanguageTranslator = class extends import_obsidian3.Plugin { + constructor() { + super(...arguments); + this.onEditorCallback = (editor) => __async(this, null, function* () { + let res = "[translation error]"; + try { + const selection = editor.getSelection(); + if (selection.length > this.settings.maxCharacters) { + new import_obsidian3.Notice(`Exceeded ${this.settings.maxCharacters} max characters!`); + return; + } + let textForTranslation = selection; + let targetLang = this.settings.targetLanguage.code; + let firstSemicolonIndex = textForTranslation.indexOf(":"); + if (firstSemicolonIndex != -1) { + let potentialLangCode = textForTranslation.substring(0, firstSemicolonIndex); + if (potentialLangCode) { + let lc = langCodes_default.find((l) => l.code == potentialLangCode); + if (lc) { + targetLang = lc.code; + textForTranslation = textForTranslation.substring(firstSemicolonIndex + 1); + } + } + } + res = yield this.translationService.translate(targetLang, textForTranslation); + } catch (err) { + console.log(err); + new import_obsidian3.Notice(err.message); + } + editor.replaceSelection(res); + }); + } + onload() { + return __async(this, null, function* () { + this.translationService = new TranslationServiceImplementation(this); + yield this.loadSettings(); + this.addCommand({ + id: "language-translator-editor-command", + name: "Insert translation", + editorCallback: this.onEditorCallback, + hotkeys: [ + { + modifiers: ["Ctrl", "Shift"], + key: "R" + } + ] + }); + this.addSettingTab(new LanguageTranslatorSettingsTab(this.app, this)); + }); + } + loadSettings() { + return __async(this, null, function* () { + this.settings = Object.assign({}, DEFAULT_SETTINGS, yield this.loadData()); + }); + } + saveSettings() { + return __async(this, null, function* () { + yield this.saveData(this.settings); + }); + } +}; diff --git a/.obsidian/plugins/language-translator/manifest.json b/.obsidian/plugins/language-translator/manifest.json new file mode 100644 index 0000000..1f9f6ed --- /dev/null +++ b/.obsidian/plugins/language-translator/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "language-translator", + "name": "Language Translator", + "version": "1.0.4", + "minAppVersion": "0.9.12", + "description": "Translates given text to desired language", + "author": "Florin Bobis", + "authorUrl": "https://florin.page", + "isDesktopOnly": false +} diff --git a/.obsidian/plugins/language-translator/styles.css b/.obsidian/plugins/language-translator/styles.css new file mode 100644 index 0000000..aea4ced --- /dev/null +++ b/.obsidian/plugins/language-translator/styles.css @@ -0,0 +1,6 @@ +.settings_area { + margin-left: 5px; + margin-right: 5px; + font-size: 14px; + width: 100%; +} diff --git a/.obsidian/plugins/obsidian-local-rest-api/data.json b/.obsidian/plugins/obsidian-local-rest-api/data.json new file mode 100644 index 0000000..cbedfee --- /dev/null +++ b/.obsidian/plugins/obsidian-local-rest-api/data.json @@ -0,0 +1,11 @@ +{ + "port": 27124, + "insecurePort": 27123, + "enableInsecureServer": true, + "apiKey": "7dfa68161c914feb2f61f920b644009bf4a54e0fbea290e9046ec3edcba8cc60", + "crypto": { + "cert": "-----BEGIN CERTIFICATE-----\r\nMIIDRTCCAi2gAwIBAgIBATANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQDExdPYnNp\r\nZGlhbiBMb2NhbCBSRVNUIEFQSTAeFw0yNDAzMTUxOTEwMjNaFw0yNTAzMTUxOTEw\r\nMjNaMCIxIDAeBgNVBAMTF09ic2lkaWFuIExvY2FsIFJFU1QgQVBJMIIBIjANBgkq\r\nhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs0vDDqInqHY56y0f2SRXXCWTDAzTZVfR\r\nDyX0dQC1rVP2AH4dkX06twKtq3qRLayUleeO/eXlgp+lFlB27Urkhk9OJ5swiCEl\r\nmPQyi6tgdrnpR9fY+B1353ouJiZOgo6W5WmfVjxzgXV6gVb2KR4UlyvaPpxvktPE\r\nj9kqTawtDEUvqUS5EAOGa3LR2XLwjqzeEVWCnZ7+bIZqcspwbo8Du+bNsLJZ0sQR\r\nbQpfb+fCF3cqsLHvDJ4ItSKsHAfnhSD/Eeu7IWZtA2pfg8NjTdqG2cjbsFxmTPKv\r\nXVB0a/SCDab333kV61Q08bXXw/G4eq83VHk3bkXbqAmW6yaVMxOnqQIDAQABo4GF\r\nMIGCMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgLEMDsGA1UdJQQ0MDIG\r\nCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcD\r\nCDARBglghkgBhvhCAQEEBAMCAPcwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0B\r\nAQsFAAOCAQEAS6pVrh7UFj0z9Jx3fxlpIYMftGdKMtcERn9l97lBVXGerlQpVt1n\r\nO3Y5bFdRlhxAjLNQqJxGofXcRzpIgakuQWUXfsvXjzYEycZ7OjJDjJzPC8OpvCvP\r\ndROJNGuN7VJNQiCTj+chy0CWcCW43kHhtB0x+doz960AFLn3FjYVKWOfzYnRkyvi\r\nEVSvYVd25QZHtVo+F0XnCWfGveBHauZV6pcxY2e6EIvLtUbIcFqnwi9E/Giier82\r\nCs3KKp3BVRRaFwa4gkMUrPtnkytOWRCmuBjjeM1fYFlaAdwNGK4Xn35Op9npx44i\r\nseZUDhjkgjR4n49xb4ukAV8gbvivDkiTaw==\r\n-----END CERTIFICATE-----\r\n", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\r\nMIIEpQIBAAKCAQEAs0vDDqInqHY56y0f2SRXXCWTDAzTZVfRDyX0dQC1rVP2AH4d\r\nkX06twKtq3qRLayUleeO/eXlgp+lFlB27Urkhk9OJ5swiCElmPQyi6tgdrnpR9fY\r\n+B1353ouJiZOgo6W5WmfVjxzgXV6gVb2KR4UlyvaPpxvktPEj9kqTawtDEUvqUS5\r\nEAOGa3LR2XLwjqzeEVWCnZ7+bIZqcspwbo8Du+bNsLJZ0sQRbQpfb+fCF3cqsLHv\r\nDJ4ItSKsHAfnhSD/Eeu7IWZtA2pfg8NjTdqG2cjbsFxmTPKvXVB0a/SCDab333kV\r\n61Q08bXXw/G4eq83VHk3bkXbqAmW6yaVMxOnqQIDAQABAoIBAA5sJPnfndiNgA20\r\noMf3Bib1p80zl+qiRIEXMMGbp8GUTCjQfEDohalUiBNP5e86X25qhMRUMqDOBjnU\r\nCaj/WgAaz4LclywQHIXf+NPm2njabhM3H+8fcbZ3S9CKSszyOt2j4CsP7Euo30yZ\r\nqe33Szk40BKywz/YlIpssdwzIiGHKbYZUA1HK782JdndBJXAZyqoO7if12/QkW4Y\r\nv2Wsk2I2iLl4b9dMgkTv3O4KJ9hlbxXO0kUzefrUYAyYSzhGEvCsu9zzmaM/D4Er\r\n0P7M8JU1fSlnD3TzPJ4xB26CGFSBUIq7htvqA9cJNmTK8fGTWYfWy3qz6OevBA/R\r\nX2j8gZ0CgYEA3x9pGlcujGzYrPpgxS/MCLNRIO6ejNX7j0oXrGxw6QRmnr73IGJm\r\nHyctm/utjXDvtVJg7SRXOLWwbDjkYdV0j1os+mBH8MmPSsJRs2PLjNJ5/Y6BpCeO\r\nJAsWBlJChRWZVfVblm7RfImeLRoqKS5gUZKl8+TjMp8rl6zeGZNY350CgYEAzbcg\r\noS6a68WfCJJy0eWDcWoKbuxeB4Yat61n+GWerZ+NWKt6/NkVVShFMyX97FEY5hQJ\r\nAys3vNy4Y6dYBn2CGvebLi1NUVeaC8wNGQGTwm5ylAiqPawBfTrdB5lZFNHN/coD\r\nZGRxWPhdItzlw+NqOEn/fLePVLdvR2BNmFFq2H0CgYEAyOa9ekw5y5NOXiJr8+Ef\r\ntE3RpPd2p5UdF149hrF10Tp3NET6u5weG7rpJGQvVwXzsK5mO+DW8GcYXbm0Wisa\r\n8uDdUuxSmorCjSv+6KnY5Am4cghYzvgW0nlw8WwsHSzfjjiIqSFLWvmHBVFj2QS7\r\nEXgcGUllEXWkiMPMj/bOtTkCgYEAyaDjV3ghmlPRY4p/BeHKKqB/52a/Zup3R26s\r\nSFf55j1LQgyZeDih4xycbtye/EAkgmZCyxtR/0frZql/6qSboCjurZzzenW9ZDC0\r\n6byVAe5VWWkAy3/K2d6XA7q3CGP3XffhyUV1n3mXd/NBNPWyh8dnpesYjjVY2YG3\r\nrEKo0dUCgYEA17HvI6nyzMVgxn8PAc8GM792WPSBa2z4BOl2XTV53l/b9mb0W8u4\r\nAOh+mVXrtHjhHEzpATcnNRpGq6cH7zlA8HzCHfxPN8Hb1krA11YGV82rOBy+01tr\r\nLlAdYiJ4osEBLO4Jh0eQTUlKbU40EDmYLaBiB72jLvtlsK3briBmSJw=\r\n-----END RSA PRIVATE KEY-----\r\n", + "publicKey": "-----BEGIN PUBLIC KEY-----\r\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs0vDDqInqHY56y0f2SRX\r\nXCWTDAzTZVfRDyX0dQC1rVP2AH4dkX06twKtq3qRLayUleeO/eXlgp+lFlB27Urk\r\nhk9OJ5swiCElmPQyi6tgdrnpR9fY+B1353ouJiZOgo6W5WmfVjxzgXV6gVb2KR4U\r\nlyvaPpxvktPEj9kqTawtDEUvqUS5EAOGa3LR2XLwjqzeEVWCnZ7+bIZqcspwbo8D\r\nu+bNsLJZ0sQRbQpfb+fCF3cqsLHvDJ4ItSKsHAfnhSD/Eeu7IWZtA2pfg8NjTdqG\r\n2cjbsFxmTPKvXVB0a/SCDab333kV61Q08bXXw/G4eq83VHk3bkXbqAmW6yaVMxOn\r\nqQIDAQAB\r\n-----END PUBLIC KEY-----\r\n" + } +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-local-rest-api/main.js b/.obsidian/plugins/obsidian-local-rest-api/main.js new file mode 100644 index 0000000..c192db5 --- /dev/null +++ b/.obsidian/plugins/obsidian-local-rest-api/main.js @@ -0,0 +1,47727 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source, please visit the github repository of this plugin +*/ + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __defProps = Object.defineProperties; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropDescs = Object.getOwnPropertyDescriptors; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __pow = Math.pow; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + } + return a; +}; +var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); +var __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); +var __objRest = (source, exclude) => { + var target = {}; + for (var prop in source) + if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) + target[prop] = source[prop]; + if (source != null && __getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(source)) { + if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) + target[prop] = source[prop]; + } + return target; +}; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + __markAsModule(target); + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __reExport = (target, module2, desc) => { + if (module2 && typeof module2 === "object" || typeof module2 === "function") { + for (let key of __getOwnPropNames(module2)) + if (!__hasOwnProp.call(target, key) && key !== "default") + __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable }); + } + return target; +}; +var __toModule = (module2) => { + return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2); +}; +var __async = (__this, __arguments, generator) => { + return new Promise((resolve, reject) => { + var fulfilled = (value) => { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + }; + var rejected = (value) => { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + }; + var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); + step((generator = generator.apply(__this, __arguments)).next()); + }); +}; + +// node_modules/node-forge/lib/forge.js +var require_forge = __commonJS({ + "node_modules/node-forge/lib/forge.js"(exports2, module2) { + module2.exports = { + options: { + usePureJavaScript: false + } + }; + } +}); + +// node_modules/node-forge/lib/baseN.js +var require_baseN = __commonJS({ + "node_modules/node-forge/lib/baseN.js"(exports2, module2) { + var api = {}; + module2.exports = api; + var _reverseAlphabets = {}; + api.encode = function(input, alphabet, maxline) { + if (typeof alphabet !== "string") { + throw new TypeError('"alphabet" must be a string.'); + } + if (maxline !== void 0 && typeof maxline !== "number") { + throw new TypeError('"maxline" must be a number.'); + } + var output = ""; + if (!(input instanceof Uint8Array)) { + output = _encodeWithByteBuffer(input, alphabet); + } else { + var i = 0; + var base = alphabet.length; + var first = alphabet.charAt(0); + var digits = [0]; + for (i = 0; i < input.length; ++i) { + for (var j = 0, carry = input[i]; j < digits.length; ++j) { + carry += digits[j] << 8; + digits[j] = carry % base; + carry = carry / base | 0; + } + while (carry > 0) { + digits.push(carry % base); + carry = carry / base | 0; + } + } + for (i = 0; input[i] === 0 && i < input.length - 1; ++i) { + output += first; + } + for (i = digits.length - 1; i >= 0; --i) { + output += alphabet[digits[i]]; + } + } + if (maxline) { + var regex = new RegExp(".{1," + maxline + "}", "g"); + output = output.match(regex).join("\r\n"); + } + return output; + }; + api.decode = function(input, alphabet) { + if (typeof input !== "string") { + throw new TypeError('"input" must be a string.'); + } + if (typeof alphabet !== "string") { + throw new TypeError('"alphabet" must be a string.'); + } + var table = _reverseAlphabets[alphabet]; + if (!table) { + table = _reverseAlphabets[alphabet] = []; + for (var i = 0; i < alphabet.length; ++i) { + table[alphabet.charCodeAt(i)] = i; + } + } + input = input.replace(/\s/g, ""); + var base = alphabet.length; + var first = alphabet.charAt(0); + var bytes = [0]; + for (var i = 0; i < input.length; i++) { + var value = table[input.charCodeAt(i)]; + if (value === void 0) { + return; + } + for (var j = 0, carry = value; j < bytes.length; ++j) { + carry += bytes[j] * base; + bytes[j] = carry & 255; + carry >>= 8; + } + while (carry > 0) { + bytes.push(carry & 255); + carry >>= 8; + } + } + for (var k = 0; input[k] === first && k < input.length - 1; ++k) { + bytes.push(0); + } + if (typeof Buffer !== "undefined") { + return Buffer.from(bytes.reverse()); + } + return new Uint8Array(bytes.reverse()); + }; + function _encodeWithByteBuffer(input, alphabet) { + var i = 0; + var base = alphabet.length; + var first = alphabet.charAt(0); + var digits = [0]; + for (i = 0; i < input.length(); ++i) { + for (var j = 0, carry = input.at(i); j < digits.length; ++j) { + carry += digits[j] << 8; + digits[j] = carry % base; + carry = carry / base | 0; + } + while (carry > 0) { + digits.push(carry % base); + carry = carry / base | 0; + } + } + var output = ""; + for (i = 0; input.at(i) === 0 && i < input.length() - 1; ++i) { + output += first; + } + for (i = digits.length - 1; i >= 0; --i) { + output += alphabet[digits[i]]; + } + return output; + } + } +}); + +// node_modules/node-forge/lib/util.js +var require_util = __commonJS({ + "node_modules/node-forge/lib/util.js"(exports2, module2) { + var forge3 = require_forge(); + var baseN = require_baseN(); + var util = module2.exports = forge3.util = forge3.util || {}; + (function() { + if (typeof process !== "undefined" && process.nextTick && !process.browser) { + util.nextTick = process.nextTick; + if (typeof setImmediate === "function") { + util.setImmediate = setImmediate; + } else { + util.setImmediate = util.nextTick; + } + return; + } + if (typeof setImmediate === "function") { + util.setImmediate = function() { + return setImmediate.apply(void 0, arguments); + }; + util.nextTick = function(callback) { + return setImmediate(callback); + }; + return; + } + util.setImmediate = function(callback) { + setTimeout(callback, 0); + }; + if (typeof window !== "undefined" && typeof window.postMessage === "function") { + let handler2 = function(event) { + if (event.source === window && event.data === msg) { + event.stopPropagation(); + var copy = callbacks.slice(); + callbacks.length = 0; + copy.forEach(function(callback) { + callback(); + }); + } + }; + var handler = handler2; + var msg = "forge.setImmediate"; + var callbacks = []; + util.setImmediate = function(callback) { + callbacks.push(callback); + if (callbacks.length === 1) { + window.postMessage(msg, "*"); + } + }; + window.addEventListener("message", handler2, true); + } + if (typeof MutationObserver !== "undefined") { + var now = Date.now(); + var attr = true; + var div = document.createElement("div"); + var callbacks = []; + new MutationObserver(function() { + var copy = callbacks.slice(); + callbacks.length = 0; + copy.forEach(function(callback) { + callback(); + }); + }).observe(div, { attributes: true }); + var oldSetImmediate = util.setImmediate; + util.setImmediate = function(callback) { + if (Date.now() - now > 15) { + now = Date.now(); + oldSetImmediate(callback); + } else { + callbacks.push(callback); + if (callbacks.length === 1) { + div.setAttribute("a", attr = !attr); + } + } + }; + } + util.nextTick = util.setImmediate; + })(); + util.isNodejs = typeof process !== "undefined" && process.versions && process.versions.node; + util.globalScope = function() { + if (util.isNodejs) { + return global; + } + return typeof self === "undefined" ? window : self; + }(); + util.isArray = Array.isArray || function(x) { + return Object.prototype.toString.call(x) === "[object Array]"; + }; + util.isArrayBuffer = function(x) { + return typeof ArrayBuffer !== "undefined" && x instanceof ArrayBuffer; + }; + util.isArrayBufferView = function(x) { + return x && util.isArrayBuffer(x.buffer) && x.byteLength !== void 0; + }; + function _checkBitsParam(n) { + if (!(n === 8 || n === 16 || n === 24 || n === 32)) { + throw new Error("Only 8, 16, 24, or 32 bits supported: " + n); + } + } + util.ByteBuffer = ByteStringBuffer; + function ByteStringBuffer(b) { + this.data = ""; + this.read = 0; + if (typeof b === "string") { + this.data = b; + } else if (util.isArrayBuffer(b) || util.isArrayBufferView(b)) { + if (typeof Buffer !== "undefined" && b instanceof Buffer) { + this.data = b.toString("binary"); + } else { + var arr = new Uint8Array(b); + try { + this.data = String.fromCharCode.apply(null, arr); + } catch (e) { + for (var i = 0; i < arr.length; ++i) { + this.putByte(arr[i]); + } + } + } + } else if (b instanceof ByteStringBuffer || typeof b === "object" && typeof b.data === "string" && typeof b.read === "number") { + this.data = b.data; + this.read = b.read; + } + this._constructedStringLength = 0; + } + util.ByteStringBuffer = ByteStringBuffer; + var _MAX_CONSTRUCTED_STRING_LENGTH = 4096; + util.ByteStringBuffer.prototype._optimizeConstructedString = function(x) { + this._constructedStringLength += x; + if (this._constructedStringLength > _MAX_CONSTRUCTED_STRING_LENGTH) { + this.data.substr(0, 1); + this._constructedStringLength = 0; + } + }; + util.ByteStringBuffer.prototype.length = function() { + return this.data.length - this.read; + }; + util.ByteStringBuffer.prototype.isEmpty = function() { + return this.length() <= 0; + }; + util.ByteStringBuffer.prototype.putByte = function(b) { + return this.putBytes(String.fromCharCode(b)); + }; + util.ByteStringBuffer.prototype.fillWithByte = function(b, n) { + b = String.fromCharCode(b); + var d = this.data; + while (n > 0) { + if (n & 1) { + d += b; + } + n >>>= 1; + if (n > 0) { + b += b; + } + } + this.data = d; + this._optimizeConstructedString(n); + return this; + }; + util.ByteStringBuffer.prototype.putBytes = function(bytes) { + this.data += bytes; + this._optimizeConstructedString(bytes.length); + return this; + }; + util.ByteStringBuffer.prototype.putString = function(str) { + return this.putBytes(util.encodeUtf8(str)); + }; + util.ByteStringBuffer.prototype.putInt16 = function(i) { + return this.putBytes(String.fromCharCode(i >> 8 & 255) + String.fromCharCode(i & 255)); + }; + util.ByteStringBuffer.prototype.putInt24 = function(i) { + return this.putBytes(String.fromCharCode(i >> 16 & 255) + String.fromCharCode(i >> 8 & 255) + String.fromCharCode(i & 255)); + }; + util.ByteStringBuffer.prototype.putInt32 = function(i) { + return this.putBytes(String.fromCharCode(i >> 24 & 255) + String.fromCharCode(i >> 16 & 255) + String.fromCharCode(i >> 8 & 255) + String.fromCharCode(i & 255)); + }; + util.ByteStringBuffer.prototype.putInt16Le = function(i) { + return this.putBytes(String.fromCharCode(i & 255) + String.fromCharCode(i >> 8 & 255)); + }; + util.ByteStringBuffer.prototype.putInt24Le = function(i) { + return this.putBytes(String.fromCharCode(i & 255) + String.fromCharCode(i >> 8 & 255) + String.fromCharCode(i >> 16 & 255)); + }; + util.ByteStringBuffer.prototype.putInt32Le = function(i) { + return this.putBytes(String.fromCharCode(i & 255) + String.fromCharCode(i >> 8 & 255) + String.fromCharCode(i >> 16 & 255) + String.fromCharCode(i >> 24 & 255)); + }; + util.ByteStringBuffer.prototype.putInt = function(i, n) { + _checkBitsParam(n); + var bytes = ""; + do { + n -= 8; + bytes += String.fromCharCode(i >> n & 255); + } while (n > 0); + return this.putBytes(bytes); + }; + util.ByteStringBuffer.prototype.putSignedInt = function(i, n) { + if (i < 0) { + i += 2 << n - 1; + } + return this.putInt(i, n); + }; + util.ByteStringBuffer.prototype.putBuffer = function(buffer) { + return this.putBytes(buffer.getBytes()); + }; + util.ByteStringBuffer.prototype.getByte = function() { + return this.data.charCodeAt(this.read++); + }; + util.ByteStringBuffer.prototype.getInt16 = function() { + var rval = this.data.charCodeAt(this.read) << 8 ^ this.data.charCodeAt(this.read + 1); + this.read += 2; + return rval; + }; + util.ByteStringBuffer.prototype.getInt24 = function() { + var rval = this.data.charCodeAt(this.read) << 16 ^ this.data.charCodeAt(this.read + 1) << 8 ^ this.data.charCodeAt(this.read + 2); + this.read += 3; + return rval; + }; + util.ByteStringBuffer.prototype.getInt32 = function() { + var rval = this.data.charCodeAt(this.read) << 24 ^ this.data.charCodeAt(this.read + 1) << 16 ^ this.data.charCodeAt(this.read + 2) << 8 ^ this.data.charCodeAt(this.read + 3); + this.read += 4; + return rval; + }; + util.ByteStringBuffer.prototype.getInt16Le = function() { + var rval = this.data.charCodeAt(this.read) ^ this.data.charCodeAt(this.read + 1) << 8; + this.read += 2; + return rval; + }; + util.ByteStringBuffer.prototype.getInt24Le = function() { + var rval = this.data.charCodeAt(this.read) ^ this.data.charCodeAt(this.read + 1) << 8 ^ this.data.charCodeAt(this.read + 2) << 16; + this.read += 3; + return rval; + }; + util.ByteStringBuffer.prototype.getInt32Le = function() { + var rval = this.data.charCodeAt(this.read) ^ this.data.charCodeAt(this.read + 1) << 8 ^ this.data.charCodeAt(this.read + 2) << 16 ^ this.data.charCodeAt(this.read + 3) << 24; + this.read += 4; + return rval; + }; + util.ByteStringBuffer.prototype.getInt = function(n) { + _checkBitsParam(n); + var rval = 0; + do { + rval = (rval << 8) + this.data.charCodeAt(this.read++); + n -= 8; + } while (n > 0); + return rval; + }; + util.ByteStringBuffer.prototype.getSignedInt = function(n) { + var x = this.getInt(n); + var max = 2 << n - 2; + if (x >= max) { + x -= max << 1; + } + return x; + }; + util.ByteStringBuffer.prototype.getBytes = function(count) { + var rval; + if (count) { + count = Math.min(this.length(), count); + rval = this.data.slice(this.read, this.read + count); + this.read += count; + } else if (count === 0) { + rval = ""; + } else { + rval = this.read === 0 ? this.data : this.data.slice(this.read); + this.clear(); + } + return rval; + }; + util.ByteStringBuffer.prototype.bytes = function(count) { + return typeof count === "undefined" ? this.data.slice(this.read) : this.data.slice(this.read, this.read + count); + }; + util.ByteStringBuffer.prototype.at = function(i) { + return this.data.charCodeAt(this.read + i); + }; + util.ByteStringBuffer.prototype.setAt = function(i, b) { + this.data = this.data.substr(0, this.read + i) + String.fromCharCode(b) + this.data.substr(this.read + i + 1); + return this; + }; + util.ByteStringBuffer.prototype.last = function() { + return this.data.charCodeAt(this.data.length - 1); + }; + util.ByteStringBuffer.prototype.copy = function() { + var c = util.createBuffer(this.data); + c.read = this.read; + return c; + }; + util.ByteStringBuffer.prototype.compact = function() { + if (this.read > 0) { + this.data = this.data.slice(this.read); + this.read = 0; + } + return this; + }; + util.ByteStringBuffer.prototype.clear = function() { + this.data = ""; + this.read = 0; + return this; + }; + util.ByteStringBuffer.prototype.truncate = function(count) { + var len = Math.max(0, this.length() - count); + this.data = this.data.substr(this.read, len); + this.read = 0; + return this; + }; + util.ByteStringBuffer.prototype.toHex = function() { + var rval = ""; + for (var i = this.read; i < this.data.length; ++i) { + var b = this.data.charCodeAt(i); + if (b < 16) { + rval += "0"; + } + rval += b.toString(16); + } + return rval; + }; + util.ByteStringBuffer.prototype.toString = function() { + return util.decodeUtf8(this.bytes()); + }; + function DataBuffer(b, options) { + options = options || {}; + this.read = options.readOffset || 0; + this.growSize = options.growSize || 1024; + var isArrayBuffer = util.isArrayBuffer(b); + var isArrayBufferView = util.isArrayBufferView(b); + if (isArrayBuffer || isArrayBufferView) { + if (isArrayBuffer) { + this.data = new DataView(b); + } else { + this.data = new DataView(b.buffer, b.byteOffset, b.byteLength); + } + this.write = "writeOffset" in options ? options.writeOffset : this.data.byteLength; + return; + } + this.data = new DataView(new ArrayBuffer(0)); + this.write = 0; + if (b !== null && b !== void 0) { + this.putBytes(b); + } + if ("writeOffset" in options) { + this.write = options.writeOffset; + } + } + util.DataBuffer = DataBuffer; + util.DataBuffer.prototype.length = function() { + return this.write - this.read; + }; + util.DataBuffer.prototype.isEmpty = function() { + return this.length() <= 0; + }; + util.DataBuffer.prototype.accommodate = function(amount, growSize) { + if (this.length() >= amount) { + return this; + } + growSize = Math.max(growSize || this.growSize, amount); + var src = new Uint8Array(this.data.buffer, this.data.byteOffset, this.data.byteLength); + var dst = new Uint8Array(this.length() + growSize); + dst.set(src); + this.data = new DataView(dst.buffer); + return this; + }; + util.DataBuffer.prototype.putByte = function(b) { + this.accommodate(1); + this.data.setUint8(this.write++, b); + return this; + }; + util.DataBuffer.prototype.fillWithByte = function(b, n) { + this.accommodate(n); + for (var i = 0; i < n; ++i) { + this.data.setUint8(b); + } + return this; + }; + util.DataBuffer.prototype.putBytes = function(bytes, encoding) { + if (util.isArrayBufferView(bytes)) { + var src = new Uint8Array(bytes.buffer, bytes.byteOffset, bytes.byteLength); + var len = src.byteLength - src.byteOffset; + this.accommodate(len); + var dst = new Uint8Array(this.data.buffer, this.write); + dst.set(src); + this.write += len; + return this; + } + if (util.isArrayBuffer(bytes)) { + var src = new Uint8Array(bytes); + this.accommodate(src.byteLength); + var dst = new Uint8Array(this.data.buffer); + dst.set(src, this.write); + this.write += src.byteLength; + return this; + } + if (bytes instanceof util.DataBuffer || typeof bytes === "object" && typeof bytes.read === "number" && typeof bytes.write === "number" && util.isArrayBufferView(bytes.data)) { + var src = new Uint8Array(bytes.data.byteLength, bytes.read, bytes.length()); + this.accommodate(src.byteLength); + var dst = new Uint8Array(bytes.data.byteLength, this.write); + dst.set(src); + this.write += src.byteLength; + return this; + } + if (bytes instanceof util.ByteStringBuffer) { + bytes = bytes.data; + encoding = "binary"; + } + encoding = encoding || "binary"; + if (typeof bytes === "string") { + var view; + if (encoding === "hex") { + this.accommodate(Math.ceil(bytes.length / 2)); + view = new Uint8Array(this.data.buffer, this.write); + this.write += util.binary.hex.decode(bytes, view, this.write); + return this; + } + if (encoding === "base64") { + this.accommodate(Math.ceil(bytes.length / 4) * 3); + view = new Uint8Array(this.data.buffer, this.write); + this.write += util.binary.base64.decode(bytes, view, this.write); + return this; + } + if (encoding === "utf8") { + bytes = util.encodeUtf8(bytes); + encoding = "binary"; + } + if (encoding === "binary" || encoding === "raw") { + this.accommodate(bytes.length); + view = new Uint8Array(this.data.buffer, this.write); + this.write += util.binary.raw.decode(view); + return this; + } + if (encoding === "utf16") { + this.accommodate(bytes.length * 2); + view = new Uint16Array(this.data.buffer, this.write); + this.write += util.text.utf16.encode(view); + return this; + } + throw new Error("Invalid encoding: " + encoding); + } + throw Error("Invalid parameter: " + bytes); + }; + util.DataBuffer.prototype.putBuffer = function(buffer) { + this.putBytes(buffer); + buffer.clear(); + return this; + }; + util.DataBuffer.prototype.putString = function(str) { + return this.putBytes(str, "utf16"); + }; + util.DataBuffer.prototype.putInt16 = function(i) { + this.accommodate(2); + this.data.setInt16(this.write, i); + this.write += 2; + return this; + }; + util.DataBuffer.prototype.putInt24 = function(i) { + this.accommodate(3); + this.data.setInt16(this.write, i >> 8 & 65535); + this.data.setInt8(this.write, i >> 16 & 255); + this.write += 3; + return this; + }; + util.DataBuffer.prototype.putInt32 = function(i) { + this.accommodate(4); + this.data.setInt32(this.write, i); + this.write += 4; + return this; + }; + util.DataBuffer.prototype.putInt16Le = function(i) { + this.accommodate(2); + this.data.setInt16(this.write, i, true); + this.write += 2; + return this; + }; + util.DataBuffer.prototype.putInt24Le = function(i) { + this.accommodate(3); + this.data.setInt8(this.write, i >> 16 & 255); + this.data.setInt16(this.write, i >> 8 & 65535, true); + this.write += 3; + return this; + }; + util.DataBuffer.prototype.putInt32Le = function(i) { + this.accommodate(4); + this.data.setInt32(this.write, i, true); + this.write += 4; + return this; + }; + util.DataBuffer.prototype.putInt = function(i, n) { + _checkBitsParam(n); + this.accommodate(n / 8); + do { + n -= 8; + this.data.setInt8(this.write++, i >> n & 255); + } while (n > 0); + return this; + }; + util.DataBuffer.prototype.putSignedInt = function(i, n) { + _checkBitsParam(n); + this.accommodate(n / 8); + if (i < 0) { + i += 2 << n - 1; + } + return this.putInt(i, n); + }; + util.DataBuffer.prototype.getByte = function() { + return this.data.getInt8(this.read++); + }; + util.DataBuffer.prototype.getInt16 = function() { + var rval = this.data.getInt16(this.read); + this.read += 2; + return rval; + }; + util.DataBuffer.prototype.getInt24 = function() { + var rval = this.data.getInt16(this.read) << 8 ^ this.data.getInt8(this.read + 2); + this.read += 3; + return rval; + }; + util.DataBuffer.prototype.getInt32 = function() { + var rval = this.data.getInt32(this.read); + this.read += 4; + return rval; + }; + util.DataBuffer.prototype.getInt16Le = function() { + var rval = this.data.getInt16(this.read, true); + this.read += 2; + return rval; + }; + util.DataBuffer.prototype.getInt24Le = function() { + var rval = this.data.getInt8(this.read) ^ this.data.getInt16(this.read + 1, true) << 8; + this.read += 3; + return rval; + }; + util.DataBuffer.prototype.getInt32Le = function() { + var rval = this.data.getInt32(this.read, true); + this.read += 4; + return rval; + }; + util.DataBuffer.prototype.getInt = function(n) { + _checkBitsParam(n); + var rval = 0; + do { + rval = (rval << 8) + this.data.getInt8(this.read++); + n -= 8; + } while (n > 0); + return rval; + }; + util.DataBuffer.prototype.getSignedInt = function(n) { + var x = this.getInt(n); + var max = 2 << n - 2; + if (x >= max) { + x -= max << 1; + } + return x; + }; + util.DataBuffer.prototype.getBytes = function(count) { + var rval; + if (count) { + count = Math.min(this.length(), count); + rval = this.data.slice(this.read, this.read + count); + this.read += count; + } else if (count === 0) { + rval = ""; + } else { + rval = this.read === 0 ? this.data : this.data.slice(this.read); + this.clear(); + } + return rval; + }; + util.DataBuffer.prototype.bytes = function(count) { + return typeof count === "undefined" ? this.data.slice(this.read) : this.data.slice(this.read, this.read + count); + }; + util.DataBuffer.prototype.at = function(i) { + return this.data.getUint8(this.read + i); + }; + util.DataBuffer.prototype.setAt = function(i, b) { + this.data.setUint8(i, b); + return this; + }; + util.DataBuffer.prototype.last = function() { + return this.data.getUint8(this.write - 1); + }; + util.DataBuffer.prototype.copy = function() { + return new util.DataBuffer(this); + }; + util.DataBuffer.prototype.compact = function() { + if (this.read > 0) { + var src = new Uint8Array(this.data.buffer, this.read); + var dst = new Uint8Array(src.byteLength); + dst.set(src); + this.data = new DataView(dst); + this.write -= this.read; + this.read = 0; + } + return this; + }; + util.DataBuffer.prototype.clear = function() { + this.data = new DataView(new ArrayBuffer(0)); + this.read = this.write = 0; + return this; + }; + util.DataBuffer.prototype.truncate = function(count) { + this.write = Math.max(0, this.length() - count); + this.read = Math.min(this.read, this.write); + return this; + }; + util.DataBuffer.prototype.toHex = function() { + var rval = ""; + for (var i = this.read; i < this.data.byteLength; ++i) { + var b = this.data.getUint8(i); + if (b < 16) { + rval += "0"; + } + rval += b.toString(16); + } + return rval; + }; + util.DataBuffer.prototype.toString = function(encoding) { + var view = new Uint8Array(this.data, this.read, this.length()); + encoding = encoding || "utf8"; + if (encoding === "binary" || encoding === "raw") { + return util.binary.raw.encode(view); + } + if (encoding === "hex") { + return util.binary.hex.encode(view); + } + if (encoding === "base64") { + return util.binary.base64.encode(view); + } + if (encoding === "utf8") { + return util.text.utf8.decode(view); + } + if (encoding === "utf16") { + return util.text.utf16.decode(view); + } + throw new Error("Invalid encoding: " + encoding); + }; + util.createBuffer = function(input, encoding) { + encoding = encoding || "raw"; + if (input !== void 0 && encoding === "utf8") { + input = util.encodeUtf8(input); + } + return new util.ByteBuffer(input); + }; + util.fillString = function(c, n) { + var s = ""; + while (n > 0) { + if (n & 1) { + s += c; + } + n >>>= 1; + if (n > 0) { + c += c; + } + } + return s; + }; + util.xorBytes = function(s1, s2, n) { + var s3 = ""; + var b = ""; + var t = ""; + var i = 0; + var c = 0; + for (; n > 0; --n, ++i) { + b = s1.charCodeAt(i) ^ s2.charCodeAt(i); + if (c >= 10) { + s3 += t; + t = ""; + c = 0; + } + t += String.fromCharCode(b); + ++c; + } + s3 += t; + return s3; + }; + util.hexToBytes = function(hex) { + var rval = ""; + var i = 0; + if (hex.length & true) { + i = 1; + rval += String.fromCharCode(parseInt(hex[0], 16)); + } + for (; i < hex.length; i += 2) { + rval += String.fromCharCode(parseInt(hex.substr(i, 2), 16)); + } + return rval; + }; + util.bytesToHex = function(bytes) { + return util.createBuffer(bytes).toHex(); + }; + util.int32ToBytes = function(i) { + return String.fromCharCode(i >> 24 & 255) + String.fromCharCode(i >> 16 & 255) + String.fromCharCode(i >> 8 & 255) + String.fromCharCode(i & 255); + }; + var _base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + var _base64Idx = [ + 62, + -1, + -1, + -1, + 63, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + -1, + -1, + -1, + 64, + -1, + -1, + -1, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + -1, + -1, + -1, + -1, + -1, + -1, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51 + ]; + var _base58 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"; + util.encode64 = function(input, maxline) { + var line = ""; + var output = ""; + var chr1, chr2, chr3; + var i = 0; + while (i < input.length) { + chr1 = input.charCodeAt(i++); + chr2 = input.charCodeAt(i++); + chr3 = input.charCodeAt(i++); + line += _base64.charAt(chr1 >> 2); + line += _base64.charAt((chr1 & 3) << 4 | chr2 >> 4); + if (isNaN(chr2)) { + line += "=="; + } else { + line += _base64.charAt((chr2 & 15) << 2 | chr3 >> 6); + line += isNaN(chr3) ? "=" : _base64.charAt(chr3 & 63); + } + if (maxline && line.length > maxline) { + output += line.substr(0, maxline) + "\r\n"; + line = line.substr(maxline); + } + } + output += line; + return output; + }; + util.decode64 = function(input) { + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); + var output = ""; + var enc1, enc2, enc3, enc4; + var i = 0; + while (i < input.length) { + enc1 = _base64Idx[input.charCodeAt(i++) - 43]; + enc2 = _base64Idx[input.charCodeAt(i++) - 43]; + enc3 = _base64Idx[input.charCodeAt(i++) - 43]; + enc4 = _base64Idx[input.charCodeAt(i++) - 43]; + output += String.fromCharCode(enc1 << 2 | enc2 >> 4); + if (enc3 !== 64) { + output += String.fromCharCode((enc2 & 15) << 4 | enc3 >> 2); + if (enc4 !== 64) { + output += String.fromCharCode((enc3 & 3) << 6 | enc4); + } + } + } + return output; + }; + util.encodeUtf8 = function(str) { + return unescape(encodeURIComponent(str)); + }; + util.decodeUtf8 = function(str) { + return decodeURIComponent(escape(str)); + }; + util.binary = { + raw: {}, + hex: {}, + base64: {}, + base58: {}, + baseN: { + encode: baseN.encode, + decode: baseN.decode + } + }; + util.binary.raw.encode = function(bytes) { + return String.fromCharCode.apply(null, bytes); + }; + util.binary.raw.decode = function(str, output, offset) { + var out = output; + if (!out) { + out = new Uint8Array(str.length); + } + offset = offset || 0; + var j = offset; + for (var i = 0; i < str.length; ++i) { + out[j++] = str.charCodeAt(i); + } + return output ? j - offset : out; + }; + util.binary.hex.encode = util.bytesToHex; + util.binary.hex.decode = function(hex, output, offset) { + var out = output; + if (!out) { + out = new Uint8Array(Math.ceil(hex.length / 2)); + } + offset = offset || 0; + var i = 0, j = offset; + if (hex.length & 1) { + i = 1; + out[j++] = parseInt(hex[0], 16); + } + for (; i < hex.length; i += 2) { + out[j++] = parseInt(hex.substr(i, 2), 16); + } + return output ? j - offset : out; + }; + util.binary.base64.encode = function(input, maxline) { + var line = ""; + var output = ""; + var chr1, chr2, chr3; + var i = 0; + while (i < input.byteLength) { + chr1 = input[i++]; + chr2 = input[i++]; + chr3 = input[i++]; + line += _base64.charAt(chr1 >> 2); + line += _base64.charAt((chr1 & 3) << 4 | chr2 >> 4); + if (isNaN(chr2)) { + line += "=="; + } else { + line += _base64.charAt((chr2 & 15) << 2 | chr3 >> 6); + line += isNaN(chr3) ? "=" : _base64.charAt(chr3 & 63); + } + if (maxline && line.length > maxline) { + output += line.substr(0, maxline) + "\r\n"; + line = line.substr(maxline); + } + } + output += line; + return output; + }; + util.binary.base64.decode = function(input, output, offset) { + var out = output; + if (!out) { + out = new Uint8Array(Math.ceil(input.length / 4) * 3); + } + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); + offset = offset || 0; + var enc1, enc2, enc3, enc4; + var i = 0, j = offset; + while (i < input.length) { + enc1 = _base64Idx[input.charCodeAt(i++) - 43]; + enc2 = _base64Idx[input.charCodeAt(i++) - 43]; + enc3 = _base64Idx[input.charCodeAt(i++) - 43]; + enc4 = _base64Idx[input.charCodeAt(i++) - 43]; + out[j++] = enc1 << 2 | enc2 >> 4; + if (enc3 !== 64) { + out[j++] = (enc2 & 15) << 4 | enc3 >> 2; + if (enc4 !== 64) { + out[j++] = (enc3 & 3) << 6 | enc4; + } + } + } + return output ? j - offset : out.subarray(0, j); + }; + util.binary.base58.encode = function(input, maxline) { + return util.binary.baseN.encode(input, _base58, maxline); + }; + util.binary.base58.decode = function(input, maxline) { + return util.binary.baseN.decode(input, _base58, maxline); + }; + util.text = { + utf8: {}, + utf16: {} + }; + util.text.utf8.encode = function(str, output, offset) { + str = util.encodeUtf8(str); + var out = output; + if (!out) { + out = new Uint8Array(str.length); + } + offset = offset || 0; + var j = offset; + for (var i = 0; i < str.length; ++i) { + out[j++] = str.charCodeAt(i); + } + return output ? j - offset : out; + }; + util.text.utf8.decode = function(bytes) { + return util.decodeUtf8(String.fromCharCode.apply(null, bytes)); + }; + util.text.utf16.encode = function(str, output, offset) { + var out = output; + if (!out) { + out = new Uint8Array(str.length * 2); + } + var view = new Uint16Array(out.buffer); + offset = offset || 0; + var j = offset; + var k = offset; + for (var i = 0; i < str.length; ++i) { + view[k++] = str.charCodeAt(i); + j += 2; + } + return output ? j - offset : out; + }; + util.text.utf16.decode = function(bytes) { + return String.fromCharCode.apply(null, new Uint16Array(bytes.buffer)); + }; + util.deflate = function(api, bytes, raw) { + bytes = util.decode64(api.deflate(util.encode64(bytes)).rval); + if (raw) { + var start = 2; + var flg = bytes.charCodeAt(1); + if (flg & 32) { + start = 6; + } + bytes = bytes.substring(start, bytes.length - 4); + } + return bytes; + }; + util.inflate = function(api, bytes, raw) { + var rval = api.inflate(util.encode64(bytes)).rval; + return rval === null ? null : util.decode64(rval); + }; + var _setStorageObject = function(api, id, obj) { + if (!api) { + throw new Error("WebStorage not available."); + } + var rval; + if (obj === null) { + rval = api.removeItem(id); + } else { + obj = util.encode64(JSON.stringify(obj)); + rval = api.setItem(id, obj); + } + if (typeof rval !== "undefined" && rval.rval !== true) { + var error = new Error(rval.error.message); + error.id = rval.error.id; + error.name = rval.error.name; + throw error; + } + }; + var _getStorageObject = function(api, id) { + if (!api) { + throw new Error("WebStorage not available."); + } + var rval = api.getItem(id); + if (api.init) { + if (rval.rval === null) { + if (rval.error) { + var error = new Error(rval.error.message); + error.id = rval.error.id; + error.name = rval.error.name; + throw error; + } + rval = null; + } else { + rval = rval.rval; + } + } + if (rval !== null) { + rval = JSON.parse(util.decode64(rval)); + } + return rval; + }; + var _setItem = function(api, id, key, data) { + var obj = _getStorageObject(api, id); + if (obj === null) { + obj = {}; + } + obj[key] = data; + _setStorageObject(api, id, obj); + }; + var _getItem = function(api, id, key) { + var rval = _getStorageObject(api, id); + if (rval !== null) { + rval = key in rval ? rval[key] : null; + } + return rval; + }; + var _removeItem = function(api, id, key) { + var obj = _getStorageObject(api, id); + if (obj !== null && key in obj) { + delete obj[key]; + var empty = true; + for (var prop in obj) { + empty = false; + break; + } + if (empty) { + obj = null; + } + _setStorageObject(api, id, obj); + } + }; + var _clearItems = function(api, id) { + _setStorageObject(api, id, null); + }; + var _callStorageFunction = function(func, args2, location) { + var rval = null; + if (typeof location === "undefined") { + location = ["web", "flash"]; + } + var type; + var done = false; + var exception = null; + for (var idx in location) { + type = location[idx]; + try { + if (type === "flash" || type === "both") { + if (args2[0] === null) { + throw new Error("Flash local storage not available."); + } + rval = func.apply(this, args2); + done = type === "flash"; + } + if (type === "web" || type === "both") { + args2[0] = localStorage; + rval = func.apply(this, args2); + done = true; + } + } catch (ex) { + exception = ex; + } + if (done) { + break; + } + } + if (!done) { + throw exception; + } + return rval; + }; + util.setItem = function(api, id, key, data, location) { + _callStorageFunction(_setItem, arguments, location); + }; + util.getItem = function(api, id, key, location) { + return _callStorageFunction(_getItem, arguments, location); + }; + util.removeItem = function(api, id, key, location) { + _callStorageFunction(_removeItem, arguments, location); + }; + util.clearItems = function(api, id, location) { + _callStorageFunction(_clearItems, arguments, location); + }; + util.isEmpty = function(obj) { + for (var prop in obj) { + if (obj.hasOwnProperty(prop)) { + return false; + } + } + return true; + }; + util.format = function(format) { + var re = /%./g; + var match; + var part; + var argi = 0; + var parts = []; + var last = 0; + while (match = re.exec(format)) { + part = format.substring(last, re.lastIndex - 2); + if (part.length > 0) { + parts.push(part); + } + last = re.lastIndex; + var code = match[0][1]; + switch (code) { + case "s": + case "o": + if (argi < arguments.length) { + parts.push(arguments[argi++ + 1]); + } else { + parts.push(""); + } + break; + case "%": + parts.push("%"); + break; + default: + parts.push("<%" + code + "?>"); + } + } + parts.push(format.substring(last)); + return parts.join(""); + }; + util.formatNumber = function(number, decimals, dec_point, thousands_sep) { + var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals; + var d = dec_point === void 0 ? "," : dec_point; + var t = thousands_sep === void 0 ? "." : thousands_sep, s = n < 0 ? "-" : ""; + var i = parseInt(n = Math.abs(+n || 0).toFixed(c), 10) + ""; + var j = i.length > 3 ? i.length % 3 : 0; + return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : ""); + }; + util.formatSize = function(size) { + if (size >= 1073741824) { + size = util.formatNumber(size / 1073741824, 2, ".", "") + " GiB"; + } else if (size >= 1048576) { + size = util.formatNumber(size / 1048576, 2, ".", "") + " MiB"; + } else if (size >= 1024) { + size = util.formatNumber(size / 1024, 0) + " KiB"; + } else { + size = util.formatNumber(size, 0) + " bytes"; + } + return size; + }; + util.bytesFromIP = function(ip) { + if (ip.indexOf(".") !== -1) { + return util.bytesFromIPv4(ip); + } + if (ip.indexOf(":") !== -1) { + return util.bytesFromIPv6(ip); + } + return null; + }; + util.bytesFromIPv4 = function(ip) { + ip = ip.split("."); + if (ip.length !== 4) { + return null; + } + var b = util.createBuffer(); + for (var i = 0; i < ip.length; ++i) { + var num = parseInt(ip[i], 10); + if (isNaN(num)) { + return null; + } + b.putByte(num); + } + return b.getBytes(); + }; + util.bytesFromIPv6 = function(ip) { + var blanks = 0; + ip = ip.split(":").filter(function(e) { + if (e.length === 0) + ++blanks; + return true; + }); + var zeros = (8 - ip.length + blanks) * 2; + var b = util.createBuffer(); + for (var i = 0; i < 8; ++i) { + if (!ip[i] || ip[i].length === 0) { + b.fillWithByte(0, zeros); + zeros = 0; + continue; + } + var bytes = util.hexToBytes(ip[i]); + if (bytes.length < 2) { + b.putByte(0); + } + b.putBytes(bytes); + } + return b.getBytes(); + }; + util.bytesToIP = function(bytes) { + if (bytes.length === 4) { + return util.bytesToIPv4(bytes); + } + if (bytes.length === 16) { + return util.bytesToIPv6(bytes); + } + return null; + }; + util.bytesToIPv4 = function(bytes) { + if (bytes.length !== 4) { + return null; + } + var ip = []; + for (var i = 0; i < bytes.length; ++i) { + ip.push(bytes.charCodeAt(i)); + } + return ip.join("."); + }; + util.bytesToIPv6 = function(bytes) { + if (bytes.length !== 16) { + return null; + } + var ip = []; + var zeroGroups = []; + var zeroMaxGroup = 0; + for (var i = 0; i < bytes.length; i += 2) { + var hex = util.bytesToHex(bytes[i] + bytes[i + 1]); + while (hex[0] === "0" && hex !== "0") { + hex = hex.substr(1); + } + if (hex === "0") { + var last = zeroGroups[zeroGroups.length - 1]; + var idx = ip.length; + if (!last || idx !== last.end + 1) { + zeroGroups.push({ start: idx, end: idx }); + } else { + last.end = idx; + if (last.end - last.start > zeroGroups[zeroMaxGroup].end - zeroGroups[zeroMaxGroup].start) { + zeroMaxGroup = zeroGroups.length - 1; + } + } + } + ip.push(hex); + } + if (zeroGroups.length > 0) { + var group = zeroGroups[zeroMaxGroup]; + if (group.end - group.start > 0) { + ip.splice(group.start, group.end - group.start + 1, ""); + if (group.start === 0) { + ip.unshift(""); + } + if (group.end === 7) { + ip.push(""); + } + } + } + return ip.join(":"); + }; + util.estimateCores = function(options, callback) { + if (typeof options === "function") { + callback = options; + options = {}; + } + options = options || {}; + if ("cores" in util && !options.update) { + return callback(null, util.cores); + } + if (typeof navigator !== "undefined" && "hardwareConcurrency" in navigator && navigator.hardwareConcurrency > 0) { + util.cores = navigator.hardwareConcurrency; + return callback(null, util.cores); + } + if (typeof Worker === "undefined") { + util.cores = 1; + return callback(null, util.cores); + } + if (typeof Blob === "undefined") { + util.cores = 2; + return callback(null, util.cores); + } + var blobUrl = URL.createObjectURL(new Blob([ + "(", + function() { + self.addEventListener("message", function(e) { + var st = Date.now(); + var et = st + 4; + while (Date.now() < et) + ; + self.postMessage({ st, et }); + }); + }.toString(), + ")()" + ], { type: "application/javascript" })); + sample([], 5, 16); + function sample(max, samples, numWorkers) { + if (samples === 0) { + var avg = Math.floor(max.reduce(function(avg2, x) { + return avg2 + x; + }, 0) / max.length); + util.cores = Math.max(1, avg); + URL.revokeObjectURL(blobUrl); + return callback(null, util.cores); + } + map(numWorkers, function(err, results) { + max.push(reduce(numWorkers, results)); + sample(max, samples - 1, numWorkers); + }); + } + function map(numWorkers, callback2) { + var workers = []; + var results = []; + for (var i = 0; i < numWorkers; ++i) { + var worker = new Worker(blobUrl); + worker.addEventListener("message", function(e) { + results.push(e.data); + if (results.length === numWorkers) { + for (var i2 = 0; i2 < numWorkers; ++i2) { + workers[i2].terminate(); + } + callback2(null, results); + } + }); + workers.push(worker); + } + for (var i = 0; i < numWorkers; ++i) { + workers[i].postMessage(i); + } + } + function reduce(numWorkers, results) { + var overlaps = []; + for (var n = 0; n < numWorkers; ++n) { + var r1 = results[n]; + var overlap = overlaps[n] = []; + for (var i = 0; i < numWorkers; ++i) { + if (n === i) { + continue; + } + var r2 = results[i]; + if (r1.st > r2.st && r1.st < r2.et || r2.st > r1.st && r2.st < r1.et) { + overlap.push(i); + } + } + } + return overlaps.reduce(function(max, overlap2) { + return Math.max(max, overlap2.length); + }, 0); + } + }; + } +}); + +// node_modules/node-forge/lib/cipher.js +var require_cipher = __commonJS({ + "node_modules/node-forge/lib/cipher.js"(exports2, module2) { + var forge3 = require_forge(); + require_util(); + module2.exports = forge3.cipher = forge3.cipher || {}; + forge3.cipher.algorithms = forge3.cipher.algorithms || {}; + forge3.cipher.createCipher = function(algorithm, key) { + var api = algorithm; + if (typeof api === "string") { + api = forge3.cipher.getAlgorithm(api); + if (api) { + api = api(); + } + } + if (!api) { + throw new Error("Unsupported algorithm: " + algorithm); + } + return new forge3.cipher.BlockCipher({ + algorithm: api, + key, + decrypt: false + }); + }; + forge3.cipher.createDecipher = function(algorithm, key) { + var api = algorithm; + if (typeof api === "string") { + api = forge3.cipher.getAlgorithm(api); + if (api) { + api = api(); + } + } + if (!api) { + throw new Error("Unsupported algorithm: " + algorithm); + } + return new forge3.cipher.BlockCipher({ + algorithm: api, + key, + decrypt: true + }); + }; + forge3.cipher.registerAlgorithm = function(name, algorithm) { + name = name.toUpperCase(); + forge3.cipher.algorithms[name] = algorithm; + }; + forge3.cipher.getAlgorithm = function(name) { + name = name.toUpperCase(); + if (name in forge3.cipher.algorithms) { + return forge3.cipher.algorithms[name]; + } + return null; + }; + var BlockCipher = forge3.cipher.BlockCipher = function(options) { + this.algorithm = options.algorithm; + this.mode = this.algorithm.mode; + this.blockSize = this.mode.blockSize; + this._finish = false; + this._input = null; + this.output = null; + this._op = options.decrypt ? this.mode.decrypt : this.mode.encrypt; + this._decrypt = options.decrypt; + this.algorithm.initialize(options); + }; + BlockCipher.prototype.start = function(options) { + options = options || {}; + var opts = {}; + for (var key in options) { + opts[key] = options[key]; + } + opts.decrypt = this._decrypt; + this._finish = false; + this._input = forge3.util.createBuffer(); + this.output = options.output || forge3.util.createBuffer(); + this.mode.start(opts); + }; + BlockCipher.prototype.update = function(input) { + if (input) { + this._input.putBuffer(input); + } + while (!this._op.call(this.mode, this._input, this.output, this._finish) && !this._finish) { + } + this._input.compact(); + }; + BlockCipher.prototype.finish = function(pad) { + if (pad && (this.mode.name === "ECB" || this.mode.name === "CBC")) { + this.mode.pad = function(input) { + return pad(this.blockSize, input, false); + }; + this.mode.unpad = function(output) { + return pad(this.blockSize, output, true); + }; + } + var options = {}; + options.decrypt = this._decrypt; + options.overflow = this._input.length() % this.blockSize; + if (!this._decrypt && this.mode.pad) { + if (!this.mode.pad(this._input, options)) { + return false; + } + } + this._finish = true; + this.update(); + if (this._decrypt && this.mode.unpad) { + if (!this.mode.unpad(this.output, options)) { + return false; + } + } + if (this.mode.afterFinish) { + if (!this.mode.afterFinish(this.output, options)) { + return false; + } + } + return true; + }; + } +}); + +// node_modules/node-forge/lib/cipherModes.js +var require_cipherModes = __commonJS({ + "node_modules/node-forge/lib/cipherModes.js"(exports2, module2) { + var forge3 = require_forge(); + require_util(); + forge3.cipher = forge3.cipher || {}; + var modes = module2.exports = forge3.cipher.modes = forge3.cipher.modes || {}; + modes.ecb = function(options) { + options = options || {}; + this.name = "ECB"; + this.cipher = options.cipher; + this.blockSize = options.blockSize || 16; + this._ints = this.blockSize / 4; + this._inBlock = new Array(this._ints); + this._outBlock = new Array(this._ints); + }; + modes.ecb.prototype.start = function(options) { + }; + modes.ecb.prototype.encrypt = function(input, output, finish) { + if (input.length() < this.blockSize && !(finish && input.length() > 0)) { + return true; + } + for (var i = 0; i < this._ints; ++i) { + this._inBlock[i] = input.getInt32(); + } + this.cipher.encrypt(this._inBlock, this._outBlock); + for (var i = 0; i < this._ints; ++i) { + output.putInt32(this._outBlock[i]); + } + }; + modes.ecb.prototype.decrypt = function(input, output, finish) { + if (input.length() < this.blockSize && !(finish && input.length() > 0)) { + return true; + } + for (var i = 0; i < this._ints; ++i) { + this._inBlock[i] = input.getInt32(); + } + this.cipher.decrypt(this._inBlock, this._outBlock); + for (var i = 0; i < this._ints; ++i) { + output.putInt32(this._outBlock[i]); + } + }; + modes.ecb.prototype.pad = function(input, options) { + var padding = input.length() === this.blockSize ? this.blockSize : this.blockSize - input.length(); + input.fillWithByte(padding, padding); + return true; + }; + modes.ecb.prototype.unpad = function(output, options) { + if (options.overflow > 0) { + return false; + } + var len = output.length(); + var count = output.at(len - 1); + if (count > this.blockSize << 2) { + return false; + } + output.truncate(count); + return true; + }; + modes.cbc = function(options) { + options = options || {}; + this.name = "CBC"; + this.cipher = options.cipher; + this.blockSize = options.blockSize || 16; + this._ints = this.blockSize / 4; + this._inBlock = new Array(this._ints); + this._outBlock = new Array(this._ints); + }; + modes.cbc.prototype.start = function(options) { + if (options.iv === null) { + if (!this._prev) { + throw new Error("Invalid IV parameter."); + } + this._iv = this._prev.slice(0); + } else if (!("iv" in options)) { + throw new Error("Invalid IV parameter."); + } else { + this._iv = transformIV(options.iv, this.blockSize); + this._prev = this._iv.slice(0); + } + }; + modes.cbc.prototype.encrypt = function(input, output, finish) { + if (input.length() < this.blockSize && !(finish && input.length() > 0)) { + return true; + } + for (var i = 0; i < this._ints; ++i) { + this._inBlock[i] = this._prev[i] ^ input.getInt32(); + } + this.cipher.encrypt(this._inBlock, this._outBlock); + for (var i = 0; i < this._ints; ++i) { + output.putInt32(this._outBlock[i]); + } + this._prev = this._outBlock; + }; + modes.cbc.prototype.decrypt = function(input, output, finish) { + if (input.length() < this.blockSize && !(finish && input.length() > 0)) { + return true; + } + for (var i = 0; i < this._ints; ++i) { + this._inBlock[i] = input.getInt32(); + } + this.cipher.decrypt(this._inBlock, this._outBlock); + for (var i = 0; i < this._ints; ++i) { + output.putInt32(this._prev[i] ^ this._outBlock[i]); + } + this._prev = this._inBlock.slice(0); + }; + modes.cbc.prototype.pad = function(input, options) { + var padding = input.length() === this.blockSize ? this.blockSize : this.blockSize - input.length(); + input.fillWithByte(padding, padding); + return true; + }; + modes.cbc.prototype.unpad = function(output, options) { + if (options.overflow > 0) { + return false; + } + var len = output.length(); + var count = output.at(len - 1); + if (count > this.blockSize << 2) { + return false; + } + output.truncate(count); + return true; + }; + modes.cfb = function(options) { + options = options || {}; + this.name = "CFB"; + this.cipher = options.cipher; + this.blockSize = options.blockSize || 16; + this._ints = this.blockSize / 4; + this._inBlock = null; + this._outBlock = new Array(this._ints); + this._partialBlock = new Array(this._ints); + this._partialOutput = forge3.util.createBuffer(); + this._partialBytes = 0; + }; + modes.cfb.prototype.start = function(options) { + if (!("iv" in options)) { + throw new Error("Invalid IV parameter."); + } + this._iv = transformIV(options.iv, this.blockSize); + this._inBlock = this._iv.slice(0); + this._partialBytes = 0; + }; + modes.cfb.prototype.encrypt = function(input, output, finish) { + var inputLength = input.length(); + if (inputLength === 0) { + return true; + } + this.cipher.encrypt(this._inBlock, this._outBlock); + if (this._partialBytes === 0 && inputLength >= this.blockSize) { + for (var i = 0; i < this._ints; ++i) { + this._inBlock[i] = input.getInt32() ^ this._outBlock[i]; + output.putInt32(this._inBlock[i]); + } + return; + } + var partialBytes = (this.blockSize - inputLength) % this.blockSize; + if (partialBytes > 0) { + partialBytes = this.blockSize - partialBytes; + } + this._partialOutput.clear(); + for (var i = 0; i < this._ints; ++i) { + this._partialBlock[i] = input.getInt32() ^ this._outBlock[i]; + this._partialOutput.putInt32(this._partialBlock[i]); + } + if (partialBytes > 0) { + input.read -= this.blockSize; + } else { + for (var i = 0; i < this._ints; ++i) { + this._inBlock[i] = this._partialBlock[i]; + } + } + if (this._partialBytes > 0) { + this._partialOutput.getBytes(this._partialBytes); + } + if (partialBytes > 0 && !finish) { + output.putBytes(this._partialOutput.getBytes(partialBytes - this._partialBytes)); + this._partialBytes = partialBytes; + return true; + } + output.putBytes(this._partialOutput.getBytes(inputLength - this._partialBytes)); + this._partialBytes = 0; + }; + modes.cfb.prototype.decrypt = function(input, output, finish) { + var inputLength = input.length(); + if (inputLength === 0) { + return true; + } + this.cipher.encrypt(this._inBlock, this._outBlock); + if (this._partialBytes === 0 && inputLength >= this.blockSize) { + for (var i = 0; i < this._ints; ++i) { + this._inBlock[i] = input.getInt32(); + output.putInt32(this._inBlock[i] ^ this._outBlock[i]); + } + return; + } + var partialBytes = (this.blockSize - inputLength) % this.blockSize; + if (partialBytes > 0) { + partialBytes = this.blockSize - partialBytes; + } + this._partialOutput.clear(); + for (var i = 0; i < this._ints; ++i) { + this._partialBlock[i] = input.getInt32(); + this._partialOutput.putInt32(this._partialBlock[i] ^ this._outBlock[i]); + } + if (partialBytes > 0) { + input.read -= this.blockSize; + } else { + for (var i = 0; i < this._ints; ++i) { + this._inBlock[i] = this._partialBlock[i]; + } + } + if (this._partialBytes > 0) { + this._partialOutput.getBytes(this._partialBytes); + } + if (partialBytes > 0 && !finish) { + output.putBytes(this._partialOutput.getBytes(partialBytes - this._partialBytes)); + this._partialBytes = partialBytes; + return true; + } + output.putBytes(this._partialOutput.getBytes(inputLength - this._partialBytes)); + this._partialBytes = 0; + }; + modes.ofb = function(options) { + options = options || {}; + this.name = "OFB"; + this.cipher = options.cipher; + this.blockSize = options.blockSize || 16; + this._ints = this.blockSize / 4; + this._inBlock = null; + this._outBlock = new Array(this._ints); + this._partialOutput = forge3.util.createBuffer(); + this._partialBytes = 0; + }; + modes.ofb.prototype.start = function(options) { + if (!("iv" in options)) { + throw new Error("Invalid IV parameter."); + } + this._iv = transformIV(options.iv, this.blockSize); + this._inBlock = this._iv.slice(0); + this._partialBytes = 0; + }; + modes.ofb.prototype.encrypt = function(input, output, finish) { + var inputLength = input.length(); + if (input.length() === 0) { + return true; + } + this.cipher.encrypt(this._inBlock, this._outBlock); + if (this._partialBytes === 0 && inputLength >= this.blockSize) { + for (var i = 0; i < this._ints; ++i) { + output.putInt32(input.getInt32() ^ this._outBlock[i]); + this._inBlock[i] = this._outBlock[i]; + } + return; + } + var partialBytes = (this.blockSize - inputLength) % this.blockSize; + if (partialBytes > 0) { + partialBytes = this.blockSize - partialBytes; + } + this._partialOutput.clear(); + for (var i = 0; i < this._ints; ++i) { + this._partialOutput.putInt32(input.getInt32() ^ this._outBlock[i]); + } + if (partialBytes > 0) { + input.read -= this.blockSize; + } else { + for (var i = 0; i < this._ints; ++i) { + this._inBlock[i] = this._outBlock[i]; + } + } + if (this._partialBytes > 0) { + this._partialOutput.getBytes(this._partialBytes); + } + if (partialBytes > 0 && !finish) { + output.putBytes(this._partialOutput.getBytes(partialBytes - this._partialBytes)); + this._partialBytes = partialBytes; + return true; + } + output.putBytes(this._partialOutput.getBytes(inputLength - this._partialBytes)); + this._partialBytes = 0; + }; + modes.ofb.prototype.decrypt = modes.ofb.prototype.encrypt; + modes.ctr = function(options) { + options = options || {}; + this.name = "CTR"; + this.cipher = options.cipher; + this.blockSize = options.blockSize || 16; + this._ints = this.blockSize / 4; + this._inBlock = null; + this._outBlock = new Array(this._ints); + this._partialOutput = forge3.util.createBuffer(); + this._partialBytes = 0; + }; + modes.ctr.prototype.start = function(options) { + if (!("iv" in options)) { + throw new Error("Invalid IV parameter."); + } + this._iv = transformIV(options.iv, this.blockSize); + this._inBlock = this._iv.slice(0); + this._partialBytes = 0; + }; + modes.ctr.prototype.encrypt = function(input, output, finish) { + var inputLength = input.length(); + if (inputLength === 0) { + return true; + } + this.cipher.encrypt(this._inBlock, this._outBlock); + if (this._partialBytes === 0 && inputLength >= this.blockSize) { + for (var i = 0; i < this._ints; ++i) { + output.putInt32(input.getInt32() ^ this._outBlock[i]); + } + } else { + var partialBytes = (this.blockSize - inputLength) % this.blockSize; + if (partialBytes > 0) { + partialBytes = this.blockSize - partialBytes; + } + this._partialOutput.clear(); + for (var i = 0; i < this._ints; ++i) { + this._partialOutput.putInt32(input.getInt32() ^ this._outBlock[i]); + } + if (partialBytes > 0) { + input.read -= this.blockSize; + } + if (this._partialBytes > 0) { + this._partialOutput.getBytes(this._partialBytes); + } + if (partialBytes > 0 && !finish) { + output.putBytes(this._partialOutput.getBytes(partialBytes - this._partialBytes)); + this._partialBytes = partialBytes; + return true; + } + output.putBytes(this._partialOutput.getBytes(inputLength - this._partialBytes)); + this._partialBytes = 0; + } + inc32(this._inBlock); + }; + modes.ctr.prototype.decrypt = modes.ctr.prototype.encrypt; + modes.gcm = function(options) { + options = options || {}; + this.name = "GCM"; + this.cipher = options.cipher; + this.blockSize = options.blockSize || 16; + this._ints = this.blockSize / 4; + this._inBlock = new Array(this._ints); + this._outBlock = new Array(this._ints); + this._partialOutput = forge3.util.createBuffer(); + this._partialBytes = 0; + this._R = 3774873600; + }; + modes.gcm.prototype.start = function(options) { + if (!("iv" in options)) { + throw new Error("Invalid IV parameter."); + } + var iv = forge3.util.createBuffer(options.iv); + this._cipherLength = 0; + var additionalData; + if ("additionalData" in options) { + additionalData = forge3.util.createBuffer(options.additionalData); + } else { + additionalData = forge3.util.createBuffer(); + } + if ("tagLength" in options) { + this._tagLength = options.tagLength; + } else { + this._tagLength = 128; + } + this._tag = null; + if (options.decrypt) { + this._tag = forge3.util.createBuffer(options.tag).getBytes(); + if (this._tag.length !== this._tagLength / 8) { + throw new Error("Authentication tag does not match tag length."); + } + } + this._hashBlock = new Array(this._ints); + this.tag = null; + this._hashSubkey = new Array(this._ints); + this.cipher.encrypt([0, 0, 0, 0], this._hashSubkey); + this.componentBits = 4; + this._m = this.generateHashTable(this._hashSubkey, this.componentBits); + var ivLength = iv.length(); + if (ivLength === 12) { + this._j0 = [iv.getInt32(), iv.getInt32(), iv.getInt32(), 1]; + } else { + this._j0 = [0, 0, 0, 0]; + while (iv.length() > 0) { + this._j0 = this.ghash(this._hashSubkey, this._j0, [iv.getInt32(), iv.getInt32(), iv.getInt32(), iv.getInt32()]); + } + this._j0 = this.ghash(this._hashSubkey, this._j0, [0, 0].concat(from64To32(ivLength * 8))); + } + this._inBlock = this._j0.slice(0); + inc32(this._inBlock); + this._partialBytes = 0; + additionalData = forge3.util.createBuffer(additionalData); + this._aDataLength = from64To32(additionalData.length() * 8); + var overflow = additionalData.length() % this.blockSize; + if (overflow) { + additionalData.fillWithByte(0, this.blockSize - overflow); + } + this._s = [0, 0, 0, 0]; + while (additionalData.length() > 0) { + this._s = this.ghash(this._hashSubkey, this._s, [ + additionalData.getInt32(), + additionalData.getInt32(), + additionalData.getInt32(), + additionalData.getInt32() + ]); + } + }; + modes.gcm.prototype.encrypt = function(input, output, finish) { + var inputLength = input.length(); + if (inputLength === 0) { + return true; + } + this.cipher.encrypt(this._inBlock, this._outBlock); + if (this._partialBytes === 0 && inputLength >= this.blockSize) { + for (var i = 0; i < this._ints; ++i) { + output.putInt32(this._outBlock[i] ^= input.getInt32()); + } + this._cipherLength += this.blockSize; + } else { + var partialBytes = (this.blockSize - inputLength) % this.blockSize; + if (partialBytes > 0) { + partialBytes = this.blockSize - partialBytes; + } + this._partialOutput.clear(); + for (var i = 0; i < this._ints; ++i) { + this._partialOutput.putInt32(input.getInt32() ^ this._outBlock[i]); + } + if (partialBytes <= 0 || finish) { + if (finish) { + var overflow = inputLength % this.blockSize; + this._cipherLength += overflow; + this._partialOutput.truncate(this.blockSize - overflow); + } else { + this._cipherLength += this.blockSize; + } + for (var i = 0; i < this._ints; ++i) { + this._outBlock[i] = this._partialOutput.getInt32(); + } + this._partialOutput.read -= this.blockSize; + } + if (this._partialBytes > 0) { + this._partialOutput.getBytes(this._partialBytes); + } + if (partialBytes > 0 && !finish) { + input.read -= this.blockSize; + output.putBytes(this._partialOutput.getBytes(partialBytes - this._partialBytes)); + this._partialBytes = partialBytes; + return true; + } + output.putBytes(this._partialOutput.getBytes(inputLength - this._partialBytes)); + this._partialBytes = 0; + } + this._s = this.ghash(this._hashSubkey, this._s, this._outBlock); + inc32(this._inBlock); + }; + modes.gcm.prototype.decrypt = function(input, output, finish) { + var inputLength = input.length(); + if (inputLength < this.blockSize && !(finish && inputLength > 0)) { + return true; + } + this.cipher.encrypt(this._inBlock, this._outBlock); + inc32(this._inBlock); + this._hashBlock[0] = input.getInt32(); + this._hashBlock[1] = input.getInt32(); + this._hashBlock[2] = input.getInt32(); + this._hashBlock[3] = input.getInt32(); + this._s = this.ghash(this._hashSubkey, this._s, this._hashBlock); + for (var i = 0; i < this._ints; ++i) { + output.putInt32(this._outBlock[i] ^ this._hashBlock[i]); + } + if (inputLength < this.blockSize) { + this._cipherLength += inputLength % this.blockSize; + } else { + this._cipherLength += this.blockSize; + } + }; + modes.gcm.prototype.afterFinish = function(output, options) { + var rval = true; + if (options.decrypt && options.overflow) { + output.truncate(this.blockSize - options.overflow); + } + this.tag = forge3.util.createBuffer(); + var lengths = this._aDataLength.concat(from64To32(this._cipherLength * 8)); + this._s = this.ghash(this._hashSubkey, this._s, lengths); + var tag = []; + this.cipher.encrypt(this._j0, tag); + for (var i = 0; i < this._ints; ++i) { + this.tag.putInt32(this._s[i] ^ tag[i]); + } + this.tag.truncate(this.tag.length() % (this._tagLength / 8)); + if (options.decrypt && this.tag.bytes() !== this._tag) { + rval = false; + } + return rval; + }; + modes.gcm.prototype.multiply = function(x, y) { + var z_i = [0, 0, 0, 0]; + var v_i = y.slice(0); + for (var i = 0; i < 128; ++i) { + var x_i = x[i / 32 | 0] & 1 << 31 - i % 32; + if (x_i) { + z_i[0] ^= v_i[0]; + z_i[1] ^= v_i[1]; + z_i[2] ^= v_i[2]; + z_i[3] ^= v_i[3]; + } + this.pow(v_i, v_i); + } + return z_i; + }; + modes.gcm.prototype.pow = function(x, out) { + var lsb = x[3] & 1; + for (var i = 3; i > 0; --i) { + out[i] = x[i] >>> 1 | (x[i - 1] & 1) << 31; + } + out[0] = x[0] >>> 1; + if (lsb) { + out[0] ^= this._R; + } + }; + modes.gcm.prototype.tableMultiply = function(x) { + var z = [0, 0, 0, 0]; + for (var i = 0; i < 32; ++i) { + var idx = i / 8 | 0; + var x_i = x[idx] >>> (7 - i % 8) * 4 & 15; + var ah = this._m[i][x_i]; + z[0] ^= ah[0]; + z[1] ^= ah[1]; + z[2] ^= ah[2]; + z[3] ^= ah[3]; + } + return z; + }; + modes.gcm.prototype.ghash = function(h, y, x) { + y[0] ^= x[0]; + y[1] ^= x[1]; + y[2] ^= x[2]; + y[3] ^= x[3]; + return this.tableMultiply(y); + }; + modes.gcm.prototype.generateHashTable = function(h, bits) { + var multiplier = 8 / bits; + var perInt = 4 * multiplier; + var size = 16 * multiplier; + var m = new Array(size); + for (var i = 0; i < size; ++i) { + var tmp = [0, 0, 0, 0]; + var idx = i / perInt | 0; + var shft = (perInt - 1 - i % perInt) * bits; + tmp[idx] = 1 << bits - 1 << shft; + m[i] = this.generateSubHashTable(this.multiply(tmp, h), bits); + } + return m; + }; + modes.gcm.prototype.generateSubHashTable = function(mid, bits) { + var size = 1 << bits; + var half = size >>> 1; + var m = new Array(size); + m[half] = mid.slice(0); + var i = half >>> 1; + while (i > 0) { + this.pow(m[2 * i], m[i] = []); + i >>= 1; + } + i = 2; + while (i < half) { + for (var j = 1; j < i; ++j) { + var m_i = m[i]; + var m_j = m[j]; + m[i + j] = [ + m_i[0] ^ m_j[0], + m_i[1] ^ m_j[1], + m_i[2] ^ m_j[2], + m_i[3] ^ m_j[3] + ]; + } + i *= 2; + } + m[0] = [0, 0, 0, 0]; + for (i = half + 1; i < size; ++i) { + var c = m[i ^ half]; + m[i] = [mid[0] ^ c[0], mid[1] ^ c[1], mid[2] ^ c[2], mid[3] ^ c[3]]; + } + return m; + }; + function transformIV(iv, blockSize) { + if (typeof iv === "string") { + iv = forge3.util.createBuffer(iv); + } + if (forge3.util.isArray(iv) && iv.length > 4) { + var tmp = iv; + iv = forge3.util.createBuffer(); + for (var i = 0; i < tmp.length; ++i) { + iv.putByte(tmp[i]); + } + } + if (iv.length() < blockSize) { + throw new Error("Invalid IV length; got " + iv.length() + " bytes and expected " + blockSize + " bytes."); + } + if (!forge3.util.isArray(iv)) { + var ints = []; + var blocks = blockSize / 4; + for (var i = 0; i < blocks; ++i) { + ints.push(iv.getInt32()); + } + iv = ints; + } + return iv; + } + function inc32(block) { + block[block.length - 1] = block[block.length - 1] + 1 & 4294967295; + } + function from64To32(num) { + return [num / 4294967296 | 0, num & 4294967295]; + } + } +}); + +// node_modules/node-forge/lib/aes.js +var require_aes = __commonJS({ + "node_modules/node-forge/lib/aes.js"(exports2, module2) { + var forge3 = require_forge(); + require_cipher(); + require_cipherModes(); + require_util(); + module2.exports = forge3.aes = forge3.aes || {}; + forge3.aes.startEncrypting = function(key, iv, output, mode) { + var cipher = _createCipher({ + key, + output, + decrypt: false, + mode + }); + cipher.start(iv); + return cipher; + }; + forge3.aes.createEncryptionCipher = function(key, mode) { + return _createCipher({ + key, + output: null, + decrypt: false, + mode + }); + }; + forge3.aes.startDecrypting = function(key, iv, output, mode) { + var cipher = _createCipher({ + key, + output, + decrypt: true, + mode + }); + cipher.start(iv); + return cipher; + }; + forge3.aes.createDecryptionCipher = function(key, mode) { + return _createCipher({ + key, + output: null, + decrypt: true, + mode + }); + }; + forge3.aes.Algorithm = function(name, mode) { + if (!init) { + initialize(); + } + var self2 = this; + self2.name = name; + self2.mode = new mode({ + blockSize: 16, + cipher: { + encrypt: function(inBlock, outBlock) { + return _updateBlock(self2._w, inBlock, outBlock, false); + }, + decrypt: function(inBlock, outBlock) { + return _updateBlock(self2._w, inBlock, outBlock, true); + } + } + }); + self2._init = false; + }; + forge3.aes.Algorithm.prototype.initialize = function(options) { + if (this._init) { + return; + } + var key = options.key; + var tmp; + if (typeof key === "string" && (key.length === 16 || key.length === 24 || key.length === 32)) { + key = forge3.util.createBuffer(key); + } else if (forge3.util.isArray(key) && (key.length === 16 || key.length === 24 || key.length === 32)) { + tmp = key; + key = forge3.util.createBuffer(); + for (var i = 0; i < tmp.length; ++i) { + key.putByte(tmp[i]); + } + } + if (!forge3.util.isArray(key)) { + tmp = key; + key = []; + var len = tmp.length(); + if (len === 16 || len === 24 || len === 32) { + len = len >>> 2; + for (var i = 0; i < len; ++i) { + key.push(tmp.getInt32()); + } + } + } + if (!forge3.util.isArray(key) || !(key.length === 4 || key.length === 6 || key.length === 8)) { + throw new Error("Invalid key parameter."); + } + var mode = this.mode.name; + var encryptOp = ["CFB", "OFB", "CTR", "GCM"].indexOf(mode) !== -1; + this._w = _expandKey(key, options.decrypt && !encryptOp); + this._init = true; + }; + forge3.aes._expandKey = function(key, decrypt) { + if (!init) { + initialize(); + } + return _expandKey(key, decrypt); + }; + forge3.aes._updateBlock = _updateBlock; + registerAlgorithm("AES-ECB", forge3.cipher.modes.ecb); + registerAlgorithm("AES-CBC", forge3.cipher.modes.cbc); + registerAlgorithm("AES-CFB", forge3.cipher.modes.cfb); + registerAlgorithm("AES-OFB", forge3.cipher.modes.ofb); + registerAlgorithm("AES-CTR", forge3.cipher.modes.ctr); + registerAlgorithm("AES-GCM", forge3.cipher.modes.gcm); + function registerAlgorithm(name, mode) { + var factory = function() { + return new forge3.aes.Algorithm(name, mode); + }; + forge3.cipher.registerAlgorithm(name, factory); + } + var init = false; + var Nb = 4; + var sbox; + var isbox; + var rcon; + var mix; + var imix; + function initialize() { + init = true; + rcon = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54]; + var xtime = new Array(256); + for (var i = 0; i < 128; ++i) { + xtime[i] = i << 1; + xtime[i + 128] = i + 128 << 1 ^ 283; + } + sbox = new Array(256); + isbox = new Array(256); + mix = new Array(4); + imix = new Array(4); + for (var i = 0; i < 4; ++i) { + mix[i] = new Array(256); + imix[i] = new Array(256); + } + var e = 0, ei = 0, e2, e4, e8, sx, sx2, me, ime; + for (var i = 0; i < 256; ++i) { + sx = ei ^ ei << 1 ^ ei << 2 ^ ei << 3 ^ ei << 4; + sx = sx >> 8 ^ sx & 255 ^ 99; + sbox[e] = sx; + isbox[sx] = e; + sx2 = xtime[sx]; + e2 = xtime[e]; + e4 = xtime[e2]; + e8 = xtime[e4]; + me = sx2 << 24 ^ sx << 16 ^ sx << 8 ^ (sx ^ sx2); + ime = (e2 ^ e4 ^ e8) << 24 ^ (e ^ e8) << 16 ^ (e ^ e4 ^ e8) << 8 ^ (e ^ e2 ^ e8); + for (var n = 0; n < 4; ++n) { + mix[n][e] = me; + imix[n][sx] = ime; + me = me << 24 | me >>> 8; + ime = ime << 24 | ime >>> 8; + } + if (e === 0) { + e = ei = 1; + } else { + e = e2 ^ xtime[xtime[xtime[e2 ^ e8]]]; + ei ^= xtime[xtime[ei]]; + } + } + } + function _expandKey(key, decrypt) { + var w = key.slice(0); + var temp, iNk = 1; + var Nk = w.length; + var Nr1 = Nk + 6 + 1; + var end = Nb * Nr1; + for (var i = Nk; i < end; ++i) { + temp = w[i - 1]; + if (i % Nk === 0) { + temp = sbox[temp >>> 16 & 255] << 24 ^ sbox[temp >>> 8 & 255] << 16 ^ sbox[temp & 255] << 8 ^ sbox[temp >>> 24] ^ rcon[iNk] << 24; + iNk++; + } else if (Nk > 6 && i % Nk === 4) { + temp = sbox[temp >>> 24] << 24 ^ sbox[temp >>> 16 & 255] << 16 ^ sbox[temp >>> 8 & 255] << 8 ^ sbox[temp & 255]; + } + w[i] = w[i - Nk] ^ temp; + } + if (decrypt) { + var tmp; + var m0 = imix[0]; + var m1 = imix[1]; + var m2 = imix[2]; + var m3 = imix[3]; + var wnew = w.slice(0); + end = w.length; + for (var i = 0, wi = end - Nb; i < end; i += Nb, wi -= Nb) { + if (i === 0 || i === end - Nb) { + wnew[i] = w[wi]; + wnew[i + 1] = w[wi + 3]; + wnew[i + 2] = w[wi + 2]; + wnew[i + 3] = w[wi + 1]; + } else { + for (var n = 0; n < Nb; ++n) { + tmp = w[wi + n]; + wnew[i + (3 & -n)] = m0[sbox[tmp >>> 24]] ^ m1[sbox[tmp >>> 16 & 255]] ^ m2[sbox[tmp >>> 8 & 255]] ^ m3[sbox[tmp & 255]]; + } + } + } + w = wnew; + } + return w; + } + function _updateBlock(w, input, output, decrypt) { + var Nr = w.length / 4 - 1; + var m0, m1, m2, m3, sub; + if (decrypt) { + m0 = imix[0]; + m1 = imix[1]; + m2 = imix[2]; + m3 = imix[3]; + sub = isbox; + } else { + m0 = mix[0]; + m1 = mix[1]; + m2 = mix[2]; + m3 = mix[3]; + sub = sbox; + } + var a, b, c, d, a2, b2, c2; + a = input[0] ^ w[0]; + b = input[decrypt ? 3 : 1] ^ w[1]; + c = input[2] ^ w[2]; + d = input[decrypt ? 1 : 3] ^ w[3]; + var i = 3; + for (var round = 1; round < Nr; ++round) { + a2 = m0[a >>> 24] ^ m1[b >>> 16 & 255] ^ m2[c >>> 8 & 255] ^ m3[d & 255] ^ w[++i]; + b2 = m0[b >>> 24] ^ m1[c >>> 16 & 255] ^ m2[d >>> 8 & 255] ^ m3[a & 255] ^ w[++i]; + c2 = m0[c >>> 24] ^ m1[d >>> 16 & 255] ^ m2[a >>> 8 & 255] ^ m3[b & 255] ^ w[++i]; + d = m0[d >>> 24] ^ m1[a >>> 16 & 255] ^ m2[b >>> 8 & 255] ^ m3[c & 255] ^ w[++i]; + a = a2; + b = b2; + c = c2; + } + output[0] = sub[a >>> 24] << 24 ^ sub[b >>> 16 & 255] << 16 ^ sub[c >>> 8 & 255] << 8 ^ sub[d & 255] ^ w[++i]; + output[decrypt ? 3 : 1] = sub[b >>> 24] << 24 ^ sub[c >>> 16 & 255] << 16 ^ sub[d >>> 8 & 255] << 8 ^ sub[a & 255] ^ w[++i]; + output[2] = sub[c >>> 24] << 24 ^ sub[d >>> 16 & 255] << 16 ^ sub[a >>> 8 & 255] << 8 ^ sub[b & 255] ^ w[++i]; + output[decrypt ? 1 : 3] = sub[d >>> 24] << 24 ^ sub[a >>> 16 & 255] << 16 ^ sub[b >>> 8 & 255] << 8 ^ sub[c & 255] ^ w[++i]; + } + function _createCipher(options) { + options = options || {}; + var mode = (options.mode || "CBC").toUpperCase(); + var algorithm = "AES-" + mode; + var cipher; + if (options.decrypt) { + cipher = forge3.cipher.createDecipher(algorithm, options.key); + } else { + cipher = forge3.cipher.createCipher(algorithm, options.key); + } + var start = cipher.start; + cipher.start = function(iv, options2) { + var output = null; + if (options2 instanceof forge3.util.ByteBuffer) { + output = options2; + options2 = {}; + } + options2 = options2 || {}; + options2.output = output; + options2.iv = iv; + start.call(cipher, options2); + }; + return cipher; + } + } +}); + +// node_modules/node-forge/lib/oids.js +var require_oids = __commonJS({ + "node_modules/node-forge/lib/oids.js"(exports2, module2) { + var forge3 = require_forge(); + forge3.pki = forge3.pki || {}; + var oids = module2.exports = forge3.pki.oids = forge3.oids = forge3.oids || {}; + function _IN(id, name) { + oids[id] = name; + oids[name] = id; + } + function _I_(id, name) { + oids[id] = name; + } + _IN("1.2.840.113549.1.1.1", "rsaEncryption"); + _IN("1.2.840.113549.1.1.4", "md5WithRSAEncryption"); + _IN("1.2.840.113549.1.1.5", "sha1WithRSAEncryption"); + _IN("1.2.840.113549.1.1.7", "RSAES-OAEP"); + _IN("1.2.840.113549.1.1.8", "mgf1"); + _IN("1.2.840.113549.1.1.9", "pSpecified"); + _IN("1.2.840.113549.1.1.10", "RSASSA-PSS"); + _IN("1.2.840.113549.1.1.11", "sha256WithRSAEncryption"); + _IN("1.2.840.113549.1.1.12", "sha384WithRSAEncryption"); + _IN("1.2.840.113549.1.1.13", "sha512WithRSAEncryption"); + _IN("1.3.101.112", "EdDSA25519"); + _IN("1.2.840.10040.4.3", "dsa-with-sha1"); + _IN("1.3.14.3.2.7", "desCBC"); + _IN("1.3.14.3.2.26", "sha1"); + _IN("1.3.14.3.2.29", "sha1WithRSASignature"); + _IN("2.16.840.1.101.3.4.2.1", "sha256"); + _IN("2.16.840.1.101.3.4.2.2", "sha384"); + _IN("2.16.840.1.101.3.4.2.3", "sha512"); + _IN("2.16.840.1.101.3.4.2.4", "sha224"); + _IN("2.16.840.1.101.3.4.2.5", "sha512-224"); + _IN("2.16.840.1.101.3.4.2.6", "sha512-256"); + _IN("1.2.840.113549.2.2", "md2"); + _IN("1.2.840.113549.2.5", "md5"); + _IN("1.2.840.113549.1.7.1", "data"); + _IN("1.2.840.113549.1.7.2", "signedData"); + _IN("1.2.840.113549.1.7.3", "envelopedData"); + _IN("1.2.840.113549.1.7.4", "signedAndEnvelopedData"); + _IN("1.2.840.113549.1.7.5", "digestedData"); + _IN("1.2.840.113549.1.7.6", "encryptedData"); + _IN("1.2.840.113549.1.9.1", "emailAddress"); + _IN("1.2.840.113549.1.9.2", "unstructuredName"); + _IN("1.2.840.113549.1.9.3", "contentType"); + _IN("1.2.840.113549.1.9.4", "messageDigest"); + _IN("1.2.840.113549.1.9.5", "signingTime"); + _IN("1.2.840.113549.1.9.6", "counterSignature"); + _IN("1.2.840.113549.1.9.7", "challengePassword"); + _IN("1.2.840.113549.1.9.8", "unstructuredAddress"); + _IN("1.2.840.113549.1.9.14", "extensionRequest"); + _IN("1.2.840.113549.1.9.20", "friendlyName"); + _IN("1.2.840.113549.1.9.21", "localKeyId"); + _IN("1.2.840.113549.1.9.22.1", "x509Certificate"); + _IN("1.2.840.113549.1.12.10.1.1", "keyBag"); + _IN("1.2.840.113549.1.12.10.1.2", "pkcs8ShroudedKeyBag"); + _IN("1.2.840.113549.1.12.10.1.3", "certBag"); + _IN("1.2.840.113549.1.12.10.1.4", "crlBag"); + _IN("1.2.840.113549.1.12.10.1.5", "secretBag"); + _IN("1.2.840.113549.1.12.10.1.6", "safeContentsBag"); + _IN("1.2.840.113549.1.5.13", "pkcs5PBES2"); + _IN("1.2.840.113549.1.5.12", "pkcs5PBKDF2"); + _IN("1.2.840.113549.1.12.1.1", "pbeWithSHAAnd128BitRC4"); + _IN("1.2.840.113549.1.12.1.2", "pbeWithSHAAnd40BitRC4"); + _IN("1.2.840.113549.1.12.1.3", "pbeWithSHAAnd3-KeyTripleDES-CBC"); + _IN("1.2.840.113549.1.12.1.4", "pbeWithSHAAnd2-KeyTripleDES-CBC"); + _IN("1.2.840.113549.1.12.1.5", "pbeWithSHAAnd128BitRC2-CBC"); + _IN("1.2.840.113549.1.12.1.6", "pbewithSHAAnd40BitRC2-CBC"); + _IN("1.2.840.113549.2.7", "hmacWithSHA1"); + _IN("1.2.840.113549.2.8", "hmacWithSHA224"); + _IN("1.2.840.113549.2.9", "hmacWithSHA256"); + _IN("1.2.840.113549.2.10", "hmacWithSHA384"); + _IN("1.2.840.113549.2.11", "hmacWithSHA512"); + _IN("1.2.840.113549.3.7", "des-EDE3-CBC"); + _IN("2.16.840.1.101.3.4.1.2", "aes128-CBC"); + _IN("2.16.840.1.101.3.4.1.22", "aes192-CBC"); + _IN("2.16.840.1.101.3.4.1.42", "aes256-CBC"); + _IN("2.5.4.3", "commonName"); + _IN("2.5.4.4", "surname"); + _IN("2.5.4.5", "serialNumber"); + _IN("2.5.4.6", "countryName"); + _IN("2.5.4.7", "localityName"); + _IN("2.5.4.8", "stateOrProvinceName"); + _IN("2.5.4.9", "streetAddress"); + _IN("2.5.4.10", "organizationName"); + _IN("2.5.4.11", "organizationalUnitName"); + _IN("2.5.4.12", "title"); + _IN("2.5.4.13", "description"); + _IN("2.5.4.15", "businessCategory"); + _IN("2.5.4.17", "postalCode"); + _IN("2.5.4.42", "givenName"); + _IN("1.3.6.1.4.1.311.60.2.1.2", "jurisdictionOfIncorporationStateOrProvinceName"); + _IN("1.3.6.1.4.1.311.60.2.1.3", "jurisdictionOfIncorporationCountryName"); + _IN("2.16.840.1.113730.1.1", "nsCertType"); + _IN("2.16.840.1.113730.1.13", "nsComment"); + _I_("2.5.29.1", "authorityKeyIdentifier"); + _I_("2.5.29.2", "keyAttributes"); + _I_("2.5.29.3", "certificatePolicies"); + _I_("2.5.29.4", "keyUsageRestriction"); + _I_("2.5.29.5", "policyMapping"); + _I_("2.5.29.6", "subtreesConstraint"); + _I_("2.5.29.7", "subjectAltName"); + _I_("2.5.29.8", "issuerAltName"); + _I_("2.5.29.9", "subjectDirectoryAttributes"); + _I_("2.5.29.10", "basicConstraints"); + _I_("2.5.29.11", "nameConstraints"); + _I_("2.5.29.12", "policyConstraints"); + _I_("2.5.29.13", "basicConstraints"); + _IN("2.5.29.14", "subjectKeyIdentifier"); + _IN("2.5.29.15", "keyUsage"); + _I_("2.5.29.16", "privateKeyUsagePeriod"); + _IN("2.5.29.17", "subjectAltName"); + _IN("2.5.29.18", "issuerAltName"); + _IN("2.5.29.19", "basicConstraints"); + _I_("2.5.29.20", "cRLNumber"); + _I_("2.5.29.21", "cRLReason"); + _I_("2.5.29.22", "expirationDate"); + _I_("2.5.29.23", "instructionCode"); + _I_("2.5.29.24", "invalidityDate"); + _I_("2.5.29.25", "cRLDistributionPoints"); + _I_("2.5.29.26", "issuingDistributionPoint"); + _I_("2.5.29.27", "deltaCRLIndicator"); + _I_("2.5.29.28", "issuingDistributionPoint"); + _I_("2.5.29.29", "certificateIssuer"); + _I_("2.5.29.30", "nameConstraints"); + _IN("2.5.29.31", "cRLDistributionPoints"); + _IN("2.5.29.32", "certificatePolicies"); + _I_("2.5.29.33", "policyMappings"); + _I_("2.5.29.34", "policyConstraints"); + _IN("2.5.29.35", "authorityKeyIdentifier"); + _I_("2.5.29.36", "policyConstraints"); + _IN("2.5.29.37", "extKeyUsage"); + _I_("2.5.29.46", "freshestCRL"); + _I_("2.5.29.54", "inhibitAnyPolicy"); + _IN("1.3.6.1.4.1.11129.2.4.2", "timestampList"); + _IN("1.3.6.1.5.5.7.1.1", "authorityInfoAccess"); + _IN("1.3.6.1.5.5.7.3.1", "serverAuth"); + _IN("1.3.6.1.5.5.7.3.2", "clientAuth"); + _IN("1.3.6.1.5.5.7.3.3", "codeSigning"); + _IN("1.3.6.1.5.5.7.3.4", "emailProtection"); + _IN("1.3.6.1.5.5.7.3.8", "timeStamping"); + } +}); + +// node_modules/node-forge/lib/asn1.js +var require_asn1 = __commonJS({ + "node_modules/node-forge/lib/asn1.js"(exports2, module2) { + var forge3 = require_forge(); + require_util(); + require_oids(); + var asn1 = module2.exports = forge3.asn1 = forge3.asn1 || {}; + asn1.Class = { + UNIVERSAL: 0, + APPLICATION: 64, + CONTEXT_SPECIFIC: 128, + PRIVATE: 192 + }; + asn1.Type = { + NONE: 0, + BOOLEAN: 1, + INTEGER: 2, + BITSTRING: 3, + OCTETSTRING: 4, + NULL: 5, + OID: 6, + ODESC: 7, + EXTERNAL: 8, + REAL: 9, + ENUMERATED: 10, + EMBEDDED: 11, + UTF8: 12, + ROID: 13, + SEQUENCE: 16, + SET: 17, + PRINTABLESTRING: 19, + IA5STRING: 22, + UTCTIME: 23, + GENERALIZEDTIME: 24, + BMPSTRING: 30 + }; + asn1.create = function(tagClass, type, constructed, value, options) { + if (forge3.util.isArray(value)) { + var tmp = []; + for (var i = 0; i < value.length; ++i) { + if (value[i] !== void 0) { + tmp.push(value[i]); + } + } + value = tmp; + } + var obj = { + tagClass, + type, + constructed, + composed: constructed || forge3.util.isArray(value), + value + }; + if (options && "bitStringContents" in options) { + obj.bitStringContents = options.bitStringContents; + obj.original = asn1.copy(obj); + } + return obj; + }; + asn1.copy = function(obj, options) { + var copy; + if (forge3.util.isArray(obj)) { + copy = []; + for (var i = 0; i < obj.length; ++i) { + copy.push(asn1.copy(obj[i], options)); + } + return copy; + } + if (typeof obj === "string") { + return obj; + } + copy = { + tagClass: obj.tagClass, + type: obj.type, + constructed: obj.constructed, + composed: obj.composed, + value: asn1.copy(obj.value, options) + }; + if (options && !options.excludeBitStringContents) { + copy.bitStringContents = obj.bitStringContents; + } + return copy; + }; + asn1.equals = function(obj1, obj2, options) { + if (forge3.util.isArray(obj1)) { + if (!forge3.util.isArray(obj2)) { + return false; + } + if (obj1.length !== obj2.length) { + return false; + } + for (var i = 0; i < obj1.length; ++i) { + if (!asn1.equals(obj1[i], obj2[i])) { + return false; + } + } + return true; + } + if (typeof obj1 !== typeof obj2) { + return false; + } + if (typeof obj1 === "string") { + return obj1 === obj2; + } + var equal = obj1.tagClass === obj2.tagClass && obj1.type === obj2.type && obj1.constructed === obj2.constructed && obj1.composed === obj2.composed && asn1.equals(obj1.value, obj2.value); + if (options && options.includeBitStringContents) { + equal = equal && obj1.bitStringContents === obj2.bitStringContents; + } + return equal; + }; + asn1.getBerValueLength = function(b) { + var b2 = b.getByte(); + if (b2 === 128) { + return void 0; + } + var length; + var longForm = b2 & 128; + if (!longForm) { + length = b2; + } else { + length = b.getInt((b2 & 127) << 3); + } + return length; + }; + function _checkBufferLength(bytes, remaining, n) { + if (n > remaining) { + var error = new Error("Too few bytes to parse DER."); + error.available = bytes.length(); + error.remaining = remaining; + error.requested = n; + throw error; + } + } + var _getValueLength = function(bytes, remaining) { + var b2 = bytes.getByte(); + remaining--; + if (b2 === 128) { + return void 0; + } + var length; + var longForm = b2 & 128; + if (!longForm) { + length = b2; + } else { + var longFormBytes = b2 & 127; + _checkBufferLength(bytes, remaining, longFormBytes); + length = bytes.getInt(longFormBytes << 3); + } + if (length < 0) { + throw new Error("Negative length: " + length); + } + return length; + }; + asn1.fromDer = function(bytes, options) { + if (options === void 0) { + options = { + strict: true, + parseAllBytes: true, + decodeBitStrings: true + }; + } + if (typeof options === "boolean") { + options = { + strict: options, + parseAllBytes: true, + decodeBitStrings: true + }; + } + if (!("strict" in options)) { + options.strict = true; + } + if (!("parseAllBytes" in options)) { + options.parseAllBytes = true; + } + if (!("decodeBitStrings" in options)) { + options.decodeBitStrings = true; + } + if (typeof bytes === "string") { + bytes = forge3.util.createBuffer(bytes); + } + var byteCount = bytes.length(); + var value = _fromDer(bytes, bytes.length(), 0, options); + if (options.parseAllBytes && bytes.length() !== 0) { + var error = new Error("Unparsed DER bytes remain after ASN.1 parsing."); + error.byteCount = byteCount; + error.remaining = bytes.length(); + throw error; + } + return value; + }; + function _fromDer(bytes, remaining, depth, options) { + var start; + _checkBufferLength(bytes, remaining, 2); + var b1 = bytes.getByte(); + remaining--; + var tagClass = b1 & 192; + var type = b1 & 31; + start = bytes.length(); + var length = _getValueLength(bytes, remaining); + remaining -= start - bytes.length(); + if (length !== void 0 && length > remaining) { + if (options.strict) { + var error = new Error("Too few bytes to read ASN.1 value."); + error.available = bytes.length(); + error.remaining = remaining; + error.requested = length; + throw error; + } + length = remaining; + } + var value; + var bitStringContents; + var constructed = (b1 & 32) === 32; + if (constructed) { + value = []; + if (length === void 0) { + for (; ; ) { + _checkBufferLength(bytes, remaining, 2); + if (bytes.bytes(2) === String.fromCharCode(0, 0)) { + bytes.getBytes(2); + remaining -= 2; + break; + } + start = bytes.length(); + value.push(_fromDer(bytes, remaining, depth + 1, options)); + remaining -= start - bytes.length(); + } + } else { + while (length > 0) { + start = bytes.length(); + value.push(_fromDer(bytes, length, depth + 1, options)); + remaining -= start - bytes.length(); + length -= start - bytes.length(); + } + } + } + if (value === void 0 && tagClass === asn1.Class.UNIVERSAL && type === asn1.Type.BITSTRING) { + bitStringContents = bytes.bytes(length); + } + if (value === void 0 && options.decodeBitStrings && tagClass === asn1.Class.UNIVERSAL && type === asn1.Type.BITSTRING && length > 1) { + var savedRead = bytes.read; + var savedRemaining = remaining; + var unused = 0; + if (type === asn1.Type.BITSTRING) { + _checkBufferLength(bytes, remaining, 1); + unused = bytes.getByte(); + remaining--; + } + if (unused === 0) { + try { + start = bytes.length(); + var subOptions = { + strict: true, + decodeBitStrings: true + }; + var composed = _fromDer(bytes, remaining, depth + 1, subOptions); + var used = start - bytes.length(); + remaining -= used; + if (type == asn1.Type.BITSTRING) { + used++; + } + var tc = composed.tagClass; + if (used === length && (tc === asn1.Class.UNIVERSAL || tc === asn1.Class.CONTEXT_SPECIFIC)) { + value = [composed]; + } + } catch (ex) { + } + } + if (value === void 0) { + bytes.read = savedRead; + remaining = savedRemaining; + } + } + if (value === void 0) { + if (length === void 0) { + if (options.strict) { + throw new Error("Non-constructed ASN.1 object of indefinite length."); + } + length = remaining; + } + if (type === asn1.Type.BMPSTRING) { + value = ""; + for (; length > 0; length -= 2) { + _checkBufferLength(bytes, remaining, 2); + value += String.fromCharCode(bytes.getInt16()); + remaining -= 2; + } + } else { + value = bytes.getBytes(length); + remaining -= length; + } + } + var asn1Options = bitStringContents === void 0 ? null : { + bitStringContents + }; + return asn1.create(tagClass, type, constructed, value, asn1Options); + } + asn1.toDer = function(obj) { + var bytes = forge3.util.createBuffer(); + var b1 = obj.tagClass | obj.type; + var value = forge3.util.createBuffer(); + var useBitStringContents = false; + if ("bitStringContents" in obj) { + useBitStringContents = true; + if (obj.original) { + useBitStringContents = asn1.equals(obj, obj.original); + } + } + if (useBitStringContents) { + value.putBytes(obj.bitStringContents); + } else if (obj.composed) { + if (obj.constructed) { + b1 |= 32; + } else { + value.putByte(0); + } + for (var i = 0; i < obj.value.length; ++i) { + if (obj.value[i] !== void 0) { + value.putBuffer(asn1.toDer(obj.value[i])); + } + } + } else { + if (obj.type === asn1.Type.BMPSTRING) { + for (var i = 0; i < obj.value.length; ++i) { + value.putInt16(obj.value.charCodeAt(i)); + } + } else { + if (obj.type === asn1.Type.INTEGER && obj.value.length > 1 && (obj.value.charCodeAt(0) === 0 && (obj.value.charCodeAt(1) & 128) === 0 || obj.value.charCodeAt(0) === 255 && (obj.value.charCodeAt(1) & 128) === 128)) { + value.putBytes(obj.value.substr(1)); + } else { + value.putBytes(obj.value); + } + } + } + bytes.putByte(b1); + if (value.length() <= 127) { + bytes.putByte(value.length() & 127); + } else { + var len = value.length(); + var lenBytes = ""; + do { + lenBytes += String.fromCharCode(len & 255); + len = len >>> 8; + } while (len > 0); + bytes.putByte(lenBytes.length | 128); + for (var i = lenBytes.length - 1; i >= 0; --i) { + bytes.putByte(lenBytes.charCodeAt(i)); + } + } + bytes.putBuffer(value); + return bytes; + }; + asn1.oidToDer = function(oid) { + var values = oid.split("."); + var bytes = forge3.util.createBuffer(); + bytes.putByte(40 * parseInt(values[0], 10) + parseInt(values[1], 10)); + var last, valueBytes, value, b; + for (var i = 2; i < values.length; ++i) { + last = true; + valueBytes = []; + value = parseInt(values[i], 10); + do { + b = value & 127; + value = value >>> 7; + if (!last) { + b |= 128; + } + valueBytes.push(b); + last = false; + } while (value > 0); + for (var n = valueBytes.length - 1; n >= 0; --n) { + bytes.putByte(valueBytes[n]); + } + } + return bytes; + }; + asn1.derToOid = function(bytes) { + var oid; + if (typeof bytes === "string") { + bytes = forge3.util.createBuffer(bytes); + } + var b = bytes.getByte(); + oid = Math.floor(b / 40) + "." + b % 40; + var value = 0; + while (bytes.length() > 0) { + b = bytes.getByte(); + value = value << 7; + if (b & 128) { + value += b & 127; + } else { + oid += "." + (value + b); + value = 0; + } + } + return oid; + }; + asn1.utcTimeToDate = function(utc) { + var date = new Date(); + var year = parseInt(utc.substr(0, 2), 10); + year = year >= 50 ? 1900 + year : 2e3 + year; + var MM = parseInt(utc.substr(2, 2), 10) - 1; + var DD = parseInt(utc.substr(4, 2), 10); + var hh = parseInt(utc.substr(6, 2), 10); + var mm = parseInt(utc.substr(8, 2), 10); + var ss = 0; + if (utc.length > 11) { + var c = utc.charAt(10); + var end = 10; + if (c !== "+" && c !== "-") { + ss = parseInt(utc.substr(10, 2), 10); + end += 2; + } + } + date.setUTCFullYear(year, MM, DD); + date.setUTCHours(hh, mm, ss, 0); + if (end) { + c = utc.charAt(end); + if (c === "+" || c === "-") { + var hhoffset = parseInt(utc.substr(end + 1, 2), 10); + var mmoffset = parseInt(utc.substr(end + 4, 2), 10); + var offset = hhoffset * 60 + mmoffset; + offset *= 6e4; + if (c === "+") { + date.setTime(+date - offset); + } else { + date.setTime(+date + offset); + } + } + } + return date; + }; + asn1.generalizedTimeToDate = function(gentime) { + var date = new Date(); + var YYYY = parseInt(gentime.substr(0, 4), 10); + var MM = parseInt(gentime.substr(4, 2), 10) - 1; + var DD = parseInt(gentime.substr(6, 2), 10); + var hh = parseInt(gentime.substr(8, 2), 10); + var mm = parseInt(gentime.substr(10, 2), 10); + var ss = parseInt(gentime.substr(12, 2), 10); + var fff = 0; + var offset = 0; + var isUTC = false; + if (gentime.charAt(gentime.length - 1) === "Z") { + isUTC = true; + } + var end = gentime.length - 5, c = gentime.charAt(end); + if (c === "+" || c === "-") { + var hhoffset = parseInt(gentime.substr(end + 1, 2), 10); + var mmoffset = parseInt(gentime.substr(end + 4, 2), 10); + offset = hhoffset * 60 + mmoffset; + offset *= 6e4; + if (c === "+") { + offset *= -1; + } + isUTC = true; + } + if (gentime.charAt(14) === ".") { + fff = parseFloat(gentime.substr(14), 10) * 1e3; + } + if (isUTC) { + date.setUTCFullYear(YYYY, MM, DD); + date.setUTCHours(hh, mm, ss, fff); + date.setTime(+date + offset); + } else { + date.setFullYear(YYYY, MM, DD); + date.setHours(hh, mm, ss, fff); + } + return date; + }; + asn1.dateToUtcTime = function(date) { + if (typeof date === "string") { + return date; + } + var rval = ""; + var format = []; + format.push(("" + date.getUTCFullYear()).substr(2)); + format.push("" + (date.getUTCMonth() + 1)); + format.push("" + date.getUTCDate()); + format.push("" + date.getUTCHours()); + format.push("" + date.getUTCMinutes()); + format.push("" + date.getUTCSeconds()); + for (var i = 0; i < format.length; ++i) { + if (format[i].length < 2) { + rval += "0"; + } + rval += format[i]; + } + rval += "Z"; + return rval; + }; + asn1.dateToGeneralizedTime = function(date) { + if (typeof date === "string") { + return date; + } + var rval = ""; + var format = []; + format.push("" + date.getUTCFullYear()); + format.push("" + (date.getUTCMonth() + 1)); + format.push("" + date.getUTCDate()); + format.push("" + date.getUTCHours()); + format.push("" + date.getUTCMinutes()); + format.push("" + date.getUTCSeconds()); + for (var i = 0; i < format.length; ++i) { + if (format[i].length < 2) { + rval += "0"; + } + rval += format[i]; + } + rval += "Z"; + return rval; + }; + asn1.integerToDer = function(x) { + var rval = forge3.util.createBuffer(); + if (x >= -128 && x < 128) { + return rval.putSignedInt(x, 8); + } + if (x >= -32768 && x < 32768) { + return rval.putSignedInt(x, 16); + } + if (x >= -8388608 && x < 8388608) { + return rval.putSignedInt(x, 24); + } + if (x >= -2147483648 && x < 2147483648) { + return rval.putSignedInt(x, 32); + } + var error = new Error("Integer too large; max is 32-bits."); + error.integer = x; + throw error; + }; + asn1.derToInteger = function(bytes) { + if (typeof bytes === "string") { + bytes = forge3.util.createBuffer(bytes); + } + var n = bytes.length() * 8; + if (n > 32) { + throw new Error("Integer too large; max is 32-bits."); + } + return bytes.getSignedInt(n); + }; + asn1.validate = function(obj, v, capture, errors) { + var rval = false; + if ((obj.tagClass === v.tagClass || typeof v.tagClass === "undefined") && (obj.type === v.type || typeof v.type === "undefined")) { + if (obj.constructed === v.constructed || typeof v.constructed === "undefined") { + rval = true; + if (v.value && forge3.util.isArray(v.value)) { + var j = 0; + for (var i = 0; rval && i < v.value.length; ++i) { + rval = v.value[i].optional || false; + if (obj.value[j]) { + rval = asn1.validate(obj.value[j], v.value[i], capture, errors); + if (rval) { + ++j; + } else if (v.value[i].optional) { + rval = true; + } + } + if (!rval && errors) { + errors.push("[" + v.name + '] Tag class "' + v.tagClass + '", type "' + v.type + '" expected value length "' + v.value.length + '", got "' + obj.value.length + '"'); + } + } + } + if (rval && capture) { + if (v.capture) { + capture[v.capture] = obj.value; + } + if (v.captureAsn1) { + capture[v.captureAsn1] = obj; + } + if (v.captureBitStringContents && "bitStringContents" in obj) { + capture[v.captureBitStringContents] = obj.bitStringContents; + } + if (v.captureBitStringValue && "bitStringContents" in obj) { + var value; + if (obj.bitStringContents.length < 2) { + capture[v.captureBitStringValue] = ""; + } else { + var unused = obj.bitStringContents.charCodeAt(0); + if (unused !== 0) { + throw new Error("captureBitStringValue only supported for zero unused bits"); + } + capture[v.captureBitStringValue] = obj.bitStringContents.slice(1); + } + } + } + } else if (errors) { + errors.push("[" + v.name + '] Expected constructed "' + v.constructed + '", got "' + obj.constructed + '"'); + } + } else if (errors) { + if (obj.tagClass !== v.tagClass) { + errors.push("[" + v.name + '] Expected tag class "' + v.tagClass + '", got "' + obj.tagClass + '"'); + } + if (obj.type !== v.type) { + errors.push("[" + v.name + '] Expected type "' + v.type + '", got "' + obj.type + '"'); + } + } + return rval; + }; + var _nonLatinRegex = /[^\\u0000-\\u00ff]/; + asn1.prettyPrint = function(obj, level, indentation) { + var rval = ""; + level = level || 0; + indentation = indentation || 2; + if (level > 0) { + rval += "\n"; + } + var indent = ""; + for (var i = 0; i < level * indentation; ++i) { + indent += " "; + } + rval += indent + "Tag: "; + switch (obj.tagClass) { + case asn1.Class.UNIVERSAL: + rval += "Universal:"; + break; + case asn1.Class.APPLICATION: + rval += "Application:"; + break; + case asn1.Class.CONTEXT_SPECIFIC: + rval += "Context-Specific:"; + break; + case asn1.Class.PRIVATE: + rval += "Private:"; + break; + } + if (obj.tagClass === asn1.Class.UNIVERSAL) { + rval += obj.type; + switch (obj.type) { + case asn1.Type.NONE: + rval += " (None)"; + break; + case asn1.Type.BOOLEAN: + rval += " (Boolean)"; + break; + case asn1.Type.INTEGER: + rval += " (Integer)"; + break; + case asn1.Type.BITSTRING: + rval += " (Bit string)"; + break; + case asn1.Type.OCTETSTRING: + rval += " (Octet string)"; + break; + case asn1.Type.NULL: + rval += " (Null)"; + break; + case asn1.Type.OID: + rval += " (Object Identifier)"; + break; + case asn1.Type.ODESC: + rval += " (Object Descriptor)"; + break; + case asn1.Type.EXTERNAL: + rval += " (External or Instance of)"; + break; + case asn1.Type.REAL: + rval += " (Real)"; + break; + case asn1.Type.ENUMERATED: + rval += " (Enumerated)"; + break; + case asn1.Type.EMBEDDED: + rval += " (Embedded PDV)"; + break; + case asn1.Type.UTF8: + rval += " (UTF8)"; + break; + case asn1.Type.ROID: + rval += " (Relative Object Identifier)"; + break; + case asn1.Type.SEQUENCE: + rval += " (Sequence)"; + break; + case asn1.Type.SET: + rval += " (Set)"; + break; + case asn1.Type.PRINTABLESTRING: + rval += " (Printable String)"; + break; + case asn1.Type.IA5String: + rval += " (IA5String (ASCII))"; + break; + case asn1.Type.UTCTIME: + rval += " (UTC time)"; + break; + case asn1.Type.GENERALIZEDTIME: + rval += " (Generalized time)"; + break; + case asn1.Type.BMPSTRING: + rval += " (BMP String)"; + break; + } + } else { + rval += obj.type; + } + rval += "\n"; + rval += indent + "Constructed: " + obj.constructed + "\n"; + if (obj.composed) { + var subvalues = 0; + var sub = ""; + for (var i = 0; i < obj.value.length; ++i) { + if (obj.value[i] !== void 0) { + subvalues += 1; + sub += asn1.prettyPrint(obj.value[i], level + 1, indentation); + if (i + 1 < obj.value.length) { + sub += ","; + } + } + } + rval += indent + "Sub values: " + subvalues + sub; + } else { + rval += indent + "Value: "; + if (obj.type === asn1.Type.OID) { + var oid = asn1.derToOid(obj.value); + rval += oid; + if (forge3.pki && forge3.pki.oids) { + if (oid in forge3.pki.oids) { + rval += " (" + forge3.pki.oids[oid] + ") "; + } + } + } + if (obj.type === asn1.Type.INTEGER) { + try { + rval += asn1.derToInteger(obj.value); + } catch (ex) { + rval += "0x" + forge3.util.bytesToHex(obj.value); + } + } else if (obj.type === asn1.Type.BITSTRING) { + if (obj.value.length > 1) { + rval += "0x" + forge3.util.bytesToHex(obj.value.slice(1)); + } else { + rval += "(none)"; + } + if (obj.value.length > 0) { + var unused = obj.value.charCodeAt(0); + if (unused == 1) { + rval += " (1 unused bit shown)"; + } else if (unused > 1) { + rval += " (" + unused + " unused bits shown)"; + } + } + } else if (obj.type === asn1.Type.OCTETSTRING) { + if (!_nonLatinRegex.test(obj.value)) { + rval += "(" + obj.value + ") "; + } + rval += "0x" + forge3.util.bytesToHex(obj.value); + } else if (obj.type === asn1.Type.UTF8) { + try { + rval += forge3.util.decodeUtf8(obj.value); + } catch (e) { + if (e.message === "URI malformed") { + rval += "0x" + forge3.util.bytesToHex(obj.value) + " (malformed UTF8)"; + } else { + throw e; + } + } + } else if (obj.type === asn1.Type.PRINTABLESTRING || obj.type === asn1.Type.IA5String) { + rval += obj.value; + } else if (_nonLatinRegex.test(obj.value)) { + rval += "0x" + forge3.util.bytesToHex(obj.value); + } else if (obj.value.length === 0) { + rval += "[null]"; + } else { + rval += obj.value; + } + } + return rval; + }; + } +}); + +// node_modules/node-forge/lib/md.js +var require_md = __commonJS({ + "node_modules/node-forge/lib/md.js"(exports2, module2) { + var forge3 = require_forge(); + module2.exports = forge3.md = forge3.md || {}; + forge3.md.algorithms = forge3.md.algorithms || {}; + } +}); + +// node_modules/node-forge/lib/hmac.js +var require_hmac = __commonJS({ + "node_modules/node-forge/lib/hmac.js"(exports2, module2) { + var forge3 = require_forge(); + require_md(); + require_util(); + var hmac = module2.exports = forge3.hmac = forge3.hmac || {}; + hmac.create = function() { + var _key = null; + var _md = null; + var _ipadding = null; + var _opadding = null; + var ctx = {}; + ctx.start = function(md, key) { + if (md !== null) { + if (typeof md === "string") { + md = md.toLowerCase(); + if (md in forge3.md.algorithms) { + _md = forge3.md.algorithms[md].create(); + } else { + throw new Error('Unknown hash algorithm "' + md + '"'); + } + } else { + _md = md; + } + } + if (key === null) { + key = _key; + } else { + if (typeof key === "string") { + key = forge3.util.createBuffer(key); + } else if (forge3.util.isArray(key)) { + var tmp = key; + key = forge3.util.createBuffer(); + for (var i = 0; i < tmp.length; ++i) { + key.putByte(tmp[i]); + } + } + var keylen = key.length(); + if (keylen > _md.blockLength) { + _md.start(); + _md.update(key.bytes()); + key = _md.digest(); + } + _ipadding = forge3.util.createBuffer(); + _opadding = forge3.util.createBuffer(); + keylen = key.length(); + for (var i = 0; i < keylen; ++i) { + var tmp = key.at(i); + _ipadding.putByte(54 ^ tmp); + _opadding.putByte(92 ^ tmp); + } + if (keylen < _md.blockLength) { + var tmp = _md.blockLength - keylen; + for (var i = 0; i < tmp; ++i) { + _ipadding.putByte(54); + _opadding.putByte(92); + } + } + _key = key; + _ipadding = _ipadding.bytes(); + _opadding = _opadding.bytes(); + } + _md.start(); + _md.update(_ipadding); + }; + ctx.update = function(bytes) { + _md.update(bytes); + }; + ctx.getMac = function() { + var inner = _md.digest().bytes(); + _md.start(); + _md.update(_opadding); + _md.update(inner); + return _md.digest(); + }; + ctx.digest = ctx.getMac; + return ctx; + }; + } +}); + +// node_modules/node-forge/lib/md5.js +var require_md5 = __commonJS({ + "node_modules/node-forge/lib/md5.js"(exports2, module2) { + var forge3 = require_forge(); + require_md(); + require_util(); + var md5 = module2.exports = forge3.md5 = forge3.md5 || {}; + forge3.md.md5 = forge3.md.algorithms.md5 = md5; + md5.create = function() { + if (!_initialized) { + _init(); + } + var _state = null; + var _input = forge3.util.createBuffer(); + var _w = new Array(16); + var md = { + algorithm: "md5", + blockLength: 64, + digestLength: 16, + messageLength: 0, + fullMessageLength: null, + messageLengthSize: 8 + }; + md.start = function() { + md.messageLength = 0; + md.fullMessageLength = md.messageLength64 = []; + var int32s = md.messageLengthSize / 4; + for (var i = 0; i < int32s; ++i) { + md.fullMessageLength.push(0); + } + _input = forge3.util.createBuffer(); + _state = { + h0: 1732584193, + h1: 4023233417, + h2: 2562383102, + h3: 271733878 + }; + return md; + }; + md.start(); + md.update = function(msg, encoding) { + if (encoding === "utf8") { + msg = forge3.util.encodeUtf8(msg); + } + var len = msg.length; + md.messageLength += len; + len = [len / 4294967296 >>> 0, len >>> 0]; + for (var i = md.fullMessageLength.length - 1; i >= 0; --i) { + md.fullMessageLength[i] += len[1]; + len[1] = len[0] + (md.fullMessageLength[i] / 4294967296 >>> 0); + md.fullMessageLength[i] = md.fullMessageLength[i] >>> 0; + len[0] = len[1] / 4294967296 >>> 0; + } + _input.putBytes(msg); + _update(_state, _w, _input); + if (_input.read > 2048 || _input.length() === 0) { + _input.compact(); + } + return md; + }; + md.digest = function() { + var finalBlock = forge3.util.createBuffer(); + finalBlock.putBytes(_input.bytes()); + var remaining = md.fullMessageLength[md.fullMessageLength.length - 1] + md.messageLengthSize; + var overflow = remaining & md.blockLength - 1; + finalBlock.putBytes(_padding.substr(0, md.blockLength - overflow)); + var bits, carry = 0; + for (var i = md.fullMessageLength.length - 1; i >= 0; --i) { + bits = md.fullMessageLength[i] * 8 + carry; + carry = bits / 4294967296 >>> 0; + finalBlock.putInt32Le(bits >>> 0); + } + var s2 = { + h0: _state.h0, + h1: _state.h1, + h2: _state.h2, + h3: _state.h3 + }; + _update(s2, _w, finalBlock); + var rval = forge3.util.createBuffer(); + rval.putInt32Le(s2.h0); + rval.putInt32Le(s2.h1); + rval.putInt32Le(s2.h2); + rval.putInt32Le(s2.h3); + return rval; + }; + return md; + }; + var _padding = null; + var _g = null; + var _r = null; + var _k = null; + var _initialized = false; + function _init() { + _padding = String.fromCharCode(128); + _padding += forge3.util.fillString(String.fromCharCode(0), 64); + _g = [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 1, + 6, + 11, + 0, + 5, + 10, + 15, + 4, + 9, + 14, + 3, + 8, + 13, + 2, + 7, + 12, + 5, + 8, + 11, + 14, + 1, + 4, + 7, + 10, + 13, + 0, + 3, + 6, + 9, + 12, + 15, + 2, + 0, + 7, + 14, + 5, + 12, + 3, + 10, + 1, + 8, + 15, + 6, + 13, + 4, + 11, + 2, + 9 + ]; + _r = [ + 7, + 12, + 17, + 22, + 7, + 12, + 17, + 22, + 7, + 12, + 17, + 22, + 7, + 12, + 17, + 22, + 5, + 9, + 14, + 20, + 5, + 9, + 14, + 20, + 5, + 9, + 14, + 20, + 5, + 9, + 14, + 20, + 4, + 11, + 16, + 23, + 4, + 11, + 16, + 23, + 4, + 11, + 16, + 23, + 4, + 11, + 16, + 23, + 6, + 10, + 15, + 21, + 6, + 10, + 15, + 21, + 6, + 10, + 15, + 21, + 6, + 10, + 15, + 21 + ]; + _k = new Array(64); + for (var i = 0; i < 64; ++i) { + _k[i] = Math.floor(Math.abs(Math.sin(i + 1)) * 4294967296); + } + _initialized = true; + } + function _update(s, w, bytes) { + var t, a, b, c, d, f, r, i; + var len = bytes.length(); + while (len >= 64) { + a = s.h0; + b = s.h1; + c = s.h2; + d = s.h3; + for (i = 0; i < 16; ++i) { + w[i] = bytes.getInt32Le(); + f = d ^ b & (c ^ d); + t = a + f + _k[i] + w[i]; + r = _r[i]; + a = d; + d = c; + c = b; + b += t << r | t >>> 32 - r; + } + for (; i < 32; ++i) { + f = c ^ d & (b ^ c); + t = a + f + _k[i] + w[_g[i]]; + r = _r[i]; + a = d; + d = c; + c = b; + b += t << r | t >>> 32 - r; + } + for (; i < 48; ++i) { + f = b ^ c ^ d; + t = a + f + _k[i] + w[_g[i]]; + r = _r[i]; + a = d; + d = c; + c = b; + b += t << r | t >>> 32 - r; + } + for (; i < 64; ++i) { + f = c ^ (b | ~d); + t = a + f + _k[i] + w[_g[i]]; + r = _r[i]; + a = d; + d = c; + c = b; + b += t << r | t >>> 32 - r; + } + s.h0 = s.h0 + a | 0; + s.h1 = s.h1 + b | 0; + s.h2 = s.h2 + c | 0; + s.h3 = s.h3 + d | 0; + len -= 64; + } + } + } +}); + +// node_modules/node-forge/lib/pem.js +var require_pem = __commonJS({ + "node_modules/node-forge/lib/pem.js"(exports2, module2) { + var forge3 = require_forge(); + require_util(); + var pem = module2.exports = forge3.pem = forge3.pem || {}; + pem.encode = function(msg, options) { + options = options || {}; + var rval = "-----BEGIN " + msg.type + "-----\r\n"; + var header; + if (msg.procType) { + header = { + name: "Proc-Type", + values: [String(msg.procType.version), msg.procType.type] + }; + rval += foldHeader(header); + } + if (msg.contentDomain) { + header = { name: "Content-Domain", values: [msg.contentDomain] }; + rval += foldHeader(header); + } + if (msg.dekInfo) { + header = { name: "DEK-Info", values: [msg.dekInfo.algorithm] }; + if (msg.dekInfo.parameters) { + header.values.push(msg.dekInfo.parameters); + } + rval += foldHeader(header); + } + if (msg.headers) { + for (var i = 0; i < msg.headers.length; ++i) { + rval += foldHeader(msg.headers[i]); + } + } + if (msg.procType) { + rval += "\r\n"; + } + rval += forge3.util.encode64(msg.body, options.maxline || 64) + "\r\n"; + rval += "-----END " + msg.type + "-----\r\n"; + return rval; + }; + pem.decode = function(str) { + var rval = []; + var rMessage = /\s*-----BEGIN ([A-Z0-9- ]+)-----\r?\n?([\x21-\x7e\s]+?(?:\r?\n\r?\n))?([:A-Za-z0-9+\/=\s]+?)-----END \1-----/g; + var rHeader = /([\x21-\x7e]+):\s*([\x21-\x7e\s^:]+)/; + var rCRLF = /\r?\n/; + var match; + while (true) { + match = rMessage.exec(str); + if (!match) { + break; + } + var type = match[1]; + if (type === "NEW CERTIFICATE REQUEST") { + type = "CERTIFICATE REQUEST"; + } + var msg = { + type, + procType: null, + contentDomain: null, + dekInfo: null, + headers: [], + body: forge3.util.decode64(match[3]) + }; + rval.push(msg); + if (!match[2]) { + continue; + } + var lines = match[2].split(rCRLF); + var li = 0; + while (match && li < lines.length) { + var line = lines[li].replace(/\s+$/, ""); + for (var nl = li + 1; nl < lines.length; ++nl) { + var next = lines[nl]; + if (!/\s/.test(next[0])) { + break; + } + line += next; + li = nl; + } + match = line.match(rHeader); + if (match) { + var header = { name: match[1], values: [] }; + var values = match[2].split(","); + for (var vi = 0; vi < values.length; ++vi) { + header.values.push(ltrim(values[vi])); + } + if (!msg.procType) { + if (header.name !== "Proc-Type") { + throw new Error('Invalid PEM formatted message. The first encapsulated header must be "Proc-Type".'); + } else if (header.values.length !== 2) { + throw new Error('Invalid PEM formatted message. The "Proc-Type" header must have two subfields.'); + } + msg.procType = { version: values[0], type: values[1] }; + } else if (!msg.contentDomain && header.name === "Content-Domain") { + msg.contentDomain = values[0] || ""; + } else if (!msg.dekInfo && header.name === "DEK-Info") { + if (header.values.length === 0) { + throw new Error('Invalid PEM formatted message. The "DEK-Info" header must have at least one subfield.'); + } + msg.dekInfo = { algorithm: values[0], parameters: values[1] || null }; + } else { + msg.headers.push(header); + } + } + ++li; + } + if (msg.procType === "ENCRYPTED" && !msg.dekInfo) { + throw new Error('Invalid PEM formatted message. The "DEK-Info" header must be present if "Proc-Type" is "ENCRYPTED".'); + } + } + if (rval.length === 0) { + throw new Error("Invalid PEM formatted message."); + } + return rval; + }; + function foldHeader(header) { + var rval = header.name + ": "; + var values = []; + var insertSpace = function(match, $1) { + return " " + $1; + }; + for (var i = 0; i < header.values.length; ++i) { + values.push(header.values[i].replace(/^(\S+\r\n)/, insertSpace)); + } + rval += values.join(",") + "\r\n"; + var length = 0; + var candidate = -1; + for (var i = 0; i < rval.length; ++i, ++length) { + if (length > 65 && candidate !== -1) { + var insert = rval[candidate]; + if (insert === ",") { + ++candidate; + rval = rval.substr(0, candidate) + "\r\n " + rval.substr(candidate); + } else { + rval = rval.substr(0, candidate) + "\r\n" + insert + rval.substr(candidate + 1); + } + length = i - candidate - 1; + candidate = -1; + ++i; + } else if (rval[i] === " " || rval[i] === " " || rval[i] === ",") { + candidate = i; + } + } + return rval; + } + function ltrim(str) { + return str.replace(/^\s+/, ""); + } + } +}); + +// node_modules/node-forge/lib/des.js +var require_des = __commonJS({ + "node_modules/node-forge/lib/des.js"(exports2, module2) { + var forge3 = require_forge(); + require_cipher(); + require_cipherModes(); + require_util(); + module2.exports = forge3.des = forge3.des || {}; + forge3.des.startEncrypting = function(key, iv, output, mode) { + var cipher = _createCipher({ + key, + output, + decrypt: false, + mode: mode || (iv === null ? "ECB" : "CBC") + }); + cipher.start(iv); + return cipher; + }; + forge3.des.createEncryptionCipher = function(key, mode) { + return _createCipher({ + key, + output: null, + decrypt: false, + mode + }); + }; + forge3.des.startDecrypting = function(key, iv, output, mode) { + var cipher = _createCipher({ + key, + output, + decrypt: true, + mode: mode || (iv === null ? "ECB" : "CBC") + }); + cipher.start(iv); + return cipher; + }; + forge3.des.createDecryptionCipher = function(key, mode) { + return _createCipher({ + key, + output: null, + decrypt: true, + mode + }); + }; + forge3.des.Algorithm = function(name, mode) { + var self2 = this; + self2.name = name; + self2.mode = new mode({ + blockSize: 8, + cipher: { + encrypt: function(inBlock, outBlock) { + return _updateBlock(self2._keys, inBlock, outBlock, false); + }, + decrypt: function(inBlock, outBlock) { + return _updateBlock(self2._keys, inBlock, outBlock, true); + } + } + }); + self2._init = false; + }; + forge3.des.Algorithm.prototype.initialize = function(options) { + if (this._init) { + return; + } + var key = forge3.util.createBuffer(options.key); + if (this.name.indexOf("3DES") === 0) { + if (key.length() !== 24) { + throw new Error("Invalid Triple-DES key size: " + key.length() * 8); + } + } + this._keys = _createKeys(key); + this._init = true; + }; + registerAlgorithm("DES-ECB", forge3.cipher.modes.ecb); + registerAlgorithm("DES-CBC", forge3.cipher.modes.cbc); + registerAlgorithm("DES-CFB", forge3.cipher.modes.cfb); + registerAlgorithm("DES-OFB", forge3.cipher.modes.ofb); + registerAlgorithm("DES-CTR", forge3.cipher.modes.ctr); + registerAlgorithm("3DES-ECB", forge3.cipher.modes.ecb); + registerAlgorithm("3DES-CBC", forge3.cipher.modes.cbc); + registerAlgorithm("3DES-CFB", forge3.cipher.modes.cfb); + registerAlgorithm("3DES-OFB", forge3.cipher.modes.ofb); + registerAlgorithm("3DES-CTR", forge3.cipher.modes.ctr); + function registerAlgorithm(name, mode) { + var factory = function() { + return new forge3.des.Algorithm(name, mode); + }; + forge3.cipher.registerAlgorithm(name, factory); + } + var spfunction1 = [16843776, 0, 65536, 16843780, 16842756, 66564, 4, 65536, 1024, 16843776, 16843780, 1024, 16778244, 16842756, 16777216, 4, 1028, 16778240, 16778240, 66560, 66560, 16842752, 16842752, 16778244, 65540, 16777220, 16777220, 65540, 0, 1028, 66564, 16777216, 65536, 16843780, 4, 16842752, 16843776, 16777216, 16777216, 1024, 16842756, 65536, 66560, 16777220, 1024, 4, 16778244, 66564, 16843780, 65540, 16842752, 16778244, 16777220, 1028, 66564, 16843776, 1028, 16778240, 16778240, 0, 65540, 66560, 0, 16842756]; + var spfunction2 = [-2146402272, -2147450880, 32768, 1081376, 1048576, 32, -2146435040, -2147450848, -2147483616, -2146402272, -2146402304, -2147483648, -2147450880, 1048576, 32, -2146435040, 1081344, 1048608, -2147450848, 0, -2147483648, 32768, 1081376, -2146435072, 1048608, -2147483616, 0, 1081344, 32800, -2146402304, -2146435072, 32800, 0, 1081376, -2146435040, 1048576, -2147450848, -2146435072, -2146402304, 32768, -2146435072, -2147450880, 32, -2146402272, 1081376, 32, 32768, -2147483648, 32800, -2146402304, 1048576, -2147483616, 1048608, -2147450848, -2147483616, 1048608, 1081344, 0, -2147450880, 32800, -2147483648, -2146435040, -2146402272, 1081344]; + var spfunction3 = [520, 134349312, 0, 134348808, 134218240, 0, 131592, 134218240, 131080, 134217736, 134217736, 131072, 134349320, 131080, 134348800, 520, 134217728, 8, 134349312, 512, 131584, 134348800, 134348808, 131592, 134218248, 131584, 131072, 134218248, 8, 134349320, 512, 134217728, 134349312, 134217728, 131080, 520, 131072, 134349312, 134218240, 0, 512, 131080, 134349320, 134218240, 134217736, 512, 0, 134348808, 134218248, 131072, 134217728, 134349320, 8, 131592, 131584, 134217736, 134348800, 134218248, 520, 134348800, 131592, 8, 134348808, 131584]; + var spfunction4 = [8396801, 8321, 8321, 128, 8396928, 8388737, 8388609, 8193, 0, 8396800, 8396800, 8396929, 129, 0, 8388736, 8388609, 1, 8192, 8388608, 8396801, 128, 8388608, 8193, 8320, 8388737, 1, 8320, 8388736, 8192, 8396928, 8396929, 129, 8388736, 8388609, 8396800, 8396929, 129, 0, 0, 8396800, 8320, 8388736, 8388737, 1, 8396801, 8321, 8321, 128, 8396929, 129, 1, 8192, 8388609, 8193, 8396928, 8388737, 8193, 8320, 8388608, 8396801, 128, 8388608, 8192, 8396928]; + var spfunction5 = [256, 34078976, 34078720, 1107296512, 524288, 256, 1073741824, 34078720, 1074266368, 524288, 33554688, 1074266368, 1107296512, 1107820544, 524544, 1073741824, 33554432, 1074266112, 1074266112, 0, 1073742080, 1107820800, 1107820800, 33554688, 1107820544, 1073742080, 0, 1107296256, 34078976, 33554432, 1107296256, 524544, 524288, 1107296512, 256, 33554432, 1073741824, 34078720, 1107296512, 1074266368, 33554688, 1073741824, 1107820544, 34078976, 1074266368, 256, 33554432, 1107820544, 1107820800, 524544, 1107296256, 1107820800, 34078720, 0, 1074266112, 1107296256, 524544, 33554688, 1073742080, 524288, 0, 1074266112, 34078976, 1073742080]; + var spfunction6 = [536870928, 541065216, 16384, 541081616, 541065216, 16, 541081616, 4194304, 536887296, 4210704, 4194304, 536870928, 4194320, 536887296, 536870912, 16400, 0, 4194320, 536887312, 16384, 4210688, 536887312, 16, 541065232, 541065232, 0, 4210704, 541081600, 16400, 4210688, 541081600, 536870912, 536887296, 16, 541065232, 4210688, 541081616, 4194304, 16400, 536870928, 4194304, 536887296, 536870912, 16400, 536870928, 541081616, 4210688, 541065216, 4210704, 541081600, 0, 541065232, 16, 16384, 541065216, 4210704, 16384, 4194320, 536887312, 0, 541081600, 536870912, 4194320, 536887312]; + var spfunction7 = [2097152, 69206018, 67110914, 0, 2048, 67110914, 2099202, 69208064, 69208066, 2097152, 0, 67108866, 2, 67108864, 69206018, 2050, 67110912, 2099202, 2097154, 67110912, 67108866, 69206016, 69208064, 2097154, 69206016, 2048, 2050, 69208066, 2099200, 2, 67108864, 2099200, 67108864, 2099200, 2097152, 67110914, 67110914, 69206018, 69206018, 2, 2097154, 67108864, 67110912, 2097152, 69208064, 2050, 2099202, 69208064, 2050, 67108866, 69208066, 69206016, 2099200, 0, 2, 69208066, 0, 2099202, 69206016, 2048, 67108866, 67110912, 2048, 2097154]; + var spfunction8 = [268439616, 4096, 262144, 268701760, 268435456, 268439616, 64, 268435456, 262208, 268697600, 268701760, 266240, 268701696, 266304, 4096, 64, 268697600, 268435520, 268439552, 4160, 266240, 262208, 268697664, 268701696, 4160, 0, 0, 268697664, 268435520, 268439552, 266304, 262144, 266304, 262144, 268701696, 4096, 64, 268697664, 4096, 266304, 268439552, 64, 268435520, 268697600, 268697664, 268435456, 262144, 268439616, 0, 268701760, 262208, 268435520, 268697600, 268439552, 268439616, 0, 268701760, 266240, 266240, 4160, 4160, 262208, 268435456, 268701696]; + function _createKeys(key) { + var pc2bytes0 = [0, 4, 536870912, 536870916, 65536, 65540, 536936448, 536936452, 512, 516, 536871424, 536871428, 66048, 66052, 536936960, 536936964], pc2bytes1 = [0, 1, 1048576, 1048577, 67108864, 67108865, 68157440, 68157441, 256, 257, 1048832, 1048833, 67109120, 67109121, 68157696, 68157697], pc2bytes2 = [0, 8, 2048, 2056, 16777216, 16777224, 16779264, 16779272, 0, 8, 2048, 2056, 16777216, 16777224, 16779264, 16779272], pc2bytes3 = [0, 2097152, 134217728, 136314880, 8192, 2105344, 134225920, 136323072, 131072, 2228224, 134348800, 136445952, 139264, 2236416, 134356992, 136454144], pc2bytes4 = [0, 262144, 16, 262160, 0, 262144, 16, 262160, 4096, 266240, 4112, 266256, 4096, 266240, 4112, 266256], pc2bytes5 = [0, 1024, 32, 1056, 0, 1024, 32, 1056, 33554432, 33555456, 33554464, 33555488, 33554432, 33555456, 33554464, 33555488], pc2bytes6 = [0, 268435456, 524288, 268959744, 2, 268435458, 524290, 268959746, 0, 268435456, 524288, 268959744, 2, 268435458, 524290, 268959746], pc2bytes7 = [0, 65536, 2048, 67584, 536870912, 536936448, 536872960, 536938496, 131072, 196608, 133120, 198656, 537001984, 537067520, 537004032, 537069568], pc2bytes8 = [0, 262144, 0, 262144, 2, 262146, 2, 262146, 33554432, 33816576, 33554432, 33816576, 33554434, 33816578, 33554434, 33816578], pc2bytes9 = [0, 268435456, 8, 268435464, 0, 268435456, 8, 268435464, 1024, 268436480, 1032, 268436488, 1024, 268436480, 1032, 268436488], pc2bytes10 = [0, 32, 0, 32, 1048576, 1048608, 1048576, 1048608, 8192, 8224, 8192, 8224, 1056768, 1056800, 1056768, 1056800], pc2bytes11 = [0, 16777216, 512, 16777728, 2097152, 18874368, 2097664, 18874880, 67108864, 83886080, 67109376, 83886592, 69206016, 85983232, 69206528, 85983744], pc2bytes12 = [0, 4096, 134217728, 134221824, 524288, 528384, 134742016, 134746112, 16, 4112, 134217744, 134221840, 524304, 528400, 134742032, 134746128], pc2bytes13 = [0, 4, 256, 260, 0, 4, 256, 260, 1, 5, 257, 261, 1, 5, 257, 261]; + var iterations = key.length() > 8 ? 3 : 1; + var keys = []; + var shifts = [0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0]; + var n = 0, tmp; + for (var j = 0; j < iterations; j++) { + var left = key.getInt32(); + var right = key.getInt32(); + tmp = (left >>> 4 ^ right) & 252645135; + right ^= tmp; + left ^= tmp << 4; + tmp = (right >>> -16 ^ left) & 65535; + left ^= tmp; + right ^= tmp << -16; + tmp = (left >>> 2 ^ right) & 858993459; + right ^= tmp; + left ^= tmp << 2; + tmp = (right >>> -16 ^ left) & 65535; + left ^= tmp; + right ^= tmp << -16; + tmp = (left >>> 1 ^ right) & 1431655765; + right ^= tmp; + left ^= tmp << 1; + tmp = (right >>> 8 ^ left) & 16711935; + left ^= tmp; + right ^= tmp << 8; + tmp = (left >>> 1 ^ right) & 1431655765; + right ^= tmp; + left ^= tmp << 1; + tmp = left << 8 | right >>> 20 & 240; + left = right << 24 | right << 8 & 16711680 | right >>> 8 & 65280 | right >>> 24 & 240; + right = tmp; + for (var i = 0; i < shifts.length; ++i) { + if (shifts[i]) { + left = left << 2 | left >>> 26; + right = right << 2 | right >>> 26; + } else { + left = left << 1 | left >>> 27; + right = right << 1 | right >>> 27; + } + left &= -15; + right &= -15; + var lefttmp = pc2bytes0[left >>> 28] | pc2bytes1[left >>> 24 & 15] | pc2bytes2[left >>> 20 & 15] | pc2bytes3[left >>> 16 & 15] | pc2bytes4[left >>> 12 & 15] | pc2bytes5[left >>> 8 & 15] | pc2bytes6[left >>> 4 & 15]; + var righttmp = pc2bytes7[right >>> 28] | pc2bytes8[right >>> 24 & 15] | pc2bytes9[right >>> 20 & 15] | pc2bytes10[right >>> 16 & 15] | pc2bytes11[right >>> 12 & 15] | pc2bytes12[right >>> 8 & 15] | pc2bytes13[right >>> 4 & 15]; + tmp = (righttmp >>> 16 ^ lefttmp) & 65535; + keys[n++] = lefttmp ^ tmp; + keys[n++] = righttmp ^ tmp << 16; + } + } + return keys; + } + function _updateBlock(keys, input, output, decrypt) { + var iterations = keys.length === 32 ? 3 : 9; + var looping; + if (iterations === 3) { + looping = decrypt ? [30, -2, -2] : [0, 32, 2]; + } else { + looping = decrypt ? [94, 62, -2, 32, 64, 2, 30, -2, -2] : [0, 32, 2, 62, 30, -2, 64, 96, 2]; + } + var tmp; + var left = input[0]; + var right = input[1]; + tmp = (left >>> 4 ^ right) & 252645135; + right ^= tmp; + left ^= tmp << 4; + tmp = (left >>> 16 ^ right) & 65535; + right ^= tmp; + left ^= tmp << 16; + tmp = (right >>> 2 ^ left) & 858993459; + left ^= tmp; + right ^= tmp << 2; + tmp = (right >>> 8 ^ left) & 16711935; + left ^= tmp; + right ^= tmp << 8; + tmp = (left >>> 1 ^ right) & 1431655765; + right ^= tmp; + left ^= tmp << 1; + left = left << 1 | left >>> 31; + right = right << 1 | right >>> 31; + for (var j = 0; j < iterations; j += 3) { + var endloop = looping[j + 1]; + var loopinc = looping[j + 2]; + for (var i = looping[j]; i != endloop; i += loopinc) { + var right1 = right ^ keys[i]; + var right2 = (right >>> 4 | right << 28) ^ keys[i + 1]; + tmp = left; + left = right; + right = tmp ^ (spfunction2[right1 >>> 24 & 63] | spfunction4[right1 >>> 16 & 63] | spfunction6[right1 >>> 8 & 63] | spfunction8[right1 & 63] | spfunction1[right2 >>> 24 & 63] | spfunction3[right2 >>> 16 & 63] | spfunction5[right2 >>> 8 & 63] | spfunction7[right2 & 63]); + } + tmp = left; + left = right; + right = tmp; + } + left = left >>> 1 | left << 31; + right = right >>> 1 | right << 31; + tmp = (left >>> 1 ^ right) & 1431655765; + right ^= tmp; + left ^= tmp << 1; + tmp = (right >>> 8 ^ left) & 16711935; + left ^= tmp; + right ^= tmp << 8; + tmp = (right >>> 2 ^ left) & 858993459; + left ^= tmp; + right ^= tmp << 2; + tmp = (left >>> 16 ^ right) & 65535; + right ^= tmp; + left ^= tmp << 16; + tmp = (left >>> 4 ^ right) & 252645135; + right ^= tmp; + left ^= tmp << 4; + output[0] = left; + output[1] = right; + } + function _createCipher(options) { + options = options || {}; + var mode = (options.mode || "CBC").toUpperCase(); + var algorithm = "DES-" + mode; + var cipher; + if (options.decrypt) { + cipher = forge3.cipher.createDecipher(algorithm, options.key); + } else { + cipher = forge3.cipher.createCipher(algorithm, options.key); + } + var start = cipher.start; + cipher.start = function(iv, options2) { + var output = null; + if (options2 instanceof forge3.util.ByteBuffer) { + output = options2; + options2 = {}; + } + options2 = options2 || {}; + options2.output = output; + options2.iv = iv; + start.call(cipher, options2); + }; + return cipher; + } + } +}); + +// node_modules/node-forge/lib/pbkdf2.js +var require_pbkdf2 = __commonJS({ + "node_modules/node-forge/lib/pbkdf2.js"(exports2, module2) { + var forge3 = require_forge(); + require_hmac(); + require_md(); + require_util(); + var pkcs5 = forge3.pkcs5 = forge3.pkcs5 || {}; + var crypto; + if (forge3.util.isNodejs && !forge3.options.usePureJavaScript) { + crypto = require("crypto"); + } + module2.exports = forge3.pbkdf2 = pkcs5.pbkdf2 = function(p, s, c, dkLen, md, callback) { + if (typeof md === "function") { + callback = md; + md = null; + } + if (forge3.util.isNodejs && !forge3.options.usePureJavaScript && crypto.pbkdf2 && (md === null || typeof md !== "object") && (crypto.pbkdf2Sync.length > 4 || (!md || md === "sha1"))) { + if (typeof md !== "string") { + md = "sha1"; + } + p = Buffer.from(p, "binary"); + s = Buffer.from(s, "binary"); + if (!callback) { + if (crypto.pbkdf2Sync.length === 4) { + return crypto.pbkdf2Sync(p, s, c, dkLen).toString("binary"); + } + return crypto.pbkdf2Sync(p, s, c, dkLen, md).toString("binary"); + } + if (crypto.pbkdf2Sync.length === 4) { + return crypto.pbkdf2(p, s, c, dkLen, function(err2, key) { + if (err2) { + return callback(err2); + } + callback(null, key.toString("binary")); + }); + } + return crypto.pbkdf2(p, s, c, dkLen, md, function(err2, key) { + if (err2) { + return callback(err2); + } + callback(null, key.toString("binary")); + }); + } + if (typeof md === "undefined" || md === null) { + md = "sha1"; + } + if (typeof md === "string") { + if (!(md in forge3.md.algorithms)) { + throw new Error("Unknown hash algorithm: " + md); + } + md = forge3.md[md].create(); + } + var hLen = md.digestLength; + if (dkLen > 4294967295 * hLen) { + var err = new Error("Derived key is too long."); + if (callback) { + return callback(err); + } + throw err; + } + var len = Math.ceil(dkLen / hLen); + var r = dkLen - (len - 1) * hLen; + var prf = forge3.hmac.create(); + prf.start(md, p); + var dk = ""; + var xor, u_c, u_c1; + if (!callback) { + for (var i = 1; i <= len; ++i) { + prf.start(null, null); + prf.update(s); + prf.update(forge3.util.int32ToBytes(i)); + xor = u_c1 = prf.digest().getBytes(); + for (var j = 2; j <= c; ++j) { + prf.start(null, null); + prf.update(u_c1); + u_c = prf.digest().getBytes(); + xor = forge3.util.xorBytes(xor, u_c, hLen); + u_c1 = u_c; + } + dk += i < len ? xor : xor.substr(0, r); + } + return dk; + } + var i = 1, j; + function outer() { + if (i > len) { + return callback(null, dk); + } + prf.start(null, null); + prf.update(s); + prf.update(forge3.util.int32ToBytes(i)); + xor = u_c1 = prf.digest().getBytes(); + j = 2; + inner(); + } + function inner() { + if (j <= c) { + prf.start(null, null); + prf.update(u_c1); + u_c = prf.digest().getBytes(); + xor = forge3.util.xorBytes(xor, u_c, hLen); + u_c1 = u_c; + ++j; + return forge3.util.setImmediate(inner); + } + dk += i < len ? xor : xor.substr(0, r); + ++i; + outer(); + } + outer(); + }; + } +}); + +// node_modules/node-forge/lib/sha256.js +var require_sha256 = __commonJS({ + "node_modules/node-forge/lib/sha256.js"(exports2, module2) { + var forge3 = require_forge(); + require_md(); + require_util(); + var sha256 = module2.exports = forge3.sha256 = forge3.sha256 || {}; + forge3.md.sha256 = forge3.md.algorithms.sha256 = sha256; + sha256.create = function() { + if (!_initialized) { + _init(); + } + var _state = null; + var _input = forge3.util.createBuffer(); + var _w = new Array(64); + var md = { + algorithm: "sha256", + blockLength: 64, + digestLength: 32, + messageLength: 0, + fullMessageLength: null, + messageLengthSize: 8 + }; + md.start = function() { + md.messageLength = 0; + md.fullMessageLength = md.messageLength64 = []; + var int32s = md.messageLengthSize / 4; + for (var i = 0; i < int32s; ++i) { + md.fullMessageLength.push(0); + } + _input = forge3.util.createBuffer(); + _state = { + h0: 1779033703, + h1: 3144134277, + h2: 1013904242, + h3: 2773480762, + h4: 1359893119, + h5: 2600822924, + h6: 528734635, + h7: 1541459225 + }; + return md; + }; + md.start(); + md.update = function(msg, encoding) { + if (encoding === "utf8") { + msg = forge3.util.encodeUtf8(msg); + } + var len = msg.length; + md.messageLength += len; + len = [len / 4294967296 >>> 0, len >>> 0]; + for (var i = md.fullMessageLength.length - 1; i >= 0; --i) { + md.fullMessageLength[i] += len[1]; + len[1] = len[0] + (md.fullMessageLength[i] / 4294967296 >>> 0); + md.fullMessageLength[i] = md.fullMessageLength[i] >>> 0; + len[0] = len[1] / 4294967296 >>> 0; + } + _input.putBytes(msg); + _update(_state, _w, _input); + if (_input.read > 2048 || _input.length() === 0) { + _input.compact(); + } + return md; + }; + md.digest = function() { + var finalBlock = forge3.util.createBuffer(); + finalBlock.putBytes(_input.bytes()); + var remaining = md.fullMessageLength[md.fullMessageLength.length - 1] + md.messageLengthSize; + var overflow = remaining & md.blockLength - 1; + finalBlock.putBytes(_padding.substr(0, md.blockLength - overflow)); + var next, carry; + var bits = md.fullMessageLength[0] * 8; + for (var i = 0; i < md.fullMessageLength.length - 1; ++i) { + next = md.fullMessageLength[i + 1] * 8; + carry = next / 4294967296 >>> 0; + bits += carry; + finalBlock.putInt32(bits >>> 0); + bits = next >>> 0; + } + finalBlock.putInt32(bits); + var s2 = { + h0: _state.h0, + h1: _state.h1, + h2: _state.h2, + h3: _state.h3, + h4: _state.h4, + h5: _state.h5, + h6: _state.h6, + h7: _state.h7 + }; + _update(s2, _w, finalBlock); + var rval = forge3.util.createBuffer(); + rval.putInt32(s2.h0); + rval.putInt32(s2.h1); + rval.putInt32(s2.h2); + rval.putInt32(s2.h3); + rval.putInt32(s2.h4); + rval.putInt32(s2.h5); + rval.putInt32(s2.h6); + rval.putInt32(s2.h7); + return rval; + }; + return md; + }; + var _padding = null; + var _initialized = false; + var _k = null; + function _init() { + _padding = String.fromCharCode(128); + _padding += forge3.util.fillString(String.fromCharCode(0), 64); + _k = [ + 1116352408, + 1899447441, + 3049323471, + 3921009573, + 961987163, + 1508970993, + 2453635748, + 2870763221, + 3624381080, + 310598401, + 607225278, + 1426881987, + 1925078388, + 2162078206, + 2614888103, + 3248222580, + 3835390401, + 4022224774, + 264347078, + 604807628, + 770255983, + 1249150122, + 1555081692, + 1996064986, + 2554220882, + 2821834349, + 2952996808, + 3210313671, + 3336571891, + 3584528711, + 113926993, + 338241895, + 666307205, + 773529912, + 1294757372, + 1396182291, + 1695183700, + 1986661051, + 2177026350, + 2456956037, + 2730485921, + 2820302411, + 3259730800, + 3345764771, + 3516065817, + 3600352804, + 4094571909, + 275423344, + 430227734, + 506948616, + 659060556, + 883997877, + 958139571, + 1322822218, + 1537002063, + 1747873779, + 1955562222, + 2024104815, + 2227730452, + 2361852424, + 2428436474, + 2756734187, + 3204031479, + 3329325298 + ]; + _initialized = true; + } + function _update(s, w, bytes) { + var t1, t2, s0, s1, ch, maj, i, a, b, c, d, e, f, g, h; + var len = bytes.length(); + while (len >= 64) { + for (i = 0; i < 16; ++i) { + w[i] = bytes.getInt32(); + } + for (; i < 64; ++i) { + t1 = w[i - 2]; + t1 = (t1 >>> 17 | t1 << 15) ^ (t1 >>> 19 | t1 << 13) ^ t1 >>> 10; + t2 = w[i - 15]; + t2 = (t2 >>> 7 | t2 << 25) ^ (t2 >>> 18 | t2 << 14) ^ t2 >>> 3; + w[i] = t1 + w[i - 7] + t2 + w[i - 16] | 0; + } + a = s.h0; + b = s.h1; + c = s.h2; + d = s.h3; + e = s.h4; + f = s.h5; + g = s.h6; + h = s.h7; + for (i = 0; i < 64; ++i) { + s1 = (e >>> 6 | e << 26) ^ (e >>> 11 | e << 21) ^ (e >>> 25 | e << 7); + ch = g ^ e & (f ^ g); + s0 = (a >>> 2 | a << 30) ^ (a >>> 13 | a << 19) ^ (a >>> 22 | a << 10); + maj = a & b | c & (a ^ b); + t1 = h + s1 + ch + _k[i] + w[i]; + t2 = s0 + maj; + h = g; + g = f; + f = e; + e = d + t1 >>> 0; + d = c; + c = b; + b = a; + a = t1 + t2 >>> 0; + } + s.h0 = s.h0 + a | 0; + s.h1 = s.h1 + b | 0; + s.h2 = s.h2 + c | 0; + s.h3 = s.h3 + d | 0; + s.h4 = s.h4 + e | 0; + s.h5 = s.h5 + f | 0; + s.h6 = s.h6 + g | 0; + s.h7 = s.h7 + h | 0; + len -= 64; + } + } + } +}); + +// node_modules/node-forge/lib/prng.js +var require_prng = __commonJS({ + "node_modules/node-forge/lib/prng.js"(exports2, module2) { + var forge3 = require_forge(); + require_util(); + var _crypto = null; + if (forge3.util.isNodejs && !forge3.options.usePureJavaScript && !process.versions["node-webkit"]) { + _crypto = require("crypto"); + } + var prng = module2.exports = forge3.prng = forge3.prng || {}; + prng.create = function(plugin) { + var ctx = { + plugin, + key: null, + seed: null, + time: null, + reseeds: 0, + generated: 0, + keyBytes: "" + }; + var md = plugin.md; + var pools = new Array(32); + for (var i = 0; i < 32; ++i) { + pools[i] = md.create(); + } + ctx.pools = pools; + ctx.pool = 0; + ctx.generate = function(count, callback) { + if (!callback) { + return ctx.generateSync(count); + } + var cipher = ctx.plugin.cipher; + var increment = ctx.plugin.increment; + var formatKey = ctx.plugin.formatKey; + var formatSeed = ctx.plugin.formatSeed; + var b = forge3.util.createBuffer(); + ctx.key = null; + generate(); + function generate(err) { + if (err) { + return callback(err); + } + if (b.length() >= count) { + return callback(null, b.getBytes(count)); + } + if (ctx.generated > 1048575) { + ctx.key = null; + } + if (ctx.key === null) { + return forge3.util.nextTick(function() { + _reseed(generate); + }); + } + var bytes = cipher(ctx.key, ctx.seed); + ctx.generated += bytes.length; + b.putBytes(bytes); + ctx.key = formatKey(cipher(ctx.key, increment(ctx.seed))); + ctx.seed = formatSeed(cipher(ctx.key, ctx.seed)); + forge3.util.setImmediate(generate); + } + }; + ctx.generateSync = function(count) { + var cipher = ctx.plugin.cipher; + var increment = ctx.plugin.increment; + var formatKey = ctx.plugin.formatKey; + var formatSeed = ctx.plugin.formatSeed; + ctx.key = null; + var b = forge3.util.createBuffer(); + while (b.length() < count) { + if (ctx.generated > 1048575) { + ctx.key = null; + } + if (ctx.key === null) { + _reseedSync(); + } + var bytes = cipher(ctx.key, ctx.seed); + ctx.generated += bytes.length; + b.putBytes(bytes); + ctx.key = formatKey(cipher(ctx.key, increment(ctx.seed))); + ctx.seed = formatSeed(cipher(ctx.key, ctx.seed)); + } + return b.getBytes(count); + }; + function _reseed(callback) { + if (ctx.pools[0].messageLength >= 32) { + _seed(); + return callback(); + } + var needed = 32 - ctx.pools[0].messageLength << 5; + ctx.seedFile(needed, function(err, bytes) { + if (err) { + return callback(err); + } + ctx.collect(bytes); + _seed(); + callback(); + }); + } + function _reseedSync() { + if (ctx.pools[0].messageLength >= 32) { + return _seed(); + } + var needed = 32 - ctx.pools[0].messageLength << 5; + ctx.collect(ctx.seedFileSync(needed)); + _seed(); + } + function _seed() { + ctx.reseeds = ctx.reseeds === 4294967295 ? 0 : ctx.reseeds + 1; + var md2 = ctx.plugin.md.create(); + md2.update(ctx.keyBytes); + var _2powK = 1; + for (var k = 0; k < 32; ++k) { + if (ctx.reseeds % _2powK === 0) { + md2.update(ctx.pools[k].digest().getBytes()); + ctx.pools[k].start(); + } + _2powK = _2powK << 1; + } + ctx.keyBytes = md2.digest().getBytes(); + md2.start(); + md2.update(ctx.keyBytes); + var seedBytes = md2.digest().getBytes(); + ctx.key = ctx.plugin.formatKey(ctx.keyBytes); + ctx.seed = ctx.plugin.formatSeed(seedBytes); + ctx.generated = 0; + } + function defaultSeedFile(needed) { + var getRandomValues = null; + var globalScope = forge3.util.globalScope; + var _crypto2 = globalScope.crypto || globalScope.msCrypto; + if (_crypto2 && _crypto2.getRandomValues) { + getRandomValues = function(arr) { + return _crypto2.getRandomValues(arr); + }; + } + var b = forge3.util.createBuffer(); + if (getRandomValues) { + while (b.length() < needed) { + var count = Math.max(1, Math.min(needed - b.length(), 65536) / 4); + var entropy = new Uint32Array(Math.floor(count)); + try { + getRandomValues(entropy); + for (var i2 = 0; i2 < entropy.length; ++i2) { + b.putInt32(entropy[i2]); + } + } catch (e) { + if (!(typeof QuotaExceededError !== "undefined" && e instanceof QuotaExceededError)) { + throw e; + } + } + } + } + if (b.length() < needed) { + var hi, lo, next; + var seed = Math.floor(Math.random() * 65536); + while (b.length() < needed) { + lo = 16807 * (seed & 65535); + hi = 16807 * (seed >> 16); + lo += (hi & 32767) << 16; + lo += hi >> 15; + lo = (lo & 2147483647) + (lo >> 31); + seed = lo & 4294967295; + for (var i2 = 0; i2 < 3; ++i2) { + next = seed >>> (i2 << 3); + next ^= Math.floor(Math.random() * 256); + b.putByte(next & 255); + } + } + } + return b.getBytes(needed); + } + if (_crypto) { + ctx.seedFile = function(needed, callback) { + _crypto.randomBytes(needed, function(err, bytes) { + if (err) { + return callback(err); + } + callback(null, bytes.toString()); + }); + }; + ctx.seedFileSync = function(needed) { + return _crypto.randomBytes(needed).toString(); + }; + } else { + ctx.seedFile = function(needed, callback) { + try { + callback(null, defaultSeedFile(needed)); + } catch (e) { + callback(e); + } + }; + ctx.seedFileSync = defaultSeedFile; + } + ctx.collect = function(bytes) { + var count = bytes.length; + for (var i2 = 0; i2 < count; ++i2) { + ctx.pools[ctx.pool].update(bytes.substr(i2, 1)); + ctx.pool = ctx.pool === 31 ? 0 : ctx.pool + 1; + } + }; + ctx.collectInt = function(i2, n) { + var bytes = ""; + for (var x = 0; x < n; x += 8) { + bytes += String.fromCharCode(i2 >> x & 255); + } + ctx.collect(bytes); + }; + ctx.registerWorker = function(worker) { + if (worker === self) { + ctx.seedFile = function(needed, callback) { + function listener2(e) { + var data = e.data; + if (data.forge && data.forge.prng) { + self.removeEventListener("message", listener2); + callback(data.forge.prng.err, data.forge.prng.bytes); + } + } + self.addEventListener("message", listener2); + self.postMessage({ forge: { prng: { needed } } }); + }; + } else { + var listener = function(e) { + var data = e.data; + if (data.forge && data.forge.prng) { + ctx.seedFile(data.forge.prng.needed, function(err, bytes) { + worker.postMessage({ forge: { prng: { err, bytes } } }); + }); + } + }; + worker.addEventListener("message", listener); + } + }; + return ctx; + }; + } +}); + +// node_modules/node-forge/lib/random.js +var require_random = __commonJS({ + "node_modules/node-forge/lib/random.js"(exports2, module2) { + var forge3 = require_forge(); + require_aes(); + require_sha256(); + require_prng(); + require_util(); + (function() { + if (forge3.random && forge3.random.getBytes) { + module2.exports = forge3.random; + return; + } + (function(jQuery2) { + var prng_aes = {}; + var _prng_aes_output = new Array(4); + var _prng_aes_buffer = forge3.util.createBuffer(); + prng_aes.formatKey = function(key2) { + var tmp = forge3.util.createBuffer(key2); + key2 = new Array(4); + key2[0] = tmp.getInt32(); + key2[1] = tmp.getInt32(); + key2[2] = tmp.getInt32(); + key2[3] = tmp.getInt32(); + return forge3.aes._expandKey(key2, false); + }; + prng_aes.formatSeed = function(seed) { + var tmp = forge3.util.createBuffer(seed); + seed = new Array(4); + seed[0] = tmp.getInt32(); + seed[1] = tmp.getInt32(); + seed[2] = tmp.getInt32(); + seed[3] = tmp.getInt32(); + return seed; + }; + prng_aes.cipher = function(key2, seed) { + forge3.aes._updateBlock(key2, seed, _prng_aes_output, false); + _prng_aes_buffer.putInt32(_prng_aes_output[0]); + _prng_aes_buffer.putInt32(_prng_aes_output[1]); + _prng_aes_buffer.putInt32(_prng_aes_output[2]); + _prng_aes_buffer.putInt32(_prng_aes_output[3]); + return _prng_aes_buffer.getBytes(); + }; + prng_aes.increment = function(seed) { + ++seed[3]; + return seed; + }; + prng_aes.md = forge3.md.sha256; + function spawnPrng() { + var ctx = forge3.prng.create(prng_aes); + ctx.getBytes = function(count, callback) { + return ctx.generate(count, callback); + }; + ctx.getBytesSync = function(count) { + return ctx.generate(count); + }; + return ctx; + } + var _ctx = spawnPrng(); + var getRandomValues = null; + var globalScope = forge3.util.globalScope; + var _crypto = globalScope.crypto || globalScope.msCrypto; + if (_crypto && _crypto.getRandomValues) { + getRandomValues = function(arr) { + return _crypto.getRandomValues(arr); + }; + } + if (forge3.options.usePureJavaScript || !forge3.util.isNodejs && !getRandomValues) { + if (typeof window === "undefined" || window.document === void 0) { + } + _ctx.collectInt(+new Date(), 32); + if (typeof navigator !== "undefined") { + var _navBytes = ""; + for (var key in navigator) { + try { + if (typeof navigator[key] == "string") { + _navBytes += navigator[key]; + } + } catch (e) { + } + } + _ctx.collect(_navBytes); + _navBytes = null; + } + if (jQuery2) { + jQuery2().mousemove(function(e) { + _ctx.collectInt(e.clientX, 16); + _ctx.collectInt(e.clientY, 16); + }); + jQuery2().keypress(function(e) { + _ctx.collectInt(e.charCode, 8); + }); + } + } + if (!forge3.random) { + forge3.random = _ctx; + } else { + for (var key in _ctx) { + forge3.random[key] = _ctx[key]; + } + } + forge3.random.createInstance = spawnPrng; + module2.exports = forge3.random; + })(typeof jQuery !== "undefined" ? jQuery : null); + })(); + } +}); + +// node_modules/node-forge/lib/rc2.js +var require_rc2 = __commonJS({ + "node_modules/node-forge/lib/rc2.js"(exports2, module2) { + var forge3 = require_forge(); + require_util(); + var piTable = [ + 217, + 120, + 249, + 196, + 25, + 221, + 181, + 237, + 40, + 233, + 253, + 121, + 74, + 160, + 216, + 157, + 198, + 126, + 55, + 131, + 43, + 118, + 83, + 142, + 98, + 76, + 100, + 136, + 68, + 139, + 251, + 162, + 23, + 154, + 89, + 245, + 135, + 179, + 79, + 19, + 97, + 69, + 109, + 141, + 9, + 129, + 125, + 50, + 189, + 143, + 64, + 235, + 134, + 183, + 123, + 11, + 240, + 149, + 33, + 34, + 92, + 107, + 78, + 130, + 84, + 214, + 101, + 147, + 206, + 96, + 178, + 28, + 115, + 86, + 192, + 20, + 167, + 140, + 241, + 220, + 18, + 117, + 202, + 31, + 59, + 190, + 228, + 209, + 66, + 61, + 212, + 48, + 163, + 60, + 182, + 38, + 111, + 191, + 14, + 218, + 70, + 105, + 7, + 87, + 39, + 242, + 29, + 155, + 188, + 148, + 67, + 3, + 248, + 17, + 199, + 246, + 144, + 239, + 62, + 231, + 6, + 195, + 213, + 47, + 200, + 102, + 30, + 215, + 8, + 232, + 234, + 222, + 128, + 82, + 238, + 247, + 132, + 170, + 114, + 172, + 53, + 77, + 106, + 42, + 150, + 26, + 210, + 113, + 90, + 21, + 73, + 116, + 75, + 159, + 208, + 94, + 4, + 24, + 164, + 236, + 194, + 224, + 65, + 110, + 15, + 81, + 203, + 204, + 36, + 145, + 175, + 80, + 161, + 244, + 112, + 57, + 153, + 124, + 58, + 133, + 35, + 184, + 180, + 122, + 252, + 2, + 54, + 91, + 37, + 85, + 151, + 49, + 45, + 93, + 250, + 152, + 227, + 138, + 146, + 174, + 5, + 223, + 41, + 16, + 103, + 108, + 186, + 201, + 211, + 0, + 230, + 207, + 225, + 158, + 168, + 44, + 99, + 22, + 1, + 63, + 88, + 226, + 137, + 169, + 13, + 56, + 52, + 27, + 171, + 51, + 255, + 176, + 187, + 72, + 12, + 95, + 185, + 177, + 205, + 46, + 197, + 243, + 219, + 71, + 229, + 165, + 156, + 119, + 10, + 166, + 32, + 104, + 254, + 127, + 193, + 173 + ]; + var s = [1, 2, 3, 5]; + var rol = function(word, bits) { + return word << bits & 65535 | (word & 65535) >> 16 - bits; + }; + var ror = function(word, bits) { + return (word & 65535) >> bits | word << 16 - bits & 65535; + }; + module2.exports = forge3.rc2 = forge3.rc2 || {}; + forge3.rc2.expandKey = function(key, effKeyBits) { + if (typeof key === "string") { + key = forge3.util.createBuffer(key); + } + effKeyBits = effKeyBits || 128; + var L = key; + var T = key.length(); + var T1 = effKeyBits; + var T8 = Math.ceil(T1 / 8); + var TM = 255 >> (T1 & 7); + var i; + for (i = T; i < 128; i++) { + L.putByte(piTable[L.at(i - 1) + L.at(i - T) & 255]); + } + L.setAt(128 - T8, piTable[L.at(128 - T8) & TM]); + for (i = 127 - T8; i >= 0; i--) { + L.setAt(i, piTable[L.at(i + 1) ^ L.at(i + T8)]); + } + return L; + }; + var createCipher = function(key, bits, encrypt) { + var _finish = false, _input = null, _output = null, _iv = null; + var mixRound, mashRound; + var i, j, K = []; + key = forge3.rc2.expandKey(key, bits); + for (i = 0; i < 64; i++) { + K.push(key.getInt16Le()); + } + if (encrypt) { + mixRound = function(R) { + for (i = 0; i < 4; i++) { + R[i] += K[j] + (R[(i + 3) % 4] & R[(i + 2) % 4]) + (~R[(i + 3) % 4] & R[(i + 1) % 4]); + R[i] = rol(R[i], s[i]); + j++; + } + }; + mashRound = function(R) { + for (i = 0; i < 4; i++) { + R[i] += K[R[(i + 3) % 4] & 63]; + } + }; + } else { + mixRound = function(R) { + for (i = 3; i >= 0; i--) { + R[i] = ror(R[i], s[i]); + R[i] -= K[j] + (R[(i + 3) % 4] & R[(i + 2) % 4]) + (~R[(i + 3) % 4] & R[(i + 1) % 4]); + j--; + } + }; + mashRound = function(R) { + for (i = 3; i >= 0; i--) { + R[i] -= K[R[(i + 3) % 4] & 63]; + } + }; + } + var runPlan = function(plan) { + var R = []; + for (i = 0; i < 4; i++) { + var val = _input.getInt16Le(); + if (_iv !== null) { + if (encrypt) { + val ^= _iv.getInt16Le(); + } else { + _iv.putInt16Le(val); + } + } + R.push(val & 65535); + } + j = encrypt ? 0 : 63; + for (var ptr = 0; ptr < plan.length; ptr++) { + for (var ctr = 0; ctr < plan[ptr][0]; ctr++) { + plan[ptr][1](R); + } + } + for (i = 0; i < 4; i++) { + if (_iv !== null) { + if (encrypt) { + _iv.putInt16Le(R[i]); + } else { + R[i] ^= _iv.getInt16Le(); + } + } + _output.putInt16Le(R[i]); + } + }; + var cipher = null; + cipher = { + start: function(iv, output) { + if (iv) { + if (typeof iv === "string") { + iv = forge3.util.createBuffer(iv); + } + } + _finish = false; + _input = forge3.util.createBuffer(); + _output = output || new forge3.util.createBuffer(); + _iv = iv; + cipher.output = _output; + }, + update: function(input) { + if (!_finish) { + _input.putBuffer(input); + } + while (_input.length() >= 8) { + runPlan([ + [5, mixRound], + [1, mashRound], + [6, mixRound], + [1, mashRound], + [5, mixRound] + ]); + } + }, + finish: function(pad) { + var rval = true; + if (encrypt) { + if (pad) { + rval = pad(8, _input, !encrypt); + } else { + var padding = _input.length() === 8 ? 8 : 8 - _input.length(); + _input.fillWithByte(padding, padding); + } + } + if (rval) { + _finish = true; + cipher.update(); + } + if (!encrypt) { + rval = _input.length() === 0; + if (rval) { + if (pad) { + rval = pad(8, _output, !encrypt); + } else { + var len = _output.length(); + var count = _output.at(len - 1); + if (count > len) { + rval = false; + } else { + _output.truncate(count); + } + } + } + } + return rval; + } + }; + return cipher; + }; + forge3.rc2.startEncrypting = function(key, iv, output) { + var cipher = forge3.rc2.createEncryptionCipher(key, 128); + cipher.start(iv, output); + return cipher; + }; + forge3.rc2.createEncryptionCipher = function(key, bits) { + return createCipher(key, bits, true); + }; + forge3.rc2.startDecrypting = function(key, iv, output) { + var cipher = forge3.rc2.createDecryptionCipher(key, 128); + cipher.start(iv, output); + return cipher; + }; + forge3.rc2.createDecryptionCipher = function(key, bits) { + return createCipher(key, bits, false); + }; + } +}); + +// node_modules/node-forge/lib/jsbn.js +var require_jsbn = __commonJS({ + "node_modules/node-forge/lib/jsbn.js"(exports2, module2) { + var forge3 = require_forge(); + module2.exports = forge3.jsbn = forge3.jsbn || {}; + var dbits; + var canary = 244837814094590; + var j_lm = (canary & 16777215) == 15715070; + function BigInteger(a, b, c) { + this.data = []; + if (a != null) + if (typeof a == "number") + this.fromNumber(a, b, c); + else if (b == null && typeof a != "string") + this.fromString(a, 256); + else + this.fromString(a, b); + } + forge3.jsbn.BigInteger = BigInteger; + function nbi() { + return new BigInteger(null); + } + function am1(i, x, w, j, c, n) { + while (--n >= 0) { + var v = x * this.data[i++] + w.data[j] + c; + c = Math.floor(v / 67108864); + w.data[j++] = v & 67108863; + } + return c; + } + function am2(i, x, w, j, c, n) { + var xl = x & 32767, xh = x >> 15; + while (--n >= 0) { + var l = this.data[i] & 32767; + var h = this.data[i++] >> 15; + var m = xh * l + h * xl; + l = xl * l + ((m & 32767) << 15) + w.data[j] + (c & 1073741823); + c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30); + w.data[j++] = l & 1073741823; + } + return c; + } + function am3(i, x, w, j, c, n) { + var xl = x & 16383, xh = x >> 14; + while (--n >= 0) { + var l = this.data[i] & 16383; + var h = this.data[i++] >> 14; + var m = xh * l + h * xl; + l = xl * l + ((m & 16383) << 14) + w.data[j] + c; + c = (l >> 28) + (m >> 14) + xh * h; + w.data[j++] = l & 268435455; + } + return c; + } + if (typeof navigator === "undefined") { + BigInteger.prototype.am = am3; + dbits = 28; + } else if (j_lm && navigator.appName == "Microsoft Internet Explorer") { + BigInteger.prototype.am = am2; + dbits = 30; + } else if (j_lm && navigator.appName != "Netscape") { + BigInteger.prototype.am = am1; + dbits = 26; + } else { + BigInteger.prototype.am = am3; + dbits = 28; + } + BigInteger.prototype.DB = dbits; + BigInteger.prototype.DM = (1 << dbits) - 1; + BigInteger.prototype.DV = 1 << dbits; + var BI_FP = 52; + BigInteger.prototype.FV = Math.pow(2, BI_FP); + BigInteger.prototype.F1 = BI_FP - dbits; + BigInteger.prototype.F2 = 2 * dbits - BI_FP; + var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz"; + var BI_RC = new Array(); + var rr; + var vv; + rr = "0".charCodeAt(0); + for (vv = 0; vv <= 9; ++vv) + BI_RC[rr++] = vv; + rr = "a".charCodeAt(0); + for (vv = 10; vv < 36; ++vv) + BI_RC[rr++] = vv; + rr = "A".charCodeAt(0); + for (vv = 10; vv < 36; ++vv) + BI_RC[rr++] = vv; + function int2char(n) { + return BI_RM.charAt(n); + } + function intAt(s, i) { + var c = BI_RC[s.charCodeAt(i)]; + return c == null ? -1 : c; + } + function bnpCopyTo(r) { + for (var i = this.t - 1; i >= 0; --i) + r.data[i] = this.data[i]; + r.t = this.t; + r.s = this.s; + } + function bnpFromInt(x) { + this.t = 1; + this.s = x < 0 ? -1 : 0; + if (x > 0) + this.data[0] = x; + else if (x < -1) + this.data[0] = x + this.DV; + else + this.t = 0; + } + function nbv(i) { + var r = nbi(); + r.fromInt(i); + return r; + } + function bnpFromString(s, b) { + var k; + if (b == 16) + k = 4; + else if (b == 8) + k = 3; + else if (b == 256) + k = 8; + else if (b == 2) + k = 1; + else if (b == 32) + k = 5; + else if (b == 4) + k = 2; + else { + this.fromRadix(s, b); + return; + } + this.t = 0; + this.s = 0; + var i = s.length, mi = false, sh = 0; + while (--i >= 0) { + var x = k == 8 ? s[i] & 255 : intAt(s, i); + if (x < 0) { + if (s.charAt(i) == "-") + mi = true; + continue; + } + mi = false; + if (sh == 0) + this.data[this.t++] = x; + else if (sh + k > this.DB) { + this.data[this.t - 1] |= (x & (1 << this.DB - sh) - 1) << sh; + this.data[this.t++] = x >> this.DB - sh; + } else + this.data[this.t - 1] |= x << sh; + sh += k; + if (sh >= this.DB) + sh -= this.DB; + } + if (k == 8 && (s[0] & 128) != 0) { + this.s = -1; + if (sh > 0) + this.data[this.t - 1] |= (1 << this.DB - sh) - 1 << sh; + } + this.clamp(); + if (mi) + BigInteger.ZERO.subTo(this, this); + } + function bnpClamp() { + var c = this.s & this.DM; + while (this.t > 0 && this.data[this.t - 1] == c) + --this.t; + } + function bnToString(b) { + if (this.s < 0) + return "-" + this.negate().toString(b); + var k; + if (b == 16) + k = 4; + else if (b == 8) + k = 3; + else if (b == 2) + k = 1; + else if (b == 32) + k = 5; + else if (b == 4) + k = 2; + else + return this.toRadix(b); + var km = (1 << k) - 1, d, m = false, r = "", i = this.t; + var p = this.DB - i * this.DB % k; + if (i-- > 0) { + if (p < this.DB && (d = this.data[i] >> p) > 0) { + m = true; + r = int2char(d); + } + while (i >= 0) { + if (p < k) { + d = (this.data[i] & (1 << p) - 1) << k - p; + d |= this.data[--i] >> (p += this.DB - k); + } else { + d = this.data[i] >> (p -= k) & km; + if (p <= 0) { + p += this.DB; + --i; + } + } + if (d > 0) + m = true; + if (m) + r += int2char(d); + } + } + return m ? r : "0"; + } + function bnNegate() { + var r = nbi(); + BigInteger.ZERO.subTo(this, r); + return r; + } + function bnAbs() { + return this.s < 0 ? this.negate() : this; + } + function bnCompareTo(a) { + var r = this.s - a.s; + if (r != 0) + return r; + var i = this.t; + r = i - a.t; + if (r != 0) + return this.s < 0 ? -r : r; + while (--i >= 0) + if ((r = this.data[i] - a.data[i]) != 0) + return r; + return 0; + } + function nbits(x) { + var r = 1, t; + if ((t = x >>> 16) != 0) { + x = t; + r += 16; + } + if ((t = x >> 8) != 0) { + x = t; + r += 8; + } + if ((t = x >> 4) != 0) { + x = t; + r += 4; + } + if ((t = x >> 2) != 0) { + x = t; + r += 2; + } + if ((t = x >> 1) != 0) { + x = t; + r += 1; + } + return r; + } + function bnBitLength() { + if (this.t <= 0) + return 0; + return this.DB * (this.t - 1) + nbits(this.data[this.t - 1] ^ this.s & this.DM); + } + function bnpDLShiftTo(n, r) { + var i; + for (i = this.t - 1; i >= 0; --i) + r.data[i + n] = this.data[i]; + for (i = n - 1; i >= 0; --i) + r.data[i] = 0; + r.t = this.t + n; + r.s = this.s; + } + function bnpDRShiftTo(n, r) { + for (var i = n; i < this.t; ++i) + r.data[i - n] = this.data[i]; + r.t = Math.max(this.t - n, 0); + r.s = this.s; + } + function bnpLShiftTo(n, r) { + var bs = n % this.DB; + var cbs = this.DB - bs; + var bm = (1 << cbs) - 1; + var ds = Math.floor(n / this.DB), c = this.s << bs & this.DM, i; + for (i = this.t - 1; i >= 0; --i) { + r.data[i + ds + 1] = this.data[i] >> cbs | c; + c = (this.data[i] & bm) << bs; + } + for (i = ds - 1; i >= 0; --i) + r.data[i] = 0; + r.data[ds] = c; + r.t = this.t + ds + 1; + r.s = this.s; + r.clamp(); + } + function bnpRShiftTo(n, r) { + r.s = this.s; + var ds = Math.floor(n / this.DB); + if (ds >= this.t) { + r.t = 0; + return; + } + var bs = n % this.DB; + var cbs = this.DB - bs; + var bm = (1 << bs) - 1; + r.data[0] = this.data[ds] >> bs; + for (var i = ds + 1; i < this.t; ++i) { + r.data[i - ds - 1] |= (this.data[i] & bm) << cbs; + r.data[i - ds] = this.data[i] >> bs; + } + if (bs > 0) + r.data[this.t - ds - 1] |= (this.s & bm) << cbs; + r.t = this.t - ds; + r.clamp(); + } + function bnpSubTo(a, r) { + var i = 0, c = 0, m = Math.min(a.t, this.t); + while (i < m) { + c += this.data[i] - a.data[i]; + r.data[i++] = c & this.DM; + c >>= this.DB; + } + if (a.t < this.t) { + c -= a.s; + while (i < this.t) { + c += this.data[i]; + r.data[i++] = c & this.DM; + c >>= this.DB; + } + c += this.s; + } else { + c += this.s; + while (i < a.t) { + c -= a.data[i]; + r.data[i++] = c & this.DM; + c >>= this.DB; + } + c -= a.s; + } + r.s = c < 0 ? -1 : 0; + if (c < -1) + r.data[i++] = this.DV + c; + else if (c > 0) + r.data[i++] = c; + r.t = i; + r.clamp(); + } + function bnpMultiplyTo(a, r) { + var x = this.abs(), y = a.abs(); + var i = x.t; + r.t = i + y.t; + while (--i >= 0) + r.data[i] = 0; + for (i = 0; i < y.t; ++i) + r.data[i + x.t] = x.am(0, y.data[i], r, i, 0, x.t); + r.s = 0; + r.clamp(); + if (this.s != a.s) + BigInteger.ZERO.subTo(r, r); + } + function bnpSquareTo(r) { + var x = this.abs(); + var i = r.t = 2 * x.t; + while (--i >= 0) + r.data[i] = 0; + for (i = 0; i < x.t - 1; ++i) { + var c = x.am(i, x.data[i], r, 2 * i, 0, 1); + if ((r.data[i + x.t] += x.am(i + 1, 2 * x.data[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV) { + r.data[i + x.t] -= x.DV; + r.data[i + x.t + 1] = 1; + } + } + if (r.t > 0) + r.data[r.t - 1] += x.am(i, x.data[i], r, 2 * i, 0, 1); + r.s = 0; + r.clamp(); + } + function bnpDivRemTo(m, q, r) { + var pm = m.abs(); + if (pm.t <= 0) + return; + var pt = this.abs(); + if (pt.t < pm.t) { + if (q != null) + q.fromInt(0); + if (r != null) + this.copyTo(r); + return; + } + if (r == null) + r = nbi(); + var y = nbi(), ts = this.s, ms = m.s; + var nsh = this.DB - nbits(pm.data[pm.t - 1]); + if (nsh > 0) { + pm.lShiftTo(nsh, y); + pt.lShiftTo(nsh, r); + } else { + pm.copyTo(y); + pt.copyTo(r); + } + var ys = y.t; + var y0 = y.data[ys - 1]; + if (y0 == 0) + return; + var yt = y0 * (1 << this.F1) + (ys > 1 ? y.data[ys - 2] >> this.F2 : 0); + var d1 = this.FV / yt, d2 = (1 << this.F1) / yt, e = 1 << this.F2; + var i = r.t, j = i - ys, t = q == null ? nbi() : q; + y.dlShiftTo(j, t); + if (r.compareTo(t) >= 0) { + r.data[r.t++] = 1; + r.subTo(t, r); + } + BigInteger.ONE.dlShiftTo(ys, t); + t.subTo(y, y); + while (y.t < ys) + y.data[y.t++] = 0; + while (--j >= 0) { + var qd = r.data[--i] == y0 ? this.DM : Math.floor(r.data[i] * d1 + (r.data[i - 1] + e) * d2); + if ((r.data[i] += y.am(0, qd, r, j, 0, ys)) < qd) { + y.dlShiftTo(j, t); + r.subTo(t, r); + while (r.data[i] < --qd) + r.subTo(t, r); + } + } + if (q != null) { + r.drShiftTo(ys, q); + if (ts != ms) + BigInteger.ZERO.subTo(q, q); + } + r.t = ys; + r.clamp(); + if (nsh > 0) + r.rShiftTo(nsh, r); + if (ts < 0) + BigInteger.ZERO.subTo(r, r); + } + function bnMod(a) { + var r = nbi(); + this.abs().divRemTo(a, null, r); + if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) + a.subTo(r, r); + return r; + } + function Classic(m) { + this.m = m; + } + function cConvert(x) { + if (x.s < 0 || x.compareTo(this.m) >= 0) + return x.mod(this.m); + else + return x; + } + function cRevert(x) { + return x; + } + function cReduce(x) { + x.divRemTo(this.m, null, x); + } + function cMulTo(x, y, r) { + x.multiplyTo(y, r); + this.reduce(r); + } + function cSqrTo(x, r) { + x.squareTo(r); + this.reduce(r); + } + Classic.prototype.convert = cConvert; + Classic.prototype.revert = cRevert; + Classic.prototype.reduce = cReduce; + Classic.prototype.mulTo = cMulTo; + Classic.prototype.sqrTo = cSqrTo; + function bnpInvDigit() { + if (this.t < 1) + return 0; + var x = this.data[0]; + if ((x & 1) == 0) + return 0; + var y = x & 3; + y = y * (2 - (x & 15) * y) & 15; + y = y * (2 - (x & 255) * y) & 255; + y = y * (2 - ((x & 65535) * y & 65535)) & 65535; + y = y * (2 - x * y % this.DV) % this.DV; + return y > 0 ? this.DV - y : -y; + } + function Montgomery(m) { + this.m = m; + this.mp = m.invDigit(); + this.mpl = this.mp & 32767; + this.mph = this.mp >> 15; + this.um = (1 << m.DB - 15) - 1; + this.mt2 = 2 * m.t; + } + function montConvert(x) { + var r = nbi(); + x.abs().dlShiftTo(this.m.t, r); + r.divRemTo(this.m, null, r); + if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) + this.m.subTo(r, r); + return r; + } + function montRevert(x) { + var r = nbi(); + x.copyTo(r); + this.reduce(r); + return r; + } + function montReduce(x) { + while (x.t <= this.mt2) + x.data[x.t++] = 0; + for (var i = 0; i < this.m.t; ++i) { + var j = x.data[i] & 32767; + var u0 = j * this.mpl + ((j * this.mph + (x.data[i] >> 15) * this.mpl & this.um) << 15) & x.DM; + j = i + this.m.t; + x.data[j] += this.m.am(0, u0, x, i, 0, this.m.t); + while (x.data[j] >= x.DV) { + x.data[j] -= x.DV; + x.data[++j]++; + } + } + x.clamp(); + x.drShiftTo(this.m.t, x); + if (x.compareTo(this.m) >= 0) + x.subTo(this.m, x); + } + function montSqrTo(x, r) { + x.squareTo(r); + this.reduce(r); + } + function montMulTo(x, y, r) { + x.multiplyTo(y, r); + this.reduce(r); + } + Montgomery.prototype.convert = montConvert; + Montgomery.prototype.revert = montRevert; + Montgomery.prototype.reduce = montReduce; + Montgomery.prototype.mulTo = montMulTo; + Montgomery.prototype.sqrTo = montSqrTo; + function bnpIsEven() { + return (this.t > 0 ? this.data[0] & 1 : this.s) == 0; + } + function bnpExp(e, z) { + if (e > 4294967295 || e < 1) + return BigInteger.ONE; + var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e) - 1; + g.copyTo(r); + while (--i >= 0) { + z.sqrTo(r, r2); + if ((e & 1 << i) > 0) + z.mulTo(r2, g, r); + else { + var t = r; + r = r2; + r2 = t; + } + } + return z.revert(r); + } + function bnModPowInt(e, m) { + var z; + if (e < 256 || m.isEven()) + z = new Classic(m); + else + z = new Montgomery(m); + return this.exp(e, z); + } + BigInteger.prototype.copyTo = bnpCopyTo; + BigInteger.prototype.fromInt = bnpFromInt; + BigInteger.prototype.fromString = bnpFromString; + BigInteger.prototype.clamp = bnpClamp; + BigInteger.prototype.dlShiftTo = bnpDLShiftTo; + BigInteger.prototype.drShiftTo = bnpDRShiftTo; + BigInteger.prototype.lShiftTo = bnpLShiftTo; + BigInteger.prototype.rShiftTo = bnpRShiftTo; + BigInteger.prototype.subTo = bnpSubTo; + BigInteger.prototype.multiplyTo = bnpMultiplyTo; + BigInteger.prototype.squareTo = bnpSquareTo; + BigInteger.prototype.divRemTo = bnpDivRemTo; + BigInteger.prototype.invDigit = bnpInvDigit; + BigInteger.prototype.isEven = bnpIsEven; + BigInteger.prototype.exp = bnpExp; + BigInteger.prototype.toString = bnToString; + BigInteger.prototype.negate = bnNegate; + BigInteger.prototype.abs = bnAbs; + BigInteger.prototype.compareTo = bnCompareTo; + BigInteger.prototype.bitLength = bnBitLength; + BigInteger.prototype.mod = bnMod; + BigInteger.prototype.modPowInt = bnModPowInt; + BigInteger.ZERO = nbv(0); + BigInteger.ONE = nbv(1); + function bnClone() { + var r = nbi(); + this.copyTo(r); + return r; + } + function bnIntValue() { + if (this.s < 0) { + if (this.t == 1) + return this.data[0] - this.DV; + else if (this.t == 0) + return -1; + } else if (this.t == 1) + return this.data[0]; + else if (this.t == 0) + return 0; + return (this.data[1] & (1 << 32 - this.DB) - 1) << this.DB | this.data[0]; + } + function bnByteValue() { + return this.t == 0 ? this.s : this.data[0] << 24 >> 24; + } + function bnShortValue() { + return this.t == 0 ? this.s : this.data[0] << 16 >> 16; + } + function bnpChunkSize(r) { + return Math.floor(Math.LN2 * this.DB / Math.log(r)); + } + function bnSigNum() { + if (this.s < 0) + return -1; + else if (this.t <= 0 || this.t == 1 && this.data[0] <= 0) + return 0; + else + return 1; + } + function bnpToRadix(b) { + if (b == null) + b = 10; + if (this.signum() == 0 || b < 2 || b > 36) + return "0"; + var cs = this.chunkSize(b); + var a = Math.pow(b, cs); + var d = nbv(a), y = nbi(), z = nbi(), r = ""; + this.divRemTo(d, y, z); + while (y.signum() > 0) { + r = (a + z.intValue()).toString(b).substr(1) + r; + y.divRemTo(d, y, z); + } + return z.intValue().toString(b) + r; + } + function bnpFromRadix(s, b) { + this.fromInt(0); + if (b == null) + b = 10; + var cs = this.chunkSize(b); + var d = Math.pow(b, cs), mi = false, j = 0, w = 0; + for (var i = 0; i < s.length; ++i) { + var x = intAt(s, i); + if (x < 0) { + if (s.charAt(i) == "-" && this.signum() == 0) + mi = true; + continue; + } + w = b * w + x; + if (++j >= cs) { + this.dMultiply(d); + this.dAddOffset(w, 0); + j = 0; + w = 0; + } + } + if (j > 0) { + this.dMultiply(Math.pow(b, j)); + this.dAddOffset(w, 0); + } + if (mi) + BigInteger.ZERO.subTo(this, this); + } + function bnpFromNumber(a, b, c) { + if (typeof b == "number") { + if (a < 2) + this.fromInt(1); + else { + this.fromNumber(a, c); + if (!this.testBit(a - 1)) + this.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), op_or, this); + if (this.isEven()) + this.dAddOffset(1, 0); + while (!this.isProbablePrime(b)) { + this.dAddOffset(2, 0); + if (this.bitLength() > a) + this.subTo(BigInteger.ONE.shiftLeft(a - 1), this); + } + } + } else { + var x = new Array(), t = a & 7; + x.length = (a >> 3) + 1; + b.nextBytes(x); + if (t > 0) + x[0] &= (1 << t) - 1; + else + x[0] = 0; + this.fromString(x, 256); + } + } + function bnToByteArray() { + var i = this.t, r = new Array(); + r[0] = this.s; + var p = this.DB - i * this.DB % 8, d, k = 0; + if (i-- > 0) { + if (p < this.DB && (d = this.data[i] >> p) != (this.s & this.DM) >> p) + r[k++] = d | this.s << this.DB - p; + while (i >= 0) { + if (p < 8) { + d = (this.data[i] & (1 << p) - 1) << 8 - p; + d |= this.data[--i] >> (p += this.DB - 8); + } else { + d = this.data[i] >> (p -= 8) & 255; + if (p <= 0) { + p += this.DB; + --i; + } + } + if ((d & 128) != 0) + d |= -256; + if (k == 0 && (this.s & 128) != (d & 128)) + ++k; + if (k > 0 || d != this.s) + r[k++] = d; + } + } + return r; + } + function bnEquals(a) { + return this.compareTo(a) == 0; + } + function bnMin(a) { + return this.compareTo(a) < 0 ? this : a; + } + function bnMax(a) { + return this.compareTo(a) > 0 ? this : a; + } + function bnpBitwiseTo(a, op, r) { + var i, f, m = Math.min(a.t, this.t); + for (i = 0; i < m; ++i) + r.data[i] = op(this.data[i], a.data[i]); + if (a.t < this.t) { + f = a.s & this.DM; + for (i = m; i < this.t; ++i) + r.data[i] = op(this.data[i], f); + r.t = this.t; + } else { + f = this.s & this.DM; + for (i = m; i < a.t; ++i) + r.data[i] = op(f, a.data[i]); + r.t = a.t; + } + r.s = op(this.s, a.s); + r.clamp(); + } + function op_and(x, y) { + return x & y; + } + function bnAnd(a) { + var r = nbi(); + this.bitwiseTo(a, op_and, r); + return r; + } + function op_or(x, y) { + return x | y; + } + function bnOr(a) { + var r = nbi(); + this.bitwiseTo(a, op_or, r); + return r; + } + function op_xor(x, y) { + return x ^ y; + } + function bnXor(a) { + var r = nbi(); + this.bitwiseTo(a, op_xor, r); + return r; + } + function op_andnot(x, y) { + return x & ~y; + } + function bnAndNot(a) { + var r = nbi(); + this.bitwiseTo(a, op_andnot, r); + return r; + } + function bnNot() { + var r = nbi(); + for (var i = 0; i < this.t; ++i) + r.data[i] = this.DM & ~this.data[i]; + r.t = this.t; + r.s = ~this.s; + return r; + } + function bnShiftLeft(n) { + var r = nbi(); + if (n < 0) + this.rShiftTo(-n, r); + else + this.lShiftTo(n, r); + return r; + } + function bnShiftRight(n) { + var r = nbi(); + if (n < 0) + this.lShiftTo(-n, r); + else + this.rShiftTo(n, r); + return r; + } + function lbit(x) { + if (x == 0) + return -1; + var r = 0; + if ((x & 65535) == 0) { + x >>= 16; + r += 16; + } + if ((x & 255) == 0) { + x >>= 8; + r += 8; + } + if ((x & 15) == 0) { + x >>= 4; + r += 4; + } + if ((x & 3) == 0) { + x >>= 2; + r += 2; + } + if ((x & 1) == 0) + ++r; + return r; + } + function bnGetLowestSetBit() { + for (var i = 0; i < this.t; ++i) + if (this.data[i] != 0) + return i * this.DB + lbit(this.data[i]); + if (this.s < 0) + return this.t * this.DB; + return -1; + } + function cbit(x) { + var r = 0; + while (x != 0) { + x &= x - 1; + ++r; + } + return r; + } + function bnBitCount() { + var r = 0, x = this.s & this.DM; + for (var i = 0; i < this.t; ++i) + r += cbit(this.data[i] ^ x); + return r; + } + function bnTestBit(n) { + var j = Math.floor(n / this.DB); + if (j >= this.t) + return this.s != 0; + return (this.data[j] & 1 << n % this.DB) != 0; + } + function bnpChangeBit(n, op) { + var r = BigInteger.ONE.shiftLeft(n); + this.bitwiseTo(r, op, r); + return r; + } + function bnSetBit(n) { + return this.changeBit(n, op_or); + } + function bnClearBit(n) { + return this.changeBit(n, op_andnot); + } + function bnFlipBit(n) { + return this.changeBit(n, op_xor); + } + function bnpAddTo(a, r) { + var i = 0, c = 0, m = Math.min(a.t, this.t); + while (i < m) { + c += this.data[i] + a.data[i]; + r.data[i++] = c & this.DM; + c >>= this.DB; + } + if (a.t < this.t) { + c += a.s; + while (i < this.t) { + c += this.data[i]; + r.data[i++] = c & this.DM; + c >>= this.DB; + } + c += this.s; + } else { + c += this.s; + while (i < a.t) { + c += a.data[i]; + r.data[i++] = c & this.DM; + c >>= this.DB; + } + c += a.s; + } + r.s = c < 0 ? -1 : 0; + if (c > 0) + r.data[i++] = c; + else if (c < -1) + r.data[i++] = this.DV + c; + r.t = i; + r.clamp(); + } + function bnAdd(a) { + var r = nbi(); + this.addTo(a, r); + return r; + } + function bnSubtract(a) { + var r = nbi(); + this.subTo(a, r); + return r; + } + function bnMultiply(a) { + var r = nbi(); + this.multiplyTo(a, r); + return r; + } + function bnDivide(a) { + var r = nbi(); + this.divRemTo(a, r, null); + return r; + } + function bnRemainder(a) { + var r = nbi(); + this.divRemTo(a, null, r); + return r; + } + function bnDivideAndRemainder(a) { + var q = nbi(), r = nbi(); + this.divRemTo(a, q, r); + return new Array(q, r); + } + function bnpDMultiply(n) { + this.data[this.t] = this.am(0, n - 1, this, 0, 0, this.t); + ++this.t; + this.clamp(); + } + function bnpDAddOffset(n, w) { + if (n == 0) + return; + while (this.t <= w) + this.data[this.t++] = 0; + this.data[w] += n; + while (this.data[w] >= this.DV) { + this.data[w] -= this.DV; + if (++w >= this.t) + this.data[this.t++] = 0; + ++this.data[w]; + } + } + function NullExp() { + } + function nNop(x) { + return x; + } + function nMulTo(x, y, r) { + x.multiplyTo(y, r); + } + function nSqrTo(x, r) { + x.squareTo(r); + } + NullExp.prototype.convert = nNop; + NullExp.prototype.revert = nNop; + NullExp.prototype.mulTo = nMulTo; + NullExp.prototype.sqrTo = nSqrTo; + function bnPow(e) { + return this.exp(e, new NullExp()); + } + function bnpMultiplyLowerTo(a, n, r) { + var i = Math.min(this.t + a.t, n); + r.s = 0; + r.t = i; + while (i > 0) + r.data[--i] = 0; + var j; + for (j = r.t - this.t; i < j; ++i) + r.data[i + this.t] = this.am(0, a.data[i], r, i, 0, this.t); + for (j = Math.min(a.t, n); i < j; ++i) + this.am(0, a.data[i], r, i, 0, n - i); + r.clamp(); + } + function bnpMultiplyUpperTo(a, n, r) { + --n; + var i = r.t = this.t + a.t - n; + r.s = 0; + while (--i >= 0) + r.data[i] = 0; + for (i = Math.max(n - this.t, 0); i < a.t; ++i) + r.data[this.t + i - n] = this.am(n - i, a.data[i], r, 0, 0, this.t + i - n); + r.clamp(); + r.drShiftTo(1, r); + } + function Barrett(m) { + this.r2 = nbi(); + this.q3 = nbi(); + BigInteger.ONE.dlShiftTo(2 * m.t, this.r2); + this.mu = this.r2.divide(m); + this.m = m; + } + function barrettConvert(x) { + if (x.s < 0 || x.t > 2 * this.m.t) + return x.mod(this.m); + else if (x.compareTo(this.m) < 0) + return x; + else { + var r = nbi(); + x.copyTo(r); + this.reduce(r); + return r; + } + } + function barrettRevert(x) { + return x; + } + function barrettReduce(x) { + x.drShiftTo(this.m.t - 1, this.r2); + if (x.t > this.m.t + 1) { + x.t = this.m.t + 1; + x.clamp(); + } + this.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3); + this.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2); + while (x.compareTo(this.r2) < 0) + x.dAddOffset(1, this.m.t + 1); + x.subTo(this.r2, x); + while (x.compareTo(this.m) >= 0) + x.subTo(this.m, x); + } + function barrettSqrTo(x, r) { + x.squareTo(r); + this.reduce(r); + } + function barrettMulTo(x, y, r) { + x.multiplyTo(y, r); + this.reduce(r); + } + Barrett.prototype.convert = barrettConvert; + Barrett.prototype.revert = barrettRevert; + Barrett.prototype.reduce = barrettReduce; + Barrett.prototype.mulTo = barrettMulTo; + Barrett.prototype.sqrTo = barrettSqrTo; + function bnModPow(e, m) { + var i = e.bitLength(), k, r = nbv(1), z; + if (i <= 0) + return r; + else if (i < 18) + k = 1; + else if (i < 48) + k = 3; + else if (i < 144) + k = 4; + else if (i < 768) + k = 5; + else + k = 6; + if (i < 8) + z = new Classic(m); + else if (m.isEven()) + z = new Barrett(m); + else + z = new Montgomery(m); + var g = new Array(), n = 3, k1 = k - 1, km = (1 << k) - 1; + g[1] = z.convert(this); + if (k > 1) { + var g2 = nbi(); + z.sqrTo(g[1], g2); + while (n <= km) { + g[n] = nbi(); + z.mulTo(g2, g[n - 2], g[n]); + n += 2; + } + } + var j = e.t - 1, w, is1 = true, r2 = nbi(), t; + i = nbits(e.data[j]) - 1; + while (j >= 0) { + if (i >= k1) + w = e.data[j] >> i - k1 & km; + else { + w = (e.data[j] & (1 << i + 1) - 1) << k1 - i; + if (j > 0) + w |= e.data[j - 1] >> this.DB + i - k1; + } + n = k; + while ((w & 1) == 0) { + w >>= 1; + --n; + } + if ((i -= n) < 0) { + i += this.DB; + --j; + } + if (is1) { + g[w].copyTo(r); + is1 = false; + } else { + while (n > 1) { + z.sqrTo(r, r2); + z.sqrTo(r2, r); + n -= 2; + } + if (n > 0) + z.sqrTo(r, r2); + else { + t = r; + r = r2; + r2 = t; + } + z.mulTo(r2, g[w], r); + } + while (j >= 0 && (e.data[j] & 1 << i) == 0) { + z.sqrTo(r, r2); + t = r; + r = r2; + r2 = t; + if (--i < 0) { + i = this.DB - 1; + --j; + } + } + } + return z.revert(r); + } + function bnGCD(a) { + var x = this.s < 0 ? this.negate() : this.clone(); + var y = a.s < 0 ? a.negate() : a.clone(); + if (x.compareTo(y) < 0) { + var t = x; + x = y; + y = t; + } + var i = x.getLowestSetBit(), g = y.getLowestSetBit(); + if (g < 0) + return x; + if (i < g) + g = i; + if (g > 0) { + x.rShiftTo(g, x); + y.rShiftTo(g, y); + } + while (x.signum() > 0) { + if ((i = x.getLowestSetBit()) > 0) + x.rShiftTo(i, x); + if ((i = y.getLowestSetBit()) > 0) + y.rShiftTo(i, y); + if (x.compareTo(y) >= 0) { + x.subTo(y, x); + x.rShiftTo(1, x); + } else { + y.subTo(x, y); + y.rShiftTo(1, y); + } + } + if (g > 0) + y.lShiftTo(g, y); + return y; + } + function bnpModInt(n) { + if (n <= 0) + return 0; + var d = this.DV % n, r = this.s < 0 ? n - 1 : 0; + if (this.t > 0) + if (d == 0) + r = this.data[0] % n; + else + for (var i = this.t - 1; i >= 0; --i) + r = (d * r + this.data[i]) % n; + return r; + } + function bnModInverse(m) { + var ac = m.isEven(); + if (this.isEven() && ac || m.signum() == 0) + return BigInteger.ZERO; + var u = m.clone(), v = this.clone(); + var a = nbv(1), b = nbv(0), c = nbv(0), d = nbv(1); + while (u.signum() != 0) { + while (u.isEven()) { + u.rShiftTo(1, u); + if (ac) { + if (!a.isEven() || !b.isEven()) { + a.addTo(this, a); + b.subTo(m, b); + } + a.rShiftTo(1, a); + } else if (!b.isEven()) + b.subTo(m, b); + b.rShiftTo(1, b); + } + while (v.isEven()) { + v.rShiftTo(1, v); + if (ac) { + if (!c.isEven() || !d.isEven()) { + c.addTo(this, c); + d.subTo(m, d); + } + c.rShiftTo(1, c); + } else if (!d.isEven()) + d.subTo(m, d); + d.rShiftTo(1, d); + } + if (u.compareTo(v) >= 0) { + u.subTo(v, u); + if (ac) + a.subTo(c, a); + b.subTo(d, b); + } else { + v.subTo(u, v); + if (ac) + c.subTo(a, c); + d.subTo(b, d); + } + } + if (v.compareTo(BigInteger.ONE) != 0) + return BigInteger.ZERO; + if (d.compareTo(m) >= 0) + return d.subtract(m); + if (d.signum() < 0) + d.addTo(m, d); + else + return d; + if (d.signum() < 0) + return d.add(m); + else + return d; + } + var lowprimes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509]; + var lplim = (1 << 26) / lowprimes[lowprimes.length - 1]; + function bnIsProbablePrime(t) { + var i, x = this.abs(); + if (x.t == 1 && x.data[0] <= lowprimes[lowprimes.length - 1]) { + for (i = 0; i < lowprimes.length; ++i) + if (x.data[0] == lowprimes[i]) + return true; + return false; + } + if (x.isEven()) + return false; + i = 1; + while (i < lowprimes.length) { + var m = lowprimes[i], j = i + 1; + while (j < lowprimes.length && m < lplim) + m *= lowprimes[j++]; + m = x.modInt(m); + while (i < j) + if (m % lowprimes[i++] == 0) + return false; + } + return x.millerRabin(t); + } + function bnpMillerRabin(t) { + var n1 = this.subtract(BigInteger.ONE); + var k = n1.getLowestSetBit(); + if (k <= 0) + return false; + var r = n1.shiftRight(k); + var prng = bnGetPrng(); + var a; + for (var i = 0; i < t; ++i) { + do { + a = new BigInteger(this.bitLength(), prng); + } while (a.compareTo(BigInteger.ONE) <= 0 || a.compareTo(n1) >= 0); + var y = a.modPow(r, this); + if (y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) { + var j = 1; + while (j++ < k && y.compareTo(n1) != 0) { + y = y.modPowInt(2, this); + if (y.compareTo(BigInteger.ONE) == 0) + return false; + } + if (y.compareTo(n1) != 0) + return false; + } + } + return true; + } + function bnGetPrng() { + return { + nextBytes: function(x) { + for (var i = 0; i < x.length; ++i) { + x[i] = Math.floor(Math.random() * 256); + } + } + }; + } + BigInteger.prototype.chunkSize = bnpChunkSize; + BigInteger.prototype.toRadix = bnpToRadix; + BigInteger.prototype.fromRadix = bnpFromRadix; + BigInteger.prototype.fromNumber = bnpFromNumber; + BigInteger.prototype.bitwiseTo = bnpBitwiseTo; + BigInteger.prototype.changeBit = bnpChangeBit; + BigInteger.prototype.addTo = bnpAddTo; + BigInteger.prototype.dMultiply = bnpDMultiply; + BigInteger.prototype.dAddOffset = bnpDAddOffset; + BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo; + BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo; + BigInteger.prototype.modInt = bnpModInt; + BigInteger.prototype.millerRabin = bnpMillerRabin; + BigInteger.prototype.clone = bnClone; + BigInteger.prototype.intValue = bnIntValue; + BigInteger.prototype.byteValue = bnByteValue; + BigInteger.prototype.shortValue = bnShortValue; + BigInteger.prototype.signum = bnSigNum; + BigInteger.prototype.toByteArray = bnToByteArray; + BigInteger.prototype.equals = bnEquals; + BigInteger.prototype.min = bnMin; + BigInteger.prototype.max = bnMax; + BigInteger.prototype.and = bnAnd; + BigInteger.prototype.or = bnOr; + BigInteger.prototype.xor = bnXor; + BigInteger.prototype.andNot = bnAndNot; + BigInteger.prototype.not = bnNot; + BigInteger.prototype.shiftLeft = bnShiftLeft; + BigInteger.prototype.shiftRight = bnShiftRight; + BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit; + BigInteger.prototype.bitCount = bnBitCount; + BigInteger.prototype.testBit = bnTestBit; + BigInteger.prototype.setBit = bnSetBit; + BigInteger.prototype.clearBit = bnClearBit; + BigInteger.prototype.flipBit = bnFlipBit; + BigInteger.prototype.add = bnAdd; + BigInteger.prototype.subtract = bnSubtract; + BigInteger.prototype.multiply = bnMultiply; + BigInteger.prototype.divide = bnDivide; + BigInteger.prototype.remainder = bnRemainder; + BigInteger.prototype.divideAndRemainder = bnDivideAndRemainder; + BigInteger.prototype.modPow = bnModPow; + BigInteger.prototype.modInverse = bnModInverse; + BigInteger.prototype.pow = bnPow; + BigInteger.prototype.gcd = bnGCD; + BigInteger.prototype.isProbablePrime = bnIsProbablePrime; + } +}); + +// node_modules/node-forge/lib/sha1.js +var require_sha1 = __commonJS({ + "node_modules/node-forge/lib/sha1.js"(exports2, module2) { + var forge3 = require_forge(); + require_md(); + require_util(); + var sha1 = module2.exports = forge3.sha1 = forge3.sha1 || {}; + forge3.md.sha1 = forge3.md.algorithms.sha1 = sha1; + sha1.create = function() { + if (!_initialized) { + _init(); + } + var _state = null; + var _input = forge3.util.createBuffer(); + var _w = new Array(80); + var md = { + algorithm: "sha1", + blockLength: 64, + digestLength: 20, + messageLength: 0, + fullMessageLength: null, + messageLengthSize: 8 + }; + md.start = function() { + md.messageLength = 0; + md.fullMessageLength = md.messageLength64 = []; + var int32s = md.messageLengthSize / 4; + for (var i = 0; i < int32s; ++i) { + md.fullMessageLength.push(0); + } + _input = forge3.util.createBuffer(); + _state = { + h0: 1732584193, + h1: 4023233417, + h2: 2562383102, + h3: 271733878, + h4: 3285377520 + }; + return md; + }; + md.start(); + md.update = function(msg, encoding) { + if (encoding === "utf8") { + msg = forge3.util.encodeUtf8(msg); + } + var len = msg.length; + md.messageLength += len; + len = [len / 4294967296 >>> 0, len >>> 0]; + for (var i = md.fullMessageLength.length - 1; i >= 0; --i) { + md.fullMessageLength[i] += len[1]; + len[1] = len[0] + (md.fullMessageLength[i] / 4294967296 >>> 0); + md.fullMessageLength[i] = md.fullMessageLength[i] >>> 0; + len[0] = len[1] / 4294967296 >>> 0; + } + _input.putBytes(msg); + _update(_state, _w, _input); + if (_input.read > 2048 || _input.length() === 0) { + _input.compact(); + } + return md; + }; + md.digest = function() { + var finalBlock = forge3.util.createBuffer(); + finalBlock.putBytes(_input.bytes()); + var remaining = md.fullMessageLength[md.fullMessageLength.length - 1] + md.messageLengthSize; + var overflow = remaining & md.blockLength - 1; + finalBlock.putBytes(_padding.substr(0, md.blockLength - overflow)); + var next, carry; + var bits = md.fullMessageLength[0] * 8; + for (var i = 0; i < md.fullMessageLength.length - 1; ++i) { + next = md.fullMessageLength[i + 1] * 8; + carry = next / 4294967296 >>> 0; + bits += carry; + finalBlock.putInt32(bits >>> 0); + bits = next >>> 0; + } + finalBlock.putInt32(bits); + var s2 = { + h0: _state.h0, + h1: _state.h1, + h2: _state.h2, + h3: _state.h3, + h4: _state.h4 + }; + _update(s2, _w, finalBlock); + var rval = forge3.util.createBuffer(); + rval.putInt32(s2.h0); + rval.putInt32(s2.h1); + rval.putInt32(s2.h2); + rval.putInt32(s2.h3); + rval.putInt32(s2.h4); + return rval; + }; + return md; + }; + var _padding = null; + var _initialized = false; + function _init() { + _padding = String.fromCharCode(128); + _padding += forge3.util.fillString(String.fromCharCode(0), 64); + _initialized = true; + } + function _update(s, w, bytes) { + var t, a, b, c, d, e, f, i; + var len = bytes.length(); + while (len >= 64) { + a = s.h0; + b = s.h1; + c = s.h2; + d = s.h3; + e = s.h4; + for (i = 0; i < 16; ++i) { + t = bytes.getInt32(); + w[i] = t; + f = d ^ b & (c ^ d); + t = (a << 5 | a >>> 27) + f + e + 1518500249 + t; + e = d; + d = c; + c = (b << 30 | b >>> 2) >>> 0; + b = a; + a = t; + } + for (; i < 20; ++i) { + t = w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16]; + t = t << 1 | t >>> 31; + w[i] = t; + f = d ^ b & (c ^ d); + t = (a << 5 | a >>> 27) + f + e + 1518500249 + t; + e = d; + d = c; + c = (b << 30 | b >>> 2) >>> 0; + b = a; + a = t; + } + for (; i < 32; ++i) { + t = w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16]; + t = t << 1 | t >>> 31; + w[i] = t; + f = b ^ c ^ d; + t = (a << 5 | a >>> 27) + f + e + 1859775393 + t; + e = d; + d = c; + c = (b << 30 | b >>> 2) >>> 0; + b = a; + a = t; + } + for (; i < 40; ++i) { + t = w[i - 6] ^ w[i - 16] ^ w[i - 28] ^ w[i - 32]; + t = t << 2 | t >>> 30; + w[i] = t; + f = b ^ c ^ d; + t = (a << 5 | a >>> 27) + f + e + 1859775393 + t; + e = d; + d = c; + c = (b << 30 | b >>> 2) >>> 0; + b = a; + a = t; + } + for (; i < 60; ++i) { + t = w[i - 6] ^ w[i - 16] ^ w[i - 28] ^ w[i - 32]; + t = t << 2 | t >>> 30; + w[i] = t; + f = b & c | d & (b ^ c); + t = (a << 5 | a >>> 27) + f + e + 2400959708 + t; + e = d; + d = c; + c = (b << 30 | b >>> 2) >>> 0; + b = a; + a = t; + } + for (; i < 80; ++i) { + t = w[i - 6] ^ w[i - 16] ^ w[i - 28] ^ w[i - 32]; + t = t << 2 | t >>> 30; + w[i] = t; + f = b ^ c ^ d; + t = (a << 5 | a >>> 27) + f + e + 3395469782 + t; + e = d; + d = c; + c = (b << 30 | b >>> 2) >>> 0; + b = a; + a = t; + } + s.h0 = s.h0 + a | 0; + s.h1 = s.h1 + b | 0; + s.h2 = s.h2 + c | 0; + s.h3 = s.h3 + d | 0; + s.h4 = s.h4 + e | 0; + len -= 64; + } + } + } +}); + +// node_modules/node-forge/lib/pkcs1.js +var require_pkcs1 = __commonJS({ + "node_modules/node-forge/lib/pkcs1.js"(exports2, module2) { + var forge3 = require_forge(); + require_util(); + require_random(); + require_sha1(); + var pkcs1 = module2.exports = forge3.pkcs1 = forge3.pkcs1 || {}; + pkcs1.encode_rsa_oaep = function(key, message2, options) { + var label; + var seed; + var md; + var mgf1Md; + if (typeof options === "string") { + label = options; + seed = arguments[3] || void 0; + md = arguments[4] || void 0; + } else if (options) { + label = options.label || void 0; + seed = options.seed || void 0; + md = options.md || void 0; + if (options.mgf1 && options.mgf1.md) { + mgf1Md = options.mgf1.md; + } + } + if (!md) { + md = forge3.md.sha1.create(); + } else { + md.start(); + } + if (!mgf1Md) { + mgf1Md = md; + } + var keyLength = Math.ceil(key.n.bitLength() / 8); + var maxLength = keyLength - 2 * md.digestLength - 2; + if (message2.length > maxLength) { + var error = new Error("RSAES-OAEP input message length is too long."); + error.length = message2.length; + error.maxLength = maxLength; + throw error; + } + if (!label) { + label = ""; + } + md.update(label, "raw"); + var lHash = md.digest(); + var PS = ""; + var PS_length = maxLength - message2.length; + for (var i = 0; i < PS_length; i++) { + PS += "\0"; + } + var DB = lHash.getBytes() + PS + "" + message2; + if (!seed) { + seed = forge3.random.getBytes(md.digestLength); + } else if (seed.length !== md.digestLength) { + var error = new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length."); + error.seedLength = seed.length; + error.digestLength = md.digestLength; + throw error; + } + var dbMask = rsa_mgf1(seed, keyLength - md.digestLength - 1, mgf1Md); + var maskedDB = forge3.util.xorBytes(DB, dbMask, DB.length); + var seedMask = rsa_mgf1(maskedDB, md.digestLength, mgf1Md); + var maskedSeed = forge3.util.xorBytes(seed, seedMask, seed.length); + return "\0" + maskedSeed + maskedDB; + }; + pkcs1.decode_rsa_oaep = function(key, em, options) { + var label; + var md; + var mgf1Md; + if (typeof options === "string") { + label = options; + md = arguments[3] || void 0; + } else if (options) { + label = options.label || void 0; + md = options.md || void 0; + if (options.mgf1 && options.mgf1.md) { + mgf1Md = options.mgf1.md; + } + } + var keyLength = Math.ceil(key.n.bitLength() / 8); + if (em.length !== keyLength) { + var error = new Error("RSAES-OAEP encoded message length is invalid."); + error.length = em.length; + error.expectedLength = keyLength; + throw error; + } + if (md === void 0) { + md = forge3.md.sha1.create(); + } else { + md.start(); + } + if (!mgf1Md) { + mgf1Md = md; + } + if (keyLength < 2 * md.digestLength + 2) { + throw new Error("RSAES-OAEP key is too short for the hash function."); + } + if (!label) { + label = ""; + } + md.update(label, "raw"); + var lHash = md.digest().getBytes(); + var y = em.charAt(0); + var maskedSeed = em.substring(1, md.digestLength + 1); + var maskedDB = em.substring(1 + md.digestLength); + var seedMask = rsa_mgf1(maskedDB, md.digestLength, mgf1Md); + var seed = forge3.util.xorBytes(maskedSeed, seedMask, maskedSeed.length); + var dbMask = rsa_mgf1(seed, keyLength - md.digestLength - 1, mgf1Md); + var db = forge3.util.xorBytes(maskedDB, dbMask, maskedDB.length); + var lHashPrime = db.substring(0, md.digestLength); + var error = y !== "\0"; + for (var i = 0; i < md.digestLength; ++i) { + error |= lHash.charAt(i) !== lHashPrime.charAt(i); + } + var in_ps = 1; + var index = md.digestLength; + for (var j = md.digestLength; j < db.length; j++) { + var code = db.charCodeAt(j); + var is_0 = code & 1 ^ 1; + var error_mask = in_ps ? 65534 : 0; + error |= code & error_mask; + in_ps = in_ps & is_0; + index += in_ps; + } + if (error || db.charCodeAt(index) !== 1) { + throw new Error("Invalid RSAES-OAEP padding."); + } + return db.substring(index + 1); + }; + function rsa_mgf1(seed, maskLength, hash) { + if (!hash) { + hash = forge3.md.sha1.create(); + } + var t = ""; + var count = Math.ceil(maskLength / hash.digestLength); + for (var i = 0; i < count; ++i) { + var c = String.fromCharCode(i >> 24 & 255, i >> 16 & 255, i >> 8 & 255, i & 255); + hash.start(); + hash.update(seed + c); + t += hash.digest().getBytes(); + } + return t.substring(0, maskLength); + } + } +}); + +// node_modules/node-forge/lib/prime.js +var require_prime = __commonJS({ + "node_modules/node-forge/lib/prime.js"(exports2, module2) { + var forge3 = require_forge(); + require_util(); + require_jsbn(); + require_random(); + (function() { + if (forge3.prime) { + module2.exports = forge3.prime; + return; + } + var prime = module2.exports = forge3.prime = forge3.prime || {}; + var BigInteger = forge3.jsbn.BigInteger; + var GCD_30_DELTA = [6, 4, 2, 4, 2, 4, 6, 2]; + var THIRTY = new BigInteger(null); + THIRTY.fromInt(30); + var op_or = function(x, y) { + return x | y; + }; + prime.generateProbablePrime = function(bits, options, callback) { + if (typeof options === "function") { + callback = options; + options = {}; + } + options = options || {}; + var algorithm = options.algorithm || "PRIMEINC"; + if (typeof algorithm === "string") { + algorithm = { name: algorithm }; + } + algorithm.options = algorithm.options || {}; + var prng = options.prng || forge3.random; + var rng = { + nextBytes: function(x) { + var b = prng.getBytesSync(x.length); + for (var i = 0; i < x.length; ++i) { + x[i] = b.charCodeAt(i); + } + } + }; + if (algorithm.name === "PRIMEINC") { + return primeincFindPrime(bits, rng, algorithm.options, callback); + } + throw new Error("Invalid prime generation algorithm: " + algorithm.name); + }; + function primeincFindPrime(bits, rng, options, callback) { + if ("workers" in options) { + return primeincFindPrimeWithWorkers(bits, rng, options, callback); + } + return primeincFindPrimeWithoutWorkers(bits, rng, options, callback); + } + function primeincFindPrimeWithoutWorkers(bits, rng, options, callback) { + var num = generateRandom(bits, rng); + var deltaIdx = 0; + var mrTests = getMillerRabinTests(num.bitLength()); + if ("millerRabinTests" in options) { + mrTests = options.millerRabinTests; + } + var maxBlockTime = 10; + if ("maxBlockTime" in options) { + maxBlockTime = options.maxBlockTime; + } + _primeinc(num, bits, rng, deltaIdx, mrTests, maxBlockTime, callback); + } + function _primeinc(num, bits, rng, deltaIdx, mrTests, maxBlockTime, callback) { + var start = +new Date(); + do { + if (num.bitLength() > bits) { + num = generateRandom(bits, rng); + } + if (num.isProbablePrime(mrTests)) { + return callback(null, num); + } + num.dAddOffset(GCD_30_DELTA[deltaIdx++ % 8], 0); + } while (maxBlockTime < 0 || +new Date() - start < maxBlockTime); + forge3.util.setImmediate(function() { + _primeinc(num, bits, rng, deltaIdx, mrTests, maxBlockTime, callback); + }); + } + function primeincFindPrimeWithWorkers(bits, rng, options, callback) { + if (typeof Worker === "undefined") { + return primeincFindPrimeWithoutWorkers(bits, rng, options, callback); + } + var num = generateRandom(bits, rng); + var numWorkers = options.workers; + var workLoad = options.workLoad || 100; + var range = workLoad * 30 / 8; + var workerScript = options.workerScript || "forge/prime.worker.js"; + if (numWorkers === -1) { + return forge3.util.estimateCores(function(err, cores) { + if (err) { + cores = 2; + } + numWorkers = cores - 1; + generate(); + }); + } + generate(); + function generate() { + numWorkers = Math.max(1, numWorkers); + var workers = []; + for (var i = 0; i < numWorkers; ++i) { + workers[i] = new Worker(workerScript); + } + var running = numWorkers; + for (var i = 0; i < numWorkers; ++i) { + workers[i].addEventListener("message", workerMessage); + } + var found = false; + function workerMessage(e) { + if (found) { + return; + } + --running; + var data = e.data; + if (data.found) { + for (var i2 = 0; i2 < workers.length; ++i2) { + workers[i2].terminate(); + } + found = true; + return callback(null, new BigInteger(data.prime, 16)); + } + if (num.bitLength() > bits) { + num = generateRandom(bits, rng); + } + var hex = num.toString(16); + e.target.postMessage({ + hex, + workLoad + }); + num.dAddOffset(range, 0); + } + } + } + function generateRandom(bits, rng) { + var num = new BigInteger(bits, rng); + var bits1 = bits - 1; + if (!num.testBit(bits1)) { + num.bitwiseTo(BigInteger.ONE.shiftLeft(bits1), op_or, num); + } + num.dAddOffset(31 - num.mod(THIRTY).byteValue(), 0); + return num; + } + function getMillerRabinTests(bits) { + if (bits <= 100) + return 27; + if (bits <= 150) + return 18; + if (bits <= 200) + return 15; + if (bits <= 250) + return 12; + if (bits <= 300) + return 9; + if (bits <= 350) + return 8; + if (bits <= 400) + return 7; + if (bits <= 500) + return 6; + if (bits <= 600) + return 5; + if (bits <= 800) + return 4; + if (bits <= 1250) + return 3; + return 2; + } + })(); + } +}); + +// node_modules/node-forge/lib/rsa.js +var require_rsa = __commonJS({ + "node_modules/node-forge/lib/rsa.js"(exports2, module2) { + var forge3 = require_forge(); + require_asn1(); + require_jsbn(); + require_oids(); + require_pkcs1(); + require_prime(); + require_random(); + require_util(); + if (typeof BigInteger === "undefined") { + BigInteger = forge3.jsbn.BigInteger; + } + var BigInteger; + var _crypto = forge3.util.isNodejs ? require("crypto") : null; + var asn1 = forge3.asn1; + var util = forge3.util; + forge3.pki = forge3.pki || {}; + module2.exports = forge3.pki.rsa = forge3.rsa = forge3.rsa || {}; + var pki2 = forge3.pki; + var GCD_30_DELTA = [6, 4, 2, 4, 2, 4, 6, 2]; + var privateKeyValidator = { + name: "PrivateKeyInfo", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "PrivateKeyInfo.version", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "privateKeyVersion" + }, { + name: "PrivateKeyInfo.privateKeyAlgorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "AlgorithmIdentifier.algorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "privateKeyOid" + }] + }, { + name: "PrivateKeyInfo", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OCTETSTRING, + constructed: false, + capture: "privateKey" + }] + }; + var rsaPrivateKeyValidator = { + name: "RSAPrivateKey", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "RSAPrivateKey.version", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "privateKeyVersion" + }, { + name: "RSAPrivateKey.modulus", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "privateKeyModulus" + }, { + name: "RSAPrivateKey.publicExponent", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "privateKeyPublicExponent" + }, { + name: "RSAPrivateKey.privateExponent", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "privateKeyPrivateExponent" + }, { + name: "RSAPrivateKey.prime1", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "privateKeyPrime1" + }, { + name: "RSAPrivateKey.prime2", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "privateKeyPrime2" + }, { + name: "RSAPrivateKey.exponent1", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "privateKeyExponent1" + }, { + name: "RSAPrivateKey.exponent2", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "privateKeyExponent2" + }, { + name: "RSAPrivateKey.coefficient", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "privateKeyCoefficient" + }] + }; + var rsaPublicKeyValidator = { + name: "RSAPublicKey", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "RSAPublicKey.modulus", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "publicKeyModulus" + }, { + name: "RSAPublicKey.exponent", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "publicKeyExponent" + }] + }; + var publicKeyValidator = forge3.pki.rsa.publicKeyValidator = { + name: "SubjectPublicKeyInfo", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + captureAsn1: "subjectPublicKeyInfo", + value: [{ + name: "SubjectPublicKeyInfo.AlgorithmIdentifier", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "AlgorithmIdentifier.algorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "publicKeyOid" + }] + }, { + name: "SubjectPublicKeyInfo.subjectPublicKey", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.BITSTRING, + constructed: false, + value: [{ + name: "SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + optional: true, + captureAsn1: "rsaPublicKey" + }] + }] + }; + var digestInfoValidator = { + name: "DigestInfo", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "DigestInfo.DigestAlgorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "DigestInfo.DigestAlgorithm.algorithmIdentifier", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "algorithmIdentifier" + }, { + name: "DigestInfo.DigestAlgorithm.parameters", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.NULL, + capture: "parameters", + optional: true, + constructed: false + }] + }, { + name: "DigestInfo.digest", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OCTETSTRING, + constructed: false, + capture: "digest" + }] + }; + var emsaPkcs1v15encode = function(md) { + var oid; + if (md.algorithm in pki2.oids) { + oid = pki2.oids[md.algorithm]; + } else { + var error = new Error("Unknown message digest algorithm."); + error.algorithm = md.algorithm; + throw error; + } + var oidBytes = asn1.oidToDer(oid).getBytes(); + var digestInfo = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); + var digestAlgorithm = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); + digestAlgorithm.value.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, oidBytes)); + digestAlgorithm.value.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, "")); + var digest = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, md.digest().getBytes()); + digestInfo.value.push(digestAlgorithm); + digestInfo.value.push(digest); + return asn1.toDer(digestInfo).getBytes(); + }; + var _modPow = function(x, key, pub) { + if (pub) { + return x.modPow(key.e, key.n); + } + if (!key.p || !key.q) { + return x.modPow(key.d, key.n); + } + if (!key.dP) { + key.dP = key.d.mod(key.p.subtract(BigInteger.ONE)); + } + if (!key.dQ) { + key.dQ = key.d.mod(key.q.subtract(BigInteger.ONE)); + } + if (!key.qInv) { + key.qInv = key.q.modInverse(key.p); + } + var r; + do { + r = new BigInteger(forge3.util.bytesToHex(forge3.random.getBytes(key.n.bitLength() / 8)), 16); + } while (r.compareTo(key.n) >= 0 || !r.gcd(key.n).equals(BigInteger.ONE)); + x = x.multiply(r.modPow(key.e, key.n)).mod(key.n); + var xp = x.mod(key.p).modPow(key.dP, key.p); + var xq = x.mod(key.q).modPow(key.dQ, key.q); + while (xp.compareTo(xq) < 0) { + xp = xp.add(key.p); + } + var y = xp.subtract(xq).multiply(key.qInv).mod(key.p).multiply(key.q).add(xq); + y = y.multiply(r.modInverse(key.n)).mod(key.n); + return y; + }; + pki2.rsa.encrypt = function(m, key, bt) { + var pub = bt; + var eb; + var k = Math.ceil(key.n.bitLength() / 8); + if (bt !== false && bt !== true) { + pub = bt === 2; + eb = _encodePkcs1_v1_5(m, key, bt); + } else { + eb = forge3.util.createBuffer(); + eb.putBytes(m); + } + var x = new BigInteger(eb.toHex(), 16); + var y = _modPow(x, key, pub); + var yhex = y.toString(16); + var ed = forge3.util.createBuffer(); + var zeros = k - Math.ceil(yhex.length / 2); + while (zeros > 0) { + ed.putByte(0); + --zeros; + } + ed.putBytes(forge3.util.hexToBytes(yhex)); + return ed.getBytes(); + }; + pki2.rsa.decrypt = function(ed, key, pub, ml) { + var k = Math.ceil(key.n.bitLength() / 8); + if (ed.length !== k) { + var error = new Error("Encrypted message length is invalid."); + error.length = ed.length; + error.expected = k; + throw error; + } + var y = new BigInteger(forge3.util.createBuffer(ed).toHex(), 16); + if (y.compareTo(key.n) >= 0) { + throw new Error("Encrypted message is invalid."); + } + var x = _modPow(y, key, pub); + var xhex = x.toString(16); + var eb = forge3.util.createBuffer(); + var zeros = k - Math.ceil(xhex.length / 2); + while (zeros > 0) { + eb.putByte(0); + --zeros; + } + eb.putBytes(forge3.util.hexToBytes(xhex)); + if (ml !== false) { + return _decodePkcs1_v1_5(eb.getBytes(), key, pub); + } + return eb.getBytes(); + }; + pki2.rsa.createKeyPairGenerationState = function(bits, e, options) { + if (typeof bits === "string") { + bits = parseInt(bits, 10); + } + bits = bits || 2048; + options = options || {}; + var prng = options.prng || forge3.random; + var rng = { + nextBytes: function(x) { + var b = prng.getBytesSync(x.length); + for (var i = 0; i < x.length; ++i) { + x[i] = b.charCodeAt(i); + } + } + }; + var algorithm = options.algorithm || "PRIMEINC"; + var rval; + if (algorithm === "PRIMEINC") { + rval = { + algorithm, + state: 0, + bits, + rng, + eInt: e || 65537, + e: new BigInteger(null), + p: null, + q: null, + qBits: bits >> 1, + pBits: bits - (bits >> 1), + pqState: 0, + num: null, + keys: null + }; + rval.e.fromInt(rval.eInt); + } else { + throw new Error("Invalid key generation algorithm: " + algorithm); + } + return rval; + }; + pki2.rsa.stepKeyPairGenerationState = function(state, n) { + if (!("algorithm" in state)) { + state.algorithm = "PRIMEINC"; + } + var THIRTY = new BigInteger(null); + THIRTY.fromInt(30); + var deltaIdx = 0; + var op_or = function(x, y) { + return x | y; + }; + var t1 = +new Date(); + var t2; + var total = 0; + while (state.keys === null && (n <= 0 || total < n)) { + if (state.state === 0) { + var bits = state.p === null ? state.pBits : state.qBits; + var bits1 = bits - 1; + if (state.pqState === 0) { + state.num = new BigInteger(bits, state.rng); + if (!state.num.testBit(bits1)) { + state.num.bitwiseTo(BigInteger.ONE.shiftLeft(bits1), op_or, state.num); + } + state.num.dAddOffset(31 - state.num.mod(THIRTY).byteValue(), 0); + deltaIdx = 0; + ++state.pqState; + } else if (state.pqState === 1) { + if (state.num.bitLength() > bits) { + state.pqState = 0; + } else if (state.num.isProbablePrime(_getMillerRabinTests(state.num.bitLength()))) { + ++state.pqState; + } else { + state.num.dAddOffset(GCD_30_DELTA[deltaIdx++ % 8], 0); + } + } else if (state.pqState === 2) { + state.pqState = state.num.subtract(BigInteger.ONE).gcd(state.e).compareTo(BigInteger.ONE) === 0 ? 3 : 0; + } else if (state.pqState === 3) { + state.pqState = 0; + if (state.p === null) { + state.p = state.num; + } else { + state.q = state.num; + } + if (state.p !== null && state.q !== null) { + ++state.state; + } + state.num = null; + } + } else if (state.state === 1) { + if (state.p.compareTo(state.q) < 0) { + state.num = state.p; + state.p = state.q; + state.q = state.num; + } + ++state.state; + } else if (state.state === 2) { + state.p1 = state.p.subtract(BigInteger.ONE); + state.q1 = state.q.subtract(BigInteger.ONE); + state.phi = state.p1.multiply(state.q1); + ++state.state; + } else if (state.state === 3) { + if (state.phi.gcd(state.e).compareTo(BigInteger.ONE) === 0) { + ++state.state; + } else { + state.p = null; + state.q = null; + state.state = 0; + } + } else if (state.state === 4) { + state.n = state.p.multiply(state.q); + if (state.n.bitLength() === state.bits) { + ++state.state; + } else { + state.q = null; + state.state = 0; + } + } else if (state.state === 5) { + var d = state.e.modInverse(state.phi); + state.keys = { + privateKey: pki2.rsa.setPrivateKey(state.n, state.e, d, state.p, state.q, d.mod(state.p1), d.mod(state.q1), state.q.modInverse(state.p)), + publicKey: pki2.rsa.setPublicKey(state.n, state.e) + }; + } + t2 = +new Date(); + total += t2 - t1; + t1 = t2; + } + return state.keys !== null; + }; + pki2.rsa.generateKeyPair = function(bits, e, options, callback) { + if (arguments.length === 1) { + if (typeof bits === "object") { + options = bits; + bits = void 0; + } else if (typeof bits === "function") { + callback = bits; + bits = void 0; + } + } else if (arguments.length === 2) { + if (typeof bits === "number") { + if (typeof e === "function") { + callback = e; + e = void 0; + } else if (typeof e !== "number") { + options = e; + e = void 0; + } + } else { + options = bits; + callback = e; + bits = void 0; + e = void 0; + } + } else if (arguments.length === 3) { + if (typeof e === "number") { + if (typeof options === "function") { + callback = options; + options = void 0; + } + } else { + callback = options; + options = e; + e = void 0; + } + } + options = options || {}; + if (bits === void 0) { + bits = options.bits || 2048; + } + if (e === void 0) { + e = options.e || 65537; + } + if (!forge3.options.usePureJavaScript && !options.prng && bits >= 256 && bits <= 16384 && (e === 65537 || e === 3)) { + if (callback) { + if (_detectNodeCrypto("generateKeyPair")) { + return _crypto.generateKeyPair("rsa", { + modulusLength: bits, + publicExponent: e, + publicKeyEncoding: { + type: "spki", + format: "pem" + }, + privateKeyEncoding: { + type: "pkcs8", + format: "pem" + } + }, function(err, pub, priv) { + if (err) { + return callback(err); + } + callback(null, { + privateKey: pki2.privateKeyFromPem(priv), + publicKey: pki2.publicKeyFromPem(pub) + }); + }); + } + if (_detectSubtleCrypto("generateKey") && _detectSubtleCrypto("exportKey")) { + return util.globalScope.crypto.subtle.generateKey({ + name: "RSASSA-PKCS1-v1_5", + modulusLength: bits, + publicExponent: _intToUint8Array(e), + hash: { name: "SHA-256" } + }, true, ["sign", "verify"]).then(function(pair) { + return util.globalScope.crypto.subtle.exportKey("pkcs8", pair.privateKey); + }).then(void 0, function(err) { + callback(err); + }).then(function(pkcs8) { + if (pkcs8) { + var privateKey = pki2.privateKeyFromAsn1(asn1.fromDer(forge3.util.createBuffer(pkcs8))); + callback(null, { + privateKey, + publicKey: pki2.setRsaPublicKey(privateKey.n, privateKey.e) + }); + } + }); + } + if (_detectSubtleMsCrypto("generateKey") && _detectSubtleMsCrypto("exportKey")) { + var genOp = util.globalScope.msCrypto.subtle.generateKey({ + name: "RSASSA-PKCS1-v1_5", + modulusLength: bits, + publicExponent: _intToUint8Array(e), + hash: { name: "SHA-256" } + }, true, ["sign", "verify"]); + genOp.oncomplete = function(e2) { + var pair = e2.target.result; + var exportOp = util.globalScope.msCrypto.subtle.exportKey("pkcs8", pair.privateKey); + exportOp.oncomplete = function(e3) { + var pkcs8 = e3.target.result; + var privateKey = pki2.privateKeyFromAsn1(asn1.fromDer(forge3.util.createBuffer(pkcs8))); + callback(null, { + privateKey, + publicKey: pki2.setRsaPublicKey(privateKey.n, privateKey.e) + }); + }; + exportOp.onerror = function(err) { + callback(err); + }; + }; + genOp.onerror = function(err) { + callback(err); + }; + return; + } + } else { + if (_detectNodeCrypto("generateKeyPairSync")) { + var keypair = _crypto.generateKeyPairSync("rsa", { + modulusLength: bits, + publicExponent: e, + publicKeyEncoding: { + type: "spki", + format: "pem" + }, + privateKeyEncoding: { + type: "pkcs8", + format: "pem" + } + }); + return { + privateKey: pki2.privateKeyFromPem(keypair.privateKey), + publicKey: pki2.publicKeyFromPem(keypair.publicKey) + }; + } + } + } + var state = pki2.rsa.createKeyPairGenerationState(bits, e, options); + if (!callback) { + pki2.rsa.stepKeyPairGenerationState(state, 0); + return state.keys; + } + _generateKeyPair(state, options, callback); + }; + pki2.setRsaPublicKey = pki2.rsa.setPublicKey = function(n, e) { + var key = { + n, + e + }; + key.encrypt = function(data, scheme, schemeOptions) { + if (typeof scheme === "string") { + scheme = scheme.toUpperCase(); + } else if (scheme === void 0) { + scheme = "RSAES-PKCS1-V1_5"; + } + if (scheme === "RSAES-PKCS1-V1_5") { + scheme = { + encode: function(m, key2, pub) { + return _encodePkcs1_v1_5(m, key2, 2).getBytes(); + } + }; + } else if (scheme === "RSA-OAEP" || scheme === "RSAES-OAEP") { + scheme = { + encode: function(m, key2) { + return forge3.pkcs1.encode_rsa_oaep(key2, m, schemeOptions); + } + }; + } else if (["RAW", "NONE", "NULL", null].indexOf(scheme) !== -1) { + scheme = { encode: function(e3) { + return e3; + } }; + } else if (typeof scheme === "string") { + throw new Error('Unsupported encryption scheme: "' + scheme + '".'); + } + var e2 = scheme.encode(data, key, true); + return pki2.rsa.encrypt(e2, key, true); + }; + key.verify = function(digest, signature, scheme, options) { + if (typeof scheme === "string") { + scheme = scheme.toUpperCase(); + } else if (scheme === void 0) { + scheme = "RSASSA-PKCS1-V1_5"; + } + if (options === void 0) { + options = { + _parseAllDigestBytes: true + }; + } + if (!("_parseAllDigestBytes" in options)) { + options._parseAllDigestBytes = true; + } + if (scheme === "RSASSA-PKCS1-V1_5") { + scheme = { + verify: function(digest2, d2) { + d2 = _decodePkcs1_v1_5(d2, key, true); + var obj = asn1.fromDer(d2, { + parseAllBytes: options._parseAllDigestBytes + }); + var capture = {}; + var errors = []; + if (!asn1.validate(obj, digestInfoValidator, capture, errors)) { + var error = new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value."); + error.errors = errors; + throw error; + } + var oid = asn1.derToOid(capture.algorithmIdentifier); + if (!(oid === forge3.oids.md2 || oid === forge3.oids.md5 || oid === forge3.oids.sha1 || oid === forge3.oids.sha224 || oid === forge3.oids.sha256 || oid === forge3.oids.sha384 || oid === forge3.oids.sha512 || oid === forge3.oids["sha512-224"] || oid === forge3.oids["sha512-256"])) { + var error = new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier."); + error.oid = oid; + throw error; + } + if (oid === forge3.oids.md2 || oid === forge3.oids.md5) { + if (!("parameters" in capture)) { + throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters."); + } + } + return digest2 === capture.digest; + } + }; + } else if (scheme === "NONE" || scheme === "NULL" || scheme === null) { + scheme = { + verify: function(digest2, d2) { + d2 = _decodePkcs1_v1_5(d2, key, true); + return digest2 === d2; + } + }; + } + var d = pki2.rsa.decrypt(signature, key, true, false); + return scheme.verify(digest, d, key.n.bitLength()); + }; + return key; + }; + pki2.setRsaPrivateKey = pki2.rsa.setPrivateKey = function(n, e, d, p, q, dP, dQ, qInv) { + var key = { + n, + e, + d, + p, + q, + dP, + dQ, + qInv + }; + key.decrypt = function(data, scheme, schemeOptions) { + if (typeof scheme === "string") { + scheme = scheme.toUpperCase(); + } else if (scheme === void 0) { + scheme = "RSAES-PKCS1-V1_5"; + } + var d2 = pki2.rsa.decrypt(data, key, false, false); + if (scheme === "RSAES-PKCS1-V1_5") { + scheme = { decode: _decodePkcs1_v1_5 }; + } else if (scheme === "RSA-OAEP" || scheme === "RSAES-OAEP") { + scheme = { + decode: function(d3, key2) { + return forge3.pkcs1.decode_rsa_oaep(key2, d3, schemeOptions); + } + }; + } else if (["RAW", "NONE", "NULL", null].indexOf(scheme) !== -1) { + scheme = { decode: function(d3) { + return d3; + } }; + } else { + throw new Error('Unsupported encryption scheme: "' + scheme + '".'); + } + return scheme.decode(d2, key, false); + }; + key.sign = function(md, scheme) { + var bt = false; + if (typeof scheme === "string") { + scheme = scheme.toUpperCase(); + } + if (scheme === void 0 || scheme === "RSASSA-PKCS1-V1_5") { + scheme = { encode: emsaPkcs1v15encode }; + bt = 1; + } else if (scheme === "NONE" || scheme === "NULL" || scheme === null) { + scheme = { encode: function() { + return md; + } }; + bt = 1; + } + var d2 = scheme.encode(md, key.n.bitLength()); + return pki2.rsa.encrypt(d2, key, bt); + }; + return key; + }; + pki2.wrapRsaPrivateKey = function(rsaKey) { + return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, asn1.integerToDer(0).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(pki2.oids.rsaEncryption).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, "") + ]), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, asn1.toDer(rsaKey).getBytes()) + ]); + }; + pki2.privateKeyFromAsn1 = function(obj) { + var capture = {}; + var errors = []; + if (asn1.validate(obj, privateKeyValidator, capture, errors)) { + obj = asn1.fromDer(forge3.util.createBuffer(capture.privateKey)); + } + capture = {}; + errors = []; + if (!asn1.validate(obj, rsaPrivateKeyValidator, capture, errors)) { + var error = new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey."); + error.errors = errors; + throw error; + } + var n, e, d, p, q, dP, dQ, qInv; + n = forge3.util.createBuffer(capture.privateKeyModulus).toHex(); + e = forge3.util.createBuffer(capture.privateKeyPublicExponent).toHex(); + d = forge3.util.createBuffer(capture.privateKeyPrivateExponent).toHex(); + p = forge3.util.createBuffer(capture.privateKeyPrime1).toHex(); + q = forge3.util.createBuffer(capture.privateKeyPrime2).toHex(); + dP = forge3.util.createBuffer(capture.privateKeyExponent1).toHex(); + dQ = forge3.util.createBuffer(capture.privateKeyExponent2).toHex(); + qInv = forge3.util.createBuffer(capture.privateKeyCoefficient).toHex(); + return pki2.setRsaPrivateKey(new BigInteger(n, 16), new BigInteger(e, 16), new BigInteger(d, 16), new BigInteger(p, 16), new BigInteger(q, 16), new BigInteger(dP, 16), new BigInteger(dQ, 16), new BigInteger(qInv, 16)); + }; + pki2.privateKeyToAsn1 = pki2.privateKeyToRSAPrivateKey = function(key) { + return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, asn1.integerToDer(0).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, _bnToBytes(key.n)), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, _bnToBytes(key.e)), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, _bnToBytes(key.d)), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, _bnToBytes(key.p)), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, _bnToBytes(key.q)), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, _bnToBytes(key.dP)), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, _bnToBytes(key.dQ)), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, _bnToBytes(key.qInv)) + ]); + }; + pki2.publicKeyFromAsn1 = function(obj) { + var capture = {}; + var errors = []; + if (asn1.validate(obj, publicKeyValidator, capture, errors)) { + var oid = asn1.derToOid(capture.publicKeyOid); + if (oid !== pki2.oids.rsaEncryption) { + var error = new Error("Cannot read public key. Unknown OID."); + error.oid = oid; + throw error; + } + obj = capture.rsaPublicKey; + } + errors = []; + if (!asn1.validate(obj, rsaPublicKeyValidator, capture, errors)) { + var error = new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey."); + error.errors = errors; + throw error; + } + var n = forge3.util.createBuffer(capture.publicKeyModulus).toHex(); + var e = forge3.util.createBuffer(capture.publicKeyExponent).toHex(); + return pki2.setRsaPublicKey(new BigInteger(n, 16), new BigInteger(e, 16)); + }; + pki2.publicKeyToAsn1 = pki2.publicKeyToSubjectPublicKeyInfo = function(key) { + return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(pki2.oids.rsaEncryption).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, "") + ]), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, [ + pki2.publicKeyToRSAPublicKey(key) + ]) + ]); + }; + pki2.publicKeyToRSAPublicKey = function(key) { + return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, _bnToBytes(key.n)), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, _bnToBytes(key.e)) + ]); + }; + function _encodePkcs1_v1_5(m, key, bt) { + var eb = forge3.util.createBuffer(); + var k = Math.ceil(key.n.bitLength() / 8); + if (m.length > k - 11) { + var error = new Error("Message is too long for PKCS#1 v1.5 padding."); + error.length = m.length; + error.max = k - 11; + throw error; + } + eb.putByte(0); + eb.putByte(bt); + var padNum = k - 3 - m.length; + var padByte; + if (bt === 0 || bt === 1) { + padByte = bt === 0 ? 0 : 255; + for (var i = 0; i < padNum; ++i) { + eb.putByte(padByte); + } + } else { + while (padNum > 0) { + var numZeros = 0; + var padBytes = forge3.random.getBytes(padNum); + for (var i = 0; i < padNum; ++i) { + padByte = padBytes.charCodeAt(i); + if (padByte === 0) { + ++numZeros; + } else { + eb.putByte(padByte); + } + } + padNum = numZeros; + } + } + eb.putByte(0); + eb.putBytes(m); + return eb; + } + function _decodePkcs1_v1_5(em, key, pub, ml) { + var k = Math.ceil(key.n.bitLength() / 8); + var eb = forge3.util.createBuffer(em); + var first = eb.getByte(); + var bt = eb.getByte(); + if (first !== 0 || pub && bt !== 0 && bt !== 1 || !pub && bt != 2 || pub && bt === 0 && typeof ml === "undefined") { + throw new Error("Encryption block is invalid."); + } + var padNum = 0; + if (bt === 0) { + padNum = k - 3 - ml; + for (var i = 0; i < padNum; ++i) { + if (eb.getByte() !== 0) { + throw new Error("Encryption block is invalid."); + } + } + } else if (bt === 1) { + padNum = 0; + while (eb.length() > 1) { + if (eb.getByte() !== 255) { + --eb.read; + break; + } + ++padNum; + } + } else if (bt === 2) { + padNum = 0; + while (eb.length() > 1) { + if (eb.getByte() === 0) { + --eb.read; + break; + } + ++padNum; + } + } + var zero = eb.getByte(); + if (zero !== 0 || padNum !== k - 3 - eb.length()) { + throw new Error("Encryption block is invalid."); + } + return eb.getBytes(); + } + function _generateKeyPair(state, options, callback) { + if (typeof options === "function") { + callback = options; + options = {}; + } + options = options || {}; + var opts = { + algorithm: { + name: options.algorithm || "PRIMEINC", + options: { + workers: options.workers || 2, + workLoad: options.workLoad || 100, + workerScript: options.workerScript + } + } + }; + if ("prng" in options) { + opts.prng = options.prng; + } + generate(); + function generate() { + getPrime(state.pBits, function(err, num) { + if (err) { + return callback(err); + } + state.p = num; + if (state.q !== null) { + return finish(err, state.q); + } + getPrime(state.qBits, finish); + }); + } + function getPrime(bits, callback2) { + forge3.prime.generateProbablePrime(bits, opts, callback2); + } + function finish(err, num) { + if (err) { + return callback(err); + } + state.q = num; + if (state.p.compareTo(state.q) < 0) { + var tmp = state.p; + state.p = state.q; + state.q = tmp; + } + if (state.p.subtract(BigInteger.ONE).gcd(state.e).compareTo(BigInteger.ONE) !== 0) { + state.p = null; + generate(); + return; + } + if (state.q.subtract(BigInteger.ONE).gcd(state.e).compareTo(BigInteger.ONE) !== 0) { + state.q = null; + getPrime(state.qBits, finish); + return; + } + state.p1 = state.p.subtract(BigInteger.ONE); + state.q1 = state.q.subtract(BigInteger.ONE); + state.phi = state.p1.multiply(state.q1); + if (state.phi.gcd(state.e).compareTo(BigInteger.ONE) !== 0) { + state.p = state.q = null; + generate(); + return; + } + state.n = state.p.multiply(state.q); + if (state.n.bitLength() !== state.bits) { + state.q = null; + getPrime(state.qBits, finish); + return; + } + var d = state.e.modInverse(state.phi); + state.keys = { + privateKey: pki2.rsa.setPrivateKey(state.n, state.e, d, state.p, state.q, d.mod(state.p1), d.mod(state.q1), state.q.modInverse(state.p)), + publicKey: pki2.rsa.setPublicKey(state.n, state.e) + }; + callback(null, state.keys); + } + } + function _bnToBytes(b) { + var hex = b.toString(16); + if (hex[0] >= "8") { + hex = "00" + hex; + } + var bytes = forge3.util.hexToBytes(hex); + if (bytes.length > 1 && (bytes.charCodeAt(0) === 0 && (bytes.charCodeAt(1) & 128) === 0 || bytes.charCodeAt(0) === 255 && (bytes.charCodeAt(1) & 128) === 128)) { + return bytes.substr(1); + } + return bytes; + } + function _getMillerRabinTests(bits) { + if (bits <= 100) + return 27; + if (bits <= 150) + return 18; + if (bits <= 200) + return 15; + if (bits <= 250) + return 12; + if (bits <= 300) + return 9; + if (bits <= 350) + return 8; + if (bits <= 400) + return 7; + if (bits <= 500) + return 6; + if (bits <= 600) + return 5; + if (bits <= 800) + return 4; + if (bits <= 1250) + return 3; + return 2; + } + function _detectNodeCrypto(fn2) { + return forge3.util.isNodejs && typeof _crypto[fn2] === "function"; + } + function _detectSubtleCrypto(fn2) { + return typeof util.globalScope !== "undefined" && typeof util.globalScope.crypto === "object" && typeof util.globalScope.crypto.subtle === "object" && typeof util.globalScope.crypto.subtle[fn2] === "function"; + } + function _detectSubtleMsCrypto(fn2) { + return typeof util.globalScope !== "undefined" && typeof util.globalScope.msCrypto === "object" && typeof util.globalScope.msCrypto.subtle === "object" && typeof util.globalScope.msCrypto.subtle[fn2] === "function"; + } + function _intToUint8Array(x) { + var bytes = forge3.util.hexToBytes(x.toString(16)); + var buffer = new Uint8Array(bytes.length); + for (var i = 0; i < bytes.length; ++i) { + buffer[i] = bytes.charCodeAt(i); + } + return buffer; + } + } +}); + +// node_modules/node-forge/lib/pbe.js +var require_pbe = __commonJS({ + "node_modules/node-forge/lib/pbe.js"(exports2, module2) { + var forge3 = require_forge(); + require_aes(); + require_asn1(); + require_des(); + require_md(); + require_oids(); + require_pbkdf2(); + require_pem(); + require_random(); + require_rc2(); + require_rsa(); + require_util(); + if (typeof BigInteger === "undefined") { + BigInteger = forge3.jsbn.BigInteger; + } + var BigInteger; + var asn1 = forge3.asn1; + var pki2 = forge3.pki = forge3.pki || {}; + module2.exports = pki2.pbe = forge3.pbe = forge3.pbe || {}; + var oids = pki2.oids; + var encryptedPrivateKeyValidator = { + name: "EncryptedPrivateKeyInfo", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "EncryptedPrivateKeyInfo.encryptionAlgorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "AlgorithmIdentifier.algorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "encryptionOid" + }, { + name: "AlgorithmIdentifier.parameters", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + captureAsn1: "encryptionParams" + }] + }, { + name: "EncryptedPrivateKeyInfo.encryptedData", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OCTETSTRING, + constructed: false, + capture: "encryptedData" + }] + }; + var PBES2AlgorithmsValidator = { + name: "PBES2Algorithms", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "PBES2Algorithms.keyDerivationFunc", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "PBES2Algorithms.keyDerivationFunc.oid", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "kdfOid" + }, { + name: "PBES2Algorithms.params", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "PBES2Algorithms.params.salt", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OCTETSTRING, + constructed: false, + capture: "kdfSalt" + }, { + name: "PBES2Algorithms.params.iterationCount", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "kdfIterationCount" + }, { + name: "PBES2Algorithms.params.keyLength", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + optional: true, + capture: "keyLength" + }, { + name: "PBES2Algorithms.params.prf", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + optional: true, + value: [{ + name: "PBES2Algorithms.params.prf.algorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "prfOid" + }] + }] + }] + }, { + name: "PBES2Algorithms.encryptionScheme", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "PBES2Algorithms.encryptionScheme.oid", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "encOid" + }, { + name: "PBES2Algorithms.encryptionScheme.iv", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OCTETSTRING, + constructed: false, + capture: "encIv" + }] + }] + }; + var pkcs12PbeParamsValidator = { + name: "pkcs-12PbeParams", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "pkcs-12PbeParams.salt", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OCTETSTRING, + constructed: false, + capture: "salt" + }, { + name: "pkcs-12PbeParams.iterations", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "iterations" + }] + }; + pki2.encryptPrivateKeyInfo = function(obj, password, options) { + options = options || {}; + options.saltSize = options.saltSize || 8; + options.count = options.count || 2048; + options.algorithm = options.algorithm || "aes128"; + options.prfAlgorithm = options.prfAlgorithm || "sha1"; + var salt = forge3.random.getBytesSync(options.saltSize); + var count = options.count; + var countBytes = asn1.integerToDer(count); + var dkLen; + var encryptionAlgorithm; + var encryptedData; + if (options.algorithm.indexOf("aes") === 0 || options.algorithm === "des") { + var ivLen, encOid, cipherFn; + switch (options.algorithm) { + case "aes128": + dkLen = 16; + ivLen = 16; + encOid = oids["aes128-CBC"]; + cipherFn = forge3.aes.createEncryptionCipher; + break; + case "aes192": + dkLen = 24; + ivLen = 16; + encOid = oids["aes192-CBC"]; + cipherFn = forge3.aes.createEncryptionCipher; + break; + case "aes256": + dkLen = 32; + ivLen = 16; + encOid = oids["aes256-CBC"]; + cipherFn = forge3.aes.createEncryptionCipher; + break; + case "des": + dkLen = 8; + ivLen = 8; + encOid = oids["desCBC"]; + cipherFn = forge3.des.createEncryptionCipher; + break; + default: + var error = new Error("Cannot encrypt private key. Unknown encryption algorithm."); + error.algorithm = options.algorithm; + throw error; + } + var prfAlgorithm = "hmacWith" + options.prfAlgorithm.toUpperCase(); + var md = prfAlgorithmToMessageDigest(prfAlgorithm); + var dk = forge3.pkcs5.pbkdf2(password, salt, count, dkLen, md); + var iv = forge3.random.getBytesSync(ivLen); + var cipher = cipherFn(dk); + cipher.start(iv); + cipher.update(asn1.toDer(obj)); + cipher.finish(); + encryptedData = cipher.output.getBytes(); + var params = createPbkdf2Params(salt, countBytes, dkLen, prfAlgorithm); + encryptionAlgorithm = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(oids["pkcs5PBES2"]).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(oids["pkcs5PBKDF2"]).getBytes()), + params + ]), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(encOid).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, iv) + ]) + ]) + ]); + } else if (options.algorithm === "3des") { + dkLen = 24; + var saltBytes = new forge3.util.ByteBuffer(salt); + var dk = pki2.pbe.generatePkcs12Key(password, saltBytes, 1, count, dkLen); + var iv = pki2.pbe.generatePkcs12Key(password, saltBytes, 2, count, dkLen); + var cipher = forge3.des.createEncryptionCipher(dk); + cipher.start(iv); + cipher.update(asn1.toDer(obj)); + cipher.finish(); + encryptedData = cipher.output.getBytes(); + encryptionAlgorithm = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, salt), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, countBytes.getBytes()) + ]) + ]); + } else { + var error = new Error("Cannot encrypt private key. Unknown encryption algorithm."); + error.algorithm = options.algorithm; + throw error; + } + var rval = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + encryptionAlgorithm, + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, encryptedData) + ]); + return rval; + }; + pki2.decryptPrivateKeyInfo = function(obj, password) { + var rval = null; + var capture = {}; + var errors = []; + if (!asn1.validate(obj, encryptedPrivateKeyValidator, capture, errors)) { + var error = new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo."); + error.errors = errors; + throw error; + } + var oid = asn1.derToOid(capture.encryptionOid); + var cipher = pki2.pbe.getCipher(oid, capture.encryptionParams, password); + var encrypted = forge3.util.createBuffer(capture.encryptedData); + cipher.update(encrypted); + if (cipher.finish()) { + rval = asn1.fromDer(cipher.output); + } + return rval; + }; + pki2.encryptedPrivateKeyToPem = function(epki, maxline) { + var msg = { + type: "ENCRYPTED PRIVATE KEY", + body: asn1.toDer(epki).getBytes() + }; + return forge3.pem.encode(msg, { maxline }); + }; + pki2.encryptedPrivateKeyFromPem = function(pem) { + var msg = forge3.pem.decode(pem)[0]; + if (msg.type !== "ENCRYPTED PRIVATE KEY") { + var error = new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".'); + error.headerType = msg.type; + throw error; + } + if (msg.procType && msg.procType.type === "ENCRYPTED") { + throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted."); + } + return asn1.fromDer(msg.body); + }; + pki2.encryptRsaPrivateKey = function(rsaKey, password, options) { + options = options || {}; + if (!options.legacy) { + var rval = pki2.wrapRsaPrivateKey(pki2.privateKeyToAsn1(rsaKey)); + rval = pki2.encryptPrivateKeyInfo(rval, password, options); + return pki2.encryptedPrivateKeyToPem(rval); + } + var algorithm; + var iv; + var dkLen; + var cipherFn; + switch (options.algorithm) { + case "aes128": + algorithm = "AES-128-CBC"; + dkLen = 16; + iv = forge3.random.getBytesSync(16); + cipherFn = forge3.aes.createEncryptionCipher; + break; + case "aes192": + algorithm = "AES-192-CBC"; + dkLen = 24; + iv = forge3.random.getBytesSync(16); + cipherFn = forge3.aes.createEncryptionCipher; + break; + case "aes256": + algorithm = "AES-256-CBC"; + dkLen = 32; + iv = forge3.random.getBytesSync(16); + cipherFn = forge3.aes.createEncryptionCipher; + break; + case "3des": + algorithm = "DES-EDE3-CBC"; + dkLen = 24; + iv = forge3.random.getBytesSync(8); + cipherFn = forge3.des.createEncryptionCipher; + break; + case "des": + algorithm = "DES-CBC"; + dkLen = 8; + iv = forge3.random.getBytesSync(8); + cipherFn = forge3.des.createEncryptionCipher; + break; + default: + var error = new Error('Could not encrypt RSA private key; unsupported encryption algorithm "' + options.algorithm + '".'); + error.algorithm = options.algorithm; + throw error; + } + var dk = forge3.pbe.opensslDeriveBytes(password, iv.substr(0, 8), dkLen); + var cipher = cipherFn(dk); + cipher.start(iv); + cipher.update(asn1.toDer(pki2.privateKeyToAsn1(rsaKey))); + cipher.finish(); + var msg = { + type: "RSA PRIVATE KEY", + procType: { + version: "4", + type: "ENCRYPTED" + }, + dekInfo: { + algorithm, + parameters: forge3.util.bytesToHex(iv).toUpperCase() + }, + body: cipher.output.getBytes() + }; + return forge3.pem.encode(msg); + }; + pki2.decryptRsaPrivateKey = function(pem, password) { + var rval = null; + var msg = forge3.pem.decode(pem)[0]; + if (msg.type !== "ENCRYPTED PRIVATE KEY" && msg.type !== "PRIVATE KEY" && msg.type !== "RSA PRIVATE KEY") { + var error = new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".'); + error.headerType = error; + throw error; + } + if (msg.procType && msg.procType.type === "ENCRYPTED") { + var dkLen; + var cipherFn; + switch (msg.dekInfo.algorithm) { + case "DES-CBC": + dkLen = 8; + cipherFn = forge3.des.createDecryptionCipher; + break; + case "DES-EDE3-CBC": + dkLen = 24; + cipherFn = forge3.des.createDecryptionCipher; + break; + case "AES-128-CBC": + dkLen = 16; + cipherFn = forge3.aes.createDecryptionCipher; + break; + case "AES-192-CBC": + dkLen = 24; + cipherFn = forge3.aes.createDecryptionCipher; + break; + case "AES-256-CBC": + dkLen = 32; + cipherFn = forge3.aes.createDecryptionCipher; + break; + case "RC2-40-CBC": + dkLen = 5; + cipherFn = function(key) { + return forge3.rc2.createDecryptionCipher(key, 40); + }; + break; + case "RC2-64-CBC": + dkLen = 8; + cipherFn = function(key) { + return forge3.rc2.createDecryptionCipher(key, 64); + }; + break; + case "RC2-128-CBC": + dkLen = 16; + cipherFn = function(key) { + return forge3.rc2.createDecryptionCipher(key, 128); + }; + break; + default: + var error = new Error('Could not decrypt private key; unsupported encryption algorithm "' + msg.dekInfo.algorithm + '".'); + error.algorithm = msg.dekInfo.algorithm; + throw error; + } + var iv = forge3.util.hexToBytes(msg.dekInfo.parameters); + var dk = forge3.pbe.opensslDeriveBytes(password, iv.substr(0, 8), dkLen); + var cipher = cipherFn(dk); + cipher.start(iv); + cipher.update(forge3.util.createBuffer(msg.body)); + if (cipher.finish()) { + rval = cipher.output.getBytes(); + } else { + return rval; + } + } else { + rval = msg.body; + } + if (msg.type === "ENCRYPTED PRIVATE KEY") { + rval = pki2.decryptPrivateKeyInfo(asn1.fromDer(rval), password); + } else { + rval = asn1.fromDer(rval); + } + if (rval !== null) { + rval = pki2.privateKeyFromAsn1(rval); + } + return rval; + }; + pki2.pbe.generatePkcs12Key = function(password, salt, id, iter, n, md) { + var j, l; + if (typeof md === "undefined" || md === null) { + if (!("sha1" in forge3.md)) { + throw new Error('"sha1" hash algorithm unavailable.'); + } + md = forge3.md.sha1.create(); + } + var u = md.digestLength; + var v = md.blockLength; + var result = new forge3.util.ByteBuffer(); + var passBuf = new forge3.util.ByteBuffer(); + if (password !== null && password !== void 0) { + for (l = 0; l < password.length; l++) { + passBuf.putInt16(password.charCodeAt(l)); + } + passBuf.putInt16(0); + } + var p = passBuf.length(); + var s = salt.length(); + var D = new forge3.util.ByteBuffer(); + D.fillWithByte(id, v); + var Slen = v * Math.ceil(s / v); + var S = new forge3.util.ByteBuffer(); + for (l = 0; l < Slen; l++) { + S.putByte(salt.at(l % s)); + } + var Plen = v * Math.ceil(p / v); + var P = new forge3.util.ByteBuffer(); + for (l = 0; l < Plen; l++) { + P.putByte(passBuf.at(l % p)); + } + var I = S; + I.putBuffer(P); + var c = Math.ceil(n / u); + for (var i = 1; i <= c; i++) { + var buf = new forge3.util.ByteBuffer(); + buf.putBytes(D.bytes()); + buf.putBytes(I.bytes()); + for (var round = 0; round < iter; round++) { + md.start(); + md.update(buf.getBytes()); + buf = md.digest(); + } + var B = new forge3.util.ByteBuffer(); + for (l = 0; l < v; l++) { + B.putByte(buf.at(l % u)); + } + var k = Math.ceil(s / v) + Math.ceil(p / v); + var Inew = new forge3.util.ByteBuffer(); + for (j = 0; j < k; j++) { + var chunk = new forge3.util.ByteBuffer(I.getBytes(v)); + var x = 511; + for (l = B.length() - 1; l >= 0; l--) { + x = x >> 8; + x += B.at(l) + chunk.at(l); + chunk.setAt(l, x & 255); + } + Inew.putBuffer(chunk); + } + I = Inew; + result.putBuffer(buf); + } + result.truncate(result.length() - n); + return result; + }; + pki2.pbe.getCipher = function(oid, params, password) { + switch (oid) { + case pki2.oids["pkcs5PBES2"]: + return pki2.pbe.getCipherForPBES2(oid, params, password); + case pki2.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]: + case pki2.oids["pbewithSHAAnd40BitRC2-CBC"]: + return pki2.pbe.getCipherForPKCS12PBE(oid, params, password); + default: + var error = new Error("Cannot read encrypted PBE data block. Unsupported OID."); + error.oid = oid; + error.supportedOids = [ + "pkcs5PBES2", + "pbeWithSHAAnd3-KeyTripleDES-CBC", + "pbewithSHAAnd40BitRC2-CBC" + ]; + throw error; + } + }; + pki2.pbe.getCipherForPBES2 = function(oid, params, password) { + var capture = {}; + var errors = []; + if (!asn1.validate(params, PBES2AlgorithmsValidator, capture, errors)) { + var error = new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo."); + error.errors = errors; + throw error; + } + oid = asn1.derToOid(capture.kdfOid); + if (oid !== pki2.oids["pkcs5PBKDF2"]) { + var error = new Error("Cannot read encrypted private key. Unsupported key derivation function OID."); + error.oid = oid; + error.supportedOids = ["pkcs5PBKDF2"]; + throw error; + } + oid = asn1.derToOid(capture.encOid); + if (oid !== pki2.oids["aes128-CBC"] && oid !== pki2.oids["aes192-CBC"] && oid !== pki2.oids["aes256-CBC"] && oid !== pki2.oids["des-EDE3-CBC"] && oid !== pki2.oids["desCBC"]) { + var error = new Error("Cannot read encrypted private key. Unsupported encryption scheme OID."); + error.oid = oid; + error.supportedOids = [ + "aes128-CBC", + "aes192-CBC", + "aes256-CBC", + "des-EDE3-CBC", + "desCBC" + ]; + throw error; + } + var salt = capture.kdfSalt; + var count = forge3.util.createBuffer(capture.kdfIterationCount); + count = count.getInt(count.length() << 3); + var dkLen; + var cipherFn; + switch (pki2.oids[oid]) { + case "aes128-CBC": + dkLen = 16; + cipherFn = forge3.aes.createDecryptionCipher; + break; + case "aes192-CBC": + dkLen = 24; + cipherFn = forge3.aes.createDecryptionCipher; + break; + case "aes256-CBC": + dkLen = 32; + cipherFn = forge3.aes.createDecryptionCipher; + break; + case "des-EDE3-CBC": + dkLen = 24; + cipherFn = forge3.des.createDecryptionCipher; + break; + case "desCBC": + dkLen = 8; + cipherFn = forge3.des.createDecryptionCipher; + break; + } + var md = prfOidToMessageDigest(capture.prfOid); + var dk = forge3.pkcs5.pbkdf2(password, salt, count, dkLen, md); + var iv = capture.encIv; + var cipher = cipherFn(dk); + cipher.start(iv); + return cipher; + }; + pki2.pbe.getCipherForPKCS12PBE = function(oid, params, password) { + var capture = {}; + var errors = []; + if (!asn1.validate(params, pkcs12PbeParamsValidator, capture, errors)) { + var error = new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo."); + error.errors = errors; + throw error; + } + var salt = forge3.util.createBuffer(capture.salt); + var count = forge3.util.createBuffer(capture.iterations); + count = count.getInt(count.length() << 3); + var dkLen, dIvLen, cipherFn; + switch (oid) { + case pki2.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]: + dkLen = 24; + dIvLen = 8; + cipherFn = forge3.des.startDecrypting; + break; + case pki2.oids["pbewithSHAAnd40BitRC2-CBC"]: + dkLen = 5; + dIvLen = 8; + cipherFn = function(key2, iv2) { + var cipher = forge3.rc2.createDecryptionCipher(key2, 40); + cipher.start(iv2, null); + return cipher; + }; + break; + default: + var error = new Error("Cannot read PKCS #12 PBE data block. Unsupported OID."); + error.oid = oid; + throw error; + } + var md = prfOidToMessageDigest(capture.prfOid); + var key = pki2.pbe.generatePkcs12Key(password, salt, 1, count, dkLen, md); + md.start(); + var iv = pki2.pbe.generatePkcs12Key(password, salt, 2, count, dIvLen, md); + return cipherFn(key, iv); + }; + pki2.pbe.opensslDeriveBytes = function(password, salt, dkLen, md) { + if (typeof md === "undefined" || md === null) { + if (!("md5" in forge3.md)) { + throw new Error('"md5" hash algorithm unavailable.'); + } + md = forge3.md.md5.create(); + } + if (salt === null) { + salt = ""; + } + var digests = [hash(md, password + salt)]; + for (var length = 16, i = 1; length < dkLen; ++i, length += 16) { + digests.push(hash(md, digests[i - 1] + password + salt)); + } + return digests.join("").substr(0, dkLen); + }; + function hash(md, bytes) { + return md.start().update(bytes).digest().getBytes(); + } + function prfOidToMessageDigest(prfOid) { + var prfAlgorithm; + if (!prfOid) { + prfAlgorithm = "hmacWithSHA1"; + } else { + prfAlgorithm = pki2.oids[asn1.derToOid(prfOid)]; + if (!prfAlgorithm) { + var error = new Error("Unsupported PRF OID."); + error.oid = prfOid; + error.supported = [ + "hmacWithSHA1", + "hmacWithSHA224", + "hmacWithSHA256", + "hmacWithSHA384", + "hmacWithSHA512" + ]; + throw error; + } + } + return prfAlgorithmToMessageDigest(prfAlgorithm); + } + function prfAlgorithmToMessageDigest(prfAlgorithm) { + var factory = forge3.md; + switch (prfAlgorithm) { + case "hmacWithSHA224": + factory = forge3.md.sha512; + case "hmacWithSHA1": + case "hmacWithSHA256": + case "hmacWithSHA384": + case "hmacWithSHA512": + prfAlgorithm = prfAlgorithm.substr(8).toLowerCase(); + break; + default: + var error = new Error("Unsupported PRF algorithm."); + error.algorithm = prfAlgorithm; + error.supported = [ + "hmacWithSHA1", + "hmacWithSHA224", + "hmacWithSHA256", + "hmacWithSHA384", + "hmacWithSHA512" + ]; + throw error; + } + if (!factory || !(prfAlgorithm in factory)) { + throw new Error("Unknown hash algorithm: " + prfAlgorithm); + } + return factory[prfAlgorithm].create(); + } + function createPbkdf2Params(salt, countBytes, dkLen, prfAlgorithm) { + var params = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, salt), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, countBytes.getBytes()) + ]); + if (prfAlgorithm !== "hmacWithSHA1") { + params.value.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, forge3.util.hexToBytes(dkLen.toString(16))), asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(pki2.oids[prfAlgorithm]).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, "") + ])); + } + return params; + } + } +}); + +// node_modules/node-forge/lib/pkcs7asn1.js +var require_pkcs7asn1 = __commonJS({ + "node_modules/node-forge/lib/pkcs7asn1.js"(exports2, module2) { + var forge3 = require_forge(); + require_asn1(); + require_util(); + var asn1 = forge3.asn1; + var p7v = module2.exports = forge3.pkcs7asn1 = forge3.pkcs7asn1 || {}; + forge3.pkcs7 = forge3.pkcs7 || {}; + forge3.pkcs7.asn1 = p7v; + var contentInfoValidator = { + name: "ContentInfo", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "ContentInfo.ContentType", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "contentType" + }, { + name: "ContentInfo.content", + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 0, + constructed: true, + optional: true, + captureAsn1: "content" + }] + }; + p7v.contentInfoValidator = contentInfoValidator; + var encryptedContentInfoValidator = { + name: "EncryptedContentInfo", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "EncryptedContentInfo.contentType", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "contentType" + }, { + name: "EncryptedContentInfo.contentEncryptionAlgorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "EncryptedContentInfo.contentEncryptionAlgorithm.algorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "encAlgorithm" + }, { + name: "EncryptedContentInfo.contentEncryptionAlgorithm.parameter", + tagClass: asn1.Class.UNIVERSAL, + captureAsn1: "encParameter" + }] + }, { + name: "EncryptedContentInfo.encryptedContent", + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 0, + capture: "encryptedContent", + captureAsn1: "encryptedContentAsn1" + }] + }; + p7v.envelopedDataValidator = { + name: "EnvelopedData", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "EnvelopedData.Version", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "version" + }, { + name: "EnvelopedData.RecipientInfos", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SET, + constructed: true, + captureAsn1: "recipientInfos" + }].concat(encryptedContentInfoValidator) + }; + p7v.encryptedDataValidator = { + name: "EncryptedData", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "EncryptedData.Version", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "version" + }].concat(encryptedContentInfoValidator) + }; + var signerValidator = { + name: "SignerInfo", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "SignerInfo.version", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false + }, { + name: "SignerInfo.issuerAndSerialNumber", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "SignerInfo.issuerAndSerialNumber.issuer", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + captureAsn1: "issuer" + }, { + name: "SignerInfo.issuerAndSerialNumber.serialNumber", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "serial" + }] + }, { + name: "SignerInfo.digestAlgorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "SignerInfo.digestAlgorithm.algorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "digestAlgorithm" + }, { + name: "SignerInfo.digestAlgorithm.parameter", + tagClass: asn1.Class.UNIVERSAL, + constructed: false, + captureAsn1: "digestParameter", + optional: true + }] + }, { + name: "SignerInfo.authenticatedAttributes", + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 0, + constructed: true, + optional: true, + capture: "authenticatedAttributes" + }, { + name: "SignerInfo.digestEncryptionAlgorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + capture: "signatureAlgorithm" + }, { + name: "SignerInfo.encryptedDigest", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OCTETSTRING, + constructed: false, + capture: "signature" + }, { + name: "SignerInfo.unauthenticatedAttributes", + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 1, + constructed: true, + optional: true, + capture: "unauthenticatedAttributes" + }] + }; + p7v.signedDataValidator = { + name: "SignedData", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [ + { + name: "SignedData.Version", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "version" + }, + { + name: "SignedData.DigestAlgorithms", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SET, + constructed: true, + captureAsn1: "digestAlgorithms" + }, + contentInfoValidator, + { + name: "SignedData.Certificates", + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 0, + optional: true, + captureAsn1: "certificates" + }, + { + name: "SignedData.CertificateRevocationLists", + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 1, + optional: true, + captureAsn1: "crls" + }, + { + name: "SignedData.SignerInfos", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SET, + capture: "signerInfos", + optional: true, + value: [signerValidator] + } + ] + }; + p7v.recipientInfoValidator = { + name: "RecipientInfo", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "RecipientInfo.version", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "version" + }, { + name: "RecipientInfo.issuerAndSerial", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "RecipientInfo.issuerAndSerial.issuer", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + captureAsn1: "issuer" + }, { + name: "RecipientInfo.issuerAndSerial.serialNumber", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "serial" + }] + }, { + name: "RecipientInfo.keyEncryptionAlgorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "RecipientInfo.keyEncryptionAlgorithm.algorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "encAlgorithm" + }, { + name: "RecipientInfo.keyEncryptionAlgorithm.parameter", + tagClass: asn1.Class.UNIVERSAL, + constructed: false, + captureAsn1: "encParameter", + optional: true + }] + }, { + name: "RecipientInfo.encryptedKey", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OCTETSTRING, + constructed: false, + capture: "encKey" + }] + }; + } +}); + +// node_modules/node-forge/lib/mgf1.js +var require_mgf1 = __commonJS({ + "node_modules/node-forge/lib/mgf1.js"(exports2, module2) { + var forge3 = require_forge(); + require_util(); + forge3.mgf = forge3.mgf || {}; + var mgf1 = module2.exports = forge3.mgf.mgf1 = forge3.mgf1 = forge3.mgf1 || {}; + mgf1.create = function(md) { + var mgf = { + generate: function(seed, maskLen) { + var t = new forge3.util.ByteBuffer(); + var len = Math.ceil(maskLen / md.digestLength); + for (var i = 0; i < len; i++) { + var c = new forge3.util.ByteBuffer(); + c.putInt32(i); + md.start(); + md.update(seed + c.getBytes()); + t.putBuffer(md.digest()); + } + t.truncate(t.length() - maskLen); + return t.getBytes(); + } + }; + return mgf; + }; + } +}); + +// node_modules/node-forge/lib/mgf.js +var require_mgf = __commonJS({ + "node_modules/node-forge/lib/mgf.js"(exports2, module2) { + var forge3 = require_forge(); + require_mgf1(); + module2.exports = forge3.mgf = forge3.mgf || {}; + forge3.mgf.mgf1 = forge3.mgf1; + } +}); + +// node_modules/node-forge/lib/pss.js +var require_pss = __commonJS({ + "node_modules/node-forge/lib/pss.js"(exports2, module2) { + var forge3 = require_forge(); + require_random(); + require_util(); + var pss = module2.exports = forge3.pss = forge3.pss || {}; + pss.create = function(options) { + if (arguments.length === 3) { + options = { + md: arguments[0], + mgf: arguments[1], + saltLength: arguments[2] + }; + } + var hash = options.md; + var mgf = options.mgf; + var hLen = hash.digestLength; + var salt_ = options.salt || null; + if (typeof salt_ === "string") { + salt_ = forge3.util.createBuffer(salt_); + } + var sLen; + if ("saltLength" in options) { + sLen = options.saltLength; + } else if (salt_ !== null) { + sLen = salt_.length(); + } else { + throw new Error("Salt length not specified or specific salt not given."); + } + if (salt_ !== null && salt_.length() !== sLen) { + throw new Error("Given salt length does not match length of given salt."); + } + var prng = options.prng || forge3.random; + var pssobj = {}; + pssobj.encode = function(md, modBits) { + var i; + var emBits = modBits - 1; + var emLen = Math.ceil(emBits / 8); + var mHash = md.digest().getBytes(); + if (emLen < hLen + sLen + 2) { + throw new Error("Message is too long to encrypt."); + } + var salt; + if (salt_ === null) { + salt = prng.getBytesSync(sLen); + } else { + salt = salt_.bytes(); + } + var m_ = new forge3.util.ByteBuffer(); + m_.fillWithByte(0, 8); + m_.putBytes(mHash); + m_.putBytes(salt); + hash.start(); + hash.update(m_.getBytes()); + var h = hash.digest().getBytes(); + var ps = new forge3.util.ByteBuffer(); + ps.fillWithByte(0, emLen - sLen - hLen - 2); + ps.putByte(1); + ps.putBytes(salt); + var db = ps.getBytes(); + var maskLen = emLen - hLen - 1; + var dbMask = mgf.generate(h, maskLen); + var maskedDB = ""; + for (i = 0; i < maskLen; i++) { + maskedDB += String.fromCharCode(db.charCodeAt(i) ^ dbMask.charCodeAt(i)); + } + var mask = 65280 >> 8 * emLen - emBits & 255; + maskedDB = String.fromCharCode(maskedDB.charCodeAt(0) & ~mask) + maskedDB.substr(1); + return maskedDB + h + String.fromCharCode(188); + }; + pssobj.verify = function(mHash, em, modBits) { + var i; + var emBits = modBits - 1; + var emLen = Math.ceil(emBits / 8); + em = em.substr(-emLen); + if (emLen < hLen + sLen + 2) { + throw new Error("Inconsistent parameters to PSS signature verification."); + } + if (em.charCodeAt(emLen - 1) !== 188) { + throw new Error("Encoded message does not end in 0xBC."); + } + var maskLen = emLen - hLen - 1; + var maskedDB = em.substr(0, maskLen); + var h = em.substr(maskLen, hLen); + var mask = 65280 >> 8 * emLen - emBits & 255; + if ((maskedDB.charCodeAt(0) & mask) !== 0) { + throw new Error("Bits beyond keysize not zero as expected."); + } + var dbMask = mgf.generate(h, maskLen); + var db = ""; + for (i = 0; i < maskLen; i++) { + db += String.fromCharCode(maskedDB.charCodeAt(i) ^ dbMask.charCodeAt(i)); + } + db = String.fromCharCode(db.charCodeAt(0) & ~mask) + db.substr(1); + var checkLen = emLen - hLen - sLen - 2; + for (i = 0; i < checkLen; i++) { + if (db.charCodeAt(i) !== 0) { + throw new Error("Leftmost octets not zero as expected"); + } + } + if (db.charCodeAt(checkLen) !== 1) { + throw new Error("Inconsistent PSS signature, 0x01 marker not found"); + } + var salt = db.substr(-sLen); + var m_ = new forge3.util.ByteBuffer(); + m_.fillWithByte(0, 8); + m_.putBytes(mHash); + m_.putBytes(salt); + hash.start(); + hash.update(m_.getBytes()); + var h_ = hash.digest().getBytes(); + return h === h_; + }; + return pssobj; + }; + } +}); + +// node_modules/node-forge/lib/x509.js +var require_x509 = __commonJS({ + "node_modules/node-forge/lib/x509.js"(exports2, module2) { + var forge3 = require_forge(); + require_aes(); + require_asn1(); + require_des(); + require_md(); + require_mgf(); + require_oids(); + require_pem(); + require_pss(); + require_rsa(); + require_util(); + var asn1 = forge3.asn1; + var pki2 = module2.exports = forge3.pki = forge3.pki || {}; + var oids = pki2.oids; + var _shortNames = {}; + _shortNames["CN"] = oids["commonName"]; + _shortNames["commonName"] = "CN"; + _shortNames["C"] = oids["countryName"]; + _shortNames["countryName"] = "C"; + _shortNames["L"] = oids["localityName"]; + _shortNames["localityName"] = "L"; + _shortNames["ST"] = oids["stateOrProvinceName"]; + _shortNames["stateOrProvinceName"] = "ST"; + _shortNames["O"] = oids["organizationName"]; + _shortNames["organizationName"] = "O"; + _shortNames["OU"] = oids["organizationalUnitName"]; + _shortNames["organizationalUnitName"] = "OU"; + _shortNames["E"] = oids["emailAddress"]; + _shortNames["emailAddress"] = "E"; + var publicKeyValidator = forge3.pki.rsa.publicKeyValidator; + var x509CertificateValidator = { + name: "Certificate", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "Certificate.TBSCertificate", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + captureAsn1: "tbsCertificate", + value: [ + { + name: "Certificate.TBSCertificate.version", + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 0, + constructed: true, + optional: true, + value: [{ + name: "Certificate.TBSCertificate.version.integer", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "certVersion" + }] + }, + { + name: "Certificate.TBSCertificate.serialNumber", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "certSerialNumber" + }, + { + name: "Certificate.TBSCertificate.signature", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "Certificate.TBSCertificate.signature.algorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "certinfoSignatureOid" + }, { + name: "Certificate.TBSCertificate.signature.parameters", + tagClass: asn1.Class.UNIVERSAL, + optional: true, + captureAsn1: "certinfoSignatureParams" + }] + }, + { + name: "Certificate.TBSCertificate.issuer", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + captureAsn1: "certIssuer" + }, + { + name: "Certificate.TBSCertificate.validity", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "Certificate.TBSCertificate.validity.notBefore (utc)", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.UTCTIME, + constructed: false, + optional: true, + capture: "certValidity1UTCTime" + }, { + name: "Certificate.TBSCertificate.validity.notBefore (generalized)", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.GENERALIZEDTIME, + constructed: false, + optional: true, + capture: "certValidity2GeneralizedTime" + }, { + name: "Certificate.TBSCertificate.validity.notAfter (utc)", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.UTCTIME, + constructed: false, + optional: true, + capture: "certValidity3UTCTime" + }, { + name: "Certificate.TBSCertificate.validity.notAfter (generalized)", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.GENERALIZEDTIME, + constructed: false, + optional: true, + capture: "certValidity4GeneralizedTime" + }] + }, + { + name: "Certificate.TBSCertificate.subject", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + captureAsn1: "certSubject" + }, + publicKeyValidator, + { + name: "Certificate.TBSCertificate.issuerUniqueID", + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 1, + constructed: true, + optional: true, + value: [{ + name: "Certificate.TBSCertificate.issuerUniqueID.id", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.BITSTRING, + constructed: false, + captureBitStringValue: "certIssuerUniqueId" + }] + }, + { + name: "Certificate.TBSCertificate.subjectUniqueID", + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 2, + constructed: true, + optional: true, + value: [{ + name: "Certificate.TBSCertificate.subjectUniqueID.id", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.BITSTRING, + constructed: false, + captureBitStringValue: "certSubjectUniqueId" + }] + }, + { + name: "Certificate.TBSCertificate.extensions", + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 3, + constructed: true, + captureAsn1: "certExtensions", + optional: true + } + ] + }, { + name: "Certificate.signatureAlgorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "Certificate.signatureAlgorithm.algorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "certSignatureOid" + }, { + name: "Certificate.TBSCertificate.signature.parameters", + tagClass: asn1.Class.UNIVERSAL, + optional: true, + captureAsn1: "certSignatureParams" + }] + }, { + name: "Certificate.signatureValue", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.BITSTRING, + constructed: false, + captureBitStringValue: "certSignature" + }] + }; + var rsassaPssParameterValidator = { + name: "rsapss", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "rsapss.hashAlgorithm", + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 0, + constructed: true, + value: [{ + name: "rsapss.hashAlgorithm.AlgorithmIdentifier", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Class.SEQUENCE, + constructed: true, + optional: true, + value: [{ + name: "rsapss.hashAlgorithm.AlgorithmIdentifier.algorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "hashOid" + }] + }] + }, { + name: "rsapss.maskGenAlgorithm", + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 1, + constructed: true, + value: [{ + name: "rsapss.maskGenAlgorithm.AlgorithmIdentifier", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Class.SEQUENCE, + constructed: true, + optional: true, + value: [{ + name: "rsapss.maskGenAlgorithm.AlgorithmIdentifier.algorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "maskGenOid" + }, { + name: "rsapss.maskGenAlgorithm.AlgorithmIdentifier.params", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "rsapss.maskGenAlgorithm.AlgorithmIdentifier.params.algorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "maskGenHashOid" + }] + }] + }] + }, { + name: "rsapss.saltLength", + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 2, + optional: true, + value: [{ + name: "rsapss.saltLength.saltLength", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Class.INTEGER, + constructed: false, + capture: "saltLength" + }] + }, { + name: "rsapss.trailerField", + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 3, + optional: true, + value: [{ + name: "rsapss.trailer.trailer", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Class.INTEGER, + constructed: false, + capture: "trailer" + }] + }] + }; + var certificationRequestInfoValidator = { + name: "CertificationRequestInfo", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + captureAsn1: "certificationRequestInfo", + value: [ + { + name: "CertificationRequestInfo.integer", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "certificationRequestInfoVersion" + }, + { + name: "CertificationRequestInfo.subject", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + captureAsn1: "certificationRequestInfoSubject" + }, + publicKeyValidator, + { + name: "CertificationRequestInfo.attributes", + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 0, + constructed: true, + optional: true, + capture: "certificationRequestInfoAttributes", + value: [{ + name: "CertificationRequestInfo.attributes", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "CertificationRequestInfo.attributes.type", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false + }, { + name: "CertificationRequestInfo.attributes.value", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SET, + constructed: true + }] + }] + } + ] + }; + var certificationRequestValidator = { + name: "CertificationRequest", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + captureAsn1: "csr", + value: [ + certificationRequestInfoValidator, + { + name: "CertificationRequest.signatureAlgorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "CertificationRequest.signatureAlgorithm.algorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "csrSignatureOid" + }, { + name: "CertificationRequest.signatureAlgorithm.parameters", + tagClass: asn1.Class.UNIVERSAL, + optional: true, + captureAsn1: "csrSignatureParams" + }] + }, + { + name: "CertificationRequest.signature", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.BITSTRING, + constructed: false, + captureBitStringValue: "csrSignature" + } + ] + }; + pki2.RDNAttributesAsArray = function(rdn, md) { + var rval = []; + var set, attr, obj; + for (var si = 0; si < rdn.value.length; ++si) { + set = rdn.value[si]; + for (var i = 0; i < set.value.length; ++i) { + obj = {}; + attr = set.value[i]; + obj.type = asn1.derToOid(attr.value[0].value); + obj.value = attr.value[1].value; + obj.valueTagClass = attr.value[1].type; + if (obj.type in oids) { + obj.name = oids[obj.type]; + if (obj.name in _shortNames) { + obj.shortName = _shortNames[obj.name]; + } + } + if (md) { + md.update(obj.type); + md.update(obj.value); + } + rval.push(obj); + } + } + return rval; + }; + pki2.CRIAttributesAsArray = function(attributes) { + var rval = []; + for (var si = 0; si < attributes.length; ++si) { + var seq = attributes[si]; + var type = asn1.derToOid(seq.value[0].value); + var values = seq.value[1].value; + for (var vi = 0; vi < values.length; ++vi) { + var obj = {}; + obj.type = type; + obj.value = values[vi].value; + obj.valueTagClass = values[vi].type; + if (obj.type in oids) { + obj.name = oids[obj.type]; + if (obj.name in _shortNames) { + obj.shortName = _shortNames[obj.name]; + } + } + if (obj.type === oids.extensionRequest) { + obj.extensions = []; + for (var ei = 0; ei < obj.value.length; ++ei) { + obj.extensions.push(pki2.certificateExtensionFromAsn1(obj.value[ei])); + } + } + rval.push(obj); + } + } + return rval; + }; + function _getAttribute(obj, options) { + if (typeof options === "string") { + options = { shortName: options }; + } + var rval = null; + var attr; + for (var i = 0; rval === null && i < obj.attributes.length; ++i) { + attr = obj.attributes[i]; + if (options.type && options.type === attr.type) { + rval = attr; + } else if (options.name && options.name === attr.name) { + rval = attr; + } else if (options.shortName && options.shortName === attr.shortName) { + rval = attr; + } + } + return rval; + } + var _readSignatureParameters = function(oid, obj, fillDefaults) { + var params = {}; + if (oid !== oids["RSASSA-PSS"]) { + return params; + } + if (fillDefaults) { + params = { + hash: { + algorithmOid: oids["sha1"] + }, + mgf: { + algorithmOid: oids["mgf1"], + hash: { + algorithmOid: oids["sha1"] + } + }, + saltLength: 20 + }; + } + var capture = {}; + var errors = []; + if (!asn1.validate(obj, rsassaPssParameterValidator, capture, errors)) { + var error = new Error("Cannot read RSASSA-PSS parameter block."); + error.errors = errors; + throw error; + } + if (capture.hashOid !== void 0) { + params.hash = params.hash || {}; + params.hash.algorithmOid = asn1.derToOid(capture.hashOid); + } + if (capture.maskGenOid !== void 0) { + params.mgf = params.mgf || {}; + params.mgf.algorithmOid = asn1.derToOid(capture.maskGenOid); + params.mgf.hash = params.mgf.hash || {}; + params.mgf.hash.algorithmOid = asn1.derToOid(capture.maskGenHashOid); + } + if (capture.saltLength !== void 0) { + params.saltLength = capture.saltLength.charCodeAt(0); + } + return params; + }; + var _createSignatureDigest = function(options) { + switch (oids[options.signatureOid]) { + case "sha1WithRSAEncryption": + case "sha1WithRSASignature": + return forge3.md.sha1.create(); + case "md5WithRSAEncryption": + return forge3.md.md5.create(); + case "sha256WithRSAEncryption": + return forge3.md.sha256.create(); + case "sha384WithRSAEncryption": + return forge3.md.sha384.create(); + case "sha512WithRSAEncryption": + return forge3.md.sha512.create(); + case "RSASSA-PSS": + return forge3.md.sha256.create(); + default: + var error = new Error("Could not compute " + options.type + " digest. Unknown signature OID."); + error.signatureOid = options.signatureOid; + throw error; + } + }; + var _verifySignature = function(options) { + var cert = options.certificate; + var scheme; + switch (cert.signatureOid) { + case oids.sha1WithRSAEncryption: + case oids.sha1WithRSASignature: + break; + case oids["RSASSA-PSS"]: + var hash, mgf; + hash = oids[cert.signatureParameters.mgf.hash.algorithmOid]; + if (hash === void 0 || forge3.md[hash] === void 0) { + var error = new Error("Unsupported MGF hash function."); + error.oid = cert.signatureParameters.mgf.hash.algorithmOid; + error.name = hash; + throw error; + } + mgf = oids[cert.signatureParameters.mgf.algorithmOid]; + if (mgf === void 0 || forge3.mgf[mgf] === void 0) { + var error = new Error("Unsupported MGF function."); + error.oid = cert.signatureParameters.mgf.algorithmOid; + error.name = mgf; + throw error; + } + mgf = forge3.mgf[mgf].create(forge3.md[hash].create()); + hash = oids[cert.signatureParameters.hash.algorithmOid]; + if (hash === void 0 || forge3.md[hash] === void 0) { + var error = new Error("Unsupported RSASSA-PSS hash function."); + error.oid = cert.signatureParameters.hash.algorithmOid; + error.name = hash; + throw error; + } + scheme = forge3.pss.create(forge3.md[hash].create(), mgf, cert.signatureParameters.saltLength); + break; + } + return cert.publicKey.verify(options.md.digest().getBytes(), options.signature, scheme); + }; + pki2.certificateFromPem = function(pem, computeHash, strict) { + var msg = forge3.pem.decode(pem)[0]; + if (msg.type !== "CERTIFICATE" && msg.type !== "X509 CERTIFICATE" && msg.type !== "TRUSTED CERTIFICATE") { + var error = new Error('Could not convert certificate from PEM; PEM header type is not "CERTIFICATE", "X509 CERTIFICATE", or "TRUSTED CERTIFICATE".'); + error.headerType = msg.type; + throw error; + } + if (msg.procType && msg.procType.type === "ENCRYPTED") { + throw new Error("Could not convert certificate from PEM; PEM is encrypted."); + } + var obj = asn1.fromDer(msg.body, strict); + return pki2.certificateFromAsn1(obj, computeHash); + }; + pki2.certificateToPem = function(cert, maxline) { + var msg = { + type: "CERTIFICATE", + body: asn1.toDer(pki2.certificateToAsn1(cert)).getBytes() + }; + return forge3.pem.encode(msg, { maxline }); + }; + pki2.publicKeyFromPem = function(pem) { + var msg = forge3.pem.decode(pem)[0]; + if (msg.type !== "PUBLIC KEY" && msg.type !== "RSA PUBLIC KEY") { + var error = new Error('Could not convert public key from PEM; PEM header type is not "PUBLIC KEY" or "RSA PUBLIC KEY".'); + error.headerType = msg.type; + throw error; + } + if (msg.procType && msg.procType.type === "ENCRYPTED") { + throw new Error("Could not convert public key from PEM; PEM is encrypted."); + } + var obj = asn1.fromDer(msg.body); + return pki2.publicKeyFromAsn1(obj); + }; + pki2.publicKeyToPem = function(key, maxline) { + var msg = { + type: "PUBLIC KEY", + body: asn1.toDer(pki2.publicKeyToAsn1(key)).getBytes() + }; + return forge3.pem.encode(msg, { maxline }); + }; + pki2.publicKeyToRSAPublicKeyPem = function(key, maxline) { + var msg = { + type: "RSA PUBLIC KEY", + body: asn1.toDer(pki2.publicKeyToRSAPublicKey(key)).getBytes() + }; + return forge3.pem.encode(msg, { maxline }); + }; + pki2.getPublicKeyFingerprint = function(key, options) { + options = options || {}; + var md = options.md || forge3.md.sha1.create(); + var type = options.type || "RSAPublicKey"; + var bytes; + switch (type) { + case "RSAPublicKey": + bytes = asn1.toDer(pki2.publicKeyToRSAPublicKey(key)).getBytes(); + break; + case "SubjectPublicKeyInfo": + bytes = asn1.toDer(pki2.publicKeyToAsn1(key)).getBytes(); + break; + default: + throw new Error('Unknown fingerprint type "' + options.type + '".'); + } + md.start(); + md.update(bytes); + var digest = md.digest(); + if (options.encoding === "hex") { + var hex = digest.toHex(); + if (options.delimiter) { + return hex.match(/.{2}/g).join(options.delimiter); + } + return hex; + } else if (options.encoding === "binary") { + return digest.getBytes(); + } else if (options.encoding) { + throw new Error('Unknown encoding "' + options.encoding + '".'); + } + return digest; + }; + pki2.certificationRequestFromPem = function(pem, computeHash, strict) { + var msg = forge3.pem.decode(pem)[0]; + if (msg.type !== "CERTIFICATE REQUEST") { + var error = new Error('Could not convert certification request from PEM; PEM header type is not "CERTIFICATE REQUEST".'); + error.headerType = msg.type; + throw error; + } + if (msg.procType && msg.procType.type === "ENCRYPTED") { + throw new Error("Could not convert certification request from PEM; PEM is encrypted."); + } + var obj = asn1.fromDer(msg.body, strict); + return pki2.certificationRequestFromAsn1(obj, computeHash); + }; + pki2.certificationRequestToPem = function(csr, maxline) { + var msg = { + type: "CERTIFICATE REQUEST", + body: asn1.toDer(pki2.certificationRequestToAsn1(csr)).getBytes() + }; + return forge3.pem.encode(msg, { maxline }); + }; + pki2.createCertificate = function() { + var cert = {}; + cert.version = 2; + cert.serialNumber = "00"; + cert.signatureOid = null; + cert.signature = null; + cert.siginfo = {}; + cert.siginfo.algorithmOid = null; + cert.validity = {}; + cert.validity.notBefore = new Date(); + cert.validity.notAfter = new Date(); + cert.issuer = {}; + cert.issuer.getField = function(sn) { + return _getAttribute(cert.issuer, sn); + }; + cert.issuer.addField = function(attr) { + _fillMissingFields([attr]); + cert.issuer.attributes.push(attr); + }; + cert.issuer.attributes = []; + cert.issuer.hash = null; + cert.subject = {}; + cert.subject.getField = function(sn) { + return _getAttribute(cert.subject, sn); + }; + cert.subject.addField = function(attr) { + _fillMissingFields([attr]); + cert.subject.attributes.push(attr); + }; + cert.subject.attributes = []; + cert.subject.hash = null; + cert.extensions = []; + cert.publicKey = null; + cert.md = null; + cert.setSubject = function(attrs, uniqueId) { + _fillMissingFields(attrs); + cert.subject.attributes = attrs; + delete cert.subject.uniqueId; + if (uniqueId) { + cert.subject.uniqueId = uniqueId; + } + cert.subject.hash = null; + }; + cert.setIssuer = function(attrs, uniqueId) { + _fillMissingFields(attrs); + cert.issuer.attributes = attrs; + delete cert.issuer.uniqueId; + if (uniqueId) { + cert.issuer.uniqueId = uniqueId; + } + cert.issuer.hash = null; + }; + cert.setExtensions = function(exts) { + for (var i = 0; i < exts.length; ++i) { + _fillMissingExtensionFields(exts[i], { cert }); + } + cert.extensions = exts; + }; + cert.getExtension = function(options) { + if (typeof options === "string") { + options = { name: options }; + } + var rval = null; + var ext; + for (var i = 0; rval === null && i < cert.extensions.length; ++i) { + ext = cert.extensions[i]; + if (options.id && ext.id === options.id) { + rval = ext; + } else if (options.name && ext.name === options.name) { + rval = ext; + } + } + return rval; + }; + cert.sign = function(key, md) { + cert.md = md || forge3.md.sha1.create(); + var algorithmOid = oids[cert.md.algorithm + "WithRSAEncryption"]; + if (!algorithmOid) { + var error = new Error("Could not compute certificate digest. Unknown message digest algorithm OID."); + error.algorithm = cert.md.algorithm; + throw error; + } + cert.signatureOid = cert.siginfo.algorithmOid = algorithmOid; + cert.tbsCertificate = pki2.getTBSCertificate(cert); + var bytes = asn1.toDer(cert.tbsCertificate); + cert.md.update(bytes.getBytes()); + cert.signature = key.sign(cert.md); + }; + cert.verify = function(child) { + var rval = false; + if (!cert.issued(child)) { + var issuer = child.issuer; + var subject = cert.subject; + var error = new Error("The parent certificate did not issue the given child certificate; the child certificate's issuer does not match the parent's subject."); + error.expectedIssuer = subject.attributes; + error.actualIssuer = issuer.attributes; + throw error; + } + var md = child.md; + if (md === null) { + md = _createSignatureDigest({ + signatureOid: child.signatureOid, + type: "certificate" + }); + var tbsCertificate = child.tbsCertificate || pki2.getTBSCertificate(child); + var bytes = asn1.toDer(tbsCertificate); + md.update(bytes.getBytes()); + } + if (md !== null) { + rval = _verifySignature({ + certificate: cert, + md, + signature: child.signature + }); + } + return rval; + }; + cert.isIssuer = function(parent) { + var rval = false; + var i = cert.issuer; + var s = parent.subject; + if (i.hash && s.hash) { + rval = i.hash === s.hash; + } else if (i.attributes.length === s.attributes.length) { + rval = true; + var iattr, sattr; + for (var n = 0; rval && n < i.attributes.length; ++n) { + iattr = i.attributes[n]; + sattr = s.attributes[n]; + if (iattr.type !== sattr.type || iattr.value !== sattr.value) { + rval = false; + } + } + } + return rval; + }; + cert.issued = function(child) { + return child.isIssuer(cert); + }; + cert.generateSubjectKeyIdentifier = function() { + return pki2.getPublicKeyFingerprint(cert.publicKey, { type: "RSAPublicKey" }); + }; + cert.verifySubjectKeyIdentifier = function() { + var oid = oids["subjectKeyIdentifier"]; + for (var i = 0; i < cert.extensions.length; ++i) { + var ext = cert.extensions[i]; + if (ext.id === oid) { + var ski = cert.generateSubjectKeyIdentifier().getBytes(); + return forge3.util.hexToBytes(ext.subjectKeyIdentifier) === ski; + } + } + return false; + }; + return cert; + }; + pki2.certificateFromAsn1 = function(obj, computeHash) { + var capture = {}; + var errors = []; + if (!asn1.validate(obj, x509CertificateValidator, capture, errors)) { + var error = new Error("Cannot read X.509 certificate. ASN.1 object is not an X509v3 Certificate."); + error.errors = errors; + throw error; + } + var oid = asn1.derToOid(capture.publicKeyOid); + if (oid !== pki2.oids.rsaEncryption) { + throw new Error("Cannot read public key. OID is not RSA."); + } + var cert = pki2.createCertificate(); + cert.version = capture.certVersion ? capture.certVersion.charCodeAt(0) : 0; + var serial = forge3.util.createBuffer(capture.certSerialNumber); + cert.serialNumber = serial.toHex(); + cert.signatureOid = forge3.asn1.derToOid(capture.certSignatureOid); + cert.signatureParameters = _readSignatureParameters(cert.signatureOid, capture.certSignatureParams, true); + cert.siginfo.algorithmOid = forge3.asn1.derToOid(capture.certinfoSignatureOid); + cert.siginfo.parameters = _readSignatureParameters(cert.siginfo.algorithmOid, capture.certinfoSignatureParams, false); + cert.signature = capture.certSignature; + var validity = []; + if (capture.certValidity1UTCTime !== void 0) { + validity.push(asn1.utcTimeToDate(capture.certValidity1UTCTime)); + } + if (capture.certValidity2GeneralizedTime !== void 0) { + validity.push(asn1.generalizedTimeToDate(capture.certValidity2GeneralizedTime)); + } + if (capture.certValidity3UTCTime !== void 0) { + validity.push(asn1.utcTimeToDate(capture.certValidity3UTCTime)); + } + if (capture.certValidity4GeneralizedTime !== void 0) { + validity.push(asn1.generalizedTimeToDate(capture.certValidity4GeneralizedTime)); + } + if (validity.length > 2) { + throw new Error("Cannot read notBefore/notAfter validity times; more than two times were provided in the certificate."); + } + if (validity.length < 2) { + throw new Error("Cannot read notBefore/notAfter validity times; they were not provided as either UTCTime or GeneralizedTime."); + } + cert.validity.notBefore = validity[0]; + cert.validity.notAfter = validity[1]; + cert.tbsCertificate = capture.tbsCertificate; + if (computeHash) { + cert.md = _createSignatureDigest({ + signatureOid: cert.signatureOid, + type: "certificate" + }); + var bytes = asn1.toDer(cert.tbsCertificate); + cert.md.update(bytes.getBytes()); + } + var imd = forge3.md.sha1.create(); + var ibytes = asn1.toDer(capture.certIssuer); + imd.update(ibytes.getBytes()); + cert.issuer.getField = function(sn) { + return _getAttribute(cert.issuer, sn); + }; + cert.issuer.addField = function(attr) { + _fillMissingFields([attr]); + cert.issuer.attributes.push(attr); + }; + cert.issuer.attributes = pki2.RDNAttributesAsArray(capture.certIssuer); + if (capture.certIssuerUniqueId) { + cert.issuer.uniqueId = capture.certIssuerUniqueId; + } + cert.issuer.hash = imd.digest().toHex(); + var smd = forge3.md.sha1.create(); + var sbytes = asn1.toDer(capture.certSubject); + smd.update(sbytes.getBytes()); + cert.subject.getField = function(sn) { + return _getAttribute(cert.subject, sn); + }; + cert.subject.addField = function(attr) { + _fillMissingFields([attr]); + cert.subject.attributes.push(attr); + }; + cert.subject.attributes = pki2.RDNAttributesAsArray(capture.certSubject); + if (capture.certSubjectUniqueId) { + cert.subject.uniqueId = capture.certSubjectUniqueId; + } + cert.subject.hash = smd.digest().toHex(); + if (capture.certExtensions) { + cert.extensions = pki2.certificateExtensionsFromAsn1(capture.certExtensions); + } else { + cert.extensions = []; + } + cert.publicKey = pki2.publicKeyFromAsn1(capture.subjectPublicKeyInfo); + return cert; + }; + pki2.certificateExtensionsFromAsn1 = function(exts) { + var rval = []; + for (var i = 0; i < exts.value.length; ++i) { + var extseq = exts.value[i]; + for (var ei = 0; ei < extseq.value.length; ++ei) { + rval.push(pki2.certificateExtensionFromAsn1(extseq.value[ei])); + } + } + return rval; + }; + pki2.certificateExtensionFromAsn1 = function(ext) { + var e = {}; + e.id = asn1.derToOid(ext.value[0].value); + e.critical = false; + if (ext.value[1].type === asn1.Type.BOOLEAN) { + e.critical = ext.value[1].value.charCodeAt(0) !== 0; + e.value = ext.value[2].value; + } else { + e.value = ext.value[1].value; + } + if (e.id in oids) { + e.name = oids[e.id]; + if (e.name === "keyUsage") { + var ev = asn1.fromDer(e.value); + var b2 = 0; + var b3 = 0; + if (ev.value.length > 1) { + b2 = ev.value.charCodeAt(1); + b3 = ev.value.length > 2 ? ev.value.charCodeAt(2) : 0; + } + e.digitalSignature = (b2 & 128) === 128; + e.nonRepudiation = (b2 & 64) === 64; + e.keyEncipherment = (b2 & 32) === 32; + e.dataEncipherment = (b2 & 16) === 16; + e.keyAgreement = (b2 & 8) === 8; + e.keyCertSign = (b2 & 4) === 4; + e.cRLSign = (b2 & 2) === 2; + e.encipherOnly = (b2 & 1) === 1; + e.decipherOnly = (b3 & 128) === 128; + } else if (e.name === "basicConstraints") { + var ev = asn1.fromDer(e.value); + if (ev.value.length > 0 && ev.value[0].type === asn1.Type.BOOLEAN) { + e.cA = ev.value[0].value.charCodeAt(0) !== 0; + } else { + e.cA = false; + } + var value = null; + if (ev.value.length > 0 && ev.value[0].type === asn1.Type.INTEGER) { + value = ev.value[0].value; + } else if (ev.value.length > 1) { + value = ev.value[1].value; + } + if (value !== null) { + e.pathLenConstraint = asn1.derToInteger(value); + } + } else if (e.name === "extKeyUsage") { + var ev = asn1.fromDer(e.value); + for (var vi = 0; vi < ev.value.length; ++vi) { + var oid = asn1.derToOid(ev.value[vi].value); + if (oid in oids) { + e[oids[oid]] = true; + } else { + e[oid] = true; + } + } + } else if (e.name === "nsCertType") { + var ev = asn1.fromDer(e.value); + var b2 = 0; + if (ev.value.length > 1) { + b2 = ev.value.charCodeAt(1); + } + e.client = (b2 & 128) === 128; + e.server = (b2 & 64) === 64; + e.email = (b2 & 32) === 32; + e.objsign = (b2 & 16) === 16; + e.reserved = (b2 & 8) === 8; + e.sslCA = (b2 & 4) === 4; + e.emailCA = (b2 & 2) === 2; + e.objCA = (b2 & 1) === 1; + } else if (e.name === "subjectAltName" || e.name === "issuerAltName") { + e.altNames = []; + var gn; + var ev = asn1.fromDer(e.value); + for (var n = 0; n < ev.value.length; ++n) { + gn = ev.value[n]; + var altName = { + type: gn.type, + value: gn.value + }; + e.altNames.push(altName); + switch (gn.type) { + case 1: + case 2: + case 6: + break; + case 7: + altName.ip = forge3.util.bytesToIP(gn.value); + break; + case 8: + altName.oid = asn1.derToOid(gn.value); + break; + default: + } + } + } else if (e.name === "subjectKeyIdentifier") { + var ev = asn1.fromDer(e.value); + e.subjectKeyIdentifier = forge3.util.bytesToHex(ev.value); + } + } + return e; + }; + pki2.certificationRequestFromAsn1 = function(obj, computeHash) { + var capture = {}; + var errors = []; + if (!asn1.validate(obj, certificationRequestValidator, capture, errors)) { + var error = new Error("Cannot read PKCS#10 certificate request. ASN.1 object is not a PKCS#10 CertificationRequest."); + error.errors = errors; + throw error; + } + var oid = asn1.derToOid(capture.publicKeyOid); + if (oid !== pki2.oids.rsaEncryption) { + throw new Error("Cannot read public key. OID is not RSA."); + } + var csr = pki2.createCertificationRequest(); + csr.version = capture.csrVersion ? capture.csrVersion.charCodeAt(0) : 0; + csr.signatureOid = forge3.asn1.derToOid(capture.csrSignatureOid); + csr.signatureParameters = _readSignatureParameters(csr.signatureOid, capture.csrSignatureParams, true); + csr.siginfo.algorithmOid = forge3.asn1.derToOid(capture.csrSignatureOid); + csr.siginfo.parameters = _readSignatureParameters(csr.siginfo.algorithmOid, capture.csrSignatureParams, false); + csr.signature = capture.csrSignature; + csr.certificationRequestInfo = capture.certificationRequestInfo; + if (computeHash) { + csr.md = _createSignatureDigest({ + signatureOid: csr.signatureOid, + type: "certification request" + }); + var bytes = asn1.toDer(csr.certificationRequestInfo); + csr.md.update(bytes.getBytes()); + } + var smd = forge3.md.sha1.create(); + csr.subject.getField = function(sn) { + return _getAttribute(csr.subject, sn); + }; + csr.subject.addField = function(attr) { + _fillMissingFields([attr]); + csr.subject.attributes.push(attr); + }; + csr.subject.attributes = pki2.RDNAttributesAsArray(capture.certificationRequestInfoSubject, smd); + csr.subject.hash = smd.digest().toHex(); + csr.publicKey = pki2.publicKeyFromAsn1(capture.subjectPublicKeyInfo); + csr.getAttribute = function(sn) { + return _getAttribute(csr, sn); + }; + csr.addAttribute = function(attr) { + _fillMissingFields([attr]); + csr.attributes.push(attr); + }; + csr.attributes = pki2.CRIAttributesAsArray(capture.certificationRequestInfoAttributes || []); + return csr; + }; + pki2.createCertificationRequest = function() { + var csr = {}; + csr.version = 0; + csr.signatureOid = null; + csr.signature = null; + csr.siginfo = {}; + csr.siginfo.algorithmOid = null; + csr.subject = {}; + csr.subject.getField = function(sn) { + return _getAttribute(csr.subject, sn); + }; + csr.subject.addField = function(attr) { + _fillMissingFields([attr]); + csr.subject.attributes.push(attr); + }; + csr.subject.attributes = []; + csr.subject.hash = null; + csr.publicKey = null; + csr.attributes = []; + csr.getAttribute = function(sn) { + return _getAttribute(csr, sn); + }; + csr.addAttribute = function(attr) { + _fillMissingFields([attr]); + csr.attributes.push(attr); + }; + csr.md = null; + csr.setSubject = function(attrs) { + _fillMissingFields(attrs); + csr.subject.attributes = attrs; + csr.subject.hash = null; + }; + csr.setAttributes = function(attrs) { + _fillMissingFields(attrs); + csr.attributes = attrs; + }; + csr.sign = function(key, md) { + csr.md = md || forge3.md.sha1.create(); + var algorithmOid = oids[csr.md.algorithm + "WithRSAEncryption"]; + if (!algorithmOid) { + var error = new Error("Could not compute certification request digest. Unknown message digest algorithm OID."); + error.algorithm = csr.md.algorithm; + throw error; + } + csr.signatureOid = csr.siginfo.algorithmOid = algorithmOid; + csr.certificationRequestInfo = pki2.getCertificationRequestInfo(csr); + var bytes = asn1.toDer(csr.certificationRequestInfo); + csr.md.update(bytes.getBytes()); + csr.signature = key.sign(csr.md); + }; + csr.verify = function() { + var rval = false; + var md = csr.md; + if (md === null) { + md = _createSignatureDigest({ + signatureOid: csr.signatureOid, + type: "certification request" + }); + var cri = csr.certificationRequestInfo || pki2.getCertificationRequestInfo(csr); + var bytes = asn1.toDer(cri); + md.update(bytes.getBytes()); + } + if (md !== null) { + rval = _verifySignature({ + certificate: csr, + md, + signature: csr.signature + }); + } + return rval; + }; + return csr; + }; + function _dnToAsn1(obj) { + var rval = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); + var attr, set; + var attrs = obj.attributes; + for (var i = 0; i < attrs.length; ++i) { + attr = attrs[i]; + var value = attr.value; + var valueTagClass = asn1.Type.PRINTABLESTRING; + if ("valueTagClass" in attr) { + valueTagClass = attr.valueTagClass; + if (valueTagClass === asn1.Type.UTF8) { + value = forge3.util.encodeUtf8(value); + } + } + set = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(attr.type).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, valueTagClass, false, value) + ]) + ]); + rval.value.push(set); + } + return rval; + } + function _fillMissingFields(attrs) { + var attr; + for (var i = 0; i < attrs.length; ++i) { + attr = attrs[i]; + if (typeof attr.name === "undefined") { + if (attr.type && attr.type in pki2.oids) { + attr.name = pki2.oids[attr.type]; + } else if (attr.shortName && attr.shortName in _shortNames) { + attr.name = pki2.oids[_shortNames[attr.shortName]]; + } + } + if (typeof attr.type === "undefined") { + if (attr.name && attr.name in pki2.oids) { + attr.type = pki2.oids[attr.name]; + } else { + var error = new Error("Attribute type not specified."); + error.attribute = attr; + throw error; + } + } + if (typeof attr.shortName === "undefined") { + if (attr.name && attr.name in _shortNames) { + attr.shortName = _shortNames[attr.name]; + } + } + if (attr.type === oids.extensionRequest) { + attr.valueConstructed = true; + attr.valueTagClass = asn1.Type.SEQUENCE; + if (!attr.value && attr.extensions) { + attr.value = []; + for (var ei = 0; ei < attr.extensions.length; ++ei) { + attr.value.push(pki2.certificateExtensionToAsn1(_fillMissingExtensionFields(attr.extensions[ei]))); + } + } + } + if (typeof attr.value === "undefined") { + var error = new Error("Attribute value not specified."); + error.attribute = attr; + throw error; + } + } + } + function _fillMissingExtensionFields(e, options) { + options = options || {}; + if (typeof e.name === "undefined") { + if (e.id && e.id in pki2.oids) { + e.name = pki2.oids[e.id]; + } + } + if (typeof e.id === "undefined") { + if (e.name && e.name in pki2.oids) { + e.id = pki2.oids[e.name]; + } else { + var error = new Error("Extension ID not specified."); + error.extension = e; + throw error; + } + } + if (typeof e.value !== "undefined") { + return e; + } + if (e.name === "keyUsage") { + var unused = 0; + var b2 = 0; + var b3 = 0; + if (e.digitalSignature) { + b2 |= 128; + unused = 7; + } + if (e.nonRepudiation) { + b2 |= 64; + unused = 6; + } + if (e.keyEncipherment) { + b2 |= 32; + unused = 5; + } + if (e.dataEncipherment) { + b2 |= 16; + unused = 4; + } + if (e.keyAgreement) { + b2 |= 8; + unused = 3; + } + if (e.keyCertSign) { + b2 |= 4; + unused = 2; + } + if (e.cRLSign) { + b2 |= 2; + unused = 1; + } + if (e.encipherOnly) { + b2 |= 1; + unused = 0; + } + if (e.decipherOnly) { + b3 |= 128; + unused = 7; + } + var value = String.fromCharCode(unused); + if (b3 !== 0) { + value += String.fromCharCode(b2) + String.fromCharCode(b3); + } else if (b2 !== 0) { + value += String.fromCharCode(b2); + } + e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, value); + } else if (e.name === "basicConstraints") { + e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); + if (e.cA) { + e.value.value.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BOOLEAN, false, String.fromCharCode(255))); + } + if ("pathLenConstraint" in e) { + e.value.value.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, asn1.integerToDer(e.pathLenConstraint).getBytes())); + } + } else if (e.name === "extKeyUsage") { + e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); + var seq = e.value.value; + for (var key in e) { + if (e[key] !== true) { + continue; + } + if (key in oids) { + seq.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(oids[key]).getBytes())); + } else if (key.indexOf(".") !== -1) { + seq.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(key).getBytes())); + } + } + } else if (e.name === "nsCertType") { + var unused = 0; + var b2 = 0; + if (e.client) { + b2 |= 128; + unused = 7; + } + if (e.server) { + b2 |= 64; + unused = 6; + } + if (e.email) { + b2 |= 32; + unused = 5; + } + if (e.objsign) { + b2 |= 16; + unused = 4; + } + if (e.reserved) { + b2 |= 8; + unused = 3; + } + if (e.sslCA) { + b2 |= 4; + unused = 2; + } + if (e.emailCA) { + b2 |= 2; + unused = 1; + } + if (e.objCA) { + b2 |= 1; + unused = 0; + } + var value = String.fromCharCode(unused); + if (b2 !== 0) { + value += String.fromCharCode(b2); + } + e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, value); + } else if (e.name === "subjectAltName" || e.name === "issuerAltName") { + e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); + var altName; + for (var n = 0; n < e.altNames.length; ++n) { + altName = e.altNames[n]; + var value = altName.value; + if (altName.type === 7 && altName.ip) { + value = forge3.util.bytesFromIP(altName.ip); + if (value === null) { + var error = new Error('Extension "ip" value is not a valid IPv4 or IPv6 address.'); + error.extension = e; + throw error; + } + } else if (altName.type === 8) { + if (altName.oid) { + value = asn1.oidToDer(asn1.oidToDer(altName.oid)); + } else { + value = asn1.oidToDer(value); + } + } + e.value.value.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, altName.type, false, value)); + } + } else if (e.name === "nsComment" && options.cert) { + if (!/^[\x00-\x7F]*$/.test(e.comment) || e.comment.length < 1 || e.comment.length > 128) { + throw new Error('Invalid "nsComment" content.'); + } + e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.IA5STRING, false, e.comment); + } else if (e.name === "subjectKeyIdentifier" && options.cert) { + var ski = options.cert.generateSubjectKeyIdentifier(); + e.subjectKeyIdentifier = ski.toHex(); + e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, ski.getBytes()); + } else if (e.name === "authorityKeyIdentifier" && options.cert) { + e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); + var seq = e.value.value; + if (e.keyIdentifier) { + var keyIdentifier = e.keyIdentifier === true ? options.cert.generateSubjectKeyIdentifier().getBytes() : e.keyIdentifier; + seq.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, false, keyIdentifier)); + } + if (e.authorityCertIssuer) { + var authorityCertIssuer = [ + asn1.create(asn1.Class.CONTEXT_SPECIFIC, 4, true, [ + _dnToAsn1(e.authorityCertIssuer === true ? options.cert.issuer : e.authorityCertIssuer) + ]) + ]; + seq.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, authorityCertIssuer)); + } + if (e.serialNumber) { + var serialNumber = forge3.util.hexToBytes(e.serialNumber === true ? options.cert.serialNumber : e.serialNumber); + seq.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 2, false, serialNumber)); + } + } else if (e.name === "cRLDistributionPoints") { + e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); + var seq = e.value.value; + var subSeq = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); + var fullNameGeneralNames = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, []); + var altName; + for (var n = 0; n < e.altNames.length; ++n) { + altName = e.altNames[n]; + var value = altName.value; + if (altName.type === 7 && altName.ip) { + value = forge3.util.bytesFromIP(altName.ip); + if (value === null) { + var error = new Error('Extension "ip" value is not a valid IPv4 or IPv6 address.'); + error.extension = e; + throw error; + } + } else if (altName.type === 8) { + if (altName.oid) { + value = asn1.oidToDer(asn1.oidToDer(altName.oid)); + } else { + value = asn1.oidToDer(value); + } + } + fullNameGeneralNames.value.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, altName.type, false, value)); + } + subSeq.value.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [fullNameGeneralNames])); + seq.push(subSeq); + } + if (typeof e.value === "undefined") { + var error = new Error("Extension value not specified."); + error.extension = e; + throw error; + } + return e; + } + function _signatureParametersToAsn1(oid, params) { + switch (oid) { + case oids["RSASSA-PSS"]: + var parts = []; + if (params.hash.algorithmOid !== void 0) { + parts.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(params.hash.algorithmOid).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, "") + ]) + ])); + } + if (params.mgf.algorithmOid !== void 0) { + parts.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(params.mgf.algorithmOid).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(params.mgf.hash.algorithmOid).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, "") + ]) + ]) + ])); + } + if (params.saltLength !== void 0) { + parts.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 2, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, asn1.integerToDer(params.saltLength).getBytes()) + ])); + } + return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, parts); + default: + return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, ""); + } + } + function _CRIAttributesToAsn1(csr) { + var rval = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, []); + if (csr.attributes.length === 0) { + return rval; + } + var attrs = csr.attributes; + for (var i = 0; i < attrs.length; ++i) { + var attr = attrs[i]; + var value = attr.value; + var valueTagClass = asn1.Type.UTF8; + if ("valueTagClass" in attr) { + valueTagClass = attr.valueTagClass; + } + if (valueTagClass === asn1.Type.UTF8) { + value = forge3.util.encodeUtf8(value); + } + var valueConstructed = false; + if ("valueConstructed" in attr) { + valueConstructed = attr.valueConstructed; + } + var seq = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(attr.type).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [ + asn1.create(asn1.Class.UNIVERSAL, valueTagClass, valueConstructed, value) + ]) + ]); + rval.value.push(seq); + } + return rval; + } + var jan_1_1950 = new Date("1950-01-01T00:00:00Z"); + var jan_1_2050 = new Date("2050-01-01T00:00:00Z"); + function _dateToAsn1(date) { + if (date >= jan_1_1950 && date < jan_1_2050) { + return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.UTCTIME, false, asn1.dateToUtcTime(date)); + } else { + return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.GENERALIZEDTIME, false, asn1.dateToGeneralizedTime(date)); + } + } + pki2.getTBSCertificate = function(cert) { + var notBefore = _dateToAsn1(cert.validity.notBefore); + var notAfter = _dateToAsn1(cert.validity.notAfter); + var tbs = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, asn1.integerToDer(cert.version).getBytes()) + ]), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, forge3.util.hexToBytes(cert.serialNumber)), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(cert.siginfo.algorithmOid).getBytes()), + _signatureParametersToAsn1(cert.siginfo.algorithmOid, cert.siginfo.parameters) + ]), + _dnToAsn1(cert.issuer), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + notBefore, + notAfter + ]), + _dnToAsn1(cert.subject), + pki2.publicKeyToAsn1(cert.publicKey) + ]); + if (cert.issuer.uniqueId) { + tbs.value.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, String.fromCharCode(0) + cert.issuer.uniqueId) + ])); + } + if (cert.subject.uniqueId) { + tbs.value.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 2, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, String.fromCharCode(0) + cert.subject.uniqueId) + ])); + } + if (cert.extensions.length > 0) { + tbs.value.push(pki2.certificateExtensionsToAsn1(cert.extensions)); + } + return tbs; + }; + pki2.getCertificationRequestInfo = function(csr) { + var cri = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, asn1.integerToDer(csr.version).getBytes()), + _dnToAsn1(csr.subject), + pki2.publicKeyToAsn1(csr.publicKey), + _CRIAttributesToAsn1(csr) + ]); + return cri; + }; + pki2.distinguishedNameToAsn1 = function(dn) { + return _dnToAsn1(dn); + }; + pki2.certificateToAsn1 = function(cert) { + var tbsCertificate = cert.tbsCertificate || pki2.getTBSCertificate(cert); + return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + tbsCertificate, + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(cert.signatureOid).getBytes()), + _signatureParametersToAsn1(cert.signatureOid, cert.signatureParameters) + ]), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, String.fromCharCode(0) + cert.signature) + ]); + }; + pki2.certificateExtensionsToAsn1 = function(exts) { + var rval = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 3, true, []); + var seq = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); + rval.value.push(seq); + for (var i = 0; i < exts.length; ++i) { + seq.value.push(pki2.certificateExtensionToAsn1(exts[i])); + } + return rval; + }; + pki2.certificateExtensionToAsn1 = function(ext) { + var extseq = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); + extseq.value.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(ext.id).getBytes())); + if (ext.critical) { + extseq.value.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BOOLEAN, false, String.fromCharCode(255))); + } + var value = ext.value; + if (typeof ext.value !== "string") { + value = asn1.toDer(value).getBytes(); + } + extseq.value.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, value)); + return extseq; + }; + pki2.certificationRequestToAsn1 = function(csr) { + var cri = csr.certificationRequestInfo || pki2.getCertificationRequestInfo(csr); + return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + cri, + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(csr.signatureOid).getBytes()), + _signatureParametersToAsn1(csr.signatureOid, csr.signatureParameters) + ]), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, String.fromCharCode(0) + csr.signature) + ]); + }; + pki2.createCaStore = function(certs) { + var caStore = { + certs: {} + }; + caStore.getIssuer = function(cert2) { + var rval = getBySubject(cert2.issuer); + return rval; + }; + caStore.addCertificate = function(cert2) { + if (typeof cert2 === "string") { + cert2 = forge3.pki.certificateFromPem(cert2); + } + ensureSubjectHasHash(cert2.subject); + if (!caStore.hasCertificate(cert2)) { + if (cert2.subject.hash in caStore.certs) { + var tmp = caStore.certs[cert2.subject.hash]; + if (!forge3.util.isArray(tmp)) { + tmp = [tmp]; + } + tmp.push(cert2); + caStore.certs[cert2.subject.hash] = tmp; + } else { + caStore.certs[cert2.subject.hash] = cert2; + } + } + }; + caStore.hasCertificate = function(cert2) { + if (typeof cert2 === "string") { + cert2 = forge3.pki.certificateFromPem(cert2); + } + var match = getBySubject(cert2.subject); + if (!match) { + return false; + } + if (!forge3.util.isArray(match)) { + match = [match]; + } + var der1 = asn1.toDer(pki2.certificateToAsn1(cert2)).getBytes(); + for (var i2 = 0; i2 < match.length; ++i2) { + var der2 = asn1.toDer(pki2.certificateToAsn1(match[i2])).getBytes(); + if (der1 === der2) { + return true; + } + } + return false; + }; + caStore.listAllCertificates = function() { + var certList = []; + for (var hash in caStore.certs) { + if (caStore.certs.hasOwnProperty(hash)) { + var value = caStore.certs[hash]; + if (!forge3.util.isArray(value)) { + certList.push(value); + } else { + for (var i2 = 0; i2 < value.length; ++i2) { + certList.push(value[i2]); + } + } + } + } + return certList; + }; + caStore.removeCertificate = function(cert2) { + var result; + if (typeof cert2 === "string") { + cert2 = forge3.pki.certificateFromPem(cert2); + } + ensureSubjectHasHash(cert2.subject); + if (!caStore.hasCertificate(cert2)) { + return null; + } + var match = getBySubject(cert2.subject); + if (!forge3.util.isArray(match)) { + result = caStore.certs[cert2.subject.hash]; + delete caStore.certs[cert2.subject.hash]; + return result; + } + var der1 = asn1.toDer(pki2.certificateToAsn1(cert2)).getBytes(); + for (var i2 = 0; i2 < match.length; ++i2) { + var der2 = asn1.toDer(pki2.certificateToAsn1(match[i2])).getBytes(); + if (der1 === der2) { + result = match[i2]; + match.splice(i2, 1); + } + } + if (match.length === 0) { + delete caStore.certs[cert2.subject.hash]; + } + return result; + }; + function getBySubject(subject) { + ensureSubjectHasHash(subject); + return caStore.certs[subject.hash] || null; + } + function ensureSubjectHasHash(subject) { + if (!subject.hash) { + var md = forge3.md.sha1.create(); + subject.attributes = pki2.RDNAttributesAsArray(_dnToAsn1(subject), md); + subject.hash = md.digest().toHex(); + } + } + if (certs) { + for (var i = 0; i < certs.length; ++i) { + var cert = certs[i]; + caStore.addCertificate(cert); + } + } + return caStore; + }; + pki2.certificateError = { + bad_certificate: "forge.pki.BadCertificate", + unsupported_certificate: "forge.pki.UnsupportedCertificate", + certificate_revoked: "forge.pki.CertificateRevoked", + certificate_expired: "forge.pki.CertificateExpired", + certificate_unknown: "forge.pki.CertificateUnknown", + unknown_ca: "forge.pki.UnknownCertificateAuthority" + }; + pki2.verifyCertificateChain = function(caStore, chain, options) { + if (typeof options === "function") { + options = { verify: options }; + } + options = options || {}; + chain = chain.slice(0); + var certs = chain.slice(0); + var validityCheckDate = options.validityCheckDate; + if (typeof validityCheckDate === "undefined") { + validityCheckDate = new Date(); + } + var first = true; + var error = null; + var depth = 0; + do { + var cert = chain.shift(); + var parent = null; + var selfSigned = false; + if (validityCheckDate) { + if (validityCheckDate < cert.validity.notBefore || validityCheckDate > cert.validity.notAfter) { + error = { + message: "Certificate is not valid yet or has expired.", + error: pki2.certificateError.certificate_expired, + notBefore: cert.validity.notBefore, + notAfter: cert.validity.notAfter, + now: validityCheckDate + }; + } + } + if (error === null) { + parent = chain[0] || caStore.getIssuer(cert); + if (parent === null) { + if (cert.isIssuer(cert)) { + selfSigned = true; + parent = cert; + } + } + if (parent) { + var parents = parent; + if (!forge3.util.isArray(parents)) { + parents = [parents]; + } + var verified = false; + while (!verified && parents.length > 0) { + parent = parents.shift(); + try { + verified = parent.verify(cert); + } catch (ex) { + } + } + if (!verified) { + error = { + message: "Certificate signature is invalid.", + error: pki2.certificateError.bad_certificate + }; + } + } + if (error === null && (!parent || selfSigned) && !caStore.hasCertificate(cert)) { + error = { + message: "Certificate is not trusted.", + error: pki2.certificateError.unknown_ca + }; + } + } + if (error === null && parent && !cert.isIssuer(parent)) { + error = { + message: "Certificate issuer is invalid.", + error: pki2.certificateError.bad_certificate + }; + } + if (error === null) { + var se = { + keyUsage: true, + basicConstraints: true + }; + for (var i = 0; error === null && i < cert.extensions.length; ++i) { + var ext = cert.extensions[i]; + if (ext.critical && !(ext.name in se)) { + error = { + message: "Certificate has an unsupported critical extension.", + error: pki2.certificateError.unsupported_certificate + }; + } + } + } + if (error === null && (!first || chain.length === 0 && (!parent || selfSigned))) { + var bcExt = cert.getExtension("basicConstraints"); + var keyUsageExt = cert.getExtension("keyUsage"); + if (keyUsageExt !== null) { + if (!keyUsageExt.keyCertSign || bcExt === null) { + error = { + message: "Certificate keyUsage or basicConstraints conflict or indicate that the certificate is not a CA. If the certificate is the only one in the chain or isn't the first then the certificate must be a valid CA.", + error: pki2.certificateError.bad_certificate + }; + } + } + if (error === null && bcExt !== null && !bcExt.cA) { + error = { + message: "Certificate basicConstraints indicates the certificate is not a CA.", + error: pki2.certificateError.bad_certificate + }; + } + if (error === null && keyUsageExt !== null && "pathLenConstraint" in bcExt) { + var pathLen = depth - 1; + if (pathLen > bcExt.pathLenConstraint) { + error = { + message: "Certificate basicConstraints pathLenConstraint violated.", + error: pki2.certificateError.bad_certificate + }; + } + } + } + var vfd = error === null ? true : error.error; + var ret = options.verify ? options.verify(vfd, depth, certs) : vfd; + if (ret === true) { + error = null; + } else { + if (vfd === true) { + error = { + message: "The application rejected the certificate.", + error: pki2.certificateError.bad_certificate + }; + } + if (ret || ret === 0) { + if (typeof ret === "object" && !forge3.util.isArray(ret)) { + if (ret.message) { + error.message = ret.message; + } + if (ret.error) { + error.error = ret.error; + } + } else if (typeof ret === "string") { + error.error = ret; + } + } + throw error; + } + first = false; + ++depth; + } while (chain.length > 0); + return true; + }; + } +}); + +// node_modules/node-forge/lib/pkcs12.js +var require_pkcs12 = __commonJS({ + "node_modules/node-forge/lib/pkcs12.js"(exports2, module2) { + var forge3 = require_forge(); + require_asn1(); + require_hmac(); + require_oids(); + require_pkcs7asn1(); + require_pbe(); + require_random(); + require_rsa(); + require_sha1(); + require_util(); + require_x509(); + var asn1 = forge3.asn1; + var pki2 = forge3.pki; + var p12 = module2.exports = forge3.pkcs12 = forge3.pkcs12 || {}; + var contentInfoValidator = { + name: "ContentInfo", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "ContentInfo.contentType", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "contentType" + }, { + name: "ContentInfo.content", + tagClass: asn1.Class.CONTEXT_SPECIFIC, + constructed: true, + captureAsn1: "content" + }] + }; + var pfxValidator = { + name: "PFX", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [ + { + name: "PFX.version", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "version" + }, + contentInfoValidator, + { + name: "PFX.macData", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + optional: true, + captureAsn1: "mac", + value: [{ + name: "PFX.macData.mac", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "PFX.macData.mac.digestAlgorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "PFX.macData.mac.digestAlgorithm.algorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "macAlgorithm" + }, { + name: "PFX.macData.mac.digestAlgorithm.parameters", + tagClass: asn1.Class.UNIVERSAL, + captureAsn1: "macAlgorithmParameters" + }] + }, { + name: "PFX.macData.mac.digest", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OCTETSTRING, + constructed: false, + capture: "macDigest" + }] + }, { + name: "PFX.macData.macSalt", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OCTETSTRING, + constructed: false, + capture: "macSalt" + }, { + name: "PFX.macData.iterations", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + optional: true, + capture: "macIterations" + }] + } + ] + }; + var safeBagValidator = { + name: "SafeBag", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "SafeBag.bagId", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "bagId" + }, { + name: "SafeBag.bagValue", + tagClass: asn1.Class.CONTEXT_SPECIFIC, + constructed: true, + captureAsn1: "bagValue" + }, { + name: "SafeBag.bagAttributes", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SET, + constructed: true, + optional: true, + capture: "bagAttributes" + }] + }; + var attributeValidator = { + name: "Attribute", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "Attribute.attrId", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "oid" + }, { + name: "Attribute.attrValues", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SET, + constructed: true, + capture: "values" + }] + }; + var certBagValidator = { + name: "CertBag", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "CertBag.certId", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "certId" + }, { + name: "CertBag.certValue", + tagClass: asn1.Class.CONTEXT_SPECIFIC, + constructed: true, + value: [{ + name: "CertBag.certValue[0]", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Class.OCTETSTRING, + constructed: false, + capture: "cert" + }] + }] + }; + function _getBagsByAttribute(safeContents, attrName, attrValue, bagType) { + var result = []; + for (var i = 0; i < safeContents.length; i++) { + for (var j = 0; j < safeContents[i].safeBags.length; j++) { + var bag = safeContents[i].safeBags[j]; + if (bagType !== void 0 && bag.type !== bagType) { + continue; + } + if (attrName === null) { + result.push(bag); + continue; + } + if (bag.attributes[attrName] !== void 0 && bag.attributes[attrName].indexOf(attrValue) >= 0) { + result.push(bag); + } + } + } + return result; + } + p12.pkcs12FromAsn1 = function(obj, strict, password) { + if (typeof strict === "string") { + password = strict; + strict = true; + } else if (strict === void 0) { + strict = true; + } + var capture = {}; + var errors = []; + if (!asn1.validate(obj, pfxValidator, capture, errors)) { + var error = new Error("Cannot read PKCS#12 PFX. ASN.1 object is not an PKCS#12 PFX."); + error.errors = error; + throw error; + } + var pfx = { + version: capture.version.charCodeAt(0), + safeContents: [], + getBags: function(filter) { + var rval = {}; + var localKeyId; + if ("localKeyId" in filter) { + localKeyId = filter.localKeyId; + } else if ("localKeyIdHex" in filter) { + localKeyId = forge3.util.hexToBytes(filter.localKeyIdHex); + } + if (localKeyId === void 0 && !("friendlyName" in filter) && "bagType" in filter) { + rval[filter.bagType] = _getBagsByAttribute(pfx.safeContents, null, null, filter.bagType); + } + if (localKeyId !== void 0) { + rval.localKeyId = _getBagsByAttribute(pfx.safeContents, "localKeyId", localKeyId, filter.bagType); + } + if ("friendlyName" in filter) { + rval.friendlyName = _getBagsByAttribute(pfx.safeContents, "friendlyName", filter.friendlyName, filter.bagType); + } + return rval; + }, + getBagsByFriendlyName: function(friendlyName, bagType) { + return _getBagsByAttribute(pfx.safeContents, "friendlyName", friendlyName, bagType); + }, + getBagsByLocalKeyId: function(localKeyId, bagType) { + return _getBagsByAttribute(pfx.safeContents, "localKeyId", localKeyId, bagType); + } + }; + if (capture.version.charCodeAt(0) !== 3) { + var error = new Error("PKCS#12 PFX of version other than 3 not supported."); + error.version = capture.version.charCodeAt(0); + throw error; + } + if (asn1.derToOid(capture.contentType) !== pki2.oids.data) { + var error = new Error("Only PKCS#12 PFX in password integrity mode supported."); + error.oid = asn1.derToOid(capture.contentType); + throw error; + } + var data = capture.content.value[0]; + if (data.tagClass !== asn1.Class.UNIVERSAL || data.type !== asn1.Type.OCTETSTRING) { + throw new Error("PKCS#12 authSafe content data is not an OCTET STRING."); + } + data = _decodePkcs7Data(data); + if (capture.mac) { + var md = null; + var macKeyBytes = 0; + var macAlgorithm = asn1.derToOid(capture.macAlgorithm); + switch (macAlgorithm) { + case pki2.oids.sha1: + md = forge3.md.sha1.create(); + macKeyBytes = 20; + break; + case pki2.oids.sha256: + md = forge3.md.sha256.create(); + macKeyBytes = 32; + break; + case pki2.oids.sha384: + md = forge3.md.sha384.create(); + macKeyBytes = 48; + break; + case pki2.oids.sha512: + md = forge3.md.sha512.create(); + macKeyBytes = 64; + break; + case pki2.oids.md5: + md = forge3.md.md5.create(); + macKeyBytes = 16; + break; + } + if (md === null) { + throw new Error("PKCS#12 uses unsupported MAC algorithm: " + macAlgorithm); + } + var macSalt = new forge3.util.ByteBuffer(capture.macSalt); + var macIterations = "macIterations" in capture ? parseInt(forge3.util.bytesToHex(capture.macIterations), 16) : 1; + var macKey = p12.generateKey(password, macSalt, 3, macIterations, macKeyBytes, md); + var mac = forge3.hmac.create(); + mac.start(md, macKey); + mac.update(data.value); + var macValue = mac.getMac(); + if (macValue.getBytes() !== capture.macDigest) { + throw new Error("PKCS#12 MAC could not be verified. Invalid password?"); + } + } + _decodeAuthenticatedSafe(pfx, data.value, strict, password); + return pfx; + }; + function _decodePkcs7Data(data) { + if (data.composed || data.constructed) { + var value = forge3.util.createBuffer(); + for (var i = 0; i < data.value.length; ++i) { + value.putBytes(data.value[i].value); + } + data.composed = data.constructed = false; + data.value = value.getBytes(); + } + return data; + } + function _decodeAuthenticatedSafe(pfx, authSafe, strict, password) { + authSafe = asn1.fromDer(authSafe, strict); + if (authSafe.tagClass !== asn1.Class.UNIVERSAL || authSafe.type !== asn1.Type.SEQUENCE || authSafe.constructed !== true) { + throw new Error("PKCS#12 AuthenticatedSafe expected to be a SEQUENCE OF ContentInfo"); + } + for (var i = 0; i < authSafe.value.length; i++) { + var contentInfo = authSafe.value[i]; + var capture = {}; + var errors = []; + if (!asn1.validate(contentInfo, contentInfoValidator, capture, errors)) { + var error = new Error("Cannot read ContentInfo."); + error.errors = errors; + throw error; + } + var obj = { + encrypted: false + }; + var safeContents = null; + var data = capture.content.value[0]; + switch (asn1.derToOid(capture.contentType)) { + case pki2.oids.data: + if (data.tagClass !== asn1.Class.UNIVERSAL || data.type !== asn1.Type.OCTETSTRING) { + throw new Error("PKCS#12 SafeContents Data is not an OCTET STRING."); + } + safeContents = _decodePkcs7Data(data).value; + break; + case pki2.oids.encryptedData: + safeContents = _decryptSafeContents(data, password); + obj.encrypted = true; + break; + default: + var error = new Error("Unsupported PKCS#12 contentType."); + error.contentType = asn1.derToOid(capture.contentType); + throw error; + } + obj.safeBags = _decodeSafeContents(safeContents, strict, password); + pfx.safeContents.push(obj); + } + } + function _decryptSafeContents(data, password) { + var capture = {}; + var errors = []; + if (!asn1.validate(data, forge3.pkcs7.asn1.encryptedDataValidator, capture, errors)) { + var error = new Error("Cannot read EncryptedContentInfo."); + error.errors = errors; + throw error; + } + var oid = asn1.derToOid(capture.contentType); + if (oid !== pki2.oids.data) { + var error = new Error("PKCS#12 EncryptedContentInfo ContentType is not Data."); + error.oid = oid; + throw error; + } + oid = asn1.derToOid(capture.encAlgorithm); + var cipher = pki2.pbe.getCipher(oid, capture.encParameter, password); + var encryptedContentAsn1 = _decodePkcs7Data(capture.encryptedContentAsn1); + var encrypted = forge3.util.createBuffer(encryptedContentAsn1.value); + cipher.update(encrypted); + if (!cipher.finish()) { + throw new Error("Failed to decrypt PKCS#12 SafeContents."); + } + return cipher.output.getBytes(); + } + function _decodeSafeContents(safeContents, strict, password) { + if (!strict && safeContents.length === 0) { + return []; + } + safeContents = asn1.fromDer(safeContents, strict); + if (safeContents.tagClass !== asn1.Class.UNIVERSAL || safeContents.type !== asn1.Type.SEQUENCE || safeContents.constructed !== true) { + throw new Error("PKCS#12 SafeContents expected to be a SEQUENCE OF SafeBag."); + } + var res = []; + for (var i = 0; i < safeContents.value.length; i++) { + var safeBag = safeContents.value[i]; + var capture = {}; + var errors = []; + if (!asn1.validate(safeBag, safeBagValidator, capture, errors)) { + var error = new Error("Cannot read SafeBag."); + error.errors = errors; + throw error; + } + var bag = { + type: asn1.derToOid(capture.bagId), + attributes: _decodeBagAttributes(capture.bagAttributes) + }; + res.push(bag); + var validator, decoder; + var bagAsn1 = capture.bagValue.value[0]; + switch (bag.type) { + case pki2.oids.pkcs8ShroudedKeyBag: + bagAsn1 = pki2.decryptPrivateKeyInfo(bagAsn1, password); + if (bagAsn1 === null) { + throw new Error("Unable to decrypt PKCS#8 ShroudedKeyBag, wrong password?"); + } + case pki2.oids.keyBag: + try { + bag.key = pki2.privateKeyFromAsn1(bagAsn1); + } catch (e) { + bag.key = null; + bag.asn1 = bagAsn1; + } + continue; + case pki2.oids.certBag: + validator = certBagValidator; + decoder = function() { + if (asn1.derToOid(capture.certId) !== pki2.oids.x509Certificate) { + var error2 = new Error("Unsupported certificate type, only X.509 supported."); + error2.oid = asn1.derToOid(capture.certId); + throw error2; + } + var certAsn1 = asn1.fromDer(capture.cert, strict); + try { + bag.cert = pki2.certificateFromAsn1(certAsn1, true); + } catch (e) { + bag.cert = null; + bag.asn1 = certAsn1; + } + }; + break; + default: + var error = new Error("Unsupported PKCS#12 SafeBag type."); + error.oid = bag.type; + throw error; + } + if (validator !== void 0 && !asn1.validate(bagAsn1, validator, capture, errors)) { + var error = new Error("Cannot read PKCS#12 " + validator.name); + error.errors = errors; + throw error; + } + decoder(); + } + return res; + } + function _decodeBagAttributes(attributes) { + var decodedAttrs = {}; + if (attributes !== void 0) { + for (var i = 0; i < attributes.length; ++i) { + var capture = {}; + var errors = []; + if (!asn1.validate(attributes[i], attributeValidator, capture, errors)) { + var error = new Error("Cannot read PKCS#12 BagAttribute."); + error.errors = errors; + throw error; + } + var oid = asn1.derToOid(capture.oid); + if (pki2.oids[oid] === void 0) { + continue; + } + decodedAttrs[pki2.oids[oid]] = []; + for (var j = 0; j < capture.values.length; ++j) { + decodedAttrs[pki2.oids[oid]].push(capture.values[j].value); + } + } + } + return decodedAttrs; + } + p12.toPkcs12Asn1 = function(key, cert, password, options) { + options = options || {}; + options.saltSize = options.saltSize || 8; + options.count = options.count || 2048; + options.algorithm = options.algorithm || options.encAlgorithm || "aes128"; + if (!("useMac" in options)) { + options.useMac = true; + } + if (!("localKeyId" in options)) { + options.localKeyId = null; + } + if (!("generateLocalKeyId" in options)) { + options.generateLocalKeyId = true; + } + var localKeyId = options.localKeyId; + var bagAttrs; + if (localKeyId !== null) { + localKeyId = forge3.util.hexToBytes(localKeyId); + } else if (options.generateLocalKeyId) { + if (cert) { + var pairedCert = forge3.util.isArray(cert) ? cert[0] : cert; + if (typeof pairedCert === "string") { + pairedCert = pki2.certificateFromPem(pairedCert); + } + var sha1 = forge3.md.sha1.create(); + sha1.update(asn1.toDer(pki2.certificateToAsn1(pairedCert)).getBytes()); + localKeyId = sha1.digest().getBytes(); + } else { + localKeyId = forge3.random.getBytes(20); + } + } + var attrs = []; + if (localKeyId !== null) { + attrs.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(pki2.oids.localKeyId).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, localKeyId) + ]) + ])); + } + if ("friendlyName" in options) { + attrs.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(pki2.oids.friendlyName).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BMPSTRING, false, options.friendlyName) + ]) + ])); + } + if (attrs.length > 0) { + bagAttrs = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, attrs); + } + var contents = []; + var chain = []; + if (cert !== null) { + if (forge3.util.isArray(cert)) { + chain = cert; + } else { + chain = [cert]; + } + } + var certSafeBags = []; + for (var i = 0; i < chain.length; ++i) { + cert = chain[i]; + if (typeof cert === "string") { + cert = pki2.certificateFromPem(cert); + } + var certBagAttrs = i === 0 ? bagAttrs : void 0; + var certAsn1 = pki2.certificateToAsn1(cert); + var certSafeBag = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(pki2.oids.certBag).getBytes()), + asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(pki2.oids.x509Certificate).getBytes()), + asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, asn1.toDer(certAsn1).getBytes()) + ]) + ]) + ]), + certBagAttrs + ]); + certSafeBags.push(certSafeBag); + } + if (certSafeBags.length > 0) { + var certSafeContents = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, certSafeBags); + var certCI = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(pki2.oids.data).getBytes()), + asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, asn1.toDer(certSafeContents).getBytes()) + ]) + ]); + contents.push(certCI); + } + var keyBag = null; + if (key !== null) { + var pkAsn1 = pki2.wrapRsaPrivateKey(pki2.privateKeyToAsn1(key)); + if (password === null) { + keyBag = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(pki2.oids.keyBag).getBytes()), + asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [ + pkAsn1 + ]), + bagAttrs + ]); + } else { + keyBag = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(pki2.oids.pkcs8ShroudedKeyBag).getBytes()), + asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [ + pki2.encryptPrivateKeyInfo(pkAsn1, password, options) + ]), + bagAttrs + ]); + } + var keySafeContents = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [keyBag]); + var keyCI = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(pki2.oids.data).getBytes()), + asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, asn1.toDer(keySafeContents).getBytes()) + ]) + ]); + contents.push(keyCI); + } + var safe = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, contents); + var macData; + if (options.useMac) { + var sha1 = forge3.md.sha1.create(); + var macSalt = new forge3.util.ByteBuffer(forge3.random.getBytes(options.saltSize)); + var count = options.count; + var key = p12.generateKey(password, macSalt, 3, count, 20); + var mac = forge3.hmac.create(); + mac.start(sha1, key); + mac.update(asn1.toDer(safe).getBytes()); + var macValue = mac.getMac(); + macData = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(pki2.oids.sha1).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, "") + ]), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, macValue.getBytes()) + ]), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, macSalt.getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, asn1.integerToDer(count).getBytes()) + ]); + } + return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, asn1.integerToDer(3).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(pki2.oids.data).getBytes()), + asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, asn1.toDer(safe).getBytes()) + ]) + ]), + macData + ]); + }; + p12.generateKey = forge3.pbe.generatePkcs12Key; + } +}); + +// node_modules/node-forge/lib/pki.js +var require_pki = __commonJS({ + "node_modules/node-forge/lib/pki.js"(exports2, module2) { + var forge3 = require_forge(); + require_asn1(); + require_oids(); + require_pbe(); + require_pem(); + require_pbkdf2(); + require_pkcs12(); + require_pss(); + require_rsa(); + require_util(); + require_x509(); + var asn1 = forge3.asn1; + var pki2 = module2.exports = forge3.pki = forge3.pki || {}; + pki2.pemToDer = function(pem) { + var msg = forge3.pem.decode(pem)[0]; + if (msg.procType && msg.procType.type === "ENCRYPTED") { + throw new Error("Could not convert PEM to DER; PEM is encrypted."); + } + return forge3.util.createBuffer(msg.body); + }; + pki2.privateKeyFromPem = function(pem) { + var msg = forge3.pem.decode(pem)[0]; + if (msg.type !== "PRIVATE KEY" && msg.type !== "RSA PRIVATE KEY") { + var error = new Error('Could not convert private key from PEM; PEM header type is not "PRIVATE KEY" or "RSA PRIVATE KEY".'); + error.headerType = msg.type; + throw error; + } + if (msg.procType && msg.procType.type === "ENCRYPTED") { + throw new Error("Could not convert private key from PEM; PEM is encrypted."); + } + var obj = asn1.fromDer(msg.body); + return pki2.privateKeyFromAsn1(obj); + }; + pki2.privateKeyToPem = function(key, maxline) { + var msg = { + type: "RSA PRIVATE KEY", + body: asn1.toDer(pki2.privateKeyToAsn1(key)).getBytes() + }; + return forge3.pem.encode(msg, { maxline }); + }; + pki2.privateKeyInfoToPem = function(pki3, maxline) { + var msg = { + type: "PRIVATE KEY", + body: asn1.toDer(pki3).getBytes() + }; + return forge3.pem.encode(msg, { maxline }); + }; + } +}); + +// node_modules/node-forge/lib/tls.js +var require_tls = __commonJS({ + "node_modules/node-forge/lib/tls.js"(exports2, module2) { + var forge3 = require_forge(); + require_asn1(); + require_hmac(); + require_md5(); + require_pem(); + require_pki(); + require_random(); + require_sha1(); + require_util(); + var prf_TLS1 = function(secret, label, seed, length) { + var rval = forge3.util.createBuffer(); + var idx = secret.length >> 1; + var slen = idx + (secret.length & 1); + var s1 = secret.substr(0, slen); + var s2 = secret.substr(idx, slen); + var ai = forge3.util.createBuffer(); + var hmac = forge3.hmac.create(); + seed = label + seed; + var md5itr = Math.ceil(length / 16); + var sha1itr = Math.ceil(length / 20); + hmac.start("MD5", s1); + var md5bytes = forge3.util.createBuffer(); + ai.putBytes(seed); + for (var i = 0; i < md5itr; ++i) { + hmac.start(null, null); + hmac.update(ai.getBytes()); + ai.putBuffer(hmac.digest()); + hmac.start(null, null); + hmac.update(ai.bytes() + seed); + md5bytes.putBuffer(hmac.digest()); + } + hmac.start("SHA1", s2); + var sha1bytes = forge3.util.createBuffer(); + ai.clear(); + ai.putBytes(seed); + for (var i = 0; i < sha1itr; ++i) { + hmac.start(null, null); + hmac.update(ai.getBytes()); + ai.putBuffer(hmac.digest()); + hmac.start(null, null); + hmac.update(ai.bytes() + seed); + sha1bytes.putBuffer(hmac.digest()); + } + rval.putBytes(forge3.util.xorBytes(md5bytes.getBytes(), sha1bytes.getBytes(), length)); + return rval; + }; + var hmac_sha1 = function(key2, seqNum, record) { + var hmac = forge3.hmac.create(); + hmac.start("SHA1", key2); + var b = forge3.util.createBuffer(); + b.putInt32(seqNum[0]); + b.putInt32(seqNum[1]); + b.putByte(record.type); + b.putByte(record.version.major); + b.putByte(record.version.minor); + b.putInt16(record.length); + b.putBytes(record.fragment.bytes()); + hmac.update(b.getBytes()); + return hmac.digest().getBytes(); + }; + var deflate = function(c, record, s) { + var rval = false; + try { + var bytes = c.deflate(record.fragment.getBytes()); + record.fragment = forge3.util.createBuffer(bytes); + record.length = bytes.length; + rval = true; + } catch (ex) { + } + return rval; + }; + var inflate = function(c, record, s) { + var rval = false; + try { + var bytes = c.inflate(record.fragment.getBytes()); + record.fragment = forge3.util.createBuffer(bytes); + record.length = bytes.length; + rval = true; + } catch (ex) { + } + return rval; + }; + var readVector = function(b, lenBytes) { + var len = 0; + switch (lenBytes) { + case 1: + len = b.getByte(); + break; + case 2: + len = b.getInt16(); + break; + case 3: + len = b.getInt24(); + break; + case 4: + len = b.getInt32(); + break; + } + return forge3.util.createBuffer(b.getBytes(len)); + }; + var writeVector = function(b, lenBytes, v) { + b.putInt(v.length(), lenBytes << 3); + b.putBuffer(v); + }; + var tls = {}; + tls.Versions = { + TLS_1_0: { major: 3, minor: 1 }, + TLS_1_1: { major: 3, minor: 2 }, + TLS_1_2: { major: 3, minor: 3 } + }; + tls.SupportedVersions = [ + tls.Versions.TLS_1_1, + tls.Versions.TLS_1_0 + ]; + tls.Version = tls.SupportedVersions[0]; + tls.MaxFragment = 16384 - 1024; + tls.ConnectionEnd = { + server: 0, + client: 1 + }; + tls.PRFAlgorithm = { + tls_prf_sha256: 0 + }; + tls.BulkCipherAlgorithm = { + none: null, + rc4: 0, + des3: 1, + aes: 2 + }; + tls.CipherType = { + stream: 0, + block: 1, + aead: 2 + }; + tls.MACAlgorithm = { + none: null, + hmac_md5: 0, + hmac_sha1: 1, + hmac_sha256: 2, + hmac_sha384: 3, + hmac_sha512: 4 + }; + tls.CompressionMethod = { + none: 0, + deflate: 1 + }; + tls.ContentType = { + change_cipher_spec: 20, + alert: 21, + handshake: 22, + application_data: 23, + heartbeat: 24 + }; + tls.HandshakeType = { + hello_request: 0, + client_hello: 1, + server_hello: 2, + certificate: 11, + server_key_exchange: 12, + certificate_request: 13, + server_hello_done: 14, + certificate_verify: 15, + client_key_exchange: 16, + finished: 20 + }; + tls.Alert = {}; + tls.Alert.Level = { + warning: 1, + fatal: 2 + }; + tls.Alert.Description = { + close_notify: 0, + unexpected_message: 10, + bad_record_mac: 20, + decryption_failed: 21, + record_overflow: 22, + decompression_failure: 30, + handshake_failure: 40, + bad_certificate: 42, + unsupported_certificate: 43, + certificate_revoked: 44, + certificate_expired: 45, + certificate_unknown: 46, + illegal_parameter: 47, + unknown_ca: 48, + access_denied: 49, + decode_error: 50, + decrypt_error: 51, + export_restriction: 60, + protocol_version: 70, + insufficient_security: 71, + internal_error: 80, + user_canceled: 90, + no_renegotiation: 100 + }; + tls.HeartbeatMessageType = { + heartbeat_request: 1, + heartbeat_response: 2 + }; + tls.CipherSuites = {}; + tls.getCipherSuite = function(twoBytes) { + var rval = null; + for (var key2 in tls.CipherSuites) { + var cs = tls.CipherSuites[key2]; + if (cs.id[0] === twoBytes.charCodeAt(0) && cs.id[1] === twoBytes.charCodeAt(1)) { + rval = cs; + break; + } + } + return rval; + }; + tls.handleUnexpected = function(c, record) { + var ignore = !c.open && c.entity === tls.ConnectionEnd.client; + if (!ignore) { + c.error(c, { + message: "Unexpected message. Received TLS record out of order.", + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.unexpected_message + } + }); + } + }; + tls.handleHelloRequest = function(c, record, length) { + if (!c.handshaking && c.handshakes > 0) { + tls.queue(c, tls.createAlert(c, { + level: tls.Alert.Level.warning, + description: tls.Alert.Description.no_renegotiation + })); + tls.flush(c); + } + c.process(); + }; + tls.parseHelloMessage = function(c, record, length) { + var msg = null; + var client = c.entity === tls.ConnectionEnd.client; + if (length < 38) { + c.error(c, { + message: client ? "Invalid ServerHello message. Message too short." : "Invalid ClientHello message. Message too short.", + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.illegal_parameter + } + }); + } else { + var b = record.fragment; + var remaining = b.length(); + msg = { + version: { + major: b.getByte(), + minor: b.getByte() + }, + random: forge3.util.createBuffer(b.getBytes(32)), + session_id: readVector(b, 1), + extensions: [] + }; + if (client) { + msg.cipher_suite = b.getBytes(2); + msg.compression_method = b.getByte(); + } else { + msg.cipher_suites = readVector(b, 2); + msg.compression_methods = readVector(b, 1); + } + remaining = length - (remaining - b.length()); + if (remaining > 0) { + var exts = readVector(b, 2); + while (exts.length() > 0) { + msg.extensions.push({ + type: [exts.getByte(), exts.getByte()], + data: readVector(exts, 2) + }); + } + if (!client) { + for (var i = 0; i < msg.extensions.length; ++i) { + var ext = msg.extensions[i]; + if (ext.type[0] === 0 && ext.type[1] === 0) { + var snl = readVector(ext.data, 2); + while (snl.length() > 0) { + var snType = snl.getByte(); + if (snType !== 0) { + break; + } + c.session.extensions.server_name.serverNameList.push(readVector(snl, 2).getBytes()); + } + } + } + } + } + if (c.session.version) { + if (msg.version.major !== c.session.version.major || msg.version.minor !== c.session.version.minor) { + return c.error(c, { + message: "TLS version change is disallowed during renegotiation.", + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.protocol_version + } + }); + } + } + if (client) { + c.session.cipherSuite = tls.getCipherSuite(msg.cipher_suite); + } else { + var tmp = forge3.util.createBuffer(msg.cipher_suites.bytes()); + while (tmp.length() > 0) { + c.session.cipherSuite = tls.getCipherSuite(tmp.getBytes(2)); + if (c.session.cipherSuite !== null) { + break; + } + } + } + if (c.session.cipherSuite === null) { + return c.error(c, { + message: "No cipher suites in common.", + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.handshake_failure + }, + cipherSuite: forge3.util.bytesToHex(msg.cipher_suite) + }); + } + if (client) { + c.session.compressionMethod = msg.compression_method; + } else { + c.session.compressionMethod = tls.CompressionMethod.none; + } + } + return msg; + }; + tls.createSecurityParameters = function(c, msg) { + var client = c.entity === tls.ConnectionEnd.client; + var msgRandom = msg.random.bytes(); + var cRandom = client ? c.session.sp.client_random : msgRandom; + var sRandom = client ? msgRandom : tls.createRandom().getBytes(); + c.session.sp = { + entity: c.entity, + prf_algorithm: tls.PRFAlgorithm.tls_prf_sha256, + bulk_cipher_algorithm: null, + cipher_type: null, + enc_key_length: null, + block_length: null, + fixed_iv_length: null, + record_iv_length: null, + mac_algorithm: null, + mac_length: null, + mac_key_length: null, + compression_algorithm: c.session.compressionMethod, + pre_master_secret: null, + master_secret: null, + client_random: cRandom, + server_random: sRandom + }; + }; + tls.handleServerHello = function(c, record, length) { + var msg = tls.parseHelloMessage(c, record, length); + if (c.fail) { + return; + } + if (msg.version.minor <= c.version.minor) { + c.version.minor = msg.version.minor; + } else { + return c.error(c, { + message: "Incompatible TLS version.", + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.protocol_version + } + }); + } + c.session.version = c.version; + var sessionId = msg.session_id.bytes(); + if (sessionId.length > 0 && sessionId === c.session.id) { + c.expect = SCC; + c.session.resuming = true; + c.session.sp.server_random = msg.random.bytes(); + } else { + c.expect = SCE; + c.session.resuming = false; + tls.createSecurityParameters(c, msg); + } + c.session.id = sessionId; + c.process(); + }; + tls.handleClientHello = function(c, record, length) { + var msg = tls.parseHelloMessage(c, record, length); + if (c.fail) { + return; + } + var sessionId = msg.session_id.bytes(); + var session = null; + if (c.sessionCache) { + session = c.sessionCache.getSession(sessionId); + if (session === null) { + sessionId = ""; + } else if (session.version.major !== msg.version.major || session.version.minor > msg.version.minor) { + session = null; + sessionId = ""; + } + } + if (sessionId.length === 0) { + sessionId = forge3.random.getBytes(32); + } + c.session.id = sessionId; + c.session.clientHelloVersion = msg.version; + c.session.sp = {}; + if (session) { + c.version = c.session.version = session.version; + c.session.sp = session.sp; + } else { + var version; + for (var i = 1; i < tls.SupportedVersions.length; ++i) { + version = tls.SupportedVersions[i]; + if (version.minor <= msg.version.minor) { + break; + } + } + c.version = { major: version.major, minor: version.minor }; + c.session.version = c.version; + } + if (session !== null) { + c.expect = CCC; + c.session.resuming = true; + c.session.sp.client_random = msg.random.bytes(); + } else { + c.expect = c.verifyClient !== false ? CCE : CKE; + c.session.resuming = false; + tls.createSecurityParameters(c, msg); + } + c.open = true; + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.handshake, + data: tls.createServerHello(c) + })); + if (c.session.resuming) { + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.change_cipher_spec, + data: tls.createChangeCipherSpec() + })); + c.state.pending = tls.createConnectionState(c); + c.state.current.write = c.state.pending.write; + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.handshake, + data: tls.createFinished(c) + })); + } else { + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.handshake, + data: tls.createCertificate(c) + })); + if (!c.fail) { + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.handshake, + data: tls.createServerKeyExchange(c) + })); + if (c.verifyClient !== false) { + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.handshake, + data: tls.createCertificateRequest(c) + })); + } + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.handshake, + data: tls.createServerHelloDone(c) + })); + } + } + tls.flush(c); + c.process(); + }; + tls.handleCertificate = function(c, record, length) { + if (length < 3) { + return c.error(c, { + message: "Invalid Certificate message. Message too short.", + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.illegal_parameter + } + }); + } + var b = record.fragment; + var msg = { + certificate_list: readVector(b, 3) + }; + var cert, asn1; + var certs = []; + try { + while (msg.certificate_list.length() > 0) { + cert = readVector(msg.certificate_list, 3); + asn1 = forge3.asn1.fromDer(cert); + cert = forge3.pki.certificateFromAsn1(asn1, true); + certs.push(cert); + } + } catch (ex) { + return c.error(c, { + message: "Could not parse certificate list.", + cause: ex, + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.bad_certificate + } + }); + } + var client = c.entity === tls.ConnectionEnd.client; + if ((client || c.verifyClient === true) && certs.length === 0) { + c.error(c, { + message: client ? "No server certificate provided." : "No client certificate provided.", + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.illegal_parameter + } + }); + } else if (certs.length === 0) { + c.expect = client ? SKE : CKE; + } else { + if (client) { + c.session.serverCertificate = certs[0]; + } else { + c.session.clientCertificate = certs[0]; + } + if (tls.verifyCertificateChain(c, certs)) { + c.expect = client ? SKE : CKE; + } + } + c.process(); + }; + tls.handleServerKeyExchange = function(c, record, length) { + if (length > 0) { + return c.error(c, { + message: "Invalid key parameters. Only RSA is supported.", + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.unsupported_certificate + } + }); + } + c.expect = SCR; + c.process(); + }; + tls.handleClientKeyExchange = function(c, record, length) { + if (length < 48) { + return c.error(c, { + message: "Invalid key parameters. Only RSA is supported.", + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.unsupported_certificate + } + }); + } + var b = record.fragment; + var msg = { + enc_pre_master_secret: readVector(b, 2).getBytes() + }; + var privateKey = null; + if (c.getPrivateKey) { + try { + privateKey = c.getPrivateKey(c, c.session.serverCertificate); + privateKey = forge3.pki.privateKeyFromPem(privateKey); + } catch (ex) { + c.error(c, { + message: "Could not get private key.", + cause: ex, + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.internal_error + } + }); + } + } + if (privateKey === null) { + return c.error(c, { + message: "No private key set.", + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.internal_error + } + }); + } + try { + var sp = c.session.sp; + sp.pre_master_secret = privateKey.decrypt(msg.enc_pre_master_secret); + var version = c.session.clientHelloVersion; + if (version.major !== sp.pre_master_secret.charCodeAt(0) || version.minor !== sp.pre_master_secret.charCodeAt(1)) { + throw new Error("TLS version rollback attack detected."); + } + } catch (ex) { + sp.pre_master_secret = forge3.random.getBytes(48); + } + c.expect = CCC; + if (c.session.clientCertificate !== null) { + c.expect = CCV; + } + c.process(); + }; + tls.handleCertificateRequest = function(c, record, length) { + if (length < 3) { + return c.error(c, { + message: "Invalid CertificateRequest. Message too short.", + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.illegal_parameter + } + }); + } + var b = record.fragment; + var msg = { + certificate_types: readVector(b, 1), + certificate_authorities: readVector(b, 2) + }; + c.session.certificateRequest = msg; + c.expect = SHD; + c.process(); + }; + tls.handleCertificateVerify = function(c, record, length) { + if (length < 2) { + return c.error(c, { + message: "Invalid CertificateVerify. Message too short.", + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.illegal_parameter + } + }); + } + var b = record.fragment; + b.read -= 4; + var msgBytes = b.bytes(); + b.read += 4; + var msg = { + signature: readVector(b, 2).getBytes() + }; + var verify = forge3.util.createBuffer(); + verify.putBuffer(c.session.md5.digest()); + verify.putBuffer(c.session.sha1.digest()); + verify = verify.getBytes(); + try { + var cert = c.session.clientCertificate; + if (!cert.publicKey.verify(verify, msg.signature, "NONE")) { + throw new Error("CertificateVerify signature does not match."); + } + c.session.md5.update(msgBytes); + c.session.sha1.update(msgBytes); + } catch (ex) { + return c.error(c, { + message: "Bad signature in CertificateVerify.", + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.handshake_failure + } + }); + } + c.expect = CCC; + c.process(); + }; + tls.handleServerHelloDone = function(c, record, length) { + if (length > 0) { + return c.error(c, { + message: "Invalid ServerHelloDone message. Invalid length.", + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.record_overflow + } + }); + } + if (c.serverCertificate === null) { + var error = { + message: "No server certificate provided. Not enough security.", + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.insufficient_security + } + }; + var depth = 0; + var ret = c.verify(c, error.alert.description, depth, []); + if (ret !== true) { + if (ret || ret === 0) { + if (typeof ret === "object" && !forge3.util.isArray(ret)) { + if (ret.message) { + error.message = ret.message; + } + if (ret.alert) { + error.alert.description = ret.alert; + } + } else if (typeof ret === "number") { + error.alert.description = ret; + } + } + return c.error(c, error); + } + } + if (c.session.certificateRequest !== null) { + record = tls.createRecord(c, { + type: tls.ContentType.handshake, + data: tls.createCertificate(c) + }); + tls.queue(c, record); + } + record = tls.createRecord(c, { + type: tls.ContentType.handshake, + data: tls.createClientKeyExchange(c) + }); + tls.queue(c, record); + c.expect = SER; + var callback = function(c2, signature) { + if (c2.session.certificateRequest !== null && c2.session.clientCertificate !== null) { + tls.queue(c2, tls.createRecord(c2, { + type: tls.ContentType.handshake, + data: tls.createCertificateVerify(c2, signature) + })); + } + tls.queue(c2, tls.createRecord(c2, { + type: tls.ContentType.change_cipher_spec, + data: tls.createChangeCipherSpec() + })); + c2.state.pending = tls.createConnectionState(c2); + c2.state.current.write = c2.state.pending.write; + tls.queue(c2, tls.createRecord(c2, { + type: tls.ContentType.handshake, + data: tls.createFinished(c2) + })); + c2.expect = SCC; + tls.flush(c2); + c2.process(); + }; + if (c.session.certificateRequest === null || c.session.clientCertificate === null) { + return callback(c, null); + } + tls.getClientSignature(c, callback); + }; + tls.handleChangeCipherSpec = function(c, record) { + if (record.fragment.getByte() !== 1) { + return c.error(c, { + message: "Invalid ChangeCipherSpec message received.", + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.illegal_parameter + } + }); + } + var client = c.entity === tls.ConnectionEnd.client; + if (c.session.resuming && client || !c.session.resuming && !client) { + c.state.pending = tls.createConnectionState(c); + } + c.state.current.read = c.state.pending.read; + if (!c.session.resuming && client || c.session.resuming && !client) { + c.state.pending = null; + } + c.expect = client ? SFI : CFI; + c.process(); + }; + tls.handleFinished = function(c, record, length) { + var b = record.fragment; + b.read -= 4; + var msgBytes = b.bytes(); + b.read += 4; + var vd = record.fragment.getBytes(); + b = forge3.util.createBuffer(); + b.putBuffer(c.session.md5.digest()); + b.putBuffer(c.session.sha1.digest()); + var client = c.entity === tls.ConnectionEnd.client; + var label = client ? "server finished" : "client finished"; + var sp = c.session.sp; + var vdl = 12; + var prf = prf_TLS1; + b = prf(sp.master_secret, label, b.getBytes(), vdl); + if (b.getBytes() !== vd) { + return c.error(c, { + message: "Invalid verify_data in Finished message.", + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.decrypt_error + } + }); + } + c.session.md5.update(msgBytes); + c.session.sha1.update(msgBytes); + if (c.session.resuming && client || !c.session.resuming && !client) { + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.change_cipher_spec, + data: tls.createChangeCipherSpec() + })); + c.state.current.write = c.state.pending.write; + c.state.pending = null; + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.handshake, + data: tls.createFinished(c) + })); + } + c.expect = client ? SAD : CAD; + c.handshaking = false; + ++c.handshakes; + c.peerCertificate = client ? c.session.serverCertificate : c.session.clientCertificate; + tls.flush(c); + c.isConnected = true; + c.connected(c); + c.process(); + }; + tls.handleAlert = function(c, record) { + var b = record.fragment; + var alert = { + level: b.getByte(), + description: b.getByte() + }; + var msg; + switch (alert.description) { + case tls.Alert.Description.close_notify: + msg = "Connection closed."; + break; + case tls.Alert.Description.unexpected_message: + msg = "Unexpected message."; + break; + case tls.Alert.Description.bad_record_mac: + msg = "Bad record MAC."; + break; + case tls.Alert.Description.decryption_failed: + msg = "Decryption failed."; + break; + case tls.Alert.Description.record_overflow: + msg = "Record overflow."; + break; + case tls.Alert.Description.decompression_failure: + msg = "Decompression failed."; + break; + case tls.Alert.Description.handshake_failure: + msg = "Handshake failure."; + break; + case tls.Alert.Description.bad_certificate: + msg = "Bad certificate."; + break; + case tls.Alert.Description.unsupported_certificate: + msg = "Unsupported certificate."; + break; + case tls.Alert.Description.certificate_revoked: + msg = "Certificate revoked."; + break; + case tls.Alert.Description.certificate_expired: + msg = "Certificate expired."; + break; + case tls.Alert.Description.certificate_unknown: + msg = "Certificate unknown."; + break; + case tls.Alert.Description.illegal_parameter: + msg = "Illegal parameter."; + break; + case tls.Alert.Description.unknown_ca: + msg = "Unknown certificate authority."; + break; + case tls.Alert.Description.access_denied: + msg = "Access denied."; + break; + case tls.Alert.Description.decode_error: + msg = "Decode error."; + break; + case tls.Alert.Description.decrypt_error: + msg = "Decrypt error."; + break; + case tls.Alert.Description.export_restriction: + msg = "Export restriction."; + break; + case tls.Alert.Description.protocol_version: + msg = "Unsupported protocol version."; + break; + case tls.Alert.Description.insufficient_security: + msg = "Insufficient security."; + break; + case tls.Alert.Description.internal_error: + msg = "Internal error."; + break; + case tls.Alert.Description.user_canceled: + msg = "User canceled."; + break; + case tls.Alert.Description.no_renegotiation: + msg = "Renegotiation not supported."; + break; + default: + msg = "Unknown error."; + break; + } + if (alert.description === tls.Alert.Description.close_notify) { + return c.close(); + } + c.error(c, { + message: msg, + send: false, + origin: c.entity === tls.ConnectionEnd.client ? "server" : "client", + alert + }); + c.process(); + }; + tls.handleHandshake = function(c, record) { + var b = record.fragment; + var type = b.getByte(); + var length = b.getInt24(); + if (length > b.length()) { + c.fragmented = record; + record.fragment = forge3.util.createBuffer(); + b.read -= 4; + return c.process(); + } + c.fragmented = null; + b.read -= 4; + var bytes = b.bytes(length + 4); + b.read += 4; + if (type in hsTable[c.entity][c.expect]) { + if (c.entity === tls.ConnectionEnd.server && !c.open && !c.fail) { + c.handshaking = true; + c.session = { + version: null, + extensions: { + server_name: { + serverNameList: [] + } + }, + cipherSuite: null, + compressionMethod: null, + serverCertificate: null, + clientCertificate: null, + md5: forge3.md.md5.create(), + sha1: forge3.md.sha1.create() + }; + } + if (type !== tls.HandshakeType.hello_request && type !== tls.HandshakeType.certificate_verify && type !== tls.HandshakeType.finished) { + c.session.md5.update(bytes); + c.session.sha1.update(bytes); + } + hsTable[c.entity][c.expect][type](c, record, length); + } else { + tls.handleUnexpected(c, record); + } + }; + tls.handleApplicationData = function(c, record) { + c.data.putBuffer(record.fragment); + c.dataReady(c); + c.process(); + }; + tls.handleHeartbeat = function(c, record) { + var b = record.fragment; + var type = b.getByte(); + var length = b.getInt16(); + var payload = b.getBytes(length); + if (type === tls.HeartbeatMessageType.heartbeat_request) { + if (c.handshaking || length > payload.length) { + return c.process(); + } + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.heartbeat, + data: tls.createHeartbeat(tls.HeartbeatMessageType.heartbeat_response, payload) + })); + tls.flush(c); + } else if (type === tls.HeartbeatMessageType.heartbeat_response) { + if (payload !== c.expectedHeartbeatPayload) { + return c.process(); + } + if (c.heartbeatReceived) { + c.heartbeatReceived(c, forge3.util.createBuffer(payload)); + } + } + c.process(); + }; + var SHE = 0; + var SCE = 1; + var SKE = 2; + var SCR = 3; + var SHD = 4; + var SCC = 5; + var SFI = 6; + var SAD = 7; + var SER = 8; + var CHE = 0; + var CCE = 1; + var CKE = 2; + var CCV = 3; + var CCC = 4; + var CFI = 5; + var CAD = 6; + var __ = tls.handleUnexpected; + var R0 = tls.handleChangeCipherSpec; + var R1 = tls.handleAlert; + var R2 = tls.handleHandshake; + var R3 = tls.handleApplicationData; + var R4 = tls.handleHeartbeat; + var ctTable = []; + ctTable[tls.ConnectionEnd.client] = [ + [__, R1, R2, __, R4], + [__, R1, R2, __, R4], + [__, R1, R2, __, R4], + [__, R1, R2, __, R4], + [__, R1, R2, __, R4], + [R0, R1, __, __, R4], + [__, R1, R2, __, R4], + [__, R1, R2, R3, R4], + [__, R1, R2, __, R4] + ]; + ctTable[tls.ConnectionEnd.server] = [ + [__, R1, R2, __, R4], + [__, R1, R2, __, R4], + [__, R1, R2, __, R4], + [__, R1, R2, __, R4], + [R0, R1, __, __, R4], + [__, R1, R2, __, R4], + [__, R1, R2, R3, R4], + [__, R1, R2, __, R4] + ]; + var H0 = tls.handleHelloRequest; + var H1 = tls.handleServerHello; + var H2 = tls.handleCertificate; + var H3 = tls.handleServerKeyExchange; + var H4 = tls.handleCertificateRequest; + var H5 = tls.handleServerHelloDone; + var H6 = tls.handleFinished; + var hsTable = []; + hsTable[tls.ConnectionEnd.client] = [ + [__, __, H1, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __], + [H0, __, __, __, __, __, __, __, __, __, __, H2, H3, H4, H5, __, __, __, __, __, __], + [H0, __, __, __, __, __, __, __, __, __, __, __, H3, H4, H5, __, __, __, __, __, __], + [H0, __, __, __, __, __, __, __, __, __, __, __, __, H4, H5, __, __, __, __, __, __], + [H0, __, __, __, __, __, __, __, __, __, __, __, __, __, H5, __, __, __, __, __, __], + [H0, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __], + [H0, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, H6], + [H0, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __], + [H0, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __] + ]; + var H7 = tls.handleClientHello; + var H8 = tls.handleClientKeyExchange; + var H9 = tls.handleCertificateVerify; + hsTable[tls.ConnectionEnd.server] = [ + [__, H7, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __], + [__, __, __, __, __, __, __, __, __, __, __, H2, __, __, __, __, __, __, __, __, __], + [__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, H8, __, __, __, __], + [__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, H9, __, __, __, __, __], + [__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __], + [__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, H6], + [__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __], + [__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __] + ]; + tls.generateKeys = function(c, sp) { + var prf = prf_TLS1; + var random = sp.client_random + sp.server_random; + if (!c.session.resuming) { + sp.master_secret = prf(sp.pre_master_secret, "master secret", random, 48).bytes(); + sp.pre_master_secret = null; + } + random = sp.server_random + sp.client_random; + var length = 2 * sp.mac_key_length + 2 * sp.enc_key_length; + var tls10 = c.version.major === tls.Versions.TLS_1_0.major && c.version.minor === tls.Versions.TLS_1_0.minor; + if (tls10) { + length += 2 * sp.fixed_iv_length; + } + var km = prf(sp.master_secret, "key expansion", random, length); + var rval = { + client_write_MAC_key: km.getBytes(sp.mac_key_length), + server_write_MAC_key: km.getBytes(sp.mac_key_length), + client_write_key: km.getBytes(sp.enc_key_length), + server_write_key: km.getBytes(sp.enc_key_length) + }; + if (tls10) { + rval.client_write_IV = km.getBytes(sp.fixed_iv_length); + rval.server_write_IV = km.getBytes(sp.fixed_iv_length); + } + return rval; + }; + tls.createConnectionState = function(c) { + var client = c.entity === tls.ConnectionEnd.client; + var createMode = function() { + var mode = { + sequenceNumber: [0, 0], + macKey: null, + macLength: 0, + macFunction: null, + cipherState: null, + cipherFunction: function(record) { + return true; + }, + compressionState: null, + compressFunction: function(record) { + return true; + }, + updateSequenceNumber: function() { + if (mode.sequenceNumber[1] === 4294967295) { + mode.sequenceNumber[1] = 0; + ++mode.sequenceNumber[0]; + } else { + ++mode.sequenceNumber[1]; + } + } + }; + return mode; + }; + var state = { + read: createMode(), + write: createMode() + }; + state.read.update = function(c2, record) { + if (!state.read.cipherFunction(record, state.read)) { + c2.error(c2, { + message: "Could not decrypt record or bad MAC.", + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.bad_record_mac + } + }); + } else if (!state.read.compressFunction(c2, record, state.read)) { + c2.error(c2, { + message: "Could not decompress record.", + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.decompression_failure + } + }); + } + return !c2.fail; + }; + state.write.update = function(c2, record) { + if (!state.write.compressFunction(c2, record, state.write)) { + c2.error(c2, { + message: "Could not compress record.", + send: false, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.internal_error + } + }); + } else if (!state.write.cipherFunction(record, state.write)) { + c2.error(c2, { + message: "Could not encrypt record.", + send: false, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.internal_error + } + }); + } + return !c2.fail; + }; + if (c.session) { + var sp = c.session.sp; + c.session.cipherSuite.initSecurityParameters(sp); + sp.keys = tls.generateKeys(c, sp); + state.read.macKey = client ? sp.keys.server_write_MAC_key : sp.keys.client_write_MAC_key; + state.write.macKey = client ? sp.keys.client_write_MAC_key : sp.keys.server_write_MAC_key; + c.session.cipherSuite.initConnectionState(state, c, sp); + switch (sp.compression_algorithm) { + case tls.CompressionMethod.none: + break; + case tls.CompressionMethod.deflate: + state.read.compressFunction = inflate; + state.write.compressFunction = deflate; + break; + default: + throw new Error("Unsupported compression algorithm."); + } + } + return state; + }; + tls.createRandom = function() { + var d = new Date(); + var utc = +d + d.getTimezoneOffset() * 6e4; + var rval = forge3.util.createBuffer(); + rval.putInt32(utc); + rval.putBytes(forge3.random.getBytes(28)); + return rval; + }; + tls.createRecord = function(c, options) { + if (!options.data) { + return null; + } + var record = { + type: options.type, + version: { + major: c.version.major, + minor: c.version.minor + }, + length: options.data.length(), + fragment: options.data + }; + return record; + }; + tls.createAlert = function(c, alert) { + var b = forge3.util.createBuffer(); + b.putByte(alert.level); + b.putByte(alert.description); + return tls.createRecord(c, { + type: tls.ContentType.alert, + data: b + }); + }; + tls.createClientHello = function(c) { + c.session.clientHelloVersion = { + major: c.version.major, + minor: c.version.minor + }; + var cipherSuites = forge3.util.createBuffer(); + for (var i = 0; i < c.cipherSuites.length; ++i) { + var cs = c.cipherSuites[i]; + cipherSuites.putByte(cs.id[0]); + cipherSuites.putByte(cs.id[1]); + } + var cSuites = cipherSuites.length(); + var compressionMethods = forge3.util.createBuffer(); + compressionMethods.putByte(tls.CompressionMethod.none); + var cMethods = compressionMethods.length(); + var extensions = forge3.util.createBuffer(); + if (c.virtualHost) { + var ext = forge3.util.createBuffer(); + ext.putByte(0); + ext.putByte(0); + var serverName = forge3.util.createBuffer(); + serverName.putByte(0); + writeVector(serverName, 2, forge3.util.createBuffer(c.virtualHost)); + var snList = forge3.util.createBuffer(); + writeVector(snList, 2, serverName); + writeVector(ext, 2, snList); + extensions.putBuffer(ext); + } + var extLength = extensions.length(); + if (extLength > 0) { + extLength += 2; + } + var sessionId = c.session.id; + var length = sessionId.length + 1 + 2 + 4 + 28 + 2 + cSuites + 1 + cMethods + extLength; + var rval = forge3.util.createBuffer(); + rval.putByte(tls.HandshakeType.client_hello); + rval.putInt24(length); + rval.putByte(c.version.major); + rval.putByte(c.version.minor); + rval.putBytes(c.session.sp.client_random); + writeVector(rval, 1, forge3.util.createBuffer(sessionId)); + writeVector(rval, 2, cipherSuites); + writeVector(rval, 1, compressionMethods); + if (extLength > 0) { + writeVector(rval, 2, extensions); + } + return rval; + }; + tls.createServerHello = function(c) { + var sessionId = c.session.id; + var length = sessionId.length + 1 + 2 + 4 + 28 + 2 + 1; + var rval = forge3.util.createBuffer(); + rval.putByte(tls.HandshakeType.server_hello); + rval.putInt24(length); + rval.putByte(c.version.major); + rval.putByte(c.version.minor); + rval.putBytes(c.session.sp.server_random); + writeVector(rval, 1, forge3.util.createBuffer(sessionId)); + rval.putByte(c.session.cipherSuite.id[0]); + rval.putByte(c.session.cipherSuite.id[1]); + rval.putByte(c.session.compressionMethod); + return rval; + }; + tls.createCertificate = function(c) { + var client = c.entity === tls.ConnectionEnd.client; + var cert = null; + if (c.getCertificate) { + var hint; + if (client) { + hint = c.session.certificateRequest; + } else { + hint = c.session.extensions.server_name.serverNameList; + } + cert = c.getCertificate(c, hint); + } + var certList = forge3.util.createBuffer(); + if (cert !== null) { + try { + if (!forge3.util.isArray(cert)) { + cert = [cert]; + } + var asn1 = null; + for (var i = 0; i < cert.length; ++i) { + var msg = forge3.pem.decode(cert[i])[0]; + if (msg.type !== "CERTIFICATE" && msg.type !== "X509 CERTIFICATE" && msg.type !== "TRUSTED CERTIFICATE") { + var error = new Error('Could not convert certificate from PEM; PEM header type is not "CERTIFICATE", "X509 CERTIFICATE", or "TRUSTED CERTIFICATE".'); + error.headerType = msg.type; + throw error; + } + if (msg.procType && msg.procType.type === "ENCRYPTED") { + throw new Error("Could not convert certificate from PEM; PEM is encrypted."); + } + var der = forge3.util.createBuffer(msg.body); + if (asn1 === null) { + asn1 = forge3.asn1.fromDer(der.bytes(), false); + } + var certBuffer = forge3.util.createBuffer(); + writeVector(certBuffer, 3, der); + certList.putBuffer(certBuffer); + } + cert = forge3.pki.certificateFromAsn1(asn1); + if (client) { + c.session.clientCertificate = cert; + } else { + c.session.serverCertificate = cert; + } + } catch (ex) { + return c.error(c, { + message: "Could not send certificate list.", + cause: ex, + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.bad_certificate + } + }); + } + } + var length = 3 + certList.length(); + var rval = forge3.util.createBuffer(); + rval.putByte(tls.HandshakeType.certificate); + rval.putInt24(length); + writeVector(rval, 3, certList); + return rval; + }; + tls.createClientKeyExchange = function(c) { + var b = forge3.util.createBuffer(); + b.putByte(c.session.clientHelloVersion.major); + b.putByte(c.session.clientHelloVersion.minor); + b.putBytes(forge3.random.getBytes(46)); + var sp = c.session.sp; + sp.pre_master_secret = b.getBytes(); + var key2 = c.session.serverCertificate.publicKey; + b = key2.encrypt(sp.pre_master_secret); + var length = b.length + 2; + var rval = forge3.util.createBuffer(); + rval.putByte(tls.HandshakeType.client_key_exchange); + rval.putInt24(length); + rval.putInt16(b.length); + rval.putBytes(b); + return rval; + }; + tls.createServerKeyExchange = function(c) { + var length = 0; + var rval = forge3.util.createBuffer(); + if (length > 0) { + rval.putByte(tls.HandshakeType.server_key_exchange); + rval.putInt24(length); + } + return rval; + }; + tls.getClientSignature = function(c, callback) { + var b = forge3.util.createBuffer(); + b.putBuffer(c.session.md5.digest()); + b.putBuffer(c.session.sha1.digest()); + b = b.getBytes(); + c.getSignature = c.getSignature || function(c2, b2, callback2) { + var privateKey = null; + if (c2.getPrivateKey) { + try { + privateKey = c2.getPrivateKey(c2, c2.session.clientCertificate); + privateKey = forge3.pki.privateKeyFromPem(privateKey); + } catch (ex) { + c2.error(c2, { + message: "Could not get private key.", + cause: ex, + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.internal_error + } + }); + } + } + if (privateKey === null) { + c2.error(c2, { + message: "No private key set.", + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.internal_error + } + }); + } else { + b2 = privateKey.sign(b2, null); + } + callback2(c2, b2); + }; + c.getSignature(c, b, callback); + }; + tls.createCertificateVerify = function(c, signature) { + var length = signature.length + 2; + var rval = forge3.util.createBuffer(); + rval.putByte(tls.HandshakeType.certificate_verify); + rval.putInt24(length); + rval.putInt16(signature.length); + rval.putBytes(signature); + return rval; + }; + tls.createCertificateRequest = function(c) { + var certTypes = forge3.util.createBuffer(); + certTypes.putByte(1); + var cAs = forge3.util.createBuffer(); + for (var key2 in c.caStore.certs) { + var cert = c.caStore.certs[key2]; + var dn = forge3.pki.distinguishedNameToAsn1(cert.subject); + var byteBuffer = forge3.asn1.toDer(dn); + cAs.putInt16(byteBuffer.length()); + cAs.putBuffer(byteBuffer); + } + var length = 1 + certTypes.length() + 2 + cAs.length(); + var rval = forge3.util.createBuffer(); + rval.putByte(tls.HandshakeType.certificate_request); + rval.putInt24(length); + writeVector(rval, 1, certTypes); + writeVector(rval, 2, cAs); + return rval; + }; + tls.createServerHelloDone = function(c) { + var rval = forge3.util.createBuffer(); + rval.putByte(tls.HandshakeType.server_hello_done); + rval.putInt24(0); + return rval; + }; + tls.createChangeCipherSpec = function() { + var rval = forge3.util.createBuffer(); + rval.putByte(1); + return rval; + }; + tls.createFinished = function(c) { + var b = forge3.util.createBuffer(); + b.putBuffer(c.session.md5.digest()); + b.putBuffer(c.session.sha1.digest()); + var client = c.entity === tls.ConnectionEnd.client; + var sp = c.session.sp; + var vdl = 12; + var prf = prf_TLS1; + var label = client ? "client finished" : "server finished"; + b = prf(sp.master_secret, label, b.getBytes(), vdl); + var rval = forge3.util.createBuffer(); + rval.putByte(tls.HandshakeType.finished); + rval.putInt24(b.length()); + rval.putBuffer(b); + return rval; + }; + tls.createHeartbeat = function(type, payload, payloadLength) { + if (typeof payloadLength === "undefined") { + payloadLength = payload.length; + } + var rval = forge3.util.createBuffer(); + rval.putByte(type); + rval.putInt16(payloadLength); + rval.putBytes(payload); + var plaintextLength = rval.length(); + var paddingLength = Math.max(16, plaintextLength - payloadLength - 3); + rval.putBytes(forge3.random.getBytes(paddingLength)); + return rval; + }; + tls.queue = function(c, record) { + if (!record) { + return; + } + if (record.fragment.length() === 0) { + if (record.type === tls.ContentType.handshake || record.type === tls.ContentType.alert || record.type === tls.ContentType.change_cipher_spec) { + return; + } + } + if (record.type === tls.ContentType.handshake) { + var bytes = record.fragment.bytes(); + c.session.md5.update(bytes); + c.session.sha1.update(bytes); + bytes = null; + } + var records; + if (record.fragment.length() <= tls.MaxFragment) { + records = [record]; + } else { + records = []; + var data = record.fragment.bytes(); + while (data.length > tls.MaxFragment) { + records.push(tls.createRecord(c, { + type: record.type, + data: forge3.util.createBuffer(data.slice(0, tls.MaxFragment)) + })); + data = data.slice(tls.MaxFragment); + } + if (data.length > 0) { + records.push(tls.createRecord(c, { + type: record.type, + data: forge3.util.createBuffer(data) + })); + } + } + for (var i = 0; i < records.length && !c.fail; ++i) { + var rec = records[i]; + var s = c.state.current.write; + if (s.update(c, rec)) { + c.records.push(rec); + } + } + }; + tls.flush = function(c) { + for (var i = 0; i < c.records.length; ++i) { + var record = c.records[i]; + c.tlsData.putByte(record.type); + c.tlsData.putByte(record.version.major); + c.tlsData.putByte(record.version.minor); + c.tlsData.putInt16(record.fragment.length()); + c.tlsData.putBuffer(c.records[i].fragment); + } + c.records = []; + return c.tlsDataReady(c); + }; + var _certErrorToAlertDesc = function(error) { + switch (error) { + case true: + return true; + case forge3.pki.certificateError.bad_certificate: + return tls.Alert.Description.bad_certificate; + case forge3.pki.certificateError.unsupported_certificate: + return tls.Alert.Description.unsupported_certificate; + case forge3.pki.certificateError.certificate_revoked: + return tls.Alert.Description.certificate_revoked; + case forge3.pki.certificateError.certificate_expired: + return tls.Alert.Description.certificate_expired; + case forge3.pki.certificateError.certificate_unknown: + return tls.Alert.Description.certificate_unknown; + case forge3.pki.certificateError.unknown_ca: + return tls.Alert.Description.unknown_ca; + default: + return tls.Alert.Description.bad_certificate; + } + }; + var _alertDescToCertError = function(desc) { + switch (desc) { + case true: + return true; + case tls.Alert.Description.bad_certificate: + return forge3.pki.certificateError.bad_certificate; + case tls.Alert.Description.unsupported_certificate: + return forge3.pki.certificateError.unsupported_certificate; + case tls.Alert.Description.certificate_revoked: + return forge3.pki.certificateError.certificate_revoked; + case tls.Alert.Description.certificate_expired: + return forge3.pki.certificateError.certificate_expired; + case tls.Alert.Description.certificate_unknown: + return forge3.pki.certificateError.certificate_unknown; + case tls.Alert.Description.unknown_ca: + return forge3.pki.certificateError.unknown_ca; + default: + return forge3.pki.certificateError.bad_certificate; + } + }; + tls.verifyCertificateChain = function(c, chain) { + try { + var options = {}; + for (var key2 in c.verifyOptions) { + options[key2] = c.verifyOptions[key2]; + } + options.verify = function(vfd, depth, chain2) { + var desc = _certErrorToAlertDesc(vfd); + var ret = c.verify(c, vfd, depth, chain2); + if (ret !== true) { + if (typeof ret === "object" && !forge3.util.isArray(ret)) { + var error = new Error("The application rejected the certificate."); + error.send = true; + error.alert = { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.bad_certificate + }; + if (ret.message) { + error.message = ret.message; + } + if (ret.alert) { + error.alert.description = ret.alert; + } + throw error; + } + if (ret !== vfd) { + ret = _alertDescToCertError(ret); + } + } + return ret; + }; + forge3.pki.verifyCertificateChain(c.caStore, chain, options); + } catch (ex) { + var err = ex; + if (typeof err !== "object" || forge3.util.isArray(err)) { + err = { + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: _certErrorToAlertDesc(ex) + } + }; + } + if (!("send" in err)) { + err.send = true; + } + if (!("alert" in err)) { + err.alert = { + level: tls.Alert.Level.fatal, + description: _certErrorToAlertDesc(err.error) + }; + } + c.error(c, err); + } + return !c.fail; + }; + tls.createSessionCache = function(cache, capacity) { + var rval = null; + if (cache && cache.getSession && cache.setSession && cache.order) { + rval = cache; + } else { + rval = {}; + rval.cache = cache || {}; + rval.capacity = Math.max(capacity || 100, 1); + rval.order = []; + for (var key2 in cache) { + if (rval.order.length <= capacity) { + rval.order.push(key2); + } else { + delete cache[key2]; + } + } + rval.getSession = function(sessionId) { + var session = null; + var key3 = null; + if (sessionId) { + key3 = forge3.util.bytesToHex(sessionId); + } else if (rval.order.length > 0) { + key3 = rval.order[0]; + } + if (key3 !== null && key3 in rval.cache) { + session = rval.cache[key3]; + delete rval.cache[key3]; + for (var i in rval.order) { + if (rval.order[i] === key3) { + rval.order.splice(i, 1); + break; + } + } + } + return session; + }; + rval.setSession = function(sessionId, session) { + if (rval.order.length === rval.capacity) { + var key3 = rval.order.shift(); + delete rval.cache[key3]; + } + var key3 = forge3.util.bytesToHex(sessionId); + rval.order.push(key3); + rval.cache[key3] = session; + }; + } + return rval; + }; + tls.createConnection = function(options) { + var caStore = null; + if (options.caStore) { + if (forge3.util.isArray(options.caStore)) { + caStore = forge3.pki.createCaStore(options.caStore); + } else { + caStore = options.caStore; + } + } else { + caStore = forge3.pki.createCaStore(); + } + var cipherSuites = options.cipherSuites || null; + if (cipherSuites === null) { + cipherSuites = []; + for (var key2 in tls.CipherSuites) { + cipherSuites.push(tls.CipherSuites[key2]); + } + } + var entity = options.server || false ? tls.ConnectionEnd.server : tls.ConnectionEnd.client; + var sessionCache = options.sessionCache ? tls.createSessionCache(options.sessionCache) : null; + var c = { + version: { major: tls.Version.major, minor: tls.Version.minor }, + entity, + sessionId: options.sessionId, + caStore, + sessionCache, + cipherSuites, + connected: options.connected, + virtualHost: options.virtualHost || null, + verifyClient: options.verifyClient || false, + verify: options.verify || function(cn, vfd, dpth, cts) { + return vfd; + }, + verifyOptions: options.verifyOptions || {}, + getCertificate: options.getCertificate || null, + getPrivateKey: options.getPrivateKey || null, + getSignature: options.getSignature || null, + input: forge3.util.createBuffer(), + tlsData: forge3.util.createBuffer(), + data: forge3.util.createBuffer(), + tlsDataReady: options.tlsDataReady, + dataReady: options.dataReady, + heartbeatReceived: options.heartbeatReceived, + closed: options.closed, + error: function(c2, ex) { + ex.origin = ex.origin || (c2.entity === tls.ConnectionEnd.client ? "client" : "server"); + if (ex.send) { + tls.queue(c2, tls.createAlert(c2, ex.alert)); + tls.flush(c2); + } + var fatal = ex.fatal !== false; + if (fatal) { + c2.fail = true; + } + options.error(c2, ex); + if (fatal) { + c2.close(false); + } + }, + deflate: options.deflate || null, + inflate: options.inflate || null + }; + c.reset = function(clearFail) { + c.version = { major: tls.Version.major, minor: tls.Version.minor }; + c.record = null; + c.session = null; + c.peerCertificate = null; + c.state = { + pending: null, + current: null + }; + c.expect = c.entity === tls.ConnectionEnd.client ? SHE : CHE; + c.fragmented = null; + c.records = []; + c.open = false; + c.handshakes = 0; + c.handshaking = false; + c.isConnected = false; + c.fail = !(clearFail || typeof clearFail === "undefined"); + c.input.clear(); + c.tlsData.clear(); + c.data.clear(); + c.state.current = tls.createConnectionState(c); + }; + c.reset(); + var _update = function(c2, record) { + var aligned = record.type - tls.ContentType.change_cipher_spec; + var handlers = ctTable[c2.entity][c2.expect]; + if (aligned in handlers) { + handlers[aligned](c2, record); + } else { + tls.handleUnexpected(c2, record); + } + }; + var _readRecordHeader = function(c2) { + var rval = 0; + var b = c2.input; + var len = b.length(); + if (len < 5) { + rval = 5 - len; + } else { + c2.record = { + type: b.getByte(), + version: { + major: b.getByte(), + minor: b.getByte() + }, + length: b.getInt16(), + fragment: forge3.util.createBuffer(), + ready: false + }; + var compatibleVersion = c2.record.version.major === c2.version.major; + if (compatibleVersion && c2.session && c2.session.version) { + compatibleVersion = c2.record.version.minor === c2.version.minor; + } + if (!compatibleVersion) { + c2.error(c2, { + message: "Incompatible TLS version.", + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.protocol_version + } + }); + } + } + return rval; + }; + var _readRecord = function(c2) { + var rval = 0; + var b = c2.input; + var len = b.length(); + if (len < c2.record.length) { + rval = c2.record.length - len; + } else { + c2.record.fragment.putBytes(b.getBytes(c2.record.length)); + b.compact(); + var s = c2.state.current.read; + if (s.update(c2, c2.record)) { + if (c2.fragmented !== null) { + if (c2.fragmented.type === c2.record.type) { + c2.fragmented.fragment.putBuffer(c2.record.fragment); + c2.record = c2.fragmented; + } else { + c2.error(c2, { + message: "Invalid fragmented record.", + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.unexpected_message + } + }); + } + } + c2.record.ready = true; + } + } + return rval; + }; + c.handshake = function(sessionId) { + if (c.entity !== tls.ConnectionEnd.client) { + c.error(c, { + message: "Cannot initiate handshake as a server.", + fatal: false + }); + } else if (c.handshaking) { + c.error(c, { + message: "Handshake already in progress.", + fatal: false + }); + } else { + if (c.fail && !c.open && c.handshakes === 0) { + c.fail = false; + } + c.handshaking = true; + sessionId = sessionId || ""; + var session = null; + if (sessionId.length > 0) { + if (c.sessionCache) { + session = c.sessionCache.getSession(sessionId); + } + if (session === null) { + sessionId = ""; + } + } + if (sessionId.length === 0 && c.sessionCache) { + session = c.sessionCache.getSession(); + if (session !== null) { + sessionId = session.id; + } + } + c.session = { + id: sessionId, + version: null, + cipherSuite: null, + compressionMethod: null, + serverCertificate: null, + certificateRequest: null, + clientCertificate: null, + sp: {}, + md5: forge3.md.md5.create(), + sha1: forge3.md.sha1.create() + }; + if (session) { + c.version = session.version; + c.session.sp = session.sp; + } + c.session.sp.client_random = tls.createRandom().getBytes(); + c.open = true; + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.handshake, + data: tls.createClientHello(c) + })); + tls.flush(c); + } + }; + c.process = function(data) { + var rval = 0; + if (data) { + c.input.putBytes(data); + } + if (!c.fail) { + if (c.record !== null && c.record.ready && c.record.fragment.isEmpty()) { + c.record = null; + } + if (c.record === null) { + rval = _readRecordHeader(c); + } + if (!c.fail && c.record !== null && !c.record.ready) { + rval = _readRecord(c); + } + if (!c.fail && c.record !== null && c.record.ready) { + _update(c, c.record); + } + } + return rval; + }; + c.prepare = function(data) { + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.application_data, + data: forge3.util.createBuffer(data) + })); + return tls.flush(c); + }; + c.prepareHeartbeatRequest = function(payload, payloadLength) { + if (payload instanceof forge3.util.ByteBuffer) { + payload = payload.bytes(); + } + if (typeof payloadLength === "undefined") { + payloadLength = payload.length; + } + c.expectedHeartbeatPayload = payload; + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.heartbeat, + data: tls.createHeartbeat(tls.HeartbeatMessageType.heartbeat_request, payload, payloadLength) + })); + return tls.flush(c); + }; + c.close = function(clearFail) { + if (!c.fail && c.sessionCache && c.session) { + var session = { + id: c.session.id, + version: c.session.version, + sp: c.session.sp + }; + session.sp.keys = null; + c.sessionCache.setSession(session.id, session); + } + if (c.open) { + c.open = false; + c.input.clear(); + if (c.isConnected || c.handshaking) { + c.isConnected = c.handshaking = false; + tls.queue(c, tls.createAlert(c, { + level: tls.Alert.Level.warning, + description: tls.Alert.Description.close_notify + })); + tls.flush(c); + } + c.closed(c); + } + c.reset(clearFail); + }; + return c; + }; + module2.exports = forge3.tls = forge3.tls || {}; + for (key in tls) { + if (typeof tls[key] !== "function") { + forge3.tls[key] = tls[key]; + } + } + var key; + forge3.tls.prf_tls1 = prf_TLS1; + forge3.tls.hmac_sha1 = hmac_sha1; + forge3.tls.createSessionCache = tls.createSessionCache; + forge3.tls.createConnection = tls.createConnection; + } +}); + +// node_modules/node-forge/lib/aesCipherSuites.js +var require_aesCipherSuites = __commonJS({ + "node_modules/node-forge/lib/aesCipherSuites.js"(exports2, module2) { + var forge3 = require_forge(); + require_aes(); + require_tls(); + var tls = module2.exports = forge3.tls; + tls.CipherSuites["TLS_RSA_WITH_AES_128_CBC_SHA"] = { + id: [0, 47], + name: "TLS_RSA_WITH_AES_128_CBC_SHA", + initSecurityParameters: function(sp) { + sp.bulk_cipher_algorithm = tls.BulkCipherAlgorithm.aes; + sp.cipher_type = tls.CipherType.block; + sp.enc_key_length = 16; + sp.block_length = 16; + sp.fixed_iv_length = 16; + sp.record_iv_length = 16; + sp.mac_algorithm = tls.MACAlgorithm.hmac_sha1; + sp.mac_length = 20; + sp.mac_key_length = 20; + }, + initConnectionState + }; + tls.CipherSuites["TLS_RSA_WITH_AES_256_CBC_SHA"] = { + id: [0, 53], + name: "TLS_RSA_WITH_AES_256_CBC_SHA", + initSecurityParameters: function(sp) { + sp.bulk_cipher_algorithm = tls.BulkCipherAlgorithm.aes; + sp.cipher_type = tls.CipherType.block; + sp.enc_key_length = 32; + sp.block_length = 16; + sp.fixed_iv_length = 16; + sp.record_iv_length = 16; + sp.mac_algorithm = tls.MACAlgorithm.hmac_sha1; + sp.mac_length = 20; + sp.mac_key_length = 20; + }, + initConnectionState + }; + function initConnectionState(state, c, sp) { + var client = c.entity === forge3.tls.ConnectionEnd.client; + state.read.cipherState = { + init: false, + cipher: forge3.cipher.createDecipher("AES-CBC", client ? sp.keys.server_write_key : sp.keys.client_write_key), + iv: client ? sp.keys.server_write_IV : sp.keys.client_write_IV + }; + state.write.cipherState = { + init: false, + cipher: forge3.cipher.createCipher("AES-CBC", client ? sp.keys.client_write_key : sp.keys.server_write_key), + iv: client ? sp.keys.client_write_IV : sp.keys.server_write_IV + }; + state.read.cipherFunction = decrypt_aes_cbc_sha1; + state.write.cipherFunction = encrypt_aes_cbc_sha1; + state.read.macLength = state.write.macLength = sp.mac_length; + state.read.macFunction = state.write.macFunction = tls.hmac_sha1; + } + function encrypt_aes_cbc_sha1(record, s) { + var rval = false; + var mac = s.macFunction(s.macKey, s.sequenceNumber, record); + record.fragment.putBytes(mac); + s.updateSequenceNumber(); + var iv; + if (record.version.minor === tls.Versions.TLS_1_0.minor) { + iv = s.cipherState.init ? null : s.cipherState.iv; + } else { + iv = forge3.random.getBytesSync(16); + } + s.cipherState.init = true; + var cipher = s.cipherState.cipher; + cipher.start({ iv }); + if (record.version.minor >= tls.Versions.TLS_1_1.minor) { + cipher.output.putBytes(iv); + } + cipher.update(record.fragment); + if (cipher.finish(encrypt_aes_cbc_sha1_padding)) { + record.fragment = cipher.output; + record.length = record.fragment.length(); + rval = true; + } + return rval; + } + function encrypt_aes_cbc_sha1_padding(blockSize, input, decrypt) { + if (!decrypt) { + var padding = blockSize - input.length() % blockSize; + input.fillWithByte(padding - 1, padding); + } + return true; + } + function decrypt_aes_cbc_sha1_padding(blockSize, output, decrypt) { + var rval = true; + if (decrypt) { + var len = output.length(); + var paddingLength = output.last(); + for (var i = len - 1 - paddingLength; i < len - 1; ++i) { + rval = rval && output.at(i) == paddingLength; + } + if (rval) { + output.truncate(paddingLength + 1); + } + } + return rval; + } + function decrypt_aes_cbc_sha1(record, s) { + var rval = false; + var iv; + if (record.version.minor === tls.Versions.TLS_1_0.minor) { + iv = s.cipherState.init ? null : s.cipherState.iv; + } else { + iv = record.fragment.getBytes(16); + } + s.cipherState.init = true; + var cipher = s.cipherState.cipher; + cipher.start({ iv }); + cipher.update(record.fragment); + rval = cipher.finish(decrypt_aes_cbc_sha1_padding); + var macLen = s.macLength; + var mac = forge3.random.getBytesSync(macLen); + var len = cipher.output.length(); + if (len >= macLen) { + record.fragment = cipher.output.getBytes(len - macLen); + mac = cipher.output.getBytes(macLen); + } else { + record.fragment = cipher.output.getBytes(); + } + record.fragment = forge3.util.createBuffer(record.fragment); + record.length = record.fragment.length(); + var mac2 = s.macFunction(s.macKey, s.sequenceNumber, record); + s.updateSequenceNumber(); + rval = compareMacs(s.macKey, mac, mac2) && rval; + return rval; + } + function compareMacs(key, mac1, mac2) { + var hmac = forge3.hmac.create(); + hmac.start("SHA1", key); + hmac.update(mac1); + mac1 = hmac.digest().getBytes(); + hmac.start(null, null); + hmac.update(mac2); + mac2 = hmac.digest().getBytes(); + return mac1 === mac2; + } + } +}); + +// node_modules/node-forge/lib/sha512.js +var require_sha512 = __commonJS({ + "node_modules/node-forge/lib/sha512.js"(exports2, module2) { + var forge3 = require_forge(); + require_md(); + require_util(); + var sha512 = module2.exports = forge3.sha512 = forge3.sha512 || {}; + forge3.md.sha512 = forge3.md.algorithms.sha512 = sha512; + var sha384 = forge3.sha384 = forge3.sha512.sha384 = forge3.sha512.sha384 || {}; + sha384.create = function() { + return sha512.create("SHA-384"); + }; + forge3.md.sha384 = forge3.md.algorithms.sha384 = sha384; + forge3.sha512.sha256 = forge3.sha512.sha256 || { + create: function() { + return sha512.create("SHA-512/256"); + } + }; + forge3.md["sha512/256"] = forge3.md.algorithms["sha512/256"] = forge3.sha512.sha256; + forge3.sha512.sha224 = forge3.sha512.sha224 || { + create: function() { + return sha512.create("SHA-512/224"); + } + }; + forge3.md["sha512/224"] = forge3.md.algorithms["sha512/224"] = forge3.sha512.sha224; + sha512.create = function(algorithm) { + if (!_initialized) { + _init(); + } + if (typeof algorithm === "undefined") { + algorithm = "SHA-512"; + } + if (!(algorithm in _states)) { + throw new Error("Invalid SHA-512 algorithm: " + algorithm); + } + var _state = _states[algorithm]; + var _h = null; + var _input = forge3.util.createBuffer(); + var _w = new Array(80); + for (var wi = 0; wi < 80; ++wi) { + _w[wi] = new Array(2); + } + var digestLength = 64; + switch (algorithm) { + case "SHA-384": + digestLength = 48; + break; + case "SHA-512/256": + digestLength = 32; + break; + case "SHA-512/224": + digestLength = 28; + break; + } + var md = { + algorithm: algorithm.replace("-", "").toLowerCase(), + blockLength: 128, + digestLength, + messageLength: 0, + fullMessageLength: null, + messageLengthSize: 16 + }; + md.start = function() { + md.messageLength = 0; + md.fullMessageLength = md.messageLength128 = []; + var int32s = md.messageLengthSize / 4; + for (var i = 0; i < int32s; ++i) { + md.fullMessageLength.push(0); + } + _input = forge3.util.createBuffer(); + _h = new Array(_state.length); + for (var i = 0; i < _state.length; ++i) { + _h[i] = _state[i].slice(0); + } + return md; + }; + md.start(); + md.update = function(msg, encoding) { + if (encoding === "utf8") { + msg = forge3.util.encodeUtf8(msg); + } + var len = msg.length; + md.messageLength += len; + len = [len / 4294967296 >>> 0, len >>> 0]; + for (var i = md.fullMessageLength.length - 1; i >= 0; --i) { + md.fullMessageLength[i] += len[1]; + len[1] = len[0] + (md.fullMessageLength[i] / 4294967296 >>> 0); + md.fullMessageLength[i] = md.fullMessageLength[i] >>> 0; + len[0] = len[1] / 4294967296 >>> 0; + } + _input.putBytes(msg); + _update(_h, _w, _input); + if (_input.read > 2048 || _input.length() === 0) { + _input.compact(); + } + return md; + }; + md.digest = function() { + var finalBlock = forge3.util.createBuffer(); + finalBlock.putBytes(_input.bytes()); + var remaining = md.fullMessageLength[md.fullMessageLength.length - 1] + md.messageLengthSize; + var overflow = remaining & md.blockLength - 1; + finalBlock.putBytes(_padding.substr(0, md.blockLength - overflow)); + var next, carry; + var bits = md.fullMessageLength[0] * 8; + for (var i = 0; i < md.fullMessageLength.length - 1; ++i) { + next = md.fullMessageLength[i + 1] * 8; + carry = next / 4294967296 >>> 0; + bits += carry; + finalBlock.putInt32(bits >>> 0); + bits = next >>> 0; + } + finalBlock.putInt32(bits); + var h = new Array(_h.length); + for (var i = 0; i < _h.length; ++i) { + h[i] = _h[i].slice(0); + } + _update(h, _w, finalBlock); + var rval = forge3.util.createBuffer(); + var hlen; + if (algorithm === "SHA-512") { + hlen = h.length; + } else if (algorithm === "SHA-384") { + hlen = h.length - 2; + } else { + hlen = h.length - 4; + } + for (var i = 0; i < hlen; ++i) { + rval.putInt32(h[i][0]); + if (i !== hlen - 1 || algorithm !== "SHA-512/224") { + rval.putInt32(h[i][1]); + } + } + return rval; + }; + return md; + }; + var _padding = null; + var _initialized = false; + var _k = null; + var _states = null; + function _init() { + _padding = String.fromCharCode(128); + _padding += forge3.util.fillString(String.fromCharCode(0), 128); + _k = [ + [1116352408, 3609767458], + [1899447441, 602891725], + [3049323471, 3964484399], + [3921009573, 2173295548], + [961987163, 4081628472], + [1508970993, 3053834265], + [2453635748, 2937671579], + [2870763221, 3664609560], + [3624381080, 2734883394], + [310598401, 1164996542], + [607225278, 1323610764], + [1426881987, 3590304994], + [1925078388, 4068182383], + [2162078206, 991336113], + [2614888103, 633803317], + [3248222580, 3479774868], + [3835390401, 2666613458], + [4022224774, 944711139], + [264347078, 2341262773], + [604807628, 2007800933], + [770255983, 1495990901], + [1249150122, 1856431235], + [1555081692, 3175218132], + [1996064986, 2198950837], + [2554220882, 3999719339], + [2821834349, 766784016], + [2952996808, 2566594879], + [3210313671, 3203337956], + [3336571891, 1034457026], + [3584528711, 2466948901], + [113926993, 3758326383], + [338241895, 168717936], + [666307205, 1188179964], + [773529912, 1546045734], + [1294757372, 1522805485], + [1396182291, 2643833823], + [1695183700, 2343527390], + [1986661051, 1014477480], + [2177026350, 1206759142], + [2456956037, 344077627], + [2730485921, 1290863460], + [2820302411, 3158454273], + [3259730800, 3505952657], + [3345764771, 106217008], + [3516065817, 3606008344], + [3600352804, 1432725776], + [4094571909, 1467031594], + [275423344, 851169720], + [430227734, 3100823752], + [506948616, 1363258195], + [659060556, 3750685593], + [883997877, 3785050280], + [958139571, 3318307427], + [1322822218, 3812723403], + [1537002063, 2003034995], + [1747873779, 3602036899], + [1955562222, 1575990012], + [2024104815, 1125592928], + [2227730452, 2716904306], + [2361852424, 442776044], + [2428436474, 593698344], + [2756734187, 3733110249], + [3204031479, 2999351573], + [3329325298, 3815920427], + [3391569614, 3928383900], + [3515267271, 566280711], + [3940187606, 3454069534], + [4118630271, 4000239992], + [116418474, 1914138554], + [174292421, 2731055270], + [289380356, 3203993006], + [460393269, 320620315], + [685471733, 587496836], + [852142971, 1086792851], + [1017036298, 365543100], + [1126000580, 2618297676], + [1288033470, 3409855158], + [1501505948, 4234509866], + [1607167915, 987167468], + [1816402316, 1246189591] + ]; + _states = {}; + _states["SHA-512"] = [ + [1779033703, 4089235720], + [3144134277, 2227873595], + [1013904242, 4271175723], + [2773480762, 1595750129], + [1359893119, 2917565137], + [2600822924, 725511199], + [528734635, 4215389547], + [1541459225, 327033209] + ]; + _states["SHA-384"] = [ + [3418070365, 3238371032], + [1654270250, 914150663], + [2438529370, 812702999], + [355462360, 4144912697], + [1731405415, 4290775857], + [2394180231, 1750603025], + [3675008525, 1694076839], + [1203062813, 3204075428] + ]; + _states["SHA-512/256"] = [ + [573645204, 4230739756], + [2673172387, 3360449730], + [596883563, 1867755857], + [2520282905, 1497426621], + [2519219938, 2827943907], + [3193839141, 1401305490], + [721525244, 746961066], + [246885852, 2177182882] + ]; + _states["SHA-512/224"] = [ + [2352822216, 424955298], + [1944164710, 2312950998], + [502970286, 855612546], + [1738396948, 1479516111], + [258812777, 2077511080], + [2011393907, 79989058], + [1067287976, 1780299464], + [286451373, 2446758561] + ]; + _initialized = true; + } + function _update(s, w, bytes) { + var t1_hi, t1_lo; + var t2_hi, t2_lo; + var s0_hi, s0_lo; + var s1_hi, s1_lo; + var ch_hi, ch_lo; + var maj_hi, maj_lo; + var a_hi, a_lo; + var b_hi, b_lo; + var c_hi, c_lo; + var d_hi, d_lo; + var e_hi, e_lo; + var f_hi, f_lo; + var g_hi, g_lo; + var h_hi, h_lo; + var i, hi, lo, w2, w7, w15, w16; + var len = bytes.length(); + while (len >= 128) { + for (i = 0; i < 16; ++i) { + w[i][0] = bytes.getInt32() >>> 0; + w[i][1] = bytes.getInt32() >>> 0; + } + for (; i < 80; ++i) { + w2 = w[i - 2]; + hi = w2[0]; + lo = w2[1]; + t1_hi = ((hi >>> 19 | lo << 13) ^ (lo >>> 29 | hi << 3) ^ hi >>> 6) >>> 0; + t1_lo = ((hi << 13 | lo >>> 19) ^ (lo << 3 | hi >>> 29) ^ (hi << 26 | lo >>> 6)) >>> 0; + w15 = w[i - 15]; + hi = w15[0]; + lo = w15[1]; + t2_hi = ((hi >>> 1 | lo << 31) ^ (hi >>> 8 | lo << 24) ^ hi >>> 7) >>> 0; + t2_lo = ((hi << 31 | lo >>> 1) ^ (hi << 24 | lo >>> 8) ^ (hi << 25 | lo >>> 7)) >>> 0; + w7 = w[i - 7]; + w16 = w[i - 16]; + lo = t1_lo + w7[1] + t2_lo + w16[1]; + w[i][0] = t1_hi + w7[0] + t2_hi + w16[0] + (lo / 4294967296 >>> 0) >>> 0; + w[i][1] = lo >>> 0; + } + a_hi = s[0][0]; + a_lo = s[0][1]; + b_hi = s[1][0]; + b_lo = s[1][1]; + c_hi = s[2][0]; + c_lo = s[2][1]; + d_hi = s[3][0]; + d_lo = s[3][1]; + e_hi = s[4][0]; + e_lo = s[4][1]; + f_hi = s[5][0]; + f_lo = s[5][1]; + g_hi = s[6][0]; + g_lo = s[6][1]; + h_hi = s[7][0]; + h_lo = s[7][1]; + for (i = 0; i < 80; ++i) { + s1_hi = ((e_hi >>> 14 | e_lo << 18) ^ (e_hi >>> 18 | e_lo << 14) ^ (e_lo >>> 9 | e_hi << 23)) >>> 0; + s1_lo = ((e_hi << 18 | e_lo >>> 14) ^ (e_hi << 14 | e_lo >>> 18) ^ (e_lo << 23 | e_hi >>> 9)) >>> 0; + ch_hi = (g_hi ^ e_hi & (f_hi ^ g_hi)) >>> 0; + ch_lo = (g_lo ^ e_lo & (f_lo ^ g_lo)) >>> 0; + s0_hi = ((a_hi >>> 28 | a_lo << 4) ^ (a_lo >>> 2 | a_hi << 30) ^ (a_lo >>> 7 | a_hi << 25)) >>> 0; + s0_lo = ((a_hi << 4 | a_lo >>> 28) ^ (a_lo << 30 | a_hi >>> 2) ^ (a_lo << 25 | a_hi >>> 7)) >>> 0; + maj_hi = (a_hi & b_hi | c_hi & (a_hi ^ b_hi)) >>> 0; + maj_lo = (a_lo & b_lo | c_lo & (a_lo ^ b_lo)) >>> 0; + lo = h_lo + s1_lo + ch_lo + _k[i][1] + w[i][1]; + t1_hi = h_hi + s1_hi + ch_hi + _k[i][0] + w[i][0] + (lo / 4294967296 >>> 0) >>> 0; + t1_lo = lo >>> 0; + lo = s0_lo + maj_lo; + t2_hi = s0_hi + maj_hi + (lo / 4294967296 >>> 0) >>> 0; + t2_lo = lo >>> 0; + h_hi = g_hi; + h_lo = g_lo; + g_hi = f_hi; + g_lo = f_lo; + f_hi = e_hi; + f_lo = e_lo; + lo = d_lo + t1_lo; + e_hi = d_hi + t1_hi + (lo / 4294967296 >>> 0) >>> 0; + e_lo = lo >>> 0; + d_hi = c_hi; + d_lo = c_lo; + c_hi = b_hi; + c_lo = b_lo; + b_hi = a_hi; + b_lo = a_lo; + lo = t1_lo + t2_lo; + a_hi = t1_hi + t2_hi + (lo / 4294967296 >>> 0) >>> 0; + a_lo = lo >>> 0; + } + lo = s[0][1] + a_lo; + s[0][0] = s[0][0] + a_hi + (lo / 4294967296 >>> 0) >>> 0; + s[0][1] = lo >>> 0; + lo = s[1][1] + b_lo; + s[1][0] = s[1][0] + b_hi + (lo / 4294967296 >>> 0) >>> 0; + s[1][1] = lo >>> 0; + lo = s[2][1] + c_lo; + s[2][0] = s[2][0] + c_hi + (lo / 4294967296 >>> 0) >>> 0; + s[2][1] = lo >>> 0; + lo = s[3][1] + d_lo; + s[3][0] = s[3][0] + d_hi + (lo / 4294967296 >>> 0) >>> 0; + s[3][1] = lo >>> 0; + lo = s[4][1] + e_lo; + s[4][0] = s[4][0] + e_hi + (lo / 4294967296 >>> 0) >>> 0; + s[4][1] = lo >>> 0; + lo = s[5][1] + f_lo; + s[5][0] = s[5][0] + f_hi + (lo / 4294967296 >>> 0) >>> 0; + s[5][1] = lo >>> 0; + lo = s[6][1] + g_lo; + s[6][0] = s[6][0] + g_hi + (lo / 4294967296 >>> 0) >>> 0; + s[6][1] = lo >>> 0; + lo = s[7][1] + h_lo; + s[7][0] = s[7][0] + h_hi + (lo / 4294967296 >>> 0) >>> 0; + s[7][1] = lo >>> 0; + len -= 128; + } + } + } +}); + +// node_modules/node-forge/lib/asn1-validator.js +var require_asn1_validator = __commonJS({ + "node_modules/node-forge/lib/asn1-validator.js"(exports2) { + var forge3 = require_forge(); + require_asn1(); + var asn1 = forge3.asn1; + exports2.privateKeyValidator = { + name: "PrivateKeyInfo", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "PrivateKeyInfo.version", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: "privateKeyVersion" + }, { + name: "PrivateKeyInfo.privateKeyAlgorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "AlgorithmIdentifier.algorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "privateKeyOid" + }] + }, { + name: "PrivateKeyInfo", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OCTETSTRING, + constructed: false, + capture: "privateKey" + }] + }; + exports2.publicKeyValidator = { + name: "SubjectPublicKeyInfo", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + captureAsn1: "subjectPublicKeyInfo", + value: [ + { + name: "SubjectPublicKeyInfo.AlgorithmIdentifier", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: "AlgorithmIdentifier.algorithm", + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: "publicKeyOid" + }] + }, + { + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.BITSTRING, + constructed: false, + composed: true, + captureBitStringValue: "ed25519PublicKey" + } + ] + }; + } +}); + +// node_modules/node-forge/lib/ed25519.js +var require_ed25519 = __commonJS({ + "node_modules/node-forge/lib/ed25519.js"(exports2, module2) { + var forge3 = require_forge(); + require_jsbn(); + require_random(); + require_sha512(); + require_util(); + var asn1Validator = require_asn1_validator(); + var publicKeyValidator = asn1Validator.publicKeyValidator; + var privateKeyValidator = asn1Validator.privateKeyValidator; + if (typeof BigInteger === "undefined") { + BigInteger = forge3.jsbn.BigInteger; + } + var BigInteger; + var ByteBuffer = forge3.util.ByteBuffer; + var NativeBuffer = typeof Buffer === "undefined" ? Uint8Array : Buffer; + forge3.pki = forge3.pki || {}; + module2.exports = forge3.pki.ed25519 = forge3.ed25519 = forge3.ed25519 || {}; + var ed25519 = forge3.ed25519; + ed25519.constants = {}; + ed25519.constants.PUBLIC_KEY_BYTE_LENGTH = 32; + ed25519.constants.PRIVATE_KEY_BYTE_LENGTH = 64; + ed25519.constants.SEED_BYTE_LENGTH = 32; + ed25519.constants.SIGN_BYTE_LENGTH = 64; + ed25519.constants.HASH_BYTE_LENGTH = 64; + ed25519.generateKeyPair = function(options) { + options = options || {}; + var seed = options.seed; + if (seed === void 0) { + seed = forge3.random.getBytesSync(ed25519.constants.SEED_BYTE_LENGTH); + } else if (typeof seed === "string") { + if (seed.length !== ed25519.constants.SEED_BYTE_LENGTH) { + throw new TypeError('"seed" must be ' + ed25519.constants.SEED_BYTE_LENGTH + " bytes in length."); + } + } else if (!(seed instanceof Uint8Array)) { + throw new TypeError('"seed" must be a node.js Buffer, Uint8Array, or a binary string.'); + } + seed = messageToNativeBuffer({ message: seed, encoding: "binary" }); + var pk = new NativeBuffer(ed25519.constants.PUBLIC_KEY_BYTE_LENGTH); + var sk = new NativeBuffer(ed25519.constants.PRIVATE_KEY_BYTE_LENGTH); + for (var i = 0; i < 32; ++i) { + sk[i] = seed[i]; + } + crypto_sign_keypair(pk, sk); + return { publicKey: pk, privateKey: sk }; + }; + ed25519.privateKeyFromAsn1 = function(obj) { + var capture = {}; + var errors = []; + var valid = forge3.asn1.validate(obj, privateKeyValidator, capture, errors); + if (!valid) { + var error = new Error("Invalid Key."); + error.errors = errors; + throw error; + } + var oid = forge3.asn1.derToOid(capture.privateKeyOid); + var ed25519Oid = forge3.oids.EdDSA25519; + if (oid !== ed25519Oid) { + throw new Error('Invalid OID "' + oid + '"; OID must be "' + ed25519Oid + '".'); + } + var privateKey = capture.privateKey; + var privateKeyBytes = messageToNativeBuffer({ + message: forge3.asn1.fromDer(privateKey).value, + encoding: "binary" + }); + return { privateKeyBytes }; + }; + ed25519.publicKeyFromAsn1 = function(obj) { + var capture = {}; + var errors = []; + var valid = forge3.asn1.validate(obj, publicKeyValidator, capture, errors); + if (!valid) { + var error = new Error("Invalid Key."); + error.errors = errors; + throw error; + } + var oid = forge3.asn1.derToOid(capture.publicKeyOid); + var ed25519Oid = forge3.oids.EdDSA25519; + if (oid !== ed25519Oid) { + throw new Error('Invalid OID "' + oid + '"; OID must be "' + ed25519Oid + '".'); + } + var publicKeyBytes = capture.ed25519PublicKey; + if (publicKeyBytes.length !== ed25519.constants.PUBLIC_KEY_BYTE_LENGTH) { + throw new Error("Key length is invalid."); + } + return messageToNativeBuffer({ + message: publicKeyBytes, + encoding: "binary" + }); + }; + ed25519.publicKeyFromPrivateKey = function(options) { + options = options || {}; + var privateKey = messageToNativeBuffer({ + message: options.privateKey, + encoding: "binary" + }); + if (privateKey.length !== ed25519.constants.PRIVATE_KEY_BYTE_LENGTH) { + throw new TypeError('"options.privateKey" must have a byte length of ' + ed25519.constants.PRIVATE_KEY_BYTE_LENGTH); + } + var pk = new NativeBuffer(ed25519.constants.PUBLIC_KEY_BYTE_LENGTH); + for (var i = 0; i < pk.length; ++i) { + pk[i] = privateKey[32 + i]; + } + return pk; + }; + ed25519.sign = function(options) { + options = options || {}; + var msg = messageToNativeBuffer(options); + var privateKey = messageToNativeBuffer({ + message: options.privateKey, + encoding: "binary" + }); + if (privateKey.length === ed25519.constants.SEED_BYTE_LENGTH) { + var keyPair = ed25519.generateKeyPair({ seed: privateKey }); + privateKey = keyPair.privateKey; + } else if (privateKey.length !== ed25519.constants.PRIVATE_KEY_BYTE_LENGTH) { + throw new TypeError('"options.privateKey" must have a byte length of ' + ed25519.constants.SEED_BYTE_LENGTH + " or " + ed25519.constants.PRIVATE_KEY_BYTE_LENGTH); + } + var signedMsg = new NativeBuffer(ed25519.constants.SIGN_BYTE_LENGTH + msg.length); + crypto_sign(signedMsg, msg, msg.length, privateKey); + var sig = new NativeBuffer(ed25519.constants.SIGN_BYTE_LENGTH); + for (var i = 0; i < sig.length; ++i) { + sig[i] = signedMsg[i]; + } + return sig; + }; + ed25519.verify = function(options) { + options = options || {}; + var msg = messageToNativeBuffer(options); + if (options.signature === void 0) { + throw new TypeError('"options.signature" must be a node.js Buffer, a Uint8Array, a forge ByteBuffer, or a binary string.'); + } + var sig = messageToNativeBuffer({ + message: options.signature, + encoding: "binary" + }); + if (sig.length !== ed25519.constants.SIGN_BYTE_LENGTH) { + throw new TypeError('"options.signature" must have a byte length of ' + ed25519.constants.SIGN_BYTE_LENGTH); + } + var publicKey = messageToNativeBuffer({ + message: options.publicKey, + encoding: "binary" + }); + if (publicKey.length !== ed25519.constants.PUBLIC_KEY_BYTE_LENGTH) { + throw new TypeError('"options.publicKey" must have a byte length of ' + ed25519.constants.PUBLIC_KEY_BYTE_LENGTH); + } + var sm = new NativeBuffer(ed25519.constants.SIGN_BYTE_LENGTH + msg.length); + var m = new NativeBuffer(ed25519.constants.SIGN_BYTE_LENGTH + msg.length); + var i; + for (i = 0; i < ed25519.constants.SIGN_BYTE_LENGTH; ++i) { + sm[i] = sig[i]; + } + for (i = 0; i < msg.length; ++i) { + sm[i + ed25519.constants.SIGN_BYTE_LENGTH] = msg[i]; + } + return crypto_sign_open(m, sm, sm.length, publicKey) >= 0; + }; + function messageToNativeBuffer(options) { + var message2 = options.message; + if (message2 instanceof Uint8Array || message2 instanceof NativeBuffer) { + return message2; + } + var encoding = options.encoding; + if (message2 === void 0) { + if (options.md) { + message2 = options.md.digest().getBytes(); + encoding = "binary"; + } else { + throw new TypeError('"options.message" or "options.md" not specified.'); + } + } + if (typeof message2 === "string" && !encoding) { + throw new TypeError('"options.encoding" must be "binary" or "utf8".'); + } + if (typeof message2 === "string") { + if (typeof Buffer !== "undefined") { + return Buffer.from(message2, encoding); + } + message2 = new ByteBuffer(message2, encoding); + } else if (!(message2 instanceof ByteBuffer)) { + throw new TypeError('"options.message" must be a node.js Buffer, a Uint8Array, a forge ByteBuffer, or a string with "options.encoding" specifying its encoding.'); + } + var buffer = new NativeBuffer(message2.length()); + for (var i = 0; i < buffer.length; ++i) { + buffer[i] = message2.at(i); + } + return buffer; + } + var gf0 = gf(); + var gf1 = gf([1]); + var D = gf([ + 30883, + 4953, + 19914, + 30187, + 55467, + 16705, + 2637, + 112, + 59544, + 30585, + 16505, + 36039, + 65139, + 11119, + 27886, + 20995 + ]); + var D2 = gf([ + 61785, + 9906, + 39828, + 60374, + 45398, + 33411, + 5274, + 224, + 53552, + 61171, + 33010, + 6542, + 64743, + 22239, + 55772, + 9222 + ]); + var X = gf([ + 54554, + 36645, + 11616, + 51542, + 42930, + 38181, + 51040, + 26924, + 56412, + 64982, + 57905, + 49316, + 21502, + 52590, + 14035, + 8553 + ]); + var Y = gf([ + 26200, + 26214, + 26214, + 26214, + 26214, + 26214, + 26214, + 26214, + 26214, + 26214, + 26214, + 26214, + 26214, + 26214, + 26214, + 26214 + ]); + var L = new Float64Array([ + 237, + 211, + 245, + 92, + 26, + 99, + 18, + 88, + 214, + 156, + 247, + 162, + 222, + 249, + 222, + 20, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16 + ]); + var I = gf([ + 41136, + 18958, + 6951, + 50414, + 58488, + 44335, + 6150, + 12099, + 55207, + 15867, + 153, + 11085, + 57099, + 20417, + 9344, + 11139 + ]); + function sha512(msg, msgLen) { + var md = forge3.md.sha512.create(); + var buffer = new ByteBuffer(msg); + md.update(buffer.getBytes(msgLen), "binary"); + var hash = md.digest().getBytes(); + if (typeof Buffer !== "undefined") { + return Buffer.from(hash, "binary"); + } + var out = new NativeBuffer(ed25519.constants.HASH_BYTE_LENGTH); + for (var i = 0; i < 64; ++i) { + out[i] = hash.charCodeAt(i); + } + return out; + } + function crypto_sign_keypair(pk, sk) { + var p = [gf(), gf(), gf(), gf()]; + var i; + var d = sha512(sk, 32); + d[0] &= 248; + d[31] &= 127; + d[31] |= 64; + scalarbase(p, d); + pack(pk, p); + for (i = 0; i < 32; ++i) { + sk[i + 32] = pk[i]; + } + return 0; + } + function crypto_sign(sm, m, n, sk) { + var i, j, x = new Float64Array(64); + var p = [gf(), gf(), gf(), gf()]; + var d = sha512(sk, 32); + d[0] &= 248; + d[31] &= 127; + d[31] |= 64; + var smlen = n + 64; + for (i = 0; i < n; ++i) { + sm[64 + i] = m[i]; + } + for (i = 0; i < 32; ++i) { + sm[32 + i] = d[32 + i]; + } + var r = sha512(sm.subarray(32), n + 32); + reduce(r); + scalarbase(p, r); + pack(sm, p); + for (i = 32; i < 64; ++i) { + sm[i] = sk[i]; + } + var h = sha512(sm, n + 64); + reduce(h); + for (i = 32; i < 64; ++i) { + x[i] = 0; + } + for (i = 0; i < 32; ++i) { + x[i] = r[i]; + } + for (i = 0; i < 32; ++i) { + for (j = 0; j < 32; j++) { + x[i + j] += h[i] * d[j]; + } + } + modL(sm.subarray(32), x); + return smlen; + } + function crypto_sign_open(m, sm, n, pk) { + var i, mlen; + var t = new NativeBuffer(32); + var p = [gf(), gf(), gf(), gf()], q = [gf(), gf(), gf(), gf()]; + mlen = -1; + if (n < 64) { + return -1; + } + if (unpackneg(q, pk)) { + return -1; + } + for (i = 0; i < n; ++i) { + m[i] = sm[i]; + } + for (i = 0; i < 32; ++i) { + m[i + 32] = pk[i]; + } + var h = sha512(m, n); + reduce(h); + scalarmult(p, q, h); + scalarbase(q, sm.subarray(32)); + add(p, q); + pack(t, p); + n -= 64; + if (crypto_verify_32(sm, 0, t, 0)) { + for (i = 0; i < n; ++i) { + m[i] = 0; + } + return -1; + } + for (i = 0; i < n; ++i) { + m[i] = sm[i + 64]; + } + mlen = n; + return mlen; + } + function modL(r, x) { + var carry, i, j, k; + for (i = 63; i >= 32; --i) { + carry = 0; + for (j = i - 32, k = i - 12; j < k; ++j) { + x[j] += carry - 16 * x[i] * L[j - (i - 32)]; + carry = x[j] + 128 >> 8; + x[j] -= carry * 256; + } + x[j] += carry; + x[i] = 0; + } + carry = 0; + for (j = 0; j < 32; ++j) { + x[j] += carry - (x[31] >> 4) * L[j]; + carry = x[j] >> 8; + x[j] &= 255; + } + for (j = 0; j < 32; ++j) { + x[j] -= carry * L[j]; + } + for (i = 0; i < 32; ++i) { + x[i + 1] += x[i] >> 8; + r[i] = x[i] & 255; + } + } + function reduce(r) { + var x = new Float64Array(64); + for (var i = 0; i < 64; ++i) { + x[i] = r[i]; + r[i] = 0; + } + modL(r, x); + } + function add(p, q) { + var a = gf(), b = gf(), c = gf(), d = gf(), e = gf(), f = gf(), g = gf(), h = gf(), t = gf(); + Z(a, p[1], p[0]); + Z(t, q[1], q[0]); + M(a, a, t); + A(b, p[0], p[1]); + A(t, q[0], q[1]); + M(b, b, t); + M(c, p[3], q[3]); + M(c, c, D2); + M(d, p[2], q[2]); + A(d, d, d); + Z(e, b, a); + Z(f, d, c); + A(g, d, c); + A(h, b, a); + M(p[0], e, f); + M(p[1], h, g); + M(p[2], g, f); + M(p[3], e, h); + } + function cswap(p, q, b) { + for (var i = 0; i < 4; ++i) { + sel25519(p[i], q[i], b); + } + } + function pack(r, p) { + var tx = gf(), ty = gf(), zi = gf(); + inv25519(zi, p[2]); + M(tx, p[0], zi); + M(ty, p[1], zi); + pack25519(r, ty); + r[31] ^= par25519(tx) << 7; + } + function pack25519(o, n) { + var i, j, b; + var m = gf(), t = gf(); + for (i = 0; i < 16; ++i) { + t[i] = n[i]; + } + car25519(t); + car25519(t); + car25519(t); + for (j = 0; j < 2; ++j) { + m[0] = t[0] - 65517; + for (i = 1; i < 15; ++i) { + m[i] = t[i] - 65535 - (m[i - 1] >> 16 & 1); + m[i - 1] &= 65535; + } + m[15] = t[15] - 32767 - (m[14] >> 16 & 1); + b = m[15] >> 16 & 1; + m[14] &= 65535; + sel25519(t, m, 1 - b); + } + for (i = 0; i < 16; i++) { + o[2 * i] = t[i] & 255; + o[2 * i + 1] = t[i] >> 8; + } + } + function unpackneg(r, p) { + var t = gf(), chk = gf(), num = gf(), den = gf(), den2 = gf(), den4 = gf(), den6 = gf(); + set25519(r[2], gf1); + unpack25519(r[1], p); + S(num, r[1]); + M(den, num, D); + Z(num, num, r[2]); + A(den, r[2], den); + S(den2, den); + S(den4, den2); + M(den6, den4, den2); + M(t, den6, num); + M(t, t, den); + pow2523(t, t); + M(t, t, num); + M(t, t, den); + M(t, t, den); + M(r[0], t, den); + S(chk, r[0]); + M(chk, chk, den); + if (neq25519(chk, num)) { + M(r[0], r[0], I); + } + S(chk, r[0]); + M(chk, chk, den); + if (neq25519(chk, num)) { + return -1; + } + if (par25519(r[0]) === p[31] >> 7) { + Z(r[0], gf0, r[0]); + } + M(r[3], r[0], r[1]); + return 0; + } + function unpack25519(o, n) { + var i; + for (i = 0; i < 16; ++i) { + o[i] = n[2 * i] + (n[2 * i + 1] << 8); + } + o[15] &= 32767; + } + function pow2523(o, i) { + var c = gf(); + var a; + for (a = 0; a < 16; ++a) { + c[a] = i[a]; + } + for (a = 250; a >= 0; --a) { + S(c, c); + if (a !== 1) { + M(c, c, i); + } + } + for (a = 0; a < 16; ++a) { + o[a] = c[a]; + } + } + function neq25519(a, b) { + var c = new NativeBuffer(32); + var d = new NativeBuffer(32); + pack25519(c, a); + pack25519(d, b); + return crypto_verify_32(c, 0, d, 0); + } + function crypto_verify_32(x, xi, y, yi) { + return vn(x, xi, y, yi, 32); + } + function vn(x, xi, y, yi, n) { + var i, d = 0; + for (i = 0; i < n; ++i) { + d |= x[xi + i] ^ y[yi + i]; + } + return (1 & d - 1 >>> 8) - 1; + } + function par25519(a) { + var d = new NativeBuffer(32); + pack25519(d, a); + return d[0] & 1; + } + function scalarmult(p, q, s) { + var b, i; + set25519(p[0], gf0); + set25519(p[1], gf1); + set25519(p[2], gf1); + set25519(p[3], gf0); + for (i = 255; i >= 0; --i) { + b = s[i / 8 | 0] >> (i & 7) & 1; + cswap(p, q, b); + add(q, p); + add(p, p); + cswap(p, q, b); + } + } + function scalarbase(p, s) { + var q = [gf(), gf(), gf(), gf()]; + set25519(q[0], X); + set25519(q[1], Y); + set25519(q[2], gf1); + M(q[3], X, Y); + scalarmult(p, q, s); + } + function set25519(r, a) { + var i; + for (i = 0; i < 16; i++) { + r[i] = a[i] | 0; + } + } + function inv25519(o, i) { + var c = gf(); + var a; + for (a = 0; a < 16; ++a) { + c[a] = i[a]; + } + for (a = 253; a >= 0; --a) { + S(c, c); + if (a !== 2 && a !== 4) { + M(c, c, i); + } + } + for (a = 0; a < 16; ++a) { + o[a] = c[a]; + } + } + function car25519(o) { + var i, v, c = 1; + for (i = 0; i < 16; ++i) { + v = o[i] + c + 65535; + c = Math.floor(v / 65536); + o[i] = v - c * 65536; + } + o[0] += c - 1 + 37 * (c - 1); + } + function sel25519(p, q, b) { + var t, c = ~(b - 1); + for (var i = 0; i < 16; ++i) { + t = c & (p[i] ^ q[i]); + p[i] ^= t; + q[i] ^= t; + } + } + function gf(init) { + var i, r = new Float64Array(16); + if (init) { + for (i = 0; i < init.length; ++i) { + r[i] = init[i]; + } + } + return r; + } + function A(o, a, b) { + for (var i = 0; i < 16; ++i) { + o[i] = a[i] + b[i]; + } + } + function Z(o, a, b) { + for (var i = 0; i < 16; ++i) { + o[i] = a[i] - b[i]; + } + } + function S(o, a) { + M(o, a, a); + } + function M(o, a, b) { + var v, c, t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0, t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0, t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0, b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3], b4 = b[4], b5 = b[5], b6 = b[6], b7 = b[7], b8 = b[8], b9 = b[9], b10 = b[10], b11 = b[11], b12 = b[12], b13 = b[13], b14 = b[14], b15 = b[15]; + v = a[0]; + t0 += v * b0; + t1 += v * b1; + t2 += v * b2; + t3 += v * b3; + t4 += v * b4; + t5 += v * b5; + t6 += v * b6; + t7 += v * b7; + t8 += v * b8; + t9 += v * b9; + t10 += v * b10; + t11 += v * b11; + t12 += v * b12; + t13 += v * b13; + t14 += v * b14; + t15 += v * b15; + v = a[1]; + t1 += v * b0; + t2 += v * b1; + t3 += v * b2; + t4 += v * b3; + t5 += v * b4; + t6 += v * b5; + t7 += v * b6; + t8 += v * b7; + t9 += v * b8; + t10 += v * b9; + t11 += v * b10; + t12 += v * b11; + t13 += v * b12; + t14 += v * b13; + t15 += v * b14; + t16 += v * b15; + v = a[2]; + t2 += v * b0; + t3 += v * b1; + t4 += v * b2; + t5 += v * b3; + t6 += v * b4; + t7 += v * b5; + t8 += v * b6; + t9 += v * b7; + t10 += v * b8; + t11 += v * b9; + t12 += v * b10; + t13 += v * b11; + t14 += v * b12; + t15 += v * b13; + t16 += v * b14; + t17 += v * b15; + v = a[3]; + t3 += v * b0; + t4 += v * b1; + t5 += v * b2; + t6 += v * b3; + t7 += v * b4; + t8 += v * b5; + t9 += v * b6; + t10 += v * b7; + t11 += v * b8; + t12 += v * b9; + t13 += v * b10; + t14 += v * b11; + t15 += v * b12; + t16 += v * b13; + t17 += v * b14; + t18 += v * b15; + v = a[4]; + t4 += v * b0; + t5 += v * b1; + t6 += v * b2; + t7 += v * b3; + t8 += v * b4; + t9 += v * b5; + t10 += v * b6; + t11 += v * b7; + t12 += v * b8; + t13 += v * b9; + t14 += v * b10; + t15 += v * b11; + t16 += v * b12; + t17 += v * b13; + t18 += v * b14; + t19 += v * b15; + v = a[5]; + t5 += v * b0; + t6 += v * b1; + t7 += v * b2; + t8 += v * b3; + t9 += v * b4; + t10 += v * b5; + t11 += v * b6; + t12 += v * b7; + t13 += v * b8; + t14 += v * b9; + t15 += v * b10; + t16 += v * b11; + t17 += v * b12; + t18 += v * b13; + t19 += v * b14; + t20 += v * b15; + v = a[6]; + t6 += v * b0; + t7 += v * b1; + t8 += v * b2; + t9 += v * b3; + t10 += v * b4; + t11 += v * b5; + t12 += v * b6; + t13 += v * b7; + t14 += v * b8; + t15 += v * b9; + t16 += v * b10; + t17 += v * b11; + t18 += v * b12; + t19 += v * b13; + t20 += v * b14; + t21 += v * b15; + v = a[7]; + t7 += v * b0; + t8 += v * b1; + t9 += v * b2; + t10 += v * b3; + t11 += v * b4; + t12 += v * b5; + t13 += v * b6; + t14 += v * b7; + t15 += v * b8; + t16 += v * b9; + t17 += v * b10; + t18 += v * b11; + t19 += v * b12; + t20 += v * b13; + t21 += v * b14; + t22 += v * b15; + v = a[8]; + t8 += v * b0; + t9 += v * b1; + t10 += v * b2; + t11 += v * b3; + t12 += v * b4; + t13 += v * b5; + t14 += v * b6; + t15 += v * b7; + t16 += v * b8; + t17 += v * b9; + t18 += v * b10; + t19 += v * b11; + t20 += v * b12; + t21 += v * b13; + t22 += v * b14; + t23 += v * b15; + v = a[9]; + t9 += v * b0; + t10 += v * b1; + t11 += v * b2; + t12 += v * b3; + t13 += v * b4; + t14 += v * b5; + t15 += v * b6; + t16 += v * b7; + t17 += v * b8; + t18 += v * b9; + t19 += v * b10; + t20 += v * b11; + t21 += v * b12; + t22 += v * b13; + t23 += v * b14; + t24 += v * b15; + v = a[10]; + t10 += v * b0; + t11 += v * b1; + t12 += v * b2; + t13 += v * b3; + t14 += v * b4; + t15 += v * b5; + t16 += v * b6; + t17 += v * b7; + t18 += v * b8; + t19 += v * b9; + t20 += v * b10; + t21 += v * b11; + t22 += v * b12; + t23 += v * b13; + t24 += v * b14; + t25 += v * b15; + v = a[11]; + t11 += v * b0; + t12 += v * b1; + t13 += v * b2; + t14 += v * b3; + t15 += v * b4; + t16 += v * b5; + t17 += v * b6; + t18 += v * b7; + t19 += v * b8; + t20 += v * b9; + t21 += v * b10; + t22 += v * b11; + t23 += v * b12; + t24 += v * b13; + t25 += v * b14; + t26 += v * b15; + v = a[12]; + t12 += v * b0; + t13 += v * b1; + t14 += v * b2; + t15 += v * b3; + t16 += v * b4; + t17 += v * b5; + t18 += v * b6; + t19 += v * b7; + t20 += v * b8; + t21 += v * b9; + t22 += v * b10; + t23 += v * b11; + t24 += v * b12; + t25 += v * b13; + t26 += v * b14; + t27 += v * b15; + v = a[13]; + t13 += v * b0; + t14 += v * b1; + t15 += v * b2; + t16 += v * b3; + t17 += v * b4; + t18 += v * b5; + t19 += v * b6; + t20 += v * b7; + t21 += v * b8; + t22 += v * b9; + t23 += v * b10; + t24 += v * b11; + t25 += v * b12; + t26 += v * b13; + t27 += v * b14; + t28 += v * b15; + v = a[14]; + t14 += v * b0; + t15 += v * b1; + t16 += v * b2; + t17 += v * b3; + t18 += v * b4; + t19 += v * b5; + t20 += v * b6; + t21 += v * b7; + t22 += v * b8; + t23 += v * b9; + t24 += v * b10; + t25 += v * b11; + t26 += v * b12; + t27 += v * b13; + t28 += v * b14; + t29 += v * b15; + v = a[15]; + t15 += v * b0; + t16 += v * b1; + t17 += v * b2; + t18 += v * b3; + t19 += v * b4; + t20 += v * b5; + t21 += v * b6; + t22 += v * b7; + t23 += v * b8; + t24 += v * b9; + t25 += v * b10; + t26 += v * b11; + t27 += v * b12; + t28 += v * b13; + t29 += v * b14; + t30 += v * b15; + t0 += 38 * t16; + t1 += 38 * t17; + t2 += 38 * t18; + t3 += 38 * t19; + t4 += 38 * t20; + t5 += 38 * t21; + t6 += 38 * t22; + t7 += 38 * t23; + t8 += 38 * t24; + t9 += 38 * t25; + t10 += 38 * t26; + t11 += 38 * t27; + t12 += 38 * t28; + t13 += 38 * t29; + t14 += 38 * t30; + c = 1; + v = t0 + c + 65535; + c = Math.floor(v / 65536); + t0 = v - c * 65536; + v = t1 + c + 65535; + c = Math.floor(v / 65536); + t1 = v - c * 65536; + v = t2 + c + 65535; + c = Math.floor(v / 65536); + t2 = v - c * 65536; + v = t3 + c + 65535; + c = Math.floor(v / 65536); + t3 = v - c * 65536; + v = t4 + c + 65535; + c = Math.floor(v / 65536); + t4 = v - c * 65536; + v = t5 + c + 65535; + c = Math.floor(v / 65536); + t5 = v - c * 65536; + v = t6 + c + 65535; + c = Math.floor(v / 65536); + t6 = v - c * 65536; + v = t7 + c + 65535; + c = Math.floor(v / 65536); + t7 = v - c * 65536; + v = t8 + c + 65535; + c = Math.floor(v / 65536); + t8 = v - c * 65536; + v = t9 + c + 65535; + c = Math.floor(v / 65536); + t9 = v - c * 65536; + v = t10 + c + 65535; + c = Math.floor(v / 65536); + t10 = v - c * 65536; + v = t11 + c + 65535; + c = Math.floor(v / 65536); + t11 = v - c * 65536; + v = t12 + c + 65535; + c = Math.floor(v / 65536); + t12 = v - c * 65536; + v = t13 + c + 65535; + c = Math.floor(v / 65536); + t13 = v - c * 65536; + v = t14 + c + 65535; + c = Math.floor(v / 65536); + t14 = v - c * 65536; + v = t15 + c + 65535; + c = Math.floor(v / 65536); + t15 = v - c * 65536; + t0 += c - 1 + 37 * (c - 1); + c = 1; + v = t0 + c + 65535; + c = Math.floor(v / 65536); + t0 = v - c * 65536; + v = t1 + c + 65535; + c = Math.floor(v / 65536); + t1 = v - c * 65536; + v = t2 + c + 65535; + c = Math.floor(v / 65536); + t2 = v - c * 65536; + v = t3 + c + 65535; + c = Math.floor(v / 65536); + t3 = v - c * 65536; + v = t4 + c + 65535; + c = Math.floor(v / 65536); + t4 = v - c * 65536; + v = t5 + c + 65535; + c = Math.floor(v / 65536); + t5 = v - c * 65536; + v = t6 + c + 65535; + c = Math.floor(v / 65536); + t6 = v - c * 65536; + v = t7 + c + 65535; + c = Math.floor(v / 65536); + t7 = v - c * 65536; + v = t8 + c + 65535; + c = Math.floor(v / 65536); + t8 = v - c * 65536; + v = t9 + c + 65535; + c = Math.floor(v / 65536); + t9 = v - c * 65536; + v = t10 + c + 65535; + c = Math.floor(v / 65536); + t10 = v - c * 65536; + v = t11 + c + 65535; + c = Math.floor(v / 65536); + t11 = v - c * 65536; + v = t12 + c + 65535; + c = Math.floor(v / 65536); + t12 = v - c * 65536; + v = t13 + c + 65535; + c = Math.floor(v / 65536); + t13 = v - c * 65536; + v = t14 + c + 65535; + c = Math.floor(v / 65536); + t14 = v - c * 65536; + v = t15 + c + 65535; + c = Math.floor(v / 65536); + t15 = v - c * 65536; + t0 += c - 1 + 37 * (c - 1); + o[0] = t0; + o[1] = t1; + o[2] = t2; + o[3] = t3; + o[4] = t4; + o[5] = t5; + o[6] = t6; + o[7] = t7; + o[8] = t8; + o[9] = t9; + o[10] = t10; + o[11] = t11; + o[12] = t12; + o[13] = t13; + o[14] = t14; + o[15] = t15; + } + } +}); + +// node_modules/node-forge/lib/kem.js +var require_kem = __commonJS({ + "node_modules/node-forge/lib/kem.js"(exports2, module2) { + var forge3 = require_forge(); + require_util(); + require_random(); + require_jsbn(); + module2.exports = forge3.kem = forge3.kem || {}; + var BigInteger = forge3.jsbn.BigInteger; + forge3.kem.rsa = {}; + forge3.kem.rsa.create = function(kdf, options) { + options = options || {}; + var prng = options.prng || forge3.random; + var kem = {}; + kem.encrypt = function(publicKey, keyLength) { + var byteLength = Math.ceil(publicKey.n.bitLength() / 8); + var r; + do { + r = new BigInteger(forge3.util.bytesToHex(prng.getBytesSync(byteLength)), 16).mod(publicKey.n); + } while (r.compareTo(BigInteger.ONE) <= 0); + r = forge3.util.hexToBytes(r.toString(16)); + var zeros = byteLength - r.length; + if (zeros > 0) { + r = forge3.util.fillString(String.fromCharCode(0), zeros) + r; + } + var encapsulation = publicKey.encrypt(r, "NONE"); + var key = kdf.generate(r, keyLength); + return { encapsulation, key }; + }; + kem.decrypt = function(privateKey, encapsulation, keyLength) { + var r = privateKey.decrypt(encapsulation, "NONE"); + return kdf.generate(r, keyLength); + }; + return kem; + }; + forge3.kem.kdf1 = function(md, digestLength) { + _createKDF(this, md, 0, digestLength || md.digestLength); + }; + forge3.kem.kdf2 = function(md, digestLength) { + _createKDF(this, md, 1, digestLength || md.digestLength); + }; + function _createKDF(kdf, md, counterStart, digestLength) { + kdf.generate = function(x, length) { + var key = new forge3.util.ByteBuffer(); + var k = Math.ceil(length / digestLength) + counterStart; + var c = new forge3.util.ByteBuffer(); + for (var i = counterStart; i < k; ++i) { + c.putInt32(i); + md.start(); + md.update(x + c.getBytes()); + var hash = md.digest(); + key.putBytes(hash.getBytes(digestLength)); + } + key.truncate(key.length() - length); + return key.getBytes(); + }; + } + } +}); + +// node_modules/node-forge/lib/log.js +var require_log = __commonJS({ + "node_modules/node-forge/lib/log.js"(exports2, module2) { + var forge3 = require_forge(); + require_util(); + module2.exports = forge3.log = forge3.log || {}; + forge3.log.levels = [ + "none", + "error", + "warning", + "info", + "debug", + "verbose", + "max" + ]; + var sLevelInfo = {}; + var sLoggers = []; + var sConsoleLogger = null; + forge3.log.LEVEL_LOCKED = 1 << 1; + forge3.log.NO_LEVEL_CHECK = 1 << 2; + forge3.log.INTERPOLATE = 1 << 3; + for (i = 0; i < forge3.log.levels.length; ++i) { + level = forge3.log.levels[i]; + sLevelInfo[level] = { + index: i, + name: level.toUpperCase() + }; + } + var level; + var i; + forge3.log.logMessage = function(message2) { + var messageLevelIndex = sLevelInfo[message2.level].index; + for (var i2 = 0; i2 < sLoggers.length; ++i2) { + var logger2 = sLoggers[i2]; + if (logger2.flags & forge3.log.NO_LEVEL_CHECK) { + logger2.f(message2); + } else { + var loggerLevelIndex = sLevelInfo[logger2.level].index; + if (messageLevelIndex <= loggerLevelIndex) { + logger2.f(logger2, message2); + } + } + } + }; + forge3.log.prepareStandard = function(message2) { + if (!("standard" in message2)) { + message2.standard = sLevelInfo[message2.level].name + " [" + message2.category + "] " + message2.message; + } + }; + forge3.log.prepareFull = function(message2) { + if (!("full" in message2)) { + var args2 = [message2.message]; + args2 = args2.concat([]); + message2.full = forge3.util.format.apply(this, args2); + } + }; + forge3.log.prepareStandardFull = function(message2) { + if (!("standardFull" in message2)) { + forge3.log.prepareStandard(message2); + message2.standardFull = message2.standard; + } + }; + if (true) { + levels = ["error", "warning", "info", "debug", "verbose"]; + for (i = 0; i < levels.length; ++i) { + (function(level2) { + forge3.log[level2] = function(category, message2) { + var args2 = Array.prototype.slice.call(arguments).slice(2); + var msg = { + timestamp: new Date(), + level: level2, + category, + message: message2, + "arguments": args2 + }; + forge3.log.logMessage(msg); + }; + })(levels[i]); + } + } + var levels; + var i; + forge3.log.makeLogger = function(logFunction) { + var logger2 = { + flags: 0, + f: logFunction + }; + forge3.log.setLevel(logger2, "none"); + return logger2; + }; + forge3.log.setLevel = function(logger2, level2) { + var rval = false; + if (logger2 && !(logger2.flags & forge3.log.LEVEL_LOCKED)) { + for (var i2 = 0; i2 < forge3.log.levels.length; ++i2) { + var aValidLevel = forge3.log.levels[i2]; + if (level2 == aValidLevel) { + logger2.level = level2; + rval = true; + break; + } + } + } + return rval; + }; + forge3.log.lock = function(logger2, lock2) { + if (typeof lock2 === "undefined" || lock2) { + logger2.flags |= forge3.log.LEVEL_LOCKED; + } else { + logger2.flags &= ~forge3.log.LEVEL_LOCKED; + } + }; + forge3.log.addLogger = function(logger2) { + sLoggers.push(logger2); + }; + if (typeof console !== "undefined" && "log" in console) { + if (console.error && console.warn && console.info && console.debug) { + levelHandlers = { + error: console.error, + warning: console.warn, + info: console.info, + debug: console.debug, + verbose: console.debug + }; + f = function(logger2, message2) { + forge3.log.prepareStandard(message2); + var handler = levelHandlers[message2.level]; + var args2 = [message2.standard]; + args2 = args2.concat(message2["arguments"].slice()); + handler.apply(console, args2); + }; + logger = forge3.log.makeLogger(f); + } else { + f = function(logger2, message2) { + forge3.log.prepareStandardFull(message2); + console.log(message2.standardFull); + }; + logger = forge3.log.makeLogger(f); + } + forge3.log.setLevel(logger, "debug"); + forge3.log.addLogger(logger); + sConsoleLogger = logger; + } else { + console = { + log: function() { + } + }; + } + var logger; + var levelHandlers; + var f; + if (sConsoleLogger !== null && typeof window !== "undefined" && window.location) { + query = new URL(window.location.href).searchParams; + if (query.has("console.level")) { + forge3.log.setLevel(sConsoleLogger, query.get("console.level").slice(-1)[0]); + } + if (query.has("console.lock")) { + lock = query.get("console.lock").slice(-1)[0]; + if (lock == "true") { + forge3.log.lock(sConsoleLogger); + } + } + } + var query; + var lock; + forge3.log.consoleLogger = sConsoleLogger; + } +}); + +// node_modules/node-forge/lib/md.all.js +var require_md_all = __commonJS({ + "node_modules/node-forge/lib/md.all.js"(exports2, module2) { + module2.exports = require_md(); + require_md5(); + require_sha1(); + require_sha256(); + require_sha512(); + } +}); + +// node_modules/node-forge/lib/pkcs7.js +var require_pkcs7 = __commonJS({ + "node_modules/node-forge/lib/pkcs7.js"(exports2, module2) { + var forge3 = require_forge(); + require_aes(); + require_asn1(); + require_des(); + require_oids(); + require_pem(); + require_pkcs7asn1(); + require_random(); + require_util(); + require_x509(); + var asn1 = forge3.asn1; + var p7 = module2.exports = forge3.pkcs7 = forge3.pkcs7 || {}; + p7.messageFromPem = function(pem) { + var msg = forge3.pem.decode(pem)[0]; + if (msg.type !== "PKCS7") { + var error = new Error('Could not convert PKCS#7 message from PEM; PEM header type is not "PKCS#7".'); + error.headerType = msg.type; + throw error; + } + if (msg.procType && msg.procType.type === "ENCRYPTED") { + throw new Error("Could not convert PKCS#7 message from PEM; PEM is encrypted."); + } + var obj = asn1.fromDer(msg.body); + return p7.messageFromAsn1(obj); + }; + p7.messageToPem = function(msg, maxline) { + var pemObj = { + type: "PKCS7", + body: asn1.toDer(msg.toAsn1()).getBytes() + }; + return forge3.pem.encode(pemObj, { maxline }); + }; + p7.messageFromAsn1 = function(obj) { + var capture = {}; + var errors = []; + if (!asn1.validate(obj, p7.asn1.contentInfoValidator, capture, errors)) { + var error = new Error("Cannot read PKCS#7 message. ASN.1 object is not an PKCS#7 ContentInfo."); + error.errors = errors; + throw error; + } + var contentType = asn1.derToOid(capture.contentType); + var msg; + switch (contentType) { + case forge3.pki.oids.envelopedData: + msg = p7.createEnvelopedData(); + break; + case forge3.pki.oids.encryptedData: + msg = p7.createEncryptedData(); + break; + case forge3.pki.oids.signedData: + msg = p7.createSignedData(); + break; + default: + throw new Error("Cannot read PKCS#7 message. ContentType with OID " + contentType + " is not (yet) supported."); + } + msg.fromAsn1(capture.content.value[0]); + return msg; + }; + p7.createSignedData = function() { + var msg = null; + msg = { + type: forge3.pki.oids.signedData, + version: 1, + certificates: [], + crls: [], + signers: [], + digestAlgorithmIdentifiers: [], + contentInfo: null, + signerInfos: [], + fromAsn1: function(obj) { + _fromAsn1(msg, obj, p7.asn1.signedDataValidator); + msg.certificates = []; + msg.crls = []; + msg.digestAlgorithmIdentifiers = []; + msg.contentInfo = null; + msg.signerInfos = []; + if (msg.rawCapture.certificates) { + var certs = msg.rawCapture.certificates.value; + for (var i = 0; i < certs.length; ++i) { + msg.certificates.push(forge3.pki.certificateFromAsn1(certs[i])); + } + } + }, + toAsn1: function() { + if (!msg.contentInfo) { + msg.sign(); + } + var certs = []; + for (var i = 0; i < msg.certificates.length; ++i) { + certs.push(forge3.pki.certificateToAsn1(msg.certificates[i])); + } + var crls = []; + var signedData = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, asn1.integerToDer(msg.version).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, msg.digestAlgorithmIdentifiers), + msg.contentInfo + ]) + ]); + if (certs.length > 0) { + signedData.value[0].value.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, certs)); + } + if (crls.length > 0) { + signedData.value[0].value.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, crls)); + } + signedData.value[0].value.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, msg.signerInfos)); + return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(msg.type).getBytes()), + signedData + ]); + }, + addSigner: function(signer) { + var issuer = signer.issuer; + var serialNumber = signer.serialNumber; + if (signer.certificate) { + var cert = signer.certificate; + if (typeof cert === "string") { + cert = forge3.pki.certificateFromPem(cert); + } + issuer = cert.issuer.attributes; + serialNumber = cert.serialNumber; + } + var key = signer.key; + if (!key) { + throw new Error("Could not add PKCS#7 signer; no private key specified."); + } + if (typeof key === "string") { + key = forge3.pki.privateKeyFromPem(key); + } + var digestAlgorithm = signer.digestAlgorithm || forge3.pki.oids.sha1; + switch (digestAlgorithm) { + case forge3.pki.oids.sha1: + case forge3.pki.oids.sha256: + case forge3.pki.oids.sha384: + case forge3.pki.oids.sha512: + case forge3.pki.oids.md5: + break; + default: + throw new Error("Could not add PKCS#7 signer; unknown message digest algorithm: " + digestAlgorithm); + } + var authenticatedAttributes = signer.authenticatedAttributes || []; + if (authenticatedAttributes.length > 0) { + var contentType = false; + var messageDigest = false; + for (var i = 0; i < authenticatedAttributes.length; ++i) { + var attr = authenticatedAttributes[i]; + if (!contentType && attr.type === forge3.pki.oids.contentType) { + contentType = true; + if (messageDigest) { + break; + } + continue; + } + if (!messageDigest && attr.type === forge3.pki.oids.messageDigest) { + messageDigest = true; + if (contentType) { + break; + } + continue; + } + } + if (!contentType || !messageDigest) { + throw new Error("Invalid signer.authenticatedAttributes. If signer.authenticatedAttributes is specified, then it must contain at least two attributes, PKCS #9 content-type and PKCS #9 message-digest."); + } + } + msg.signers.push({ + key, + version: 1, + issuer, + serialNumber, + digestAlgorithm, + signatureAlgorithm: forge3.pki.oids.rsaEncryption, + signature: null, + authenticatedAttributes, + unauthenticatedAttributes: [] + }); + }, + sign: function(options) { + options = options || {}; + if (typeof msg.content !== "object" || msg.contentInfo === null) { + msg.contentInfo = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(forge3.pki.oids.data).getBytes()) + ]); + if ("content" in msg) { + var content; + if (msg.content instanceof forge3.util.ByteBuffer) { + content = msg.content.bytes(); + } else if (typeof msg.content === "string") { + content = forge3.util.encodeUtf8(msg.content); + } + if (options.detached) { + msg.detachedContent = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, content); + } else { + msg.contentInfo.value.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, content) + ])); + } + } + } + if (msg.signers.length === 0) { + return; + } + var mds = addDigestAlgorithmIds(); + addSignerInfos(mds); + }, + verify: function() { + throw new Error("PKCS#7 signature verification not yet implemented."); + }, + addCertificate: function(cert) { + if (typeof cert === "string") { + cert = forge3.pki.certificateFromPem(cert); + } + msg.certificates.push(cert); + }, + addCertificateRevokationList: function(crl) { + throw new Error("PKCS#7 CRL support not yet implemented."); + } + }; + return msg; + function addDigestAlgorithmIds() { + var mds = {}; + for (var i = 0; i < msg.signers.length; ++i) { + var signer = msg.signers[i]; + var oid = signer.digestAlgorithm; + if (!(oid in mds)) { + mds[oid] = forge3.md[forge3.pki.oids[oid]].create(); + } + if (signer.authenticatedAttributes.length === 0) { + signer.md = mds[oid]; + } else { + signer.md = forge3.md[forge3.pki.oids[oid]].create(); + } + } + msg.digestAlgorithmIdentifiers = []; + for (var oid in mds) { + msg.digestAlgorithmIdentifiers.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(oid).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, "") + ])); + } + return mds; + } + function addSignerInfos(mds) { + var content; + if (msg.detachedContent) { + content = msg.detachedContent; + } else { + content = msg.contentInfo.value[1]; + content = content.value[0]; + } + if (!content) { + throw new Error("Could not sign PKCS#7 message; there is no content to sign."); + } + var contentType = asn1.derToOid(msg.contentInfo.value[0].value); + var bytes = asn1.toDer(content); + bytes.getByte(); + asn1.getBerValueLength(bytes); + bytes = bytes.getBytes(); + for (var oid in mds) { + mds[oid].start().update(bytes); + } + var signingTime = new Date(); + for (var i = 0; i < msg.signers.length; ++i) { + var signer = msg.signers[i]; + if (signer.authenticatedAttributes.length === 0) { + if (contentType !== forge3.pki.oids.data) { + throw new Error("Invalid signer; authenticatedAttributes must be present when the ContentInfo content type is not PKCS#7 Data."); + } + } else { + signer.authenticatedAttributesAsn1 = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, []); + var attrsAsn1 = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, []); + for (var ai = 0; ai < signer.authenticatedAttributes.length; ++ai) { + var attr = signer.authenticatedAttributes[ai]; + if (attr.type === forge3.pki.oids.messageDigest) { + attr.value = mds[signer.digestAlgorithm].digest(); + } else if (attr.type === forge3.pki.oids.signingTime) { + if (!attr.value) { + attr.value = signingTime; + } + } + attrsAsn1.value.push(_attributeToAsn1(attr)); + signer.authenticatedAttributesAsn1.value.push(_attributeToAsn1(attr)); + } + bytes = asn1.toDer(attrsAsn1).getBytes(); + signer.md.start().update(bytes); + } + signer.signature = signer.key.sign(signer.md, "RSASSA-PKCS1-V1_5"); + } + msg.signerInfos = _signersToAsn1(msg.signers); + } + }; + p7.createEncryptedData = function() { + var msg = null; + msg = { + type: forge3.pki.oids.encryptedData, + version: 0, + encryptedContent: { + algorithm: forge3.pki.oids["aes256-CBC"] + }, + fromAsn1: function(obj) { + _fromAsn1(msg, obj, p7.asn1.encryptedDataValidator); + }, + decrypt: function(key) { + if (key !== void 0) { + msg.encryptedContent.key = key; + } + _decryptContent(msg); + } + }; + return msg; + }; + p7.createEnvelopedData = function() { + var msg = null; + msg = { + type: forge3.pki.oids.envelopedData, + version: 0, + recipients: [], + encryptedContent: { + algorithm: forge3.pki.oids["aes256-CBC"] + }, + fromAsn1: function(obj) { + var capture = _fromAsn1(msg, obj, p7.asn1.envelopedDataValidator); + msg.recipients = _recipientsFromAsn1(capture.recipientInfos.value); + }, + toAsn1: function() { + return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(msg.type).getBytes()), + asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, asn1.integerToDer(msg.version).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, _recipientsToAsn1(msg.recipients)), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, _encryptedContentToAsn1(msg.encryptedContent)) + ]) + ]) + ]); + }, + findRecipient: function(cert) { + var sAttr = cert.issuer.attributes; + for (var i = 0; i < msg.recipients.length; ++i) { + var r = msg.recipients[i]; + var rAttr = r.issuer; + if (r.serialNumber !== cert.serialNumber) { + continue; + } + if (rAttr.length !== sAttr.length) { + continue; + } + var match = true; + for (var j = 0; j < sAttr.length; ++j) { + if (rAttr[j].type !== sAttr[j].type || rAttr[j].value !== sAttr[j].value) { + match = false; + break; + } + } + if (match) { + return r; + } + } + return null; + }, + decrypt: function(recipient, privKey) { + if (msg.encryptedContent.key === void 0 && recipient !== void 0 && privKey !== void 0) { + switch (recipient.encryptedContent.algorithm) { + case forge3.pki.oids.rsaEncryption: + case forge3.pki.oids.desCBC: + var key = privKey.decrypt(recipient.encryptedContent.content); + msg.encryptedContent.key = forge3.util.createBuffer(key); + break; + default: + throw new Error("Unsupported asymmetric cipher, OID " + recipient.encryptedContent.algorithm); + } + } + _decryptContent(msg); + }, + addRecipient: function(cert) { + msg.recipients.push({ + version: 0, + issuer: cert.issuer.attributes, + serialNumber: cert.serialNumber, + encryptedContent: { + algorithm: forge3.pki.oids.rsaEncryption, + key: cert.publicKey + } + }); + }, + encrypt: function(key, cipher) { + if (msg.encryptedContent.content === void 0) { + cipher = cipher || msg.encryptedContent.algorithm; + key = key || msg.encryptedContent.key; + var keyLen, ivLen, ciphFn; + switch (cipher) { + case forge3.pki.oids["aes128-CBC"]: + keyLen = 16; + ivLen = 16; + ciphFn = forge3.aes.createEncryptionCipher; + break; + case forge3.pki.oids["aes192-CBC"]: + keyLen = 24; + ivLen = 16; + ciphFn = forge3.aes.createEncryptionCipher; + break; + case forge3.pki.oids["aes256-CBC"]: + keyLen = 32; + ivLen = 16; + ciphFn = forge3.aes.createEncryptionCipher; + break; + case forge3.pki.oids["des-EDE3-CBC"]: + keyLen = 24; + ivLen = 8; + ciphFn = forge3.des.createEncryptionCipher; + break; + default: + throw new Error("Unsupported symmetric cipher, OID " + cipher); + } + if (key === void 0) { + key = forge3.util.createBuffer(forge3.random.getBytes(keyLen)); + } else if (key.length() != keyLen) { + throw new Error("Symmetric key has wrong length; got " + key.length() + " bytes, expected " + keyLen + "."); + } + msg.encryptedContent.algorithm = cipher; + msg.encryptedContent.key = key; + msg.encryptedContent.parameter = forge3.util.createBuffer(forge3.random.getBytes(ivLen)); + var ciph = ciphFn(key); + ciph.start(msg.encryptedContent.parameter.copy()); + ciph.update(msg.content); + if (!ciph.finish()) { + throw new Error("Symmetric encryption failed."); + } + msg.encryptedContent.content = ciph.output; + } + for (var i = 0; i < msg.recipients.length; ++i) { + var recipient = msg.recipients[i]; + if (recipient.encryptedContent.content !== void 0) { + continue; + } + switch (recipient.encryptedContent.algorithm) { + case forge3.pki.oids.rsaEncryption: + recipient.encryptedContent.content = recipient.encryptedContent.key.encrypt(msg.encryptedContent.key.data); + break; + default: + throw new Error("Unsupported asymmetric cipher, OID " + recipient.encryptedContent.algorithm); + } + } + } + }; + return msg; + }; + function _recipientFromAsn1(obj) { + var capture = {}; + var errors = []; + if (!asn1.validate(obj, p7.asn1.recipientInfoValidator, capture, errors)) { + var error = new Error("Cannot read PKCS#7 RecipientInfo. ASN.1 object is not an PKCS#7 RecipientInfo."); + error.errors = errors; + throw error; + } + return { + version: capture.version.charCodeAt(0), + issuer: forge3.pki.RDNAttributesAsArray(capture.issuer), + serialNumber: forge3.util.createBuffer(capture.serial).toHex(), + encryptedContent: { + algorithm: asn1.derToOid(capture.encAlgorithm), + parameter: capture.encParameter ? capture.encParameter.value : void 0, + content: capture.encKey + } + }; + } + function _recipientToAsn1(obj) { + return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, asn1.integerToDer(obj.version).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + forge3.pki.distinguishedNameToAsn1({ attributes: obj.issuer }), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, forge3.util.hexToBytes(obj.serialNumber)) + ]), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(obj.encryptedContent.algorithm).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, "") + ]), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, obj.encryptedContent.content) + ]); + } + function _recipientsFromAsn1(infos) { + var ret = []; + for (var i = 0; i < infos.length; ++i) { + ret.push(_recipientFromAsn1(infos[i])); + } + return ret; + } + function _recipientsToAsn1(recipients) { + var ret = []; + for (var i = 0; i < recipients.length; ++i) { + ret.push(_recipientToAsn1(recipients[i])); + } + return ret; + } + function _signerToAsn1(obj) { + var rval = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, asn1.integerToDer(obj.version).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + forge3.pki.distinguishedNameToAsn1({ attributes: obj.issuer }), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, forge3.util.hexToBytes(obj.serialNumber)) + ]), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(obj.digestAlgorithm).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, "") + ]) + ]); + if (obj.authenticatedAttributesAsn1) { + rval.value.push(obj.authenticatedAttributesAsn1); + } + rval.value.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(obj.signatureAlgorithm).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, "") + ])); + rval.value.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, obj.signature)); + if (obj.unauthenticatedAttributes.length > 0) { + var attrsAsn1 = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, []); + for (var i = 0; i < obj.unauthenticatedAttributes.length; ++i) { + var attr = obj.unauthenticatedAttributes[i]; + attrsAsn1.values.push(_attributeToAsn1(attr)); + } + rval.value.push(attrsAsn1); + } + return rval; + } + function _signersToAsn1(signers) { + var ret = []; + for (var i = 0; i < signers.length; ++i) { + ret.push(_signerToAsn1(signers[i])); + } + return ret; + } + function _attributeToAsn1(attr) { + var value; + if (attr.type === forge3.pki.oids.contentType) { + value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(attr.value).getBytes()); + } else if (attr.type === forge3.pki.oids.messageDigest) { + value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, attr.value.bytes()); + } else if (attr.type === forge3.pki.oids.signingTime) { + var jan_1_1950 = new Date("1950-01-01T00:00:00Z"); + var jan_1_2050 = new Date("2050-01-01T00:00:00Z"); + var date = attr.value; + if (typeof date === "string") { + var timestamp = Date.parse(date); + if (!isNaN(timestamp)) { + date = new Date(timestamp); + } else if (date.length === 13) { + date = asn1.utcTimeToDate(date); + } else { + date = asn1.generalizedTimeToDate(date); + } + } + if (date >= jan_1_1950 && date < jan_1_2050) { + value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.UTCTIME, false, asn1.dateToUtcTime(date)); + } else { + value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.GENERALIZEDTIME, false, asn1.dateToGeneralizedTime(date)); + } + } + return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(attr.type).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [ + value + ]) + ]); + } + function _encryptedContentToAsn1(ec) { + return [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(forge3.pki.oids.data).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, asn1.oidToDer(ec.algorithm).getBytes()), + !ec.parameter ? void 0 : asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, ec.parameter.getBytes()) + ]), + asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, ec.content.getBytes()) + ]) + ]; + } + function _fromAsn1(msg, obj, validator) { + var capture = {}; + var errors = []; + if (!asn1.validate(obj, validator, capture, errors)) { + var error = new Error("Cannot read PKCS#7 message. ASN.1 object is not a supported PKCS#7 message."); + error.errors = error; + throw error; + } + var contentType = asn1.derToOid(capture.contentType); + if (contentType !== forge3.pki.oids.data) { + throw new Error("Unsupported PKCS#7 message. Only wrapped ContentType Data supported."); + } + if (capture.encryptedContent) { + var content = ""; + if (forge3.util.isArray(capture.encryptedContent)) { + for (var i = 0; i < capture.encryptedContent.length; ++i) { + if (capture.encryptedContent[i].type !== asn1.Type.OCTETSTRING) { + throw new Error("Malformed PKCS#7 message, expecting encrypted content constructed of only OCTET STRING objects."); + } + content += capture.encryptedContent[i].value; + } + } else { + content = capture.encryptedContent; + } + msg.encryptedContent = { + algorithm: asn1.derToOid(capture.encAlgorithm), + parameter: forge3.util.createBuffer(capture.encParameter.value), + content: forge3.util.createBuffer(content) + }; + } + if (capture.content) { + var content = ""; + if (forge3.util.isArray(capture.content)) { + for (var i = 0; i < capture.content.length; ++i) { + if (capture.content[i].type !== asn1.Type.OCTETSTRING) { + throw new Error("Malformed PKCS#7 message, expecting content constructed of only OCTET STRING objects."); + } + content += capture.content[i].value; + } + } else { + content = capture.content; + } + msg.content = forge3.util.createBuffer(content); + } + msg.version = capture.version.charCodeAt(0); + msg.rawCapture = capture; + return capture; + } + function _decryptContent(msg) { + if (msg.encryptedContent.key === void 0) { + throw new Error("Symmetric key not available."); + } + if (msg.content === void 0) { + var ciph; + switch (msg.encryptedContent.algorithm) { + case forge3.pki.oids["aes128-CBC"]: + case forge3.pki.oids["aes192-CBC"]: + case forge3.pki.oids["aes256-CBC"]: + ciph = forge3.aes.createDecryptionCipher(msg.encryptedContent.key); + break; + case forge3.pki.oids["desCBC"]: + case forge3.pki.oids["des-EDE3-CBC"]: + ciph = forge3.des.createDecryptionCipher(msg.encryptedContent.key); + break; + default: + throw new Error("Unsupported symmetric cipher, OID " + msg.encryptedContent.algorithm); + } + ciph.start(msg.encryptedContent.parameter); + ciph.update(msg.encryptedContent.content); + if (!ciph.finish()) { + throw new Error("Symmetric decryption failed."); + } + msg.content = ciph.output; + } + } + } +}); + +// node_modules/node-forge/lib/ssh.js +var require_ssh = __commonJS({ + "node_modules/node-forge/lib/ssh.js"(exports2, module2) { + var forge3 = require_forge(); + require_aes(); + require_hmac(); + require_md5(); + require_sha1(); + require_util(); + var ssh = module2.exports = forge3.ssh = forge3.ssh || {}; + ssh.privateKeyToPutty = function(privateKey, passphrase, comment) { + comment = comment || ""; + passphrase = passphrase || ""; + var algorithm = "ssh-rsa"; + var encryptionAlgorithm = passphrase === "" ? "none" : "aes256-cbc"; + var ppk = "PuTTY-User-Key-File-2: " + algorithm + "\r\n"; + ppk += "Encryption: " + encryptionAlgorithm + "\r\n"; + ppk += "Comment: " + comment + "\r\n"; + var pubbuffer = forge3.util.createBuffer(); + _addStringToBuffer(pubbuffer, algorithm); + _addBigIntegerToBuffer(pubbuffer, privateKey.e); + _addBigIntegerToBuffer(pubbuffer, privateKey.n); + var pub = forge3.util.encode64(pubbuffer.bytes(), 64); + var length = Math.floor(pub.length / 66) + 1; + ppk += "Public-Lines: " + length + "\r\n"; + ppk += pub; + var privbuffer = forge3.util.createBuffer(); + _addBigIntegerToBuffer(privbuffer, privateKey.d); + _addBigIntegerToBuffer(privbuffer, privateKey.p); + _addBigIntegerToBuffer(privbuffer, privateKey.q); + _addBigIntegerToBuffer(privbuffer, privateKey.qInv); + var priv; + if (!passphrase) { + priv = forge3.util.encode64(privbuffer.bytes(), 64); + } else { + var encLen = privbuffer.length() + 16 - 1; + encLen -= encLen % 16; + var padding = _sha1(privbuffer.bytes()); + padding.truncate(padding.length() - encLen + privbuffer.length()); + privbuffer.putBuffer(padding); + var aeskey = forge3.util.createBuffer(); + aeskey.putBuffer(_sha1("\0\0\0\0", passphrase)); + aeskey.putBuffer(_sha1("\0\0\0", passphrase)); + var cipher = forge3.aes.createEncryptionCipher(aeskey.truncate(8), "CBC"); + cipher.start(forge3.util.createBuffer().fillWithByte(0, 16)); + cipher.update(privbuffer.copy()); + cipher.finish(); + var encrypted = cipher.output; + encrypted.truncate(16); + priv = forge3.util.encode64(encrypted.bytes(), 64); + } + length = Math.floor(priv.length / 66) + 1; + ppk += "\r\nPrivate-Lines: " + length + "\r\n"; + ppk += priv; + var mackey = _sha1("putty-private-key-file-mac-key", passphrase); + var macbuffer = forge3.util.createBuffer(); + _addStringToBuffer(macbuffer, algorithm); + _addStringToBuffer(macbuffer, encryptionAlgorithm); + _addStringToBuffer(macbuffer, comment); + macbuffer.putInt32(pubbuffer.length()); + macbuffer.putBuffer(pubbuffer); + macbuffer.putInt32(privbuffer.length()); + macbuffer.putBuffer(privbuffer); + var hmac = forge3.hmac.create(); + hmac.start("sha1", mackey); + hmac.update(macbuffer.bytes()); + ppk += "\r\nPrivate-MAC: " + hmac.digest().toHex() + "\r\n"; + return ppk; + }; + ssh.publicKeyToOpenSSH = function(key, comment) { + var type = "ssh-rsa"; + comment = comment || ""; + var buffer = forge3.util.createBuffer(); + _addStringToBuffer(buffer, type); + _addBigIntegerToBuffer(buffer, key.e); + _addBigIntegerToBuffer(buffer, key.n); + return type + " " + forge3.util.encode64(buffer.bytes()) + " " + comment; + }; + ssh.privateKeyToOpenSSH = function(privateKey, passphrase) { + if (!passphrase) { + return forge3.pki.privateKeyToPem(privateKey); + } + return forge3.pki.encryptRsaPrivateKey(privateKey, passphrase, { legacy: true, algorithm: "aes128" }); + }; + ssh.getPublicKeyFingerprint = function(key, options) { + options = options || {}; + var md = options.md || forge3.md.md5.create(); + var type = "ssh-rsa"; + var buffer = forge3.util.createBuffer(); + _addStringToBuffer(buffer, type); + _addBigIntegerToBuffer(buffer, key.e); + _addBigIntegerToBuffer(buffer, key.n); + md.start(); + md.update(buffer.getBytes()); + var digest = md.digest(); + if (options.encoding === "hex") { + var hex = digest.toHex(); + if (options.delimiter) { + return hex.match(/.{2}/g).join(options.delimiter); + } + return hex; + } else if (options.encoding === "binary") { + return digest.getBytes(); + } else if (options.encoding) { + throw new Error('Unknown encoding "' + options.encoding + '".'); + } + return digest; + }; + function _addBigIntegerToBuffer(buffer, val) { + var hexVal = val.toString(16); + if (hexVal[0] >= "8") { + hexVal = "00" + hexVal; + } + var bytes = forge3.util.hexToBytes(hexVal); + buffer.putInt32(bytes.length); + buffer.putBytes(bytes); + } + function _addStringToBuffer(buffer, val) { + buffer.putInt32(val.length); + buffer.putString(val); + } + function _sha1() { + var sha = forge3.md.sha1.create(); + var num = arguments.length; + for (var i = 0; i < num; ++i) { + sha.update(arguments[i]); + } + return sha.digest(); + } + } +}); + +// node_modules/node-forge/lib/index.js +var require_lib = __commonJS({ + "node_modules/node-forge/lib/index.js"(exports2, module2) { + module2.exports = require_forge(); + require_aes(); + require_aesCipherSuites(); + require_asn1(); + require_cipher(); + require_des(); + require_ed25519(); + require_hmac(); + require_kem(); + require_log(); + require_md_all(); + require_mgf1(); + require_pbkdf2(); + require_pem(); + require_pkcs1(); + require_pkcs12(); + require_pkcs7(); + require_pki(); + require_prime(); + require_prng(); + require_pss(); + require_random(); + require_rc2(); + require_ssh(); + require_tls(); + require_util(); + } +}); + +// node_modules/obsidian-daily-notes-interface/dist/main.js +var require_main = __commonJS({ + "node_modules/obsidian-daily-notes-interface/dist/main.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var obsidian = require("obsidian"); + var DEFAULT_DAILY_NOTE_FORMAT = "YYYY-MM-DD"; + var DEFAULT_WEEKLY_NOTE_FORMAT = "gggg-[W]ww"; + var DEFAULT_MONTHLY_NOTE_FORMAT = "YYYY-MM"; + var DEFAULT_QUARTERLY_NOTE_FORMAT = "YYYY-[Q]Q"; + var DEFAULT_YEARLY_NOTE_FORMAT = "YYYY"; + function shouldUsePeriodicNotesSettings(periodicity) { + var _a, _b; + const periodicNotes2 = window.app.plugins.getPlugin("periodic-notes"); + return periodicNotes2 && ((_b = (_a = periodicNotes2.settings) == null ? void 0 : _a[periodicity]) == null ? void 0 : _b.enabled); + } + function getDailyNoteSettings() { + var _a, _b, _c, _d; + try { + const { internalPlugins, plugins } = window.app; + if (shouldUsePeriodicNotesSettings("daily")) { + const { format: format2, folder: folder2, template: template2 } = ((_b = (_a = plugins.getPlugin("periodic-notes")) == null ? void 0 : _a.settings) == null ? void 0 : _b.daily) || {}; + return { + format: format2 || DEFAULT_DAILY_NOTE_FORMAT, + folder: (folder2 == null ? void 0 : folder2.trim()) || "", + template: (template2 == null ? void 0 : template2.trim()) || "" + }; + } + const { folder, format, template } = ((_d = (_c = internalPlugins.getPluginById("daily-notes")) == null ? void 0 : _c.instance) == null ? void 0 : _d.options) || {}; + return { + format: format || DEFAULT_DAILY_NOTE_FORMAT, + folder: (folder == null ? void 0 : folder.trim()) || "", + template: (template == null ? void 0 : template.trim()) || "" + }; + } catch (err) { + console.info("No custom daily note settings found!", err); + } + } + function getWeeklyNoteSettings() { + var _a, _b, _c, _d, _e, _f, _g; + try { + const pluginManager = window.app.plugins; + const calendarSettings = (_a = pluginManager.getPlugin("calendar")) == null ? void 0 : _a.options; + const periodicNotesSettings = (_c = (_b = pluginManager.getPlugin("periodic-notes")) == null ? void 0 : _b.settings) == null ? void 0 : _c.weekly; + if (shouldUsePeriodicNotesSettings("weekly")) { + return { + format: periodicNotesSettings.format || DEFAULT_WEEKLY_NOTE_FORMAT, + folder: ((_d = periodicNotesSettings.folder) == null ? void 0 : _d.trim()) || "", + template: ((_e = periodicNotesSettings.template) == null ? void 0 : _e.trim()) || "" + }; + } + const settings = calendarSettings || {}; + return { + format: settings.weeklyNoteFormat || DEFAULT_WEEKLY_NOTE_FORMAT, + folder: ((_f = settings.weeklyNoteFolder) == null ? void 0 : _f.trim()) || "", + template: ((_g = settings.weeklyNoteTemplate) == null ? void 0 : _g.trim()) || "" + }; + } catch (err) { + console.info("No custom weekly note settings found!", err); + } + } + function getMonthlyNoteSettings() { + var _a, _b, _c, _d; + const pluginManager = window.app.plugins; + try { + const settings = shouldUsePeriodicNotesSettings("monthly") && ((_b = (_a = pluginManager.getPlugin("periodic-notes")) == null ? void 0 : _a.settings) == null ? void 0 : _b.monthly) || {}; + return { + format: settings.format || DEFAULT_MONTHLY_NOTE_FORMAT, + folder: ((_c = settings.folder) == null ? void 0 : _c.trim()) || "", + template: ((_d = settings.template) == null ? void 0 : _d.trim()) || "" + }; + } catch (err) { + console.info("No custom monthly note settings found!", err); + } + } + function getQuarterlyNoteSettings() { + var _a, _b, _c, _d; + const pluginManager = window.app.plugins; + try { + const settings = shouldUsePeriodicNotesSettings("quarterly") && ((_b = (_a = pluginManager.getPlugin("periodic-notes")) == null ? void 0 : _a.settings) == null ? void 0 : _b.quarterly) || {}; + return { + format: settings.format || DEFAULT_QUARTERLY_NOTE_FORMAT, + folder: ((_c = settings.folder) == null ? void 0 : _c.trim()) || "", + template: ((_d = settings.template) == null ? void 0 : _d.trim()) || "" + }; + } catch (err) { + console.info("No custom quarterly note settings found!", err); + } + } + function getYearlyNoteSettings() { + var _a, _b, _c, _d; + const pluginManager = window.app.plugins; + try { + const settings = shouldUsePeriodicNotesSettings("yearly") && ((_b = (_a = pluginManager.getPlugin("periodic-notes")) == null ? void 0 : _a.settings) == null ? void 0 : _b.yearly) || {}; + return { + format: settings.format || DEFAULT_YEARLY_NOTE_FORMAT, + folder: ((_c = settings.folder) == null ? void 0 : _c.trim()) || "", + template: ((_d = settings.template) == null ? void 0 : _d.trim()) || "" + }; + } catch (err) { + console.info("No custom yearly note settings found!", err); + } + } + function join(...partSegments) { + let parts = []; + for (let i = 0, l = partSegments.length; i < l; i++) { + parts = parts.concat(partSegments[i].split("/")); + } + const newParts = []; + for (let i = 0, l = parts.length; i < l; i++) { + const part = parts[i]; + if (!part || part === ".") + continue; + else + newParts.push(part); + } + if (parts[0] === "") + newParts.unshift(""); + return newParts.join("/"); + } + function basename(fullPath) { + let base = fullPath.substring(fullPath.lastIndexOf("/") + 1); + if (base.lastIndexOf(".") != -1) + base = base.substring(0, base.lastIndexOf(".")); + return base; + } + function ensureFolderExists(path2) { + return __async(this, null, function* () { + const dirs = path2.replace(/\\/g, "/").split("/"); + dirs.pop(); + if (dirs.length) { + const dir = join(...dirs); + if (!window.app.vault.getAbstractFileByPath(dir)) { + yield window.app.vault.createFolder(dir); + } + } + }); + } + function getNotePath(directory, filename) { + return __async(this, null, function* () { + if (!filename.endsWith(".md")) { + filename += ".md"; + } + const path2 = obsidian.normalizePath(join(directory, filename)); + yield ensureFolderExists(path2); + return path2; + }); + } + function getTemplateInfo(template) { + return __async(this, null, function* () { + const { metadataCache, vault } = window.app; + const templatePath = obsidian.normalizePath(template); + if (templatePath === "/") { + return Promise.resolve(["", null]); + } + try { + const templateFile = metadataCache.getFirstLinkpathDest(templatePath, ""); + const contents = yield vault.cachedRead(templateFile); + const IFoldInfo = window.app.foldManager.load(templateFile); + return [contents, IFoldInfo]; + } catch (err) { + console.error(`Failed to read the daily note template '${templatePath}'`, err); + new obsidian.Notice("Failed to read the daily note template"); + return ["", null]; + } + }); + } + function getDateUID(date, granularity = "day") { + const ts = date.clone().startOf(granularity).format(); + return `${granularity}-${ts}`; + } + function removeEscapedCharacters(format) { + return format.replace(/\[[^\]]*\]/g, ""); + } + function isFormatAmbiguous(format, granularity) { + if (granularity === "week") { + const cleanFormat = removeEscapedCharacters(format); + return /w{1,2}/i.test(cleanFormat) && (/M{1,4}/.test(cleanFormat) || /D{1,4}/.test(cleanFormat)); + } + return false; + } + function getDateFromFile(file, granularity) { + return getDateFromFilename(file.basename, granularity); + } + function getDateFromPath(path2, granularity) { + return getDateFromFilename(basename(path2), granularity); + } + function getDateFromFilename(filename, granularity) { + const getSettings = { + day: getDailyNoteSettings, + week: getWeeklyNoteSettings, + month: getMonthlyNoteSettings, + quarter: getQuarterlyNoteSettings, + year: getYearlyNoteSettings + }; + const format = getSettings[granularity]().format.split("/").pop(); + const noteDate = window.moment(filename, format, true); + if (!noteDate.isValid()) { + return null; + } + if (isFormatAmbiguous(format, granularity)) { + if (granularity === "week") { + const cleanFormat = removeEscapedCharacters(format); + if (/w{1,2}/i.test(cleanFormat)) { + return window.moment(filename, format.replace(/M{1,4}/g, "").replace(/D{1,4}/g, ""), false); + } + } + } + return noteDate; + } + var DailyNotesFolderMissingError = class extends Error { + }; + function createDailyNote(date) { + return __async(this, null, function* () { + const app = window.app; + const { vault } = app; + const moment = window.moment; + const { template, format, folder } = getDailyNoteSettings(); + const [templateContents, IFoldInfo] = yield getTemplateInfo(template); + const filename = date.format(format); + const normalizedPath = yield getNotePath(folder, filename); + try { + const createdFile = yield vault.create(normalizedPath, templateContents.replace(/{{\s*date\s*}}/gi, filename).replace(/{{\s*time\s*}}/gi, moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi, filename).replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi, (_, _timeOrDate, calc, timeDelta, unit, momentFormat) => { + const now = moment(); + const currentDate = date.clone().set({ + hour: now.get("hour"), + minute: now.get("minute"), + second: now.get("second") + }); + if (calc) { + currentDate.add(parseInt(timeDelta, 10), unit); + } + if (momentFormat) { + return currentDate.format(momentFormat.substring(1).trim()); + } + return currentDate.format(format); + }).replace(/{{\s*yesterday\s*}}/gi, date.clone().subtract(1, "day").format(format)).replace(/{{\s*tomorrow\s*}}/gi, date.clone().add(1, "d").format(format))); + app.foldManager.save(createdFile, IFoldInfo); + return createdFile; + } catch (err) { + console.error(`Failed to create file: '${normalizedPath}'`, err); + new obsidian.Notice("Unable to create new file."); + } + }); + } + function getDailyNote(date, dailyNotes) { + var _a; + return (_a = dailyNotes[getDateUID(date, "day")]) != null ? _a : null; + } + function getAllDailyNotes() { + const { vault } = window.app; + const { folder } = getDailyNoteSettings(); + const dailyNotesFolder = vault.getAbstractFileByPath(obsidian.normalizePath(folder)); + if (!dailyNotesFolder) { + throw new DailyNotesFolderMissingError("Failed to find daily notes folder"); + } + const dailyNotes = {}; + obsidian.Vault.recurseChildren(dailyNotesFolder, (note) => { + if (note instanceof obsidian.TFile) { + const date = getDateFromFile(note, "day"); + if (date) { + const dateString = getDateUID(date, "day"); + dailyNotes[dateString] = note; + } + } + }); + return dailyNotes; + } + var WeeklyNotesFolderMissingError = class extends Error { + }; + function getDaysOfWeek() { + const { moment } = window; + let weekStart = moment.localeData()._week.dow; + const daysOfWeek = [ + "sunday", + "monday", + "tuesday", + "wednesday", + "thursday", + "friday", + "saturday" + ]; + while (weekStart) { + daysOfWeek.push(daysOfWeek.shift()); + weekStart--; + } + return daysOfWeek; + } + function getDayOfWeekNumericalValue(dayOfWeekName) { + return getDaysOfWeek().indexOf(dayOfWeekName.toLowerCase()); + } + function createWeeklyNote(date) { + return __async(this, null, function* () { + const { vault } = window.app; + const { template, format, folder } = getWeeklyNoteSettings(); + const [templateContents, IFoldInfo] = yield getTemplateInfo(template); + const filename = date.format(format); + const normalizedPath = yield getNotePath(folder, filename); + try { + const createdFile = yield vault.create(normalizedPath, templateContents.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi, (_, _timeOrDate, calc, timeDelta, unit, momentFormat) => { + const now = window.moment(); + const currentDate = date.clone().set({ + hour: now.get("hour"), + minute: now.get("minute"), + second: now.get("second") + }); + if (calc) { + currentDate.add(parseInt(timeDelta, 10), unit); + } + if (momentFormat) { + return currentDate.format(momentFormat.substring(1).trim()); + } + return currentDate.format(format); + }).replace(/{{\s*title\s*}}/gi, filename).replace(/{{\s*time\s*}}/gi, window.moment().format("HH:mm")).replace(/{{\s*(sunday|monday|tuesday|wednesday|thursday|friday|saturday)\s*:(.*?)}}/gi, (_, dayOfWeek, momentFormat) => { + const day = getDayOfWeekNumericalValue(dayOfWeek); + return date.weekday(day).format(momentFormat.trim()); + })); + window.app.foldManager.save(createdFile, IFoldInfo); + return createdFile; + } catch (err) { + console.error(`Failed to create file: '${normalizedPath}'`, err); + new obsidian.Notice("Unable to create new file."); + } + }); + } + function getWeeklyNote(date, weeklyNotes) { + var _a; + return (_a = weeklyNotes[getDateUID(date, "week")]) != null ? _a : null; + } + function getAllWeeklyNotes() { + const weeklyNotes = {}; + if (!appHasWeeklyNotesPluginLoaded()) { + return weeklyNotes; + } + const { vault } = window.app; + const { folder } = getWeeklyNoteSettings(); + const weeklyNotesFolder = vault.getAbstractFileByPath(obsidian.normalizePath(folder)); + if (!weeklyNotesFolder) { + throw new WeeklyNotesFolderMissingError("Failed to find weekly notes folder"); + } + obsidian.Vault.recurseChildren(weeklyNotesFolder, (note) => { + if (note instanceof obsidian.TFile) { + const date = getDateFromFile(note, "week"); + if (date) { + const dateString = getDateUID(date, "week"); + weeklyNotes[dateString] = note; + } + } + }); + return weeklyNotes; + } + var MonthlyNotesFolderMissingError = class extends Error { + }; + function createMonthlyNote(date) { + return __async(this, null, function* () { + const { vault } = window.app; + const { template, format, folder } = getMonthlyNoteSettings(); + const [templateContents, IFoldInfo] = yield getTemplateInfo(template); + const filename = date.format(format); + const normalizedPath = yield getNotePath(folder, filename); + try { + const createdFile = yield vault.create(normalizedPath, templateContents.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi, (_, _timeOrDate, calc, timeDelta, unit, momentFormat) => { + const now = window.moment(); + const currentDate = date.clone().set({ + hour: now.get("hour"), + minute: now.get("minute"), + second: now.get("second") + }); + if (calc) { + currentDate.add(parseInt(timeDelta, 10), unit); + } + if (momentFormat) { + return currentDate.format(momentFormat.substring(1).trim()); + } + return currentDate.format(format); + }).replace(/{{\s*date\s*}}/gi, filename).replace(/{{\s*time\s*}}/gi, window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi, filename)); + window.app.foldManager.save(createdFile, IFoldInfo); + return createdFile; + } catch (err) { + console.error(`Failed to create file: '${normalizedPath}'`, err); + new obsidian.Notice("Unable to create new file."); + } + }); + } + function getMonthlyNote(date, monthlyNotes) { + var _a; + return (_a = monthlyNotes[getDateUID(date, "month")]) != null ? _a : null; + } + function getAllMonthlyNotes() { + const monthlyNotes = {}; + if (!appHasMonthlyNotesPluginLoaded()) { + return monthlyNotes; + } + const { vault } = window.app; + const { folder } = getMonthlyNoteSettings(); + const monthlyNotesFolder = vault.getAbstractFileByPath(obsidian.normalizePath(folder)); + if (!monthlyNotesFolder) { + throw new MonthlyNotesFolderMissingError("Failed to find monthly notes folder"); + } + obsidian.Vault.recurseChildren(monthlyNotesFolder, (note) => { + if (note instanceof obsidian.TFile) { + const date = getDateFromFile(note, "month"); + if (date) { + const dateString = getDateUID(date, "month"); + monthlyNotes[dateString] = note; + } + } + }); + return monthlyNotes; + } + var QuarterlyNotesFolderMissingError = class extends Error { + }; + function createQuarterlyNote(date) { + return __async(this, null, function* () { + const { vault } = window.app; + const { template, format, folder } = getQuarterlyNoteSettings(); + const [templateContents, IFoldInfo] = yield getTemplateInfo(template); + const filename = date.format(format); + const normalizedPath = yield getNotePath(folder, filename); + try { + const createdFile = yield vault.create(normalizedPath, templateContents.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi, (_, _timeOrDate, calc, timeDelta, unit, momentFormat) => { + const now = window.moment(); + const currentDate = date.clone().set({ + hour: now.get("hour"), + minute: now.get("minute"), + second: now.get("second") + }); + if (calc) { + currentDate.add(parseInt(timeDelta, 10), unit); + } + if (momentFormat) { + return currentDate.format(momentFormat.substring(1).trim()); + } + return currentDate.format(format); + }).replace(/{{\s*date\s*}}/gi, filename).replace(/{{\s*time\s*}}/gi, window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi, filename)); + window.app.foldManager.save(createdFile, IFoldInfo); + return createdFile; + } catch (err) { + console.error(`Failed to create file: '${normalizedPath}'`, err); + new obsidian.Notice("Unable to create new file."); + } + }); + } + function getQuarterlyNote(date, quarterly) { + var _a; + return (_a = quarterly[getDateUID(date, "quarter")]) != null ? _a : null; + } + function getAllQuarterlyNotes() { + const quarterly = {}; + if (!appHasQuarterlyNotesPluginLoaded()) { + return quarterly; + } + const { vault } = window.app; + const { folder } = getQuarterlyNoteSettings(); + const quarterlyFolder = vault.getAbstractFileByPath(obsidian.normalizePath(folder)); + if (!quarterlyFolder) { + throw new QuarterlyNotesFolderMissingError("Failed to find quarterly notes folder"); + } + obsidian.Vault.recurseChildren(quarterlyFolder, (note) => { + if (note instanceof obsidian.TFile) { + const date = getDateFromFile(note, "quarter"); + if (date) { + const dateString = getDateUID(date, "quarter"); + quarterly[dateString] = note; + } + } + }); + return quarterly; + } + var YearlyNotesFolderMissingError = class extends Error { + }; + function createYearlyNote(date) { + return __async(this, null, function* () { + const { vault } = window.app; + const { template, format, folder } = getYearlyNoteSettings(); + const [templateContents, IFoldInfo] = yield getTemplateInfo(template); + const filename = date.format(format); + const normalizedPath = yield getNotePath(folder, filename); + try { + const createdFile = yield vault.create(normalizedPath, templateContents.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi, (_, _timeOrDate, calc, timeDelta, unit, momentFormat) => { + const now = window.moment(); + const currentDate = date.clone().set({ + hour: now.get("hour"), + minute: now.get("minute"), + second: now.get("second") + }); + if (calc) { + currentDate.add(parseInt(timeDelta, 10), unit); + } + if (momentFormat) { + return currentDate.format(momentFormat.substring(1).trim()); + } + return currentDate.format(format); + }).replace(/{{\s*date\s*}}/gi, filename).replace(/{{\s*time\s*}}/gi, window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi, filename)); + window.app.foldManager.save(createdFile, IFoldInfo); + return createdFile; + } catch (err) { + console.error(`Failed to create file: '${normalizedPath}'`, err); + new obsidian.Notice("Unable to create new file."); + } + }); + } + function getYearlyNote(date, yearlyNotes) { + var _a; + return (_a = yearlyNotes[getDateUID(date, "year")]) != null ? _a : null; + } + function getAllYearlyNotes() { + const yearlyNotes = {}; + if (!appHasYearlyNotesPluginLoaded()) { + return yearlyNotes; + } + const { vault } = window.app; + const { folder } = getYearlyNoteSettings(); + const yearlyNotesFolder = vault.getAbstractFileByPath(obsidian.normalizePath(folder)); + if (!yearlyNotesFolder) { + throw new YearlyNotesFolderMissingError("Failed to find yearly notes folder"); + } + obsidian.Vault.recurseChildren(yearlyNotesFolder, (note) => { + if (note instanceof obsidian.TFile) { + const date = getDateFromFile(note, "year"); + if (date) { + const dateString = getDateUID(date, "year"); + yearlyNotes[dateString] = note; + } + } + }); + return yearlyNotes; + } + function appHasDailyNotesPluginLoaded() { + var _a, _b; + const { app } = window; + const dailyNotesPlugin = app.internalPlugins.plugins["daily-notes"]; + if (dailyNotesPlugin && dailyNotesPlugin.enabled) { + return true; + } + const periodicNotes2 = app.plugins.getPlugin("periodic-notes"); + return periodicNotes2 && ((_b = (_a = periodicNotes2.settings) == null ? void 0 : _a.daily) == null ? void 0 : _b.enabled); + } + function appHasWeeklyNotesPluginLoaded() { + var _a, _b; + const { app } = window; + if (app.plugins.getPlugin("calendar")) { + return true; + } + const periodicNotes2 = app.plugins.getPlugin("periodic-notes"); + return periodicNotes2 && ((_b = (_a = periodicNotes2.settings) == null ? void 0 : _a.weekly) == null ? void 0 : _b.enabled); + } + function appHasMonthlyNotesPluginLoaded() { + var _a, _b; + const { app } = window; + const periodicNotes2 = app.plugins.getPlugin("periodic-notes"); + return periodicNotes2 && ((_b = (_a = periodicNotes2.settings) == null ? void 0 : _a.monthly) == null ? void 0 : _b.enabled); + } + function appHasQuarterlyNotesPluginLoaded() { + var _a, _b; + const { app } = window; + const periodicNotes2 = app.plugins.getPlugin("periodic-notes"); + return periodicNotes2 && ((_b = (_a = periodicNotes2.settings) == null ? void 0 : _a.quarterly) == null ? void 0 : _b.enabled); + } + function appHasYearlyNotesPluginLoaded() { + var _a, _b; + const { app } = window; + const periodicNotes2 = app.plugins.getPlugin("periodic-notes"); + return periodicNotes2 && ((_b = (_a = periodicNotes2.settings) == null ? void 0 : _a.yearly) == null ? void 0 : _b.enabled); + } + function getPeriodicNoteSettings(granularity) { + const getSettings = { + day: getDailyNoteSettings, + week: getWeeklyNoteSettings, + month: getMonthlyNoteSettings, + quarter: getQuarterlyNoteSettings, + year: getYearlyNoteSettings + }[granularity]; + return getSettings(); + } + function createPeriodicNote(granularity, date) { + const createFn = { + day: createDailyNote, + month: createMonthlyNote, + week: createWeeklyNote + }; + return createFn[granularity](date); + } + exports2.DEFAULT_DAILY_NOTE_FORMAT = DEFAULT_DAILY_NOTE_FORMAT; + exports2.DEFAULT_MONTHLY_NOTE_FORMAT = DEFAULT_MONTHLY_NOTE_FORMAT; + exports2.DEFAULT_QUARTERLY_NOTE_FORMAT = DEFAULT_QUARTERLY_NOTE_FORMAT; + exports2.DEFAULT_WEEKLY_NOTE_FORMAT = DEFAULT_WEEKLY_NOTE_FORMAT; + exports2.DEFAULT_YEARLY_NOTE_FORMAT = DEFAULT_YEARLY_NOTE_FORMAT; + exports2.appHasDailyNotesPluginLoaded = appHasDailyNotesPluginLoaded; + exports2.appHasMonthlyNotesPluginLoaded = appHasMonthlyNotesPluginLoaded; + exports2.appHasQuarterlyNotesPluginLoaded = appHasQuarterlyNotesPluginLoaded; + exports2.appHasWeeklyNotesPluginLoaded = appHasWeeklyNotesPluginLoaded; + exports2.appHasYearlyNotesPluginLoaded = appHasYearlyNotesPluginLoaded; + exports2.createDailyNote = createDailyNote; + exports2.createMonthlyNote = createMonthlyNote; + exports2.createPeriodicNote = createPeriodicNote; + exports2.createQuarterlyNote = createQuarterlyNote; + exports2.createWeeklyNote = createWeeklyNote; + exports2.createYearlyNote = createYearlyNote; + exports2.getAllDailyNotes = getAllDailyNotes; + exports2.getAllMonthlyNotes = getAllMonthlyNotes; + exports2.getAllQuarterlyNotes = getAllQuarterlyNotes; + exports2.getAllWeeklyNotes = getAllWeeklyNotes; + exports2.getAllYearlyNotes = getAllYearlyNotes; + exports2.getDailyNote = getDailyNote; + exports2.getDailyNoteSettings = getDailyNoteSettings; + exports2.getDateFromFile = getDateFromFile; + exports2.getDateFromPath = getDateFromPath; + exports2.getDateUID = getDateUID; + exports2.getMonthlyNote = getMonthlyNote; + exports2.getMonthlyNoteSettings = getMonthlyNoteSettings; + exports2.getPeriodicNoteSettings = getPeriodicNoteSettings; + exports2.getQuarterlyNote = getQuarterlyNote; + exports2.getQuarterlyNoteSettings = getQuarterlyNoteSettings; + exports2.getTemplateInfo = getTemplateInfo; + exports2.getWeeklyNote = getWeeklyNote; + exports2.getWeeklyNoteSettings = getWeeklyNoteSettings; + exports2.getYearlyNote = getYearlyNote; + exports2.getYearlyNoteSettings = getYearlyNoteSettings; + } +}); + +// node_modules/obsidian-dataview/lib/index.js +var require_lib2 = __commonJS({ + "node_modules/obsidian-dataview/lib/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + require("obsidian"); + var LuxonError = class extends Error { + }; + var InvalidDateTimeError = class extends LuxonError { + constructor(reason) { + super(`Invalid DateTime: ${reason.toMessage()}`); + } + }; + var InvalidIntervalError = class extends LuxonError { + constructor(reason) { + super(`Invalid Interval: ${reason.toMessage()}`); + } + }; + var InvalidDurationError = class extends LuxonError { + constructor(reason) { + super(`Invalid Duration: ${reason.toMessage()}`); + } + }; + var ConflictingSpecificationError = class extends LuxonError { + }; + var InvalidUnitError = class extends LuxonError { + constructor(unit) { + super(`Invalid unit ${unit}`); + } + }; + var InvalidArgumentError = class extends LuxonError { + }; + var ZoneIsAbstractError = class extends LuxonError { + constructor() { + super("Zone is an abstract class"); + } + }; + var n = "numeric"; + var s = "short"; + var l = "long"; + var DATE_SHORT = { + year: n, + month: n, + day: n + }; + var DATE_MED = { + year: n, + month: s, + day: n + }; + var DATE_MED_WITH_WEEKDAY = { + year: n, + month: s, + day: n, + weekday: s + }; + var DATE_FULL = { + year: n, + month: l, + day: n + }; + var DATE_HUGE = { + year: n, + month: l, + day: n, + weekday: l + }; + var TIME_SIMPLE = { + hour: n, + minute: n + }; + var TIME_WITH_SECONDS = { + hour: n, + minute: n, + second: n + }; + var TIME_WITH_SHORT_OFFSET = { + hour: n, + minute: n, + second: n, + timeZoneName: s + }; + var TIME_WITH_LONG_OFFSET = { + hour: n, + minute: n, + second: n, + timeZoneName: l + }; + var TIME_24_SIMPLE = { + hour: n, + minute: n, + hourCycle: "h23" + }; + var TIME_24_WITH_SECONDS = { + hour: n, + minute: n, + second: n, + hourCycle: "h23" + }; + var TIME_24_WITH_SHORT_OFFSET = { + hour: n, + minute: n, + second: n, + hourCycle: "h23", + timeZoneName: s + }; + var TIME_24_WITH_LONG_OFFSET = { + hour: n, + minute: n, + second: n, + hourCycle: "h23", + timeZoneName: l + }; + var DATETIME_SHORT = { + year: n, + month: n, + day: n, + hour: n, + minute: n + }; + var DATETIME_SHORT_WITH_SECONDS = { + year: n, + month: n, + day: n, + hour: n, + minute: n, + second: n + }; + var DATETIME_MED = { + year: n, + month: s, + day: n, + hour: n, + minute: n + }; + var DATETIME_MED_WITH_SECONDS = { + year: n, + month: s, + day: n, + hour: n, + minute: n, + second: n + }; + var DATETIME_MED_WITH_WEEKDAY = { + year: n, + month: s, + day: n, + weekday: s, + hour: n, + minute: n + }; + var DATETIME_FULL = { + year: n, + month: l, + day: n, + hour: n, + minute: n, + timeZoneName: s + }; + var DATETIME_FULL_WITH_SECONDS = { + year: n, + month: l, + day: n, + hour: n, + minute: n, + second: n, + timeZoneName: s + }; + var DATETIME_HUGE = { + year: n, + month: l, + day: n, + weekday: l, + hour: n, + minute: n, + timeZoneName: l + }; + var DATETIME_HUGE_WITH_SECONDS = { + year: n, + month: l, + day: n, + weekday: l, + hour: n, + minute: n, + second: n, + timeZoneName: l + }; + var Zone = class { + get type() { + throw new ZoneIsAbstractError(); + } + get name() { + throw new ZoneIsAbstractError(); + } + get ianaName() { + return this.name; + } + get isUniversal() { + throw new ZoneIsAbstractError(); + } + offsetName(ts, opts) { + throw new ZoneIsAbstractError(); + } + formatOffset(ts, format) { + throw new ZoneIsAbstractError(); + } + offset(ts) { + throw new ZoneIsAbstractError(); + } + equals(otherZone) { + throw new ZoneIsAbstractError(); + } + get isValid() { + throw new ZoneIsAbstractError(); + } + }; + var singleton$1 = null; + var SystemZone = class extends Zone { + static get instance() { + if (singleton$1 === null) { + singleton$1 = new SystemZone(); + } + return singleton$1; + } + get type() { + return "system"; + } + get name() { + return new Intl.DateTimeFormat().resolvedOptions().timeZone; + } + get isUniversal() { + return false; + } + offsetName(ts, { format, locale }) { + return parseZoneInfo(ts, format, locale); + } + formatOffset(ts, format) { + return formatOffset(this.offset(ts), format); + } + offset(ts) { + return -new Date(ts).getTimezoneOffset(); + } + equals(otherZone) { + return otherZone.type === "system"; + } + get isValid() { + return true; + } + }; + var dtfCache = {}; + function makeDTF(zone) { + if (!dtfCache[zone]) { + dtfCache[zone] = new Intl.DateTimeFormat("en-US", { + hour12: false, + timeZone: zone, + year: "numeric", + month: "2-digit", + day: "2-digit", + hour: "2-digit", + minute: "2-digit", + second: "2-digit", + era: "short" + }); + } + return dtfCache[zone]; + } + var typeToPos = { + year: 0, + month: 1, + day: 2, + era: 3, + hour: 4, + minute: 5, + second: 6 + }; + function hackyOffset(dtf, date) { + const formatted = dtf.format(date).replace(/\u200E/g, ""), parsed = /(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(formatted), [, fMonth, fDay, fYear, fadOrBc, fHour, fMinute, fSecond] = parsed; + return [fYear, fMonth, fDay, fadOrBc, fHour, fMinute, fSecond]; + } + function partsOffset(dtf, date) { + const formatted = dtf.formatToParts(date); + const filled = []; + for (let i = 0; i < formatted.length; i++) { + const { type, value } = formatted[i]; + const pos = typeToPos[type]; + if (type === "era") { + filled[pos] = value; + } else if (!isUndefined(pos)) { + filled[pos] = parseInt(value, 10); + } + } + return filled; + } + var ianaZoneCache = {}; + var IANAZone = class extends Zone { + static create(name) { + if (!ianaZoneCache[name]) { + ianaZoneCache[name] = new IANAZone(name); + } + return ianaZoneCache[name]; + } + static resetCache() { + ianaZoneCache = {}; + dtfCache = {}; + } + static isValidSpecifier(s2) { + return this.isValidZone(s2); + } + static isValidZone(zone) { + if (!zone) { + return false; + } + try { + new Intl.DateTimeFormat("en-US", { timeZone: zone }).format(); + return true; + } catch (e) { + return false; + } + } + constructor(name) { + super(); + this.zoneName = name; + this.valid = IANAZone.isValidZone(name); + } + get type() { + return "iana"; + } + get name() { + return this.zoneName; + } + get isUniversal() { + return false; + } + offsetName(ts, { format, locale }) { + return parseZoneInfo(ts, format, locale, this.name); + } + formatOffset(ts, format) { + return formatOffset(this.offset(ts), format); + } + offset(ts) { + const date = new Date(ts); + if (isNaN(date)) + return NaN; + const dtf = makeDTF(this.name); + let [year, month, day, adOrBc, hour, minute, second] = dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date); + if (adOrBc === "BC") { + year = -Math.abs(year) + 1; + } + const adjustedHour = hour === 24 ? 0 : hour; + const asUTC = objToLocalTS({ + year, + month, + day, + hour: adjustedHour, + minute, + second, + millisecond: 0 + }); + let asTS = +date; + const over = asTS % 1e3; + asTS -= over >= 0 ? over : 1e3 + over; + return (asUTC - asTS) / (60 * 1e3); + } + equals(otherZone) { + return otherZone.type === "iana" && otherZone.name === this.name; + } + get isValid() { + return this.valid; + } + }; + var intlLFCache = {}; + function getCachedLF(locString, opts = {}) { + const key = JSON.stringify([locString, opts]); + let dtf = intlLFCache[key]; + if (!dtf) { + dtf = new Intl.ListFormat(locString, opts); + intlLFCache[key] = dtf; + } + return dtf; + } + var intlDTCache = {}; + function getCachedDTF(locString, opts = {}) { + const key = JSON.stringify([locString, opts]); + let dtf = intlDTCache[key]; + if (!dtf) { + dtf = new Intl.DateTimeFormat(locString, opts); + intlDTCache[key] = dtf; + } + return dtf; + } + var intlNumCache = {}; + function getCachedINF(locString, opts = {}) { + const key = JSON.stringify([locString, opts]); + let inf = intlNumCache[key]; + if (!inf) { + inf = new Intl.NumberFormat(locString, opts); + intlNumCache[key] = inf; + } + return inf; + } + var intlRelCache = {}; + function getCachedRTF(locString, opts = {}) { + const _a = opts, { base } = _a, cacheKeyOpts = __objRest(_a, ["base"]); + const key = JSON.stringify([locString, cacheKeyOpts]); + let inf = intlRelCache[key]; + if (!inf) { + inf = new Intl.RelativeTimeFormat(locString, opts); + intlRelCache[key] = inf; + } + return inf; + } + var sysLocaleCache = null; + function systemLocale() { + if (sysLocaleCache) { + return sysLocaleCache; + } else { + sysLocaleCache = new Intl.DateTimeFormat().resolvedOptions().locale; + return sysLocaleCache; + } + } + function parseLocaleString(localeStr) { + const xIndex = localeStr.indexOf("-x-"); + if (xIndex !== -1) { + localeStr = localeStr.substring(0, xIndex); + } + const uIndex = localeStr.indexOf("-u-"); + if (uIndex === -1) { + return [localeStr]; + } else { + let options; + let selectedStr; + try { + options = getCachedDTF(localeStr).resolvedOptions(); + selectedStr = localeStr; + } catch (e) { + const smaller = localeStr.substring(0, uIndex); + options = getCachedDTF(smaller).resolvedOptions(); + selectedStr = smaller; + } + const { numberingSystem, calendar } = options; + return [selectedStr, numberingSystem, calendar]; + } + } + function intlConfigString(localeStr, numberingSystem, outputCalendar) { + if (outputCalendar || numberingSystem) { + if (!localeStr.includes("-u-")) { + localeStr += "-u"; + } + if (outputCalendar) { + localeStr += `-ca-${outputCalendar}`; + } + if (numberingSystem) { + localeStr += `-nu-${numberingSystem}`; + } + return localeStr; + } else { + return localeStr; + } + } + function mapMonths(f) { + const ms = []; + for (let i = 1; i <= 12; i++) { + const dt = DateTime.utc(2009, i, 1); + ms.push(f(dt)); + } + return ms; + } + function mapWeekdays(f) { + const ms = []; + for (let i = 1; i <= 7; i++) { + const dt = DateTime.utc(2016, 11, 13 + i); + ms.push(f(dt)); + } + return ms; + } + function listStuff(loc, length, englishFn, intlFn) { + const mode = loc.listingMode(); + if (mode === "error") { + return null; + } else if (mode === "en") { + return englishFn(length); + } else { + return intlFn(length); + } + } + function supportsFastNumbers(loc) { + if (loc.numberingSystem && loc.numberingSystem !== "latn") { + return false; + } else { + return loc.numberingSystem === "latn" || !loc.locale || loc.locale.startsWith("en") || new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === "latn"; + } + } + var PolyNumberFormatter = class { + constructor(intl, forceSimple, opts) { + this.padTo = opts.padTo || 0; + this.floor = opts.floor || false; + const _a = opts, { padTo, floor } = _a, otherOpts = __objRest(_a, ["padTo", "floor"]); + if (!forceSimple || Object.keys(otherOpts).length > 0) { + const intlOpts = __spreadValues({ useGrouping: false }, opts); + if (opts.padTo > 0) + intlOpts.minimumIntegerDigits = opts.padTo; + this.inf = getCachedINF(intl, intlOpts); + } + } + format(i) { + if (this.inf) { + const fixed = this.floor ? Math.floor(i) : i; + return this.inf.format(fixed); + } else { + const fixed = this.floor ? Math.floor(i) : roundTo(i, 3); + return padStart(fixed, this.padTo); + } + } + }; + var PolyDateFormatter = class { + constructor(dt, intl, opts) { + this.opts = opts; + this.originalZone = void 0; + let z = void 0; + if (this.opts.timeZone) { + this.dt = dt; + } else if (dt.zone.type === "fixed") { + const gmtOffset = -1 * (dt.offset / 60); + const offsetZ = gmtOffset >= 0 ? `Etc/GMT+${gmtOffset}` : `Etc/GMT${gmtOffset}`; + if (dt.offset !== 0 && IANAZone.create(offsetZ).valid) { + z = offsetZ; + this.dt = dt; + } else { + z = "UTC"; + this.dt = dt.offset === 0 ? dt : dt.setZone("UTC").plus({ minutes: dt.offset }); + this.originalZone = dt.zone; + } + } else if (dt.zone.type === "system") { + this.dt = dt; + } else if (dt.zone.type === "iana") { + this.dt = dt; + z = dt.zone.name; + } else { + z = "UTC"; + this.dt = dt.setZone("UTC").plus({ minutes: dt.offset }); + this.originalZone = dt.zone; + } + const intlOpts = __spreadValues({}, this.opts); + intlOpts.timeZone = intlOpts.timeZone || z; + this.dtf = getCachedDTF(intl, intlOpts); + } + format() { + if (this.originalZone) { + return this.formatToParts().map(({ value }) => value).join(""); + } + return this.dtf.format(this.dt.toJSDate()); + } + formatToParts() { + const parts = this.dtf.formatToParts(this.dt.toJSDate()); + if (this.originalZone) { + return parts.map((part) => { + if (part.type === "timeZoneName") { + const offsetName = this.originalZone.offsetName(this.dt.ts, { + locale: this.dt.locale, + format: this.opts.timeZoneName + }); + return __spreadProps(__spreadValues({}, part), { + value: offsetName + }); + } else { + return part; + } + }); + } + return parts; + } + resolvedOptions() { + return this.dtf.resolvedOptions(); + } + }; + var PolyRelFormatter = class { + constructor(intl, isEnglish, opts) { + this.opts = __spreadValues({ style: "long" }, opts); + if (!isEnglish && hasRelative()) { + this.rtf = getCachedRTF(intl, opts); + } + } + format(count, unit) { + if (this.rtf) { + return this.rtf.format(count, unit); + } else { + return formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== "long"); + } + } + formatToParts(count, unit) { + if (this.rtf) { + return this.rtf.formatToParts(count, unit); + } else { + return []; + } + } + }; + var Locale = class { + static fromOpts(opts) { + return Locale.create(opts.locale, opts.numberingSystem, opts.outputCalendar, opts.defaultToEN); + } + static create(locale, numberingSystem, outputCalendar, defaultToEN = false) { + const specifiedLocale = locale || Settings.defaultLocale; + const localeR = specifiedLocale || (defaultToEN ? "en-US" : systemLocale()); + const numberingSystemR = numberingSystem || Settings.defaultNumberingSystem; + const outputCalendarR = outputCalendar || Settings.defaultOutputCalendar; + return new Locale(localeR, numberingSystemR, outputCalendarR, specifiedLocale); + } + static resetCache() { + sysLocaleCache = null; + intlDTCache = {}; + intlNumCache = {}; + intlRelCache = {}; + } + static fromObject({ locale, numberingSystem, outputCalendar } = {}) { + return Locale.create(locale, numberingSystem, outputCalendar); + } + constructor(locale, numbering, outputCalendar, specifiedLocale) { + const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale); + this.locale = parsedLocale; + this.numberingSystem = numbering || parsedNumberingSystem || null; + this.outputCalendar = outputCalendar || parsedOutputCalendar || null; + this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar); + this.weekdaysCache = { format: {}, standalone: {} }; + this.monthsCache = { format: {}, standalone: {} }; + this.meridiemCache = null; + this.eraCache = {}; + this.specifiedLocale = specifiedLocale; + this.fastNumbersCached = null; + } + get fastNumbers() { + if (this.fastNumbersCached == null) { + this.fastNumbersCached = supportsFastNumbers(this); + } + return this.fastNumbersCached; + } + listingMode() { + const isActuallyEn = this.isEnglish(); + const hasNoWeirdness = (this.numberingSystem === null || this.numberingSystem === "latn") && (this.outputCalendar === null || this.outputCalendar === "gregory"); + return isActuallyEn && hasNoWeirdness ? "en" : "intl"; + } + clone(alts) { + if (!alts || Object.getOwnPropertyNames(alts).length === 0) { + return this; + } else { + return Locale.create(alts.locale || this.specifiedLocale, alts.numberingSystem || this.numberingSystem, alts.outputCalendar || this.outputCalendar, alts.defaultToEN || false); + } + } + redefaultToEN(alts = {}) { + return this.clone(__spreadProps(__spreadValues({}, alts), { defaultToEN: true })); + } + redefaultToSystem(alts = {}) { + return this.clone(__spreadProps(__spreadValues({}, alts), { defaultToEN: false })); + } + months(length, format = false) { + return listStuff(this, length, months, () => { + const intl = format ? { month: length, day: "numeric" } : { month: length }, formatStr = format ? "format" : "standalone"; + if (!this.monthsCache[formatStr][length]) { + this.monthsCache[formatStr][length] = mapMonths((dt) => this.extract(dt, intl, "month")); + } + return this.monthsCache[formatStr][length]; + }); + } + weekdays(length, format = false) { + return listStuff(this, length, weekdays, () => { + const intl = format ? { weekday: length, year: "numeric", month: "long", day: "numeric" } : { weekday: length }, formatStr = format ? "format" : "standalone"; + if (!this.weekdaysCache[formatStr][length]) { + this.weekdaysCache[formatStr][length] = mapWeekdays((dt) => this.extract(dt, intl, "weekday")); + } + return this.weekdaysCache[formatStr][length]; + }); + } + meridiems() { + return listStuff(this, void 0, () => meridiems, () => { + if (!this.meridiemCache) { + const intl = { hour: "numeric", hourCycle: "h12" }; + this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map((dt) => this.extract(dt, intl, "dayperiod")); + } + return this.meridiemCache; + }); + } + eras(length) { + return listStuff(this, length, eras, () => { + const intl = { era: length }; + if (!this.eraCache[length]) { + this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map((dt) => this.extract(dt, intl, "era")); + } + return this.eraCache[length]; + }); + } + extract(dt, intlOpts, field) { + const df = this.dtFormatter(dt, intlOpts), results = df.formatToParts(), matching = results.find((m) => m.type.toLowerCase() === field); + return matching ? matching.value : null; + } + numberFormatter(opts = {}) { + return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts); + } + dtFormatter(dt, intlOpts = {}) { + return new PolyDateFormatter(dt, this.intl, intlOpts); + } + relFormatter(opts = {}) { + return new PolyRelFormatter(this.intl, this.isEnglish(), opts); + } + listFormatter(opts = {}) { + return getCachedLF(this.intl, opts); + } + isEnglish() { + return this.locale === "en" || this.locale.toLowerCase() === "en-us" || new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us"); + } + equals(other) { + return this.locale === other.locale && this.numberingSystem === other.numberingSystem && this.outputCalendar === other.outputCalendar; + } + }; + var singleton = null; + var FixedOffsetZone = class extends Zone { + static get utcInstance() { + if (singleton === null) { + singleton = new FixedOffsetZone(0); + } + return singleton; + } + static instance(offset2) { + return offset2 === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset2); + } + static parseSpecifier(s2) { + if (s2) { + const r = s2.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i); + if (r) { + return new FixedOffsetZone(signedOffset(r[1], r[2])); + } + } + return null; + } + constructor(offset2) { + super(); + this.fixed = offset2; + } + get type() { + return "fixed"; + } + get name() { + return this.fixed === 0 ? "UTC" : `UTC${formatOffset(this.fixed, "narrow")}`; + } + get ianaName() { + if (this.fixed === 0) { + return "Etc/UTC"; + } else { + return `Etc/GMT${formatOffset(-this.fixed, "narrow")}`; + } + } + offsetName() { + return this.name; + } + formatOffset(ts, format) { + return formatOffset(this.fixed, format); + } + get isUniversal() { + return true; + } + offset() { + return this.fixed; + } + equals(otherZone) { + return otherZone.type === "fixed" && otherZone.fixed === this.fixed; + } + get isValid() { + return true; + } + }; + var InvalidZone = class extends Zone { + constructor(zoneName) { + super(); + this.zoneName = zoneName; + } + get type() { + return "invalid"; + } + get name() { + return this.zoneName; + } + get isUniversal() { + return false; + } + offsetName() { + return null; + } + formatOffset() { + return ""; + } + offset() { + return NaN; + } + equals() { + return false; + } + get isValid() { + return false; + } + }; + function normalizeZone(input, defaultZone2) { + if (isUndefined(input) || input === null) { + return defaultZone2; + } else if (input instanceof Zone) { + return input; + } else if (isString(input)) { + const lowered = input.toLowerCase(); + if (lowered === "default") + return defaultZone2; + else if (lowered === "local" || lowered === "system") + return SystemZone.instance; + else if (lowered === "utc" || lowered === "gmt") + return FixedOffsetZone.utcInstance; + else + return FixedOffsetZone.parseSpecifier(lowered) || IANAZone.create(input); + } else if (isNumber(input)) { + return FixedOffsetZone.instance(input); + } else if (typeof input === "object" && "offset" in input && typeof input.offset === "function") { + return input; + } else { + return new InvalidZone(input); + } + } + var now = () => Date.now(); + var defaultZone = "system"; + var defaultLocale = null; + var defaultNumberingSystem = null; + var defaultOutputCalendar = null; + var twoDigitCutoffYear = 60; + var throwOnInvalid; + var Settings = class { + static get now() { + return now; + } + static set now(n2) { + now = n2; + } + static set defaultZone(zone) { + defaultZone = zone; + } + static get defaultZone() { + return normalizeZone(defaultZone, SystemZone.instance); + } + static get defaultLocale() { + return defaultLocale; + } + static set defaultLocale(locale) { + defaultLocale = locale; + } + static get defaultNumberingSystem() { + return defaultNumberingSystem; + } + static set defaultNumberingSystem(numberingSystem) { + defaultNumberingSystem = numberingSystem; + } + static get defaultOutputCalendar() { + return defaultOutputCalendar; + } + static set defaultOutputCalendar(outputCalendar) { + defaultOutputCalendar = outputCalendar; + } + static get twoDigitCutoffYear() { + return twoDigitCutoffYear; + } + static set twoDigitCutoffYear(cutoffYear) { + twoDigitCutoffYear = cutoffYear % 100; + } + static get throwOnInvalid() { + return throwOnInvalid; + } + static set throwOnInvalid(t) { + throwOnInvalid = t; + } + static resetCaches() { + Locale.resetCache(); + IANAZone.resetCache(); + } + }; + function isUndefined(o) { + return typeof o === "undefined"; + } + function isNumber(o) { + return typeof o === "number"; + } + function isInteger(o) { + return typeof o === "number" && o % 1 === 0; + } + function isString(o) { + return typeof o === "string"; + } + function isDate(o) { + return Object.prototype.toString.call(o) === "[object Date]"; + } + function hasRelative() { + try { + return typeof Intl !== "undefined" && !!Intl.RelativeTimeFormat; + } catch (e) { + return false; + } + } + function maybeArray(thing) { + return Array.isArray(thing) ? thing : [thing]; + } + function bestBy(arr, by, compare) { + if (arr.length === 0) { + return void 0; + } + return arr.reduce((best, next) => { + const pair = [by(next), next]; + if (!best) { + return pair; + } else if (compare(best[0], pair[0]) === best[0]) { + return best; + } else { + return pair; + } + }, null)[1]; + } + function pick(obj, keys) { + return keys.reduce((a, k) => { + a[k] = obj[k]; + return a; + }, {}); + } + function hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); + } + function integerBetween(thing, bottom, top) { + return isInteger(thing) && thing >= bottom && thing <= top; + } + function floorMod(x, n2) { + return x - n2 * Math.floor(x / n2); + } + function padStart(input, n2 = 2) { + const isNeg = input < 0; + let padded; + if (isNeg) { + padded = "-" + ("" + -input).padStart(n2, "0"); + } else { + padded = ("" + input).padStart(n2, "0"); + } + return padded; + } + function parseInteger(string) { + if (isUndefined(string) || string === null || string === "") { + return void 0; + } else { + return parseInt(string, 10); + } + } + function parseFloating(string) { + if (isUndefined(string) || string === null || string === "") { + return void 0; + } else { + return parseFloat(string); + } + } + function parseMillis(fraction) { + if (isUndefined(fraction) || fraction === null || fraction === "") { + return void 0; + } else { + const f = parseFloat("0." + fraction) * 1e3; + return Math.floor(f); + } + } + function roundTo(number, digits, towardZero = false) { + const factor = __pow(10, digits), rounder = towardZero ? Math.trunc : Math.round; + return rounder(number * factor) / factor; + } + function isLeapYear(year) { + return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); + } + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } + function daysInMonth(year, month) { + const modMonth = floorMod(month - 1, 12) + 1, modYear = year + (month - modMonth) / 12; + if (modMonth === 2) { + return isLeapYear(modYear) ? 29 : 28; + } else { + return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1]; + } + } + function objToLocalTS(obj) { + let d = Date.UTC(obj.year, obj.month - 1, obj.day, obj.hour, obj.minute, obj.second, obj.millisecond); + if (obj.year < 100 && obj.year >= 0) { + d = new Date(d); + d.setUTCFullYear(obj.year, obj.month - 1, obj.day); + } + return +d; + } + function weeksInWeekYear(weekYear) { + const p1 = (weekYear + Math.floor(weekYear / 4) - Math.floor(weekYear / 100) + Math.floor(weekYear / 400)) % 7, last = weekYear - 1, p2 = (last + Math.floor(last / 4) - Math.floor(last / 100) + Math.floor(last / 400)) % 7; + return p1 === 4 || p2 === 3 ? 53 : 52; + } + function untruncateYear(year) { + if (year > 99) { + return year; + } else + return year > Settings.twoDigitCutoffYear ? 1900 + year : 2e3 + year; + } + function parseZoneInfo(ts, offsetFormat, locale, timeZone = null) { + const date = new Date(ts), intlOpts = { + hourCycle: "h23", + year: "numeric", + month: "2-digit", + day: "2-digit", + hour: "2-digit", + minute: "2-digit" + }; + if (timeZone) { + intlOpts.timeZone = timeZone; + } + const modified = __spreadValues({ timeZoneName: offsetFormat }, intlOpts); + const parsed = new Intl.DateTimeFormat(locale, modified).formatToParts(date).find((m) => m.type.toLowerCase() === "timezonename"); + return parsed ? parsed.value : null; + } + function signedOffset(offHourStr, offMinuteStr) { + let offHour = parseInt(offHourStr, 10); + if (Number.isNaN(offHour)) { + offHour = 0; + } + const offMin = parseInt(offMinuteStr, 10) || 0, offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin; + return offHour * 60 + offMinSigned; + } + function asNumber(value) { + const numericValue = Number(value); + if (typeof value === "boolean" || value === "" || Number.isNaN(numericValue)) + throw new InvalidArgumentError(`Invalid unit value ${value}`); + return numericValue; + } + function normalizeObject(obj, normalizer) { + const normalized = {}; + for (const u in obj) { + if (hasOwnProperty(obj, u)) { + const v = obj[u]; + if (v === void 0 || v === null) + continue; + normalized[normalizer(u)] = asNumber(v); + } + } + return normalized; + } + function formatOffset(offset2, format) { + const hours = Math.trunc(Math.abs(offset2 / 60)), minutes = Math.trunc(Math.abs(offset2 % 60)), sign = offset2 >= 0 ? "+" : "-"; + switch (format) { + case "short": + return `${sign}${padStart(hours, 2)}:${padStart(minutes, 2)}`; + case "narrow": + return `${sign}${hours}${minutes > 0 ? `:${minutes}` : ""}`; + case "techie": + return `${sign}${padStart(hours, 2)}${padStart(minutes, 2)}`; + default: + throw new RangeError(`Value format ${format} is out of range for property format`); + } + } + function timeObject(obj) { + return pick(obj, ["hour", "minute", "second", "millisecond"]); + } + var monthsLong = [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ]; + var monthsShort = [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec" + ]; + var monthsNarrow = ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"]; + function months(length) { + switch (length) { + case "narrow": + return [...monthsNarrow]; + case "short": + return [...monthsShort]; + case "long": + return [...monthsLong]; + case "numeric": + return ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"]; + case "2-digit": + return ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"]; + default: + return null; + } + } + var weekdaysLong = [ + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + "Sunday" + ]; + var weekdaysShort = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]; + var weekdaysNarrow = ["M", "T", "W", "T", "F", "S", "S"]; + function weekdays(length) { + switch (length) { + case "narrow": + return [...weekdaysNarrow]; + case "short": + return [...weekdaysShort]; + case "long": + return [...weekdaysLong]; + case "numeric": + return ["1", "2", "3", "4", "5", "6", "7"]; + default: + return null; + } + } + var meridiems = ["AM", "PM"]; + var erasLong = ["Before Christ", "Anno Domini"]; + var erasShort = ["BC", "AD"]; + var erasNarrow = ["B", "A"]; + function eras(length) { + switch (length) { + case "narrow": + return [...erasNarrow]; + case "short": + return [...erasShort]; + case "long": + return [...erasLong]; + default: + return null; + } + } + function meridiemForDateTime(dt) { + return meridiems[dt.hour < 12 ? 0 : 1]; + } + function weekdayForDateTime(dt, length) { + return weekdays(length)[dt.weekday - 1]; + } + function monthForDateTime(dt, length) { + return months(length)[dt.month - 1]; + } + function eraForDateTime(dt, length) { + return eras(length)[dt.year < 0 ? 0 : 1]; + } + function formatRelativeTime(unit, count, numeric = "always", narrow = false) { + const units = { + years: ["year", "yr."], + quarters: ["quarter", "qtr."], + months: ["month", "mo."], + weeks: ["week", "wk."], + days: ["day", "day", "days"], + hours: ["hour", "hr."], + minutes: ["minute", "min."], + seconds: ["second", "sec."] + }; + const lastable = ["hours", "minutes", "seconds"].indexOf(unit) === -1; + if (numeric === "auto" && lastable) { + const isDay = unit === "days"; + switch (count) { + case 1: + return isDay ? "tomorrow" : `next ${units[unit][0]}`; + case -1: + return isDay ? "yesterday" : `last ${units[unit][0]}`; + case 0: + return isDay ? "today" : `this ${units[unit][0]}`; + } + } + const isInPast = Object.is(count, -0) || count < 0, fmtValue = Math.abs(count), singular = fmtValue === 1, lilUnits = units[unit], fmtUnit = narrow ? singular ? lilUnits[1] : lilUnits[2] || lilUnits[1] : singular ? units[unit][0] : unit; + return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`; + } + function stringifyTokens(splits, tokenToString) { + let s2 = ""; + for (const token of splits) { + if (token.literal) { + s2 += token.val; + } else { + s2 += tokenToString(token.val); + } + } + return s2; + } + var macroTokenToFormatOpts = { + D: DATE_SHORT, + DD: DATE_MED, + DDD: DATE_FULL, + DDDD: DATE_HUGE, + t: TIME_SIMPLE, + tt: TIME_WITH_SECONDS, + ttt: TIME_WITH_SHORT_OFFSET, + tttt: TIME_WITH_LONG_OFFSET, + T: TIME_24_SIMPLE, + TT: TIME_24_WITH_SECONDS, + TTT: TIME_24_WITH_SHORT_OFFSET, + TTTT: TIME_24_WITH_LONG_OFFSET, + f: DATETIME_SHORT, + ff: DATETIME_MED, + fff: DATETIME_FULL, + ffff: DATETIME_HUGE, + F: DATETIME_SHORT_WITH_SECONDS, + FF: DATETIME_MED_WITH_SECONDS, + FFF: DATETIME_FULL_WITH_SECONDS, + FFFF: DATETIME_HUGE_WITH_SECONDS + }; + var Formatter = class { + static create(locale, opts = {}) { + return new Formatter(locale, opts); + } + static parseFormat(fmt) { + let current = null, currentFull = "", bracketed = false; + const splits = []; + for (let i = 0; i < fmt.length; i++) { + const c = fmt.charAt(i); + if (c === "'") { + if (currentFull.length > 0) { + splits.push({ literal: bracketed || /^\s+$/.test(currentFull), val: currentFull }); + } + current = null; + currentFull = ""; + bracketed = !bracketed; + } else if (bracketed) { + currentFull += c; + } else if (c === current) { + currentFull += c; + } else { + if (currentFull.length > 0) { + splits.push({ literal: /^\s+$/.test(currentFull), val: currentFull }); + } + currentFull = c; + current = c; + } + } + if (currentFull.length > 0) { + splits.push({ literal: bracketed || /^\s+$/.test(currentFull), val: currentFull }); + } + return splits; + } + static macroTokenToFormatOpts(token) { + return macroTokenToFormatOpts[token]; + } + constructor(locale, formatOpts) { + this.opts = formatOpts; + this.loc = locale; + this.systemLoc = null; + } + formatWithSystemDefault(dt, opts) { + if (this.systemLoc === null) { + this.systemLoc = this.loc.redefaultToSystem(); + } + const df = this.systemLoc.dtFormatter(dt, __spreadValues(__spreadValues({}, this.opts), opts)); + return df.format(); + } + dtFormatter(dt, opts = {}) { + return this.loc.dtFormatter(dt, __spreadValues(__spreadValues({}, this.opts), opts)); + } + formatDateTime(dt, opts) { + return this.dtFormatter(dt, opts).format(); + } + formatDateTimeParts(dt, opts) { + return this.dtFormatter(dt, opts).formatToParts(); + } + formatInterval(interval, opts) { + const df = this.dtFormatter(interval.start, opts); + return df.dtf.formatRange(interval.start.toJSDate(), interval.end.toJSDate()); + } + resolvedOptions(dt, opts) { + return this.dtFormatter(dt, opts).resolvedOptions(); + } + num(n2, p = 0) { + if (this.opts.forceSimple) { + return padStart(n2, p); + } + const opts = __spreadValues({}, this.opts); + if (p > 0) { + opts.padTo = p; + } + return this.loc.numberFormatter(opts).format(n2); + } + formatDateTimeFromString(dt, fmt) { + const knownEnglish = this.loc.listingMode() === "en", useDateTimeFormatter = this.loc.outputCalendar && this.loc.outputCalendar !== "gregory", string = (opts, extract) => this.loc.extract(dt, opts, extract), formatOffset2 = (opts) => { + if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) { + return "Z"; + } + return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : ""; + }, meridiem = () => knownEnglish ? meridiemForDateTime(dt) : string({ hour: "numeric", hourCycle: "h12" }, "dayperiod"), month = (length, standalone) => knownEnglish ? monthForDateTime(dt, length) : string(standalone ? { month: length } : { month: length, day: "numeric" }, "month"), weekday = (length, standalone) => knownEnglish ? weekdayForDateTime(dt, length) : string(standalone ? { weekday: length } : { weekday: length, month: "long", day: "numeric" }, "weekday"), maybeMacro = (token) => { + const formatOpts = Formatter.macroTokenToFormatOpts(token); + if (formatOpts) { + return this.formatWithSystemDefault(dt, formatOpts); + } else { + return token; + } + }, era = (length) => knownEnglish ? eraForDateTime(dt, length) : string({ era: length }, "era"), tokenToString = (token) => { + switch (token) { + case "S": + return this.num(dt.millisecond); + case "u": + case "SSS": + return this.num(dt.millisecond, 3); + case "s": + return this.num(dt.second); + case "ss": + return this.num(dt.second, 2); + case "uu": + return this.num(Math.floor(dt.millisecond / 10), 2); + case "uuu": + return this.num(Math.floor(dt.millisecond / 100)); + case "m": + return this.num(dt.minute); + case "mm": + return this.num(dt.minute, 2); + case "h": + return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12); + case "hh": + return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2); + case "H": + return this.num(dt.hour); + case "HH": + return this.num(dt.hour, 2); + case "Z": + return formatOffset2({ format: "narrow", allowZ: this.opts.allowZ }); + case "ZZ": + return formatOffset2({ format: "short", allowZ: this.opts.allowZ }); + case "ZZZ": + return formatOffset2({ format: "techie", allowZ: this.opts.allowZ }); + case "ZZZZ": + return dt.zone.offsetName(dt.ts, { format: "short", locale: this.loc.locale }); + case "ZZZZZ": + return dt.zone.offsetName(dt.ts, { format: "long", locale: this.loc.locale }); + case "z": + return dt.zoneName; + case "a": + return meridiem(); + case "d": + return useDateTimeFormatter ? string({ day: "numeric" }, "day") : this.num(dt.day); + case "dd": + return useDateTimeFormatter ? string({ day: "2-digit" }, "day") : this.num(dt.day, 2); + case "c": + return this.num(dt.weekday); + case "ccc": + return weekday("short", true); + case "cccc": + return weekday("long", true); + case "ccccc": + return weekday("narrow", true); + case "E": + return this.num(dt.weekday); + case "EEE": + return weekday("short", false); + case "EEEE": + return weekday("long", false); + case "EEEEE": + return weekday("narrow", false); + case "L": + return useDateTimeFormatter ? string({ month: "numeric", day: "numeric" }, "month") : this.num(dt.month); + case "LL": + return useDateTimeFormatter ? string({ month: "2-digit", day: "numeric" }, "month") : this.num(dt.month, 2); + case "LLL": + return month("short", true); + case "LLLL": + return month("long", true); + case "LLLLL": + return month("narrow", true); + case "M": + return useDateTimeFormatter ? string({ month: "numeric" }, "month") : this.num(dt.month); + case "MM": + return useDateTimeFormatter ? string({ month: "2-digit" }, "month") : this.num(dt.month, 2); + case "MMM": + return month("short", false); + case "MMMM": + return month("long", false); + case "MMMMM": + return month("narrow", false); + case "y": + return useDateTimeFormatter ? string({ year: "numeric" }, "year") : this.num(dt.year); + case "yy": + return useDateTimeFormatter ? string({ year: "2-digit" }, "year") : this.num(dt.year.toString().slice(-2), 2); + case "yyyy": + return useDateTimeFormatter ? string({ year: "numeric" }, "year") : this.num(dt.year, 4); + case "yyyyyy": + return useDateTimeFormatter ? string({ year: "numeric" }, "year") : this.num(dt.year, 6); + case "G": + return era("short"); + case "GG": + return era("long"); + case "GGGGG": + return era("narrow"); + case "kk": + return this.num(dt.weekYear.toString().slice(-2), 2); + case "kkkk": + return this.num(dt.weekYear, 4); + case "W": + return this.num(dt.weekNumber); + case "WW": + return this.num(dt.weekNumber, 2); + case "o": + return this.num(dt.ordinal); + case "ooo": + return this.num(dt.ordinal, 3); + case "q": + return this.num(dt.quarter); + case "qq": + return this.num(dt.quarter, 2); + case "X": + return this.num(Math.floor(dt.ts / 1e3)); + case "x": + return this.num(dt.ts); + default: + return maybeMacro(token); + } + }; + return stringifyTokens(Formatter.parseFormat(fmt), tokenToString); + } + formatDurationFromString(dur, fmt) { + const tokenToField = (token) => { + switch (token[0]) { + case "S": + return "millisecond"; + case "s": + return "second"; + case "m": + return "minute"; + case "h": + return "hour"; + case "d": + return "day"; + case "w": + return "week"; + case "M": + return "month"; + case "y": + return "year"; + default: + return null; + } + }, tokenToString = (lildur) => (token) => { + const mapped = tokenToField(token); + if (mapped) { + return this.num(lildur.get(mapped), token.length); + } else { + return token; + } + }, tokens = Formatter.parseFormat(fmt), realTokens = tokens.reduce((found, { literal, val }) => literal ? found : found.concat(val), []), collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter((t) => t)); + return stringifyTokens(tokens, tokenToString(collapsed)); + } + }; + var Invalid = class { + constructor(reason, explanation) { + this.reason = reason; + this.explanation = explanation; + } + toMessage() { + if (this.explanation) { + return `${this.reason}: ${this.explanation}`; + } else { + return this.reason; + } + } + }; + var ianaRegex = /[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/; + function combineRegexes(...regexes) { + const full = regexes.reduce((f, r) => f + r.source, ""); + return RegExp(`^${full}$`); + } + function combineExtractors(...extractors) { + return (m) => extractors.reduce(([mergedVals, mergedZone, cursor], ex) => { + const [val, zone, next] = ex(m, cursor); + return [__spreadValues(__spreadValues({}, mergedVals), val), zone || mergedZone, next]; + }, [{}, null, 1]).slice(0, 2); + } + function parse(s2, ...patterns) { + if (s2 == null) { + return [null, null]; + } + for (const [regex, extractor] of patterns) { + const m = regex.exec(s2); + if (m) { + return extractor(m); + } + } + return [null, null]; + } + function simpleParse(...keys) { + return (match2, cursor) => { + const ret = {}; + let i; + for (i = 0; i < keys.length; i++) { + ret[keys[i]] = parseInteger(match2[cursor + i]); + } + return [ret, null, cursor + i]; + }; + } + var offsetRegex = /(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/; + var isoExtendedZone = `(?:${offsetRegex.source}?(?:\\[(${ianaRegex.source})\\])?)?`; + var isoTimeBaseRegex = /(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/; + var isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${isoExtendedZone}`); + var isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`); + var isoYmdRegex = /([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/; + var isoWeekRegex = /(\d{4})-?W(\d\d)(?:-?(\d))?/; + var isoOrdinalRegex = /(\d{4})-?(\d{3})/; + var extractISOWeekData = simpleParse("weekYear", "weekNumber", "weekDay"); + var extractISOOrdinalData = simpleParse("year", "ordinal"); + var sqlYmdRegex = /(\d{4})-(\d\d)-(\d\d)/; + var sqlTimeRegex = RegExp(`${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`); + var sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`); + function int(match2, pos, fallback) { + const m = match2[pos]; + return isUndefined(m) ? fallback : parseInteger(m); + } + function extractISOYmd(match2, cursor) { + const item = { + year: int(match2, cursor), + month: int(match2, cursor + 1, 1), + day: int(match2, cursor + 2, 1) + }; + return [item, null, cursor + 3]; + } + function extractISOTime(match2, cursor) { + const item = { + hours: int(match2, cursor, 0), + minutes: int(match2, cursor + 1, 0), + seconds: int(match2, cursor + 2, 0), + milliseconds: parseMillis(match2[cursor + 3]) + }; + return [item, null, cursor + 4]; + } + function extractISOOffset(match2, cursor) { + const local = !match2[cursor] && !match2[cursor + 1], fullOffset = signedOffset(match2[cursor + 1], match2[cursor + 2]), zone = local ? null : FixedOffsetZone.instance(fullOffset); + return [{}, zone, cursor + 3]; + } + function extractIANAZone(match2, cursor) { + const zone = match2[cursor] ? IANAZone.create(match2[cursor]) : null; + return [{}, zone, cursor + 1]; + } + var isoTimeOnly = RegExp(`^T?${isoTimeBaseRegex.source}$`); + var isoDuration = /^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/; + function extractISODuration(match2) { + const [s2, yearStr, monthStr, weekStr, dayStr, hourStr, minuteStr, secondStr, millisecondsStr] = match2; + const hasNegativePrefix = s2[0] === "-"; + const negativeSeconds = secondStr && secondStr[0] === "-"; + const maybeNegate = (num, force = false) => num !== void 0 && (force || num && hasNegativePrefix) ? -num : num; + return [ + { + years: maybeNegate(parseFloating(yearStr)), + months: maybeNegate(parseFloating(monthStr)), + weeks: maybeNegate(parseFloating(weekStr)), + days: maybeNegate(parseFloating(dayStr)), + hours: maybeNegate(parseFloating(hourStr)), + minutes: maybeNegate(parseFloating(minuteStr)), + seconds: maybeNegate(parseFloating(secondStr), secondStr === "-0"), + milliseconds: maybeNegate(parseMillis(millisecondsStr), negativeSeconds) + } + ]; + } + var obsOffsets = { + GMT: 0, + EDT: -4 * 60, + EST: -5 * 60, + CDT: -5 * 60, + CST: -6 * 60, + MDT: -6 * 60, + MST: -7 * 60, + PDT: -7 * 60, + PST: -8 * 60 + }; + function fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) { + const result = { + year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr), + month: monthsShort.indexOf(monthStr) + 1, + day: parseInteger(dayStr), + hour: parseInteger(hourStr), + minute: parseInteger(minuteStr) + }; + if (secondStr) + result.second = parseInteger(secondStr); + if (weekdayStr) { + result.weekday = weekdayStr.length > 3 ? weekdaysLong.indexOf(weekdayStr) + 1 : weekdaysShort.indexOf(weekdayStr) + 1; + } + return result; + } + var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/; + function extractRFC2822(match2) { + const [ + , + weekdayStr, + dayStr, + monthStr, + yearStr, + hourStr, + minuteStr, + secondStr, + obsOffset, + milOffset, + offHourStr, + offMinuteStr + ] = match2, result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr); + let offset2; + if (obsOffset) { + offset2 = obsOffsets[obsOffset]; + } else if (milOffset) { + offset2 = 0; + } else { + offset2 = signedOffset(offHourStr, offMinuteStr); + } + return [result, new FixedOffsetZone(offset2)]; + } + function preprocessRFC2822(s2) { + return s2.replace(/\([^()]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").trim(); + } + var rfc1123 = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/; + var rfc850 = /^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/; + var ascii = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/; + function extractRFC1123Or850(match2) { + const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match2, result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr); + return [result, FixedOffsetZone.utcInstance]; + } + function extractASCII(match2) { + const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match2, result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr); + return [result, FixedOffsetZone.utcInstance]; + } + var isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex); + var isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex); + var isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex); + var isoTimeCombinedRegex = combineRegexes(isoTimeRegex); + var extractISOYmdTimeAndOffset = combineExtractors(extractISOYmd, extractISOTime, extractISOOffset, extractIANAZone); + var extractISOWeekTimeAndOffset = combineExtractors(extractISOWeekData, extractISOTime, extractISOOffset, extractIANAZone); + var extractISOOrdinalDateAndTime = combineExtractors(extractISOOrdinalData, extractISOTime, extractISOOffset, extractIANAZone); + var extractISOTimeAndOffset = combineExtractors(extractISOTime, extractISOOffset, extractIANAZone); + function parseISODate(s2) { + return parse(s2, [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset], [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset], [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDateAndTime], [isoTimeCombinedRegex, extractISOTimeAndOffset]); + } + function parseRFC2822Date(s2) { + return parse(preprocessRFC2822(s2), [rfc2822, extractRFC2822]); + } + function parseHTTPDate(s2) { + return parse(s2, [rfc1123, extractRFC1123Or850], [rfc850, extractRFC1123Or850], [ascii, extractASCII]); + } + function parseISODuration(s2) { + return parse(s2, [isoDuration, extractISODuration]); + } + var extractISOTimeOnly = combineExtractors(extractISOTime); + function parseISOTimeOnly(s2) { + return parse(s2, [isoTimeOnly, extractISOTimeOnly]); + } + var sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex); + var sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex); + var extractISOTimeOffsetAndIANAZone = combineExtractors(extractISOTime, extractISOOffset, extractIANAZone); + function parseSQL(s2) { + return parse(s2, [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset], [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]); + } + var INVALID$2 = "Invalid Duration"; + var lowOrderMatrix = { + weeks: { + days: 7, + hours: 7 * 24, + minutes: 7 * 24 * 60, + seconds: 7 * 24 * 60 * 60, + milliseconds: 7 * 24 * 60 * 60 * 1e3 + }, + days: { + hours: 24, + minutes: 24 * 60, + seconds: 24 * 60 * 60, + milliseconds: 24 * 60 * 60 * 1e3 + }, + hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1e3 }, + minutes: { seconds: 60, milliseconds: 60 * 1e3 }, + seconds: { milliseconds: 1e3 } + }; + var casualMatrix = __spreadValues({ + years: { + quarters: 4, + months: 12, + weeks: 52, + days: 365, + hours: 365 * 24, + minutes: 365 * 24 * 60, + seconds: 365 * 24 * 60 * 60, + milliseconds: 365 * 24 * 60 * 60 * 1e3 + }, + quarters: { + months: 3, + weeks: 13, + days: 91, + hours: 91 * 24, + minutes: 91 * 24 * 60, + seconds: 91 * 24 * 60 * 60, + milliseconds: 91 * 24 * 60 * 60 * 1e3 + }, + months: { + weeks: 4, + days: 30, + hours: 30 * 24, + minutes: 30 * 24 * 60, + seconds: 30 * 24 * 60 * 60, + milliseconds: 30 * 24 * 60 * 60 * 1e3 + } + }, lowOrderMatrix); + var daysInYearAccurate = 146097 / 400; + var daysInMonthAccurate = 146097 / 4800; + var accurateMatrix = __spreadValues({ + years: { + quarters: 4, + months: 12, + weeks: daysInYearAccurate / 7, + days: daysInYearAccurate, + hours: daysInYearAccurate * 24, + minutes: daysInYearAccurate * 24 * 60, + seconds: daysInYearAccurate * 24 * 60 * 60, + milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1e3 + }, + quarters: { + months: 3, + weeks: daysInYearAccurate / 28, + days: daysInYearAccurate / 4, + hours: daysInYearAccurate * 24 / 4, + minutes: daysInYearAccurate * 24 * 60 / 4, + seconds: daysInYearAccurate * 24 * 60 * 60 / 4, + milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1e3 / 4 + }, + months: { + weeks: daysInMonthAccurate / 7, + days: daysInMonthAccurate, + hours: daysInMonthAccurate * 24, + minutes: daysInMonthAccurate * 24 * 60, + seconds: daysInMonthAccurate * 24 * 60 * 60, + milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1e3 + } + }, lowOrderMatrix); + var orderedUnits$1 = [ + "years", + "quarters", + "months", + "weeks", + "days", + "hours", + "minutes", + "seconds", + "milliseconds" + ]; + var reverseUnits = orderedUnits$1.slice(0).reverse(); + function clone$1(dur, alts, clear = false) { + const conf = { + values: clear ? alts.values : __spreadValues(__spreadValues({}, dur.values), alts.values || {}), + loc: dur.loc.clone(alts.loc), + conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy, + matrix: alts.matrix || dur.matrix + }; + return new Duration(conf); + } + function durationToMillis(matrix, vals) { + var _a; + let sum = (_a = vals.milliseconds) != null ? _a : 0; + for (const unit of reverseUnits.slice(1)) { + if (vals[unit]) { + sum += vals[unit] * matrix[unit]["milliseconds"]; + } + } + return sum; + } + function normalizeValues(matrix, vals) { + const factor = durationToMillis(matrix, vals) < 0 ? -1 : 1; + orderedUnits$1.reduceRight((previous, current) => { + if (!isUndefined(vals[current])) { + if (previous) { + const previousVal = vals[previous] * factor; + const conv = matrix[current][previous]; + const rollUp = Math.floor(previousVal / conv); + vals[current] += rollUp * factor; + vals[previous] -= rollUp * conv * factor; + } + return current; + } else { + return previous; + } + }, null); + orderedUnits$1.reduce((previous, current) => { + if (!isUndefined(vals[current])) { + if (previous) { + const fraction = vals[previous] % 1; + vals[previous] -= fraction; + vals[current] += fraction * matrix[previous][current]; + } + return current; + } else { + return previous; + } + }, null); + } + function removeZeroes(vals) { + const newVals = {}; + for (const [key, value] of Object.entries(vals)) { + if (value !== 0) { + newVals[key] = value; + } + } + return newVals; + } + var Duration = class { + constructor(config) { + const accurate = config.conversionAccuracy === "longterm" || false; + let matrix = accurate ? accurateMatrix : casualMatrix; + if (config.matrix) { + matrix = config.matrix; + } + this.values = config.values; + this.loc = config.loc || Locale.create(); + this.conversionAccuracy = accurate ? "longterm" : "casual"; + this.invalid = config.invalid || null; + this.matrix = matrix; + this.isLuxonDuration = true; + } + static fromMillis(count, opts) { + return Duration.fromObject({ milliseconds: count }, opts); + } + static fromObject(obj, opts = {}) { + if (obj == null || typeof obj !== "object") { + throw new InvalidArgumentError(`Duration.fromObject: argument expected to be an object, got ${obj === null ? "null" : typeof obj}`); + } + return new Duration({ + values: normalizeObject(obj, Duration.normalizeUnit), + loc: Locale.fromObject(opts), + conversionAccuracy: opts.conversionAccuracy, + matrix: opts.matrix + }); + } + static fromDurationLike(durationLike) { + if (isNumber(durationLike)) { + return Duration.fromMillis(durationLike); + } else if (Duration.isDuration(durationLike)) { + return durationLike; + } else if (typeof durationLike === "object") { + return Duration.fromObject(durationLike); + } else { + throw new InvalidArgumentError(`Unknown duration argument ${durationLike} of type ${typeof durationLike}`); + } + } + static fromISO(text, opts) { + const [parsed] = parseISODuration(text); + if (parsed) { + return Duration.fromObject(parsed, opts); + } else { + return Duration.invalid("unparsable", `the input "${text}" can't be parsed as ISO 8601`); + } + } + static fromISOTime(text, opts) { + const [parsed] = parseISOTimeOnly(text); + if (parsed) { + return Duration.fromObject(parsed, opts); + } else { + return Duration.invalid("unparsable", `the input "${text}" can't be parsed as ISO 8601`); + } + } + static invalid(reason, explanation = null) { + if (!reason) { + throw new InvalidArgumentError("need to specify a reason the Duration is invalid"); + } + const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation); + if (Settings.throwOnInvalid) { + throw new InvalidDurationError(invalid); + } else { + return new Duration({ invalid }); + } + } + static normalizeUnit(unit) { + const normalized = { + year: "years", + years: "years", + quarter: "quarters", + quarters: "quarters", + month: "months", + months: "months", + week: "weeks", + weeks: "weeks", + day: "days", + days: "days", + hour: "hours", + hours: "hours", + minute: "minutes", + minutes: "minutes", + second: "seconds", + seconds: "seconds", + millisecond: "milliseconds", + milliseconds: "milliseconds" + }[unit ? unit.toLowerCase() : unit]; + if (!normalized) + throw new InvalidUnitError(unit); + return normalized; + } + static isDuration(o) { + return o && o.isLuxonDuration || false; + } + get locale() { + return this.isValid ? this.loc.locale : null; + } + get numberingSystem() { + return this.isValid ? this.loc.numberingSystem : null; + } + toFormat(fmt, opts = {}) { + const fmtOpts = __spreadProps(__spreadValues({}, opts), { + floor: opts.round !== false && opts.floor !== false + }); + return this.isValid ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt) : INVALID$2; + } + toHuman(opts = {}) { + if (!this.isValid) + return INVALID$2; + const l2 = orderedUnits$1.map((unit) => { + const val = this.values[unit]; + if (isUndefined(val)) { + return null; + } + return this.loc.numberFormatter(__spreadProps(__spreadValues({ style: "unit", unitDisplay: "long" }, opts), { unit: unit.slice(0, -1) })).format(val); + }).filter((n2) => n2); + return this.loc.listFormatter(__spreadValues({ type: "conjunction", style: opts.listStyle || "narrow" }, opts)).format(l2); + } + toObject() { + if (!this.isValid) + return {}; + return __spreadValues({}, this.values); + } + toISO() { + if (!this.isValid) + return null; + let s2 = "P"; + if (this.years !== 0) + s2 += this.years + "Y"; + if (this.months !== 0 || this.quarters !== 0) + s2 += this.months + this.quarters * 3 + "M"; + if (this.weeks !== 0) + s2 += this.weeks + "W"; + if (this.days !== 0) + s2 += this.days + "D"; + if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0) + s2 += "T"; + if (this.hours !== 0) + s2 += this.hours + "H"; + if (this.minutes !== 0) + s2 += this.minutes + "M"; + if (this.seconds !== 0 || this.milliseconds !== 0) + s2 += roundTo(this.seconds + this.milliseconds / 1e3, 3) + "S"; + if (s2 === "P") + s2 += "T0S"; + return s2; + } + toISOTime(opts = {}) { + if (!this.isValid) + return null; + const millis = this.toMillis(); + if (millis < 0 || millis >= 864e5) + return null; + opts = __spreadProps(__spreadValues({ + suppressMilliseconds: false, + suppressSeconds: false, + includePrefix: false, + format: "extended" + }, opts), { + includeOffset: false + }); + const dateTime = DateTime.fromMillis(millis, { zone: "UTC" }); + return dateTime.toISOTime(opts); + } + toJSON() { + return this.toISO(); + } + toString() { + return this.toISO(); + } + toMillis() { + if (!this.isValid) + return NaN; + return durationToMillis(this.matrix, this.values); + } + valueOf() { + return this.toMillis(); + } + plus(duration) { + if (!this.isValid) + return this; + const dur = Duration.fromDurationLike(duration), result = {}; + for (const k of orderedUnits$1) { + if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) { + result[k] = dur.get(k) + this.get(k); + } + } + return clone$1(this, { values: result }, true); + } + minus(duration) { + if (!this.isValid) + return this; + const dur = Duration.fromDurationLike(duration); + return this.plus(dur.negate()); + } + mapUnits(fn2) { + if (!this.isValid) + return this; + const result = {}; + for (const k of Object.keys(this.values)) { + result[k] = asNumber(fn2(this.values[k], k)); + } + return clone$1(this, { values: result }, true); + } + get(unit) { + return this[Duration.normalizeUnit(unit)]; + } + set(values) { + if (!this.isValid) + return this; + const mixed = __spreadValues(__spreadValues({}, this.values), normalizeObject(values, Duration.normalizeUnit)); + return clone$1(this, { values: mixed }); + } + reconfigure({ locale, numberingSystem, conversionAccuracy, matrix } = {}) { + const loc = this.loc.clone({ locale, numberingSystem }); + const opts = { loc, matrix, conversionAccuracy }; + return clone$1(this, opts); + } + as(unit) { + return this.isValid ? this.shiftTo(unit).get(unit) : NaN; + } + normalize() { + if (!this.isValid) + return this; + const vals = this.toObject(); + normalizeValues(this.matrix, vals); + return clone$1(this, { values: vals }, true); + } + rescale() { + if (!this.isValid) + return this; + const vals = removeZeroes(this.normalize().shiftToAll().toObject()); + return clone$1(this, { values: vals }, true); + } + shiftTo(...units) { + if (!this.isValid) + return this; + if (units.length === 0) { + return this; + } + units = units.map((u) => Duration.normalizeUnit(u)); + const built = {}, accumulated = {}, vals = this.toObject(); + let lastUnit; + for (const k of orderedUnits$1) { + if (units.indexOf(k) >= 0) { + lastUnit = k; + let own = 0; + for (const ak in accumulated) { + own += this.matrix[ak][k] * accumulated[ak]; + accumulated[ak] = 0; + } + if (isNumber(vals[k])) { + own += vals[k]; + } + const i = Math.trunc(own); + built[k] = i; + accumulated[k] = (own * 1e3 - i * 1e3) / 1e3; + } else if (isNumber(vals[k])) { + accumulated[k] = vals[k]; + } + } + for (const key in accumulated) { + if (accumulated[key] !== 0) { + built[lastUnit] += key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key]; + } + } + normalizeValues(this.matrix, built); + return clone$1(this, { values: built }, true); + } + shiftToAll() { + if (!this.isValid) + return this; + return this.shiftTo("years", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds"); + } + negate() { + if (!this.isValid) + return this; + const negated = {}; + for (const k of Object.keys(this.values)) { + negated[k] = this.values[k] === 0 ? 0 : -this.values[k]; + } + return clone$1(this, { values: negated }, true); + } + get years() { + return this.isValid ? this.values.years || 0 : NaN; + } + get quarters() { + return this.isValid ? this.values.quarters || 0 : NaN; + } + get months() { + return this.isValid ? this.values.months || 0 : NaN; + } + get weeks() { + return this.isValid ? this.values.weeks || 0 : NaN; + } + get days() { + return this.isValid ? this.values.days || 0 : NaN; + } + get hours() { + return this.isValid ? this.values.hours || 0 : NaN; + } + get minutes() { + return this.isValid ? this.values.minutes || 0 : NaN; + } + get seconds() { + return this.isValid ? this.values.seconds || 0 : NaN; + } + get milliseconds() { + return this.isValid ? this.values.milliseconds || 0 : NaN; + } + get isValid() { + return this.invalid === null; + } + get invalidReason() { + return this.invalid ? this.invalid.reason : null; + } + get invalidExplanation() { + return this.invalid ? this.invalid.explanation : null; + } + equals(other) { + if (!this.isValid || !other.isValid) { + return false; + } + if (!this.loc.equals(other.loc)) { + return false; + } + function eq(v1, v2) { + if (v1 === void 0 || v1 === 0) + return v2 === void 0 || v2 === 0; + return v1 === v2; + } + for (const u of orderedUnits$1) { + if (!eq(this.values[u], other.values[u])) { + return false; + } + } + return true; + } + }; + var INVALID$1 = "Invalid Interval"; + function validateStartEnd(start, end) { + if (!start || !start.isValid) { + return Interval.invalid("missing or invalid start"); + } else if (!end || !end.isValid) { + return Interval.invalid("missing or invalid end"); + } else if (end < start) { + return Interval.invalid("end before start", `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`); + } else { + return null; + } + } + var Interval = class { + constructor(config) { + this.s = config.start; + this.e = config.end; + this.invalid = config.invalid || null; + this.isLuxonInterval = true; + } + static invalid(reason, explanation = null) { + if (!reason) { + throw new InvalidArgumentError("need to specify a reason the Interval is invalid"); + } + const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation); + if (Settings.throwOnInvalid) { + throw new InvalidIntervalError(invalid); + } else { + return new Interval({ invalid }); + } + } + static fromDateTimes(start, end) { + const builtStart = friendlyDateTime(start), builtEnd = friendlyDateTime(end); + const validateError = validateStartEnd(builtStart, builtEnd); + if (validateError == null) { + return new Interval({ + start: builtStart, + end: builtEnd + }); + } else { + return validateError; + } + } + static after(start, duration) { + const dur = Duration.fromDurationLike(duration), dt = friendlyDateTime(start); + return Interval.fromDateTimes(dt, dt.plus(dur)); + } + static before(end, duration) { + const dur = Duration.fromDurationLike(duration), dt = friendlyDateTime(end); + return Interval.fromDateTimes(dt.minus(dur), dt); + } + static fromISO(text, opts) { + const [s2, e] = (text || "").split("/", 2); + if (s2 && e) { + let start, startIsValid; + try { + start = DateTime.fromISO(s2, opts); + startIsValid = start.isValid; + } catch (e2) { + startIsValid = false; + } + let end, endIsValid; + try { + end = DateTime.fromISO(e, opts); + endIsValid = end.isValid; + } catch (e2) { + endIsValid = false; + } + if (startIsValid && endIsValid) { + return Interval.fromDateTimes(start, end); + } + if (startIsValid) { + const dur = Duration.fromISO(e, opts); + if (dur.isValid) { + return Interval.after(start, dur); + } + } else if (endIsValid) { + const dur = Duration.fromISO(s2, opts); + if (dur.isValid) { + return Interval.before(end, dur); + } + } + } + return Interval.invalid("unparsable", `the input "${text}" can't be parsed as ISO 8601`); + } + static isInterval(o) { + return o && o.isLuxonInterval || false; + } + get start() { + return this.isValid ? this.s : null; + } + get end() { + return this.isValid ? this.e : null; + } + get isValid() { + return this.invalidReason === null; + } + get invalidReason() { + return this.invalid ? this.invalid.reason : null; + } + get invalidExplanation() { + return this.invalid ? this.invalid.explanation : null; + } + length(unit = "milliseconds") { + return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN; + } + count(unit = "milliseconds") { + if (!this.isValid) + return NaN; + const start = this.start.startOf(unit), end = this.end.startOf(unit); + return Math.floor(end.diff(start, unit).get(unit)) + (end.valueOf() !== this.end.valueOf()); + } + hasSame(unit) { + return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false; + } + isEmpty() { + return this.s.valueOf() === this.e.valueOf(); + } + isAfter(dateTime) { + if (!this.isValid) + return false; + return this.s > dateTime; + } + isBefore(dateTime) { + if (!this.isValid) + return false; + return this.e <= dateTime; + } + contains(dateTime) { + if (!this.isValid) + return false; + return this.s <= dateTime && this.e > dateTime; + } + set({ start, end } = {}) { + if (!this.isValid) + return this; + return Interval.fromDateTimes(start || this.s, end || this.e); + } + splitAt(...dateTimes) { + if (!this.isValid) + return []; + const sorted = dateTimes.map(friendlyDateTime).filter((d) => this.contains(d)).sort(), results = []; + let { s: s2 } = this, i = 0; + while (s2 < this.e) { + const added = sorted[i] || this.e, next = +added > +this.e ? this.e : added; + results.push(Interval.fromDateTimes(s2, next)); + s2 = next; + i += 1; + } + return results; + } + splitBy(duration) { + const dur = Duration.fromDurationLike(duration); + if (!this.isValid || !dur.isValid || dur.as("milliseconds") === 0) { + return []; + } + let { s: s2 } = this, idx = 1, next; + const results = []; + while (s2 < this.e) { + const added = this.start.plus(dur.mapUnits((x) => x * idx)); + next = +added > +this.e ? this.e : added; + results.push(Interval.fromDateTimes(s2, next)); + s2 = next; + idx += 1; + } + return results; + } + divideEqually(numberOfParts) { + if (!this.isValid) + return []; + return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts); + } + overlaps(other) { + return this.e > other.s && this.s < other.e; + } + abutsStart(other) { + if (!this.isValid) + return false; + return +this.e === +other.s; + } + abutsEnd(other) { + if (!this.isValid) + return false; + return +other.e === +this.s; + } + engulfs(other) { + if (!this.isValid) + return false; + return this.s <= other.s && this.e >= other.e; + } + equals(other) { + if (!this.isValid || !other.isValid) { + return false; + } + return this.s.equals(other.s) && this.e.equals(other.e); + } + intersection(other) { + if (!this.isValid) + return this; + const s2 = this.s > other.s ? this.s : other.s, e = this.e < other.e ? this.e : other.e; + if (s2 >= e) { + return null; + } else { + return Interval.fromDateTimes(s2, e); + } + } + union(other) { + if (!this.isValid) + return this; + const s2 = this.s < other.s ? this.s : other.s, e = this.e > other.e ? this.e : other.e; + return Interval.fromDateTimes(s2, e); + } + static merge(intervals) { + const [found, final] = intervals.sort((a, b) => a.s - b.s).reduce(([sofar, current], item) => { + if (!current) { + return [sofar, item]; + } else if (current.overlaps(item) || current.abutsStart(item)) { + return [sofar, current.union(item)]; + } else { + return [sofar.concat([current]), item]; + } + }, [[], null]); + if (final) { + found.push(final); + } + return found; + } + static xor(intervals) { + let start = null, currentCount = 0; + const results = [], ends = intervals.map((i) => [ + { time: i.s, type: "s" }, + { time: i.e, type: "e" } + ]), flattened = Array.prototype.concat(...ends), arr = flattened.sort((a, b) => a.time - b.time); + for (const i of arr) { + currentCount += i.type === "s" ? 1 : -1; + if (currentCount === 1) { + start = i.time; + } else { + if (start && +start !== +i.time) { + results.push(Interval.fromDateTimes(start, i.time)); + } + start = null; + } + } + return Interval.merge(results); + } + difference(...intervals) { + return Interval.xor([this].concat(intervals)).map((i) => this.intersection(i)).filter((i) => i && !i.isEmpty()); + } + toString() { + if (!this.isValid) + return INVALID$1; + return `[${this.s.toISO()} \u2013 ${this.e.toISO()})`; + } + toLocaleString(formatOpts = DATE_SHORT, opts = {}) { + return this.isValid ? Formatter.create(this.s.loc.clone(opts), formatOpts).formatInterval(this) : INVALID$1; + } + toISO(opts) { + if (!this.isValid) + return INVALID$1; + return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`; + } + toISODate() { + if (!this.isValid) + return INVALID$1; + return `${this.s.toISODate()}/${this.e.toISODate()}`; + } + toISOTime(opts) { + if (!this.isValid) + return INVALID$1; + return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`; + } + toFormat(dateFormat, { separator = " \u2013 " } = {}) { + if (!this.isValid) + return INVALID$1; + return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`; + } + toDuration(unit, opts) { + if (!this.isValid) { + return Duration.invalid(this.invalidReason); + } + return this.e.diff(this.s, unit, opts); + } + mapEndpoints(mapFn) { + return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e)); + } + }; + var Info = class { + static hasDST(zone = Settings.defaultZone) { + const proto = DateTime.now().setZone(zone).set({ month: 12 }); + return !zone.isUniversal && proto.offset !== proto.set({ month: 6 }).offset; + } + static isValidIANAZone(zone) { + return IANAZone.isValidZone(zone); + } + static normalizeZone(input) { + return normalizeZone(input, Settings.defaultZone); + } + static months(length = "long", { locale = null, numberingSystem = null, locObj = null, outputCalendar = "gregory" } = {}) { + return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length); + } + static monthsFormat(length = "long", { locale = null, numberingSystem = null, locObj = null, outputCalendar = "gregory" } = {}) { + return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length, true); + } + static weekdays(length = "long", { locale = null, numberingSystem = null, locObj = null } = {}) { + return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length); + } + static weekdaysFormat(length = "long", { locale = null, numberingSystem = null, locObj = null } = {}) { + return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length, true); + } + static meridiems({ locale = null } = {}) { + return Locale.create(locale).meridiems(); + } + static eras(length = "short", { locale = null } = {}) { + return Locale.create(locale, null, "gregory").eras(length); + } + static features() { + return { relative: hasRelative() }; + } + }; + function dayDiff(earlier, later) { + const utcDayStart = (dt) => dt.toUTC(0, { keepLocalTime: true }).startOf("day").valueOf(), ms = utcDayStart(later) - utcDayStart(earlier); + return Math.floor(Duration.fromMillis(ms).as("days")); + } + function highOrderDiffs(cursor, later, units) { + const differs = [ + ["years", (a, b) => b.year - a.year], + ["quarters", (a, b) => b.quarter - a.quarter + (b.year - a.year) * 4], + ["months", (a, b) => b.month - a.month + (b.year - a.year) * 12], + [ + "weeks", + (a, b) => { + const days = dayDiff(a, b); + return (days - days % 7) / 7; + } + ], + ["days", dayDiff] + ]; + const results = {}; + const earlier = cursor; + let lowestOrder, highWater; + for (const [unit, differ] of differs) { + if (units.indexOf(unit) >= 0) { + lowestOrder = unit; + results[unit] = differ(cursor, later); + highWater = earlier.plus(results); + if (highWater > later) { + results[unit]--; + cursor = earlier.plus(results); + if (cursor > later) { + highWater = cursor; + results[unit]--; + cursor = earlier.plus(results); + } + } else { + cursor = highWater; + } + } + } + return [cursor, results, highWater, lowestOrder]; + } + function diff(earlier, later, units, opts) { + let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units); + const remainingMillis = later - cursor; + const lowerOrderUnits = units.filter((u) => ["hours", "minutes", "seconds", "milliseconds"].indexOf(u) >= 0); + if (lowerOrderUnits.length === 0) { + if (highWater < later) { + highWater = cursor.plus({ [lowestOrder]: 1 }); + } + if (highWater !== cursor) { + results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor); + } + } + const duration = Duration.fromObject(results, opts); + if (lowerOrderUnits.length > 0) { + return Duration.fromMillis(remainingMillis, opts).shiftTo(...lowerOrderUnits).plus(duration); + } else { + return duration; + } + } + var numberingSystems = { + arab: "[\u0660-\u0669]", + arabext: "[\u06F0-\u06F9]", + bali: "[\u1B50-\u1B59]", + beng: "[\u09E6-\u09EF]", + deva: "[\u0966-\u096F]", + fullwide: "[\uFF10-\uFF19]", + gujr: "[\u0AE6-\u0AEF]", + hanidec: "[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]", + khmr: "[\u17E0-\u17E9]", + knda: "[\u0CE6-\u0CEF]", + laoo: "[\u0ED0-\u0ED9]", + limb: "[\u1946-\u194F]", + mlym: "[\u0D66-\u0D6F]", + mong: "[\u1810-\u1819]", + mymr: "[\u1040-\u1049]", + orya: "[\u0B66-\u0B6F]", + tamldec: "[\u0BE6-\u0BEF]", + telu: "[\u0C66-\u0C6F]", + thai: "[\u0E50-\u0E59]", + tibt: "[\u0F20-\u0F29]", + latn: "\\d" + }; + var numberingSystemsUTF16 = { + arab: [1632, 1641], + arabext: [1776, 1785], + bali: [6992, 7001], + beng: [2534, 2543], + deva: [2406, 2415], + fullwide: [65296, 65303], + gujr: [2790, 2799], + khmr: [6112, 6121], + knda: [3302, 3311], + laoo: [3792, 3801], + limb: [6470, 6479], + mlym: [3430, 3439], + mong: [6160, 6169], + mymr: [4160, 4169], + orya: [2918, 2927], + tamldec: [3046, 3055], + telu: [3174, 3183], + thai: [3664, 3673], + tibt: [3872, 3881] + }; + var hanidecChars = numberingSystems.hanidec.replace(/[\[|\]]/g, "").split(""); + function parseDigits(str) { + let value = parseInt(str, 10); + if (isNaN(value)) { + value = ""; + for (let i = 0; i < str.length; i++) { + const code = str.charCodeAt(i); + if (str[i].search(numberingSystems.hanidec) !== -1) { + value += hanidecChars.indexOf(str[i]); + } else { + for (const key in numberingSystemsUTF16) { + const [min, max] = numberingSystemsUTF16[key]; + if (code >= min && code <= max) { + value += code - min; + } + } + } + } + return parseInt(value, 10); + } else { + return value; + } + } + function digitRegex({ numberingSystem }, append = "") { + return new RegExp(`${numberingSystems[numberingSystem || "latn"]}${append}`); + } + var MISSING_FTP = "missing Intl.DateTimeFormat.formatToParts support"; + function intUnit(regex, post = (i) => i) { + return { regex, deser: ([s2]) => post(parseDigits(s2)) }; + } + var NBSP = String.fromCharCode(160); + var spaceOrNBSP = `[ ${NBSP}]`; + var spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, "g"); + function fixListRegex(s2) { + return s2.replace(/\./g, "\\.?").replace(spaceOrNBSPRegExp, spaceOrNBSP); + } + function stripInsensitivities(s2) { + return s2.replace(/\./g, "").replace(spaceOrNBSPRegExp, " ").toLowerCase(); + } + function oneOf(strings, startIndex) { + if (strings === null) { + return null; + } else { + return { + regex: RegExp(strings.map(fixListRegex).join("|")), + deser: ([s2]) => strings.findIndex((i) => stripInsensitivities(s2) === stripInsensitivities(i)) + startIndex + }; + } + } + function offset(regex, groups) { + return { regex, deser: ([, h, m]) => signedOffset(h, m), groups }; + } + function simple(regex) { + return { regex, deser: ([s2]) => s2 }; + } + function escapeToken(value) { + return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"); + } + function unitForToken(token, loc) { + const one = digitRegex(loc), two = digitRegex(loc, "{2}"), three = digitRegex(loc, "{3}"), four = digitRegex(loc, "{4}"), six = digitRegex(loc, "{6}"), oneOrTwo = digitRegex(loc, "{1,2}"), oneToThree = digitRegex(loc, "{1,3}"), oneToSix = digitRegex(loc, "{1,6}"), oneToNine = digitRegex(loc, "{1,9}"), twoToFour = digitRegex(loc, "{2,4}"), fourToSix = digitRegex(loc, "{4,6}"), literal = (t) => ({ regex: RegExp(escapeToken(t.val)), deser: ([s2]) => s2, literal: true }), unitate = (t) => { + if (token.literal) { + return literal(t); + } + switch (t.val) { + case "G": + return oneOf(loc.eras("short"), 0); + case "GG": + return oneOf(loc.eras("long"), 0); + case "y": + return intUnit(oneToSix); + case "yy": + return intUnit(twoToFour, untruncateYear); + case "yyyy": + return intUnit(four); + case "yyyyy": + return intUnit(fourToSix); + case "yyyyyy": + return intUnit(six); + case "M": + return intUnit(oneOrTwo); + case "MM": + return intUnit(two); + case "MMM": + return oneOf(loc.months("short", true), 1); + case "MMMM": + return oneOf(loc.months("long", true), 1); + case "L": + return intUnit(oneOrTwo); + case "LL": + return intUnit(two); + case "LLL": + return oneOf(loc.months("short", false), 1); + case "LLLL": + return oneOf(loc.months("long", false), 1); + case "d": + return intUnit(oneOrTwo); + case "dd": + return intUnit(two); + case "o": + return intUnit(oneToThree); + case "ooo": + return intUnit(three); + case "HH": + return intUnit(two); + case "H": + return intUnit(oneOrTwo); + case "hh": + return intUnit(two); + case "h": + return intUnit(oneOrTwo); + case "mm": + return intUnit(two); + case "m": + return intUnit(oneOrTwo); + case "q": + return intUnit(oneOrTwo); + case "qq": + return intUnit(two); + case "s": + return intUnit(oneOrTwo); + case "ss": + return intUnit(two); + case "S": + return intUnit(oneToThree); + case "SSS": + return intUnit(three); + case "u": + return simple(oneToNine); + case "uu": + return simple(oneOrTwo); + case "uuu": + return intUnit(one); + case "a": + return oneOf(loc.meridiems(), 0); + case "kkkk": + return intUnit(four); + case "kk": + return intUnit(twoToFour, untruncateYear); + case "W": + return intUnit(oneOrTwo); + case "WW": + return intUnit(two); + case "E": + case "c": + return intUnit(one); + case "EEE": + return oneOf(loc.weekdays("short", false), 1); + case "EEEE": + return oneOf(loc.weekdays("long", false), 1); + case "ccc": + return oneOf(loc.weekdays("short", true), 1); + case "cccc": + return oneOf(loc.weekdays("long", true), 1); + case "Z": + case "ZZ": + return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2); + case "ZZZ": + return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2); + case "z": + return simple(/[a-z_+-/]{1,256}?/i); + case " ": + return simple(/[^\S\n\r]/); + default: + return literal(t); + } + }; + const unit = unitate(token) || { + invalidReason: MISSING_FTP + }; + unit.token = token; + return unit; + } + var partTypeStyleToTokenVal = { + year: { + "2-digit": "yy", + numeric: "yyyyy" + }, + month: { + numeric: "M", + "2-digit": "MM", + short: "MMM", + long: "MMMM" + }, + day: { + numeric: "d", + "2-digit": "dd" + }, + weekday: { + short: "EEE", + long: "EEEE" + }, + dayperiod: "a", + dayPeriod: "a", + hour12: { + numeric: "h", + "2-digit": "hh" + }, + hour24: { + numeric: "H", + "2-digit": "HH" + }, + minute: { + numeric: "m", + "2-digit": "mm" + }, + second: { + numeric: "s", + "2-digit": "ss" + }, + timeZoneName: { + long: "ZZZZZ", + short: "ZZZ" + } + }; + function tokenForPart(part, formatOpts, resolvedOpts) { + const { type, value } = part; + if (type === "literal") { + const isSpace = /^\s+$/.test(value); + return { + literal: !isSpace, + val: isSpace ? " " : value + }; + } + const style = formatOpts[type]; + let actualType = type; + if (type === "hour") { + if (formatOpts.hour12 != null) { + actualType = formatOpts.hour12 ? "hour12" : "hour24"; + } else if (formatOpts.hourCycle != null) { + if (formatOpts.hourCycle === "h11" || formatOpts.hourCycle === "h12") { + actualType = "hour12"; + } else { + actualType = "hour24"; + } + } else { + actualType = resolvedOpts.hour12 ? "hour12" : "hour24"; + } + } + let val = partTypeStyleToTokenVal[actualType]; + if (typeof val === "object") { + val = val[style]; + } + if (val) { + return { + literal: false, + val + }; + } + return void 0; + } + function buildRegex(units) { + const re = units.map((u) => u.regex).reduce((f, r) => `${f}(${r.source})`, ""); + return [`^${re}$`, units]; + } + function match(input, regex, handlers) { + const matches = input.match(regex); + if (matches) { + const all = {}; + let matchIndex = 1; + for (const i in handlers) { + if (hasOwnProperty(handlers, i)) { + const h = handlers[i], groups = h.groups ? h.groups + 1 : 1; + if (!h.literal && h.token) { + all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups)); + } + matchIndex += groups; + } + } + return [matches, all]; + } else { + return [matches, {}]; + } + } + function dateTimeFromMatches(matches) { + const toField = (token) => { + switch (token) { + case "S": + return "millisecond"; + case "s": + return "second"; + case "m": + return "minute"; + case "h": + case "H": + return "hour"; + case "d": + return "day"; + case "o": + return "ordinal"; + case "L": + case "M": + return "month"; + case "y": + return "year"; + case "E": + case "c": + return "weekday"; + case "W": + return "weekNumber"; + case "k": + return "weekYear"; + case "q": + return "quarter"; + default: + return null; + } + }; + let zone = null; + let specificOffset; + if (!isUndefined(matches.z)) { + zone = IANAZone.create(matches.z); + } + if (!isUndefined(matches.Z)) { + if (!zone) { + zone = new FixedOffsetZone(matches.Z); + } + specificOffset = matches.Z; + } + if (!isUndefined(matches.q)) { + matches.M = (matches.q - 1) * 3 + 1; + } + if (!isUndefined(matches.h)) { + if (matches.h < 12 && matches.a === 1) { + matches.h += 12; + } else if (matches.h === 12 && matches.a === 0) { + matches.h = 0; + } + } + if (matches.G === 0 && matches.y) { + matches.y = -matches.y; + } + if (!isUndefined(matches.u)) { + matches.S = parseMillis(matches.u); + } + const vals = Object.keys(matches).reduce((r, k) => { + const f = toField(k); + if (f) { + r[f] = matches[k]; + } + return r; + }, {}); + return [vals, zone, specificOffset]; + } + var dummyDateTimeCache = null; + function getDummyDateTime() { + if (!dummyDateTimeCache) { + dummyDateTimeCache = DateTime.fromMillis(1555555555555); + } + return dummyDateTimeCache; + } + function maybeExpandMacroToken(token, locale) { + if (token.literal) { + return token; + } + const formatOpts = Formatter.macroTokenToFormatOpts(token.val); + const tokens = formatOptsToTokens(formatOpts, locale); + if (tokens == null || tokens.includes(void 0)) { + return token; + } + return tokens; + } + function expandMacroTokens(tokens, locale) { + return Array.prototype.concat(...tokens.map((t) => maybeExpandMacroToken(t, locale))); + } + function explainFromTokens(locale, input, format) { + const tokens = expandMacroTokens(Formatter.parseFormat(format), locale), units = tokens.map((t) => unitForToken(t, locale)), disqualifyingUnit = units.find((t) => t.invalidReason); + if (disqualifyingUnit) { + return { input, tokens, invalidReason: disqualifyingUnit.invalidReason }; + } else { + const [regexString, handlers] = buildRegex(units), regex = RegExp(regexString, "i"), [rawMatches, matches] = match(input, regex, handlers), [result, zone, specificOffset] = matches ? dateTimeFromMatches(matches) : [null, null, void 0]; + if (hasOwnProperty(matches, "a") && hasOwnProperty(matches, "H")) { + throw new ConflictingSpecificationError("Can't include meridiem when specifying 24-hour format"); + } + return { input, tokens, regex, rawMatches, matches, result, zone, specificOffset }; + } + } + function parseFromTokens(locale, input, format) { + const { result, zone, specificOffset, invalidReason } = explainFromTokens(locale, input, format); + return [result, zone, specificOffset, invalidReason]; + } + function formatOptsToTokens(formatOpts, locale) { + if (!formatOpts) { + return null; + } + const formatter = Formatter.create(locale, formatOpts); + const df = formatter.dtFormatter(getDummyDateTime()); + const parts = df.formatToParts(); + const resolvedOpts = df.resolvedOptions(); + return parts.map((p) => tokenForPart(p, formatOpts, resolvedOpts)); + } + var nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; + var leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335]; + function unitOutOfRange(unit, value) { + return new Invalid("unit out of range", `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`); + } + function dayOfWeek(year, month, day) { + const d = new Date(Date.UTC(year, month - 1, day)); + if (year < 100 && year >= 0) { + d.setUTCFullYear(d.getUTCFullYear() - 1900); + } + const js = d.getUTCDay(); + return js === 0 ? 7 : js; + } + function computeOrdinal(year, month, day) { + return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1]; + } + function uncomputeOrdinal(year, ordinal) { + const table = isLeapYear(year) ? leapLadder : nonLeapLadder, month0 = table.findIndex((i) => i < ordinal), day = ordinal - table[month0]; + return { month: month0 + 1, day }; + } + function gregorianToWeek(gregObj) { + const { year, month, day } = gregObj, ordinal = computeOrdinal(year, month, day), weekday = dayOfWeek(year, month, day); + let weekNumber = Math.floor((ordinal - weekday + 10) / 7), weekYear; + if (weekNumber < 1) { + weekYear = year - 1; + weekNumber = weeksInWeekYear(weekYear); + } else if (weekNumber > weeksInWeekYear(year)) { + weekYear = year + 1; + weekNumber = 1; + } else { + weekYear = year; + } + return __spreadValues({ weekYear, weekNumber, weekday }, timeObject(gregObj)); + } + function weekToGregorian(weekData) { + const { weekYear, weekNumber, weekday } = weekData, weekdayOfJan4 = dayOfWeek(weekYear, 1, 4), yearInDays = daysInYear(weekYear); + let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 3, year; + if (ordinal < 1) { + year = weekYear - 1; + ordinal += daysInYear(year); + } else if (ordinal > yearInDays) { + year = weekYear + 1; + ordinal -= daysInYear(weekYear); + } else { + year = weekYear; + } + const { month, day } = uncomputeOrdinal(year, ordinal); + return __spreadValues({ year, month, day }, timeObject(weekData)); + } + function gregorianToOrdinal(gregData) { + const { year, month, day } = gregData; + const ordinal = computeOrdinal(year, month, day); + return __spreadValues({ year, ordinal }, timeObject(gregData)); + } + function ordinalToGregorian(ordinalData) { + const { year, ordinal } = ordinalData; + const { month, day } = uncomputeOrdinal(year, ordinal); + return __spreadValues({ year, month, day }, timeObject(ordinalData)); + } + function hasInvalidWeekData(obj) { + const validYear = isInteger(obj.weekYear), validWeek = integerBetween(obj.weekNumber, 1, weeksInWeekYear(obj.weekYear)), validWeekday = integerBetween(obj.weekday, 1, 7); + if (!validYear) { + return unitOutOfRange("weekYear", obj.weekYear); + } else if (!validWeek) { + return unitOutOfRange("week", obj.week); + } else if (!validWeekday) { + return unitOutOfRange("weekday", obj.weekday); + } else + return false; + } + function hasInvalidOrdinalData(obj) { + const validYear = isInteger(obj.year), validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year)); + if (!validYear) { + return unitOutOfRange("year", obj.year); + } else if (!validOrdinal) { + return unitOutOfRange("ordinal", obj.ordinal); + } else + return false; + } + function hasInvalidGregorianData(obj) { + const validYear = isInteger(obj.year), validMonth = integerBetween(obj.month, 1, 12), validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month)); + if (!validYear) { + return unitOutOfRange("year", obj.year); + } else if (!validMonth) { + return unitOutOfRange("month", obj.month); + } else if (!validDay) { + return unitOutOfRange("day", obj.day); + } else + return false; + } + function hasInvalidTimeData(obj) { + const { hour, minute, second, millisecond } = obj; + const validHour = integerBetween(hour, 0, 23) || hour === 24 && minute === 0 && second === 0 && millisecond === 0, validMinute = integerBetween(minute, 0, 59), validSecond = integerBetween(second, 0, 59), validMillisecond = integerBetween(millisecond, 0, 999); + if (!validHour) { + return unitOutOfRange("hour", hour); + } else if (!validMinute) { + return unitOutOfRange("minute", minute); + } else if (!validSecond) { + return unitOutOfRange("second", second); + } else if (!validMillisecond) { + return unitOutOfRange("millisecond", millisecond); + } else + return false; + } + var INVALID = "Invalid DateTime"; + var MAX_DATE = 864e13; + function unsupportedZone(zone) { + return new Invalid("unsupported zone", `the zone "${zone.name}" is not supported`); + } + function possiblyCachedWeekData(dt) { + if (dt.weekData === null) { + dt.weekData = gregorianToWeek(dt.c); + } + return dt.weekData; + } + function clone(inst, alts) { + const current = { + ts: inst.ts, + zone: inst.zone, + c: inst.c, + o: inst.o, + loc: inst.loc, + invalid: inst.invalid + }; + return new DateTime(__spreadProps(__spreadValues(__spreadValues({}, current), alts), { old: current })); + } + function fixOffset(localTS, o, tz) { + let utcGuess = localTS - o * 60 * 1e3; + const o2 = tz.offset(utcGuess); + if (o === o2) { + return [utcGuess, o]; + } + utcGuess -= (o2 - o) * 60 * 1e3; + const o3 = tz.offset(utcGuess); + if (o2 === o3) { + return [utcGuess, o2]; + } + return [localTS - Math.min(o2, o3) * 60 * 1e3, Math.max(o2, o3)]; + } + function tsToObj(ts, offset2) { + ts += offset2 * 60 * 1e3; + const d = new Date(ts); + return { + year: d.getUTCFullYear(), + month: d.getUTCMonth() + 1, + day: d.getUTCDate(), + hour: d.getUTCHours(), + minute: d.getUTCMinutes(), + second: d.getUTCSeconds(), + millisecond: d.getUTCMilliseconds() + }; + } + function objToTS(obj, offset2, zone) { + return fixOffset(objToLocalTS(obj), offset2, zone); + } + function adjustTime(inst, dur) { + const oPre = inst.o, year = inst.c.year + Math.trunc(dur.years), month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3, c = __spreadProps(__spreadValues({}, inst.c), { + year, + month, + day: Math.min(inst.c.day, daysInMonth(year, month)) + Math.trunc(dur.days) + Math.trunc(dur.weeks) * 7 + }), millisToAdd = Duration.fromObject({ + years: dur.years - Math.trunc(dur.years), + quarters: dur.quarters - Math.trunc(dur.quarters), + months: dur.months - Math.trunc(dur.months), + weeks: dur.weeks - Math.trunc(dur.weeks), + days: dur.days - Math.trunc(dur.days), + hours: dur.hours, + minutes: dur.minutes, + seconds: dur.seconds, + milliseconds: dur.milliseconds + }).as("milliseconds"), localTS = objToLocalTS(c); + let [ts, o] = fixOffset(localTS, oPre, inst.zone); + if (millisToAdd !== 0) { + ts += millisToAdd; + o = inst.zone.offset(ts); + } + return { ts, o }; + } + function parseDataToDateTime(parsed, parsedZone, opts, format, text, specificOffset) { + const { setZone, zone } = opts; + if (parsed && Object.keys(parsed).length !== 0 || parsedZone) { + const interpretationZone = parsedZone || zone, inst = DateTime.fromObject(parsed, __spreadProps(__spreadValues({}, opts), { + zone: interpretationZone, + specificOffset + })); + return setZone ? inst : inst.setZone(zone); + } else { + return DateTime.invalid(new Invalid("unparsable", `the input "${text}" can't be parsed as ${format}`)); + } + } + function toTechFormat(dt, format, allowZ = true) { + return dt.isValid ? Formatter.create(Locale.create("en-US"), { + allowZ, + forceSimple: true + }).formatDateTimeFromString(dt, format) : null; + } + function toISODate(o, extended) { + const longFormat = o.c.year > 9999 || o.c.year < 0; + let c = ""; + if (longFormat && o.c.year >= 0) + c += "+"; + c += padStart(o.c.year, longFormat ? 6 : 4); + if (extended) { + c += "-"; + c += padStart(o.c.month); + c += "-"; + c += padStart(o.c.day); + } else { + c += padStart(o.c.month); + c += padStart(o.c.day); + } + return c; + } + function toISOTime(o, extended, suppressSeconds, suppressMilliseconds, includeOffset, extendedZone) { + let c = padStart(o.c.hour); + if (extended) { + c += ":"; + c += padStart(o.c.minute); + if (o.c.millisecond !== 0 || o.c.second !== 0 || !suppressSeconds) { + c += ":"; + } + } else { + c += padStart(o.c.minute); + } + if (o.c.millisecond !== 0 || o.c.second !== 0 || !suppressSeconds) { + c += padStart(o.c.second); + if (o.c.millisecond !== 0 || !suppressMilliseconds) { + c += "."; + c += padStart(o.c.millisecond, 3); + } + } + if (includeOffset) { + if (o.isOffsetFixed && o.offset === 0 && !extendedZone) { + c += "Z"; + } else if (o.o < 0) { + c += "-"; + c += padStart(Math.trunc(-o.o / 60)); + c += ":"; + c += padStart(Math.trunc(-o.o % 60)); + } else { + c += "+"; + c += padStart(Math.trunc(o.o / 60)); + c += ":"; + c += padStart(Math.trunc(o.o % 60)); + } + } + if (extendedZone) { + c += "[" + o.zone.ianaName + "]"; + } + return c; + } + var defaultUnitValues = { + month: 1, + day: 1, + hour: 0, + minute: 0, + second: 0, + millisecond: 0 + }; + var defaultWeekUnitValues = { + weekNumber: 1, + weekday: 1, + hour: 0, + minute: 0, + second: 0, + millisecond: 0 + }; + var defaultOrdinalUnitValues = { + ordinal: 1, + hour: 0, + minute: 0, + second: 0, + millisecond: 0 + }; + var orderedUnits = ["year", "month", "day", "hour", "minute", "second", "millisecond"]; + var orderedWeekUnits = [ + "weekYear", + "weekNumber", + "weekday", + "hour", + "minute", + "second", + "millisecond" + ]; + var orderedOrdinalUnits = ["year", "ordinal", "hour", "minute", "second", "millisecond"]; + function normalizeUnit(unit) { + const normalized = { + year: "year", + years: "year", + month: "month", + months: "month", + day: "day", + days: "day", + hour: "hour", + hours: "hour", + minute: "minute", + minutes: "minute", + quarter: "quarter", + quarters: "quarter", + second: "second", + seconds: "second", + millisecond: "millisecond", + milliseconds: "millisecond", + weekday: "weekday", + weekdays: "weekday", + weeknumber: "weekNumber", + weeksnumber: "weekNumber", + weeknumbers: "weekNumber", + weekyear: "weekYear", + weekyears: "weekYear", + ordinal: "ordinal" + }[unit.toLowerCase()]; + if (!normalized) + throw new InvalidUnitError(unit); + return normalized; + } + function quickDT(obj, opts) { + const zone = normalizeZone(opts.zone, Settings.defaultZone), loc = Locale.fromObject(opts), tsNow = Settings.now(); + let ts, o; + if (!isUndefined(obj.year)) { + for (const u of orderedUnits) { + if (isUndefined(obj[u])) { + obj[u] = defaultUnitValues[u]; + } + } + const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj); + if (invalid) { + return DateTime.invalid(invalid); + } + const offsetProvis = zone.offset(tsNow); + [ts, o] = objToTS(obj, offsetProvis, zone); + } else { + ts = tsNow; + } + return new DateTime({ ts, zone, loc, o }); + } + function diffRelative(start, end, opts) { + const round = isUndefined(opts.round) ? true : opts.round, format = (c, unit) => { + c = roundTo(c, round || opts.calendary ? 0 : 2, true); + const formatter = end.loc.clone(opts).relFormatter(opts); + return formatter.format(c, unit); + }, differ = (unit) => { + if (opts.calendary) { + if (!end.hasSame(start, unit)) { + return end.startOf(unit).diff(start.startOf(unit), unit).get(unit); + } else + return 0; + } else { + return end.diff(start, unit).get(unit); + } + }; + if (opts.unit) { + return format(differ(opts.unit), opts.unit); + } + for (const unit of opts.units) { + const count = differ(unit); + if (Math.abs(count) >= 1) { + return format(count, unit); + } + } + return format(start > end ? -0 : 0, opts.units[opts.units.length - 1]); + } + function lastOpts(argList) { + let opts = {}, args2; + if (argList.length > 0 && typeof argList[argList.length - 1] === "object") { + opts = argList[argList.length - 1]; + args2 = Array.from(argList).slice(0, argList.length - 1); + } else { + args2 = Array.from(argList); + } + return [opts, args2]; + } + var DateTime = class { + constructor(config) { + const zone = config.zone || Settings.defaultZone; + let invalid = config.invalid || (Number.isNaN(config.ts) ? new Invalid("invalid input") : null) || (!zone.isValid ? unsupportedZone(zone) : null); + this.ts = isUndefined(config.ts) ? Settings.now() : config.ts; + let c = null, o = null; + if (!invalid) { + const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone); + if (unchanged) { + [c, o] = [config.old.c, config.old.o]; + } else { + const ot = zone.offset(this.ts); + c = tsToObj(this.ts, ot); + invalid = Number.isNaN(c.year) ? new Invalid("invalid input") : null; + c = invalid ? null : c; + o = invalid ? null : ot; + } + } + this._zone = zone; + this.loc = config.loc || Locale.create(); + this.invalid = invalid; + this.weekData = null; + this.c = c; + this.o = o; + this.isLuxonDateTime = true; + } + static now() { + return new DateTime({}); + } + static local() { + const [opts, args2] = lastOpts(arguments), [year, month, day, hour, minute, second, millisecond] = args2; + return quickDT({ year, month, day, hour, minute, second, millisecond }, opts); + } + static utc() { + const [opts, args2] = lastOpts(arguments), [year, month, day, hour, minute, second, millisecond] = args2; + opts.zone = FixedOffsetZone.utcInstance; + return quickDT({ year, month, day, hour, minute, second, millisecond }, opts); + } + static fromJSDate(date, options = {}) { + const ts = isDate(date) ? date.valueOf() : NaN; + if (Number.isNaN(ts)) { + return DateTime.invalid("invalid input"); + } + const zoneToUse = normalizeZone(options.zone, Settings.defaultZone); + if (!zoneToUse.isValid) { + return DateTime.invalid(unsupportedZone(zoneToUse)); + } + return new DateTime({ + ts, + zone: zoneToUse, + loc: Locale.fromObject(options) + }); + } + static fromMillis(milliseconds, options = {}) { + if (!isNumber(milliseconds)) { + throw new InvalidArgumentError(`fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`); + } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) { + return DateTime.invalid("Timestamp out of range"); + } else { + return new DateTime({ + ts: milliseconds, + zone: normalizeZone(options.zone, Settings.defaultZone), + loc: Locale.fromObject(options) + }); + } + } + static fromSeconds(seconds, options = {}) { + if (!isNumber(seconds)) { + throw new InvalidArgumentError("fromSeconds requires a numerical input"); + } else { + return new DateTime({ + ts: seconds * 1e3, + zone: normalizeZone(options.zone, Settings.defaultZone), + loc: Locale.fromObject(options) + }); + } + } + static fromObject(obj, opts = {}) { + obj = obj || {}; + const zoneToUse = normalizeZone(opts.zone, Settings.defaultZone); + if (!zoneToUse.isValid) { + return DateTime.invalid(unsupportedZone(zoneToUse)); + } + const tsNow = Settings.now(), offsetProvis = !isUndefined(opts.specificOffset) ? opts.specificOffset : zoneToUse.offset(tsNow), normalized = normalizeObject(obj, normalizeUnit), containsOrdinal = !isUndefined(normalized.ordinal), containsGregorYear = !isUndefined(normalized.year), containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day), containsGregor = containsGregorYear || containsGregorMD, definiteWeekDef = normalized.weekYear || normalized.weekNumber, loc = Locale.fromObject(opts); + if ((containsGregor || containsOrdinal) && definiteWeekDef) { + throw new ConflictingSpecificationError("Can't mix weekYear/weekNumber units with year/month/day or ordinals"); + } + if (containsGregorMD && containsOrdinal) { + throw new ConflictingSpecificationError("Can't mix ordinal dates with month/day"); + } + const useWeekData = definiteWeekDef || normalized.weekday && !containsGregor; + let units, defaultValues, objNow = tsToObj(tsNow, offsetProvis); + if (useWeekData) { + units = orderedWeekUnits; + defaultValues = defaultWeekUnitValues; + objNow = gregorianToWeek(objNow); + } else if (containsOrdinal) { + units = orderedOrdinalUnits; + defaultValues = defaultOrdinalUnitValues; + objNow = gregorianToOrdinal(objNow); + } else { + units = orderedUnits; + defaultValues = defaultUnitValues; + } + let foundFirst = false; + for (const u of units) { + const v = normalized[u]; + if (!isUndefined(v)) { + foundFirst = true; + } else if (foundFirst) { + normalized[u] = defaultValues[u]; + } else { + normalized[u] = objNow[u]; + } + } + const higherOrderInvalid = useWeekData ? hasInvalidWeekData(normalized) : containsOrdinal ? hasInvalidOrdinalData(normalized) : hasInvalidGregorianData(normalized), invalid = higherOrderInvalid || hasInvalidTimeData(normalized); + if (invalid) { + return DateTime.invalid(invalid); + } + const gregorian = useWeekData ? weekToGregorian(normalized) : containsOrdinal ? ordinalToGregorian(normalized) : normalized, [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse), inst = new DateTime({ + ts: tsFinal, + zone: zoneToUse, + o: offsetFinal, + loc + }); + if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) { + return DateTime.invalid("mismatched weekday", `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`); + } + return inst; + } + static fromISO(text, opts = {}) { + const [vals, parsedZone] = parseISODate(text); + return parseDataToDateTime(vals, parsedZone, opts, "ISO 8601", text); + } + static fromRFC2822(text, opts = {}) { + const [vals, parsedZone] = parseRFC2822Date(text); + return parseDataToDateTime(vals, parsedZone, opts, "RFC 2822", text); + } + static fromHTTP(text, opts = {}) { + const [vals, parsedZone] = parseHTTPDate(text); + return parseDataToDateTime(vals, parsedZone, opts, "HTTP", opts); + } + static fromFormat(text, fmt, opts = {}) { + if (isUndefined(text) || isUndefined(fmt)) { + throw new InvalidArgumentError("fromFormat requires an input string and a format"); + } + const { locale = null, numberingSystem = null } = opts, localeToUse = Locale.fromOpts({ + locale, + numberingSystem, + defaultToEN: true + }), [vals, parsedZone, specificOffset, invalid] = parseFromTokens(localeToUse, text, fmt); + if (invalid) { + return DateTime.invalid(invalid); + } else { + return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text, specificOffset); + } + } + static fromString(text, fmt, opts = {}) { + return DateTime.fromFormat(text, fmt, opts); + } + static fromSQL(text, opts = {}) { + const [vals, parsedZone] = parseSQL(text); + return parseDataToDateTime(vals, parsedZone, opts, "SQL", text); + } + static invalid(reason, explanation = null) { + if (!reason) { + throw new InvalidArgumentError("need to specify a reason the DateTime is invalid"); + } + const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation); + if (Settings.throwOnInvalid) { + throw new InvalidDateTimeError(invalid); + } else { + return new DateTime({ invalid }); + } + } + static isDateTime(o) { + return o && o.isLuxonDateTime || false; + } + static parseFormatForOpts(formatOpts, localeOpts = {}) { + const tokenList = formatOptsToTokens(formatOpts, Locale.fromObject(localeOpts)); + return !tokenList ? null : tokenList.map((t) => t ? t.val : null).join(""); + } + static expandFormat(fmt, localeOpts = {}) { + const expanded = expandMacroTokens(Formatter.parseFormat(fmt), Locale.fromObject(localeOpts)); + return expanded.map((t) => t.val).join(""); + } + get(unit) { + return this[unit]; + } + get isValid() { + return this.invalid === null; + } + get invalidReason() { + return this.invalid ? this.invalid.reason : null; + } + get invalidExplanation() { + return this.invalid ? this.invalid.explanation : null; + } + get locale() { + return this.isValid ? this.loc.locale : null; + } + get numberingSystem() { + return this.isValid ? this.loc.numberingSystem : null; + } + get outputCalendar() { + return this.isValid ? this.loc.outputCalendar : null; + } + get zone() { + return this._zone; + } + get zoneName() { + return this.isValid ? this.zone.name : null; + } + get year() { + return this.isValid ? this.c.year : NaN; + } + get quarter() { + return this.isValid ? Math.ceil(this.c.month / 3) : NaN; + } + get month() { + return this.isValid ? this.c.month : NaN; + } + get day() { + return this.isValid ? this.c.day : NaN; + } + get hour() { + return this.isValid ? this.c.hour : NaN; + } + get minute() { + return this.isValid ? this.c.minute : NaN; + } + get second() { + return this.isValid ? this.c.second : NaN; + } + get millisecond() { + return this.isValid ? this.c.millisecond : NaN; + } + get weekYear() { + return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN; + } + get weekNumber() { + return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN; + } + get weekday() { + return this.isValid ? possiblyCachedWeekData(this).weekday : NaN; + } + get ordinal() { + return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN; + } + get monthShort() { + return this.isValid ? Info.months("short", { locObj: this.loc })[this.month - 1] : null; + } + get monthLong() { + return this.isValid ? Info.months("long", { locObj: this.loc })[this.month - 1] : null; + } + get weekdayShort() { + return this.isValid ? Info.weekdays("short", { locObj: this.loc })[this.weekday - 1] : null; + } + get weekdayLong() { + return this.isValid ? Info.weekdays("long", { locObj: this.loc })[this.weekday - 1] : null; + } + get offset() { + return this.isValid ? +this.o : NaN; + } + get offsetNameShort() { + if (this.isValid) { + return this.zone.offsetName(this.ts, { + format: "short", + locale: this.locale + }); + } else { + return null; + } + } + get offsetNameLong() { + if (this.isValid) { + return this.zone.offsetName(this.ts, { + format: "long", + locale: this.locale + }); + } else { + return null; + } + } + get isOffsetFixed() { + return this.isValid ? this.zone.isUniversal : null; + } + get isInDST() { + if (this.isOffsetFixed) { + return false; + } else { + return this.offset > this.set({ month: 1, day: 1 }).offset || this.offset > this.set({ month: 5 }).offset; + } + } + getPossibleOffsets() { + if (!this.isValid || this.isOffsetFixed) { + return [this]; + } + const dayMs = 864e5; + const minuteMs = 6e4; + const localTS = objToLocalTS(this.c); + const oEarlier = this.zone.offset(localTS - dayMs); + const oLater = this.zone.offset(localTS + dayMs); + const o1 = this.zone.offset(localTS - oEarlier * minuteMs); + const o2 = this.zone.offset(localTS - oLater * minuteMs); + if (o1 === o2) { + return [this]; + } + const ts1 = localTS - o1 * minuteMs; + const ts2 = localTS - o2 * minuteMs; + const c1 = tsToObj(ts1, o1); + const c2 = tsToObj(ts2, o2); + if (c1.hour === c2.hour && c1.minute === c2.minute && c1.second === c2.second && c1.millisecond === c2.millisecond) { + return [clone(this, { ts: ts1 }), clone(this, { ts: ts2 })]; + } + return [this]; + } + get isInLeapYear() { + return isLeapYear(this.year); + } + get daysInMonth() { + return daysInMonth(this.year, this.month); + } + get daysInYear() { + return this.isValid ? daysInYear(this.year) : NaN; + } + get weeksInWeekYear() { + return this.isValid ? weeksInWeekYear(this.weekYear) : NaN; + } + resolvedLocaleOptions(opts = {}) { + const { locale, numberingSystem, calendar } = Formatter.create(this.loc.clone(opts), opts).resolvedOptions(this); + return { locale, numberingSystem, outputCalendar: calendar }; + } + toUTC(offset2 = 0, opts = {}) { + return this.setZone(FixedOffsetZone.instance(offset2), opts); + } + toLocal() { + return this.setZone(Settings.defaultZone); + } + setZone(zone, { keepLocalTime = false, keepCalendarTime = false } = {}) { + zone = normalizeZone(zone, Settings.defaultZone); + if (zone.equals(this.zone)) { + return this; + } else if (!zone.isValid) { + return DateTime.invalid(unsupportedZone(zone)); + } else { + let newTS = this.ts; + if (keepLocalTime || keepCalendarTime) { + const offsetGuess = zone.offset(this.ts); + const asObj = this.toObject(); + [newTS] = objToTS(asObj, offsetGuess, zone); + } + return clone(this, { ts: newTS, zone }); + } + } + reconfigure({ locale, numberingSystem, outputCalendar } = {}) { + const loc = this.loc.clone({ locale, numberingSystem, outputCalendar }); + return clone(this, { loc }); + } + setLocale(locale) { + return this.reconfigure({ locale }); + } + set(values) { + if (!this.isValid) + return this; + const normalized = normalizeObject(values, normalizeUnit), settingWeekStuff = !isUndefined(normalized.weekYear) || !isUndefined(normalized.weekNumber) || !isUndefined(normalized.weekday), containsOrdinal = !isUndefined(normalized.ordinal), containsGregorYear = !isUndefined(normalized.year), containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day), containsGregor = containsGregorYear || containsGregorMD, definiteWeekDef = normalized.weekYear || normalized.weekNumber; + if ((containsGregor || containsOrdinal) && definiteWeekDef) { + throw new ConflictingSpecificationError("Can't mix weekYear/weekNumber units with year/month/day or ordinals"); + } + if (containsGregorMD && containsOrdinal) { + throw new ConflictingSpecificationError("Can't mix ordinal dates with month/day"); + } + let mixed; + if (settingWeekStuff) { + mixed = weekToGregorian(__spreadValues(__spreadValues({}, gregorianToWeek(this.c)), normalized)); + } else if (!isUndefined(normalized.ordinal)) { + mixed = ordinalToGregorian(__spreadValues(__spreadValues({}, gregorianToOrdinal(this.c)), normalized)); + } else { + mixed = __spreadValues(__spreadValues({}, this.toObject()), normalized); + if (isUndefined(normalized.day)) { + mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day); + } + } + const [ts, o] = objToTS(mixed, this.o, this.zone); + return clone(this, { ts, o }); + } + plus(duration) { + if (!this.isValid) + return this; + const dur = Duration.fromDurationLike(duration); + return clone(this, adjustTime(this, dur)); + } + minus(duration) { + if (!this.isValid) + return this; + const dur = Duration.fromDurationLike(duration).negate(); + return clone(this, adjustTime(this, dur)); + } + startOf(unit) { + if (!this.isValid) + return this; + const o = {}, normalizedUnit = Duration.normalizeUnit(unit); + switch (normalizedUnit) { + case "years": + o.month = 1; + case "quarters": + case "months": + o.day = 1; + case "weeks": + case "days": + o.hour = 0; + case "hours": + o.minute = 0; + case "minutes": + o.second = 0; + case "seconds": + o.millisecond = 0; + break; + } + if (normalizedUnit === "weeks") { + o.weekday = 1; + } + if (normalizedUnit === "quarters") { + const q = Math.ceil(this.month / 3); + o.month = (q - 1) * 3 + 1; + } + return this.set(o); + } + endOf(unit) { + return this.isValid ? this.plus({ [unit]: 1 }).startOf(unit).minus(1) : this; + } + toFormat(fmt, opts = {}) { + return this.isValid ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt) : INVALID; + } + toLocaleString(formatOpts = DATE_SHORT, opts = {}) { + return this.isValid ? Formatter.create(this.loc.clone(opts), formatOpts).formatDateTime(this) : INVALID; + } + toLocaleParts(opts = {}) { + return this.isValid ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this) : []; + } + toISO({ + format = "extended", + suppressSeconds = false, + suppressMilliseconds = false, + includeOffset = true, + extendedZone = false + } = {}) { + if (!this.isValid) { + return null; + } + const ext = format === "extended"; + let c = toISODate(this, ext); + c += "T"; + c += toISOTime(this, ext, suppressSeconds, suppressMilliseconds, includeOffset, extendedZone); + return c; + } + toISODate({ format = "extended" } = {}) { + if (!this.isValid) { + return null; + } + return toISODate(this, format === "extended"); + } + toISOWeekDate() { + return toTechFormat(this, "kkkk-'W'WW-c"); + } + toISOTime({ + suppressMilliseconds = false, + suppressSeconds = false, + includeOffset = true, + includePrefix = false, + extendedZone = false, + format = "extended" + } = {}) { + if (!this.isValid) { + return null; + } + let c = includePrefix ? "T" : ""; + return c + toISOTime(this, format === "extended", suppressSeconds, suppressMilliseconds, includeOffset, extendedZone); + } + toRFC2822() { + return toTechFormat(this, "EEE, dd LLL yyyy HH:mm:ss ZZZ", false); + } + toHTTP() { + return toTechFormat(this.toUTC(), "EEE, dd LLL yyyy HH:mm:ss 'GMT'"); + } + toSQLDate() { + if (!this.isValid) { + return null; + } + return toISODate(this, true); + } + toSQLTime({ includeOffset = true, includeZone = false, includeOffsetSpace = true } = {}) { + let fmt = "HH:mm:ss.SSS"; + if (includeZone || includeOffset) { + if (includeOffsetSpace) { + fmt += " "; + } + if (includeZone) { + fmt += "z"; + } else if (includeOffset) { + fmt += "ZZ"; + } + } + return toTechFormat(this, fmt, true); + } + toSQL(opts = {}) { + if (!this.isValid) { + return null; + } + return `${this.toSQLDate()} ${this.toSQLTime(opts)}`; + } + toString() { + return this.isValid ? this.toISO() : INVALID; + } + valueOf() { + return this.toMillis(); + } + toMillis() { + return this.isValid ? this.ts : NaN; + } + toSeconds() { + return this.isValid ? this.ts / 1e3 : NaN; + } + toUnixInteger() { + return this.isValid ? Math.floor(this.ts / 1e3) : NaN; + } + toJSON() { + return this.toISO(); + } + toBSON() { + return this.toJSDate(); + } + toObject(opts = {}) { + if (!this.isValid) + return {}; + const base = __spreadValues({}, this.c); + if (opts.includeConfig) { + base.outputCalendar = this.outputCalendar; + base.numberingSystem = this.loc.numberingSystem; + base.locale = this.loc.locale; + } + return base; + } + toJSDate() { + return new Date(this.isValid ? this.ts : NaN); + } + diff(otherDateTime, unit = "milliseconds", opts = {}) { + if (!this.isValid || !otherDateTime.isValid) { + return Duration.invalid("created by diffing an invalid DateTime"); + } + const durOpts = __spreadValues({ locale: this.locale, numberingSystem: this.numberingSystem }, opts); + const units = maybeArray(unit).map(Duration.normalizeUnit), otherIsLater = otherDateTime.valueOf() > this.valueOf(), earlier = otherIsLater ? this : otherDateTime, later = otherIsLater ? otherDateTime : this, diffed = diff(earlier, later, units, durOpts); + return otherIsLater ? diffed.negate() : diffed; + } + diffNow(unit = "milliseconds", opts = {}) { + return this.diff(DateTime.now(), unit, opts); + } + until(otherDateTime) { + return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this; + } + hasSame(otherDateTime, unit) { + if (!this.isValid) + return false; + const inputMs = otherDateTime.valueOf(); + const adjustedToZone = this.setZone(otherDateTime.zone, { keepLocalTime: true }); + return adjustedToZone.startOf(unit) <= inputMs && inputMs <= adjustedToZone.endOf(unit); + } + equals(other) { + return this.isValid && other.isValid && this.valueOf() === other.valueOf() && this.zone.equals(other.zone) && this.loc.equals(other.loc); + } + toRelative(options = {}) { + if (!this.isValid) + return null; + const base = options.base || DateTime.fromObject({}, { zone: this.zone }), padding = options.padding ? this < base ? -options.padding : options.padding : 0; + let units = ["years", "months", "days", "hours", "minutes", "seconds"]; + let unit = options.unit; + if (Array.isArray(options.unit)) { + units = options.unit; + unit = void 0; + } + return diffRelative(base, this.plus(padding), __spreadProps(__spreadValues({}, options), { + numeric: "always", + units, + unit + })); + } + toRelativeCalendar(options = {}) { + if (!this.isValid) + return null; + return diffRelative(options.base || DateTime.fromObject({}, { zone: this.zone }), this, __spreadProps(__spreadValues({}, options), { + numeric: "auto", + units: ["years", "months", "days"], + calendary: true + })); + } + static min(...dateTimes) { + if (!dateTimes.every(DateTime.isDateTime)) { + throw new InvalidArgumentError("min requires all arguments be DateTimes"); + } + return bestBy(dateTimes, (i) => i.valueOf(), Math.min); + } + static max(...dateTimes) { + if (!dateTimes.every(DateTime.isDateTime)) { + throw new InvalidArgumentError("max requires all arguments be DateTimes"); + } + return bestBy(dateTimes, (i) => i.valueOf(), Math.max); + } + static fromFormatExplain(text, fmt, options = {}) { + const { locale = null, numberingSystem = null } = options, localeToUse = Locale.fromOpts({ + locale, + numberingSystem, + defaultToEN: true + }); + return explainFromTokens(localeToUse, text, fmt); + } + static fromStringExplain(text, fmt, options = {}) { + return DateTime.fromFormatExplain(text, fmt, options); + } + static get DATE_SHORT() { + return DATE_SHORT; + } + static get DATE_MED() { + return DATE_MED; + } + static get DATE_MED_WITH_WEEKDAY() { + return DATE_MED_WITH_WEEKDAY; + } + static get DATE_FULL() { + return DATE_FULL; + } + static get DATE_HUGE() { + return DATE_HUGE; + } + static get TIME_SIMPLE() { + return TIME_SIMPLE; + } + static get TIME_WITH_SECONDS() { + return TIME_WITH_SECONDS; + } + static get TIME_WITH_SHORT_OFFSET() { + return TIME_WITH_SHORT_OFFSET; + } + static get TIME_WITH_LONG_OFFSET() { + return TIME_WITH_LONG_OFFSET; + } + static get TIME_24_SIMPLE() { + return TIME_24_SIMPLE; + } + static get TIME_24_WITH_SECONDS() { + return TIME_24_WITH_SECONDS; + } + static get TIME_24_WITH_SHORT_OFFSET() { + return TIME_24_WITH_SHORT_OFFSET; + } + static get TIME_24_WITH_LONG_OFFSET() { + return TIME_24_WITH_LONG_OFFSET; + } + static get DATETIME_SHORT() { + return DATETIME_SHORT; + } + static get DATETIME_SHORT_WITH_SECONDS() { + return DATETIME_SHORT_WITH_SECONDS; + } + static get DATETIME_MED() { + return DATETIME_MED; + } + static get DATETIME_MED_WITH_SECONDS() { + return DATETIME_MED_WITH_SECONDS; + } + static get DATETIME_MED_WITH_WEEKDAY() { + return DATETIME_MED_WITH_WEEKDAY; + } + static get DATETIME_FULL() { + return DATETIME_FULL; + } + static get DATETIME_FULL_WITH_SECONDS() { + return DATETIME_FULL_WITH_SECONDS; + } + static get DATETIME_HUGE() { + return DATETIME_HUGE; + } + static get DATETIME_HUGE_WITH_SECONDS() { + return DATETIME_HUGE_WITH_SECONDS; + } + }; + function friendlyDateTime(dateTimeish) { + if (DateTime.isDateTime(dateTimeish)) { + return dateTimeish; + } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) { + return DateTime.fromJSDate(dateTimeish); + } else if (dateTimeish && typeof dateTimeish === "object") { + return DateTime.fromObject(dateTimeish); + } else { + throw new InvalidArgumentError(`Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`); + } + } + var DEFAULT_QUERY_SETTINGS = { + renderNullAs: "\\-", + taskCompletionTracking: false, + taskCompletionUseEmojiShorthand: false, + taskCompletionText: "completion", + taskCompletionDateFormat: "yyyy-MM-dd", + recursiveSubTaskCompletion: false, + warnOnEmptyResult: true, + refreshEnabled: true, + refreshInterval: 2500, + defaultDateFormat: "MMMM dd, yyyy", + defaultDateTimeFormat: "h:mm a - MMMM dd, yyyy", + maxRecursiveRenderDepth: 4, + tableIdColumnName: "File", + tableGroupColumnName: "Group", + showResultCount: true + }; + var DEFAULT_EXPORT_SETTINGS = { + allowHtml: true + }; + __spreadValues(__spreadValues(__spreadValues({}, DEFAULT_QUERY_SETTINGS), DEFAULT_EXPORT_SETTINGS), { + inlineQueryPrefix: "=", + inlineJsQueryPrefix: "$=", + inlineQueriesInCodeblocks: true, + enableInlineDataview: true, + enableDataviewJs: false, + enableInlineDataviewJs: false, + prettyRenderInlineFields: true, + prettyRenderInlineFieldsInLivePreview: true, + dataviewJsKeyword: "dataviewjs" + }); + var Success = class { + constructor(value) { + this.value = value; + this.successful = true; + } + map(f) { + return new Success(f(this.value)); + } + flatMap(f) { + return f(this.value); + } + mapErr(f) { + return this; + } + bimap(succ, _fail) { + return this.map(succ); + } + orElse(_value) { + return this.value; + } + cast() { + return this; + } + orElseThrow(_message) { + return this.value; + } + }; + var Failure = class { + constructor(error) { + this.error = error; + this.successful = false; + } + map(_f) { + return this; + } + flatMap(_f) { + return this; + } + mapErr(f) { + return new Failure(f(this.error)); + } + bimap(_succ, fail) { + return this.mapErr(fail); + } + orElse(value) { + return value; + } + cast() { + return this; + } + orElseThrow(message2) { + if (message2) + throw new Error(message2(this.error)); + else + throw new Error("" + this.error); + } + }; + var Result; + (function(Result2) { + function success(value) { + return new Success(value); + } + Result2.success = success; + function failure(error) { + return new Failure(error); + } + Result2.failure = failure; + function flatMap2(first, second, f) { + if (first.successful) { + if (second.successful) + return f(first.value, second.value); + else + return failure(second.error); + } else { + return failure(first.error); + } + } + Result2.flatMap2 = flatMap2; + function map2(first, second, f) { + return flatMap2(first, second, (a, b) => success(f(a, b))); + } + Result2.map2 = map2; + })(Result || (Result = {})); + var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; + var parsimmon_umd_min = { exports: {} }; + parsimmon_umd_min.exports; + (function(module3, exports3) { + !function(n2, t) { + module3.exports = t(); + }(typeof self != "undefined" ? self : commonjsGlobal, function() { + return function(n2) { + var t = {}; + function r(e) { + if (t[e]) + return t[e].exports; + var u = t[e] = { i: e, l: false, exports: {} }; + return n2[e].call(u.exports, u, u.exports, r), u.l = true, u.exports; + } + return r.m = n2, r.c = t, r.d = function(n3, t2, e) { + r.o(n3, t2) || Object.defineProperty(n3, t2, { configurable: false, enumerable: true, get: e }); + }, r.r = function(n3) { + Object.defineProperty(n3, "__esModule", { value: true }); + }, r.n = function(n3) { + var t2 = n3 && n3.__esModule ? function() { + return n3.default; + } : function() { + return n3; + }; + return r.d(t2, "a", t2), t2; + }, r.o = function(n3, t2) { + return Object.prototype.hasOwnProperty.call(n3, t2); + }, r.p = "", r(r.s = 0); + }([function(n2, t, r) { + function e(n3) { + if (!(this instanceof e)) + return new e(n3); + this._ = n3; + } + var u = e.prototype; + function o(n3, t2) { + for (var r2 = 0; r2 < n3; r2++) + t2(r2); + } + function i(n3, t2, r2) { + return function(n4, t3) { + o(t3.length, function(r3) { + n4(t3[r3], r3, t3); + }); + }(function(r3, e2, u2) { + t2 = n3(t2, r3, e2, u2); + }, r2), t2; + } + function a(n3, t2) { + return i(function(t3, r2, e2, u2) { + return t3.concat([n3(r2, e2, u2)]); + }, [], t2); + } + function f(n3, t2) { + var r2 = { v: 0, buf: t2 }; + return o(n3, function() { + var n4; + r2 = { v: r2.v << 1 | (n4 = r2.buf, n4[0] >> 7), buf: function(n5) { + var t3 = i(function(n6, t4, r3, e2) { + return n6.concat(r3 === e2.length - 1 ? Buffer.from([t4, 0]).readUInt16BE(0) : e2.readUInt16BE(r3)); + }, [], n5); + return Buffer.from(a(function(n6) { + return (n6 << 1 & 65535) >> 8; + }, t3)); + }(r2.buf) }; + }), r2; + } + function c() { + return typeof Buffer != "undefined"; + } + function s2() { + if (!c()) + throw new Error("Buffer global does not exist; please use webpack if you need to parse Buffers in the browser."); + } + function l2(n3) { + s2(); + var t2 = i(function(n4, t3) { + return n4 + t3; + }, 0, n3); + if (t2 % 8 != 0) + throw new Error("The bits [" + n3.join(", ") + "] add up to " + t2 + " which is not an even number of bytes; the total should be divisible by 8"); + var r2, u2 = t2 / 8, o2 = (r2 = function(n4) { + return n4 > 48; + }, i(function(n4, t3) { + return n4 || (r2(t3) ? t3 : n4); + }, null, n3)); + if (o2) + throw new Error(o2 + " bit range requested exceeds 48 bit (6 byte) Number max."); + return new e(function(t3, r3) { + var e2 = u2 + r3; + return e2 > t3.length ? x(r3, u2.toString() + " bytes") : b(e2, i(function(n4, t4) { + var r4 = f(t4, n4.buf); + return { coll: n4.coll.concat(r4.v), buf: r4.buf }; + }, { coll: [], buf: t3.slice(r3, e2) }, n3).coll); + }); + } + function h(n3, t2) { + return new e(function(r2, e2) { + return s2(), e2 + t2 > r2.length ? x(e2, t2 + " bytes for " + n3) : b(e2 + t2, r2.slice(e2, e2 + t2)); + }); + } + function p(n3, t2) { + if (typeof (r2 = t2) != "number" || Math.floor(r2) !== r2 || t2 < 0 || t2 > 6) + throw new Error(n3 + " requires integer length in range [0, 6]."); + var r2; + } + function d(n3) { + return p("uintBE", n3), h("uintBE(" + n3 + ")", n3).map(function(t2) { + return t2.readUIntBE(0, n3); + }); + } + function v(n3) { + return p("uintLE", n3), h("uintLE(" + n3 + ")", n3).map(function(t2) { + return t2.readUIntLE(0, n3); + }); + } + function g(n3) { + return p("intBE", n3), h("intBE(" + n3 + ")", n3).map(function(t2) { + return t2.readIntBE(0, n3); + }); + } + function m(n3) { + return p("intLE", n3), h("intLE(" + n3 + ")", n3).map(function(t2) { + return t2.readIntLE(0, n3); + }); + } + function y(n3) { + return n3 instanceof e; + } + function E(n3) { + return {}.toString.call(n3) === "[object Array]"; + } + function w(n3) { + return c() && Buffer.isBuffer(n3); + } + function b(n3, t2) { + return { status: true, index: n3, value: t2, furthest: -1, expected: [] }; + } + function x(n3, t2) { + return E(t2) || (t2 = [t2]), { status: false, index: -1, value: null, furthest: n3, expected: t2 }; + } + function B(n3, t2) { + if (!t2) + return n3; + if (n3.furthest > t2.furthest) + return n3; + var r2 = n3.furthest === t2.furthest ? function(n4, t3) { + if (function() { + if (e._supportsSet !== void 0) + return e._supportsSet; + var n5 = typeof Set != "undefined"; + return e._supportsSet = n5, n5; + }() && Array.from) { + for (var r3 = new Set(n4), u2 = 0; u2 < t3.length; u2++) + r3.add(t3[u2]); + var o2 = Array.from(r3); + return o2.sort(), o2; + } + for (var i2 = {}, a2 = 0; a2 < n4.length; a2++) + i2[n4[a2]] = true; + for (var f2 = 0; f2 < t3.length; f2++) + i2[t3[f2]] = true; + var c2 = []; + for (var s3 in i2) + ({}).hasOwnProperty.call(i2, s3) && c2.push(s3); + return c2.sort(), c2; + }(n3.expected, t2.expected) : t2.expected; + return { status: n3.status, index: n3.index, value: n3.value, furthest: t2.furthest, expected: r2 }; + } + var j = {}; + function S(n3, t2) { + if (w(n3)) + return { offset: t2, line: -1, column: -1 }; + n3 in j || (j[n3] = {}); + for (var r2 = j[n3], e2 = 0, u2 = 0, o2 = 0, i2 = t2; i2 >= 0; ) { + if (i2 in r2) { + e2 = r2[i2].line, o2 === 0 && (o2 = r2[i2].lineStart); + break; + } + (n3.charAt(i2) === "\n" || n3.charAt(i2) === "\r" && n3.charAt(i2 + 1) !== "\n") && (u2++, o2 === 0 && (o2 = i2 + 1)), i2--; + } + var a2 = e2 + u2, f2 = t2 - o2; + return r2[t2] = { line: a2, lineStart: o2 }, { offset: t2, line: a2 + 1, column: f2 + 1 }; + } + function _(n3) { + if (!y(n3)) + throw new Error("not a parser: " + n3); + } + function L(n3, t2) { + return typeof n3 == "string" ? n3.charAt(t2) : n3[t2]; + } + function O(n3) { + if (typeof n3 != "number") + throw new Error("not a number: " + n3); + } + function k(n3) { + if (typeof n3 != "function") + throw new Error("not a function: " + n3); + } + function P(n3) { + if (typeof n3 != "string") + throw new Error("not a string: " + n3); + } + var q = 2, A = 3, I = 8, F = 5 * I, M = 4 * I, z = " "; + function R(n3, t2) { + return new Array(t2 + 1).join(n3); + } + function U(n3, t2, r2) { + var e2 = t2 - n3.length; + return e2 <= 0 ? n3 : R(r2, e2) + n3; + } + function W(n3, t2, r2, e2) { + return { from: n3 - t2 > 0 ? n3 - t2 : 0, to: n3 + r2 > e2 ? e2 : n3 + r2 }; + } + function D(n3, t2) { + var r2, e2, u2, o2, f2, c2 = t2.index, s3 = c2.offset, l3 = 1; + if (s3 === n3.length) + return "Got the end of the input"; + if (w(n3)) { + var h2 = s3 - s3 % I, p2 = s3 - h2, d2 = W(h2, F, M + I, n3.length), v2 = a(function(n4) { + return a(function(n5) { + return U(n5.toString(16), 2, "0"); + }, n4); + }, function(n4, t3) { + var r3 = n4.length, e3 = [], u3 = 0; + if (r3 <= t3) + return [n4.slice()]; + for (var o3 = 0; o3 < r3; o3++) + e3[u3] || e3.push([]), e3[u3].push(n4[o3]), (o3 + 1) % t3 == 0 && u3++; + return e3; + }(n3.slice(d2.from, d2.to).toJSON().data, I)); + o2 = function(n4) { + return n4.from === 0 && n4.to === 1 ? { from: n4.from, to: n4.to } : { from: n4.from / I, to: Math.floor(n4.to / I) }; + }(d2), e2 = h2 / I, r2 = 3 * p2, p2 >= 4 && (r2 += 1), l3 = 2, u2 = a(function(n4) { + return n4.length <= 4 ? n4.join(" ") : n4.slice(0, 4).join(" ") + " " + n4.slice(4).join(" "); + }, v2), (f2 = (8 * (o2.to > 0 ? o2.to - 1 : o2.to)).toString(16).length) < 2 && (f2 = 2); + } else { + var g2 = n3.split(/\r\n|[\n\r\u2028\u2029]/); + r2 = c2.column - 1, e2 = c2.line - 1, o2 = W(e2, q, A, g2.length), u2 = g2.slice(o2.from, o2.to), f2 = o2.to.toString().length; + } + var m2 = e2 - o2.from; + return w(n3) && (f2 = (8 * (o2.to > 0 ? o2.to - 1 : o2.to)).toString(16).length) < 2 && (f2 = 2), i(function(t3, e3, u3) { + var i2, a2 = u3 === m2, c3 = a2 ? "> " : z; + return i2 = w(n3) ? U((8 * (o2.from + u3)).toString(16), f2, "0") : U((o2.from + u3 + 1).toString(), f2, " "), [].concat(t3, [c3 + i2 + " | " + e3], a2 ? [z + R(" ", f2) + " | " + U("", r2, " ") + R("^", l3)] : []); + }, [], u2).join("\n"); + } + function N(n3, t2) { + return ["\n", "-- PARSING FAILED " + R("-", 50), "\n\n", D(n3, t2), "\n\n", (r2 = t2.expected, r2.length === 1 ? "Expected:\n\n" + r2[0] : "Expected one of the following: \n\n" + r2.join(", ")), "\n"].join(""); + var r2; + } + function G(n3) { + return n3.flags !== void 0 ? n3.flags : [n3.global ? "g" : "", n3.ignoreCase ? "i" : "", n3.multiline ? "m" : "", n3.unicode ? "u" : "", n3.sticky ? "y" : ""].join(""); + } + function C() { + for (var n3 = [].slice.call(arguments), t2 = n3.length, r2 = 0; r2 < t2; r2 += 1) + _(n3[r2]); + return e(function(r3, e2) { + for (var u2, o2 = new Array(t2), i2 = 0; i2 < t2; i2 += 1) { + if (!(u2 = B(n3[i2]._(r3, e2), u2)).status) + return u2; + o2[i2] = u2.value, e2 = u2.index; + } + return B(b(e2, o2), u2); + }); + } + function J() { + var n3 = [].slice.call(arguments); + if (n3.length === 0) + throw new Error("seqMap needs at least one argument"); + var t2 = n3.pop(); + return k(t2), C.apply(null, n3).map(function(n4) { + return t2.apply(null, n4); + }); + } + function T() { + var n3 = [].slice.call(arguments), t2 = n3.length; + if (t2 === 0) + return Y("zero alternates"); + for (var r2 = 0; r2 < t2; r2 += 1) + _(n3[r2]); + return e(function(t3, r3) { + for (var e2, u2 = 0; u2 < n3.length; u2 += 1) + if ((e2 = B(n3[u2]._(t3, r3), e2)).status) + return e2; + return e2; + }); + } + function V(n3, t2) { + return H(n3, t2).or(X([])); + } + function H(n3, t2) { + return _(n3), _(t2), J(n3, t2.then(n3).many(), function(n4, t3) { + return [n4].concat(t3); + }); + } + function K(n3) { + P(n3); + var t2 = "'" + n3 + "'"; + return e(function(r2, e2) { + var u2 = e2 + n3.length, o2 = r2.slice(e2, u2); + return o2 === n3 ? b(u2, o2) : x(e2, t2); + }); + } + function Q(n3, t2) { + !function(n4) { + if (!(n4 instanceof RegExp)) + throw new Error("not a regexp: " + n4); + for (var t3 = G(n4), r3 = 0; r3 < t3.length; r3++) { + var e2 = t3.charAt(r3); + if (e2 !== "i" && e2 !== "m" && e2 !== "u" && e2 !== "s") + throw new Error('unsupported regexp flag "' + e2 + '": ' + n4); + } + }(n3), arguments.length >= 2 ? O(t2) : t2 = 0; + var r2 = function(n4) { + return RegExp("^(?:" + n4.source + ")", G(n4)); + }(n3), u2 = "" + n3; + return e(function(n4, e2) { + var o2 = r2.exec(n4.slice(e2)); + if (o2) { + if (0 <= t2 && t2 <= o2.length) { + var i2 = o2[0], a2 = o2[t2]; + return b(e2 + i2.length, a2); + } + return x(e2, "valid match group (0 to " + o2.length + ") in " + u2); + } + return x(e2, u2); + }); + } + function X(n3) { + return e(function(t2, r2) { + return b(r2, n3); + }); + } + function Y(n3) { + return e(function(t2, r2) { + return x(r2, n3); + }); + } + function Z(n3) { + if (y(n3)) + return e(function(t2, r2) { + var e2 = n3._(t2, r2); + return e2.index = r2, e2.value = "", e2; + }); + if (typeof n3 == "string") + return Z(K(n3)); + if (n3 instanceof RegExp) + return Z(Q(n3)); + throw new Error("not a string, regexp, or parser: " + n3); + } + function $(n3) { + return _(n3), e(function(t2, r2) { + var e2 = n3._(t2, r2), u2 = t2.slice(r2, e2.index); + return e2.status ? x(r2, 'not "' + u2 + '"') : b(r2, null); + }); + } + function nn(n3) { + return k(n3), e(function(t2, r2) { + var e2 = L(t2, r2); + return r2 < t2.length && n3(e2) ? b(r2 + 1, e2) : x(r2, "a character/byte matching " + n3); + }); + } + function tn(n3, t2) { + arguments.length < 2 && (t2 = n3, n3 = void 0); + var r2 = e(function(n4, e2) { + return r2._ = t2()._, r2._(n4, e2); + }); + return n3 ? r2.desc(n3) : r2; + } + function rn() { + return Y("fantasy-land/empty"); + } + u.parse = function(n3) { + if (typeof n3 != "string" && !w(n3)) + throw new Error(".parse must be called with a string or Buffer as its argument"); + var t2, r2 = this.skip(an)._(n3, 0); + return t2 = r2.status ? { status: true, value: r2.value } : { status: false, index: S(n3, r2.furthest), expected: r2.expected }, delete j[n3], t2; + }, u.tryParse = function(n3) { + var t2 = this.parse(n3); + if (t2.status) + return t2.value; + var r2 = N(n3, t2), e2 = new Error(r2); + throw e2.type = "ParsimmonError", e2.result = t2, e2; + }, u.assert = function(n3, t2) { + return this.chain(function(r2) { + return n3(r2) ? X(r2) : Y(t2); + }); + }, u.or = function(n3) { + return T(this, n3); + }, u.trim = function(n3) { + return this.wrap(n3, n3); + }, u.wrap = function(n3, t2) { + return J(n3, this, t2, function(n4, t3) { + return t3; + }); + }, u.thru = function(n3) { + return n3(this); + }, u.then = function(n3) { + return _(n3), C(this, n3).map(function(n4) { + return n4[1]; + }); + }, u.many = function() { + var n3 = this; + return e(function(t2, r2) { + for (var e2 = [], u2 = void 0; ; ) { + if (!(u2 = B(n3._(t2, r2), u2)).status) + return B(b(r2, e2), u2); + if (r2 === u2.index) + throw new Error("infinite loop detected in .many() parser --- calling .many() on a parser which can accept zero characters is usually the cause"); + r2 = u2.index, e2.push(u2.value); + } + }); + }, u.tieWith = function(n3) { + return P(n3), this.map(function(t2) { + if (function(n4) { + if (!E(n4)) + throw new Error("not an array: " + n4); + }(t2), t2.length) { + P(t2[0]); + for (var r2 = t2[0], e2 = 1; e2 < t2.length; e2++) + P(t2[e2]), r2 += n3 + t2[e2]; + return r2; + } + return ""; + }); + }, u.tie = function() { + return this.tieWith(""); + }, u.times = function(n3, t2) { + var r2 = this; + return arguments.length < 2 && (t2 = n3), O(n3), O(t2), e(function(e2, u2) { + for (var o2 = [], i2 = void 0, a2 = void 0, f2 = 0; f2 < n3; f2 += 1) { + if (a2 = B(i2 = r2._(e2, u2), a2), !i2.status) + return a2; + u2 = i2.index, o2.push(i2.value); + } + for (; f2 < t2 && (a2 = B(i2 = r2._(e2, u2), a2), i2.status); f2 += 1) + u2 = i2.index, o2.push(i2.value); + return B(b(u2, o2), a2); + }); + }, u.result = function(n3) { + return this.map(function() { + return n3; + }); + }, u.atMost = function(n3) { + return this.times(0, n3); + }, u.atLeast = function(n3) { + return J(this.times(n3), this.many(), function(n4, t2) { + return n4.concat(t2); + }); + }, u.map = function(n3) { + k(n3); + var t2 = this; + return e(function(r2, e2) { + var u2 = t2._(r2, e2); + return u2.status ? B(b(u2.index, n3(u2.value)), u2) : u2; + }); + }, u.contramap = function(n3) { + k(n3); + var t2 = this; + return e(function(r2, e2) { + var u2 = t2.parse(n3(r2.slice(e2))); + return u2.status ? b(e2 + r2.length, u2.value) : u2; + }); + }, u.promap = function(n3, t2) { + return k(n3), k(t2), this.contramap(n3).map(t2); + }, u.skip = function(n3) { + return C(this, n3).map(function(n4) { + return n4[0]; + }); + }, u.mark = function() { + return J(en, this, en, function(n3, t2, r2) { + return { start: n3, value: t2, end: r2 }; + }); + }, u.node = function(n3) { + return J(en, this, en, function(t2, r2, e2) { + return { name: n3, value: r2, start: t2, end: e2 }; + }); + }, u.sepBy = function(n3) { + return V(this, n3); + }, u.sepBy1 = function(n3) { + return H(this, n3); + }, u.lookahead = function(n3) { + return this.skip(Z(n3)); + }, u.notFollowedBy = function(n3) { + return this.skip($(n3)); + }, u.desc = function(n3) { + E(n3) || (n3 = [n3]); + var t2 = this; + return e(function(r2, e2) { + var u2 = t2._(r2, e2); + return u2.status || (u2.expected = n3), u2; + }); + }, u.fallback = function(n3) { + return this.or(X(n3)); + }, u.ap = function(n3) { + return J(n3, this, function(n4, t2) { + return n4(t2); + }); + }, u.chain = function(n3) { + var t2 = this; + return e(function(r2, e2) { + var u2 = t2._(r2, e2); + return u2.status ? B(n3(u2.value)._(r2, u2.index), u2) : u2; + }); + }, u.concat = u.or, u.empty = rn, u.of = X, u["fantasy-land/ap"] = u.ap, u["fantasy-land/chain"] = u.chain, u["fantasy-land/concat"] = u.concat, u["fantasy-land/empty"] = u.empty, u["fantasy-land/of"] = u.of, u["fantasy-land/map"] = u.map; + var en = e(function(n3, t2) { + return b(t2, S(n3, t2)); + }), un = e(function(n3, t2) { + return t2 >= n3.length ? x(t2, "any character/byte") : b(t2 + 1, L(n3, t2)); + }), on = e(function(n3, t2) { + return b(n3.length, n3.slice(t2)); + }), an = e(function(n3, t2) { + return t2 < n3.length ? x(t2, "EOF") : b(t2, null); + }), fn2 = Q(/[0-9]/).desc("a digit"), cn = Q(/[0-9]*/).desc("optional digits"), sn = Q(/[a-z]/i).desc("a letter"), ln = Q(/[a-z]*/i).desc("optional letters"), hn = Q(/\s*/).desc("optional whitespace"), pn = Q(/\s+/).desc("whitespace"), dn = K("\r"), vn = K("\n"), gn = K("\r\n"), mn = T(gn, vn, dn).desc("newline"), yn = T(mn, an); + e.all = on, e.alt = T, e.any = un, e.cr = dn, e.createLanguage = function(n3) { + var t2 = {}; + for (var r2 in n3) + ({}).hasOwnProperty.call(n3, r2) && function(r3) { + t2[r3] = tn(function() { + return n3[r3](t2); + }); + }(r2); + return t2; + }, e.crlf = gn, e.custom = function(n3) { + return e(n3(b, x)); + }, e.digit = fn2, e.digits = cn, e.empty = rn, e.end = yn, e.eof = an, e.fail = Y, e.formatError = N, e.index = en, e.isParser = y, e.lazy = tn, e.letter = sn, e.letters = ln, e.lf = vn, e.lookahead = Z, e.makeFailure = x, e.makeSuccess = b, e.newline = mn, e.noneOf = function(n3) { + return nn(function(t2) { + return n3.indexOf(t2) < 0; + }).desc("none of '" + n3 + "'"); + }, e.notFollowedBy = $, e.of = X, e.oneOf = function(n3) { + for (var t2 = n3.split(""), r2 = 0; r2 < t2.length; r2++) + t2[r2] = "'" + t2[r2] + "'"; + return nn(function(t3) { + return n3.indexOf(t3) >= 0; + }).desc(t2); + }, e.optWhitespace = hn, e.Parser = e, e.range = function(n3, t2) { + return nn(function(r2) { + return n3 <= r2 && r2 <= t2; + }).desc(n3 + "-" + t2); + }, e.regex = Q, e.regexp = Q, e.sepBy = V, e.sepBy1 = H, e.seq = C, e.seqMap = J, e.seqObj = function() { + for (var n3, t2 = {}, r2 = 0, u2 = (n3 = arguments, Array.prototype.slice.call(n3)), o2 = u2.length, i2 = 0; i2 < o2; i2 += 1) { + var a2 = u2[i2]; + if (!y(a2)) { + if (E(a2) && a2.length === 2 && typeof a2[0] == "string" && y(a2[1])) { + var f2 = a2[0]; + if (Object.prototype.hasOwnProperty.call(t2, f2)) + throw new Error("seqObj: duplicate key " + f2); + t2[f2] = true, r2++; + continue; + } + throw new Error("seqObj arguments must be parsers or [string, parser] array pairs."); + } + } + if (r2 === 0) + throw new Error("seqObj expects at least one named parser, found zero"); + return e(function(n4, t3) { + for (var r3, e2 = {}, i3 = 0; i3 < o2; i3 += 1) { + var a3, f3; + if (E(u2[i3]) ? (a3 = u2[i3][0], f3 = u2[i3][1]) : (a3 = null, f3 = u2[i3]), !(r3 = B(f3._(n4, t3), r3)).status) + return r3; + a3 && (e2[a3] = r3.value), t3 = r3.index; + } + return B(b(t3, e2), r3); + }); + }, e.string = K, e.succeed = X, e.takeWhile = function(n3) { + return k(n3), e(function(t2, r2) { + for (var e2 = r2; e2 < t2.length && n3(L(t2, e2)); ) + e2++; + return b(e2, t2.slice(r2, e2)); + }); + }, e.test = nn, e.whitespace = pn, e["fantasy-land/empty"] = rn, e["fantasy-land/of"] = X, e.Binary = { bitSeq: l2, bitSeqObj: function(n3) { + s2(); + var t2 = {}, r2 = 0, e2 = a(function(n4) { + if (E(n4)) { + var e3 = n4; + if (e3.length !== 2) + throw new Error("[" + e3.join(", ") + "] should be length 2, got length " + e3.length); + if (P(e3[0]), O(e3[1]), Object.prototype.hasOwnProperty.call(t2, e3[0])) + throw new Error("duplicate key in bitSeqObj: " + e3[0]); + return t2[e3[0]] = true, r2++, e3; + } + return O(n4), [null, n4]; + }, n3); + if (r2 < 1) + throw new Error("bitSeqObj expects at least one named pair, got [" + n3.join(", ") + "]"); + var u2 = a(function(n4) { + return n4[0]; + }, e2); + return l2(a(function(n4) { + return n4[1]; + }, e2)).map(function(n4) { + return i(function(n5, t3) { + return t3[0] !== null && (n5[t3[0]] = t3[1]), n5; + }, {}, a(function(t3, r3) { + return [t3, n4[r3]]; + }, u2)); + }); + }, byte: function(n3) { + if (s2(), O(n3), n3 > 255) + throw new Error("Value specified to byte constructor (" + n3 + "=0x" + n3.toString(16) + ") is larger in value than a single byte."); + var t2 = (n3 > 15 ? "0x" : "0x0") + n3.toString(16); + return e(function(r2, e2) { + var u2 = L(r2, e2); + return u2 === n3 ? b(e2 + 1, u2) : x(e2, t2); + }); + }, buffer: function(n3) { + return h("buffer", n3).map(function(n4) { + return Buffer.from(n4); + }); + }, encodedString: function(n3, t2) { + return h("string", t2).map(function(t3) { + return t3.toString(n3); + }); + }, uintBE: d, uint8BE: d(1), uint16BE: d(2), uint32BE: d(4), uintLE: v, uint8LE: v(1), uint16LE: v(2), uint32LE: v(4), intBE: g, int8BE: g(1), int16BE: g(2), int32BE: g(4), intLE: m, int8LE: m(1), int16LE: m(2), int32LE: m(4), floatBE: h("floatBE", 4).map(function(n3) { + return n3.readFloatBE(0); + }), floatLE: h("floatLE", 4).map(function(n3) { + return n3.readFloatLE(0); + }), doubleBE: h("doubleBE", 8).map(function(n3) { + return n3.readDoubleBE(0); + }), doubleLE: h("doubleLE", 8).map(function(n3) { + return n3.readDoubleLE(0); + }) }, n2.exports = e; + }]); + }); + })(parsimmon_umd_min, parsimmon_umd_min.exports); + var parsimmon_umd_minExports = parsimmon_umd_min.exports; + var emojiRegex = () => { + return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26F9(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC3\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC08\uDC26](?:\u200D\u2B1B)?|[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC2\uDECE-\uDEDB\uDEE0-\uDEE8]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g; + }; + function normalizeDuration(dur) { + if (dur === void 0 || dur === null) + return dur; + return dur.shiftToAll().normalize(); + } + function getFileTitle(path2) { + if (path2.includes("/")) + path2 = path2.substring(path2.lastIndexOf("/") + 1); + if (path2.endsWith(".md")) + path2 = path2.substring(0, path2.length - 3); + return path2; + } + parsimmon_umd_minExports.alt(parsimmon_umd_minExports.regex(new RegExp(emojiRegex(), "")), parsimmon_umd_minExports.regex(/[0-9\p{Letter}_-]+/u).map((str) => str.toLocaleLowerCase()), parsimmon_umd_minExports.whitespace.map((_) => "-"), parsimmon_umd_minExports.any.map((_) => "")).many().map((result) => result.join("")); + var HEADER_CANONICALIZER = parsimmon_umd_minExports.alt(parsimmon_umd_minExports.regex(new RegExp(emojiRegex(), "")), parsimmon_umd_minExports.regex(/[0-9\p{Letter}_-]+/u), parsimmon_umd_minExports.whitespace.map((_) => " "), parsimmon_umd_minExports.any.map((_) => " ")).many().map((result) => { + return result.join("").split(/\s+/).join(" ").trim(); + }); + function normalizeHeaderForLink(header) { + return HEADER_CANONICALIZER.tryParse(header); + } + function renderMinimalDuration(dur) { + dur = normalizeDuration(dur); + dur = Duration.fromObject(Object.fromEntries(Object.entries(dur.toObject()).filter(([, quantity]) => quantity != 0))); + return dur.toHuman(); + } + var Values; + (function(Values2) { + function toString(field, setting = DEFAULT_QUERY_SETTINGS, recursive = false) { + let wrapped = wrapValue(field); + if (!wrapped) + return setting.renderNullAs; + switch (wrapped.type) { + case "null": + return setting.renderNullAs; + case "string": + return wrapped.value; + case "number": + case "boolean": + return "" + wrapped.value; + case "html": + return wrapped.value.outerHTML; + case "widget": + return wrapped.value.markdown(); + case "link": + return wrapped.value.markdown(); + case "function": + return ""; + case "array": + let result = ""; + if (recursive) + result += "["; + result += wrapped.value.map((f) => toString(f, setting, true)).join(", "); + if (recursive) + result += "]"; + return result; + case "object": + return "{ " + Object.entries(wrapped.value).map((e) => e[0] + ": " + toString(e[1], setting, true)).join(", ") + " }"; + case "date": + if (wrapped.value.second == 0 && wrapped.value.hour == 0 && wrapped.value.minute == 0) { + return wrapped.value.toFormat(setting.defaultDateFormat); + } + return wrapped.value.toFormat(setting.defaultDateTimeFormat); + case "duration": + return renderMinimalDuration(wrapped.value); + } + } + Values2.toString = toString; + function wrapValue(val) { + if (isNull(val)) + return { type: "null", value: val }; + else if (isNumber2(val)) + return { type: "number", value: val }; + else if (isString2(val)) + return { type: "string", value: val }; + else if (isBoolean(val)) + return { type: "boolean", value: val }; + else if (isDuration(val)) + return { type: "duration", value: val }; + else if (isDate2(val)) + return { type: "date", value: val }; + else if (isWidget(val)) + return { type: "widget", value: val }; + else if (isArray(val)) + return { type: "array", value: val }; + else if (isLink(val)) + return { type: "link", value: val }; + else if (isFunction(val)) + return { type: "function", value: val }; + else if (isHtml(val)) + return { type: "html", value: val }; + else if (isObject(val)) + return { type: "object", value: val }; + else + return void 0; + } + Values2.wrapValue = wrapValue; + function mapLeaves(val, func) { + if (isObject(val)) { + let result = {}; + for (let [key, value] of Object.entries(val)) + result[key] = mapLeaves(value, func); + return result; + } else if (isArray(val)) { + let result = []; + for (let value of val) + result.push(mapLeaves(value, func)); + return result; + } else { + return func(val); + } + } + Values2.mapLeaves = mapLeaves; + function compareValue(val1, val2, linkNormalizer) { + var _a, _b; + if (val1 === void 0) + val1 = null; + if (val2 === void 0) + val2 = null; + if (val1 === null && val2 === null) + return 0; + else if (val1 === null) + return -1; + else if (val2 === null) + return 1; + let wrap1 = wrapValue(val1); + let wrap2 = wrapValue(val2); + if (wrap1 === void 0 && wrap2 === void 0) + return 0; + else if (wrap1 === void 0) + return -1; + else if (wrap2 === void 0) + return 1; + if (wrap1.type != wrap2.type) + return wrap1.type.localeCompare(wrap2.type); + if (wrap1.value === wrap2.value) + return 0; + switch (wrap1.type) { + case "string": + return wrap1.value.localeCompare(wrap2.value); + case "number": + if (wrap1.value < wrap2.value) + return -1; + else if (wrap1.value == wrap2.value) + return 0; + return 1; + case "null": + return 0; + case "boolean": + if (wrap1.value == wrap2.value) + return 0; + else + return wrap1.value ? 1 : -1; + case "link": + let link1 = wrap1.value; + let link2 = wrap2.value; + let normalize = linkNormalizer !== null && linkNormalizer !== void 0 ? linkNormalizer : (x) => x; + let pathCompare = normalize(link1.path).localeCompare(normalize(link2.path)); + if (pathCompare != 0) + return pathCompare; + let typeCompare = link1.type.localeCompare(link2.type); + if (typeCompare != 0) + return typeCompare; + if (link1.subpath && !link2.subpath) + return 1; + if (!link1.subpath && link2.subpath) + return -1; + if (!link1.subpath && !link2.subpath) + return 0; + return ((_a = link1.subpath) !== null && _a !== void 0 ? _a : "").localeCompare((_b = link2.subpath) !== null && _b !== void 0 ? _b : ""); + case "date": + return wrap1.value < wrap2.value ? -1 : wrap1.value.equals(wrap2.value) ? 0 : 1; + case "duration": + return wrap1.value < wrap2.value ? -1 : wrap1.value.equals(wrap2.value) ? 0 : 1; + case "array": + let f1 = wrap1.value; + let f2 = wrap2.value; + for (let index = 0; index < Math.min(f1.length, f2.length); index++) { + let comp = compareValue(f1[index], f2[index]); + if (comp != 0) + return comp; + } + return f1.length - f2.length; + case "object": + let o1 = wrap1.value; + let o2 = wrap2.value; + let k1 = Array.from(Object.keys(o1)); + let k2 = Array.from(Object.keys(o2)); + k1.sort(); + k2.sort(); + let keyCompare = compareValue(k1, k2); + if (keyCompare != 0) + return keyCompare; + for (let key of k1) { + let comp = compareValue(o1[key], o2[key]); + if (comp != 0) + return comp; + } + return 0; + case "widget": + case "html": + case "function": + return 0; + } + } + Values2.compareValue = compareValue; + function typeOf(val) { + var _a; + return (_a = wrapValue(val)) === null || _a === void 0 ? void 0 : _a.type; + } + Values2.typeOf = typeOf; + function isTruthy(field) { + let wrapped = wrapValue(field); + if (!wrapped) + return false; + switch (wrapped.type) { + case "number": + return wrapped.value != 0; + case "string": + return wrapped.value.length > 0; + case "boolean": + return wrapped.value; + case "link": + return !!wrapped.value.path; + case "date": + return wrapped.value.toMillis() != 0; + case "duration": + return wrapped.value.as("seconds") != 0; + case "object": + return Object.keys(wrapped.value).length > 0; + case "array": + return wrapped.value.length > 0; + case "null": + return false; + case "html": + case "widget": + case "function": + return true; + } + } + Values2.isTruthy = isTruthy; + function deepCopy(field) { + if (field === null || field === void 0) + return field; + if (Values2.isArray(field)) { + return [].concat(field.map((v) => deepCopy(v))); + } else if (Values2.isObject(field)) { + let result = {}; + for (let [key, value] of Object.entries(field)) + result[key] = deepCopy(value); + return result; + } else { + return field; + } + } + Values2.deepCopy = deepCopy; + function isString2(val) { + return typeof val == "string"; + } + Values2.isString = isString2; + function isNumber2(val) { + return typeof val == "number"; + } + Values2.isNumber = isNumber2; + function isDate2(val) { + return val instanceof DateTime; + } + Values2.isDate = isDate2; + function isDuration(val) { + return val instanceof Duration; + } + Values2.isDuration = isDuration; + function isNull(val) { + return val === null || val === void 0; + } + Values2.isNull = isNull; + function isArray(val) { + return Array.isArray(val); + } + Values2.isArray = isArray; + function isBoolean(val) { + return typeof val === "boolean"; + } + Values2.isBoolean = isBoolean; + function isLink(val) { + return val instanceof Link; + } + Values2.isLink = isLink; + function isWidget(val) { + return val instanceof Widget; + } + Values2.isWidget = isWidget; + function isHtml(val) { + if (typeof HTMLElement !== "undefined") { + return val instanceof HTMLElement; + } else { + return false; + } + } + Values2.isHtml = isHtml; + function isObject(val) { + return typeof val == "object" && !isHtml(val) && !isWidget(val) && !isArray(val) && !isDuration(val) && !isDate2(val) && !isLink(val) && val !== void 0 && !isNull(val); + } + Values2.isObject = isObject; + function isFunction(val) { + return typeof val == "function"; + } + Values2.isFunction = isFunction; + })(Values || (Values = {})); + var Groupings; + (function(Groupings2) { + function isElementGroup(entry) { + return Values.isObject(entry) && Object.keys(entry).length == 2 && "key" in entry && "rows" in entry; + } + Groupings2.isElementGroup = isElementGroup; + function isGrouping(entry) { + for (let element of entry) + if (!isElementGroup(element)) + return false; + return true; + } + Groupings2.isGrouping = isGrouping; + function count(elements) { + if (isGrouping(elements)) { + let result = 0; + for (let subgroup of elements) + result += count(subgroup.rows); + return result; + } else { + return elements.length; + } + } + Groupings2.count = count; + })(Groupings || (Groupings = {})); + var Link = class { + static file(path2, embed = false, display) { + return new Link({ + path: path2, + embed, + display, + subpath: void 0, + type: "file" + }); + } + static infer(linkpath, embed = false, display) { + if (linkpath.includes("#^")) { + let split = linkpath.split("#^"); + return Link.block(split[0], split[1], embed, display); + } else if (linkpath.includes("#")) { + let split = linkpath.split("#"); + return Link.header(split[0], split[1], embed, display); + } else + return Link.file(linkpath, embed, display); + } + static header(path2, header, embed, display) { + return new Link({ + path: path2, + embed, + display, + subpath: normalizeHeaderForLink(header), + type: "header" + }); + } + static block(path2, blockId, embed, display) { + return new Link({ + path: path2, + embed, + display, + subpath: blockId, + type: "block" + }); + } + static fromObject(object) { + return new Link(object); + } + constructor(fields) { + Object.assign(this, fields); + } + equals(other) { + if (other == void 0 || other == null) + return false; + return this.path == other.path && this.type == other.type && this.subpath == other.subpath; + } + toString() { + return this.markdown(); + } + toObject() { + return { path: this.path, type: this.type, subpath: this.subpath, display: this.display, embed: this.embed }; + } + withPath(path2) { + return new Link(Object.assign({}, this, { path: path2 })); + } + withDisplay(display) { + return new Link(Object.assign({}, this, { display })); + } + withHeader(header) { + return Link.header(this.path, header, this.embed, this.display); + } + toFile() { + return Link.file(this.path, this.embed, this.display); + } + toEmbed() { + if (this.embed) { + return this; + } else { + let link = new Link(this); + link.embed = true; + return link; + } + } + fromEmbed() { + if (!this.embed) { + return this; + } else { + let link = new Link(this); + link.embed = false; + return link; + } + } + markdown() { + let result = (this.embed ? "!" : "") + "[[" + this.obsidianLink(); + if (this.display) { + result += "|" + this.display; + } else { + result += "|" + getFileTitle(this.path); + if (this.type == "header" || this.type == "block") + result += " > " + this.subpath; + } + result += "]]"; + return result; + } + obsidianLink() { + var _a, _b; + const escaped = this.path.replace("|", "\\|"); + if (this.type == "header") + return escaped + "#" + ((_a = this.subpath) === null || _a === void 0 ? void 0 : _a.replace("|", "\\|")); + if (this.type == "block") + return escaped + "#^" + ((_b = this.subpath) === null || _b === void 0 ? void 0 : _b.replace("|", "\\|")); + else + return escaped; + } + fileName() { + return getFileTitle(this.path).replace(".md", ""); + } + }; + var Widget = class { + constructor($widget) { + this.$widget = $widget; + } + }; + var ListPairWidget = class extends Widget { + constructor(key, value) { + super("dataview:list-pair"); + this.key = key; + this.value = value; + } + markdown() { + return `${Values.toString(this.key)}: ${Values.toString(this.value)}`; + } + }; + var ExternalLinkWidget = class extends Widget { + constructor(url, display) { + super("dataview:external-link"); + this.url = url; + this.display = display; + } + markdown() { + var _a; + return `[${(_a = this.display) !== null && _a !== void 0 ? _a : this.url}](${this.url})`; + } + }; + var Widgets; + (function(Widgets2) { + function listPair(key, value) { + return new ListPairWidget(key, value); + } + Widgets2.listPair = listPair; + function externalLink(url, display) { + return new ExternalLinkWidget(url, display); + } + Widgets2.externalLink = externalLink; + function isListPair(widget) { + return widget.$widget === "dataview:list-pair"; + } + Widgets2.isListPair = isListPair; + function isExternalLink(widget) { + return widget.$widget === "dataview:external-link"; + } + Widgets2.isExternalLink = isExternalLink; + function isBuiltin(widget) { + return isListPair(widget) || isExternalLink(widget); + } + Widgets2.isBuiltin = isBuiltin; + })(Widgets || (Widgets = {})); + var Fields; + (function(Fields2) { + function variable(name) { + return { type: "variable", name }; + } + Fields2.variable = variable; + function literal(value) { + return { type: "literal", value }; + } + Fields2.literal = literal; + function binaryOp(left, op, right) { + return { type: "binaryop", left, op, right }; + } + Fields2.binaryOp = binaryOp; + function index(obj, index2) { + return { type: "index", object: obj, index: index2 }; + } + Fields2.index = index; + function indexVariable(name) { + let parts = name.split("."); + let result = Fields2.variable(parts[0]); + for (let index2 = 1; index2 < parts.length; index2++) { + result = Fields2.index(result, Fields2.literal(parts[index2])); + } + return result; + } + Fields2.indexVariable = indexVariable; + function lambda(args2, value) { + return { type: "lambda", arguments: args2, value }; + } + Fields2.lambda = lambda; + function func(func2, args2) { + return { type: "function", func: func2, arguments: args2 }; + } + Fields2.func = func; + function list(values) { + return { type: "list", values }; + } + Fields2.list = list; + function object(values) { + return { type: "object", values }; + } + Fields2.object = object; + function negate(child) { + return { type: "negated", child }; + } + Fields2.negate = negate; + function isCompareOp(op) { + return op == "<=" || op == "<" || op == ">" || op == ">=" || op == "!=" || op == "="; + } + Fields2.isCompareOp = isCompareOp; + Fields2.NULL = Fields2.literal(null); + })(Fields || (Fields = {})); + var Sources; + (function(Sources2) { + function tag(tag2) { + return { type: "tag", tag: tag2 }; + } + Sources2.tag = tag; + function csv(path2) { + return { type: "csv", path: path2 }; + } + Sources2.csv = csv; + function folder(prefix) { + return { type: "folder", folder: prefix }; + } + Sources2.folder = folder; + function link(file, incoming) { + return { type: "link", file, direction: incoming ? "incoming" : "outgoing" }; + } + Sources2.link = link; + function binaryOp(left, op, right) { + return { type: "binaryop", left, op, right }; + } + Sources2.binaryOp = binaryOp; + function and(left, right) { + return { type: "binaryop", left, op: "&", right }; + } + Sources2.and = and; + function or(left, right) { + return { type: "binaryop", left, op: "|", right }; + } + Sources2.or = or; + function negate(child) { + return { type: "negate", child }; + } + Sources2.negate = negate; + function empty() { + return { type: "empty" }; + } + Sources2.empty = empty; + })(Sources || (Sources = {})); + var EMOJI_REGEX = new RegExp(emojiRegex(), ""); + var DURATION_TYPES = { + year: Duration.fromObject({ years: 1 }), + years: Duration.fromObject({ years: 1 }), + yr: Duration.fromObject({ years: 1 }), + yrs: Duration.fromObject({ years: 1 }), + month: Duration.fromObject({ months: 1 }), + months: Duration.fromObject({ months: 1 }), + mo: Duration.fromObject({ months: 1 }), + mos: Duration.fromObject({ months: 1 }), + week: Duration.fromObject({ weeks: 1 }), + weeks: Duration.fromObject({ weeks: 1 }), + wk: Duration.fromObject({ weeks: 1 }), + wks: Duration.fromObject({ weeks: 1 }), + w: Duration.fromObject({ weeks: 1 }), + day: Duration.fromObject({ days: 1 }), + days: Duration.fromObject({ days: 1 }), + d: Duration.fromObject({ days: 1 }), + hour: Duration.fromObject({ hours: 1 }), + hours: Duration.fromObject({ hours: 1 }), + hr: Duration.fromObject({ hours: 1 }), + hrs: Duration.fromObject({ hours: 1 }), + h: Duration.fromObject({ hours: 1 }), + minute: Duration.fromObject({ minutes: 1 }), + minutes: Duration.fromObject({ minutes: 1 }), + min: Duration.fromObject({ minutes: 1 }), + mins: Duration.fromObject({ minutes: 1 }), + m: Duration.fromObject({ minutes: 1 }), + second: Duration.fromObject({ seconds: 1 }), + seconds: Duration.fromObject({ seconds: 1 }), + sec: Duration.fromObject({ seconds: 1 }), + secs: Duration.fromObject({ seconds: 1 }), + s: Duration.fromObject({ seconds: 1 }) + }; + var DATE_SHORTHANDS = { + now: () => DateTime.local(), + today: () => DateTime.local().startOf("day"), + yesterday: () => DateTime.local().startOf("day").minus(Duration.fromObject({ days: 1 })), + tomorrow: () => DateTime.local().startOf("day").plus(Duration.fromObject({ days: 1 })), + sow: () => DateTime.local().startOf("week"), + "start-of-week": () => DateTime.local().startOf("week"), + eow: () => DateTime.local().endOf("week"), + "end-of-week": () => DateTime.local().endOf("week"), + soy: () => DateTime.local().startOf("year"), + "start-of-year": () => DateTime.local().startOf("year"), + eoy: () => DateTime.local().endOf("year"), + "end-of-year": () => DateTime.local().endOf("year"), + som: () => DateTime.local().startOf("month"), + "start-of-month": () => DateTime.local().startOf("month"), + eom: () => DateTime.local().endOf("month"), + "end-of-month": () => DateTime.local().endOf("month") + }; + var KEYWORDS = ["FROM", "WHERE", "LIMIT", "GROUP", "FLATTEN"]; + function splitOnUnescapedPipe(link) { + let pipe = -1; + while ((pipe = link.indexOf("|", pipe + 1)) >= 0) { + if (pipe > 0 && link[pipe - 1] == "\\") + continue; + return [link.substring(0, pipe).replace(/\\\|/g, "|"), link.substring(pipe + 1)]; + } + return [link.replace(/\\\|/g, "|"), void 0]; + } + function parseInnerLink(rawlink) { + let [link, display] = splitOnUnescapedPipe(rawlink); + return Link.infer(link, false, display); + } + function createBinaryParser(child, sep, combine) { + return parsimmon_umd_minExports.seqMap(child, parsimmon_umd_minExports.seq(parsimmon_umd_minExports.optWhitespace, sep, parsimmon_umd_minExports.optWhitespace, child).many(), (first, rest) => { + if (rest.length == 0) + return first; + let node = combine(first, rest[0][1], rest[0][3]); + for (let index = 1; index < rest.length; index++) { + node = combine(node, rest[index][1], rest[index][3]); + } + return node; + }); + } + function chainOpt(base, ...funcs) { + return parsimmon_umd_minExports.custom((success, failure) => { + return (input, i) => { + let result = base._(input, i); + if (!result.status) + return result; + for (let func of funcs) { + let next = func(result.value)._(input, result.index); + if (!next.status) + return result; + result = next; + } + return result; + }; + }); + } + var EXPRESSION = parsimmon_umd_minExports.createLanguage({ + number: (q) => parsimmon_umd_minExports.regexp(/-?[0-9]+(\.[0-9]+)?/).map((str) => Number.parseFloat(str)).desc("number"), + string: (q) => parsimmon_umd_minExports.string('"').then(parsimmon_umd_minExports.alt(q.escapeCharacter, parsimmon_umd_minExports.noneOf('"\\')).atLeast(0).map((chars) => chars.join(""))).skip(parsimmon_umd_minExports.string('"')).desc("string"), + escapeCharacter: (_) => parsimmon_umd_minExports.string("\\").then(parsimmon_umd_minExports.any).map((escaped) => { + if (escaped === '"') + return '"'; + if (escaped === "\\") + return "\\"; + else + return "\\" + escaped; + }), + bool: (_) => parsimmon_umd_minExports.regexp(/true|false|True|False/).map((str) => str.toLowerCase() == "true").desc("boolean ('true' or 'false')"), + tag: (_) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.string("#"), parsimmon_umd_minExports.alt(parsimmon_umd_minExports.regexp(/[^\u2000-\u206F\u2E00-\u2E7F'!"#$%&()*+,.:;<=>?@^`{|}~\[\]\\\s]/).desc("text")).many(), (start, rest) => start + rest.join("")).desc("tag ('#hello/stuff')"), + identifier: (_) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.alt(parsimmon_umd_minExports.regexp(/\p{Letter}/u), parsimmon_umd_minExports.regexp(EMOJI_REGEX).desc("text")), parsimmon_umd_minExports.alt(parsimmon_umd_minExports.regexp(/[0-9\p{Letter}_-]/u), parsimmon_umd_minExports.regexp(EMOJI_REGEX).desc("text")).many(), (first, rest) => first + rest.join("")).desc("variable identifier"), + link: (_) => parsimmon_umd_minExports.regexp(/\[\[([^\[\]]*?)\]\]/u, 1).map((linkInner) => parseInnerLink(linkInner)).desc("file link"), + embedLink: (q) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.string("!").atMost(1), q.link, (p, l2) => { + if (p.length > 0) + l2.embed = true; + return l2; + }).desc("file link"), + binaryPlusMinus: (_) => parsimmon_umd_minExports.regexp(/\+|-/).map((str) => str).desc("'+' or '-'"), + binaryMulDiv: (_) => parsimmon_umd_minExports.regexp(/\*|\/|%/).map((str) => str).desc("'*' or '/' or '%'"), + binaryCompareOp: (_) => parsimmon_umd_minExports.regexp(/>=|<=|!=|>|<|=/).map((str) => str).desc("'>=' or '<=' or '!=' or '=' or '>' or '<'"), + binaryBooleanOp: (_) => parsimmon_umd_minExports.regexp(/and|or|&|\|/i).map((str) => { + if (str.toLowerCase() == "and") + return "&"; + else if (str.toLowerCase() == "or") + return "|"; + else + return str; + }).desc("'and' or 'or'"), + rootDate: (_) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.regexp(/\d{4}/), parsimmon_umd_minExports.string("-"), parsimmon_umd_minExports.regexp(/\d{2}/), (year, _2, month) => { + return DateTime.fromObject({ year: Number.parseInt(year), month: Number.parseInt(month) }); + }).desc("date in format YYYY-MM[-DDTHH-MM-SS.MS]"), + dateShorthand: (_) => parsimmon_umd_minExports.alt(...Object.keys(DATE_SHORTHANDS).sort((a, b) => b.length - a.length).map(parsimmon_umd_minExports.string)), + date: (q) => chainOpt(q.rootDate, (ym) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.string("-"), parsimmon_umd_minExports.regexp(/\d{2}/), (_, day) => ym.set({ day: Number.parseInt(day) })), (ymd) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.string("T"), parsimmon_umd_minExports.regexp(/\d{2}/), (_, hour) => ymd.set({ hour: Number.parseInt(hour) })), (ymdh) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.string(":"), parsimmon_umd_minExports.regexp(/\d{2}/), (_, minute) => ymdh.set({ minute: Number.parseInt(minute) })), (ymdhm) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.string(":"), parsimmon_umd_minExports.regexp(/\d{2}/), (_, second) => ymdhm.set({ second: Number.parseInt(second) })), (ymdhms) => parsimmon_umd_minExports.alt(parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.string("."), parsimmon_umd_minExports.regexp(/\d{3}/), (_, millisecond) => ymdhms.set({ millisecond: Number.parseInt(millisecond) })), parsimmon_umd_minExports.succeed(ymdhms)), (dt) => parsimmon_umd_minExports.alt(parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.string("+").or(parsimmon_umd_minExports.string("-")), parsimmon_umd_minExports.regexp(/\d{1,2}(:\d{2})?/), (pm, hr) => dt.setZone("UTC" + pm + hr, { keepLocalTime: true })), parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.string("Z"), () => dt.setZone("utc", { keepLocalTime: true })), parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.string("["), parsimmon_umd_minExports.regexp(/[0-9A-Za-z+-\/]+/u), parsimmon_umd_minExports.string("]"), (_a, zone, _b) => dt.setZone(zone, { keepLocalTime: true })))).assert((dt) => dt.isValid, "valid date").desc("date in format YYYY-MM[-DDTHH-MM-SS.MS]"), + datePlus: (q) => parsimmon_umd_minExports.alt(q.dateShorthand.map((d) => DATE_SHORTHANDS[d]()), q.date).desc("date in format YYYY-MM[-DDTHH-MM-SS.MS] or in shorthand"), + durationType: (_) => parsimmon_umd_minExports.alt(...Object.keys(DURATION_TYPES).sort((a, b) => b.length - a.length).map(parsimmon_umd_minExports.string)), + duration: (q) => parsimmon_umd_minExports.seqMap(q.number, parsimmon_umd_minExports.optWhitespace, q.durationType, (count, _, t) => DURATION_TYPES[t].mapUnits((x) => x * count)).sepBy1(parsimmon_umd_minExports.string(",").trim(parsimmon_umd_minExports.optWhitespace).or(parsimmon_umd_minExports.optWhitespace)).map((durations) => durations.reduce((p, c) => p.plus(c))).desc("duration like 4hr2min"), + rawNull: (_) => parsimmon_umd_minExports.string("null"), + tagSource: (q) => q.tag.map((tag) => Sources.tag(tag)), + csvSource: (q) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.string("csv(").skip(parsimmon_umd_minExports.optWhitespace), q.string, parsimmon_umd_minExports.string(")"), (_1, path2, _2) => Sources.csv(path2)), + linkIncomingSource: (q) => q.link.map((link) => Sources.link(link.path, true)), + linkOutgoingSource: (q) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.string("outgoing(").skip(parsimmon_umd_minExports.optWhitespace), q.link, parsimmon_umd_minExports.string(")"), (_1, link, _2) => Sources.link(link.path, false)), + folderSource: (q) => q.string.map((str) => Sources.folder(str)), + parensSource: (q) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.string("("), parsimmon_umd_minExports.optWhitespace, q.source, parsimmon_umd_minExports.optWhitespace, parsimmon_umd_minExports.string(")"), (_1, _2, field, _3, _4) => field), + negateSource: (q) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.alt(parsimmon_umd_minExports.string("-"), parsimmon_umd_minExports.string("!")), q.atomSource, (_, source) => Sources.negate(source)), + atomSource: (q) => parsimmon_umd_minExports.alt(q.parensSource, q.negateSource, q.linkOutgoingSource, q.linkIncomingSource, q.folderSource, q.tagSource, q.csvSource), + binaryOpSource: (q) => createBinaryParser(q.atomSource, q.binaryBooleanOp.map((s2) => s2), Sources.binaryOp), + source: (q) => q.binaryOpSource, + variableField: (q) => q.identifier.chain((r) => { + if (KEYWORDS.includes(r.toUpperCase())) { + return parsimmon_umd_minExports.fail("Variable fields cannot be a keyword (" + KEYWORDS.join(" or ") + ")"); + } else { + return parsimmon_umd_minExports.succeed(Fields.variable(r)); + } + }).desc("variable"), + numberField: (q) => q.number.map((val) => Fields.literal(val)).desc("number"), + stringField: (q) => q.string.map((val) => Fields.literal(val)).desc("string"), + boolField: (q) => q.bool.map((val) => Fields.literal(val)).desc("boolean"), + dateField: (q) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.string("date("), parsimmon_umd_minExports.optWhitespace, q.datePlus, parsimmon_umd_minExports.optWhitespace, parsimmon_umd_minExports.string(")"), (prefix, _1, date, _2, postfix) => Fields.literal(date)).desc("date"), + durationField: (q) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.string("dur("), parsimmon_umd_minExports.optWhitespace, q.duration, parsimmon_umd_minExports.optWhitespace, parsimmon_umd_minExports.string(")"), (prefix, _1, dur, _2, postfix) => Fields.literal(dur)).desc("duration"), + nullField: (q) => q.rawNull.map((_) => Fields.NULL), + linkField: (q) => q.link.map((f) => Fields.literal(f)), + listField: (q) => q.field.sepBy(parsimmon_umd_minExports.string(",").trim(parsimmon_umd_minExports.optWhitespace)).wrap(parsimmon_umd_minExports.string("[").skip(parsimmon_umd_minExports.optWhitespace), parsimmon_umd_minExports.optWhitespace.then(parsimmon_umd_minExports.string("]"))).map((l2) => Fields.list(l2)).desc("list ('[1, 2, 3]')"), + objectField: (q) => parsimmon_umd_minExports.seqMap(q.identifier.or(q.string), parsimmon_umd_minExports.string(":").trim(parsimmon_umd_minExports.optWhitespace), q.field, (name, _sep, value) => { + return { name, value }; + }).sepBy(parsimmon_umd_minExports.string(",").trim(parsimmon_umd_minExports.optWhitespace)).wrap(parsimmon_umd_minExports.string("{").skip(parsimmon_umd_minExports.optWhitespace), parsimmon_umd_minExports.optWhitespace.then(parsimmon_umd_minExports.string("}"))).map((vals) => { + let res = {}; + for (let entry of vals) + res[entry.name] = entry.value; + return Fields.object(res); + }).desc("object ('{ a: 1, b: 2 }')"), + atomInlineField: (q) => parsimmon_umd_minExports.alt(q.date, q.duration.map((d) => normalizeDuration(d)), q.string, q.tag, q.embedLink, q.bool, q.number, q.rawNull), + inlineFieldList: (q) => q.atomInlineField.sepBy(parsimmon_umd_minExports.string(",").trim(parsimmon_umd_minExports.optWhitespace).lookahead(q.atomInlineField)), + inlineField: (q) => parsimmon_umd_minExports.alt(parsimmon_umd_minExports.seqMap(q.atomInlineField, parsimmon_umd_minExports.string(",").trim(parsimmon_umd_minExports.optWhitespace), q.inlineFieldList, (f, _s, l2) => [f].concat(l2)), q.atomInlineField), + atomField: (q) => parsimmon_umd_minExports.alt(q.embedLink.map((l2) => Fields.literal(l2)), q.negatedField, q.linkField, q.listField, q.objectField, q.lambdaField, q.parensField, q.boolField, q.numberField, q.stringField, q.dateField, q.durationField, q.nullField, q.variableField), + indexField: (q) => parsimmon_umd_minExports.seqMap(q.atomField, parsimmon_umd_minExports.alt(q.dotPostfix, q.indexPostfix, q.functionPostfix).many(), (obj, postfixes) => { + let result = obj; + for (let post of postfixes) { + switch (post.type) { + case "dot": + result = Fields.index(result, Fields.literal(post.field)); + break; + case "index": + result = Fields.index(result, post.field); + break; + case "function": + result = Fields.func(result, post.fields); + break; + } + } + return result; + }), + negatedField: (q) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.string("!"), q.indexField, (_, field) => Fields.negate(field)).desc("negated field"), + parensField: (q) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.string("("), parsimmon_umd_minExports.optWhitespace, q.field, parsimmon_umd_minExports.optWhitespace, parsimmon_umd_minExports.string(")"), (_1, _2, field, _3, _4) => field), + lambdaField: (q) => parsimmon_umd_minExports.seqMap(q.identifier.sepBy(parsimmon_umd_minExports.string(",").trim(parsimmon_umd_minExports.optWhitespace)).wrap(parsimmon_umd_minExports.string("(").trim(parsimmon_umd_minExports.optWhitespace), parsimmon_umd_minExports.string(")").trim(parsimmon_umd_minExports.optWhitespace)), parsimmon_umd_minExports.string("=>").trim(parsimmon_umd_minExports.optWhitespace), q.field, (ident, _ignore, value) => { + return { type: "lambda", arguments: ident, value }; + }), + dotPostfix: (q) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.string("."), q.identifier, (_, field) => { + return { type: "dot", field }; + }), + indexPostfix: (q) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.string("["), parsimmon_umd_minExports.optWhitespace, q.field, parsimmon_umd_minExports.optWhitespace, parsimmon_umd_minExports.string("]"), (_, _2, field, _3, _4) => { + return { type: "index", field }; + }), + functionPostfix: (q) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.string("("), parsimmon_umd_minExports.optWhitespace, q.field.sepBy(parsimmon_umd_minExports.string(",").trim(parsimmon_umd_minExports.optWhitespace)), parsimmon_umd_minExports.optWhitespace, parsimmon_umd_minExports.string(")"), (_, _1, fields, _2, _3) => { + return { type: "function", fields }; + }), + binaryMulDivField: (q) => createBinaryParser(q.indexField, q.binaryMulDiv, Fields.binaryOp), + binaryPlusMinusField: (q) => createBinaryParser(q.binaryMulDivField, q.binaryPlusMinus, Fields.binaryOp), + binaryCompareField: (q) => createBinaryParser(q.binaryPlusMinusField, q.binaryCompareOp, Fields.binaryOp), + binaryBooleanField: (q) => createBinaryParser(q.binaryCompareField, q.binaryBooleanOp, Fields.binaryOp), + binaryOpField: (q) => q.binaryBooleanField, + field: (q) => q.binaryOpField + }); + function parseField(text) { + try { + return Result.success(EXPRESSION.field.tryParse(text)); + } catch (error) { + return Result.failure("" + error); + } + } + var QueryFields; + (function(QueryFields2) { + function named(name, field) { + return { name, field }; + } + QueryFields2.named = named; + function sortBy(field, dir) { + return { field, direction: dir }; + } + QueryFields2.sortBy = sortBy; + })(QueryFields || (QueryFields = {})); + function captureRaw(base) { + return parsimmon_umd_minExports.custom((success, failure) => { + return (input, i) => { + let result = base._(input, i); + if (!result.status) + return result; + return Object.assign({}, result, { value: [result.value, input.substring(i, result.index)] }); + }; + }); + } + function stripNewlines(text) { + return text.split(/[\r\n]+/).map((t) => t.trim()).join(""); + } + function precededByWhitespaceIfNotEof(if_eof, parser) { + return parsimmon_umd_minExports.eof.map(if_eof).or(parsimmon_umd_minExports.whitespace.then(parser)); + } + var QUERY_LANGUAGE = parsimmon_umd_minExports.createLanguage({ + queryType: (q) => parsimmon_umd_minExports.alt(parsimmon_umd_minExports.regexp(/TABLE|LIST|TASK|CALENDAR/i)).map((str) => str.toLowerCase()).desc("query type ('TABLE', 'LIST', 'TASK', or 'CALENDAR')"), + explicitNamedField: (q) => parsimmon_umd_minExports.seqMap(EXPRESSION.field.skip(parsimmon_umd_minExports.whitespace), parsimmon_umd_minExports.regexp(/AS/i).skip(parsimmon_umd_minExports.whitespace), EXPRESSION.identifier.or(EXPRESSION.string), (field, _as, ident) => QueryFields.named(ident, field)), + namedField: (q) => parsimmon_umd_minExports.alt(q.explicitNamedField, captureRaw(EXPRESSION.field).map(([value, text]) => QueryFields.named(stripNewlines(text), value))), + sortField: (q) => parsimmon_umd_minExports.seqMap(EXPRESSION.field.skip(parsimmon_umd_minExports.optWhitespace), parsimmon_umd_minExports.regexp(/ASCENDING|DESCENDING|ASC|DESC/i).atMost(1), (field, dir) => { + let direction = dir.length == 0 ? "ascending" : dir[0].toLowerCase(); + if (direction == "desc") + direction = "descending"; + if (direction == "asc") + direction = "ascending"; + return { + field, + direction + }; + }), + headerClause: (q) => q.queryType.chain((type) => { + switch (type) { + case "table": { + return precededByWhitespaceIfNotEof(() => ({ type, fields: [], showId: true }), parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.regexp(/WITHOUT\s+ID/i).skip(parsimmon_umd_minExports.optWhitespace).atMost(1), parsimmon_umd_minExports.sepBy(q.namedField, parsimmon_umd_minExports.string(",").trim(parsimmon_umd_minExports.optWhitespace)), (withoutId, fields) => { + return { type, fields, showId: withoutId.length == 0 }; + })); + } + case "list": + return precededByWhitespaceIfNotEof(() => ({ type, format: void 0, showId: true }), parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.regexp(/WITHOUT\s+ID/i).skip(parsimmon_umd_minExports.optWhitespace).atMost(1), EXPRESSION.field.atMost(1), (withoutId, format) => { + return { + type, + format: format.length == 1 ? format[0] : void 0, + showId: withoutId.length == 0 + }; + })); + case "task": + return parsimmon_umd_minExports.succeed({ type }); + case "calendar": + return parsimmon_umd_minExports.whitespace.then(parsimmon_umd_minExports.seqMap(q.namedField, (field) => { + return { + type, + showId: true, + field + }; + })); + default: + return parsimmon_umd_minExports.fail(`Unrecognized query type '${type}'`); + } + }).desc("TABLE or LIST or TASK or CALENDAR"), + fromClause: (q) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.regexp(/FROM/i), parsimmon_umd_minExports.whitespace, EXPRESSION.source, (_1, _2, source) => source), + whereClause: (q) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.regexp(/WHERE/i), parsimmon_umd_minExports.whitespace, EXPRESSION.field, (where, _, field) => { + return { type: "where", clause: field }; + }).desc("WHERE "), + sortByClause: (q) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.regexp(/SORT/i), parsimmon_umd_minExports.whitespace, q.sortField.sepBy1(parsimmon_umd_minExports.string(",").trim(parsimmon_umd_minExports.optWhitespace)), (sort, _1, fields) => { + return { type: "sort", fields }; + }).desc("SORT field [ASC/DESC]"), + limitClause: (q) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.regexp(/LIMIT/i), parsimmon_umd_minExports.whitespace, EXPRESSION.field, (limit, _1, field) => { + return { type: "limit", amount: field }; + }).desc("LIMIT "), + flattenClause: (q) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.regexp(/FLATTEN/i).skip(parsimmon_umd_minExports.whitespace), q.namedField, (_, field) => { + return { type: "flatten", field }; + }).desc("FLATTEN [AS ]"), + groupByClause: (q) => parsimmon_umd_minExports.seqMap(parsimmon_umd_minExports.regexp(/GROUP BY/i).skip(parsimmon_umd_minExports.whitespace), q.namedField, (_, field) => { + return { type: "group", field }; + }).desc("GROUP BY [AS ]"), + clause: (q) => parsimmon_umd_minExports.alt(q.fromClause, q.whereClause, q.sortByClause, q.limitClause, q.groupByClause, q.flattenClause), + query: (q) => parsimmon_umd_minExports.seqMap(q.headerClause.trim(parsimmon_umd_minExports.optWhitespace), q.fromClause.trim(parsimmon_umd_minExports.optWhitespace).atMost(1), q.clause.trim(parsimmon_umd_minExports.optWhitespace).many(), (header, from, clauses) => { + return { + header, + source: from.length == 0 ? Sources.folder("") : from[0], + operations: clauses, + settings: DEFAULT_QUERY_SETTINGS + }; + }) + }); + var getAPI = (app) => { + var _a; + if (app) + return (_a = app.plugins.plugins.dataview) === null || _a === void 0 ? void 0 : _a.api; + else + return window.DataviewAPI; + }; + var isPluginEnabled = (app) => app.plugins.enabledPlugins.has("dataview"); + exports2.DATE_SHORTHANDS = DATE_SHORTHANDS; + exports2.DURATION_TYPES = DURATION_TYPES; + exports2.EXPRESSION = EXPRESSION; + exports2.KEYWORDS = KEYWORDS; + exports2.QUERY_LANGUAGE = QUERY_LANGUAGE; + exports2.getAPI = getAPI; + exports2.isPluginEnabled = isPluginEnabled; + exports2.parseField = parseField; + } +}); + +// node_modules/depd/lib/compat/callsite-tostring.js +var require_callsite_tostring = __commonJS({ + "node_modules/depd/lib/compat/callsite-tostring.js"(exports2, module2) { + "use strict"; + module2.exports = callSiteToString2; + function callSiteFileLocation(callSite) { + var fileName; + var fileLocation = ""; + if (callSite.isNative()) { + fileLocation = "native"; + } else if (callSite.isEval()) { + fileName = callSite.getScriptNameOrSourceURL(); + if (!fileName) { + fileLocation = callSite.getEvalOrigin(); + } + } else { + fileName = callSite.getFileName(); + } + if (fileName) { + fileLocation += fileName; + var lineNumber = callSite.getLineNumber(); + if (lineNumber != null) { + fileLocation += ":" + lineNumber; + var columnNumber = callSite.getColumnNumber(); + if (columnNumber) { + fileLocation += ":" + columnNumber; + } + } + } + return fileLocation || "unknown source"; + } + function callSiteToString2(callSite) { + var addSuffix = true; + var fileLocation = callSiteFileLocation(callSite); + var functionName = callSite.getFunctionName(); + var isConstructor = callSite.isConstructor(); + var isMethodCall = !(callSite.isToplevel() || isConstructor); + var line = ""; + if (isMethodCall) { + var methodName = callSite.getMethodName(); + var typeName = getConstructorName(callSite); + if (functionName) { + if (typeName && functionName.indexOf(typeName) !== 0) { + line += typeName + "."; + } + line += functionName; + if (methodName && functionName.lastIndexOf("." + methodName) !== functionName.length - methodName.length - 1) { + line += " [as " + methodName + "]"; + } + } else { + line += typeName + "." + (methodName || ""); + } + } else if (isConstructor) { + line += "new " + (functionName || ""); + } else if (functionName) { + line += functionName; + } else { + addSuffix = false; + line += fileLocation; + } + if (addSuffix) { + line += " (" + fileLocation + ")"; + } + return line; + } + function getConstructorName(obj) { + var receiver = obj.receiver; + return receiver.constructor && receiver.constructor.name || null; + } + } +}); + +// node_modules/depd/lib/compat/event-listener-count.js +var require_event_listener_count = __commonJS({ + "node_modules/depd/lib/compat/event-listener-count.js"(exports2, module2) { + "use strict"; + module2.exports = eventListenerCount2; + function eventListenerCount2(emitter, type) { + return emitter.listeners(type).length; + } + } +}); + +// node_modules/depd/lib/compat/index.js +var require_compat = __commonJS({ + "node_modules/depd/lib/compat/index.js"(exports2, module2) { + "use strict"; + var EventEmitter = require("events").EventEmitter; + lazyProperty(module2.exports, "callSiteToString", function callSiteToString2() { + var limit = Error.stackTraceLimit; + var obj = {}; + var prep = Error.prepareStackTrace; + function prepareObjectStackTrace2(obj2, stack3) { + return stack3; + } + Error.prepareStackTrace = prepareObjectStackTrace2; + Error.stackTraceLimit = 2; + Error.captureStackTrace(obj); + var stack2 = obj.stack.slice(); + Error.prepareStackTrace = prep; + Error.stackTraceLimit = limit; + return stack2[0].toString ? toString : require_callsite_tostring(); + }); + lazyProperty(module2.exports, "eventListenerCount", function eventListenerCount2() { + return EventEmitter.listenerCount || require_event_listener_count(); + }); + function lazyProperty(obj, prop, getter) { + function get() { + var val = getter(); + Object.defineProperty(obj, prop, { + configurable: true, + enumerable: true, + value: val + }); + return val; + } + Object.defineProperty(obj, prop, { + configurable: true, + enumerable: true, + get + }); + } + function toString(obj) { + return obj.toString(); + } + } +}); + +// node_modules/depd/index.js +var require_depd = __commonJS({ + "node_modules/depd/index.js"(exports, module) { + var callSiteToString = require_compat().callSiteToString; + var eventListenerCount = require_compat().eventListenerCount; + var relative = require("path").relative; + module.exports = depd; + var basePath = process.cwd(); + function containsNamespace(str, namespace) { + var vals = str.split(/[ ,]+/); + var ns = String(namespace).toLowerCase(); + for (var i = 0; i < vals.length; i++) { + var val = vals[i]; + if (val && (val === "*" || val.toLowerCase() === ns)) { + return true; + } + } + return false; + } + function convertDataDescriptorToAccessor(obj, prop, message2) { + var descriptor = Object.getOwnPropertyDescriptor(obj, prop); + var value = descriptor.value; + descriptor.get = function getter() { + return value; + }; + if (descriptor.writable) { + descriptor.set = function setter(val) { + return value = val; + }; + } + delete descriptor.value; + delete descriptor.writable; + Object.defineProperty(obj, prop, descriptor); + return descriptor; + } + function createArgumentsString(arity) { + var str = ""; + for (var i = 0; i < arity; i++) { + str += ", arg" + i; + } + return str.substr(2); + } + function createStackString(stack2) { + var str = this.name + ": " + this.namespace; + if (this.message) { + str += " deprecated " + this.message; + } + for (var i = 0; i < stack2.length; i++) { + str += "\n at " + callSiteToString(stack2[i]); + } + return str; + } + function depd(namespace) { + if (!namespace) { + throw new TypeError("argument namespace is required"); + } + var stack2 = getStack(); + var site2 = callSiteLocation(stack2[1]); + var file = site2[0]; + function deprecate2(message2) { + log.call(deprecate2, message2); + } + deprecate2._file = file; + deprecate2._ignored = isignored(namespace); + deprecate2._namespace = namespace; + deprecate2._traced = istraced(namespace); + deprecate2._warned = Object.create(null); + deprecate2.function = wrapfunction; + deprecate2.property = wrapproperty; + return deprecate2; + } + function isignored(namespace) { + if (process.noDeprecation) { + return true; + } + var str = process.env.NO_DEPRECATION || ""; + return containsNamespace(str, namespace); + } + function istraced(namespace) { + if (process.traceDeprecation) { + return true; + } + var str = process.env.TRACE_DEPRECATION || ""; + return containsNamespace(str, namespace); + } + function log(message2, site2) { + var haslisteners = eventListenerCount(process, "deprecation") !== 0; + if (!haslisteners && this._ignored) { + return; + } + var caller; + var callFile; + var callSite; + var depSite; + var i = 0; + var seen = false; + var stack2 = getStack(); + var file = this._file; + if (site2) { + depSite = site2; + callSite = callSiteLocation(stack2[1]); + callSite.name = depSite.name; + file = callSite[0]; + } else { + i = 2; + depSite = callSiteLocation(stack2[i]); + callSite = depSite; + } + for (; i < stack2.length; i++) { + caller = callSiteLocation(stack2[i]); + callFile = caller[0]; + if (callFile === file) { + seen = true; + } else if (callFile === this._file) { + file = this._file; + } else if (seen) { + break; + } + } + var key = caller ? depSite.join(":") + "__" + caller.join(":") : void 0; + if (key !== void 0 && key in this._warned) { + return; + } + this._warned[key] = true; + var msg = message2; + if (!msg) { + msg = callSite === depSite || !callSite.name ? defaultMessage(depSite) : defaultMessage(callSite); + } + if (haslisteners) { + var err = DeprecationError(this._namespace, msg, stack2.slice(i)); + process.emit("deprecation", err); + return; + } + var format = process.stderr.isTTY ? formatColor : formatPlain; + var output = format.call(this, msg, caller, stack2.slice(i)); + process.stderr.write(output + "\n", "utf8"); + } + function callSiteLocation(callSite) { + var file = callSite.getFileName() || ""; + var line = callSite.getLineNumber(); + var colm = callSite.getColumnNumber(); + if (callSite.isEval()) { + file = callSite.getEvalOrigin() + ", " + file; + } + var site2 = [file, line, colm]; + site2.callSite = callSite; + site2.name = callSite.getFunctionName(); + return site2; + } + function defaultMessage(site2) { + var callSite = site2.callSite; + var funcName = site2.name; + if (!funcName) { + funcName = ""; + } + var context = callSite.getThis(); + var typeName = context && callSite.getTypeName(); + if (typeName === "Object") { + typeName = void 0; + } + if (typeName === "Function") { + typeName = context.name || typeName; + } + return typeName && callSite.getMethodName() ? typeName + "." + funcName : funcName; + } + function formatPlain(msg, caller, stack2) { + var timestamp = new Date().toUTCString(); + var formatted = timestamp + " " + this._namespace + " deprecated " + msg; + if (this._traced) { + for (var i = 0; i < stack2.length; i++) { + formatted += "\n at " + callSiteToString(stack2[i]); + } + return formatted; + } + if (caller) { + formatted += " at " + formatLocation(caller); + } + return formatted; + } + function formatColor(msg, caller, stack2) { + var formatted = "" + this._namespace + " deprecated " + msg + ""; + if (this._traced) { + for (var i = 0; i < stack2.length; i++) { + formatted += "\n at " + callSiteToString(stack2[i]) + ""; + } + return formatted; + } + if (caller) { + formatted += " " + formatLocation(caller) + ""; + } + return formatted; + } + function formatLocation(callSite) { + return relative(basePath, callSite[0]) + ":" + callSite[1] + ":" + callSite[2]; + } + function getStack() { + var limit = Error.stackTraceLimit; + var obj = {}; + var prep = Error.prepareStackTrace; + Error.prepareStackTrace = prepareObjectStackTrace; + Error.stackTraceLimit = Math.max(10, limit); + Error.captureStackTrace(obj); + var stack2 = obj.stack.slice(1); + Error.prepareStackTrace = prep; + Error.stackTraceLimit = limit; + return stack2; + } + function prepareObjectStackTrace(obj, stack2) { + return stack2; + } + function wrapfunction(fn, message) { + if (typeof fn !== "function") { + throw new TypeError("argument fn must be a function"); + } + var args = createArgumentsString(fn.length); + var deprecate = this; + var stack = getStack(); + var site = callSiteLocation(stack[1]); + site.name = fn.name; + var deprecatedfn = eval("(function (" + args + ') {\n"use strict"\nlog.call(deprecate, message, site)\nreturn fn.apply(this, arguments)\n})'); + return deprecatedfn; + } + function wrapproperty(obj, prop, message2) { + if (!obj || typeof obj !== "object" && typeof obj !== "function") { + throw new TypeError("argument obj must be object"); + } + var descriptor = Object.getOwnPropertyDescriptor(obj, prop); + if (!descriptor) { + throw new TypeError("must call property on owner object"); + } + if (!descriptor.configurable) { + throw new TypeError("property must be configurable"); + } + var deprecate2 = this; + var stack2 = getStack(); + var site2 = callSiteLocation(stack2[1]); + site2.name = prop; + if ("value" in descriptor) { + descriptor = convertDataDescriptorToAccessor(obj, prop, message2); + } + var get = descriptor.get; + var set = descriptor.set; + if (typeof get === "function") { + descriptor.get = function getter() { + log.call(deprecate2, message2, site2); + return get.apply(this, arguments); + }; + } + if (typeof set === "function") { + descriptor.set = function setter() { + log.call(deprecate2, message2, site2); + return set.apply(this, arguments); + }; + } + Object.defineProperty(obj, prop, descriptor); + } + function DeprecationError(namespace, message2, stack2) { + var error = new Error(); + var stackString; + Object.defineProperty(error, "constructor", { + value: DeprecationError + }); + Object.defineProperty(error, "message", { + configurable: true, + enumerable: false, + value: message2, + writable: true + }); + Object.defineProperty(error, "name", { + enumerable: false, + configurable: true, + value: "DeprecationError", + writable: true + }); + Object.defineProperty(error, "namespace", { + configurable: true, + enumerable: false, + value: namespace, + writable: true + }); + Object.defineProperty(error, "stack", { + configurable: true, + enumerable: false, + get: function() { + if (stackString !== void 0) { + return stackString; + } + return stackString = createStackString.call(this, stack2); + }, + set: function setter(val) { + stackString = val; + } + }); + return error; + } + } +}); + +// node_modules/bytes/index.js +var require_bytes = __commonJS({ + "node_modules/bytes/index.js"(exports2, module2) { + "use strict"; + module2.exports = bytes; + module2.exports.format = format; + module2.exports.parse = parse; + var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g; + var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/; + var map = { + b: 1, + kb: 1 << 10, + mb: 1 << 20, + gb: 1 << 30, + tb: Math.pow(1024, 4), + pb: Math.pow(1024, 5) + }; + var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i; + function bytes(value, options) { + if (typeof value === "string") { + return parse(value); + } + if (typeof value === "number") { + return format(value, options); + } + return null; + } + function format(value, options) { + if (!Number.isFinite(value)) { + return null; + } + var mag = Math.abs(value); + var thousandsSeparator = options && options.thousandsSeparator || ""; + var unitSeparator = options && options.unitSeparator || ""; + var decimalPlaces = options && options.decimalPlaces !== void 0 ? options.decimalPlaces : 2; + var fixedDecimals = Boolean(options && options.fixedDecimals); + var unit = options && options.unit || ""; + if (!unit || !map[unit.toLowerCase()]) { + if (mag >= map.pb) { + unit = "PB"; + } else if (mag >= map.tb) { + unit = "TB"; + } else if (mag >= map.gb) { + unit = "GB"; + } else if (mag >= map.mb) { + unit = "MB"; + } else if (mag >= map.kb) { + unit = "KB"; + } else { + unit = "B"; + } + } + var val = value / map[unit.toLowerCase()]; + var str = val.toFixed(decimalPlaces); + if (!fixedDecimals) { + str = str.replace(formatDecimalsRegExp, "$1"); + } + if (thousandsSeparator) { + str = str.split(".").map(function(s, i) { + return i === 0 ? s.replace(formatThousandsRegExp, thousandsSeparator) : s; + }).join("."); + } + return str + unitSeparator + unit; + } + function parse(val) { + if (typeof val === "number" && !isNaN(val)) { + return val; + } + if (typeof val !== "string") { + return null; + } + var results = parseRegExp.exec(val); + var floatValue; + var unit = "b"; + if (!results) { + floatValue = parseInt(val, 10); + unit = "b"; + } else { + floatValue = parseFloat(results[1]); + unit = results[4].toLowerCase(); + } + return Math.floor(map[unit] * floatValue); + } + } +}); + +// node_modules/content-type/index.js +var require_content_type = __commonJS({ + "node_modules/content-type/index.js"(exports2) { + "use strict"; + var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g; + var TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/; + var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/; + var QESC_REGEXP = /\\([\u000b\u0020-\u00ff])/g; + var QUOTE_REGEXP = /([\\"])/g; + var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/; + exports2.format = format; + exports2.parse = parse; + function format(obj) { + if (!obj || typeof obj !== "object") { + throw new TypeError("argument obj is required"); + } + var parameters = obj.parameters; + var type = obj.type; + if (!type || !TYPE_REGEXP.test(type)) { + throw new TypeError("invalid type"); + } + var string = type; + if (parameters && typeof parameters === "object") { + var param; + var params = Object.keys(parameters).sort(); + for (var i = 0; i < params.length; i++) { + param = params[i]; + if (!TOKEN_REGEXP.test(param)) { + throw new TypeError("invalid parameter name"); + } + string += "; " + param + "=" + qstring(parameters[param]); + } + } + return string; + } + function parse(string) { + if (!string) { + throw new TypeError("argument string is required"); + } + var header = typeof string === "object" ? getcontenttype(string) : string; + if (typeof header !== "string") { + throw new TypeError("argument string is required to be a string"); + } + var index = header.indexOf(";"); + var type = index !== -1 ? header.slice(0, index).trim() : header.trim(); + if (!TYPE_REGEXP.test(type)) { + throw new TypeError("invalid media type"); + } + var obj = new ContentType(type.toLowerCase()); + if (index !== -1) { + var key; + var match; + var value; + PARAM_REGEXP.lastIndex = index; + while (match = PARAM_REGEXP.exec(header)) { + if (match.index !== index) { + throw new TypeError("invalid parameter format"); + } + index += match[0].length; + key = match[1].toLowerCase(); + value = match[2]; + if (value.charCodeAt(0) === 34) { + value = value.slice(1, -1); + if (value.indexOf("\\") !== -1) { + value = value.replace(QESC_REGEXP, "$1"); + } + } + obj.parameters[key] = value; + } + if (index !== header.length) { + throw new TypeError("invalid parameter format"); + } + } + return obj; + } + function getcontenttype(obj) { + var header; + if (typeof obj.getHeader === "function") { + header = obj.getHeader("content-type"); + } else if (typeof obj.headers === "object") { + header = obj.headers && obj.headers["content-type"]; + } + if (typeof header !== "string") { + throw new TypeError("content-type header is missing from object"); + } + return header; + } + function qstring(val) { + var str = String(val); + if (TOKEN_REGEXP.test(str)) { + return str; + } + if (str.length > 0 && !TEXT_REGEXP.test(str)) { + throw new TypeError("invalid parameter value"); + } + return '"' + str.replace(QUOTE_REGEXP, "\\$1") + '"'; + } + function ContentType(type) { + this.parameters = Object.create(null); + this.type = type; + } + } +}); + +// node_modules/setprototypeof/index.js +var require_setprototypeof = __commonJS({ + "node_modules/setprototypeof/index.js"(exports2, module2) { + "use strict"; + module2.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties); + function setProtoOf(obj, proto) { + obj.__proto__ = proto; + return obj; + } + function mixinProperties(obj, proto) { + for (var prop in proto) { + if (!Object.prototype.hasOwnProperty.call(obj, prop)) { + obj[prop] = proto[prop]; + } + } + return obj; + } + } +}); + +// node_modules/statuses/codes.json +var require_codes = __commonJS({ + "node_modules/statuses/codes.json"(exports2, module2) { + module2.exports = { + "100": "Continue", + "101": "Switching Protocols", + "102": "Processing", + "103": "Early Hints", + "200": "OK", + "201": "Created", + "202": "Accepted", + "203": "Non-Authoritative Information", + "204": "No Content", + "205": "Reset Content", + "206": "Partial Content", + "207": "Multi-Status", + "208": "Already Reported", + "226": "IM Used", + "300": "Multiple Choices", + "301": "Moved Permanently", + "302": "Found", + "303": "See Other", + "304": "Not Modified", + "305": "Use Proxy", + "306": "(Unused)", + "307": "Temporary Redirect", + "308": "Permanent Redirect", + "400": "Bad Request", + "401": "Unauthorized", + "402": "Payment Required", + "403": "Forbidden", + "404": "Not Found", + "405": "Method Not Allowed", + "406": "Not Acceptable", + "407": "Proxy Authentication Required", + "408": "Request Timeout", + "409": "Conflict", + "410": "Gone", + "411": "Length Required", + "412": "Precondition Failed", + "413": "Payload Too Large", + "414": "URI Too Long", + "415": "Unsupported Media Type", + "416": "Range Not Satisfiable", + "417": "Expectation Failed", + "418": "I'm a teapot", + "421": "Misdirected Request", + "422": "Unprocessable Entity", + "423": "Locked", + "424": "Failed Dependency", + "425": "Unordered Collection", + "426": "Upgrade Required", + "428": "Precondition Required", + "429": "Too Many Requests", + "431": "Request Header Fields Too Large", + "451": "Unavailable For Legal Reasons", + "500": "Internal Server Error", + "501": "Not Implemented", + "502": "Bad Gateway", + "503": "Service Unavailable", + "504": "Gateway Timeout", + "505": "HTTP Version Not Supported", + "506": "Variant Also Negotiates", + "507": "Insufficient Storage", + "508": "Loop Detected", + "509": "Bandwidth Limit Exceeded", + "510": "Not Extended", + "511": "Network Authentication Required" + }; + } +}); + +// node_modules/statuses/index.js +var require_statuses = __commonJS({ + "node_modules/statuses/index.js"(exports2, module2) { + "use strict"; + var codes = require_codes(); + module2.exports = status; + status.STATUS_CODES = codes; + status.codes = populateStatusesMap(status, codes); + status.redirect = { + 300: true, + 301: true, + 302: true, + 303: true, + 305: true, + 307: true, + 308: true + }; + status.empty = { + 204: true, + 205: true, + 304: true + }; + status.retry = { + 502: true, + 503: true, + 504: true + }; + function populateStatusesMap(statuses, codes2) { + var arr = []; + Object.keys(codes2).forEach(function forEachCode(code) { + var message2 = codes2[code]; + var status2 = Number(code); + statuses[status2] = message2; + statuses[message2] = status2; + statuses[message2.toLowerCase()] = status2; + arr.push(status2); + }); + return arr; + } + function status(code) { + if (typeof code === "number") { + if (!status[code]) + throw new Error("invalid status code: " + code); + return code; + } + if (typeof code !== "string") { + throw new TypeError("code must be a number or string"); + } + var n = parseInt(code, 10); + if (!isNaN(n)) { + if (!status[n]) + throw new Error("invalid status code: " + n); + return n; + } + n = status[code.toLowerCase()]; + if (!n) + throw new Error('invalid status message: "' + code + '"'); + return n; + } + } +}); + +// node_modules/inherits/inherits_browser.js +var require_inherits_browser = __commonJS({ + "node_modules/inherits/inherits_browser.js"(exports2, module2) { + if (typeof Object.create === "function") { + module2.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + } + }; + } else { + module2.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + }; + } + } +}); + +// node_modules/inherits/inherits.js +var require_inherits = __commonJS({ + "node_modules/inherits/inherits.js"(exports2, module2) { + try { + util = require("util"); + if (typeof util.inherits !== "function") + throw ""; + module2.exports = util.inherits; + } catch (e) { + module2.exports = require_inherits_browser(); + } + var util; + } +}); + +// node_modules/toidentifier/index.js +var require_toidentifier = __commonJS({ + "node_modules/toidentifier/index.js"(exports2, module2) { + "use strict"; + module2.exports = toIdentifier; + function toIdentifier(str) { + return str.split(" ").map(function(token) { + return token.slice(0, 1).toUpperCase() + token.slice(1); + }).join("").replace(/[^ _0-9a-z]/gi, ""); + } + } +}); + +// node_modules/http-errors/index.js +var require_http_errors = __commonJS({ + "node_modules/http-errors/index.js"(exports2, module2) { + "use strict"; + var deprecate2 = require_depd()("http-errors"); + var setPrototypeOf = require_setprototypeof(); + var statuses = require_statuses(); + var inherits = require_inherits(); + var toIdentifier = require_toidentifier(); + module2.exports = createError; + module2.exports.HttpError = createHttpErrorConstructor(); + module2.exports.isHttpError = createIsHttpErrorFunction(module2.exports.HttpError); + populateConstructorExports(module2.exports, statuses.codes, module2.exports.HttpError); + function codeClass(status) { + return Number(String(status).charAt(0) + "00"); + } + function createError() { + var err; + var msg; + var status = 500; + var props = {}; + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (arg instanceof Error) { + err = arg; + status = err.status || err.statusCode || status; + continue; + } + switch (typeof arg) { + case "string": + msg = arg; + break; + case "number": + status = arg; + if (i !== 0) { + deprecate2("non-first-argument status code; replace with createError(" + arg + ", ...)"); + } + break; + case "object": + props = arg; + break; + } + } + if (typeof status === "number" && (status < 400 || status >= 600)) { + deprecate2("non-error status code; use only 4xx or 5xx status codes"); + } + if (typeof status !== "number" || !statuses[status] && (status < 400 || status >= 600)) { + status = 500; + } + var HttpError = createError[status] || createError[codeClass(status)]; + if (!err) { + err = HttpError ? new HttpError(msg) : new Error(msg || statuses[status]); + Error.captureStackTrace(err, createError); + } + if (!HttpError || !(err instanceof HttpError) || err.status !== status) { + err.expose = status < 500; + err.status = err.statusCode = status; + } + for (var key in props) { + if (key !== "status" && key !== "statusCode") { + err[key] = props[key]; + } + } + return err; + } + function createHttpErrorConstructor() { + function HttpError() { + throw new TypeError("cannot construct abstract class"); + } + inherits(HttpError, Error); + return HttpError; + } + function createClientErrorConstructor(HttpError, name, code) { + var className = toClassName(name); + function ClientError(message2) { + var msg = message2 != null ? message2 : statuses[code]; + var err = new Error(msg); + Error.captureStackTrace(err, ClientError); + setPrototypeOf(err, ClientError.prototype); + Object.defineProperty(err, "message", { + enumerable: true, + configurable: true, + value: msg, + writable: true + }); + Object.defineProperty(err, "name", { + enumerable: false, + configurable: true, + value: className, + writable: true + }); + return err; + } + inherits(ClientError, HttpError); + nameFunc(ClientError, className); + ClientError.prototype.status = code; + ClientError.prototype.statusCode = code; + ClientError.prototype.expose = true; + return ClientError; + } + function createIsHttpErrorFunction(HttpError) { + return function isHttpError(val) { + if (!val || typeof val !== "object") { + return false; + } + if (val instanceof HttpError) { + return true; + } + return val instanceof Error && typeof val.expose === "boolean" && typeof val.statusCode === "number" && val.status === val.statusCode; + }; + } + function createServerErrorConstructor(HttpError, name, code) { + var className = toClassName(name); + function ServerError(message2) { + var msg = message2 != null ? message2 : statuses[code]; + var err = new Error(msg); + Error.captureStackTrace(err, ServerError); + setPrototypeOf(err, ServerError.prototype); + Object.defineProperty(err, "message", { + enumerable: true, + configurable: true, + value: msg, + writable: true + }); + Object.defineProperty(err, "name", { + enumerable: false, + configurable: true, + value: className, + writable: true + }); + return err; + } + inherits(ServerError, HttpError); + nameFunc(ServerError, className); + ServerError.prototype.status = code; + ServerError.prototype.statusCode = code; + ServerError.prototype.expose = false; + return ServerError; + } + function nameFunc(func, name) { + var desc = Object.getOwnPropertyDescriptor(func, "name"); + if (desc && desc.configurable) { + desc.value = name; + Object.defineProperty(func, "name", desc); + } + } + function populateConstructorExports(exports3, codes, HttpError) { + codes.forEach(function forEachCode(code) { + var CodeError; + var name = toIdentifier(statuses[code]); + switch (codeClass(code)) { + case 400: + CodeError = createClientErrorConstructor(HttpError, name, code); + break; + case 500: + CodeError = createServerErrorConstructor(HttpError, name, code); + break; + } + if (CodeError) { + exports3[code] = CodeError; + exports3[name] = CodeError; + } + }); + exports3["I'mateapot"] = deprecate2.function(exports3.ImATeapot, `"I'mateapot"; use "ImATeapot" instead`); + } + function toClassName(name) { + return name.substr(-5) !== "Error" ? name + "Error" : name; + } + } +}); + +// node_modules/body-parser/node_modules/ms/index.js +var require_ms = __commonJS({ + "node_modules/body-parser/node_modules/ms/index.js"(exports2, module2) { + var s = 1e3; + var m = s * 60; + var h = m * 60; + var d = h * 24; + var y = d * 365.25; + module2.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === "string" && val.length > 0) { + return parse(val); + } else if (type === "number" && isNaN(val) === false) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val)); + }; + function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || "ms").toLowerCase(); + switch (type) { + case "years": + case "year": + case "yrs": + case "yr": + case "y": + return n * y; + case "days": + case "day": + case "d": + return n * d; + case "hours": + case "hour": + case "hrs": + case "hr": + case "h": + return n * h; + case "minutes": + case "minute": + case "mins": + case "min": + case "m": + return n * m; + case "seconds": + case "second": + case "secs": + case "sec": + case "s": + return n * s; + case "milliseconds": + case "millisecond": + case "msecs": + case "msec": + case "ms": + return n; + default: + return void 0; + } + } + function fmtShort(ms) { + if (ms >= d) { + return Math.round(ms / d) + "d"; + } + if (ms >= h) { + return Math.round(ms / h) + "h"; + } + if (ms >= m) { + return Math.round(ms / m) + "m"; + } + if (ms >= s) { + return Math.round(ms / s) + "s"; + } + return ms + "ms"; + } + function fmtLong(ms) { + return plural(ms, d, "day") || plural(ms, h, "hour") || plural(ms, m, "minute") || plural(ms, s, "second") || ms + " ms"; + } + function plural(ms, n, name) { + if (ms < n) { + return; + } + if (ms < n * 1.5) { + return Math.floor(ms / n) + " " + name; + } + return Math.ceil(ms / n) + " " + name + "s"; + } + } +}); + +// node_modules/body-parser/node_modules/debug/src/debug.js +var require_debug = __commonJS({ + "node_modules/body-parser/node_modules/debug/src/debug.js"(exports2, module2) { + exports2 = module2.exports = createDebug.debug = createDebug["default"] = createDebug; + exports2.coerce = coerce; + exports2.disable = disable; + exports2.enable = enable; + exports2.enabled = enabled; + exports2.humanize = require_ms(); + exports2.names = []; + exports2.skips = []; + exports2.formatters = {}; + var prevTime; + function selectColor(namespace) { + var hash = 0, i; + for (i in namespace) { + hash = (hash << 5) - hash + namespace.charCodeAt(i); + hash |= 0; + } + return exports2.colors[Math.abs(hash) % exports2.colors.length]; + } + function createDebug(namespace) { + function debug() { + if (!debug.enabled) + return; + var self2 = debug; + var curr = +new Date(); + var ms = curr - (prevTime || curr); + self2.diff = ms; + self2.prev = prevTime; + self2.curr = curr; + prevTime = curr; + var args2 = new Array(arguments.length); + for (var i = 0; i < args2.length; i++) { + args2[i] = arguments[i]; + } + args2[0] = exports2.coerce(args2[0]); + if (typeof args2[0] !== "string") { + args2.unshift("%O"); + } + var index = 0; + args2[0] = args2[0].replace(/%([a-zA-Z%])/g, function(match, format) { + if (match === "%%") + return match; + index++; + var formatter = exports2.formatters[format]; + if (typeof formatter === "function") { + var val = args2[index]; + match = formatter.call(self2, val); + args2.splice(index, 1); + index--; + } + return match; + }); + exports2.formatArgs.call(self2, args2); + var logFn = debug.log || exports2.log || console.log.bind(console); + logFn.apply(self2, args2); + } + debug.namespace = namespace; + debug.enabled = exports2.enabled(namespace); + debug.useColors = exports2.useColors(); + debug.color = selectColor(namespace); + if (typeof exports2.init === "function") { + exports2.init(debug); + } + return debug; + } + function enable(namespaces) { + exports2.save(namespaces); + exports2.names = []; + exports2.skips = []; + var split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/); + var len = split.length; + for (var i = 0; i < len; i++) { + if (!split[i]) + continue; + namespaces = split[i].replace(/\*/g, ".*?"); + if (namespaces[0] === "-") { + exports2.skips.push(new RegExp("^" + namespaces.substr(1) + "$")); + } else { + exports2.names.push(new RegExp("^" + namespaces + "$")); + } + } + } + function disable() { + exports2.enable(""); + } + function enabled(name) { + var i, len; + for (i = 0, len = exports2.skips.length; i < len; i++) { + if (exports2.skips[i].test(name)) { + return false; + } + } + for (i = 0, len = exports2.names.length; i < len; i++) { + if (exports2.names[i].test(name)) { + return true; + } + } + return false; + } + function coerce(val) { + if (val instanceof Error) + return val.stack || val.message; + return val; + } + } +}); + +// node_modules/body-parser/node_modules/debug/src/browser.js +var require_browser = __commonJS({ + "node_modules/body-parser/node_modules/debug/src/browser.js"(exports2, module2) { + exports2 = module2.exports = require_debug(); + exports2.log = log2; + exports2.formatArgs = formatArgs; + exports2.save = save; + exports2.load = load; + exports2.useColors = useColors; + exports2.storage = typeof chrome != "undefined" && typeof chrome.storage != "undefined" ? chrome.storage.local : localstorage(); + exports2.colors = [ + "lightseagreen", + "forestgreen", + "goldenrod", + "dodgerblue", + "darkorchid", + "crimson" + ]; + function useColors() { + if (typeof window !== "undefined" && window.process && window.process.type === "renderer") { + return true; + } + return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); + } + exports2.formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (err) { + return "[UnexpectedJSONParseError]: " + err.message; + } + }; + function formatArgs(args2) { + var useColors2 = this.useColors; + args2[0] = (useColors2 ? "%c" : "") + this.namespace + (useColors2 ? " %c" : " ") + args2[0] + (useColors2 ? "%c " : " ") + "+" + exports2.humanize(this.diff); + if (!useColors2) + return; + var c = "color: " + this.color; + args2.splice(1, 0, c, "color: inherit"); + var index = 0; + var lastC = 0; + args2[0].replace(/%[a-zA-Z%]/g, function(match) { + if (match === "%%") + return; + index++; + if (match === "%c") { + lastC = index; + } + }); + args2.splice(lastC, 0, c); + } + function log2() { + return typeof console === "object" && console.log && Function.prototype.apply.call(console.log, console, arguments); + } + function save(namespaces) { + try { + if (namespaces == null) { + exports2.storage.removeItem("debug"); + } else { + exports2.storage.debug = namespaces; + } + } catch (e) { + } + } + function load() { + var r; + try { + r = exports2.storage.debug; + } catch (e) { + } + if (!r && typeof process !== "undefined" && "env" in process) { + r = process.env.DEBUG; + } + return r; + } + exports2.enable(load()); + function localstorage() { + try { + return window.localStorage; + } catch (e) { + } + } + } +}); + +// node_modules/body-parser/node_modules/debug/src/node.js +var require_node = __commonJS({ + "node_modules/body-parser/node_modules/debug/src/node.js"(exports2, module2) { + var tty = require("tty"); + var util = require("util"); + exports2 = module2.exports = require_debug(); + exports2.init = init; + exports2.log = log2; + exports2.formatArgs = formatArgs; + exports2.save = save; + exports2.load = load; + exports2.useColors = useColors; + exports2.colors = [6, 2, 3, 4, 5, 1]; + exports2.inspectOpts = Object.keys(process.env).filter(function(key) { + return /^debug_/i.test(key); + }).reduce(function(obj, key) { + var prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, function(_, k) { + return k.toUpperCase(); + }); + var val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) + val = true; + else if (/^(no|off|false|disabled)$/i.test(val)) + val = false; + else if (val === "null") + val = null; + else + val = Number(val); + obj[prop] = val; + return obj; + }, {}); + var fd = parseInt(process.env.DEBUG_FD, 10) || 2; + if (fd !== 1 && fd !== 2) { + util.deprecate(function() { + }, "except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")(); + } + var stream = fd === 1 ? process.stdout : fd === 2 ? process.stderr : createWritableStdioStream(fd); + function useColors() { + return "colors" in exports2.inspectOpts ? Boolean(exports2.inspectOpts.colors) : tty.isatty(fd); + } + exports2.formatters.o = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts).split("\n").map(function(str) { + return str.trim(); + }).join(" "); + }; + exports2.formatters.O = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); + }; + function formatArgs(args2) { + var name = this.namespace; + var useColors2 = this.useColors; + if (useColors2) { + var c = this.color; + var prefix = " [3" + c + ";1m" + name + " "; + args2[0] = prefix + args2[0].split("\n").join("\n" + prefix); + args2.push("[3" + c + "m+" + exports2.humanize(this.diff) + ""); + } else { + args2[0] = new Date().toUTCString() + " " + name + " " + args2[0]; + } + } + function log2() { + return stream.write(util.format.apply(util, arguments) + "\n"); + } + function save(namespaces) { + if (namespaces == null) { + delete process.env.DEBUG; + } else { + process.env.DEBUG = namespaces; + } + } + function load() { + return process.env.DEBUG; + } + function createWritableStdioStream(fd2) { + var stream2; + var tty_wrap = process.binding("tty_wrap"); + switch (tty_wrap.guessHandleType(fd2)) { + case "TTY": + stream2 = new tty.WriteStream(fd2); + stream2._type = "tty"; + if (stream2._handle && stream2._handle.unref) { + stream2._handle.unref(); + } + break; + case "FILE": + var fs = require("fs"); + stream2 = new fs.SyncWriteStream(fd2, { autoClose: false }); + stream2._type = "fs"; + break; + case "PIPE": + case "TCP": + var net = require("net"); + stream2 = new net.Socket({ + fd: fd2, + readable: false, + writable: true + }); + stream2.readable = false; + stream2.read = null; + stream2._type = "pipe"; + if (stream2._handle && stream2._handle.unref) { + stream2._handle.unref(); + } + break; + default: + throw new Error("Implement me. Unknown stream file type!"); + } + stream2.fd = fd2; + stream2._isStdio = true; + return stream2; + } + function init(debug) { + debug.inspectOpts = {}; + var keys = Object.keys(exports2.inspectOpts); + for (var i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports2.inspectOpts[keys[i]]; + } + } + exports2.enable(load()); + } +}); + +// node_modules/body-parser/node_modules/debug/src/index.js +var require_src = __commonJS({ + "node_modules/body-parser/node_modules/debug/src/index.js"(exports2, module2) { + if (typeof process !== "undefined" && process.type === "renderer") { + module2.exports = require_browser(); + } else { + module2.exports = require_node(); + } + } +}); + +// node_modules/ee-first/index.js +var require_ee_first = __commonJS({ + "node_modules/ee-first/index.js"(exports2, module2) { + "use strict"; + module2.exports = first; + function first(stuff, done) { + if (!Array.isArray(stuff)) + throw new TypeError("arg must be an array of [ee, events...] arrays"); + var cleanups = []; + for (var i = 0; i < stuff.length; i++) { + var arr = stuff[i]; + if (!Array.isArray(arr) || arr.length < 2) + throw new TypeError("each array member must be [ee, events...]"); + var ee = arr[0]; + for (var j = 1; j < arr.length; j++) { + var event = arr[j]; + var fn2 = listener(event, callback); + ee.on(event, fn2); + cleanups.push({ + ee, + event, + fn: fn2 + }); + } + } + function callback() { + cleanup(); + done.apply(null, arguments); + } + function cleanup() { + var x; + for (var i2 = 0; i2 < cleanups.length; i2++) { + x = cleanups[i2]; + x.ee.removeListener(x.event, x.fn); + } + } + function thunk(fn3) { + done = fn3; + } + thunk.cancel = cleanup; + return thunk; + } + function listener(event, done) { + return function onevent(arg1) { + var args2 = new Array(arguments.length); + var ee = this; + var err = event === "error" ? arg1 : null; + for (var i = 0; i < args2.length; i++) { + args2[i] = arguments[i]; + } + done(err, ee, event, args2); + }; + } + } +}); + +// node_modules/on-finished/index.js +var require_on_finished = __commonJS({ + "node_modules/on-finished/index.js"(exports2, module2) { + "use strict"; + module2.exports = onFinished; + module2.exports.isFinished = isFinished; + var first = require_ee_first(); + var defer = typeof setImmediate === "function" ? setImmediate : function(fn2) { + process.nextTick(fn2.bind.apply(fn2, arguments)); + }; + function onFinished(msg, listener) { + if (isFinished(msg) !== false) { + defer(listener, null, msg); + return msg; + } + attachListener(msg, listener); + return msg; + } + function isFinished(msg) { + var socket = msg.socket; + if (typeof msg.finished === "boolean") { + return Boolean(msg.finished || socket && !socket.writable); + } + if (typeof msg.complete === "boolean") { + return Boolean(msg.upgrade || !socket || !socket.readable || msg.complete && !msg.readable); + } + return void 0; + } + function attachFinishedListener(msg, callback) { + var eeMsg; + var eeSocket; + var finished = false; + function onFinish(error) { + eeMsg.cancel(); + eeSocket.cancel(); + finished = true; + callback(error); + } + eeMsg = eeSocket = first([[msg, "end", "finish"]], onFinish); + function onSocket(socket) { + msg.removeListener("socket", onSocket); + if (finished) + return; + if (eeMsg !== eeSocket) + return; + eeSocket = first([[socket, "error", "close"]], onFinish); + } + if (msg.socket) { + onSocket(msg.socket); + return; + } + msg.on("socket", onSocket); + if (msg.socket === void 0) { + patchAssignSocket(msg, onSocket); + } + } + function attachListener(msg, listener) { + var attached = msg.__onFinished; + if (!attached || !attached.queue) { + attached = msg.__onFinished = createListener(msg); + attachFinishedListener(msg, attached); + } + attached.queue.push(listener); + } + function createListener(msg) { + function listener(err) { + if (msg.__onFinished === listener) + msg.__onFinished = null; + if (!listener.queue) + return; + var queue = listener.queue; + listener.queue = null; + for (var i = 0; i < queue.length; i++) { + queue[i](err, msg); + } + } + listener.queue = []; + return listener; + } + function patchAssignSocket(res, callback) { + var assignSocket = res.assignSocket; + if (typeof assignSocket !== "function") + return; + res.assignSocket = function _assignSocket(socket) { + assignSocket.call(this, socket); + callback(socket); + }; + } + } +}); + +// node_modules/safer-buffer/safer.js +var require_safer = __commonJS({ + "node_modules/safer-buffer/safer.js"(exports2, module2) { + "use strict"; + var buffer = require("buffer"); + var Buffer2 = buffer.Buffer; + var safer = {}; + var key; + for (key in buffer) { + if (!buffer.hasOwnProperty(key)) + continue; + if (key === "SlowBuffer" || key === "Buffer") + continue; + safer[key] = buffer[key]; + } + var Safer = safer.Buffer = {}; + for (key in Buffer2) { + if (!Buffer2.hasOwnProperty(key)) + continue; + if (key === "allocUnsafe" || key === "allocUnsafeSlow") + continue; + Safer[key] = Buffer2[key]; + } + safer.Buffer.prototype = Buffer2.prototype; + if (!Safer.from || Safer.from === Uint8Array.from) { + Safer.from = function(value, encodingOrOffset, length) { + if (typeof value === "number") { + throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value); + } + if (value && typeof value.length === "undefined") { + throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value); + } + return Buffer2(value, encodingOrOffset, length); + }; + } + if (!Safer.alloc) { + Safer.alloc = function(size, fill, encoding) { + if (typeof size !== "number") { + throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size); + } + if (size < 0 || size >= 2 * (1 << 30)) { + throw new RangeError('The value "' + size + '" is invalid for option "size"'); + } + var buf = Buffer2(size); + if (!fill || fill.length === 0) { + buf.fill(0); + } else if (typeof encoding === "string") { + buf.fill(fill, encoding); + } else { + buf.fill(fill); + } + return buf; + }; + } + if (!safer.kStringMaxLength) { + try { + safer.kStringMaxLength = process.binding("buffer").kStringMaxLength; + } catch (e) { + } + } + if (!safer.constants) { + safer.constants = { + MAX_LENGTH: safer.kMaxLength + }; + if (safer.kStringMaxLength) { + safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength; + } + } + module2.exports = safer; + } +}); + +// node_modules/iconv-lite/lib/bom-handling.js +var require_bom_handling = __commonJS({ + "node_modules/iconv-lite/lib/bom-handling.js"(exports2) { + "use strict"; + var BOMChar = "\uFEFF"; + exports2.PrependBOM = PrependBOMWrapper; + function PrependBOMWrapper(encoder, options) { + this.encoder = encoder; + this.addBOM = true; + } + PrependBOMWrapper.prototype.write = function(str) { + if (this.addBOM) { + str = BOMChar + str; + this.addBOM = false; + } + return this.encoder.write(str); + }; + PrependBOMWrapper.prototype.end = function() { + return this.encoder.end(); + }; + exports2.StripBOM = StripBOMWrapper; + function StripBOMWrapper(decoder, options) { + this.decoder = decoder; + this.pass = false; + this.options = options || {}; + } + StripBOMWrapper.prototype.write = function(buf) { + var res = this.decoder.write(buf); + if (this.pass || !res) + return res; + if (res[0] === BOMChar) { + res = res.slice(1); + if (typeof this.options.stripBOM === "function") + this.options.stripBOM(); + } + this.pass = true; + return res; + }; + StripBOMWrapper.prototype.end = function() { + return this.decoder.end(); + }; + } +}); + +// node_modules/iconv-lite/encodings/internal.js +var require_internal = __commonJS({ + "node_modules/iconv-lite/encodings/internal.js"(exports2, module2) { + "use strict"; + var Buffer2 = require_safer().Buffer; + module2.exports = { + utf8: { type: "_internal", bomAware: true }, + cesu8: { type: "_internal", bomAware: true }, + unicode11utf8: "utf8", + ucs2: { type: "_internal", bomAware: true }, + utf16le: "ucs2", + binary: { type: "_internal" }, + base64: { type: "_internal" }, + hex: { type: "_internal" }, + _internal: InternalCodec + }; + function InternalCodec(codecOptions, iconv) { + this.enc = codecOptions.encodingName; + this.bomAware = codecOptions.bomAware; + if (this.enc === "base64") + this.encoder = InternalEncoderBase64; + else if (this.enc === "cesu8") { + this.enc = "utf8"; + this.encoder = InternalEncoderCesu8; + if (Buffer2.from("eda0bdedb2a9", "hex").toString() !== "\u{1F4A9}") { + this.decoder = InternalDecoderCesu8; + this.defaultCharUnicode = iconv.defaultCharUnicode; + } + } + } + InternalCodec.prototype.encoder = InternalEncoder; + InternalCodec.prototype.decoder = InternalDecoder; + var StringDecoder = require("string_decoder").StringDecoder; + if (!StringDecoder.prototype.end) + StringDecoder.prototype.end = function() { + }; + function InternalDecoder(options, codec) { + StringDecoder.call(this, codec.enc); + } + InternalDecoder.prototype = StringDecoder.prototype; + function InternalEncoder(options, codec) { + this.enc = codec.enc; + } + InternalEncoder.prototype.write = function(str) { + return Buffer2.from(str, this.enc); + }; + InternalEncoder.prototype.end = function() { + }; + function InternalEncoderBase64(options, codec) { + this.prevStr = ""; + } + InternalEncoderBase64.prototype.write = function(str) { + str = this.prevStr + str; + var completeQuads = str.length - str.length % 4; + this.prevStr = str.slice(completeQuads); + str = str.slice(0, completeQuads); + return Buffer2.from(str, "base64"); + }; + InternalEncoderBase64.prototype.end = function() { + return Buffer2.from(this.prevStr, "base64"); + }; + function InternalEncoderCesu8(options, codec) { + } + InternalEncoderCesu8.prototype.write = function(str) { + var buf = Buffer2.alloc(str.length * 3), bufIdx = 0; + for (var i = 0; i < str.length; i++) { + var charCode = str.charCodeAt(i); + if (charCode < 128) + buf[bufIdx++] = charCode; + else if (charCode < 2048) { + buf[bufIdx++] = 192 + (charCode >>> 6); + buf[bufIdx++] = 128 + (charCode & 63); + } else { + buf[bufIdx++] = 224 + (charCode >>> 12); + buf[bufIdx++] = 128 + (charCode >>> 6 & 63); + buf[bufIdx++] = 128 + (charCode & 63); + } + } + return buf.slice(0, bufIdx); + }; + InternalEncoderCesu8.prototype.end = function() { + }; + function InternalDecoderCesu8(options, codec) { + this.acc = 0; + this.contBytes = 0; + this.accBytes = 0; + this.defaultCharUnicode = codec.defaultCharUnicode; + } + InternalDecoderCesu8.prototype.write = function(buf) { + var acc = this.acc, contBytes = this.contBytes, accBytes = this.accBytes, res = ""; + for (var i = 0; i < buf.length; i++) { + var curByte = buf[i]; + if ((curByte & 192) !== 128) { + if (contBytes > 0) { + res += this.defaultCharUnicode; + contBytes = 0; + } + if (curByte < 128) { + res += String.fromCharCode(curByte); + } else if (curByte < 224) { + acc = curByte & 31; + contBytes = 1; + accBytes = 1; + } else if (curByte < 240) { + acc = curByte & 15; + contBytes = 2; + accBytes = 1; + } else { + res += this.defaultCharUnicode; + } + } else { + if (contBytes > 0) { + acc = acc << 6 | curByte & 63; + contBytes--; + accBytes++; + if (contBytes === 0) { + if (accBytes === 2 && acc < 128 && acc > 0) + res += this.defaultCharUnicode; + else if (accBytes === 3 && acc < 2048) + res += this.defaultCharUnicode; + else + res += String.fromCharCode(acc); + } + } else { + res += this.defaultCharUnicode; + } + } + } + this.acc = acc; + this.contBytes = contBytes; + this.accBytes = accBytes; + return res; + }; + InternalDecoderCesu8.prototype.end = function() { + var res = 0; + if (this.contBytes > 0) + res += this.defaultCharUnicode; + return res; + }; + } +}); + +// node_modules/iconv-lite/encodings/utf16.js +var require_utf16 = __commonJS({ + "node_modules/iconv-lite/encodings/utf16.js"(exports2) { + "use strict"; + var Buffer2 = require_safer().Buffer; + exports2.utf16be = Utf16BECodec; + function Utf16BECodec() { + } + Utf16BECodec.prototype.encoder = Utf16BEEncoder; + Utf16BECodec.prototype.decoder = Utf16BEDecoder; + Utf16BECodec.prototype.bomAware = true; + function Utf16BEEncoder() { + } + Utf16BEEncoder.prototype.write = function(str) { + var buf = Buffer2.from(str, "ucs2"); + for (var i = 0; i < buf.length; i += 2) { + var tmp = buf[i]; + buf[i] = buf[i + 1]; + buf[i + 1] = tmp; + } + return buf; + }; + Utf16BEEncoder.prototype.end = function() { + }; + function Utf16BEDecoder() { + this.overflowByte = -1; + } + Utf16BEDecoder.prototype.write = function(buf) { + if (buf.length == 0) + return ""; + var buf2 = Buffer2.alloc(buf.length + 1), i = 0, j = 0; + if (this.overflowByte !== -1) { + buf2[0] = buf[0]; + buf2[1] = this.overflowByte; + i = 1; + j = 2; + } + for (; i < buf.length - 1; i += 2, j += 2) { + buf2[j] = buf[i + 1]; + buf2[j + 1] = buf[i]; + } + this.overflowByte = i == buf.length - 1 ? buf[buf.length - 1] : -1; + return buf2.slice(0, j).toString("ucs2"); + }; + Utf16BEDecoder.prototype.end = function() { + }; + exports2.utf16 = Utf16Codec; + function Utf16Codec(codecOptions, iconv) { + this.iconv = iconv; + } + Utf16Codec.prototype.encoder = Utf16Encoder; + Utf16Codec.prototype.decoder = Utf16Decoder; + function Utf16Encoder(options, codec) { + options = options || {}; + if (options.addBOM === void 0) + options.addBOM = true; + this.encoder = codec.iconv.getEncoder("utf-16le", options); + } + Utf16Encoder.prototype.write = function(str) { + return this.encoder.write(str); + }; + Utf16Encoder.prototype.end = function() { + return this.encoder.end(); + }; + function Utf16Decoder(options, codec) { + this.decoder = null; + this.initialBytes = []; + this.initialBytesLen = 0; + this.options = options || {}; + this.iconv = codec.iconv; + } + Utf16Decoder.prototype.write = function(buf) { + if (!this.decoder) { + this.initialBytes.push(buf); + this.initialBytesLen += buf.length; + if (this.initialBytesLen < 16) + return ""; + var buf = Buffer2.concat(this.initialBytes), encoding = detectEncoding(buf, this.options.defaultEncoding); + this.decoder = this.iconv.getDecoder(encoding, this.options); + this.initialBytes.length = this.initialBytesLen = 0; + } + return this.decoder.write(buf); + }; + Utf16Decoder.prototype.end = function() { + if (!this.decoder) { + var buf = Buffer2.concat(this.initialBytes), encoding = detectEncoding(buf, this.options.defaultEncoding); + this.decoder = this.iconv.getDecoder(encoding, this.options); + var res = this.decoder.write(buf), trail = this.decoder.end(); + return trail ? res + trail : res; + } + return this.decoder.end(); + }; + function detectEncoding(buf, defaultEncoding) { + var enc = defaultEncoding || "utf-16le"; + if (buf.length >= 2) { + if (buf[0] == 254 && buf[1] == 255) + enc = "utf-16be"; + else if (buf[0] == 255 && buf[1] == 254) + enc = "utf-16le"; + else { + var asciiCharsLE = 0, asciiCharsBE = 0, _len = Math.min(buf.length - buf.length % 2, 64); + for (var i = 0; i < _len; i += 2) { + if (buf[i] === 0 && buf[i + 1] !== 0) + asciiCharsBE++; + if (buf[i] !== 0 && buf[i + 1] === 0) + asciiCharsLE++; + } + if (asciiCharsBE > asciiCharsLE) + enc = "utf-16be"; + else if (asciiCharsBE < asciiCharsLE) + enc = "utf-16le"; + } + } + return enc; + } + } +}); + +// node_modules/iconv-lite/encodings/utf7.js +var require_utf7 = __commonJS({ + "node_modules/iconv-lite/encodings/utf7.js"(exports2) { + "use strict"; + var Buffer2 = require_safer().Buffer; + exports2.utf7 = Utf7Codec; + exports2.unicode11utf7 = "utf7"; + function Utf7Codec(codecOptions, iconv) { + this.iconv = iconv; + } + Utf7Codec.prototype.encoder = Utf7Encoder; + Utf7Codec.prototype.decoder = Utf7Decoder; + Utf7Codec.prototype.bomAware = true; + var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g; + function Utf7Encoder(options, codec) { + this.iconv = codec.iconv; + } + Utf7Encoder.prototype.write = function(str) { + return Buffer2.from(str.replace(nonDirectChars, function(chunk) { + return "+" + (chunk === "+" ? "" : this.iconv.encode(chunk, "utf16-be").toString("base64").replace(/=+$/, "")) + "-"; + }.bind(this))); + }; + Utf7Encoder.prototype.end = function() { + }; + function Utf7Decoder(options, codec) { + this.iconv = codec.iconv; + this.inBase64 = false; + this.base64Accum = ""; + } + var base64Regex = /[A-Za-z0-9\/+]/; + var base64Chars = []; + for (i = 0; i < 256; i++) + base64Chars[i] = base64Regex.test(String.fromCharCode(i)); + var i; + var plusChar = "+".charCodeAt(0); + var minusChar = "-".charCodeAt(0); + var andChar = "&".charCodeAt(0); + Utf7Decoder.prototype.write = function(buf) { + var res = "", lastI = 0, inBase64 = this.inBase64, base64Accum = this.base64Accum; + for (var i2 = 0; i2 < buf.length; i2++) { + if (!inBase64) { + if (buf[i2] == plusChar) { + res += this.iconv.decode(buf.slice(lastI, i2), "ascii"); + lastI = i2 + 1; + inBase64 = true; + } + } else { + if (!base64Chars[buf[i2]]) { + if (i2 == lastI && buf[i2] == minusChar) { + res += "+"; + } else { + var b64str = base64Accum + buf.slice(lastI, i2).toString(); + res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be"); + } + if (buf[i2] != minusChar) + i2--; + lastI = i2 + 1; + inBase64 = false; + base64Accum = ""; + } + } + } + if (!inBase64) { + res += this.iconv.decode(buf.slice(lastI), "ascii"); + } else { + var b64str = base64Accum + buf.slice(lastI).toString(); + var canBeDecoded = b64str.length - b64str.length % 8; + base64Accum = b64str.slice(canBeDecoded); + b64str = b64str.slice(0, canBeDecoded); + res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be"); + } + this.inBase64 = inBase64; + this.base64Accum = base64Accum; + return res; + }; + Utf7Decoder.prototype.end = function() { + var res = ""; + if (this.inBase64 && this.base64Accum.length > 0) + res = this.iconv.decode(Buffer2.from(this.base64Accum, "base64"), "utf16-be"); + this.inBase64 = false; + this.base64Accum = ""; + return res; + }; + exports2.utf7imap = Utf7IMAPCodec; + function Utf7IMAPCodec(codecOptions, iconv) { + this.iconv = iconv; + } + Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder; + Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder; + Utf7IMAPCodec.prototype.bomAware = true; + function Utf7IMAPEncoder(options, codec) { + this.iconv = codec.iconv; + this.inBase64 = false; + this.base64Accum = Buffer2.alloc(6); + this.base64AccumIdx = 0; + } + Utf7IMAPEncoder.prototype.write = function(str) { + var inBase64 = this.inBase64, base64Accum = this.base64Accum, base64AccumIdx = this.base64AccumIdx, buf = Buffer2.alloc(str.length * 5 + 10), bufIdx = 0; + for (var i2 = 0; i2 < str.length; i2++) { + var uChar = str.charCodeAt(i2); + if (32 <= uChar && uChar <= 126) { + if (inBase64) { + if (base64AccumIdx > 0) { + bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx); + base64AccumIdx = 0; + } + buf[bufIdx++] = minusChar; + inBase64 = false; + } + if (!inBase64) { + buf[bufIdx++] = uChar; + if (uChar === andChar) + buf[bufIdx++] = minusChar; + } + } else { + if (!inBase64) { + buf[bufIdx++] = andChar; + inBase64 = true; + } + if (inBase64) { + base64Accum[base64AccumIdx++] = uChar >> 8; + base64Accum[base64AccumIdx++] = uChar & 255; + if (base64AccumIdx == base64Accum.length) { + bufIdx += buf.write(base64Accum.toString("base64").replace(/\//g, ","), bufIdx); + base64AccumIdx = 0; + } + } + } + } + this.inBase64 = inBase64; + this.base64AccumIdx = base64AccumIdx; + return buf.slice(0, bufIdx); + }; + Utf7IMAPEncoder.prototype.end = function() { + var buf = Buffer2.alloc(10), bufIdx = 0; + if (this.inBase64) { + if (this.base64AccumIdx > 0) { + bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx); + this.base64AccumIdx = 0; + } + buf[bufIdx++] = minusChar; + this.inBase64 = false; + } + return buf.slice(0, bufIdx); + }; + function Utf7IMAPDecoder(options, codec) { + this.iconv = codec.iconv; + this.inBase64 = false; + this.base64Accum = ""; + } + var base64IMAPChars = base64Chars.slice(); + base64IMAPChars[",".charCodeAt(0)] = true; + Utf7IMAPDecoder.prototype.write = function(buf) { + var res = "", lastI = 0, inBase64 = this.inBase64, base64Accum = this.base64Accum; + for (var i2 = 0; i2 < buf.length; i2++) { + if (!inBase64) { + if (buf[i2] == andChar) { + res += this.iconv.decode(buf.slice(lastI, i2), "ascii"); + lastI = i2 + 1; + inBase64 = true; + } + } else { + if (!base64IMAPChars[buf[i2]]) { + if (i2 == lastI && buf[i2] == minusChar) { + res += "&"; + } else { + var b64str = base64Accum + buf.slice(lastI, i2).toString().replace(/,/g, "/"); + res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be"); + } + if (buf[i2] != minusChar) + i2--; + lastI = i2 + 1; + inBase64 = false; + base64Accum = ""; + } + } + } + if (!inBase64) { + res += this.iconv.decode(buf.slice(lastI), "ascii"); + } else { + var b64str = base64Accum + buf.slice(lastI).toString().replace(/,/g, "/"); + var canBeDecoded = b64str.length - b64str.length % 8; + base64Accum = b64str.slice(canBeDecoded); + b64str = b64str.slice(0, canBeDecoded); + res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be"); + } + this.inBase64 = inBase64; + this.base64Accum = base64Accum; + return res; + }; + Utf7IMAPDecoder.prototype.end = function() { + var res = ""; + if (this.inBase64 && this.base64Accum.length > 0) + res = this.iconv.decode(Buffer2.from(this.base64Accum, "base64"), "utf16-be"); + this.inBase64 = false; + this.base64Accum = ""; + return res; + }; + } +}); + +// node_modules/iconv-lite/encodings/sbcs-codec.js +var require_sbcs_codec = __commonJS({ + "node_modules/iconv-lite/encodings/sbcs-codec.js"(exports2) { + "use strict"; + var Buffer2 = require_safer().Buffer; + exports2._sbcs = SBCSCodec; + function SBCSCodec(codecOptions, iconv) { + if (!codecOptions) + throw new Error("SBCS codec is called without the data."); + if (!codecOptions.chars || codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256) + throw new Error("Encoding '" + codecOptions.type + "' has incorrect 'chars' (must be of len 128 or 256)"); + if (codecOptions.chars.length === 128) { + var asciiString = ""; + for (var i = 0; i < 128; i++) + asciiString += String.fromCharCode(i); + codecOptions.chars = asciiString + codecOptions.chars; + } + this.decodeBuf = Buffer2.from(codecOptions.chars, "ucs2"); + var encodeBuf = Buffer2.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0)); + for (var i = 0; i < codecOptions.chars.length; i++) + encodeBuf[codecOptions.chars.charCodeAt(i)] = i; + this.encodeBuf = encodeBuf; + } + SBCSCodec.prototype.encoder = SBCSEncoder; + SBCSCodec.prototype.decoder = SBCSDecoder; + function SBCSEncoder(options, codec) { + this.encodeBuf = codec.encodeBuf; + } + SBCSEncoder.prototype.write = function(str) { + var buf = Buffer2.alloc(str.length); + for (var i = 0; i < str.length; i++) + buf[i] = this.encodeBuf[str.charCodeAt(i)]; + return buf; + }; + SBCSEncoder.prototype.end = function() { + }; + function SBCSDecoder(options, codec) { + this.decodeBuf = codec.decodeBuf; + } + SBCSDecoder.prototype.write = function(buf) { + var decodeBuf = this.decodeBuf; + var newBuf = Buffer2.alloc(buf.length * 2); + var idx1 = 0, idx2 = 0; + for (var i = 0; i < buf.length; i++) { + idx1 = buf[i] * 2; + idx2 = i * 2; + newBuf[idx2] = decodeBuf[idx1]; + newBuf[idx2 + 1] = decodeBuf[idx1 + 1]; + } + return newBuf.toString("ucs2"); + }; + SBCSDecoder.prototype.end = function() { + }; + } +}); + +// node_modules/iconv-lite/encodings/sbcs-data.js +var require_sbcs_data = __commonJS({ + "node_modules/iconv-lite/encodings/sbcs-data.js"(exports2, module2) { + "use strict"; + module2.exports = { + "10029": "maccenteuro", + "maccenteuro": { + "type": "_sbcs", + "chars": "\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7" + }, + "808": "cp808", + "ibm808": "cp808", + "cp808": { + "type": "_sbcs", + "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\u20AC\u25A0\xA0" + }, + "mik": { + "type": "_sbcs", + "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2514\u2534\u252C\u251C\u2500\u253C\u2563\u2551\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xA7\u2557\u255D\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + "ascii8bit": "ascii", + "usascii": "ascii", + "ansix34": "ascii", + "ansix341968": "ascii", + "ansix341986": "ascii", + "csascii": "ascii", + "cp367": "ascii", + "ibm367": "ascii", + "isoir6": "ascii", + "iso646us": "ascii", + "iso646irv": "ascii", + "us": "ascii", + "latin1": "iso88591", + "latin2": "iso88592", + "latin3": "iso88593", + "latin4": "iso88594", + "latin5": "iso88599", + "latin6": "iso885910", + "latin7": "iso885913", + "latin8": "iso885914", + "latin9": "iso885915", + "latin10": "iso885916", + "csisolatin1": "iso88591", + "csisolatin2": "iso88592", + "csisolatin3": "iso88593", + "csisolatin4": "iso88594", + "csisolatincyrillic": "iso88595", + "csisolatinarabic": "iso88596", + "csisolatingreek": "iso88597", + "csisolatinhebrew": "iso88598", + "csisolatin5": "iso88599", + "csisolatin6": "iso885910", + "l1": "iso88591", + "l2": "iso88592", + "l3": "iso88593", + "l4": "iso88594", + "l5": "iso88599", + "l6": "iso885910", + "l7": "iso885913", + "l8": "iso885914", + "l9": "iso885915", + "l10": "iso885916", + "isoir14": "iso646jp", + "isoir57": "iso646cn", + "isoir100": "iso88591", + "isoir101": "iso88592", + "isoir109": "iso88593", + "isoir110": "iso88594", + "isoir144": "iso88595", + "isoir127": "iso88596", + "isoir126": "iso88597", + "isoir138": "iso88598", + "isoir148": "iso88599", + "isoir157": "iso885910", + "isoir166": "tis620", + "isoir179": "iso885913", + "isoir199": "iso885914", + "isoir203": "iso885915", + "isoir226": "iso885916", + "cp819": "iso88591", + "ibm819": "iso88591", + "cyrillic": "iso88595", + "arabic": "iso88596", + "arabic8": "iso88596", + "ecma114": "iso88596", + "asmo708": "iso88596", + "greek": "iso88597", + "greek8": "iso88597", + "ecma118": "iso88597", + "elot928": "iso88597", + "hebrew": "iso88598", + "hebrew8": "iso88598", + "turkish": "iso88599", + "turkish8": "iso88599", + "thai": "iso885911", + "thai8": "iso885911", + "celtic": "iso885914", + "celtic8": "iso885914", + "isoceltic": "iso885914", + "tis6200": "tis620", + "tis62025291": "tis620", + "tis62025330": "tis620", + "10000": "macroman", + "10006": "macgreek", + "10007": "maccyrillic", + "10079": "maciceland", + "10081": "macturkish", + "cspc8codepage437": "cp437", + "cspc775baltic": "cp775", + "cspc850multilingual": "cp850", + "cspcp852": "cp852", + "cspc862latinhebrew": "cp862", + "cpgr": "cp869", + "msee": "cp1250", + "mscyrl": "cp1251", + "msansi": "cp1252", + "msgreek": "cp1253", + "msturk": "cp1254", + "mshebr": "cp1255", + "msarab": "cp1256", + "winbaltrim": "cp1257", + "cp20866": "koi8r", + "20866": "koi8r", + "ibm878": "koi8r", + "cskoi8r": "koi8r", + "cp21866": "koi8u", + "21866": "koi8u", + "ibm1168": "koi8u", + "strk10482002": "rk1048", + "tcvn5712": "tcvn", + "tcvn57121": "tcvn", + "gb198880": "iso646cn", + "cn": "iso646cn", + "csiso14jisc6220ro": "iso646jp", + "jisc62201969ro": "iso646jp", + "jp": "iso646jp", + "cshproman8": "hproman8", + "r8": "hproman8", + "roman8": "hproman8", + "xroman8": "hproman8", + "ibm1051": "hproman8", + "mac": "macintosh", + "csmacintosh": "macintosh" + }; + } +}); + +// node_modules/iconv-lite/encodings/sbcs-data-generated.js +var require_sbcs_data_generated = __commonJS({ + "node_modules/iconv-lite/encodings/sbcs-data-generated.js"(exports2, module2) { + "use strict"; + module2.exports = { + "437": "cp437", + "737": "cp737", + "775": "cp775", + "850": "cp850", + "852": "cp852", + "855": "cp855", + "856": "cp856", + "857": "cp857", + "858": "cp858", + "860": "cp860", + "861": "cp861", + "862": "cp862", + "863": "cp863", + "864": "cp864", + "865": "cp865", + "866": "cp866", + "869": "cp869", + "874": "windows874", + "922": "cp922", + "1046": "cp1046", + "1124": "cp1124", + "1125": "cp1125", + "1129": "cp1129", + "1133": "cp1133", + "1161": "cp1161", + "1162": "cp1162", + "1163": "cp1163", + "1250": "windows1250", + "1251": "windows1251", + "1252": "windows1252", + "1253": "windows1253", + "1254": "windows1254", + "1255": "windows1255", + "1256": "windows1256", + "1257": "windows1257", + "1258": "windows1258", + "28591": "iso88591", + "28592": "iso88592", + "28593": "iso88593", + "28594": "iso88594", + "28595": "iso88595", + "28596": "iso88596", + "28597": "iso88597", + "28598": "iso88598", + "28599": "iso88599", + "28600": "iso885910", + "28601": "iso885911", + "28603": "iso885913", + "28604": "iso885914", + "28605": "iso885915", + "28606": "iso885916", + "windows874": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\u2026\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "win874": "windows874", + "cp874": "windows874", + "windows1250": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\u0160\u2039\u015A\u0164\u017D\u0179\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0161\u203A\u015B\u0165\u017E\u017A\xA0\u02C7\u02D8\u0141\xA4\u0104\xA6\xA7\xA8\xA9\u015E\xAB\xAC\xAD\xAE\u017B\xB0\xB1\u02DB\u0142\xB4\xB5\xB6\xB7\xB8\u0105\u015F\xBB\u013D\u02DD\u013E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9" + }, + "win1250": "windows1250", + "cp1250": "windows1250", + "windows1251": { + "type": "_sbcs", + "chars": "\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u040C\u040B\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u045C\u045B\u045F\xA0\u040E\u045E\u0408\xA4\u0490\xA6\xA7\u0401\xA9\u0404\xAB\xAC\xAD\xAE\u0407\xB0\xB1\u0406\u0456\u0491\xB5\xB6\xB7\u0451\u2116\u0454\xBB\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F" + }, + "win1251": "windows1251", + "cp1251": "windows1251", + "windows1252": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\u017D\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\u017E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF" + }, + "win1252": "windows1252", + "cp1252": "windows1252", + "windows1253": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0385\u0386\xA3\xA4\xA5\xA6\xA7\xA8\xA9\uFFFD\xAB\xAC\xAD\xAE\u2015\xB0\xB1\xB2\xB3\u0384\xB5\xB6\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD" + }, + "win1253": "windows1253", + "cp1253": "windows1253", + "windows1254": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF" + }, + "win1254": "windows1254", + "cp1254": "windows1254", + "windows1255": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\xA1\xA2\xA3\u20AA\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\xBF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05F0\u05F1\u05F2\u05F3\u05F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD" + }, + "win1255": "windows1255", + "cp1255": "windows1255", + "windows1256": { + "type": "_sbcs", + "chars": "\u20AC\u067E\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06AF\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u06A9\u2122\u0691\u203A\u0153\u200C\u200D\u06BA\xA0\u060C\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\u06BE\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\u061B\xBB\xBC\xBD\xBE\u061F\u06C1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\xD7\u0637\u0638\u0639\u063A\u0640\u0641\u0642\u0643\xE0\u0644\xE2\u0645\u0646\u0647\u0648\xE7\xE8\xE9\xEA\xEB\u0649\u064A\xEE\xEF\u064B\u064C\u064D\u064E\xF4\u064F\u0650\xF7\u0651\xF9\u0652\xFB\xFC\u200E\u200F\u06D2" + }, + "win1256": "windows1256", + "cp1256": "windows1256", + "windows1257": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\xA8\u02C7\xB8\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\xAF\u02DB\uFFFD\xA0\uFFFD\xA2\xA3\xA4\uFFFD\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u02D9" + }, + "win1257": "windows1257", + "cp1257": "windows1257", + "windows1258": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF" + }, + "win1258": "windows1258", + "cp1258": "windows1258", + "iso88591": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF" + }, + "cp28591": "iso88591", + "iso88592": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u02D8\u0141\xA4\u013D\u015A\xA7\xA8\u0160\u015E\u0164\u0179\xAD\u017D\u017B\xB0\u0105\u02DB\u0142\xB4\u013E\u015B\u02C7\xB8\u0161\u015F\u0165\u017A\u02DD\u017E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9" + }, + "cp28592": "iso88592", + "iso88593": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0126\u02D8\xA3\xA4\uFFFD\u0124\xA7\xA8\u0130\u015E\u011E\u0134\xAD\uFFFD\u017B\xB0\u0127\xB2\xB3\xB4\xB5\u0125\xB7\xB8\u0131\u015F\u011F\u0135\xBD\uFFFD\u017C\xC0\xC1\xC2\uFFFD\xC4\u010A\u0108\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\uFFFD\xD1\xD2\xD3\xD4\u0120\xD6\xD7\u011C\xD9\xDA\xDB\xDC\u016C\u015C\xDF\xE0\xE1\xE2\uFFFD\xE4\u010B\u0109\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\uFFFD\xF1\xF2\xF3\xF4\u0121\xF6\xF7\u011D\xF9\xFA\xFB\xFC\u016D\u015D\u02D9" + }, + "cp28593": "iso88593", + "iso88594": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0138\u0156\xA4\u0128\u013B\xA7\xA8\u0160\u0112\u0122\u0166\xAD\u017D\xAF\xB0\u0105\u02DB\u0157\xB4\u0129\u013C\u02C7\xB8\u0161\u0113\u0123\u0167\u014A\u017E\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\u012A\u0110\u0145\u014C\u0136\xD4\xD5\xD6\xD7\xD8\u0172\xDA\xDB\xDC\u0168\u016A\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\u012B\u0111\u0146\u014D\u0137\xF4\xF5\xF6\xF7\xF8\u0173\xFA\xFB\xFC\u0169\u016B\u02D9" + }, + "cp28594": "iso88594", + "iso88595": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F" + }, + "cp28595": "iso88595", + "iso88596": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\uFFFD\uFFFD\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u060C\xAD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F\uFFFD\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "cp28596": "iso88596", + "iso88597": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u2018\u2019\xA3\u20AC\u20AF\xA6\xA7\xA8\xA9\u037A\xAB\xAC\xAD\uFFFD\u2015\xB0\xB1\xB2\xB3\u0384\u0385\u0386\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD" + }, + "cp28597": "iso88597", + "iso88598": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2017\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD" + }, + "cp28598": "iso88598", + "iso88599": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF" + }, + "cp28599": "iso88599", + "iso885910": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0112\u0122\u012A\u0128\u0136\xA7\u013B\u0110\u0160\u0166\u017D\xAD\u016A\u014A\xB0\u0105\u0113\u0123\u012B\u0129\u0137\xB7\u013C\u0111\u0161\u0167\u017E\u2015\u016B\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\xCF\xD0\u0145\u014C\xD3\xD4\xD5\xD6\u0168\xD8\u0172\xDA\xDB\xDC\xDD\xDE\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\xEF\xF0\u0146\u014D\xF3\xF4\xF5\xF6\u0169\xF8\u0173\xFA\xFB\xFC\xFD\xFE\u0138" + }, + "cp28600": "iso885910", + "iso885911": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "cp28601": "iso885911", + "iso885913": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u201D\xA2\xA3\xA4\u201E\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\u201C\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u2019" + }, + "cp28603": "iso885913", + "iso885914": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u1E02\u1E03\xA3\u010A\u010B\u1E0A\xA7\u1E80\xA9\u1E82\u1E0B\u1EF2\xAD\xAE\u0178\u1E1E\u1E1F\u0120\u0121\u1E40\u1E41\xB6\u1E56\u1E81\u1E57\u1E83\u1E60\u1EF3\u1E84\u1E85\u1E61\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0174\xD1\xD2\xD3\xD4\xD5\xD6\u1E6A\xD8\xD9\xDA\xDB\xDC\xDD\u0176\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0175\xF1\xF2\xF3\xF4\xF5\xF6\u1E6B\xF8\xF9\xFA\xFB\xFC\xFD\u0177\xFF" + }, + "cp28604": "iso885914", + "iso885915": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\u0160\xA7\u0161\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u017D\xB5\xB6\xB7\u017E\xB9\xBA\xBB\u0152\u0153\u0178\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF" + }, + "cp28605": "iso885915", + "iso885916": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0105\u0141\u20AC\u201E\u0160\xA7\u0161\xA9\u0218\xAB\u0179\xAD\u017A\u017B\xB0\xB1\u010C\u0142\u017D\u201D\xB6\xB7\u017E\u010D\u0219\xBB\u0152\u0153\u0178\u017C\xC0\xC1\xC2\u0102\xC4\u0106\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0110\u0143\xD2\xD3\xD4\u0150\xD6\u015A\u0170\xD9\xDA\xDB\xDC\u0118\u021A\xDF\xE0\xE1\xE2\u0103\xE4\u0107\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0111\u0144\xF2\xF3\xF4\u0151\xF6\u015B\u0171\xF9\xFA\xFB\xFC\u0119\u021B\xFF" + }, + "cp28606": "iso885916", + "cp437": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + "ibm437": "cp437", + "csibm437": "cp437", + "cp737": { + "type": "_sbcs", + "chars": "\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03C9\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD\u03CB\u03CE\u0386\u0388\u0389\u038A\u038C\u038E\u038F\xB1\u2265\u2264\u03AA\u03AB\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + "ibm737": "cp737", + "csibm737": "cp737", + "cp775": { + "type": "_sbcs", + "chars": "\u0106\xFC\xE9\u0101\xE4\u0123\xE5\u0107\u0142\u0113\u0156\u0157\u012B\u0179\xC4\xC5\xC9\xE6\xC6\u014D\xF6\u0122\xA2\u015A\u015B\xD6\xDC\xF8\xA3\xD8\xD7\xA4\u0100\u012A\xF3\u017B\u017C\u017A\u201D\xA6\xA9\xAE\xAC\xBD\xBC\u0141\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0104\u010C\u0118\u0116\u2563\u2551\u2557\u255D\u012E\u0160\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0172\u016A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u017D\u0105\u010D\u0119\u0117\u012F\u0161\u0173\u016B\u017E\u2518\u250C\u2588\u2584\u258C\u2590\u2580\xD3\xDF\u014C\u0143\xF5\xD5\xB5\u0144\u0136\u0137\u013B\u013C\u0146\u0112\u0145\u2019\xAD\xB1\u201C\xBE\xB6\xA7\xF7\u201E\xB0\u2219\xB7\xB9\xB3\xB2\u25A0\xA0" + }, + "ibm775": "cp775", + "csibm775": "cp775", + "cp850": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u0131\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0" + }, + "ibm850": "cp850", + "csibm850": "cp850", + "cp852": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE4\u016F\u0107\xE7\u0142\xEB\u0150\u0151\xEE\u0179\xC4\u0106\xC9\u0139\u013A\xF4\xF6\u013D\u013E\u015A\u015B\xD6\xDC\u0164\u0165\u0141\xD7\u010D\xE1\xED\xF3\xFA\u0104\u0105\u017D\u017E\u0118\u0119\xAC\u017A\u010C\u015F\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\u011A\u015E\u2563\u2551\u2557\u255D\u017B\u017C\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0102\u0103\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u0111\u0110\u010E\xCB\u010F\u0147\xCD\xCE\u011B\u2518\u250C\u2588\u2584\u0162\u016E\u2580\xD3\xDF\xD4\u0143\u0144\u0148\u0160\u0161\u0154\xDA\u0155\u0170\xFD\xDD\u0163\xB4\xAD\u02DD\u02DB\u02C7\u02D8\xA7\xF7\xB8\xB0\xA8\u02D9\u0171\u0158\u0159\u25A0\xA0" + }, + "ibm852": "cp852", + "csibm852": "cp852", + "cp855": { + "type": "_sbcs", + "chars": "\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408\u0459\u0409\u045A\u040A\u045B\u040B\u045C\u040C\u045E\u040E\u045F\u040F\u044E\u042E\u044A\u042A\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414\u0435\u0415\u0444\u0424\u0433\u0413\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438\u0418\u2563\u2551\u2557\u255D\u0439\u0419\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u043A\u041A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u043B\u041B\u043C\u041C\u043D\u041D\u043E\u041E\u043F\u2518\u250C\u2588\u2584\u041F\u044F\u2580\u042F\u0440\u0420\u0441\u0421\u0442\u0422\u0443\u0423\u0436\u0416\u0432\u0412\u044C\u042C\u2116\xAD\u044B\u042B\u0437\u0417\u0448\u0428\u044D\u042D\u0449\u0429\u0447\u0427\xA7\u25A0\xA0" + }, + "ibm855": "cp855", + "csibm855": "cp855", + "cp856": { + "type": "_sbcs", + "chars": "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\xA3\uFFFD\xD7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAE\xAC\xBD\xBC\uFFFD\xAB\xBB\u2591\u2592\u2593\u2502\u2524\uFFFD\uFFFD\uFFFD\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\uFFFD\uFFFD\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2518\u250C\u2588\u2584\xA6\uFFFD\u2580\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xB5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0" + }, + "ibm856": "cp856", + "csibm856": "cp856", + "cp857": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\u0131\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\u0130\xD6\xDC\xF8\xA3\xD8\u015E\u015F\xE1\xED\xF3\xFA\xF1\xD1\u011E\u011F\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xBA\xAA\xCA\xCB\xC8\uFFFD\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\uFFFD\xD7\xDA\xDB\xD9\xEC\xFF\xAF\xB4\xAD\xB1\uFFFD\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0" + }, + "ibm857": "cp857", + "csibm857": "cp857", + "cp858": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u20AC\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0" + }, + "ibm858": "cp858", + "csibm858": "cp858", + "cp860": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE3\xE0\xC1\xE7\xEA\xCA\xE8\xCD\xD4\xEC\xC3\xC2\xC9\xC0\xC8\xF4\xF5\xF2\xDA\xF9\xCC\xD5\xDC\xA2\xA3\xD9\u20A7\xD3\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xD2\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + "ibm860": "cp860", + "csibm860": "cp860", + "cp861": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xD0\xF0\xDE\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xFE\xFB\xDD\xFD\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xC1\xCD\xD3\xDA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + "ibm861": "cp861", + "csibm861": "cp861", + "cp862": { + "type": "_sbcs", + "chars": "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + "ibm862": "cp862", + "csibm862": "cp862", + "cp863": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xC2\xE0\xB6\xE7\xEA\xEB\xE8\xEF\xEE\u2017\xC0\xA7\xC9\xC8\xCA\xF4\xCB\xCF\xFB\xF9\xA4\xD4\xDC\xA2\xA3\xD9\xDB\u0192\xA6\xB4\xF3\xFA\xA8\xB8\xB3\xAF\xCE\u2310\xAC\xBD\xBC\xBE\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + "ibm863": "cp863", + "csibm863": "cp863", + "cp864": { + "type": "_sbcs", + "chars": "\0\x07\b \n\v\f\r !\"#$\u066A&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xB0\xB7\u2219\u221A\u2592\u2500\u2502\u253C\u2524\u252C\u251C\u2534\u2510\u250C\u2514\u2518\u03B2\u221E\u03C6\xB1\xBD\xBC\u2248\xAB\xBB\uFEF7\uFEF8\uFFFD\uFFFD\uFEFB\uFEFC\uFFFD\xA0\xAD\uFE82\xA3\xA4\uFE84\uFFFD\uFFFD\uFE8E\uFE8F\uFE95\uFE99\u060C\uFE9D\uFEA1\uFEA5\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFED1\u061B\uFEB1\uFEB5\uFEB9\u061F\xA2\uFE80\uFE81\uFE83\uFE85\uFECA\uFE8B\uFE8D\uFE91\uFE93\uFE97\uFE9B\uFE9F\uFEA3\uFEA7\uFEA9\uFEAB\uFEAD\uFEAF\uFEB3\uFEB7\uFEBB\uFEBF\uFEC1\uFEC5\uFECB\uFECF\xA6\xAC\xF7\xD7\uFEC9\u0640\uFED3\uFED7\uFEDB\uFEDF\uFEE3\uFEE7\uFEEB\uFEED\uFEEF\uFEF3\uFEBD\uFECC\uFECE\uFECD\uFEE1\uFE7D\u0651\uFEE5\uFEE9\uFEEC\uFEF0\uFEF2\uFED0\uFED5\uFEF5\uFEF6\uFEDD\uFED9\uFEF1\u25A0\uFFFD" + }, + "ibm864": "cp864", + "csibm864": "cp864", + "cp865": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xA4\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + "ibm865": "cp865", + "csibm865": "cp865", + "cp866": { + "type": "_sbcs", + "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\xA4\u25A0\xA0" + }, + "ibm866": "cp866", + "csibm866": "cp866", + "cp869": { + "type": "_sbcs", + "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0386\uFFFD\xB7\xAC\xA6\u2018\u2019\u0388\u2015\u0389\u038A\u03AA\u038C\uFFFD\uFFFD\u038E\u03AB\xA9\u038F\xB2\xB3\u03AC\xA3\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03CD\u0391\u0392\u0393\u0394\u0395\u0396\u0397\xBD\u0398\u0399\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u039A\u039B\u039C\u039D\u2563\u2551\u2557\u255D\u039E\u039F\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u03A0\u03A1\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u2518\u250C\u2588\u2584\u03B4\u03B5\u2580\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u0384\xAD\xB1\u03C5\u03C6\u03C7\xA7\u03C8\u0385\xB0\xA8\u03C9\u03CB\u03B0\u03CE\u25A0\xA0" + }, + "ibm869": "cp869", + "csibm869": "cp869", + "cp922": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\u203E\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0160\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\u017D\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0161\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\u017E\xFF" + }, + "ibm922": "cp922", + "csibm922": "cp922", + "cp1046": { + "type": "_sbcs", + "chars": "\uFE88\xD7\xF7\uF8F6\uF8F5\uF8F4\uF8F7\uFE71\x88\u25A0\u2502\u2500\u2510\u250C\u2514\u2518\uFE79\uFE7B\uFE7D\uFE7F\uFE77\uFE8A\uFEF0\uFEF3\uFEF2\uFECE\uFECF\uFED0\uFEF6\uFEF8\uFEFA\uFEFC\xA0\uF8FA\uF8F9\uF8F8\xA4\uF8FB\uFE8B\uFE91\uFE97\uFE9B\uFE9F\uFEA3\u060C\xAD\uFEA7\uFEB3\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFEB7\u061B\uFEBB\uFEBF\uFECA\u061F\uFECB\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\uFEC7\u0639\u063A\uFECC\uFE82\uFE84\uFE8E\uFED3\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFED7\uFEDB\uFEDF\uF8FC\uFEF5\uFEF7\uFEF9\uFEFB\uFEE3\uFEE7\uFEEC\uFEE9\uFFFD" + }, + "ibm1046": "cp1046", + "csibm1046": "cp1046", + "cp1124": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0490\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0491\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F" + }, + "ibm1124": "cp1124", + "csibm1124": "cp1124", + "cp1125": { + "type": "_sbcs", + "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0490\u0491\u0404\u0454\u0406\u0456\u0407\u0457\xB7\u221A\u2116\xA4\u25A0\xA0" + }, + "ibm1125": "cp1125", + "csibm1125": "cp1125", + "cp1129": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF" + }, + "ibm1129": "cp1129", + "csibm1129": "cp1129", + "cp1133": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E81\u0E82\u0E84\u0E87\u0E88\u0EAA\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAB\u0EAD\u0EAE\uFFFD\uFFFD\uFFFD\u0EAF\u0EB0\u0EB2\u0EB3\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBC\u0EB1\u0EBB\u0EBD\uFFFD\uFFFD\uFFFD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0EC6\uFFFD\u0EDC\u0EDD\u20AD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\uFFFD\uFFFD\xA2\xAC\xA6\uFFFD" + }, + "ibm1133": "cp1133", + "csibm1133": "cp1133", + "cp1161": { + "type": "_sbcs", + "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E48\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E49\u0E4A\u0E4B\u20AC\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\xA2\xAC\xA6\xA0" + }, + "ibm1161": "cp1161", + "csibm1161": "cp1161", + "cp1162": { + "type": "_sbcs", + "chars": "\u20AC\x81\x82\x83\x84\u2026\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "ibm1162": "cp1162", + "csibm1162": "cp1162", + "cp1163": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF" + }, + "ibm1163": "cp1163", + "csibm1163": "cp1163", + "maccroatian": { + "type": "_sbcs", + "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u2126\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uFFFD\xA9\u2044\xA4\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7" + }, + "maccyrillic": { + "type": "_sbcs", + "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\xA2\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u2202\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4" + }, + "macgreek": { + "type": "_sbcs", + "chars": "\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\xAD\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\u0387\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026\xA0\u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\uFFFD" + }, + "maciceland": { + "type": "_sbcs", + "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7" + }, + "macroman": { + "type": "_sbcs", + "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7" + }, + "macromania": { + "type": "_sbcs", + "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u015E\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\u0103\u015F\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\u0162\u0163\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7" + }, + "macthai": { + "type": "_sbcs", + "chars": "\xAB\xBB\u2026\uF88C\uF88F\uF892\uF895\uF898\uF88B\uF88E\uF891\uF894\uF897\u201C\u201D\uF899\uFFFD\u2022\uF884\uF889\uF885\uF886\uF887\uF888\uF88A\uF88D\uF890\uF893\uF896\u2018\u2019\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFEFF\u200B\u2013\u2014\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u2122\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\xAE\xA9\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "macturkish": { + "type": "_sbcs", + "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\uFFFD\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7" + }, + "macukraine": { + "type": "_sbcs", + "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\u0490\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4" + }, + "koi8r": { + "type": "_sbcs", + "chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u2553\u2554\u2555\u2556\u2557\u2558\u2559\u255A\u255B\u255C\u255D\u255E\u255F\u2560\u2561\u0401\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569\u256A\u256B\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A" + }, + "koi8u": { + "type": "_sbcs", + "chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u255D\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A" + }, + "koi8ru": { + "type": "_sbcs", + "chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u045E\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u040E\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A" + }, + "koi8t": { + "type": "_sbcs", + "chars": "\u049B\u0493\u201A\u0492\u201E\u2026\u2020\u2021\uFFFD\u2030\u04B3\u2039\u04B2\u04B7\u04B6\uFFFD\u049A\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u04EF\u04EE\u0451\xA4\u04E3\xA6\xA7\uFFFD\uFFFD\uFFFD\xAB\xAC\xAD\xAE\uFFFD\xB0\xB1\xB2\u0401\uFFFD\u04E2\xB6\xB7\uFFFD\u2116\uFFFD\xBB\uFFFD\uFFFD\uFFFD\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A" + }, + "armscii8": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\u0587\u0589)(\xBB\xAB\u2014.\u055D,-\u058A\u2026\u055C\u055B\u055E\u0531\u0561\u0532\u0562\u0533\u0563\u0534\u0564\u0535\u0565\u0536\u0566\u0537\u0567\u0538\u0568\u0539\u0569\u053A\u056A\u053B\u056B\u053C\u056C\u053D\u056D\u053E\u056E\u053F\u056F\u0540\u0570\u0541\u0571\u0542\u0572\u0543\u0573\u0544\u0574\u0545\u0575\u0546\u0576\u0547\u0577\u0548\u0578\u0549\u0579\u054A\u057A\u054B\u057B\u054C\u057C\u054D\u057D\u054E\u057E\u054F\u057F\u0550\u0580\u0551\u0581\u0552\u0582\u0553\u0583\u0554\u0584\u0555\u0585\u0556\u0586\u055A\uFFFD" + }, + "rk1048": { + "type": "_sbcs", + "chars": "\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u049A\u04BA\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u049B\u04BB\u045F\xA0\u04B0\u04B1\u04D8\xA4\u04E8\xA6\xA7\u0401\xA9\u0492\xAB\xAC\xAD\xAE\u04AE\xB0\xB1\u0406\u0456\u04E9\xB5\xB6\xB7\u0451\u2116\u0493\xBB\u04D9\u04A2\u04A3\u04AF\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F" + }, + "tcvn": { + "type": "_sbcs", + "chars": "\0\xDA\u1EE4\u1EEA\u1EEC\u1EEE\x07\b \n\v\f\r\u1EE8\u1EF0\u1EF2\u1EF6\u1EF8\xDD\u1EF4 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xC0\u1EA2\xC3\xC1\u1EA0\u1EB6\u1EAC\xC8\u1EBA\u1EBC\xC9\u1EB8\u1EC6\xCC\u1EC8\u0128\xCD\u1ECA\xD2\u1ECE\xD5\xD3\u1ECC\u1ED8\u1EDC\u1EDE\u1EE0\u1EDA\u1EE2\xD9\u1EE6\u0168\xA0\u0102\xC2\xCA\xD4\u01A0\u01AF\u0110\u0103\xE2\xEA\xF4\u01A1\u01B0\u0111\u1EB0\u0300\u0309\u0303\u0301\u0323\xE0\u1EA3\xE3\xE1\u1EA1\u1EB2\u1EB1\u1EB3\u1EB5\u1EAF\u1EB4\u1EAE\u1EA6\u1EA8\u1EAA\u1EA4\u1EC0\u1EB7\u1EA7\u1EA9\u1EAB\u1EA5\u1EAD\xE8\u1EC2\u1EBB\u1EBD\xE9\u1EB9\u1EC1\u1EC3\u1EC5\u1EBF\u1EC7\xEC\u1EC9\u1EC4\u1EBE\u1ED2\u0129\xED\u1ECB\xF2\u1ED4\u1ECF\xF5\xF3\u1ECD\u1ED3\u1ED5\u1ED7\u1ED1\u1ED9\u1EDD\u1EDF\u1EE1\u1EDB\u1EE3\xF9\u1ED6\u1EE7\u0169\xFA\u1EE5\u1EEB\u1EED\u1EEF\u1EE9\u1EF1\u1EF3\u1EF7\u1EF9\xFD\u1EF5\u1ED0" + }, + "georgianacademy": { + "type": "_sbcs", + "chars": "\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF" + }, + "georgianps": { + "type": "_sbcs", + "chars": "\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10F1\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10F2\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10F3\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10F4\u10EF\u10F0\u10F5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF" + }, + "pt154": { + "type": "_sbcs", + "chars": "\u0496\u0492\u04EE\u0493\u201E\u2026\u04B6\u04AE\u04B2\u04AF\u04A0\u04E2\u04A2\u049A\u04BA\u04B8\u0497\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u04B3\u04B7\u04A1\u04E3\u04A3\u049B\u04BB\u04B9\xA0\u040E\u045E\u0408\u04E8\u0498\u04B0\xA7\u0401\xA9\u04D8\xAB\xAC\u04EF\xAE\u049C\xB0\u04B1\u0406\u0456\u0499\u04E9\xB6\xB7\u0451\u2116\u04D9\xBB\u0458\u04AA\u04AB\u049D\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F" + }, + "viscii": { + "type": "_sbcs", + "chars": "\0\u1EB2\u1EB4\u1EAA\x07\b \n\v\f\r\u1EF6\u1EF8\u1EF4 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\u1EA0\u1EAE\u1EB0\u1EB6\u1EA4\u1EA6\u1EA8\u1EAC\u1EBC\u1EB8\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EE2\u1EDA\u1EDC\u1EDE\u1ECA\u1ECE\u1ECC\u1EC8\u1EE6\u0168\u1EE4\u1EF2\xD5\u1EAF\u1EB1\u1EB7\u1EA5\u1EA7\u1EA9\u1EAD\u1EBD\u1EB9\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1ED1\u1ED3\u1ED5\u1ED7\u1EE0\u01A0\u1ED9\u1EDD\u1EDF\u1ECB\u1EF0\u1EE8\u1EEA\u1EEC\u01A1\u1EDB\u01AF\xC0\xC1\xC2\xC3\u1EA2\u0102\u1EB3\u1EB5\xC8\xC9\xCA\u1EBA\xCC\xCD\u0128\u1EF3\u0110\u1EE9\xD2\xD3\xD4\u1EA1\u1EF7\u1EEB\u1EED\xD9\xDA\u1EF9\u1EF5\xDD\u1EE1\u01B0\xE0\xE1\xE2\xE3\u1EA3\u0103\u1EEF\u1EAB\xE8\xE9\xEA\u1EBB\xEC\xED\u0129\u1EC9\u0111\u1EF1\xF2\xF3\xF4\xF5\u1ECF\u1ECD\u1EE5\xF9\xFA\u0169\u1EE7\xFD\u1EE3\u1EEE" + }, + "iso646cn": { + "type": "_sbcs", + "chars": "\0\x07\b \n\v\f\r !\"#\xA5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "iso646jp": { + "type": "_sbcs", + "chars": "\0\x07\b \n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "hproman8": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD" + }, + "macintosh": { + "type": "_sbcs", + "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7" + }, + "ascii": { + "type": "_sbcs", + "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "tis620": { + "type": "_sbcs", + "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD" + } + }; + } +}); + +// node_modules/iconv-lite/encodings/dbcs-codec.js +var require_dbcs_codec = __commonJS({ + "node_modules/iconv-lite/encodings/dbcs-codec.js"(exports2) { + "use strict"; + var Buffer2 = require_safer().Buffer; + exports2._dbcs = DBCSCodec; + var UNASSIGNED = -1; + var GB18030_CODE = -2; + var SEQ_START = -10; + var NODE_START = -1e3; + var UNASSIGNED_NODE = new Array(256); + var DEF_CHAR = -1; + for (i = 0; i < 256; i++) + UNASSIGNED_NODE[i] = UNASSIGNED; + var i; + function DBCSCodec(codecOptions, iconv) { + this.encodingName = codecOptions.encodingName; + if (!codecOptions) + throw new Error("DBCS codec is called without the data."); + if (!codecOptions.table) + throw new Error("Encoding '" + this.encodingName + "' has no data."); + var mappingTable = codecOptions.table(); + this.decodeTables = []; + this.decodeTables[0] = UNASSIGNED_NODE.slice(0); + this.decodeTableSeq = []; + for (var i2 = 0; i2 < mappingTable.length; i2++) + this._addDecodeChunk(mappingTable[i2]); + this.defaultCharUnicode = iconv.defaultCharUnicode; + this.encodeTable = []; + this.encodeTableSeq = []; + var skipEncodeChars = {}; + if (codecOptions.encodeSkipVals) + for (var i2 = 0; i2 < codecOptions.encodeSkipVals.length; i2++) { + var val = codecOptions.encodeSkipVals[i2]; + if (typeof val === "number") + skipEncodeChars[val] = true; + else + for (var j = val.from; j <= val.to; j++) + skipEncodeChars[j] = true; + } + this._fillEncodeTable(0, 0, skipEncodeChars); + if (codecOptions.encodeAdd) { + for (var uChar in codecOptions.encodeAdd) + if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar)) + this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]); + } + this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)]; + if (this.defCharSB === UNASSIGNED) + this.defCharSB = this.encodeTable[0]["?"]; + if (this.defCharSB === UNASSIGNED) + this.defCharSB = "?".charCodeAt(0); + if (typeof codecOptions.gb18030 === "function") { + this.gb18030 = codecOptions.gb18030(); + var thirdByteNodeIdx = this.decodeTables.length; + var thirdByteNode = this.decodeTables[thirdByteNodeIdx] = UNASSIGNED_NODE.slice(0); + var fourthByteNodeIdx = this.decodeTables.length; + var fourthByteNode = this.decodeTables[fourthByteNodeIdx] = UNASSIGNED_NODE.slice(0); + for (var i2 = 129; i2 <= 254; i2++) { + var secondByteNodeIdx = NODE_START - this.decodeTables[0][i2]; + var secondByteNode = this.decodeTables[secondByteNodeIdx]; + for (var j = 48; j <= 57; j++) + secondByteNode[j] = NODE_START - thirdByteNodeIdx; + } + for (var i2 = 129; i2 <= 254; i2++) + thirdByteNode[i2] = NODE_START - fourthByteNodeIdx; + for (var i2 = 48; i2 <= 57; i2++) + fourthByteNode[i2] = GB18030_CODE; + } + } + DBCSCodec.prototype.encoder = DBCSEncoder; + DBCSCodec.prototype.decoder = DBCSDecoder; + DBCSCodec.prototype._getDecodeTrieNode = function(addr) { + var bytes = []; + for (; addr > 0; addr >>= 8) + bytes.push(addr & 255); + if (bytes.length == 0) + bytes.push(0); + var node = this.decodeTables[0]; + for (var i2 = bytes.length - 1; i2 > 0; i2--) { + var val = node[bytes[i2]]; + if (val == UNASSIGNED) { + node[bytes[i2]] = NODE_START - this.decodeTables.length; + this.decodeTables.push(node = UNASSIGNED_NODE.slice(0)); + } else if (val <= NODE_START) { + node = this.decodeTables[NODE_START - val]; + } else + throw new Error("Overwrite byte in " + this.encodingName + ", addr: " + addr.toString(16)); + } + return node; + }; + DBCSCodec.prototype._addDecodeChunk = function(chunk) { + var curAddr = parseInt(chunk[0], 16); + var writeTable = this._getDecodeTrieNode(curAddr); + curAddr = curAddr & 255; + for (var k = 1; k < chunk.length; k++) { + var part = chunk[k]; + if (typeof part === "string") { + for (var l = 0; l < part.length; ) { + var code = part.charCodeAt(l++); + if (55296 <= code && code < 56320) { + var codeTrail = part.charCodeAt(l++); + if (56320 <= codeTrail && codeTrail < 57344) + writeTable[curAddr++] = 65536 + (code - 55296) * 1024 + (codeTrail - 56320); + else + throw new Error("Incorrect surrogate pair in " + this.encodingName + " at chunk " + chunk[0]); + } else if (4080 < code && code <= 4095) { + var len = 4095 - code + 2; + var seq = []; + for (var m = 0; m < len; m++) + seq.push(part.charCodeAt(l++)); + writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length; + this.decodeTableSeq.push(seq); + } else + writeTable[curAddr++] = code; + } + } else if (typeof part === "number") { + var charCode = writeTable[curAddr - 1] + 1; + for (var l = 0; l < part; l++) + writeTable[curAddr++] = charCode++; + } else + throw new Error("Incorrect type '" + typeof part + "' given in " + this.encodingName + " at chunk " + chunk[0]); + } + if (curAddr > 255) + throw new Error("Incorrect chunk in " + this.encodingName + " at addr " + chunk[0] + ": too long" + curAddr); + }; + DBCSCodec.prototype._getEncodeBucket = function(uCode) { + var high = uCode >> 8; + if (this.encodeTable[high] === void 0) + this.encodeTable[high] = UNASSIGNED_NODE.slice(0); + return this.encodeTable[high]; + }; + DBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) { + var bucket = this._getEncodeBucket(uCode); + var low = uCode & 255; + if (bucket[low] <= SEQ_START) + this.encodeTableSeq[SEQ_START - bucket[low]][DEF_CHAR] = dbcsCode; + else if (bucket[low] == UNASSIGNED) + bucket[low] = dbcsCode; + }; + DBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) { + var uCode = seq[0]; + var bucket = this._getEncodeBucket(uCode); + var low = uCode & 255; + var node; + if (bucket[low] <= SEQ_START) { + node = this.encodeTableSeq[SEQ_START - bucket[low]]; + } else { + node = {}; + if (bucket[low] !== UNASSIGNED) + node[DEF_CHAR] = bucket[low]; + bucket[low] = SEQ_START - this.encodeTableSeq.length; + this.encodeTableSeq.push(node); + } + for (var j = 1; j < seq.length - 1; j++) { + var oldVal = node[uCode]; + if (typeof oldVal === "object") + node = oldVal; + else { + node = node[uCode] = {}; + if (oldVal !== void 0) + node[DEF_CHAR] = oldVal; + } + } + uCode = seq[seq.length - 1]; + node[uCode] = dbcsCode; + }; + DBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) { + var node = this.decodeTables[nodeIdx]; + for (var i2 = 0; i2 < 256; i2++) { + var uCode = node[i2]; + var mbCode = prefix + i2; + if (skipEncodeChars[mbCode]) + continue; + if (uCode >= 0) + this._setEncodeChar(uCode, mbCode); + else if (uCode <= NODE_START) + this._fillEncodeTable(NODE_START - uCode, mbCode << 8, skipEncodeChars); + else if (uCode <= SEQ_START) + this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode); + } + }; + function DBCSEncoder(options, codec) { + this.leadSurrogate = -1; + this.seqObj = void 0; + this.encodeTable = codec.encodeTable; + this.encodeTableSeq = codec.encodeTableSeq; + this.defaultCharSingleByte = codec.defCharSB; + this.gb18030 = codec.gb18030; + } + DBCSEncoder.prototype.write = function(str) { + var newBuf = Buffer2.alloc(str.length * (this.gb18030 ? 4 : 3)), leadSurrogate = this.leadSurrogate, seqObj = this.seqObj, nextChar = -1, i2 = 0, j = 0; + while (true) { + if (nextChar === -1) { + if (i2 == str.length) + break; + var uCode = str.charCodeAt(i2++); + } else { + var uCode = nextChar; + nextChar = -1; + } + if (55296 <= uCode && uCode < 57344) { + if (uCode < 56320) { + if (leadSurrogate === -1) { + leadSurrogate = uCode; + continue; + } else { + leadSurrogate = uCode; + uCode = UNASSIGNED; + } + } else { + if (leadSurrogate !== -1) { + uCode = 65536 + (leadSurrogate - 55296) * 1024 + (uCode - 56320); + leadSurrogate = -1; + } else { + uCode = UNASSIGNED; + } + } + } else if (leadSurrogate !== -1) { + nextChar = uCode; + uCode = UNASSIGNED; + leadSurrogate = -1; + } + var dbcsCode = UNASSIGNED; + if (seqObj !== void 0 && uCode != UNASSIGNED) { + var resCode = seqObj[uCode]; + if (typeof resCode === "object") { + seqObj = resCode; + continue; + } else if (typeof resCode == "number") { + dbcsCode = resCode; + } else if (resCode == void 0) { + resCode = seqObj[DEF_CHAR]; + if (resCode !== void 0) { + dbcsCode = resCode; + nextChar = uCode; + } else { + } + } + seqObj = void 0; + } else if (uCode >= 0) { + var subtable = this.encodeTable[uCode >> 8]; + if (subtable !== void 0) + dbcsCode = subtable[uCode & 255]; + if (dbcsCode <= SEQ_START) { + seqObj = this.encodeTableSeq[SEQ_START - dbcsCode]; + continue; + } + if (dbcsCode == UNASSIGNED && this.gb18030) { + var idx = findIdx(this.gb18030.uChars, uCode); + if (idx != -1) { + var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]); + newBuf[j++] = 129 + Math.floor(dbcsCode / 12600); + dbcsCode = dbcsCode % 12600; + newBuf[j++] = 48 + Math.floor(dbcsCode / 1260); + dbcsCode = dbcsCode % 1260; + newBuf[j++] = 129 + Math.floor(dbcsCode / 10); + dbcsCode = dbcsCode % 10; + newBuf[j++] = 48 + dbcsCode; + continue; + } + } + } + if (dbcsCode === UNASSIGNED) + dbcsCode = this.defaultCharSingleByte; + if (dbcsCode < 256) { + newBuf[j++] = dbcsCode; + } else if (dbcsCode < 65536) { + newBuf[j++] = dbcsCode >> 8; + newBuf[j++] = dbcsCode & 255; + } else { + newBuf[j++] = dbcsCode >> 16; + newBuf[j++] = dbcsCode >> 8 & 255; + newBuf[j++] = dbcsCode & 255; + } + } + this.seqObj = seqObj; + this.leadSurrogate = leadSurrogate; + return newBuf.slice(0, j); + }; + DBCSEncoder.prototype.end = function() { + if (this.leadSurrogate === -1 && this.seqObj === void 0) + return; + var newBuf = Buffer2.alloc(10), j = 0; + if (this.seqObj) { + var dbcsCode = this.seqObj[DEF_CHAR]; + if (dbcsCode !== void 0) { + if (dbcsCode < 256) { + newBuf[j++] = dbcsCode; + } else { + newBuf[j++] = dbcsCode >> 8; + newBuf[j++] = dbcsCode & 255; + } + } else { + } + this.seqObj = void 0; + } + if (this.leadSurrogate !== -1) { + newBuf[j++] = this.defaultCharSingleByte; + this.leadSurrogate = -1; + } + return newBuf.slice(0, j); + }; + DBCSEncoder.prototype.findIdx = findIdx; + function DBCSDecoder(options, codec) { + this.nodeIdx = 0; + this.prevBuf = Buffer2.alloc(0); + this.decodeTables = codec.decodeTables; + this.decodeTableSeq = codec.decodeTableSeq; + this.defaultCharUnicode = codec.defaultCharUnicode; + this.gb18030 = codec.gb18030; + } + DBCSDecoder.prototype.write = function(buf) { + var newBuf = Buffer2.alloc(buf.length * 2), nodeIdx = this.nodeIdx, prevBuf = this.prevBuf, prevBufOffset = this.prevBuf.length, seqStart = -this.prevBuf.length, uCode; + if (prevBufOffset > 0) + prevBuf = Buffer2.concat([prevBuf, buf.slice(0, 10)]); + for (var i2 = 0, j = 0; i2 < buf.length; i2++) { + var curByte = i2 >= 0 ? buf[i2] : prevBuf[i2 + prevBufOffset]; + var uCode = this.decodeTables[nodeIdx][curByte]; + if (uCode >= 0) { + } else if (uCode === UNASSIGNED) { + i2 = seqStart; + uCode = this.defaultCharUnicode.charCodeAt(0); + } else if (uCode === GB18030_CODE) { + var curSeq = seqStart >= 0 ? buf.slice(seqStart, i2 + 1) : prevBuf.slice(seqStart + prevBufOffset, i2 + 1 + prevBufOffset); + var ptr = (curSeq[0] - 129) * 12600 + (curSeq[1] - 48) * 1260 + (curSeq[2] - 129) * 10 + (curSeq[3] - 48); + var idx = findIdx(this.gb18030.gbChars, ptr); + uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx]; + } else if (uCode <= NODE_START) { + nodeIdx = NODE_START - uCode; + continue; + } else if (uCode <= SEQ_START) { + var seq = this.decodeTableSeq[SEQ_START - uCode]; + for (var k = 0; k < seq.length - 1; k++) { + uCode = seq[k]; + newBuf[j++] = uCode & 255; + newBuf[j++] = uCode >> 8; + } + uCode = seq[seq.length - 1]; + } else + throw new Error("iconv-lite internal error: invalid decoding table value " + uCode + " at " + nodeIdx + "/" + curByte); + if (uCode > 65535) { + uCode -= 65536; + var uCodeLead = 55296 + Math.floor(uCode / 1024); + newBuf[j++] = uCodeLead & 255; + newBuf[j++] = uCodeLead >> 8; + uCode = 56320 + uCode % 1024; + } + newBuf[j++] = uCode & 255; + newBuf[j++] = uCode >> 8; + nodeIdx = 0; + seqStart = i2 + 1; + } + this.nodeIdx = nodeIdx; + this.prevBuf = seqStart >= 0 ? buf.slice(seqStart) : prevBuf.slice(seqStart + prevBufOffset); + return newBuf.slice(0, j).toString("ucs2"); + }; + DBCSDecoder.prototype.end = function() { + var ret = ""; + while (this.prevBuf.length > 0) { + ret += this.defaultCharUnicode; + var buf = this.prevBuf.slice(1); + this.prevBuf = Buffer2.alloc(0); + this.nodeIdx = 0; + if (buf.length > 0) + ret += this.write(buf); + } + this.nodeIdx = 0; + return ret; + }; + function findIdx(table, val) { + if (table[0] > val) + return -1; + var l = 0, r = table.length; + while (l < r - 1) { + var mid = l + Math.floor((r - l + 1) / 2); + if (table[mid] <= val) + l = mid; + else + r = mid; + } + return l; + } + } +}); + +// node_modules/iconv-lite/encodings/tables/shiftjis.json +var require_shiftjis = __commonJS({ + "node_modules/iconv-lite/encodings/tables/shiftjis.json"(exports2, module2) { + module2.exports = [ + ["0", "\0", 128], + ["a1", "\uFF61", 62], + ["8140", "\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008", 9, "\uFF0B\uFF0D\xB1\xD7"], + ["8180", "\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"], + ["81b8", "\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"], + ["81c8", "\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"], + ["81da", "\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"], + ["81f0", "\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"], + ["81fc", "\u25EF"], + ["824f", "\uFF10", 9], + ["8260", "\uFF21", 25], + ["8281", "\uFF41", 25], + ["829f", "\u3041", 82], + ["8340", "\u30A1", 62], + ["8380", "\u30E0", 22], + ["839f", "\u0391", 16, "\u03A3", 6], + ["83bf", "\u03B1", 16, "\u03C3", 6], + ["8440", "\u0410", 5, "\u0401\u0416", 25], + ["8470", "\u0430", 5, "\u0451\u0436", 7], + ["8480", "\u043E", 17], + ["849f", "\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"], + ["8740", "\u2460", 19, "\u2160", 9], + ["875f", "\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"], + ["877e", "\u337B"], + ["8780", "\u301D\u301F\u2116\u33CD\u2121\u32A4", 4, "\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"], + ["889f", "\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"], + ["8940", "\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"], + ["8980", "\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"], + ["8a40", "\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"], + ["8a80", "\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"], + ["8b40", "\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"], + ["8b80", "\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"], + ["8c40", "\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"], + ["8c80", "\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"], + ["8d40", "\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"], + ["8d80", "\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"], + ["8e40", "\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"], + ["8e80", "\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"], + ["8f40", "\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"], + ["8f80", "\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"], + ["9040", "\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"], + ["9080", "\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"], + ["9140", "\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"], + ["9180", "\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"], + ["9240", "\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"], + ["9280", "\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"], + ["9340", "\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"], + ["9380", "\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"], + ["9440", "\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"], + ["9480", "\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"], + ["9540", "\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"], + ["9580", "\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"], + ["9640", "\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"], + ["9680", "\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"], + ["9740", "\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"], + ["9780", "\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"], + ["9840", "\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"], + ["989f", "\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"], + ["9940", "\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"], + ["9980", "\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"], + ["9a40", "\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"], + ["9a80", "\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"], + ["9b40", "\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"], + ["9b80", "\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"], + ["9c40", "\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"], + ["9c80", "\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"], + ["9d40", "\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"], + ["9d80", "\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"], + ["9e40", "\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"], + ["9e80", "\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"], + ["9f40", "\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"], + ["9f80", "\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"], + ["e040", "\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"], + ["e080", "\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"], + ["e140", "\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"], + ["e180", "\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"], + ["e240", "\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"], + ["e280", "\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"], + ["e340", "\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"], + ["e380", "\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"], + ["e440", "\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"], + ["e480", "\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"], + ["e540", "\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"], + ["e580", "\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"], + ["e640", "\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"], + ["e680", "\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"], + ["e740", "\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"], + ["e780", "\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"], + ["e840", "\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"], + ["e880", "\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"], + ["e940", "\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"], + ["e980", "\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"], + ["ea40", "\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"], + ["ea80", "\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"], + ["ed40", "\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"], + ["ed80", "\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"], + ["ee40", "\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"], + ["ee80", "\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"], + ["eeef", "\u2170", 9, "\uFFE2\uFFE4\uFF07\uFF02"], + ["f040", "\uE000", 62], + ["f080", "\uE03F", 124], + ["f140", "\uE0BC", 62], + ["f180", "\uE0FB", 124], + ["f240", "\uE178", 62], + ["f280", "\uE1B7", 124], + ["f340", "\uE234", 62], + ["f380", "\uE273", 124], + ["f440", "\uE2F0", 62], + ["f480", "\uE32F", 124], + ["f540", "\uE3AC", 62], + ["f580", "\uE3EB", 124], + ["f640", "\uE468", 62], + ["f680", "\uE4A7", 124], + ["f740", "\uE524", 62], + ["f780", "\uE563", 124], + ["f840", "\uE5E0", 62], + ["f880", "\uE61F", 124], + ["f940", "\uE69C"], + ["fa40", "\u2170", 9, "\u2160", 9, "\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"], + ["fa80", "\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"], + ["fb40", "\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"], + ["fb80", "\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"], + ["fc40", "\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"] + ]; + } +}); + +// node_modules/iconv-lite/encodings/tables/eucjp.json +var require_eucjp = __commonJS({ + "node_modules/iconv-lite/encodings/tables/eucjp.json"(exports2, module2) { + module2.exports = [ + ["0", "\0", 127], + ["8ea1", "\uFF61", 62], + ["a1a1", "\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008", 9, "\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"], + ["a2a1", "\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"], + ["a2ba", "\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"], + ["a2ca", "\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"], + ["a2dc", "\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"], + ["a2f2", "\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"], + ["a2fe", "\u25EF"], + ["a3b0", "\uFF10", 9], + ["a3c1", "\uFF21", 25], + ["a3e1", "\uFF41", 25], + ["a4a1", "\u3041", 82], + ["a5a1", "\u30A1", 85], + ["a6a1", "\u0391", 16, "\u03A3", 6], + ["a6c1", "\u03B1", 16, "\u03C3", 6], + ["a7a1", "\u0410", 5, "\u0401\u0416", 25], + ["a7d1", "\u0430", 5, "\u0451\u0436", 25], + ["a8a1", "\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"], + ["ada1", "\u2460", 19, "\u2160", 9], + ["adc0", "\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"], + ["addf", "\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4", 4, "\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"], + ["b0a1", "\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"], + ["b1a1", "\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"], + ["b2a1", "\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"], + ["b3a1", "\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"], + ["b4a1", "\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"], + ["b5a1", "\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"], + ["b6a1", "\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"], + ["b7a1", "\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"], + ["b8a1", "\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"], + ["b9a1", "\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"], + ["baa1", "\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"], + ["bba1", "\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"], + ["bca1", "\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"], + ["bda1", "\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"], + ["bea1", "\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"], + ["bfa1", "\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"], + ["c0a1", "\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"], + ["c1a1", "\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"], + ["c2a1", "\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"], + ["c3a1", "\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"], + ["c4a1", "\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"], + ["c5a1", "\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"], + ["c6a1", "\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"], + ["c7a1", "\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"], + ["c8a1", "\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"], + ["c9a1", "\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"], + ["caa1", "\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"], + ["cba1", "\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"], + ["cca1", "\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"], + ["cda1", "\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"], + ["cea1", "\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"], + ["cfa1", "\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"], + ["d0a1", "\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"], + ["d1a1", "\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"], + ["d2a1", "\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"], + ["d3a1", "\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"], + ["d4a1", "\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"], + ["d5a1", "\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"], + ["d6a1", "\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"], + ["d7a1", "\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"], + ["d8a1", "\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"], + ["d9a1", "\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"], + ["daa1", "\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"], + ["dba1", "\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"], + ["dca1", "\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"], + ["dda1", "\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"], + ["dea1", "\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"], + ["dfa1", "\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"], + ["e0a1", "\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"], + ["e1a1", "\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"], + ["e2a1", "\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"], + ["e3a1", "\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"], + ["e4a1", "\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"], + ["e5a1", "\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"], + ["e6a1", "\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"], + ["e7a1", "\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"], + ["e8a1", "\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"], + ["e9a1", "\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"], + ["eaa1", "\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"], + ["eba1", "\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"], + ["eca1", "\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"], + ["eda1", "\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"], + ["eea1", "\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"], + ["efa1", "\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"], + ["f0a1", "\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"], + ["f1a1", "\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"], + ["f2a1", "\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"], + ["f3a1", "\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"], + ["f4a1", "\u582F\u69C7\u9059\u7464\u51DC\u7199"], + ["f9a1", "\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"], + ["faa1", "\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"], + ["fba1", "\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"], + ["fca1", "\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"], + ["fcf1", "\u2170", 9, "\uFFE2\uFFE4\uFF07\uFF02"], + ["8fa2af", "\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"], + ["8fa2c2", "\xA1\xA6\xBF"], + ["8fa2eb", "\xBA\xAA\xA9\xAE\u2122\xA4\u2116"], + ["8fa6e1", "\u0386\u0388\u0389\u038A\u03AA"], + ["8fa6e7", "\u038C"], + ["8fa6e9", "\u038E\u03AB"], + ["8fa6ec", "\u038F"], + ["8fa6f1", "\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"], + ["8fa7c2", "\u0402", 10, "\u040E\u040F"], + ["8fa7f2", "\u0452", 10, "\u045E\u045F"], + ["8fa9a1", "\xC6\u0110"], + ["8fa9a4", "\u0126"], + ["8fa9a6", "\u0132"], + ["8fa9a8", "\u0141\u013F"], + ["8fa9ab", "\u014A\xD8\u0152"], + ["8fa9af", "\u0166\xDE"], + ["8fa9c1", "\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"], + ["8faaa1", "\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"], + ["8faaba", "\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"], + ["8faba1", "\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"], + ["8fabbd", "\u0121\u0125\xED\xEC\xEF\xEE\u01D0"], + ["8fabc5", "\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"], + ["8fb0a1", "\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"], + ["8fb1a1", "\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"], + ["8fb2a1", "\u5092\u5093\u5094\u5096\u509B\u509C\u509E", 4, "\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"], + ["8fb3a1", "\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"], + ["8fb4a1", "\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"], + ["8fb5a1", "\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"], + ["8fb6a1", "\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D", 5, "\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4", 4, "\u56F1\u56EB\u56ED"], + ["8fb7a1", "\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D", 4, "\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"], + ["8fb8a1", "\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"], + ["8fb9a1", "\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"], + ["8fbaa1", "\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6", 4, "\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"], + ["8fbba1", "\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"], + ["8fbca1", "\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A", 4, "\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"], + ["8fbda1", "\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0", 4, "\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"], + ["8fbea1", "\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110", 4, "\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"], + ["8fbfa1", "\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"], + ["8fc0a1", "\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"], + ["8fc1a1", "\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"], + ["8fc2a1", "\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"], + ["8fc3a1", "\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E", 4, "\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"], + ["8fc4a1", "\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"], + ["8fc5a1", "\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"], + ["8fc6a1", "\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"], + ["8fc7a1", "\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"], + ["8fc8a1", "\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"], + ["8fc9a1", "\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094", 4, "\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103", 4, "\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"], + ["8fcaa1", "\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"], + ["8fcba1", "\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"], + ["8fcca1", "\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428", 9, "\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"], + ["8fcda1", "\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579", 5, "\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"], + ["8fcea1", "\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2", 6, "\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"], + ["8fcfa1", "\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"], + ["8fd0a1", "\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"], + ["8fd1a1", "\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"], + ["8fd2a1", "\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59", 5], + ["8fd3a1", "\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"], + ["8fd4a1", "\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2", 4, "\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"], + ["8fd5a1", "\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"], + ["8fd6a1", "\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"], + ["8fd7a1", "\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"], + ["8fd8a1", "\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"], + ["8fd9a1", "\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F", 4, "\u8556\u8559\u855C", 6, "\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"], + ["8fdaa1", "\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660", 4, "\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"], + ["8fdba1", "\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783", 6, "\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"], + ["8fdca1", "\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA", 4, "\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"], + ["8fdda1", "\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4", 4, "\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"], + ["8fdea1", "\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42", 4, "\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"], + ["8fdfa1", "\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"], + ["8fe0a1", "\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"], + ["8fe1a1", "\u8F43\u8F47\u8F4F\u8F51", 4, "\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"], + ["8fe2a1", "\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"], + ["8fe3a1", "\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC", 5, "\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275", 4, "\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"], + ["8fe4a1", "\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF", 4, "\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"], + ["8fe5a1", "\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9", 4, "\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"], + ["8fe6a1", "\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"], + ["8fe7a1", "\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"], + ["8fe8a1", "\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931", 4, "\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"], + ["8fe9a1", "\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF", 4], + ["8feaa1", "\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A", 4, "\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"], + ["8feba1", "\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26", 4, "\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"], + ["8feca1", "\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"], + ["8feda1", "\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43", 4, "\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D", 4, "\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"] + ]; + } +}); + +// node_modules/iconv-lite/encodings/tables/cp936.json +var require_cp936 = __commonJS({ + "node_modules/iconv-lite/encodings/tables/cp936.json"(exports2, module2) { + module2.exports = [ + ["0", "\0", 127, "\u20AC"], + ["8140", "\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A", 5, "\u4E72\u4E74", 9, "\u4E7F", 6, "\u4E87\u4E8A"], + ["8180", "\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02", 6, "\u4F0B\u4F0C\u4F12", 4, "\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E", 4, "\u4F44\u4F45\u4F47", 5, "\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"], + ["8240", "\u4FA4\u4FAB\u4FAD\u4FB0", 4, "\u4FB6", 8, "\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2", 4, "\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF", 11], + ["8280", "\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F", 10, "\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050", 4, "\u5056\u5057\u5058\u5059\u505B\u505D", 7, "\u5066", 5, "\u506D", 8, "\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E", 20, "\u50A4\u50A6\u50AA\u50AB\u50AD", 4, "\u50B3", 6, "\u50BC"], + ["8340", "\u50BD", 17, "\u50D0", 5, "\u50D7\u50D8\u50D9\u50DB", 10, "\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6", 4, "\u50FC", 9, "\u5108"], + ["8380", "\u5109\u510A\u510C", 5, "\u5113", 13, "\u5122", 28, "\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D", 4, "\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6", 4, "\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2", 5], + ["8440", "\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5", 5, "\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244", 5, "\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"], + ["8480", "\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273", 9, "\u527E\u5280\u5283", 4, "\u5289", 6, "\u5291\u5292\u5294", 6, "\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4", 9, "\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9", 5, "\u52E0\u52E1\u52E2\u52E3\u52E5", 10, "\u52F1", 7, "\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"], + ["8540", "\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F", 9, "\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"], + ["8580", "\u5390", 4, "\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF", 6, "\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3", 4, "\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D", 4, "\u5463\u5465\u5467\u5469", 7, "\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"], + ["8640", "\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0", 4, "\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4", 5, "\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A", 4, "\u5512\u5513\u5515", 5, "\u551C\u551D\u551E\u551F\u5521\u5525\u5526"], + ["8680", "\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B", 4, "\u5551\u5552\u5553\u5554\u5557", 4, "\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F", 5, "\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0", 6, "\u55A8", 8, "\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF", 4, "\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7", 4, "\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8", 4, "\u55FF\u5602\u5603\u5604\u5605"], + ["8740", "\u5606\u5607\u560A\u560B\u560D\u5610", 7, "\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640", 11, "\u564F", 4, "\u5655\u5656\u565A\u565B\u565D", 4], + ["8780", "\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D", 7, "\u5687", 6, "\u5690\u5691\u5692\u5694", 14, "\u56A4", 10, "\u56B0", 6, "\u56B8\u56B9\u56BA\u56BB\u56BD", 12, "\u56CB", 8, "\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5", 5, "\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B", 6], + ["8840", "\u5712", 9, "\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734", 4, "\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752", 4, "\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"], + ["8880", "\u5781\u5787\u5788\u5789\u578A\u578D", 4, "\u5794", 6, "\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9", 8, "\u57C4", 6, "\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5", 7, "\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825", 4, "\u582B", 4, "\u5831\u5832\u5833\u5834\u5836", 7], + ["8940", "\u583E", 5, "\u5845", 6, "\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859", 4, "\u585F", 5, "\u5866", 4, "\u586D", 16, "\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"], + ["8980", "\u588D", 4, "\u5894", 4, "\u589B\u589C\u589D\u58A0", 7, "\u58AA", 17, "\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6", 10, "\u58D2\u58D3\u58D4\u58D6", 13, "\u58E5", 5, "\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA", 7, "\u5903\u5905\u5906\u5908", 4, "\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"], + ["8a40", "\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B", 4, "\u5961\u5963\u5964\u5966", 12, "\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"], + ["8a80", "\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3", 5, "\u59BA\u59BC\u59BD\u59BF", 6, "\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE", 4, "\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED", 11, "\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A", 6, "\u5A33\u5A35\u5A37", 4, "\u5A3D\u5A3E\u5A3F\u5A41", 4, "\u5A47\u5A48\u5A4B", 9, "\u5A56\u5A57\u5A58\u5A59\u5A5B", 5], + ["8b40", "\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B", 8, "\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80", 17, "\u5A93", 6, "\u5A9C", 13, "\u5AAB\u5AAC"], + ["8b80", "\u5AAD", 4, "\u5AB4\u5AB6\u5AB7\u5AB9", 4, "\u5ABF\u5AC0\u5AC3", 5, "\u5ACA\u5ACB\u5ACD", 4, "\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC", 4, "\u5AF2", 22, "\u5B0A", 11, "\u5B18", 25, "\u5B33\u5B35\u5B36\u5B38", 7, "\u5B41", 6], + ["8c40", "\u5B48", 7, "\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"], + ["8c80", "\u5BD1\u5BD4", 8, "\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9", 4, "\u5BEF\u5BF1", 6, "\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67", 6, "\u5C70\u5C72", 6, "\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83", 4, "\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D", 4, "\u5CA4", 4], + ["8d40", "\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5", 5, "\u5CCC", 5, "\u5CD3", 5, "\u5CDA", 6, "\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1", 9, "\u5CFC", 4], + ["8d80", "\u5D01\u5D04\u5D05\u5D08", 5, "\u5D0F", 4, "\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F", 4, "\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F", 4, "\u5D35", 7, "\u5D3F", 7, "\u5D48\u5D49\u5D4D", 10, "\u5D59\u5D5A\u5D5C\u5D5E", 10, "\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75", 12, "\u5D83", 21, "\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"], + ["8e40", "\u5DA1", 21, "\u5DB8", 12, "\u5DC6", 6, "\u5DCE", 12, "\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"], + ["8e80", "\u5DF0\u5DF5\u5DF6\u5DF8", 4, "\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E", 7, "\u5E28", 4, "\u5E2F\u5E30\u5E32", 4, "\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46", 5, "\u5E4D", 6, "\u5E56", 4, "\u5E5C\u5E5D\u5E5F\u5E60\u5E63", 14, "\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8", 4, "\u5EAE", 4, "\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF", 6], + ["8f40", "\u5EC6\u5EC7\u5EC8\u5ECB", 5, "\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC", 11, "\u5EE9\u5EEB", 8, "\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"], + ["8f80", "\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32", 6, "\u5F3B\u5F3D\u5F3E\u5F3F\u5F41", 14, "\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2", 5, "\u5FA9\u5FAB\u5FAC\u5FAF", 5, "\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE", 4, "\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"], + ["9040", "\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030", 4, "\u6036", 4, "\u603D\u603E\u6040\u6044", 6, "\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"], + ["9080", "\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD", 7, "\u60C7\u60C8\u60C9\u60CC", 4, "\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1", 4, "\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB", 4, "\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110", 4, "\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C", 18, "\u6140", 6], + ["9140", "\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156", 6, "\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169", 6, "\u6171\u6172\u6173\u6174\u6176\u6178", 18, "\u618C\u618D\u618F", 4, "\u6195"], + ["9180", "\u6196", 6, "\u619E", 8, "\u61AA\u61AB\u61AD", 9, "\u61B8", 5, "\u61BF\u61C0\u61C1\u61C3", 4, "\u61C9\u61CC", 4, "\u61D3\u61D5", 16, "\u61E7", 13, "\u61F6", 8, "\u6200", 5, "\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238", 4, "\u6242\u6244\u6245\u6246\u624A"], + ["9240", "\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C", 6, "\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B", 5, "\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"], + ["9280", "\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333", 5, "\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356", 7, "\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399", 6, "\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"], + ["9340", "\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7", 6, "\u63DF\u63E2\u63E4", 4, "\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406", 4, "\u640D\u640E\u6411\u6412\u6415", 5, "\u641D\u641F\u6422\u6423\u6424"], + ["9380", "\u6425\u6427\u6428\u6429\u642B\u642E", 5, "\u6435", 4, "\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B", 6, "\u6453\u6455\u6456\u6457\u6459", 4, "\u645F", 7, "\u6468\u646A\u646B\u646C\u646E", 9, "\u647B", 6, "\u6483\u6486\u6488", 8, "\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F", 4, "\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6", 6, "\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"], + ["9440", "\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7", 24, "\u6501", 7, "\u650A", 7, "\u6513", 4, "\u6519", 8], + ["9480", "\u6522\u6523\u6524\u6526", 4, "\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540", 4, "\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578", 14, "\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1", 7, "\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8", 7, "\u65E1\u65E3\u65E4\u65EA\u65EB"], + ["9540", "\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB", 4, "\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637", 4, "\u663D\u663F\u6640\u6642\u6644", 6, "\u664D\u664E\u6650\u6651\u6658"], + ["9580", "\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669", 4, "\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698", 4, "\u669E", 8, "\u66A9", 4, "\u66AF", 4, "\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF", 25, "\u66DA\u66DE", 7, "\u66E7\u66E8\u66EA", 5, "\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"], + ["9640", "\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720", 5, "\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757", 4, "\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"], + ["9680", "\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9", 7, "\u67C2\u67C5", 9, "\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5", 7, "\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818", 4, "\u681E\u681F\u6820\u6822", 6, "\u682B", 6, "\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856", 5], + ["9740", "\u685C\u685D\u685E\u685F\u686A\u686C", 7, "\u6875\u6878", 8, "\u6882\u6884\u6887", 7, "\u6890\u6891\u6892\u6894\u6895\u6896\u6898", 9, "\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"], + ["9780", "\u68B9", 6, "\u68C1\u68C3", 5, "\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB", 4, "\u68E1\u68E2\u68E4", 9, "\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906", 4, "\u690C\u690F\u6911\u6913", 11, "\u6921\u6922\u6923\u6925", 7, "\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943", 16, "\u6955\u6956\u6958\u6959\u695B\u695C\u695F"], + ["9840", "\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972", 4, "\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E", 5, "\u6996\u6997\u6999\u699A\u699D", 9, "\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"], + ["9880", "\u69BE\u69BF\u69C0\u69C2", 7, "\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5", 5, "\u69DC\u69DD\u69DE\u69E1", 11, "\u69EE\u69EF\u69F0\u69F1\u69F3", 9, "\u69FE\u6A00", 9, "\u6A0B", 11, "\u6A19", 5, "\u6A20\u6A22", 5, "\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36", 6, "\u6A3F", 4, "\u6A45\u6A46\u6A48", 7, "\u6A51", 6, "\u6A5A"], + ["9940", "\u6A5C", 4, "\u6A62\u6A63\u6A64\u6A66", 10, "\u6A72", 6, "\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85", 8, "\u6A8F\u6A92", 4, "\u6A98", 7, "\u6AA1", 5], + ["9980", "\u6AA7\u6AA8\u6AAA\u6AAD", 114, "\u6B25\u6B26\u6B28", 6], + ["9a40", "\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D", 11, "\u6B5A", 7, "\u6B68\u6B69\u6B6B", 13, "\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"], + ["9a80", "\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C", 4, "\u6BA2", 7, "\u6BAB", 7, "\u6BB6\u6BB8", 6, "\u6BC0\u6BC3\u6BC4\u6BC6", 4, "\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC", 4, "\u6BE2", 7, "\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE", 6, "\u6C08", 4, "\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B", 4, "\u6C51\u6C52\u6C53\u6C56\u6C58"], + ["9b40", "\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B", 4, "\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"], + ["9b80", "\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F", 5, "\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D", 4, "\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96", 4, "\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9", 5, "\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"], + ["9c40", "\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD", 7, "\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"], + ["9c80", "\u6E36\u6E37\u6E39\u6E3B", 7, "\u6E45", 7, "\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60", 10, "\u6E6C\u6E6D\u6E6F", 14, "\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A", 4, "\u6E91", 6, "\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA", 5], + ["9d40", "\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA", 7, "\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A", 4, "\u6F10\u6F11\u6F12\u6F16", 9, "\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37", 6, "\u6F3F\u6F40\u6F41\u6F42"], + ["9d80", "\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E", 9, "\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67", 5, "\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D", 6, "\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F", 12, "\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2", 4, "\u6FA8", 10, "\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA", 5, "\u6FC1\u6FC3", 5, "\u6FCA", 6, "\u6FD3", 10, "\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"], + ["9e40", "\u6FE6", 7, "\u6FF0", 32, "\u7012", 7, "\u701C", 6, "\u7024", 6], + ["9e80", "\u702B", 9, "\u7036\u7037\u7038\u703A", 17, "\u704D\u704E\u7050", 13, "\u705F", 11, "\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E", 12, "\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB", 12, "\u70DA"], + ["9f40", "\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0", 6, "\u70F8\u70FA\u70FB\u70FC\u70FE", 10, "\u710B", 4, "\u7111\u7112\u7114\u7117\u711B", 10, "\u7127", 7, "\u7132\u7133\u7134"], + ["9f80", "\u7135\u7137", 13, "\u7146\u7147\u7148\u7149\u714B\u714D\u714F", 12, "\u715D\u715F", 4, "\u7165\u7169", 4, "\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E", 5, "\u7185", 4, "\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A", 4, "\u71A1", 6, "\u71A9\u71AA\u71AB\u71AD", 5, "\u71B4\u71B6\u71B7\u71B8\u71BA", 8, "\u71C4", 9, "\u71CF", 4], + ["a040", "\u71D6", 9, "\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8", 5, "\u71EF", 9, "\u71FA", 11, "\u7207", 19], + ["a080", "\u721B\u721C\u721E", 9, "\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240", 6, "\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285", 4, "\u728C\u728E\u7290\u7291\u7293", 11, "\u72A0", 11, "\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA", 6, "\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"], + ["a1a1", "\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008", 7, "\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"], + ["a2a1", "\u2170", 9], + ["a2b1", "\u2488", 19, "\u2474", 19, "\u2460", 9], + ["a2e5", "\u3220", 9], + ["a2f1", "\u2160", 11], + ["a3a1", "\uFF01\uFF02\uFF03\uFFE5\uFF05", 88, "\uFFE3"], + ["a4a1", "\u3041", 82], + ["a5a1", "\u30A1", 85], + ["a6a1", "\u0391", 16, "\u03A3", 6], + ["a6c1", "\u03B1", 16, "\u03C3", 6], + ["a6e0", "\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"], + ["a6ee", "\uFE3B\uFE3C\uFE37\uFE38\uFE31"], + ["a6f4", "\uFE33\uFE34"], + ["a7a1", "\u0410", 5, "\u0401\u0416", 25], + ["a7d1", "\u0430", 5, "\u0451\u0436", 25], + ["a840", "\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550", 35, "\u2581", 6], + ["a880", "\u2588", 7, "\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"], + ["a8a1", "\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"], + ["a8bd", "\u0144\u0148"], + ["a8c0", "\u0261"], + ["a8c5", "\u3105", 36], + ["a940", "\u3021", 8, "\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"], + ["a959", "\u2121\u3231"], + ["a95c", "\u2010"], + ["a960", "\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49", 9, "\uFE54\uFE55\uFE56\uFE57\uFE59", 8], + ["a980", "\uFE62", 4, "\uFE68\uFE69\uFE6A\uFE6B"], + ["a996", "\u3007"], + ["a9a4", "\u2500", 75], + ["aa40", "\u72DC\u72DD\u72DF\u72E2", 5, "\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304", 5, "\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340", 8], + ["aa80", "\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358", 7, "\u7361", 10, "\u736E\u7370\u7371"], + ["ab40", "\u7372", 11, "\u737F", 4, "\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3", 5, "\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3", 4], + ["ab80", "\u73CB\u73CC\u73CE\u73D2", 6, "\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3", 4], + ["ac40", "\u73F8", 10, "\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411", 8, "\u741C", 5, "\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437", 4, "\u743D\u743E\u743F\u7440\u7442", 11], + ["ac80", "\u744E", 6, "\u7456\u7458\u745D\u7460", 12, "\u746E\u746F\u7471", 4, "\u7478\u7479\u747A"], + ["ad40", "\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491", 10, "\u749D\u749F", 7, "\u74AA", 15, "\u74BB", 12], + ["ad80", "\u74C8", 9, "\u74D3", 8, "\u74DD\u74DF\u74E1\u74E5\u74E7", 6, "\u74F0\u74F1\u74F2"], + ["ae40", "\u74F3\u74F5\u74F8", 6, "\u7500\u7501\u7502\u7503\u7505", 7, "\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520", 4, "\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"], + ["ae80", "\u755D", 7, "\u7567\u7568\u7569\u756B", 6, "\u7573\u7575\u7576\u7577\u757A", 4, "\u7580\u7581\u7582\u7584\u7585\u7587"], + ["af40", "\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6", 4, "\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"], + ["af80", "\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"], + ["b040", "\u7645", 6, "\u764E", 5, "\u7655\u7657", 4, "\u765D\u765F\u7660\u7661\u7662\u7664", 6, "\u766C\u766D\u766E\u7670", 7, "\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"], + ["b080", "\u769C", 7, "\u76A5", 8, "\u76AF\u76B0\u76B3\u76B5", 9, "\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"], + ["b140", "\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0", 4, "\u76E6", 7, "\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E", 10, "\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"], + ["b180", "\u772C\u772E\u7730", 4, "\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748", 7, "\u7752", 7, "\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"], + ["b240", "\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D", 11, "\u777A\u777B\u777C\u7781\u7782\u7783\u7786", 5, "\u778F\u7790\u7793", 11, "\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6", 4], + ["b280", "\u77BC\u77BE\u77C0", 12, "\u77CE", 8, "\u77D8\u77D9\u77DA\u77DD", 4, "\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"], + ["b340", "\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803", 5, "\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"], + ["b380", "\u785B\u785C\u785E", 11, "\u786F", 7, "\u7878\u7879\u787A\u787B\u787D", 6, "\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"], + ["b440", "\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8", 7, "\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA", 9], + ["b480", "\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED", 4, "\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB", 5, "\u7902\u7903\u7904\u7906", 6, "\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"], + ["b540", "\u790D", 5, "\u7914", 9, "\u791F", 4, "\u7925", 14, "\u7935", 4, "\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A", 8, "\u7954\u7955\u7958\u7959\u7961\u7963"], + ["b580", "\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970", 6, "\u7979\u797B", 4, "\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"], + ["b640", "\u7993", 6, "\u799B", 11, "\u79A8", 10, "\u79B4", 4, "\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9", 5, "\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"], + ["b680", "\u79EC\u79EE\u79F1", 6, "\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F", 4, "\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"], + ["b740", "\u7A1D\u7A1F\u7A21\u7A22\u7A24", 14, "\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40", 5, "\u7A47", 9, "\u7A52", 4, "\u7A58", 16], + ["b780", "\u7A69", 6, "\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"], + ["b840", "\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE", 4, "\u7AB4", 10, "\u7AC0", 10, "\u7ACC", 9, "\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7", 5, "\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"], + ["b880", "\u7AF4", 4, "\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"], + ["b940", "\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F", 5, "\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63", 10, "\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86", 6, "\u7B8E\u7B8F"], + ["b980", "\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9", 7, "\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"], + ["ba40", "\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4", 4, "\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2", 4, "\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF", 7, "\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10", 5, "\u7C17\u7C18\u7C19"], + ["ba80", "\u7C1A", 4, "\u7C20", 5, "\u7C28\u7C29\u7C2B", 12, "\u7C39", 5, "\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"], + ["bb40", "\u7C43", 9, "\u7C4E", 36, "\u7C75", 5, "\u7C7E", 9], + ["bb80", "\u7C88\u7C8A", 6, "\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4", 4, "\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"], + ["bc40", "\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE", 6, "\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1", 6, "\u7CE9", 5, "\u7CF0", 7, "\u7CF9\u7CFA\u7CFC", 13, "\u7D0B", 5], + ["bc80", "\u7D11", 14, "\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30", 6, "\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"], + ["bd40", "\u7D37", 54, "\u7D6F", 7], + ["bd80", "\u7D78", 32, "\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"], + ["be40", "\u7D99", 12, "\u7DA7", 6, "\u7DAF", 42], + ["be80", "\u7DDA", 32, "\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"], + ["bf40", "\u7DFB", 62], + ["bf80", "\u7E3A\u7E3C", 4, "\u7E42", 4, "\u7E48", 21, "\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"], + ["c040", "\u7E5E", 35, "\u7E83", 23, "\u7E9C\u7E9D\u7E9E"], + ["c080", "\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B", 6, "\u7F43\u7F46", 9, "\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"], + ["c140", "\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63", 4, "\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82", 7, "\u7F8B\u7F8D\u7F8F", 4, "\u7F95", 4, "\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8", 6, "\u7FB1"], + ["c180", "\u7FB3", 4, "\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF", 4, "\u7FD6\u7FD7\u7FD9", 5, "\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"], + ["c240", "\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4", 6, "\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B", 5, "\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"], + ["c280", "\u8059\u805B", 13, "\u806B", 5, "\u8072", 11, "\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"], + ["c340", "\u807E\u8081\u8082\u8085\u8088\u808A\u808D", 5, "\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7", 4, "\u80CF", 6, "\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"], + ["c380", "\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F", 12, "\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139", 4, "\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"], + ["c440", "\u8140", 5, "\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B", 4, "\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183", 4, "\u8189\u818B\u818C\u818D\u818E\u8190\u8192", 5, "\u8199\u819A\u819E", 4, "\u81A4\u81A5"], + ["c480", "\u81A7\u81A9\u81AB", 7, "\u81B4", 5, "\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD", 6, "\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"], + ["c540", "\u81D4", 14, "\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE", 4, "\u81F5", 5, "\u81FD\u81FF\u8203\u8207", 4, "\u820E\u820F\u8211\u8213\u8215", 5, "\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"], + ["c580", "\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250", 7, "\u8259\u825B\u825C\u825D\u825E\u8260", 7, "\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"], + ["c640", "\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"], + ["c680", "\u82FA\u82FC", 4, "\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D", 9, "\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"], + ["c740", "\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A", 4, "\u8353\u8355", 4, "\u835D\u8362\u8370", 6, "\u8379\u837A\u837E", 6, "\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1", 6, "\u83AC\u83AD\u83AE"], + ["c780", "\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"], + ["c840", "\u83EE\u83EF\u83F3", 4, "\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412", 5, "\u8419\u841A\u841B\u841E", 5, "\u8429", 7, "\u8432", 5, "\u8439\u843A\u843B\u843E", 7, "\u8447\u8448\u8449"], + ["c880", "\u844A", 6, "\u8452", 4, "\u8458\u845D\u845E\u845F\u8460\u8462\u8464", 4, "\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"], + ["c940", "\u847D", 4, "\u8483\u8484\u8485\u8486\u848A\u848D\u848F", 7, "\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2", 12, "\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"], + ["c980", "\u84D8", 4, "\u84DE\u84E1\u84E2\u84E4\u84E7", 4, "\u84ED\u84EE\u84EF\u84F1", 10, "\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"], + ["ca40", "\u8503", 8, "\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522", 8, "\u852D", 9, "\u853E", 4, "\u8544\u8545\u8546\u8547\u854B", 10], + ["ca80", "\u8557\u8558\u855A\u855B\u855C\u855D\u855F", 4, "\u8565\u8566\u8567\u8569", 8, "\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"], + ["cb40", "\u8582\u8583\u8586\u8588", 6, "\u8590", 10, "\u859D", 6, "\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1", 5, "\u85B8\u85BA", 6, "\u85C2", 6, "\u85CA", 4, "\u85D1\u85D2"], + ["cb80", "\u85D4\u85D6", 5, "\u85DD", 6, "\u85E5\u85E6\u85E7\u85E8\u85EA", 14, "\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"], + ["cc40", "\u85F9\u85FA\u85FC\u85FD\u85FE\u8600", 4, "\u8606", 10, "\u8612\u8613\u8614\u8615\u8617", 15, "\u8628\u862A", 13, "\u8639\u863A\u863B\u863D\u863E\u863F\u8640"], + ["cc80", "\u8641", 11, "\u8652\u8653\u8655", 4, "\u865B\u865C\u865D\u865F\u8660\u8661\u8663", 7, "\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"], + ["cd40", "\u866D\u866F\u8670\u8672", 6, "\u8683", 6, "\u868E", 4, "\u8694\u8696", 5, "\u869E", 4, "\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB", 4, "\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"], + ["cd80", "\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"], + ["ce40", "\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740", 6, "\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A", 5, "\u8761\u8762\u8766", 7, "\u876F\u8771\u8772\u8773\u8775"], + ["ce80", "\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E", 4, "\u8794\u8795\u8796\u8798", 6, "\u87A0", 4, "\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"], + ["cf40", "\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1", 4, "\u87C7\u87C8\u87C9\u87CC", 4, "\u87D4", 6, "\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF", 9], + ["cf80", "\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804", 5, "\u880B", 7, "\u8814\u8817\u8818\u8819\u881A\u881C", 4, "\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"], + ["d040", "\u8824", 13, "\u8833", 5, "\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846", 5, "\u884E", 5, "\u8855\u8856\u8858\u885A", 6, "\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"], + ["d080", "\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897", 4, "\u889D", 4, "\u88A3\u88A5", 5, "\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"], + ["d140", "\u88AC\u88AE\u88AF\u88B0\u88B2", 4, "\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA", 4, "\u88E0\u88E1\u88E6\u88E7\u88E9", 6, "\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903", 5], + ["d180", "\u8909\u890B", 4, "\u8911\u8914", 4, "\u891C", 4, "\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"], + ["d240", "\u8938", 8, "\u8942\u8943\u8945", 24, "\u8960", 5, "\u8967", 19, "\u897C"], + ["d280", "\u897D\u897E\u8980\u8982\u8984\u8985\u8987", 26, "\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"], + ["d340", "\u89A2", 30, "\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4", 6], + ["d380", "\u89FB", 4, "\u8A01", 5, "\u8A08", 21, "\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"], + ["d440", "\u8A1E", 31, "\u8A3F", 8, "\u8A49", 21], + ["d480", "\u8A5F", 25, "\u8A7A", 6, "\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"], + ["d540", "\u8A81", 7, "\u8A8B", 7, "\u8A94", 46], + ["d580", "\u8AC3", 32, "\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"], + ["d640", "\u8AE4", 34, "\u8B08", 27], + ["d680", "\u8B24\u8B25\u8B27", 30, "\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"], + ["d740", "\u8B46", 31, "\u8B67", 4, "\u8B6D", 25], + ["d780", "\u8B87", 24, "\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"], + ["d840", "\u8C38", 8, "\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D", 7, "\u8C56\u8C57\u8C58\u8C59\u8C5B", 5, "\u8C63", 6, "\u8C6C", 6, "\u8C74\u8C75\u8C76\u8C77\u8C7B", 6, "\u8C83\u8C84\u8C86\u8C87"], + ["d880", "\u8C88\u8C8B\u8C8D", 6, "\u8C95\u8C96\u8C97\u8C99", 20, "\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"], + ["d940", "\u8CAE", 62], + ["d980", "\u8CED", 32, "\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"], + ["da40", "\u8D0E", 14, "\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78", 8, "\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C", 4, "\u8D92\u8D93\u8D95", 9, "\u8DA0\u8DA1"], + ["da80", "\u8DA2\u8DA4", 12, "\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"], + ["db40", "\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE", 6, "\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15", 7, "\u8E20\u8E21\u8E24", 4, "\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"], + ["db80", "\u8E3F\u8E43\u8E45\u8E46\u8E4C", 4, "\u8E53", 5, "\u8E5A", 11, "\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"], + ["dc40", "\u8E73\u8E75\u8E77", 4, "\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88", 6, "\u8E91\u8E92\u8E93\u8E95", 6, "\u8E9D\u8E9F", 11, "\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3", 6, "\u8EBB", 7], + ["dc80", "\u8EC3", 10, "\u8ECF", 21, "\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"], + ["dd40", "\u8EE5", 62], + ["dd80", "\u8F24", 32, "\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"], + ["de40", "\u8F45", 32, "\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"], + ["de80", "\u8FC9", 4, "\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"], + ["df40", "\u9019\u901C\u9023\u9024\u9025\u9027", 5, "\u9030", 4, "\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048", 4, "\u904E\u9054\u9055\u9056\u9059\u905A\u905C", 5, "\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F", 4, "\u9076", 6, "\u907E\u9081"], + ["df80", "\u9084\u9085\u9086\u9087\u9089\u908A\u908C", 4, "\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"], + ["e040", "\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105", 19, "\u911A\u911B\u911C"], + ["e080", "\u911D\u911F\u9120\u9121\u9124", 10, "\u9130\u9132", 6, "\u913A", 8, "\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"], + ["e140", "\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180", 4, "\u9186\u9188\u918A\u918E\u918F\u9193", 6, "\u919C", 5, "\u91A4", 5, "\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"], + ["e180", "\u91BC", 10, "\u91C8\u91CB\u91D0\u91D2", 9, "\u91DD", 8, "\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"], + ["e240", "\u91E6", 62], + ["e280", "\u9225", 32, "\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967", 5, "\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"], + ["e340", "\u9246", 45, "\u9275", 16], + ["e380", "\u9286", 7, "\u928F", 24, "\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"], + ["e440", "\u92A8", 5, "\u92AF", 24, "\u92C9", 31], + ["e480", "\u92E9", 32, "\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"], + ["e540", "\u930A", 51, "\u933F", 10], + ["e580", "\u934A", 31, "\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"], + ["e640", "\u936C", 34, "\u9390", 27], + ["e680", "\u93AC", 29, "\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"], + ["e740", "\u93CE", 7, "\u93D7", 54], + ["e780", "\u940E", 32, "\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21", 6, "\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F", 4, "\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"], + ["e840", "\u942F", 14, "\u943F", 43, "\u946C\u946D\u946E\u946F"], + ["e880", "\u9470", 20, "\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"], + ["e940", "\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577", 7, "\u9580", 42], + ["e980", "\u95AB", 32, "\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"], + ["ea40", "\u95CC", 27, "\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623", 6, "\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"], + ["ea80", "\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D", 4, "\u9673\u9678", 12, "\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"], + ["eb40", "\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D", 9, "\u96A8", 7, "\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6", 9, "\u96E1", 6, "\u96EB"], + ["eb80", "\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717", 4, "\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"], + ["ec40", "\u9721", 8, "\u972B\u972C\u972E\u972F\u9731\u9733", 4, "\u973A\u973B\u973C\u973D\u973F", 18, "\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A", 7], + ["ec80", "\u9772\u9775\u9777", 4, "\u977D", 7, "\u9786", 4, "\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799", 4, "\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"], + ["ed40", "\u979E\u979F\u97A1\u97A2\u97A4", 6, "\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5", 46], + ["ed80", "\u97E4\u97E5\u97E8\u97EE", 4, "\u97F4\u97F7", 23, "\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"], + ["ee40", "\u980F", 62], + ["ee80", "\u984E", 32, "\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6", 4, "\u94BC\u94BD\u94BF\u94C4\u94C8", 6, "\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"], + ["ef40", "\u986F", 5, "\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8", 37, "\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0", 4], + ["ef80", "\u98E5\u98E6\u98E9", 30, "\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512", 4, "\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564", 8, "\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"], + ["f040", "\u9908", 4, "\u990E\u990F\u9911", 28, "\u992F", 26], + ["f080", "\u994A", 9, "\u9956", 12, "\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28", 4, "\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66", 6, "\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"], + ["f140", "\u998C\u998E\u999A", 10, "\u99A6\u99A7\u99A9", 47], + ["f180", "\u99D9", 32, "\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"], + ["f240", "\u99FA", 62], + ["f280", "\u9A39", 32, "\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"], + ["f340", "\u9A5A", 17, "\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9", 6, "\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6", 4, "\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"], + ["f380", "\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0", 8, "\u9AFA\u9AFC", 6, "\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"], + ["f440", "\u9B07\u9B09", 5, "\u9B10\u9B11\u9B12\u9B14", 10, "\u9B20\u9B21\u9B22\u9B24", 10, "\u9B30\u9B31\u9B33", 7, "\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55", 5], + ["f480", "\u9B5B", 32, "\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"], + ["f540", "\u9B7C", 62], + ["f580", "\u9BBB", 32, "\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"], + ["f640", "\u9BDC", 62], + ["f680", "\u9C1B", 32, "\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85", 5, "\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E", 5, "\u9CA5", 4, "\u9CAB\u9CAD\u9CAE\u9CB0", 7, "\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"], + ["f740", "\u9C3C", 62], + ["f780", "\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE", 4, "\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC", 4, "\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"], + ["f840", "\u9CE3", 62], + ["f880", "\u9D22", 32], + ["f940", "\u9D43", 62], + ["f980", "\u9D82", 32], + ["fa40", "\u9DA3", 62], + ["fa80", "\u9DE2", 32], + ["fb40", "\u9E03", 27, "\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74", 9, "\u9E80"], + ["fb80", "\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C", 5, "\u9E94", 8, "\u9E9E\u9EA0", 5, "\u9EA7\u9EA8\u9EA9\u9EAA"], + ["fc40", "\u9EAB", 8, "\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF", 4, "\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0", 8, "\u9EFA\u9EFD\u9EFF", 6], + ["fc80", "\u9F06", 4, "\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A", 5, "\u9F21\u9F23", 8, "\u9F2D\u9F2E\u9F30\u9F31"], + ["fd40", "\u9F32", 4, "\u9F38\u9F3A\u9F3C\u9F3F", 4, "\u9F45", 10, "\u9F52", 38], + ["fd80", "\u9F79", 5, "\u9F81\u9F82\u9F8D", 11, "\u9F9C\u9F9D\u9F9E\u9FA1", 4, "\uF92C\uF979\uF995\uF9E7\uF9F1"], + ["fe40", "\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"] + ]; + } +}); + +// node_modules/iconv-lite/encodings/tables/gbk-added.json +var require_gbk_added = __commonJS({ + "node_modules/iconv-lite/encodings/tables/gbk-added.json"(exports2, module2) { + module2.exports = [ + ["a140", "\uE4C6", 62], + ["a180", "\uE505", 32], + ["a240", "\uE526", 62], + ["a280", "\uE565", 32], + ["a2ab", "\uE766", 5], + ["a2e3", "\u20AC\uE76D"], + ["a2ef", "\uE76E\uE76F"], + ["a2fd", "\uE770\uE771"], + ["a340", "\uE586", 62], + ["a380", "\uE5C5", 31, "\u3000"], + ["a440", "\uE5E6", 62], + ["a480", "\uE625", 32], + ["a4f4", "\uE772", 10], + ["a540", "\uE646", 62], + ["a580", "\uE685", 32], + ["a5f7", "\uE77D", 7], + ["a640", "\uE6A6", 62], + ["a680", "\uE6E5", 32], + ["a6b9", "\uE785", 7], + ["a6d9", "\uE78D", 6], + ["a6ec", "\uE794\uE795"], + ["a6f3", "\uE796"], + ["a6f6", "\uE797", 8], + ["a740", "\uE706", 62], + ["a780", "\uE745", 32], + ["a7c2", "\uE7A0", 14], + ["a7f2", "\uE7AF", 12], + ["a896", "\uE7BC", 10], + ["a8bc", "\uE7C7"], + ["a8bf", "\u01F9"], + ["a8c1", "\uE7C9\uE7CA\uE7CB\uE7CC"], + ["a8ea", "\uE7CD", 20], + ["a958", "\uE7E2"], + ["a95b", "\uE7E3"], + ["a95d", "\uE7E4\uE7E5\uE7E6"], + ["a989", "\u303E\u2FF0", 11], + ["a997", "\uE7F4", 12], + ["a9f0", "\uE801", 14], + ["aaa1", "\uE000", 93], + ["aba1", "\uE05E", 93], + ["aca1", "\uE0BC", 93], + ["ada1", "\uE11A", 93], + ["aea1", "\uE178", 93], + ["afa1", "\uE1D6", 93], + ["d7fa", "\uE810", 4], + ["f8a1", "\uE234", 93], + ["f9a1", "\uE292", 93], + ["faa1", "\uE2F0", 93], + ["fba1", "\uE34E", 93], + ["fca1", "\uE3AC", 93], + ["fda1", "\uE40A", 93], + ["fe50", "\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"], + ["fe80", "\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13", 6, "\u4DAE\uE864\uE468", 93] + ]; + } +}); + +// node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +var require_gb18030_ranges = __commonJS({ + "node_modules/iconv-lite/encodings/tables/gb18030-ranges.json"(exports2, module2) { + module2.exports = { uChars: [128, 165, 169, 178, 184, 216, 226, 235, 238, 244, 248, 251, 253, 258, 276, 284, 300, 325, 329, 334, 364, 463, 465, 467, 469, 471, 473, 475, 477, 506, 594, 610, 712, 716, 730, 930, 938, 962, 970, 1026, 1104, 1106, 8209, 8215, 8218, 8222, 8231, 8241, 8244, 8246, 8252, 8365, 8452, 8454, 8458, 8471, 8482, 8556, 8570, 8596, 8602, 8713, 8720, 8722, 8726, 8731, 8737, 8740, 8742, 8748, 8751, 8760, 8766, 8777, 8781, 8787, 8802, 8808, 8816, 8854, 8858, 8870, 8896, 8979, 9322, 9372, 9548, 9588, 9616, 9622, 9634, 9652, 9662, 9672, 9676, 9680, 9702, 9735, 9738, 9793, 9795, 11906, 11909, 11913, 11917, 11928, 11944, 11947, 11951, 11956, 11960, 11964, 11979, 12284, 12292, 12312, 12319, 12330, 12351, 12436, 12447, 12535, 12543, 12586, 12842, 12850, 12964, 13200, 13215, 13218, 13253, 13263, 13267, 13270, 13384, 13428, 13727, 13839, 13851, 14617, 14703, 14801, 14816, 14964, 15183, 15471, 15585, 16471, 16736, 17208, 17325, 17330, 17374, 17623, 17997, 18018, 18212, 18218, 18301, 18318, 18760, 18811, 18814, 18820, 18823, 18844, 18848, 18872, 19576, 19620, 19738, 19887, 40870, 59244, 59336, 59367, 59413, 59417, 59423, 59431, 59437, 59443, 59452, 59460, 59478, 59493, 63789, 63866, 63894, 63976, 63986, 64016, 64018, 64021, 64025, 64034, 64037, 64042, 65074, 65093, 65107, 65112, 65127, 65132, 65375, 65510, 65536], gbChars: [0, 36, 38, 45, 50, 81, 89, 95, 96, 100, 103, 104, 105, 109, 126, 133, 148, 172, 175, 179, 208, 306, 307, 308, 309, 310, 311, 312, 313, 341, 428, 443, 544, 545, 558, 741, 742, 749, 750, 805, 819, 820, 7922, 7924, 7925, 7927, 7934, 7943, 7944, 7945, 7950, 8062, 8148, 8149, 8152, 8164, 8174, 8236, 8240, 8262, 8264, 8374, 8380, 8381, 8384, 8388, 8390, 8392, 8393, 8394, 8396, 8401, 8406, 8416, 8419, 8424, 8437, 8439, 8445, 8482, 8485, 8496, 8521, 8603, 8936, 8946, 9046, 9050, 9063, 9066, 9076, 9092, 9100, 9108, 9111, 9113, 9131, 9162, 9164, 9218, 9219, 11329, 11331, 11334, 11336, 11346, 11361, 11363, 11366, 11370, 11372, 11375, 11389, 11682, 11686, 11687, 11692, 11694, 11714, 11716, 11723, 11725, 11730, 11736, 11982, 11989, 12102, 12336, 12348, 12350, 12384, 12393, 12395, 12397, 12510, 12553, 12851, 12962, 12973, 13738, 13823, 13919, 13933, 14080, 14298, 14585, 14698, 15583, 15847, 16318, 16434, 16438, 16481, 16729, 17102, 17122, 17315, 17320, 17402, 17418, 17859, 17909, 17911, 17915, 17916, 17936, 17939, 17961, 18664, 18703, 18814, 18962, 19043, 33469, 33470, 33471, 33484, 33485, 33490, 33497, 33501, 33505, 33513, 33520, 33536, 33550, 37845, 37921, 37948, 38029, 38038, 38064, 38065, 38066, 38069, 38075, 38076, 38078, 39108, 39109, 39113, 39114, 39115, 39116, 39265, 39394, 189e3] }; + } +}); + +// node_modules/iconv-lite/encodings/tables/cp949.json +var require_cp949 = __commonJS({ + "node_modules/iconv-lite/encodings/tables/cp949.json"(exports2, module2) { + module2.exports = [ + ["0", "\0", 127], + ["8141", "\uAC02\uAC03\uAC05\uAC06\uAC0B", 4, "\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25", 6, "\uAC2E\uAC32\uAC33\uAC34"], + ["8161", "\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41", 9, "\uAC4C\uAC4E", 5, "\uAC55"], + ["8181", "\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D", 18, "\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B", 4, "\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95", 6, "\uAC9E\uACA2", 5, "\uACAB\uACAD\uACAE\uACB1", 6, "\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD", 7, "\uACD6\uACD8", 7, "\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7", 4, "\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07", 4, "\uAD0E\uAD10\uAD12\uAD13"], + ["8241", "\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21", 7, "\uAD2A\uAD2B\uAD2E", 5], + ["8261", "\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D", 6, "\uAD46\uAD48\uAD4A", 5, "\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"], + ["8281", "\uAD59", 7, "\uAD62\uAD64", 7, "\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83", 4, "\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91", 10, "\uAD9E", 5, "\uADA5", 17, "\uADB8", 7, "\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9", 6, "\uADD2\uADD4", 7, "\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5", 18], + ["8341", "\uADFA\uADFB\uADFD\uADFE\uAE02", 5, "\uAE0A\uAE0C\uAE0E", 5, "\uAE15", 7], + ["8361", "\uAE1D", 18, "\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"], + ["8381", "\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57", 4, "\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71", 6, "\uAE7A\uAE7E", 5, "\uAE86", 5, "\uAE8D", 46, "\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5", 6, "\uAECE\uAED2", 5, "\uAEDA\uAEDB\uAEDD", 8], + ["8441", "\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE", 5, "\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD", 8], + ["8461", "\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11", 18], + ["8481", "\uAF24", 7, "\uAF2E\uAF2F\uAF31\uAF33\uAF35", 6, "\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A", 5, "\uAF51", 10, "\uAF5E", 5, "\uAF66", 18, "\uAF7A", 5, "\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89", 6, "\uAF92\uAF93\uAF94\uAF96", 5, "\uAF9D", 26, "\uAFBA\uAFBB\uAFBD\uAFBE"], + ["8541", "\uAFBF\uAFC1", 5, "\uAFCA\uAFCC\uAFCF", 4, "\uAFD5", 6, "\uAFDD", 4], + ["8561", "\uAFE2", 5, "\uAFEA", 5, "\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9", 6, "\uB002\uB003"], + ["8581", "\uB005", 6, "\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015", 6, "\uB01E", 9, "\uB029", 26, "\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E", 29, "\uB07E\uB07F\uB081\uB082\uB083\uB085", 6, "\uB08E\uB090\uB092", 5, "\uB09B\uB09D\uB09E\uB0A3\uB0A4"], + ["8641", "\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD", 6, "\uB0C6\uB0CA", 5, "\uB0D2"], + ["8661", "\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9", 6, "\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6", 10], + ["8681", "\uB0F1", 22, "\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E", 4, "\uB126\uB127\uB129\uB12A\uB12B\uB12D", 6, "\uB136\uB13A", 5, "\uB142\uB143\uB145\uB146\uB147\uB149", 6, "\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161", 22, "\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183", 4, "\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"], + ["8741", "\uB19E", 9, "\uB1A9", 15], + ["8761", "\uB1B9", 18, "\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"], + ["8781", "\uB1D6", 5, "\uB1DE\uB1E0", 7, "\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1", 7, "\uB1FA\uB1FC\uB1FE", 5, "\uB206\uB207\uB209\uB20A\uB20D", 6, "\uB216\uB218\uB21A", 5, "\uB221", 18, "\uB235", 6, "\uB23D", 26, "\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261", 6, "\uB26A", 4], + ["8841", "\uB26F", 4, "\uB276", 5, "\uB27D", 6, "\uB286\uB287\uB288\uB28A", 4], + ["8861", "\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B", 4, "\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"], + ["8881", "\uB2B8", 15, "\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3", 4, "\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309", 6, "\uB312\uB316", 5, "\uB31D", 54, "\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"], + ["8941", "\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379", 6, "\uB382\uB386", 5, "\uB38D"], + ["8961", "\uB38E\uB38F\uB391\uB392\uB393\uB395", 10, "\uB3A2", 5, "\uB3A9\uB3AA\uB3AB\uB3AD"], + ["8981", "\uB3AE", 21, "\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9", 18, "\uB3FD", 18, "\uB411", 6, "\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421", 6, "\uB42A\uB42C", 7, "\uB435", 15], + ["8a41", "\uB445", 10, "\uB452\uB453\uB455\uB456\uB457\uB459", 6, "\uB462\uB464\uB466"], + ["8a61", "\uB467", 4, "\uB46D", 18, "\uB481\uB482"], + ["8a81", "\uB483", 4, "\uB489", 19, "\uB49E", 5, "\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD", 7, "\uB4B6\uB4B8\uB4BA", 5, "\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9", 6, "\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6", 5, "\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7", 4, "\uB4EE\uB4F0\uB4F2", 5, "\uB4F9", 26, "\uB516\uB517\uB519\uB51A\uB51D"], + ["8b41", "\uB51E", 5, "\uB526\uB52B", 4, "\uB532\uB533\uB535\uB536\uB537\uB539", 6, "\uB542\uB546"], + ["8b61", "\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555", 6, "\uB55E\uB562", 8], + ["8b81", "\uB56B", 52, "\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6", 4, "\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5", 6, "\uB5CE\uB5D2", 5, "\uB5D9", 18, "\uB5ED", 18], + ["8c41", "\uB600", 15, "\uB612\uB613\uB615\uB616\uB617\uB619", 4], + ["8c61", "\uB61E", 6, "\uB626", 5, "\uB62D", 6, "\uB635", 5], + ["8c81", "\uB63B", 12, "\uB649", 26, "\uB665\uB666\uB667\uB669", 50, "\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5", 5, "\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2", 16], + ["8d41", "\uB6C3", 16, "\uB6D5", 8], + ["8d61", "\uB6DE", 17, "\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"], + ["8d81", "\uB6FB", 4, "\uB702\uB703\uB704\uB706", 33, "\uB72A\uB72B\uB72D\uB72E\uB731", 6, "\uB73A\uB73C", 7, "\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D", 6, "\uB756", 9, "\uB761\uB762\uB763\uB765\uB766\uB767\uB769", 6, "\uB772\uB774\uB776", 5, "\uB77E\uB77F\uB781\uB782\uB783\uB785", 6, "\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"], + ["8e41", "\uB79F\uB7A1", 6, "\uB7AA\uB7AE", 5, "\uB7B6\uB7B7\uB7B9", 8], + ["8e61", "\uB7C2", 4, "\uB7C8\uB7CA", 19], + ["8e81", "\uB7DE", 13, "\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5", 6, "\uB7FE\uB802", 4, "\uB80A\uB80B\uB80D\uB80E\uB80F\uB811", 6, "\uB81A\uB81C\uB81E", 5, "\uB826\uB827\uB829\uB82A\uB82B\uB82D", 6, "\uB836\uB83A", 5, "\uB841\uB842\uB843\uB845", 11, "\uB852\uB854", 7, "\uB85E\uB85F\uB861\uB862\uB863\uB865", 6, "\uB86E\uB870\uB872", 5, "\uB879\uB87A\uB87B\uB87D", 7], + ["8f41", "\uB885", 7, "\uB88E", 17], + ["8f61", "\uB8A0", 7, "\uB8A9", 6, "\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9", 4], + ["8f81", "\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6", 5, "\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5", 7, "\uB8DE\uB8E0\uB8E2", 5, "\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1", 6, "\uB8FA\uB8FC\uB8FE", 5, "\uB905", 18, "\uB919", 6, "\uB921", 26, "\uB93E\uB93F\uB941\uB942\uB943\uB945", 6, "\uB94D\uB94E\uB950\uB952", 5], + ["9041", "\uB95A\uB95B\uB95D\uB95E\uB95F\uB961", 6, "\uB96A\uB96C\uB96E", 5, "\uB976\uB977\uB979\uB97A\uB97B\uB97D"], + ["9061", "\uB97E", 5, "\uB986\uB988\uB98B\uB98C\uB98F", 15], + ["9081", "\uB99F", 12, "\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5", 6, "\uB9BE\uB9C0\uB9C2", 5, "\uB9CA\uB9CB\uB9CD\uB9D3", 4, "\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED", 6, "\uB9F6\uB9FB", 4, "\uBA02", 5, "\uBA09", 11, "\uBA16", 33, "\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"], + ["9141", "\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D", 6, "\uBA66\uBA6A", 5], + ["9161", "\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79", 9, "\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D", 5], + ["9181", "\uBA93", 20, "\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3", 4, "\uBABA\uBABC\uBABE", 5, "\uBAC5\uBAC6\uBAC7\uBAC9", 14, "\uBADA", 33, "\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05", 7, "\uBB0E\uBB10\uBB12", 5, "\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21", 6], + ["9241", "\uBB28\uBB2A\uBB2C", 7, "\uBB37\uBB39\uBB3A\uBB3F", 4, "\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"], + ["9261", "\uBB53\uBB55\uBB56\uBB57\uBB59", 7, "\uBB62\uBB64", 7, "\uBB6D", 4], + ["9281", "\uBB72", 21, "\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91", 18, "\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD", 6, "\uBBB5\uBBB6\uBBB8", 7, "\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9", 6, "\uBBD1\uBBD2\uBBD4", 35, "\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"], + ["9341", "\uBC03", 4, "\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"], + ["9361", "\uBC36\uBC37\uBC39", 6, "\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51", 8], + ["9381", "\uBC5A\uBC5B\uBC5C\uBC5E", 37, "\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F", 4, "\uBC96\uBC98\uBC9B", 4, "\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9", 6, "\uBCB2\uBCB6", 5, "\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5", 7, "\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD", 22, "\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"], + ["9441", "\uBCFE", 5, "\uBD06\uBD08\uBD0A", 5, "\uBD11\uBD12\uBD13\uBD15", 8], + ["9461", "\uBD1E", 5, "\uBD25", 6, "\uBD2D", 12], + ["9481", "\uBD3A", 5, "\uBD41", 6, "\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51", 6, "\uBD5A", 9, "\uBD65\uBD66\uBD67\uBD69", 22, "\uBD82\uBD83\uBD85\uBD86\uBD8B", 4, "\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D", 6, "\uBDA5", 10, "\uBDB1", 6, "\uBDB9", 24], + ["9541", "\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD", 11, "\uBDEA", 5, "\uBDF1"], + ["9561", "\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9", 6, "\uBE01\uBE02\uBE04\uBE06", 5, "\uBE0E\uBE0F\uBE11\uBE12\uBE13"], + ["9581", "\uBE15", 6, "\uBE1E\uBE20", 35, "\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F", 4, "\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B", 4, "\uBE72\uBE76", 4, "\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85", 6, "\uBE8E\uBE92", 5, "\uBE9A", 13, "\uBEA9", 14], + ["9641", "\uBEB8", 23, "\uBED2\uBED3"], + ["9661", "\uBED5\uBED6\uBED9", 6, "\uBEE1\uBEE2\uBEE6", 5, "\uBEED", 8], + ["9681", "\uBEF6", 10, "\uBF02", 5, "\uBF0A", 13, "\uBF1A\uBF1E", 33, "\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49", 6, "\uBF52\uBF53\uBF54\uBF56", 44], + ["9741", "\uBF83", 16, "\uBF95", 8], + ["9761", "\uBF9E", 17, "\uBFB1", 7], + ["9781", "\uBFB9", 11, "\uBFC6", 5, "\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5", 6, "\uBFDD\uBFDE\uBFE0\uBFE2", 89, "\uC03D\uC03E\uC03F"], + ["9841", "\uC040", 16, "\uC052", 5, "\uC059\uC05A\uC05B"], + ["9861", "\uC05D\uC05E\uC05F\uC061", 6, "\uC06A", 15], + ["9881", "\uC07A", 21, "\uC092\uC093\uC095\uC096\uC097\uC099", 6, "\uC0A2\uC0A4\uC0A6", 5, "\uC0AE\uC0B1\uC0B2\uC0B7", 4, "\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1", 6, "\uC0DA\uC0DE", 5, "\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED", 6, "\uC0F6\uC0F8\uC0FA", 5, "\uC101\uC102\uC103\uC105\uC106\uC107\uC109", 6, "\uC111\uC112\uC113\uC114\uC116", 5, "\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"], + ["9941", "\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141", 6, "\uC14A\uC14E", 5, "\uC156\uC157"], + ["9961", "\uC159\uC15A\uC15B\uC15D", 6, "\uC166\uC16A", 5, "\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"], + ["9981", "\uC17C", 8, "\uC186", 5, "\uC18F\uC191\uC192\uC193\uC195\uC197", 4, "\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1", 11, "\uC1BE", 5, "\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD", 6, "\uC1D5\uC1D6\uC1D9", 6, "\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9", 6, "\uC1F2\uC1F4", 7, "\uC1FE\uC1FF\uC201\uC202\uC203\uC205", 6, "\uC20E\uC210\uC212", 5, "\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"], + ["9a41", "\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235", 16], + ["9a61", "\uC246\uC247\uC249", 6, "\uC252\uC253\uC255\uC256\uC257\uC259", 6, "\uC261\uC262\uC263\uC264\uC266"], + ["9a81", "\uC267", 4, "\uC26E\uC26F\uC271\uC272\uC273\uC275", 6, "\uC27E\uC280\uC282", 5, "\uC28A", 5, "\uC291", 6, "\uC299\uC29A\uC29C\uC29E", 5, "\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE", 5, "\uC2B6\uC2B8\uC2BA", 33, "\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5", 5, "\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301", 6, "\uC30A\uC30B\uC30E\uC30F"], + ["9b41", "\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D", 6, "\uC326\uC327\uC32A", 8], + ["9b61", "\uC333", 17, "\uC346", 7], + ["9b81", "\uC34E", 25, "\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373", 4, "\uC37A\uC37B\uC37E", 5, "\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D", 50, "\uC3C1", 22, "\uC3DA"], + ["9c41", "\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3", 4, "\uC3EA\uC3EB\uC3EC\uC3EE", 5, "\uC3F6\uC3F7\uC3F9", 5], + ["9c61", "\uC3FF", 8, "\uC409", 6, "\uC411", 9], + ["9c81", "\uC41B", 8, "\uC425", 6, "\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435", 6, "\uC43E", 9, "\uC449", 26, "\uC466\uC467\uC469\uC46A\uC46B\uC46D", 6, "\uC476\uC477\uC478\uC47A", 5, "\uC481", 18, "\uC495", 6, "\uC49D", 12], + ["9d41", "\uC4AA", 13, "\uC4B9\uC4BA\uC4BB\uC4BD", 8], + ["9d61", "\uC4C6", 25], + ["9d81", "\uC4E0", 8, "\uC4EA", 5, "\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502", 9, "\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515", 6, "\uC51D", 10, "\uC52A\uC52B\uC52D\uC52E\uC52F\uC531", 6, "\uC53A\uC53C\uC53E", 5, "\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569", 6, "\uC572\uC576", 5, "\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"], + ["9e41", "\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1", 7, "\uC5AA", 9, "\uC5B6"], + ["9e61", "\uC5B7\uC5BA\uC5BF", 4, "\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9", 6, "\uC5E2\uC5E4\uC5E6\uC5E7"], + ["9e81", "\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611", 6, "\uC61A\uC61D", 6, "\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649", 6, "\uC652\uC656", 5, "\uC65E\uC65F\uC661", 10, "\uC66D\uC66E\uC670\uC672", 5, "\uC67A\uC67B\uC67D\uC67E\uC67F\uC681", 6, "\uC68A\uC68C\uC68E", 5, "\uC696\uC697\uC699\uC69A\uC69B\uC69D", 6, "\uC6A6"], + ["9f41", "\uC6A8\uC6AA", 5, "\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB", 4, "\uC6C2\uC6C4\uC6C6", 5, "\uC6CE"], + ["9f61", "\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5", 6, "\uC6DE\uC6DF\uC6E2", 5, "\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"], + ["9f81", "\uC6F3", 4, "\uC6FA\uC6FB\uC6FC\uC6FE", 5, "\uC706\uC707\uC709\uC70A\uC70B\uC70D", 6, "\uC716\uC718\uC71A", 5, "\uC722\uC723\uC725\uC726\uC727\uC729", 6, "\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745", 4, "\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761", 6, "\uC769\uC76A\uC76C", 7, "\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B", 4, "\uC7A2\uC7A7", 4, "\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"], + ["a041", "\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2", 5, "\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1", 6, "\uC7D9\uC7DA\uC7DB\uC7DC"], + ["a061", "\uC7DE", 5, "\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED", 13], + ["a081", "\uC7FB", 4, "\uC802\uC803\uC805\uC806\uC807\uC809\uC80B", 4, "\uC812\uC814\uC817", 4, "\uC81E\uC81F\uC821\uC822\uC823\uC825", 6, "\uC82E\uC830\uC832", 5, "\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841", 6, "\uC84A\uC84B\uC84E", 5, "\uC855", 26, "\uC872\uC873\uC875\uC876\uC877\uC879\uC87B", 4, "\uC882\uC884\uC888\uC889\uC88A\uC88E", 5, "\uC895", 7, "\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"], + ["a141", "\uC8A5\uC8A6\uC8A7\uC8A9", 18, "\uC8BE\uC8BF\uC8C0\uC8C1"], + ["a161", "\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD", 6, "\uC8D6\uC8D8\uC8DA", 5, "\uC8E2\uC8E3\uC8E5"], + ["a181", "\uC8E6", 14, "\uC8F6", 5, "\uC8FE\uC8FF\uC901\uC902\uC903\uC907", 4, "\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008", 9, "\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"], + ["a241", "\uC910\uC912", 5, "\uC919", 18], + ["a261", "\uC92D", 6, "\uC935", 18], + ["a281", "\uC948", 7, "\uC952\uC953\uC955\uC956\uC957\uC959", 6, "\uC962\uC964", 7, "\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"], + ["a341", "\uC971\uC972\uC973\uC975", 6, "\uC97D", 10, "\uC98A\uC98B\uC98D\uC98E\uC98F"], + ["a361", "\uC991", 6, "\uC99A\uC99C\uC99E", 16], + ["a381", "\uC9AF", 16, "\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB", 4, "\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01", 58, "\uFFE6\uFF3D", 32, "\uFFE3"], + ["a441", "\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2", 5, "\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"], + ["a461", "\uCA05\uCA06\uCA07\uCA0A\uCA0E", 5, "\uCA15\uCA16\uCA17\uCA19", 12], + ["a481", "\uCA26\uCA27\uCA28\uCA2A", 28, "\u3131", 93], + ["a541", "\uCA47", 4, "\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55", 6, "\uCA5E\uCA62", 5, "\uCA69\uCA6A"], + ["a561", "\uCA6B", 17, "\uCA7E", 5, "\uCA85\uCA86"], + ["a581", "\uCA87", 16, "\uCA99", 14, "\u2170", 9], + ["a5b0", "\u2160", 9], + ["a5c1", "\u0391", 16, "\u03A3", 6], + ["a5e1", "\u03B1", 16, "\u03C3", 6], + ["a641", "\uCAA8", 19, "\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"], + ["a661", "\uCAC6", 5, "\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA", 5, "\uCAE1", 6], + ["a681", "\uCAE8\uCAE9\uCAEA\uCAEB\uCAED", 6, "\uCAF5", 18, "\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543", 7], + ["a741", "\uCB0B", 4, "\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19", 6, "\uCB22", 7], + ["a761", "\uCB2A", 22, "\uCB42\uCB43\uCB44"], + ["a781", "\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51", 6, "\uCB5A\uCB5B\uCB5C\uCB5E", 5, "\uCB65", 7, "\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399", 9, "\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0", 9, "\u3380", 4, "\u33BA", 5, "\u3390", 4, "\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"], + ["a841", "\uCB6D", 10, "\uCB7A", 14], + ["a861", "\uCB89", 18, "\uCB9D", 6], + ["a881", "\uCBA4", 19, "\uCBB9", 11, "\xC6\xD0\xAA\u0126"], + ["a8a6", "\u0132"], + ["a8a8", "\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"], + ["a8b1", "\u3260", 27, "\u24D0", 25, "\u2460", 14, "\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"], + ["a941", "\uCBC5", 14, "\uCBD5", 10], + ["a961", "\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA", 18], + ["a981", "\uCBFD", 14, "\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15", 6, "\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200", 27, "\u249C", 25, "\u2474", 14, "\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"], + ["aa41", "\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31", 6, "\uCC3A\uCC3F", 4, "\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"], + ["aa61", "\uCC4F", 4, "\uCC56\uCC5A", 5, "\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69", 6, "\uCC71\uCC72"], + ["aa81", "\uCC73\uCC74\uCC76", 29, "\u3041", 82], + ["ab41", "\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1", 6, "\uCCAA\uCCAE", 5, "\uCCB6\uCCB7\uCCB9"], + ["ab61", "\uCCBA\uCCBB\uCCBD", 6, "\uCCC6\uCCC8\uCCCA", 5, "\uCCD1\uCCD2\uCCD3\uCCD5", 5], + ["ab81", "\uCCDB", 8, "\uCCE5", 6, "\uCCED\uCCEE\uCCEF\uCCF1", 12, "\u30A1", 85], + ["ac41", "\uCCFE\uCCFF\uCD00\uCD02", 5, "\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11", 6, "\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"], + ["ac61", "\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D", 11, "\uCD3A", 4], + ["ac81", "\uCD3F", 28, "\uCD5D\uCD5E\uCD5F\u0410", 5, "\u0401\u0416", 25], + ["acd1", "\u0430", 5, "\u0451\u0436", 25], + ["ad41", "\uCD61\uCD62\uCD63\uCD65", 6, "\uCD6E\uCD70\uCD72", 5, "\uCD79", 7], + ["ad61", "\uCD81", 6, "\uCD89", 10, "\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"], + ["ad81", "\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA", 5, "\uCDB1", 18, "\uCDC5"], + ["ae41", "\uCDC6", 5, "\uCDCD\uCDCE\uCDCF\uCDD1", 16], + ["ae61", "\uCDE2", 5, "\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1", 6, "\uCDFA\uCDFC\uCDFE", 4], + ["ae81", "\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D", 6, "\uCE15\uCE16\uCE17\uCE18\uCE1A", 5, "\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"], + ["af41", "\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36", 19], + ["af61", "\uCE4A", 13, "\uCE5A\uCE5B\uCE5D\uCE5E\uCE62", 5, "\uCE6A\uCE6C"], + ["af81", "\uCE6E", 5, "\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D", 6, "\uCE86\uCE88\uCE8A", 5, "\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"], + ["b041", "\uCE9A", 5, "\uCEA2\uCEA6", 5, "\uCEAE", 12], + ["b061", "\uCEBB", 5, "\uCEC2", 19], + ["b081", "\uCED6", 13, "\uCEE6\uCEE7\uCEE9\uCEEA\uCEED", 6, "\uCEF6\uCEFA", 5, "\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10", 7, "\uAC19", 4, "\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"], + ["b141", "\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09", 6, "\uCF12\uCF14\uCF16", 5, "\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"], + ["b161", "\uCF25", 6, "\uCF2E\uCF32", 5, "\uCF39", 11], + ["b181", "\uCF45", 14, "\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D", 6, "\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"], + ["b241", "\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79", 6, "\uCF81\uCF82\uCF83\uCF84\uCF86", 5, "\uCF8D"], + ["b261", "\uCF8E", 18, "\uCFA2", 5, "\uCFA9"], + ["b281", "\uCFAA", 5, "\uCFB1", 18, "\uCFC5", 6, "\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"], + ["b341", "\uCFCC", 19, "\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"], + ["b361", "\uCFEA", 5, "\uCFF2\uCFF4\uCFF6", 5, "\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005", 5], + ["b381", "\uD00B", 5, "\uD012", 5, "\uD019", 19, "\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB", 4, "\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"], + ["b441", "\uD02E", 5, "\uD036\uD037\uD039\uD03A\uD03B\uD03D", 6, "\uD046\uD048\uD04A", 5], + ["b461", "\uD051\uD052\uD053\uD055\uD056\uD057\uD059", 6, "\uD061", 10, "\uD06E\uD06F"], + ["b481", "\uD071\uD072\uD073\uD075", 6, "\uD07E\uD07F\uD080\uD082", 18, "\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB", 4, "\uB2F3\uB2F4\uB2F5\uB2F7", 4, "\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"], + ["b541", "\uD095", 14, "\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD", 5], + ["b561", "\uD0B3\uD0B6\uD0B8\uD0BA", 5, "\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA", 5, "\uD0D2\uD0D6", 4], + ["b581", "\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5", 6, "\uD0EE\uD0F2", 5, "\uD0F9", 11, "\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"], + ["b641", "\uD105", 7, "\uD10E", 17], + ["b661", "\uD120", 15, "\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"], + ["b681", "\uD13F\uD142\uD146", 5, "\uD14E\uD14F\uD151\uD152\uD153\uD155", 6, "\uD15E\uD160\uD162", 5, "\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"], + ["b741", "\uD16E", 13, "\uD17D", 6, "\uD185\uD186\uD187\uD189\uD18A"], + ["b761", "\uD18B", 20, "\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"], + ["b781", "\uD1A9", 6, "\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1", 14, "\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"], + ["b841", "\uD1D0", 7, "\uD1D9", 17], + ["b861", "\uD1EB", 8, "\uD1F5\uD1F6\uD1F7\uD1F9", 13], + ["b881", "\uD208\uD20A", 5, "\uD211", 24, "\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE", 4, "\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"], + ["b941", "\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235", 6, "\uD23E\uD240\uD242", 5, "\uD249\uD24A\uD24B\uD24C"], + ["b961", "\uD24D", 14, "\uD25D", 6, "\uD265\uD266\uD267\uD268"], + ["b981", "\uD269", 22, "\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14", 4, "\uBC1B", 4, "\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"], + ["ba41", "\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296", 5, "\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5", 6, "\uD2AD"], + ["ba61", "\uD2AE\uD2AF\uD2B0\uD2B2", 5, "\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3", 4, "\uD2CA\uD2CC", 5], + ["ba81", "\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD", 6, "\uD2E6", 9, "\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"], + ["bb41", "\uD2FB", 4, "\uD302\uD304\uD306", 5, "\uD30F\uD311\uD312\uD313\uD315\uD317", 4, "\uD31E\uD322\uD323"], + ["bb61", "\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331", 6, "\uD33A\uD33E", 5, "\uD346\uD347\uD348\uD349"], + ["bb81", "\uD34A", 31, "\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"], + ["bc41", "\uD36A", 17, "\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"], + ["bc61", "\uD388\uD389\uD38A\uD38B\uD38E\uD392", 5, "\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1", 6, "\uD3AA\uD3AC\uD3AE"], + ["bc81", "\uD3AF", 4, "\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD", 6, "\uD3C6\uD3C7\uD3CA", 5, "\uD3D1", 5, "\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C", 4, "\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"], + ["bd41", "\uD3D7\uD3D9", 7, "\uD3E2\uD3E4", 7, "\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"], + ["bd61", "\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402", 5, "\uD409", 13], + ["bd81", "\uD417", 5, "\uD41E", 25, "\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"], + ["be41", "\uD438", 7, "\uD441\uD442\uD443\uD445", 14], + ["be61", "\uD454", 7, "\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465", 7, "\uD46E\uD470\uD471\uD472"], + ["be81", "\uD473", 4, "\uD47A\uD47B\uD47D\uD47E\uD481\uD483", 4, "\uD48A\uD48C\uD48E", 5, "\uD495", 8, "\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4", 6, "\uC5CC\uC5CE"], + ["bf41", "\uD49E", 10, "\uD4AA", 14], + ["bf61", "\uD4B9", 18, "\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"], + ["bf81", "\uD4D6", 5, "\uD4DD\uD4DE\uD4E0", 7, "\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1", 6, "\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC", 5, "\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"], + ["c041", "\uD4FE", 5, "\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D", 6, "\uD516\uD518", 5], + ["c061", "\uD51E", 25], + ["c081", "\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545", 6, "\uD54E\uD550\uD552", 5, "\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751", 7, "\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"], + ["c141", "\uD564\uD566\uD567\uD56A\uD56C\uD56E", 5, "\uD576\uD577\uD579\uD57A\uD57B\uD57D", 6, "\uD586\uD58A\uD58B"], + ["c161", "\uD58C\uD58D\uD58E\uD58F\uD591", 19, "\uD5A6\uD5A7"], + ["c181", "\uD5A8", 31, "\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"], + ["c241", "\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3", 4, "\uD5DA\uD5DC\uD5DE", 5, "\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"], + ["c261", "\uD5EF", 4, "\uD5F6\uD5F8\uD5FA", 5, "\uD602\uD603\uD605\uD606\uD607\uD609", 6, "\uD612"], + ["c281", "\uD616", 5, "\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625", 7, "\uD62E", 9, "\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"], + ["c341", "\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D", 4], + ["c361", "\uD662", 4, "\uD668\uD66A", 5, "\uD672\uD673\uD675", 11], + ["c381", "\uD681\uD682\uD684\uD686", 5, "\uD68E\uD68F\uD691\uD692\uD693\uD695", 7, "\uD69E\uD6A0\uD6A2", 5, "\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"], + ["c441", "\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1", 7, "\uD6BA\uD6BC", 7, "\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"], + ["c461", "\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA", 5, "\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9", 4], + ["c481", "\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6", 5, "\uD6FE\uD6FF\uD701\uD702\uD703\uD705", 11, "\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"], + ["c541", "\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721", 6, "\uD72A\uD72C\uD72E", 5, "\uD736\uD737\uD739"], + ["c561", "\uD73A\uD73B\uD73D", 6, "\uD745\uD746\uD748\uD74A", 5, "\uD752\uD753\uD755\uD75A", 4], + ["c581", "\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775", 6, "\uD77E\uD77F\uD780\uD782", 5, "\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"], + ["c641", "\uD78D\uD78E\uD78F\uD791", 6, "\uD79A\uD79C\uD79E", 5], + ["c6a1", "\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"], + ["c7a1", "\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"], + ["c8a1", "\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"], + ["caa1", "\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"], + ["cba1", "\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"], + ["cca1", "\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"], + ["cda1", "\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"], + ["cea1", "\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"], + ["cfa1", "\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"], + ["d0a1", "\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"], + ["d1a1", "\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E", 5, "\u90A3\uF914", 4, "\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"], + ["d2a1", "\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928", 4, "\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933", 5, "\u99D1\uF939", 10, "\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A", 7, "\u5AE9\u8A25\u677B\u7D10\uF952", 5, "\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"], + ["d3a1", "\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"], + ["d4a1", "\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"], + ["d5a1", "\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"], + ["d6a1", "\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"], + ["d7a1", "\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"], + ["d8a1", "\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"], + ["d9a1", "\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"], + ["daa1", "\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"], + ["dba1", "\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"], + ["dca1", "\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"], + ["dda1", "\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"], + ["dea1", "\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"], + ["dfa1", "\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"], + ["e0a1", "\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"], + ["e1a1", "\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"], + ["e2a1", "\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"], + ["e3a1", "\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"], + ["e4a1", "\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"], + ["e5a1", "\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"], + ["e6a1", "\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"], + ["e7a1", "\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"], + ["e8a1", "\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"], + ["e9a1", "\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"], + ["eaa1", "\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"], + ["eba1", "\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"], + ["eca1", "\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"], + ["eda1", "\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"], + ["eea1", "\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"], + ["efa1", "\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"], + ["f0a1", "\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"], + ["f1a1", "\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"], + ["f2a1", "\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"], + ["f3a1", "\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"], + ["f4a1", "\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"], + ["f5a1", "\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"], + ["f6a1", "\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"], + ["f7a1", "\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"], + ["f8a1", "\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"], + ["f9a1", "\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"], + ["faa1", "\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"], + ["fba1", "\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"], + ["fca1", "\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"], + ["fda1", "\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"] + ]; + } +}); + +// node_modules/iconv-lite/encodings/tables/cp950.json +var require_cp950 = __commonJS({ + "node_modules/iconv-lite/encodings/tables/cp950.json"(exports2, module2) { + module2.exports = [ + ["0", "\0", 127], + ["a140", "\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"], + ["a1a1", "\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62", 4, "\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"], + ["a240", "\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581", 7, "\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"], + ["a2a1", "\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10", 9, "\u2160", 9, "\u3021", 8, "\u5341\u5344\u5345\uFF21", 25, "\uFF41", 21], + ["a340", "\uFF57\uFF58\uFF59\uFF5A\u0391", 16, "\u03A3", 6, "\u03B1", 16, "\u03C3", 6, "\u3105", 10], + ["a3a1", "\u3110", 25, "\u02D9\u02C9\u02CA\u02C7\u02CB"], + ["a3e1", "\u20AC"], + ["a440", "\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"], + ["a4a1", "\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"], + ["a540", "\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"], + ["a5a1", "\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"], + ["a640", "\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"], + ["a6a1", "\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"], + ["a740", "\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"], + ["a7a1", "\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"], + ["a840", "\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"], + ["a8a1", "\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"], + ["a940", "\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"], + ["a9a1", "\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"], + ["aa40", "\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"], + ["aaa1", "\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"], + ["ab40", "\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"], + ["aba1", "\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"], + ["ac40", "\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"], + ["aca1", "\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"], + ["ad40", "\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"], + ["ada1", "\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"], + ["ae40", "\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"], + ["aea1", "\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"], + ["af40", "\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"], + ["afa1", "\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"], + ["b040", "\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"], + ["b0a1", "\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"], + ["b140", "\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"], + ["b1a1", "\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"], + ["b240", "\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"], + ["b2a1", "\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"], + ["b340", "\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"], + ["b3a1", "\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"], + ["b440", "\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"], + ["b4a1", "\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"], + ["b540", "\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"], + ["b5a1", "\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"], + ["b640", "\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"], + ["b6a1", "\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"], + ["b740", "\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"], + ["b7a1", "\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"], + ["b840", "\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"], + ["b8a1", "\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"], + ["b940", "\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"], + ["b9a1", "\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"], + ["ba40", "\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"], + ["baa1", "\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"], + ["bb40", "\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"], + ["bba1", "\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"], + ["bc40", "\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"], + ["bca1", "\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"], + ["bd40", "\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"], + ["bda1", "\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"], + ["be40", "\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"], + ["bea1", "\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"], + ["bf40", "\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"], + ["bfa1", "\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"], + ["c040", "\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"], + ["c0a1", "\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"], + ["c140", "\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"], + ["c1a1", "\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"], + ["c240", "\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"], + ["c2a1", "\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"], + ["c340", "\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"], + ["c3a1", "\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"], + ["c440", "\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"], + ["c4a1", "\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"], + ["c540", "\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"], + ["c5a1", "\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"], + ["c640", "\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"], + ["c940", "\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"], + ["c9a1", "\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"], + ["ca40", "\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"], + ["caa1", "\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"], + ["cb40", "\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"], + ["cba1", "\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"], + ["cc40", "\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"], + ["cca1", "\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"], + ["cd40", "\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"], + ["cda1", "\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"], + ["ce40", "\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"], + ["cea1", "\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"], + ["cf40", "\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"], + ["cfa1", "\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"], + ["d040", "\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"], + ["d0a1", "\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"], + ["d140", "\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"], + ["d1a1", "\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"], + ["d240", "\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"], + ["d2a1", "\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"], + ["d340", "\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"], + ["d3a1", "\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"], + ["d440", "\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"], + ["d4a1", "\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"], + ["d540", "\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"], + ["d5a1", "\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"], + ["d640", "\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"], + ["d6a1", "\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"], + ["d740", "\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"], + ["d7a1", "\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"], + ["d840", "\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"], + ["d8a1", "\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"], + ["d940", "\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"], + ["d9a1", "\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"], + ["da40", "\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"], + ["daa1", "\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"], + ["db40", "\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"], + ["dba1", "\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"], + ["dc40", "\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"], + ["dca1", "\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"], + ["dd40", "\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"], + ["dda1", "\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"], + ["de40", "\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"], + ["dea1", "\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"], + ["df40", "\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"], + ["dfa1", "\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"], + ["e040", "\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"], + ["e0a1", "\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"], + ["e140", "\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"], + ["e1a1", "\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"], + ["e240", "\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"], + ["e2a1", "\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"], + ["e340", "\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"], + ["e3a1", "\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"], + ["e440", "\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"], + ["e4a1", "\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"], + ["e540", "\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"], + ["e5a1", "\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"], + ["e640", "\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"], + ["e6a1", "\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"], + ["e740", "\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"], + ["e7a1", "\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"], + ["e840", "\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"], + ["e8a1", "\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"], + ["e940", "\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"], + ["e9a1", "\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"], + ["ea40", "\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"], + ["eaa1", "\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"], + ["eb40", "\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"], + ["eba1", "\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"], + ["ec40", "\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"], + ["eca1", "\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"], + ["ed40", "\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"], + ["eda1", "\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"], + ["ee40", "\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"], + ["eea1", "\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"], + ["ef40", "\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"], + ["efa1", "\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"], + ["f040", "\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"], + ["f0a1", "\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"], + ["f140", "\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"], + ["f1a1", "\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"], + ["f240", "\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"], + ["f2a1", "\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"], + ["f340", "\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"], + ["f3a1", "\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"], + ["f440", "\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"], + ["f4a1", "\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"], + ["f540", "\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"], + ["f5a1", "\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"], + ["f640", "\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"], + ["f6a1", "\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"], + ["f740", "\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"], + ["f7a1", "\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"], + ["f840", "\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"], + ["f8a1", "\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"], + ["f940", "\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"], + ["f9a1", "\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"] + ]; + } +}); + +// node_modules/iconv-lite/encodings/tables/big5-added.json +var require_big5_added = __commonJS({ + "node_modules/iconv-lite/encodings/tables/big5-added.json"(exports2, module2) { + module2.exports = [ + ["8740", "\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"], + ["8767", "\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"], + ["87a1", "\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"], + ["8840", "\u31C0", 4, "\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"], + ["88a1", "\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"], + ["8940", "\u{2A3A9}\u{21145}"], + ["8943", "\u650A"], + ["8946", "\u4E3D\u6EDD\u9D4E\u91DF"], + ["894c", "\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"], + ["89a1", "\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"], + ["89ab", "\u918C\u78B8\u915E\u80BC"], + ["89b0", "\u8D0B\u80F6\u{209E7}"], + ["89b5", "\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"], + ["89c1", "\u6E9A\u823E\u7519"], + ["89c5", "\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"], + ["8a40", "\u{27D84}\u5525"], + ["8a43", "\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"], + ["8a64", "\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"], + ["8a76", "\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"], + ["8aa1", "\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"], + ["8aac", "\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"], + ["8ab2", "\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"], + ["8abb", "\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"], + ["8ac9", "\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"], + ["8ace", "\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"], + ["8adf", "\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"], + ["8af6", "\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"], + ["8b40", "\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"], + ["8b55", "\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"], + ["8ba1", "\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"], + ["8bde", "\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"], + ["8c40", "\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"], + ["8ca1", "\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"], + ["8ca7", "\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"], + ["8cc9", "\u9868\u676B\u4276\u573D"], + ["8cce", "\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"], + ["8ce6", "\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"], + ["8d40", "\u{20B9F}"], + ["8d42", "\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"], + ["8da1", "\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"], + ["8e40", "\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"], + ["8ea1", "\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"], + ["8f40", "\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"], + ["8fa1", "\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"], + ["9040", "\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"], + ["90a1", "\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"], + ["9140", "\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"], + ["91a1", "\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"], + ["9240", "\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"], + ["92a1", "\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"], + ["9340", "\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"], + ["93a1", "\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"], + ["9440", "\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"], + ["94a1", "\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"], + ["9540", "\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"], + ["95a1", "\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"], + ["9640", "\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"], + ["96a1", "\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"], + ["9740", "\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"], + ["97a1", "\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"], + ["9840", "\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"], + ["98a1", "\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"], + ["9940", "\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"], + ["99a1", "\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"], + ["9a40", "\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"], + ["9aa1", "\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"], + ["9b40", "\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"], + ["9b62", "\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"], + ["9ba1", "\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"], + ["9c40", "\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"], + ["9ca1", "\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"], + ["9d40", "\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"], + ["9da1", "\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"], + ["9e40", "\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"], + ["9ea1", "\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"], + ["9ead", "\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"], + ["9ec5", "\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"], + ["9ef5", "\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"], + ["9f40", "\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"], + ["9f4f", "\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"], + ["9fa1", "\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"], + ["9fae", "\u9159\u9681\u915C"], + ["9fb2", "\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"], + ["9fc1", "\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"], + ["9fc9", "\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"], + ["9fdb", "\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"], + ["9fe7", "\u6BFA\u8818\u7F78"], + ["9feb", "\u5620\u{2A64A}\u8E77\u9F53"], + ["9ff0", "\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"], + ["a040", "\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"], + ["a055", "\u{2183B}\u{26E05}"], + ["a058", "\u8A7E\u{2251B}"], + ["a05b", "\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"], + ["a063", "\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"], + ["a073", "\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"], + ["a0a1", "\u5D57\u{28BC2}\u8FDA\u{28E39}"], + ["a0a6", "\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"], + ["a0ae", "\u77FE"], + ["a0b0", "\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"], + ["a0d4", "\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"], + ["a0e2", "\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"], + ["a3c0", "\u2400", 31, "\u2421"], + ["c6a1", "\u2460", 9, "\u2474", 9, "\u2170", 9, "\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041", 23], + ["c740", "\u3059", 58, "\u30A1\u30A2\u30A3\u30A4"], + ["c7a1", "\u30A5", 81, "\u0410", 5, "\u0401\u0416", 4], + ["c840", "\u041B", 26, "\u0451\u0436", 25, "\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"], + ["c8a1", "\u9FB0\u5188\u9FB1\u{27607}"], + ["c8cd", "\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"], + ["c8f5", "\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"], + ["f9fe", "\uFFED"], + ["fa40", "\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"], + ["faa1", "\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"], + ["fb40", "\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"], + ["fba1", "\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"], + ["fc40", "\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"], + ["fca1", "\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"], + ["fd40", "\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"], + ["fda1", "\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"], + ["fe40", "\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"], + ["fea1", "\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"] + ]; + } +}); + +// node_modules/iconv-lite/encodings/dbcs-data.js +var require_dbcs_data = __commonJS({ + "node_modules/iconv-lite/encodings/dbcs-data.js"(exports2, module2) { + "use strict"; + module2.exports = { + "shiftjis": { + type: "_dbcs", + table: function() { + return require_shiftjis(); + }, + encodeAdd: { "\xA5": 92, "\u203E": 126 }, + encodeSkipVals: [{ from: 60736, to: 63808 }] + }, + "csshiftjis": "shiftjis", + "mskanji": "shiftjis", + "sjis": "shiftjis", + "windows31j": "shiftjis", + "ms31j": "shiftjis", + "xsjis": "shiftjis", + "windows932": "shiftjis", + "ms932": "shiftjis", + "932": "shiftjis", + "cp932": "shiftjis", + "eucjp": { + type: "_dbcs", + table: function() { + return require_eucjp(); + }, + encodeAdd: { "\xA5": 92, "\u203E": 126 } + }, + "gb2312": "cp936", + "gb231280": "cp936", + "gb23121980": "cp936", + "csgb2312": "cp936", + "csiso58gb231280": "cp936", + "euccn": "cp936", + "windows936": "cp936", + "ms936": "cp936", + "936": "cp936", + "cp936": { + type: "_dbcs", + table: function() { + return require_cp936(); + } + }, + "gbk": { + type: "_dbcs", + table: function() { + return require_cp936().concat(require_gbk_added()); + } + }, + "xgbk": "gbk", + "isoir58": "gbk", + "gb18030": { + type: "_dbcs", + table: function() { + return require_cp936().concat(require_gbk_added()); + }, + gb18030: function() { + return require_gb18030_ranges(); + }, + encodeSkipVals: [128], + encodeAdd: { "\u20AC": 41699 } + }, + "chinese": "gb18030", + "windows949": "cp949", + "ms949": "cp949", + "949": "cp949", + "cp949": { + type: "_dbcs", + table: function() { + return require_cp949(); + } + }, + "cseuckr": "cp949", + "csksc56011987": "cp949", + "euckr": "cp949", + "isoir149": "cp949", + "korean": "cp949", + "ksc56011987": "cp949", + "ksc56011989": "cp949", + "ksc5601": "cp949", + "windows950": "cp950", + "ms950": "cp950", + "950": "cp950", + "cp950": { + type: "_dbcs", + table: function() { + return require_cp950(); + } + }, + "big5": "big5hkscs", + "big5hkscs": { + type: "_dbcs", + table: function() { + return require_cp950().concat(require_big5_added()); + }, + encodeSkipVals: [41676] + }, + "cnbig5": "big5hkscs", + "csbig5": "big5hkscs", + "xxbig5": "big5hkscs" + }; + } +}); + +// node_modules/iconv-lite/encodings/index.js +var require_encodings = __commonJS({ + "node_modules/iconv-lite/encodings/index.js"(exports2, module2) { + "use strict"; + var modules = [ + require_internal(), + require_utf16(), + require_utf7(), + require_sbcs_codec(), + require_sbcs_data(), + require_sbcs_data_generated(), + require_dbcs_codec(), + require_dbcs_data() + ]; + for (i = 0; i < modules.length; i++) { + module2 = modules[i]; + for (enc in module2) + if (Object.prototype.hasOwnProperty.call(module2, enc)) + exports2[enc] = module2[enc]; + } + var module2; + var enc; + var i; + } +}); + +// node_modules/iconv-lite/lib/streams.js +var require_streams = __commonJS({ + "node_modules/iconv-lite/lib/streams.js"(exports2, module2) { + "use strict"; + var Buffer2 = require("buffer").Buffer; + var Transform = require("stream").Transform; + module2.exports = function(iconv) { + iconv.encodeStream = function encodeStream(encoding, options) { + return new IconvLiteEncoderStream(iconv.getEncoder(encoding, options), options); + }; + iconv.decodeStream = function decodeStream(encoding, options) { + return new IconvLiteDecoderStream(iconv.getDecoder(encoding, options), options); + }; + iconv.supportsStreams = true; + iconv.IconvLiteEncoderStream = IconvLiteEncoderStream; + iconv.IconvLiteDecoderStream = IconvLiteDecoderStream; + iconv._collect = IconvLiteDecoderStream.prototype.collect; + }; + function IconvLiteEncoderStream(conv, options) { + this.conv = conv; + options = options || {}; + options.decodeStrings = false; + Transform.call(this, options); + } + IconvLiteEncoderStream.prototype = Object.create(Transform.prototype, { + constructor: { value: IconvLiteEncoderStream } + }); + IconvLiteEncoderStream.prototype._transform = function(chunk, encoding, done) { + if (typeof chunk != "string") + return done(new Error("Iconv encoding stream needs strings as its input.")); + try { + var res = this.conv.write(chunk); + if (res && res.length) + this.push(res); + done(); + } catch (e) { + done(e); + } + }; + IconvLiteEncoderStream.prototype._flush = function(done) { + try { + var res = this.conv.end(); + if (res && res.length) + this.push(res); + done(); + } catch (e) { + done(e); + } + }; + IconvLiteEncoderStream.prototype.collect = function(cb) { + var chunks = []; + this.on("error", cb); + this.on("data", function(chunk) { + chunks.push(chunk); + }); + this.on("end", function() { + cb(null, Buffer2.concat(chunks)); + }); + return this; + }; + function IconvLiteDecoderStream(conv, options) { + this.conv = conv; + options = options || {}; + options.encoding = this.encoding = "utf8"; + Transform.call(this, options); + } + IconvLiteDecoderStream.prototype = Object.create(Transform.prototype, { + constructor: { value: IconvLiteDecoderStream } + }); + IconvLiteDecoderStream.prototype._transform = function(chunk, encoding, done) { + if (!Buffer2.isBuffer(chunk)) + return done(new Error("Iconv decoding stream needs buffers as its input.")); + try { + var res = this.conv.write(chunk); + if (res && res.length) + this.push(res, this.encoding); + done(); + } catch (e) { + done(e); + } + }; + IconvLiteDecoderStream.prototype._flush = function(done) { + try { + var res = this.conv.end(); + if (res && res.length) + this.push(res, this.encoding); + done(); + } catch (e) { + done(e); + } + }; + IconvLiteDecoderStream.prototype.collect = function(cb) { + var res = ""; + this.on("error", cb); + this.on("data", function(chunk) { + res += chunk; + }); + this.on("end", function() { + cb(null, res); + }); + return this; + }; + } +}); + +// node_modules/iconv-lite/lib/extend-node.js +var require_extend_node = __commonJS({ + "node_modules/iconv-lite/lib/extend-node.js"(exports2, module2) { + "use strict"; + var Buffer2 = require("buffer").Buffer; + module2.exports = function(iconv) { + var original = void 0; + iconv.supportsNodeEncodingsExtension = !(Buffer2.from || new Buffer2(0) instanceof Uint8Array); + iconv.extendNodeEncodings = function extendNodeEncodings() { + if (original) + return; + original = {}; + if (!iconv.supportsNodeEncodingsExtension) { + console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node"); + console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility"); + return; + } + var nodeNativeEncodings = { + "hex": true, + "utf8": true, + "utf-8": true, + "ascii": true, + "binary": true, + "base64": true, + "ucs2": true, + "ucs-2": true, + "utf16le": true, + "utf-16le": true + }; + Buffer2.isNativeEncoding = function(enc) { + return enc && nodeNativeEncodings[enc.toLowerCase()]; + }; + var SlowBuffer = require("buffer").SlowBuffer; + original.SlowBufferToString = SlowBuffer.prototype.toString; + SlowBuffer.prototype.toString = function(encoding, start, end) { + encoding = String(encoding || "utf8").toLowerCase(); + if (Buffer2.isNativeEncoding(encoding)) + return original.SlowBufferToString.call(this, encoding, start, end); + if (typeof start == "undefined") + start = 0; + if (typeof end == "undefined") + end = this.length; + return iconv.decode(this.slice(start, end), encoding); + }; + original.SlowBufferWrite = SlowBuffer.prototype.write; + SlowBuffer.prototype.write = function(string, offset, length, encoding) { + if (isFinite(offset)) { + if (!isFinite(length)) { + encoding = length; + length = void 0; + } + } else { + var swap = encoding; + encoding = offset; + offset = length; + length = swap; + } + offset = +offset || 0; + var remaining = this.length - offset; + if (!length) { + length = remaining; + } else { + length = +length; + if (length > remaining) { + length = remaining; + } + } + encoding = String(encoding || "utf8").toLowerCase(); + if (Buffer2.isNativeEncoding(encoding)) + return original.SlowBufferWrite.call(this, string, offset, length, encoding); + if (string.length > 0 && (length < 0 || offset < 0)) + throw new RangeError("attempt to write beyond buffer bounds"); + var buf = iconv.encode(string, encoding); + if (buf.length < length) + length = buf.length; + buf.copy(this, offset, 0, length); + return length; + }; + original.BufferIsEncoding = Buffer2.isEncoding; + Buffer2.isEncoding = function(encoding) { + return Buffer2.isNativeEncoding(encoding) || iconv.encodingExists(encoding); + }; + original.BufferByteLength = Buffer2.byteLength; + Buffer2.byteLength = SlowBuffer.byteLength = function(str, encoding) { + encoding = String(encoding || "utf8").toLowerCase(); + if (Buffer2.isNativeEncoding(encoding)) + return original.BufferByteLength.call(this, str, encoding); + return iconv.encode(str, encoding).length; + }; + original.BufferToString = Buffer2.prototype.toString; + Buffer2.prototype.toString = function(encoding, start, end) { + encoding = String(encoding || "utf8").toLowerCase(); + if (Buffer2.isNativeEncoding(encoding)) + return original.BufferToString.call(this, encoding, start, end); + if (typeof start == "undefined") + start = 0; + if (typeof end == "undefined") + end = this.length; + return iconv.decode(this.slice(start, end), encoding); + }; + original.BufferWrite = Buffer2.prototype.write; + Buffer2.prototype.write = function(string, offset, length, encoding) { + var _offset = offset, _length = length, _encoding = encoding; + if (isFinite(offset)) { + if (!isFinite(length)) { + encoding = length; + length = void 0; + } + } else { + var swap = encoding; + encoding = offset; + offset = length; + length = swap; + } + encoding = String(encoding || "utf8").toLowerCase(); + if (Buffer2.isNativeEncoding(encoding)) + return original.BufferWrite.call(this, string, _offset, _length, _encoding); + offset = +offset || 0; + var remaining = this.length - offset; + if (!length) { + length = remaining; + } else { + length = +length; + if (length > remaining) { + length = remaining; + } + } + if (string.length > 0 && (length < 0 || offset < 0)) + throw new RangeError("attempt to write beyond buffer bounds"); + var buf = iconv.encode(string, encoding); + if (buf.length < length) + length = buf.length; + buf.copy(this, offset, 0, length); + return length; + }; + if (iconv.supportsStreams) { + var Readable = require("stream").Readable; + original.ReadableSetEncoding = Readable.prototype.setEncoding; + Readable.prototype.setEncoding = function setEncoding(enc, options) { + this._readableState.decoder = iconv.getDecoder(enc, options); + this._readableState.encoding = enc; + }; + Readable.prototype.collect = iconv._collect; + } + }; + iconv.undoExtendNodeEncodings = function undoExtendNodeEncodings() { + if (!iconv.supportsNodeEncodingsExtension) + return; + if (!original) + throw new Error("require('iconv-lite').undoExtendNodeEncodings(): Nothing to undo; extendNodeEncodings() is not called."); + delete Buffer2.isNativeEncoding; + var SlowBuffer = require("buffer").SlowBuffer; + SlowBuffer.prototype.toString = original.SlowBufferToString; + SlowBuffer.prototype.write = original.SlowBufferWrite; + Buffer2.isEncoding = original.BufferIsEncoding; + Buffer2.byteLength = original.BufferByteLength; + Buffer2.prototype.toString = original.BufferToString; + Buffer2.prototype.write = original.BufferWrite; + if (iconv.supportsStreams) { + var Readable = require("stream").Readable; + Readable.prototype.setEncoding = original.ReadableSetEncoding; + delete Readable.prototype.collect; + } + original = void 0; + }; + }; + } +}); + +// node_modules/iconv-lite/lib/index.js +var require_lib3 = __commonJS({ + "node_modules/iconv-lite/lib/index.js"(exports2, module2) { + "use strict"; + var Buffer2 = require_safer().Buffer; + var bomHandling = require_bom_handling(); + var iconv = module2.exports; + iconv.encodings = null; + iconv.defaultCharUnicode = "\uFFFD"; + iconv.defaultCharSingleByte = "?"; + iconv.encode = function encode(str, encoding, options) { + str = "" + (str || ""); + var encoder = iconv.getEncoder(encoding, options); + var res = encoder.write(str); + var trail = encoder.end(); + return trail && trail.length > 0 ? Buffer2.concat([res, trail]) : res; + }; + iconv.decode = function decode(buf, encoding, options) { + if (typeof buf === "string") { + if (!iconv.skipDecodeWarning) { + console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"); + iconv.skipDecodeWarning = true; + } + buf = Buffer2.from("" + (buf || ""), "binary"); + } + var decoder = iconv.getDecoder(encoding, options); + var res = decoder.write(buf); + var trail = decoder.end(); + return trail ? res + trail : res; + }; + iconv.encodingExists = function encodingExists(enc) { + try { + iconv.getCodec(enc); + return true; + } catch (e) { + return false; + } + }; + iconv.toEncoding = iconv.encode; + iconv.fromEncoding = iconv.decode; + iconv._codecDataCache = {}; + iconv.getCodec = function getCodec(encoding) { + if (!iconv.encodings) + iconv.encodings = require_encodings(); + var enc = iconv._canonicalizeEncoding(encoding); + var codecOptions = {}; + while (true) { + var codec = iconv._codecDataCache[enc]; + if (codec) + return codec; + var codecDef = iconv.encodings[enc]; + switch (typeof codecDef) { + case "string": + enc = codecDef; + break; + case "object": + for (var key in codecDef) + codecOptions[key] = codecDef[key]; + if (!codecOptions.encodingName) + codecOptions.encodingName = enc; + enc = codecDef.type; + break; + case "function": + if (!codecOptions.encodingName) + codecOptions.encodingName = enc; + codec = new codecDef(codecOptions, iconv); + iconv._codecDataCache[codecOptions.encodingName] = codec; + return codec; + default: + throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '" + enc + "')"); + } + } + }; + iconv._canonicalizeEncoding = function(encoding) { + return ("" + encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, ""); + }; + iconv.getEncoder = function getEncoder(encoding, options) { + var codec = iconv.getCodec(encoding), encoder = new codec.encoder(options, codec); + if (codec.bomAware && options && options.addBOM) + encoder = new bomHandling.PrependBOM(encoder, options); + return encoder; + }; + iconv.getDecoder = function getDecoder(encoding, options) { + var codec = iconv.getCodec(encoding), decoder = new codec.decoder(options, codec); + if (codec.bomAware && !(options && options.stripBOM === false)) + decoder = new bomHandling.StripBOM(decoder, options); + return decoder; + }; + var nodeVer = typeof process !== "undefined" && process.versions && process.versions.node; + if (nodeVer) { + nodeVerArr = nodeVer.split(".").map(Number); + if (nodeVerArr[0] > 0 || nodeVerArr[1] >= 10) { + require_streams()(iconv); + } + require_extend_node()(iconv); + } + var nodeVerArr; + if (false) { + console.error("iconv-lite warning: javascript files use encoding different from utf-8. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info."); + } + } +}); + +// node_modules/unpipe/index.js +var require_unpipe = __commonJS({ + "node_modules/unpipe/index.js"(exports2, module2) { + "use strict"; + module2.exports = unpipe; + function hasPipeDataListeners(stream) { + var listeners = stream.listeners("data"); + for (var i = 0; i < listeners.length; i++) { + if (listeners[i].name === "ondata") { + return true; + } + } + return false; + } + function unpipe(stream) { + if (!stream) { + throw new TypeError("argument stream is required"); + } + if (typeof stream.unpipe === "function") { + stream.unpipe(); + return; + } + if (!hasPipeDataListeners(stream)) { + return; + } + var listener; + var listeners = stream.listeners("close"); + for (var i = 0; i < listeners.length; i++) { + listener = listeners[i]; + if (listener.name !== "cleanup" && listener.name !== "onclose") { + continue; + } + listener.call(stream); + } + } + } +}); + +// node_modules/raw-body/index.js +var require_raw_body = __commonJS({ + "node_modules/raw-body/index.js"(exports2, module2) { + "use strict"; + var bytes = require_bytes(); + var createError = require_http_errors(); + var iconv = require_lib3(); + var unpipe = require_unpipe(); + module2.exports = getRawBody; + var ICONV_ENCODING_MESSAGE_REGEXP = /^Encoding not recognized: /; + function getDecoder(encoding) { + if (!encoding) + return null; + try { + return iconv.getDecoder(encoding); + } catch (e) { + if (!ICONV_ENCODING_MESSAGE_REGEXP.test(e.message)) + throw e; + throw createError(415, "specified encoding unsupported", { + encoding, + type: "encoding.unsupported" + }); + } + } + function getRawBody(stream, options, callback) { + var done = callback; + var opts = options || {}; + if (options === true || typeof options === "string") { + opts = { + encoding: options + }; + } + if (typeof options === "function") { + done = options; + opts = {}; + } + if (done !== void 0 && typeof done !== "function") { + throw new TypeError("argument callback must be a function"); + } + if (!done && !global.Promise) { + throw new TypeError("argument callback is required"); + } + var encoding = opts.encoding !== true ? opts.encoding : "utf-8"; + var limit = bytes.parse(opts.limit); + var length = opts.length != null && !isNaN(opts.length) ? parseInt(opts.length, 10) : null; + if (done) { + return readStream(stream, encoding, length, limit, done); + } + return new Promise(function executor(resolve, reject) { + readStream(stream, encoding, length, limit, function onRead(err, buf) { + if (err) + return reject(err); + resolve(buf); + }); + }); + } + function halt(stream) { + unpipe(stream); + if (typeof stream.pause === "function") { + stream.pause(); + } + } + function readStream(stream, encoding, length, limit, callback) { + var complete = false; + var sync = true; + if (limit !== null && length !== null && length > limit) { + return done(createError(413, "request entity too large", { + expected: length, + length, + limit, + type: "entity.too.large" + })); + } + var state = stream._readableState; + if (stream._decoder || state && (state.encoding || state.decoder)) { + return done(createError(500, "stream encoding should not be set", { + type: "stream.encoding.set" + })); + } + var received = 0; + var decoder; + try { + decoder = getDecoder(encoding); + } catch (err) { + return done(err); + } + var buffer = decoder ? "" : []; + stream.on("aborted", onAborted); + stream.on("close", cleanup); + stream.on("data", onData); + stream.on("end", onEnd); + stream.on("error", onEnd); + sync = false; + function done() { + var args2 = new Array(arguments.length); + for (var i = 0; i < args2.length; i++) { + args2[i] = arguments[i]; + } + complete = true; + if (sync) { + process.nextTick(invokeCallback); + } else { + invokeCallback(); + } + function invokeCallback() { + cleanup(); + if (args2[0]) { + halt(stream); + } + callback.apply(null, args2); + } + } + function onAborted() { + if (complete) + return; + done(createError(400, "request aborted", { + code: "ECONNABORTED", + expected: length, + length, + received, + type: "request.aborted" + })); + } + function onData(chunk) { + if (complete) + return; + received += chunk.length; + if (limit !== null && received > limit) { + done(createError(413, "request entity too large", { + limit, + received, + type: "entity.too.large" + })); + } else if (decoder) { + buffer += decoder.write(chunk); + } else { + buffer.push(chunk); + } + } + function onEnd(err) { + if (complete) + return; + if (err) + return done(err); + if (length !== null && received !== length) { + done(createError(400, "request size did not match content length", { + expected: length, + length, + received, + type: "request.size.invalid" + })); + } else { + var string = decoder ? buffer + (decoder.end() || "") : Buffer.concat(buffer); + done(null, string); + } + } + function cleanup() { + buffer = null; + stream.removeListener("aborted", onAborted); + stream.removeListener("data", onData); + stream.removeListener("end", onEnd); + stream.removeListener("error", onEnd); + stream.removeListener("close", cleanup); + } + } + } +}); + +// node_modules/body-parser/lib/read.js +var require_read = __commonJS({ + "node_modules/body-parser/lib/read.js"(exports2, module2) { + "use strict"; + var createError = require_http_errors(); + var getBody = require_raw_body(); + var iconv = require_lib3(); + var onFinished = require_on_finished(); + var zlib = require("zlib"); + module2.exports = read; + function read(req, res, next, parse, debug, options) { + var length; + var opts = options; + var stream; + var encoding = opts.encoding !== null ? opts.encoding : null; + var verify = opts.verify; + try { + stream = contentstream(req, debug, opts.inflate); + length = stream.length; + stream.length = void 0; + } catch (err) { + return next(err); + } + opts.length = length; + opts.encoding = verify ? null : encoding; + if (opts.encoding === null && encoding !== null && !iconv.encodingExists(encoding)) { + return next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding.toLowerCase(), + type: "charset.unsupported" + })); + } + debug("read body"); + getBody(stream, opts, function(error, body) { + if (error) { + var _error; + if (error.type === "encoding.unsupported") { + _error = createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding.toLowerCase(), + type: "charset.unsupported" + }); + } else { + _error = createError(400, error); + } + stream.resume(); + onFinished(req, function onfinished() { + next(createError(400, _error)); + }); + return; + } + if (verify) { + try { + debug("verify body"); + verify(req, res, body, encoding); + } catch (err) { + next(createError(403, err, { + body, + type: err.type || "entity.verify.failed" + })); + return; + } + } + var str = body; + try { + debug("parse body"); + str = typeof body !== "string" && encoding !== null ? iconv.decode(body, encoding) : body; + req.body = parse(str); + } catch (err) { + next(createError(400, err, { + body: str, + type: err.type || "entity.parse.failed" + })); + return; + } + next(); + }); + } + function contentstream(req, debug, inflate) { + var encoding = (req.headers["content-encoding"] || "identity").toLowerCase(); + var length = req.headers["content-length"]; + var stream; + debug('content-encoding "%s"', encoding); + if (inflate === false && encoding !== "identity") { + throw createError(415, "content encoding unsupported", { + encoding, + type: "encoding.unsupported" + }); + } + switch (encoding) { + case "deflate": + stream = zlib.createInflate(); + debug("inflate body"); + req.pipe(stream); + break; + case "gzip": + stream = zlib.createGunzip(); + debug("gunzip body"); + req.pipe(stream); + break; + case "identity": + stream = req; + stream.length = length; + break; + default: + throw createError(415, 'unsupported content encoding "' + encoding + '"', { + encoding, + type: "encoding.unsupported" + }); + } + return stream; + } + } +}); + +// node_modules/media-typer/index.js +var require_media_typer = __commonJS({ + "node_modules/media-typer/index.js"(exports2) { + var paramRegExp = /; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g; + var textRegExp = /^[\u0020-\u007e\u0080-\u00ff]+$/; + var tokenRegExp = /^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/; + var qescRegExp = /\\([\u0000-\u007f])/g; + var quoteRegExp = /([\\"])/g; + var subtypeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/; + var typeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/; + var typeRegExp = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/; + exports2.format = format; + exports2.parse = parse; + function format(obj) { + if (!obj || typeof obj !== "object") { + throw new TypeError("argument obj is required"); + } + var parameters = obj.parameters; + var subtype = obj.subtype; + var suffix = obj.suffix; + var type = obj.type; + if (!type || !typeNameRegExp.test(type)) { + throw new TypeError("invalid type"); + } + if (!subtype || !subtypeNameRegExp.test(subtype)) { + throw new TypeError("invalid subtype"); + } + var string = type + "/" + subtype; + if (suffix) { + if (!typeNameRegExp.test(suffix)) { + throw new TypeError("invalid suffix"); + } + string += "+" + suffix; + } + if (parameters && typeof parameters === "object") { + var param; + var params = Object.keys(parameters).sort(); + for (var i = 0; i < params.length; i++) { + param = params[i]; + if (!tokenRegExp.test(param)) { + throw new TypeError("invalid parameter name"); + } + string += "; " + param + "=" + qstring(parameters[param]); + } + } + return string; + } + function parse(string) { + if (!string) { + throw new TypeError("argument string is required"); + } + if (typeof string === "object") { + string = getcontenttype(string); + } + if (typeof string !== "string") { + throw new TypeError("argument string is required to be a string"); + } + var index = string.indexOf(";"); + var type = index !== -1 ? string.substr(0, index) : string; + var key; + var match; + var obj = splitType(type); + var params = {}; + var value; + paramRegExp.lastIndex = index; + while (match = paramRegExp.exec(string)) { + if (match.index !== index) { + throw new TypeError("invalid parameter format"); + } + index += match[0].length; + key = match[1].toLowerCase(); + value = match[2]; + if (value[0] === '"') { + value = value.substr(1, value.length - 2).replace(qescRegExp, "$1"); + } + params[key] = value; + } + if (index !== -1 && index !== string.length) { + throw new TypeError("invalid parameter format"); + } + obj.parameters = params; + return obj; + } + function getcontenttype(obj) { + if (typeof obj.getHeader === "function") { + return obj.getHeader("content-type"); + } + if (typeof obj.headers === "object") { + return obj.headers && obj.headers["content-type"]; + } + } + function qstring(val) { + var str = String(val); + if (tokenRegExp.test(str)) { + return str; + } + if (str.length > 0 && !textRegExp.test(str)) { + throw new TypeError("invalid parameter value"); + } + return '"' + str.replace(quoteRegExp, "\\$1") + '"'; + } + function splitType(string) { + var match = typeRegExp.exec(string.toLowerCase()); + if (!match) { + throw new TypeError("invalid media type"); + } + var type = match[1]; + var subtype = match[2]; + var suffix; + var index = subtype.lastIndexOf("+"); + if (index !== -1) { + suffix = subtype.substr(index + 1); + subtype = subtype.substr(0, index); + } + var obj = { + type, + subtype, + suffix + }; + return obj; + } + } +}); + +// node_modules/mime-db/db.json +var require_db = __commonJS({ + "node_modules/mime-db/db.json"(exports2, module2) { + module2.exports = { + "application/1d-interleaved-parityfec": { + source: "iana" + }, + "application/3gpdash-qoe-report+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/3gpp-ims+xml": { + source: "iana", + compressible: true + }, + "application/3gpphal+json": { + source: "iana", + compressible: true + }, + "application/3gpphalforms+json": { + source: "iana", + compressible: true + }, + "application/a2l": { + source: "iana" + }, + "application/ace+cbor": { + source: "iana" + }, + "application/activemessage": { + source: "iana" + }, + "application/activity+json": { + source: "iana", + compressible: true + }, + "application/alto-costmap+json": { + source: "iana", + compressible: true + }, + "application/alto-costmapfilter+json": { + source: "iana", + compressible: true + }, + "application/alto-directory+json": { + source: "iana", + compressible: true + }, + "application/alto-endpointcost+json": { + source: "iana", + compressible: true + }, + "application/alto-endpointcostparams+json": { + source: "iana", + compressible: true + }, + "application/alto-endpointprop+json": { + source: "iana", + compressible: true + }, + "application/alto-endpointpropparams+json": { + source: "iana", + compressible: true + }, + "application/alto-error+json": { + source: "iana", + compressible: true + }, + "application/alto-networkmap+json": { + source: "iana", + compressible: true + }, + "application/alto-networkmapfilter+json": { + source: "iana", + compressible: true + }, + "application/alto-updatestreamcontrol+json": { + source: "iana", + compressible: true + }, + "application/alto-updatestreamparams+json": { + source: "iana", + compressible: true + }, + "application/aml": { + source: "iana" + }, + "application/andrew-inset": { + source: "iana", + extensions: ["ez"] + }, + "application/applefile": { + source: "iana" + }, + "application/applixware": { + source: "apache", + extensions: ["aw"] + }, + "application/at+jwt": { + source: "iana" + }, + "application/atf": { + source: "iana" + }, + "application/atfx": { + source: "iana" + }, + "application/atom+xml": { + source: "iana", + compressible: true, + extensions: ["atom"] + }, + "application/atomcat+xml": { + source: "iana", + compressible: true, + extensions: ["atomcat"] + }, + "application/atomdeleted+xml": { + source: "iana", + compressible: true, + extensions: ["atomdeleted"] + }, + "application/atomicmail": { + source: "iana" + }, + "application/atomsvc+xml": { + source: "iana", + compressible: true, + extensions: ["atomsvc"] + }, + "application/atsc-dwd+xml": { + source: "iana", + compressible: true, + extensions: ["dwd"] + }, + "application/atsc-dynamic-event-message": { + source: "iana" + }, + "application/atsc-held+xml": { + source: "iana", + compressible: true, + extensions: ["held"] + }, + "application/atsc-rdt+json": { + source: "iana", + compressible: true + }, + "application/atsc-rsat+xml": { + source: "iana", + compressible: true, + extensions: ["rsat"] + }, + "application/atxml": { + source: "iana" + }, + "application/auth-policy+xml": { + source: "iana", + compressible: true + }, + "application/bacnet-xdd+zip": { + source: "iana", + compressible: false + }, + "application/batch-smtp": { + source: "iana" + }, + "application/bdoc": { + compressible: false, + extensions: ["bdoc"] + }, + "application/beep+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/calendar+json": { + source: "iana", + compressible: true + }, + "application/calendar+xml": { + source: "iana", + compressible: true, + extensions: ["xcs"] + }, + "application/call-completion": { + source: "iana" + }, + "application/cals-1840": { + source: "iana" + }, + "application/captive+json": { + source: "iana", + compressible: true + }, + "application/cbor": { + source: "iana" + }, + "application/cbor-seq": { + source: "iana" + }, + "application/cccex": { + source: "iana" + }, + "application/ccmp+xml": { + source: "iana", + compressible: true + }, + "application/ccxml+xml": { + source: "iana", + compressible: true, + extensions: ["ccxml"] + }, + "application/cdfx+xml": { + source: "iana", + compressible: true, + extensions: ["cdfx"] + }, + "application/cdmi-capability": { + source: "iana", + extensions: ["cdmia"] + }, + "application/cdmi-container": { + source: "iana", + extensions: ["cdmic"] + }, + "application/cdmi-domain": { + source: "iana", + extensions: ["cdmid"] + }, + "application/cdmi-object": { + source: "iana", + extensions: ["cdmio"] + }, + "application/cdmi-queue": { + source: "iana", + extensions: ["cdmiq"] + }, + "application/cdni": { + source: "iana" + }, + "application/cea": { + source: "iana" + }, + "application/cea-2018+xml": { + source: "iana", + compressible: true + }, + "application/cellml+xml": { + source: "iana", + compressible: true + }, + "application/cfw": { + source: "iana" + }, + "application/city+json": { + source: "iana", + compressible: true + }, + "application/clr": { + source: "iana" + }, + "application/clue+xml": { + source: "iana", + compressible: true + }, + "application/clue_info+xml": { + source: "iana", + compressible: true + }, + "application/cms": { + source: "iana" + }, + "application/cnrp+xml": { + source: "iana", + compressible: true + }, + "application/coap-group+json": { + source: "iana", + compressible: true + }, + "application/coap-payload": { + source: "iana" + }, + "application/commonground": { + source: "iana" + }, + "application/conference-info+xml": { + source: "iana", + compressible: true + }, + "application/cose": { + source: "iana" + }, + "application/cose-key": { + source: "iana" + }, + "application/cose-key-set": { + source: "iana" + }, + "application/cpl+xml": { + source: "iana", + compressible: true, + extensions: ["cpl"] + }, + "application/csrattrs": { + source: "iana" + }, + "application/csta+xml": { + source: "iana", + compressible: true + }, + "application/cstadata+xml": { + source: "iana", + compressible: true + }, + "application/csvm+json": { + source: "iana", + compressible: true + }, + "application/cu-seeme": { + source: "apache", + extensions: ["cu"] + }, + "application/cwt": { + source: "iana" + }, + "application/cybercash": { + source: "iana" + }, + "application/dart": { + compressible: true + }, + "application/dash+xml": { + source: "iana", + compressible: true, + extensions: ["mpd"] + }, + "application/dash-patch+xml": { + source: "iana", + compressible: true, + extensions: ["mpp"] + }, + "application/dashdelta": { + source: "iana" + }, + "application/davmount+xml": { + source: "iana", + compressible: true, + extensions: ["davmount"] + }, + "application/dca-rft": { + source: "iana" + }, + "application/dcd": { + source: "iana" + }, + "application/dec-dx": { + source: "iana" + }, + "application/dialog-info+xml": { + source: "iana", + compressible: true + }, + "application/dicom": { + source: "iana" + }, + "application/dicom+json": { + source: "iana", + compressible: true + }, + "application/dicom+xml": { + source: "iana", + compressible: true + }, + "application/dii": { + source: "iana" + }, + "application/dit": { + source: "iana" + }, + "application/dns": { + source: "iana" + }, + "application/dns+json": { + source: "iana", + compressible: true + }, + "application/dns-message": { + source: "iana" + }, + "application/docbook+xml": { + source: "apache", + compressible: true, + extensions: ["dbk"] + }, + "application/dots+cbor": { + source: "iana" + }, + "application/dskpp+xml": { + source: "iana", + compressible: true + }, + "application/dssc+der": { + source: "iana", + extensions: ["dssc"] + }, + "application/dssc+xml": { + source: "iana", + compressible: true, + extensions: ["xdssc"] + }, + "application/dvcs": { + source: "iana" + }, + "application/ecmascript": { + source: "iana", + compressible: true, + extensions: ["es", "ecma"] + }, + "application/edi-consent": { + source: "iana" + }, + "application/edi-x12": { + source: "iana", + compressible: false + }, + "application/edifact": { + source: "iana", + compressible: false + }, + "application/efi": { + source: "iana" + }, + "application/elm+json": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/elm+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.cap+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/emergencycalldata.comment+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.control+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.deviceinfo+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.ecall.msd": { + source: "iana" + }, + "application/emergencycalldata.providerinfo+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.serviceinfo+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.subscriberinfo+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.veds+xml": { + source: "iana", + compressible: true + }, + "application/emma+xml": { + source: "iana", + compressible: true, + extensions: ["emma"] + }, + "application/emotionml+xml": { + source: "iana", + compressible: true, + extensions: ["emotionml"] + }, + "application/encaprtp": { + source: "iana" + }, + "application/epp+xml": { + source: "iana", + compressible: true + }, + "application/epub+zip": { + source: "iana", + compressible: false, + extensions: ["epub"] + }, + "application/eshop": { + source: "iana" + }, + "application/exi": { + source: "iana", + extensions: ["exi"] + }, + "application/expect-ct-report+json": { + source: "iana", + compressible: true + }, + "application/express": { + source: "iana", + extensions: ["exp"] + }, + "application/fastinfoset": { + source: "iana" + }, + "application/fastsoap": { + source: "iana" + }, + "application/fdt+xml": { + source: "iana", + compressible: true, + extensions: ["fdt"] + }, + "application/fhir+json": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/fhir+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/fido.trusted-apps+json": { + compressible: true + }, + "application/fits": { + source: "iana" + }, + "application/flexfec": { + source: "iana" + }, + "application/font-sfnt": { + source: "iana" + }, + "application/font-tdpfr": { + source: "iana", + extensions: ["pfr"] + }, + "application/font-woff": { + source: "iana", + compressible: false + }, + "application/framework-attributes+xml": { + source: "iana", + compressible: true + }, + "application/geo+json": { + source: "iana", + compressible: true, + extensions: ["geojson"] + }, + "application/geo+json-seq": { + source: "iana" + }, + "application/geopackage+sqlite3": { + source: "iana" + }, + "application/geoxacml+xml": { + source: "iana", + compressible: true + }, + "application/gltf-buffer": { + source: "iana" + }, + "application/gml+xml": { + source: "iana", + compressible: true, + extensions: ["gml"] + }, + "application/gpx+xml": { + source: "apache", + compressible: true, + extensions: ["gpx"] + }, + "application/gxf": { + source: "apache", + extensions: ["gxf"] + }, + "application/gzip": { + source: "iana", + compressible: false, + extensions: ["gz"] + }, + "application/h224": { + source: "iana" + }, + "application/held+xml": { + source: "iana", + compressible: true + }, + "application/hjson": { + extensions: ["hjson"] + }, + "application/http": { + source: "iana" + }, + "application/hyperstudio": { + source: "iana", + extensions: ["stk"] + }, + "application/ibe-key-request+xml": { + source: "iana", + compressible: true + }, + "application/ibe-pkg-reply+xml": { + source: "iana", + compressible: true + }, + "application/ibe-pp-data": { + source: "iana" + }, + "application/iges": { + source: "iana" + }, + "application/im-iscomposing+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/index": { + source: "iana" + }, + "application/index.cmd": { + source: "iana" + }, + "application/index.obj": { + source: "iana" + }, + "application/index.response": { + source: "iana" + }, + "application/index.vnd": { + source: "iana" + }, + "application/inkml+xml": { + source: "iana", + compressible: true, + extensions: ["ink", "inkml"] + }, + "application/iotp": { + source: "iana" + }, + "application/ipfix": { + source: "iana", + extensions: ["ipfix"] + }, + "application/ipp": { + source: "iana" + }, + "application/isup": { + source: "iana" + }, + "application/its+xml": { + source: "iana", + compressible: true, + extensions: ["its"] + }, + "application/java-archive": { + source: "apache", + compressible: false, + extensions: ["jar", "war", "ear"] + }, + "application/java-serialized-object": { + source: "apache", + compressible: false, + extensions: ["ser"] + }, + "application/java-vm": { + source: "apache", + compressible: false, + extensions: ["class"] + }, + "application/javascript": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["js", "mjs"] + }, + "application/jf2feed+json": { + source: "iana", + compressible: true + }, + "application/jose": { + source: "iana" + }, + "application/jose+json": { + source: "iana", + compressible: true + }, + "application/jrd+json": { + source: "iana", + compressible: true + }, + "application/jscalendar+json": { + source: "iana", + compressible: true + }, + "application/json": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["json", "map"] + }, + "application/json-patch+json": { + source: "iana", + compressible: true + }, + "application/json-seq": { + source: "iana" + }, + "application/json5": { + extensions: ["json5"] + }, + "application/jsonml+json": { + source: "apache", + compressible: true, + extensions: ["jsonml"] + }, + "application/jwk+json": { + source: "iana", + compressible: true + }, + "application/jwk-set+json": { + source: "iana", + compressible: true + }, + "application/jwt": { + source: "iana" + }, + "application/kpml-request+xml": { + source: "iana", + compressible: true + }, + "application/kpml-response+xml": { + source: "iana", + compressible: true + }, + "application/ld+json": { + source: "iana", + compressible: true, + extensions: ["jsonld"] + }, + "application/lgr+xml": { + source: "iana", + compressible: true, + extensions: ["lgr"] + }, + "application/link-format": { + source: "iana" + }, + "application/load-control+xml": { + source: "iana", + compressible: true + }, + "application/lost+xml": { + source: "iana", + compressible: true, + extensions: ["lostxml"] + }, + "application/lostsync+xml": { + source: "iana", + compressible: true + }, + "application/lpf+zip": { + source: "iana", + compressible: false + }, + "application/lxf": { + source: "iana" + }, + "application/mac-binhex40": { + source: "iana", + extensions: ["hqx"] + }, + "application/mac-compactpro": { + source: "apache", + extensions: ["cpt"] + }, + "application/macwriteii": { + source: "iana" + }, + "application/mads+xml": { + source: "iana", + compressible: true, + extensions: ["mads"] + }, + "application/manifest+json": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["webmanifest"] + }, + "application/marc": { + source: "iana", + extensions: ["mrc"] + }, + "application/marcxml+xml": { + source: "iana", + compressible: true, + extensions: ["mrcx"] + }, + "application/mathematica": { + source: "iana", + extensions: ["ma", "nb", "mb"] + }, + "application/mathml+xml": { + source: "iana", + compressible: true, + extensions: ["mathml"] + }, + "application/mathml-content+xml": { + source: "iana", + compressible: true + }, + "application/mathml-presentation+xml": { + source: "iana", + compressible: true + }, + "application/mbms-associated-procedure-description+xml": { + source: "iana", + compressible: true + }, + "application/mbms-deregister+xml": { + source: "iana", + compressible: true + }, + "application/mbms-envelope+xml": { + source: "iana", + compressible: true + }, + "application/mbms-msk+xml": { + source: "iana", + compressible: true + }, + "application/mbms-msk-response+xml": { + source: "iana", + compressible: true + }, + "application/mbms-protection-description+xml": { + source: "iana", + compressible: true + }, + "application/mbms-reception-report+xml": { + source: "iana", + compressible: true + }, + "application/mbms-register+xml": { + source: "iana", + compressible: true + }, + "application/mbms-register-response+xml": { + source: "iana", + compressible: true + }, + "application/mbms-schedule+xml": { + source: "iana", + compressible: true + }, + "application/mbms-user-service-description+xml": { + source: "iana", + compressible: true + }, + "application/mbox": { + source: "iana", + extensions: ["mbox"] + }, + "application/media-policy-dataset+xml": { + source: "iana", + compressible: true, + extensions: ["mpf"] + }, + "application/media_control+xml": { + source: "iana", + compressible: true + }, + "application/mediaservercontrol+xml": { + source: "iana", + compressible: true, + extensions: ["mscml"] + }, + "application/merge-patch+json": { + source: "iana", + compressible: true + }, + "application/metalink+xml": { + source: "apache", + compressible: true, + extensions: ["metalink"] + }, + "application/metalink4+xml": { + source: "iana", + compressible: true, + extensions: ["meta4"] + }, + "application/mets+xml": { + source: "iana", + compressible: true, + extensions: ["mets"] + }, + "application/mf4": { + source: "iana" + }, + "application/mikey": { + source: "iana" + }, + "application/mipc": { + source: "iana" + }, + "application/missing-blocks+cbor-seq": { + source: "iana" + }, + "application/mmt-aei+xml": { + source: "iana", + compressible: true, + extensions: ["maei"] + }, + "application/mmt-usd+xml": { + source: "iana", + compressible: true, + extensions: ["musd"] + }, + "application/mods+xml": { + source: "iana", + compressible: true, + extensions: ["mods"] + }, + "application/moss-keys": { + source: "iana" + }, + "application/moss-signature": { + source: "iana" + }, + "application/mosskey-data": { + source: "iana" + }, + "application/mosskey-request": { + source: "iana" + }, + "application/mp21": { + source: "iana", + extensions: ["m21", "mp21"] + }, + "application/mp4": { + source: "iana", + extensions: ["mp4s", "m4p"] + }, + "application/mpeg4-generic": { + source: "iana" + }, + "application/mpeg4-iod": { + source: "iana" + }, + "application/mpeg4-iod-xmt": { + source: "iana" + }, + "application/mrb-consumer+xml": { + source: "iana", + compressible: true + }, + "application/mrb-publish+xml": { + source: "iana", + compressible: true + }, + "application/msc-ivr+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/msc-mixer+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/msword": { + source: "iana", + compressible: false, + extensions: ["doc", "dot"] + }, + "application/mud+json": { + source: "iana", + compressible: true + }, + "application/multipart-core": { + source: "iana" + }, + "application/mxf": { + source: "iana", + extensions: ["mxf"] + }, + "application/n-quads": { + source: "iana", + extensions: ["nq"] + }, + "application/n-triples": { + source: "iana", + extensions: ["nt"] + }, + "application/nasdata": { + source: "iana" + }, + "application/news-checkgroups": { + source: "iana", + charset: "US-ASCII" + }, + "application/news-groupinfo": { + source: "iana", + charset: "US-ASCII" + }, + "application/news-transmission": { + source: "iana" + }, + "application/nlsml+xml": { + source: "iana", + compressible: true + }, + "application/node": { + source: "iana", + extensions: ["cjs"] + }, + "application/nss": { + source: "iana" + }, + "application/oauth-authz-req+jwt": { + source: "iana" + }, + "application/oblivious-dns-message": { + source: "iana" + }, + "application/ocsp-request": { + source: "iana" + }, + "application/ocsp-response": { + source: "iana" + }, + "application/octet-stream": { + source: "iana", + compressible: false, + extensions: ["bin", "dms", "lrf", "mar", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy", "exe", "dll", "deb", "dmg", "iso", "img", "msi", "msp", "msm", "buffer"] + }, + "application/oda": { + source: "iana", + extensions: ["oda"] + }, + "application/odm+xml": { + source: "iana", + compressible: true + }, + "application/odx": { + source: "iana" + }, + "application/oebps-package+xml": { + source: "iana", + compressible: true, + extensions: ["opf"] + }, + "application/ogg": { + source: "iana", + compressible: false, + extensions: ["ogx"] + }, + "application/omdoc+xml": { + source: "apache", + compressible: true, + extensions: ["omdoc"] + }, + "application/onenote": { + source: "apache", + extensions: ["onetoc", "onetoc2", "onetmp", "onepkg"] + }, + "application/opc-nodeset+xml": { + source: "iana", + compressible: true + }, + "application/oscore": { + source: "iana" + }, + "application/oxps": { + source: "iana", + extensions: ["oxps"] + }, + "application/p21": { + source: "iana" + }, + "application/p21+zip": { + source: "iana", + compressible: false + }, + "application/p2p-overlay+xml": { + source: "iana", + compressible: true, + extensions: ["relo"] + }, + "application/parityfec": { + source: "iana" + }, + "application/passport": { + source: "iana" + }, + "application/patch-ops-error+xml": { + source: "iana", + compressible: true, + extensions: ["xer"] + }, + "application/pdf": { + source: "iana", + compressible: false, + extensions: ["pdf"] + }, + "application/pdx": { + source: "iana" + }, + "application/pem-certificate-chain": { + source: "iana" + }, + "application/pgp-encrypted": { + source: "iana", + compressible: false, + extensions: ["pgp"] + }, + "application/pgp-keys": { + source: "iana", + extensions: ["asc"] + }, + "application/pgp-signature": { + source: "iana", + extensions: ["asc", "sig"] + }, + "application/pics-rules": { + source: "apache", + extensions: ["prf"] + }, + "application/pidf+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/pidf-diff+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/pkcs10": { + source: "iana", + extensions: ["p10"] + }, + "application/pkcs12": { + source: "iana" + }, + "application/pkcs7-mime": { + source: "iana", + extensions: ["p7m", "p7c"] + }, + "application/pkcs7-signature": { + source: "iana", + extensions: ["p7s"] + }, + "application/pkcs8": { + source: "iana", + extensions: ["p8"] + }, + "application/pkcs8-encrypted": { + source: "iana" + }, + "application/pkix-attr-cert": { + source: "iana", + extensions: ["ac"] + }, + "application/pkix-cert": { + source: "iana", + extensions: ["cer"] + }, + "application/pkix-crl": { + source: "iana", + extensions: ["crl"] + }, + "application/pkix-pkipath": { + source: "iana", + extensions: ["pkipath"] + }, + "application/pkixcmp": { + source: "iana", + extensions: ["pki"] + }, + "application/pls+xml": { + source: "iana", + compressible: true, + extensions: ["pls"] + }, + "application/poc-settings+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/postscript": { + source: "iana", + compressible: true, + extensions: ["ai", "eps", "ps"] + }, + "application/ppsp-tracker+json": { + source: "iana", + compressible: true + }, + "application/problem+json": { + source: "iana", + compressible: true + }, + "application/problem+xml": { + source: "iana", + compressible: true + }, + "application/provenance+xml": { + source: "iana", + compressible: true, + extensions: ["provx"] + }, + "application/prs.alvestrand.titrax-sheet": { + source: "iana" + }, + "application/prs.cww": { + source: "iana", + extensions: ["cww"] + }, + "application/prs.cyn": { + source: "iana", + charset: "7-BIT" + }, + "application/prs.hpub+zip": { + source: "iana", + compressible: false + }, + "application/prs.nprend": { + source: "iana" + }, + "application/prs.plucker": { + source: "iana" + }, + "application/prs.rdf-xml-crypt": { + source: "iana" + }, + "application/prs.xsf+xml": { + source: "iana", + compressible: true + }, + "application/pskc+xml": { + source: "iana", + compressible: true, + extensions: ["pskcxml"] + }, + "application/pvd+json": { + source: "iana", + compressible: true + }, + "application/qsig": { + source: "iana" + }, + "application/raml+yaml": { + compressible: true, + extensions: ["raml"] + }, + "application/raptorfec": { + source: "iana" + }, + "application/rdap+json": { + source: "iana", + compressible: true + }, + "application/rdf+xml": { + source: "iana", + compressible: true, + extensions: ["rdf", "owl"] + }, + "application/reginfo+xml": { + source: "iana", + compressible: true, + extensions: ["rif"] + }, + "application/relax-ng-compact-syntax": { + source: "iana", + extensions: ["rnc"] + }, + "application/remote-printing": { + source: "iana" + }, + "application/reputon+json": { + source: "iana", + compressible: true + }, + "application/resource-lists+xml": { + source: "iana", + compressible: true, + extensions: ["rl"] + }, + "application/resource-lists-diff+xml": { + source: "iana", + compressible: true, + extensions: ["rld"] + }, + "application/rfc+xml": { + source: "iana", + compressible: true + }, + "application/riscos": { + source: "iana" + }, + "application/rlmi+xml": { + source: "iana", + compressible: true + }, + "application/rls-services+xml": { + source: "iana", + compressible: true, + extensions: ["rs"] + }, + "application/route-apd+xml": { + source: "iana", + compressible: true, + extensions: ["rapd"] + }, + "application/route-s-tsid+xml": { + source: "iana", + compressible: true, + extensions: ["sls"] + }, + "application/route-usd+xml": { + source: "iana", + compressible: true, + extensions: ["rusd"] + }, + "application/rpki-ghostbusters": { + source: "iana", + extensions: ["gbr"] + }, + "application/rpki-manifest": { + source: "iana", + extensions: ["mft"] + }, + "application/rpki-publication": { + source: "iana" + }, + "application/rpki-roa": { + source: "iana", + extensions: ["roa"] + }, + "application/rpki-updown": { + source: "iana" + }, + "application/rsd+xml": { + source: "apache", + compressible: true, + extensions: ["rsd"] + }, + "application/rss+xml": { + source: "apache", + compressible: true, + extensions: ["rss"] + }, + "application/rtf": { + source: "iana", + compressible: true, + extensions: ["rtf"] + }, + "application/rtploopback": { + source: "iana" + }, + "application/rtx": { + source: "iana" + }, + "application/samlassertion+xml": { + source: "iana", + compressible: true + }, + "application/samlmetadata+xml": { + source: "iana", + compressible: true + }, + "application/sarif+json": { + source: "iana", + compressible: true + }, + "application/sarif-external-properties+json": { + source: "iana", + compressible: true + }, + "application/sbe": { + source: "iana" + }, + "application/sbml+xml": { + source: "iana", + compressible: true, + extensions: ["sbml"] + }, + "application/scaip+xml": { + source: "iana", + compressible: true + }, + "application/scim+json": { + source: "iana", + compressible: true + }, + "application/scvp-cv-request": { + source: "iana", + extensions: ["scq"] + }, + "application/scvp-cv-response": { + source: "iana", + extensions: ["scs"] + }, + "application/scvp-vp-request": { + source: "iana", + extensions: ["spq"] + }, + "application/scvp-vp-response": { + source: "iana", + extensions: ["spp"] + }, + "application/sdp": { + source: "iana", + extensions: ["sdp"] + }, + "application/secevent+jwt": { + source: "iana" + }, + "application/senml+cbor": { + source: "iana" + }, + "application/senml+json": { + source: "iana", + compressible: true + }, + "application/senml+xml": { + source: "iana", + compressible: true, + extensions: ["senmlx"] + }, + "application/senml-etch+cbor": { + source: "iana" + }, + "application/senml-etch+json": { + source: "iana", + compressible: true + }, + "application/senml-exi": { + source: "iana" + }, + "application/sensml+cbor": { + source: "iana" + }, + "application/sensml+json": { + source: "iana", + compressible: true + }, + "application/sensml+xml": { + source: "iana", + compressible: true, + extensions: ["sensmlx"] + }, + "application/sensml-exi": { + source: "iana" + }, + "application/sep+xml": { + source: "iana", + compressible: true + }, + "application/sep-exi": { + source: "iana" + }, + "application/session-info": { + source: "iana" + }, + "application/set-payment": { + source: "iana" + }, + "application/set-payment-initiation": { + source: "iana", + extensions: ["setpay"] + }, + "application/set-registration": { + source: "iana" + }, + "application/set-registration-initiation": { + source: "iana", + extensions: ["setreg"] + }, + "application/sgml": { + source: "iana" + }, + "application/sgml-open-catalog": { + source: "iana" + }, + "application/shf+xml": { + source: "iana", + compressible: true, + extensions: ["shf"] + }, + "application/sieve": { + source: "iana", + extensions: ["siv", "sieve"] + }, + "application/simple-filter+xml": { + source: "iana", + compressible: true + }, + "application/simple-message-summary": { + source: "iana" + }, + "application/simplesymbolcontainer": { + source: "iana" + }, + "application/sipc": { + source: "iana" + }, + "application/slate": { + source: "iana" + }, + "application/smil": { + source: "iana" + }, + "application/smil+xml": { + source: "iana", + compressible: true, + extensions: ["smi", "smil"] + }, + "application/smpte336m": { + source: "iana" + }, + "application/soap+fastinfoset": { + source: "iana" + }, + "application/soap+xml": { + source: "iana", + compressible: true + }, + "application/sparql-query": { + source: "iana", + extensions: ["rq"] + }, + "application/sparql-results+xml": { + source: "iana", + compressible: true, + extensions: ["srx"] + }, + "application/spdx+json": { + source: "iana", + compressible: true + }, + "application/spirits-event+xml": { + source: "iana", + compressible: true + }, + "application/sql": { + source: "iana" + }, + "application/srgs": { + source: "iana", + extensions: ["gram"] + }, + "application/srgs+xml": { + source: "iana", + compressible: true, + extensions: ["grxml"] + }, + "application/sru+xml": { + source: "iana", + compressible: true, + extensions: ["sru"] + }, + "application/ssdl+xml": { + source: "apache", + compressible: true, + extensions: ["ssdl"] + }, + "application/ssml+xml": { + source: "iana", + compressible: true, + extensions: ["ssml"] + }, + "application/stix+json": { + source: "iana", + compressible: true + }, + "application/swid+xml": { + source: "iana", + compressible: true, + extensions: ["swidtag"] + }, + "application/tamp-apex-update": { + source: "iana" + }, + "application/tamp-apex-update-confirm": { + source: "iana" + }, + "application/tamp-community-update": { + source: "iana" + }, + "application/tamp-community-update-confirm": { + source: "iana" + }, + "application/tamp-error": { + source: "iana" + }, + "application/tamp-sequence-adjust": { + source: "iana" + }, + "application/tamp-sequence-adjust-confirm": { + source: "iana" + }, + "application/tamp-status-query": { + source: "iana" + }, + "application/tamp-status-response": { + source: "iana" + }, + "application/tamp-update": { + source: "iana" + }, + "application/tamp-update-confirm": { + source: "iana" + }, + "application/tar": { + compressible: true + }, + "application/taxii+json": { + source: "iana", + compressible: true + }, + "application/td+json": { + source: "iana", + compressible: true + }, + "application/tei+xml": { + source: "iana", + compressible: true, + extensions: ["tei", "teicorpus"] + }, + "application/tetra_isi": { + source: "iana" + }, + "application/thraud+xml": { + source: "iana", + compressible: true, + extensions: ["tfi"] + }, + "application/timestamp-query": { + source: "iana" + }, + "application/timestamp-reply": { + source: "iana" + }, + "application/timestamped-data": { + source: "iana", + extensions: ["tsd"] + }, + "application/tlsrpt+gzip": { + source: "iana" + }, + "application/tlsrpt+json": { + source: "iana", + compressible: true + }, + "application/tnauthlist": { + source: "iana" + }, + "application/token-introspection+jwt": { + source: "iana" + }, + "application/toml": { + compressible: true, + extensions: ["toml"] + }, + "application/trickle-ice-sdpfrag": { + source: "iana" + }, + "application/trig": { + source: "iana", + extensions: ["trig"] + }, + "application/ttml+xml": { + source: "iana", + compressible: true, + extensions: ["ttml"] + }, + "application/tve-trigger": { + source: "iana" + }, + "application/tzif": { + source: "iana" + }, + "application/tzif-leap": { + source: "iana" + }, + "application/ubjson": { + compressible: false, + extensions: ["ubj"] + }, + "application/ulpfec": { + source: "iana" + }, + "application/urc-grpsheet+xml": { + source: "iana", + compressible: true + }, + "application/urc-ressheet+xml": { + source: "iana", + compressible: true, + extensions: ["rsheet"] + }, + "application/urc-targetdesc+xml": { + source: "iana", + compressible: true, + extensions: ["td"] + }, + "application/urc-uisocketdesc+xml": { + source: "iana", + compressible: true + }, + "application/vcard+json": { + source: "iana", + compressible: true + }, + "application/vcard+xml": { + source: "iana", + compressible: true + }, + "application/vemmi": { + source: "iana" + }, + "application/vividence.scriptfile": { + source: "apache" + }, + "application/vnd.1000minds.decision-model+xml": { + source: "iana", + compressible: true, + extensions: ["1km"] + }, + "application/vnd.3gpp-prose+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp-prose-pc3ch+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp-v2x-local-service-information": { + source: "iana" + }, + "application/vnd.3gpp.5gnas": { + source: "iana" + }, + "application/vnd.3gpp.access-transfer-events+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.bsf+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.gmop+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.gtpc": { + source: "iana" + }, + "application/vnd.3gpp.interworking-data": { + source: "iana" + }, + "application/vnd.3gpp.lpp": { + source: "iana" + }, + "application/vnd.3gpp.mc-signalling-ear": { + source: "iana" + }, + "application/vnd.3gpp.mcdata-affiliation-command+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-payload": { + source: "iana" + }, + "application/vnd.3gpp.mcdata-service-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-signalling": { + source: "iana" + }, + "application/vnd.3gpp.mcdata-ue-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-user-profile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-affiliation-command+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-floor-request+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-location-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-mbms-usage-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-service-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-signed+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-ue-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-ue-init-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-user-profile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-affiliation-command+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-affiliation-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-location-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-mbms-usage-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-service-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-transmission-request+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-ue-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-user-profile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mid-call+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.ngap": { + source: "iana" + }, + "application/vnd.3gpp.pfcp": { + source: "iana" + }, + "application/vnd.3gpp.pic-bw-large": { + source: "iana", + extensions: ["plb"] + }, + "application/vnd.3gpp.pic-bw-small": { + source: "iana", + extensions: ["psb"] + }, + "application/vnd.3gpp.pic-bw-var": { + source: "iana", + extensions: ["pvb"] + }, + "application/vnd.3gpp.s1ap": { + source: "iana" + }, + "application/vnd.3gpp.sms": { + source: "iana" + }, + "application/vnd.3gpp.sms+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.srvcc-ext+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.srvcc-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.state-and-event-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.ussd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp2.bcmcsinfo+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp2.sms": { + source: "iana" + }, + "application/vnd.3gpp2.tcap": { + source: "iana", + extensions: ["tcap"] + }, + "application/vnd.3lightssoftware.imagescal": { + source: "iana" + }, + "application/vnd.3m.post-it-notes": { + source: "iana", + extensions: ["pwn"] + }, + "application/vnd.accpac.simply.aso": { + source: "iana", + extensions: ["aso"] + }, + "application/vnd.accpac.simply.imp": { + source: "iana", + extensions: ["imp"] + }, + "application/vnd.acucobol": { + source: "iana", + extensions: ["acu"] + }, + "application/vnd.acucorp": { + source: "iana", + extensions: ["atc", "acutc"] + }, + "application/vnd.adobe.air-application-installer-package+zip": { + source: "apache", + compressible: false, + extensions: ["air"] + }, + "application/vnd.adobe.flash.movie": { + source: "iana" + }, + "application/vnd.adobe.formscentral.fcdt": { + source: "iana", + extensions: ["fcdt"] + }, + "application/vnd.adobe.fxp": { + source: "iana", + extensions: ["fxp", "fxpl"] + }, + "application/vnd.adobe.partial-upload": { + source: "iana" + }, + "application/vnd.adobe.xdp+xml": { + source: "iana", + compressible: true, + extensions: ["xdp"] + }, + "application/vnd.adobe.xfdf": { + source: "iana", + extensions: ["xfdf"] + }, + "application/vnd.aether.imp": { + source: "iana" + }, + "application/vnd.afpc.afplinedata": { + source: "iana" + }, + "application/vnd.afpc.afplinedata-pagedef": { + source: "iana" + }, + "application/vnd.afpc.cmoca-cmresource": { + source: "iana" + }, + "application/vnd.afpc.foca-charset": { + source: "iana" + }, + "application/vnd.afpc.foca-codedfont": { + source: "iana" + }, + "application/vnd.afpc.foca-codepage": { + source: "iana" + }, + "application/vnd.afpc.modca": { + source: "iana" + }, + "application/vnd.afpc.modca-cmtable": { + source: "iana" + }, + "application/vnd.afpc.modca-formdef": { + source: "iana" + }, + "application/vnd.afpc.modca-mediummap": { + source: "iana" + }, + "application/vnd.afpc.modca-objectcontainer": { + source: "iana" + }, + "application/vnd.afpc.modca-overlay": { + source: "iana" + }, + "application/vnd.afpc.modca-pagesegment": { + source: "iana" + }, + "application/vnd.age": { + source: "iana", + extensions: ["age"] + }, + "application/vnd.ah-barcode": { + source: "iana" + }, + "application/vnd.ahead.space": { + source: "iana", + extensions: ["ahead"] + }, + "application/vnd.airzip.filesecure.azf": { + source: "iana", + extensions: ["azf"] + }, + "application/vnd.airzip.filesecure.azs": { + source: "iana", + extensions: ["azs"] + }, + "application/vnd.amadeus+json": { + source: "iana", + compressible: true + }, + "application/vnd.amazon.ebook": { + source: "apache", + extensions: ["azw"] + }, + "application/vnd.amazon.mobi8-ebook": { + source: "iana" + }, + "application/vnd.americandynamics.acc": { + source: "iana", + extensions: ["acc"] + }, + "application/vnd.amiga.ami": { + source: "iana", + extensions: ["ami"] + }, + "application/vnd.amundsen.maze+xml": { + source: "iana", + compressible: true + }, + "application/vnd.android.ota": { + source: "iana" + }, + "application/vnd.android.package-archive": { + source: "apache", + compressible: false, + extensions: ["apk"] + }, + "application/vnd.anki": { + source: "iana" + }, + "application/vnd.anser-web-certificate-issue-initiation": { + source: "iana", + extensions: ["cii"] + }, + "application/vnd.anser-web-funds-transfer-initiation": { + source: "apache", + extensions: ["fti"] + }, + "application/vnd.antix.game-component": { + source: "iana", + extensions: ["atx"] + }, + "application/vnd.apache.arrow.file": { + source: "iana" + }, + "application/vnd.apache.arrow.stream": { + source: "iana" + }, + "application/vnd.apache.thrift.binary": { + source: "iana" + }, + "application/vnd.apache.thrift.compact": { + source: "iana" + }, + "application/vnd.apache.thrift.json": { + source: "iana" + }, + "application/vnd.api+json": { + source: "iana", + compressible: true + }, + "application/vnd.aplextor.warrp+json": { + source: "iana", + compressible: true + }, + "application/vnd.apothekende.reservation+json": { + source: "iana", + compressible: true + }, + "application/vnd.apple.installer+xml": { + source: "iana", + compressible: true, + extensions: ["mpkg"] + }, + "application/vnd.apple.keynote": { + source: "iana", + extensions: ["key"] + }, + "application/vnd.apple.mpegurl": { + source: "iana", + extensions: ["m3u8"] + }, + "application/vnd.apple.numbers": { + source: "iana", + extensions: ["numbers"] + }, + "application/vnd.apple.pages": { + source: "iana", + extensions: ["pages"] + }, + "application/vnd.apple.pkpass": { + compressible: false, + extensions: ["pkpass"] + }, + "application/vnd.arastra.swi": { + source: "iana" + }, + "application/vnd.aristanetworks.swi": { + source: "iana", + extensions: ["swi"] + }, + "application/vnd.artisan+json": { + source: "iana", + compressible: true + }, + "application/vnd.artsquare": { + source: "iana" + }, + "application/vnd.astraea-software.iota": { + source: "iana", + extensions: ["iota"] + }, + "application/vnd.audiograph": { + source: "iana", + extensions: ["aep"] + }, + "application/vnd.autopackage": { + source: "iana" + }, + "application/vnd.avalon+json": { + source: "iana", + compressible: true + }, + "application/vnd.avistar+xml": { + source: "iana", + compressible: true + }, + "application/vnd.balsamiq.bmml+xml": { + source: "iana", + compressible: true, + extensions: ["bmml"] + }, + "application/vnd.balsamiq.bmpr": { + source: "iana" + }, + "application/vnd.banana-accounting": { + source: "iana" + }, + "application/vnd.bbf.usp.error": { + source: "iana" + }, + "application/vnd.bbf.usp.msg": { + source: "iana" + }, + "application/vnd.bbf.usp.msg+json": { + source: "iana", + compressible: true + }, + "application/vnd.bekitzur-stech+json": { + source: "iana", + compressible: true + }, + "application/vnd.bint.med-content": { + source: "iana" + }, + "application/vnd.biopax.rdf+xml": { + source: "iana", + compressible: true + }, + "application/vnd.blink-idb-value-wrapper": { + source: "iana" + }, + "application/vnd.blueice.multipass": { + source: "iana", + extensions: ["mpm"] + }, + "application/vnd.bluetooth.ep.oob": { + source: "iana" + }, + "application/vnd.bluetooth.le.oob": { + source: "iana" + }, + "application/vnd.bmi": { + source: "iana", + extensions: ["bmi"] + }, + "application/vnd.bpf": { + source: "iana" + }, + "application/vnd.bpf3": { + source: "iana" + }, + "application/vnd.businessobjects": { + source: "iana", + extensions: ["rep"] + }, + "application/vnd.byu.uapi+json": { + source: "iana", + compressible: true + }, + "application/vnd.cab-jscript": { + source: "iana" + }, + "application/vnd.canon-cpdl": { + source: "iana" + }, + "application/vnd.canon-lips": { + source: "iana" + }, + "application/vnd.capasystems-pg+json": { + source: "iana", + compressible: true + }, + "application/vnd.cendio.thinlinc.clientconf": { + source: "iana" + }, + "application/vnd.century-systems.tcp_stream": { + source: "iana" + }, + "application/vnd.chemdraw+xml": { + source: "iana", + compressible: true, + extensions: ["cdxml"] + }, + "application/vnd.chess-pgn": { + source: "iana" + }, + "application/vnd.chipnuts.karaoke-mmd": { + source: "iana", + extensions: ["mmd"] + }, + "application/vnd.ciedi": { + source: "iana" + }, + "application/vnd.cinderella": { + source: "iana", + extensions: ["cdy"] + }, + "application/vnd.cirpack.isdn-ext": { + source: "iana" + }, + "application/vnd.citationstyles.style+xml": { + source: "iana", + compressible: true, + extensions: ["csl"] + }, + "application/vnd.claymore": { + source: "iana", + extensions: ["cla"] + }, + "application/vnd.cloanto.rp9": { + source: "iana", + extensions: ["rp9"] + }, + "application/vnd.clonk.c4group": { + source: "iana", + extensions: ["c4g", "c4d", "c4f", "c4p", "c4u"] + }, + "application/vnd.cluetrust.cartomobile-config": { + source: "iana", + extensions: ["c11amc"] + }, + "application/vnd.cluetrust.cartomobile-config-pkg": { + source: "iana", + extensions: ["c11amz"] + }, + "application/vnd.coffeescript": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.document": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.document-template": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.presentation": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.presentation-template": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.spreadsheet": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.spreadsheet-template": { + source: "iana" + }, + "application/vnd.collection+json": { + source: "iana", + compressible: true + }, + "application/vnd.collection.doc+json": { + source: "iana", + compressible: true + }, + "application/vnd.collection.next+json": { + source: "iana", + compressible: true + }, + "application/vnd.comicbook+zip": { + source: "iana", + compressible: false + }, + "application/vnd.comicbook-rar": { + source: "iana" + }, + "application/vnd.commerce-battelle": { + source: "iana" + }, + "application/vnd.commonspace": { + source: "iana", + extensions: ["csp"] + }, + "application/vnd.contact.cmsg": { + source: "iana", + extensions: ["cdbcmsg"] + }, + "application/vnd.coreos.ignition+json": { + source: "iana", + compressible: true + }, + "application/vnd.cosmocaller": { + source: "iana", + extensions: ["cmc"] + }, + "application/vnd.crick.clicker": { + source: "iana", + extensions: ["clkx"] + }, + "application/vnd.crick.clicker.keyboard": { + source: "iana", + extensions: ["clkk"] + }, + "application/vnd.crick.clicker.palette": { + source: "iana", + extensions: ["clkp"] + }, + "application/vnd.crick.clicker.template": { + source: "iana", + extensions: ["clkt"] + }, + "application/vnd.crick.clicker.wordbank": { + source: "iana", + extensions: ["clkw"] + }, + "application/vnd.criticaltools.wbs+xml": { + source: "iana", + compressible: true, + extensions: ["wbs"] + }, + "application/vnd.cryptii.pipe+json": { + source: "iana", + compressible: true + }, + "application/vnd.crypto-shade-file": { + source: "iana" + }, + "application/vnd.cryptomator.encrypted": { + source: "iana" + }, + "application/vnd.cryptomator.vault": { + source: "iana" + }, + "application/vnd.ctc-posml": { + source: "iana", + extensions: ["pml"] + }, + "application/vnd.ctct.ws+xml": { + source: "iana", + compressible: true + }, + "application/vnd.cups-pdf": { + source: "iana" + }, + "application/vnd.cups-postscript": { + source: "iana" + }, + "application/vnd.cups-ppd": { + source: "iana", + extensions: ["ppd"] + }, + "application/vnd.cups-raster": { + source: "iana" + }, + "application/vnd.cups-raw": { + source: "iana" + }, + "application/vnd.curl": { + source: "iana" + }, + "application/vnd.curl.car": { + source: "apache", + extensions: ["car"] + }, + "application/vnd.curl.pcurl": { + source: "apache", + extensions: ["pcurl"] + }, + "application/vnd.cyan.dean.root+xml": { + source: "iana", + compressible: true + }, + "application/vnd.cybank": { + source: "iana" + }, + "application/vnd.cyclonedx+json": { + source: "iana", + compressible: true + }, + "application/vnd.cyclonedx+xml": { + source: "iana", + compressible: true + }, + "application/vnd.d2l.coursepackage1p0+zip": { + source: "iana", + compressible: false + }, + "application/vnd.d3m-dataset": { + source: "iana" + }, + "application/vnd.d3m-problem": { + source: "iana" + }, + "application/vnd.dart": { + source: "iana", + compressible: true, + extensions: ["dart"] + }, + "application/vnd.data-vision.rdz": { + source: "iana", + extensions: ["rdz"] + }, + "application/vnd.datapackage+json": { + source: "iana", + compressible: true + }, + "application/vnd.dataresource+json": { + source: "iana", + compressible: true + }, + "application/vnd.dbf": { + source: "iana", + extensions: ["dbf"] + }, + "application/vnd.debian.binary-package": { + source: "iana" + }, + "application/vnd.dece.data": { + source: "iana", + extensions: ["uvf", "uvvf", "uvd", "uvvd"] + }, + "application/vnd.dece.ttml+xml": { + source: "iana", + compressible: true, + extensions: ["uvt", "uvvt"] + }, + "application/vnd.dece.unspecified": { + source: "iana", + extensions: ["uvx", "uvvx"] + }, + "application/vnd.dece.zip": { + source: "iana", + extensions: ["uvz", "uvvz"] + }, + "application/vnd.denovo.fcselayout-link": { + source: "iana", + extensions: ["fe_launch"] + }, + "application/vnd.desmume.movie": { + source: "iana" + }, + "application/vnd.dir-bi.plate-dl-nosuffix": { + source: "iana" + }, + "application/vnd.dm.delegation+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dna": { + source: "iana", + extensions: ["dna"] + }, + "application/vnd.document+json": { + source: "iana", + compressible: true + }, + "application/vnd.dolby.mlp": { + source: "apache", + extensions: ["mlp"] + }, + "application/vnd.dolby.mobile.1": { + source: "iana" + }, + "application/vnd.dolby.mobile.2": { + source: "iana" + }, + "application/vnd.doremir.scorecloud-binary-document": { + source: "iana" + }, + "application/vnd.dpgraph": { + source: "iana", + extensions: ["dpg"] + }, + "application/vnd.dreamfactory": { + source: "iana", + extensions: ["dfac"] + }, + "application/vnd.drive+json": { + source: "iana", + compressible: true + }, + "application/vnd.ds-keypoint": { + source: "apache", + extensions: ["kpxx"] + }, + "application/vnd.dtg.local": { + source: "iana" + }, + "application/vnd.dtg.local.flash": { + source: "iana" + }, + "application/vnd.dtg.local.html": { + source: "iana" + }, + "application/vnd.dvb.ait": { + source: "iana", + extensions: ["ait"] + }, + "application/vnd.dvb.dvbisl+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.dvbj": { + source: "iana" + }, + "application/vnd.dvb.esgcontainer": { + source: "iana" + }, + "application/vnd.dvb.ipdcdftnotifaccess": { + source: "iana" + }, + "application/vnd.dvb.ipdcesgaccess": { + source: "iana" + }, + "application/vnd.dvb.ipdcesgaccess2": { + source: "iana" + }, + "application/vnd.dvb.ipdcesgpdd": { + source: "iana" + }, + "application/vnd.dvb.ipdcroaming": { + source: "iana" + }, + "application/vnd.dvb.iptv.alfec-base": { + source: "iana" + }, + "application/vnd.dvb.iptv.alfec-enhancement": { + source: "iana" + }, + "application/vnd.dvb.notif-aggregate-root+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-container+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-generic+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-ia-msglist+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-ia-registration-request+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-ia-registration-response+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-init+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.pfr": { + source: "iana" + }, + "application/vnd.dvb.service": { + source: "iana", + extensions: ["svc"] + }, + "application/vnd.dxr": { + source: "iana" + }, + "application/vnd.dynageo": { + source: "iana", + extensions: ["geo"] + }, + "application/vnd.dzr": { + source: "iana" + }, + "application/vnd.easykaraoke.cdgdownload": { + source: "iana" + }, + "application/vnd.ecdis-update": { + source: "iana" + }, + "application/vnd.ecip.rlp": { + source: "iana" + }, + "application/vnd.eclipse.ditto+json": { + source: "iana", + compressible: true + }, + "application/vnd.ecowin.chart": { + source: "iana", + extensions: ["mag"] + }, + "application/vnd.ecowin.filerequest": { + source: "iana" + }, + "application/vnd.ecowin.fileupdate": { + source: "iana" + }, + "application/vnd.ecowin.series": { + source: "iana" + }, + "application/vnd.ecowin.seriesrequest": { + source: "iana" + }, + "application/vnd.ecowin.seriesupdate": { + source: "iana" + }, + "application/vnd.efi.img": { + source: "iana" + }, + "application/vnd.efi.iso": { + source: "iana" + }, + "application/vnd.emclient.accessrequest+xml": { + source: "iana", + compressible: true + }, + "application/vnd.enliven": { + source: "iana", + extensions: ["nml"] + }, + "application/vnd.enphase.envoy": { + source: "iana" + }, + "application/vnd.eprints.data+xml": { + source: "iana", + compressible: true + }, + "application/vnd.epson.esf": { + source: "iana", + extensions: ["esf"] + }, + "application/vnd.epson.msf": { + source: "iana", + extensions: ["msf"] + }, + "application/vnd.epson.quickanime": { + source: "iana", + extensions: ["qam"] + }, + "application/vnd.epson.salt": { + source: "iana", + extensions: ["slt"] + }, + "application/vnd.epson.ssf": { + source: "iana", + extensions: ["ssf"] + }, + "application/vnd.ericsson.quickcall": { + source: "iana" + }, + "application/vnd.espass-espass+zip": { + source: "iana", + compressible: false + }, + "application/vnd.eszigno3+xml": { + source: "iana", + compressible: true, + extensions: ["es3", "et3"] + }, + "application/vnd.etsi.aoc+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.asic-e+zip": { + source: "iana", + compressible: false + }, + "application/vnd.etsi.asic-s+zip": { + source: "iana", + compressible: false + }, + "application/vnd.etsi.cug+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvcommand+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvdiscovery+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvprofile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvsad-bc+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvsad-cod+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvsad-npvr+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvservice+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvsync+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvueprofile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.mcid+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.mheg5": { + source: "iana" + }, + "application/vnd.etsi.overload-control-policy-dataset+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.pstn+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.sci+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.simservs+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.timestamp-token": { + source: "iana" + }, + "application/vnd.etsi.tsl+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.tsl.der": { + source: "iana" + }, + "application/vnd.eu.kasparian.car+json": { + source: "iana", + compressible: true + }, + "application/vnd.eudora.data": { + source: "iana" + }, + "application/vnd.evolv.ecig.profile": { + source: "iana" + }, + "application/vnd.evolv.ecig.settings": { + source: "iana" + }, + "application/vnd.evolv.ecig.theme": { + source: "iana" + }, + "application/vnd.exstream-empower+zip": { + source: "iana", + compressible: false + }, + "application/vnd.exstream-package": { + source: "iana" + }, + "application/vnd.ezpix-album": { + source: "iana", + extensions: ["ez2"] + }, + "application/vnd.ezpix-package": { + source: "iana", + extensions: ["ez3"] + }, + "application/vnd.f-secure.mobile": { + source: "iana" + }, + "application/vnd.familysearch.gedcom+zip": { + source: "iana", + compressible: false + }, + "application/vnd.fastcopy-disk-image": { + source: "iana" + }, + "application/vnd.fdf": { + source: "iana", + extensions: ["fdf"] + }, + "application/vnd.fdsn.mseed": { + source: "iana", + extensions: ["mseed"] + }, + "application/vnd.fdsn.seed": { + source: "iana", + extensions: ["seed", "dataless"] + }, + "application/vnd.ffsns": { + source: "iana" + }, + "application/vnd.ficlab.flb+zip": { + source: "iana", + compressible: false + }, + "application/vnd.filmit.zfc": { + source: "iana" + }, + "application/vnd.fints": { + source: "iana" + }, + "application/vnd.firemonkeys.cloudcell": { + source: "iana" + }, + "application/vnd.flographit": { + source: "iana", + extensions: ["gph"] + }, + "application/vnd.fluxtime.clip": { + source: "iana", + extensions: ["ftc"] + }, + "application/vnd.font-fontforge-sfd": { + source: "iana" + }, + "application/vnd.framemaker": { + source: "iana", + extensions: ["fm", "frame", "maker", "book"] + }, + "application/vnd.frogans.fnc": { + source: "iana", + extensions: ["fnc"] + }, + "application/vnd.frogans.ltf": { + source: "iana", + extensions: ["ltf"] + }, + "application/vnd.fsc.weblaunch": { + source: "iana", + extensions: ["fsc"] + }, + "application/vnd.fujifilm.fb.docuworks": { + source: "iana" + }, + "application/vnd.fujifilm.fb.docuworks.binder": { + source: "iana" + }, + "application/vnd.fujifilm.fb.docuworks.container": { + source: "iana" + }, + "application/vnd.fujifilm.fb.jfi+xml": { + source: "iana", + compressible: true + }, + "application/vnd.fujitsu.oasys": { + source: "iana", + extensions: ["oas"] + }, + "application/vnd.fujitsu.oasys2": { + source: "iana", + extensions: ["oa2"] + }, + "application/vnd.fujitsu.oasys3": { + source: "iana", + extensions: ["oa3"] + }, + "application/vnd.fujitsu.oasysgp": { + source: "iana", + extensions: ["fg5"] + }, + "application/vnd.fujitsu.oasysprs": { + source: "iana", + extensions: ["bh2"] + }, + "application/vnd.fujixerox.art-ex": { + source: "iana" + }, + "application/vnd.fujixerox.art4": { + source: "iana" + }, + "application/vnd.fujixerox.ddd": { + source: "iana", + extensions: ["ddd"] + }, + "application/vnd.fujixerox.docuworks": { + source: "iana", + extensions: ["xdw"] + }, + "application/vnd.fujixerox.docuworks.binder": { + source: "iana", + extensions: ["xbd"] + }, + "application/vnd.fujixerox.docuworks.container": { + source: "iana" + }, + "application/vnd.fujixerox.hbpl": { + source: "iana" + }, + "application/vnd.fut-misnet": { + source: "iana" + }, + "application/vnd.futoin+cbor": { + source: "iana" + }, + "application/vnd.futoin+json": { + source: "iana", + compressible: true + }, + "application/vnd.fuzzysheet": { + source: "iana", + extensions: ["fzs"] + }, + "application/vnd.genomatix.tuxedo": { + source: "iana", + extensions: ["txd"] + }, + "application/vnd.gentics.grd+json": { + source: "iana", + compressible: true + }, + "application/vnd.geo+json": { + source: "iana", + compressible: true + }, + "application/vnd.geocube+xml": { + source: "iana", + compressible: true + }, + "application/vnd.geogebra.file": { + source: "iana", + extensions: ["ggb"] + }, + "application/vnd.geogebra.slides": { + source: "iana" + }, + "application/vnd.geogebra.tool": { + source: "iana", + extensions: ["ggt"] + }, + "application/vnd.geometry-explorer": { + source: "iana", + extensions: ["gex", "gre"] + }, + "application/vnd.geonext": { + source: "iana", + extensions: ["gxt"] + }, + "application/vnd.geoplan": { + source: "iana", + extensions: ["g2w"] + }, + "application/vnd.geospace": { + source: "iana", + extensions: ["g3w"] + }, + "application/vnd.gerber": { + source: "iana" + }, + "application/vnd.globalplatform.card-content-mgt": { + source: "iana" + }, + "application/vnd.globalplatform.card-content-mgt-response": { + source: "iana" + }, + "application/vnd.gmx": { + source: "iana", + extensions: ["gmx"] + }, + "application/vnd.google-apps.document": { + compressible: false, + extensions: ["gdoc"] + }, + "application/vnd.google-apps.presentation": { + compressible: false, + extensions: ["gslides"] + }, + "application/vnd.google-apps.spreadsheet": { + compressible: false, + extensions: ["gsheet"] + }, + "application/vnd.google-earth.kml+xml": { + source: "iana", + compressible: true, + extensions: ["kml"] + }, + "application/vnd.google-earth.kmz": { + source: "iana", + compressible: false, + extensions: ["kmz"] + }, + "application/vnd.gov.sk.e-form+xml": { + source: "iana", + compressible: true + }, + "application/vnd.gov.sk.e-form+zip": { + source: "iana", + compressible: false + }, + "application/vnd.gov.sk.xmldatacontainer+xml": { + source: "iana", + compressible: true + }, + "application/vnd.grafeq": { + source: "iana", + extensions: ["gqf", "gqs"] + }, + "application/vnd.gridmp": { + source: "iana" + }, + "application/vnd.groove-account": { + source: "iana", + extensions: ["gac"] + }, + "application/vnd.groove-help": { + source: "iana", + extensions: ["ghf"] + }, + "application/vnd.groove-identity-message": { + source: "iana", + extensions: ["gim"] + }, + "application/vnd.groove-injector": { + source: "iana", + extensions: ["grv"] + }, + "application/vnd.groove-tool-message": { + source: "iana", + extensions: ["gtm"] + }, + "application/vnd.groove-tool-template": { + source: "iana", + extensions: ["tpl"] + }, + "application/vnd.groove-vcard": { + source: "iana", + extensions: ["vcg"] + }, + "application/vnd.hal+json": { + source: "iana", + compressible: true + }, + "application/vnd.hal+xml": { + source: "iana", + compressible: true, + extensions: ["hal"] + }, + "application/vnd.handheld-entertainment+xml": { + source: "iana", + compressible: true, + extensions: ["zmm"] + }, + "application/vnd.hbci": { + source: "iana", + extensions: ["hbci"] + }, + "application/vnd.hc+json": { + source: "iana", + compressible: true + }, + "application/vnd.hcl-bireports": { + source: "iana" + }, + "application/vnd.hdt": { + source: "iana" + }, + "application/vnd.heroku+json": { + source: "iana", + compressible: true + }, + "application/vnd.hhe.lesson-player": { + source: "iana", + extensions: ["les"] + }, + "application/vnd.hl7cda+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.hl7v2+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.hp-hpgl": { + source: "iana", + extensions: ["hpgl"] + }, + "application/vnd.hp-hpid": { + source: "iana", + extensions: ["hpid"] + }, + "application/vnd.hp-hps": { + source: "iana", + extensions: ["hps"] + }, + "application/vnd.hp-jlyt": { + source: "iana", + extensions: ["jlt"] + }, + "application/vnd.hp-pcl": { + source: "iana", + extensions: ["pcl"] + }, + "application/vnd.hp-pclxl": { + source: "iana", + extensions: ["pclxl"] + }, + "application/vnd.httphone": { + source: "iana" + }, + "application/vnd.hydrostatix.sof-data": { + source: "iana", + extensions: ["sfd-hdstx"] + }, + "application/vnd.hyper+json": { + source: "iana", + compressible: true + }, + "application/vnd.hyper-item+json": { + source: "iana", + compressible: true + }, + "application/vnd.hyperdrive+json": { + source: "iana", + compressible: true + }, + "application/vnd.hzn-3d-crossword": { + source: "iana" + }, + "application/vnd.ibm.afplinedata": { + source: "iana" + }, + "application/vnd.ibm.electronic-media": { + source: "iana" + }, + "application/vnd.ibm.minipay": { + source: "iana", + extensions: ["mpy"] + }, + "application/vnd.ibm.modcap": { + source: "iana", + extensions: ["afp", "listafp", "list3820"] + }, + "application/vnd.ibm.rights-management": { + source: "iana", + extensions: ["irm"] + }, + "application/vnd.ibm.secure-container": { + source: "iana", + extensions: ["sc"] + }, + "application/vnd.iccprofile": { + source: "iana", + extensions: ["icc", "icm"] + }, + "application/vnd.ieee.1905": { + source: "iana" + }, + "application/vnd.igloader": { + source: "iana", + extensions: ["igl"] + }, + "application/vnd.imagemeter.folder+zip": { + source: "iana", + compressible: false + }, + "application/vnd.imagemeter.image+zip": { + source: "iana", + compressible: false + }, + "application/vnd.immervision-ivp": { + source: "iana", + extensions: ["ivp"] + }, + "application/vnd.immervision-ivu": { + source: "iana", + extensions: ["ivu"] + }, + "application/vnd.ims.imsccv1p1": { + source: "iana" + }, + "application/vnd.ims.imsccv1p2": { + source: "iana" + }, + "application/vnd.ims.imsccv1p3": { + source: "iana" + }, + "application/vnd.ims.lis.v2.result+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolconsumerprofile+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolproxy+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolproxy.id+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolsettings+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolsettings.simple+json": { + source: "iana", + compressible: true + }, + "application/vnd.informedcontrol.rms+xml": { + source: "iana", + compressible: true + }, + "application/vnd.informix-visionary": { + source: "iana" + }, + "application/vnd.infotech.project": { + source: "iana" + }, + "application/vnd.infotech.project+xml": { + source: "iana", + compressible: true + }, + "application/vnd.innopath.wamp.notification": { + source: "iana" + }, + "application/vnd.insors.igm": { + source: "iana", + extensions: ["igm"] + }, + "application/vnd.intercon.formnet": { + source: "iana", + extensions: ["xpw", "xpx"] + }, + "application/vnd.intergeo": { + source: "iana", + extensions: ["i2g"] + }, + "application/vnd.intertrust.digibox": { + source: "iana" + }, + "application/vnd.intertrust.nncp": { + source: "iana" + }, + "application/vnd.intu.qbo": { + source: "iana", + extensions: ["qbo"] + }, + "application/vnd.intu.qfx": { + source: "iana", + extensions: ["qfx"] + }, + "application/vnd.iptc.g2.catalogitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.conceptitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.knowledgeitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.newsitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.newsmessage+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.packageitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.planningitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ipunplugged.rcprofile": { + source: "iana", + extensions: ["rcprofile"] + }, + "application/vnd.irepository.package+xml": { + source: "iana", + compressible: true, + extensions: ["irp"] + }, + "application/vnd.is-xpr": { + source: "iana", + extensions: ["xpr"] + }, + "application/vnd.isac.fcs": { + source: "iana", + extensions: ["fcs"] + }, + "application/vnd.iso11783-10+zip": { + source: "iana", + compressible: false + }, + "application/vnd.jam": { + source: "iana", + extensions: ["jam"] + }, + "application/vnd.japannet-directory-service": { + source: "iana" + }, + "application/vnd.japannet-jpnstore-wakeup": { + source: "iana" + }, + "application/vnd.japannet-payment-wakeup": { + source: "iana" + }, + "application/vnd.japannet-registration": { + source: "iana" + }, + "application/vnd.japannet-registration-wakeup": { + source: "iana" + }, + "application/vnd.japannet-setstore-wakeup": { + source: "iana" + }, + "application/vnd.japannet-verification": { + source: "iana" + }, + "application/vnd.japannet-verification-wakeup": { + source: "iana" + }, + "application/vnd.jcp.javame.midlet-rms": { + source: "iana", + extensions: ["rms"] + }, + "application/vnd.jisp": { + source: "iana", + extensions: ["jisp"] + }, + "application/vnd.joost.joda-archive": { + source: "iana", + extensions: ["joda"] + }, + "application/vnd.jsk.isdn-ngn": { + source: "iana" + }, + "application/vnd.kahootz": { + source: "iana", + extensions: ["ktz", "ktr"] + }, + "application/vnd.kde.karbon": { + source: "iana", + extensions: ["karbon"] + }, + "application/vnd.kde.kchart": { + source: "iana", + extensions: ["chrt"] + }, + "application/vnd.kde.kformula": { + source: "iana", + extensions: ["kfo"] + }, + "application/vnd.kde.kivio": { + source: "iana", + extensions: ["flw"] + }, + "application/vnd.kde.kontour": { + source: "iana", + extensions: ["kon"] + }, + "application/vnd.kde.kpresenter": { + source: "iana", + extensions: ["kpr", "kpt"] + }, + "application/vnd.kde.kspread": { + source: "iana", + extensions: ["ksp"] + }, + "application/vnd.kde.kword": { + source: "iana", + extensions: ["kwd", "kwt"] + }, + "application/vnd.kenameaapp": { + source: "iana", + extensions: ["htke"] + }, + "application/vnd.kidspiration": { + source: "iana", + extensions: ["kia"] + }, + "application/vnd.kinar": { + source: "iana", + extensions: ["kne", "knp"] + }, + "application/vnd.koan": { + source: "iana", + extensions: ["skp", "skd", "skt", "skm"] + }, + "application/vnd.kodak-descriptor": { + source: "iana", + extensions: ["sse"] + }, + "application/vnd.las": { + source: "iana" + }, + "application/vnd.las.las+json": { + source: "iana", + compressible: true + }, + "application/vnd.las.las+xml": { + source: "iana", + compressible: true, + extensions: ["lasxml"] + }, + "application/vnd.laszip": { + source: "iana" + }, + "application/vnd.leap+json": { + source: "iana", + compressible: true + }, + "application/vnd.liberty-request+xml": { + source: "iana", + compressible: true + }, + "application/vnd.llamagraphics.life-balance.desktop": { + source: "iana", + extensions: ["lbd"] + }, + "application/vnd.llamagraphics.life-balance.exchange+xml": { + source: "iana", + compressible: true, + extensions: ["lbe"] + }, + "application/vnd.logipipe.circuit+zip": { + source: "iana", + compressible: false + }, + "application/vnd.loom": { + source: "iana" + }, + "application/vnd.lotus-1-2-3": { + source: "iana", + extensions: ["123"] + }, + "application/vnd.lotus-approach": { + source: "iana", + extensions: ["apr"] + }, + "application/vnd.lotus-freelance": { + source: "iana", + extensions: ["pre"] + }, + "application/vnd.lotus-notes": { + source: "iana", + extensions: ["nsf"] + }, + "application/vnd.lotus-organizer": { + source: "iana", + extensions: ["org"] + }, + "application/vnd.lotus-screencam": { + source: "iana", + extensions: ["scm"] + }, + "application/vnd.lotus-wordpro": { + source: "iana", + extensions: ["lwp"] + }, + "application/vnd.macports.portpkg": { + source: "iana", + extensions: ["portpkg"] + }, + "application/vnd.mapbox-vector-tile": { + source: "iana", + extensions: ["mvt"] + }, + "application/vnd.marlin.drm.actiontoken+xml": { + source: "iana", + compressible: true + }, + "application/vnd.marlin.drm.conftoken+xml": { + source: "iana", + compressible: true + }, + "application/vnd.marlin.drm.license+xml": { + source: "iana", + compressible: true + }, + "application/vnd.marlin.drm.mdcf": { + source: "iana" + }, + "application/vnd.mason+json": { + source: "iana", + compressible: true + }, + "application/vnd.maxar.archive.3tz+zip": { + source: "iana", + compressible: false + }, + "application/vnd.maxmind.maxmind-db": { + source: "iana" + }, + "application/vnd.mcd": { + source: "iana", + extensions: ["mcd"] + }, + "application/vnd.medcalcdata": { + source: "iana", + extensions: ["mc1"] + }, + "application/vnd.mediastation.cdkey": { + source: "iana", + extensions: ["cdkey"] + }, + "application/vnd.meridian-slingshot": { + source: "iana" + }, + "application/vnd.mfer": { + source: "iana", + extensions: ["mwf"] + }, + "application/vnd.mfmp": { + source: "iana", + extensions: ["mfm"] + }, + "application/vnd.micro+json": { + source: "iana", + compressible: true + }, + "application/vnd.micrografx.flo": { + source: "iana", + extensions: ["flo"] + }, + "application/vnd.micrografx.igx": { + source: "iana", + extensions: ["igx"] + }, + "application/vnd.microsoft.portable-executable": { + source: "iana" + }, + "application/vnd.microsoft.windows.thumbnail-cache": { + source: "iana" + }, + "application/vnd.miele+json": { + source: "iana", + compressible: true + }, + "application/vnd.mif": { + source: "iana", + extensions: ["mif"] + }, + "application/vnd.minisoft-hp3000-save": { + source: "iana" + }, + "application/vnd.mitsubishi.misty-guard.trustweb": { + source: "iana" + }, + "application/vnd.mobius.daf": { + source: "iana", + extensions: ["daf"] + }, + "application/vnd.mobius.dis": { + source: "iana", + extensions: ["dis"] + }, + "application/vnd.mobius.mbk": { + source: "iana", + extensions: ["mbk"] + }, + "application/vnd.mobius.mqy": { + source: "iana", + extensions: ["mqy"] + }, + "application/vnd.mobius.msl": { + source: "iana", + extensions: ["msl"] + }, + "application/vnd.mobius.plc": { + source: "iana", + extensions: ["plc"] + }, + "application/vnd.mobius.txf": { + source: "iana", + extensions: ["txf"] + }, + "application/vnd.mophun.application": { + source: "iana", + extensions: ["mpn"] + }, + "application/vnd.mophun.certificate": { + source: "iana", + extensions: ["mpc"] + }, + "application/vnd.motorola.flexsuite": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.adsi": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.fis": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.gotap": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.kmr": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.ttc": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.wem": { + source: "iana" + }, + "application/vnd.motorola.iprm": { + source: "iana" + }, + "application/vnd.mozilla.xul+xml": { + source: "iana", + compressible: true, + extensions: ["xul"] + }, + "application/vnd.ms-3mfdocument": { + source: "iana" + }, + "application/vnd.ms-artgalry": { + source: "iana", + extensions: ["cil"] + }, + "application/vnd.ms-asf": { + source: "iana" + }, + "application/vnd.ms-cab-compressed": { + source: "iana", + extensions: ["cab"] + }, + "application/vnd.ms-color.iccprofile": { + source: "apache" + }, + "application/vnd.ms-excel": { + source: "iana", + compressible: false, + extensions: ["xls", "xlm", "xla", "xlc", "xlt", "xlw"] + }, + "application/vnd.ms-excel.addin.macroenabled.12": { + source: "iana", + extensions: ["xlam"] + }, + "application/vnd.ms-excel.sheet.binary.macroenabled.12": { + source: "iana", + extensions: ["xlsb"] + }, + "application/vnd.ms-excel.sheet.macroenabled.12": { + source: "iana", + extensions: ["xlsm"] + }, + "application/vnd.ms-excel.template.macroenabled.12": { + source: "iana", + extensions: ["xltm"] + }, + "application/vnd.ms-fontobject": { + source: "iana", + compressible: true, + extensions: ["eot"] + }, + "application/vnd.ms-htmlhelp": { + source: "iana", + extensions: ["chm"] + }, + "application/vnd.ms-ims": { + source: "iana", + extensions: ["ims"] + }, + "application/vnd.ms-lrm": { + source: "iana", + extensions: ["lrm"] + }, + "application/vnd.ms-office.activex+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ms-officetheme": { + source: "iana", + extensions: ["thmx"] + }, + "application/vnd.ms-opentype": { + source: "apache", + compressible: true + }, + "application/vnd.ms-outlook": { + compressible: false, + extensions: ["msg"] + }, + "application/vnd.ms-package.obfuscated-opentype": { + source: "apache" + }, + "application/vnd.ms-pki.seccat": { + source: "apache", + extensions: ["cat"] + }, + "application/vnd.ms-pki.stl": { + source: "apache", + extensions: ["stl"] + }, + "application/vnd.ms-playready.initiator+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ms-powerpoint": { + source: "iana", + compressible: false, + extensions: ["ppt", "pps", "pot"] + }, + "application/vnd.ms-powerpoint.addin.macroenabled.12": { + source: "iana", + extensions: ["ppam"] + }, + "application/vnd.ms-powerpoint.presentation.macroenabled.12": { + source: "iana", + extensions: ["pptm"] + }, + "application/vnd.ms-powerpoint.slide.macroenabled.12": { + source: "iana", + extensions: ["sldm"] + }, + "application/vnd.ms-powerpoint.slideshow.macroenabled.12": { + source: "iana", + extensions: ["ppsm"] + }, + "application/vnd.ms-powerpoint.template.macroenabled.12": { + source: "iana", + extensions: ["potm"] + }, + "application/vnd.ms-printdevicecapabilities+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ms-printing.printticket+xml": { + source: "apache", + compressible: true + }, + "application/vnd.ms-printschematicket+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ms-project": { + source: "iana", + extensions: ["mpp", "mpt"] + }, + "application/vnd.ms-tnef": { + source: "iana" + }, + "application/vnd.ms-windows.devicepairing": { + source: "iana" + }, + "application/vnd.ms-windows.nwprinting.oob": { + source: "iana" + }, + "application/vnd.ms-windows.printerpairing": { + source: "iana" + }, + "application/vnd.ms-windows.wsd.oob": { + source: "iana" + }, + "application/vnd.ms-wmdrm.lic-chlg-req": { + source: "iana" + }, + "application/vnd.ms-wmdrm.lic-resp": { + source: "iana" + }, + "application/vnd.ms-wmdrm.meter-chlg-req": { + source: "iana" + }, + "application/vnd.ms-wmdrm.meter-resp": { + source: "iana" + }, + "application/vnd.ms-word.document.macroenabled.12": { + source: "iana", + extensions: ["docm"] + }, + "application/vnd.ms-word.template.macroenabled.12": { + source: "iana", + extensions: ["dotm"] + }, + "application/vnd.ms-works": { + source: "iana", + extensions: ["wps", "wks", "wcm", "wdb"] + }, + "application/vnd.ms-wpl": { + source: "iana", + extensions: ["wpl"] + }, + "application/vnd.ms-xpsdocument": { + source: "iana", + compressible: false, + extensions: ["xps"] + }, + "application/vnd.msa-disk-image": { + source: "iana" + }, + "application/vnd.mseq": { + source: "iana", + extensions: ["mseq"] + }, + "application/vnd.msign": { + source: "iana" + }, + "application/vnd.multiad.creator": { + source: "iana" + }, + "application/vnd.multiad.creator.cif": { + source: "iana" + }, + "application/vnd.music-niff": { + source: "iana" + }, + "application/vnd.musician": { + source: "iana", + extensions: ["mus"] + }, + "application/vnd.muvee.style": { + source: "iana", + extensions: ["msty"] + }, + "application/vnd.mynfc": { + source: "iana", + extensions: ["taglet"] + }, + "application/vnd.nacamar.ybrid+json": { + source: "iana", + compressible: true + }, + "application/vnd.ncd.control": { + source: "iana" + }, + "application/vnd.ncd.reference": { + source: "iana" + }, + "application/vnd.nearst.inv+json": { + source: "iana", + compressible: true + }, + "application/vnd.nebumind.line": { + source: "iana" + }, + "application/vnd.nervana": { + source: "iana" + }, + "application/vnd.netfpx": { + source: "iana" + }, + "application/vnd.neurolanguage.nlu": { + source: "iana", + extensions: ["nlu"] + }, + "application/vnd.nimn": { + source: "iana" + }, + "application/vnd.nintendo.nitro.rom": { + source: "iana" + }, + "application/vnd.nintendo.snes.rom": { + source: "iana" + }, + "application/vnd.nitf": { + source: "iana", + extensions: ["ntf", "nitf"] + }, + "application/vnd.noblenet-directory": { + source: "iana", + extensions: ["nnd"] + }, + "application/vnd.noblenet-sealer": { + source: "iana", + extensions: ["nns"] + }, + "application/vnd.noblenet-web": { + source: "iana", + extensions: ["nnw"] + }, + "application/vnd.nokia.catalogs": { + source: "iana" + }, + "application/vnd.nokia.conml+wbxml": { + source: "iana" + }, + "application/vnd.nokia.conml+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.iptv.config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.isds-radio-presets": { + source: "iana" + }, + "application/vnd.nokia.landmark+wbxml": { + source: "iana" + }, + "application/vnd.nokia.landmark+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.landmarkcollection+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.n-gage.ac+xml": { + source: "iana", + compressible: true, + extensions: ["ac"] + }, + "application/vnd.nokia.n-gage.data": { + source: "iana", + extensions: ["ngdat"] + }, + "application/vnd.nokia.n-gage.symbian.install": { + source: "iana", + extensions: ["n-gage"] + }, + "application/vnd.nokia.ncd": { + source: "iana" + }, + "application/vnd.nokia.pcd+wbxml": { + source: "iana" + }, + "application/vnd.nokia.pcd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.radio-preset": { + source: "iana", + extensions: ["rpst"] + }, + "application/vnd.nokia.radio-presets": { + source: "iana", + extensions: ["rpss"] + }, + "application/vnd.novadigm.edm": { + source: "iana", + extensions: ["edm"] + }, + "application/vnd.novadigm.edx": { + source: "iana", + extensions: ["edx"] + }, + "application/vnd.novadigm.ext": { + source: "iana", + extensions: ["ext"] + }, + "application/vnd.ntt-local.content-share": { + source: "iana" + }, + "application/vnd.ntt-local.file-transfer": { + source: "iana" + }, + "application/vnd.ntt-local.ogw_remote-access": { + source: "iana" + }, + "application/vnd.ntt-local.sip-ta_remote": { + source: "iana" + }, + "application/vnd.ntt-local.sip-ta_tcp_stream": { + source: "iana" + }, + "application/vnd.oasis.opendocument.chart": { + source: "iana", + extensions: ["odc"] + }, + "application/vnd.oasis.opendocument.chart-template": { + source: "iana", + extensions: ["otc"] + }, + "application/vnd.oasis.opendocument.database": { + source: "iana", + extensions: ["odb"] + }, + "application/vnd.oasis.opendocument.formula": { + source: "iana", + extensions: ["odf"] + }, + "application/vnd.oasis.opendocument.formula-template": { + source: "iana", + extensions: ["odft"] + }, + "application/vnd.oasis.opendocument.graphics": { + source: "iana", + compressible: false, + extensions: ["odg"] + }, + "application/vnd.oasis.opendocument.graphics-template": { + source: "iana", + extensions: ["otg"] + }, + "application/vnd.oasis.opendocument.image": { + source: "iana", + extensions: ["odi"] + }, + "application/vnd.oasis.opendocument.image-template": { + source: "iana", + extensions: ["oti"] + }, + "application/vnd.oasis.opendocument.presentation": { + source: "iana", + compressible: false, + extensions: ["odp"] + }, + "application/vnd.oasis.opendocument.presentation-template": { + source: "iana", + extensions: ["otp"] + }, + "application/vnd.oasis.opendocument.spreadsheet": { + source: "iana", + compressible: false, + extensions: ["ods"] + }, + "application/vnd.oasis.opendocument.spreadsheet-template": { + source: "iana", + extensions: ["ots"] + }, + "application/vnd.oasis.opendocument.text": { + source: "iana", + compressible: false, + extensions: ["odt"] + }, + "application/vnd.oasis.opendocument.text-master": { + source: "iana", + extensions: ["odm"] + }, + "application/vnd.oasis.opendocument.text-template": { + source: "iana", + extensions: ["ott"] + }, + "application/vnd.oasis.opendocument.text-web": { + source: "iana", + extensions: ["oth"] + }, + "application/vnd.obn": { + source: "iana" + }, + "application/vnd.ocf+cbor": { + source: "iana" + }, + "application/vnd.oci.image.manifest.v1+json": { + source: "iana", + compressible: true + }, + "application/vnd.oftn.l10n+json": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.contentaccessdownload+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.contentaccessstreaming+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.cspg-hexbinary": { + source: "iana" + }, + "application/vnd.oipf.dae.svg+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.dae.xhtml+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.mippvcontrolmessage+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.pae.gem": { + source: "iana" + }, + "application/vnd.oipf.spdiscovery+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.spdlist+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.ueprofile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.userprofile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.olpc-sugar": { + source: "iana", + extensions: ["xo"] + }, + "application/vnd.oma-scws-config": { + source: "iana" + }, + "application/vnd.oma-scws-http-request": { + source: "iana" + }, + "application/vnd.oma-scws-http-response": { + source: "iana" + }, + "application/vnd.oma.bcast.associated-procedure-parameter+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.drm-trigger+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.imd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.ltkm": { + source: "iana" + }, + "application/vnd.oma.bcast.notification+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.provisioningtrigger": { + source: "iana" + }, + "application/vnd.oma.bcast.sgboot": { + source: "iana" + }, + "application/vnd.oma.bcast.sgdd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.sgdu": { + source: "iana" + }, + "application/vnd.oma.bcast.simple-symbol-container": { + source: "iana" + }, + "application/vnd.oma.bcast.smartcard-trigger+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.sprov+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.stkm": { + source: "iana" + }, + "application/vnd.oma.cab-address-book+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.cab-feature-handler+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.cab-pcc+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.cab-subs-invite+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.cab-user-prefs+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.dcd": { + source: "iana" + }, + "application/vnd.oma.dcdc": { + source: "iana" + }, + "application/vnd.oma.dd2+xml": { + source: "iana", + compressible: true, + extensions: ["dd2"] + }, + "application/vnd.oma.drm.risd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.group-usage-list+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.lwm2m+cbor": { + source: "iana" + }, + "application/vnd.oma.lwm2m+json": { + source: "iana", + compressible: true + }, + "application/vnd.oma.lwm2m+tlv": { + source: "iana" + }, + "application/vnd.oma.pal+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.detailed-progress-report+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.final-report+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.groups+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.invocation-descriptor+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.optimized-progress-report+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.push": { + source: "iana" + }, + "application/vnd.oma.scidm.messages+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.xcap-directory+xml": { + source: "iana", + compressible: true + }, + "application/vnd.omads-email+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.omads-file+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.omads-folder+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.omaloc-supl-init": { + source: "iana" + }, + "application/vnd.onepager": { + source: "iana" + }, + "application/vnd.onepagertamp": { + source: "iana" + }, + "application/vnd.onepagertamx": { + source: "iana" + }, + "application/vnd.onepagertat": { + source: "iana" + }, + "application/vnd.onepagertatp": { + source: "iana" + }, + "application/vnd.onepagertatx": { + source: "iana" + }, + "application/vnd.openblox.game+xml": { + source: "iana", + compressible: true, + extensions: ["obgx"] + }, + "application/vnd.openblox.game-binary": { + source: "iana" + }, + "application/vnd.openeye.oeb": { + source: "iana" + }, + "application/vnd.openofficeorg.extension": { + source: "apache", + extensions: ["oxt"] + }, + "application/vnd.openstreetmap.data+xml": { + source: "iana", + compressible: true, + extensions: ["osm"] + }, + "application/vnd.opentimestamps.ots": { + source: "iana" + }, + "application/vnd.openxmlformats-officedocument.custom-properties+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawing+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.extended-properties+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.presentation": { + source: "iana", + compressible: false, + extensions: ["pptx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slide": { + source: "iana", + extensions: ["sldx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideshow": { + source: "iana", + extensions: ["ppsx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.template": { + source: "iana", + extensions: ["potx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": { + source: "iana", + compressible: false, + extensions: ["xlsx"] + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.template": { + source: "iana", + extensions: ["xltx"] + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.theme+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.themeoverride+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.vmldrawing": { + source: "iana" + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document": { + source: "iana", + compressible: false, + extensions: ["docx"] + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.template": { + source: "iana", + extensions: ["dotx"] + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-package.core-properties+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-package.relationships+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oracle.resource+json": { + source: "iana", + compressible: true + }, + "application/vnd.orange.indata": { + source: "iana" + }, + "application/vnd.osa.netdeploy": { + source: "iana" + }, + "application/vnd.osgeo.mapguide.package": { + source: "iana", + extensions: ["mgp"] + }, + "application/vnd.osgi.bundle": { + source: "iana" + }, + "application/vnd.osgi.dp": { + source: "iana", + extensions: ["dp"] + }, + "application/vnd.osgi.subsystem": { + source: "iana", + extensions: ["esa"] + }, + "application/vnd.otps.ct-kip+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oxli.countgraph": { + source: "iana" + }, + "application/vnd.pagerduty+json": { + source: "iana", + compressible: true + }, + "application/vnd.palm": { + source: "iana", + extensions: ["pdb", "pqa", "oprc"] + }, + "application/vnd.panoply": { + source: "iana" + }, + "application/vnd.paos.xml": { + source: "iana" + }, + "application/vnd.patentdive": { + source: "iana" + }, + "application/vnd.patientecommsdoc": { + source: "iana" + }, + "application/vnd.pawaafile": { + source: "iana", + extensions: ["paw"] + }, + "application/vnd.pcos": { + source: "iana" + }, + "application/vnd.pg.format": { + source: "iana", + extensions: ["str"] + }, + "application/vnd.pg.osasli": { + source: "iana", + extensions: ["ei6"] + }, + "application/vnd.piaccess.application-licence": { + source: "iana" + }, + "application/vnd.picsel": { + source: "iana", + extensions: ["efif"] + }, + "application/vnd.pmi.widget": { + source: "iana", + extensions: ["wg"] + }, + "application/vnd.poc.group-advertisement+xml": { + source: "iana", + compressible: true + }, + "application/vnd.pocketlearn": { + source: "iana", + extensions: ["plf"] + }, + "application/vnd.powerbuilder6": { + source: "iana", + extensions: ["pbd"] + }, + "application/vnd.powerbuilder6-s": { + source: "iana" + }, + "application/vnd.powerbuilder7": { + source: "iana" + }, + "application/vnd.powerbuilder7-s": { + source: "iana" + }, + "application/vnd.powerbuilder75": { + source: "iana" + }, + "application/vnd.powerbuilder75-s": { + source: "iana" + }, + "application/vnd.preminet": { + source: "iana" + }, + "application/vnd.previewsystems.box": { + source: "iana", + extensions: ["box"] + }, + "application/vnd.proteus.magazine": { + source: "iana", + extensions: ["mgz"] + }, + "application/vnd.psfs": { + source: "iana" + }, + "application/vnd.publishare-delta-tree": { + source: "iana", + extensions: ["qps"] + }, + "application/vnd.pvi.ptid1": { + source: "iana", + extensions: ["ptid"] + }, + "application/vnd.pwg-multiplexed": { + source: "iana" + }, + "application/vnd.pwg-xhtml-print+xml": { + source: "iana", + compressible: true + }, + "application/vnd.qualcomm.brew-app-res": { + source: "iana" + }, + "application/vnd.quarantainenet": { + source: "iana" + }, + "application/vnd.quark.quarkxpress": { + source: "iana", + extensions: ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"] + }, + "application/vnd.quobject-quoxdocument": { + source: "iana" + }, + "application/vnd.radisys.moml+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit-conf+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit-conn+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit-dialog+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit-stream+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-conf+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-base+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-fax-detect+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-group+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-speech+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-transform+xml": { + source: "iana", + compressible: true + }, + "application/vnd.rainstor.data": { + source: "iana" + }, + "application/vnd.rapid": { + source: "iana" + }, + "application/vnd.rar": { + source: "iana", + extensions: ["rar"] + }, + "application/vnd.realvnc.bed": { + source: "iana", + extensions: ["bed"] + }, + "application/vnd.recordare.musicxml": { + source: "iana", + extensions: ["mxl"] + }, + "application/vnd.recordare.musicxml+xml": { + source: "iana", + compressible: true, + extensions: ["musicxml"] + }, + "application/vnd.renlearn.rlprint": { + source: "iana" + }, + "application/vnd.resilient.logic": { + source: "iana" + }, + "application/vnd.restful+json": { + source: "iana", + compressible: true + }, + "application/vnd.rig.cryptonote": { + source: "iana", + extensions: ["cryptonote"] + }, + "application/vnd.rim.cod": { + source: "apache", + extensions: ["cod"] + }, + "application/vnd.rn-realmedia": { + source: "apache", + extensions: ["rm"] + }, + "application/vnd.rn-realmedia-vbr": { + source: "apache", + extensions: ["rmvb"] + }, + "application/vnd.route66.link66+xml": { + source: "iana", + compressible: true, + extensions: ["link66"] + }, + "application/vnd.rs-274x": { + source: "iana" + }, + "application/vnd.ruckus.download": { + source: "iana" + }, + "application/vnd.s3sms": { + source: "iana" + }, + "application/vnd.sailingtracker.track": { + source: "iana", + extensions: ["st"] + }, + "application/vnd.sar": { + source: "iana" + }, + "application/vnd.sbm.cid": { + source: "iana" + }, + "application/vnd.sbm.mid2": { + source: "iana" + }, + "application/vnd.scribus": { + source: "iana" + }, + "application/vnd.sealed.3df": { + source: "iana" + }, + "application/vnd.sealed.csf": { + source: "iana" + }, + "application/vnd.sealed.doc": { + source: "iana" + }, + "application/vnd.sealed.eml": { + source: "iana" + }, + "application/vnd.sealed.mht": { + source: "iana" + }, + "application/vnd.sealed.net": { + source: "iana" + }, + "application/vnd.sealed.ppt": { + source: "iana" + }, + "application/vnd.sealed.tiff": { + source: "iana" + }, + "application/vnd.sealed.xls": { + source: "iana" + }, + "application/vnd.sealedmedia.softseal.html": { + source: "iana" + }, + "application/vnd.sealedmedia.softseal.pdf": { + source: "iana" + }, + "application/vnd.seemail": { + source: "iana", + extensions: ["see"] + }, + "application/vnd.seis+json": { + source: "iana", + compressible: true + }, + "application/vnd.sema": { + source: "iana", + extensions: ["sema"] + }, + "application/vnd.semd": { + source: "iana", + extensions: ["semd"] + }, + "application/vnd.semf": { + source: "iana", + extensions: ["semf"] + }, + "application/vnd.shade-save-file": { + source: "iana" + }, + "application/vnd.shana.informed.formdata": { + source: "iana", + extensions: ["ifm"] + }, + "application/vnd.shana.informed.formtemplate": { + source: "iana", + extensions: ["itp"] + }, + "application/vnd.shana.informed.interchange": { + source: "iana", + extensions: ["iif"] + }, + "application/vnd.shana.informed.package": { + source: "iana", + extensions: ["ipk"] + }, + "application/vnd.shootproof+json": { + source: "iana", + compressible: true + }, + "application/vnd.shopkick+json": { + source: "iana", + compressible: true + }, + "application/vnd.shp": { + source: "iana" + }, + "application/vnd.shx": { + source: "iana" + }, + "application/vnd.sigrok.session": { + source: "iana" + }, + "application/vnd.simtech-mindmapper": { + source: "iana", + extensions: ["twd", "twds"] + }, + "application/vnd.siren+json": { + source: "iana", + compressible: true + }, + "application/vnd.smaf": { + source: "iana", + extensions: ["mmf"] + }, + "application/vnd.smart.notebook": { + source: "iana" + }, + "application/vnd.smart.teacher": { + source: "iana", + extensions: ["teacher"] + }, + "application/vnd.snesdev-page-table": { + source: "iana" + }, + "application/vnd.software602.filler.form+xml": { + source: "iana", + compressible: true, + extensions: ["fo"] + }, + "application/vnd.software602.filler.form-xml-zip": { + source: "iana" + }, + "application/vnd.solent.sdkm+xml": { + source: "iana", + compressible: true, + extensions: ["sdkm", "sdkd"] + }, + "application/vnd.spotfire.dxp": { + source: "iana", + extensions: ["dxp"] + }, + "application/vnd.spotfire.sfs": { + source: "iana", + extensions: ["sfs"] + }, + "application/vnd.sqlite3": { + source: "iana" + }, + "application/vnd.sss-cod": { + source: "iana" + }, + "application/vnd.sss-dtf": { + source: "iana" + }, + "application/vnd.sss-ntf": { + source: "iana" + }, + "application/vnd.stardivision.calc": { + source: "apache", + extensions: ["sdc"] + }, + "application/vnd.stardivision.draw": { + source: "apache", + extensions: ["sda"] + }, + "application/vnd.stardivision.impress": { + source: "apache", + extensions: ["sdd"] + }, + "application/vnd.stardivision.math": { + source: "apache", + extensions: ["smf"] + }, + "application/vnd.stardivision.writer": { + source: "apache", + extensions: ["sdw", "vor"] + }, + "application/vnd.stardivision.writer-global": { + source: "apache", + extensions: ["sgl"] + }, + "application/vnd.stepmania.package": { + source: "iana", + extensions: ["smzip"] + }, + "application/vnd.stepmania.stepchart": { + source: "iana", + extensions: ["sm"] + }, + "application/vnd.street-stream": { + source: "iana" + }, + "application/vnd.sun.wadl+xml": { + source: "iana", + compressible: true, + extensions: ["wadl"] + }, + "application/vnd.sun.xml.calc": { + source: "apache", + extensions: ["sxc"] + }, + "application/vnd.sun.xml.calc.template": { + source: "apache", + extensions: ["stc"] + }, + "application/vnd.sun.xml.draw": { + source: "apache", + extensions: ["sxd"] + }, + "application/vnd.sun.xml.draw.template": { + source: "apache", + extensions: ["std"] + }, + "application/vnd.sun.xml.impress": { + source: "apache", + extensions: ["sxi"] + }, + "application/vnd.sun.xml.impress.template": { + source: "apache", + extensions: ["sti"] + }, + "application/vnd.sun.xml.math": { + source: "apache", + extensions: ["sxm"] + }, + "application/vnd.sun.xml.writer": { + source: "apache", + extensions: ["sxw"] + }, + "application/vnd.sun.xml.writer.global": { + source: "apache", + extensions: ["sxg"] + }, + "application/vnd.sun.xml.writer.template": { + source: "apache", + extensions: ["stw"] + }, + "application/vnd.sus-calendar": { + source: "iana", + extensions: ["sus", "susp"] + }, + "application/vnd.svd": { + source: "iana", + extensions: ["svd"] + }, + "application/vnd.swiftview-ics": { + source: "iana" + }, + "application/vnd.sycle+xml": { + source: "iana", + compressible: true + }, + "application/vnd.syft+json": { + source: "iana", + compressible: true + }, + "application/vnd.symbian.install": { + source: "apache", + extensions: ["sis", "sisx"] + }, + "application/vnd.syncml+xml": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["xsm"] + }, + "application/vnd.syncml.dm+wbxml": { + source: "iana", + charset: "UTF-8", + extensions: ["bdm"] + }, + "application/vnd.syncml.dm+xml": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["xdm"] + }, + "application/vnd.syncml.dm.notification": { + source: "iana" + }, + "application/vnd.syncml.dmddf+wbxml": { + source: "iana" + }, + "application/vnd.syncml.dmddf+xml": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["ddf"] + }, + "application/vnd.syncml.dmtnds+wbxml": { + source: "iana" + }, + "application/vnd.syncml.dmtnds+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.syncml.ds.notification": { + source: "iana" + }, + "application/vnd.tableschema+json": { + source: "iana", + compressible: true + }, + "application/vnd.tao.intent-module-archive": { + source: "iana", + extensions: ["tao"] + }, + "application/vnd.tcpdump.pcap": { + source: "iana", + extensions: ["pcap", "cap", "dmp"] + }, + "application/vnd.think-cell.ppttc+json": { + source: "iana", + compressible: true + }, + "application/vnd.tmd.mediaflex.api+xml": { + source: "iana", + compressible: true + }, + "application/vnd.tml": { + source: "iana" + }, + "application/vnd.tmobile-livetv": { + source: "iana", + extensions: ["tmo"] + }, + "application/vnd.tri.onesource": { + source: "iana" + }, + "application/vnd.trid.tpt": { + source: "iana", + extensions: ["tpt"] + }, + "application/vnd.triscape.mxs": { + source: "iana", + extensions: ["mxs"] + }, + "application/vnd.trueapp": { + source: "iana", + extensions: ["tra"] + }, + "application/vnd.truedoc": { + source: "iana" + }, + "application/vnd.ubisoft.webplayer": { + source: "iana" + }, + "application/vnd.ufdl": { + source: "iana", + extensions: ["ufd", "ufdl"] + }, + "application/vnd.uiq.theme": { + source: "iana", + extensions: ["utz"] + }, + "application/vnd.umajin": { + source: "iana", + extensions: ["umj"] + }, + "application/vnd.unity": { + source: "iana", + extensions: ["unityweb"] + }, + "application/vnd.uoml+xml": { + source: "iana", + compressible: true, + extensions: ["uoml"] + }, + "application/vnd.uplanet.alert": { + source: "iana" + }, + "application/vnd.uplanet.alert-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.bearer-choice": { + source: "iana" + }, + "application/vnd.uplanet.bearer-choice-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.cacheop": { + source: "iana" + }, + "application/vnd.uplanet.cacheop-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.channel": { + source: "iana" + }, + "application/vnd.uplanet.channel-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.list": { + source: "iana" + }, + "application/vnd.uplanet.list-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.listcmd": { + source: "iana" + }, + "application/vnd.uplanet.listcmd-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.signal": { + source: "iana" + }, + "application/vnd.uri-map": { + source: "iana" + }, + "application/vnd.valve.source.material": { + source: "iana" + }, + "application/vnd.vcx": { + source: "iana", + extensions: ["vcx"] + }, + "application/vnd.vd-study": { + source: "iana" + }, + "application/vnd.vectorworks": { + source: "iana" + }, + "application/vnd.vel+json": { + source: "iana", + compressible: true + }, + "application/vnd.verimatrix.vcas": { + source: "iana" + }, + "application/vnd.veritone.aion+json": { + source: "iana", + compressible: true + }, + "application/vnd.veryant.thin": { + source: "iana" + }, + "application/vnd.ves.encrypted": { + source: "iana" + }, + "application/vnd.vidsoft.vidconference": { + source: "iana" + }, + "application/vnd.visio": { + source: "iana", + extensions: ["vsd", "vst", "vss", "vsw"] + }, + "application/vnd.visionary": { + source: "iana", + extensions: ["vis"] + }, + "application/vnd.vividence.scriptfile": { + source: "iana" + }, + "application/vnd.vsf": { + source: "iana", + extensions: ["vsf"] + }, + "application/vnd.wap.sic": { + source: "iana" + }, + "application/vnd.wap.slc": { + source: "iana" + }, + "application/vnd.wap.wbxml": { + source: "iana", + charset: "UTF-8", + extensions: ["wbxml"] + }, + "application/vnd.wap.wmlc": { + source: "iana", + extensions: ["wmlc"] + }, + "application/vnd.wap.wmlscriptc": { + source: "iana", + extensions: ["wmlsc"] + }, + "application/vnd.webturbo": { + source: "iana", + extensions: ["wtb"] + }, + "application/vnd.wfa.dpp": { + source: "iana" + }, + "application/vnd.wfa.p2p": { + source: "iana" + }, + "application/vnd.wfa.wsc": { + source: "iana" + }, + "application/vnd.windows.devicepairing": { + source: "iana" + }, + "application/vnd.wmc": { + source: "iana" + }, + "application/vnd.wmf.bootstrap": { + source: "iana" + }, + "application/vnd.wolfram.mathematica": { + source: "iana" + }, + "application/vnd.wolfram.mathematica.package": { + source: "iana" + }, + "application/vnd.wolfram.player": { + source: "iana", + extensions: ["nbp"] + }, + "application/vnd.wordperfect": { + source: "iana", + extensions: ["wpd"] + }, + "application/vnd.wqd": { + source: "iana", + extensions: ["wqd"] + }, + "application/vnd.wrq-hp3000-labelled": { + source: "iana" + }, + "application/vnd.wt.stf": { + source: "iana", + extensions: ["stf"] + }, + "application/vnd.wv.csp+wbxml": { + source: "iana" + }, + "application/vnd.wv.csp+xml": { + source: "iana", + compressible: true + }, + "application/vnd.wv.ssp+xml": { + source: "iana", + compressible: true + }, + "application/vnd.xacml+json": { + source: "iana", + compressible: true + }, + "application/vnd.xara": { + source: "iana", + extensions: ["xar"] + }, + "application/vnd.xfdl": { + source: "iana", + extensions: ["xfdl"] + }, + "application/vnd.xfdl.webform": { + source: "iana" + }, + "application/vnd.xmi+xml": { + source: "iana", + compressible: true + }, + "application/vnd.xmpie.cpkg": { + source: "iana" + }, + "application/vnd.xmpie.dpkg": { + source: "iana" + }, + "application/vnd.xmpie.plan": { + source: "iana" + }, + "application/vnd.xmpie.ppkg": { + source: "iana" + }, + "application/vnd.xmpie.xlim": { + source: "iana" + }, + "application/vnd.yamaha.hv-dic": { + source: "iana", + extensions: ["hvd"] + }, + "application/vnd.yamaha.hv-script": { + source: "iana", + extensions: ["hvs"] + }, + "application/vnd.yamaha.hv-voice": { + source: "iana", + extensions: ["hvp"] + }, + "application/vnd.yamaha.openscoreformat": { + source: "iana", + extensions: ["osf"] + }, + "application/vnd.yamaha.openscoreformat.osfpvg+xml": { + source: "iana", + compressible: true, + extensions: ["osfpvg"] + }, + "application/vnd.yamaha.remote-setup": { + source: "iana" + }, + "application/vnd.yamaha.smaf-audio": { + source: "iana", + extensions: ["saf"] + }, + "application/vnd.yamaha.smaf-phrase": { + source: "iana", + extensions: ["spf"] + }, + "application/vnd.yamaha.through-ngn": { + source: "iana" + }, + "application/vnd.yamaha.tunnel-udpencap": { + source: "iana" + }, + "application/vnd.yaoweme": { + source: "iana" + }, + "application/vnd.yellowriver-custom-menu": { + source: "iana", + extensions: ["cmp"] + }, + "application/vnd.youtube.yt": { + source: "iana" + }, + "application/vnd.zul": { + source: "iana", + extensions: ["zir", "zirz"] + }, + "application/vnd.zzazz.deck+xml": { + source: "iana", + compressible: true, + extensions: ["zaz"] + }, + "application/voicexml+xml": { + source: "iana", + compressible: true, + extensions: ["vxml"] + }, + "application/voucher-cms+json": { + source: "iana", + compressible: true + }, + "application/vq-rtcpxr": { + source: "iana" + }, + "application/wasm": { + source: "iana", + compressible: true, + extensions: ["wasm"] + }, + "application/watcherinfo+xml": { + source: "iana", + compressible: true, + extensions: ["wif"] + }, + "application/webpush-options+json": { + source: "iana", + compressible: true + }, + "application/whoispp-query": { + source: "iana" + }, + "application/whoispp-response": { + source: "iana" + }, + "application/widget": { + source: "iana", + extensions: ["wgt"] + }, + "application/winhlp": { + source: "apache", + extensions: ["hlp"] + }, + "application/wita": { + source: "iana" + }, + "application/wordperfect5.1": { + source: "iana" + }, + "application/wsdl+xml": { + source: "iana", + compressible: true, + extensions: ["wsdl"] + }, + "application/wspolicy+xml": { + source: "iana", + compressible: true, + extensions: ["wspolicy"] + }, + "application/x-7z-compressed": { + source: "apache", + compressible: false, + extensions: ["7z"] + }, + "application/x-abiword": { + source: "apache", + extensions: ["abw"] + }, + "application/x-ace-compressed": { + source: "apache", + extensions: ["ace"] + }, + "application/x-amf": { + source: "apache" + }, + "application/x-apple-diskimage": { + source: "apache", + extensions: ["dmg"] + }, + "application/x-arj": { + compressible: false, + extensions: ["arj"] + }, + "application/x-authorware-bin": { + source: "apache", + extensions: ["aab", "x32", "u32", "vox"] + }, + "application/x-authorware-map": { + source: "apache", + extensions: ["aam"] + }, + "application/x-authorware-seg": { + source: "apache", + extensions: ["aas"] + }, + "application/x-bcpio": { + source: "apache", + extensions: ["bcpio"] + }, + "application/x-bdoc": { + compressible: false, + extensions: ["bdoc"] + }, + "application/x-bittorrent": { + source: "apache", + extensions: ["torrent"] + }, + "application/x-blorb": { + source: "apache", + extensions: ["blb", "blorb"] + }, + "application/x-bzip": { + source: "apache", + compressible: false, + extensions: ["bz"] + }, + "application/x-bzip2": { + source: "apache", + compressible: false, + extensions: ["bz2", "boz"] + }, + "application/x-cbr": { + source: "apache", + extensions: ["cbr", "cba", "cbt", "cbz", "cb7"] + }, + "application/x-cdlink": { + source: "apache", + extensions: ["vcd"] + }, + "application/x-cfs-compressed": { + source: "apache", + extensions: ["cfs"] + }, + "application/x-chat": { + source: "apache", + extensions: ["chat"] + }, + "application/x-chess-pgn": { + source: "apache", + extensions: ["pgn"] + }, + "application/x-chrome-extension": { + extensions: ["crx"] + }, + "application/x-cocoa": { + source: "nginx", + extensions: ["cco"] + }, + "application/x-compress": { + source: "apache" + }, + "application/x-conference": { + source: "apache", + extensions: ["nsc"] + }, + "application/x-cpio": { + source: "apache", + extensions: ["cpio"] + }, + "application/x-csh": { + source: "apache", + extensions: ["csh"] + }, + "application/x-deb": { + compressible: false + }, + "application/x-debian-package": { + source: "apache", + extensions: ["deb", "udeb"] + }, + "application/x-dgc-compressed": { + source: "apache", + extensions: ["dgc"] + }, + "application/x-director": { + source: "apache", + extensions: ["dir", "dcr", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"] + }, + "application/x-doom": { + source: "apache", + extensions: ["wad"] + }, + "application/x-dtbncx+xml": { + source: "apache", + compressible: true, + extensions: ["ncx"] + }, + "application/x-dtbook+xml": { + source: "apache", + compressible: true, + extensions: ["dtb"] + }, + "application/x-dtbresource+xml": { + source: "apache", + compressible: true, + extensions: ["res"] + }, + "application/x-dvi": { + source: "apache", + compressible: false, + extensions: ["dvi"] + }, + "application/x-envoy": { + source: "apache", + extensions: ["evy"] + }, + "application/x-eva": { + source: "apache", + extensions: ["eva"] + }, + "application/x-font-bdf": { + source: "apache", + extensions: ["bdf"] + }, + "application/x-font-dos": { + source: "apache" + }, + "application/x-font-framemaker": { + source: "apache" + }, + "application/x-font-ghostscript": { + source: "apache", + extensions: ["gsf"] + }, + "application/x-font-libgrx": { + source: "apache" + }, + "application/x-font-linux-psf": { + source: "apache", + extensions: ["psf"] + }, + "application/x-font-pcf": { + source: "apache", + extensions: ["pcf"] + }, + "application/x-font-snf": { + source: "apache", + extensions: ["snf"] + }, + "application/x-font-speedo": { + source: "apache" + }, + "application/x-font-sunos-news": { + source: "apache" + }, + "application/x-font-type1": { + source: "apache", + extensions: ["pfa", "pfb", "pfm", "afm"] + }, + "application/x-font-vfont": { + source: "apache" + }, + "application/x-freearc": { + source: "apache", + extensions: ["arc"] + }, + "application/x-futuresplash": { + source: "apache", + extensions: ["spl"] + }, + "application/x-gca-compressed": { + source: "apache", + extensions: ["gca"] + }, + "application/x-glulx": { + source: "apache", + extensions: ["ulx"] + }, + "application/x-gnumeric": { + source: "apache", + extensions: ["gnumeric"] + }, + "application/x-gramps-xml": { + source: "apache", + extensions: ["gramps"] + }, + "application/x-gtar": { + source: "apache", + extensions: ["gtar"] + }, + "application/x-gzip": { + source: "apache" + }, + "application/x-hdf": { + source: "apache", + extensions: ["hdf"] + }, + "application/x-httpd-php": { + compressible: true, + extensions: ["php"] + }, + "application/x-install-instructions": { + source: "apache", + extensions: ["install"] + }, + "application/x-iso9660-image": { + source: "apache", + extensions: ["iso"] + }, + "application/x-iwork-keynote-sffkey": { + extensions: ["key"] + }, + "application/x-iwork-numbers-sffnumbers": { + extensions: ["numbers"] + }, + "application/x-iwork-pages-sffpages": { + extensions: ["pages"] + }, + "application/x-java-archive-diff": { + source: "nginx", + extensions: ["jardiff"] + }, + "application/x-java-jnlp-file": { + source: "apache", + compressible: false, + extensions: ["jnlp"] + }, + "application/x-javascript": { + compressible: true + }, + "application/x-keepass2": { + extensions: ["kdbx"] + }, + "application/x-latex": { + source: "apache", + compressible: false, + extensions: ["latex"] + }, + "application/x-lua-bytecode": { + extensions: ["luac"] + }, + "application/x-lzh-compressed": { + source: "apache", + extensions: ["lzh", "lha"] + }, + "application/x-makeself": { + source: "nginx", + extensions: ["run"] + }, + "application/x-mie": { + source: "apache", + extensions: ["mie"] + }, + "application/x-mobipocket-ebook": { + source: "apache", + extensions: ["prc", "mobi"] + }, + "application/x-mpegurl": { + compressible: false + }, + "application/x-ms-application": { + source: "apache", + extensions: ["application"] + }, + "application/x-ms-shortcut": { + source: "apache", + extensions: ["lnk"] + }, + "application/x-ms-wmd": { + source: "apache", + extensions: ["wmd"] + }, + "application/x-ms-wmz": { + source: "apache", + extensions: ["wmz"] + }, + "application/x-ms-xbap": { + source: "apache", + extensions: ["xbap"] + }, + "application/x-msaccess": { + source: "apache", + extensions: ["mdb"] + }, + "application/x-msbinder": { + source: "apache", + extensions: ["obd"] + }, + "application/x-mscardfile": { + source: "apache", + extensions: ["crd"] + }, + "application/x-msclip": { + source: "apache", + extensions: ["clp"] + }, + "application/x-msdos-program": { + extensions: ["exe"] + }, + "application/x-msdownload": { + source: "apache", + extensions: ["exe", "dll", "com", "bat", "msi"] + }, + "application/x-msmediaview": { + source: "apache", + extensions: ["mvb", "m13", "m14"] + }, + "application/x-msmetafile": { + source: "apache", + extensions: ["wmf", "wmz", "emf", "emz"] + }, + "application/x-msmoney": { + source: "apache", + extensions: ["mny"] + }, + "application/x-mspublisher": { + source: "apache", + extensions: ["pub"] + }, + "application/x-msschedule": { + source: "apache", + extensions: ["scd"] + }, + "application/x-msterminal": { + source: "apache", + extensions: ["trm"] + }, + "application/x-mswrite": { + source: "apache", + extensions: ["wri"] + }, + "application/x-netcdf": { + source: "apache", + extensions: ["nc", "cdf"] + }, + "application/x-ns-proxy-autoconfig": { + compressible: true, + extensions: ["pac"] + }, + "application/x-nzb": { + source: "apache", + extensions: ["nzb"] + }, + "application/x-perl": { + source: "nginx", + extensions: ["pl", "pm"] + }, + "application/x-pilot": { + source: "nginx", + extensions: ["prc", "pdb"] + }, + "application/x-pkcs12": { + source: "apache", + compressible: false, + extensions: ["p12", "pfx"] + }, + "application/x-pkcs7-certificates": { + source: "apache", + extensions: ["p7b", "spc"] + }, + "application/x-pkcs7-certreqresp": { + source: "apache", + extensions: ["p7r"] + }, + "application/x-pki-message": { + source: "iana" + }, + "application/x-rar-compressed": { + source: "apache", + compressible: false, + extensions: ["rar"] + }, + "application/x-redhat-package-manager": { + source: "nginx", + extensions: ["rpm"] + }, + "application/x-research-info-systems": { + source: "apache", + extensions: ["ris"] + }, + "application/x-sea": { + source: "nginx", + extensions: ["sea"] + }, + "application/x-sh": { + source: "apache", + compressible: true, + extensions: ["sh"] + }, + "application/x-shar": { + source: "apache", + extensions: ["shar"] + }, + "application/x-shockwave-flash": { + source: "apache", + compressible: false, + extensions: ["swf"] + }, + "application/x-silverlight-app": { + source: "apache", + extensions: ["xap"] + }, + "application/x-sql": { + source: "apache", + extensions: ["sql"] + }, + "application/x-stuffit": { + source: "apache", + compressible: false, + extensions: ["sit"] + }, + "application/x-stuffitx": { + source: "apache", + extensions: ["sitx"] + }, + "application/x-subrip": { + source: "apache", + extensions: ["srt"] + }, + "application/x-sv4cpio": { + source: "apache", + extensions: ["sv4cpio"] + }, + "application/x-sv4crc": { + source: "apache", + extensions: ["sv4crc"] + }, + "application/x-t3vm-image": { + source: "apache", + extensions: ["t3"] + }, + "application/x-tads": { + source: "apache", + extensions: ["gam"] + }, + "application/x-tar": { + source: "apache", + compressible: true, + extensions: ["tar"] + }, + "application/x-tcl": { + source: "apache", + extensions: ["tcl", "tk"] + }, + "application/x-tex": { + source: "apache", + extensions: ["tex"] + }, + "application/x-tex-tfm": { + source: "apache", + extensions: ["tfm"] + }, + "application/x-texinfo": { + source: "apache", + extensions: ["texinfo", "texi"] + }, + "application/x-tgif": { + source: "apache", + extensions: ["obj"] + }, + "application/x-ustar": { + source: "apache", + extensions: ["ustar"] + }, + "application/x-virtualbox-hdd": { + compressible: true, + extensions: ["hdd"] + }, + "application/x-virtualbox-ova": { + compressible: true, + extensions: ["ova"] + }, + "application/x-virtualbox-ovf": { + compressible: true, + extensions: ["ovf"] + }, + "application/x-virtualbox-vbox": { + compressible: true, + extensions: ["vbox"] + }, + "application/x-virtualbox-vbox-extpack": { + compressible: false, + extensions: ["vbox-extpack"] + }, + "application/x-virtualbox-vdi": { + compressible: true, + extensions: ["vdi"] + }, + "application/x-virtualbox-vhd": { + compressible: true, + extensions: ["vhd"] + }, + "application/x-virtualbox-vmdk": { + compressible: true, + extensions: ["vmdk"] + }, + "application/x-wais-source": { + source: "apache", + extensions: ["src"] + }, + "application/x-web-app-manifest+json": { + compressible: true, + extensions: ["webapp"] + }, + "application/x-www-form-urlencoded": { + source: "iana", + compressible: true + }, + "application/x-x509-ca-cert": { + source: "iana", + extensions: ["der", "crt", "pem"] + }, + "application/x-x509-ca-ra-cert": { + source: "iana" + }, + "application/x-x509-next-ca-cert": { + source: "iana" + }, + "application/x-xfig": { + source: "apache", + extensions: ["fig"] + }, + "application/x-xliff+xml": { + source: "apache", + compressible: true, + extensions: ["xlf"] + }, + "application/x-xpinstall": { + source: "apache", + compressible: false, + extensions: ["xpi"] + }, + "application/x-xz": { + source: "apache", + extensions: ["xz"] + }, + "application/x-zmachine": { + source: "apache", + extensions: ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"] + }, + "application/x400-bp": { + source: "iana" + }, + "application/xacml+xml": { + source: "iana", + compressible: true + }, + "application/xaml+xml": { + source: "apache", + compressible: true, + extensions: ["xaml"] + }, + "application/xcap-att+xml": { + source: "iana", + compressible: true, + extensions: ["xav"] + }, + "application/xcap-caps+xml": { + source: "iana", + compressible: true, + extensions: ["xca"] + }, + "application/xcap-diff+xml": { + source: "iana", + compressible: true, + extensions: ["xdf"] + }, + "application/xcap-el+xml": { + source: "iana", + compressible: true, + extensions: ["xel"] + }, + "application/xcap-error+xml": { + source: "iana", + compressible: true + }, + "application/xcap-ns+xml": { + source: "iana", + compressible: true, + extensions: ["xns"] + }, + "application/xcon-conference-info+xml": { + source: "iana", + compressible: true + }, + "application/xcon-conference-info-diff+xml": { + source: "iana", + compressible: true + }, + "application/xenc+xml": { + source: "iana", + compressible: true, + extensions: ["xenc"] + }, + "application/xhtml+xml": { + source: "iana", + compressible: true, + extensions: ["xhtml", "xht"] + }, + "application/xhtml-voice+xml": { + source: "apache", + compressible: true + }, + "application/xliff+xml": { + source: "iana", + compressible: true, + extensions: ["xlf"] + }, + "application/xml": { + source: "iana", + compressible: true, + extensions: ["xml", "xsl", "xsd", "rng"] + }, + "application/xml-dtd": { + source: "iana", + compressible: true, + extensions: ["dtd"] + }, + "application/xml-external-parsed-entity": { + source: "iana" + }, + "application/xml-patch+xml": { + source: "iana", + compressible: true + }, + "application/xmpp+xml": { + source: "iana", + compressible: true + }, + "application/xop+xml": { + source: "iana", + compressible: true, + extensions: ["xop"] + }, + "application/xproc+xml": { + source: "apache", + compressible: true, + extensions: ["xpl"] + }, + "application/xslt+xml": { + source: "iana", + compressible: true, + extensions: ["xsl", "xslt"] + }, + "application/xspf+xml": { + source: "apache", + compressible: true, + extensions: ["xspf"] + }, + "application/xv+xml": { + source: "iana", + compressible: true, + extensions: ["mxml", "xhvml", "xvml", "xvm"] + }, + "application/yang": { + source: "iana", + extensions: ["yang"] + }, + "application/yang-data+json": { + source: "iana", + compressible: true + }, + "application/yang-data+xml": { + source: "iana", + compressible: true + }, + "application/yang-patch+json": { + source: "iana", + compressible: true + }, + "application/yang-patch+xml": { + source: "iana", + compressible: true + }, + "application/yin+xml": { + source: "iana", + compressible: true, + extensions: ["yin"] + }, + "application/zip": { + source: "iana", + compressible: false, + extensions: ["zip"] + }, + "application/zlib": { + source: "iana" + }, + "application/zstd": { + source: "iana" + }, + "audio/1d-interleaved-parityfec": { + source: "iana" + }, + "audio/32kadpcm": { + source: "iana" + }, + "audio/3gpp": { + source: "iana", + compressible: false, + extensions: ["3gpp"] + }, + "audio/3gpp2": { + source: "iana" + }, + "audio/aac": { + source: "iana" + }, + "audio/ac3": { + source: "iana" + }, + "audio/adpcm": { + source: "apache", + extensions: ["adp"] + }, + "audio/amr": { + source: "iana", + extensions: ["amr"] + }, + "audio/amr-wb": { + source: "iana" + }, + "audio/amr-wb+": { + source: "iana" + }, + "audio/aptx": { + source: "iana" + }, + "audio/asc": { + source: "iana" + }, + "audio/atrac-advanced-lossless": { + source: "iana" + }, + "audio/atrac-x": { + source: "iana" + }, + "audio/atrac3": { + source: "iana" + }, + "audio/basic": { + source: "iana", + compressible: false, + extensions: ["au", "snd"] + }, + "audio/bv16": { + source: "iana" + }, + "audio/bv32": { + source: "iana" + }, + "audio/clearmode": { + source: "iana" + }, + "audio/cn": { + source: "iana" + }, + "audio/dat12": { + source: "iana" + }, + "audio/dls": { + source: "iana" + }, + "audio/dsr-es201108": { + source: "iana" + }, + "audio/dsr-es202050": { + source: "iana" + }, + "audio/dsr-es202211": { + source: "iana" + }, + "audio/dsr-es202212": { + source: "iana" + }, + "audio/dv": { + source: "iana" + }, + "audio/dvi4": { + source: "iana" + }, + "audio/eac3": { + source: "iana" + }, + "audio/encaprtp": { + source: "iana" + }, + "audio/evrc": { + source: "iana" + }, + "audio/evrc-qcp": { + source: "iana" + }, + "audio/evrc0": { + source: "iana" + }, + "audio/evrc1": { + source: "iana" + }, + "audio/evrcb": { + source: "iana" + }, + "audio/evrcb0": { + source: "iana" + }, + "audio/evrcb1": { + source: "iana" + }, + "audio/evrcnw": { + source: "iana" + }, + "audio/evrcnw0": { + source: "iana" + }, + "audio/evrcnw1": { + source: "iana" + }, + "audio/evrcwb": { + source: "iana" + }, + "audio/evrcwb0": { + source: "iana" + }, + "audio/evrcwb1": { + source: "iana" + }, + "audio/evs": { + source: "iana" + }, + "audio/flexfec": { + source: "iana" + }, + "audio/fwdred": { + source: "iana" + }, + "audio/g711-0": { + source: "iana" + }, + "audio/g719": { + source: "iana" + }, + "audio/g722": { + source: "iana" + }, + "audio/g7221": { + source: "iana" + }, + "audio/g723": { + source: "iana" + }, + "audio/g726-16": { + source: "iana" + }, + "audio/g726-24": { + source: "iana" + }, + "audio/g726-32": { + source: "iana" + }, + "audio/g726-40": { + source: "iana" + }, + "audio/g728": { + source: "iana" + }, + "audio/g729": { + source: "iana" + }, + "audio/g7291": { + source: "iana" + }, + "audio/g729d": { + source: "iana" + }, + "audio/g729e": { + source: "iana" + }, + "audio/gsm": { + source: "iana" + }, + "audio/gsm-efr": { + source: "iana" + }, + "audio/gsm-hr-08": { + source: "iana" + }, + "audio/ilbc": { + source: "iana" + }, + "audio/ip-mr_v2.5": { + source: "iana" + }, + "audio/isac": { + source: "apache" + }, + "audio/l16": { + source: "iana" + }, + "audio/l20": { + source: "iana" + }, + "audio/l24": { + source: "iana", + compressible: false + }, + "audio/l8": { + source: "iana" + }, + "audio/lpc": { + source: "iana" + }, + "audio/melp": { + source: "iana" + }, + "audio/melp1200": { + source: "iana" + }, + "audio/melp2400": { + source: "iana" + }, + "audio/melp600": { + source: "iana" + }, + "audio/mhas": { + source: "iana" + }, + "audio/midi": { + source: "apache", + extensions: ["mid", "midi", "kar", "rmi"] + }, + "audio/mobile-xmf": { + source: "iana", + extensions: ["mxmf"] + }, + "audio/mp3": { + compressible: false, + extensions: ["mp3"] + }, + "audio/mp4": { + source: "iana", + compressible: false, + extensions: ["m4a", "mp4a"] + }, + "audio/mp4a-latm": { + source: "iana" + }, + "audio/mpa": { + source: "iana" + }, + "audio/mpa-robust": { + source: "iana" + }, + "audio/mpeg": { + source: "iana", + compressible: false, + extensions: ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"] + }, + "audio/mpeg4-generic": { + source: "iana" + }, + "audio/musepack": { + source: "apache" + }, + "audio/ogg": { + source: "iana", + compressible: false, + extensions: ["oga", "ogg", "spx", "opus"] + }, + "audio/opus": { + source: "iana" + }, + "audio/parityfec": { + source: "iana" + }, + "audio/pcma": { + source: "iana" + }, + "audio/pcma-wb": { + source: "iana" + }, + "audio/pcmu": { + source: "iana" + }, + "audio/pcmu-wb": { + source: "iana" + }, + "audio/prs.sid": { + source: "iana" + }, + "audio/qcelp": { + source: "iana" + }, + "audio/raptorfec": { + source: "iana" + }, + "audio/red": { + source: "iana" + }, + "audio/rtp-enc-aescm128": { + source: "iana" + }, + "audio/rtp-midi": { + source: "iana" + }, + "audio/rtploopback": { + source: "iana" + }, + "audio/rtx": { + source: "iana" + }, + "audio/s3m": { + source: "apache", + extensions: ["s3m"] + }, + "audio/scip": { + source: "iana" + }, + "audio/silk": { + source: "apache", + extensions: ["sil"] + }, + "audio/smv": { + source: "iana" + }, + "audio/smv-qcp": { + source: "iana" + }, + "audio/smv0": { + source: "iana" + }, + "audio/sofa": { + source: "iana" + }, + "audio/sp-midi": { + source: "iana" + }, + "audio/speex": { + source: "iana" + }, + "audio/t140c": { + source: "iana" + }, + "audio/t38": { + source: "iana" + }, + "audio/telephone-event": { + source: "iana" + }, + "audio/tetra_acelp": { + source: "iana" + }, + "audio/tetra_acelp_bb": { + source: "iana" + }, + "audio/tone": { + source: "iana" + }, + "audio/tsvcis": { + source: "iana" + }, + "audio/uemclip": { + source: "iana" + }, + "audio/ulpfec": { + source: "iana" + }, + "audio/usac": { + source: "iana" + }, + "audio/vdvi": { + source: "iana" + }, + "audio/vmr-wb": { + source: "iana" + }, + "audio/vnd.3gpp.iufp": { + source: "iana" + }, + "audio/vnd.4sb": { + source: "iana" + }, + "audio/vnd.audiokoz": { + source: "iana" + }, + "audio/vnd.celp": { + source: "iana" + }, + "audio/vnd.cisco.nse": { + source: "iana" + }, + "audio/vnd.cmles.radio-events": { + source: "iana" + }, + "audio/vnd.cns.anp1": { + source: "iana" + }, + "audio/vnd.cns.inf1": { + source: "iana" + }, + "audio/vnd.dece.audio": { + source: "iana", + extensions: ["uva", "uvva"] + }, + "audio/vnd.digital-winds": { + source: "iana", + extensions: ["eol"] + }, + "audio/vnd.dlna.adts": { + source: "iana" + }, + "audio/vnd.dolby.heaac.1": { + source: "iana" + }, + "audio/vnd.dolby.heaac.2": { + source: "iana" + }, + "audio/vnd.dolby.mlp": { + source: "iana" + }, + "audio/vnd.dolby.mps": { + source: "iana" + }, + "audio/vnd.dolby.pl2": { + source: "iana" + }, + "audio/vnd.dolby.pl2x": { + source: "iana" + }, + "audio/vnd.dolby.pl2z": { + source: "iana" + }, + "audio/vnd.dolby.pulse.1": { + source: "iana" + }, + "audio/vnd.dra": { + source: "iana", + extensions: ["dra"] + }, + "audio/vnd.dts": { + source: "iana", + extensions: ["dts"] + }, + "audio/vnd.dts.hd": { + source: "iana", + extensions: ["dtshd"] + }, + "audio/vnd.dts.uhd": { + source: "iana" + }, + "audio/vnd.dvb.file": { + source: "iana" + }, + "audio/vnd.everad.plj": { + source: "iana" + }, + "audio/vnd.hns.audio": { + source: "iana" + }, + "audio/vnd.lucent.voice": { + source: "iana", + extensions: ["lvp"] + }, + "audio/vnd.ms-playready.media.pya": { + source: "iana", + extensions: ["pya"] + }, + "audio/vnd.nokia.mobile-xmf": { + source: "iana" + }, + "audio/vnd.nortel.vbk": { + source: "iana" + }, + "audio/vnd.nuera.ecelp4800": { + source: "iana", + extensions: ["ecelp4800"] + }, + "audio/vnd.nuera.ecelp7470": { + source: "iana", + extensions: ["ecelp7470"] + }, + "audio/vnd.nuera.ecelp9600": { + source: "iana", + extensions: ["ecelp9600"] + }, + "audio/vnd.octel.sbc": { + source: "iana" + }, + "audio/vnd.presonus.multitrack": { + source: "iana" + }, + "audio/vnd.qcelp": { + source: "iana" + }, + "audio/vnd.rhetorex.32kadpcm": { + source: "iana" + }, + "audio/vnd.rip": { + source: "iana", + extensions: ["rip"] + }, + "audio/vnd.rn-realaudio": { + compressible: false + }, + "audio/vnd.sealedmedia.softseal.mpeg": { + source: "iana" + }, + "audio/vnd.vmx.cvsd": { + source: "iana" + }, + "audio/vnd.wave": { + compressible: false + }, + "audio/vorbis": { + source: "iana", + compressible: false + }, + "audio/vorbis-config": { + source: "iana" + }, + "audio/wav": { + compressible: false, + extensions: ["wav"] + }, + "audio/wave": { + compressible: false, + extensions: ["wav"] + }, + "audio/webm": { + source: "apache", + compressible: false, + extensions: ["weba"] + }, + "audio/x-aac": { + source: "apache", + compressible: false, + extensions: ["aac"] + }, + "audio/x-aiff": { + source: "apache", + extensions: ["aif", "aiff", "aifc"] + }, + "audio/x-caf": { + source: "apache", + compressible: false, + extensions: ["caf"] + }, + "audio/x-flac": { + source: "apache", + extensions: ["flac"] + }, + "audio/x-m4a": { + source: "nginx", + extensions: ["m4a"] + }, + "audio/x-matroska": { + source: "apache", + extensions: ["mka"] + }, + "audio/x-mpegurl": { + source: "apache", + extensions: ["m3u"] + }, + "audio/x-ms-wax": { + source: "apache", + extensions: ["wax"] + }, + "audio/x-ms-wma": { + source: "apache", + extensions: ["wma"] + }, + "audio/x-pn-realaudio": { + source: "apache", + extensions: ["ram", "ra"] + }, + "audio/x-pn-realaudio-plugin": { + source: "apache", + extensions: ["rmp"] + }, + "audio/x-realaudio": { + source: "nginx", + extensions: ["ra"] + }, + "audio/x-tta": { + source: "apache" + }, + "audio/x-wav": { + source: "apache", + extensions: ["wav"] + }, + "audio/xm": { + source: "apache", + extensions: ["xm"] + }, + "chemical/x-cdx": { + source: "apache", + extensions: ["cdx"] + }, + "chemical/x-cif": { + source: "apache", + extensions: ["cif"] + }, + "chemical/x-cmdf": { + source: "apache", + extensions: ["cmdf"] + }, + "chemical/x-cml": { + source: "apache", + extensions: ["cml"] + }, + "chemical/x-csml": { + source: "apache", + extensions: ["csml"] + }, + "chemical/x-pdb": { + source: "apache" + }, + "chemical/x-xyz": { + source: "apache", + extensions: ["xyz"] + }, + "font/collection": { + source: "iana", + extensions: ["ttc"] + }, + "font/otf": { + source: "iana", + compressible: true, + extensions: ["otf"] + }, + "font/sfnt": { + source: "iana" + }, + "font/ttf": { + source: "iana", + compressible: true, + extensions: ["ttf"] + }, + "font/woff": { + source: "iana", + extensions: ["woff"] + }, + "font/woff2": { + source: "iana", + extensions: ["woff2"] + }, + "image/aces": { + source: "iana", + extensions: ["exr"] + }, + "image/apng": { + compressible: false, + extensions: ["apng"] + }, + "image/avci": { + source: "iana", + extensions: ["avci"] + }, + "image/avcs": { + source: "iana", + extensions: ["avcs"] + }, + "image/avif": { + source: "iana", + compressible: false, + extensions: ["avif"] + }, + "image/bmp": { + source: "iana", + compressible: true, + extensions: ["bmp"] + }, + "image/cgm": { + source: "iana", + extensions: ["cgm"] + }, + "image/dicom-rle": { + source: "iana", + extensions: ["drle"] + }, + "image/emf": { + source: "iana", + extensions: ["emf"] + }, + "image/fits": { + source: "iana", + extensions: ["fits"] + }, + "image/g3fax": { + source: "iana", + extensions: ["g3"] + }, + "image/gif": { + source: "iana", + compressible: false, + extensions: ["gif"] + }, + "image/heic": { + source: "iana", + extensions: ["heic"] + }, + "image/heic-sequence": { + source: "iana", + extensions: ["heics"] + }, + "image/heif": { + source: "iana", + extensions: ["heif"] + }, + "image/heif-sequence": { + source: "iana", + extensions: ["heifs"] + }, + "image/hej2k": { + source: "iana", + extensions: ["hej2"] + }, + "image/hsj2": { + source: "iana", + extensions: ["hsj2"] + }, + "image/ief": { + source: "iana", + extensions: ["ief"] + }, + "image/jls": { + source: "iana", + extensions: ["jls"] + }, + "image/jp2": { + source: "iana", + compressible: false, + extensions: ["jp2", "jpg2"] + }, + "image/jpeg": { + source: "iana", + compressible: false, + extensions: ["jpeg", "jpg", "jpe"] + }, + "image/jph": { + source: "iana", + extensions: ["jph"] + }, + "image/jphc": { + source: "iana", + extensions: ["jhc"] + }, + "image/jpm": { + source: "iana", + compressible: false, + extensions: ["jpm"] + }, + "image/jpx": { + source: "iana", + compressible: false, + extensions: ["jpx", "jpf"] + }, + "image/jxr": { + source: "iana", + extensions: ["jxr"] + }, + "image/jxra": { + source: "iana", + extensions: ["jxra"] + }, + "image/jxrs": { + source: "iana", + extensions: ["jxrs"] + }, + "image/jxs": { + source: "iana", + extensions: ["jxs"] + }, + "image/jxsc": { + source: "iana", + extensions: ["jxsc"] + }, + "image/jxsi": { + source: "iana", + extensions: ["jxsi"] + }, + "image/jxss": { + source: "iana", + extensions: ["jxss"] + }, + "image/ktx": { + source: "iana", + extensions: ["ktx"] + }, + "image/ktx2": { + source: "iana", + extensions: ["ktx2"] + }, + "image/naplps": { + source: "iana" + }, + "image/pjpeg": { + compressible: false + }, + "image/png": { + source: "iana", + compressible: false, + extensions: ["png"] + }, + "image/prs.btif": { + source: "iana", + extensions: ["btif"] + }, + "image/prs.pti": { + source: "iana", + extensions: ["pti"] + }, + "image/pwg-raster": { + source: "iana" + }, + "image/sgi": { + source: "apache", + extensions: ["sgi"] + }, + "image/svg+xml": { + source: "iana", + compressible: true, + extensions: ["svg", "svgz"] + }, + "image/t38": { + source: "iana", + extensions: ["t38"] + }, + "image/tiff": { + source: "iana", + compressible: false, + extensions: ["tif", "tiff"] + }, + "image/tiff-fx": { + source: "iana", + extensions: ["tfx"] + }, + "image/vnd.adobe.photoshop": { + source: "iana", + compressible: true, + extensions: ["psd"] + }, + "image/vnd.airzip.accelerator.azv": { + source: "iana", + extensions: ["azv"] + }, + "image/vnd.cns.inf2": { + source: "iana" + }, + "image/vnd.dece.graphic": { + source: "iana", + extensions: ["uvi", "uvvi", "uvg", "uvvg"] + }, + "image/vnd.djvu": { + source: "iana", + extensions: ["djvu", "djv"] + }, + "image/vnd.dvb.subtitle": { + source: "iana", + extensions: ["sub"] + }, + "image/vnd.dwg": { + source: "iana", + extensions: ["dwg"] + }, + "image/vnd.dxf": { + source: "iana", + extensions: ["dxf"] + }, + "image/vnd.fastbidsheet": { + source: "iana", + extensions: ["fbs"] + }, + "image/vnd.fpx": { + source: "iana", + extensions: ["fpx"] + }, + "image/vnd.fst": { + source: "iana", + extensions: ["fst"] + }, + "image/vnd.fujixerox.edmics-mmr": { + source: "iana", + extensions: ["mmr"] + }, + "image/vnd.fujixerox.edmics-rlc": { + source: "iana", + extensions: ["rlc"] + }, + "image/vnd.globalgraphics.pgb": { + source: "iana" + }, + "image/vnd.microsoft.icon": { + source: "iana", + compressible: true, + extensions: ["ico"] + }, + "image/vnd.mix": { + source: "iana" + }, + "image/vnd.mozilla.apng": { + source: "iana" + }, + "image/vnd.ms-dds": { + compressible: true, + extensions: ["dds"] + }, + "image/vnd.ms-modi": { + source: "iana", + extensions: ["mdi"] + }, + "image/vnd.ms-photo": { + source: "apache", + extensions: ["wdp"] + }, + "image/vnd.net-fpx": { + source: "iana", + extensions: ["npx"] + }, + "image/vnd.pco.b16": { + source: "iana", + extensions: ["b16"] + }, + "image/vnd.radiance": { + source: "iana" + }, + "image/vnd.sealed.png": { + source: "iana" + }, + "image/vnd.sealedmedia.softseal.gif": { + source: "iana" + }, + "image/vnd.sealedmedia.softseal.jpg": { + source: "iana" + }, + "image/vnd.svf": { + source: "iana" + }, + "image/vnd.tencent.tap": { + source: "iana", + extensions: ["tap"] + }, + "image/vnd.valve.source.texture": { + source: "iana", + extensions: ["vtf"] + }, + "image/vnd.wap.wbmp": { + source: "iana", + extensions: ["wbmp"] + }, + "image/vnd.xiff": { + source: "iana", + extensions: ["xif"] + }, + "image/vnd.zbrush.pcx": { + source: "iana", + extensions: ["pcx"] + }, + "image/webp": { + source: "apache", + extensions: ["webp"] + }, + "image/wmf": { + source: "iana", + extensions: ["wmf"] + }, + "image/x-3ds": { + source: "apache", + extensions: ["3ds"] + }, + "image/x-cmu-raster": { + source: "apache", + extensions: ["ras"] + }, + "image/x-cmx": { + source: "apache", + extensions: ["cmx"] + }, + "image/x-freehand": { + source: "apache", + extensions: ["fh", "fhc", "fh4", "fh5", "fh7"] + }, + "image/x-icon": { + source: "apache", + compressible: true, + extensions: ["ico"] + }, + "image/x-jng": { + source: "nginx", + extensions: ["jng"] + }, + "image/x-mrsid-image": { + source: "apache", + extensions: ["sid"] + }, + "image/x-ms-bmp": { + source: "nginx", + compressible: true, + extensions: ["bmp"] + }, + "image/x-pcx": { + source: "apache", + extensions: ["pcx"] + }, + "image/x-pict": { + source: "apache", + extensions: ["pic", "pct"] + }, + "image/x-portable-anymap": { + source: "apache", + extensions: ["pnm"] + }, + "image/x-portable-bitmap": { + source: "apache", + extensions: ["pbm"] + }, + "image/x-portable-graymap": { + source: "apache", + extensions: ["pgm"] + }, + "image/x-portable-pixmap": { + source: "apache", + extensions: ["ppm"] + }, + "image/x-rgb": { + source: "apache", + extensions: ["rgb"] + }, + "image/x-tga": { + source: "apache", + extensions: ["tga"] + }, + "image/x-xbitmap": { + source: "apache", + extensions: ["xbm"] + }, + "image/x-xcf": { + compressible: false + }, + "image/x-xpixmap": { + source: "apache", + extensions: ["xpm"] + }, + "image/x-xwindowdump": { + source: "apache", + extensions: ["xwd"] + }, + "message/cpim": { + source: "iana" + }, + "message/delivery-status": { + source: "iana" + }, + "message/disposition-notification": { + source: "iana", + extensions: [ + "disposition-notification" + ] + }, + "message/external-body": { + source: "iana" + }, + "message/feedback-report": { + source: "iana" + }, + "message/global": { + source: "iana", + extensions: ["u8msg"] + }, + "message/global-delivery-status": { + source: "iana", + extensions: ["u8dsn"] + }, + "message/global-disposition-notification": { + source: "iana", + extensions: ["u8mdn"] + }, + "message/global-headers": { + source: "iana", + extensions: ["u8hdr"] + }, + "message/http": { + source: "iana", + compressible: false + }, + "message/imdn+xml": { + source: "iana", + compressible: true + }, + "message/news": { + source: "iana" + }, + "message/partial": { + source: "iana", + compressible: false + }, + "message/rfc822": { + source: "iana", + compressible: true, + extensions: ["eml", "mime"] + }, + "message/s-http": { + source: "iana" + }, + "message/sip": { + source: "iana" + }, + "message/sipfrag": { + source: "iana" + }, + "message/tracking-status": { + source: "iana" + }, + "message/vnd.si.simp": { + source: "iana" + }, + "message/vnd.wfa.wsc": { + source: "iana", + extensions: ["wsc"] + }, + "model/3mf": { + source: "iana", + extensions: ["3mf"] + }, + "model/e57": { + source: "iana" + }, + "model/gltf+json": { + source: "iana", + compressible: true, + extensions: ["gltf"] + }, + "model/gltf-binary": { + source: "iana", + compressible: true, + extensions: ["glb"] + }, + "model/iges": { + source: "iana", + compressible: false, + extensions: ["igs", "iges"] + }, + "model/mesh": { + source: "iana", + compressible: false, + extensions: ["msh", "mesh", "silo"] + }, + "model/mtl": { + source: "iana", + extensions: ["mtl"] + }, + "model/obj": { + source: "iana", + extensions: ["obj"] + }, + "model/step": { + source: "iana" + }, + "model/step+xml": { + source: "iana", + compressible: true, + extensions: ["stpx"] + }, + "model/step+zip": { + source: "iana", + compressible: false, + extensions: ["stpz"] + }, + "model/step-xml+zip": { + source: "iana", + compressible: false, + extensions: ["stpxz"] + }, + "model/stl": { + source: "iana", + extensions: ["stl"] + }, + "model/vnd.collada+xml": { + source: "iana", + compressible: true, + extensions: ["dae"] + }, + "model/vnd.dwf": { + source: "iana", + extensions: ["dwf"] + }, + "model/vnd.flatland.3dml": { + source: "iana" + }, + "model/vnd.gdl": { + source: "iana", + extensions: ["gdl"] + }, + "model/vnd.gs-gdl": { + source: "apache" + }, + "model/vnd.gs.gdl": { + source: "iana" + }, + "model/vnd.gtw": { + source: "iana", + extensions: ["gtw"] + }, + "model/vnd.moml+xml": { + source: "iana", + compressible: true + }, + "model/vnd.mts": { + source: "iana", + extensions: ["mts"] + }, + "model/vnd.opengex": { + source: "iana", + extensions: ["ogex"] + }, + "model/vnd.parasolid.transmit.binary": { + source: "iana", + extensions: ["x_b"] + }, + "model/vnd.parasolid.transmit.text": { + source: "iana", + extensions: ["x_t"] + }, + "model/vnd.pytha.pyox": { + source: "iana" + }, + "model/vnd.rosette.annotated-data-model": { + source: "iana" + }, + "model/vnd.sap.vds": { + source: "iana", + extensions: ["vds"] + }, + "model/vnd.usdz+zip": { + source: "iana", + compressible: false, + extensions: ["usdz"] + }, + "model/vnd.valve.source.compiled-map": { + source: "iana", + extensions: ["bsp"] + }, + "model/vnd.vtu": { + source: "iana", + extensions: ["vtu"] + }, + "model/vrml": { + source: "iana", + compressible: false, + extensions: ["wrl", "vrml"] + }, + "model/x3d+binary": { + source: "apache", + compressible: false, + extensions: ["x3db", "x3dbz"] + }, + "model/x3d+fastinfoset": { + source: "iana", + extensions: ["x3db"] + }, + "model/x3d+vrml": { + source: "apache", + compressible: false, + extensions: ["x3dv", "x3dvz"] + }, + "model/x3d+xml": { + source: "iana", + compressible: true, + extensions: ["x3d", "x3dz"] + }, + "model/x3d-vrml": { + source: "iana", + extensions: ["x3dv"] + }, + "multipart/alternative": { + source: "iana", + compressible: false + }, + "multipart/appledouble": { + source: "iana" + }, + "multipart/byteranges": { + source: "iana" + }, + "multipart/digest": { + source: "iana" + }, + "multipart/encrypted": { + source: "iana", + compressible: false + }, + "multipart/form-data": { + source: "iana", + compressible: false + }, + "multipart/header-set": { + source: "iana" + }, + "multipart/mixed": { + source: "iana" + }, + "multipart/multilingual": { + source: "iana" + }, + "multipart/parallel": { + source: "iana" + }, + "multipart/related": { + source: "iana", + compressible: false + }, + "multipart/report": { + source: "iana" + }, + "multipart/signed": { + source: "iana", + compressible: false + }, + "multipart/vnd.bint.med-plus": { + source: "iana" + }, + "multipart/voice-message": { + source: "iana" + }, + "multipart/x-mixed-replace": { + source: "iana" + }, + "text/1d-interleaved-parityfec": { + source: "iana" + }, + "text/cache-manifest": { + source: "iana", + compressible: true, + extensions: ["appcache", "manifest"] + }, + "text/calendar": { + source: "iana", + extensions: ["ics", "ifb"] + }, + "text/calender": { + compressible: true + }, + "text/cmd": { + compressible: true + }, + "text/coffeescript": { + extensions: ["coffee", "litcoffee"] + }, + "text/cql": { + source: "iana" + }, + "text/cql-expression": { + source: "iana" + }, + "text/cql-identifier": { + source: "iana" + }, + "text/css": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["css"] + }, + "text/csv": { + source: "iana", + compressible: true, + extensions: ["csv"] + }, + "text/csv-schema": { + source: "iana" + }, + "text/directory": { + source: "iana" + }, + "text/dns": { + source: "iana" + }, + "text/ecmascript": { + source: "iana" + }, + "text/encaprtp": { + source: "iana" + }, + "text/enriched": { + source: "iana" + }, + "text/fhirpath": { + source: "iana" + }, + "text/flexfec": { + source: "iana" + }, + "text/fwdred": { + source: "iana" + }, + "text/gff3": { + source: "iana" + }, + "text/grammar-ref-list": { + source: "iana" + }, + "text/html": { + source: "iana", + compressible: true, + extensions: ["html", "htm", "shtml"] + }, + "text/jade": { + extensions: ["jade"] + }, + "text/javascript": { + source: "iana", + compressible: true + }, + "text/jcr-cnd": { + source: "iana" + }, + "text/jsx": { + compressible: true, + extensions: ["jsx"] + }, + "text/less": { + compressible: true, + extensions: ["less"] + }, + "text/markdown": { + source: "iana", + compressible: true, + extensions: ["markdown", "md"] + }, + "text/mathml": { + source: "nginx", + extensions: ["mml"] + }, + "text/mdx": { + compressible: true, + extensions: ["mdx"] + }, + "text/mizar": { + source: "iana" + }, + "text/n3": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["n3"] + }, + "text/parameters": { + source: "iana", + charset: "UTF-8" + }, + "text/parityfec": { + source: "iana" + }, + "text/plain": { + source: "iana", + compressible: true, + extensions: ["txt", "text", "conf", "def", "list", "log", "in", "ini"] + }, + "text/provenance-notation": { + source: "iana", + charset: "UTF-8" + }, + "text/prs.fallenstein.rst": { + source: "iana" + }, + "text/prs.lines.tag": { + source: "iana", + extensions: ["dsc"] + }, + "text/prs.prop.logic": { + source: "iana" + }, + "text/raptorfec": { + source: "iana" + }, + "text/red": { + source: "iana" + }, + "text/rfc822-headers": { + source: "iana" + }, + "text/richtext": { + source: "iana", + compressible: true, + extensions: ["rtx"] + }, + "text/rtf": { + source: "iana", + compressible: true, + extensions: ["rtf"] + }, + "text/rtp-enc-aescm128": { + source: "iana" + }, + "text/rtploopback": { + source: "iana" + }, + "text/rtx": { + source: "iana" + }, + "text/sgml": { + source: "iana", + extensions: ["sgml", "sgm"] + }, + "text/shaclc": { + source: "iana" + }, + "text/shex": { + source: "iana", + extensions: ["shex"] + }, + "text/slim": { + extensions: ["slim", "slm"] + }, + "text/spdx": { + source: "iana", + extensions: ["spdx"] + }, + "text/strings": { + source: "iana" + }, + "text/stylus": { + extensions: ["stylus", "styl"] + }, + "text/t140": { + source: "iana" + }, + "text/tab-separated-values": { + source: "iana", + compressible: true, + extensions: ["tsv"] + }, + "text/troff": { + source: "iana", + extensions: ["t", "tr", "roff", "man", "me", "ms"] + }, + "text/turtle": { + source: "iana", + charset: "UTF-8", + extensions: ["ttl"] + }, + "text/ulpfec": { + source: "iana" + }, + "text/uri-list": { + source: "iana", + compressible: true, + extensions: ["uri", "uris", "urls"] + }, + "text/vcard": { + source: "iana", + compressible: true, + extensions: ["vcard"] + }, + "text/vnd.a": { + source: "iana" + }, + "text/vnd.abc": { + source: "iana" + }, + "text/vnd.ascii-art": { + source: "iana" + }, + "text/vnd.curl": { + source: "iana", + extensions: ["curl"] + }, + "text/vnd.curl.dcurl": { + source: "apache", + extensions: ["dcurl"] + }, + "text/vnd.curl.mcurl": { + source: "apache", + extensions: ["mcurl"] + }, + "text/vnd.curl.scurl": { + source: "apache", + extensions: ["scurl"] + }, + "text/vnd.debian.copyright": { + source: "iana", + charset: "UTF-8" + }, + "text/vnd.dmclientscript": { + source: "iana" + }, + "text/vnd.dvb.subtitle": { + source: "iana", + extensions: ["sub"] + }, + "text/vnd.esmertec.theme-descriptor": { + source: "iana", + charset: "UTF-8" + }, + "text/vnd.familysearch.gedcom": { + source: "iana", + extensions: ["ged"] + }, + "text/vnd.ficlab.flt": { + source: "iana" + }, + "text/vnd.fly": { + source: "iana", + extensions: ["fly"] + }, + "text/vnd.fmi.flexstor": { + source: "iana", + extensions: ["flx"] + }, + "text/vnd.gml": { + source: "iana" + }, + "text/vnd.graphviz": { + source: "iana", + extensions: ["gv"] + }, + "text/vnd.hans": { + source: "iana" + }, + "text/vnd.hgl": { + source: "iana" + }, + "text/vnd.in3d.3dml": { + source: "iana", + extensions: ["3dml"] + }, + "text/vnd.in3d.spot": { + source: "iana", + extensions: ["spot"] + }, + "text/vnd.iptc.newsml": { + source: "iana" + }, + "text/vnd.iptc.nitf": { + source: "iana" + }, + "text/vnd.latex-z": { + source: "iana" + }, + "text/vnd.motorola.reflex": { + source: "iana" + }, + "text/vnd.ms-mediapackage": { + source: "iana" + }, + "text/vnd.net2phone.commcenter.command": { + source: "iana" + }, + "text/vnd.radisys.msml-basic-layout": { + source: "iana" + }, + "text/vnd.senx.warpscript": { + source: "iana" + }, + "text/vnd.si.uricatalogue": { + source: "iana" + }, + "text/vnd.sosi": { + source: "iana" + }, + "text/vnd.sun.j2me.app-descriptor": { + source: "iana", + charset: "UTF-8", + extensions: ["jad"] + }, + "text/vnd.trolltech.linguist": { + source: "iana", + charset: "UTF-8" + }, + "text/vnd.wap.si": { + source: "iana" + }, + "text/vnd.wap.sl": { + source: "iana" + }, + "text/vnd.wap.wml": { + source: "iana", + extensions: ["wml"] + }, + "text/vnd.wap.wmlscript": { + source: "iana", + extensions: ["wmls"] + }, + "text/vtt": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["vtt"] + }, + "text/x-asm": { + source: "apache", + extensions: ["s", "asm"] + }, + "text/x-c": { + source: "apache", + extensions: ["c", "cc", "cxx", "cpp", "h", "hh", "dic"] + }, + "text/x-component": { + source: "nginx", + extensions: ["htc"] + }, + "text/x-fortran": { + source: "apache", + extensions: ["f", "for", "f77", "f90"] + }, + "text/x-gwt-rpc": { + compressible: true + }, + "text/x-handlebars-template": { + extensions: ["hbs"] + }, + "text/x-java-source": { + source: "apache", + extensions: ["java"] + }, + "text/x-jquery-tmpl": { + compressible: true + }, + "text/x-lua": { + extensions: ["lua"] + }, + "text/x-markdown": { + compressible: true, + extensions: ["mkd"] + }, + "text/x-nfo": { + source: "apache", + extensions: ["nfo"] + }, + "text/x-opml": { + source: "apache", + extensions: ["opml"] + }, + "text/x-org": { + compressible: true, + extensions: ["org"] + }, + "text/x-pascal": { + source: "apache", + extensions: ["p", "pas"] + }, + "text/x-processing": { + compressible: true, + extensions: ["pde"] + }, + "text/x-sass": { + extensions: ["sass"] + }, + "text/x-scss": { + extensions: ["scss"] + }, + "text/x-setext": { + source: "apache", + extensions: ["etx"] + }, + "text/x-sfv": { + source: "apache", + extensions: ["sfv"] + }, + "text/x-suse-ymp": { + compressible: true, + extensions: ["ymp"] + }, + "text/x-uuencode": { + source: "apache", + extensions: ["uu"] + }, + "text/x-vcalendar": { + source: "apache", + extensions: ["vcs"] + }, + "text/x-vcard": { + source: "apache", + extensions: ["vcf"] + }, + "text/xml": { + source: "iana", + compressible: true, + extensions: ["xml"] + }, + "text/xml-external-parsed-entity": { + source: "iana" + }, + "text/yaml": { + compressible: true, + extensions: ["yaml", "yml"] + }, + "video/1d-interleaved-parityfec": { + source: "iana" + }, + "video/3gpp": { + source: "iana", + extensions: ["3gp", "3gpp"] + }, + "video/3gpp-tt": { + source: "iana" + }, + "video/3gpp2": { + source: "iana", + extensions: ["3g2"] + }, + "video/av1": { + source: "iana" + }, + "video/bmpeg": { + source: "iana" + }, + "video/bt656": { + source: "iana" + }, + "video/celb": { + source: "iana" + }, + "video/dv": { + source: "iana" + }, + "video/encaprtp": { + source: "iana" + }, + "video/ffv1": { + source: "iana" + }, + "video/flexfec": { + source: "iana" + }, + "video/h261": { + source: "iana", + extensions: ["h261"] + }, + "video/h263": { + source: "iana", + extensions: ["h263"] + }, + "video/h263-1998": { + source: "iana" + }, + "video/h263-2000": { + source: "iana" + }, + "video/h264": { + source: "iana", + extensions: ["h264"] + }, + "video/h264-rcdo": { + source: "iana" + }, + "video/h264-svc": { + source: "iana" + }, + "video/h265": { + source: "iana" + }, + "video/iso.segment": { + source: "iana", + extensions: ["m4s"] + }, + "video/jpeg": { + source: "iana", + extensions: ["jpgv"] + }, + "video/jpeg2000": { + source: "iana" + }, + "video/jpm": { + source: "apache", + extensions: ["jpm", "jpgm"] + }, + "video/jxsv": { + source: "iana" + }, + "video/mj2": { + source: "iana", + extensions: ["mj2", "mjp2"] + }, + "video/mp1s": { + source: "iana" + }, + "video/mp2p": { + source: "iana" + }, + "video/mp2t": { + source: "iana", + extensions: ["ts"] + }, + "video/mp4": { + source: "iana", + compressible: false, + extensions: ["mp4", "mp4v", "mpg4"] + }, + "video/mp4v-es": { + source: "iana" + }, + "video/mpeg": { + source: "iana", + compressible: false, + extensions: ["mpeg", "mpg", "mpe", "m1v", "m2v"] + }, + "video/mpeg4-generic": { + source: "iana" + }, + "video/mpv": { + source: "iana" + }, + "video/nv": { + source: "iana" + }, + "video/ogg": { + source: "iana", + compressible: false, + extensions: ["ogv"] + }, + "video/parityfec": { + source: "iana" + }, + "video/pointer": { + source: "iana" + }, + "video/quicktime": { + source: "iana", + compressible: false, + extensions: ["qt", "mov"] + }, + "video/raptorfec": { + source: "iana" + }, + "video/raw": { + source: "iana" + }, + "video/rtp-enc-aescm128": { + source: "iana" + }, + "video/rtploopback": { + source: "iana" + }, + "video/rtx": { + source: "iana" + }, + "video/scip": { + source: "iana" + }, + "video/smpte291": { + source: "iana" + }, + "video/smpte292m": { + source: "iana" + }, + "video/ulpfec": { + source: "iana" + }, + "video/vc1": { + source: "iana" + }, + "video/vc2": { + source: "iana" + }, + "video/vnd.cctv": { + source: "iana" + }, + "video/vnd.dece.hd": { + source: "iana", + extensions: ["uvh", "uvvh"] + }, + "video/vnd.dece.mobile": { + source: "iana", + extensions: ["uvm", "uvvm"] + }, + "video/vnd.dece.mp4": { + source: "iana" + }, + "video/vnd.dece.pd": { + source: "iana", + extensions: ["uvp", "uvvp"] + }, + "video/vnd.dece.sd": { + source: "iana", + extensions: ["uvs", "uvvs"] + }, + "video/vnd.dece.video": { + source: "iana", + extensions: ["uvv", "uvvv"] + }, + "video/vnd.directv.mpeg": { + source: "iana" + }, + "video/vnd.directv.mpeg-tts": { + source: "iana" + }, + "video/vnd.dlna.mpeg-tts": { + source: "iana" + }, + "video/vnd.dvb.file": { + source: "iana", + extensions: ["dvb"] + }, + "video/vnd.fvt": { + source: "iana", + extensions: ["fvt"] + }, + "video/vnd.hns.video": { + source: "iana" + }, + "video/vnd.iptvforum.1dparityfec-1010": { + source: "iana" + }, + "video/vnd.iptvforum.1dparityfec-2005": { + source: "iana" + }, + "video/vnd.iptvforum.2dparityfec-1010": { + source: "iana" + }, + "video/vnd.iptvforum.2dparityfec-2005": { + source: "iana" + }, + "video/vnd.iptvforum.ttsavc": { + source: "iana" + }, + "video/vnd.iptvforum.ttsmpeg2": { + source: "iana" + }, + "video/vnd.motorola.video": { + source: "iana" + }, + "video/vnd.motorola.videop": { + source: "iana" + }, + "video/vnd.mpegurl": { + source: "iana", + extensions: ["mxu", "m4u"] + }, + "video/vnd.ms-playready.media.pyv": { + source: "iana", + extensions: ["pyv"] + }, + "video/vnd.nokia.interleaved-multimedia": { + source: "iana" + }, + "video/vnd.nokia.mp4vr": { + source: "iana" + }, + "video/vnd.nokia.videovoip": { + source: "iana" + }, + "video/vnd.objectvideo": { + source: "iana" + }, + "video/vnd.radgamettools.bink": { + source: "iana" + }, + "video/vnd.radgamettools.smacker": { + source: "iana" + }, + "video/vnd.sealed.mpeg1": { + source: "iana" + }, + "video/vnd.sealed.mpeg4": { + source: "iana" + }, + "video/vnd.sealed.swf": { + source: "iana" + }, + "video/vnd.sealedmedia.softseal.mov": { + source: "iana" + }, + "video/vnd.uvvu.mp4": { + source: "iana", + extensions: ["uvu", "uvvu"] + }, + "video/vnd.vivo": { + source: "iana", + extensions: ["viv"] + }, + "video/vnd.youtube.yt": { + source: "iana" + }, + "video/vp8": { + source: "iana" + }, + "video/vp9": { + source: "iana" + }, + "video/webm": { + source: "apache", + compressible: false, + extensions: ["webm"] + }, + "video/x-f4v": { + source: "apache", + extensions: ["f4v"] + }, + "video/x-fli": { + source: "apache", + extensions: ["fli"] + }, + "video/x-flv": { + source: "apache", + compressible: false, + extensions: ["flv"] + }, + "video/x-m4v": { + source: "apache", + extensions: ["m4v"] + }, + "video/x-matroska": { + source: "apache", + compressible: false, + extensions: ["mkv", "mk3d", "mks"] + }, + "video/x-mng": { + source: "apache", + extensions: ["mng"] + }, + "video/x-ms-asf": { + source: "apache", + extensions: ["asf", "asx"] + }, + "video/x-ms-vob": { + source: "apache", + extensions: ["vob"] + }, + "video/x-ms-wm": { + source: "apache", + extensions: ["wm"] + }, + "video/x-ms-wmv": { + source: "apache", + compressible: false, + extensions: ["wmv"] + }, + "video/x-ms-wmx": { + source: "apache", + extensions: ["wmx"] + }, + "video/x-ms-wvx": { + source: "apache", + extensions: ["wvx"] + }, + "video/x-msvideo": { + source: "apache", + extensions: ["avi"] + }, + "video/x-sgi-movie": { + source: "apache", + extensions: ["movie"] + }, + "video/x-smv": { + source: "apache", + extensions: ["smv"] + }, + "x-conference/x-cooltalk": { + source: "apache", + extensions: ["ice"] + }, + "x-shader/x-fragment": { + compressible: true + }, + "x-shader/x-vertex": { + compressible: true + } + }; + } +}); + +// node_modules/mime-db/index.js +var require_mime_db = __commonJS({ + "node_modules/mime-db/index.js"(exports2, module2) { + module2.exports = require_db(); + } +}); + +// node_modules/mime-types/index.js +var require_mime_types = __commonJS({ + "node_modules/mime-types/index.js"(exports2) { + "use strict"; + var db = require_mime_db(); + var extname = require("path").extname; + var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/; + var TEXT_TYPE_REGEXP = /^text\//i; + exports2.charset = charset; + exports2.charsets = { lookup: charset }; + exports2.contentType = contentType; + exports2.extension = extension; + exports2.extensions = Object.create(null); + exports2.lookup = lookup; + exports2.types = Object.create(null); + populateMaps(exports2.extensions, exports2.types); + function charset(type) { + if (!type || typeof type !== "string") { + return false; + } + var match = EXTRACT_TYPE_REGEXP.exec(type); + var mime2 = match && db[match[1].toLowerCase()]; + if (mime2 && mime2.charset) { + return mime2.charset; + } + if (match && TEXT_TYPE_REGEXP.test(match[1])) { + return "UTF-8"; + } + return false; + } + function contentType(str) { + if (!str || typeof str !== "string") { + return false; + } + var mime2 = str.indexOf("/") === -1 ? exports2.lookup(str) : str; + if (!mime2) { + return false; + } + if (mime2.indexOf("charset") === -1) { + var charset2 = exports2.charset(mime2); + if (charset2) + mime2 += "; charset=" + charset2.toLowerCase(); + } + return mime2; + } + function extension(type) { + if (!type || typeof type !== "string") { + return false; + } + var match = EXTRACT_TYPE_REGEXP.exec(type); + var exts = match && exports2.extensions[match[1].toLowerCase()]; + if (!exts || !exts.length) { + return false; + } + return exts[0]; + } + function lookup(path2) { + if (!path2 || typeof path2 !== "string") { + return false; + } + var extension2 = extname("x." + path2).toLowerCase().substr(1); + if (!extension2) { + return false; + } + return exports2.types[extension2] || false; + } + function populateMaps(extensions, types) { + var preference = ["nginx", "apache", void 0, "iana"]; + Object.keys(db).forEach(function forEachMimeType(type) { + var mime2 = db[type]; + var exts = mime2.extensions; + if (!exts || !exts.length) { + return; + } + extensions[type] = exts; + for (var i = 0; i < exts.length; i++) { + var extension2 = exts[i]; + if (types[extension2]) { + var from = preference.indexOf(db[types[extension2]].source); + var to = preference.indexOf(mime2.source); + if (types[extension2] !== "application/octet-stream" && (from > to || from === to && types[extension2].substr(0, 12) === "application/")) { + continue; + } + } + types[extension2] = type; + } + }); + } + } +}); + +// node_modules/type-is/index.js +var require_type_is = __commonJS({ + "node_modules/type-is/index.js"(exports2, module2) { + "use strict"; + var typer = require_media_typer(); + var mime2 = require_mime_types(); + module2.exports = typeofrequest; + module2.exports.is = typeis; + module2.exports.hasBody = hasbody; + module2.exports.normalize = normalize; + module2.exports.match = mimeMatch; + function typeis(value, types_) { + var i; + var types = types_; + var val = tryNormalizeType(value); + if (!val) { + return false; + } + if (types && !Array.isArray(types)) { + types = new Array(arguments.length - 1); + for (i = 0; i < types.length; i++) { + types[i] = arguments[i + 1]; + } + } + if (!types || !types.length) { + return val; + } + var type; + for (i = 0; i < types.length; i++) { + if (mimeMatch(normalize(type = types[i]), val)) { + return type[0] === "+" || type.indexOf("*") !== -1 ? val : type; + } + } + return false; + } + function hasbody(req) { + return req.headers["transfer-encoding"] !== void 0 || !isNaN(req.headers["content-length"]); + } + function typeofrequest(req, types_) { + var types = types_; + if (!hasbody(req)) { + return null; + } + if (arguments.length > 2) { + types = new Array(arguments.length - 1); + for (var i = 0; i < types.length; i++) { + types[i] = arguments[i + 1]; + } + } + var value = req.headers["content-type"]; + return typeis(value, types); + } + function normalize(type) { + if (typeof type !== "string") { + return false; + } + switch (type) { + case "urlencoded": + return "application/x-www-form-urlencoded"; + case "multipart": + return "multipart/*"; + } + if (type[0] === "+") { + return "*/*" + type; + } + return type.indexOf("/") === -1 ? mime2.lookup(type) : type; + } + function mimeMatch(expected, actual) { + if (expected === false) { + return false; + } + var actualParts = actual.split("/"); + var expectedParts = expected.split("/"); + if (actualParts.length !== 2 || expectedParts.length !== 2) { + return false; + } + if (expectedParts[0] !== "*" && expectedParts[0] !== actualParts[0]) { + return false; + } + if (expectedParts[1].substr(0, 2) === "*+") { + return expectedParts[1].length <= actualParts[1].length + 1 && expectedParts[1].substr(1) === actualParts[1].substr(1 - expectedParts[1].length); + } + if (expectedParts[1] !== "*" && expectedParts[1] !== actualParts[1]) { + return false; + } + return true; + } + function normalizeType(value) { + var type = typer.parse(value); + type.parameters = void 0; + return typer.format(type); + } + function tryNormalizeType(value) { + if (!value) { + return null; + } + try { + return normalizeType(value); + } catch (err) { + return null; + } + } + } +}); + +// node_modules/body-parser/lib/types/json.js +var require_json = __commonJS({ + "node_modules/body-parser/lib/types/json.js"(exports2, module2) { + "use strict"; + var bytes = require_bytes(); + var contentType = require_content_type(); + var createError = require_http_errors(); + var debug = require_src()("body-parser:json"); + var isFinished = require_on_finished().isFinished; + var read = require_read(); + var typeis = require_type_is(); + module2.exports = json; + var FIRST_CHAR_REGEXP = /^[\x20\x09\x0a\x0d]*(.)/; + function json(options) { + var opts = options || {}; + var limit = typeof opts.limit !== "number" ? bytes.parse(opts.limit || "100kb") : opts.limit; + var inflate = opts.inflate !== false; + var reviver = opts.reviver; + var strict = opts.strict !== false; + var type = opts.type || "application/json"; + var verify = opts.verify || false; + if (verify !== false && typeof verify !== "function") { + throw new TypeError("option verify must be function"); + } + var shouldParse = typeof type !== "function" ? typeChecker(type) : type; + function parse(body) { + if (body.length === 0) { + return {}; + } + if (strict) { + var first = firstchar(body); + if (first !== "{" && first !== "[") { + debug("strict violation"); + throw createStrictSyntaxError(body, first); + } + } + try { + debug("parse json"); + return JSON.parse(body, reviver); + } catch (e) { + throw normalizeJsonSyntaxError(e, { + message: e.message, + stack: e.stack + }); + } + } + return function jsonParser(req, res, next) { + if (isFinished(req)) { + debug("body already parsed"); + next(); + return; + } + if (!("body" in req)) { + req.body = void 0; + } + if (!typeis.hasBody(req)) { + debug("skip empty body"); + next(); + return; + } + debug("content-type %j", req.headers["content-type"]); + if (!shouldParse(req)) { + debug("skip parsing"); + next(); + return; + } + var charset = getCharset(req) || "utf-8"; + if (charset.substr(0, 4) !== "utf-") { + debug("invalid charset"); + next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { + charset, + type: "charset.unsupported" + })); + return; + } + read(req, res, next, parse, debug, { + encoding: charset, + inflate, + limit, + verify + }); + }; + } + function createStrictSyntaxError(str, char) { + var index = str.indexOf(char); + var partial = str.substring(0, index) + "#"; + try { + JSON.parse(partial); + throw new SyntaxError("strict violation"); + } catch (e) { + return normalizeJsonSyntaxError(e, { + message: e.message.replace("#", char), + stack: e.stack + }); + } + } + function firstchar(str) { + return FIRST_CHAR_REGEXP.exec(str)[1]; + } + function getCharset(req) { + try { + return (contentType.parse(req).parameters.charset || "").toLowerCase(); + } catch (e) { + return void 0; + } + } + function normalizeJsonSyntaxError(error, obj) { + var keys = Object.getOwnPropertyNames(error); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (key !== "stack" && key !== "message") { + delete error[key]; + } + } + error.stack = obj.stack.replace(error.message, obj.message); + error.message = obj.message; + return error; + } + function typeChecker(type) { + return function checkType(req) { + return Boolean(typeis(req, type)); + }; + } + } +}); + +// node_modules/body-parser/lib/types/raw.js +var require_raw = __commonJS({ + "node_modules/body-parser/lib/types/raw.js"(exports2, module2) { + "use strict"; + var bytes = require_bytes(); + var debug = require_src()("body-parser:raw"); + var isFinished = require_on_finished().isFinished; + var read = require_read(); + var typeis = require_type_is(); + module2.exports = raw; + function raw(options) { + var opts = options || {}; + var inflate = opts.inflate !== false; + var limit = typeof opts.limit !== "number" ? bytes.parse(opts.limit || "100kb") : opts.limit; + var type = opts.type || "application/octet-stream"; + var verify = opts.verify || false; + if (verify !== false && typeof verify !== "function") { + throw new TypeError("option verify must be function"); + } + var shouldParse = typeof type !== "function" ? typeChecker(type) : type; + function parse(buf) { + return buf; + } + return function rawParser(req, res, next) { + if (isFinished(req)) { + debug("body already parsed"); + next(); + return; + } + if (!("body" in req)) { + req.body = void 0; + } + if (!typeis.hasBody(req)) { + debug("skip empty body"); + next(); + return; + } + debug("content-type %j", req.headers["content-type"]); + if (!shouldParse(req)) { + debug("skip parsing"); + next(); + return; + } + read(req, res, next, parse, debug, { + encoding: null, + inflate, + limit, + verify + }); + }; + } + function typeChecker(type) { + return function checkType(req) { + return Boolean(typeis(req, type)); + }; + } + } +}); + +// node_modules/body-parser/lib/types/text.js +var require_text = __commonJS({ + "node_modules/body-parser/lib/types/text.js"(exports2, module2) { + "use strict"; + var bytes = require_bytes(); + var contentType = require_content_type(); + var debug = require_src()("body-parser:text"); + var isFinished = require_on_finished().isFinished; + var read = require_read(); + var typeis = require_type_is(); + module2.exports = text; + function text(options) { + var opts = options || {}; + var defaultCharset = opts.defaultCharset || "utf-8"; + var inflate = opts.inflate !== false; + var limit = typeof opts.limit !== "number" ? bytes.parse(opts.limit || "100kb") : opts.limit; + var type = opts.type || "text/plain"; + var verify = opts.verify || false; + if (verify !== false && typeof verify !== "function") { + throw new TypeError("option verify must be function"); + } + var shouldParse = typeof type !== "function" ? typeChecker(type) : type; + function parse(buf) { + return buf; + } + return function textParser(req, res, next) { + if (isFinished(req)) { + debug("body already parsed"); + next(); + return; + } + if (!("body" in req)) { + req.body = void 0; + } + if (!typeis.hasBody(req)) { + debug("skip empty body"); + next(); + return; + } + debug("content-type %j", req.headers["content-type"]); + if (!shouldParse(req)) { + debug("skip parsing"); + next(); + return; + } + var charset = getCharset(req) || defaultCharset; + read(req, res, next, parse, debug, { + encoding: charset, + inflate, + limit, + verify + }); + }; + } + function getCharset(req) { + try { + return (contentType.parse(req).parameters.charset || "").toLowerCase(); + } catch (e) { + return void 0; + } + } + function typeChecker(type) { + return function checkType(req) { + return Boolean(typeis(req, type)); + }; + } + } +}); + +// node_modules/qs/lib/formats.js +var require_formats = __commonJS({ + "node_modules/qs/lib/formats.js"(exports2, module2) { + "use strict"; + var replace = String.prototype.replace; + var percentTwenties = /%20/g; + var Format = { + RFC1738: "RFC1738", + RFC3986: "RFC3986" + }; + module2.exports = { + "default": Format.RFC3986, + formatters: { + RFC1738: function(value) { + return replace.call(value, percentTwenties, "+"); + }, + RFC3986: function(value) { + return String(value); + } + }, + RFC1738: Format.RFC1738, + RFC3986: Format.RFC3986 + }; + } +}); + +// node_modules/qs/lib/utils.js +var require_utils = __commonJS({ + "node_modules/qs/lib/utils.js"(exports2, module2) { + "use strict"; + var formats = require_formats(); + var has = Object.prototype.hasOwnProperty; + var isArray = Array.isArray; + var hexTable = function() { + var array = []; + for (var i = 0; i < 256; ++i) { + array.push("%" + ((i < 16 ? "0" : "") + i.toString(16)).toUpperCase()); + } + return array; + }(); + var compactQueue = function compactQueue2(queue) { + while (queue.length > 1) { + var item = queue.pop(); + var obj = item.obj[item.prop]; + if (isArray(obj)) { + var compacted = []; + for (var j = 0; j < obj.length; ++j) { + if (typeof obj[j] !== "undefined") { + compacted.push(obj[j]); + } + } + item.obj[item.prop] = compacted; + } + } + }; + var arrayToObject = function arrayToObject2(source, options) { + var obj = options && options.plainObjects ? Object.create(null) : {}; + for (var i = 0; i < source.length; ++i) { + if (typeof source[i] !== "undefined") { + obj[i] = source[i]; + } + } + return obj; + }; + var merge = function merge2(target, source, options) { + if (!source) { + return target; + } + if (typeof source !== "object") { + if (isArray(target)) { + target.push(source); + } else if (target && typeof target === "object") { + if (options && (options.plainObjects || options.allowPrototypes) || !has.call(Object.prototype, source)) { + target[source] = true; + } + } else { + return [target, source]; + } + return target; + } + if (!target || typeof target !== "object") { + return [target].concat(source); + } + var mergeTarget = target; + if (isArray(target) && !isArray(source)) { + mergeTarget = arrayToObject(target, options); + } + if (isArray(target) && isArray(source)) { + source.forEach(function(item, i) { + if (has.call(target, i)) { + var targetItem = target[i]; + if (targetItem && typeof targetItem === "object" && item && typeof item === "object") { + target[i] = merge2(targetItem, item, options); + } else { + target.push(item); + } + } else { + target[i] = item; + } + }); + return target; + } + return Object.keys(source).reduce(function(acc, key) { + var value = source[key]; + if (has.call(acc, key)) { + acc[key] = merge2(acc[key], value, options); + } else { + acc[key] = value; + } + return acc; + }, mergeTarget); + }; + var assign = function assignSingleSource(target, source) { + return Object.keys(source).reduce(function(acc, key) { + acc[key] = source[key]; + return acc; + }, target); + }; + var decode = function(str, decoder, charset) { + var strWithoutPlus = str.replace(/\+/g, " "); + if (charset === "iso-8859-1") { + return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape); + } + try { + return decodeURIComponent(strWithoutPlus); + } catch (e) { + return strWithoutPlus; + } + }; + var encode = function encode2(str, defaultEncoder, charset, kind, format) { + if (str.length === 0) { + return str; + } + var string = str; + if (typeof str === "symbol") { + string = Symbol.prototype.toString.call(str); + } else if (typeof str !== "string") { + string = String(str); + } + if (charset === "iso-8859-1") { + return escape(string).replace(/%u[0-9a-f]{4}/gi, function($0) { + return "%26%23" + parseInt($0.slice(2), 16) + "%3B"; + }); + } + var out = ""; + for (var i = 0; i < string.length; ++i) { + var c = string.charCodeAt(i); + if (c === 45 || c === 46 || c === 95 || c === 126 || c >= 48 && c <= 57 || c >= 65 && c <= 90 || c >= 97 && c <= 122 || format === formats.RFC1738 && (c === 40 || c === 41)) { + out += string.charAt(i); + continue; + } + if (c < 128) { + out = out + hexTable[c]; + continue; + } + if (c < 2048) { + out = out + (hexTable[192 | c >> 6] + hexTable[128 | c & 63]); + continue; + } + if (c < 55296 || c >= 57344) { + out = out + (hexTable[224 | c >> 12] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63]); + continue; + } + i += 1; + c = 65536 + ((c & 1023) << 10 | string.charCodeAt(i) & 1023); + out += hexTable[240 | c >> 18] + hexTable[128 | c >> 12 & 63] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63]; + } + return out; + }; + var compact = function compact2(value) { + var queue = [{ obj: { o: value }, prop: "o" }]; + var refs = []; + for (var i = 0; i < queue.length; ++i) { + var item = queue[i]; + var obj = item.obj[item.prop]; + var keys = Object.keys(obj); + for (var j = 0; j < keys.length; ++j) { + var key = keys[j]; + var val = obj[key]; + if (typeof val === "object" && val !== null && refs.indexOf(val) === -1) { + queue.push({ obj, prop: key }); + refs.push(val); + } + } + } + compactQueue(queue); + return value; + }; + var isRegExp = function isRegExp2(obj) { + return Object.prototype.toString.call(obj) === "[object RegExp]"; + }; + var isBuffer = function isBuffer2(obj) { + if (!obj || typeof obj !== "object") { + return false; + } + return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); + }; + var combine = function combine2(a, b) { + return [].concat(a, b); + }; + var maybeMap = function maybeMap2(val, fn2) { + if (isArray(val)) { + var mapped = []; + for (var i = 0; i < val.length; i += 1) { + mapped.push(fn2(val[i])); + } + return mapped; + } + return fn2(val); + }; + module2.exports = { + arrayToObject, + assign, + combine, + compact, + decode, + encode, + isBuffer, + isRegExp, + maybeMap, + merge + }; + } +}); + +// node_modules/qs/lib/stringify.js +var require_stringify = __commonJS({ + "node_modules/qs/lib/stringify.js"(exports2, module2) { + "use strict"; + var utils = require_utils(); + var formats = require_formats(); + var has = Object.prototype.hasOwnProperty; + var arrayPrefixGenerators = { + brackets: function brackets(prefix) { + return prefix + "[]"; + }, + comma: "comma", + indices: function indices(prefix, key) { + return prefix + "[" + key + "]"; + }, + repeat: function repeat(prefix) { + return prefix; + } + }; + var isArray = Array.isArray; + var push = Array.prototype.push; + var pushToArray = function(arr, valueOrArray) { + push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]); + }; + var toISO = Date.prototype.toISOString; + var defaultFormat = formats["default"]; + var defaults = { + addQueryPrefix: false, + allowDots: false, + charset: "utf-8", + charsetSentinel: false, + delimiter: "&", + encode: true, + encoder: utils.encode, + encodeValuesOnly: false, + format: defaultFormat, + formatter: formats.formatters[defaultFormat], + indices: false, + serializeDate: function serializeDate(date) { + return toISO.call(date); + }, + skipNulls: false, + strictNullHandling: false + }; + var isNonNullishPrimitive = function isNonNullishPrimitive2(v) { + return typeof v === "string" || typeof v === "number" || typeof v === "boolean" || typeof v === "symbol" || typeof v === "bigint"; + }; + var stringify = function stringify2(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset) { + var obj = object; + if (typeof filter === "function") { + obj = filter(prefix, obj); + } else if (obj instanceof Date) { + obj = serializeDate(obj); + } else if (generateArrayPrefix === "comma" && isArray(obj)) { + obj = utils.maybeMap(obj, function(value2) { + if (value2 instanceof Date) { + return serializeDate(value2); + } + return value2; + }); + } + if (obj === null) { + if (strictNullHandling) { + return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, "key", format) : prefix; + } + obj = ""; + } + if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) { + if (encoder) { + var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, "key", format); + return [formatter(keyValue) + "=" + formatter(encoder(obj, defaults.encoder, charset, "value", format))]; + } + return [formatter(prefix) + "=" + formatter(String(obj))]; + } + var values = []; + if (typeof obj === "undefined") { + return values; + } + var objKeys; + if (generateArrayPrefix === "comma" && isArray(obj)) { + objKeys = [{ value: obj.length > 0 ? obj.join(",") || null : void 0 }]; + } else if (isArray(filter)) { + objKeys = filter; + } else { + var keys = Object.keys(obj); + objKeys = sort ? keys.sort(sort) : keys; + } + for (var i = 0; i < objKeys.length; ++i) { + var key = objKeys[i]; + var value = typeof key === "object" && key.value !== void 0 ? key.value : obj[key]; + if (skipNulls && value === null) { + continue; + } + var keyPrefix = isArray(obj) ? typeof generateArrayPrefix === "function" ? generateArrayPrefix(prefix, key) : prefix : prefix + (allowDots ? "." + key : "[" + key + "]"); + pushToArray(values, stringify2(value, keyPrefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset)); + } + return values; + }; + var normalizeStringifyOptions = function normalizeStringifyOptions2(opts) { + if (!opts) { + return defaults; + } + if (opts.encoder !== null && opts.encoder !== void 0 && typeof opts.encoder !== "function") { + throw new TypeError("Encoder has to be a function."); + } + var charset = opts.charset || defaults.charset; + if (typeof opts.charset !== "undefined" && opts.charset !== "utf-8" && opts.charset !== "iso-8859-1") { + throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined"); + } + var format = formats["default"]; + if (typeof opts.format !== "undefined") { + if (!has.call(formats.formatters, opts.format)) { + throw new TypeError("Unknown format option provided."); + } + format = opts.format; + } + var formatter = formats.formatters[format]; + var filter = defaults.filter; + if (typeof opts.filter === "function" || isArray(opts.filter)) { + filter = opts.filter; + } + return { + addQueryPrefix: typeof opts.addQueryPrefix === "boolean" ? opts.addQueryPrefix : defaults.addQueryPrefix, + allowDots: typeof opts.allowDots === "undefined" ? defaults.allowDots : !!opts.allowDots, + charset, + charsetSentinel: typeof opts.charsetSentinel === "boolean" ? opts.charsetSentinel : defaults.charsetSentinel, + delimiter: typeof opts.delimiter === "undefined" ? defaults.delimiter : opts.delimiter, + encode: typeof opts.encode === "boolean" ? opts.encode : defaults.encode, + encoder: typeof opts.encoder === "function" ? opts.encoder : defaults.encoder, + encodeValuesOnly: typeof opts.encodeValuesOnly === "boolean" ? opts.encodeValuesOnly : defaults.encodeValuesOnly, + filter, + format, + formatter, + serializeDate: typeof opts.serializeDate === "function" ? opts.serializeDate : defaults.serializeDate, + skipNulls: typeof opts.skipNulls === "boolean" ? opts.skipNulls : defaults.skipNulls, + sort: typeof opts.sort === "function" ? opts.sort : null, + strictNullHandling: typeof opts.strictNullHandling === "boolean" ? opts.strictNullHandling : defaults.strictNullHandling + }; + }; + module2.exports = function(object, opts) { + var obj = object; + var options = normalizeStringifyOptions(opts); + var objKeys; + var filter; + if (typeof options.filter === "function") { + filter = options.filter; + obj = filter("", obj); + } else if (isArray(options.filter)) { + filter = options.filter; + objKeys = filter; + } + var keys = []; + if (typeof obj !== "object" || obj === null) { + return ""; + } + var arrayFormat; + if (opts && opts.arrayFormat in arrayPrefixGenerators) { + arrayFormat = opts.arrayFormat; + } else if (opts && "indices" in opts) { + arrayFormat = opts.indices ? "indices" : "repeat"; + } else { + arrayFormat = "indices"; + } + var generateArrayPrefix = arrayPrefixGenerators[arrayFormat]; + if (!objKeys) { + objKeys = Object.keys(obj); + } + if (options.sort) { + objKeys.sort(options.sort); + } + for (var i = 0; i < objKeys.length; ++i) { + var key = objKeys[i]; + if (options.skipNulls && obj[key] === null) { + continue; + } + pushToArray(keys, stringify(obj[key], key, generateArrayPrefix, options.strictNullHandling, options.skipNulls, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.format, options.formatter, options.encodeValuesOnly, options.charset)); + } + var joined = keys.join(options.delimiter); + var prefix = options.addQueryPrefix === true ? "?" : ""; + if (options.charsetSentinel) { + if (options.charset === "iso-8859-1") { + prefix += "utf8=%26%2310003%3B&"; + } else { + prefix += "utf8=%E2%9C%93&"; + } + } + return joined.length > 0 ? prefix + joined : ""; + }; + } +}); + +// node_modules/qs/lib/parse.js +var require_parse = __commonJS({ + "node_modules/qs/lib/parse.js"(exports2, module2) { + "use strict"; + var utils = require_utils(); + var has = Object.prototype.hasOwnProperty; + var isArray = Array.isArray; + var defaults = { + allowDots: false, + allowPrototypes: false, + arrayLimit: 20, + charset: "utf-8", + charsetSentinel: false, + comma: false, + decoder: utils.decode, + delimiter: "&", + depth: 5, + ignoreQueryPrefix: false, + interpretNumericEntities: false, + parameterLimit: 1e3, + parseArrays: true, + plainObjects: false, + strictNullHandling: false + }; + var interpretNumericEntities = function(str) { + return str.replace(/&#(\d+);/g, function($0, numberStr) { + return String.fromCharCode(parseInt(numberStr, 10)); + }); + }; + var parseArrayValue = function(val, options) { + if (val && typeof val === "string" && options.comma && val.indexOf(",") > -1) { + return val.split(","); + } + return val; + }; + var isoSentinel = "utf8=%26%2310003%3B"; + var charsetSentinel = "utf8=%E2%9C%93"; + var parseValues = function parseQueryStringValues(str, options) { + var obj = {}; + var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, "") : str; + var limit = options.parameterLimit === Infinity ? void 0 : options.parameterLimit; + var parts = cleanStr.split(options.delimiter, limit); + var skipIndex = -1; + var i; + var charset = options.charset; + if (options.charsetSentinel) { + for (i = 0; i < parts.length; ++i) { + if (parts[i].indexOf("utf8=") === 0) { + if (parts[i] === charsetSentinel) { + charset = "utf-8"; + } else if (parts[i] === isoSentinel) { + charset = "iso-8859-1"; + } + skipIndex = i; + i = parts.length; + } + } + } + for (i = 0; i < parts.length; ++i) { + if (i === skipIndex) { + continue; + } + var part = parts[i]; + var bracketEqualsPos = part.indexOf("]="); + var pos = bracketEqualsPos === -1 ? part.indexOf("=") : bracketEqualsPos + 1; + var key, val; + if (pos === -1) { + key = options.decoder(part, defaults.decoder, charset, "key"); + val = options.strictNullHandling ? null : ""; + } else { + key = options.decoder(part.slice(0, pos), defaults.decoder, charset, "key"); + val = utils.maybeMap(parseArrayValue(part.slice(pos + 1), options), function(encodedVal) { + return options.decoder(encodedVal, defaults.decoder, charset, "value"); + }); + } + if (val && options.interpretNumericEntities && charset === "iso-8859-1") { + val = interpretNumericEntities(val); + } + if (part.indexOf("[]=") > -1) { + val = isArray(val) ? [val] : val; + } + if (has.call(obj, key)) { + obj[key] = utils.combine(obj[key], val); + } else { + obj[key] = val; + } + } + return obj; + }; + var parseObject = function(chain, val, options, valuesParsed) { + var leaf = valuesParsed ? val : parseArrayValue(val, options); + for (var i = chain.length - 1; i >= 0; --i) { + var obj; + var root = chain[i]; + if (root === "[]" && options.parseArrays) { + obj = [].concat(leaf); + } else { + obj = options.plainObjects ? Object.create(null) : {}; + var cleanRoot = root.charAt(0) === "[" && root.charAt(root.length - 1) === "]" ? root.slice(1, -1) : root; + var index = parseInt(cleanRoot, 10); + if (!options.parseArrays && cleanRoot === "") { + obj = { 0: leaf }; + } else if (!isNaN(index) && root !== cleanRoot && String(index) === cleanRoot && index >= 0 && (options.parseArrays && index <= options.arrayLimit)) { + obj = []; + obj[index] = leaf; + } else { + obj[cleanRoot] = leaf; + } + } + leaf = obj; + } + return leaf; + }; + var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) { + if (!givenKey) { + return; + } + var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, "[$1]") : givenKey; + var brackets = /(\[[^[\]]*])/; + var child = /(\[[^[\]]*])/g; + var segment = options.depth > 0 && brackets.exec(key); + var parent = segment ? key.slice(0, segment.index) : key; + var keys = []; + if (parent) { + if (!options.plainObjects && has.call(Object.prototype, parent)) { + if (!options.allowPrototypes) { + return; + } + } + keys.push(parent); + } + var i = 0; + while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) { + i += 1; + if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) { + if (!options.allowPrototypes) { + return; + } + } + keys.push(segment[1]); + } + if (segment) { + keys.push("[" + key.slice(segment.index) + "]"); + } + return parseObject(keys, val, options, valuesParsed); + }; + var normalizeParseOptions = function normalizeParseOptions2(opts) { + if (!opts) { + return defaults; + } + if (opts.decoder !== null && opts.decoder !== void 0 && typeof opts.decoder !== "function") { + throw new TypeError("Decoder has to be a function."); + } + if (typeof opts.charset !== "undefined" && opts.charset !== "utf-8" && opts.charset !== "iso-8859-1") { + throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined"); + } + var charset = typeof opts.charset === "undefined" ? defaults.charset : opts.charset; + return { + allowDots: typeof opts.allowDots === "undefined" ? defaults.allowDots : !!opts.allowDots, + allowPrototypes: typeof opts.allowPrototypes === "boolean" ? opts.allowPrototypes : defaults.allowPrototypes, + arrayLimit: typeof opts.arrayLimit === "number" ? opts.arrayLimit : defaults.arrayLimit, + charset, + charsetSentinel: typeof opts.charsetSentinel === "boolean" ? opts.charsetSentinel : defaults.charsetSentinel, + comma: typeof opts.comma === "boolean" ? opts.comma : defaults.comma, + decoder: typeof opts.decoder === "function" ? opts.decoder : defaults.decoder, + delimiter: typeof opts.delimiter === "string" || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter, + depth: typeof opts.depth === "number" || opts.depth === false ? +opts.depth : defaults.depth, + ignoreQueryPrefix: opts.ignoreQueryPrefix === true, + interpretNumericEntities: typeof opts.interpretNumericEntities === "boolean" ? opts.interpretNumericEntities : defaults.interpretNumericEntities, + parameterLimit: typeof opts.parameterLimit === "number" ? opts.parameterLimit : defaults.parameterLimit, + parseArrays: opts.parseArrays !== false, + plainObjects: typeof opts.plainObjects === "boolean" ? opts.plainObjects : defaults.plainObjects, + strictNullHandling: typeof opts.strictNullHandling === "boolean" ? opts.strictNullHandling : defaults.strictNullHandling + }; + }; + module2.exports = function(str, opts) { + var options = normalizeParseOptions(opts); + if (str === "" || str === null || typeof str === "undefined") { + return options.plainObjects ? Object.create(null) : {}; + } + var tempObj = typeof str === "string" ? parseValues(str, options) : str; + var obj = options.plainObjects ? Object.create(null) : {}; + var keys = Object.keys(tempObj); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + var newObj = parseKeys(key, tempObj[key], options, typeof str === "string"); + obj = utils.merge(obj, newObj, options); + } + return utils.compact(obj); + }; + } +}); + +// node_modules/qs/lib/index.js +var require_lib4 = __commonJS({ + "node_modules/qs/lib/index.js"(exports2, module2) { + "use strict"; + var stringify = require_stringify(); + var parse = require_parse(); + var formats = require_formats(); + module2.exports = { + formats, + parse, + stringify + }; + } +}); + +// node_modules/body-parser/lib/types/urlencoded.js +var require_urlencoded = __commonJS({ + "node_modules/body-parser/lib/types/urlencoded.js"(exports2, module2) { + "use strict"; + var bytes = require_bytes(); + var contentType = require_content_type(); + var createError = require_http_errors(); + var debug = require_src()("body-parser:urlencoded"); + var isFinished = require_on_finished().isFinished; + var read = require_read(); + var typeis = require_type_is(); + module2.exports = urlencoded; + var parsers = Object.create(null); + function urlencoded(options) { + var opts = options || {}; + var extended = Boolean(opts.extended); + var inflate = opts.inflate !== false; + var limit = typeof opts.limit !== "number" ? bytes.parse(opts.limit || "100kb") : opts.limit; + var type = opts.type || "application/x-www-form-urlencoded"; + var verify = opts.verify || false; + if (verify !== false && typeof verify !== "function") { + throw new TypeError("option verify must be function"); + } + var queryparse = extended ? extendedparser(opts) : simpleparser(opts); + var shouldParse = typeof type !== "function" ? typeChecker(type) : type; + function parse(body) { + return body.length ? queryparse(body) : {}; + } + return function urlencodedParser(req, res, next) { + if (isFinished(req)) { + debug("body already parsed"); + next(); + return; + } + if (!("body" in req)) { + req.body = void 0; + } + if (!typeis.hasBody(req)) { + debug("skip empty body"); + next(); + return; + } + debug("content-type %j", req.headers["content-type"]); + if (!shouldParse(req)) { + debug("skip parsing"); + next(); + return; + } + var charset = getCharset(req) || "utf-8"; + if (charset !== "utf-8") { + debug("invalid charset"); + next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { + charset, + type: "charset.unsupported" + })); + return; + } + read(req, res, next, parse, debug, { + debug, + encoding: charset, + inflate, + limit, + verify + }); + }; + } + function extendedparser(options) { + var parameterLimit = options.parameterLimit !== void 0 ? options.parameterLimit : 1e3; + var parse = parser("qs"); + if (isNaN(parameterLimit) || parameterLimit < 1) { + throw new TypeError("option parameterLimit must be a positive number"); + } + if (isFinite(parameterLimit)) { + parameterLimit = parameterLimit | 0; + } + return function queryparse(body) { + var paramCount = parameterCount(body, parameterLimit); + if (paramCount === void 0) { + debug("too many parameters"); + throw createError(413, "too many parameters", { + type: "parameters.too.many" + }); + } + var arrayLimit = Math.max(100, paramCount); + debug("parse extended urlencoding"); + return parse(body, { + allowPrototypes: true, + arrayLimit, + depth: Infinity, + parameterLimit + }); + }; + } + function getCharset(req) { + try { + return (contentType.parse(req).parameters.charset || "").toLowerCase(); + } catch (e) { + return void 0; + } + } + function parameterCount(body, limit) { + var count = 0; + var index = 0; + while ((index = body.indexOf("&", index)) !== -1) { + count++; + index++; + if (count === limit) { + return void 0; + } + } + return count; + } + function parser(name) { + var mod = parsers[name]; + if (mod !== void 0) { + return mod.parse; + } + switch (name) { + case "qs": + mod = require_lib4(); + break; + case "querystring": + mod = require("querystring"); + break; + } + parsers[name] = mod; + return mod.parse; + } + function simpleparser(options) { + var parameterLimit = options.parameterLimit !== void 0 ? options.parameterLimit : 1e3; + var parse = parser("querystring"); + if (isNaN(parameterLimit) || parameterLimit < 1) { + throw new TypeError("option parameterLimit must be a positive number"); + } + if (isFinite(parameterLimit)) { + parameterLimit = parameterLimit | 0; + } + return function queryparse(body) { + var paramCount = parameterCount(body, parameterLimit); + if (paramCount === void 0) { + debug("too many parameters"); + throw createError(413, "too many parameters", { + type: "parameters.too.many" + }); + } + debug("parse urlencoding"); + return parse(body, void 0, void 0, { maxKeys: parameterLimit }); + }; + } + function typeChecker(type) { + return function checkType(req) { + return Boolean(typeis(req, type)); + }; + } + } +}); + +// node_modules/body-parser/index.js +var require_body_parser = __commonJS({ + "node_modules/body-parser/index.js"(exports2, module2) { + "use strict"; + var deprecate2 = require_depd()("body-parser"); + var parsers = Object.create(null); + exports2 = module2.exports = deprecate2.function(bodyParser2, "bodyParser: use individual json/urlencoded middlewares"); + Object.defineProperty(exports2, "json", { + configurable: true, + enumerable: true, + get: createParserGetter("json") + }); + Object.defineProperty(exports2, "raw", { + configurable: true, + enumerable: true, + get: createParserGetter("raw") + }); + Object.defineProperty(exports2, "text", { + configurable: true, + enumerable: true, + get: createParserGetter("text") + }); + Object.defineProperty(exports2, "urlencoded", { + configurable: true, + enumerable: true, + get: createParserGetter("urlencoded") + }); + function bodyParser2(options) { + var opts = {}; + if (options) { + for (var prop in options) { + if (prop !== "type") { + opts[prop] = options[prop]; + } + } + } + var _urlencoded = exports2.urlencoded(opts); + var _json = exports2.json(opts); + return function bodyParser3(req, res, next) { + _json(req, res, function(err) { + if (err) + return next(err); + _urlencoded(req, res, next); + }); + }; + } + function createParserGetter(name) { + return function get() { + return loadParser(name); + }; + } + function loadParser(parserName) { + var parser = parsers[parserName]; + if (parser !== void 0) { + return parser; + } + switch (parserName) { + case "json": + parser = require_json(); + break; + case "raw": + parser = require_raw(); + break; + case "text": + parser = require_text(); + break; + case "urlencoded": + parser = require_urlencoded(); + break; + } + return parsers[parserName] = parser; + } + } +}); + +// node_modules/merge-descriptors/index.js +var require_merge_descriptors = __commonJS({ + "node_modules/merge-descriptors/index.js"(exports2, module2) { + "use strict"; + module2.exports = merge; + var hasOwnProperty = Object.prototype.hasOwnProperty; + function merge(dest, src, redefine) { + if (!dest) { + throw new TypeError("argument dest is required"); + } + if (!src) { + throw new TypeError("argument src is required"); + } + if (redefine === void 0) { + redefine = true; + } + Object.getOwnPropertyNames(src).forEach(function forEachOwnPropertyName(name) { + if (!redefine && hasOwnProperty.call(dest, name)) { + return; + } + var descriptor = Object.getOwnPropertyDescriptor(src, name); + Object.defineProperty(dest, name, descriptor); + }); + return dest; + } + } +}); + +// node_modules/finalhandler/node_modules/ms/index.js +var require_ms2 = __commonJS({ + "node_modules/finalhandler/node_modules/ms/index.js"(exports2, module2) { + var s = 1e3; + var m = s * 60; + var h = m * 60; + var d = h * 24; + var y = d * 365.25; + module2.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === "string" && val.length > 0) { + return parse(val); + } else if (type === "number" && isNaN(val) === false) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val)); + }; + function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || "ms").toLowerCase(); + switch (type) { + case "years": + case "year": + case "yrs": + case "yr": + case "y": + return n * y; + case "days": + case "day": + case "d": + return n * d; + case "hours": + case "hour": + case "hrs": + case "hr": + case "h": + return n * h; + case "minutes": + case "minute": + case "mins": + case "min": + case "m": + return n * m; + case "seconds": + case "second": + case "secs": + case "sec": + case "s": + return n * s; + case "milliseconds": + case "millisecond": + case "msecs": + case "msec": + case "ms": + return n; + default: + return void 0; + } + } + function fmtShort(ms) { + if (ms >= d) { + return Math.round(ms / d) + "d"; + } + if (ms >= h) { + return Math.round(ms / h) + "h"; + } + if (ms >= m) { + return Math.round(ms / m) + "m"; + } + if (ms >= s) { + return Math.round(ms / s) + "s"; + } + return ms + "ms"; + } + function fmtLong(ms) { + return plural(ms, d, "day") || plural(ms, h, "hour") || plural(ms, m, "minute") || plural(ms, s, "second") || ms + " ms"; + } + function plural(ms, n, name) { + if (ms < n) { + return; + } + if (ms < n * 1.5) { + return Math.floor(ms / n) + " " + name; + } + return Math.ceil(ms / n) + " " + name + "s"; + } + } +}); + +// node_modules/finalhandler/node_modules/debug/src/debug.js +var require_debug2 = __commonJS({ + "node_modules/finalhandler/node_modules/debug/src/debug.js"(exports2, module2) { + exports2 = module2.exports = createDebug.debug = createDebug["default"] = createDebug; + exports2.coerce = coerce; + exports2.disable = disable; + exports2.enable = enable; + exports2.enabled = enabled; + exports2.humanize = require_ms2(); + exports2.names = []; + exports2.skips = []; + exports2.formatters = {}; + var prevTime; + function selectColor(namespace) { + var hash = 0, i; + for (i in namespace) { + hash = (hash << 5) - hash + namespace.charCodeAt(i); + hash |= 0; + } + return exports2.colors[Math.abs(hash) % exports2.colors.length]; + } + function createDebug(namespace) { + function debug() { + if (!debug.enabled) + return; + var self2 = debug; + var curr = +new Date(); + var ms = curr - (prevTime || curr); + self2.diff = ms; + self2.prev = prevTime; + self2.curr = curr; + prevTime = curr; + var args2 = new Array(arguments.length); + for (var i = 0; i < args2.length; i++) { + args2[i] = arguments[i]; + } + args2[0] = exports2.coerce(args2[0]); + if (typeof args2[0] !== "string") { + args2.unshift("%O"); + } + var index = 0; + args2[0] = args2[0].replace(/%([a-zA-Z%])/g, function(match, format) { + if (match === "%%") + return match; + index++; + var formatter = exports2.formatters[format]; + if (typeof formatter === "function") { + var val = args2[index]; + match = formatter.call(self2, val); + args2.splice(index, 1); + index--; + } + return match; + }); + exports2.formatArgs.call(self2, args2); + var logFn = debug.log || exports2.log || console.log.bind(console); + logFn.apply(self2, args2); + } + debug.namespace = namespace; + debug.enabled = exports2.enabled(namespace); + debug.useColors = exports2.useColors(); + debug.color = selectColor(namespace); + if (typeof exports2.init === "function") { + exports2.init(debug); + } + return debug; + } + function enable(namespaces) { + exports2.save(namespaces); + exports2.names = []; + exports2.skips = []; + var split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/); + var len = split.length; + for (var i = 0; i < len; i++) { + if (!split[i]) + continue; + namespaces = split[i].replace(/\*/g, ".*?"); + if (namespaces[0] === "-") { + exports2.skips.push(new RegExp("^" + namespaces.substr(1) + "$")); + } else { + exports2.names.push(new RegExp("^" + namespaces + "$")); + } + } + } + function disable() { + exports2.enable(""); + } + function enabled(name) { + var i, len; + for (i = 0, len = exports2.skips.length; i < len; i++) { + if (exports2.skips[i].test(name)) { + return false; + } + } + for (i = 0, len = exports2.names.length; i < len; i++) { + if (exports2.names[i].test(name)) { + return true; + } + } + return false; + } + function coerce(val) { + if (val instanceof Error) + return val.stack || val.message; + return val; + } + } +}); + +// node_modules/finalhandler/node_modules/debug/src/browser.js +var require_browser2 = __commonJS({ + "node_modules/finalhandler/node_modules/debug/src/browser.js"(exports2, module2) { + exports2 = module2.exports = require_debug2(); + exports2.log = log2; + exports2.formatArgs = formatArgs; + exports2.save = save; + exports2.load = load; + exports2.useColors = useColors; + exports2.storage = typeof chrome != "undefined" && typeof chrome.storage != "undefined" ? chrome.storage.local : localstorage(); + exports2.colors = [ + "lightseagreen", + "forestgreen", + "goldenrod", + "dodgerblue", + "darkorchid", + "crimson" + ]; + function useColors() { + if (typeof window !== "undefined" && window.process && window.process.type === "renderer") { + return true; + } + return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); + } + exports2.formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (err) { + return "[UnexpectedJSONParseError]: " + err.message; + } + }; + function formatArgs(args2) { + var useColors2 = this.useColors; + args2[0] = (useColors2 ? "%c" : "") + this.namespace + (useColors2 ? " %c" : " ") + args2[0] + (useColors2 ? "%c " : " ") + "+" + exports2.humanize(this.diff); + if (!useColors2) + return; + var c = "color: " + this.color; + args2.splice(1, 0, c, "color: inherit"); + var index = 0; + var lastC = 0; + args2[0].replace(/%[a-zA-Z%]/g, function(match) { + if (match === "%%") + return; + index++; + if (match === "%c") { + lastC = index; + } + }); + args2.splice(lastC, 0, c); + } + function log2() { + return typeof console === "object" && console.log && Function.prototype.apply.call(console.log, console, arguments); + } + function save(namespaces) { + try { + if (namespaces == null) { + exports2.storage.removeItem("debug"); + } else { + exports2.storage.debug = namespaces; + } + } catch (e) { + } + } + function load() { + var r; + try { + r = exports2.storage.debug; + } catch (e) { + } + if (!r && typeof process !== "undefined" && "env" in process) { + r = process.env.DEBUG; + } + return r; + } + exports2.enable(load()); + function localstorage() { + try { + return window.localStorage; + } catch (e) { + } + } + } +}); + +// node_modules/finalhandler/node_modules/debug/src/node.js +var require_node2 = __commonJS({ + "node_modules/finalhandler/node_modules/debug/src/node.js"(exports2, module2) { + var tty = require("tty"); + var util = require("util"); + exports2 = module2.exports = require_debug2(); + exports2.init = init; + exports2.log = log2; + exports2.formatArgs = formatArgs; + exports2.save = save; + exports2.load = load; + exports2.useColors = useColors; + exports2.colors = [6, 2, 3, 4, 5, 1]; + exports2.inspectOpts = Object.keys(process.env).filter(function(key) { + return /^debug_/i.test(key); + }).reduce(function(obj, key) { + var prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, function(_, k) { + return k.toUpperCase(); + }); + var val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) + val = true; + else if (/^(no|off|false|disabled)$/i.test(val)) + val = false; + else if (val === "null") + val = null; + else + val = Number(val); + obj[prop] = val; + return obj; + }, {}); + var fd = parseInt(process.env.DEBUG_FD, 10) || 2; + if (fd !== 1 && fd !== 2) { + util.deprecate(function() { + }, "except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")(); + } + var stream = fd === 1 ? process.stdout : fd === 2 ? process.stderr : createWritableStdioStream(fd); + function useColors() { + return "colors" in exports2.inspectOpts ? Boolean(exports2.inspectOpts.colors) : tty.isatty(fd); + } + exports2.formatters.o = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts).split("\n").map(function(str) { + return str.trim(); + }).join(" "); + }; + exports2.formatters.O = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); + }; + function formatArgs(args2) { + var name = this.namespace; + var useColors2 = this.useColors; + if (useColors2) { + var c = this.color; + var prefix = " [3" + c + ";1m" + name + " "; + args2[0] = prefix + args2[0].split("\n").join("\n" + prefix); + args2.push("[3" + c + "m+" + exports2.humanize(this.diff) + ""); + } else { + args2[0] = new Date().toUTCString() + " " + name + " " + args2[0]; + } + } + function log2() { + return stream.write(util.format.apply(util, arguments) + "\n"); + } + function save(namespaces) { + if (namespaces == null) { + delete process.env.DEBUG; + } else { + process.env.DEBUG = namespaces; + } + } + function load() { + return process.env.DEBUG; + } + function createWritableStdioStream(fd2) { + var stream2; + var tty_wrap = process.binding("tty_wrap"); + switch (tty_wrap.guessHandleType(fd2)) { + case "TTY": + stream2 = new tty.WriteStream(fd2); + stream2._type = "tty"; + if (stream2._handle && stream2._handle.unref) { + stream2._handle.unref(); + } + break; + case "FILE": + var fs = require("fs"); + stream2 = new fs.SyncWriteStream(fd2, { autoClose: false }); + stream2._type = "fs"; + break; + case "PIPE": + case "TCP": + var net = require("net"); + stream2 = new net.Socket({ + fd: fd2, + readable: false, + writable: true + }); + stream2.readable = false; + stream2.read = null; + stream2._type = "pipe"; + if (stream2._handle && stream2._handle.unref) { + stream2._handle.unref(); + } + break; + default: + throw new Error("Implement me. Unknown stream file type!"); + } + stream2.fd = fd2; + stream2._isStdio = true; + return stream2; + } + function init(debug) { + debug.inspectOpts = {}; + var keys = Object.keys(exports2.inspectOpts); + for (var i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports2.inspectOpts[keys[i]]; + } + } + exports2.enable(load()); + } +}); + +// node_modules/finalhandler/node_modules/debug/src/index.js +var require_src2 = __commonJS({ + "node_modules/finalhandler/node_modules/debug/src/index.js"(exports2, module2) { + if (typeof process !== "undefined" && process.type === "renderer") { + module2.exports = require_browser2(); + } else { + module2.exports = require_node2(); + } + } +}); + +// node_modules/encodeurl/index.js +var require_encodeurl = __commonJS({ + "node_modules/encodeurl/index.js"(exports2, module2) { + "use strict"; + module2.exports = encodeUrl; + var ENCODE_CHARS_REGEXP = /(?:[^\x21\x25\x26-\x3B\x3D\x3F-\x5B\x5D\x5F\x61-\x7A\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g; + var UNMATCHED_SURROGATE_PAIR_REGEXP = /(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g; + var UNMATCHED_SURROGATE_PAIR_REPLACE = "$1\uFFFD$2"; + function encodeUrl(url) { + return String(url).replace(UNMATCHED_SURROGATE_PAIR_REGEXP, UNMATCHED_SURROGATE_PAIR_REPLACE).replace(ENCODE_CHARS_REGEXP, encodeURI); + } + } +}); + +// node_modules/escape-html/index.js +var require_escape_html = __commonJS({ + "node_modules/escape-html/index.js"(exports2, module2) { + "use strict"; + var matchHtmlRegExp = /["'&<>]/; + module2.exports = escapeHtml; + function escapeHtml(string) { + var str = "" + string; + var match = matchHtmlRegExp.exec(str); + if (!match) { + return str; + } + var escape2; + var html = ""; + var index = 0; + var lastIndex = 0; + for (index = match.index; index < str.length; index++) { + switch (str.charCodeAt(index)) { + case 34: + escape2 = """; + break; + case 38: + escape2 = "&"; + break; + case 39: + escape2 = "'"; + break; + case 60: + escape2 = "<"; + break; + case 62: + escape2 = ">"; + break; + default: + continue; + } + if (lastIndex !== index) { + html += str.substring(lastIndex, index); + } + lastIndex = index + 1; + html += escape2; + } + return lastIndex !== index ? html + str.substring(lastIndex, index) : html; + } + } +}); + +// node_modules/parseurl/index.js +var require_parseurl = __commonJS({ + "node_modules/parseurl/index.js"(exports2, module2) { + "use strict"; + var url = require("url"); + var parse = url.parse; + var Url = url.Url; + module2.exports = parseurl; + module2.exports.original = originalurl; + function parseurl(req) { + var url2 = req.url; + if (url2 === void 0) { + return void 0; + } + var parsed = req._parsedUrl; + if (fresh(url2, parsed)) { + return parsed; + } + parsed = fastparse(url2); + parsed._raw = url2; + return req._parsedUrl = parsed; + } + function originalurl(req) { + var url2 = req.originalUrl; + if (typeof url2 !== "string") { + return parseurl(req); + } + var parsed = req._parsedOriginalUrl; + if (fresh(url2, parsed)) { + return parsed; + } + parsed = fastparse(url2); + parsed._raw = url2; + return req._parsedOriginalUrl = parsed; + } + function fastparse(str) { + if (typeof str !== "string" || str.charCodeAt(0) !== 47) { + return parse(str); + } + var pathname = str; + var query = null; + var search = null; + for (var i = 1; i < str.length; i++) { + switch (str.charCodeAt(i)) { + case 63: + if (search === null) { + pathname = str.substring(0, i); + query = str.substring(i + 1); + search = str.substring(i); + } + break; + case 9: + case 10: + case 12: + case 13: + case 32: + case 35: + case 160: + case 65279: + return parse(str); + } + } + var url2 = Url !== void 0 ? new Url() : {}; + url2.path = str; + url2.href = str; + url2.pathname = pathname; + if (search !== null) { + url2.query = query; + url2.search = search; + } + return url2; + } + function fresh(url2, parsedUrl) { + return typeof parsedUrl === "object" && parsedUrl !== null && (Url === void 0 || parsedUrl instanceof Url) && parsedUrl._raw === url2; + } + } +}); + +// node_modules/finalhandler/index.js +var require_finalhandler = __commonJS({ + "node_modules/finalhandler/index.js"(exports2, module2) { + "use strict"; + var debug = require_src2()("finalhandler"); + var encodeUrl = require_encodeurl(); + var escapeHtml = require_escape_html(); + var onFinished = require_on_finished(); + var parseUrl = require_parseurl(); + var statuses = require_statuses(); + var unpipe = require_unpipe(); + var DOUBLE_SPACE_REGEXP = /\x20{2}/g; + var NEWLINE_REGEXP = /\n/g; + var defer = typeof setImmediate === "function" ? setImmediate : function(fn2) { + process.nextTick(fn2.bind.apply(fn2, arguments)); + }; + var isFinished = onFinished.isFinished; + function createHtmlDocument(message2) { + var body = escapeHtml(message2).replace(NEWLINE_REGEXP, "
").replace(DOUBLE_SPACE_REGEXP, "  "); + return '\n\n\n\nError\n\n\n
' + body + "
\n\n\n"; + } + module2.exports = finalhandler; + function finalhandler(req, res, options) { + var opts = options || {}; + var env = opts.env || process.env.NODE_ENV || "development"; + var onerror = opts.onerror; + return function(err) { + var headers; + var msg; + var status; + if (!err && headersSent(res)) { + debug("cannot 404 after headers sent"); + return; + } + if (err) { + status = getErrorStatusCode(err); + if (status === void 0) { + status = getResponseStatusCode(res); + } else { + headers = getErrorHeaders(err); + } + msg = getErrorMessage(err, status, env); + } else { + status = 404; + msg = "Cannot " + req.method + " " + encodeUrl(getResourceName(req)); + } + debug("default %s", status); + if (err && onerror) { + defer(onerror, err, req, res); + } + if (headersSent(res)) { + debug("cannot %d after headers sent", status); + req.socket.destroy(); + return; + } + send(req, res, status, headers, msg); + }; + } + function getErrorHeaders(err) { + if (!err.headers || typeof err.headers !== "object") { + return void 0; + } + var headers = Object.create(null); + var keys = Object.keys(err.headers); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + headers[key] = err.headers[key]; + } + return headers; + } + function getErrorMessage(err, status, env) { + var msg; + if (env !== "production") { + msg = err.stack; + if (!msg && typeof err.toString === "function") { + msg = err.toString(); + } + } + return msg || statuses[status]; + } + function getErrorStatusCode(err) { + if (typeof err.status === "number" && err.status >= 400 && err.status < 600) { + return err.status; + } + if (typeof err.statusCode === "number" && err.statusCode >= 400 && err.statusCode < 600) { + return err.statusCode; + } + return void 0; + } + function getResourceName(req) { + try { + return parseUrl.original(req).pathname; + } catch (e) { + return "resource"; + } + } + function getResponseStatusCode(res) { + var status = res.statusCode; + if (typeof status !== "number" || status < 400 || status > 599) { + status = 500; + } + return status; + } + function headersSent(res) { + return typeof res.headersSent !== "boolean" ? Boolean(res._header) : res.headersSent; + } + function send(req, res, status, headers, message2) { + function write() { + var body = createHtmlDocument(message2); + res.statusCode = status; + res.statusMessage = statuses[status]; + setHeaders(res, headers); + res.setHeader("Content-Security-Policy", "default-src 'none'"); + res.setHeader("X-Content-Type-Options", "nosniff"); + res.setHeader("Content-Type", "text/html; charset=utf-8"); + res.setHeader("Content-Length", Buffer.byteLength(body, "utf8")); + if (req.method === "HEAD") { + res.end(); + return; + } + res.end(body, "utf8"); + } + if (isFinished(req)) { + write(); + return; + } + unpipe(req); + onFinished(req, write); + req.resume(); + } + function setHeaders(res, headers) { + if (!headers) { + return; + } + var keys = Object.keys(headers); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + res.setHeader(key, headers[key]); + } + } + } +}); + +// node_modules/methods/index.js +var require_methods = __commonJS({ + "node_modules/methods/index.js"(exports2, module2) { + "use strict"; + var http3 = require("http"); + module2.exports = getCurrentNodeMethods() || getBasicNodeMethods(); + function getCurrentNodeMethods() { + return http3.METHODS && http3.METHODS.map(function lowerCaseMethod(method) { + return method.toLowerCase(); + }); + } + function getBasicNodeMethods() { + return [ + "get", + "post", + "put", + "head", + "delete", + "options", + "trace", + "copy", + "lock", + "mkcol", + "move", + "purge", + "propfind", + "proppatch", + "unlock", + "report", + "mkactivity", + "checkout", + "merge", + "m-search", + "notify", + "subscribe", + "unsubscribe", + "patch", + "search", + "connect" + ]; + } + } +}); + +// node_modules/express/node_modules/ms/index.js +var require_ms3 = __commonJS({ + "node_modules/express/node_modules/ms/index.js"(exports2, module2) { + var s = 1e3; + var m = s * 60; + var h = m * 60; + var d = h * 24; + var y = d * 365.25; + module2.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === "string" && val.length > 0) { + return parse(val); + } else if (type === "number" && isNaN(val) === false) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val)); + }; + function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || "ms").toLowerCase(); + switch (type) { + case "years": + case "year": + case "yrs": + case "yr": + case "y": + return n * y; + case "days": + case "day": + case "d": + return n * d; + case "hours": + case "hour": + case "hrs": + case "hr": + case "h": + return n * h; + case "minutes": + case "minute": + case "mins": + case "min": + case "m": + return n * m; + case "seconds": + case "second": + case "secs": + case "sec": + case "s": + return n * s; + case "milliseconds": + case "millisecond": + case "msecs": + case "msec": + case "ms": + return n; + default: + return void 0; + } + } + function fmtShort(ms) { + if (ms >= d) { + return Math.round(ms / d) + "d"; + } + if (ms >= h) { + return Math.round(ms / h) + "h"; + } + if (ms >= m) { + return Math.round(ms / m) + "m"; + } + if (ms >= s) { + return Math.round(ms / s) + "s"; + } + return ms + "ms"; + } + function fmtLong(ms) { + return plural(ms, d, "day") || plural(ms, h, "hour") || plural(ms, m, "minute") || plural(ms, s, "second") || ms + " ms"; + } + function plural(ms, n, name) { + if (ms < n) { + return; + } + if (ms < n * 1.5) { + return Math.floor(ms / n) + " " + name; + } + return Math.ceil(ms / n) + " " + name + "s"; + } + } +}); + +// node_modules/express/node_modules/debug/src/debug.js +var require_debug3 = __commonJS({ + "node_modules/express/node_modules/debug/src/debug.js"(exports2, module2) { + exports2 = module2.exports = createDebug.debug = createDebug["default"] = createDebug; + exports2.coerce = coerce; + exports2.disable = disable; + exports2.enable = enable; + exports2.enabled = enabled; + exports2.humanize = require_ms3(); + exports2.instances = []; + exports2.names = []; + exports2.skips = []; + exports2.formatters = {}; + function selectColor(namespace) { + var hash = 0, i; + for (i in namespace) { + hash = (hash << 5) - hash + namespace.charCodeAt(i); + hash |= 0; + } + return exports2.colors[Math.abs(hash) % exports2.colors.length]; + } + function createDebug(namespace) { + var prevTime; + function debug() { + if (!debug.enabled) + return; + var self2 = debug; + var curr = +new Date(); + var ms = curr - (prevTime || curr); + self2.diff = ms; + self2.prev = prevTime; + self2.curr = curr; + prevTime = curr; + var args2 = new Array(arguments.length); + for (var i = 0; i < args2.length; i++) { + args2[i] = arguments[i]; + } + args2[0] = exports2.coerce(args2[0]); + if (typeof args2[0] !== "string") { + args2.unshift("%O"); + } + var index = 0; + args2[0] = args2[0].replace(/%([a-zA-Z%])/g, function(match, format) { + if (match === "%%") + return match; + index++; + var formatter = exports2.formatters[format]; + if (typeof formatter === "function") { + var val = args2[index]; + match = formatter.call(self2, val); + args2.splice(index, 1); + index--; + } + return match; + }); + exports2.formatArgs.call(self2, args2); + var logFn = debug.log || exports2.log || console.log.bind(console); + logFn.apply(self2, args2); + } + debug.namespace = namespace; + debug.enabled = exports2.enabled(namespace); + debug.useColors = exports2.useColors(); + debug.color = selectColor(namespace); + debug.destroy = destroy; + if (typeof exports2.init === "function") { + exports2.init(debug); + } + exports2.instances.push(debug); + return debug; + } + function destroy() { + var index = exports2.instances.indexOf(this); + if (index !== -1) { + exports2.instances.splice(index, 1); + return true; + } else { + return false; + } + } + function enable(namespaces) { + exports2.save(namespaces); + exports2.names = []; + exports2.skips = []; + var i; + var split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/); + var len = split.length; + for (i = 0; i < len; i++) { + if (!split[i]) + continue; + namespaces = split[i].replace(/\*/g, ".*?"); + if (namespaces[0] === "-") { + exports2.skips.push(new RegExp("^" + namespaces.substr(1) + "$")); + } else { + exports2.names.push(new RegExp("^" + namespaces + "$")); + } + } + for (i = 0; i < exports2.instances.length; i++) { + var instance = exports2.instances[i]; + instance.enabled = exports2.enabled(instance.namespace); + } + } + function disable() { + exports2.enable(""); + } + function enabled(name) { + if (name[name.length - 1] === "*") { + return true; + } + var i, len; + for (i = 0, len = exports2.skips.length; i < len; i++) { + if (exports2.skips[i].test(name)) { + return false; + } + } + for (i = 0, len = exports2.names.length; i < len; i++) { + if (exports2.names[i].test(name)) { + return true; + } + } + return false; + } + function coerce(val) { + if (val instanceof Error) + return val.stack || val.message; + return val; + } + } +}); + +// node_modules/express/node_modules/debug/src/browser.js +var require_browser3 = __commonJS({ + "node_modules/express/node_modules/debug/src/browser.js"(exports2, module2) { + exports2 = module2.exports = require_debug3(); + exports2.log = log2; + exports2.formatArgs = formatArgs; + exports2.save = save; + exports2.load = load; + exports2.useColors = useColors; + exports2.storage = typeof chrome != "undefined" && typeof chrome.storage != "undefined" ? chrome.storage.local : localstorage(); + exports2.colors = [ + "#0000CC", + "#0000FF", + "#0033CC", + "#0033FF", + "#0066CC", + "#0066FF", + "#0099CC", + "#0099FF", + "#00CC00", + "#00CC33", + "#00CC66", + "#00CC99", + "#00CCCC", + "#00CCFF", + "#3300CC", + "#3300FF", + "#3333CC", + "#3333FF", + "#3366CC", + "#3366FF", + "#3399CC", + "#3399FF", + "#33CC00", + "#33CC33", + "#33CC66", + "#33CC99", + "#33CCCC", + "#33CCFF", + "#6600CC", + "#6600FF", + "#6633CC", + "#6633FF", + "#66CC00", + "#66CC33", + "#9900CC", + "#9900FF", + "#9933CC", + "#9933FF", + "#99CC00", + "#99CC33", + "#CC0000", + "#CC0033", + "#CC0066", + "#CC0099", + "#CC00CC", + "#CC00FF", + "#CC3300", + "#CC3333", + "#CC3366", + "#CC3399", + "#CC33CC", + "#CC33FF", + "#CC6600", + "#CC6633", + "#CC9900", + "#CC9933", + "#CCCC00", + "#CCCC33", + "#FF0000", + "#FF0033", + "#FF0066", + "#FF0099", + "#FF00CC", + "#FF00FF", + "#FF3300", + "#FF3333", + "#FF3366", + "#FF3399", + "#FF33CC", + "#FF33FF", + "#FF6600", + "#FF6633", + "#FF9900", + "#FF9933", + "#FFCC00", + "#FFCC33" + ]; + function useColors() { + if (typeof window !== "undefined" && window.process && window.process.type === "renderer") { + return true; + } + if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } + return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); + } + exports2.formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (err) { + return "[UnexpectedJSONParseError]: " + err.message; + } + }; + function formatArgs(args2) { + var useColors2 = this.useColors; + args2[0] = (useColors2 ? "%c" : "") + this.namespace + (useColors2 ? " %c" : " ") + args2[0] + (useColors2 ? "%c " : " ") + "+" + exports2.humanize(this.diff); + if (!useColors2) + return; + var c = "color: " + this.color; + args2.splice(1, 0, c, "color: inherit"); + var index = 0; + var lastC = 0; + args2[0].replace(/%[a-zA-Z%]/g, function(match) { + if (match === "%%") + return; + index++; + if (match === "%c") { + lastC = index; + } + }); + args2.splice(lastC, 0, c); + } + function log2() { + return typeof console === "object" && console.log && Function.prototype.apply.call(console.log, console, arguments); + } + function save(namespaces) { + try { + if (namespaces == null) { + exports2.storage.removeItem("debug"); + } else { + exports2.storage.debug = namespaces; + } + } catch (e) { + } + } + function load() { + var r; + try { + r = exports2.storage.debug; + } catch (e) { + } + if (!r && typeof process !== "undefined" && "env" in process) { + r = process.env.DEBUG; + } + return r; + } + exports2.enable(load()); + function localstorage() { + try { + return window.localStorage; + } catch (e) { + } + } + } +}); + +// node_modules/has-flag/index.js +var require_has_flag = __commonJS({ + "node_modules/has-flag/index.js"(exports2, module2) { + "use strict"; + module2.exports = (flag, argv = process.argv) => { + const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--"; + const position = argv.indexOf(prefix + flag); + const terminatorPosition = argv.indexOf("--"); + return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); + }; + } +}); + +// node_modules/supports-color/index.js +var require_supports_color = __commonJS({ + "node_modules/supports-color/index.js"(exports2, module2) { + "use strict"; + var os = require("os"); + var tty = require("tty"); + var hasFlag = require_has_flag(); + var { env } = process; + var forceColor; + if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) { + forceColor = 0; + } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) { + forceColor = 1; + } + if ("FORCE_COLOR" in env) { + if (env.FORCE_COLOR === "true") { + forceColor = 1; + } else if (env.FORCE_COLOR === "false") { + forceColor = 0; + } else { + forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3); + } + } + function translateLevel(level) { + if (level === 0) { + return false; + } + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; + } + function supportsColor(haveStream, streamIsTTY) { + if (forceColor === 0) { + return 0; + } + if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) { + return 3; + } + if (hasFlag("color=256")) { + return 2; + } + if (haveStream && !streamIsTTY && forceColor === void 0) { + return 0; + } + const min = forceColor || 0; + if (env.TERM === "dumb") { + return min; + } + if (process.platform === "win32") { + const osRelease = os.release().split("."); + if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + return 1; + } + if ("CI" in env) { + if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE"].some((sign) => sign in env) || env.CI_NAME === "codeship") { + return 1; + } + return min; + } + if ("TEAMCITY_VERSION" in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } + if (env.COLORTERM === "truecolor") { + return 3; + } + if ("TERM_PROGRAM" in env) { + const version = parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10); + switch (env.TERM_PROGRAM) { + case "iTerm.app": + return version >= 3 ? 3 : 2; + case "Apple_Terminal": + return 2; + } + } + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } + if ("COLORTERM" in env) { + return 1; + } + return min; + } + function getSupportLevel(stream) { + const level = supportsColor(stream, stream && stream.isTTY); + return translateLevel(level); + } + module2.exports = { + supportsColor: getSupportLevel, + stdout: translateLevel(supportsColor(true, tty.isatty(1))), + stderr: translateLevel(supportsColor(true, tty.isatty(2))) + }; + } +}); + +// node_modules/express/node_modules/debug/src/node.js +var require_node3 = __commonJS({ + "node_modules/express/node_modules/debug/src/node.js"(exports2, module2) { + var tty = require("tty"); + var util = require("util"); + exports2 = module2.exports = require_debug3(); + exports2.init = init; + exports2.log = log2; + exports2.formatArgs = formatArgs; + exports2.save = save; + exports2.load = load; + exports2.useColors = useColors; + exports2.colors = [6, 2, 3, 4, 5, 1]; + try { + supportsColor = require_supports_color(); + if (supportsColor && supportsColor.level >= 2) { + exports2.colors = [ + 20, + 21, + 26, + 27, + 32, + 33, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 56, + 57, + 62, + 63, + 68, + 69, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 92, + 93, + 98, + 99, + 112, + 113, + 128, + 129, + 134, + 135, + 148, + 149, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 178, + 179, + 184, + 185, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 214, + 215, + 220, + 221 + ]; + } + } catch (err) { + } + var supportsColor; + exports2.inspectOpts = Object.keys(process.env).filter(function(key) { + return /^debug_/i.test(key); + }).reduce(function(obj, key) { + var prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, function(_, k) { + return k.toUpperCase(); + }); + var val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) + val = true; + else if (/^(no|off|false|disabled)$/i.test(val)) + val = false; + else if (val === "null") + val = null; + else + val = Number(val); + obj[prop] = val; + return obj; + }, {}); + function useColors() { + return "colors" in exports2.inspectOpts ? Boolean(exports2.inspectOpts.colors) : tty.isatty(process.stderr.fd); + } + exports2.formatters.o = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts).split("\n").map(function(str) { + return str.trim(); + }).join(" "); + }; + exports2.formatters.O = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); + }; + function formatArgs(args2) { + var name = this.namespace; + var useColors2 = this.useColors; + if (useColors2) { + var c = this.color; + var colorCode = "[3" + (c < 8 ? c : "8;5;" + c); + var prefix = " " + colorCode + ";1m" + name + " "; + args2[0] = prefix + args2[0].split("\n").join("\n" + prefix); + args2.push(colorCode + "m+" + exports2.humanize(this.diff) + ""); + } else { + args2[0] = getDate() + name + " " + args2[0]; + } + } + function getDate() { + if (exports2.inspectOpts.hideDate) { + return ""; + } else { + return new Date().toISOString() + " "; + } + } + function log2() { + return process.stderr.write(util.format.apply(util, arguments) + "\n"); + } + function save(namespaces) { + if (namespaces == null) { + delete process.env.DEBUG; + } else { + process.env.DEBUG = namespaces; + } + } + function load() { + return process.env.DEBUG; + } + function init(debug) { + debug.inspectOpts = {}; + var keys = Object.keys(exports2.inspectOpts); + for (var i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports2.inspectOpts[keys[i]]; + } + } + exports2.enable(load()); + } +}); + +// node_modules/express/node_modules/debug/src/index.js +var require_src3 = __commonJS({ + "node_modules/express/node_modules/debug/src/index.js"(exports2, module2) { + if (typeof process === "undefined" || process.type === "renderer") { + module2.exports = require_browser3(); + } else { + module2.exports = require_node3(); + } + } +}); + +// node_modules/express/lib/view.js +var require_view = __commonJS({ + "node_modules/express/lib/view.js"(exports2, module2) { + "use strict"; + var debug = require_src3()("express:view"); + var path2 = require("path"); + var fs = require("fs"); + var dirname = path2.dirname; + var basename = path2.basename; + var extname = path2.extname; + var join = path2.join; + var resolve = path2.resolve; + module2.exports = View; + function View(name, options) { + var opts = options || {}; + this.defaultEngine = opts.defaultEngine; + this.ext = extname(name); + this.name = name; + this.root = opts.root; + if (!this.ext && !this.defaultEngine) { + throw new Error("No default engine was specified and no extension was provided."); + } + var fileName = name; + if (!this.ext) { + this.ext = this.defaultEngine[0] !== "." ? "." + this.defaultEngine : this.defaultEngine; + fileName += this.ext; + } + if (!opts.engines[this.ext]) { + var mod = this.ext.substr(1); + debug('require "%s"', mod); + var fn2 = require(mod).__express; + if (typeof fn2 !== "function") { + throw new Error('Module "' + mod + '" does not provide a view engine.'); + } + opts.engines[this.ext] = fn2; + } + this.engine = opts.engines[this.ext]; + this.path = this.lookup(fileName); + } + View.prototype.lookup = function lookup(name) { + var path3; + var roots = [].concat(this.root); + debug('lookup "%s"', name); + for (var i = 0; i < roots.length && !path3; i++) { + var root = roots[i]; + var loc = resolve(root, name); + var dir = dirname(loc); + var file = basename(loc); + path3 = this.resolve(dir, file); + } + return path3; + }; + View.prototype.render = function render(options, callback) { + var sync = true; + debug('render "%s"', this.path); + this.engine(this.path, options, function onRender() { + if (!sync) { + return callback.apply(this, arguments); + } + var args2 = new Array(arguments.length); + var cntx = this; + for (var i = 0; i < arguments.length; i++) { + args2[i] = arguments[i]; + } + return process.nextTick(function renderTick() { + return callback.apply(cntx, args2); + }); + }); + sync = false; + }; + View.prototype.resolve = function resolve2(dir, file) { + var ext = this.ext; + var path3 = join(dir, file); + var stat = tryStat(path3); + if (stat && stat.isFile()) { + return path3; + } + path3 = join(dir, basename(file, ext), "index" + ext); + stat = tryStat(path3); + if (stat && stat.isFile()) { + return path3; + } + }; + function tryStat(path3) { + debug('stat "%s"', path3); + try { + return fs.statSync(path3); + } catch (e) { + return void 0; + } + } + } +}); + +// node_modules/safe-buffer/index.js +var require_safe_buffer = __commonJS({ + "node_modules/safe-buffer/index.js"(exports2, module2) { + var buffer = require("buffer"); + var Buffer2 = buffer.Buffer; + function copyProps(src, dst) { + for (var key in src) { + dst[key] = src[key]; + } + } + if (Buffer2.from && Buffer2.alloc && Buffer2.allocUnsafe && Buffer2.allocUnsafeSlow) { + module2.exports = buffer; + } else { + copyProps(buffer, exports2); + exports2.Buffer = SafeBuffer; + } + function SafeBuffer(arg, encodingOrOffset, length) { + return Buffer2(arg, encodingOrOffset, length); + } + SafeBuffer.prototype = Object.create(Buffer2.prototype); + copyProps(Buffer2, SafeBuffer); + SafeBuffer.from = function(arg, encodingOrOffset, length) { + if (typeof arg === "number") { + throw new TypeError("Argument must not be a number"); + } + return Buffer2(arg, encodingOrOffset, length); + }; + SafeBuffer.alloc = function(size, fill, encoding) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + var buf = Buffer2(size); + if (fill !== void 0) { + if (typeof encoding === "string") { + buf.fill(fill, encoding); + } else { + buf.fill(fill); + } + } else { + buf.fill(0); + } + return buf; + }; + SafeBuffer.allocUnsafe = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return Buffer2(size); + }; + SafeBuffer.allocUnsafeSlow = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return buffer.SlowBuffer(size); + }; + } +}); + +// node_modules/etag/index.js +var require_etag = __commonJS({ + "node_modules/etag/index.js"(exports2, module2) { + "use strict"; + module2.exports = etag; + var crypto = require("crypto"); + var Stats = require("fs").Stats; + var toString = Object.prototype.toString; + function entitytag(entity) { + if (entity.length === 0) { + return '"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"'; + } + var hash = crypto.createHash("sha1").update(entity, "utf8").digest("base64").substring(0, 27); + var len = typeof entity === "string" ? Buffer.byteLength(entity, "utf8") : entity.length; + return '"' + len.toString(16) + "-" + hash + '"'; + } + function etag(entity, options) { + if (entity == null) { + throw new TypeError("argument entity is required"); + } + var isStats = isstats(entity); + var weak = options && typeof options.weak === "boolean" ? options.weak : isStats; + if (!isStats && typeof entity !== "string" && !Buffer.isBuffer(entity)) { + throw new TypeError("argument entity must be string, Buffer, or fs.Stats"); + } + var tag = isStats ? stattag(entity) : entitytag(entity); + return weak ? "W/" + tag : tag; + } + function isstats(obj) { + if (typeof Stats === "function" && obj instanceof Stats) { + return true; + } + return obj && typeof obj === "object" && "ctime" in obj && toString.call(obj.ctime) === "[object Date]" && "mtime" in obj && toString.call(obj.mtime) === "[object Date]" && "ino" in obj && typeof obj.ino === "number" && "size" in obj && typeof obj.size === "number"; + } + function stattag(stat) { + var mtime = stat.mtime.getTime().toString(16); + var size = stat.size.toString(16); + return '"' + size + "-" + mtime + '"'; + } + } +}); + +// node_modules/forwarded/index.js +var require_forwarded = __commonJS({ + "node_modules/forwarded/index.js"(exports2, module2) { + "use strict"; + module2.exports = forwarded; + function forwarded(req) { + if (!req) { + throw new TypeError("argument req is required"); + } + var proxyAddrs = parse(req.headers["x-forwarded-for"] || ""); + var socketAddr = getSocketAddr(req); + var addrs = [socketAddr].concat(proxyAddrs); + return addrs; + } + function getSocketAddr(req) { + return req.socket ? req.socket.remoteAddress : req.connection.remoteAddress; + } + function parse(header) { + var end = header.length; + var list = []; + var start = header.length; + for (var i = header.length - 1; i >= 0; i--) { + switch (header.charCodeAt(i)) { + case 32: + if (start === end) { + start = end = i; + } + break; + case 44: + if (start !== end) { + list.push(header.substring(start, end)); + } + start = end = i; + break; + default: + start = i; + break; + } + } + if (start !== end) { + list.push(header.substring(start, end)); + } + return list; + } + } +}); + +// node_modules/ipaddr.js/lib/ipaddr.js +var require_ipaddr = __commonJS({ + "node_modules/ipaddr.js/lib/ipaddr.js"(exports2, module2) { + (function() { + var expandIPv6, ipaddr, ipv4Part, ipv4Regexes, ipv6Part, ipv6Regexes, matchCIDR, root, zoneIndex; + ipaddr = {}; + root = this; + if (typeof module2 !== "undefined" && module2 !== null && module2.exports) { + module2.exports = ipaddr; + } else { + root["ipaddr"] = ipaddr; + } + matchCIDR = function(first, second, partSize, cidrBits) { + var part, shift; + if (first.length !== second.length) { + throw new Error("ipaddr: cannot match CIDR for objects with different lengths"); + } + part = 0; + while (cidrBits > 0) { + shift = partSize - cidrBits; + if (shift < 0) { + shift = 0; + } + if (first[part] >> shift !== second[part] >> shift) { + return false; + } + cidrBits -= partSize; + part += 1; + } + return true; + }; + ipaddr.subnetMatch = function(address, rangeList, defaultName) { + var k, len, rangeName, rangeSubnets, subnet; + if (defaultName == null) { + defaultName = "unicast"; + } + for (rangeName in rangeList) { + rangeSubnets = rangeList[rangeName]; + if (rangeSubnets[0] && !(rangeSubnets[0] instanceof Array)) { + rangeSubnets = [rangeSubnets]; + } + for (k = 0, len = rangeSubnets.length; k < len; k++) { + subnet = rangeSubnets[k]; + if (address.kind() === subnet[0].kind()) { + if (address.match.apply(address, subnet)) { + return rangeName; + } + } + } + } + return defaultName; + }; + ipaddr.IPv4 = function() { + function IPv4(octets) { + var k, len, octet; + if (octets.length !== 4) { + throw new Error("ipaddr: ipv4 octet count should be 4"); + } + for (k = 0, len = octets.length; k < len; k++) { + octet = octets[k]; + if (!(0 <= octet && octet <= 255)) { + throw new Error("ipaddr: ipv4 octet should fit in 8 bits"); + } + } + this.octets = octets; + } + IPv4.prototype.kind = function() { + return "ipv4"; + }; + IPv4.prototype.toString = function() { + return this.octets.join("."); + }; + IPv4.prototype.toNormalizedString = function() { + return this.toString(); + }; + IPv4.prototype.toByteArray = function() { + return this.octets.slice(0); + }; + IPv4.prototype.match = function(other, cidrRange) { + var ref; + if (cidrRange === void 0) { + ref = other, other = ref[0], cidrRange = ref[1]; + } + if (other.kind() !== "ipv4") { + throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one"); + } + return matchCIDR(this.octets, other.octets, 8, cidrRange); + }; + IPv4.prototype.SpecialRanges = { + unspecified: [[new IPv4([0, 0, 0, 0]), 8]], + broadcast: [[new IPv4([255, 255, 255, 255]), 32]], + multicast: [[new IPv4([224, 0, 0, 0]), 4]], + linkLocal: [[new IPv4([169, 254, 0, 0]), 16]], + loopback: [[new IPv4([127, 0, 0, 0]), 8]], + carrierGradeNat: [[new IPv4([100, 64, 0, 0]), 10]], + "private": [[new IPv4([10, 0, 0, 0]), 8], [new IPv4([172, 16, 0, 0]), 12], [new IPv4([192, 168, 0, 0]), 16]], + reserved: [[new IPv4([192, 0, 0, 0]), 24], [new IPv4([192, 0, 2, 0]), 24], [new IPv4([192, 88, 99, 0]), 24], [new IPv4([198, 51, 100, 0]), 24], [new IPv4([203, 0, 113, 0]), 24], [new IPv4([240, 0, 0, 0]), 4]] + }; + IPv4.prototype.range = function() { + return ipaddr.subnetMatch(this, this.SpecialRanges); + }; + IPv4.prototype.toIPv4MappedAddress = function() { + return ipaddr.IPv6.parse("::ffff:" + this.toString()); + }; + IPv4.prototype.prefixLengthFromSubnetMask = function() { + var cidr, i, k, octet, stop, zeros, zerotable; + zerotable = { + 0: 8, + 128: 7, + 192: 6, + 224: 5, + 240: 4, + 248: 3, + 252: 2, + 254: 1, + 255: 0 + }; + cidr = 0; + stop = false; + for (i = k = 3; k >= 0; i = k += -1) { + octet = this.octets[i]; + if (octet in zerotable) { + zeros = zerotable[octet]; + if (stop && zeros !== 0) { + return null; + } + if (zeros !== 8) { + stop = true; + } + cidr += zeros; + } else { + return null; + } + } + return 32 - cidr; + }; + return IPv4; + }(); + ipv4Part = "(0?\\d+|0x[a-f0-9]+)"; + ipv4Regexes = { + fourOctet: new RegExp("^" + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "$", "i"), + longValue: new RegExp("^" + ipv4Part + "$", "i") + }; + ipaddr.IPv4.parser = function(string) { + var match, parseIntAuto, part, shift, value; + parseIntAuto = function(string2) { + if (string2[0] === "0" && string2[1] !== "x") { + return parseInt(string2, 8); + } else { + return parseInt(string2); + } + }; + if (match = string.match(ipv4Regexes.fourOctet)) { + return function() { + var k, len, ref, results; + ref = match.slice(1, 6); + results = []; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + results.push(parseIntAuto(part)); + } + return results; + }(); + } else if (match = string.match(ipv4Regexes.longValue)) { + value = parseIntAuto(match[1]); + if (value > 4294967295 || value < 0) { + throw new Error("ipaddr: address outside defined range"); + } + return function() { + var k, results; + results = []; + for (shift = k = 0; k <= 24; shift = k += 8) { + results.push(value >> shift & 255); + } + return results; + }().reverse(); + } else { + return null; + } + }; + ipaddr.IPv6 = function() { + function IPv6(parts, zoneId) { + var i, k, l, len, part, ref; + if (parts.length === 16) { + this.parts = []; + for (i = k = 0; k <= 14; i = k += 2) { + this.parts.push(parts[i] << 8 | parts[i + 1]); + } + } else if (parts.length === 8) { + this.parts = parts; + } else { + throw new Error("ipaddr: ipv6 part count should be 8 or 16"); + } + ref = this.parts; + for (l = 0, len = ref.length; l < len; l++) { + part = ref[l]; + if (!(0 <= part && part <= 65535)) { + throw new Error("ipaddr: ipv6 part should fit in 16 bits"); + } + } + if (zoneId) { + this.zoneId = zoneId; + } + } + IPv6.prototype.kind = function() { + return "ipv6"; + }; + IPv6.prototype.toString = function() { + return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/, "::"); + }; + IPv6.prototype.toRFC5952String = function() { + var bestMatchIndex, bestMatchLength, match, regex, string; + regex = /((^|:)(0(:|$)){2,})/g; + string = this.toNormalizedString(); + bestMatchIndex = 0; + bestMatchLength = -1; + while (match = regex.exec(string)) { + if (match[0].length > bestMatchLength) { + bestMatchIndex = match.index; + bestMatchLength = match[0].length; + } + } + if (bestMatchLength < 0) { + return string; + } + return string.substring(0, bestMatchIndex) + "::" + string.substring(bestMatchIndex + bestMatchLength); + }; + IPv6.prototype.toByteArray = function() { + var bytes, k, len, part, ref; + bytes = []; + ref = this.parts; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + bytes.push(part >> 8); + bytes.push(part & 255); + } + return bytes; + }; + IPv6.prototype.toNormalizedString = function() { + var addr, part, suffix; + addr = function() { + var k, len, ref, results; + ref = this.parts; + results = []; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + results.push(part.toString(16)); + } + return results; + }.call(this).join(":"); + suffix = ""; + if (this.zoneId) { + suffix = "%" + this.zoneId; + } + return addr + suffix; + }; + IPv6.prototype.toFixedLengthString = function() { + var addr, part, suffix; + addr = function() { + var k, len, ref, results; + ref = this.parts; + results = []; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + results.push(part.toString(16).padStart(4, "0")); + } + return results; + }.call(this).join(":"); + suffix = ""; + if (this.zoneId) { + suffix = "%" + this.zoneId; + } + return addr + suffix; + }; + IPv6.prototype.match = function(other, cidrRange) { + var ref; + if (cidrRange === void 0) { + ref = other, other = ref[0], cidrRange = ref[1]; + } + if (other.kind() !== "ipv6") { + throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one"); + } + return matchCIDR(this.parts, other.parts, 16, cidrRange); + }; + IPv6.prototype.SpecialRanges = { + unspecified: [new IPv6([0, 0, 0, 0, 0, 0, 0, 0]), 128], + linkLocal: [new IPv6([65152, 0, 0, 0, 0, 0, 0, 0]), 10], + multicast: [new IPv6([65280, 0, 0, 0, 0, 0, 0, 0]), 8], + loopback: [new IPv6([0, 0, 0, 0, 0, 0, 0, 1]), 128], + uniqueLocal: [new IPv6([64512, 0, 0, 0, 0, 0, 0, 0]), 7], + ipv4Mapped: [new IPv6([0, 0, 0, 0, 0, 65535, 0, 0]), 96], + rfc6145: [new IPv6([0, 0, 0, 0, 65535, 0, 0, 0]), 96], + rfc6052: [new IPv6([100, 65435, 0, 0, 0, 0, 0, 0]), 96], + "6to4": [new IPv6([8194, 0, 0, 0, 0, 0, 0, 0]), 16], + teredo: [new IPv6([8193, 0, 0, 0, 0, 0, 0, 0]), 32], + reserved: [[new IPv6([8193, 3512, 0, 0, 0, 0, 0, 0]), 32]] + }; + IPv6.prototype.range = function() { + return ipaddr.subnetMatch(this, this.SpecialRanges); + }; + IPv6.prototype.isIPv4MappedAddress = function() { + return this.range() === "ipv4Mapped"; + }; + IPv6.prototype.toIPv4Address = function() { + var high, low, ref; + if (!this.isIPv4MappedAddress()) { + throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4"); + } + ref = this.parts.slice(-2), high = ref[0], low = ref[1]; + return new ipaddr.IPv4([high >> 8, high & 255, low >> 8, low & 255]); + }; + IPv6.prototype.prefixLengthFromSubnetMask = function() { + var cidr, i, k, part, stop, zeros, zerotable; + zerotable = { + 0: 16, + 32768: 15, + 49152: 14, + 57344: 13, + 61440: 12, + 63488: 11, + 64512: 10, + 65024: 9, + 65280: 8, + 65408: 7, + 65472: 6, + 65504: 5, + 65520: 4, + 65528: 3, + 65532: 2, + 65534: 1, + 65535: 0 + }; + cidr = 0; + stop = false; + for (i = k = 7; k >= 0; i = k += -1) { + part = this.parts[i]; + if (part in zerotable) { + zeros = zerotable[part]; + if (stop && zeros !== 0) { + return null; + } + if (zeros !== 16) { + stop = true; + } + cidr += zeros; + } else { + return null; + } + } + return 128 - cidr; + }; + return IPv6; + }(); + ipv6Part = "(?:[0-9a-f]+::?)+"; + zoneIndex = "%[0-9a-z]{1,}"; + ipv6Regexes = { + zoneIndex: new RegExp(zoneIndex, "i"), + "native": new RegExp("^(::)?(" + ipv6Part + ")?([0-9a-f]+)?(::)?(" + zoneIndex + ")?$", "i"), + transitional: new RegExp("^((?:" + ipv6Part + ")|(?:::)(?:" + ipv6Part + ")?)" + (ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part) + ("(" + zoneIndex + ")?$"), "i") + }; + expandIPv6 = function(string, parts) { + var colonCount, lastColon, part, replacement, replacementCount, zoneId; + if (string.indexOf("::") !== string.lastIndexOf("::")) { + return null; + } + zoneId = (string.match(ipv6Regexes["zoneIndex"]) || [])[0]; + if (zoneId) { + zoneId = zoneId.substring(1); + string = string.replace(/%.+$/, ""); + } + colonCount = 0; + lastColon = -1; + while ((lastColon = string.indexOf(":", lastColon + 1)) >= 0) { + colonCount++; + } + if (string.substr(0, 2) === "::") { + colonCount--; + } + if (string.substr(-2, 2) === "::") { + colonCount--; + } + if (colonCount > parts) { + return null; + } + replacementCount = parts - colonCount; + replacement = ":"; + while (replacementCount--) { + replacement += "0:"; + } + string = string.replace("::", replacement); + if (string[0] === ":") { + string = string.slice(1); + } + if (string[string.length - 1] === ":") { + string = string.slice(0, -1); + } + parts = function() { + var k, len, ref, results; + ref = string.split(":"); + results = []; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + results.push(parseInt(part, 16)); + } + return results; + }(); + return { + parts, + zoneId + }; + }; + ipaddr.IPv6.parser = function(string) { + var addr, k, len, match, octet, octets, zoneId; + if (ipv6Regexes["native"].test(string)) { + return expandIPv6(string, 8); + } else if (match = string.match(ipv6Regexes["transitional"])) { + zoneId = match[6] || ""; + addr = expandIPv6(match[1].slice(0, -1) + zoneId, 6); + if (addr.parts) { + octets = [parseInt(match[2]), parseInt(match[3]), parseInt(match[4]), parseInt(match[5])]; + for (k = 0, len = octets.length; k < len; k++) { + octet = octets[k]; + if (!(0 <= octet && octet <= 255)) { + return null; + } + } + addr.parts.push(octets[0] << 8 | octets[1]); + addr.parts.push(octets[2] << 8 | octets[3]); + return { + parts: addr.parts, + zoneId: addr.zoneId + }; + } + } + return null; + }; + ipaddr.IPv4.isIPv4 = ipaddr.IPv6.isIPv6 = function(string) { + return this.parser(string) !== null; + }; + ipaddr.IPv4.isValid = function(string) { + var e; + try { + new this(this.parser(string)); + return true; + } catch (error1) { + e = error1; + return false; + } + }; + ipaddr.IPv4.isValidFourPartDecimal = function(string) { + if (ipaddr.IPv4.isValid(string) && string.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/)) { + return true; + } else { + return false; + } + }; + ipaddr.IPv6.isValid = function(string) { + var addr, e; + if (typeof string === "string" && string.indexOf(":") === -1) { + return false; + } + try { + addr = this.parser(string); + new this(addr.parts, addr.zoneId); + return true; + } catch (error1) { + e = error1; + return false; + } + }; + ipaddr.IPv4.parse = function(string) { + var parts; + parts = this.parser(string); + if (parts === null) { + throw new Error("ipaddr: string is not formatted like ip address"); + } + return new this(parts); + }; + ipaddr.IPv6.parse = function(string) { + var addr; + addr = this.parser(string); + if (addr.parts === null) { + throw new Error("ipaddr: string is not formatted like ip address"); + } + return new this(addr.parts, addr.zoneId); + }; + ipaddr.IPv4.parseCIDR = function(string) { + var maskLength, match, parsed; + if (match = string.match(/^(.+)\/(\d+)$/)) { + maskLength = parseInt(match[2]); + if (maskLength >= 0 && maskLength <= 32) { + parsed = [this.parse(match[1]), maskLength]; + Object.defineProperty(parsed, "toString", { + value: function() { + return this.join("/"); + } + }); + return parsed; + } + } + throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range"); + }; + ipaddr.IPv4.subnetMaskFromPrefixLength = function(prefix) { + var filledOctetCount, j, octets; + prefix = parseInt(prefix); + if (prefix < 0 || prefix > 32) { + throw new Error("ipaddr: invalid IPv4 prefix length"); + } + octets = [0, 0, 0, 0]; + j = 0; + filledOctetCount = Math.floor(prefix / 8); + while (j < filledOctetCount) { + octets[j] = 255; + j++; + } + if (filledOctetCount < 4) { + octets[filledOctetCount] = Math.pow(2, prefix % 8) - 1 << 8 - prefix % 8; + } + return new this(octets); + }; + ipaddr.IPv4.broadcastAddressFromCIDR = function(string) { + var cidr, error, i, ipInterfaceOctets, octets, subnetMaskOctets; + try { + cidr = this.parseCIDR(string); + ipInterfaceOctets = cidr[0].toByteArray(); + subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray(); + octets = []; + i = 0; + while (i < 4) { + octets.push(parseInt(ipInterfaceOctets[i], 10) | parseInt(subnetMaskOctets[i], 10) ^ 255); + i++; + } + return new this(octets); + } catch (error1) { + error = error1; + throw new Error("ipaddr: the address does not have IPv4 CIDR format"); + } + }; + ipaddr.IPv4.networkAddressFromCIDR = function(string) { + var cidr, error, i, ipInterfaceOctets, octets, subnetMaskOctets; + try { + cidr = this.parseCIDR(string); + ipInterfaceOctets = cidr[0].toByteArray(); + subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray(); + octets = []; + i = 0; + while (i < 4) { + octets.push(parseInt(ipInterfaceOctets[i], 10) & parseInt(subnetMaskOctets[i], 10)); + i++; + } + return new this(octets); + } catch (error1) { + error = error1; + throw new Error("ipaddr: the address does not have IPv4 CIDR format"); + } + }; + ipaddr.IPv6.parseCIDR = function(string) { + var maskLength, match, parsed; + if (match = string.match(/^(.+)\/(\d+)$/)) { + maskLength = parseInt(match[2]); + if (maskLength >= 0 && maskLength <= 128) { + parsed = [this.parse(match[1]), maskLength]; + Object.defineProperty(parsed, "toString", { + value: function() { + return this.join("/"); + } + }); + return parsed; + } + } + throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range"); + }; + ipaddr.isValid = function(string) { + return ipaddr.IPv6.isValid(string) || ipaddr.IPv4.isValid(string); + }; + ipaddr.parse = function(string) { + if (ipaddr.IPv6.isValid(string)) { + return ipaddr.IPv6.parse(string); + } else if (ipaddr.IPv4.isValid(string)) { + return ipaddr.IPv4.parse(string); + } else { + throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format"); + } + }; + ipaddr.parseCIDR = function(string) { + var e; + try { + return ipaddr.IPv6.parseCIDR(string); + } catch (error1) { + e = error1; + try { + return ipaddr.IPv4.parseCIDR(string); + } catch (error12) { + e = error12; + throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format"); + } + } + }; + ipaddr.fromByteArray = function(bytes) { + var length; + length = bytes.length; + if (length === 4) { + return new ipaddr.IPv4(bytes); + } else if (length === 16) { + return new ipaddr.IPv6(bytes); + } else { + throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address"); + } + }; + ipaddr.process = function(string) { + var addr; + addr = this.parse(string); + if (addr.kind() === "ipv6" && addr.isIPv4MappedAddress()) { + return addr.toIPv4Address(); + } else { + return addr; + } + }; + }).call(exports2); + } +}); + +// node_modules/proxy-addr/index.js +var require_proxy_addr = __commonJS({ + "node_modules/proxy-addr/index.js"(exports2, module2) { + "use strict"; + module2.exports = proxyaddr; + module2.exports.all = alladdrs; + module2.exports.compile = compile; + var forwarded = require_forwarded(); + var ipaddr = require_ipaddr(); + var DIGIT_REGEXP = /^[0-9]+$/; + var isip = ipaddr.isValid; + var parseip = ipaddr.parse; + var IP_RANGES = { + linklocal: ["169.254.0.0/16", "fe80::/10"], + loopback: ["127.0.0.1/8", "::1/128"], + uniquelocal: ["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "fc00::/7"] + }; + function alladdrs(req, trust) { + var addrs = forwarded(req); + if (!trust) { + return addrs; + } + if (typeof trust !== "function") { + trust = compile(trust); + } + for (var i = 0; i < addrs.length - 1; i++) { + if (trust(addrs[i], i)) + continue; + addrs.length = i + 1; + } + return addrs; + } + function compile(val) { + if (!val) { + throw new TypeError("argument is required"); + } + var trust; + if (typeof val === "string") { + trust = [val]; + } else if (Array.isArray(val)) { + trust = val.slice(); + } else { + throw new TypeError("unsupported trust argument"); + } + for (var i = 0; i < trust.length; i++) { + val = trust[i]; + if (!Object.prototype.hasOwnProperty.call(IP_RANGES, val)) { + continue; + } + val = IP_RANGES[val]; + trust.splice.apply(trust, [i, 1].concat(val)); + i += val.length - 1; + } + return compileTrust(compileRangeSubnets(trust)); + } + function compileRangeSubnets(arr) { + var rangeSubnets = new Array(arr.length); + for (var i = 0; i < arr.length; i++) { + rangeSubnets[i] = parseipNotation(arr[i]); + } + return rangeSubnets; + } + function compileTrust(rangeSubnets) { + var len = rangeSubnets.length; + return len === 0 ? trustNone : len === 1 ? trustSingle(rangeSubnets[0]) : trustMulti(rangeSubnets); + } + function parseipNotation(note) { + var pos = note.lastIndexOf("/"); + var str = pos !== -1 ? note.substring(0, pos) : note; + if (!isip(str)) { + throw new TypeError("invalid IP address: " + str); + } + var ip = parseip(str); + if (pos === -1 && ip.kind() === "ipv6" && ip.isIPv4MappedAddress()) { + ip = ip.toIPv4Address(); + } + var max = ip.kind() === "ipv6" ? 128 : 32; + var range = pos !== -1 ? note.substring(pos + 1, note.length) : null; + if (range === null) { + range = max; + } else if (DIGIT_REGEXP.test(range)) { + range = parseInt(range, 10); + } else if (ip.kind() === "ipv4" && isip(range)) { + range = parseNetmask(range); + } else { + range = null; + } + if (range <= 0 || range > max) { + throw new TypeError("invalid range on address: " + note); + } + return [ip, range]; + } + function parseNetmask(netmask) { + var ip = parseip(netmask); + var kind = ip.kind(); + return kind === "ipv4" ? ip.prefixLengthFromSubnetMask() : null; + } + function proxyaddr(req, trust) { + if (!req) { + throw new TypeError("req argument is required"); + } + if (!trust) { + throw new TypeError("trust argument is required"); + } + var addrs = alladdrs(req, trust); + var addr = addrs[addrs.length - 1]; + return addr; + } + function trustNone() { + return false; + } + function trustMulti(subnets) { + return function trust(addr) { + if (!isip(addr)) + return false; + var ip = parseip(addr); + var ipconv; + var kind = ip.kind(); + for (var i = 0; i < subnets.length; i++) { + var subnet = subnets[i]; + var subnetip = subnet[0]; + var subnetkind = subnetip.kind(); + var subnetrange = subnet[1]; + var trusted = ip; + if (kind !== subnetkind) { + if (subnetkind === "ipv4" && !ip.isIPv4MappedAddress()) { + continue; + } + if (!ipconv) { + ipconv = subnetkind === "ipv4" ? ip.toIPv4Address() : ip.toIPv4MappedAddress(); + } + trusted = ipconv; + } + if (trusted.match(subnetip, subnetrange)) { + return true; + } + } + return false; + }; + } + function trustSingle(subnet) { + var subnetip = subnet[0]; + var subnetkind = subnetip.kind(); + var subnetisipv4 = subnetkind === "ipv4"; + var subnetrange = subnet[1]; + return function trust(addr) { + if (!isip(addr)) + return false; + var ip = parseip(addr); + var kind = ip.kind(); + if (kind !== subnetkind) { + if (subnetisipv4 && !ip.isIPv4MappedAddress()) { + return false; + } + ip = subnetisipv4 ? ip.toIPv4Address() : ip.toIPv4MappedAddress(); + } + return ip.match(subnetip, subnetrange); + }; + } + } +}); + +// node_modules/express/lib/utils.js +var require_utils2 = __commonJS({ + "node_modules/express/lib/utils.js"(exports2) { + "use strict"; + var Buffer2 = require_safe_buffer().Buffer; + var contentType = require_content_type(); + var etag = require_etag(); + var mime2 = require_mime_types(); + var proxyaddr = require_proxy_addr(); + var qs = require_lib4(); + var querystring = require("querystring"); + exports2.etag = createETagGenerator({ weak: false }); + exports2.wetag = createETagGenerator({ weak: true }); + exports2.normalizeType = function(type) { + return ~type.indexOf("/") ? acceptParams(type) : { value: mime2.lookup(type) || "application/octet-stream", params: {} }; + }; + exports2.normalizeTypes = function(types) { + var ret = []; + for (var i = 0; i < types.length; ++i) { + ret.push(exports2.normalizeType(types[i])); + } + return ret; + }; + function acceptParams(str, index) { + var parts = str.split(/ *; */); + var ret = { value: parts[0], quality: 1, params: {}, originalIndex: index }; + for (var i = 1; i < parts.length; ++i) { + var pms = parts[i].split(/ *= */); + if (pms[0] === "q") { + ret.quality = parseFloat(pms[1]); + } else { + ret.params[pms[0]] = pms[1]; + } + } + return ret; + } + exports2.compileETag = function(val) { + var fn2; + if (typeof val === "function") { + return val; + } + switch (val) { + case true: + case "weak": + fn2 = exports2.wetag; + break; + case false: + break; + case "strong": + fn2 = exports2.etag; + break; + default: + throw new TypeError("unknown value for etag function: " + val); + } + return fn2; + }; + exports2.compileQueryParser = function compileQueryParser(val) { + var fn2; + if (typeof val === "function") { + return val; + } + switch (val) { + case true: + case "simple": + fn2 = querystring.parse; + break; + case false: + break; + case "extended": + fn2 = parseExtendedQueryString; + break; + default: + throw new TypeError("unknown value for query parser function: " + val); + } + return fn2; + }; + exports2.compileTrust = function(val) { + if (typeof val === "function") + return val; + if (val === true) { + return function() { + return true; + }; + } + if (typeof val === "number") { + return function(a, i) { + return i < val; + }; + } + if (typeof val === "string") { + val = val.split(/ *, */); + } + return proxyaddr.compile(val || []); + }; + exports2.setCharset = function setCharset(type, charset) { + if (!type || !charset) { + return type; + } + var parsed = contentType.parse(type); + parsed.parameters.charset = charset; + return contentType.format(parsed); + }; + function createETagGenerator(options) { + return function generateETag(body, encoding) { + var buf = !Buffer2.isBuffer(body) ? Buffer2.from(body, encoding) : body; + return etag(buf, options); + }; + } + function parseExtendedQueryString(str) { + return qs.parse(str, { + allowPrototypes: true + }); + } + } +}); + +// node_modules/array-flatten/dist/index.js +var require_dist = __commonJS({ + "node_modules/array-flatten/dist/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + function flatten(array) { + var result = []; + $flatten(array, result); + return result; + } + exports2.flatten = flatten; + function $flatten(array, result) { + for (var i = 0; i < array.length; i++) { + var value = array[i]; + if (Array.isArray(value)) { + $flatten(value, result); + } else { + result.push(value); + } + } + } + } +}); + +// node_modules/utils-merge/index.js +var require_utils_merge = __commonJS({ + "node_modules/utils-merge/index.js"(exports2, module2) { + exports2 = module2.exports = function(a, b) { + if (a && b) { + for (var key in b) { + a[key] = b[key]; + } + } + return a; + }; + } +}); + +// node_modules/path-to-regexp/index.js +var require_path_to_regexp = __commonJS({ + "node_modules/path-to-regexp/index.js"(exports2, module2) { + module2.exports = pathToRegexp; + module2.exports.match = match; + module2.exports.regexpToFunction = regexpToFunction; + module2.exports.parse = parse; + module2.exports.compile = compile; + module2.exports.tokensToFunction = tokensToFunction; + module2.exports.tokensToRegExp = tokensToRegExp; + var DEFAULT_DELIMITER = "/"; + var PATH_REGEXP = new RegExp([ + "(\\\\.)", + "(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?" + ].join("|"), "g"); + function parse(str, options) { + var tokens = []; + var key = 0; + var index = 0; + var path2 = ""; + var defaultDelimiter = options && options.delimiter || DEFAULT_DELIMITER; + var whitelist = options && options.whitelist || void 0; + var pathEscaped = false; + var res; + while ((res = PATH_REGEXP.exec(str)) !== null) { + var m = res[0]; + var escaped = res[1]; + var offset = res.index; + path2 += str.slice(index, offset); + index = offset + m.length; + if (escaped) { + path2 += escaped[1]; + pathEscaped = true; + continue; + } + var prev = ""; + var name = res[2]; + var capture = res[3]; + var group = res[4]; + var modifier = res[5]; + if (!pathEscaped && path2.length) { + var k = path2.length - 1; + var c = path2[k]; + var matches = whitelist ? whitelist.indexOf(c) > -1 : true; + if (matches) { + prev = c; + path2 = path2.slice(0, k); + } + } + if (path2) { + tokens.push(path2); + path2 = ""; + pathEscaped = false; + } + var repeat = modifier === "+" || modifier === "*"; + var optional = modifier === "?" || modifier === "*"; + var pattern = capture || group; + var delimiter = prev || defaultDelimiter; + tokens.push({ + name: name || key++, + prefix: prev, + delimiter, + optional, + repeat, + pattern: pattern ? escapeGroup(pattern) : "[^" + escapeString(delimiter === defaultDelimiter ? delimiter : delimiter + defaultDelimiter) + "]+?" + }); + } + if (path2 || index < str.length) { + tokens.push(path2 + str.substr(index)); + } + return tokens; + } + function compile(str, options) { + return tokensToFunction(parse(str, options), options); + } + function match(str, options) { + var keys = []; + var re = pathToRegexp(str, keys, options); + return regexpToFunction(re, keys); + } + function regexpToFunction(re, keys) { + return function(pathname, options) { + var m = re.exec(pathname); + if (!m) + return false; + var path2 = m[0]; + var index = m.index; + var params = {}; + var decode = options && options.decode || decodeURIComponent; + for (var i = 1; i < m.length; i++) { + if (m[i] === void 0) + continue; + var key = keys[i - 1]; + if (key.repeat) { + params[key.name] = m[i].split(key.delimiter).map(function(value) { + return decode(value, key); + }); + } else { + params[key.name] = decode(m[i], key); + } + } + return { path: path2, index, params }; + }; + } + function tokensToFunction(tokens, options) { + var matches = new Array(tokens.length); + for (var i = 0; i < tokens.length; i++) { + if (typeof tokens[i] === "object") { + matches[i] = new RegExp("^(?:" + tokens[i].pattern + ")$", flags(options)); + } + } + return function(data, options2) { + var path2 = ""; + var encode = options2 && options2.encode || encodeURIComponent; + var validate = options2 ? options2.validate !== false : true; + for (var i2 = 0; i2 < tokens.length; i2++) { + var token = tokens[i2]; + if (typeof token === "string") { + path2 += token; + continue; + } + var value = data ? data[token.name] : void 0; + var segment; + if (Array.isArray(value)) { + if (!token.repeat) { + throw new TypeError('Expected "' + token.name + '" to not repeat, but got array'); + } + if (value.length === 0) { + if (token.optional) + continue; + throw new TypeError('Expected "' + token.name + '" to not be empty'); + } + for (var j = 0; j < value.length; j++) { + segment = encode(value[j], token); + if (validate && !matches[i2].test(segment)) { + throw new TypeError('Expected all "' + token.name + '" to match "' + token.pattern + '"'); + } + path2 += (j === 0 ? token.prefix : token.delimiter) + segment; + } + continue; + } + if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { + segment = encode(String(value), token); + if (validate && !matches[i2].test(segment)) { + throw new TypeError('Expected "' + token.name + '" to match "' + token.pattern + '", but got "' + segment + '"'); + } + path2 += token.prefix + segment; + continue; + } + if (token.optional) + continue; + throw new TypeError('Expected "' + token.name + '" to be ' + (token.repeat ? "an array" : "a string")); + } + return path2; + }; + } + function escapeString(str) { + return str.replace(/([.+*?=^!:${}()[\]|/\\])/g, "\\$1"); + } + function escapeGroup(group) { + return group.replace(/([=!:$/()])/g, "\\$1"); + } + function flags(options) { + return options && options.sensitive ? "" : "i"; + } + function regexpToRegexp(path2, keys) { + if (!keys) + return path2; + var groups = path2.source.match(/\((?!\?)/g); + if (groups) { + for (var i = 0; i < groups.length; i++) { + keys.push({ + name: i, + prefix: null, + delimiter: null, + optional: false, + repeat: false, + pattern: null + }); + } + } + return path2; + } + function arrayToRegexp(path2, keys, options) { + var parts = []; + for (var i = 0; i < path2.length; i++) { + parts.push(pathToRegexp(path2[i], keys, options).source); + } + return new RegExp("(?:" + parts.join("|") + ")", flags(options)); + } + function stringToRegexp(path2, keys, options) { + return tokensToRegExp(parse(path2, options), keys, options); + } + function tokensToRegExp(tokens, keys, options) { + options = options || {}; + var strict = options.strict; + var start = options.start !== false; + var end = options.end !== false; + var delimiter = options.delimiter || DEFAULT_DELIMITER; + var endsWith = [].concat(options.endsWith || []).map(escapeString).concat("$").join("|"); + var route = start ? "^" : ""; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + if (typeof token === "string") { + route += escapeString(token); + } else { + var capture = token.repeat ? "(?:" + token.pattern + ")(?:" + escapeString(token.delimiter) + "(?:" + token.pattern + "))*" : token.pattern; + if (keys) + keys.push(token); + if (token.optional) { + if (!token.prefix) { + route += "(" + capture + ")?"; + } else { + route += "(?:" + escapeString(token.prefix) + "(" + capture + "))?"; + } + } else { + route += escapeString(token.prefix) + "(" + capture + ")"; + } + } + } + if (end) { + if (!strict) + route += "(?:" + escapeString(delimiter) + ")?"; + route += endsWith === "$" ? "$" : "(?=" + endsWith + ")"; + } else { + var endToken = tokens[tokens.length - 1]; + var isEndDelimited = typeof endToken === "string" ? endToken[endToken.length - 1] === delimiter : endToken === void 0; + if (!strict) + route += "(?:" + escapeString(delimiter) + "(?=" + endsWith + "))?"; + if (!isEndDelimited) + route += "(?=" + escapeString(delimiter) + "|" + endsWith + ")"; + } + return new RegExp(route, flags(options)); + } + function pathToRegexp(path2, keys, options) { + if (path2 instanceof RegExp) { + return regexpToRegexp(path2, keys); + } + if (Array.isArray(path2)) { + return arrayToRegexp(path2, keys, options); + } + return stringToRegexp(path2, keys, options); + } + } +}); + +// node_modules/router/lib/layer.js +var require_layer = __commonJS({ + "node_modules/router/lib/layer.js"(exports2, module2) { + "use strict"; + var pathRegexp = require_path_to_regexp(); + var hasOwnProperty = Object.prototype.hasOwnProperty; + var TRAILING_SLASH_REGEXP = /\/+$/; + module2.exports = Layer; + function Layer(path2, options, fn2) { + if (!(this instanceof Layer)) { + return new Layer(path2, options, fn2); + } + var opts = options || {}; + this.handle = fn2; + this.keys = []; + this.name = fn2.name || ""; + this.params = void 0; + this.path = void 0; + this.regexp = pathRegexp(opts.strict ? path2 : loosen(path2), this.keys, opts); + this.regexp._slash = path2 === "/" && opts.end === false; + } + Layer.prototype.handleError = function handleError(error, req, res, next) { + var fn2 = this.handle; + if (fn2.length !== 4) { + return next(error); + } + try { + var ret = fn2(error, req, res, next); + if (isPromise(ret)) { + ret.then(null, function(error2) { + next(error2 || new Error("Rejected promise")); + }); + } + } catch (err) { + next(err); + } + }; + Layer.prototype.handleRequest = function handleRequest(req, res, next) { + var fn2 = this.handle; + if (fn2.length > 3) { + return next(); + } + try { + var ret = fn2(req, res, next); + if (isPromise(ret)) { + ret.then(null, function(error) { + next(error || new Error("Rejected promise")); + }); + } + } catch (err) { + next(err); + } + }; + Layer.prototype.match = function match(path2) { + var match2; + if (path2 != null) { + if (this.regexp._slash) { + this.params = {}; + this.path = ""; + return true; + } + match2 = this.regexp.exec(path2); + } + if (!match2) { + this.params = void 0; + this.path = void 0; + return false; + } + this.params = {}; + this.path = match2[0]; + var keys = this.keys; + var params = this.params; + for (var i = 1; i < match2.length; i++) { + var key = keys[i - 1]; + var prop = key.name; + var val = decodeParam(match2[i]); + if (val !== void 0 || !hasOwnProperty.call(params, prop)) { + params[prop] = val; + } + } + return true; + }; + function decodeParam(val) { + if (typeof val !== "string" || val.length === 0) { + return val; + } + try { + return decodeURIComponent(val); + } catch (err) { + if (err instanceof URIError) { + err.message = "Failed to decode param '" + val + "'"; + err.status = 400; + } + throw err; + } + } + function isPromise(val) { + return val && typeof val === "object" && typeof val.then === "function"; + } + function loosen(path2) { + if (path2 instanceof RegExp) { + return path2; + } + return Array.isArray(path2) ? path2.map(function(p) { + return loosen(p); + }) : String(path2).replace(TRAILING_SLASH_REGEXP, ""); + } + } +}); + +// node_modules/router/lib/route.js +var require_route = __commonJS({ + "node_modules/router/lib/route.js"(exports2, module2) { + "use strict"; + var flatten = require_dist().flatten; + var Layer = require_layer(); + var methods = require_methods(); + var slice = Array.prototype.slice; + module2.exports = Route; + function Route(path2) { + this.path = path2; + this.stack = []; + this.methods = Object.create(null); + } + Route.prototype._handlesMethod = function _handlesMethod(method) { + if (this.methods._all) { + return true; + } + var name = method.toLowerCase(); + if (name === "head" && !this.methods.head) { + name = "get"; + } + return Boolean(this.methods[name]); + }; + Route.prototype._methods = function _methods() { + var methods2 = Object.keys(this.methods); + if (this.methods.get && !this.methods.head) { + methods2.push("head"); + } + for (var i = 0; i < methods2.length; i++) { + methods2[i] = methods2[i].toUpperCase(); + } + return methods2; + }; + Route.prototype.dispatch = function dispatch(req, res, done) { + var idx = 0; + var stack2 = this.stack; + if (stack2.length === 0) { + return done(); + } + var method = req.method.toLowerCase(); + if (method === "head" && !this.methods.head) { + method = "get"; + } + req.route = this; + next(); + function next(err) { + if (err && err === "route") { + return done(); + } + if (err && err === "router") { + return done(err); + } + if (idx >= stack2.length) { + return done(err); + } + var layer; + var match; + while (match !== true && idx < stack2.length) { + layer = stack2[idx++]; + match = !layer.method || layer.method === method; + } + if (match !== true) { + return done(err); + } + if (err) { + layer.handleError(err, req, res, next); + } else { + layer.handleRequest(req, res, next); + } + } + }; + Route.prototype.all = function all(handler) { + var callbacks = flatten(slice.call(arguments)); + if (callbacks.length === 0) { + throw new TypeError("argument handler is required"); + } + for (var i = 0; i < callbacks.length; i++) { + var fn2 = callbacks[i]; + if (typeof fn2 !== "function") { + throw new TypeError("argument handler must be a function"); + } + var layer = Layer("/", {}, fn2); + layer.method = void 0; + this.methods._all = true; + this.stack.push(layer); + } + return this; + }; + methods.forEach(function(method) { + Route.prototype[method] = function(handler) { + var callbacks = flatten(slice.call(arguments)); + if (callbacks.length === 0) { + throw new TypeError("argument handler is required"); + } + for (var i = 0; i < callbacks.length; i++) { + var fn2 = callbacks[i]; + if (typeof fn2 !== "function") { + throw new TypeError("argument handler must be a function"); + } + var layer = Layer("/", {}, fn2); + layer.method = method; + this.methods[method] = true; + this.stack.push(layer); + } + return this; + }; + }); + } +}); + +// node_modules/router/index.js +var require_router = __commonJS({ + "node_modules/router/index.js"(exports2, module2) { + "use strict"; + var flatten = require_dist().flatten; + var Layer = require_layer(); + var methods = require_methods(); + var mixin = require_utils_merge(); + var parseUrl = require_parseurl(); + var Route = require_route(); + var setPrototypeOf = require_setprototypeof(); + var slice = Array.prototype.slice; + module2.exports = Router; + module2.exports.Route = Route; + function Router(options) { + if (!(this instanceof Router)) { + return new Router(options); + } + var opts = options || {}; + function router(req, res, next) { + router.handle(req, res, next); + } + setPrototypeOf(router, this); + router.caseSensitive = opts.caseSensitive; + router.mergeParams = opts.mergeParams; + router.params = {}; + router.strict = opts.strict; + router.stack = []; + return router; + } + Router.prototype = function() { + }; + Router.prototype.param = function param(name, fn2) { + if (!name) { + throw new TypeError("argument name is required"); + } + if (typeof name !== "string") { + throw new TypeError("argument name must be a string"); + } + if (!fn2) { + throw new TypeError("argument fn is required"); + } + if (typeof fn2 !== "function") { + throw new TypeError("argument fn must be a function"); + } + var params = this.params[name]; + if (!params) { + params = this.params[name] = []; + } + params.push(fn2); + return this; + }; + Router.prototype.handle = function handle(req, res, callback) { + if (!callback) { + throw new TypeError("argument callback is required"); + } + var idx = 0; + var methods2; + var protohost = getProtohost(req.url) || ""; + var removed = ""; + var self2 = this; + var slashAdded = false; + var paramcalled = {}; + var stack2 = this.stack; + var parentParams = req.params; + var parentUrl = req.baseUrl || ""; + var done = restore(callback, req, "baseUrl", "next", "params"); + req.next = next; + if (req.method === "OPTIONS") { + methods2 = []; + done = wrap(done, generateOptionsResponder(res, methods2)); + } + req.baseUrl = parentUrl; + req.originalUrl = req.originalUrl || req.url; + next(); + function next(err) { + var layerError = err === "route" ? null : err; + if (slashAdded) { + req.url = req.url.substr(1); + slashAdded = false; + } + if (removed.length !== 0) { + req.baseUrl = parentUrl; + req.url = protohost + removed + req.url.substr(protohost.length); + removed = ""; + } + if (layerError === "router") { + setImmediate(done, null); + return; + } + if (idx >= stack2.length) { + setImmediate(done, layerError); + return; + } + var path2 = getPathname(req); + if (path2 == null) { + return done(layerError); + } + var layer; + var match; + var route; + while (match !== true && idx < stack2.length) { + layer = stack2[idx++]; + match = matchLayer(layer, path2); + route = layer.route; + if (typeof match !== "boolean") { + layerError = layerError || match; + } + if (match !== true) { + continue; + } + if (!route) { + continue; + } + if (layerError) { + match = false; + continue; + } + var method = req.method; + var hasMethod = route._handlesMethod(method); + if (!hasMethod && method === "OPTIONS" && methods2) { + methods2.push.apply(methods2, route._methods()); + } + if (!hasMethod && method !== "HEAD") { + match = false; + continue; + } + } + if (match !== true) { + return done(layerError); + } + if (route) { + req.route = route; + } + req.params = self2.mergeParams ? mergeParams(layer.params, parentParams) : layer.params; + var layerPath = layer.path; + processParams(self2.params, layer, paramcalled, req, res, function(err2) { + if (err2) { + return next(layerError || err2); + } + if (route) { + return layer.handleRequest(req, res, next); + } + trimPrefix(layer, layerError, layerPath, path2); + }); + } + function trimPrefix(layer, layerError, layerPath, path2) { + if (layerPath.length !== 0) { + if (layerPath !== path2.substr(0, layerPath.length)) { + next(layerError); + return; + } + var c = path2[layerPath.length]; + if (c && c !== "/") { + next(layerError); + return; + } + removed = layerPath; + req.url = protohost + req.url.substr(protohost.length + removed.length); + if (!protohost && req.url[0] !== "/") { + req.url = "/" + req.url; + slashAdded = true; + } + req.baseUrl = parentUrl + (removed[removed.length - 1] === "/" ? removed.substring(0, removed.length - 1) : removed); + } + if (layerError) { + layer.handleError(layerError, req, res, next); + } else { + layer.handleRequest(req, res, next); + } + } + }; + Router.prototype.use = function use(handler) { + var offset = 0; + var path2 = "/"; + if (typeof handler !== "function") { + var arg = handler; + while (Array.isArray(arg) && arg.length !== 0) { + arg = arg[0]; + } + if (typeof arg !== "function") { + offset = 1; + path2 = handler; + } + } + var callbacks = flatten(slice.call(arguments, offset)); + if (callbacks.length === 0) { + throw new TypeError("argument handler is required"); + } + for (var i = 0; i < callbacks.length; i++) { + var fn2 = callbacks[i]; + if (typeof fn2 !== "function") { + throw new TypeError("argument handler must be a function"); + } + var layer = new Layer(path2, { + sensitive: this.caseSensitive, + strict: false, + end: false + }, fn2); + layer.route = void 0; + this.stack.push(layer); + } + return this; + }; + Router.prototype.route = function route(path2) { + var route2 = new Route(path2); + var layer = new Layer(path2, { + sensitive: this.caseSensitive, + strict: this.strict, + end: true + }, handle); + function handle(req, res, next) { + route2.dispatch(req, res, next); + } + layer.route = route2; + this.stack.push(layer); + return route2; + }; + methods.concat("all").forEach(function(method) { + Router.prototype[method] = function(path2) { + var route = this.route(path2); + route[method].apply(route, slice.call(arguments, 1)); + return this; + }; + }); + function generateOptionsResponder(res, methods2) { + return function onDone(fn2, err) { + if (err || methods2.length === 0) { + return fn2(err); + } + trySendOptionsResponse(res, methods2, fn2); + }; + } + function getPathname(req) { + try { + return parseUrl(req).pathname; + } catch (err) { + return void 0; + } + } + function getProtohost(url) { + if (typeof url !== "string" || url.length === 0 || url[0] === "/") { + return void 0; + } + var searchIndex = url.indexOf("?"); + var pathLength = searchIndex !== -1 ? searchIndex : url.length; + var fqdnIndex = url.substr(0, pathLength).indexOf("://"); + return fqdnIndex !== -1 ? url.substr(0, url.indexOf("/", 3 + fqdnIndex)) : void 0; + } + function matchLayer(layer, path2) { + try { + return layer.match(path2); + } catch (err) { + return err; + } + } + function mergeParams(params, parent) { + if (typeof parent !== "object" || !parent) { + return params; + } + var obj = mixin({}, parent); + if (!(0 in params) || !(0 in parent)) { + return mixin(obj, params); + } + var i = 0; + var o = 0; + while (i in params) { + i++; + } + while (o in parent) { + o++; + } + for (i--; i >= 0; i--) { + params[i + o] = params[i]; + if (i < o) { + delete params[i]; + } + } + return mixin(obj, params); + } + function processParams(params, layer, called, req, res, done) { + var keys = layer.keys; + if (!keys || keys.length === 0) { + return done(); + } + var i = 0; + var name; + var paramIndex = 0; + var key; + var paramVal; + var paramCallbacks; + var paramCalled; + function param(err) { + if (err) { + return done(err); + } + if (i >= keys.length) { + return done(); + } + paramIndex = 0; + key = keys[i++]; + name = key.name; + paramVal = req.params[name]; + paramCallbacks = params[name]; + paramCalled = called[name]; + if (paramVal === void 0 || !paramCallbacks) { + return param(); + } + if (paramCalled && (paramCalled.match === paramVal || paramCalled.error && paramCalled.error !== "route")) { + req.params[name] = paramCalled.value; + return param(paramCalled.error); + } + called[name] = paramCalled = { + error: null, + match: paramVal, + value: paramVal + }; + paramCallback(); + } + function paramCallback(err) { + var fn2 = paramCallbacks[paramIndex++]; + paramCalled.value = req.params[key.name]; + if (err) { + paramCalled.error = err; + param(err); + return; + } + if (!fn2) + return param(); + try { + fn2(req, res, paramCallback, paramVal, key.name); + } catch (e) { + paramCallback(e); + } + } + param(); + } + function restore(fn2, obj) { + var props = new Array(arguments.length - 2); + var vals = new Array(arguments.length - 2); + for (var i = 0; i < props.length; i++) { + props[i] = arguments[i + 2]; + vals[i] = obj[props[i]]; + } + return function() { + for (var i2 = 0; i2 < props.length; i2++) { + obj[props[i2]] = vals[i2]; + } + return fn2.apply(this, arguments); + }; + } + function sendOptionsResponse(res, methods2) { + var options = Object.create(null); + for (var i = 0; i < methods2.length; i++) { + options[methods2[i]] = true; + } + var allow = Object.keys(options).sort().join(", "); + res.setHeader("Allow", allow); + res.setHeader("Content-Length", Buffer.byteLength(allow)); + res.setHeader("Content-Type", "text/plain"); + res.setHeader("X-Content-Type-Options", "nosniff"); + res.end(allow); + } + function trySendOptionsResponse(res, methods2, next) { + try { + sendOptionsResponse(res, methods2); + } catch (err) { + next(err); + } + } + function wrap(old, fn2) { + return function proxy() { + var args2 = new Array(arguments.length + 1); + args2[0] = old; + for (var i = 0, len = arguments.length; i < len; i++) { + args2[i + 1] = arguments[i]; + } + fn2.apply(this, args2); + }; + } + } +}); + +// node_modules/express/lib/application.js +var require_application = __commonJS({ + "node_modules/express/lib/application.js"(exports2, module2) { + "use strict"; + var finalhandler = require_finalhandler(); + var methods = require_methods(); + var debug = require_src3()("express:application"); + var View = require_view(); + var http3 = require("http"); + var compileETag = require_utils2().compileETag; + var compileQueryParser = require_utils2().compileQueryParser; + var compileTrust = require_utils2().compileTrust; + var flatten = require_dist().flatten; + var merge = require_utils_merge(); + var resolve = require("path").resolve; + var Router = require_router(); + var setPrototypeOf = require_setprototypeof(); + var slice = Array.prototype.slice; + var app = exports2 = module2.exports = {}; + var trustProxyDefaultSymbol = "@@symbol:trust_proxy_default"; + app.init = function init() { + var router = null; + this.cache = {}; + this.engines = {}; + this.settings = {}; + this.defaultConfiguration(); + Object.defineProperty(this, "router", { + configurable: true, + enumerable: true, + get: function getrouter() { + if (router === null) { + router = new Router({ + caseSensitive: this.enabled("case sensitive routing"), + strict: this.enabled("strict routing") + }); + } + return router; + } + }); + }; + app.defaultConfiguration = function defaultConfiguration() { + var env = process.env.NODE_ENV || "development"; + this.enable("x-powered-by"); + this.set("etag", "weak"); + this.set("env", env); + this.set("query parser", "simple"); + this.set("subdomain offset", 2); + this.set("trust proxy", false); + Object.defineProperty(this.settings, trustProxyDefaultSymbol, { + configurable: true, + value: true + }); + debug("booting in %s mode", env); + this.on("mount", function onmount(parent) { + if (this.settings[trustProxyDefaultSymbol] === true && typeof parent.settings["trust proxy fn"] === "function") { + delete this.settings["trust proxy"]; + delete this.settings["trust proxy fn"]; + } + setPrototypeOf(this.request, parent.request); + setPrototypeOf(this.response, parent.response); + setPrototypeOf(this.engines, parent.engines); + setPrototypeOf(this.settings, parent.settings); + }); + this.locals = Object.create(null); + this.mountpath = "/"; + this.locals.settings = this.settings; + this.set("view", View); + this.set("views", resolve("views")); + this.set("jsonp callback name", "callback"); + if (env === "production") { + this.enable("view cache"); + } + }; + app.handle = function handle(req, res, callback) { + var done = callback || finalhandler(req, res, { + env: this.get("env"), + onerror: logerror.bind(this) + }); + if (this.enabled("x-powered-by")) { + res.setHeader("X-Powered-By", "Express"); + } + req.res = res; + res.req = req; + setPrototypeOf(req, this.request); + setPrototypeOf(res, this.response); + if (!res.locals) { + res.locals = Object.create(null); + } + this.router.handle(req, res, done); + }; + app.use = function use(fn2) { + var offset = 0; + var path2 = "/"; + if (typeof fn2 !== "function") { + var arg = fn2; + while (Array.isArray(arg) && arg.length !== 0) { + arg = arg[0]; + } + if (typeof arg !== "function") { + offset = 1; + path2 = fn2; + } + } + var fns = flatten(slice.call(arguments, offset)); + if (fns.length === 0) { + throw new TypeError("app.use() requires a middleware function"); + } + var router = this.router; + fns.forEach(function(fn3) { + if (!fn3 || !fn3.handle || !fn3.set) { + return router.use(path2, fn3); + } + debug(".use app under %s", path2); + fn3.mountpath = path2; + fn3.parent = this; + router.use(path2, function mounted_app(req, res, next) { + var orig = req.app; + fn3.handle(req, res, function(err) { + setPrototypeOf(req, orig.request); + setPrototypeOf(res, orig.response); + next(err); + }); + }); + fn3.emit("mount", this); + }, this); + return this; + }; + app.route = function route(path2) { + return this.router.route(path2); + }; + app.engine = function engine(ext, fn2) { + if (typeof fn2 !== "function") { + throw new Error("callback function required"); + } + var extension = ext[0] !== "." ? "." + ext : ext; + this.engines[extension] = fn2; + return this; + }; + app.param = function param(name, fn2) { + if (Array.isArray(name)) { + for (var i = 0; i < name.length; i++) { + this.param(name[i], fn2); + } + return this; + } + this.router.param(name, fn2); + return this; + }; + app.set = function set(setting, val) { + if (arguments.length === 1) { + return this.settings[setting]; + } + debug('set "%s" to %o', setting, val); + this.settings[setting] = val; + switch (setting) { + case "etag": + this.set("etag fn", compileETag(val)); + break; + case "query parser": + this.set("query parser fn", compileQueryParser(val)); + break; + case "trust proxy": + this.set("trust proxy fn", compileTrust(val)); + Object.defineProperty(this.settings, trustProxyDefaultSymbol, { + configurable: true, + value: false + }); + break; + } + return this; + }; + app.path = function path2() { + return this.parent ? this.parent.path() + this.mountpath : ""; + }; + app.enabled = function enabled(setting) { + return Boolean(this.set(setting)); + }; + app.disabled = function disabled(setting) { + return !this.set(setting); + }; + app.enable = function enable(setting) { + return this.set(setting, true); + }; + app.disable = function disable(setting) { + return this.set(setting, false); + }; + methods.forEach(function(method) { + app[method] = function(path2) { + if (method === "get" && arguments.length === 1) { + return this.set(path2); + } + var route = this.route(path2); + route[method].apply(route, slice.call(arguments, 1)); + return this; + }; + }); + app.all = function all(path2) { + var route = this.route(path2); + var args2 = slice.call(arguments, 1); + for (var i = 0; i < methods.length; i++) { + route[methods[i]].apply(route, args2); + } + return this; + }; + app.render = function render(name, options, callback) { + var cache = this.cache; + var done = callback; + var engines = this.engines; + var opts = options; + var renderOptions = {}; + var view; + if (typeof options === "function") { + done = options; + opts = {}; + } + merge(renderOptions, this.locals); + if (opts._locals) { + merge(renderOptions, opts._locals); + } + merge(renderOptions, opts); + if (renderOptions.cache == null) { + renderOptions.cache = this.enabled("view cache"); + } + if (renderOptions.cache) { + view = cache[name]; + } + if (!view) { + var View2 = this.get("view"); + view = new View2(name, { + defaultEngine: this.get("view engine"), + root: this.get("views"), + engines + }); + if (!view.path) { + var dirs = Array.isArray(view.root) && view.root.length > 1 ? 'directories "' + view.root.slice(0, -1).join('", "') + '" or "' + view.root[view.root.length - 1] + '"' : 'directory "' + view.root + '"'; + var err = new Error('Failed to lookup view "' + name + '" in views ' + dirs); + err.view = view; + return done(err); + } + if (renderOptions.cache) { + cache[name] = view; + } + } + tryRender(view, renderOptions, done); + }; + app.listen = function listen() { + var server = http3.createServer(this); + return server.listen.apply(server, arguments); + }; + function logerror(err) { + if (this.get("env") !== "test") + console.error(err.stack || err.toString()); + } + function tryRender(view, options, callback) { + try { + view.render(options, callback); + } catch (err) { + callback(err); + } + } + } +}); + +// node_modules/negotiator/lib/charset.js +var require_charset = __commonJS({ + "node_modules/negotiator/lib/charset.js"(exports2, module2) { + "use strict"; + module2.exports = preferredCharsets; + module2.exports.preferredCharsets = preferredCharsets; + var simpleCharsetRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/; + function parseAcceptCharset(accept) { + var accepts = accept.split(","); + for (var i = 0, j = 0; i < accepts.length; i++) { + var charset = parseCharset(accepts[i].trim(), i); + if (charset) { + accepts[j++] = charset; + } + } + accepts.length = j; + return accepts; + } + function parseCharset(str, i) { + var match = simpleCharsetRegExp.exec(str); + if (!match) + return null; + var charset = match[1]; + var q = 1; + if (match[2]) { + var params = match[2].split(";"); + for (var j = 0; j < params.length; j++) { + var p = params[j].trim().split("="); + if (p[0] === "q") { + q = parseFloat(p[1]); + break; + } + } + } + return { + charset, + q, + i + }; + } + function getCharsetPriority(charset, accepted, index) { + var priority = { o: -1, q: 0, s: 0 }; + for (var i = 0; i < accepted.length; i++) { + var spec = specify(charset, accepted[i], index); + if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { + priority = spec; + } + } + return priority; + } + function specify(charset, spec, index) { + var s = 0; + if (spec.charset.toLowerCase() === charset.toLowerCase()) { + s |= 1; + } else if (spec.charset !== "*") { + return null; + } + return { + i: index, + o: spec.i, + q: spec.q, + s + }; + } + function preferredCharsets(accept, provided) { + var accepts = parseAcceptCharset(accept === void 0 ? "*" : accept || ""); + if (!provided) { + return accepts.filter(isQuality).sort(compareSpecs).map(getFullCharset); + } + var priorities = provided.map(function getPriority(type, index) { + return getCharsetPriority(type, accepts, index); + }); + return priorities.filter(isQuality).sort(compareSpecs).map(function getCharset(priority) { + return provided[priorities.indexOf(priority)]; + }); + } + function compareSpecs(a, b) { + return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0; + } + function getFullCharset(spec) { + return spec.charset; + } + function isQuality(spec) { + return spec.q > 0; + } + } +}); + +// node_modules/negotiator/lib/encoding.js +var require_encoding = __commonJS({ + "node_modules/negotiator/lib/encoding.js"(exports2, module2) { + "use strict"; + module2.exports = preferredEncodings; + module2.exports.preferredEncodings = preferredEncodings; + var simpleEncodingRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/; + function parseAcceptEncoding(accept) { + var accepts = accept.split(","); + var hasIdentity = false; + var minQuality = 1; + for (var i = 0, j = 0; i < accepts.length; i++) { + var encoding = parseEncoding(accepts[i].trim(), i); + if (encoding) { + accepts[j++] = encoding; + hasIdentity = hasIdentity || specify("identity", encoding); + minQuality = Math.min(minQuality, encoding.q || 1); + } + } + if (!hasIdentity) { + accepts[j++] = { + encoding: "identity", + q: minQuality, + i + }; + } + accepts.length = j; + return accepts; + } + function parseEncoding(str, i) { + var match = simpleEncodingRegExp.exec(str); + if (!match) + return null; + var encoding = match[1]; + var q = 1; + if (match[2]) { + var params = match[2].split(";"); + for (var j = 0; j < params.length; j++) { + var p = params[j].trim().split("="); + if (p[0] === "q") { + q = parseFloat(p[1]); + break; + } + } + } + return { + encoding, + q, + i + }; + } + function getEncodingPriority(encoding, accepted, index) { + var priority = { o: -1, q: 0, s: 0 }; + for (var i = 0; i < accepted.length; i++) { + var spec = specify(encoding, accepted[i], index); + if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { + priority = spec; + } + } + return priority; + } + function specify(encoding, spec, index) { + var s = 0; + if (spec.encoding.toLowerCase() === encoding.toLowerCase()) { + s |= 1; + } else if (spec.encoding !== "*") { + return null; + } + return { + i: index, + o: spec.i, + q: spec.q, + s + }; + } + function preferredEncodings(accept, provided) { + var accepts = parseAcceptEncoding(accept || ""); + if (!provided) { + return accepts.filter(isQuality).sort(compareSpecs).map(getFullEncoding); + } + var priorities = provided.map(function getPriority(type, index) { + return getEncodingPriority(type, accepts, index); + }); + return priorities.filter(isQuality).sort(compareSpecs).map(function getEncoding(priority) { + return provided[priorities.indexOf(priority)]; + }); + } + function compareSpecs(a, b) { + return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0; + } + function getFullEncoding(spec) { + return spec.encoding; + } + function isQuality(spec) { + return spec.q > 0; + } + } +}); + +// node_modules/negotiator/lib/language.js +var require_language = __commonJS({ + "node_modules/negotiator/lib/language.js"(exports2, module2) { + "use strict"; + module2.exports = preferredLanguages; + module2.exports.preferredLanguages = preferredLanguages; + var simpleLanguageRegExp = /^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/; + function parseAcceptLanguage(accept) { + var accepts = accept.split(","); + for (var i = 0, j = 0; i < accepts.length; i++) { + var language = parseLanguage(accepts[i].trim(), i); + if (language) { + accepts[j++] = language; + } + } + accepts.length = j; + return accepts; + } + function parseLanguage(str, i) { + var match = simpleLanguageRegExp.exec(str); + if (!match) + return null; + var prefix = match[1]; + var suffix = match[2]; + var full = prefix; + if (suffix) + full += "-" + suffix; + var q = 1; + if (match[3]) { + var params = match[3].split(";"); + for (var j = 0; j < params.length; j++) { + var p = params[j].split("="); + if (p[0] === "q") + q = parseFloat(p[1]); + } + } + return { + prefix, + suffix, + q, + i, + full + }; + } + function getLanguagePriority(language, accepted, index) { + var priority = { o: -1, q: 0, s: 0 }; + for (var i = 0; i < accepted.length; i++) { + var spec = specify(language, accepted[i], index); + if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { + priority = spec; + } + } + return priority; + } + function specify(language, spec, index) { + var p = parseLanguage(language); + if (!p) + return null; + var s = 0; + if (spec.full.toLowerCase() === p.full.toLowerCase()) { + s |= 4; + } else if (spec.prefix.toLowerCase() === p.full.toLowerCase()) { + s |= 2; + } else if (spec.full.toLowerCase() === p.prefix.toLowerCase()) { + s |= 1; + } else if (spec.full !== "*") { + return null; + } + return { + i: index, + o: spec.i, + q: spec.q, + s + }; + } + function preferredLanguages(accept, provided) { + var accepts = parseAcceptLanguage(accept === void 0 ? "*" : accept || ""); + if (!provided) { + return accepts.filter(isQuality).sort(compareSpecs).map(getFullLanguage); + } + var priorities = provided.map(function getPriority(type, index) { + return getLanguagePriority(type, accepts, index); + }); + return priorities.filter(isQuality).sort(compareSpecs).map(function getLanguage(priority) { + return provided[priorities.indexOf(priority)]; + }); + } + function compareSpecs(a, b) { + return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0; + } + function getFullLanguage(spec) { + return spec.full; + } + function isQuality(spec) { + return spec.q > 0; + } + } +}); + +// node_modules/negotiator/lib/mediaType.js +var require_mediaType = __commonJS({ + "node_modules/negotiator/lib/mediaType.js"(exports2, module2) { + "use strict"; + module2.exports = preferredMediaTypes; + module2.exports.preferredMediaTypes = preferredMediaTypes; + var simpleMediaTypeRegExp = /^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/; + function parseAccept(accept) { + var accepts = splitMediaTypes(accept); + for (var i = 0, j = 0; i < accepts.length; i++) { + var mediaType = parseMediaType(accepts[i].trim(), i); + if (mediaType) { + accepts[j++] = mediaType; + } + } + accepts.length = j; + return accepts; + } + function parseMediaType(str, i) { + var match = simpleMediaTypeRegExp.exec(str); + if (!match) + return null; + var params = Object.create(null); + var q = 1; + var subtype = match[2]; + var type = match[1]; + if (match[3]) { + var kvps = splitParameters(match[3]).map(splitKeyValuePair); + for (var j = 0; j < kvps.length; j++) { + var pair = kvps[j]; + var key = pair[0].toLowerCase(); + var val = pair[1]; + var value = val && val[0] === '"' && val[val.length - 1] === '"' ? val.substr(1, val.length - 2) : val; + if (key === "q") { + q = parseFloat(value); + break; + } + params[key] = value; + } + } + return { + type, + subtype, + params, + q, + i + }; + } + function getMediaTypePriority(type, accepted, index) { + var priority = { o: -1, q: 0, s: 0 }; + for (var i = 0; i < accepted.length; i++) { + var spec = specify(type, accepted[i], index); + if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { + priority = spec; + } + } + return priority; + } + function specify(type, spec, index) { + var p = parseMediaType(type); + var s = 0; + if (!p) { + return null; + } + if (spec.type.toLowerCase() == p.type.toLowerCase()) { + s |= 4; + } else if (spec.type != "*") { + return null; + } + if (spec.subtype.toLowerCase() == p.subtype.toLowerCase()) { + s |= 2; + } else if (spec.subtype != "*") { + return null; + } + var keys = Object.keys(spec.params); + if (keys.length > 0) { + if (keys.every(function(k) { + return spec.params[k] == "*" || (spec.params[k] || "").toLowerCase() == (p.params[k] || "").toLowerCase(); + })) { + s |= 1; + } else { + return null; + } + } + return { + i: index, + o: spec.i, + q: spec.q, + s + }; + } + function preferredMediaTypes(accept, provided) { + var accepts = parseAccept(accept === void 0 ? "*/*" : accept || ""); + if (!provided) { + return accepts.filter(isQuality).sort(compareSpecs).map(getFullType); + } + var priorities = provided.map(function getPriority(type, index) { + return getMediaTypePriority(type, accepts, index); + }); + return priorities.filter(isQuality).sort(compareSpecs).map(function getType(priority) { + return provided[priorities.indexOf(priority)]; + }); + } + function compareSpecs(a, b) { + return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0; + } + function getFullType(spec) { + return spec.type + "/" + spec.subtype; + } + function isQuality(spec) { + return spec.q > 0; + } + function quoteCount(string) { + var count = 0; + var index = 0; + while ((index = string.indexOf('"', index)) !== -1) { + count++; + index++; + } + return count; + } + function splitKeyValuePair(str) { + var index = str.indexOf("="); + var key; + var val; + if (index === -1) { + key = str; + } else { + key = str.substr(0, index); + val = str.substr(index + 1); + } + return [key, val]; + } + function splitMediaTypes(accept) { + var accepts = accept.split(","); + for (var i = 1, j = 0; i < accepts.length; i++) { + if (quoteCount(accepts[j]) % 2 == 0) { + accepts[++j] = accepts[i]; + } else { + accepts[j] += "," + accepts[i]; + } + } + accepts.length = j + 1; + return accepts; + } + function splitParameters(str) { + var parameters = str.split(";"); + for (var i = 1, j = 0; i < parameters.length; i++) { + if (quoteCount(parameters[j]) % 2 == 0) { + parameters[++j] = parameters[i]; + } else { + parameters[j] += ";" + parameters[i]; + } + } + parameters.length = j + 1; + for (var i = 0; i < parameters.length; i++) { + parameters[i] = parameters[i].trim(); + } + return parameters; + } + } +}); + +// node_modules/negotiator/index.js +var require_negotiator = __commonJS({ + "node_modules/negotiator/index.js"(exports2, module2) { + "use strict"; + var preferredCharsets = require_charset(); + var preferredEncodings = require_encoding(); + var preferredLanguages = require_language(); + var preferredMediaTypes = require_mediaType(); + module2.exports = Negotiator; + module2.exports.Negotiator = Negotiator; + function Negotiator(request) { + if (!(this instanceof Negotiator)) { + return new Negotiator(request); + } + this.request = request; + } + Negotiator.prototype.charset = function charset(available) { + var set = this.charsets(available); + return set && set[0]; + }; + Negotiator.prototype.charsets = function charsets(available) { + return preferredCharsets(this.request.headers["accept-charset"], available); + }; + Negotiator.prototype.encoding = function encoding(available) { + var set = this.encodings(available); + return set && set[0]; + }; + Negotiator.prototype.encodings = function encodings(available) { + return preferredEncodings(this.request.headers["accept-encoding"], available); + }; + Negotiator.prototype.language = function language(available) { + var set = this.languages(available); + return set && set[0]; + }; + Negotiator.prototype.languages = function languages(available) { + return preferredLanguages(this.request.headers["accept-language"], available); + }; + Negotiator.prototype.mediaType = function mediaType(available) { + var set = this.mediaTypes(available); + return set && set[0]; + }; + Negotiator.prototype.mediaTypes = function mediaTypes(available) { + return preferredMediaTypes(this.request.headers.accept, available); + }; + Negotiator.prototype.preferredCharset = Negotiator.prototype.charset; + Negotiator.prototype.preferredCharsets = Negotiator.prototype.charsets; + Negotiator.prototype.preferredEncoding = Negotiator.prototype.encoding; + Negotiator.prototype.preferredEncodings = Negotiator.prototype.encodings; + Negotiator.prototype.preferredLanguage = Negotiator.prototype.language; + Negotiator.prototype.preferredLanguages = Negotiator.prototype.languages; + Negotiator.prototype.preferredMediaType = Negotiator.prototype.mediaType; + Negotiator.prototype.preferredMediaTypes = Negotiator.prototype.mediaTypes; + } +}); + +// node_modules/accepts/index.js +var require_accepts = __commonJS({ + "node_modules/accepts/index.js"(exports2, module2) { + "use strict"; + var Negotiator = require_negotiator(); + var mime2 = require_mime_types(); + module2.exports = Accepts; + function Accepts(req) { + if (!(this instanceof Accepts)) { + return new Accepts(req); + } + this.headers = req.headers; + this.negotiator = new Negotiator(req); + } + Accepts.prototype.type = Accepts.prototype.types = function(types_) { + var types = types_; + if (types && !Array.isArray(types)) { + types = new Array(arguments.length); + for (var i = 0; i < types.length; i++) { + types[i] = arguments[i]; + } + } + if (!types || types.length === 0) { + return this.negotiator.mediaTypes(); + } + if (!this.headers.accept) { + return types[0]; + } + var mimes = types.map(extToMime); + var accepts = this.negotiator.mediaTypes(mimes.filter(validMime)); + var first = accepts[0]; + return first ? types[mimes.indexOf(first)] : false; + }; + Accepts.prototype.encoding = Accepts.prototype.encodings = function(encodings_) { + var encodings = encodings_; + if (encodings && !Array.isArray(encodings)) { + encodings = new Array(arguments.length); + for (var i = 0; i < encodings.length; i++) { + encodings[i] = arguments[i]; + } + } + if (!encodings || encodings.length === 0) { + return this.negotiator.encodings(); + } + return this.negotiator.encodings(encodings)[0] || false; + }; + Accepts.prototype.charset = Accepts.prototype.charsets = function(charsets_) { + var charsets = charsets_; + if (charsets && !Array.isArray(charsets)) { + charsets = new Array(arguments.length); + for (var i = 0; i < charsets.length; i++) { + charsets[i] = arguments[i]; + } + } + if (!charsets || charsets.length === 0) { + return this.negotiator.charsets(); + } + return this.negotiator.charsets(charsets)[0] || false; + }; + Accepts.prototype.lang = Accepts.prototype.langs = Accepts.prototype.language = Accepts.prototype.languages = function(languages_) { + var languages = languages_; + if (languages && !Array.isArray(languages)) { + languages = new Array(arguments.length); + for (var i = 0; i < languages.length; i++) { + languages[i] = arguments[i]; + } + } + if (!languages || languages.length === 0) { + return this.negotiator.languages(); + } + return this.negotiator.languages(languages)[0] || false; + }; + function extToMime(type) { + return type.indexOf("/") === -1 ? mime2.lookup(type) : type; + } + function validMime(type) { + return typeof type === "string"; + } + } +}); + +// node_modules/fresh/index.js +var require_fresh = __commonJS({ + "node_modules/fresh/index.js"(exports2, module2) { + "use strict"; + var CACHE_CONTROL_NO_CACHE_REGEXP = /(?:^|,)\s*?no-cache\s*?(?:,|$)/; + module2.exports = fresh; + function fresh(reqHeaders, resHeaders) { + var modifiedSince = reqHeaders["if-modified-since"]; + var noneMatch = reqHeaders["if-none-match"]; + if (!modifiedSince && !noneMatch) { + return false; + } + var cacheControl = reqHeaders["cache-control"]; + if (cacheControl && CACHE_CONTROL_NO_CACHE_REGEXP.test(cacheControl)) { + return false; + } + if (noneMatch && noneMatch !== "*") { + var etag = resHeaders["etag"]; + if (!etag) { + return false; + } + var etagStale = true; + var matches = parseTokenList(noneMatch); + for (var i = 0; i < matches.length; i++) { + var match = matches[i]; + if (match === etag || match === "W/" + etag || "W/" + match === etag) { + etagStale = false; + break; + } + } + if (etagStale) { + return false; + } + } + if (modifiedSince) { + var lastModified = resHeaders["last-modified"]; + var modifiedStale = !lastModified || !(parseHttpDate(lastModified) <= parseHttpDate(modifiedSince)); + if (modifiedStale) { + return false; + } + } + return true; + } + function parseHttpDate(date) { + var timestamp = date && Date.parse(date); + return typeof timestamp === "number" ? timestamp : NaN; + } + function parseTokenList(str) { + var end = 0; + var list = []; + var start = 0; + for (var i = 0, len = str.length; i < len; i++) { + switch (str.charCodeAt(i)) { + case 32: + if (start === end) { + start = end = i + 1; + } + break; + case 44: + list.push(str.substring(start, end)); + start = end = i + 1; + break; + default: + end = i + 1; + break; + } + } + list.push(str.substring(start, end)); + return list; + } + } +}); + +// node_modules/range-parser/index.js +var require_range_parser = __commonJS({ + "node_modules/range-parser/index.js"(exports2, module2) { + "use strict"; + module2.exports = rangeParser; + function rangeParser(size, str, options) { + if (typeof str !== "string") { + throw new TypeError("argument str must be a string"); + } + var index = str.indexOf("="); + if (index === -1) { + return -2; + } + var arr = str.slice(index + 1).split(","); + var ranges = []; + ranges.type = str.slice(0, index); + for (var i = 0; i < arr.length; i++) { + var range = arr[i].split("-"); + var start = parseInt(range[0], 10); + var end = parseInt(range[1], 10); + if (isNaN(start)) { + start = size - end; + end = size - 1; + } else if (isNaN(end)) { + end = size - 1; + } + if (end > size - 1) { + end = size - 1; + } + if (isNaN(start) || isNaN(end) || start > end || start < 0) { + continue; + } + ranges.push({ + start, + end + }); + } + if (ranges.length < 1) { + return -1; + } + return options && options.combine ? combineRanges(ranges) : ranges; + } + function combineRanges(ranges) { + var ordered = ranges.map(mapWithIndex).sort(sortByRangeStart); + for (var j = 0, i = 1; i < ordered.length; i++) { + var range = ordered[i]; + var current = ordered[j]; + if (range.start > current.end + 1) { + ordered[++j] = range; + } else if (range.end > current.end) { + current.end = range.end; + current.index = Math.min(current.index, range.index); + } + } + ordered.length = j + 1; + var combined = ordered.sort(sortByRangeIndex).map(mapWithoutIndex); + combined.type = ranges.type; + return combined; + } + function mapWithIndex(range, index) { + return { + start: range.start, + end: range.end, + index + }; + } + function mapWithoutIndex(range) { + return { + start: range.start, + end: range.end + }; + } + function sortByRangeIndex(a, b) { + return a.index - b.index; + } + function sortByRangeStart(a, b) { + return a.start - b.start; + } + } +}); + +// node_modules/express/lib/request.js +var require_request = __commonJS({ + "node_modules/express/lib/request.js"(exports2, module2) { + "use strict"; + var accepts = require_accepts(); + var isIP = require("net").isIP; + var typeis = require_type_is(); + var http3 = require("http"); + var fresh = require_fresh(); + var parseRange = require_range_parser(); + var parse = require_parseurl(); + var proxyaddr = require_proxy_addr(); + var req = Object.create(http3.IncomingMessage.prototype); + module2.exports = req; + req.get = req.header = function header(name) { + if (!name) { + throw new TypeError("name argument is required to req.get"); + } + if (typeof name !== "string") { + throw new TypeError("name must be a string to req.get"); + } + var lc = name.toLowerCase(); + switch (lc) { + case "referer": + case "referrer": + return this.headers.referrer || this.headers.referer; + default: + return this.headers[lc]; + } + }; + req.accepts = function() { + var accept = accepts(this); + return accept.types.apply(accept, arguments); + }; + req.acceptsEncodings = function() { + var accept = accepts(this); + return accept.encodings.apply(accept, arguments); + }; + req.acceptsCharsets = function() { + var accept = accepts(this); + return accept.charsets.apply(accept, arguments); + }; + req.acceptsLanguages = function() { + var accept = accepts(this); + return accept.languages.apply(accept, arguments); + }; + req.range = function range(size, options) { + var range2 = this.get("Range"); + if (!range2) + return; + return parseRange(size, range2, options); + }; + defineGetter(req, "query", function query() { + var queryparse = this.app.get("query parser fn"); + if (!queryparse) { + return Object.create(null); + } + var querystring = parse(this).query; + return queryparse(querystring); + }); + req.is = function is(types) { + var arr = types; + if (!Array.isArray(types)) { + arr = new Array(arguments.length); + for (var i = 0; i < arr.length; i++) { + arr[i] = arguments[i]; + } + } + return typeis(this, arr); + }; + defineGetter(req, "protocol", function protocol() { + var proto = this.connection.encrypted ? "https" : "http"; + var trust = this.app.get("trust proxy fn"); + if (!trust(this.connection.remoteAddress, 0)) { + return proto; + } + var header = this.get("X-Forwarded-Proto") || proto; + var index = header.indexOf(","); + return index !== -1 ? header.substring(0, index).trim() : header.trim(); + }); + defineGetter(req, "secure", function secure() { + return this.protocol === "https"; + }); + defineGetter(req, "ip", function ip() { + var trust = this.app.get("trust proxy fn"); + return proxyaddr(this, trust); + }); + defineGetter(req, "ips", function ips() { + var trust = this.app.get("trust proxy fn"); + var addrs = proxyaddr.all(this, trust); + addrs.reverse().pop(); + return addrs; + }); + defineGetter(req, "subdomains", function subdomains() { + var hostname = this.hostname; + if (!hostname) + return []; + var offset = this.app.get("subdomain offset"); + var subdomains2 = !isIP(hostname) ? hostname.split(".").reverse() : [hostname]; + return subdomains2.slice(offset); + }); + defineGetter(req, "path", function path2() { + return parse(this).pathname; + }); + defineGetter(req, "host", function host() { + var trust = this.app.get("trust proxy fn"); + var val = this.get("X-Forwarded-Host"); + if (!val || !trust(this.connection.remoteAddress, 0)) { + val = this.get("Host"); + } else if (val.indexOf(",") !== -1) { + val = val.substring(0, val.indexOf(",")).trimRight(); + } + return val || void 0; + }); + defineGetter(req, "hostname", function hostname() { + var host = this.host; + if (!host) + return; + var offset = host[0] === "[" ? host.indexOf("]") + 1 : 0; + var index = host.indexOf(":", offset); + return index !== -1 ? host.substring(0, index) : host; + }); + defineGetter(req, "fresh", function() { + var method = this.method; + var res = this.res; + var status = res.statusCode; + if (method !== "GET" && method !== "HEAD") + return false; + if (status >= 200 && status < 300 || status === 304) { + return fresh(this.headers, { + "etag": res.get("ETag"), + "last-modified": res.get("Last-Modified") + }); + } + return false; + }); + defineGetter(req, "stale", function stale() { + return !this.fresh; + }); + defineGetter(req, "xhr", function xhr() { + var val = this.get("X-Requested-With") || ""; + return val.toLowerCase() === "xmlhttprequest"; + }); + function defineGetter(obj, name, getter) { + Object.defineProperty(obj, name, { + configurable: true, + enumerable: true, + get: getter + }); + } + } +}); + +// node_modules/content-disposition/index.js +var require_content_disposition = __commonJS({ + "node_modules/content-disposition/index.js"(exports2, module2) { + "use strict"; + module2.exports = contentDisposition; + module2.exports.parse = parse; + var basename = require("path").basename; + var Buffer2 = require_safe_buffer().Buffer; + var ENCODE_URL_ATTR_CHAR_REGEXP = /[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g; + var HEX_ESCAPE_REGEXP = /%[0-9A-Fa-f]{2}/; + var HEX_ESCAPE_REPLACE_REGEXP = /%([0-9A-Fa-f]{2})/g; + var NON_LATIN1_REGEXP = /[^\x20-\x7e\xa0-\xff]/g; + var QESC_REGEXP = /\\([\u0000-\u007f])/g; + var QUOTE_REGEXP = /([\\"])/g; + var PARAM_REGEXP = /;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g; + var TEXT_REGEXP = /^[\x20-\x7e\x80-\xff]+$/; + var TOKEN_REGEXP = /^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/; + var EXT_VALUE_REGEXP = /^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/; + var DISPOSITION_TYPE_REGEXP = /^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/; + function contentDisposition(filename, options) { + var opts = options || {}; + var type = opts.type || "attachment"; + var params = createparams(filename, opts.fallback); + return format(new ContentDisposition(type, params)); + } + function createparams(filename, fallback) { + if (filename === void 0) { + return; + } + var params = {}; + if (typeof filename !== "string") { + throw new TypeError("filename must be a string"); + } + if (fallback === void 0) { + fallback = true; + } + if (typeof fallback !== "string" && typeof fallback !== "boolean") { + throw new TypeError("fallback must be a string or boolean"); + } + if (typeof fallback === "string" && NON_LATIN1_REGEXP.test(fallback)) { + throw new TypeError("fallback must be ISO-8859-1 string"); + } + var name = basename(filename); + var isQuotedString = TEXT_REGEXP.test(name); + var fallbackName = typeof fallback !== "string" ? fallback && getlatin1(name) : basename(fallback); + var hasFallback = typeof fallbackName === "string" && fallbackName !== name; + if (hasFallback || !isQuotedString || HEX_ESCAPE_REGEXP.test(name)) { + params["filename*"] = name; + } + if (isQuotedString || hasFallback) { + params.filename = hasFallback ? fallbackName : name; + } + return params; + } + function format(obj) { + var parameters = obj.parameters; + var type = obj.type; + if (!type || typeof type !== "string" || !TOKEN_REGEXP.test(type)) { + throw new TypeError("invalid type"); + } + var string = String(type).toLowerCase(); + if (parameters && typeof parameters === "object") { + var param; + var params = Object.keys(parameters).sort(); + for (var i = 0; i < params.length; i++) { + param = params[i]; + var val = param.substr(-1) === "*" ? ustring(parameters[param]) : qstring(parameters[param]); + string += "; " + param + "=" + val; + } + } + return string; + } + function decodefield(str) { + var match = EXT_VALUE_REGEXP.exec(str); + if (!match) { + throw new TypeError("invalid extended field value"); + } + var charset = match[1].toLowerCase(); + var encoded = match[2]; + var value; + var binary = encoded.replace(HEX_ESCAPE_REPLACE_REGEXP, pdecode); + switch (charset) { + case "iso-8859-1": + value = getlatin1(binary); + break; + case "utf-8": + value = Buffer2.from(binary, "binary").toString("utf8"); + break; + default: + throw new TypeError("unsupported charset in extended field"); + } + return value; + } + function getlatin1(val) { + return String(val).replace(NON_LATIN1_REGEXP, "?"); + } + function parse(string) { + if (!string || typeof string !== "string") { + throw new TypeError("argument string is required"); + } + var match = DISPOSITION_TYPE_REGEXP.exec(string); + if (!match) { + throw new TypeError("invalid type format"); + } + var index = match[0].length; + var type = match[1].toLowerCase(); + var key; + var names = []; + var params = {}; + var value; + index = PARAM_REGEXP.lastIndex = match[0].substr(-1) === ";" ? index - 1 : index; + while (match = PARAM_REGEXP.exec(string)) { + if (match.index !== index) { + throw new TypeError("invalid parameter format"); + } + index += match[0].length; + key = match[1].toLowerCase(); + value = match[2]; + if (names.indexOf(key) !== -1) { + throw new TypeError("invalid duplicate parameter"); + } + names.push(key); + if (key.indexOf("*") + 1 === key.length) { + key = key.slice(0, -1); + value = decodefield(value); + params[key] = value; + continue; + } + if (typeof params[key] === "string") { + continue; + } + if (value[0] === '"') { + value = value.substr(1, value.length - 2).replace(QESC_REGEXP, "$1"); + } + params[key] = value; + } + if (index !== -1 && index !== string.length) { + throw new TypeError("invalid parameter format"); + } + return new ContentDisposition(type, params); + } + function pdecode(str, hex) { + return String.fromCharCode(parseInt(hex, 16)); + } + function pencode(char) { + return "%" + String(char).charCodeAt(0).toString(16).toUpperCase(); + } + function qstring(val) { + var str = String(val); + return '"' + str.replace(QUOTE_REGEXP, "\\$1") + '"'; + } + function ustring(val) { + var str = String(val); + var encoded = encodeURIComponent(str).replace(ENCODE_URL_ATTR_CHAR_REGEXP, pencode); + return "UTF-8''" + encoded; + } + function ContentDisposition(type, parameters) { + this.type = type; + this.parameters = parameters; + } + } +}); + +// node_modules/path-is-absolute/index.js +var require_path_is_absolute = __commonJS({ + "node_modules/path-is-absolute/index.js"(exports2, module2) { + "use strict"; + function posix(path2) { + return path2.charAt(0) === "/"; + } + function win32(path2) { + var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/; + var result = splitDeviceRe.exec(path2); + var device = result[1] || ""; + var isUnc = Boolean(device && device.charAt(1) !== ":"); + return Boolean(result[2] || isUnc); + } + module2.exports = process.platform === "win32" ? win32 : posix; + module2.exports.posix = posix; + module2.exports.win32 = win32; + } +}); + +// node_modules/cookie-signature/index.js +var require_cookie_signature = __commonJS({ + "node_modules/cookie-signature/index.js"(exports2) { + var crypto = require("crypto"); + exports2.sign = function(val, secret) { + if (typeof val != "string") + throw new TypeError("Cookie value must be provided as a string."); + if (typeof secret != "string") + throw new TypeError("Secret string must be provided."); + return val + "." + crypto.createHmac("sha256", secret).update(val).digest("base64").replace(/\=+$/, ""); + }; + exports2.unsign = function(val, secret) { + if (typeof val != "string") + throw new TypeError("Signed cookie string must be provided."); + if (typeof secret != "string") + throw new TypeError("Secret string must be provided."); + var str = val.slice(0, val.lastIndexOf(".")), mac = exports2.sign(str, secret); + return sha1(mac) == sha1(val) ? str : false; + }; + function sha1(str) { + return crypto.createHash("sha1").update(str).digest("hex"); + } + } +}); + +// node_modules/cookie/index.js +var require_cookie = __commonJS({ + "node_modules/cookie/index.js"(exports2) { + "use strict"; + exports2.parse = parse; + exports2.serialize = serialize; + var decode = decodeURIComponent; + var encode = encodeURIComponent; + var pairSplitRegExp = /; */; + var fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/; + function parse(str, options) { + if (typeof str !== "string") { + throw new TypeError("argument str must be a string"); + } + var obj = {}; + var opt = options || {}; + var pairs = str.split(pairSplitRegExp); + var dec = opt.decode || decode; + for (var i = 0; i < pairs.length; i++) { + var pair = pairs[i]; + var eq_idx = pair.indexOf("="); + if (eq_idx < 0) { + continue; + } + var key = pair.substr(0, eq_idx).trim(); + var val = pair.substr(++eq_idx, pair.length).trim(); + if (val[0] == '"') { + val = val.slice(1, -1); + } + if (obj[key] == void 0) { + obj[key] = tryDecode(val, dec); + } + } + return obj; + } + function serialize(name, val, options) { + var opt = options || {}; + var enc = opt.encode || encode; + if (typeof enc !== "function") { + throw new TypeError("option encode is invalid"); + } + if (!fieldContentRegExp.test(name)) { + throw new TypeError("argument name is invalid"); + } + var value = enc(val); + if (value && !fieldContentRegExp.test(value)) { + throw new TypeError("argument val is invalid"); + } + var str = name + "=" + value; + if (opt.maxAge != null) { + var maxAge = opt.maxAge - 0; + if (isNaN(maxAge) || !isFinite(maxAge)) { + throw new TypeError("option maxAge is invalid"); + } + str += "; Max-Age=" + Math.floor(maxAge); + } + if (opt.domain) { + if (!fieldContentRegExp.test(opt.domain)) { + throw new TypeError("option domain is invalid"); + } + str += "; Domain=" + opt.domain; + } + if (opt.path) { + if (!fieldContentRegExp.test(opt.path)) { + throw new TypeError("option path is invalid"); + } + str += "; Path=" + opt.path; + } + if (opt.expires) { + if (typeof opt.expires.toUTCString !== "function") { + throw new TypeError("option expires is invalid"); + } + str += "; Expires=" + opt.expires.toUTCString(); + } + if (opt.httpOnly) { + str += "; HttpOnly"; + } + if (opt.secure) { + str += "; Secure"; + } + if (opt.sameSite) { + var sameSite = typeof opt.sameSite === "string" ? opt.sameSite.toLowerCase() : opt.sameSite; + switch (sameSite) { + case true: + str += "; SameSite=Strict"; + break; + case "lax": + str += "; SameSite=Lax"; + break; + case "strict": + str += "; SameSite=Strict"; + break; + case "none": + str += "; SameSite=None"; + break; + default: + throw new TypeError("option sameSite is invalid"); + } + } + return str; + } + function tryDecode(str, decode2) { + try { + return decode2(str); + } catch (e) { + return str; + } + } + } +}); + +// node_modules/send/node_modules/debug/node_modules/ms/index.js +var require_ms4 = __commonJS({ + "node_modules/send/node_modules/debug/node_modules/ms/index.js"(exports2, module2) { + var s = 1e3; + var m = s * 60; + var h = m * 60; + var d = h * 24; + var y = d * 365.25; + module2.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === "string" && val.length > 0) { + return parse(val); + } else if (type === "number" && isNaN(val) === false) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val)); + }; + function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || "ms").toLowerCase(); + switch (type) { + case "years": + case "year": + case "yrs": + case "yr": + case "y": + return n * y; + case "days": + case "day": + case "d": + return n * d; + case "hours": + case "hour": + case "hrs": + case "hr": + case "h": + return n * h; + case "minutes": + case "minute": + case "mins": + case "min": + case "m": + return n * m; + case "seconds": + case "second": + case "secs": + case "sec": + case "s": + return n * s; + case "milliseconds": + case "millisecond": + case "msecs": + case "msec": + case "ms": + return n; + default: + return void 0; + } + } + function fmtShort(ms) { + if (ms >= d) { + return Math.round(ms / d) + "d"; + } + if (ms >= h) { + return Math.round(ms / h) + "h"; + } + if (ms >= m) { + return Math.round(ms / m) + "m"; + } + if (ms >= s) { + return Math.round(ms / s) + "s"; + } + return ms + "ms"; + } + function fmtLong(ms) { + return plural(ms, d, "day") || plural(ms, h, "hour") || plural(ms, m, "minute") || plural(ms, s, "second") || ms + " ms"; + } + function plural(ms, n, name) { + if (ms < n) { + return; + } + if (ms < n * 1.5) { + return Math.floor(ms / n) + " " + name; + } + return Math.ceil(ms / n) + " " + name + "s"; + } + } +}); + +// node_modules/send/node_modules/debug/src/debug.js +var require_debug4 = __commonJS({ + "node_modules/send/node_modules/debug/src/debug.js"(exports2, module2) { + exports2 = module2.exports = createDebug.debug = createDebug["default"] = createDebug; + exports2.coerce = coerce; + exports2.disable = disable; + exports2.enable = enable; + exports2.enabled = enabled; + exports2.humanize = require_ms4(); + exports2.instances = []; + exports2.names = []; + exports2.skips = []; + exports2.formatters = {}; + function selectColor(namespace) { + var hash = 0, i; + for (i in namespace) { + hash = (hash << 5) - hash + namespace.charCodeAt(i); + hash |= 0; + } + return exports2.colors[Math.abs(hash) % exports2.colors.length]; + } + function createDebug(namespace) { + var prevTime; + function debug() { + if (!debug.enabled) + return; + var self2 = debug; + var curr = +new Date(); + var ms = curr - (prevTime || curr); + self2.diff = ms; + self2.prev = prevTime; + self2.curr = curr; + prevTime = curr; + var args2 = new Array(arguments.length); + for (var i = 0; i < args2.length; i++) { + args2[i] = arguments[i]; + } + args2[0] = exports2.coerce(args2[0]); + if (typeof args2[0] !== "string") { + args2.unshift("%O"); + } + var index = 0; + args2[0] = args2[0].replace(/%([a-zA-Z%])/g, function(match, format) { + if (match === "%%") + return match; + index++; + var formatter = exports2.formatters[format]; + if (typeof formatter === "function") { + var val = args2[index]; + match = formatter.call(self2, val); + args2.splice(index, 1); + index--; + } + return match; + }); + exports2.formatArgs.call(self2, args2); + var logFn = debug.log || exports2.log || console.log.bind(console); + logFn.apply(self2, args2); + } + debug.namespace = namespace; + debug.enabled = exports2.enabled(namespace); + debug.useColors = exports2.useColors(); + debug.color = selectColor(namespace); + debug.destroy = destroy; + if (typeof exports2.init === "function") { + exports2.init(debug); + } + exports2.instances.push(debug); + return debug; + } + function destroy() { + var index = exports2.instances.indexOf(this); + if (index !== -1) { + exports2.instances.splice(index, 1); + return true; + } else { + return false; + } + } + function enable(namespaces) { + exports2.save(namespaces); + exports2.names = []; + exports2.skips = []; + var i; + var split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/); + var len = split.length; + for (i = 0; i < len; i++) { + if (!split[i]) + continue; + namespaces = split[i].replace(/\*/g, ".*?"); + if (namespaces[0] === "-") { + exports2.skips.push(new RegExp("^" + namespaces.substr(1) + "$")); + } else { + exports2.names.push(new RegExp("^" + namespaces + "$")); + } + } + for (i = 0; i < exports2.instances.length; i++) { + var instance = exports2.instances[i]; + instance.enabled = exports2.enabled(instance.namespace); + } + } + function disable() { + exports2.enable(""); + } + function enabled(name) { + if (name[name.length - 1] === "*") { + return true; + } + var i, len; + for (i = 0, len = exports2.skips.length; i < len; i++) { + if (exports2.skips[i].test(name)) { + return false; + } + } + for (i = 0, len = exports2.names.length; i < len; i++) { + if (exports2.names[i].test(name)) { + return true; + } + } + return false; + } + function coerce(val) { + if (val instanceof Error) + return val.stack || val.message; + return val; + } + } +}); + +// node_modules/send/node_modules/debug/src/browser.js +var require_browser4 = __commonJS({ + "node_modules/send/node_modules/debug/src/browser.js"(exports2, module2) { + exports2 = module2.exports = require_debug4(); + exports2.log = log2; + exports2.formatArgs = formatArgs; + exports2.save = save; + exports2.load = load; + exports2.useColors = useColors; + exports2.storage = typeof chrome != "undefined" && typeof chrome.storage != "undefined" ? chrome.storage.local : localstorage(); + exports2.colors = [ + "#0000CC", + "#0000FF", + "#0033CC", + "#0033FF", + "#0066CC", + "#0066FF", + "#0099CC", + "#0099FF", + "#00CC00", + "#00CC33", + "#00CC66", + "#00CC99", + "#00CCCC", + "#00CCFF", + "#3300CC", + "#3300FF", + "#3333CC", + "#3333FF", + "#3366CC", + "#3366FF", + "#3399CC", + "#3399FF", + "#33CC00", + "#33CC33", + "#33CC66", + "#33CC99", + "#33CCCC", + "#33CCFF", + "#6600CC", + "#6600FF", + "#6633CC", + "#6633FF", + "#66CC00", + "#66CC33", + "#9900CC", + "#9900FF", + "#9933CC", + "#9933FF", + "#99CC00", + "#99CC33", + "#CC0000", + "#CC0033", + "#CC0066", + "#CC0099", + "#CC00CC", + "#CC00FF", + "#CC3300", + "#CC3333", + "#CC3366", + "#CC3399", + "#CC33CC", + "#CC33FF", + "#CC6600", + "#CC6633", + "#CC9900", + "#CC9933", + "#CCCC00", + "#CCCC33", + "#FF0000", + "#FF0033", + "#FF0066", + "#FF0099", + "#FF00CC", + "#FF00FF", + "#FF3300", + "#FF3333", + "#FF3366", + "#FF3399", + "#FF33CC", + "#FF33FF", + "#FF6600", + "#FF6633", + "#FF9900", + "#FF9933", + "#FFCC00", + "#FFCC33" + ]; + function useColors() { + if (typeof window !== "undefined" && window.process && window.process.type === "renderer") { + return true; + } + if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } + return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); + } + exports2.formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (err) { + return "[UnexpectedJSONParseError]: " + err.message; + } + }; + function formatArgs(args2) { + var useColors2 = this.useColors; + args2[0] = (useColors2 ? "%c" : "") + this.namespace + (useColors2 ? " %c" : " ") + args2[0] + (useColors2 ? "%c " : " ") + "+" + exports2.humanize(this.diff); + if (!useColors2) + return; + var c = "color: " + this.color; + args2.splice(1, 0, c, "color: inherit"); + var index = 0; + var lastC = 0; + args2[0].replace(/%[a-zA-Z%]/g, function(match) { + if (match === "%%") + return; + index++; + if (match === "%c") { + lastC = index; + } + }); + args2.splice(lastC, 0, c); + } + function log2() { + return typeof console === "object" && console.log && Function.prototype.apply.call(console.log, console, arguments); + } + function save(namespaces) { + try { + if (namespaces == null) { + exports2.storage.removeItem("debug"); + } else { + exports2.storage.debug = namespaces; + } + } catch (e) { + } + } + function load() { + var r; + try { + r = exports2.storage.debug; + } catch (e) { + } + if (!r && typeof process !== "undefined" && "env" in process) { + r = process.env.DEBUG; + } + return r; + } + exports2.enable(load()); + function localstorage() { + try { + return window.localStorage; + } catch (e) { + } + } + } +}); + +// node_modules/send/node_modules/debug/src/node.js +var require_node4 = __commonJS({ + "node_modules/send/node_modules/debug/src/node.js"(exports2, module2) { + var tty = require("tty"); + var util = require("util"); + exports2 = module2.exports = require_debug4(); + exports2.init = init; + exports2.log = log2; + exports2.formatArgs = formatArgs; + exports2.save = save; + exports2.load = load; + exports2.useColors = useColors; + exports2.colors = [6, 2, 3, 4, 5, 1]; + try { + supportsColor = require_supports_color(); + if (supportsColor && supportsColor.level >= 2) { + exports2.colors = [ + 20, + 21, + 26, + 27, + 32, + 33, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 56, + 57, + 62, + 63, + 68, + 69, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 92, + 93, + 98, + 99, + 112, + 113, + 128, + 129, + 134, + 135, + 148, + 149, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 178, + 179, + 184, + 185, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 214, + 215, + 220, + 221 + ]; + } + } catch (err) { + } + var supportsColor; + exports2.inspectOpts = Object.keys(process.env).filter(function(key) { + return /^debug_/i.test(key); + }).reduce(function(obj, key) { + var prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, function(_, k) { + return k.toUpperCase(); + }); + var val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) + val = true; + else if (/^(no|off|false|disabled)$/i.test(val)) + val = false; + else if (val === "null") + val = null; + else + val = Number(val); + obj[prop] = val; + return obj; + }, {}); + function useColors() { + return "colors" in exports2.inspectOpts ? Boolean(exports2.inspectOpts.colors) : tty.isatty(process.stderr.fd); + } + exports2.formatters.o = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts).split("\n").map(function(str) { + return str.trim(); + }).join(" "); + }; + exports2.formatters.O = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); + }; + function formatArgs(args2) { + var name = this.namespace; + var useColors2 = this.useColors; + if (useColors2) { + var c = this.color; + var colorCode = "[3" + (c < 8 ? c : "8;5;" + c); + var prefix = " " + colorCode + ";1m" + name + " "; + args2[0] = prefix + args2[0].split("\n").join("\n" + prefix); + args2.push(colorCode + "m+" + exports2.humanize(this.diff) + ""); + } else { + args2[0] = getDate() + name + " " + args2[0]; + } + } + function getDate() { + if (exports2.inspectOpts.hideDate) { + return ""; + } else { + return new Date().toISOString() + " "; + } + } + function log2() { + return process.stderr.write(util.format.apply(util, arguments) + "\n"); + } + function save(namespaces) { + if (namespaces == null) { + delete process.env.DEBUG; + } else { + process.env.DEBUG = namespaces; + } + } + function load() { + return process.env.DEBUG; + } + function init(debug) { + debug.inspectOpts = {}; + var keys = Object.keys(exports2.inspectOpts); + for (var i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports2.inspectOpts[keys[i]]; + } + } + exports2.enable(load()); + } +}); + +// node_modules/send/node_modules/debug/src/index.js +var require_src4 = __commonJS({ + "node_modules/send/node_modules/debug/src/index.js"(exports2, module2) { + if (typeof process === "undefined" || process.type === "renderer") { + module2.exports = require_browser4(); + } else { + module2.exports = require_node4(); + } + } +}); + +// node_modules/destroy/index.js +var require_destroy = __commonJS({ + "node_modules/destroy/index.js"(exports2, module2) { + "use strict"; + var ReadStream = require("fs").ReadStream; + var Stream = require("stream"); + module2.exports = destroy; + function destroy(stream) { + if (stream instanceof ReadStream) { + return destroyReadStream(stream); + } + if (!(stream instanceof Stream)) { + return stream; + } + if (typeof stream.destroy === "function") { + stream.destroy(); + } + return stream; + } + function destroyReadStream(stream) { + stream.destroy(); + if (typeof stream.close === "function") { + stream.on("open", onOpenClose); + } + return stream; + } + function onOpenClose() { + if (typeof this.fd === "number") { + this.close(); + } + } + } +}); + +// node_modules/send/node_modules/ms/index.js +var require_ms5 = __commonJS({ + "node_modules/send/node_modules/ms/index.js"(exports2, module2) { + var s = 1e3; + var m = s * 60; + var h = m * 60; + var d = h * 24; + var w = d * 7; + var y = d * 365.25; + module2.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === "string" && val.length > 0) { + return parse(val); + } else if (type === "number" && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val)); + }; + function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || "ms").toLowerCase(); + switch (type) { + case "years": + case "year": + case "yrs": + case "yr": + case "y": + return n * y; + case "weeks": + case "week": + case "w": + return n * w; + case "days": + case "day": + case "d": + return n * d; + case "hours": + case "hour": + case "hrs": + case "hr": + case "h": + return n * h; + case "minutes": + case "minute": + case "mins": + case "min": + case "m": + return n * m; + case "seconds": + case "second": + case "secs": + case "sec": + case "s": + return n * s; + case "milliseconds": + case "millisecond": + case "msecs": + case "msec": + case "ms": + return n; + default: + return void 0; + } + } + function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + "d"; + } + if (msAbs >= h) { + return Math.round(ms / h) + "h"; + } + if (msAbs >= m) { + return Math.round(ms / m) + "m"; + } + if (msAbs >= s) { + return Math.round(ms / s) + "s"; + } + return ms + "ms"; + } + function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, "day"); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, "hour"); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, "minute"); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, "second"); + } + return ms + " ms"; + } + function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + " " + name + (isPlural ? "s" : ""); + } + } +}); + +// node_modules/send/index.js +var require_send = __commonJS({ + "node_modules/send/index.js"(exports2, module2) { + "use strict"; + var createError = require_http_errors(); + var debug = require_src4()("send"); + var destroy = require_destroy(); + var encodeUrl = require_encodeurl(); + var escapeHtml = require_escape_html(); + var etag = require_etag(); + var fresh = require_fresh(); + var fs = require("fs"); + var mime2 = require_mime_types(); + var ms = require_ms5(); + var onFinished = require_on_finished(); + var parseRange = require_range_parser(); + var path2 = require("path"); + var statuses = require_statuses(); + var Stream = require("stream"); + var util = require("util"); + var extname = path2.extname; + var join = path2.join; + var normalize = path2.normalize; + var resolve = path2.resolve; + var sep = path2.sep; + var BYTES_RANGE_REGEXP = /^ *bytes=/; + var MAX_MAXAGE = 60 * 60 * 24 * 365 * 1e3; + var UP_PATH_REGEXP = /(?:^|[\\/])\.\.(?:[\\/]|$)/; + module2.exports = send; + function send(req, path3, options) { + return new SendStream(req, path3, options); + } + function SendStream(req, path3, options) { + Stream.call(this); + var opts = options || {}; + this.options = opts; + this.path = path3; + this.req = req; + this._acceptRanges = opts.acceptRanges !== void 0 ? Boolean(opts.acceptRanges) : true; + this._cacheControl = opts.cacheControl !== void 0 ? Boolean(opts.cacheControl) : true; + this._etag = opts.etag !== void 0 ? Boolean(opts.etag) : true; + this._dotfiles = opts.dotfiles !== void 0 ? opts.dotfiles : "ignore"; + if (this._dotfiles !== "ignore" && this._dotfiles !== "allow" && this._dotfiles !== "deny") { + throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"'); + } + this._extensions = opts.extensions !== void 0 ? normalizeList(opts.extensions, "extensions option") : []; + this._immutable = opts.immutable !== void 0 ? Boolean(opts.immutable) : false; + this._index = opts.index !== void 0 ? normalizeList(opts.index, "index option") : ["index.html"]; + this._lastModified = opts.lastModified !== void 0 ? Boolean(opts.lastModified) : true; + this._maxage = opts.maxAge || opts.maxage; + this._maxage = typeof this._maxage === "string" ? ms(this._maxage) : Number(this._maxage); + this._maxage = !isNaN(this._maxage) ? Math.min(Math.max(0, this._maxage), MAX_MAXAGE) : 0; + this._root = opts.root ? resolve(opts.root) : null; + } + util.inherits(SendStream, Stream); + SendStream.prototype.error = function error(status, err) { + if (hasListeners(this, "error")) { + return this.emit("error", createError(status, err, { + expose: false + })); + } + var res = this.res; + var msg = statuses[status] || String(status); + var doc = createHtmlDocument("Error", escapeHtml(msg)); + clearHeaders(res); + if (err && err.headers) { + setHeaders(res, err.headers); + } + res.statusCode = status; + res.setHeader("Content-Type", "text/html; charset=UTF-8"); + res.setHeader("Content-Length", Buffer.byteLength(doc)); + res.setHeader("Content-Security-Policy", "default-src 'none'"); + res.setHeader("X-Content-Type-Options", "nosniff"); + res.end(doc); + }; + SendStream.prototype.hasTrailingSlash = function hasTrailingSlash() { + return this.path[this.path.length - 1] === "/"; + }; + SendStream.prototype.isConditionalGET = function isConditionalGET() { + return this.req.headers["if-match"] || this.req.headers["if-unmodified-since"] || this.req.headers["if-none-match"] || this.req.headers["if-modified-since"]; + }; + SendStream.prototype.isPreconditionFailure = function isPreconditionFailure() { + var req = this.req; + var res = this.res; + var match = req.headers["if-match"]; + if (match) { + var etag2 = res.getHeader("ETag"); + return !etag2 || match !== "*" && parseTokenList(match).every(function(match2) { + return match2 !== etag2 && match2 !== "W/" + etag2 && "W/" + match2 !== etag2; + }); + } + var unmodifiedSince = parseHttpDate(req.headers["if-unmodified-since"]); + if (!isNaN(unmodifiedSince)) { + var lastModified = parseHttpDate(res.getHeader("Last-Modified")); + return isNaN(lastModified) || lastModified > unmodifiedSince; + } + return false; + }; + SendStream.prototype.removeContentHeaderFields = function removeContentHeaderFields() { + var res = this.res; + var headers = getHeaderNames(res); + for (var i = 0; i < headers.length; i++) { + var header = headers[i]; + if (header.substr(0, 8) === "content-" && header !== "content-location") { + res.removeHeader(header); + } + } + }; + SendStream.prototype.notModified = function notModified() { + var res = this.res; + debug("not modified"); + this.removeContentHeaderFields(); + res.statusCode = 304; + res.end(); + }; + SendStream.prototype.headersAlreadySent = function headersAlreadySent() { + var err = new Error("Can't set headers after they are sent."); + debug("headers already sent"); + this.error(500, err); + }; + SendStream.prototype.isCachable = function isCachable() { + var statusCode = this.res.statusCode; + return statusCode >= 200 && statusCode < 300 || statusCode === 304; + }; + SendStream.prototype.onStatError = function onStatError(error) { + switch (error.code) { + case "ENAMETOOLONG": + case "ENOENT": + case "ENOTDIR": + this.error(404, error); + break; + default: + this.error(500, error); + break; + } + }; + SendStream.prototype.isFresh = function isFresh() { + return fresh(this.req.headers, { + etag: this.res.getHeader("ETag"), + "last-modified": this.res.getHeader("Last-Modified") + }); + }; + SendStream.prototype.isRangeFresh = function isRangeFresh() { + var ifRange = this.req.headers["if-range"]; + if (!ifRange) { + return true; + } + if (ifRange.indexOf('"') !== -1) { + var etag2 = this.res.getHeader("ETag"); + return Boolean(etag2 && ifRange.indexOf(etag2) !== -1); + } + var lastModified = this.res.getHeader("Last-Modified"); + return parseHttpDate(lastModified) <= parseHttpDate(ifRange); + }; + SendStream.prototype.redirect = function redirect(path3) { + var res = this.res; + if (hasListeners(this, "directory")) { + this.emit("directory", res, path3); + return; + } + if (this.hasTrailingSlash()) { + this.error(403); + return; + } + var loc = encodeUrl(collapseLeadingSlashes(this.path + "/")); + var doc = createHtmlDocument("Redirecting", 'Redirecting to ' + escapeHtml(loc) + ""); + res.statusCode = 301; + res.setHeader("Content-Type", "text/html; charset=UTF-8"); + res.setHeader("Content-Length", Buffer.byteLength(doc)); + res.setHeader("Content-Security-Policy", "default-src 'none'"); + res.setHeader("X-Content-Type-Options", "nosniff"); + res.setHeader("Location", loc); + res.end(doc); + }; + SendStream.prototype.pipe = function pipe(res) { + var root = this._root; + this.res = res; + var path3 = decode(this.path); + if (path3 === -1) { + this.error(400); + return res; + } + if (~path3.indexOf("\0")) { + this.error(400); + return res; + } + var parts; + if (root !== null) { + if (path3) { + path3 = normalize("." + sep + path3); + } + if (UP_PATH_REGEXP.test(path3)) { + debug('malicious path "%s"', path3); + this.error(403); + return res; + } + parts = path3.split(sep); + path3 = normalize(join(root, path3)); + } else { + if (UP_PATH_REGEXP.test(path3)) { + debug('malicious path "%s"', path3); + this.error(403); + return res; + } + parts = normalize(path3).split(sep); + path3 = resolve(path3); + } + if (containsDotFile(parts)) { + debug('%s dotfile "%s"', this._dotfiles, path3); + switch (this._dotfiles) { + case "allow": + break; + case "deny": + this.error(403); + return res; + case "ignore": + default: + this.error(404); + return res; + } + } + if (this._index.length && this.hasTrailingSlash()) { + this.sendIndex(path3); + return res; + } + this.sendFile(path3); + return res; + }; + SendStream.prototype.send = function send2(path3, stat) { + var len = stat.size; + var options = this.options; + var opts = {}; + var res = this.res; + var req = this.req; + var ranges = req.headers.range; + var offset = options.start || 0; + if (res.headersSent) { + this.headersAlreadySent(); + return; + } + debug('pipe "%s"', path3); + this.setHeader(path3, stat); + this.type(path3); + if (this.isConditionalGET()) { + if (this.isPreconditionFailure()) { + this.error(412); + return; + } + if (this.isCachable() && this.isFresh()) { + this.notModified(); + return; + } + } + len = Math.max(0, len - offset); + if (options.end !== void 0) { + var bytes = options.end - offset + 1; + if (len > bytes) + len = bytes; + } + if (this._acceptRanges && BYTES_RANGE_REGEXP.test(ranges)) { + ranges = parseRange(len, ranges, { + combine: true + }); + if (!this.isRangeFresh()) { + debug("range stale"); + ranges = -2; + } + if (ranges === -1) { + debug("range unsatisfiable"); + res.setHeader("Content-Range", contentRange("bytes", len)); + return this.error(416, { + headers: { "Content-Range": res.getHeader("Content-Range") } + }); + } + if (ranges !== -2 && ranges.length === 1) { + debug("range %j", ranges); + res.statusCode = 206; + res.setHeader("Content-Range", contentRange("bytes", len, ranges[0])); + offset += ranges[0].start; + len = ranges[0].end - ranges[0].start + 1; + } + } + for (var prop in options) { + opts[prop] = options[prop]; + } + opts.start = offset; + opts.end = Math.max(offset, offset + len - 1); + res.setHeader("Content-Length", len); + if (req.method === "HEAD") { + res.end(); + return; + } + this.stream(path3, opts); + }; + SendStream.prototype.sendFile = function sendFile(path3) { + var i = 0; + var self2 = this; + debug('stat "%s"', path3); + fs.stat(path3, function onstat(err, stat) { + if (err && err.code === "ENOENT" && !extname(path3) && path3[path3.length - 1] !== sep) { + return next(err); + } + if (err) + return self2.onStatError(err); + if (stat.isDirectory()) + return self2.redirect(path3); + self2.emit("file", path3, stat); + self2.send(path3, stat); + }); + function next(err) { + if (self2._extensions.length <= i) { + return err ? self2.onStatError(err) : self2.error(404); + } + var p = path3 + "." + self2._extensions[i++]; + debug('stat "%s"', p); + fs.stat(p, function(err2, stat) { + if (err2) + return next(err2); + if (stat.isDirectory()) + return next(); + self2.emit("file", p, stat); + self2.send(p, stat); + }); + } + }; + SendStream.prototype.sendIndex = function sendIndex(path3) { + var i = -1; + var self2 = this; + function next(err) { + if (++i >= self2._index.length) { + if (err) + return self2.onStatError(err); + return self2.error(404); + } + var p = join(path3, self2._index[i]); + debug('stat "%s"', p); + fs.stat(p, function(err2, stat) { + if (err2) + return next(err2); + if (stat.isDirectory()) + return next(); + self2.emit("file", p, stat); + self2.send(p, stat); + }); + } + next(); + }; + SendStream.prototype.stream = function stream(path3, options) { + var finished = false; + var self2 = this; + var res = this.res; + var stream2 = fs.createReadStream(path3, options); + this.emit("stream", stream2); + stream2.pipe(res); + onFinished(res, function onfinished() { + finished = true; + destroy(stream2); + }); + stream2.on("error", function onerror(err) { + if (finished) + return; + finished = true; + destroy(stream2); + self2.onStatError(err); + }); + stream2.on("end", function onend() { + self2.emit("end"); + }); + }; + SendStream.prototype.type = function type(path3) { + var res = this.res; + if (res.getHeader("Content-Type")) + return; + var ext = extname(path3); + var type2 = mime2.contentType(ext) || "application/octet-stream"; + debug("content-type %s", type2); + res.setHeader("Content-Type", type2); + }; + SendStream.prototype.setHeader = function setHeader(path3, stat) { + var res = this.res; + this.emit("headers", res, path3, stat); + if (this._acceptRanges && !res.getHeader("Accept-Ranges")) { + debug("accept ranges"); + res.setHeader("Accept-Ranges", "bytes"); + } + if (this._cacheControl && !res.getHeader("Cache-Control")) { + var cacheControl = "public, max-age=" + Math.floor(this._maxage / 1e3); + if (this._immutable) { + cacheControl += ", immutable"; + } + debug("cache-control %s", cacheControl); + res.setHeader("Cache-Control", cacheControl); + } + if (this._lastModified && !res.getHeader("Last-Modified")) { + var modified = stat.mtime.toUTCString(); + debug("modified %s", modified); + res.setHeader("Last-Modified", modified); + } + if (this._etag && !res.getHeader("ETag")) { + var val = etag(stat); + debug("etag %s", val); + res.setHeader("ETag", val); + } + }; + function clearHeaders(res) { + var headers = getHeaderNames(res); + for (var i = 0; i < headers.length; i++) { + res.removeHeader(headers[i]); + } + } + function collapseLeadingSlashes(str) { + for (var i = 0; i < str.length; i++) { + if (str[i] !== "/") { + break; + } + } + return i > 1 ? "/" + str.substr(i) : str; + } + function containsDotFile(parts) { + for (var i = 0; i < parts.length; i++) { + var part = parts[i]; + if (part.length > 1 && part[0] === ".") { + return true; + } + } + return false; + } + function contentRange(type, size, range) { + return type + " " + (range ? range.start + "-" + range.end : "*") + "/" + size; + } + function createHtmlDocument(title, body) { + return '\n\n\n\n' + title + "\n\n\n
" + body + "
\n\n\n"; + } + function decode(path3) { + try { + return decodeURIComponent(path3); + } catch (err) { + return -1; + } + } + function getHeaderNames(res) { + return typeof res.getHeaderNames !== "function" ? Object.keys(res._headers || {}) : res.getHeaderNames(); + } + function hasListeners(emitter, type) { + var count = typeof emitter.listenerCount !== "function" ? emitter.listeners(type).length : emitter.listenerCount(type); + return count > 0; + } + function normalizeList(val, name) { + var list = [].concat(val || []); + for (var i = 0; i < list.length; i++) { + if (typeof list[i] !== "string") { + throw new TypeError(name + " must be array of strings or false"); + } + } + return list; + } + function parseHttpDate(date) { + var timestamp = date && Date.parse(date); + return typeof timestamp === "number" ? timestamp : NaN; + } + function parseTokenList(str) { + var end = 0; + var list = []; + var start = 0; + for (var i = 0, len = str.length; i < len; i++) { + switch (str.charCodeAt(i)) { + case 32: + if (start === end) { + start = end = i + 1; + } + break; + case 44: + if (start !== end) { + list.push(str.substring(start, end)); + } + start = end = i + 1; + break; + default: + end = i + 1; + break; + } + } + if (start !== end) { + list.push(str.substring(start, end)); + } + return list; + } + function setHeaders(res, headers) { + var keys = Object.keys(headers); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + res.setHeader(key, headers[key]); + } + } + } +}); + +// node_modules/vary/index.js +var require_vary = __commonJS({ + "node_modules/vary/index.js"(exports2, module2) { + "use strict"; + module2.exports = vary; + module2.exports.append = append; + var FIELD_NAME_REGEXP = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/; + function append(header, field) { + if (typeof header !== "string") { + throw new TypeError("header argument is required"); + } + if (!field) { + throw new TypeError("field argument is required"); + } + var fields = !Array.isArray(field) ? parse(String(field)) : field; + for (var j = 0; j < fields.length; j++) { + if (!FIELD_NAME_REGEXP.test(fields[j])) { + throw new TypeError("field argument contains an invalid header name"); + } + } + if (header === "*") { + return header; + } + var val = header; + var vals = parse(header.toLowerCase()); + if (fields.indexOf("*") !== -1 || vals.indexOf("*") !== -1) { + return "*"; + } + for (var i = 0; i < fields.length; i++) { + var fld = fields[i].toLowerCase(); + if (vals.indexOf(fld) === -1) { + vals.push(fld); + val = val ? val + ", " + fields[i] : fields[i]; + } + } + return val; + } + function parse(header) { + var end = 0; + var list = []; + var start = 0; + for (var i = 0, len = header.length; i < len; i++) { + switch (header.charCodeAt(i)) { + case 32: + if (start === end) { + start = end = i + 1; + } + break; + case 44: + list.push(header.substring(start, end)); + start = end = i + 1; + break; + default: + end = i + 1; + break; + } + } + list.push(header.substring(start, end)); + return list; + } + function vary(res, field) { + if (!res || !res.getHeader || !res.setHeader) { + throw new TypeError("res argument is required"); + } + var val = res.getHeader("Vary") || ""; + var header = Array.isArray(val) ? val.join(", ") : String(val); + if (val = append(header, field)) { + res.setHeader("Vary", val); + } + } + } +}); + +// node_modules/express/lib/response.js +var require_response = __commonJS({ + "node_modules/express/lib/response.js"(exports2, module2) { + "use strict"; + var Buffer2 = require_safe_buffer().Buffer; + var contentDisposition = require_content_disposition(); + var encodeUrl = require_encodeurl(); + var escapeHtml = require_escape_html(); + var http3 = require("http"); + var onFinished = require_on_finished(); + var mime2 = require_mime_types(); + var path2 = require("path"); + var pathIsAbsolute = require_path_is_absolute(); + var statuses = require_statuses(); + var merge = require_utils_merge(); + var sign = require_cookie_signature().sign; + var normalizeType = require_utils2().normalizeType; + var normalizeTypes = require_utils2().normalizeTypes; + var setCharset = require_utils2().setCharset; + var cookie = require_cookie(); + var send = require_send(); + var extname = path2.extname; + var resolve = path2.resolve; + var vary = require_vary(); + var res = Object.create(http3.ServerResponse.prototype); + module2.exports = res; + res.status = function status(code) { + this.statusCode = code; + return this; + }; + res.links = function(links) { + var link = this.get("Link") || ""; + if (link) + link += ", "; + return this.set("Link", link + Object.keys(links).map(function(rel) { + return "<" + links[rel] + '>; rel="' + rel + '"'; + }).join(", ")); + }; + res.send = function send2(body) { + var chunk = body; + var encoding; + var req = this.req; + var type; + var app = this.app; + switch (typeof chunk) { + case "string": + if (!this.get("Content-Type")) { + this.type("html"); + } + break; + case "boolean": + case "number": + case "object": + if (chunk === null) { + chunk = ""; + } else if (Buffer2.isBuffer(chunk)) { + if (!this.get("Content-Type")) { + this.type("bin"); + } + } else { + return this.json(chunk); + } + break; + } + if (typeof chunk === "string") { + encoding = "utf8"; + type = this.get("Content-Type"); + if (typeof type === "string") { + this.set("Content-Type", setCharset(type, "utf-8")); + } + } + var etagFn = app.get("etag fn"); + var generateETag = !this.get("ETag") && typeof etagFn === "function"; + var len; + if (chunk !== void 0) { + if (Buffer2.isBuffer(chunk)) { + len = chunk.length; + } else if (!generateETag && chunk.length < 1e3) { + len = Buffer2.byteLength(chunk, encoding); + } else { + chunk = Buffer2.from(chunk, encoding); + encoding = void 0; + len = chunk.length; + } + this.set("Content-Length", len); + } + var etag; + if (generateETag && len !== void 0) { + if (etag = etagFn(chunk, encoding)) { + this.set("ETag", etag); + } + } + if (req.fresh) + this.statusCode = 304; + if (this.statusCode === 204 || this.statusCode === 304) { + this.removeHeader("Content-Type"); + this.removeHeader("Content-Length"); + this.removeHeader("Transfer-Encoding"); + chunk = ""; + } + if (req.method === "HEAD") { + this.end(); + } else { + this.end(chunk, encoding); + } + return this; + }; + res.json = function json(obj) { + var app = this.app; + var escape2 = app.get("json escape"); + var replacer = app.get("json replacer"); + var spaces = app.get("json spaces"); + var body = stringify(obj, replacer, spaces, escape2); + if (!this.get("Content-Type")) { + this.set("Content-Type", "application/json"); + } + return this.send(body); + }; + res.jsonp = function jsonp(obj) { + var app = this.app; + var escape2 = app.get("json escape"); + var replacer = app.get("json replacer"); + var spaces = app.get("json spaces"); + var body = stringify(obj, replacer, spaces, escape2); + var callback = this.req.query[app.get("jsonp callback name")]; + if (!this.get("Content-Type")) { + this.set("X-Content-Type-Options", "nosniff"); + this.set("Content-Type", "application/json"); + } + if (Array.isArray(callback)) { + callback = callback[0]; + } + if (typeof callback === "string" && callback.length !== 0) { + this.set("X-Content-Type-Options", "nosniff"); + this.set("Content-Type", "text/javascript"); + callback = callback.replace(/[^\[\]\w$.]/g, ""); + if (body === void 0) { + body = ""; + } else if (typeof body === "string") { + body = body.replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029"); + } + body = "/**/ typeof " + callback + " === 'function' && " + callback + "(" + body + ");"; + } + return this.send(body); + }; + res.sendStatus = function sendStatus(statusCode) { + var body = statuses[statusCode] || String(statusCode); + this.statusCode = statusCode; + this.type("txt"); + return this.send(body); + }; + res.sendFile = function sendFile(path3, options, callback) { + var done = callback; + var req = this.req; + var res2 = this; + var next = req.next; + var opts = options || {}; + if (!path3) { + throw new TypeError("path argument is required to res.sendFile"); + } + if (typeof path3 !== "string") { + throw new TypeError("path must be a string to res.sendFile"); + } + if (typeof options === "function") { + done = options; + opts = {}; + } + if (!opts.root && !pathIsAbsolute(path3)) { + throw new TypeError("path must be absolute or specify root to res.sendFile"); + } + var pathname = encodeURI(path3); + var file = send(req, pathname, opts); + sendfile(res2, file, opts, function(err) { + if (done) + return done(err); + if (err && err.code === "EISDIR") + return next(); + if (err && err.code !== "ECONNABORTED" && err.syscall !== "write") { + next(err); + } + }); + }; + res.download = function download(path3, filename, options, callback) { + var done = callback; + var name = filename; + var opts = options || null; + if (typeof filename === "function") { + done = filename; + name = null; + opts = null; + } else if (typeof options === "function") { + done = options; + opts = null; + } + var headers = { + "Content-Disposition": contentDisposition(name || path3) + }; + if (opts && opts.headers) { + var keys = Object.keys(opts.headers); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (key.toLowerCase() !== "content-disposition") { + headers[key] = opts.headers[key]; + } + } + } + opts = Object.create(opts); + opts.headers = headers; + var fullPath = resolve(path3); + return this.sendFile(fullPath, opts, done); + }; + res.contentType = res.type = function contentType(type) { + var ct = type.indexOf("/") === -1 ? mime2.contentType(type) || "application/octet-stream" : type; + return this.set("Content-Type", ct); + }; + res.format = function(obj) { + var req = this.req; + var next = req.next; + var fn2 = obj.default; + if (fn2) + delete obj.default; + var keys = Object.keys(obj); + var key = keys.length > 0 ? req.accepts(keys) : false; + this.vary("Accept"); + if (key) { + this.set("Content-Type", normalizeType(key).value); + obj[key](req, this, next); + } else if (fn2) { + fn2(); + } else { + var err = new Error("Not Acceptable"); + err.status = err.statusCode = 406; + err.types = normalizeTypes(keys).map(function(o) { + return o.value; + }); + next(err); + } + return this; + }; + res.attachment = function attachment(filename) { + if (filename) { + this.type(extname(filename)); + } + this.set("Content-Disposition", contentDisposition(filename)); + return this; + }; + res.append = function append(field, val) { + var prev = this.get(field); + var value = val; + if (prev) { + value = Array.isArray(prev) ? prev.concat(val) : Array.isArray(val) ? [prev].concat(val) : [prev, val]; + } + return this.set(field, value); + }; + res.set = res.header = function header(field, val) { + if (arguments.length === 2) { + var value = Array.isArray(val) ? val.map(String) : String(val); + if (field.toLowerCase() === "content-type") { + if (Array.isArray(value)) { + throw new TypeError("Content-Type cannot be set to an Array"); + } + value = mime2.contentType(value); + } + this.setHeader(field, value); + } else { + for (var key in field) { + this.set(key, field[key]); + } + } + return this; + }; + res.get = function(field) { + return this.getHeader(field); + }; + res.clearCookie = function clearCookie(name, options) { + var opts = merge({ expires: new Date(1), path: "/" }, options); + return this.cookie(name, "", opts); + }; + res.cookie = function(name, value, options) { + var opts = merge({}, options); + var secret = this.req.secret; + var signed = opts.signed; + if (signed && !secret) { + throw new Error('cookieParser("secret") required for signed cookies'); + } + var val = typeof value === "object" ? "j:" + JSON.stringify(value) : String(value); + if (signed) { + val = "s:" + sign(val, secret); + } + if ("maxAge" in opts) { + opts.expires = new Date(Date.now() + opts.maxAge); + opts.maxAge /= 1e3; + } + if (opts.path == null) { + opts.path = "/"; + } + this.append("Set-Cookie", cookie.serialize(name, String(val), opts)); + return this; + }; + res.location = function location(url) { + var loc = url; + if (url === "back") { + loc = this.req.get("Referrer") || "/"; + } + return this.set("Location", encodeUrl(loc)); + }; + res.redirect = function redirect(url) { + var address = url; + var body; + var status = 302; + if (arguments.length === 2) { + status = arguments[0]; + address = arguments[1]; + } + address = this.location(address).get("Location"); + this.format({ + text: function() { + body = statuses[status] + ". Redirecting to " + address; + }, + html: function() { + var u = escapeHtml(address); + body = "

" + statuses[status] + '. Redirecting to ' + u + "

"; + }, + default: function() { + body = ""; + } + }); + this.statusCode = status; + this.set("Content-Length", Buffer2.byteLength(body)); + if (this.req.method === "HEAD") { + this.end(); + } else { + this.end(body); + } + }; + res.vary = function(field) { + vary(this, field); + return this; + }; + res.render = function render(view, options, callback) { + var app = this.req.app; + var done = callback; + var opts = options || {}; + var req = this.req; + var self2 = this; + if (typeof options === "function") { + done = options; + opts = {}; + } + opts._locals = self2.locals; + done = done || function(err, str) { + if (err) + return req.next(err); + self2.send(str); + }; + app.render(view, opts, done); + }; + function sendfile(res2, file, options, callback) { + var done = false; + var streaming; + function onaborted() { + if (done) + return; + done = true; + var err = new Error("Request aborted"); + err.code = "ECONNABORTED"; + callback(err); + } + function ondirectory() { + if (done) + return; + done = true; + var err = new Error("EISDIR, read"); + err.code = "EISDIR"; + callback(err); + } + function onerror(err) { + if (done) + return; + done = true; + callback(err); + } + function onend() { + if (done) + return; + done = true; + callback(); + } + function onfile() { + streaming = false; + } + function onfinish(err) { + if (err && err.code === "ECONNRESET") + return onaborted(); + if (err) + return onerror(err); + if (done) + return; + setImmediate(function() { + if (streaming !== false && !done) { + onaborted(); + return; + } + if (done) + return; + done = true; + callback(); + }); + } + function onstream() { + streaming = true; + } + file.on("directory", ondirectory); + file.on("end", onend); + file.on("error", onerror); + file.on("file", onfile); + file.on("stream", onstream); + onFinished(res2, onfinish); + if (options.headers) { + file.on("headers", function headers(res3) { + var obj = options.headers; + var keys = Object.keys(obj); + for (var i = 0; i < keys.length; i++) { + var k = keys[i]; + res3.setHeader(k, obj[k]); + } + }); + } + file.pipe(res2); + } + function stringify(value, replacer, spaces, escape2) { + var json = replacer || spaces ? JSON.stringify(value, replacer, spaces) : JSON.stringify(value); + if (escape2 && typeof json === "string") { + json = json.replace(/[<>&]/g, function(c) { + switch (c.charCodeAt(0)) { + case 60: + return "\\u003c"; + case 62: + return "\\u003e"; + case 38: + return "\\u0026"; + default: + return c; + } + }); + } + return json; + } + } +}); + +// node_modules/serve-static/index.js +var require_serve_static = __commonJS({ + "node_modules/serve-static/index.js"(exports2, module2) { + "use strict"; + var encodeUrl = require_encodeurl(); + var escapeHtml = require_escape_html(); + var parseUrl = require_parseurl(); + var resolve = require("path").resolve; + var send = require_send(); + var url = require("url"); + module2.exports = serveStatic; + function serveStatic(root, options) { + if (!root) { + throw new TypeError("root path required"); + } + if (typeof root !== "string") { + throw new TypeError("root path must be a string"); + } + var opts = Object.create(options || null); + var fallthrough = opts.fallthrough !== false; + var redirect = opts.redirect !== false; + var setHeaders = opts.setHeaders; + if (setHeaders && typeof setHeaders !== "function") { + throw new TypeError("option setHeaders must be function"); + } + opts.maxage = opts.maxage || opts.maxAge || 0; + opts.root = resolve(root); + var onDirectory = redirect ? createRedirectDirectoryListener() : createNotFoundDirectoryListener(); + return function serveStatic2(req, res, next) { + if (req.method !== "GET" && req.method !== "HEAD") { + if (fallthrough) { + return next(); + } + res.statusCode = 405; + res.setHeader("Allow", "GET, HEAD"); + res.setHeader("Content-Length", "0"); + res.end(); + return; + } + var forwardError = !fallthrough; + var originalUrl = parseUrl.original(req); + var path2 = parseUrl(req).pathname; + if (path2 === "/" && originalUrl.pathname.substr(-1) !== "/") { + path2 = ""; + } + var stream = send(req, path2, opts); + stream.on("directory", onDirectory); + if (setHeaders) { + stream.on("headers", setHeaders); + } + if (fallthrough) { + stream.on("file", function onFile() { + forwardError = true; + }); + } + stream.on("error", function error(err) { + if (forwardError || !(err.statusCode < 500)) { + next(err); + return; + } + next(); + }); + stream.pipe(res); + }; + } + function collapseLeadingSlashes(str) { + for (var i = 0; i < str.length; i++) { + if (str.charCodeAt(i) !== 47) { + break; + } + } + return i > 1 ? "/" + str.substr(i) : str; + } + function createHtmlDocument(title, body) { + return '\n\n\n\n' + title + "\n\n\n
" + body + "
\n\n\n"; + } + function createNotFoundDirectoryListener() { + return function notFound() { + this.error(404); + }; + } + function createRedirectDirectoryListener() { + return function redirect(res) { + if (this.hasTrailingSlash()) { + this.error(404); + return; + } + var originalUrl = parseUrl.original(this.req); + originalUrl.path = null; + originalUrl.pathname = collapseLeadingSlashes(originalUrl.pathname + "/"); + var loc = encodeUrl(url.format(originalUrl)); + var doc = createHtmlDocument("Redirecting", 'Redirecting to ' + escapeHtml(loc) + ""); + res.statusCode = 301; + res.setHeader("Content-Type", "text/html; charset=UTF-8"); + res.setHeader("Content-Length", Buffer.byteLength(doc)); + res.setHeader("Content-Security-Policy", "default-src 'none'"); + res.setHeader("X-Content-Type-Options", "nosniff"); + res.setHeader("Location", loc); + res.end(doc); + }; + } + } +}); + +// node_modules/express/lib/express.js +var require_express = __commonJS({ + "node_modules/express/lib/express.js"(exports2, module2) { + "use strict"; + var bodyParser2 = require_body_parser(); + var EventEmitter = require("events").EventEmitter; + var mixin = require_merge_descriptors(); + var proto = require_application(); + var Router = require_router(); + var req = require_request(); + var res = require_response(); + exports2 = module2.exports = createApplication; + function createApplication() { + var app = function(req2, res2, next) { + app.handle(req2, res2, next); + }; + mixin(app, EventEmitter.prototype, false); + mixin(app, proto, false); + app.request = Object.create(req, { + app: { configurable: true, enumerable: true, writable: true, value: app } + }); + app.response = Object.create(res, { + app: { configurable: true, enumerable: true, writable: true, value: app } + }); + app.init(); + return app; + } + exports2.application = proto; + exports2.request = req; + exports2.response = res; + exports2.Route = Router.Route; + exports2.Router = Router; + exports2.json = bodyParser2.json; + exports2.raw = bodyParser2.raw; + exports2.static = require_serve_static(); + exports2.text = bodyParser2.text; + exports2.urlencoded = bodyParser2.urlencoded; + } +}); + +// node_modules/express/index.js +var require_express2 = __commonJS({ + "node_modules/express/index.js"(exports2, module2) { + "use strict"; + module2.exports = require_express(); + } +}); + +// node_modules/object-assign/index.js +var require_object_assign = __commonJS({ + "node_modules/object-assign/index.js"(exports2, module2) { + "use strict"; + var getOwnPropertySymbols = Object.getOwnPropertySymbols; + var hasOwnProperty = Object.prototype.hasOwnProperty; + var propIsEnumerable = Object.prototype.propertyIsEnumerable; + function toObject(val) { + if (val === null || val === void 0) { + throw new TypeError("Object.assign cannot be called with null or undefined"); + } + return Object(val); + } + function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + var test1 = new String("abc"); + test1[5] = "de"; + if (Object.getOwnPropertyNames(test1)[0] === "5") { + return false; + } + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2["_" + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function(n) { + return test2[n]; + }); + if (order2.join("") !== "0123456789") { + return false; + } + var test3 = {}; + "abcdefghijklmnopqrst".split("").forEach(function(letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join("") !== "abcdefghijklmnopqrst") { + return false; + } + return true; + } catch (err) { + return false; + } + } + module2.exports = shouldUseNative() ? Object.assign : function(target, source) { + var from; + var to = toObject(target); + var symbols; + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + return to; + }; + } +}); + +// node_modules/cors/lib/index.js +var require_lib5 = __commonJS({ + "node_modules/cors/lib/index.js"(exports2, module2) { + (function() { + "use strict"; + var assign = require_object_assign(); + var vary = require_vary(); + var defaults = { + origin: "*", + methods: "GET,HEAD,PUT,PATCH,POST,DELETE", + preflightContinue: false, + optionsSuccessStatus: 204 + }; + function isString(s) { + return typeof s === "string" || s instanceof String; + } + function isOriginAllowed(origin, allowedOrigin) { + if (Array.isArray(allowedOrigin)) { + for (var i = 0; i < allowedOrigin.length; ++i) { + if (isOriginAllowed(origin, allowedOrigin[i])) { + return true; + } + } + return false; + } else if (isString(allowedOrigin)) { + return origin === allowedOrigin; + } else if (allowedOrigin instanceof RegExp) { + return allowedOrigin.test(origin); + } else { + return !!allowedOrigin; + } + } + function configureOrigin(options, req) { + var requestOrigin = req.headers.origin, headers = [], isAllowed; + if (!options.origin || options.origin === "*") { + headers.push([{ + key: "Access-Control-Allow-Origin", + value: "*" + }]); + } else if (isString(options.origin)) { + headers.push([{ + key: "Access-Control-Allow-Origin", + value: options.origin + }]); + headers.push([{ + key: "Vary", + value: "Origin" + }]); + } else { + isAllowed = isOriginAllowed(requestOrigin, options.origin); + headers.push([{ + key: "Access-Control-Allow-Origin", + value: isAllowed ? requestOrigin : false + }]); + headers.push([{ + key: "Vary", + value: "Origin" + }]); + } + return headers; + } + function configureMethods(options) { + var methods = options.methods; + if (methods.join) { + methods = options.methods.join(","); + } + return { + key: "Access-Control-Allow-Methods", + value: methods + }; + } + function configureCredentials(options) { + if (options.credentials === true) { + return { + key: "Access-Control-Allow-Credentials", + value: "true" + }; + } + return null; + } + function configureAllowedHeaders(options, req) { + var allowedHeaders = options.allowedHeaders || options.headers; + var headers = []; + if (!allowedHeaders) { + allowedHeaders = req.headers["access-control-request-headers"]; + headers.push([{ + key: "Vary", + value: "Access-Control-Request-Headers" + }]); + } else if (allowedHeaders.join) { + allowedHeaders = allowedHeaders.join(","); + } + if (allowedHeaders && allowedHeaders.length) { + headers.push([{ + key: "Access-Control-Allow-Headers", + value: allowedHeaders + }]); + } + return headers; + } + function configureExposedHeaders(options) { + var headers = options.exposedHeaders; + if (!headers) { + return null; + } else if (headers.join) { + headers = headers.join(","); + } + if (headers && headers.length) { + return { + key: "Access-Control-Expose-Headers", + value: headers + }; + } + return null; + } + function configureMaxAge(options) { + var maxAge = (typeof options.maxAge === "number" || options.maxAge) && options.maxAge.toString(); + if (maxAge && maxAge.length) { + return { + key: "Access-Control-Max-Age", + value: maxAge + }; + } + return null; + } + function applyHeaders(headers, res) { + for (var i = 0, n = headers.length; i < n; i++) { + var header = headers[i]; + if (header) { + if (Array.isArray(header)) { + applyHeaders(header, res); + } else if (header.key === "Vary" && header.value) { + vary(res, header.value); + } else if (header.value) { + res.setHeader(header.key, header.value); + } + } + } + } + function cors2(options, req, res, next) { + var headers = [], method = req.method && req.method.toUpperCase && req.method.toUpperCase(); + if (method === "OPTIONS") { + headers.push(configureOrigin(options, req)); + headers.push(configureCredentials(options, req)); + headers.push(configureMethods(options, req)); + headers.push(configureAllowedHeaders(options, req)); + headers.push(configureMaxAge(options, req)); + headers.push(configureExposedHeaders(options, req)); + applyHeaders(headers, res); + if (options.preflightContinue) { + next(); + } else { + res.statusCode = options.optionsSuccessStatus; + res.setHeader("Content-Length", "0"); + res.end(); + } + } else { + headers.push(configureOrigin(options, req)); + headers.push(configureCredentials(options, req)); + headers.push(configureExposedHeaders(options, req)); + applyHeaders(headers, res); + next(); + } + } + function middlewareWrapper(o) { + var optionsCallback = null; + if (typeof o === "function") { + optionsCallback = o; + } else { + optionsCallback = function(req, cb) { + cb(null, o); + }; + } + return function corsMiddleware(req, res, next) { + optionsCallback(req, function(err, options) { + if (err) { + next(err); + } else { + var corsOptions = assign({}, defaults, options); + var originCallback = null; + if (corsOptions.origin && typeof corsOptions.origin === "function") { + originCallback = corsOptions.origin; + } else if (corsOptions.origin) { + originCallback = function(origin, cb) { + cb(null, corsOptions.origin); + }; + } + if (originCallback) { + originCallback(req.headers.origin, function(err2, origin) { + if (err2 || !origin) { + next(err2); + } else { + corsOptions.origin = origin; + cors2(corsOptions, req, res, next); + } + }); + } else { + next(); + } + } + }); + }; + } + module2.exports = middlewareWrapper; + })(); + } +}); + +// node_modules/json-logic-js/logic.js +var require_logic = __commonJS({ + "node_modules/json-logic-js/logic.js"(exports2, module2) { + (function(root, factory) { + if (typeof define === "function" && define.amd) { + define(factory); + } else if (typeof exports2 === "object") { + module2.exports = factory(); + } else { + root.jsonLogic = factory(); + } + })(exports2, function() { + "use strict"; + if (!Array.isArray) { + Array.isArray = function(arg) { + return Object.prototype.toString.call(arg) === "[object Array]"; + }; + } + function arrayUnique(array) { + var a = []; + for (var i = 0, l = array.length; i < l; i++) { + if (a.indexOf(array[i]) === -1) { + a.push(array[i]); + } + } + return a; + } + var jsonLogic2 = {}; + var operations = { + "==": function(a, b) { + return a == b; + }, + "===": function(a, b) { + return a === b; + }, + "!=": function(a, b) { + return a != b; + }, + "!==": function(a, b) { + return a !== b; + }, + ">": function(a, b) { + return a > b; + }, + ">=": function(a, b) { + return a >= b; + }, + "<": function(a, b, c) { + return c === void 0 ? a < b : a < b && b < c; + }, + "<=": function(a, b, c) { + return c === void 0 ? a <= b : a <= b && b <= c; + }, + "!!": function(a) { + return jsonLogic2.truthy(a); + }, + "!": function(a) { + return !jsonLogic2.truthy(a); + }, + "%": function(a, b) { + return a % b; + }, + "log": function(a) { + console.log(a); + return a; + }, + "in": function(a, b) { + if (!b || typeof b.indexOf === "undefined") + return false; + return b.indexOf(a) !== -1; + }, + "cat": function() { + return Array.prototype.join.call(arguments, ""); + }, + "substr": function(source, start, end) { + if (end < 0) { + var temp = String(source).substr(start); + return temp.substr(0, temp.length + end); + } + return String(source).substr(start, end); + }, + "+": function() { + return Array.prototype.reduce.call(arguments, function(a, b) { + return parseFloat(a, 10) + parseFloat(b, 10); + }, 0); + }, + "*": function() { + return Array.prototype.reduce.call(arguments, function(a, b) { + return parseFloat(a, 10) * parseFloat(b, 10); + }); + }, + "-": function(a, b) { + if (b === void 0) { + return -a; + } else { + return a - b; + } + }, + "/": function(a, b) { + return a / b; + }, + "min": function() { + return Math.min.apply(this, arguments); + }, + "max": function() { + return Math.max.apply(this, arguments); + }, + "merge": function() { + return Array.prototype.reduce.call(arguments, function(a, b) { + return a.concat(b); + }, []); + }, + "var": function(a, b) { + var not_found = b === void 0 ? null : b; + var data = this; + if (typeof a === "undefined" || a === "" || a === null) { + return data; + } + var sub_props = String(a).split("."); + for (var i = 0; i < sub_props.length; i++) { + if (data === null || data === void 0) { + return not_found; + } + data = data[sub_props[i]]; + if (data === void 0) { + return not_found; + } + } + return data; + }, + "missing": function() { + var missing = []; + var keys = Array.isArray(arguments[0]) ? arguments[0] : arguments; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + var value = jsonLogic2.apply({ "var": key }, this); + if (value === null || value === "") { + missing.push(key); + } + } + return missing; + }, + "missing_some": function(need_count, options) { + var are_missing = jsonLogic2.apply({ "missing": options }, this); + if (options.length - are_missing.length >= need_count) { + return []; + } else { + return are_missing; + } + } + }; + jsonLogic2.is_logic = function(logic) { + return typeof logic === "object" && logic !== null && !Array.isArray(logic) && Object.keys(logic).length === 1; + }; + jsonLogic2.truthy = function(value) { + if (Array.isArray(value) && value.length === 0) { + return false; + } + return !!value; + }; + jsonLogic2.get_operator = function(logic) { + return Object.keys(logic)[0]; + }; + jsonLogic2.get_values = function(logic) { + return logic[jsonLogic2.get_operator(logic)]; + }; + jsonLogic2.apply = function(logic, data) { + if (Array.isArray(logic)) { + return logic.map(function(l) { + return jsonLogic2.apply(l, data); + }); + } + if (!jsonLogic2.is_logic(logic)) { + return logic; + } + var op = jsonLogic2.get_operator(logic); + var values = logic[op]; + var i; + var current; + var scopedLogic; + var scopedData; + var initial; + if (!Array.isArray(values)) { + values = [values]; + } + if (op === "if" || op == "?:") { + for (i = 0; i < values.length - 1; i += 2) { + if (jsonLogic2.truthy(jsonLogic2.apply(values[i], data))) { + return jsonLogic2.apply(values[i + 1], data); + } + } + if (values.length === i + 1) { + return jsonLogic2.apply(values[i], data); + } + return null; + } else if (op === "and") { + for (i = 0; i < values.length; i += 1) { + current = jsonLogic2.apply(values[i], data); + if (!jsonLogic2.truthy(current)) { + return current; + } + } + return current; + } else if (op === "or") { + for (i = 0; i < values.length; i += 1) { + current = jsonLogic2.apply(values[i], data); + if (jsonLogic2.truthy(current)) { + return current; + } + } + return current; + } else if (op === "filter") { + scopedData = jsonLogic2.apply(values[0], data); + scopedLogic = values[1]; + if (!Array.isArray(scopedData)) { + return []; + } + return scopedData.filter(function(datum) { + return jsonLogic2.truthy(jsonLogic2.apply(scopedLogic, datum)); + }); + } else if (op === "map") { + scopedData = jsonLogic2.apply(values[0], data); + scopedLogic = values[1]; + if (!Array.isArray(scopedData)) { + return []; + } + return scopedData.map(function(datum) { + return jsonLogic2.apply(scopedLogic, datum); + }); + } else if (op === "reduce") { + scopedData = jsonLogic2.apply(values[0], data); + scopedLogic = values[1]; + initial = typeof values[2] !== "undefined" ? values[2] : null; + if (!Array.isArray(scopedData)) { + return initial; + } + return scopedData.reduce(function(accumulator, current2) { + return jsonLogic2.apply(scopedLogic, { current: current2, accumulator }); + }, initial); + } else if (op === "all") { + scopedData = jsonLogic2.apply(values[0], data); + scopedLogic = values[1]; + if (!Array.isArray(scopedData) || !scopedData.length) { + return false; + } + for (i = 0; i < scopedData.length; i += 1) { + if (!jsonLogic2.truthy(jsonLogic2.apply(scopedLogic, scopedData[i]))) { + return false; + } + } + return true; + } else if (op === "none") { + scopedData = jsonLogic2.apply(values[0], data); + scopedLogic = values[1]; + if (!Array.isArray(scopedData) || !scopedData.length) { + return true; + } + for (i = 0; i < scopedData.length; i += 1) { + if (jsonLogic2.truthy(jsonLogic2.apply(scopedLogic, scopedData[i]))) { + return false; + } + } + return true; + } else if (op === "some") { + scopedData = jsonLogic2.apply(values[0], data); + scopedLogic = values[1]; + if (!Array.isArray(scopedData) || !scopedData.length) { + return false; + } + for (i = 0; i < scopedData.length; i += 1) { + if (jsonLogic2.truthy(jsonLogic2.apply(scopedLogic, scopedData[i]))) { + return true; + } + } + return false; + } + values = values.map(function(val) { + return jsonLogic2.apply(val, data); + }); + if (operations.hasOwnProperty(op) && typeof operations[op] === "function") { + return operations[op].apply(data, values); + } else if (op.indexOf(".") > 0) { + var sub_ops = String(op).split("."); + var operation = operations; + for (i = 0; i < sub_ops.length; i++) { + if (!operation.hasOwnProperty(sub_ops[i])) { + throw new Error("Unrecognized operation " + op + " (failed at " + sub_ops.slice(0, i + 1).join(".") + ")"); + } + operation = operation[sub_ops[i]]; + } + return operation.apply(data, values); + } + throw new Error("Unrecognized operation " + op); + }; + jsonLogic2.uses_data = function(logic) { + var collection = []; + if (jsonLogic2.is_logic(logic)) { + var op = jsonLogic2.get_operator(logic); + var values = logic[op]; + if (!Array.isArray(values)) { + values = [values]; + } + if (op === "var") { + collection.push(values[0]); + } else { + values.forEach(function(val) { + collection.push.apply(collection, jsonLogic2.uses_data(val)); + }); + } + } + return arrayUnique(collection); + }; + jsonLogic2.add_operation = function(name, code) { + operations[name] = code; + }; + jsonLogic2.rm_operation = function(name) { + delete operations[name]; + }; + jsonLogic2.rule_like = function(rule, pattern) { + if (pattern === rule) { + return true; + } + if (pattern === "@") { + return true; + } + if (pattern === "number") { + return typeof rule === "number"; + } + if (pattern === "string") { + return typeof rule === "string"; + } + if (pattern === "array") { + return Array.isArray(rule) && !jsonLogic2.is_logic(rule); + } + if (jsonLogic2.is_logic(pattern)) { + if (jsonLogic2.is_logic(rule)) { + var pattern_op = jsonLogic2.get_operator(pattern); + var rule_op = jsonLogic2.get_operator(rule); + if (pattern_op === "@" || pattern_op === rule_op) { + return jsonLogic2.rule_like(jsonLogic2.get_values(rule, false), jsonLogic2.get_values(pattern, false)); + } + } + return false; + } + if (Array.isArray(pattern)) { + if (Array.isArray(rule)) { + if (pattern.length !== rule.length) { + return false; + } + for (var i = 0; i < pattern.length; i += 1) { + if (!jsonLogic2.rule_like(rule[i], pattern[i])) { + return false; + } + } + return true; + } else { + return false; + } + } + return false; + }; + return jsonLogic2; + }); + } +}); + +// node_modules/on-headers/index.js +var require_on_headers = __commonJS({ + "node_modules/on-headers/index.js"(exports2, module2) { + "use strict"; + module2.exports = onHeaders; + function createWriteHead(prevWriteHead, listener) { + var fired = false; + return function writeHead(statusCode) { + var args2 = setWriteHeadHeaders.apply(this, arguments); + if (!fired) { + fired = true; + listener.call(this); + if (typeof args2[0] === "number" && this.statusCode !== args2[0]) { + args2[0] = this.statusCode; + args2.length = 1; + } + } + return prevWriteHead.apply(this, args2); + }; + } + function onHeaders(res, listener) { + if (!res) { + throw new TypeError("argument res is required"); + } + if (typeof listener !== "function") { + throw new TypeError("argument listener must be a function"); + } + res.writeHead = createWriteHead(res.writeHead, listener); + } + function setHeadersFromArray(res, headers) { + for (var i = 0; i < headers.length; i++) { + res.setHeader(headers[i][0], headers[i][1]); + } + } + function setHeadersFromObject(res, headers) { + var keys = Object.keys(headers); + for (var i = 0; i < keys.length; i++) { + var k = keys[i]; + if (k) + res.setHeader(k, headers[k]); + } + } + function setWriteHeadHeaders(statusCode) { + var length = arguments.length; + var headerIndex = length > 1 && typeof arguments[1] === "string" ? 2 : 1; + var headers = length >= headerIndex + 1 ? arguments[headerIndex] : void 0; + this.statusCode = statusCode; + if (Array.isArray(headers)) { + setHeadersFromArray(this, headers); + } else if (headers) { + setHeadersFromObject(this, headers); + } + var args2 = new Array(Math.min(length, headerIndex)); + for (var i = 0; i < args2.length; i++) { + args2[i] = arguments[i]; + } + return args2; + } + } +}); + +// node_modules/response-time/index.js +var require_response_time = __commonJS({ + "node_modules/response-time/index.js"(exports2, module2) { + "use strict"; + var deprecate2 = require_depd()("response-time"); + var onHeaders = require_on_headers(); + module2.exports = responseTime2; + function responseTime2(options) { + var opts = options || {}; + if (typeof options === "number") { + deprecate2("number argument: use {digits: " + JSON.stringify(options) + "} instead"); + opts = { digits: options }; + } + var fn2 = typeof opts !== "function" ? createSetHeader(opts) : opts; + return function responseTime3(req, res, next) { + var startAt = process.hrtime(); + onHeaders(res, function onHeaders2() { + var diff = process.hrtime(startAt); + var time = diff[0] * 1e3 + diff[1] * 1e-6; + fn2(req, res, time); + }); + next(); + }; + } + function createSetHeader(options) { + var digits = options.digits !== void 0 ? options.digits : 3; + var header = options.header || "X-Response-Time"; + var suffix = options.suffix !== void 0 ? Boolean(options.suffix) : true; + return function setResponseHeader(req, res, time) { + if (res.getHeader(header)) { + return; + } + var val = time.toFixed(digits); + if (suffix) { + val += "ms"; + } + res.setHeader(header, val); + }; + } + } +}); + +// node_modules/strict-uri-encode/index.js +var require_strict_uri_encode = __commonJS({ + "node_modules/strict-uri-encode/index.js"(exports2, module2) { + "use strict"; + module2.exports = (str) => encodeURIComponent(str).replace(/[!'()*]/g, (x) => `%${x.charCodeAt(0).toString(16).toUpperCase()}`); + } +}); + +// node_modules/decode-uri-component/index.js +var require_decode_uri_component = __commonJS({ + "node_modules/decode-uri-component/index.js"(exports2, module2) { + "use strict"; + var token = "%[a-f0-9]{2}"; + var singleMatcher = new RegExp("(" + token + ")|([^%]+?)", "gi"); + var multiMatcher = new RegExp("(" + token + ")+", "gi"); + function decodeComponents(components, split) { + try { + return [decodeURIComponent(components.join(""))]; + } catch (err) { + } + if (components.length === 1) { + return components; + } + split = split || 1; + var left = components.slice(0, split); + var right = components.slice(split); + return Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right)); + } + function decode(input) { + try { + return decodeURIComponent(input); + } catch (err) { + var tokens = input.match(singleMatcher) || []; + for (var i = 1; i < tokens.length; i++) { + input = decodeComponents(tokens, i).join(""); + tokens = input.match(singleMatcher) || []; + } + return input; + } + } + function customDecodeURIComponent(input) { + var replaceMap = { + "%FE%FF": "\uFFFD\uFFFD", + "%FF%FE": "\uFFFD\uFFFD" + }; + var match = multiMatcher.exec(input); + while (match) { + try { + replaceMap[match[0]] = decodeURIComponent(match[0]); + } catch (err) { + var result = decode(match[0]); + if (result !== match[0]) { + replaceMap[match[0]] = result; + } + } + match = multiMatcher.exec(input); + } + replaceMap["%C2"] = "\uFFFD"; + var entries = Object.keys(replaceMap); + for (var i = 0; i < entries.length; i++) { + var key = entries[i]; + input = input.replace(new RegExp(key, "g"), replaceMap[key]); + } + return input; + } + module2.exports = function(encodedURI) { + if (typeof encodedURI !== "string") { + throw new TypeError("Expected `encodedURI` to be of type `string`, got `" + typeof encodedURI + "`"); + } + try { + encodedURI = encodedURI.replace(/\+/g, " "); + return decodeURIComponent(encodedURI); + } catch (err) { + return customDecodeURIComponent(encodedURI); + } + }; + } +}); + +// node_modules/split-on-first/index.js +var require_split_on_first = __commonJS({ + "node_modules/split-on-first/index.js"(exports2, module2) { + "use strict"; + module2.exports = (string, separator) => { + if (!(typeof string === "string" && typeof separator === "string")) { + throw new TypeError("Expected the arguments to be of type `string`"); + } + if (separator === "") { + return [string]; + } + const separatorIndex = string.indexOf(separator); + if (separatorIndex === -1) { + return [string]; + } + return [ + string.slice(0, separatorIndex), + string.slice(separatorIndex + separator.length) + ]; + }; + } +}); + +// node_modules/filter-obj/index.js +var require_filter_obj = __commonJS({ + "node_modules/filter-obj/index.js"(exports2, module2) { + "use strict"; + module2.exports = function(obj, predicate) { + var ret = {}; + var keys = Object.keys(obj); + var isArr = Array.isArray(predicate); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + var val = obj[key]; + if (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) { + ret[key] = val; + } + } + return ret; + }; + } +}); + +// node_modules/query-string/index.js +var require_query_string = __commonJS({ + "node_modules/query-string/index.js"(exports2) { + "use strict"; + var strictUriEncode = require_strict_uri_encode(); + var decodeComponent = require_decode_uri_component(); + var splitOnFirst = require_split_on_first(); + var filterObject = require_filter_obj(); + var isNullOrUndefined = (value) => value === null || value === void 0; + var encodeFragmentIdentifier = Symbol("encodeFragmentIdentifier"); + function encoderForArrayFormat(options) { + switch (options.arrayFormat) { + case "index": + return (key) => (result, value) => { + const index = result.length; + if (value === void 0 || options.skipNull && value === null || options.skipEmptyString && value === "") { + return result; + } + if (value === null) { + return [...result, [encode(key, options), "[", index, "]"].join("")]; + } + return [ + ...result, + [encode(key, options), "[", encode(index, options), "]=", encode(value, options)].join("") + ]; + }; + case "bracket": + return (key) => (result, value) => { + if (value === void 0 || options.skipNull && value === null || options.skipEmptyString && value === "") { + return result; + } + if (value === null) { + return [...result, [encode(key, options), "[]"].join("")]; + } + return [...result, [encode(key, options), "[]=", encode(value, options)].join("")]; + }; + case "colon-list-separator": + return (key) => (result, value) => { + if (value === void 0 || options.skipNull && value === null || options.skipEmptyString && value === "") { + return result; + } + if (value === null) { + return [...result, [encode(key, options), ":list="].join("")]; + } + return [...result, [encode(key, options), ":list=", encode(value, options)].join("")]; + }; + case "comma": + case "separator": + case "bracket-separator": { + const keyValueSep = options.arrayFormat === "bracket-separator" ? "[]=" : "="; + return (key) => (result, value) => { + if (value === void 0 || options.skipNull && value === null || options.skipEmptyString && value === "") { + return result; + } + value = value === null ? "" : value; + if (result.length === 0) { + return [[encode(key, options), keyValueSep, encode(value, options)].join("")]; + } + return [[result, encode(value, options)].join(options.arrayFormatSeparator)]; + }; + } + default: + return (key) => (result, value) => { + if (value === void 0 || options.skipNull && value === null || options.skipEmptyString && value === "") { + return result; + } + if (value === null) { + return [...result, encode(key, options)]; + } + return [...result, [encode(key, options), "=", encode(value, options)].join("")]; + }; + } + } + function parserForArrayFormat(options) { + let result; + switch (options.arrayFormat) { + case "index": + return (key, value, accumulator) => { + result = /\[(\d*)\]$/.exec(key); + key = key.replace(/\[\d*\]$/, ""); + if (!result) { + accumulator[key] = value; + return; + } + if (accumulator[key] === void 0) { + accumulator[key] = {}; + } + accumulator[key][result[1]] = value; + }; + case "bracket": + return (key, value, accumulator) => { + result = /(\[\])$/.exec(key); + key = key.replace(/\[\]$/, ""); + if (!result) { + accumulator[key] = value; + return; + } + if (accumulator[key] === void 0) { + accumulator[key] = [value]; + return; + } + accumulator[key] = [].concat(accumulator[key], value); + }; + case "colon-list-separator": + return (key, value, accumulator) => { + result = /(:list)$/.exec(key); + key = key.replace(/:list$/, ""); + if (!result) { + accumulator[key] = value; + return; + } + if (accumulator[key] === void 0) { + accumulator[key] = [value]; + return; + } + accumulator[key] = [].concat(accumulator[key], value); + }; + case "comma": + case "separator": + return (key, value, accumulator) => { + const isArray = typeof value === "string" && value.includes(options.arrayFormatSeparator); + const isEncodedArray = typeof value === "string" && !isArray && decode(value, options).includes(options.arrayFormatSeparator); + value = isEncodedArray ? decode(value, options) : value; + const newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map((item) => decode(item, options)) : value === null ? value : decode(value, options); + accumulator[key] = newValue; + }; + case "bracket-separator": + return (key, value, accumulator) => { + const isArray = /(\[\])$/.test(key); + key = key.replace(/\[\]$/, ""); + if (!isArray) { + accumulator[key] = value ? decode(value, options) : value; + return; + } + const arrayValue = value === null ? [] : value.split(options.arrayFormatSeparator).map((item) => decode(item, options)); + if (accumulator[key] === void 0) { + accumulator[key] = arrayValue; + return; + } + accumulator[key] = [].concat(accumulator[key], arrayValue); + }; + default: + return (key, value, accumulator) => { + if (accumulator[key] === void 0) { + accumulator[key] = value; + return; + } + accumulator[key] = [].concat(accumulator[key], value); + }; + } + } + function validateArrayFormatSeparator(value) { + if (typeof value !== "string" || value.length !== 1) { + throw new TypeError("arrayFormatSeparator must be single character string"); + } + } + function encode(value, options) { + if (options.encode) { + return options.strict ? strictUriEncode(value) : encodeURIComponent(value); + } + return value; + } + function decode(value, options) { + if (options.decode) { + return decodeComponent(value); + } + return value; + } + function keysSorter(input) { + if (Array.isArray(input)) { + return input.sort(); + } + if (typeof input === "object") { + return keysSorter(Object.keys(input)).sort((a, b) => Number(a) - Number(b)).map((key) => input[key]); + } + return input; + } + function removeHash(input) { + const hashStart = input.indexOf("#"); + if (hashStart !== -1) { + input = input.slice(0, hashStart); + } + return input; + } + function getHash(url) { + let hash = ""; + const hashStart = url.indexOf("#"); + if (hashStart !== -1) { + hash = url.slice(hashStart); + } + return hash; + } + function extract(input) { + input = removeHash(input); + const queryStart = input.indexOf("?"); + if (queryStart === -1) { + return ""; + } + return input.slice(queryStart + 1); + } + function parseValue(value, options) { + if (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === "string" && value.trim() !== "")) { + value = Number(value); + } else if (options.parseBooleans && value !== null && (value.toLowerCase() === "true" || value.toLowerCase() === "false")) { + value = value.toLowerCase() === "true"; + } + return value; + } + function parse(query, options) { + options = Object.assign({ + decode: true, + sort: true, + arrayFormat: "none", + arrayFormatSeparator: ",", + parseNumbers: false, + parseBooleans: false + }, options); + validateArrayFormatSeparator(options.arrayFormatSeparator); + const formatter = parserForArrayFormat(options); + const ret = Object.create(null); + if (typeof query !== "string") { + return ret; + } + query = query.trim().replace(/^[?#&]/, ""); + if (!query) { + return ret; + } + for (const param of query.split("&")) { + if (param === "") { + continue; + } + let [key, value] = splitOnFirst(options.decode ? param.replace(/\+/g, " ") : param, "="); + value = value === void 0 ? null : ["comma", "separator", "bracket-separator"].includes(options.arrayFormat) ? value : decode(value, options); + formatter(decode(key, options), value, ret); + } + for (const key of Object.keys(ret)) { + const value = ret[key]; + if (typeof value === "object" && value !== null) { + for (const k of Object.keys(value)) { + value[k] = parseValue(value[k], options); + } + } else { + ret[key] = parseValue(value, options); + } + } + if (options.sort === false) { + return ret; + } + return (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => { + const value = ret[key]; + if (Boolean(value) && typeof value === "object" && !Array.isArray(value)) { + result[key] = keysSorter(value); + } else { + result[key] = value; + } + return result; + }, Object.create(null)); + } + exports2.extract = extract; + exports2.parse = parse; + exports2.stringify = (object, options) => { + if (!object) { + return ""; + } + options = Object.assign({ + encode: true, + strict: true, + arrayFormat: "none", + arrayFormatSeparator: "," + }, options); + validateArrayFormatSeparator(options.arrayFormatSeparator); + const shouldFilter = (key) => options.skipNull && isNullOrUndefined(object[key]) || options.skipEmptyString && object[key] === ""; + const formatter = encoderForArrayFormat(options); + const objectCopy = {}; + for (const key of Object.keys(object)) { + if (!shouldFilter(key)) { + objectCopy[key] = object[key]; + } + } + const keys = Object.keys(objectCopy); + if (options.sort !== false) { + keys.sort(options.sort); + } + return keys.map((key) => { + const value = object[key]; + if (value === void 0) { + return ""; + } + if (value === null) { + return encode(key, options); + } + if (Array.isArray(value)) { + if (value.length === 0 && options.arrayFormat === "bracket-separator") { + return encode(key, options) + "[]"; + } + return value.reduce(formatter(key), []).join("&"); + } + return encode(key, options) + "=" + encode(value, options); + }).filter((x) => x.length > 0).join("&"); + }; + exports2.parseUrl = (url, options) => { + options = Object.assign({ + decode: true + }, options); + const [url_, hash] = splitOnFirst(url, "#"); + return Object.assign({ + url: url_.split("?")[0] || "", + query: parse(extract(url), options) + }, options && options.parseFragmentIdentifier && hash ? { fragmentIdentifier: decode(hash, options) } : {}); + }; + exports2.stringifyUrl = (object, options) => { + options = Object.assign({ + encode: true, + strict: true, + [encodeFragmentIdentifier]: true + }, options); + const url = removeHash(object.url).split("?")[0] || ""; + const queryFromUrl = exports2.extract(object.url); + const parsedQueryFromUrl = exports2.parse(queryFromUrl, { sort: false }); + const query = Object.assign(parsedQueryFromUrl, object.query); + let queryString2 = exports2.stringify(query, options); + if (queryString2) { + queryString2 = `?${queryString2}`; + } + let hash = getHash(object.url); + if (object.fragmentIdentifier) { + hash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`; + } + return `${url}${queryString2}${hash}`; + }; + exports2.pick = (input, filter, options) => { + options = Object.assign({ + parseFragmentIdentifier: true, + [encodeFragmentIdentifier]: false + }, options); + const { url, query, fragmentIdentifier } = exports2.parseUrl(input, options); + return exports2.stringifyUrl({ + url, + query: filterObject(query, filter), + fragmentIdentifier + }, options); + }; + exports2.exclude = (input, filter, options) => { + const exclusionFilter = Array.isArray(filter) ? (key) => !filter.includes(key) : (key, value) => !filter(key, value); + return exports2.pick(input, exclusionFilter, options); + }; + } +}); + +// node_modules/glob-to-regexp/index.js +var require_glob_to_regexp = __commonJS({ + "node_modules/glob-to-regexp/index.js"(exports2, module2) { + module2.exports = function(glob, opts) { + if (typeof glob !== "string") { + throw new TypeError("Expected a string"); + } + var str = String(glob); + var reStr = ""; + var extended = opts ? !!opts.extended : false; + var globstar = opts ? !!opts.globstar : false; + var inGroup = false; + var flags = opts && typeof opts.flags === "string" ? opts.flags : ""; + var c; + for (var i = 0, len = str.length; i < len; i++) { + c = str[i]; + switch (c) { + case "/": + case "$": + case "^": + case "+": + case ".": + case "(": + case ")": + case "=": + case "!": + case "|": + reStr += "\\" + c; + break; + case "?": + if (extended) { + reStr += "."; + break; + } + case "[": + case "]": + if (extended) { + reStr += c; + break; + } + case "{": + if (extended) { + inGroup = true; + reStr += "("; + break; + } + case "}": + if (extended) { + inGroup = false; + reStr += ")"; + break; + } + case ",": + if (inGroup) { + reStr += "|"; + break; + } + reStr += "\\" + c; + break; + case "*": + var prevChar = str[i - 1]; + var starCount = 1; + while (str[i + 1] === "*") { + starCount++; + i++; + } + var nextChar = str[i + 1]; + if (!globstar) { + reStr += ".*"; + } else { + var isGlobstar = starCount > 1 && (prevChar === "/" || prevChar === void 0) && (nextChar === "/" || nextChar === void 0); + if (isGlobstar) { + reStr += "((?:[^/]*(?:/|$))*)"; + i++; + } else { + reStr += "([^/]*)"; + } + } + break; + default: + reStr += c; + } + } + if (!flags || !~flags.indexOf("g")) { + reStr = "^" + reStr + "$"; + } + return new RegExp(reStr, flags); + }; + } +}); + +// src/main.ts +__export(exports, { + default: () => LocalRestApi +}); +var import_obsidian2 = __toModule(require("obsidian")); +var https = __toModule(require("https")); +var http2 = __toModule(require("http")); +var import_node_forge2 = __toModule(require_lib()); + +// src/requestHandler.ts +var import_obsidian = __toModule(require("obsidian")); +var import_obsidian_daily_notes_interface = __toModule(require_main()); +var import_obsidian_dataview = __toModule(require_lib2()); +var import_node_forge = __toModule(require_lib()); +var import_express = __toModule(require_express2()); +var import_http = __toModule(require("http")); +var import_cors = __toModule(require_lib5()); +var import_mime_types = __toModule(require_mime_types()); +var import_body_parser = __toModule(require_body_parser()); +var import_json_logic_js = __toModule(require_logic()); +var import_response_time = __toModule(require_response_time()); +var import_query_string = __toModule(require_query_string()); +var import_glob_to_regexp = __toModule(require_glob_to_regexp()); +var import_path = __toModule(require("path")); + +// src/types.ts +var ErrorCode; +(function(ErrorCode2) { + ErrorCode2[ErrorCode2["TextContentEncodingRequired"] = 40010] = "TextContentEncodingRequired"; + ErrorCode2[ErrorCode2["ContentTypeSpecificationRequired"] = 40011] = "ContentTypeSpecificationRequired"; + ErrorCode2[ErrorCode2["InvalidContentForContentType"] = 40015] = "InvalidContentForContentType"; + ErrorCode2[ErrorCode2["InvalidContentInsertionPositionValue"] = 40050] = "InvalidContentInsertionPositionValue"; + ErrorCode2[ErrorCode2["MissingHeadingHeader"] = 40051] = "MissingHeadingHeader"; + ErrorCode2[ErrorCode2["InvalidHeadingHeader"] = 40052] = "InvalidHeadingHeader"; + ErrorCode2[ErrorCode2["PeriodIsNotEnabled"] = 40060] = "PeriodIsNotEnabled"; + ErrorCode2[ErrorCode2["InvalidFilterQuery"] = 40070] = "InvalidFilterQuery"; + ErrorCode2[ErrorCode2["ApiKeyAuthorizationRequired"] = 40101] = "ApiKeyAuthorizationRequired"; + ErrorCode2[ErrorCode2["PeriodDoesNotExist"] = 40460] = "PeriodDoesNotExist"; + ErrorCode2[ErrorCode2["PeriodicNoteDoesNotExist"] = 40461] = "PeriodicNoteDoesNotExist"; + ErrorCode2[ErrorCode2["RequestMethodValidOnlyForFiles"] = 40510] = "RequestMethodValidOnlyForFiles"; +})(ErrorCode || (ErrorCode = {})); + +// src/utils.ts +function findHeadingBoundary(fileCache, headingPath) { + const reversedHeadingPath = [...headingPath].reverse(); + const cursorHeadingPath = []; + for (const [headingIdx, heading] of fileCache.headings.entries()) { + cursorHeadingPath[heading.level] = heading; + cursorHeadingPath.splice(heading.level + 1); + const reversedCurrentCursor = [ + ...cursorHeadingPath.map((h) => h.heading) + ].reverse(); + let matchesRequestedHeading = true; + for (const [idx, element] of reversedHeadingPath.entries()) { + if (reversedCurrentCursor[idx] != element) { + matchesRequestedHeading = false; + break; + } + } + if (matchesRequestedHeading) { + const start = heading.position.end; + const endHeading = fileCache.headings.slice(headingIdx + 1).find((endHeading2) => endHeading2.level <= heading.level); + const end = endHeading == null ? void 0 : endHeading.position.start; + return { + start, + end + }; + } + } + return null; +} +function getSplicePosition(fileLines, heading, insert, ignoreNewLines) { + var _a, _b; + let splicePosition = insert === false ? (_b = (_a = heading.end) == null ? void 0 : _a.line) != null ? _b : fileLines.length : heading.start.line + 1; + if (!ignoreNewLines || insert) { + return splicePosition; + } + while (fileLines[splicePosition - 1] === "") { + splicePosition--; + } + return splicePosition; +} +function toArrayBuffer(arr) { + if (arr instanceof Uint8Array) { + return arr.buffer.slice(arr.byteOffset, arr.byteOffset + arr.byteLength); + } + if (arr instanceof DataView) { + return arr.buffer.slice(arr.byteOffset, arr.byteOffset + arr.byteLength); + } + if (arr instanceof ArrayBuffer) { + return arr; + } + const encoder = new TextEncoder(); + return encoder.encode(JSON.stringify(arr)).buffer; +} +function getCertificateValidityDays(certificate) { + return (certificate.validity.notAfter.getTime() - new Date().getTime()) / (1e3 * 3600 * 24); +} +function getCertificateIsUptoStandards(certificate) { + const extension = certificate.getExtension("subjectAltName"); + let hasStandardsFlaw = false; + if (extension && extension.altNames) { + extension.altNames.forEach((altName) => { + if (altName.type === 7 && altName.value === "\0\0\0\0") { + hasStandardsFlaw = true; + } + }); + } + return !hasStandardsFlaw; +} + +// src/constants.ts +var CERT_NAME = "obsidian-local-rest-api.crt"; +var DEFAULT_SETTINGS = { + port: 27124, + insecurePort: 27123, + enableInsecureServer: false +}; +var ERROR_CODE_MESSAGES = { + [ErrorCode.ApiKeyAuthorizationRequired]: "Authorization required. Find your API Key in the 'Local REST API' section of your Obsidian settings.", + [ErrorCode.ContentTypeSpecificationRequired]: "Content-Type header required; this API accepts data in multiple content-types and you must indicate the content-type of your request body via the Content-Type header.", + [ErrorCode.InvalidContentInsertionPositionValue]: "Invalid 'Content-Insertion-Position' header value.", + [ErrorCode.InvalidContentForContentType]: "Your request body could not be processed as the content-type specified in your Content-Type header.", + [ErrorCode.InvalidHeadingHeader]: "No heading in specified file could be found matching the heading specified in 'Heading' header.", + [ErrorCode.MissingHeadingHeader]: "'Heading' header is required for identifying where to insert content.", + [ErrorCode.PeriodDoesNotExist]: "Specified period does not exist.", + [ErrorCode.PeriodIsNotEnabled]: "Specified period is not enabled.", + [ErrorCode.PeriodicNoteDoesNotExist]: "Periodic note does not exist for the specified period.", + [ErrorCode.RequestMethodValidOnlyForFiles]: "Request method is valid only for file paths, not directories.", + [ErrorCode.TextContentEncodingRequired]: "Incoming content must be text data and have an appropriate text/* Content-type header set (e.g. text/markdown).", + [ErrorCode.InvalidFilterQuery]: "The query you provided could not be processed." +}; +var ContentTypes; +(function(ContentTypes2) { + ContentTypes2["json"] = "application/json"; + ContentTypes2["markdown"] = "text/markdown"; + ContentTypes2["olrapiNoteJson"] = "application/vnd.olrapi.note+json"; + ContentTypes2["jsonLogic"] = "application/vnd.olrapi.jsonlogic+json"; + ContentTypes2["dataviewDql"] = "application/vnd.olrapi.dataview.dql+txt"; +})(ContentTypes || (ContentTypes = {})); +var DefaultBearerTokenHeaderName = "Authorization"; +var DefaultBindingHost = "127.0.0.1"; +var LicenseUrl = "https://raw.githubusercontent.com/coddingtonbear/obsidian-local-rest-api/main/LICENSE"; +var MaximumRequestSize = "1024mb"; + +// src/requestHandler.ts +var RequestHandler = class { + constructor(app, manifest, settings) { + this.app = app; + this.manifest = manifest; + this.api = (0, import_express.default)(); + this.settings = settings; + this.api.set("json spaces", 2); + import_json_logic_js.default.add_operation("glob", (pattern, field) => { + if (typeof field === "string" && typeof pattern === "string") { + const glob = (0, import_glob_to_regexp.default)(pattern); + return glob.test(field); + } + return false; + }); + import_json_logic_js.default.add_operation("regexp", (pattern, field) => { + if (typeof field === "string" && typeof pattern === "string") { + const rex = new RegExp(pattern); + return rex.test(field); + } + return false; + }); + } + requestIsAuthenticated(req) { + var _a; + const authorizationHeader = req.get((_a = this.settings.authorizationHeaderName) != null ? _a : "Authorization"); + if (authorizationHeader === `Bearer ${this.settings.apiKey}`) { + return true; + } + return false; + } + authenticationMiddleware(req, res, next) { + return __async(this, null, function* () { + const authenticationExemptRoutes = ["/", `/${CERT_NAME}`]; + if (!authenticationExemptRoutes.includes(req.path) && !this.requestIsAuthenticated(req)) { + this.returnCannedResponse(res, { + errorCode: ErrorCode.ApiKeyAuthorizationRequired + }); + return; + } + next(); + }); + } + getFileMetadataObject(file) { + return __async(this, null, function* () { + var _a, _b, _c; + const cache = this.app.metadataCache.getFileCache(file); + const frontmatter = __spreadValues({}, (_a = cache.frontmatter) != null ? _a : {}); + delete frontmatter.position; + const directTags = (_c = ((_b = cache.tags) != null ? _b : []).map((tag) => tag.tag)) != null ? _c : []; + const frontmatterTags = Array.isArray(frontmatter.tags) ? frontmatter.tags : []; + const filteredTags = [...frontmatterTags, ...directTags].map((tag) => tag.toString().replace(/^#/, "")).filter((value, index, self2) => self2.indexOf(value) === index); + return { + tags: filteredTags, + frontmatter, + stat: file.stat, + path: file.path, + content: yield this.app.vault.cachedRead(file) + }; + }); + } + getResponseMessage({ + statusCode = 400, + message: message2, + errorCode + }) { + const errorMessages = []; + if (errorCode) { + errorMessages.push(ERROR_CODE_MESSAGES[errorCode]); + } else { + errorMessages.push(import_http.default.STATUS_CODES[statusCode]); + } + if (message2) { + errorMessages.push(message2); + } + return errorMessages.join("\n"); + } + getStatusCode({ statusCode, errorCode }) { + if (statusCode) { + return statusCode; + } + return Math.floor(errorCode / 100); + } + returnCannedResponse(res, { statusCode, message: message2, errorCode }) { + const response = { + message: this.getResponseMessage({ statusCode, message: message2, errorCode }), + errorCode: errorCode != null ? errorCode : statusCode * 100 + }; + res.status(this.getStatusCode({ statusCode, errorCode })).json(response); + } + root(req, res) { + let certificate; + try { + certificate = import_node_forge.default.pki.certificateFromPem(this.settings.crypto.cert); + } catch (e) { + } + res.status(200).json({ + status: "OK", + versions: { + obsidian: import_obsidian.apiVersion, + self: this.manifest.version + }, + service: "Obsidian Local REST API", + authenticated: this.requestIsAuthenticated(req), + certificateInfo: this.requestIsAuthenticated(req) && certificate ? { + validityDays: getCertificateValidityDays(certificate), + regenerateRecommended: !getCertificateIsUptoStandards(certificate) + } : void 0 + }); + } + _vaultGet(path2, req, res) { + return __async(this, null, function* () { + if (!path2 || path2.endsWith("/")) { + const files = [ + ...new Set(this.app.vault.getFiles().map((e) => e.path).filter((filename) => filename.startsWith(path2)).map((filename) => { + const subPath = filename.slice(path2.length); + if (subPath.indexOf("/") > -1) { + return subPath.slice(0, subPath.indexOf("/") + 1); + } + return subPath; + })) + ]; + files.sort(); + if (files.length === 0) { + this.returnCannedResponse(res, { statusCode: 404 }); + return; + } + res.json({ + files + }); + } else { + const exists = yield this.app.vault.adapter.exists(path2); + if (exists && (yield this.app.vault.adapter.stat(path2)).type === "file") { + const content = yield this.app.vault.adapter.readBinary(path2); + const mimeType = import_mime_types.default.lookup(path2); + res.set({ + "Content-Disposition": `attachment; filename="${encodeURI(path2).replace(",", "%2C")}"`, + "Content-Type": `${mimeType}` + (mimeType == ContentTypes.markdown ? "; charset=utf-8" : "") + }); + if (req.headers.accept === ContentTypes.olrapiNoteJson) { + const file = this.app.vault.getAbstractFileByPath(path2); + res.setHeader("Content-Type", ContentTypes.olrapiNoteJson); + res.send(JSON.stringify(yield this.getFileMetadataObject(file), null, 2)); + return; + } + res.send(Buffer.from(content)); + } else { + this.returnCannedResponse(res, { + statusCode: 404 + }); + return; + } + } + }); + } + vaultGet(req, res) { + return __async(this, null, function* () { + const path2 = req.params[0]; + return this._vaultGet(path2, req, res); + }); + } + _vaultPut(filepath, req, res) { + return __async(this, null, function* () { + if (!filepath || filepath.endsWith("/")) { + this.returnCannedResponse(res, { + errorCode: ErrorCode.RequestMethodValidOnlyForFiles + }); + return; + } + try { + yield this.app.vault.createFolder(import_path.default.dirname(filepath)); + } catch (e) { + } + if (typeof req.body === "string") { + yield this.app.vault.adapter.write(filepath, req.body); + } else { + yield this.app.vault.adapter.writeBinary(filepath, toArrayBuffer(req.body)); + } + this.returnCannedResponse(res, { statusCode: 204 }); + return; + }); + } + vaultPut(req, res) { + return __async(this, null, function* () { + const path2 = req.params[0]; + return this._vaultPut(path2, req, res); + }); + } + _vaultPatch(path2, req, res) { + return __async(this, null, function* () { + const headingBoundary = req.get("Heading-Boundary") || "::"; + const heading = (req.get("Heading") || "").split(headingBoundary).filter(Boolean); + const contentPosition = req.get("Content-Insertion-Position"); + let insert = false; + let aboveNewLine = false; + if (!path2 || path2.endsWith("/")) { + this.returnCannedResponse(res, { + errorCode: ErrorCode.RequestMethodValidOnlyForFiles + }); + return; + } + if (contentPosition === void 0) { + insert = false; + } else if (contentPosition === "beginning") { + insert = true; + } else if (contentPosition === "end") { + insert = false; + } else { + this.returnCannedResponse(res, { + errorCode: ErrorCode.InvalidContentInsertionPositionValue + }); + return; + } + if (typeof req.body != "string") { + this.returnCannedResponse(res, { + errorCode: ErrorCode.TextContentEncodingRequired + }); + return; + } + if (typeof req.get("Content-Insertion-Ignore-Newline") == "string") { + aboveNewLine = req.get("Content-Insertion-Ignore-Newline").toLowerCase() == "true"; + } + if (!heading.length) { + this.returnCannedResponse(res, { + errorCode: ErrorCode.MissingHeadingHeader + }); + return; + } + const file = this.app.vault.getAbstractFileByPath(path2); + if (!(file instanceof import_obsidian.TFile)) { + this.returnCannedResponse(res, { + statusCode: 404 + }); + return; + } + const cache = this.app.metadataCache.getFileCache(file); + const position = findHeadingBoundary(cache, heading); + if (!position) { + this.returnCannedResponse(res, { + errorCode: ErrorCode.InvalidHeadingHeader + }); + return; + } + const fileContents = yield this.app.vault.read(file); + const fileLines = fileContents.split("\n"); + const splicePosition = getSplicePosition(fileLines, position, insert, aboveNewLine); + fileLines.splice(splicePosition, 0, req.body); + const content = fileLines.join("\n"); + yield this.app.vault.adapter.write(path2, content); + res.status(200).send(content); + }); + } + vaultPatch(req, res) { + return __async(this, null, function* () { + const path2 = req.params[0]; + return this._vaultPatch(path2, req, res); + }); + } + _vaultPost(filepath, req, res) { + return __async(this, null, function* () { + if (!filepath || filepath.endsWith("/")) { + this.returnCannedResponse(res, { + errorCode: ErrorCode.RequestMethodValidOnlyForFiles + }); + return; + } + if (typeof req.body != "string") { + this.returnCannedResponse(res, { + errorCode: ErrorCode.TextContentEncodingRequired + }); + return; + } + try { + yield this.app.vault.createFolder(import_path.default.dirname(filepath)); + } catch (e) { + } + let fileContents = ""; + const file = this.app.vault.getAbstractFileByPath(filepath); + if (file instanceof import_obsidian.TFile) { + fileContents = yield this.app.vault.read(file); + if (!fileContents.endsWith("\n")) { + fileContents += "\n"; + } + } + fileContents += req.body; + yield this.app.vault.adapter.write(filepath, fileContents); + this.returnCannedResponse(res, { statusCode: 204 }); + return; + }); + } + vaultPost(req, res) { + return __async(this, null, function* () { + const path2 = req.params[0]; + return this._vaultPost(path2, req, res); + }); + } + _vaultDelete(path2, req, res) { + return __async(this, null, function* () { + if (!path2 || path2.endsWith("/")) { + this.returnCannedResponse(res, { + errorCode: ErrorCode.RequestMethodValidOnlyForFiles + }); + return; + } + const pathExists = yield this.app.vault.adapter.exists(path2); + if (!pathExists) { + this.returnCannedResponse(res, { statusCode: 404 }); + return; + } + yield this.app.vault.adapter.remove(path2); + this.returnCannedResponse(res, { statusCode: 204 }); + return; + }); + } + vaultDelete(req, res) { + return __async(this, null, function* () { + const path2 = req.params[0]; + return this._vaultDelete(path2, req, res); + }); + } + getPeriodicNoteInterface() { + return { + daily: { + settings: import_obsidian_daily_notes_interface.default.getDailyNoteSettings(), + loaded: import_obsidian_daily_notes_interface.default.appHasDailyNotesPluginLoaded(), + create: import_obsidian_daily_notes_interface.default.createDailyNote, + get: import_obsidian_daily_notes_interface.default.getDailyNote, + getAll: import_obsidian_daily_notes_interface.default.getAllDailyNotes + }, + weekly: { + settings: import_obsidian_daily_notes_interface.default.getWeeklyNoteSettings(), + loaded: import_obsidian_daily_notes_interface.default.appHasWeeklyNotesPluginLoaded(), + create: import_obsidian_daily_notes_interface.default.createWeeklyNote, + get: import_obsidian_daily_notes_interface.default.getWeeklyNote, + getAll: import_obsidian_daily_notes_interface.default.getAllWeeklyNotes + }, + monthly: { + settings: import_obsidian_daily_notes_interface.default.getMonthlyNoteSettings(), + loaded: import_obsidian_daily_notes_interface.default.appHasMonthlyNotesPluginLoaded(), + create: import_obsidian_daily_notes_interface.default.createMonthlyNote, + get: import_obsidian_daily_notes_interface.default.getMonthlyNote, + getAll: import_obsidian_daily_notes_interface.default.getAllMonthlyNotes + }, + quarterly: { + settings: import_obsidian_daily_notes_interface.default.getQuarterlyNoteSettings(), + loaded: import_obsidian_daily_notes_interface.default.appHasQuarterlyNotesPluginLoaded(), + create: import_obsidian_daily_notes_interface.default.createQuarterlyNote, + get: import_obsidian_daily_notes_interface.default.getQuarterlyNote, + getAll: import_obsidian_daily_notes_interface.default.getAllQuarterlyNotes + }, + yearly: { + settings: import_obsidian_daily_notes_interface.default.getYearlyNoteSettings(), + loaded: import_obsidian_daily_notes_interface.default.appHasYearlyNotesPluginLoaded(), + create: import_obsidian_daily_notes_interface.default.createYearlyNote, + get: import_obsidian_daily_notes_interface.default.getYearlyNote, + getAll: import_obsidian_daily_notes_interface.default.getAllYearlyNotes + } + }; + } + periodicGetInterface(period) { + const periodic = this.getPeriodicNoteInterface(); + if (!periodic[period]) { + return [null, ErrorCode.PeriodDoesNotExist]; + } + if (!periodic[period].loaded) { + return [null, ErrorCode.PeriodIsNotEnabled]; + } + return [periodic[period], null]; + } + periodicGetNote(periodName) { + const [period, err] = this.periodicGetInterface(periodName); + if (err) { + return [null, err]; + } + const now = window.moment(Date.now()); + const all = period.getAll(); + const file = period.get(now, all); + if (!file) { + return [null, ErrorCode.PeriodicNoteDoesNotExist]; + } + return [file, null]; + } + periodicGetOrCreateNote(periodName) { + return __async(this, null, function* () { + const [gottenFile, err] = this.periodicGetNote(periodName); + let file = gottenFile; + if (err === ErrorCode.PeriodicNoteDoesNotExist) { + const [period] = this.periodicGetInterface(periodName); + const now = window.moment(Date.now()); + file = yield period.create(now); + const metadataCachePromise = new Promise((resolve) => { + let cache = null; + const interval = setInterval(() => { + cache = this.app.metadataCache.getFileCache(file); + if (cache) { + clearInterval(interval); + resolve(cache); + } + }, 100); + }); + yield metadataCachePromise; + } else if (err) { + return [null, err]; + } + return [file, null]; + }); + } + redirectToVaultPath(file, req, res, handler) { + const path2 = file.path; + res.set("Content-Location", encodeURI(path2)); + return handler(path2, req, res); + } + periodicGet(req, res) { + return __async(this, null, function* () { + const [file, err] = this.periodicGetNote(req.params.period); + if (err) { + this.returnCannedResponse(res, { errorCode: err }); + return; + } + return this.redirectToVaultPath(file, req, res, this._vaultGet.bind(this)); + }); + } + periodicPut(req, res) { + return __async(this, null, function* () { + const [file, err] = yield this.periodicGetOrCreateNote(req.params.period); + if (err) { + this.returnCannedResponse(res, { errorCode: err }); + return; + } + return this.redirectToVaultPath(file, req, res, this._vaultPut.bind(this)); + }); + } + periodicPost(req, res) { + return __async(this, null, function* () { + const [file, err] = yield this.periodicGetOrCreateNote(req.params.period); + if (err) { + this.returnCannedResponse(res, { errorCode: err }); + return; + } + return this.redirectToVaultPath(file, req, res, this._vaultPost.bind(this)); + }); + } + periodicPatch(req, res) { + return __async(this, null, function* () { + const [file, err] = yield this.periodicGetOrCreateNote(req.params.period); + if (err) { + this.returnCannedResponse(res, { errorCode: err }); + return; + } + return this.redirectToVaultPath(file, req, res, this._vaultPatch.bind(this)); + }); + } + periodicDelete(req, res) { + return __async(this, null, function* () { + const [file, err] = this.periodicGetNote(req.params.period); + if (err) { + this.returnCannedResponse(res, { errorCode: err }); + return; + } + return this.redirectToVaultPath(file, req, res, this._vaultDelete.bind(this)); + }); + } + activeFileGet(req, res) { + return __async(this, null, function* () { + const file = this.app.workspace.getActiveFile(); + return this.redirectToVaultPath(file, req, res, this._vaultGet.bind(this)); + }); + } + activeFilePut(req, res) { + return __async(this, null, function* () { + const file = this.app.workspace.getActiveFile(); + return this.redirectToVaultPath(file, req, res, this._vaultPut.bind(this)); + }); + } + activeFilePost(req, res) { + return __async(this, null, function* () { + const file = this.app.workspace.getActiveFile(); + return this.redirectToVaultPath(file, req, res, this._vaultPost.bind(this)); + }); + } + activeFilePatch(req, res) { + return __async(this, null, function* () { + const file = this.app.workspace.getActiveFile(); + return this.redirectToVaultPath(file, req, res, this._vaultPatch.bind(this)); + }); + } + activeFileDelete(req, res) { + return __async(this, null, function* () { + const file = this.app.workspace.getActiveFile(); + return this.redirectToVaultPath(file, req, res, this._vaultDelete.bind(this)); + }); + } + commandGet(req, res) { + return __async(this, null, function* () { + const commands = []; + for (const commandName in this.app.commands.commands) { + commands.push({ + id: commandName, + name: this.app.commands.commands[commandName].name + }); + } + const commandResponse = { + commands + }; + res.json(commandResponse); + }); + } + commandPost(req, res) { + return __async(this, null, function* () { + const cmd = this.app.commands.commands[req.params.commandId]; + if (!cmd) { + this.returnCannedResponse(res, { statusCode: 404 }); + return; + } + try { + this.app.commands.executeCommandById(req.params.commandId); + } catch (e) { + this.returnCannedResponse(res, { statusCode: 500, message: e.message }); + return; + } + this.returnCannedResponse(res, { statusCode: 204 }); + return; + }); + } + searchSimplePost(req, res) { + return __async(this, null, function* () { + var _a; + const results = []; + const query = req.query.query; + const contextLength = (_a = parseInt(req.query.contextLength, 10)) != null ? _a : 100; + const search = (0, import_obsidian.prepareSimpleSearch)(query); + for (const file of this.app.vault.getMarkdownFiles()) { + const cachedContents = yield this.app.vault.cachedRead(file); + const result = search(cachedContents); + if (result) { + const contextMatches = []; + for (const match of result.matches) { + contextMatches.push({ + match: { + start: match[0], + end: match[1] + }, + context: cachedContents.slice(Math.max(match[0] - contextLength, 0), match[1] + contextLength) + }); + } + results.push({ + filename: file.path, + score: result.score, + matches: contextMatches + }); + } + } + results.sort((a, b) => a.score > b.score ? 1 : -1); + res.json(results); + }); + } + valueIsSaneTruthy(value) { + if (value === void 0 || value === null) { + return false; + } else if (Array.isArray(value)) { + return value.length > 0; + } else if (typeof value === "object") { + return Object.keys(value).length > 0; + } + return Boolean(value); + } + searchQueryPost(req, res) { + return __async(this, null, function* () { + const dataviewApi = (0, import_obsidian_dataview.getAPI)(); + const handlers = { + [ContentTypes.dataviewDql]: () => __async(this, null, function* () { + const results = []; + const dataviewResults = yield dataviewApi.tryQuery(req.body); + const fileColumn = dataviewApi.evaluationContext.settings.tableIdColumnName; + if (dataviewResults.type !== "table") { + throw new Error("Only TABLE dataview queries are supported."); + } + if (!dataviewResults.headers.includes(fileColumn)) { + throw new Error("TABLE WITHOUT ID queries are not supported."); + } + for (const dataviewResult of dataviewResults.values) { + const fieldValues = {}; + dataviewResults.headers.forEach((value, index) => { + if (value !== fileColumn) { + fieldValues[value] = dataviewResult[index]; + } + }); + results.push({ + filename: dataviewResult[0].path, + result: fieldValues + }); + } + return results; + }), + [ContentTypes.jsonLogic]: () => __async(this, null, function* () { + const results = []; + for (const file of this.app.vault.getMarkdownFiles()) { + const fileContext = yield this.getFileMetadataObject(file); + try { + const fileResult = import_json_logic_js.default.apply(req.body, fileContext); + if (this.valueIsSaneTruthy(fileResult)) { + results.push({ + filename: file.path, + result: fileResult + }); + } + } catch (e) { + throw new Error(`${e.message} (while processing ${file.path})`); + } + } + return results; + }) + }; + const contentType = req.headers["content-type"]; + if (!handlers[contentType]) { + this.returnCannedResponse(res, { + errorCode: ErrorCode.ContentTypeSpecificationRequired + }); + return; + } + try { + const results = yield handlers[contentType](); + res.json(results); + } catch (e) { + this.returnCannedResponse(res, { + errorCode: ErrorCode.InvalidFilterQuery, + message: `${e.message}` + }); + return; + } + }); + } + openPost(req, res) { + return __async(this, null, function* () { + const path2 = req.params[0]; + const query = import_query_string.default.parseUrl(req.originalUrl, { + parseBooleans: true + }).query; + const newLeaf = Boolean(query.newLeaf); + this.app.workspace.openLinkText(path2, "/", newLeaf); + res.json(); + }); + } + certificateGet(req, res) { + return __async(this, null, function* () { + res.set("Content-type", `application/octet-stream; filename="${CERT_NAME}"`); + res.status(200).send(this.settings.crypto.cert); + }); + } + notFoundHandler(req, res, next) { + return __async(this, null, function* () { + this.returnCannedResponse(res, { + statusCode: 404 + }); + return; + }); + } + errorHandler(err, req, res, next) { + return __async(this, null, function* () { + if (err instanceof SyntaxError) { + this.returnCannedResponse(res, { + errorCode: ErrorCode.InvalidContentForContentType + }); + return; + } + this.returnCannedResponse(res, { + statusCode: 500, + message: err.message + }); + return; + }); + } + setupRouter() { + this.api.use((req, res, next) => { + const originalSend = res.send; + res.send = function(body, ...args2) { + console.log(`[REST API] ${req.method} ${req.url} => ${res.statusCode}`); + return originalSend.apply(res, [body, ...args2]); + }; + next(); + }); + this.api.use((0, import_response_time.default)()); + this.api.use((0, import_cors.default)()); + this.api.use(this.authenticationMiddleware.bind(this)); + this.api.use(import_body_parser.default.text({ type: "text/*", limit: MaximumRequestSize })); + this.api.use(import_body_parser.default.text({ + type: ContentTypes.dataviewDql, + limit: MaximumRequestSize + })); + this.api.use(import_body_parser.default.json({ type: ContentTypes.json, limit: MaximumRequestSize })); + this.api.use(import_body_parser.default.json({ + type: ContentTypes.olrapiNoteJson, + limit: MaximumRequestSize + })); + this.api.use(import_body_parser.default.json({ + type: ContentTypes.jsonLogic, + limit: MaximumRequestSize + })); + this.api.use(import_body_parser.default.raw({ type: "*/*", limit: MaximumRequestSize })); + this.api.route("/active/").get(this.activeFileGet.bind(this)).put(this.activeFilePut.bind(this)).patch(this.activeFilePatch.bind(this)).post(this.activeFilePost.bind(this)).delete(this.activeFileDelete.bind(this)); + this.api.route("/vault/(.*)").get(this.vaultGet.bind(this)).put(this.vaultPut.bind(this)).patch(this.vaultPatch.bind(this)).post(this.vaultPost.bind(this)).delete(this.vaultDelete.bind(this)); + this.api.route("/periodic/:period/").get(this.periodicGet.bind(this)).put(this.periodicPut.bind(this)).patch(this.periodicPatch.bind(this)).post(this.periodicPost.bind(this)).delete(this.periodicDelete.bind(this)); + this.api.route("/commands/").get(this.commandGet.bind(this)); + this.api.route("/commands/:commandId/").post(this.commandPost.bind(this)); + this.api.route("/search/").post(this.searchQueryPost.bind(this)); + this.api.route("/search/simple/").post(this.searchSimplePost.bind(this)); + this.api.route("/open/(.*)").post(this.openPost.bind(this)); + this.api.get(`/${CERT_NAME}`, this.certificateGet.bind(this)); + this.api.get("/", this.root.bind(this)); + this.api.use(this.notFoundHandler.bind(this)); + this.api.use(this.errorHandler.bind(this)); + } +}; + +// src/main.ts +var LocalRestApi = class extends import_obsidian2.Plugin { + constructor() { + super(...arguments); + this.secureServer = null; + this.insecureServer = null; + } + onload() { + return __async(this, null, function* () { + this.refreshServerState = this.debounce(this._refreshServerState.bind(this), 1e3); + yield this.loadSettings(); + this.requestHandler = new RequestHandler(this.app, this.manifest, this.settings); + this.requestHandler.setupRouter(); + if (!this.settings.apiKey) { + this.settings.apiKey = import_node_forge2.default.md.sha256.create().update(import_node_forge2.default.random.getBytesSync(128)).digest().toHex(); + this.saveSettings(); + } + if (!this.settings.crypto) { + const expiry = new Date(); + const today = new Date(); + expiry.setDate(today.getDate() + 365); + const keypair = import_node_forge2.default.pki.rsa.generateKeyPair(2048); + const attrs = [ + { + name: "commonName", + value: "Obsidian Local REST API" + } + ]; + const certificate = import_node_forge2.default.pki.createCertificate(); + certificate.setIssuer(attrs); + certificate.setSubject(attrs); + const subjectAltNames = [ + { + type: 7, + ip: DefaultBindingHost + } + ]; + if (this.settings.bindingHost && this.settings.bindingHost !== "0.0.0.0") { + subjectAltNames.push({ + type: 7, + ip: this.settings.bindingHost + }); + } + if (this.settings.subjectAltNames) { + for (const name of this.settings.subjectAltNames.split("\n")) { + if (name.trim()) { + subjectAltNames.push({ + type: 2, + value: name.trim() + }); + } + } + } + certificate.setExtensions([ + { + name: "basicConstraints", + cA: true, + critical: true + }, + { + name: "keyUsage", + keyCertSign: true, + digitalSignature: true, + nonRepudiation: true, + keyEncipherment: false, + dataEncipherment: false, + critical: true + }, + { + name: "extKeyUsage", + serverAuth: true, + clientAuth: true, + codeSigning: true, + emailProtection: true, + timeStamping: true + }, + { + name: "nsCertType", + client: true, + server: true, + email: true, + objsign: true, + sslCA: true, + emailCA: true, + objCA: true + }, + { + name: "subjectAltName", + altNames: subjectAltNames + } + ]); + certificate.serialNumber = "1"; + certificate.publicKey = keypair.publicKey; + certificate.validity.notAfter = expiry; + certificate.validity.notBefore = today; + certificate.sign(keypair.privateKey, import_node_forge2.default.md.sha256.create()); + this.settings.crypto = { + cert: import_node_forge2.pki.certificateToPem(certificate), + privateKey: import_node_forge2.pki.privateKeyToPem(keypair.privateKey), + publicKey: import_node_forge2.pki.publicKeyToPem(keypair.publicKey) + }; + this.saveSettings(); + } + this.addSettingTab(new LocalRestApiSettingTab(this.app, this)); + this.refreshServerState(); + }); + } + debounce(func, delay) { + let debounceTimer; + return (...args2) => { + clearTimeout(debounceTimer); + debounceTimer = setTimeout(() => func(...args2), delay); + }; + } + _refreshServerState() { + var _a, _b, _c, _d, _e; + if (this.secureServer) { + this.secureServer.close(); + this.secureServer = null; + } + if ((_a = this.settings.enableSecureServer) != null ? _a : true) { + this.secureServer = https.createServer({ + key: this.settings.crypto.privateKey, + cert: this.settings.crypto.cert + }, this.requestHandler.api); + this.secureServer.listen(this.settings.port, (_b = this.settings.bindingHost) != null ? _b : DefaultBindingHost); + console.log(`[REST API] Listening on https://${(_c = this.settings.bindingHost) != null ? _c : DefaultBindingHost}:${this.settings.port}/`); + } + if (this.insecureServer) { + this.insecureServer.close(); + this.insecureServer = null; + } + if (this.settings.enableInsecureServer) { + this.insecureServer = http2.createServer(this.requestHandler.api); + this.insecureServer.listen(this.settings.insecurePort, (_d = this.settings.bindingHost) != null ? _d : DefaultBindingHost); + console.log(`[REST API] Listening on http://${(_e = this.settings.bindingHost) != null ? _e : DefaultBindingHost}:${this.settings.insecurePort}/`); + } + } + onunload() { + if (this.secureServer) { + this.secureServer.close(); + } + if (this.insecureServer) { + this.insecureServer.close(); + } + } + loadSettings() { + return __async(this, null, function* () { + this.settings = Object.assign({}, DEFAULT_SETTINGS, yield this.loadData()); + }); + } + saveSettings() { + return __async(this, null, function* () { + yield this.saveData(this.settings); + }); + } +}; +var LocalRestApiSettingTab = class extends import_obsidian2.PluginSettingTab { + constructor(app, plugin) { + super(app, plugin); + this.showAdvancedSettings = false; + this.plugin = plugin; + } + display() { + var _a; + const { containerEl } = this; + const parsedCertificate = import_node_forge2.default.pki.certificateFromPem(this.plugin.settings.crypto.cert); + const remainingCertificateValidityDays = getCertificateValidityDays(parsedCertificate); + const shouldRegenerateCertificate = !getCertificateIsUptoStandards(parsedCertificate); + containerEl.empty(); + containerEl.classList.add("obsidian-local-rest-api-settings"); + const apiKeyDiv = containerEl.createEl("div"); + apiKeyDiv.classList.add("api-key-display"); + apiKeyDiv.createEl("h3", { text: "Your API Key" }); + apiKeyDiv.createEl("p", { + text: "This must be passed in all requests via an authorization header." + }); + apiKeyDiv.createEl("pre", { text: this.plugin.settings.apiKey }); + apiKeyDiv.createEl("p", { text: "Example header: " }); + apiKeyDiv.createEl("pre", { + text: `${(_a = this.plugin.settings.authorizationHeaderName) != null ? _a : "Authorization"}: Bearer ${this.plugin.settings.apiKey}` + }); + const seeMore = apiKeyDiv.createEl("p"); + seeMore.createEl("a", { + href: "https://coddingtonbear.github.io/obsidian-local-rest-api/", + text: "See more information and examples in our interactive OpenAPI documentation." + }); + const importCert = apiKeyDiv.createEl("p"); + importCert.createEl("span", { + text: "By default this plugin uses a self-signed certificate for HTTPS; you may want to " + }); + importCert.createEl("a", { + href: `https://127.0.0.1:${this.plugin.settings.port}/${CERT_NAME}`, + text: "download this certificate" + }); + importCert.createEl("span", { + text: " to use it for validating your connection's security by adding it as a trusted certificate authority in the browser or tool you are using for interacting with this API." + }); + if (remainingCertificateValidityDays < 0) { + const expiredCertDiv = apiKeyDiv.createEl("div"); + expiredCertDiv.classList.add("certificate-expired"); + expiredCertDiv.innerHTML = ` + Your certificate has expired! + You must re-generate your certificate below by pressing + the "Re-generate Certificates" button below in + order to connect securely to this API. + `; + } else if (remainingCertificateValidityDays < 30) { + const soonExpiringCertDiv = apiKeyDiv.createEl("div"); + soonExpiringCertDiv.classList.add("certificate-expiring-soon"); + soonExpiringCertDiv.innerHTML = ` + Your certificate will expire in ${Math.floor(remainingCertificateValidityDays)} day${Math.floor(remainingCertificateValidityDays) === 1 ? "" : "s"}s! + You should re-generate your certificate below by pressing + the "Re-generate Certificates" button below in + order to continue to connect securely to this API. + `; + } + if (shouldRegenerateCertificate) { + const shouldRegenerateCertificateDiv = apiKeyDiv.createEl("div"); + shouldRegenerateCertificateDiv.classList.add("certificate-regeneration-recommended"); + shouldRegenerateCertificateDiv.innerHTML = ` + You should re-generate your certificate! + Your certificate was generated using earlier standards than + are currently used by Obsidian Local REST API. Some systems + or tools may not accept your certificate with its current + configuration, and re-generating your certificate may + improve compatibility with such tools. To re-generate your + certificate, press the "Re-generate Certificates" button + below. + `; + } + new import_obsidian2.Setting(containerEl).setName("Enable Non-encrypted (HTTP) Server").setDesc("Enables a non-encrypted (HTTP) server on the port designated below. By default this plugin requires a secure HTTPS connection, but in safe environments you may turn on the non-encrypted server to simplify interacting with the API. Interactions with the API will still require the API Key shown above. Under no circumstances is it recommended that you expose this service to the internet, especially if you turn on this feature!").addToggle((cb) => cb.onChange((value) => { + this.plugin.settings.enableInsecureServer = value; + this.plugin.saveSettings(); + this.plugin.refreshServerState(); + }).setValue(this.plugin.settings.enableInsecureServer)); + new import_obsidian2.Setting(containerEl).setName("Reset All Cryptography").setDesc(`Pressing this button will cause your certificate, + private key, public key, and API key to be regenerated. + This settings panel will be closed when you press this.`).addButton((cb) => { + cb.setWarning().setButtonText("Reset All Crypto").onClick(() => { + delete this.plugin.settings.apiKey; + delete this.plugin.settings.crypto; + this.plugin.saveSettings(); + this.plugin.unload(); + this.plugin.load(); + }); + }); + new import_obsidian2.Setting(containerEl).setName("Re-generate Certificates").setDesc(`Pressing this button will cause your certificate, + private key, and public key to be re-generated, but your API key will remain unchanged. + This settings panel will be closed when you press this.`).addButton((cb) => { + cb.setWarning().setButtonText("Re-generate Certificates").onClick(() => { + delete this.plugin.settings.crypto; + this.plugin.saveSettings(); + this.plugin.unload(); + this.plugin.load(); + }); + }); + new import_obsidian2.Setting(containerEl).setName("Restore Default Settings").setDesc(`Pressing this button will reset this plugin's + settings to defaults. + This settings panel will be closed when you press this.`).addButton((cb) => { + cb.setWarning().setButtonText("Restore Defaults").onClick(() => { + this.plugin.settings = Object.assign({}, DEFAULT_SETTINGS); + this.plugin.saveSettings(); + this.plugin.unload(); + this.plugin.load(); + }); + }); + new import_obsidian2.Setting(containerEl).setName("Show advanced settings").setDesc(`Advanced settings are dangerous and may make your environment less secure.`).addToggle((cb) => { + cb.onChange((value) => { + if (this.showAdvancedSettings !== value) { + this.showAdvancedSettings = value; + this.display(); + } + }).setValue(this.showAdvancedSettings); + }); + if (this.showAdvancedSettings) { + containerEl.createEl("hr"); + containerEl.createEl("h3", { + text: "Advanced Settings" + }); + containerEl.createEl("p", { + text: ` + The settings below are potentially dangerous and + are intended for use only by people who know what + they are doing. Do not change any of these settings if + you do not understand what that setting is used for + and what security impacts changing that setting will have. + ` + }); + const noWarrantee = containerEl.createEl("p"); + noWarrantee.createEl("span", { + text: ` + Use of this software is licensed to you under the + MIT license, and it is important that you understand that + this license provides you with no warranty. + For the complete license text please see + ` + }); + noWarrantee.createEl("a", { + href: LicenseUrl, + text: LicenseUrl + }); + noWarrantee.createEl("span", { text: "." }); + new import_obsidian2.Setting(containerEl).setName("Enable Encrypted (HTTPs) Server").setDesc(` + This controls whether the HTTPs server is enabled. You almost certainly want to leave this switch in its default state ('on'), + but may find it useful to turn this switch off for + troubleshooting. + `).addToggle((cb) => { + var _a2; + return cb.onChange((value) => { + this.plugin.settings.enableSecureServer = value; + this.plugin.saveSettings(); + this.plugin.refreshServerState(); + }).setValue((_a2 = this.plugin.settings.enableSecureServer) != null ? _a2 : true); + }); + new import_obsidian2.Setting(containerEl).setName("Encrypted (HTTPS) Server Port").setDesc("This configures the port on which your REST API will listen for HTTPS connections. It is recommended that you leave this port with its default setting as tools integrating with this API may expect the default port to be in use. Under no circumstances is it recommended that you expose this service directly to the internet.").addText((cb) => cb.onChange((value) => { + this.plugin.settings.port = parseInt(value, 10); + this.plugin.saveSettings(); + this.plugin.refreshServerState(); + }).setValue(this.plugin.settings.port.toString())); + new import_obsidian2.Setting(containerEl).setName("Non-encrypted (HTTP) Server Port").addText((cb) => cb.onChange((value) => { + this.plugin.settings.insecurePort = parseInt(value, 10); + this.plugin.saveSettings(); + this.plugin.refreshServerState(); + }).setValue(this.plugin.settings.insecurePort.toString())); + new import_obsidian2.Setting(containerEl).setName("API Key").addText((cb) => { + cb.onChange((value) => { + this.plugin.settings.apiKey = value; + this.plugin.saveSettings(); + this.plugin.refreshServerState(); + }).setValue(this.plugin.settings.apiKey); + }); + new import_obsidian2.Setting(containerEl).setName("Certificate Hostnames").setDesc(` + List of extra hostnames to add + to your certificate's \`subjectAltName\` field. + One hostname per line. + You must click the "Re-generate Certificates" button above after changing this value + for this to have an effect. This is useful for + situations in which you are accessing Obsidian + from a hostname other than the host on which + it is running. + `).addTextArea((cb) => cb.onChange((value) => { + this.plugin.settings.subjectAltNames = value; + this.plugin.saveSettings(); + }).setValue(this.plugin.settings.subjectAltNames)); + new import_obsidian2.Setting(containerEl).setName("Certificate").addTextArea((cb) => cb.onChange((value) => { + this.plugin.settings.crypto.cert = value; + this.plugin.saveSettings(); + this.plugin.refreshServerState(); + }).setValue(this.plugin.settings.crypto.cert)); + new import_obsidian2.Setting(containerEl).setName("Public Key").addTextArea((cb) => cb.onChange((value) => { + this.plugin.settings.crypto.publicKey = value; + this.plugin.saveSettings(); + this.plugin.refreshServerState(); + }).setValue(this.plugin.settings.crypto.publicKey)); + new import_obsidian2.Setting(containerEl).setName("Private Key").addTextArea((cb) => cb.onChange((value) => { + this.plugin.settings.crypto.privateKey = value; + this.plugin.saveSettings(); + this.plugin.refreshServerState(); + }).setValue(this.plugin.settings.crypto.privateKey)); + new import_obsidian2.Setting(containerEl).setName("Authorization Header").addText((cb) => { + var _a2; + cb.onChange((value) => { + if (value !== DefaultBearerTokenHeaderName) { + this.plugin.settings.authorizationHeaderName = value; + } else { + delete this.plugin.settings.authorizationHeaderName; + } + this.plugin.saveSettings(); + this.plugin.refreshServerState(); + }).setValue((_a2 = this.plugin.settings.authorizationHeaderName) != null ? _a2 : DefaultBearerTokenHeaderName); + }); + new import_obsidian2.Setting(containerEl).setName("Binding Host").addText((cb) => { + var _a2; + cb.onChange((value) => { + if (value !== DefaultBindingHost) { + this.plugin.settings.bindingHost = value; + } else { + delete this.plugin.settings.bindingHost; + } + this.plugin.saveSettings(); + this.plugin.refreshServerState(); + }).setValue((_a2 = this.plugin.settings.bindingHost) != null ? _a2 : DefaultBindingHost); + }); + } + } +}; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = {}); +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ +/*! + * accepts + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * body-parser + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * bytes + * Copyright(c) 2012-2014 TJ Holowaychuk + * Copyright(c) 2015 Jed Watson + * MIT Licensed + */ +/*! + * content-disposition + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * content-type + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * cookie + * Copyright(c) 2012-2014 Roman Shtylman + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * depd + * Copyright(c) 2014 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * depd + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * depd + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * depd + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * destroy + * Copyright(c) 2014 Jonathan Ong + * MIT Licensed + */ +/*! + * ee-first + * Copyright(c) 2014 Jonathan Ong + * MIT Licensed + */ +/*! + * encodeurl + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */ +/*! + * etag + * Copyright(c) 2014-2016 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * finalhandler + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * forwarded + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * fresh + * Copyright(c) 2012 TJ Holowaychuk + * Copyright(c) 2016-2017 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * http-errors + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * media-typer + * Copyright(c) 2014 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * merge-descriptors + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * methods + * Copyright(c) 2013-2014 TJ Holowaychuk + * Copyright(c) 2015-2016 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * mime-db + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015-2022 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * mime-types + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * negotiator + * Copyright(c) 2012 Federico Romero + * Copyright(c) 2012-2014 Isaac Z. Schlueter + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * on-finished + * Copyright(c) 2013 Jonathan Ong + * Copyright(c) 2014 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * on-headers + * Copyright(c) 2014 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * parseurl + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * proxy-addr + * Copyright(c) 2014-2016 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * range-parser + * Copyright(c) 2012-2014 TJ Holowaychuk + * Copyright(c) 2015-2016 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * raw-body + * Copyright(c) 2013-2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * response-time + * Copyright(c) 2011 TJ Holowaychuk + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * router + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * send + * Copyright(c) 2012 TJ Holowaychuk + * Copyright(c) 2014-2016 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * serve-static + * Copyright(c) 2010 Sencha Inc. + * Copyright(c) 2011 TJ Holowaychuk + * Copyright(c) 2014-2016 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * statuses + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * toidentifier + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * type-is + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * unpipe + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ +/*! + * vary + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + */ +/*! safe-buffer. MIT License. Feross Aboukhadijeh */ diff --git a/.obsidian/plugins/obsidian-local-rest-api/manifest.json b/.obsidian/plugins/obsidian-local-rest-api/manifest.json new file mode 100644 index 0000000..4dda7dd --- /dev/null +++ b/.obsidian/plugins/obsidian-local-rest-api/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "obsidian-local-rest-api", + "name": "Local REST API", + "version": "2.3.0", + "minAppVersion": "0.12.0", + "description": "Get, change or otherwise interact with your notes in Obsidian via a REST API.", + "author": "Adam Coddington", + "authorUrl": "https://coddingtonbear.net/", + "isDesktopOnly": true +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-local-rest-api/styles.css b/.obsidian/plugins/obsidian-local-rest-api/styles.css new file mode 100644 index 0000000..925e5df --- /dev/null +++ b/.obsidian/plugins/obsidian-local-rest-api/styles.css @@ -0,0 +1,35 @@ +/* Sets all the text color to red! */ + +div.obsidian-local-rest-api-settings div.api-key-display { + margin-bottom: 20px; +} +div.obsidian-local-rest-api-settings div.api-key-display pre { + font-size: 0.8em; + padding: 10px 20px; + background-color: var(--background-modifier-cover); + font-family: monospace; + user-select: all; +} + +div.obsidian-local-rest-api-settings div.setting-item-control { + min-width: 50%; +} + +div.obsidian-local-rest-api-settings textarea { + width: 100%; +} + +div.obsidian-local-rest-api-settings div.certificate-expired { + padding: 10px 20px; + border: 2px solid #ff0000; +} + +div.obsidian-local-rest-api-settings div.certificate-expiring-soon { + padding: 10px 20px; + border: 2px solid #ffff00; +} + +div.obsidian-local-rest-api-settings div.certificate-regeneration-recommended { + padding: 10px 20px; + border: 2px solid #ffff00; +} diff --git a/.obsidian/themes/Atom/manifest.json b/.obsidian/themes/Atom/manifest.json new file mode 100644 index 0000000..d0d338f --- /dev/null +++ b/.obsidian/themes/Atom/manifest.json @@ -0,0 +1,6 @@ +{ + "name": "Atom", + "version": "0.0.0", + "minAppVersion": "0.16.0", + "author": "kognise" +} \ No newline at end of file diff --git a/.obsidian/themes/Atom/theme.css b/.obsidian/themes/Atom/theme.css new file mode 100644 index 0000000..707483e --- /dev/null +++ b/.obsidian/themes/Atom/theme.css @@ -0,0 +1,339 @@ +/* Base colors - TODO: are grey 1 and grey 2 used? */ +.theme-dark { + --accent-h: 219; + --accent-s: 56%; + --accent-l: 55%; + + --background-primary: #272b34; + --background-primary-alt: #20242b; + --background-secondary: #20242b; + --background-secondary-alt: #1a1e24; + --background-accent: #000; + --background-modifier-border: #424958; + --background-modifier-form-field: rgba(0, 0, 0, 0.3); + --background-modifier-form-field-highlighted: rgba(0, 0, 0, 0.22); + --background-modifier-box-shadow: rgba(0, 0, 0, 0.3); + --background-modifier-success: #539126; + --background-modifier-error: #3d0000; + --background-modifier-error-rgb: 61, 0, 0; + --background-modifier-error-hover: #470000; + --background-modifier-cover: rgba(0, 0, 0, 0.6); + --text-accent: #61afef; + --text-accent-hover: #70bdfc; + --text-normal: #dcddde; + --text-muted: #888; + --text-faint: rgb(81, 86, 99); + --text-error: #e16d76; + --text-error-hover: #c9626a; + --text-highlight-bg: rgba(255, 255, 0, 0.4); + --text-selection: rgba(0, 122, 255, 0.2); + --text-on-accent: #dcddde; + --interactive-normal: #20242b; + --interactive-hover: #353b47; + --interactive-accent-hover: hsl(var(--accent-h), calc(var(--accent-s) + 5%), calc(var(--accent-l) - 10%)); + --scrollbar-active-thumb-bg: rgba(255, 255, 255, 0.2); + --scrollbar-bg: rgba(255, 255, 255, 0.05); + --scrollbar-thumb-bg: rgba(255, 255, 255, 0.1); + --panel-border-color: #18191e; + --gray-1: #5C6370; + --gray-2: #abb2bf; + --red: #e06c75; + --orange: #d19a66; + --green: #98c379; + --aqua: #56b6c2; + --purple: #c678dd; + --blue: #61afef; + --yellow: #e5c07b; + + --background-modifier-hover: hsla(var(--accent-h), calc(var(--accent-s) - 35%), var(--accent-l), 0.06); + --divider-color-hover: #404754; +} + +.theme-light { + --accent-h: 230; + --accent-s: 83%; + --accent-l: 64%; + + --background-primary: #fafafa; + --background-primary-alt: #eaeaeb; + --background-secondary: #eaeaeb; + --background-secondary-alt: #dbdbdc; + --background-accent: #fff; + --background-modifier-border: #dbdbdc; + --background-modifier-form-field: #fff; + --background-modifier-form-field-highlighted: #fff; + --background-modifier-box-shadow: rgba(0, 0, 0, 0.1); + --background-modifier-success: #A4E7C3; + --background-modifier-error: #e68787; + --background-modifier-error-rgb: 230, 135, 135; + --background-modifier-error-hover: #FF9494; + --background-modifier-cover: rgba(0, 0, 0, 0.8); + --text-accent: #1592ff; + --text-accent-hover: #097add; + --text-normal: #383a42; + --text-muted: #8e8e90; + --text-faint: #999999; + --text-error: #e75545; + --text-error-hover: #f86959; + --text-highlight-bg: rgba(255, 255, 0, 0.4); + --text-selection: rgba(0, 122, 255, 0.15); + --text-on-accent: #f2f2f2; + --interactive-normal: #eaeaeb; + --interactive-hover: #dbdbdc; + --interactive-accent-rgb: 21, 146, 255; + --interactive-accent-hover: hsl(var(--accent-h), calc(var(--accent-s) - 10%), calc(var(--accent-l) - 4%)); + --scrollbar-active-thumb-bg: rgba(0, 0, 0, 0.2); + --scrollbar-bg: rgba(0, 0, 0, 0.05); + --scrollbar-thumb-bg: rgba(0, 0, 0, 0.1); + --panel-border-color: #dbdbdc; + --gray-1: #383a42; + --gray-2: #383a42; + --red: #e75545; + --green: #4ea24c; + --blue: #3d74f6; + --purple: #a625a4; + --aqua: #0084bc; + --yellow: #e35649; + --orange: #986800; +} + +.theme-dark, .theme-light { + --ribbon-background: var(--background-primary); + --drag-ghost-background: var(--background-secondary-alt); + --background-modifier-message: var(--background-secondary-alt); + + --tab-outline-color: transparent; + --divider-color: transparent; + + --prompt-border-color: var(--panel-border-color); + --modal-border-color: var(--panel-border-color); + + --background-modifier-border-hover: var(--interactive-hover); + --background-modifier-border-focus: var(--interactive-hover); + + --checkbox-color: var(--text-accent); + --checkbox-color-hover: var(--text-accent-hover); + + --nav-item-background-active: var(--interactive-accent); + --nav-item-color-active: #ffffff; + + --tag-color: var(--yellow); + --tag-background: var(--background-primary-alt); + --tag-color-hover: var(--yellow); + --tag-background-hover: var(--background-primary-alt); + --tag-padding-x: 4px; + --tag-padding-y: 2px; + --tag-radius: 4px; + + --inline-title-weight: var(--bold-weight); + --link-decoration: none; + --link-external-decoration: none; + --embed-padding: 0 0 0 var(--size-4-4); +} + +/* Search */ +.search-result .search-result-file-title { + cursor: pointer; +} + +.search-result .collapse-icon { + cursor: var(--cursor); +} + +.search-result:not(.is-collapsed) .search-result-file-title { + color: var(--blue); +} + +/* File tab separators */ +.workspace .mod-root .workspace-tab-header-inner::after { + right: unset; + left: -0.5px; +} + +.workspace .mod-root .workspace-tab-header:last-child .workspace-tab-header-inner::before { + position: absolute; + right: -0.5px; + width: 1px; + background-color: var(--tab-divider-color); + content: ''; + height: 20px; +} + +.workspace .mod-root .workspace-tab-header.is-active .workspace-tab-header-inner::after, +.workspace .mod-root .workspace-tab-header.is-active .workspace-tab-header-inner::before, +.workspace .mod-root .workspace-tab-header:first-child .workspace-tab-header-inner::after, +.workspace .mod-root .workspace-tab-header.is-active + .workspace-tab-header .workspace-tab-header-inner::after { + opacity: 0; +} + +/* Editor and output */ +.markdown-rendered blockquote { + padding: var(--embed-padding); +} + +mjx-container { + text-align: left !important; +} + +.math-block { + font-size: 1.3em; +} + +.theme-light :not(pre)>code, +.theme-light pre { + background: var(--background-primary); + box-shadow: inset 0 0 0 1px var(--background-primary-alt); + border-radius: 4px; +} + +.markdown-preview-section > div h1, +.markdown-preview-section > div h2, +.markdown-preview-section > div h3, +.markdown-preview-section > div h4, +.markdown-preview-section > div h5, +.markdown-preview-section > div h6 { + margin-top: 40px; +} + +.mod-header + div h1, +.mod-header + div h2, +.mod-header + div h3, +.mod-header + div h4, +.mod-header + div h5, +.mod-header + div h6 { + margin-top: 30px; +} + +.cm-sizer > .inline-title { + margin-bottom: 20px; +} + +/* Miscellaneous */ +.theme-dark .dropdown:hover { + background-color: var(--background-modifier-form-field); +} + +.tooltip { + color: var(--text-muted); +} + +.nav-file, .nav-folder { + padding: 1px 2px; +} + +body:not(.is-grabbing) .nav-file-title.is-being-dragged, +body:not(.is-grabbing) .nav-folder-title.is-being-dragged, +.nav-file-title.is-being-dragged, +.nav-folder-title.is-being-dragged { + background-color: var(--background-primary-alt); + color: var(--nav-item-color); +} + +.view-header-title { + text-decoration: underline; + text-decoration-color: var(--text-muted); + text-underline-offset: 1.5px; +} + +.status-bar { + border-color: var(--panel-border-color); + border-width: 1px; + padding: 4px 8px; +} + +.theme-dark button.mod-warning { + --background-modifier-error: #d42020; + --background-modifier-error-hover: #b01515; +} + +.theme-light button.mod-warning { + --background-modifier-error: #f23f3f; + --background-modifier-error-hover: #d72020; +} + +/* Code syntax highlighting */ +code[class*='language-'], pre[class*='language-'] { + text-align: left !important; + white-space: pre !important; + word-spacing: normal !important; + word-break: normal !important; + word-wrap: normal !important; + line-height: 1.5 !important; + tab-size: 4 !important; + hyphens: none !important; +} + +pre[class*='language-'] { + /* Code blocks */ + padding: 1em !important; + margin: .5em 0 !important; + overflow: auto !important; +} + +:not(pre)>code[class*='language-'] { + /* Inline code */ + padding: .1em !important; + border-radius: .3em !important; + white-space: normal !important; +} + +.token.comment, .token.prolog, .token.doctype, .token.cdata, +.HyperMD-codeblock .cm-comment { + color: var(--gray-1) !important; +} + +.token.punctuation, +.HyperMD-codeblock .cm-hmd-codeblock, .HyperMD-codeblock .cm-bracket { + color: var(--gray-2) !important; +} + +.token.selector, .token.tag, +.HyperMD-codeblock .cm-tag, .HyperMD-codeblock .cm-property, .HyperMD-codeblock .cm-meta, .HyperMD-codeblock .cm-qualifier, .HyperMD-codeblock .cm-header, .HyperMD-codeblock .cm-quote, .HyperMD-codeblock .cm-hr, .HyperMD-codeblock .cm-link { + color: var(--red) !important; +} + +.token.property, .token.boolean, .token.number, .token.constant, .token.symbol, .token.attr-name, .token.deleted, +.HyperMD-codeblock .cm-number, .HyperMD-codeblock .cm-atom, .HyperMD-codeblock .cm-attribute { + color: var(--orange) !important; +} + +.token.string, .token.char, .token.attr-value, .token.builtin, .token.inserted, +.HyperMD-codeblock .cm-string, .HyperMD-codeblock .cm-builtin { + color: var(--green) !important; +} + +.token.operator, .token.entity, .token.url, .language-css .token.string, .style .token.string, +.HyperMD-codeblock .cm-string-2, .HyperMD-codeblock .cm-operator { + color: var(--aqua) !important; +} + +.token.atrule, .token.keyword, +.HyperMD-codeblock .cm-keyword { + color: var(--purple) !important; +} + +.token.function, .token.macro.property, +.HyperMD-codeblock .cm-def, .HyperMD-codeblock .cm-variable { + color: var(--blue) !important; +} + +.token.class-name, +.HyperMD-codeblock .cm-variable-2, .HyperMD-codeblock .cm-variable-3 { + color: var(--yellow) !important; +} + +.token.regex, .token.important, .token.variable { + color: var(--purple) !important; +} + +.token.important, .token.bold { + font-weight: bold !important; +} + +.token.italic { + font-style: italic !important; +} + +.token.entity { + cursor: help !important; +} \ No newline at end of file diff --git a/.obsidian/themes/Blue Topaz/manifest.json b/.obsidian/themes/Blue Topaz/manifest.json new file mode 100644 index 0000000..7d25ad0 --- /dev/null +++ b/.obsidian/themes/Blue Topaz/manifest.json @@ -0,0 +1,7 @@ +{ + "name": "Blue Topaz", + "version": "2023112601", + "minAppVersion": "1.0.0", + "author": "WhyI & Pkmer", + "authorUrl": "https://github.com/whyt-byte" +} diff --git a/.obsidian/themes/Blue Topaz/theme.css b/.obsidian/themes/Blue Topaz/theme.css new file mode 100644 index 0000000..a91aac4 --- /dev/null +++ b/.obsidian/themes/Blue Topaz/theme.css @@ -0,0 +1,28558 @@ +/* + + +If you want to distribute the whole or parts of the above codes, please copy & paste the following sentences: + +Partial style(s) is(are) sourced or adapted from Blue Topaz (https://github.com/PKM-er/Blue-Topaz_Obsidian-css), and I would like to express my appreciation to WhyI (https://github.com/whyt-byte) and pkmer.cn (https://pkmer.cn). + + +*/ + +/*蓝色托帕石,适合Obsidian v1.2.8。uid [20231115] flying fly flies制作。如果喜欢,可以在Github里给我星星 https://github.com/whyt-byte */ +/*Blue Topaz for Obsidian v1.2.8, uid [20231115] created by flying fly flies. Feel free to use, share and modify. If you like the theme, please star me on GitHub https://github.com/whyt-byte */ + +/* +MIT License + +Copyright (c) 2020 whyt-byte + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + + +/* 致谢 Credits: +thanks pkmer.cn +Many thanks to @Cuman +@LillianWho @成雙酱 @嘴上云 @Klaas @Thinkbond @Rainbell129(AKA Lavi) @awyugan @GeoffreyOuO (WooYoo~~~) @锋华 @CZ-15/YZ-10 */ + +/* @settings +name: 🥑Blue Topaz Theme +id: blue-topaz-theme +settings: + - + id: attension + title: Attention!Due to obsidian's policy of not being able to use online or local vault images, all configuration about images is no longer available.Now that the BT theme has become very expensive to maintain with obsidian ontology changes and policy implications, the theme will be streamlined and no longer offer diverse configuration options. + title.zh: 注意!由于obsidian的政策,不能使用在线或本地库里的图片,所有图片配置设置均已失效。如今BT主题随着obsidian本体变动和政策影响维护成本变得非常高,后续将精简主题并不再提供多样化的配置选项。 + type: heading + level: 1 + collapsed: false + - + id: background-settings + title: 1. General settings + title.zh: 1. 整体性设置 + type: heading + level: 1 + collapsed: false + - + id: color-settings + title: 1.1 Color scheme + title.zh: 1.1 整体配色 + type: heading + level: 2 + collapsed: true + - + id: color-scheme-options + title: Color palette (from Topaz Community) + title.zh: 整体配色选择 (由Topaz社区贡献) + type: class-select + allowEmpty: false + default: color-scheme-options-default + options: + - + label: Default + value: color-scheme-options-default + - + label: Avocado + value: color-scheme-options-avocado-topaz + - + label: Monochrome + value: color-scheme-options-monochrome-topaz + - + label: Pink + value: color-scheme-options-pink-topaz + - + label: Topaz-Nord + value: color-scheme-options-topaz-nord + - + label: =↓😺 Created by Topaz Community 🐵↓= + value: + - + label: Flamingo (@Mouth on Cloud & @Rainbell) + value: color-scheme-options-flamingo + - + label: Honey milk (@LillianWho) + value: color-scheme-options-honey-milk-topaz + - + label: 榛子巧克力 Hazelnut chocolate (@LillianWho) + value: color-scheme-options-chocolate-topaz + - + label: Lilac (@awyugan) + value: color-scheme-options-lilac + - + label: Autumn (@LillianWho) + value: color-scheme-options-autumn-topaz + - + label: 魔方 Rubik's Cube (@LillianWho) + value: color-scheme-options-lillimon-topaz + - + label: Simplicity (@Cuman) + value: color-scheme-options-simplicity-topaz + - + id: disable-auto-hide-header + title: Disable auto hide header + title.zh: 禁用自动隐藏头部 + type: class-toggle + default: false + - + id: color-magic + title: Color of Rubik's cube palette + title.zh: 魔方配色 + description.zh: 当整体配色为【魔方】时生效 + type: heading + level: 3 + collapsed: true + - + id: magic-main-color + title: Main color + title.zh: 主题色 + description.zh: 主题色主要作用于标题,字体,列表等主色调,建议用对比度强,不易疲劳的色系。如果想单独调整个别类目请在2.1中继续细调。 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: magic-low-color + title: Low contrast color + title.zh: 浅色 + description.zh: 浅色主要作用于各类触发背景底色,建议用不影响阅读的背景色系。 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: magic-deep-color + title: Deep color + title.zh: 深色 + description.zh: 深色主要作用于主题强调色系,用在各种控件,提示等使用,建议用浅色相关的醒目色系。 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: background-settings + title: 1.2 Background images + title.zh: 1.2 背景设置 + type: heading + level: 2 + collapsed: true + - + id: background-settings-workplace + title: 1.2.1 Workplace background image + title.zh: 1.2.1 工作页面背景 + type: heading + level: 3 + collapsed: true + - + id: background-settings-workplace-background-image + title: Activate image background + title.zh: 开启背景 + type: class-toggle + default: false + addCommand: true + - + id: bt-background-split-container + title: Side split container background color + title.zh: 侧边分栏背景颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: background-settings-workplace-theme-light + title: Light mode + type: class-select + allowEmpty: false + default: background-settings-workplace-theme-light-leaf + options: + - + label: Blue Mountain + value: background-settings-workplace-theme-light-blue-mountain + - + label: In the sky + value: background-settings-workplace-theme-light-in-the-sky + - + label: Leaf + value: background-settings-workplace-theme-light-leaf + - + label: Random + value: background-settings-workplace-random-light + - + label: Waves + value: background-settings-workplace-waves-light + - + label: Animating waves + value: background-settings-workplace-waves2-light + - + label: Custom + value: background-settings-workplace-theme-light-custom-option + - + id: background-settings-workplace-theme-light-custom + title: Custom theme light (url) + description: Customise the background image. Use the format in the Default below for an Online image. + description.zh: 需在上方选项种选择Custom,以自定义背景。使用Default内格式设置在线图片。 + type: variable-text + default: url("https://") + - + id: background-settings-workplace-theme-dark + title: Dark mode + type: class-select + allowEmpty: false + default: background-settings-workplace-theme-dark-in-the-sky + options: + - + label: Night sky + value: background-settings-workplace-theme-dark-night-sky + - + label: Dark sky + value: background-settings-workplace-theme-dark-dark-sky + - + label: In the sky + value: background-settings-workplace-theme-dark-in-the-sky + - + label: Blue gas + value: background-settings-workplace-theme-dark-blue-gas + - + label: Jellyfish 1 + value: background-settings-workplace-theme-dark-jellyfish-1 + - + label: Jellyfish 2 + value: background-settings-workplace-theme-dark-jellyfish-2 + - + label: Hyacinth macaw + value: background-settings-workplace-theme-dark-hyacinth-macaw + - + label: Waves + value: background-settings-workplace-waves + - + label: Animating waves + value: background-settings-workplace-waves2 + - + label: Random + value: background-settings-workplace-random-dark + - + label: Custom + value: background-settings-workplace-theme-dark-custom-option + - + id: background-settings-workplace-theme-dark-custom + title: Custom theme dark (url) + description: Customise the background image. Use the format in the Default below for an Online image. + description.zh: 需在上方选项种选择Custom,以自定义背景。使用Default内格式设置网络图片。 + type: variable-text + default: url("https://") + - + id: blur-depth + title: Blur radius + title.zh: 模糊程度 + description: To adjust the radius of blur + description.zh: 调整背景壁纸模糊程度 + type: variable-number-slider + default: 10 + format: px + min: 0 + max: 30 + step: 1 + - + id: brightness-4-bg + title: Brightness of image + title.zh: 图片亮度 + description: To adjust the brightness + description.zh: 调整背景壁纸亮度 + type: variable-number-slider + default: 0.9 + min: 0.3 + max: 1.5 + step: 0.1 + - + id: saturate-4-bg + title: Saturation of image + title.zh: 图片饱和度 + description: To adjust the saturation + description.zh: 调整背景壁纸饱和度 + type: variable-number-slider + default: 1 + min: 0 + max: 2 + step: 0.1 + - + id: background-waves-color + title: Waves color + title.zh: 波浪背景颜色 + description.zh: 当背景色选择为waves时起作用。 + type: variable-themed-color + opacity: true + format: hex + default-light: '#4A75DB8C' + default-dark: '#4A75DB8C' + - + id: background-settings-workplace-random + title: Random background + title.zh: 随机背景 + description: Images will be refreshed when Obsidian launches; Internet required + description.zh: 图片在Obsidian打开时刷新;需要联网 + type: class-toggle + default: false + - + id: background-settings-markdown-page + title: 1.2.2 Note page background image + title.zh: 1.2.2 笔记背景 + type: heading + level: 3 + collapsed: true + - + id: background-image-settings-switch + title: Toggle note background image + title.zh: 开启笔记背景 + type: class-toggle + default: false + addCommand: true + - + id: toggle-nonoverlapping-bg + title: Activate non-overlapping note background when toggling workplace background + title.zh: 笔记背景和工作页面背景不重叠 + type: class-toggle + default: false + - + id: background-image-settings-markdown-page-options + title: Choose image set + title.zh: 选择背景 + type: class-select + allowEmpty: false + default: background-image-settings-markdown-page-default + options: + - + label: Default + value: background-image-settings-markdown-page-default + - + label: Sea and Sky + value: background-image-settings-markdown-page-sea-and-sky + - + label: Four Seasons + value: background-image-settings-markdown-page-four-seasons + - + label: Woof Meow + value: background-image-settings-markdown-page-woof-meow + - + label: White and Black + value: background-image-settings-markdown-page-white-and-black + - + label: Kawaii + value: background-image-settings-markdown-page-kawaii + - + label: Transparent + value: background-image-settings-markdown-page-transparent + - + label: Custom + value: background-image-settings-markdown-page-custom + - + id: bg-markdown-page-opacity-cp + title: Opacity + title.zh: 笔记背景透明度 + type: variable-number-slider + default: 0.25 + min: 0 + max: 1 + step: 0.05 + - + id: custom-markdown-page-background-color + title: custom markdown page background color + title.zh: 自定义笔记背景颜色 + description.zh: 当背景色选择为custom时起作用。 + type: variable-themed-color + opacity: true + format: hex + default-light: '#a39b8f' + default-dark: '#000414' + - + id: background-markdown-page-theme-light-custom + title: Custom image (Light mode) + description: Due to obsidian's policy of not being able to use online images, this configuration is no longer available. + description.zh: 由于obsidian的政策,不能使用在线图片,此配置已失效。 + type: variable-text + default: + - + id: background-markdown-page-theme-dark-custom + title: Custom image (Dark mode) + description: Due to obsidian's policy of not being able to use online images, this configuration is no longer available. + description.zh: 由于obsidian的政策,不能使用在线图片,此配置已失效。 + type: variable-text + default: + - + id: background-image-settings-markdown-page-random + title: Random background + title.zh: 随机背景 + description: Due to obsidian's policy of not being able to use online images, this configuration is no longer available. + description.zh: 由于obsidian的政策,不能使用在线图片,此配置已失效。 + type: class-toggle + default: false + - + id: background-image-settings-markdown-page-random-options + title: Random image with a certain color + title.zh: 由于obsidian的政策,不能使用在线图片,此配置已失效。 + type: class-select + allowEmpty: false + default: background-image-settings-markdown-page-random-default + options: + - + label: None + value: background-image-settings-markdown-page-random-default + - + id: background-notebook-liked-switch + title: Toggle notebook-liked background + title.zh: 开启类笔记背景 + type: class-toggle + default: false + - + id: notebook-liked-markdown-page-options + title: Notebook-liked background + title.zh: 类笔记背景 + type: class-select + allowEmpty: false + default: notebook-liked-markdown-page-grid-notebook-1 + options: + - + label: Grid notebook 1 (@CZ-15/YZ-10) + value: notebook-liked-markdown-page-grid-notebook-1 + - + label: Grid notebook 2 + value: notebook-liked-markdown-page-grid-notebook-2 + - + label: Dotted notebook 1 + value: notebook-liked-markdown-page-dotted-notebook-1 + - + label: Dotted notebook 2 + value: notebook-liked-markdown-page-dotted-notebook-2 + - + label: Stripe notebook 1 + value: notebook-liked-markdown-page-stripe-notebook-1 + - + label: Stripe notebook 2 + value: notebook-liked-markdown-page-stripe-notebook-2 + - + id: toggle-fixed-pattern + title: Toggle fixed pattern + title.zh: 固定背景 + type: class-toggle + default: false + - + id: notebook-liked-background-settings + title: 1.2.2.1 Notebook-liked background options + title.zh: 1.2.2.1 类笔记样式背景设置 + type: heading + level: 4 + collapsed: true + - + id: toggle-split-note-background + title: Toggle background of split pane + title.zh: 取消侧边栏类笔记背景 + type: class-toggle + default: false + - + id: bg-color-notebook + title: Notebook background color + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: grid-notebook-line-color-1 + title: Grid notebook line color + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: grid-notebook-line-color-2 + title: Grid notebook line color for 'Grid 2' + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: dotted-notebook-dot-color + title: Dotted notebook dot color + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: stripe-notebook-stripe-color + title: Stripe notebook stripe color + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: background-settings-command-palette + title: 1.2.3 Images of command palette + title.zh: 1.2.3 命令面板背景 + type: heading + level: 3 + collapsed: true + - + id: background-image-settings-command-palette-switch + title: Toggle images of command palette + title.zh: 开启命令面板背景 + type: class-toggle + default: false + - + id: background-image-settings-command-palette-same-as-workplace + title: Same background as workplace's + title.zh: 与工作页面背景保持一致 + type: class-toggle + default: false + - + id: background-image-settings-command-palette-custom + title: Custom background image + title.zh: 自定义图片 + type: class-toggle + default: false + - + id: background-command-palette-theme-light-custom + title: Custom theme (light, url) + description: Due to obsidian's policy of not being able to use online images, this configuration is no longer available. + description.zh: 由于obsidian的政策,不能使用在线图片,此配置已失效。 + type: variable-text + default: + - + id: background-command-palette-theme-dark-custom + title: Custom theme (dark, url) + description: Due to obsidian's policy of not being able to use online images, this configuration is no longer available. + description.zh: 由于obsidian的政策,不能使用在线图片,此配置已失效。 + type: variable-text + default: + - + id: blur-depth-cp + title: Blur radius + title.zh: 模糊程度 + description: To adjust the radius of blur + description.zh: 调整背景壁纸模糊程度 + type: variable-number-slider + default: 10 + format: px + min: 0 + max: 30 + step: 1 + - + id: brightness-4-bg-cp + title: Brightness + title.zh: 图片亮度 + description: To adjust the brightness + description.zh: 调整背景壁纸亮度 + type: variable-number-slider + default: 0.9 + min: 0.3 + max: 1.5 + step: 0.1 + - + id: saturate-4-bg-cp + title: Saturation + title.zh: 图片饱和度 + description: To adjust the saturation + description.zh: 调整背景壁纸饱和度 + type: variable-number-slider + default: 1 + min: 0 + max: 2 + step: 0.1 + - + id: opacity-cp + title: Opacity + title.zh: 透明度 + type: variable-number-slider + default: 0.25 + min: 0 + max: 1 + step: 0.05 + - + id: background-settings-markdown-page + title: 1.2.4 File explorer background + title.zh: 1.2.4 文件栏背景 + type: heading + level: 3 + collapsed: true + - + id: toggle-bg-panel-page + title: Toggle background image + title.zh: 激活文件栏背景 + type: class-toggle + default: false + - + id: bg-panel-page-opacity-cp + title: Opacity + title.zh: 透明度 + type: variable-number-slider + default: 0.25 + min: 0 + max: 1 + step: 0.05 + - + id: bg-panel-page-option + title: Image picking (Light mode) + title.zh: 图片选择 (Light mode) + type: class-select + allowEmpty: false + default: panel-page-bg-theme-ligt-curve + options: + - + label: Curve + value: panel-page-bg-theme-light-curve + - + label: Wall + value: panel-page-bg-theme-light-wall + - + label: Brick + value: panel-page-bg-theme-light-brick + - + label: Cloud + value: panel-page-bg-theme-light-cloud + - + label: Random + value: panel-page-bg-theme-light-random + - + label: Custom + value: panel-page-bg-theme-light-custom + - + id: background-panel-page-theme-light-custom + title: Custom image (Light mode) + description: Due to obsidian's policy of not being able to use online images, this configuration is no longer available. + description.zh: 由于obsidian的政策,不能使用在线图片,此配置已失效。 + type: variable-text + default: + - + id: bg-panel-page-option-dark + title: Image picking (Dark mode) + title.zh: 图片选择 (Dark mode) + type: class-select + allowEmpty: false + default: panel-page-bg-theme-dark-sea + options: + - + label: Sea + value: panel-page-bg-theme-dark-sea + - + label: Plant + value: panel-page-bg-theme-dark-plant + - + label: Curves + value: panel-page-bg-theme-dark-curves + - + label: Bulb + value: panel-page-bg-theme-dark-bulb + - + label: Random + value: panel-page-bg-theme-dark-random + - + label: Custom + value: panel-page-bg-theme-dark-custom + - + id: background-panel-page-theme-dark-custom + title: Custom image (Dark mode) + description: Due to obsidian's policy of not being able to use online images, this configuration is no longer available. + description.zh: 由于obsidian的政策,不能使用在线图片,此配置已失效。 + type: variable-text + default: + - + id: layout-settings + title: 1.3 Layout + title.zh: 1.3 界面布局样式 + type: heading + level: 2 + collapsed: true + - + id: bt-colorful-titlebar + title: Colorful titlebar + title.zh: 开启顶部多彩标题栏样式 + type: class-toggle + default: false + - + id: background-titlebar-inner + title: Titlebar background color + title.zh: 标题栏背景颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: left-ribbon-style + title: Left ribbon styles + title.zh: 左侧边栏样式选择 + type: class-select + allowEmpty: false + default: default-left-ribbon-style + options: + - + label: Fixed + value: default-left-ribbon-style + - + label: Hide to left + value: hide-left-ribbon + - + label: Hide to the left retention drawer + value: hide-left-ribbon-retention-drawer + - + label: Bubble + value: bt-bubble-ribbon + - + label: Bubble, hide to left + value: bt-bubble-ribbon-hide-left + - + id: ribbon-background + title: Left ribbon color + title.zh: 左侧边栏颜色 + type: variable-themed-color + opacity: false + format: hex + default-light: '#' + default-dark: '#' + - + id: ribbon-background-collapsed + title: Left ribbon color (collapsed) + title.zh: 左侧边栏颜色(关闭时) + type: variable-themed-color + opacity: false + format: hex + default-light: '#' + default-dark: '#' + - + id: hide-vault-name + title: Hide vault name + title.zh: 隐藏侧边栏中的库名称 + type: class-toggle + default: false + - + id: search-bar-style-option + title: Search bar style + title.zh: 文件内搜索栏位置 + type: class-select + allowEmpty: false + default: default-search-bar + options: + - + label: Default + value: default-search-bar + - + label: Bottom + value: bt-search-bar-bottom + - + id: bt-status-on + title: Fullwidth status bar + title.zh: 开启全宽状态栏 + type: class-toggle + default: false + - + id: scrollbar-style-option + title: Scrollbar style + title.zh: 滚动条样式 + type: class-select + allowEmpty: false + default: default-scrollbar + options: + - + label: Default + value: default-scrollbar + - + label: Hovering (adapted from @subframe7536's css snippet) + value: hover-scrollbars + - + label: Remove Scrollbar + value: remove-scrollbars + - + label: Obsidian default + value: native-scrollbars + - + id: scrollbar-thumb-bg + title: Scrollbar thumb background + title.zh: 滚动条滑块颜色 + type: variable-themed-color + opacity: false + format: hex + default-light: '#' + default-dark: '#' + - + id: scrollbar-active-thumb-bg + title: Scrollbar thumb background (Active) + title.zh: 滚动条滑块颜色 (选择时) + type: variable-themed-color + opacity: false + format: hex + default-light: '#' + default-dark: '#' + - + id: view-button-front + title: The view status button is placed in front of the header + title.zh: 视图切换按钮放置在文章标题前面 + type: class-toggle + default: false + - + id: tab-title-bar-position + title: The tab title bar positioned to the left + title.zh: Tab 导航栏位置放置左侧 + type: class-toggle + default: false + - + id: toggle-divider-lines + title: Toggle non-divided-line style + title.zh: 无分割线样式 + type: class-toggle + default: false + - + id: toggle-header-bottom-line + title: Toggle non-divided-line header box + title.zh: 无分割线文件标题框 + type: class-toggle + default: false + - + id: layout-style-options + title: Layout styles + title.zh: 界面布局样式选择 + type: class-select + allowEmpty: false + default: layout-style-options-default + options: + - + label: Default + value: layout-style-options-default + - + label: Rectangle + value: layout-style-options-rectangle + - + label: Asymmetric Style of Split Panes + value: asymmetric-split-left + - + label: Bubble + value: bt-bubble-layout + - + id: bt-bubble-settings + title: 1.3.1 Bubble settings + title.zh: 1.3.1 Bubble设置 + type: heading + level: 3 + collapsed: false + - + id: bt-bubble-not-file-tree + title: Enable card format for file browser + type: class-toggle + - + id: bt-bubble-layout-hide-borders + title: Remove borders of bubbles + type: class-toggle + - + id: bt-bubble-buttons + title: Toggle bubble buttons + type: class-toggle + - + id: bt-bubble-layout-padding + title: Bubble padding + type: variable-text + default: 8px + - + id: bt-bubble-radius + title: Bubble radius + type: variable-text + default: 15px + - + id: background-settings + title: 2. Detail settings + title.zh: 2. 细节设置 + type: heading + level: 1 + collapsed: false + - + id: color-settings + title: 2.1 Color settings + title.zh: 2.1 颜色设置 + type: heading + level: 2 + collapsed: true + - + id: text-normal + title: Main text color + type: variable-themed-color + opacity: false + format: hex + default-light: '#' + default-dark: '#' + - + id: background-color-settings + title: 2.1.1 Background colors + title.zh: 2.1.1 背景颜色设置 + type: heading + level: 3 + collapsed: true + - + id: background-primary-bg-4-bt + title: Background primary + description: background-primary-bg-4-bt + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: background-primary-alt-bg-4-bt + title: Background primary (alt) + description: background-primary-alt-bg-4-bt + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: background-secondary-bg-4-bt + title: Background secondary + description: background-secondary-bg-4-bt + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: background-secondary-alt-bg-4-bt + title: Background secondary (alt) + description: background-secondary-alt-bg-4-bt + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: background-modifier-border + title: Background modifier border + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: accent-color-settings + title: 2.1.2 Theme colors + title.zh: 2.1.2 主题色设置 + type: heading + level: 3 + collapsed: true + - + id: interactive-accent + title: Theme color + title.zh: 主题色 + description: interactive-accent + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: other-color-settings + title: 2.1.3 Other colors + title.zh: 2.1.3 其他颜色 + type: heading + level: 3 + collapsed: true + - + id: accent-strong + title: Bold type color + title.zh: 加粗颜色 + description: --accent-strong + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: accent-em + title: Italic type color + title.zh: 斜体颜色 + description: --accent-em + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: strong-em-color-1 + title: Bold italic color 1 + title.zh: 加粗斜体颜色 1 + description: --strong-em-color-1 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: strong-em-color-2 + title: Bold italic color 2 + title.zh: 加粗斜体颜色 2 + description: --strong-em-color-2 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: mjx-inline-math-color + title: Color of mathematical expressions (inline $x=0$) + title.zh: 数学表达式颜色(行内 $x=0$) + type: variable-themed-color + description: --mjx-inline-math-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: mjx-math-color + title: Color of mathematical expressions ($$x=0$$) + title.zh: 数学表达式颜色($$x=0$$) + description: --mjx-math-color + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: background-leaf-resize-handle + title: Color of leaf resize handle + title.zh: 页面大小调整条颜色 + description: --background-leaf-resize-handle + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: mjx-inline-math-color + title: Color of mathematical expressions (inline $x=0$) + title.zh: 数学表达式颜色(行内 $x=0$) + description: --mjx-inline-math-color + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: search-result-file-matched-bg + title: File search result highlight color + title.zh: 文件搜索结果高亮 + description: --search-result-file-matched-bg + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: text-search-highlight-bg + title: Text search result highlight color + title.zh: 文本搜索结果高亮 + description: --text-search-highlight-bg + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: text-selection + title: Text selection background + title.zh: 鼠标划选文字背景 + description: --text-selection + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: remove-selectionbackground + title: Toggle selection background (Non-text part) + title.zh: 还原鼠标划选时非文字部分背景颜色 + type: class-toggle + default: false + - + id: status-bar-bg + title: Status bar background + title.zh: 状态栏颜色 + description: --status-bar-bg + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: status-bar-text-color + title: Status bar text color + title.zh: 状态栏文字颜色 + description: --status-bar-text-color + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: icon-color-focused + title: Focused icon color + title.zh: 激活按钮的图标颜色 + description: --icon-color-focused + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: divider-color + title: Divider color + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: tab-outline-color + title: Tab outline color + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: graph-view-color-settings + title: 2.1.4 Graph-view colors + title.zh: 2.1.4 图谱颜色 + type: heading + level: 3 + collapsed: true + - + id: graph-canvas-bg + title: Graph-view canvas background + title.zh: 图谱背景颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: graph-text-color + title: Graph-view text color + title.zh: 图谱文字颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: graph-line + title: Graph-view line color + title.zh: 图谱线条颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: graph-line-fill-highlight + title: Graph-view line highlight color (Hovering) + title.zh: 图谱线条激活颜色(鼠标悬浮) + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: graph-arrow + title: Graph-view arrow color + title.zh: 图谱箭头颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: graph-circle-outline + title: Graph-view circle outline color + title.zh: 图谱圆点轮廓颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: graph-circle + title: Graph-view normal circle color + title.zh: 图谱圆点颜色(默认) + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: graph-tag + title: Graph-view circle color (Tag) + title.zh: 图谱圆点颜色(标签) + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: graph-unresolved + title: Graph-view circle color (Unresolved) + title.zh: 图谱圆点颜色(未创建) + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: graph-attach + title: Graph-view circle color (Attachment) + title.zh: 图谱圆点颜色(附件) + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: graph-control-bg + title: Graph-view settings background color + title.zh: 图谱设置面板背景颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: graph-circle-fill-highlight + title: Graph-view circle highlight color (Hovering) + title.zh: 图谱圆点激活颜色(鼠标悬浮) + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: font-settings + title: 2.2 Typography + title.zh: 2.2 排版 + type: heading + level: 2 + collapsed: true + - + id: font-settings + title: 2.2.1 Font family + title.zh: 2.2.1 字体设置 + type: heading + level: 3 + collapsed: true + - + id: font-family-change-to-default + title: Use Obsidian default font family + title.zh: 使用Obsidian默认字体 + type: class-toggle + default: false + - + id: font-text-theme + title: Main font + title.zh: 主体字体 + description: Fonts except from the code texts + description.zh: 除代码框外字体 + type: variable-text + default: "Bookerly,'Inter', 'Segoe UI','霞鹜文楷 GB', 'LXGW WenKai', 'Segoe UI Emoji',var(--font-interface)" + - + id: font-family-folder-file-title + title: Folder & file title + title.zh: 文件栏字体 + type: variable-text + default: "Arlrdbd, 'Source Han Sans', 'Noto Sans CJK', 'Source Sans Pro', 'Segoe UI Emoji', sans-serif" + - + id: font-monospace-theme + title: Codebox + title.zh: 代码框字体 + type: variable-text + default: "'JetBrains Mono', Consolas, Monaco, '等距更纱黑体 SC', 'Source Han Mono', 'Microsoft Yahei Mono', 'Segoe UI Emoji', 'Microsoft YaHei', 'Source Code Pro', monospace" + - + id: font-family-inline-code + title: Inline code + title.zh: 行内代码字体 + type: variable-text + default: var(--font-monospace-override), var(--font-monospace-theme) + - + id: font-family-tag + title: Tag + title.zh: 标签字体 + type: variable-text + default: "Bookerly, 'Microsoft YaHei', STzhongsong, STSong, 'Segoe UI Emoji', Serif" + - + id: font-family-strong + title: Bold text + title.zh: 加粗文字字体 + type: variable-text + default: "Bookerly,'Inter', 'Segoe UI', 'LXGW WenKai Screen', 'LXGW WenKai Screen R', '霞鹜文楷 GB', 'LXGW WenKai', 'Segoe UI Emoji', var(--font-interface)" + - + id: font-weight-strong + title: Bold text font weight + title.zh: 加粗文字样式 + description: type 'light, normal, bold, bolder; or 100-900' + type: variable-text + default: bold + - + id: font-family-em + title: Italic text + title.zh: 斜体文字字体 + type: variable-text + default: "var(--font-text-theme)" + - + id: font-style-em + title: Italic text style + title.zh: 斜体文字样式 + description: typy normal or italic + type: variable-text + default: italic + - + id: font-family-vault + title: Vault name + title.zh: 库名字体 + type: variable-text + default: "'Lucida Handwriting', 'Segoe UI Emoji'" + - + id: font-size-settings + title: 2.2.2 Font size + title.zh: 2.2.2 字体大小 + type: heading + level: 3 + collapsed: true + - + id: font-size-vault-name + title: Vault name + title.zh: 库名称大小 + type: variable-text + default: 0.95em + - + id: font-size-file-header-title + title: File header + title.zh: 文件抬头标题 + type: variable-text + default: 0.9375em + - + id: font-size-folder-and-file + title: Folder and file + title.zh: 左侧边栏文件字体大小 + type: variable-text + default: 0.85em + - + id: font-size-outline + title: Outline font size + title.zh: 大纲字体大小 + type: variable-text + default: 13px + - + id: font-size-code + title: Codeblock + title.zh: 代码框字体大小 + type: variable-text + default: 1em + - + id: font-size-latex + title: Mathematical expressions + title.zh: 数学公式字体大小 + type: variable-text + default: 1em + - + id: header-settings + title: 2.2.3 Headers + title.zh: 2.2.3 文内标题(H1-H6) + type: heading + level: 3 + collapsed: true + - + id: clutter-free-headings + title: Clutter free headings + title.zh: 编辑状态使用H1 H2 替代「#」(显示标题级别) + description: Adapted from https://github.com/deathau/obsidian-snippets/blob/main/clutter-free-headings.css + type: class-toggle + default: false + - + id: funny-header-anim + title: Funny header animation in live preview + title.zh: 编辑模式标题动画 + description: Adapted from https://cdn.discordapp.com/attachments/702656734631821413/1007258862606352424/FunnyHeaderAnimLP.css @sailKite + type: class-toggle + default: false + - + id: remove-heading-indicator + title: Remove H1-H6 Indicators before headings when hovering + title.zh: 移除鼠标悬浮时标题前的H1-H6 + type: class-toggle + default: false + - + id: retain-header-color + title: Retain header color + title.zh: 保留标题颜色 + description: Retain original color of headers when using italic, bold or bold italic within headers + type: class-toggle + default: false + - + id: h1-settings + title: 2.2.3.1 Header 1 + type: heading + level: 4 + collapsed: true + - + id: print-h1-color + title: Header 1 color + title.zh: 标题 1 颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: h1-size + title: Header 1 size + title.zh: 标题 1 字体大小 + type: variable-text + default: 1.5625em + - + id: h1-font + title: Header 1 font family + title.zh: 标题 1 字体 + type: variable-text + default: "" + - + id: h1-toggle-underline + title: Toggle h1 underline + title.zh: 开启h1下划线 + type: class-toggle + default: false + - + id: h1-underline-width + title: Header 1 underline width + title.zh: 下划线宽度 + type: variable-text + default: 2px + - + id: h1-underline-style + title: Header 1 underline style + title.zh: 标题 1 下划线样式 + description: solid, double, dotted, dashed, groove, ridge + type: variable-text + default: solid + - + id: h1-underline-color + title: Header 1 underline color + title.zh: 标题 1 下划线颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: h1-toggle-short-underline + title: Toggle h1 underline (Shorter) + title.zh: 开启h1下划线 (短线) + type: class-toggle + default: false + - + id: header-1-background + title: Toggle h1 Background + title.zh: 开启h1背景颜色 + type: class-toggle + default: false + - + id: h1-bg-color + title: h1 bg + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: h1-weight + title: h1 font weight + type: variable-text + default: bold + - + id: h1-line-height + title: Header 1 line height + title.zh: 标题 1 行高 + type: variable-number + default: 1.2 + - + id: h1-text-align-settings + title: h1 Text-align + title.zh: h1 位置 + type: class-select + allowEmpty: false + default: h1-text-align-start + options: + - + label: Default (Left/Start) + value: h1-text-align-start + - + label: Center + value: h1-text-align-center + - + label: Right/End + value: h1-text-align-end + - + id: h2-settings + title: 2.2.3.2 Header 2 + type: heading + level: 4 + collapsed: true + - + id: print-h2-color + title: Header 2 color + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: h2-size + title: Header 2 size + title.zh: 标题 2 字体大小 + type: variable-text + default: 1.4375em + - + id: h2-font + title: Header 2 font family + title.zh: 标题 2 字体 + type: variable-text + default: "" + - + id: h2-toggle-underline + title: toggle h2 underline + title.zh: 开启h2下划线 + type: class-toggle + default: false + - + id: h2-underline-width + title: Header 2 underline width + title.zh: 下划线宽度 + type: variable-text + default: 1px + - + id: h2-underline-style + title: Header 2 underline style + title.zh: 标题 2 下划线样式 + description: solid, double, dotted, dashed, groove, ridge + type: variable-text + default: solid + - + id: h2-underline-color + title: Header 2 underline color + title.zh: 标题 2 下划线颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: h2-toggle-short-underline + title: Toggle h2 underline (Shorter) + title.zh: 开启h2下划线 (短线) + type: class-toggle + default: false + - + id: header-2-background + title: Toggle h2 background + title.zh: 开启h2背景颜色 + type: class-toggle + default: false + - + id: h2-bg-color + title: h2 background color + title.zh: 标题 2 背景颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: h2-weight + title: h2 font weight + title.zh: 标题 2 字重 + type: variable-text + default: bold + - + id: h2-text-align-settings + title: h2 text-align + title.zh: h2 位置 + type: class-select + allowEmpty: false + default: h2-text-align-start + options: + - + label: Default (Left/Start) + value: h2-text-align-start + - + label: Center + value: h2-text-align-center + - + label: Right/End + value: h2-text-align-end + - + id: h3-settings + title: 2.2.3.3 Header 3 + type: heading + level: 4 + collapsed: true + - + id: print-h3-color + title: Header 3 color + title.zh: 标题 3 颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: h3-size + title: Header 3 size + title.zh: 标题 3 字体大小 + type: variable-text + default: 1.3125em + - + id: h3-font + title: Header 3 font family + title.zh: 标题 3 字体 + type: variable-text + default: "" + - + id: h3-toggle-underline + title: toggle h3 underline + title.zh: 开启h3下划线 + type: class-toggle + default: false + - + id: h3-underline-width + title: Header 6 underline width + title.zh: 下划线宽度 + type: variable-text + default: 1px + - + id: h3-underline-style + title: Header 3 underline style + title.zh: 标题 3 下划线样式 + description: solid, double, dotted, dashed, groove, ridge + type: variable-text + default: solid + - + id: h3-underline-color + title: Header 3 underline color + title.zh: 标题 3 下划线颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: h3-toggle-short-underline + title: Toggle h3 underline (Shorter) + title.zh: 开启h3下划线 (短线) + type: class-toggle + default: false + - + id: header-3-background + title: Toggle h3 Background + title.zh: 开启h3背景颜色 + type: class-toggle + default: false + - + id: h3-bg-color + title: h3 background color + title.zh: 标题 3 背景颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: h3-weight + title: h3 font weight + title.zh: 标题 3 字重 + type: variable-text + default: bold + - + id: h3-text-align-settings + title: h3 text-align + title.zh: h3 位置 + type: class-select + allowEmpty: false + default: h3-text-align-start + options: + - + label: Default (Left/Start) + value: h3-text-align-start + - + label: Center + value: h3-text-align-center + - + label: Right/End + value: h3-text-align-end + - + id: h4-settings + title: 2.2.3.4 Header 4 + type: heading + level: 4 + collapsed: true + - + id: print-h4-color + title: Header 4 color + title.zh: 标题 4 颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: h4-size + title: Header 4 size + title.zh: 标题 4 字体大小 + type: variable-text + default: 1.1875em + - + id: h4-font + title: Header 4 font family + title.zh: 标题 4 字体 + type: variable-text + default: "" + - + id: h4-toggle-underline + title: toggle h4 underline + title.zh: 开启H4下划线 + type: class-toggle + default: false + - + id: h4-underline-width + title: Header 4 underline width + title.zh: 下划线宽度 + type: variable-text + default: 1px + - + id: h4-underline-style + title: Header 4 underline style + title.zh: 标题 4 下划线样式 + description: solid, double, dotted, dashed, groove, ridge + type: variable-text + default: solid + - + id: h4-underline-color + title: Header 4 underline color + title.zh: 标题 4 下划线颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: h4-toggle-short-underline + title: Toggle h4 underline (Shorter) + title.zh: 开启h4下划线 (短线) + type: class-toggle + default: false + - + id: header-4-background + title: Toggle h4 Background + title.zh: 开启h4背景颜色 + type: class-toggle + default: false + - + id: h4-bg-color + title: h4 background color + title.zh: 标题 4 背景颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: h4-weight + title: h4 font weight + title.zh: 标题 4 字重 + type: variable-text + default: bold + - + id: h4-text-align-settings + title: h4 text-align + title.zh: h4 位置 + type: class-select + allowEmpty: false + default: h4-text-align-start + options: + - + label: Default (Left/Start) + value: h4-text-align-start + - + label: Center + value: h4-text-align-center + - + label: Right/End + value: h4-text-align-end + - + id: h5-settings + title: 2.2.3.5 Header 5 + type: heading + level: 4 + collapsed: true + - + id: print-h5-color + title: Header 5 color + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: h5-size + title: Header 5 size + title.zh: 标题 5 字体大小 + type: variable-text + default: 1.0625em + - + id: h5-font + title: Header 5 font family + title.zh: 标题 5 字体 + type: variable-text + default: "" + - + id: h5-toggle-underline + title: toggle h5 underline + title.zh: 开启H5下划线 + type: class-toggle + default: false + - + id: h5-underline-width + title: Header 5 underline width + title.zh: 下划线宽度 + type: variable-text + default: 1px + - + id: h5-underline-style + title: Header 5 underline style + title.zh: 标题 5 下划线样式 + description: solid, double, dotted, dashed, groove, ridge + type: variable-text + default: solid + - + id: h5-underline-color + title: Header 5 underline color + title.zh: 标题 5 下划线颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: h5-toggle-short-underline + title: Toggle h5 underline (Shorter) + title.zh: 开启H5下划线 (短线) + type: class-toggle + default: false + - + id: header-5-background + title: Toggle h5 Background + title.zh: 开启h5背景颜色 + type: class-toggle + default: false + - + id: h5-bg-color + title: h5 background color + title.zh: 标题 5 背景颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: h5-weight + title: h5 font weight + title.zh: 标题 5 字重 + type: variable-text + default: bold + - + id: h5-text-align-settings + title: h5 text-align + title.zh: h5 位置 + type: class-select + allowEmpty: false + default: h5-text-align-start + options: + - + label: Default (Left/Start) + value: h5-text-align-start + - + label: Center + value: h5-text-align-center + - + label: Right/End + value: h5-text-align-end + - + id: h6-settings + title: 2.2.3.6 Header 6 + type: heading + level: 4 + collapsed: true + - + id: print-h6-color + title: Header 6 color + title.zh: 标题 6 颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: h6-size + title: Header 6 size + title.zh: 标题 6 字体大小 + type: variable-text + default: 1em + - + id: h6-font + title: Header 6 font family + title.zh: 标题 6 字体 + type: variable-text + default: "" + - + id: h6-toggle-underline + title: Toggle h6 underline + title.zh: 开启h6下划线 + type: class-toggle + default: false + - + id: h6-underline-width + title: Header 6 underline width + title.zh: 下划线宽度 + type: variable-text + default: 1px + - + id: h6-underline-style + title: Header 6 underline style + title.zh: 标题 6 下划线样式 + description: solid, double, dotted, dashed, groove, ridge + type: variable-text + default: solid + - + id: h6-underline-color + title: Header 6 underline color + title.zh: 标题 6 下划线颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: h6-toggle-short-underline + title: Toggle h6 underline (Shorter) + title.zh: 开启h6下划线 (短线) + type: class-toggle + default: false + - + id: header-6-background + title: Toggle h6 background + title.zh: 开启h6背景颜色 + type: class-toggle + default: false + - + id: h6-bg-color + title: h6 background color + title.zh: 标题 6 背景颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: h6-weight + title: h6 font weight + title.zh: 标题 6 字重 + type: variable-text + default: bold + - + id: h6-text-align-settings + title: h6 text-align + title.zh: h6 位置 + type: class-select + allowEmpty: false + default: h6-text-align-start + options: + - + label: Default (Left/Start) + value: h6-text-align-start + - + label: Center + value: h6-text-align-center + - + label: Right/End + value: h6-text-align-end + - + id: other-typography-settings + title: 2.2.4 Other typography settings + title.zh: 2.2.4 其他排版设置 + type: heading + level: 3 + collapsed: true + - + id: file-line-width + title: Line width (in the mode of 'readable line length') + title.zh: 行宽(缩减栏宽模式下) + description: The maximum line width in rem units (1rem = Body font size) + type: variable-number + default: 45 + format: rem + - + id: line-height-main + title: Line height + title.zh: 行间距 + type: variable-number + default: 1.5 + - + id: toggle-paragraph-spacing + title: Toggle paragraph spacing in reading mode + title.zh: 开启阅读模式段间距 + description.zh: 开启后对多个
标记不再生效 + type: class-toggle + default: false + - + id: paragraph-spacing + title: Paragraph spacing + title.zh: 段间距 + type: variable-number-slider + default: 1 + min: 0 + max: 2 + step: 0.1 + - + id: letter-space-main + title: Letter spacing + title.zh: 字间距 + type: variable-number-slider + default: 0 + min: 0 + max: 2 + step: 0.1 + - + id: text-indentation-two-em + title: Slight indentation of the first line + title.zh: 段落首行缩进 + description.zh: 开启全局生效,单独生效只需要在,笔记yaml声明cssclass:indent。阅读模式缩进效果需要安装Contextual Typography插件 + description: Enable global effect, local effect only need to declare "cssclass:indent" in the YAML area. Contextual Typography plugin needs to be installed in Reading mode. + type: class-toggle + default: false + addCommand: true + - + id: justify-align + title: Alignment of both ends + title.zh: 段落两端对齐 + description.zh: 开启全局生效,单独生效只需要在,笔记yaml声明cssclass:text-justify。 + description: Enable global effect, local effect only need to declare "cssclass:text-justify" in the YAML area. + type: class-toggle + default: false + addCommand: true + - + id: reduce-bottom-padding + title: Reduce padding bottom of pages + title.zh: 缩减笔记下方预留空白大小 + type: class-toggle + default: false + - + id: bottom-padding-value + title: Adjust padding bottom of pages + title.zh: 调整笔记下方预留空白大小 + type: variable-text + default: 0em + - + id: toggle-left-aligned-content + title: Toggle Left-aligned note content + title.zh: 开启笔记内容居左 + description.zh: 开启后内容整体居左,而不是默认居中 + description: Left-aligned content when turned on, instead of centered by default + type: class-toggle + default: false + - + id: other-typography-settings + title: 2.2.5 *.md file in split pane + title.zh: 2.2.5 侧面拆分面板中的md文件 + type: heading + level: 3 + collapsed: true + - + id: font-size-split + title: Font size + title.zh: 字体大小 + type: variable-text + default: 0.85em + - + id: line-height-split + title: Line height + title.zh: 行间距 + type: variable-number + default: 1.3 + - + id: default-split-style + title: Toggle default style + title.zh: 切换默认样式 + type: class-toggle + default: false + - + id: inline-title-settings + title: 2.2.6 Inline title + title.zh: 2.2.6 页面内标题 + type: heading + level: 3 + collapsed: true + - + id: inline-title-font + title: Inline title font + title.zh: 页面内文件名字体 + type: variable-text + default: "" + - + id: inline-title-color + title: Inline title color + title.zh: 页面内标题颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: inline-title-size + title: Inline title size + title.zh: 页面内标题字体大小 + type: variable-text + default: 1.5625em + - + id: inline-title-line-height + title: Inline title line height + title.zh: 页面内标题行间距 + type: variable-number + default: 1.2 + - + id: inline-title-weight + title: Inline title weight + title.zh: 页面内标题字重 + type: variable-text + default: "700" + - + id: inline-title-toggle-underline + title: Toggle underline + title.zh: 开启页面内标题下划线 + type: class-toggle + default: false + - + id: inline-title-underline-width + title: Inline title underline width + title.zh: 页面内标题下划线宽度 + type: variable-text + default: 2px + - + id: inline-title-underline-style + title: Inline title underline style + title.zh: 页面内标题下划线样式 + description: solid, double, dotted, dashed, groove, ridge + type: variable-text + default: solid + - + id: inline-title-underline-color + title: Inline title underline color + title.zh: 页面内标题下划线颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: inline-title-toggle-short-underline + title: Toggle underline (Shorter) + title.zh: 开启页面内标题下划线 (短线) + type: class-toggle + default: false + - + id: toggle-inline-title-background + title: Toggle inline title background + title.zh: 开启页面内标题背景颜色 + type: class-toggle + default: false + - + id: inline-title-bg-color + title: Inline title background color + title.zh: 页面内标题背景颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: inline-title-text-align-settings + title: Inline title text-align + title.zh: 页面内标题位置 + type: class-select + allowEmpty: false + default: inline-title-text-align-start + options: + - + label: Default (Left/Start) + value: inline-title-text-align-start + - + label: Center + value: inline-title-text-align-center + - + label: Right/End + value: inline-title-text-align-end + - + id: style-change-options + title: 2.3 Element styles + title.zh: 2.3 其他元素样式 + type: heading + level: 2 + collapsed: true + - + id: activeline-background + title: Active line background color + title.zh: 所在行高亮颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: muted-activeline-bg + title: Mute active line + title.zh: 取消所在行高亮 + type: class-toggle + default: false + - + id: plain-file-title + title: Remove colorful background of active file title + title.zh: 取消激活文件标题的彩色背景 + description: Make it austere + type: class-toggle + default: false + - + id: title-justify-start + title: Toggle title navigation bar position to left + title.zh: 标题导航栏左对齐 + type: class-toggle + default: false + - + id: fancy-hr-folder + title: 2.3.1 Dividing line (Horizontal ruler, hr, ---) + title.zh: 2.3.1 分割线(hr,---) + type: heading + level: 3 + collapsed: true + - + id: fancy-hr + title: Fancy Dividing line (Horizontal ruler, hr, ---) + title.zh: 装饰性分割线(hr,---) + type: class-select + allowEmpty: false + default: default-hr + options: + - + label: Default + value: default-hr + - + label: with icons + value: fancy-hr-icon + - + label: without icons + value: fancy-hr-no-icon + - + label: with Numbers + value: fancy-hr-number + - + id: fancy-hr-folder-icon + title: 2.3.1.1 w/ icons + title.zh: 2.3.1.1 有图标的hr + type: heading + level: 4 + collapsed: true + - + id: hr-color-icon-1 + title: Line color 1 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: hr-color-icon-2 + title: Line color 2 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: hr-color-icon-3 + title: Line color 3 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: hr-color-icon-4 + title: Line color 4 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: fancy-hr-icon + title: Centre icon + title.zh: 分割线中间图标 + description: Do not remove the quotes + description.zh: 保留引号 + type: variable-text + default: "'😀'" + - + id: fancy-hr-rotate + title: Degree of icon rotation + title.zh: 图标旋转角度 + type: variable-number + default: 0 + format: deg + - + id: fancy-hr-folder-no-icon + title: 2.3.1.2 w/o icons + title.zh: 2.3.1.2 没有图标的hr + type: heading + level: 4 + collapsed: true + - + id: hr-color-1 + title: hr-color-1 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: hr-color-2 + title: hr-color-2 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: hr-color-3 + title: hr-color-3 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: hr-color-4 + title: hr-color-4 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: fancy-hr-folder-with-number + title: 2.3.1.3 w/ numbers + title.zh: 2.3.1.3 带数字的hr + type: heading + level: 4 + collapsed: true + - + id: hr-color-numbers-line-1 + title: Line color 1 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: hr-color-numbers-line-2 + title: Line color 2 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: hr-color-numbers-line-3 + title: Line color 3 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: hr-color-numbers-line-4 + title: Line color 4 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: hr-color-numbers-color + title: Number color + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: hr-color-numbers-bg-color + title: Number background color + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: hollow-number + title: Toggle hollow numbers + title.zh: 切换空心数字 + type: class-toggle + default: false + - + id: hr-numbers-text-fill + title: Fill color + title.zh: 数字颜色 + description: Color inside the numbers + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: hr-numbers-text-stroke + title: Stroke color + title.zh: 线条颜色 + description: Color of lines drawn around numbers + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: list-style-change-options-folder + title: 2.3.2 List + title.zh: 2.3.2 列表 + type: heading + level: 3 + collapsed: true + - + id: line-height-list + title: Line height of list + title.zh: 列表行间距 + type: variable-number-slider + default: 1.4 + min: 1 + max: 2 + step: 0.1 + - + id: list-spacing-bt + title: List Spacing + title.zh: 列表项间距 + type: variable-number-slider + default: 1 + min: 0 + max: 10 + step: 0.2 + - + id: list-indent + title: List indent + title.zh: 列表缩进间距 + type: variable-number-slider + default: 2 + format: em + min: 0 + max: 6 + step: 0.1 + - + id: list-style-change-options-folder + title: 2.3.2.1 Unordered list + title.zh: 2.3.2.1 无序列表 + type: heading + level: 4 + collapsed: true + - + id: colorful-unordered-list + title: Toggle colorful unordered list marker + title.zh: 启用彩色无序列表符号 + type: class-toggle + default: false + - + id: unordered-list-style-options + title: Unordered list marker style + title.zh: 无序列表样式 + type: class-select + allowEmpty: false + default: bt-default-unordered-list + options: + - + label: Blue Topaz Default + value: bt-default-unordered-list + - + label: Custom + value: custom-unordered-list + - + label: Obsidian default + value: default-list-marker + - + id: options-bt-default + title: 2.3.2.1.1 Options for 'Blue Topaz Default' + type: heading + level: 5 + collapsed: true + - + id: list-ul-marker-size + title: Bullet size + title.zh: 符号大小 + type: variable-text + default: 1em + - + id: list-ul-marker-color + title: Text color (1st level) + title.zh: 符号颜色(第一层) + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: options-for-custom + title: 2.3.2.1.2 Options for 'Custom' + type: heading + level: 5 + collapsed: true + - + id: list-ul-marker-1 + title: List symbol (1st level) + title.zh: 符号(第一层) + type: variable-text + default: '"\2022"' + - + id: list-ul-marker-size-1 + title: Bullet size (1st level) + title.zh: 符号大小(第一层) + type: variable-text + default: 1em + - + id: list-ul-marker-color-1 + title: Bullet color (1st level) + title.zh: 符号颜色(第一层) + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: list-ul-marker-2 + title: List symbol (2nd level) + title.zh: 符号(第二层) + type: variable-text + default: '"\25E6"' + - + id: list-ul-marker-size-2 + title: Bullet size (2nd level) + title.zh: 符号大小(第二层) + type: variable-text + default: 1em + - + id: list-ul-marker-color-2 + title: Bullet color (2nd level) + title.zh: 符号颜色(第二层) + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: list-ul-marker-3 + title: List symbol (3rd level) + title.zh: 符号(第三层) + type: variable-text + default: '"\25AA"' + - + id: list-ul-marker-size-3 + title: Bullet size (3rd level) + title.zh: 符号大小(第三层) + type: variable-text + default: 1em + - + id: list-ul-marker-color-3 + title: Bullet color (3rd level) + title.zh: 符号颜色(第三层) + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: list-ul-marker-4 + title: List symbol (4th level) + title.zh: 符号(第四层) + type: variable-text + default: '"\25E6"' + - + id: list-ul-marker-size-4 + title: Bullet size (4th level) + title.zh: 符号大小(第四层) + type: variable-text + default: 1em + - + id: list-ul-marker-color-4 + title: Bullet color (4th level) + title.zh: 符号颜色(第四层) + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: list-style-change-options-folder + title: 2.3.2.2 Ordered list + title.zh: 2.3.2.2 有序列表 + type: heading + level: 4 + collapsed: false + - + id: colorful-ordered-list + title: Toggle colorful ordered list marker + title.zh: 启用彩色有序列表符号 + type: class-toggle + default: false + - + id: ordered-list-style-options + title: Ordered List marker style + title.zh: 有序列表样式 + type: class-select + allowEmpty: false + default: default-ol-list-marker + options: + - + label: Custom + value: custom-ordered-list + - + label: 1.1.1 + value: ordered-list-style-1 + - + label: Obsidian default + value: default-ol-list-marker + - + id: list-ol-number-color + title: Number color of ordered list + title.zh: 有序列表数字颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: list-ol-marker-1 + title: List symbol (1st level) + title.zh: 有序列表第一层符号 + description: 数字:decimal,小写字母:lower-latin,小写罗马数字:lower-roman + type: variable-text + default: decimal + - + id: list-ol-marker-2 + title: List symbol (2nd level) + title.zh: 有序列表第二层符号 + description: 数字:decimal,小写字母:lower-latin,小写罗马数字:lower-roman + type: variable-text + default: lower-latin + - + id: list-ol-marker-3 + title: List symbol (3rd level) + title.zh: 有序列表第三层符号 + description: 数字:decimal,小写字母:lower-latin,小写罗马数字:lower-roman + type: variable-text + default: lower-roman + - + id: list-ol-marker-4 + title: List symbol (4th level) + title.zh: 有序列表第四层符号 + description: 数字:decimal,小写字母:lower-latin,小写罗马数字:lower-roman + type: variable-text + default: decimal + - + id: list-style-change-options + title: List style in reading view + title.zh: 阅读视图列表样式 + type: class-select + allowEmpty: false + default: list-no-border + options: + - + label: Bracket 1 + value: list-bracket-style + - + label: Bracket 2 (1.1.1) + value: list-bracket-style-two + - + label: Bracket 3 + value: list-bracket-style-three + - + label: Vertical line 1 (1.1.1) + value: list-vertical-line-one + - + label: Using Ob Settings + value: list-no-border + - + id: indentation-line-styles + title: 2.3.2.3 Indentation lines + title.zh: 2.3.2.3 层级线设置 + type: heading + level: 4 + collapsed: false + - + id: bt-connected-indent-hover + title: Toggle connected indent (Hovering) + title.zh: 启用Connected indent lines(鼠标悬浮) + description: Inspired from the CSS snippet by KillyMXI (https://gist.github.com/KillyMXI/cbef8edff6dd55d9e6ea4df66567e9b1) + type: class-toggle + default: true + - + id: bt-connected-indent-line-color + title: Connected indent line color (Hovering) + type: variable-themed-color + format: hex + opacity: true + default-light: '#FFA8A8' + default-dark: '#926a6a' + - + id: bt-colorful-connected-indent-hover + title: Toggle colorful indentation lines (Hovering) + title.zh: 启用彩色Connected indent lines(鼠标悬浮) + type: class-toggle + default: true + - + id: bt-indentation-width-hover + title: Width of indentation lines (Hovering) + title.zh: 层级线宽度 (Hovering) + type: variable-text + default: 3px + - + id: bt-list-indentation-margin-left-editing + title: Move to right by ?px (Editing) + title.zh: 向右移动 ?px (Editing) + type: variable-text + default: 1px + - + id: indentation-guide-color + title: Inactive line color (Editing) + type: variable-themed-color + format: rgb + opacity: true + default-light: 'rgba(0, 0, 0, 0.06)' + default-dark: 'rgba(255, 255, 255, 0.08)' + - + id: indentation-guide-color-active + title: Active line color (Editing) + type: variable-themed-color + format: rgb + opacity: true + default-light: 'rgba(0, 0, 0, 0.14)' + default-dark: 'rgba(255, 255, 255, 0.17)' + - + id: bt-colorful-indentation-lines-editing + title: Toggle colorful indentation lines (Editing) + title.zh: 启用彩色层级线 (编辑) + type: class-toggle + default: false + - + id: indentation-guide-width + title: Indent line width (Editing) + type: variable-number + default: 1 + format: px + - + id: bt-list-indentation-margin-left-reading + title: Move to right by ?px (Reading) + title.zh: 向右移动 ?px (Reading) + type: variable-text + default: 1px + - + id: bt-colorful-indentation-lines + title: Toggle colorful indentation lines (Reading) + title.zh: 启用彩色层级线 (阅读) + type: class-toggle + default: false + - + id: bt-colorful-indentation-line-options + title: Line styles (Reading) + title.zh: 层级线样式 (阅读) + type: class-select + allowEmpty: false + default: default-indentation-line + options: + - + label: Default + value: default-indentation-line + - + label: Gradient + value: bt-indentation-line-gradient + - + label: Image + value: bt-indentation-line-image + - + id: bt-indentation-gradient-color-1 + title: Indentation gradient color 1 + type: variable-themed-color + format: hex + opacity: true + default-light: '#' + default-dark: '#' + - + id: bt-indentation-gradient-color-2 + title: Indentation gradient color 2 + type: variable-themed-color + format: hex + opacity: true + default-light: '#' + default-dark: '#' + - + id: bt-colorful-indentation-width + title: Width of colorful indentation lines (Reading) + title.zh: 彩色层级线宽度 (阅读) + type: variable-text + default: 1px + - + id: folder-style-change-options-folder + title: 2.3.3 Folder + title.zh: 2.3.3 文件夹 + type: heading + level: 3 + collapsed: true + - + id: file-bg-shape-option + title: File background shape + title.zh: 文件背景形状 + type: class-select + allowEmpty: false + default: file-shape-default + options: + - + label: Rectangle + value: file-shape-default + - + label: Rounded Rectangle + value: file-bg-rounded-rectangle + - + label: Pill + value: file-bg-pill + - + id: file-name-style-option + title: File name style + title.zh: 文件名样式 + type: class-select + allowEmpty: false + default: file-name-non-wrapped + options: + - + label: Wrapped + value: file-name-wrapped + - + label: Non-wrapped + value: file-name-non-wrapped + - + label: File Name Scrolling When Hovering + value: file-name-animation + - + id: dark-background-file + title: Dark file background + title.zh: 当前文件背景变深 + type: class-toggle + default: false + - + id: unmuted-collapsed-folder + title: Unmute collapsed folder + title.zh: 未激活文件夹不再黯淡 + description: To normalize opacity of collapsed folder + description.zh: 统一激活/未激活文件夹亮度 + type: class-toggle + default: false + - + id: remove-file-icons + title: Remove file icons + title.zh: 移除文件前图标 + description: To remove the icons before .md files + description.zh: 移除md文件前图标 + type: class-toggle + default: false + - + id: text-folder-file-icon + title: Color of file icons + title.zh: 文件前图标颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: folder-icons + title: Toggle folder icons + title.zh: 激活文件夹图标 + type: class-toggle + default: true + - + id: remove-arrow + title: Toggle arrows (Collapse Indicator) + title.zh: 文件夹图标开启后,移除箭头图标(折叠图标) + description: To be effective after toggling the option above + description.zh: 开启上面选项后起效 + type: class-toggle + default: true + - + id: remove-first-folder-icon + title: Remove the first-layer folder icons + title.zh: 去除第一层文件夹前图标 + type: class-toggle + default: true + - + id: folder-style-change-options-colorful-folder + title: 2.3.3.1 Colorful folder + title.zh: 2.3.3.1 多彩文件夹 + type: heading + level: 4 + collapsed: false + - + id: bt-toggle-colorful-folder + title: Toggle colorful folders + title.zh: 启用彩色文件夹 + type: class-toggle + default: true + - + id: folder-style-change-options-colorful + title: Select folder colorful mode + title.zh: 彩色化类型 + type: class-select + allowEmpty: false + default: folder-style-change-options-colorful-tab-liked + options: + - + label: Default non-colorful + value: folder-style-change-options-colorful-default + - + label: folder colorful with "0-9" or "A-Z" + value: folder-style-change-options-colorful + - + label: folder colorful by order + value: folder-style-change-options-colorful-order + - + label: folder title colorful + value: folder-style-change-options-colorful-title + - + label: Tab-liked + value: folder-style-change-options-colorful-tab-liked + - + id: folder-style-change-options-colorful-subfolder + title: Folder color palette + title.zh: 文件夹配色 + type: class-select + allowEmpty: false + default: folder-colorful-six + options: + - + label: Style 1 (high transparency) + value: folder-colorful-one + - + label: Style 2 (low transparency) + value: folder-colorful-two + - + label: Style 3 + value: folder-colorful-three + - + label: Style 4 + value: folder-colorful-four + - + label: Style 5 + value: folder-colorful-five + - + label: Style 6 + value: folder-colorful-six + - + label: Custom + value: folder-colorful-custom + - + id: folder-colorful-custom-color + title: Custom color of folder + title.zh: 自定义文件夹配色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: blockquote-style-change-options-folder + title: 2.3.4 Blockquote + title.zh: 2.3.4 引用框 + type: heading + level: 3 + collapsed: true + - + id: blockquote-style-change-options + title: Blockquote + title.zh: 引用框样式 + type: class-select + allowEmpty: false + default: blockquote-style-default + options: + - + label: Default + value: blockquote-style-default + - + label: With quotation mark + value: blockquote-style-quotation-mark + - + label: Speech Bubble 1 + value: blockquote-style-speech-bubble-one + - + label: Speech Bubble 2 + value: blockquote-style-speech-bubble-two + - + label: Outline + value: blockquote-style-outline + - + label: Border left + value: blockquote-style-border-left + - + id: export-pdf-style-folder + title: 2.3.5 Exported PDF style + title.zh: 2.3.5 导出PDF样式 + type: heading + level: 3 + collapsed: true + - + id: hr-for-pagination + title: Use hr (---) for paging + title.zh: 使用分隔符(---)分页 + type: class-toggle + default: false + - + id: all-dark-pdf + title: All dark (Experimental, may or may not be desirable) + description: Export PDF with dark mode color scheme + description.zh: 导出黑暗配色的PDF + type: class-toggle + default: false + - + id: show-url-after-link + title: Print URL after links + title.zh: 显示地址超链接 + type: class-toggle + default: false + - + id: print-strong-color + title: Strong color + title.zh: 粗体颜色 + type: variable-themed-color + opacity: false + format: hex + default-light: '#' + default-dark: '#' + - + id: print-em-color + title: Italic type color + title.zh: 斜体颜色 + type: variable-themed-color + opacity: false + format: hex + default-light: '#' + default-dark: '#' + - + id: embed-folder + title: 2.3.6 Embeds + title.zh: 2.3.6 嵌入样式 + type: heading + level: 3 + collapsed: true + - + id: adjustable-embed-content-height + title: Fixed embedded content height + title.zh: 固定嵌入页面高度 + type: class-toggle + default: false + - + id: embed-content-height + title: Height of embedded content + title.zh: 嵌入页面高度 + description: Switch on the above button to activate + type: variable-number + default: 600 + format: px + - + id: naked-embed + title: Transparent embedded background + title.zh: 嵌入背景透明 + type: class-toggle + default: false + - + id: hide-embed-title + title: Hide embedded title + title.zh: 隐藏嵌入文档标题 + type: class-toggle + default: false + - + id: hide-embed-banner + title: Hide embedded banner + title.zh: 隐藏嵌入文档banner + type: class-toggle + default: false + - + id: embed-hd + title: Hide embedded headers + title.zh: 隐藏嵌入文档中的H1 H2 H3标题 + type: class-toggle + default: false + - + id: embed-hover + title: Floating effect of embedded note when hovering + title.zh: 嵌入笔记浮动效果 + type: class-toggle + default: false + - + id: table-styles + title: 2.3.7 Table + title.zh: 2.3.7 表格 + type: heading + level: 3 + collapsed: true + - + id: toggle-table-transition + title: Toggle table zooming effect + title.zh: 移除表格悬浮放大效果 + type: class-toggle + default: false + - + id: table-format-options + title: Table format + title.zh: 表格格式 + type: class-select + allowEmpty: false + default: default-table + options: + - + label: Defaut table + value: default-table + - + label: Wrapped table (break all) + value: wrapped-table + - + label: Non-wrapped table (limited cell width) + value: no-wrapped-table-cell + - + label: Non-wrapped table + value: no-wrapped-table + - + id: show-border-table + title: Show borders + title.zh: 显示表格框线 + type: class-toggle + default: false + - + id: table-width + title: Table width + title.zh: md表格默认宽度 + type: class-select + default: table-width-100 + options: + - + label: 100% + value: table-width-100 + - + label: auto + value: table-width-auto + - + id: full-width-table + title: Full-width table display + title.zh: md表格全宽显示 + description: for Reading View, require Contextual Typography plugin + description.zh: 阅读模式下,实现效果需要安装Contextual Typography插件 + type: class-toggle + default: false + - + id: table-style-options + title: Table Style + title.zh: 表格样式 + type: class-select + allowEmpty: false + default: table-style-default + options: + - + label: Default + value: table-style-default + - + label: Style I + value: table-style-one + - + label: Style II + value: table-style-two + - + label: Style III + value: table-style-three + - + id: cloze-style + title: 2.3.8 Cloze style + title.zh: 2.3.8 挖空涂黑 + type: heading + level: 3 + collapsed: true + - + id: remove-cloze-style + title: Cancel cloze Style + title.zh: 取消挖空涂黑功能 + description: In this theme, you can use ==~~your words~~==, *==~~your words~~==* and *~~your words~~* to obtain a cloze-style, active this option to cancel it + description.zh: 当前主题下,使用以下格式可以对文本进行涂黑或挖空 ==~~your words~~==, *==~~your words~~==* 或 *~~your words~~*,激活该选项以取消 + type: class-toggle + default: false + - + id: cloze-bg-color + title: Cloze background color + title.zh: 涂黑背景颜色 + description: Cloze Style One, i.e. ==~~your words~~==, hovering to find "your words", should declare "cssclass:cloze" in the YAML area if you want to use them in the Live Preview mode + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: cloze-decoration + title: Underline decoration style + description: Can type 'solid', 'dotted', 'dashed', 'wavy' or 'double' for Cloze Style One, i.e. ==~~your words~~==, hovering to find "your words", should declare "cssclass:cloze" in the YAML area if you want to use them in the Live Preview mode + type: variable-text + default: none + - + id: cloze-decoration-color + title: Underline decoration color + description: For Cloze Style One, i.e. ==~~your words~~==, hovering to find "your words", should declare 'cssclass:cloze' in the YAML area if you want to use them in the Live Preview mode + type: variable-themed-color + opacity: false + format: hex + default-light: '#' + default-dark: '#' + - + id: cloze-decoration-2 + title: Underline decoration style for Cloze style TWO + description: Can type 'solid', 'dotted', 'dashed', 'wavy', 'double' or 'none' for Cloze Style TWO, i.e. *==~~your words~~==*, pressing down the primary mouse button to find "your words", should declare 'cssclass:cloze' in the YAML area if you want to use them in the Live Preview mode + type: variable-text + default: dashed + - + id: cloze-decoration-color-2 + title: Underline decoration color for Cloze style TWO + description: For Cloze Style TWO, i.e. *==~~your words~~==*, pressing down the primary mouse button to find "your words", should declare 'cssclass:cloze' in the YAML area if you want to use them in the Live Preview mode + type: variable-themed-color + opacity: false + format: hex + default-light: '#' + default-dark: '#' + - + id: cloze-decoration-3 + title: Underline decoration style for Cloze style THREE (*~~your words~~*) + description: Can type 'solid', 'dotted', 'dashed', 'wavy', 'double' or 'none' for Cloze Style THREE, i.e. *~~your words~~*, pressing down the primary mouse button to find "your words", should declare 'cssclass:cloze' in the YAML area if you want to use them in the Live Preview mode + type: variable-text + default: dashed + - + id: cloze-decoration-color-3 + title: Underline decoration color for Cloze style THREE + description: For Cloze Style THREE, i.e. *~~your words~~*, pressing down the primary mouse button to find "your words", should declare 'cssclass:cloze' in the YAML area if you want to use them in the Live Preview mode + type: variable-themed-color + opacity: false + format: hex + default-light: '#' + default-dark: '#' + - + id: link-style + title: 2.3.9 Links + title.zh: 2.3.9 链接 + type: heading + level: 3 + collapsed: true + - + id: link-underline-internal + title: Toggle internal link underline + title.zh: 开启内部链接下划线(默认:无) + type: class-toggle + default: false + - + id: link-underline-external + title: Disable external link underline + title.zh: 关闭外部链接下划线(默认:有) + type: class-toggle + default: false + - + id: link-underline-unresolved + title: Toggle unresolved link underline + title.zh: 开启未创建链接下划线(默认:有) + type: class-toggle + default: false + - + id: colorful-link-animation + title: Toggle colorful link background (hovering) + title.zh: 开启彩色链接背景颜色 (鼠标悬浮时) + type: class-toggle + default: false + - + id: internal-link-color + title: Internal link color + title.zh: 内链颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: remove-external-link-icon + title: Toggle icon after external link + title.zh: 去除外部链接后面的图标 + type: class-toggle + default: false + - + id: external-link-color + title: External link color + title.zh: 外链颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: default-unresolved-link + title: Toggle default unresolved link color + title.zh: 使用默认的未创建链接颜色 + type: class-toggle + default: false + - + id: unresolved-link + title: Unresolved Link Color + title.zh: 未创建链接颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: link-click + title: Cancel click the link to trigger auto-jump + title.zh: 取消编辑模式下点击链接自动跳转 + type: class-toggle + default: false + description: You can click on the link by holding down the ctrl key to jump + description.zh: 可以通过按住ctrl键点击链接跳转 + - + id: cursor-style-folder + title: 2.3.10 Cursor + title.zh: 2.3.10 输入光标 + type: heading + level: 3 + collapsed: true + - + id: cursor-color + title: Cursor color + title.zh: 光标颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: checkbox-style-folder + title: 2.3.11 Checkbox + title.zh: 2.3.11 勾选框 + type: heading + level: 3 + collapsed: true + - + id: circular-checkbox + title: Circular checkbox + title.zh: 圆形勾选框 + type: class-toggle + default: false + - + id: toggle-checked-decoration + title: Add strikethrough for checked items + title.zh: 添加完成任务时的删除线 + type: class-toggle + default: false + - + id: checklist-done-color + title: Checked text color + title.zh: 完成任务的文字颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: checkbox-size + title: Checkbox Size + title.zh: 勾选框大小 + type: variable-text + default: 1rem + - + id: unmute-checkbox-animation + title: Deactivate checkbox animation + title.zh: 取消勾选框摇摆动画 + type: class-toggle + default: false + - + id: extend-checkbox-list + title: Extend checkbox list (unavailable) + title.zh: 扩充勾选框类型 (不可用) + type: class-toggle + default: false + - + id: icons-style-folder + title: 2.3.12 Icons + title.zh: 2.3.12 图标 + type: heading + level: 3 + collapsed: true + - + id: remove-custom-svg-icons + title: Toggle default icons + title.zh: 还原默认图标 + type: class-toggle + default: false + - + id: default-icons + title: Toggle default collapse icons + title.zh: 还原折叠图标 + type: class-toggle + default: false + - + id: enable-icon-anima + title: Enable clickable-icons' hovering animation + title.zh: 开启按钮图标的鼠标悬浮动画效果 + description.zh: 是否开启图标背景动画以及图标悬浮动画效果 + type: class-toggle + default: false + - + id: icons-style-folder + title: 2.3.13 Images + title.zh: 2.3.13 图片 + type: heading + level: 3 + collapsed: true + - + id: image-zoom + title: Deactivate image zooming + title.zh: 取消点击图片放大效果 + type: class-toggle + default: false + - + id: obsidian-default-image + title: Obsidian default image position + title.zh: Obsidian默认图片位置 + type: class-toggle + default: false + - + id: image-max-width + title: Image max-width + title.zh: 图片最大宽度 + type: variable-text + default: 100% + - + id: image-border + title: Image borders + title.zh: 图片添加边框 + type: class-toggle + default: false + - + id: icons-style-folder-1 + title: Intro to basic image position + title.zh: 基本图片位置简介 + description: You can add 🔸|Left (can also use `left`, `LEFT` or `L` to replace the `Left` before), 🔸|Right (right/RIGHT/R) and 🔸|Inline (inline/INLINE/inl/INL/Inl) 🔸|Centre/Center (CENTRE/CENTER/centre/center/C) (the “centre” one is for the “Obsidian Default Image Position above only, because Topaz's default image position is in the centre) into a image format to adjust the image position, e.g. ![[*.jpg|L]], ![[*.png|Right|200]] and ![|inl](...*.jpg) + description.zh: 在图片格式里添加 🔸|Left (can also use `left`, `LEFT` or `L` to replace the `Left` before), 🔸|Right (right/RIGHT/R) and 🔸|Inline (inline/INLINE/inl/INL/Inl) 🔸|Centre/Center (CENTRE/CENTER/centre/center/C) (这个选项只在开启 “Obsidian默认图片位置” 后生效,因为Topaz默认图片位置就是居中) 来改变图片位置, e.g. ![[*.jpg|L]], ![[*.png|Right|200]] and ![|inl](...*.jpg) + type: heading + level: 4 + collapsed: true + - + id: icons-style-folder-2 + title: Intro to image caption + title.zh: 图片标题介绍 + description: You can add 🔸#Left|your captions (can also use `left`, `LEFT` or `L` to replace the `Left`), 🔸#Right (or right/RIGHT/R)|your captions, 🔸#center/centre (CENTRE/CENTER/Center/Centre/C) |your captions and 🔸#inl (Inline/INLINE/inline/INL/Inl) |your captions into a image format to adjust the image position with a image caption, e.g. ![[*.jpg#left|Figure 1]], ![[*.png#right|Figure 2|200]], ![[*.jpg#centre|Figure 3]] and ![[*.jpg#inl|Figure 4|100]] + description.zh: 在图片格式里添加 🔸#left (can also use `left`, `LEFT` or `L` to replace the `Left`) |your captions, 🔸#right (or right/RIGHT/R) |your captions, 🔸#center/centre (CENTRE/CENTER/Center/Centre/C) |your captions and 🔸#inl (Inline/INLINE/inline/INL/Inl) |your captions 来改变图片位置,并添加图片标题, e.g. ![[*.jpg#left|Figure 1]], ![[*.png#right|Figure 2|200]], ![[*.jpg#C|Figure 3]] and ![[*.jpg#inl|Figure 4|100]] + type: heading + level: 4 + collapsed: true + - + id: icons-style-folder-3 + title: Intro to image grid + title.zh: 图片横排介绍 + description: You can add 🔸|+grid into some images to grid these images in a line, e.g. ![[*.jpg|+grid]] Or type ❗cssclass:img-grid❗ in YAML to make images arrange in a grid in the preview mode. require Contextual Typography plugin + description.zh: 在图片格式里添加 🔸|+grid 使复数的图片排成一行, e.g. ![[*.jpg|+grid]] 。或者在YAML种输入 ❗cssclass:img-grid❗最好安装 Contextual Typography 插件实现更好的并排效果 + type: heading + level: 4 + collapsed: false + - + id: img-grid + title: Enable global image grid + title.zh: 开启全局图片横排显示 + description: Enable the Contextual Typography plugin to control side-by-side images via blank lines + description.zh: 开启后,不需要在笔记上方声明cssclass:img-grid,通过图片空行控制是否并排 + type: class-toggle + default: false + - + id: loading-page-style-folder + title: 2.3.14 Loading page + title.zh: 2.3.14 加载页面 + type: heading + level: 3 + collapsed: true + - + id: loading-page-style-option + title: Loading page style + type: class-select + allowEmpty: false + default: default-loading-page + options: + - + label: Default Loading Page + value: default-loading-page + - + label: Shapes + value: loading-page-style-default + - + label: Custom Text + value: loading-custom-text + - + label: Default Text w/ Icons Before and After + value: loading-add-icons + - + label: Cat (GIF) + value: loading-animation-cat + - + label: Adding Image or Animation (GIF) + value: loading-animation-custom + - + label: Animation with Position Changing + value: loading-shape-with-custom-gif + - + label: Jumping Mario + value: loading-page-style-mario + + - + id: loading-custom-text-folder + title: 2.3.14.1 Custom text + type: heading + level: 4 + collapsed: true + - + id: loading-diy-text + title: Custom text + title.zh: 自定义文字 + type: variable-text + default: "'快乐摸鱼又一天,人生还剩多少天?'" + - + id: font-loading-text + title: Font family of custom text + title.zh: 字体 + type: variable-text + default: var(--font-monospace-theme) + - + id: font-size-loading-diy-text + title: Font size + type: variable-text + default: 3em + - + id: loading-diy-text-color + title: Text color + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: loading-text-typing-style + title: Typing style + title.zh: 打字效果 + type: class-toggle + default: true + - + id: loading-text-moving-style + title: Moving style + title.zh: 移动效果 + type: class-toggle + default: false + - + id: loading-text-shinning-style + title: Shinning style + title.zh: 闪烁效果 + type: class-toggle + default: false + - + id: loading-text-color-changing-style + title: Color-changing style + title.zh: 变色效果 + type: class-toggle + default: false + - + id: loading-add-icons-folder + title: 2.3.14.2 Custom image/animation + type: heading + level: 4 + collapsed: true + - + id: loading-text-before + title: Adding things before + type: variable-text + default: "'❀✿'" + - + id: loading-text-after + title: Adding things after + type: variable-text + default: "'✿❀'" + - + id: font-size-loading-add + title: Font size + type: variable-text + default: 1.5em + - + id: loading-add-text-color + title: Text color + type: variable-themed-color + opacity: true + format: hex + default-light: '#D3959B' + default-dark: '#D3959B' + - + id: loading-add-text-color-alt + title: Text color + type: variable-themed-color + opacity: true + format: hex + default-light: '#BFE6BA' + default-dark: '#BFE6BA' + - + id: loading-animation-custom-folder + title: 2.3.14.3 Custom image/animation + type: heading + level: 4 + collapsed: true + - + id: loading-page-custom-gif-caption + title: Image caption + type: variable-text + default: " " + - + id: loading-shape-with-custom-gif-folder + title: 2.3.14.4 Custom image/animation with position changing + type: heading + level: 4 + collapsed: true + - + id: loading-page-custom-gif-caption-alt + title: Image caption + type: variable-text + default: " " + - + id: loading-shape-with-custom-high-contrast-bg + title: High contrast background + title.zh: 高对比度背景 + type: class-toggle + default: false + - + id: tag-color-settings + title: 2.3.15 Tags + title.zh: 2.3.15 标签 (#Tag) + type: heading + level: 3 + collapsed: true + - + id: tag-click + title: Cancel click the tag to trigger auto-jump + title.zh: 取消实时预览模式下点击标签自动跳转 + type: class-toggle + default: false + description: You can jump by clicking on the # marks in the tags + description.zh: 可以通过点击标签中的#号跳转 + - + id: head-tag-style + title: Label superscript in the header + title.zh: 标题中的标签上标样式 + type: class-toggle + default: false + description.zh: 标题出现标签自动上标,也可以用 或者包裹实现不一样的样式。 + - + id: tag-style-option + title: Tag Style + title.zh: 标签样式 + type: class-select + allowEmpty: false + default: tag-default + options: + - + label: Rainbow tag + value: rainbow-tag + - + label: Rainbow tag alt (No influence on emojis) + value: rainbow-tag-no-filter + - + label: Outlined + value: tag-pill-outlined + - + label: Clear + value: tag-clear-style + - + label: Obsidian default + value: tag-default + - + label: Customised colorful tag + value: colorful-tag-bt + - + id: customised-colorful-tag + title: 2.3.15.1 Customised colorful tag + type: heading + level: 4 + collapsed: true + - + id: tag1 + title: Tag-1 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: tag2 + title: Tag-2 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: tag3 + title: Tag-3 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: tag4 + title: Tag-4 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: tag5 + title: Tag-5 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: tag-text + title: Tag text + type: variable-themed-color + opacity: false + format: hex + default-light: '#f8f8f8' + default-dark: '#e4e4e4' + - + id: outlined-style + title: 2.3.15.2 Outlined + type: heading + level: 4 + collapsed: true + - + id: tag-border-width + title: Tag border width + title.zh: 标签边框宽度 + type: variable-text + default: 1px + - + id: tag-color-settings + title: 2.3.16 Setting, Menu, Option panes + title.zh: 2.3.16 设置、菜单、选项面板 + type: heading + level: 3 + collapsed: true + - + id: setting-etc-pane-style + title: Pane style + type: class-select + allowEmpty: false + default: setting-style-traditional + options: + - + label: Frosted Glass + value: setting-default-frosted-glass + - + label: Traditional + value: setting-style-traditional + - + label: Translucent (only for setting panel) + value: translucent-setting-panel + - + id: titlebar-settings + title: 2.3.17 Titlebar style + title.zh: 2.3.17 标题栏样式 + type: heading + level: 3 + collapsed: true + - + id: simple-titlebar + title: Simple title bar + title.zh: 简单的Title bar + description: To remove the background image of title bar + description.zh: 自定义title bar背景 + type: class-toggle + default: false + - + id: custom-titlebar-bg + title: Title bar background color + title.zh: 自定义标题栏背景色 + description: custom-titlebar-bg + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: titlebar-blur-depth + title: Title bar blur radius + title.zh: Title bar 模糊程度 + description: To adjust the radius of blur + description.zh: 调整Title bar 背景模糊程度 + type: variable-number-slider + default: 8 + format: px + min: 0 + max: 30 + step: 1 + - + id: titlebar-brightness + title: Title bar brightness of image + title.zh: Title bar 背景亮度 + description: To adjust the brightness + description.zh: 调整Title bar 背景亮度 + type: variable-number-slider + default: 1 + min: 0.1 + max: 1.5 + step: 0.1 + - + id: titlebar-close-button + title: Titlebar close button + title.zh: Ob标题栏关闭按钮 + type: class-select + allowEmpty: false + default: default-titlebar + options: + - + label: Default + value: default-titlebar + - + label: Reversal + value: reversal-titlebar + - + id: hide-titlebar-text + title: Hide text in title bar + title.zh: 隐藏Obsidian标题栏中的文字 + type: class-toggle + default: false + - + id: hide-titlebar-close-btn + title: Auto-hide title bar close button + title.zh: 自动隐藏关闭按钮 + type: class-toggle + default: false + - + id: outline-settings + title: 2.3.18 Outline + title.zh: 2.3.18 侧边栏大纲 + type: heading + level: 3 + collapsed: true + - + id: outline-style + title: Outline style + title.zh: 大纲样式 + type: class-select + allowEmpty: false + default: default-outline-style + options: + - + label: Default + value: default-outline-style + - + label: Logseq + value: logseq-outline-style + - + id: nowrap-outline + title: Nowrap + title.zh: 不换行 + type: class-toggle + default: false + - + id: prompt-settings + title: 2.3.19 Prompt (ctrl p) + title.zh: 2.3.19 提示框 (ctrl p) + type: heading + level: 3 + collapsed: true + - + id: prompt-options + title: Prompt styles + title.zh: 提示框唤出样式 + type: variable-select + allowEmpty: false + default: default-prompt-style + options: + - + label: Default + value: default-prompt-style + - + label: Fancy prompt 1 + value: fancy-prompt-1 + - + label: Slide Up Large + value: slideUpLarge + - + label: Quick Scale Down + value: quickScaleDown + - + label: Blow Up Modal + value: blowUpModal + - + label: Road Runner In + value: roadRunnerIn + - + label: Road Runner Out + value: roadRunnerOut + - + label: Unfold In + value: unfoldIn + - + label: Pop-swirl + value: pop-swirl + - + id: stack-settings + title: 2.3.20 Stack tabs + type: heading + level: 3 + collapsed: true + - + id: stack-tabs-text-ori-options + title: Text orientation styles + title.zh: stack 模式汉字竖排 + type: class-select + allowEmpty: false + default: stack-tab-text-ori-mixed + options: + - + label: Default + value: default-stack-text-ori-style + - + label: Mixed orientation + value: stack-tab-text-ori-mixed + - + id: stack-tabs-background-blur-depth + title: stack tabs background blur radius + title.zh: 堆叠模式下笔记背景模糊程度 + description: To adjust the radius of blur + description.zh: 调整背景模糊程度 + type: variable-number-slider + default: 40 + format: px + min: 0 + max: 200 + step: 10 + - + id: tabs-settings + title: 2.3.21 Tabs + type: heading + level: 3 + collapsed: true + - + id: tab-head-style + title: Tab style + type: class-select + allowEmpty: false + default: default-tab + options: + - + label: Default + value: default-tab + - + label: Underline + value: underline-tab-style + - + label: Safari-style + value: safari-tab-style + - + label: Transparent-style + value: transparent-tab-style + - + id: mermaid-styles + title: 2.3.21 Mermaid + type: heading + level: 3 + collapsed: true + - + id: resizable-mermaid + title: Resizable mermaid in reading mode + title.zh: 阅读模式可调整mermaid大小 + type: class-toggle + default: false + - + id: metadata-styles + title: 2.3.22 Metadata (Yaml) + type: heading + level: 3 + collapsed: true + - + id: show-full-metadata + title: Show full metadata in Reading mode + title.zh: 阅读模式下显示完整的metadata信息 + description.zh: 需要先在设置中开启显示front-matter,笔记cssclass中声明show-full-metadata 可单独控制是否显示yaml + type: class-toggle + default: false + addCommand: true + - + id: canvas-styles + title: 2.3.23 Canvas + title.zh: 2.3.23 白板 Canvas + type: heading + level: 3 + collapsed: true + - + id: canvas-card-focus-mode + title: Canvas card focus mode (Unavailable) + title.zh: 开启Canvas聚焦模式 (不可用) + description: clicking on a card will highlight all cards and lines of the same color on the canvas When turned on + description.zh: 开启后 点击卡片会突出显示画布上所有相同颜色的卡片和线条 + type: class-toggle + default: false + addCommand: true + - + id: zoom-multiplier + title: Canvas card size for "Zoom to selection" + title.zh: “聚焦”时卡片大小 + type: variable-number-slider + default: 1 + min: 0.5 + max: 2 + step: 0.05 + - + id: canvas-card-text-middle + title: Canvas card text center align + title.zh: 卡片文字默认居中 + type: class-toggle + default: false + - + id: canvas-card-opacity + title: Canvas card opacity + title.zh: 卡片透明度 + type: variable-number-slider + default: 0.1 + min: 0 + max: 1 + step: 0.05 + - + id: canvas-workplace-background-heading + title: 2.3.23.1 canvas workplace background settings + title.zh: 2.3.23.1 canvas页面背景设置 + type: heading + level: 4 + collapsed: true + - + id: toggle-canvas-grid + title: Toggle canvas grid + title.zh: 关闭Canvas网格显示 + type: class-toggle + default: false + - + id: canvas-workplace-background + title: Toggle canvas workplace background + title.zh: 关闭Canvas工作区背景 + description.zh: 如果开启了1.2.1工作页面背景,编辑画板也会带有背景,这里可以关闭画板背景 + type: class-toggle + default: false + - + id: canvas-background-image + title: Canvas background image + title.zh: canvas背景图案 + type: class-select + allowEmpty: false + default: default-canvas-background + options: + - + label: Default + value: default-canvas-background + - + label: Stardust + value: stardust-canvas-background + - + label: Dark Mosaic + value: mosaic-canvas-background-dark + - + label: Woven (Dark) + value: woven-canvas-background-dark + - + label: Woven (light) + value: woven-canvas-background + - + label: Wood + value: wood-canvas-background + - + label: Retina Wood + value: retina-wood-canvas-background + - + label: Matrix grid + value: matrix-grid-canvas-background + - + label: Notebook + value: notebook-canvas-background + - + label: Project Paper + value: paper-canvas-background + - + label: Blackboard + value: blackboard-canvas-background + - + id: canvas-background + title: Custom canvas background color + title.zh: 自定义canvas背景色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: tab-stack-folder + title: 2.3.24 Tab stack + title.zh: 2.3.24 堆叠标签页 + type: heading + level: 3 + collapsed: true + - + id: tab-stacked-pane-width + title: Tag stacked pane with + type: variable-number + default: 700 + format: px + - + id: tab-stacked-header-width + title: Spine width + type: variable-number + default: 40 + format: px + - + id: highlight-bg-color-folder + title: 2.3.25 Highlights (==xx==) + title.zh: 2.3.25 高亮 (==xx==) + type: heading + level: 3 + collapsed: true + - + id: text-highlight + title: Highlight text color + title.zh: 高亮文本颜色 + description: ==XXXXX== color + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: highlight-style + title: Highlight styles + title.zh: 高亮样式 + type: class-select + allowEmpty: false + default: bt-default-highlight + options: + - + label: Default + value: bt-default-highlight + - + label: All rounded corners (@Mon & @TheGodOfKing) + value: all-rounded-corners-highlight + - + label: No rounded corners + value: no-rounded-corners-highlight + - + id: highlight-bg-color-head + title: Highlight background color + title.zh: 高亮背景颜色 + type: heading + level: 4 + collapsed: true + - + id: text-highlight-bg-h-light + title: Hue (Light mode) + description: To adjust Hue + description.zh: 调整颜色 明亮模式 + type: variable-number-slider + default: 34 + min: 0 + max: 360 + step: 5 + - + id: text-highlight-bg-s-light + title: Saturation (Light mode) + description: To adjust Saturation + description.zh: 调整饱和度 明亮模式 + type: variable-number-slider + default: 100 + min: 0 + max: 100 + step: 5 + format: "%" + - + id: text-highlight-bg-l-light + title: Lightness (Light mode) + description: To adjust Lightness + description.zh: 调整亮度 明亮模式 + type: variable-number-slider + default: 80 + min: 0 + max: 100 + step: 5 + format: "%" + - + id: text-highlight-bg-a-light + title: Opacity (Light mode) + description: To adjust Alpha + description.zh: 调整透明度(Alpha)明亮模式 + type: variable-number-slider + default: 0.80 + min: 0 + max: 1 + step: 0.05 + - + id: text-highlight-bg-h-dark + title: Hue (Dark mode) + description: To adjust Hue + description.zh: 调整颜色 黑暗模式 + type: variable-number-slider + default: 57 + min: 0 + max: 360 + step: 5 + - + id: text-highlight-bg-s-dark + title: Saturation (Dark mode) + description: To adjust Saturation + description.zh: 调整饱和度 黑暗模式 + type: variable-number-slider + default: 40 + min: 0 + max: 100 + step: 5 + format: "%" + - + id: text-highlight-bg-l-dark + title: Lightness (Dark mode) + description: To adjust Lightness + description.zh: 调整亮度 黑暗模式 + type: variable-number-slider + default: 38 + min: 0 + max: 100 + step: 5 + format: "%" + - + id: text-highlight-bg-a-dark + title: Opacity (Dark mode) + description: To adjust Alpha + description.zh: 调整透明度(Alpha)黑暗模式 + type: variable-number-slider + default: 0.55 + min: 0 + max: 1 + step: 0.05 + - + id: colorful-highlight-head + title: Colorful highlight setting + title.zh: 多彩高亮背景颜色 + type: heading + level: 4 + collapsed: true + - + id: remove-colorful-highlight-bg + title: Deactivate colorful-highlight + title.zh: 取消多彩高亮颜色 + description: In this theme, *==xxx==*, **==xxx==** and ***==xxx==*** possese different background colors by default, active this option to cancel it. Even with this option actived, you can still type "cssclass:colorful-highlight" into yaml to make the colorful-highlight style available to individual documents + description.zh: 当前主题下,*==xxx==*, **==xxx==** and ***==xxx==*** 默认情况下具有不同高亮背景色,激活该选项以取消。即使取消了该功能,你依旧可以在yaml中键入"cssclass:colorful-highlight",使单个文档激活多彩高亮功能 + type: class-toggle + default: false + - + id: bg-color-highlight-1 + title: Highlight background color Plus 1 (*==xx==*) + title.zh: 高亮颜色 Plus 1 (*==xx==*) + type: variable-themed-color + opacity: true + format: hex + default-light: '#ff000034' + default-dark: '#c865656f' + - + id: color-highlight-1 + title: Highlight text color Plus 1 (*==xx==*) + title.zh: 高亮文字颜色 Plus 1 (*==xx==*) + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: font-weight-highlight-1 + title: Font weight of highlight text Plus 1 (*==xx==*) + title.zh: 字重 Plus 1 (*==xx==*) + description: Can type normal, bold, lighter or bolder to change the font weight + description.zh: 可以输入 normal, bold, lighter 或者 bolder 去改变字重 + type: variable-text + default: normal + - + id: bg-color-highlight-2 + title: Highlight background color Plus 2 (**==xx==**) + title.zh: 高亮颜色 Plus 2 (**==xx==**) + type: variable-themed-color + opacity: true + format: hex + default-light: '#0fc41835' + default-dark: '#54b9476f' + - + id: color-highlight-2 + title: Highlight text color Plus 2 (**==xx==**) + title.zh: 高亮文字颜色 Plus 2 (**==xx==**) + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: font-weight-highlight-2 + title: Font weight of highlight text Plus 2 (**==xx==**) + title.zh: 字重 Plus 2 (**==xx==**) + description: Can type normal, bold, lighter or bolder to change the font weight + description.zh: 可以输入 normal, bold, lighter 或者 bolder 去改变字重 + type: variable-text + default: normal + - + id: bg-color-highlight-3 + title: Highlight background color Plus 3 (***==xx==***) + title.zh: 高亮颜色 Plus 3 (***==xx==***) + type: variable-themed-color + opacity: true + format: hex + default-light: '#4ca6ff51' + default-dark: '#1e83d086' + - + id: color-highlight-3 + title: Highlight text color Plus 3 (***==xx==***) + title.zh: 高亮文字颜色 Plus 3 (***==xx==***) + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: font-weight-highlight-3 + title: Font weight of highlight text Plus 3 (***==xx==***) + title.zh: 字重 Plus 3 (***==xx==***) + description: Can type normal, bold, lighter or bolder to change the font weight + description.zh: 可以输入 normal, bold, lighter 或者 bolder 去改变字重 + type: variable-text + default: normal + - + id: highlight-bg-color-folder + title: 2.3.26 Popover + title.zh: 2.3.26 悬浮预览弹窗 + type: heading + level: 3 + collapsed: true + - + id: background-popover + title: Hover popover background color + title.zh: 悬浮弹窗背景色 + description: --background-popover + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: popover-width-factor + title: Popover width + title.zh: 弹窗宽度 + type: variable-number-slider + default: 1 + min: 0.5 + max: 2.5 + step: 0.05 + - + id: popover-height-factor + title: Popover height + title.zh: 弹窗宽度 + type: variable-number-slider + default: 1 + min: 0.5 + max: 2 + step: 0.05 + - + id: tab-stack-folder + title: 2.3.27 PDF + title.zh: 2.3.27 PDF + type: heading + level: 3 + collapsed: true + - + id: ob-pdf-style-selection-light + title: PDF styles (Light) + title.zh: PDF 样式 (明亮) + type: class-select + allowEmpty: false + default: pdf-style-default-light + options: + - + label: Default + value: pdf-style-default-light + - + label: Invert colors + value: pdf-style-invert-color-light + - + label: Green + value: pdf-style-green-bg-light + - + label: Warm + value: pdf-style-warm-bg-light + - + label: Custom + value: pdf-style-custom-bg + - + id: ob-pdf-style-selection-dark + title: PDF styles (Dark) + title.zh: PDF 样式 (黑暗) + type: class-select + allowEmpty: false + default: pdf-style-default-dark + options: + - + label: Default + value: pdf-style-default-dark + - + label: Invert colors + value: pdf-style-invert-color-dark + - + label: Green + value: pdf-style-green-bg-dark + - + label: Warm + value: pdf-style-warm-bg-dark + - + label: Custom + value: pdf-style-custom-bg + - + id: custom-bg-pdf-style + title: Custom PDF background + title.zh: 自定义PDF背景颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: style-options-for-other-plugins + title: 3. For Plugins + title.zh: 3. 插件样式 + type: heading + level: 1 + collapsed: true + - + id: style-options-for-admonition-plugin-header + title: 3.1 Admonition & Callout style + type: heading + level: 2 + collapsed: true + - + id: admonition-bg-color + title: Admontion codebock and Callout background + title.zh: Admonition 和 Callout背景色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#FFFFFF00' + default-dark: '#11111100' + - + id: admonition-bg-color-same + title: The same as the title color + title.zh: 背景色与标题色一致 + description.zh: Obsidian 默认callout样式 + type: class-toggle + default: false + - + id: callout-style-settings + title: callout style settings + title.zh: Callout 外观样式设置 + type: class-select + allowEmpty: false + default: admonition-bg-color-same + options: + - + label: Default + value: admonition-bg-color-same + - + label: Traditional + value: traditional-callout-style + - + label: Border + value: border-callout-style + - + label: Shade + value: shade-callout-style + - + id: full-width-callout + title: Full-width layout for callout & admonition + title.zh: callout和ad块全宽显示 + description.zh: 不收缩减栏宽影响,全宽显示callout块 + type: class-toggle + default: false + - + id: style-options-for-admonition-plugin + title: Admonition special style support + title.zh: 是否开启Admonition特别样式支持 + type: class-toggle + default: true + description : 目前支持ad类型:blank 全透明框🔸def definition🔸thm theorem🔸lem lemma🔸cor corollary🔸pro proposition 🔸hibox 自动隐藏框🔸col2 col3 col4内容分多栏🔸kanban 伪看板🔸table 表格单行全部显示❗使用方法❗下面以thm类型为例,在admonition插件的设置页面中,类型填 thm,标题填 定理,图标选择hand-point-right,颜色自己选比如浅绿色,添加成功后,在正文中使用代码块```ad-thm 即可激活。其他类型以此类推。 + - + id: style-options-for-calendar-plugin-header + title: 3.2 Calendar + type: heading + level: 2 + collapsed: true + - + id: toggle-calendar-shadow + title: Toggle shadow of current date + title.zh: 开启日历中当前日期的阴影 + type: class-toggle + default: false + - + id: toggle-calendar-transparent + title: Transparent calendar background + title.zh: 日历背景透明 + type: class-toggle + default: false + - + id: style-options-for-calendar-plugin + title: Calendar + type: class-select + allowEmpty: false + default: style-options-for-calendar-plugin-default + options: + - + label: Default + value: style-options-for-calendar-plugin-default + - + label: Style 1 + value: style-options-for-calendar-plugin-style-one + - + label: Style 2 + value: style-options-for-calendar-plugin-style-two + - + id: rainbow-checklist-folder + title: 3.3 Checklist plugin + type: heading + level: 2 + collapsed: true + - + id: rainbow-checklist + title: Rainbow checklist + title.zh: 彩虹色条目 + type: class-toggle + default: false + - + id: style-options-for-kanban-plugin-header + title: 3.4 Kanban + type: heading + level: 2 + collapsed: true + - + id: style-options-for-kanban-plugin-static + title: Static + type: class-select + allowEmpty: false + default: style-options-for-kanban-plugin-static-default + options: + - + label: Default + value: style-options-for-kanban-plugin-static-default + - + label: All color (instead of images in light mode) + value: style-options-for-kanban-plugin-static-all-color + - + label: All image-1 + value: style-options-for-kanban-plugin-static-all-image-one + - + label: All image-2 abstract + value: style-options-for-kanban-plugin-static-all-image-two + - + label: Plain + value: style-options-for-kanban-plugin-static-plain + - + label: Little color + value: style-options-for-kanban-plugin-static-little-color + - + id: style-options-for-kanban-plugin-dynamic + title: Dynamic + type: class-select + allowEmpty: false + default: style-options-for-kanban-plugin-dynamic-default + options: + - + label: None + value: style-options-for-kanban-plugin-dynamic-default + - + label: Neon-1 + value: style-options-for-kanban-plugin-dynamic-neon-one + - + label: Neon-2 + value: style-options-for-kanban-plugin-dynamic-neon-two + - + label: Neon-3 + value: style-options-for-kanban-plugin-dynamic-neon-three + - + id: style-options-for-buttons-plugin-heading + title: 3.5 Buttons + type: heading + level: 2 + collapsed: true + - + id: style-options-for-buttons-plugin + title: Buttons special style support + title.zh: 是否开启Buttons特别样式支持 + type: class-toggle + default: true + description : 目前内置class:🔸circle_btn 圆形按钮🔸blank 透明按钮🔸grad_button渐变按钮🟣g_purple 紫色🔵g_blue蓝色🟢g_green 绿色💚g_lightgreen 浅绿🟡g_yellow黄色 + - + id: style-options-for-buttons-plugin-heading + title: 3.6 Dataview + type: heading + level: 2 + collapsed: true + - + id: style-options-for-dataview-plugin-heading + title: 3.6.1 Dataview list + type: heading + level: 3 + collapsed: true + - + id: folder-dataview-list-style + title: Style + title.zh: 样式 + type: class-select + allowEmpty: false + default: dataview-list-style-pacman + options: + - + label: Pac-man + value: dataview-list-style-pacman + - + label: Normal + value: dataview-list-style-normal + - + id: style-options-for-dataview-table-plugin-heading + title: 3.6.2 Dataview table + type: heading + level: 3 + collapsed: true + - + id: dvtable-style-options + title: Dataview table format + title.zh: Dataview 表格格式 + type: class-select + allowEmpty: false + default: default-dvtable + options: + - + label: Defaut table + value: default-dvtable + - + label: Wrapped table (break all) + value: wrapped-dvtable + - + label: Non-wrapped table (limited cell width) + value: no-wrapped-dvtable-cell + - + label: Non-wrapped table + value: no-wrapped-dvtable + - + id: auto-serial-number-dvtable + title: Automatically add serial numbers to tables + title.zh: Dataview表格自动添加序号 + type: class-toggle + default: false + - + id: full-width-dvtable + title: Full-width dvtable display + title.zh: dataview表格全宽显示 + description: for Reading View, require Contextual Typography plugin + description.zh: 阅读模式下,实现效果需要安装Contextual Typography插件 + type: class-toggle + default: false + - + id: style-options-for-dialogue-plugin-heading + title: 3.7 Dialogue & Chatview + type: heading + level: 2 + collapsed: true + - + id: dialogue-style + title: Dialogue & Chatview Style + title.zh: 聊天框样式 + type: class-select + allowEmpty: false + default: dialogue-style-default + description.zh: Wechat样式适合titleMode:all ,chat样式适合 titleMode:first + description: Wechat options is for ’titleMode:all‘ ,chat options is for ‘titleMode:first’ + options: + - + label: Default + value: dialogue-style-default + - + label: Wechat + value: dialogue-style-wechat + - + label: Chat + value: dialogue-style-chat + - + id: style-options-for-dialogue-plugin-heading + title: 3.9 Obsidian Memos + description: Adapted from @Quorafind's CSS snippet + type: heading + level: 2 + collapsed: true + - + id: memos-inputbox + title: Put input box to bottom + title.zh: PC端memos输入框置于页面底部 + type: class-toggle + default: false + - + id: heatmap-light + title: Heatmap in Light mode + description: Change the color of heatmap + type: class-select + allowEmpty: false + default: memos-default-light + options: + - + label: Theme color + value: memos-default-light + - + label: Grass + value: grass-light + - + label: olive + value: olive-light + - + label: Frame + value: frame-light + - + label: Ice + value: ice-light + - + label: Magenta + value: magenta-light + - + title: Heatmap in Dark mode + description: Change the color of heatmap + id: heatmap-dark + type: class-select + allowEmpty: false + default: memos-default-dark + options: + - + label: Theme color + value: memos-default-dark + - + label: Grass + value: grass-dark + - + label: Olive + value: olive-dark + - + label: Frame + value: frame-dark + - + label: Ice + value: ice-dark + - + label: Magenta + value: magenta-dark + - + id: style-options-for-backlinks-panel + title: 3.10 backlinks panel + title.zh: 3.10 反链面板 + type: heading + level: 2 + collapsed: true + - + id: full-width-backlinks + title: Full-width backlinks panel display + title.zh: 笔记中的反链面板全宽度显示 + type: class-toggle + default: false + - + id: style-options-for-quiet-outline + title: 3.11 Quiet outline + title.zh: 3.11 Quiet outline + type: heading + level: 2 + collapsed: true + - + id: quiet-outline-optimize + title: Optimize quiet-outline plugin + title.zh: 美化 quiet-outline 插件 + type: class-toggle + default: true + - + id: build-in-style-folder + title: 4. Built-in style intro + title.zh: 4. 内置样式介绍 + description: There are some built-in CSS classes that should be manually declared in the YAML area. Details refer to the TIPS demo vault for Blue Topaz on Github. + description.zh: 主题内置css类,手动在文档YAML区域进行cssclass声明,详细用法可以参考主题tips库,可以在主题QQ群(社区)获取。 + type: heading + level: 1 + collapsed: true + - + id: built-in-style-kanban + title: Pseudo-kanban + title.zh: 伪看板 kanban + type: heading + level: 2 + collapsed: false + description: ❗cssclass:kanban❗ A kind of kanban-liked style for unordered lists. (Adapted from Spectrum theme by @Wiktoria Mielcarek) + description.zh: ❗cssclass:kanban❗ 实现类似看板样式并排显示,只对无序列表生效。改自Spectrum theme by @Wiktoria Mielcarek + - + id: simple-p-kanban + title: Simple pseudo-kanban + title.zh: 单色伪看板 + description: Remove colors of pseudo-kanban + description.zh: 移除伪看板头部颜色 + type: class-toggle + default: false + - + id: remove-shadow-p-kanban + title: Remove shadow of pseudo-kanban + title.zh: 移除伪看板触发阴影 + type: class-toggle + default: false + - + id: colorful-p-kanban + title: Colorful pseudo-kanban + title.zh: 多彩伪看板 + type: class-toggle + default: false + - + id: blur-p-kanban-frosted-glass + title: Blur radius (For Frosted Glass Style) + title.zh: 模糊程度 (毛玻璃效果) + type: variable-number-slider + default: 2 + min: 0 + max: 8 + step: 1 + - + id: p-kanban-color-1 + title: pseudo-kanban color 1 + type: variable-themed-color + opacity: true + format: hex + default-light: '#52aaf365' + default-dark: '#3496e652' + - + id: p-kanban-color-2 + title: pseudo-kanban color 2 + type: variable-themed-color + opacity: true + format: hex + default-light: '#84ecec65' + default-dark: '#2ec4c452' + - + id: p-kanban-color-3 + title: pseudo-kanban color 3 + type: variable-themed-color + opacity: true + format: hex + default-light: '#94ec8c65' + default-dark: '#38ce2a52' + - + id: p-kanban-color-4 + title: pseudo-kanban color 4 + type: variable-themed-color + opacity: true + format: hex + default-light: '#dce28765' + default-dark: '#d2dd3852' + - + id: p-kanban-color-5 + title: pseudo-kanban color 5 + type: variable-themed-color + opacity: true + format: hex + default-light: '#eeb36f65' + default-dark: '#eb973752' + - + id: p-kanban-color-6 + title: pseudo-kanban color 6 + type: variable-themed-color + opacity: true + format: hex + default-light: '#f18e8e65' + default-dark: '#f3424252' + - + id: p-kanban-color-7 + title: pseudo-kanban color 7 + type: variable-themed-color + opacity: true + format: hex + default-light: '#e677e065' + default-dark: '#e45bdd52' + - + id: p-kanban-color-8 + title: pseudo-kanban color 8 + type: variable-themed-color + opacity: true + format: hex + default-light: '#ba8be165' + default-dark: '#b962ff52' + - + id: p-kanban-card-color-1 + title: pseudo-kanban-card subitem color + title.zh: 伪看板子项背景色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#f9f9f99b' + default-dark: '#0000003f' + - + id: p-kanban-border-color + title: pseudo-kanban-border color + title.zh: 伪看板边框颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#a0a0a060' + default-dark: '#00000000' + - + id: built-in-style-code-wrap + title: Code Wrap + title.zh: 代码行自动换行 code-wrap + type: heading + level: 2 + collapsed: true + description.zh: ❗cssclass:code-wrap❗实现代码块中的代码行自动换行。 + description: ❗cssclass:code-wrap❗ Can be used to wrap code in code blocks for individual .md file + - + id: built-in-style-inline-list + title: List in a horizontal row (inline list) + title.zh: 行内列表 inline-list + type: heading + level: 2 + collapsed: true + description.zh: ❗cssclass:inline-list❗列表项横向排布。 + description: ❗cssclass:inline-list❗ To make the list show in a horizontal row. Meanwhile, it makes the list show inline which can be used with inline images (like ![[xxx.jpg|inlineR]]) + - + id: built-in-style-img-grid + title: Image grid + title.zh: 图片自适应横排显示 img-grid + type: heading + level: 2 + collapsed: true + description.zh: ❗cssclass:img-grid❗实现图片类似网格一样自适应横排显示。也可以使用类似格式单独调整![[obsidian_image.png|inl|100]] (adapted from https://github.com/iEchoxu/obsidian_orange/blob/main/.obsidian/snippets/image-grid.css) + description: ❗cssclass:img-grid❗ To make images arrange in a grid in the preview mode. (adapted from https://github.com/iEchoxu/obsidian_orange/blob/main/.obsidian/snippets/image-grid.css) + - + id: built-in-style-matrix + title: Eisenhower matrix + title.zh: 表格四象图分布 matrix + type: heading + level: 2 + collapsed: true + description: ❗cssclass:matrix❗ Usage https://forum.obsidian.md/t/theme-spectrum-version-1-0-0-and-resise-graphs-controls/12688/34 (Adapted from Spectrum theme by @Wiktoria Mielcarek) + description.zh: ❗cssclass:matrix❗ 实现N*2表格四象限分布。表格内容使用![[XXX]]引入 见 https://forum.obsidian.md/t/theme-spectrum-version-1-0-0-and-resise-graphs-controls/12688/34。改自Spectrum theme by @Wiktoria Mielcarek + - + id: built-in-style-full-width + title: full-width layout + title.zh: 全宽显示元素 (i.e. wide-dataview, wide-table, wide-callout and wide-backlinks) + type: heading + level: 2 + collapsed: true + description: ❗cssclass:fullwidth wide-dataview wide-table wide-callout wide-backlinks❗ (Adapted from https://github.com/efemkay @ Faiz Khuzaimah) + description.zh: ❗cssclass:fullwidth wide-dataview wide-table wide-callout wide-backlinks❗ 分别实现整页,dv表格 md表格 callout 反链面板全宽度布局。改自https://github.com/efemkay @ Faiz Khuzaimah + - + id: topaz-community + title: Supported by Topaz Community 😁 + title.zh: 感谢Topaz社区支持😁,欢迎来访,QQ群:908688452 + type: heading + level: 1 + collapsed: false + - + id: bt-buyacoffe + title: Support me + description: "[https://www.buymeacoffee.com/whyi](https://www.buymeacoffee.com/whyi)" + type: info-text + markdown: true + - + id: bt-github + title: Star the theme + description: "[https://github.com/PKM-er/Blue-Topaz_Obsidian-css](https://github.com/PKM-er/Blue-Topaz_Obsidian-css)" + type: info-text + markdown: true +*/ + +/* @settings +name: 🥑Blue Topaz Codebox Settings +id: Blue-Topaz-Codebox-Highlight +settings: + - + id: code-header-theme + title: Codebox highlighting + title.zh: 代码框高亮语法设置 + type: heading + level: 1 + collapsed: false + - + id: code-theme-selection + title: Codebox highlighting schemes + title.zh: 代码高亮主题 + type: class-select + allowEmpty: false + default: code-theme-bt-default + options: + - + label: bt-default + value: code-theme-bt-default + - + label: Solarized Light + value: code-theme-solarized-light + - + label: Material Palenight + value: code-theme-material-palenight + - + label: Dracula + value: code-theme-dracula + - + label: Gruvbox Dark + value: code-theme-Gruvbox-dark + - + label: monokai + value: code-theme-monokai + - + label: sublime + value: code-theme-sublime + - + label: Custom + value: code-theme-custom + - + id: code-style-settings + title: Codebox style settings + title.zh: 代码框样式设置 + type: heading + level: 1 + collapsed: true + - + id: mute-code-indent-line + title: Mute codebox indent line + title.zh: 取消代码块缩进参考线 + type: class-toggle + default: false + - + id: code-line-number + title: Code box showing line numbers (Editing mode) + title.zh: 代码显示行号 (编辑模式) + description: csslass declares code-line-number to be available for the current document + description.zh: csslass 声明code-line-number 可对单篇note生效 + type: class-toggle + default: false + - + id: whole-code-wrap + title: Code wrap (Reading mode) + title.zh: 代码换行 (阅读模式) + type: class-toggle + default: true + addCommand: true + - + id: remove-language-type + title: Toggle showing types of code languages + title.zh: 移除阅读模式下代码名称 + type: class-toggle + default: false + - + id: nowrap-edit-codebox + title: Non-wrap Codebox (Live preview) + title.zh: 代码不换行 (Live preview) + type: class-toggle + default: false + addCommand: true + - + id: letter-space-code + title: Letter spacing for code + title.zh: 代码字间距 + type: variable-number-slider + default: 0 + min: 0 + max: 2 + step: 0.1 + - + id: code-box-style-option + title: Codebox style + type: class-select + allowEmpty: false + default: codebox-default-style + options: + - + label: Default + value: codebox-default-style + - + label: Frosted Glass + value: codebox-frosted-glass + - + id: blur-codebox-frosted-glass + title: Blur radius (For Frosted Glass Style) + title.zh: 模糊程度 (毛玻璃效果) + type: variable-number-slider + default: 2 + min: 0 + max: 8 + step: 1 + - + id: code-background-colors + title: Codebox highlighting background colors + title.zh: 代码框高亮背景色设置 + type: heading + level: 1 + collapsed: true + - + id: background-code + title: Codebox background color + title.zh: 代码块背景色 + type: variable-themed-color + format: hex + opacity: true + default-light: '#292d3e' + default-dark: '#292d3e' + - + id: muted-code-activeline-bg + title: Mute codebox active line + title.zh: 取消代码块当前行高亮 + type: class-toggle + default: false + - + id: code-active-line-background-color + title: Codebox active line background color + title.zh: 代码块当前行背景色 + type: variable-themed-color + format: hex + opacity: true + default-light: '#353a50' + default-dark: '#353a50' + - + id: code-selection-background + title: Codebox selection line background color + title.zh: 代码块选中背景色 + type: variable-themed-color + format: hex + opacity: true + default-light: '#353a50' + default-dark: '#353a50' + - + id: code-block-colors + title: Custom codebox syntax highlighting colors + title.zh: 自定义语法高亮颜色 + type: heading + level: 1 + collapsed: true + - + id: code-normal + title: Code block normal color + description.zh: 代码框普通字体颜色 + type: variable-themed-color + format: hex + opacity: true + default-light: '#d4d4d4' + default-dark: '#d4d4d4' + - + id: code-keyword + title: Code block keyword color + type: variable-themed-color + format: hex + default-light: '#c792ea' + default-dark: '#c792ea' + - + id: code-value + title: Code block number color + type: variable-themed-color + format: hex + default-light: '#ff5370' + default-dark: '#ff5370' + - + id: code-type + title: Code block type color + type: variable-themed-color + format: hex + default-light: '#decb6b' + default-dark: '#decb6b' + - + id: code-property + title: Code block property color + type: variable-themed-color + format: hex + default-light: '#c792ea' + default-dark: '#c792ea' + - + id: code-variable + title: Code block variable color + type: variable-themed-color + format: hex + default-light: '#f07178' + default-dark: '#f07178' + - + id: code-variable-2 + title: Code block variable-2 color + type: variable-themed-color + format: hex + default-light: '#eeffff' + default-dark: '#eeffff' + - + id: code-variable-3 + title: Code block variable-3 color + type: variable-themed-color + format: hex + default-light: '#f07178' + default-dark: '#f07178' + - + id: code-qualifier + title: Code block qualifier color + type: variable-themed-color + format: hex + default-light: '#decb6b' + default-dark: '#decb6b' + - + id: code-operator + title: Code block operator color + type: variable-themed-color + format: hex + default-light: '#89ddff' + default-dark: '#89ddff' + - + id: code-hr + title: Code block hr color + type: variable-themed-color + format: hex + default-light: '#98e342' + default-dark: '#98e342' + - + id: code-builtin + title: Code block builtin color + type: variable-themed-color + format: hex + default-light: '#ffcb6b' + default-dark: '#ffcb6b' + - + id: code-tag + title: Code block tag color + type: variable-themed-color + format: hex + default-light: '#ff5370' + default-dark: '#ff5370' + - + id: code-string-2 + title: Code block string-2 color + description: class-name + type: variable-themed-color + format: hex + default-light: '#f07178' + default-dark: '#f07178' + - + id: code-punctuation + title: Code block punctuation color + description: code punctuation, bracket color + type: variable-themed-color + format: hex + default-light: '#ff5370' + default-dark: '#ff5370' + - + id: code-comment + title: Code block comment color + type: variable-themed-color + format: hex + default-light: '#676e95' + default-dark: '#676e95' + - + id: code-string + title: Code block string color + type: variable-themed-color + format: hex + default-light: '#c3e88d' + default-dark: '#c3e88d' + - + id: code-attribute + title: Code block attribute color + type: variable-themed-color + format: hex + default-light: '#c792ea' + default-dark: '#c792ea' + - + id: code-function + title: Code block function color + type: variable-themed-color + format: hex + default-light: '#c792ea' + default-dark: '#c792ea' + - + id: code-important + title: Code block important color + type: variable-themed-color + format: hex + default-light: '#c792ea' + default-dark: '#c792ea' + - + id: cm-atom + title: Code block atom color + description: Frontmatter keys color + type: variable-themed-color + format: hex + default-light: '#f78c6c' + default-dark: '#f78c6c' + - + id: code-meta + title: Code block meta color + description: Frontmatter punctuation color + type: variable-themed-color + format: hex + default-light: '#ffcb6b' + default-dark: '#ffcb6b' + - + id: code-language + title: Code block language color + type: variable-themed-color + format: hex + default-light: '#ff5370' + default-dark: '#ff5370' + - + id: codeblock-folder + title: Inline code + title.zh: 行内代码 + type: heading + level: 1 + collapsed: true + - + id: background-code-2 + title: Inline code background color + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: text-color-code + title: Inline code color + title.zh: 行内代码颜色 + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: font-weight-inline-code + title: Font weight of inline code + title.zh: 行内代码字重 + type: variable-text + default: bold +*/ + +@font-face { + font-family: 'Lucida Handwriting'; + src: url('data:font/woff2;charset=utf-8;base64,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') format('woff2'); + font-weight: normal; + font-style: italic; + font-display: swap; +} + +@font-face { + font-family: 'boxicons'; + src: url('data:font/woff2;charset=utf-8;base64,d09GMgABAAAAAAUQAAwAAAAACcgAAATCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYGYABcEQgKizCJEgsWAAE2AiQDIAQgBYJKB20bvAfIjsK22bOwIjmQDyeRhxX00NzbvN1Nmu62nLQHQCDL9ufY3SlWLCy602dZsQLOD3n6L92cdrLTQfkrT6MySDfJpw9OaT98nP5JmH4/V2cmpe/6WhKztuSGJ/ESuA4hvX1EJEJolEji6JTI0tpue1NL4JWIHgIq4OgbhCi/3NpClyACc5XyAoCL6n70EWwlhmpONTB1FlpfjQVO/p/gZZEPIDSpXtxo4LaSYhHSHYt+SxUJhpheH+5uX9ye3VV/Gfy/gOQ3Fu8zRRlHGQfpRqmPgCzFCBUF1Uh/SQrUgH4DZhk6yeGXoC8cBhsxFq7pb0yj9ZTXp1KXLMmRQUixqcS8vOSggBJukKH1ydDZR4IPYZr5Euhg83gIFk9pP/Clx0I87acK8hy24z0qvcx2nb/0Cdoa+Ii0XgVzgN6r+iK0nkGLXR2X+z/gex7bxsateRzxFtwXn/LeVSySZJFoZH5I+4HvqJZKR+o4Dur6t87I2TrM6j9XdbrRcY44fLSlI+3ubuzuV5Hdvmmca2jI1uvoSDsmADmD6IHuGenUM5hVdZIFkpwkXs2bzaqVg5ig21xnZ9bUpK4udbC3keseVkdfg/zQ+QTxrilf2khRYnFlXQ3oFA9wOU5xw2nnctiCmtR0SRXZXYGyoKwnVewY+LjeTGHwbDzaORny7Ubx7umQd2bik2Sobg3K+RPl9l33+SOXNRX7Rzyyh3xsi93O6bABkL+k7Qg6sJdNW4lpYOrJSeqY8Y5wNiV/TaCTQbNh4pWu3ptEMLym787heHiFV1iqrfSZGuEmx6pMFUnBWUPZprrSuqbVv4VrsZIKU9XLvSABx5PYHh7sJLorocDdi5VC+fTknXoQAxapG1EZ7VJcvB7ywPCse5ZoWiXhxg3VDtXKzdUSo1yu6AlFbyjzB3Pl5lRYKqpMFQC6zlNVwVQBoO3DfBetL/3fZHyLEH875zoW9LUhTUVOcYUwA6fRgIBbTtKvA2yR+LMPYlIc5SLq732uzjZsbz84PdW809uR351YPvDkeGS/e1mcsIKQurCaoLCpnHWQjeFEVjhOEDgAvBQ5jVYIczAa5Qa864uU+J0mG9FJzq7mz8ye7ie0vQGl5woLR5VRhY1FYIfw4VmMLCL8P4DJY4JBvrso7cAWqDglK65rDHcKgpDsOnEZo+/qSKSJPI5BruiogT4dVdX60tQ816e755+W0fkD9Kn+1ymZhUg7aIxqABL9F1JVtE7bwhtlS+iC/gaPfES5EmhGRPcKfzdjw4z8RBxP5HiAThQ/8i1/7/VOSbevCeoAeBVmJ+lNFB8tT6ATuAU6O9hvowFoaKlY+maXjJ1P0vq4gXpOO6ynCtbAAgG8fQ61ZUvrtSoegKYKJ8usGcpIYLktWu4idUSgenkMV3u60AWLXDmihnGgNlQxb7mF5Q7UEQ2sWR6D18uFQ3uIogdmMPf3es536ZyNhdVX/kVvRrnAOOLfKX4a7IGgiBTiIMgklwgSSCKfdGLIgU0COeSSUjGpxRhGMIoFieY8tDhIAtqr9WPII4H4zj0Uo8XiwfKhEM12YYFBf70HGYwsVk6RYpUpiQ8eK85KthbJP5FiReyeEPPGMJafL53oZ03CnHJ0G2cA') format('woff2'); + font-weight: normal; + font-style: normal; + font-display: swap; +} + + +body { + --font-size-obsidian-titlebar: 13px; + --font-size-vault-name: 1em;/*左侧库名字体大小*/ + --font-size-file-header-title: 0.9em;/*文件抬头标题,只在非Andy mode plugin时生效*/ + --font-size-file-header-title-andy-plugin: 1em;/*文件抬头标题for Andy mode plugin*/ + --font-size-embed-title-size: 1.3em; + --font-size-embed-file: 1.25em; + --font-size-folder-and-file: 0.9em;/*左侧边栏文件字体大小*/ + --font-size-edit-normal: 1em;/*编辑正文字体大小*/ + --font-size-preview-normal: 1em;/*预览正文字体大小*/ + --h1-size: 1.5625em; + --h2-size: 1.4375em; + --h3-size: 1.3125em; + --h4-size: 1.1875em; + --h5-size: 1.0625em; + --h6-size: 1em; + --font-size-tag: 0.85em; + --font-size-emoji-after-tag: 1.5625em; + --font-size-list: 1em; + --font-size-preview-blockquote: 1em; + --font-size-edit-blockquote: 1em; + --font-size-outline:var(--nav-item-size); + --font-size-code: 1em; + --font-size-latex: 1em; + --font-size-cloze: 0.9375em; + --font-size-better-footnote: 1.3em; + --font-size-checklist: 0.85em; + --font-size-split: 0.85em; + --font-size-loading-diy-text: 3em; + --font-size-loading-add: 1.5em; + --table-header-size: inherit; + + /*font family*/ + --font-default: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Inter", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Microsoft YaHei Light", sans-serif; + --font-family-list: ;/*列表字体*/ + --font-text-theme: Bookerly, 'Inter', "Segoe UI", "霞鹜文楷 GB", "LXGW WenKai", "Microsoft YaHei"; /*主体(包括列表)字体,除代码框等少数部分*/ + --h1-font: var(--font-default); + --h2-font: var(--font-default); + --h3-font: var(--font-default); + --h4-font: var(--font-default); + --font-family-title: ;/*文件抬头标题*/ + --font-family-folder-file-title: Arlrdbd, "Source Han Sans", "Noto Sans CJK", "Source Sans Pro", "Segoe UI Emoji", sans-serif;/*左侧边栏文件、文件夹字体*/ + --font-monospace-theme: 'JetBrains Mono', Consolas, Monaco, "等距更纱黑体 SC", "Source Han Mono", "Microsoft Yahei Mono", "Segoe UI Emoji", "Microsoft YaHei", "Source Code Pro", monospace; + --font-family-inline-code: var(--font-monospace-override), var(--font-monospace-theme); + --font-family-tag: Bookerly, 'Inter', "Segoe UI", "Microsoft YaHei", STzhongsong, STSong, "Segoe UI Emoji", Serif; + --font-family-vault: "Lucida Handwriting", "Segoe UI Emoji";/*左侧库名字体*/ + --font-family-special-tag: "Lucida Handwriting", "Segoe UI Emoji"; + --mermaid-font-family: Segoe UI, "Microsoft YaHei", "Segoe UI Emoji", "trebuchet ms", verdana, Arial, cursive; + --font-family-better-footnote: Arlrdbd, "Source Han Sans", "Segoe UI Emoji"; + --font-family-strong: Bookerly, 'Inter', "Segoe UI", "LXGW WenKai Screen", "LXGW WenKai Screen R", "霞鹜文楷 GB", "LXGW WenKai", "Segoe UI Emoji", var(--font-interface); + --font-family-em: ; + --font-loading-text: var(--font-monospace-theme); + + /*radius*/ + --radius-xs: 3px; + --radius-s: 5px; + --radius-m: 7px; + --radius-l: 15px; + + --blur-depth: 10px; + --blur-depth-cp: 10px; + --saturate-4-bg: 1; + --saturate-4-bg-cp: 1; + --brightness-4-bg: 0.9; + --brightness-4-bg-cp: 0.9; + --opacity-cp: 0.25; + --bg-panel-page-opacity-cp:0.25; + --titlebar-brightness: 1; + --titlebar-blur-depth: 8px; + --stack-tabs-background-blur-depth:40px; + + --fancy-hr-icon: '😀'; + --fancy-hr-rotate: 0deg; + --line-height-main: 1.5; + --line-height-list: 1.4; + + --line-height-split: 1.3; + --letter-space-main: 0; + --letter-space-code: 0; + + --file-line-width: 45rem; + --embed-content-height: 600px; + + --bottom-padding-value: 0em; + + --font-weight-highlight-1: normal; + --font-weight-highlight-2: normal; + --font-weight-highlight-3: normal; + --font-weight-inline-code: bold; + --image-max-width: 100%; + + --checkbox-size: 0.9rem; + + --loading-diy-text: "快乐摸鱼又一天,人生还剩多少天?"; + --loading-diy-text-color: var(--text-normal); + --loading-page-custom-gif-caption: " "; + --loading-page-custom-gif-caption-alt: " "; + --loading-text-before: "❀✿"; + --loading-text-after: "✿❀"; + --loading-add-text-color: #d47e86; + --loading-add-text-color-alt: #a4e39c; + --pixel: 20px; + --c-1: #da2400; + --c-2: #ffb623; + --c-3: #8c6e22; + + --nord0: #2E3440; + --nord1: #3B4252; + --nord1-1: #3B425251; + --nord2: #434C5E; + --nord3: #4C566A; + --nord3-1: #717a91; + + --nord4: #d8dee9; + --nord4-1: #d8dee95c; + --nord5: #E5E9F0; + --nord5-1: #E5E9F053; + --nord6: #ECEFF4; + --nord6-1: #ECEFF46c; + --nord6-2: #ECEFF43c; + + --nord7: #8fbcbb; + --nord7-transparent: #8fbcbb2f; + --nord8: #88C0D0; + --nord8-0: #65afc4; + --nord9: #81a1c1; + --nord9-1: #81a1c16c; + --nord9-2: #81a1c13c; + --nord10: #5e81ac; + + --nord11: #BF616A; + --nord11-1: #BF616A4b; + --nord12: #D08770; + --nord13: #EBCB8B; + --nord13-0: #e2b65e; + --nord13-1: #ebca894b; + --nord14: #A3BE8C; + --nord14-0: #95b677; + --nord15: #B48EAD; + + --hr-color-icon-1: var(--theme-color); + --hr-color-icon-2: var(--theme-color); + --hr-color-icon-3: var(--theme-color); + --hr-color-icon-4: var(--theme-color); + --hr-color-1: var(--theme-color); + --hr-color-2: var(--theme-color); + --hr-color-3: var(--theme-color); + --hr-color-4: var(--theme-color); + --hr-color-numbers-line-1: var(--theme-color); + --hr-color-numbers-line-2: var(--theme-color); + --hr-color-numbers-line-3: var(--theme-color); + --hr-color-numbers-line-4: var(--theme-color); + --hr-color-numbers-bg-color: var(--theme-color-translucent-015); + --hr-color-numbers-color: var(--theme-color); + --hr-numbers-text-fill: transparent; + --hr-numbers-text-stroke: var(--text-normal); + + --cloze-bg-color: var(--accent-strong); + --cloze-decoration: none; + --cloze-decoration-color: red; + --cloze-decoration-2: dashed; + --cloze-decoration-color-2: var(--theme-color); + --cloze-bg-color-3: transparent; + --cloze-decoration-3: dashed; + --cloze-decoration-color-3: var(--theme-color); + + --custom-titlebar-bg: var(--background-secondary-alt); + + --text-highlight-bg-h-dark: 57; + --text-highlight-bg-s-dark: 40%; + --text-highlight-bg-l-dark: 38%; + --text-highlight-bg-a-dark: 0.541; + + --text-highlight-bg-h-light: 34; + --text-highlight-bg-s-light: 100%; + --text-highlight-bg-l-light: 80%; + --text-highlight-bg-a-light: 0.847; + + --cursor-color: var(var(--text-normal)); + + --fancy-cursor-width: 2px; + --cursor-color-temp: var(var(--text-normal)); + + --print-strong-color: ; + --print-em-color: var(--accent-em); + + --tag-border-width: 1px; + --paragraph-spacing: 1; + --blur-codebox-frosted-glass: 2; + --blur-p-kanban-frosted-glass: 5; + + --status-bar-bg: var(--background-secondary-alt); + --status-bar-text-color: var(--text-muted); + + --list-ol-marker-1: decimal; + --list-ol-marker-2: lower-latin; + --list-ol-marker-3: lower-roman; + --list-ol-marker-4: decimal; + --list-ul-marker-1: '\2022'; + --list-ul-marker-2: '\25E6'; + --list-ul-marker-3: '\25AA'; + --list-ul-marker-4: '\25E6'; + --list-ul-marker-color: var(--list-marker-color); + --list-marker-color-collapsed: var(--theme-color); + + --list-ul-colorful-marker-content: '\2022'; + + --he-title-bar-active-bg: var(--theme-color-translucent-005); + --he-title-bar-active-pinned-bg: var(--theme-color-translucent-005); + --he-title-bar-inactive-bg: var(--theme-color-translucent-001); + --he-title-bar-inactive-pinned-bg: var(--theme-color-translucent-001); + --he-title-bar-inactive-action: var(--text-normal); + --he-title-bar-active-action: var(--theme-color); + --he-title-bar-active-fg: var(--text-normal); + --he-title-bar-inactive-fg: var(--text-muted); + + --list-spacing-bt: 1; + + --font-weight-strong: bold; + --font-style-em: italic; + --code-background: var(--background-code); + --canvas-card-opacity: 0.1; + + --popover-width-factor: 1; + --popover-height-factor: 1; + + /*bubble*/ + --bt-bubble-layout-padding: 8px; + --bt-bubble-background-color: transparent; + --bt-bubble-border-color: var(--background-modifier-border); + --bt-indentation-gradient-color-1: var(--theme-color); + --bt-indentation-gradient-color-2: transparent; + --bt-colorful-indentation-width: 1px; + + --h1-bg-color: color-mix(in srgb, var(--h1-color) 15%, transparent); + --h2-bg-color: color-mix(in srgb, var(--h2-color) 15%, transparent); + --h3-bg-color: color-mix(in srgb, var(--h3-color) 15%, transparent); + --h4-bg-color: color-mix(in srgb, var(--h4-color) 15%, transparent); + --h5-bg-color: color-mix(in srgb, var(--h5-color) 15%, transparent); + --h6-bg-color: color-mix(in srgb, var(--h6-color) 15%, transparent); + --inline-title-bg-color: color-mix(in srgb, var(--h1-color) 15%, transparent); + + --ribbon-background: var(--background-secondary-alt);--ribbon-background-collapsed: var(--background-secondary-alt); + + --bt-indentation-width-hover: 3px; +} + + +body.all-dark-pdf .print.theme-light, +.theme-dark { + --background-primary: var(--background-primary-bg-4-bt,#202020); + --background-primary-alt: var(--background-primary-alt-bg-4-bt,#444444); + --background-secondary: var(--background-secondary-bg-4-bt,#151515); + --background-secondary-alt: var(--background-secondary-alt-bg-4-bt,#000000); + --background-modifier-border: #343434; + --background-modifier-success: #539126; + --background-modifier-success-rgb: 83, 145, 38; + --background-modifier-error: #9b4343; + --background-modifier-error-rgb: 155, 67, 67; + --text-accent: var(--color-accent); + --text-accent-hover: var(--color-accent-2); + --text-normal: #c6c6c6; + --text-highlight: var(--text-normal); + --background-modifier-box-shadow: rgba(228, 228, 228, 0.08); + + --text-muted: #8a8a8a; + --text-muted-rgb: 138, 138, 138; + --text-faint: #797979; + --text-folder-file: #b3b3b3; + --accent-strong: #e7e7e7; + --accent-em: #a4ca8e; + --text-error: #e16d76; + --text-error-hover: #c9626a; + --text-selection: #3b767160; + --text-on-accent: #e4e4e4; + --interactive-normal: #2b2b2b; + --interactive-hover: #373737; + --accent-h: 208; + --accent-s: 64%; + --accent-l: 49%; + --accent-l-alt: calc(var(--accent-l) * 1.05); + --interactive-accent-rgb: 45, 130, 204; + --interactive-accent-hover: var(--color-accent-2); + --panel-border-color: #18191e; + --search-text: #e0e0e0; + --folder-title: #ffffff; + + --text-highlight-bg: hsla(var(--text-highlight-bg-h-dark), var(--text-highlight-bg-s-dark), var(--text-highlight-bg-l-dark), var(--text-highlight-bg-a-dark)); + --mark-highlight-strong-em: #fff7603a; + --strong-em-highlight-color: #a7b4ff; + --text-search-highlight-bg: #bb4361; + --strong-em-color-1: #43d3ff; + --strong-em-color-2: #baaaff; + + --background-search-result: var(--background-secondary-bg-4-bt); + --search-result-file-matched-bg: #023774; + --page-border-bottom: var(--background-secondary-alt); + --background-asymm-split-left: var(--background-secondary-alt); + --background-mobile-drawer-1: #1b1b1b; + --background-mobile-drawer-2: #1b1b1b69; + --background-modifier-border-hr: #3f3f3f; + --background-modifier-border-asymm: #343434; + --background-modifier-border-checkbox: #7b7b7b; + --background-transparent-black-or-white-1: #1b1b1b9a; + --background-transparent-black-or-white-2: #1e1e1ebd; + --background-transparent-black-or-white-3: #2f2f2f6c; + --background-transparent-black-or-white-3-1: #00000064; + --background-transparent-black-or-white-4: #7e7e7e1d; + --background-transparent-black-or-white-5: #0f0f0f6c; + --background-black-or-white-1: #353535; + --background-modifier-border-1: #000000; + --background-transparent-blue: #003e759a; + --scrollbar-thumb-bg: #3f3f3f7e; + --scrollbar-active-thumb-bg: #4d4d4d88; + --gray-1: #5C6370; + --gray-2: #abb2bf; + --red: #db7c84; + --red-1: #d05a63; + --orange: #d1945b; + --orange-1: #da904b; + --green: #abd58e; + --darkgreen: #568060; + --aqua: #35bed0; + --purple: #c594d4; + --blue: #a0c7e9; + --darkblue: #478fee; + --yellow: #d6b87f; + --light-yellow: #cac685; + --white: #ffffff; + --variable-2: #0072d0; + --variable-3: #5a96f7; + + --embed-color: hsla(calc(var(--accent-h) * 1),calc(var(--accent-s) * 1.2),calc(var(--accent-l) * 2),0.055); + --search-result-file-title-color: var(--text-normal); + --theme-color: var(--interactive-accent); + --theme-color-translucent-06: hsla(var(--interactive-accent-hsl),0.6); + --theme-color-translucent-04: hsla(var(--interactive-accent-hsl),0.4); + --theme-color-translucent-02: hsla(var(--interactive-accent-hsl),0.2); + --theme-color-translucent-015: hsla(var(--interactive-accent-hsl),0.15); + --theme-color-translucent-01: hsla(var(--interactive-accent-hsl),0.1); + --theme-color-translucent-005: hsla(var(--interactive-accent-hsl),0.05); + --theme-color-translucent-001: hsla(var(--interactive-accent-hsl),0.01); + + --background-blockquote: #9191911c; + --background-code: #1111118c; + --background-code-2: #4c4c4cb0; + --text-color-code: #d58000; + --code-normal: #d0d0d0; + --list-ul-block-color: #e19742a9; + --list-ul-disc-color: #eb9563; + --green-1: #79c142; + --list-ul-hover: #e28915de; + --list-ol-block-color: #2685bbb4; + --list-ol-number-color: var(--list-marker-color); + --list-ol-hover: #2c7bd6; + --list-marker-color-collapsed: var(--theme-color); + + --tag-text: #e4e4e4; + --stag1: #f08383; + --stag1-bg: #bd1919; + --stag2: #e7b263; + --stag2-bg: #ac6700; + --stag3: #77df89; + --stag3-bg: #058c1c; + --tag1: #3674bb; + --tag2: #3685ad; + --tag3: #2a8f91; + --tag4: #43804f; + --tag5: #5f932e; + + --tag-dailynote: #98c8ff; + --tag-dailynote-bg: #0f60bd; + --tag-weeklynote: #d1e6ff; + --tag-weeklynote-bg: #3971b1; + --tag-questions: #d4bdff; + --tag-questions-bg: #6640ae; + --tag-ideas: #fcfcc0; + --tag-ideas-bg: #565656d8; + + --h1-color: var(--print-h1-color,hsl(78, 62%, 47%)); + --h2-color: var(--print-h2-color,hsl(118, 42%, 49%)); + --h3-color: var(--print-h3-color,hsl(180, 53%, 48%)); + --h4-color: var(--print-h4-color,hsl(216, 69%, 68%)); + --h5-color: var(--print-h5-color,hsl(258, 79%, 77%)); + --h6-color: var(--print-h6-color,hsl(290, 85%, 81%)); + + --graph-text-color: #B5B5B5; + --graph-tag: #88d842bb; + --graph-attach: #b2cfe0bb; + --graph-circle: #55a2d6bb; + --graph-line: #8c8c8c; + --graph-unresolved: #f08080de; + --graph-arrow: #c23917; + --graph-control-bg: #00000080; + --graph-circle-outline: transparent; + --graph-canvas-bg: var(--background-primary); + --graph-circle-fill-highlight: var(--interactive-accent); + --graph-line-fill-highlight: rgb(var(--interactive-accent-rgb)); + + --unresolved-link: var(--graph-unresolved); + --link-unresolved-decoration-color: var(--graph-unresolved); + --internal-link-color: var(--text-accent); + --external-link-color: var(--internal-link-color); + + /*mermaid*/ + --mermaid-active-task-color: #187ef1; + --mermaid-seq-dia-color: #1371be; + + /*table*/ + --table-background-color: #2f2f2f32; + --table-background-color-odd: #00000033; + --table-border-color: #4a4a4a; + --table-thead-background-color: var(--theme-color-translucent-01); + --table-hover-raw-color: #08569a21; + --table-hover-color: #1f65a221; + --table-hover-thead-color: #21395bc7; + --table-header-color: var(--text-normal); + + /*calendar*/ + --calendar-week-color: #a2df94; + --calendar-week-hover: #61815c; + --calendar-week-background-color: #4a5842; + --calendar-today-background-color: #8c4545; + --calendar-hover-color: var(--theme-color-translucent-02); + --calendar-active-color: var(--theme-color-translucent-04); + + /*day planner*/ + --day-planner-pie: #f19c1c; + --day-planner-timeline: #000000; + --day-planner-line: #dfcf77; + --day-planner-dot: #dfcf77; + --day-planner-item-hover: #053c85; + --event-item-color1: #283493bb; + --event-item-color2: #1565c0bb; + --event-item-color3: #00838fbb; + --event-item-color4: #2e7d32bb; + --event-item-color5: #9e9d24bb; + --event-item-color6: #ff8f00bb; + --event-item-color7: #d84315bb; + --event-item-color8: #c62828bb; + --event-item-color9: #ad1457bb; + --event-item-color10: #6a1b9abb; + + --kanban-color-1: #0065d852; + --kanban-color-2: #30e4e441; + --kanban-color-3: #1cb54f44; + --kanban-color-4: #97b82b49; + --kanban-color-5: #bb722d41; + --kanban-color-6: #d12e2e42; + --kanban-color-7: #8f36cb3f; + + /*colourful notes*/ + --text-gray: #acacac; + --text-brown: #be9684; + --text-orange: #ffa344; + --text-yellow: #ffdc51; + --text-yellow-2: #cca217; + --text-green: #52c7b2; + --text-blue: #7c94ff; + --text-purple: #b386f1; + --text-pink: #ff6bba; + --text-red: #ff4f4f; + + --background-gray: #535353; + --background-brown: #493a3a; + --background-orange: #53422f; + --background-yellow: #585536; + --background-green: #32503e; + --background-blue: #2f5264; + --background-purple: #443f57; + --background-pink: #533b4a; + --background-red: #683c3c; + + --note-important: #d64545; + --note-cloze: #ffffff; + + /* stickies */ + --stickies-color-1: #84c584; + --stickies-color-2: #c7a3cf; + --tape-color: #99999967; + + /*Sliding panes*/ + --sliding-panes-header-color: #f1a634d0; + --background-4-sliding-pane: #252525ed; + --bg-sliding-pane-header: #00000043; + --bg-sliding-pane-leaf: #0f0f0f36; + + /*admonition*/ + --admonition-bg-color: #11111100; + + /*checklist*/ + --checklist-bg: #1d1d1d96; + --checklist-bg-hover: #08080896; + + --color-view-header-gradient-1: #060813de; + --color-view-header-gradient-2: #00285dc0; + + --checkbox-color-0: #3187d3; + --checkbox-color-1: #a9a608; + --checkbox-color-2: #1dac10; + --checkbox-color-3: #ffd1d1; + --checkbox-color-4: #625d4c; + --checkbox-color-5: #9a67ae; + --checkbox-color-6: #5f5f5f; + --text-checked-checkbox: #8e8e8e; + + --activeline-background: var(--theme-color-translucent-005); + + /*pseudo-kanban*/ + --p-kanban-bg-color: #6c6c6c42; + --p-kanban-border-color: transparent; + --p-kanban-card-color-1: #0000003f; + --p-kanban-card-color-2: #41414136; + --p-kanban-color-6: #f3424252; + --p-kanban-color-5: #eb973752; + --p-kanban-color-4: #d2dd3852; + --p-kanban-color-3: #38ce2a52; + --p-kanban-color-2: #2ec4c452; + --p-kanban-color-1: #3496e652; + --p-kanban-color-8: #b962ff52; + --p-kanban-color-7: #e45bdd52; + --p-kanban-color-simple: #8e8e8e41; + --p-kanban-color-shadow: #0000004d; + + /*style settings*/ + --background-secondary-translucent: #2c2c2c26; + --background-secondary-translucent-1: #2c2c2c26; + + /*rainbow-checklist*/ + --checklist-color-1: #005aa486; + --checklist-color-2: #00798986; + --checklist-color-3: #12781586; + --checklist-color-4: #897b0086; + --checklist-color-5: #a4620086; + --checklist-color-6: #ab100586; + --checklist-color-7: #7f1f9086; + + --table-color-calendar-2: rgb(0, 91, 144); + --table-color-rgb: 0, 91, 144; + + --mjx-inline-math-color: var(--text-normal); + --mjx-math-color: var(--text-normal); + --background-leaf-resize-handle: var(--background-secondary-alt-bg-4-bt); + --text-folder-file-icon: var(--theme-color); + + --color-highlight-1: var(--text-normal); + --color-highlight-2: var(--text-normal); + --color-highlight-3: var(--text-normal); + --bg-color-highlight-1: #c865656f; + --bg-color-highlight-2: #54b9476f; + --bg-color-highlight-3: #1e83d086; + + --background-popover: var(--color-base-10); + + --cursor-red: #ff3939; + --cursor-yellow: #fff955; + --cursor-green: #7dff7d; + --cursor-blue: #8ac7ff; + --cursor-violet: #bf76ff; + + --bg-color-settings-0: #07070747; + --bg-color-settings-0-1: #ffffff00; + --bg-color-settings-1: #7c7c7c6d; + --bg-color-settings-2: #1f1f1f52; + --bg-color-settings-3: #141414be; + --bg-color-settings-4: #2e2e2e9d; + --bg-color-settings-5: #424242aa; + --bg-color-settings-6: #191919c7; + + --background-waves-color:#4A75DB8C; + + --tab-stacked-shadow: #0e0e0e; + --divider-color: #000000; + --tab-outline-color: #151515; + + --bg-color-notebook: #2a2825; + --grid-notebook-line-color-1: #c7c7c71f; + --grid-notebook-line-color-2: #74747440; + --dotted-notebook-dot-color: #c7c7c71f; + --background-nonoverlapping-note: #000000; + --stripe-notebook-stripe-color: #162419; + --prompt-box-shadow: #555555; + --background-titlebar-inner: hsla(var(--accent-h), var(--accent-s), var(--accent-l), 10%); + --window-shadow: 0 1px 3px hsla(207, 10%, 10%, 0.1); + --window-shadow2: 0 0 9px hsla(212, 17%, 0%, 0.3); + --bt-connected-indent-line-color: #926a6a; + --list-colorful-marker: #ff8686; +} + +.theme-light { + --background-primary: var(--background-primary-bg-4-bt,#ffffff); + --background-primary-alt: var(--background-primary-alt-bg-4-bt,#e9e9e9); + --background-secondary: var(--background-secondary-bg-4-bt,#fcfcfc); + --background-secondary-alt: var(--background-secondary-alt-bg-4-bt,#f3f3f3); + + --background-modifier-border: #dddddd; + --background-modifier-form-field: #fff; + --background-modifier-form-field-highlighted: #fff; + --background-modifier-box-shadow: rgba(0, 0, 0, 0.08); + --background-modifier-success: #A4E7C3; + --background-modifier-error: #e68787; + --background-modifier-error-rgb: 230, 135, 135; + --background-modifier-error-hover: #FF9494; + + --text-accent: var(--color-accent); + --text-accent-hover: var(--color-accent-2); + --text-normal: #0e0e0e; + --text-muted: #7f7f7f; + --text-highlight: var(--text-normal); + --text-faint: #7f7f7f; + --text-folder-file: #272727; + --accent-strong: #000000; + --accent-em: #099d4e; + --text-error: #e75545; + --text-error-hover: #f86959; + + --text-selection: #a9d1c859; + --text-on-accent: #ffffff; + --interactive-normal: #efefef; + --interactive-hover: #e6e6e6; + --accent-h: 207; + --accent-s: 77%; + --accent-l: 54%; + --accent-l-alt: calc(var(--accent-l) * 0.9); + --interactive-accent-rgb: 70, 142, 235; + + --interactive-accent-hover: var(--color-accent-2); + --panel-border-color: #dbdbdc; + --search-text: #000000; + --folder-title: #000000; + + --strong-em-highlight-color: #237add; + --mark-highlight-strong-em: #ff880049; + --text-highlight-bg: hsla(var(--text-highlight-bg-h-light), var(--text-highlight-bg-s-light), var(--text-highlight-bg-l-light), var(--text-highlight-bg-a-light)); + --text-search-highlight-bg: #ffd1dd; + --strong-em-color-1: #1048ff; + --strong-em-color-2: #14c8ff; + + --background-search-result: var(--background-secondary-bg-4-bt); + --search-result-file-matched-bg: #ffd9d9e5; + + --page-border-bottom: var(--background-secondary-alt); + --background-asymm-split-left: var(--background-secondary-alt); + + --background-mobile-drawer-1: #ffffff; + --background-mobile-drawer-2: #ffffff; + --background-modifier-border-hr: #bfbfbf; + --background-modifier-border-asymm: #d8d8d8; + --background-modifier-border-checkbox: #9c9c9c; + --background-secondary-alt-bg-4-bt-publish: #f6f6f6; + + --background-transparent-black-or-white-1: #ffffffb0; + --background-transparent-black-or-white-2: #ffffffca; + --background-transparent-black-or-white-3: #eeeeee91; + --background-transparent-black-or-white-3-1: #fafafac3; + --background-transparent-black-or-white-4: #a7a7a765; + --background-transparent-black-or-white-5: #f0f0f091; + --background-black-or-white-1: #e4e4e4; + --background-modifier-border-1: #e1dfdf; + --background-transparent-blue: #c6e5ffde; + --bg-color-settings-0: #7d7d7d6b; + --bg-color-settings-0-1: #ffffff77; + --bg-color-settings-1: #ffffff17; + --bg-color-settings-2: #ffffff5a; + --bg-color-settings-3: #ffffffda; + --bg-color-settings-4: #ffffffd2; + --bg-color-settings-5: #d4d4d464; + --bg-color-settings-6: #ffffff85; + + --scrollbar-thumb-bg: #dcdcdcbe; + --scrollbar-active-thumb-bg: #ddddddd9; + + --gray-1: #383a42; + --gray-2: #383a42; + --red: var(--nord11); + --red-1: #f16464f5; + --green: var(--nord14); + --darkgreen: #068a5e; + --blue: var(--nord10); + --darkblue: #3b84e4; + --purple: #c74df7; + --aqua: var(--nord8); + --yellow: #e48100; + --light-yellow: #ab9a02; + --orange: #db9600; + --orange-1: #cc7523; + --light-purple: #b74ff3; + --blue-green: #3bd4da; + --white: #ffffff; + --variable-2: #0072d0; + --variable-3: #5a96f7; + + --embed-color: hsla(calc(var(--accent-h) * 1),calc(var(--accent-s) * 0.8),calc(var(--accent-l) * 1),0.035); + --search-result-file-title-color: var(--text-normal); + --theme-color: var(--interactive-accent); + --theme-color-translucent-06: hsla(var(--interactive-accent-hsl),0.6); + --theme-color-translucent-04: hsla(var(--interactive-accent-hsl),0.4); + --theme-color-translucent-02: hsla(var(--interactive-accent-hsl),0.2); + --theme-color-translucent-015: hsla(var(--interactive-accent-hsl),0.15); + --theme-color-translucent-01: hsla(var(--interactive-accent-hsl),0.1); + --theme-color-translucent-005: hsla(var(--interactive-accent-hsl),0.05); + --theme-color-translucent-001: hsla(var(--interactive-accent-hsl),0.01); + + --background-blockquote: #d5d5d52c; + --background-code: #e6e6e671; + --background-code-2: #cccccc62; + --text-color-code: #e95d00; + --code-normal: #000000; + + --list-ul-block-color: #b9751b; + --list-ul-disc-color: #f39c55; + --green-1: #3dc730; + --list-ul-hover: #dd922f; + --list-ol-block-color: #3573a5; + --list-ol-number-color: var(--list-marker-color); + --list-ol-hover: #2c7bd6; + --list-marker-color-collapsed: var(--theme-color); + + --tag-text: #f8f8f8; + --stag1: #fa8787; + --stag1-bg: #eb2727; + --stag2: #fdbd5c; + --stag2-bg: #ee9002; + --stag3: #50ce3a; + --stag3-bg: #22ac09; + --tag1: #2573f0; + --tag2: #2193f0; + --tag3: #17a5e7; + --tag4: #14acc7; + --tag5: #10bdbd; + --tag-dailynote: #0077ff; + --tag-dailynote-bg: #277CDD; + --tag-weeklynote: #4b9fff; + --tag-weeklynote-bg: #6aafff; + --tag-questions: #b68fff; + --tag-questions-bg: #b085ff; + --tag-ideas: #ceb900; + --tag-ideas-bg: #444444d8; + + --h1-color: var(--print-h1-color,hsl(216, 88%, 26%)); + --h2-color: var(--print-h2-color,hsl(212, 100%, 33%)); + --h3-color: var(--print-h3-color,hsl(210, 86%, 39%)); + --h4-color: var(--print-h4-color,hsl(208, 58%, 49%)); + --h5-color: var(--print-h5-color,hsl(209, 70%, 62%)); + --h6-color: var(--print-h6-color,hsl(209, 65%, 72%)); + + --graph-text-color: #696969; + --graph-tag: #77d425cc; + --graph-attach: #afcfe0cc; + --graph-circle: #1f78b4cc; + --graph-line: #b1b1b1; + --graph-unresolved: #db4e4ecc; + --graph-arrow: #e25300; + --graph-control-bg: #ffffff9a; + --graph-circle-outline: transparent; + --graph-canvas-bg: var(--background-primary); + --graph-circle-fill-highlight: var(--interactive-accent); + --graph-line-fill-highlight: rgb(var(--interactive-accent-rgb)); + + --unresolved-link: var(--graph-unresolved); + --link-unresolved-decoration-color: var(--graph-unresolved); + --internal-link-color: var(--text-accent); + --external-link-color: var(--internal-link-color); + + /*mermaid*/ + --mermaid-active-task-color: #44bbff; + --mermaid-seq-dia-color: #76c8ff; + + /*table*/ + --table-background-color: #f1f1f176; + --table-background-color-odd: #ffffff70; + --table-border-color: #7d7d7d; + --table-thead-background-color: var(--theme-color-translucent-01); + --table-hover-raw-color: #85bfee2f; + --table-hover-color: #5dacec34; + --table-hover-thead-color: #ddefff; + --table-header-color: var(--text-normal); + + /*calendar*/ + --calendar-week-color: #48b432; + --calendar-week-hover: #e9ffe3; + --calendar-week-background-color: #d6e6bf; + --calendar-today-background-color: #aaeec6; + --calendar-hover-color: var(--theme-color-translucent-01); + --calendar-active-color: var(--theme-color-translucent-02); + + /*day planner*/ + --day-planner-pie: #eca95c; + --day-planner-timeline: #d62f2f; + --day-planner-line: #ffd900; + --day-planner-dot: #ffd900; + --day-planner-item-hover: #8fccff; + --event-item-color1: #65ace6; + --event-item-color2: #52a4e7; + --event-item-color3: #2e96eb; + --event-item-color4: #2786da; + --event-item-color5: #1275cc; + --event-item-color6: #2664c0; + --event-item-color7: #1652ac; + --event-item-color8: #0c469c; + --event-item-color9: #0a3c86; + --event-item-color10: #072f6b; + + /*colourful notes*/ + --text-gray: #37352f99; + --text-brown: #855a46; + --text-orange: #d9730d; + --text-yellow: #d4a300; + --text-yellow-2: #a78000; + --text-green: #00927f; + --text-blue: #0083bb; + --text-purple: #5d1fb9; + --text-pink: #c40075; + --text-red: #ff4343; + --background-gray: #ebeced; + --background-brown: #e9e5e3; + --background-orange: #faebdd; + --background-yellow: #fbf3db; + --background-green: #ddedea; + --background-blue: #ddebf1; + --background-purple: #eae4f2; + --background-pink: #f4dfeb; + --background-red: #ffe3e3; + + --note-important: #fd4141; + --note-cloze: #000000; + + /* stickies */ + --stickies-color-1: #b3e2b3; + --stickies-color-2: #e9c6f1; + --tape-color: #acacac65; + + /*Sliding panes*/ + --sliding-panes-header-color: #0e64bb; + --background-4-sliding-pane: #ffffffef; + --bg-sliding-pane-header: #ffffff97; + --bg-sliding-pane-leaf: #ffffff88; + + /*admonition*/ + --admonition-bg-color: #FFFFFF00; + + /*checklist*/ + --checklist-bg: #dfdfdf8e; + --checklist-bg-hover: #ffffffcc; + + --color-view-header-gradient-1: #ffffffce; + --color-view-header-gradient-2: #ffffffce; + + /*checkbox*/ + --checkbox-color-0: #2f92e4; + --checkbox-color-1: #c4c116; + --checkbox-color-2: #4bbf40; + --checkbox-color-3: #ffe9e9; + --checkbox-color-4: #fff8b7; + --checkbox-color-5: #ad7fbf; + --checkbox-color-6: #5f5f5f; + --text-checked-checkbox: #9b9b9b; + + --activeline-background: var(--theme-color-translucent-005); + + /*pseudo-kanban*/ + --p-kanban-bg-color: #d3d3d32d; + --p-kanban-border-color: #a0a0a060; + --p-kanban-card-color-1: #ffffff80; + --p-kanban-card-color-2: #ffffff; + --p-kanban-color-6: #f18e8e65; + --p-kanban-color-5: #eeb36f65; + --p-kanban-color-4: #d1d77f65; + --p-kanban-color-3: #8ce38465; + --p-kanban-color-2: #7cdddd65; + --p-kanban-color-1: #52aaf365; + --p-kanban-color-8: #ba8be165; + --p-kanban-color-7: #e677e065; + --p-kanban-color-simple: #cdcdcd2c; + --p-kanban-color-shadow: #cfcfcf4d; + + /*style settings*/ + --background-secondary-translucent: #ffffff3d; --background-secondary-translucent-1: #ffffff5d; + + /*rainbow-checklist*/ + --checklist-color-1: #bbdefbab; + --checklist-color-2: #b2ebf2ab; + --checklist-color-3: #c8e6c9ab; + --checklist-color-4: #f8ef99ab; + --checklist-color-5: #ffe0b2ab; + --checklist-color-6: #ffcdd2ab; + --checklist-color-7: #e1bee7ab; + + --table-color-calendar-2: rgb(167, 223, 251); + --table-color-rgb: 167, 223, 251; + + --mjx-inline-math-color: var(--text-normal); + --mjx-math-color: var(--text-normal); + --background-leaf-resize-handle: var(--background-secondary-alt-bg-4-bt); + --text-folder-file-icon: var(--theme-color); + + --color-highlight-1: var(--text-normal); + --color-highlight-2: var(--text-normal); + --color-highlight-3: var(--text-normal); + --bg-color-highlight-1: #ff000034; + --bg-color-highlight-2: #0fc41835; + --bg-color-highlight-3: #4ca6ff51; + + --background-popover: var(--color-base-10); + + --cursor-red: #ff0000; + --cursor-yellow: #d5ca00; + --cursor-green: #008000; + --cursor-blue: #1791e2; + --cursor-violet: #ee82ee; + + --background-waves-color:#4A75DB8C; + + --tab-stacked-shadow: #d6d6d6; + --divider-color: #e3e3e3; + --tab-outline-color: #e3e3e3; + + --bg-color-notebook: #fef9f1; + --grid-notebook-line-color-1: #c7c7c740; + --grid-notebook-line-color-2: #afafaf40; + --dotted-notebook-dot-color: #c7c7c780; + --stripe-notebook-stripe-color: #f5f2e6; + --background-nonoverlapping-note: #ffffff; + --prompt-box-shadow: #bebebe; + --background-titlebar-inner: hsla(var(--accent-h), var(--accent-s), var(--accent-l), 10%); + --window-shadow: 0 1px 3px hsla(212, 17%, 80%, 0.2); + --window-shadow2: 0 0 9px hsla(217, 15%, 83%, 0.7); + --bt-connected-indent-line-color: #FFA8A8; + --list-colorful-marker: #fd4949; +} + +body.color-scheme-options-avocado-topaz .theme-light, +body.color-scheme-options-avocado-topaz.theme-light { + --background-primary: var(--background-primary-bg-4-bt,#ffffff); + --background-primary-alt: var(--background-primary-alt-bg-4-bt,#e9e9e9); + --background-secondary: var(--background-secondary-bg-4-bt,#fcfcfc); + --background-secondary-alt: var(--background-secondary-alt-bg-4-bt,#e8f0e8); + + --background-modifier-border: #e1dfdf; + + --accent-em: #620ac6; + --text-selection: #7fbffe59; + --accent-h: 143; + --accent-s: 34%; + --accent-l: 45%; + --interactive-accent-rgb: 122, 189, 148; + + --search-text: #000000; + --folder-title: #000000; + + --strong-em-highlight-color: #08ae84; + --mark-highlight-strong-em: #dbe72849; + --text-highlight-bg: #ecf56ed8; + --text-search-highlight-bg: #ffd1dd; + --strong-em-color-1: #08ae84; + --strong-em-color-2: #01531d; + + --background-primary-bg-4-bt: #ffffff; + --background-primary-alt-bg-4-bt: #e9e9e9; + --background-secondary-bg-4-bt: #ffffff; + --background-secondary-alt-bg-4-bt: #e8f0e8; + + --background-mobile-drawer-1: #ffffff; + --background-mobile-drawer-2: #ffffff; + --background-secondary-alt-bg-4-bt-publish: #f6f6f6; + + --background-transparent-blue: #c6e5ffde; + + --scrollbar-thumb-bg: #c6c6c6a8; + --scrollbar-active-thumb-bg: #c6c6c6; + --search-result-file-title-color: var(--text-normal); + + --background-blockquote: #b6b6b62c; + --background-code: #ebebeb71; + --background-code-2: #cccccc62; + --text-color-code: #e95d00; + + --list-ul-block-color: #b9751b; + --list-ul-disc-color: #f39c55; + --green-1: #3dc730; + --list-ul-hover: #dd922f; + --list-ol-block-color: #35a569; + --list-ol-number-color: #429a71; + --list-ol-hover: #31b870; + + --tag-text: #f8f8f8; + --stag1: #fa8787; + --stag1-bg: #eb2727; + --stag2: #fdbd5c; + --stag2-bg: #ee9002; + --stag3: #50ce3a; + --stag3-bg: #22ac09; + --tag1: #79a26b; + --tag2: #7eb56b; + --tag3: #56b15b; + --tag4: #2db37b; + --tag5: #17b198; + --tag6: #19bb8b; + --tag7: #15bf1d; + --tag8: #61c108; + --tag9: #6ab607; + --tag-dailynote: #0077ff; + --tag-dailynote-bg: #277CDD; + --tag-weeklynote: #4b9fff; + --tag-weeklynote-bg: #6aafff; + --tag-questions: #b68fff; + --tag-questions-bg: #b085ff; + --tag-ideas: #ceb900; + --tag-ideas-bg: #444444d8; + + --h1-color: var(--print-h1-color,#02401f); + --h2-color: var(--print-h2-color,#034f27); + --h3-color: var(--print-h3-color,#034924); + --h4-color: var(--print-h4-color,#14452b); + --h5-color: var(--print-h5-color,#0e4728); + --h6-color: var(--print-h6-color,#19452e); + + /*graph*/ + --graph-text-color: #696969; + --graph-tag: #da9ee2cc; + --graph-attach: #88b0d6cc; + --graph-circle: #6fbf8ecc; + --graph-line: #b1b1b1; + --graph-unresolved: #db4e4ecc; + --graph-arrow: #e25300; + --graph-control-bg: #ffffff9a; + + /*mermaid*/ + --mermaid-active-task-color: #44bbff; + --mermaid-seq-dia-color: #76c8ff; + + /*table*/ + --table-border-color: #7d7d7d; + --table-thead-background-color: #dbe4dac7; + --table-hover-raw-color: #dbe4da57; + --table-hover-color: #dbe4da37; + --table-hover-thead-color: #dbe4da; + + /*calendar*/ + --calendar-week-color: #48b432; + --calendar-week-hover: #e9ffe3; + --calendar-week-background-color: #d6e6bf; + --calendar-today-background-color: #aaeec6; + + /*day planner*/ + --day-planner-pie: #eca95c; + --day-planner-timeline: #d62f2f; + --day-planner-line: #ffd900; + --day-planner-dot: #ffd900; + --day-planner-item-hover: #5ca35c; + --event-item-color1: #7c9f14; + --event-item-color2: #659f14; + --event-item-color3: #529f14; + --event-item-color4: #3d9f14; + --event-item-color5: #2d9f14; + --event-item-color6: #1d9f14; + --event-item-color7: #149f1f; + --event-item-color8: #149f2d; + --event-item-color9: #149f39; + --event-item-color10: #149f44; + + /*Sliding panes*/ + --sliding-panes-header-color: #02401f; + + --color-view-header-gradient-1: #d9f7d9ef; + --color-view-header-gradient-2: #e9f3edef; + + /*checkbox*/ + --checkbox-color-0: #4cb385; + --checkbox-color-1: #c4c116; + --checkbox-color-2: #4077bf; + --checkbox-color-3: #ffe9e9; + --checkbox-color-4: #fffbd4; + --checkbox-color-5: #ad7fbf; + --checkbox-color-6: #5f5f5f; + + --table-color-calendar-2: rgb(182, 221, 191); + --table-color-rgb: 182, 221, 191; +} + +body.color-scheme-options-avocado-topaz .workspace-leaf.mod-active .view-header-title { + color: var(--h1-color); +} + +body.color-scheme-options-avocado-topaz.all-dark-pdf .print.theme-light, +body.color-scheme-options-avocado-topaz.theme-dark { + --background-primary: var(--background-primary-bg-4-bt,#181818); + --background-primary-alt: var(--background-primary-alt-bg-4-bt,#000000); + --background-secondary: var(--background-secondary-bg-4-bt,#181818); + --background-secondary-alt: var(--background-secondary-alt-bg-4-bt,#000000); + --accent-h: 140; + --accent-s: 52%; + --accent-l: 41%; + --interactive-accent-rgb: 50, 159, 86; + + --text-selection: #0080ff59; + --text-highlight-bg: #47893b8a; + --mark-highlight-strong-em: #47893b7a; + --strong-em-highlight-color: #9c8ce6; + --text-search-highlight-bg: #bb4361; + --strong-em-color-1: #9c8ce6; + --strong-em-color-2: #23d05c; + + --background-mobile-drawer-1: #1b1b1b; + --background-mobile-drawer-2: #1b1b1b69; + --background-transparent-blue: #003e759a; + --scrollbar-thumb-bg: #8282827e; + --scrollbar-active-thumb-bg: #828282; + --search-result-file-title-color: var(--text-normal); + + --background-blockquote: #9191911c; + --background-code: #1111118c; + --background-code-2: #4c4c4cb0; + --text-color-code: #d58000; + + --list-ul-block-color: #e19742a9; + --list-ul-disc-color: #eb9563; + --green-1: #79c142; + --list-ul-hover: #e28915de; + --list-ol-block-color: #26bb32b4; + --list-ol-number-color: #95c49d; + --list-ol-hover: #2cd62c; + + --graph-text-color: #B5B5B5; + --graph-tag: #b992ddbb; + --graph-attach: #76c1f0bb; + --graph-circle: #44d07ebb; + --graph-line: #8c8c8c; + --graph-unresolved: #f08080de; + --graph-arrow: #c23917; + --graph-control-bg: #00000080; + + /*mermaid*/ + --mermaid-active-task-color: #187ef1; + --mermaid-seq-dia-color: #1371be; + + /*table*/ + --table-thead-background-color: #557f5c43; + --table-hover-raw-color: #557f5c23; + --table-hover-color: #557f5c23; + --table-hover-thead-color: #557f5c53; + + /*calendar*/ + --calendar-week-color: #a2df94; + --calendar-week-hover: #61815c; + --calendar-week-background-color: #4a5842; + --calendar-today-background-color: #8c4545; + + /*day planner*/ + --day-planner-pie: #f19c1c; + --day-planner-timeline: #000000; + --day-planner-line: #dfcf77; + --day-planner-dot: #dfcf77; + --day-planner-item-hover: #059429; + --event-item-color1: #347703; + --event-item-color2: #077703; + --event-item-color3: #03771e; + --event-item-color4: #037737; + --event-item-color5: #03774d; + --event-item-color6: #03775a; + --event-item-color7: #03776c; + --event-item-color8: #037377; + --event-item-color9: #036877; + --event-item-color10: #035e77; + + /*Sliding panes*/ + --sliding-panes-header-color: #27b822; + --background-4-sliding-pane: #252525ed; + + --color-view-header-gradient-1: #000000de; + --color-view-header-gradient-2: #002900c0; + + /*checkbox*/ + --checkbox-color-0: #25c648; + --checkbox-color-1: #a9a608; + --checkbox-color-2: #1061ac; + --checkbox-color-3: #ffd1d1; + --checkbox-color-4: #625d4c; + --checkbox-color-5: #9a67ae; + --checkbox-color-6: #5f5f5f; + + --table-color-calendar-2: rgb(5, 158, 5); + --table-color-rgb: 5, 158, 5; + --divider-color: #000000; +} + +body.color-scheme-options-monochrome-topaz.all-dark-pdf .print.theme-light, +body.color-scheme-options-monochrome-topaz.theme-dark { + --background-primary: var(--background-primary-bg-4-bt,#1e1e1e); + --background-primary-alt: var(--background-primary-alt-bg-4-bt,#000000); + --background-secondary: var(--background-secondary-bg-4-bt,#151515); + --background-secondary-alt: var(--background-secondary-alt-bg-4-bt,#000000); + --accent-em: #ffffff; + --accent-h: 0; + --accent-s: 0%; + --accent-l: 47%; + --interactive-accent-rgb: 120, 120, 120; + + --text-highlight-bg: #89853b8a; + --mark-highlight-strong-em: #fff7603a; + --strong-em-highlight-color: #ffffff; + --text-search-highlight-bg: #bb4361; + + --search-result-file-title-color: var(--text-normal); + + --background-blockquote: #9191911c; + --background-code: #1111118c; + --background-code-2: #4c4c4cb0; + --text-color-code: #d58000; + + --internal-link-color: #3197eb; + --list-ul-block-color: #d0d0d0a9; + --list-ul-disc-color: #eb9563; + --green-1: #79c142; + --list-ul-hover: #e28915de; + --list-ol-block-color: #878787b4; + --list-ol-number-color: #c6c6c6; + --list-ol-hover: #2c7bd6; + --tag-text: #e4e4e4; + --stag1: #f08383; + --stag1-bg: #bd1919; + --stag2: #e7b263; + --stag2-bg: #ac6700; + --stag3: #77df89; + --stag3-bg: #058c1c; + --tag1: #cccccc; + --tag2: #cccccc; + --tag3: #cccccc; + --tag4: #cccccc; + --tag5: #cccccc; + --tag-dailynote: #98c8ff; + --tag-dailynote-bg: #0f60bd; + --tag-weeklynote: #d1e6ff; + --tag-weeklynote-bg: #3971b1; + --tag-questions: #d4bdff; + --tag-questions-bg: #6640ae; + --tag-ideas: #fcfcc0; + --tag-ideas-bg: #565656d8; + + --h1-color: var(--print-h1-color,#ebebeb); + --h2-color: var(--print-h2-color,#ebebeb); + --h3-color: var(--print-h3-color,#ebebeb); + --h4-color: var(--print-h4-color,#ebebeb); + --h5-color: var(--print-h5-color,#ebebeb); + --h6-color: var(--print-h6-color,#ebebeb); + + /*graph*/ + --graph-text-color: #B5B5B5; + --graph-tag: #88d842bb; + --graph-attach: #5cb5e9bb; + --graph-circle: #ebebebb9; + --graph-line: #8c8c8c; + --graph-unresolved: #f08080de; + --graph-arrow: #c23917; + --graph-control-bg: #00000080; + + /*mermaid*/ + --mermaid-active-task-color: #187ef1; + --mermaid-seq-dia-color: #1371be; + + --table-border-color: #878787; + --table-thead-background-color: #b3b3b363; + --table-hover-raw-color: #4040401c; + --table-hover-color: #59595947; + --table-hover-thead-color: #6969691c; + + /*calendar*/ + --calendar-week-color: #ededed; + --calendar-week-hover: #bfbfbf52; + --calendar-week-background-color: #b5b5b52e; + --calendar-today-background-color: #8c4545; + + /*day planner*/ + --day-planner-pie: #f19c1c; + --day-planner-timeline: #000000; + --day-planner-line: #dfcf77; + --day-planner-dot: #dfcf77; + --day-planner-item-hover: #707070; + --event-item-color1: #0a0a0a; + --event-item-color2: #121212; + --event-item-color3: #171717; + --event-item-color4: #212121; + --event-item-color5: #2b2b2b; + --event-item-color6: #333333; + --event-item-color7: #3d3d3d; + --event-item-color8: #454545; + --event-item-color9: #4d4d4d; + --event-item-color10: #575757; + + /*Sliding panes*/ + --sliding-panes-header-color: #ebebeb; + --background-4-sliding-pane: #252525ed; + + + + --color-view-header-gradient-1: #000000de; + --color-view-header-gradient-2: #000000c0; + + --table-color-calendar-2: rgb(69, 69, 69); + --table-color-rgb: 69, 69, 69; +} + +body.color-scheme-options-monochrome-topaz .theme-light, +body.color-scheme-options-monochrome-topaz.theme-light { + --background-primary: var(--background-primary-bg-4-bt,#ffffff); + --background-primary-alt: var(--background-primary-alt-bg-4-bt,#e9e9e9); + --background-secondary: var(--background-secondary-bg-4-bt,#ffffff); + --background-secondary-alt: var(--background-secondary-alt-bg-4-bt,#f5f5f5); + --accent-strong: #000000; + --accent-em: #000000; + --text-selection: #c6c6c659; + --accent-h: 0; + --accent-s: 0%; + --accent-l: 31%; + --interactive-accent-rgb: 79, 79, 79; + + --strong-em-highlight-color: #000000; + --text-highlight-bg: #ecf56eb4; + --mark-highlight-strong-em: #ecf56eb4; + --text-search-highlight-bg: #ffd1dd; + --strong-em-color-1: #08ae84; + --strong-em-color-2: #01531d; + + --search-result-file-title-color: var(--text-normal); + + --background-blockquote: #b6b6b62c; + --background-code: #ebebeb71; + --background-code-2: #cccccc62; + --text-color-code: #e95d00; + + --internal-link-color: #0040ff; + + /*list*/ + --list-ul-block-color: #313131; + --list-ul-disc-color: #f39c55; + --green-1: #3dc730; + --list-ul-hover: #dd922f; + --list-ol-block-color: #a2a2a2; + --list-ol-number-color: #b5b5b5; + --list-ol-hover: #4f8fcb; + + --tag-text: #5a5a5a; + --stag1: #fa8787; + --stag1-bg: #eb2727; + --stag2: #fdbd5c; + --stag2-bg: #ee9002; + --stag3: #50ce3a; + --stag3-bg: #22ac09; + --tag1: #4f4f4f; + --tag2: #4f4f4f; + --tag3: #4f4f4f; + --tag4: #4f4f4f; + --tag5: #4f4f4f; + --tag-dailynote: #0077ff; + --tag-dailynote-bg: #277CDD; + --tag-weeklynote: #4b9fff; + --tag-weeklynote-bg: #6aafff; + --tag-questions: #b68fff; + --tag-questions-bg: #b085ff; + --tag-ideas: #ceb900; + --tag-ideas-bg: #444444d8; + + --h1-color: var(--print-h1-color,#000000); + --h2-color: var(--print-h2-color,#000000); + --h3-color: var(--print-h3-color,#000000); + --h4-color: var(--print-h4-color,#000000); + --h5-color: var(--print-h5-color,#000000); + --h6-color: var(--print-h6-color,#000000); + + /*graph*/ + --graph-text-color: #696969; + --graph-tag: #57bf5fcc; + --graph-attach: #78b0e4cc; + --graph-circle: #6a6a6acc; + --graph-line: #b1b1b1; + --graph-unresolved: #db4e4ecc; + --graph-arrow: #e25300; + --graph-control-bg: #ffffff9a; + + /*mermaid*/ + --mermaid-active-task-color: #44bbff; + --mermaid-seq-dia-color: #76c8ff; + + /*table*/ + --table-border-color: #7d7d7d; + --table-thead-background-color: #bdbdbdc7; + --table-hover-raw-color: #f0f0f063; + --table-hover-color: #e3e3e354; + --table-hover-thead-color: #ebebeb54; + + /*calendar*/ + --calendar-week-color: #949494; + --calendar-week-hover: #b5b5b52e; + --calendar-week-background-color: #878787; + --calendar-today-background-color: #aaeec6; + + /*day planner*/ + --day-planner-pie: #eca95c; + --day-planner-timeline: #d62f2f; + --day-planner-line: #ffd900; + --day-planner-dot: #ffd900; + --day-planner-item-hover: #474747; + --event-item-color1: #b5b5b5; + --event-item-color2: #a8a8a8; + --event-item-color3: #a1a1a1; + --event-item-color4: #969696; + --event-item-color5: #8c8c8c; + --event-item-color6: #828282; + --event-item-color7: #787878; + --event-item-color8: #707070; + --event-item-color9: #666666; + --event-item-color10: #595959; + + /*Sliding panes*/ + --sliding-panes-header-color: #000000; + --background-4-sliding-pane: #ffffffef; + + --color-view-header-gradient-1: #ffffffef; + --color-view-header-gradient-2: #ffffffef; + + --table-color-calendar-2: rgb(212, 212, 212); + --table-color-rgb: 212, 212, 212; +} + + +body.color-scheme-options-avocado-topaz .workspace-leaf.mod-active .view-header-title { + color: var(--h1-color); +} + +body.color-scheme-options-monochrome-topaz *:not(font)>em>strong, +body.color-scheme-options-monochrome-topaz *:not(font)>strong>em, +body.color-scheme-options-monochrome-topaz .cm-strong.cm-em { + background-image: initial; + background-clip: initial; + -webkit-background-clip: initial; + -webkit-text-fill-color: initial; + background-color: initial; +} + +body.color-scheme-options-pink-topaz .theme-light, +body.color-scheme-options-pink-topaz.theme-light { + --background-primary: var(--background-primary-bg-4-bt,#fffaf0); + --background-primary-alt: var(--background-primary-alt-bg-4-bt,#e9e9e9); + --background-secondary: var(--background-secondary-bg-4-bt,#fffaf0); + --background-secondary-alt: var(--background-secondary-alt-bg-4-bt,#ffebeb); + --background-modifier-border: #e1dfdf; + --text-normal: #0e0e0e; + --text-muted: #7f7f7f; + --text-faint: #7f7f7f; + --text-folder-file: #272727; + + --accent-em: #000000; + --accent-h: 325; + --accent-s: 80%; + --accent-l: 77%; + --text-selection: #f7b2cf59; + --interactive-accent-rgb: 243, 148, 203; + + --search-text: #000000; + --folder-title: #000000; + + --strong-em-highlight-color: #000000; + --mark-highlight-strong-em: #ffd0e99b; + --text-highlight-bg: #ffd0e99b; + --text-search-highlight-bg: #ffd1dd; + --search-result-file-matched-bg: #ffc3c3; + + --background-mobile-drawer-1: #ffffff; + --background-mobile-drawer-2: #ffffff; + --background-secondary-alt-bg-4-bt-publish: #f6f6f6; + + --scrollbar-thumb-bg: #e2bdbd8d; + --scrollbar-active-thumb-bg: #e2bdbd; + --search-result-file-title-color: #cc437c; + + --background-blockquote: #e6d6ba2c; + --background-code: #fae4ee4d; + --background-code-2: #d5d5d562; + --text-color-code: #e95d00; + + --list-ul-block-color: #c7c947; + --list-ul-disc-color: #f39c55; + --green-1: #3dc730; + --list-ul-hover: #dd922f; + --list-ol-block-color: #ce6d8a; + --list-ol-number-color: #e599ac; + --list-ol-hover: #b83175; + + --tag-text: #f8f8f8; + --stag1: #fa8787; + --stag1-bg: #eb2727; + --stag2: #fdbd5c; + --stag2-bg: #ee9002; + --stag3: #50ce3a; + --stag3-bg: #22ac09; + --tag1: #f1afaf; + --tag2: #e7c190; + --tag3: #86c93a; + --tag4: #48c6bf; + --tag5: #797fd1; + --tag-dailynote: #0077ff; + --tag-dailynote-bg: #277CDD; + --tag-weeklynote: #4b9fff; + --tag-weeklynote-bg: #6aafff; + --tag-questions: #b68fff; + --tag-questions-bg: #b085ff; + --tag-ideas: #ceb900; + --tag-ideas-bg: #444444d8; + + --h1-color: var(--print-h1-color,#6f0000); + --h2-color: var(--print-h2-color,#7a0757); + --h3-color: var(--print-h3-color,#9a1d75); + --h4-color: var(--print-h4-color,#b52a87); + --h5-color: var(--print-h5-color,#bb5795); + --h6-color: var(--print-h6-color,#cc76b7); + + /*graph*/ + --graph-text-color: #585858; + --graph-tag: #e3c982c7; + --graph-attach: #c982e3c7; + --graph-circle: #f596bbcc; + --graph-line: #e6b0c9; + --graph-unresolved: #db4e4ecc; + --graph-arrow: #e25300; + --graph-control-bg: #ffffff9a; + + /*mermaid*/ + --mermaid-active-task-color: #44bbff; + --mermaid-seq-dia-color: #76c8ff; + + /*table*/ + + --table-border-color: #7d7d7d; + --table-thead-background-color: #fad1e96f; + --table-hover-raw-color: #fad1e92f; + --table-hover-color: #fad1e92f; + --table-hover-thead-color: #fad1e98f; + + /*calendar*/ + --calendar-week-color: #b884a5c7; + --calendar-week-hover: #e3d8df66; + --calendar-week-background-color: #b884a599; + --calendar-today-background-color: #b1779c94; + + /*day planner*/ + --day-planner-pie: #eca95c; + --day-planner-timeline: #d62f2f; + --day-planner-line: #ffd900; + --day-planner-dot: #ffd900; + --day-planner-item-hover: #e8a6be; + --event-item-color1: #e5b8cb; + --event-item-color2: #e1a3bd; + --event-item-color3: #e090b1; + --event-item-color4: #e080a8; + --event-item-color5: #e0719f; + --event-item-color6: #e16096; + --event-item-color7: #e25590; + --event-item-color8: #e64c8c; + --event-item-color9: #e64186; + --event-item-color10: #e92b7a; + + /* stickies */ + --stickies-color-1: #e5c7dab5; + --stickies-color-2: #dac7afc7; + --tape-color: #acacac65; + + /*Sliding panes*/ + --sliding-panes-header-color: #6f0000; + --background-4-sliding-pane: #ffffffef; + + --color-view-header-gradient-1: #ffdfe4ef; + --color-view-header-gradient-2: #ffe4e4ef; + + /*checkbox*/ + --checkbox-color-0: #d879a8; + --checkbox-color-1: #c4c116; + --checkbox-color-2: #50a947; + --checkbox-color-3: #ffe9e9; + --checkbox-color-4: #fffbd4; + --checkbox-color-5: #ad7fbf; + --checkbox-color-6: #5f5f5f; + --text-checked-checkbox: #9b9b9b; + + --table-color-calendar-2: rgb(245, 214, 224); + --table-color-rgb: 245, 214, 224; +} + +body.color-scheme-options-pink-topaz.all-dark-pdf .print.theme-light, +body.color-scheme-options-pink-topaz.theme-dark { + --background-primary: var(--background-primary-bg-4-bt,#0f0f0f); + --background-primary-alt: var(--background-primary-alt-bg-4-bt,#000000); + --background-secondary: var(--background-secondary-bg-4-bt,#181818); + --background-secondary-alt: var(--background-secondary-alt-bg-4-bt,#222222); + + --accent-em: #d9d4a6; + --accent-h: 338; + --accent-s: 51%; + --accent-l: 59%; + --interactive-accent-rgb: 204, 97, 136; + + --text-highlight-bg: #de87a785; + --mark-highlight-strong-em: #dc799e85; + + --strong-em-highlight-color: #d9afb3d1; + --text-search-highlight-bg: #bb4361; + --strong-em-color-1: #fc3b3b; + --strong-em-color-2: #f5c414; + --search-result-file-matched-bg: #a9672dc9; + + --background-mobile-drawer-1: #1b1b1b; + --background-mobile-drawer-2: #1b1b1b69; + + --background-transparent-blue: #003e759a; + --scrollbar-thumb-bg: #8d69698d; + --scrollbar-active-thumb-bg: #8d6969; + --search-result-file-title-color: #c0689b; + + --background-blockquote: #9191911c; + --background-code: #00000082; + --background-code-2: #4c4c4cb0; + --text-color-code: #d58000; + + /*list*/ + --list-ul-block-color: #b27b7b; + --list-ul-disc-color: #af5a5a; + --green-1: #79c142; + --list-ul-hover: #b69696; + --list-ol-block-color: #ce7ea7; + --list-ol-number-color: #a25d81; + --list-ol-hover: #c0a5b3; + + --tag-text: #e4e4e4; + --stag1: #f08383; + --stag1-bg: #bd1919; + --stag2: #e7b263; + --stag2-bg: #ac6700; + --stag3: #77df89; + --stag3-bg: #058c1c; + --tag1: #ba6d6d; + --tag2: #ba6d7b; + --tag3: #ba6d88; + --tag4: #ba6d96; + --tag5: #ba6da6; + --tag-dailynote: #98c8ff; + --tag-dailynote-bg: #0f60bd; + --tag-weeklynote: #d1e6ff; + --tag-weeklynote-bg: #3971b1; + --tag-questions: #d4bdff; + --tag-questions-bg: #6640ae; + --tag-ideas: #fcfcc0; + --tag-ideas-bg: #565656d8; + + --h1-color: var(--print-h1-color,#c66279); + --h2-color: var(--print-h2-color,#bb7283); + --h3-color: var(--print-h3-color,#b4507f); + --h4-color: var(--print-h4-color,#b25c84); + --h5-color: var(--print-h5-color,#b74e94); + --h6-color: var(--print-h6-color,#b7629a); + + /*graph*/ + --graph-text-color: #B5B5B5; + --graph-tag: #d2bf83c7; + --graph-attach: #ad71d6c7; + --graph-circle: #d67a8dc7; + --graph-line: #ad7b8dc7; + --graph-unresolved: #cf3a3ac7; + --graph-arrow: #c23917; + --graph-control-bg: #00000080; + + /*mermaid*/ + --mermaid-active-task-color: #187ef1; + --mermaid-seq-dia-color: #1371be; + + /*table*/ + + --table-thead-background-color: #a76c8f45; + --table-hover-raw-color: #a76c8f25; + --table-hover-color: #a76c8f2b; + --table-hover-thead-color: #a76c8f35; + + /*calendar*/ + --calendar-week-color: #bb6396e6; + --calendar-week-hover: #96798a6b; + --calendar-week-background-color: #c794948c; + --calendar-today-background-color: #8c4545; + + /*day planner*/ + --day-planner-pie: #f19c1c; + --day-planner-timeline: #000000; + --day-planner-line: #dfcf77; + --day-planner-dot: #dfcf77; + --day-planner-item-hover: #b893a3ad; + --event-item-color1: #d35f5fc7; + --event-item-color2: #d35f6ac7; + --event-item-color3: #d35f76c7; + --event-item-color4: #d35f7ec7; + --event-item-color5: #d35f86c7; + --event-item-color6: #d35f8dc7; + --event-item-color7: #d35f95c7; + --event-item-color8: #d35f9dc7; + --event-item-color9: #d35fa3c7; + --event-item-color10: #d35facc7; + + /*kanban*/ + --kanban-color-1: #9b3636ad; + --kanban-color-2: #9b364ead; + --kanban-color-3: #9b3660ad; + --kanban-color-4: #9b366fad; + --kanban-color-5: #9b3679ad; + --kanban-color-6: #9b368cad; + --kanban-color-7: #99369bad; + + /* stickies */ + --stickies-color-1: #ecb6d8c7; + --stickies-color-2: #ecd9b6c7; + + /*Sliding panes*/ + --sliding-panes-header-color: #ffffff; + --background-4-sliding-pane: #252525ed; + + --color-view-header-gradient-1: #000000c2; + --color-view-header-gradient-2: #2e1f28c2; + + --checkbox-color-0: var(--theme-color); + --checkbox-color-1: #a9a608; + --checkbox-color-2: #1061ac; + --checkbox-color-3: #ffd1d1; + --checkbox-color-4: #625d4c; + --checkbox-color-5: #9a67ae; + --checkbox-color-6: #5f5f5f; + --text-checked-checkbox: #8e8e8e; + + --table-color-calendar-2: rgb(215, 121, 153); + --table-color-rgb: 215, 121, 153; +} + +body.color-scheme-options-pink-topaz.theme-light *:not(font)>em>strong, +body.color-scheme-options-pink-topaz.theme-light *:not(font)>strong>em, +body.color-scheme-options-pink-topaz.theme-light .cm-strong.cm-em { + background-image: initial; + background-clip: initial; + -webkit-background-clip: initial; + -webkit-text-fill-color: initial; + background-color: initial; +} + +body.color-scheme-options-topaz-nord.all-dark-pdf .print.theme-light, +body.color-scheme-options-topaz-nord.theme-dark { + --background-primary: var(--background-primary-bg-4-bt,#2E3440); + --background-primary-alt: var(--background-primary-alt-bg-4-bt,#2E3440); + --background-secondary: var(--background-secondary-bg-4-bt,#3B4252); + --background-secondary-alt: var(--background-secondary-alt-bg-4-bt,#434C5E); + + --background-black-or-white-1: var(--nord2); + + --text-normal: var(--nord4); + --text-muted: var(--nord5); + --text-faint: var(--nord6); + --accent-h: 210; + --accent-s: 34%; + --accent-l: 63%; + + --text-folder-file: var(--nord4); + + --accent-em: var(--nord14); + + --text-highlight-bg: var(--nord13-1); + --mark-highlight-strong-em: var(--nord13-1); + --text-selection: var(--nord9-2); + + --interactive-accent-rgb: 129, 161, 193; + + --folder-title: var(--nord4); + + --tag-text: var(--nord7); + --tag1: var(--nord7-transparent); + --tag2: var(--nord7-transparent); + --tag3: var(--nord7-transparent); + --tag4: var(--nord7-transparent); + --tag5: var(--nord7-transparent); + + --h1-color: var(--print-h1-color,var(--nord11)); + --h2-color: var(--print-h2-color,var(--nord12)); + --h3-color: var(--print-h3-color,var(--nord13)); + --h4-color: var(--print-h4-color,var(--nord14)); + --h5-color: var(--print-h5-color,var(--nord8)); + --h6-color: var(--print-h6-color,var(--nord15)); + + --background-code: #3B42525c; + --background-blockquote: #3B42525c; + + --text-color-code: var(--nord8); + + --color-view-header-gradient-1: var(--nord0); + --color-view-header-gradient-2: var(--nord0); + + --strong-em-color-1: var(--accent-strong); + --strong-em-color-2: var(--accent-strong); + --strong-em-highlight-color: var(--accent-strong); + + --embed-color: var(--nord1-1); + + --activeline-background: #4C566A1a; + + --list-ul-block-color: var(--nord12); + --list-ul-disc-color: var(--nord12); + --green-1: var(--nord14); + --list-ul-hover: var(--nord13); + --list-ol-block-color: var(--nord9); + --list-ol-number-color: var(--nord9); + --list-ol-hover: var(--nord7); + + --table-thead-background-color: var(--nord9-2); + --table-hover-raw-color: var(--nord9-2); + --table-hover-color: var(--nord9-2); + --table-hover-thead-color: var(--nord9-1); + + --checkbox-color-0: var(--interactive-accent); + + --graph-text-color: var(--nord4); + --graph-tag: var(--nord7); + --graph-attach: var(--nord15); + --graph-circle: var(--nord9); + --graph-line: var(--nord6); + --graph-unresolved: var(--nord11); + --graph-arrow: var(--nord11); + + --text-search-highlight-bg: var(--nord9-1); + --tab-outline-color: var(--nord0); + --divider-color: var(--nord0); +} + +body.color-scheme-options-topaz-nord.theme-dark .titlebar-text { + color: var(--nord4); +} + +body.color-scheme-options-topaz-nord.theme-dark .token.unit { + color: var(--nord10) !important; +} + +body.color-scheme-options-topaz-nord.theme-dark .cm-s-obsidian .cm-hmd-frontmatter.cm-qualifier, +body.color-scheme-options-topaz-nord.theme-dark .cm-s-obsidian .cm-math.cm-qualifier, +body.color-scheme-options-topaz-nord.theme-dark .cm-s-obsidian .cm-qualifier, +body.color-scheme-options-topaz-nord.theme-dark .token.class { + color: var(--nord7) !important; +} + +body.color-scheme-options-topaz-nord.theme-dark .token.number, +body.color-scheme-options-topaz-nord.theme-dark .cm-number { + color: var(--nord15) !important; +} + +body.color-scheme-options-topaz-nord.theme-dark .token.operator, +body.color-scheme-options-topaz-nord.theme-dark .token.entity, +body.color-scheme-options-topaz-nord.theme-dark .token.url, +body.color-scheme-options-topaz-nord.theme-dark .language-css .token.string, +body.color-scheme-options-topaz-nord.theme-dark .style .token.string, +body.color-scheme-options-topaz-nord.theme-dark .cm-string, +body.color-scheme-options-topaz-nord.theme-dark .token.string, +body.color-scheme-options-topaz-nord.theme-dark .token.char, +body.color-scheme-options-topaz-nord.theme-dark .token.attr-value, +body.color-scheme-options-topaz-nord.theme-dark .token.builtin, +body.color-scheme-options-topaz-nord.theme-dark .token.inserted { + color: var(--nord14) !important; +} + +body.color-scheme-options-topaz-nord.theme-dark .token.selector, +body.color-scheme-options-topaz-nord.theme-dark .token.tag, +body.color-scheme-options-topaz-nord.theme-dark .cm-s-obsidian span.cm-variable-3 { + color: var(--nord10) !important; +} + +body.color-scheme-options-topaz-nord.theme-dark .token.regex, +body.color-scheme-options-topaz-nord.theme-dark .token.variable, +body.color-scheme-options-topaz-nord.theme-dark .cm-s-obsidian span.cm-variable-2 { + color: var(--nord12) !important; +} + +body.color-scheme-options-topaz-nord.theme-dark .token.macro.property, +body.color-scheme-options-topaz-nord.theme-dark .markdown-source-view.cm-s-obsidian .cm-hmd-codeblock.cm-property, +body.color-scheme-options-topaz-nord.theme-dark .token.property, +body.color-scheme-options-topaz-nord.theme-dark .token.boolean, +body.color-scheme-options-topaz-nord.theme-dark .token.constant, +body.color-scheme-options-topaz-nord.theme-dark .token.symbol, +body.color-scheme-options-topaz-nord.theme-dark .token.attr-name, +body.color-scheme-options-topaz-nord.theme-dark .token.deleted { + color: var(--nord9) !important; +} + +body.color-scheme-options-topaz-nord.theme-dark .token.function, +body.color-scheme-options-topaz-nord.theme-dark .markdown-source-view.cm-s-obsidian .cm-variable { + color: var(--nord13) !important; +} + +body.color-scheme-options-topaz-nord.theme-dark .token.comment, +body.color-scheme-options-topaz-nord.theme-dark .cm-s-obsidian span.cm-comment { + color: var(--nord3-1) !important; +} + +body.color-scheme-options-topaz-nord.theme-dark .token.atrule, +body.color-scheme-options-topaz-nord.theme-dark .token.keyword { + color: var(--nord13) !important; +} + +body.color-scheme-options-topaz-nord.theme-dark .token.tag, +body.color-scheme-options-topaz-nord.theme-dark .token.constant, +body.color-scheme-options-topaz-nord.theme-dark .token.symbol, +body.color-scheme-options-topaz-nord.theme-dark .token.deleted, +body.color-scheme-options-topaz-nord.theme-dark .cm-tag { + color: var(--nord11) !important; +} + +body.color-scheme-options-topaz-nord.theme-dark .token.color, +body.color-scheme-options-topaz-nord.theme-dark .token.hexcode.color { + color: var(--nord8) !important; +} + +body.color-scheme-options-topaz-nord.theme-dark #calendar-container, +body.style-options-for-calendar-plugin-style-one.color-scheme-options-topaz-nord.theme-dark #calendar-container { + --color-tr: var(--nord0); + --color-calendar-weekends: var(--nord11); +} + +body.color-scheme-options-topaz-nord .theme-light, +body.color-scheme-options-topaz-nord.theme-light { + --accent-h: 210; + --accent-s: 34%; + --accent-l: 63%; + --accent-em: var(--nord14-0); + + --text-selection: var(--nord9-2); + + --interactive-accent-rgb: 129, 161, 193; + + --tag-text: #3a79dd; + --tag1: #005aec21; + --tag2: #005aec21; + --tag3: #005aec21; + --tag4: #005aec21; + --tag5: #005aec21; + --h1-color: var(--print-h1-color,var(--nord11)); + --h2-color: var(--print-h2-color,var(--nord12)); + --h3-color: var(--print-h3-color,var(--nord13-0)); + --h4-color: var(--print-h4-color,var(--nord14-0)); + --h5-color: var(--print-h5-color,var(--nord8-0)); + --h6-color: var(--print-h6-color,var(--nord15)); + + --background-code: var(--nord6-2); + --background-blockquote: var(--nord6-2); + + --text-highlight-bg: var(--nord13-1); + --mark-highlight-strong-em: var(--nord13-1); + + --text-color-code: var(--nord8-0); + + --color-view-header-gradient-1: var(--background-primary-bg-4-bt); + --color-view-header-gradient-2: var(--background-primary-bg-4-bt); + + --strong-em-color-1: var(--accent-strong); + --strong-em-color-2: var(--accent-strong); + --strong-em-highlight-color: var(--accent-strong); + + --embed-color: var(--nord6-2); + + --activeline-background: var(--nord5-1); + + --list-ul-block-color: var(--nord12); + --list-ul-disc-color: var(--nord12); + --green-1: var(--nord14-0); + --list-ul-hover: var(--nord13-0); + --list-ol-block-color: var(--nord9); + --list-ol-number-color: var(--nord9); + --list-ol-hover: var(--nord7); + + --table-thead-background-color: var(--nord9-2); + --table-hover-raw-color: var(--nord9-2); + --table-hover-color: var(--nord9-2); + --table-hover-thead-color: var(--nord9-1); + + --checkbox-color-0: var(--interactive-accent); + + --graph-text-color: var(--nord1); + --graph-tag: var(--nord7); + --graph-attach: var(--nord15); + --graph-circle: var(--nord9); + --graph-line: var(--nord3-1); + --graph-unresolved: var(--nord11); + --graph-arrow: var(--nord11); + + --text-search-highlight-bg: var(--nord9-2); +} + +/*@Lavi & @嘴 的Flamingo主题色(原Pink Topaz)*/ +body.color-scheme-options-flamingo .theme-light, +body.color-scheme-options-flamingo.theme-light { + --background-primary: var(--background-primary-bg-4-bt,#efe9d9); + --background-primary-alt: var(--background-primary-alt-bg-4-bt,#ffdece); + --background-secondary: var(--background-secondary-bg-4-bt,#efe9d9); + --background-secondary-alt: var(--background-secondary-alt-bg-4-bt,#efe9d9); + + --background-4-sliding-panel: #efe9d9; + --background-mobile-drawer-1: #efe9d9; + --background-mobile-drawer-2: #efe9d9; + --graph-control-bg: #efe9d9; + + --background-modifier-border: rgba(0, 0, 0, 0.1); + --background-modifier-form-field: #ffdece; + --background-modifier-form-field-highlighted: #f5a7a2; + --background-modifier-box-shadow: rgba(0, 0, 0, 0.1); + --background-modifier-success: #ffdece; + --background-modifier-error: #f5a7a2; + --background-modifier-error-rgb: 230, 135, 135; + --background-modifier-error-hover: #fefcf9; + + --text-normal: #37291a; + --text-muted: #37291a; + --text-faint: #37291a; + --accent-strong: #37291a; + --text-error: #f5a7a2; + --text-error-hover: #fefcf9; + + --text-highlight-bg-h: 4; + --text-highlight-bg-s: 81%; + --text-highlight-bg-l: 80%; + --text-highlight-bg-a: 0.847; + --text-highlight-bg: hsla(var(--text-highlight-bg-h), var(--text-highlight-bg-s), var(--text-highlight-bg-l), var(--text-highlight-bg-a)); + --text-selection: #f39ba044; + + --interactive-accent-rgb: 245,167,162; + --accent-h: 4; + --accent-s: 81%; + --accent-l: 80%; + --panel-border-color: #fd355a; + --search-text: #37291a; + --folder-title: #37291a; + + --gray-1: #c4c4c4; + --gray-2: #7c8595; + --red: #fd355a; + --red-1: #980000; + --green: #40916c; + --darkgreen: #004f2d; + --blue: #69a2ee; + --darkblue: #5981f0; + --purple: #8673b4; + --aqua: #4dd8ef; + --yellow: #ffc727; + --light-yellow: #e5e79c; + --orange: #f19c79; + --light-purple: #d3d6fe; + --blue-green: #16bcc0; + + --search-result-file-title-color: #980000; + + --list-ul-block-color: #f5a7a2; + --list-ul-disc-color: #fd355a; + --list-ul-hover: #980000; + --list-ol-block-color: #f5a7a2; + --list-ol-number-color: #f5a7a2; + --list-ol-hover: #980000; + --stag1: #fd355a; + --stag2: #fd355a; + --stag3: #fd355a; + --tag1: #56cfc7c7; + --tag2: #eca1bcda; + --tag3: #e6d00d; + --tag4: #40916c; + --tag5: #68c7a4; + + --h1-color: var(--print-h1-color,#f39ba0); + --h2-color: var(--print-h2-color,#f39ba0); + --h3-color: var(--print-h3-color,#f39ba0); + --h4-color: var(--print-h4-color,#f39ba0); + --h5-color: var(--print-h5-color,#f39ba0); + --h6-color: var(--print-h6-color,#f39ba0); + + --graph-text-color: #37291a; + --graph-tag: #ffdece; + --graph-attach: #f5a7a2; + --graph-circle: #FD355C; + --graph-line: #fea2c2; + --graph-unresolved: #E87659; + --graph-arrow: #980000; + --mermaid-active-task-color: #f5a7a2; + --mermaid-seq-dia-color: #ffdece; + --table-background-color: #ffdece; + --table-background-color-odd: #ffdece; + --table-border-color: #fd355a; + --table-thead-background-color: #f5a7a2; + --table-hover-color: #f5a7a2; + --table-hover-thead-color: #f5a7a2; + --table-hover-raw-color: #ffdece; + --calendar-week-color: #f5a7a2; + --calendar-week-hover: #ffdece; + --calendar-week-background-color: #ffdece; + --day-planner-pie: #f5a7a2; + --day-planner-timeline: #ffdece; + --day-planner-line: #fd355a; + --day-planner-dot: #ffdece; + --day-planner-item-hover: #f5a7a2; + --event-item-color1: #f39ba063; + --event-item-color2: #f39ba091; + --event-item-color3: #f39ba0c4; + --event-item-color4: #f39ba0; + --event-item-color5: #D08489; + --event-item-color6: #B27175; + --event-item-color7: #D08489; + --event-item-color8: #f39ba0; + --event-item-color9: #f39ba0c4; + --event-item-color10: #f39ba091; + + --note-important: #fd355a; + --note-cloze: #fd355a; + --stickies-color-1: #e46969; + --stickies-color-2: #f5a7a2; + --tape-color: #acacac65; + --header-color: #f5a7a2; + + --color-view-header-gradient-1: #efe9d933; + --color-view-header-gradient-2: #efe9d933; + + --table-color-calendar-2: rgb(214, 118, 146); + --table-color-rgb: 214, 118, 146; + --scrollbar-thumb-bg: #f39ba050; + --scrollbar-active-thumb-bg: #f39ba0; +} + +body.color-scheme-options-flamingo.all-dark-pdf .print.theme-light, +body.color-scheme-options-flamingo.theme-dark { + --background-primary: var(--background-primary-bg-4-bt,#212121); + --background-primary-alt: var(--background-primary-alt-bg-4-bt,#f937590d); + --background-secondary: var(--background-secondary-bg-4-bt,#242424); + --background-secondary-alt: var(--background-secondary-alt-bg-4-bt,#191919); + + --background-modifier-border: #191919; + --background-modifier-form-field: #f39ba0; + --background-modifier-form-field-highlighted: #e5c7a9; + --background-modifier-box-shadow: #292929; + --background-modifier-success: #f93759; + --background-modifier-error: #f93759; + --background-modifier-error-rgb: #f93759; + --background-modifier-error-hover: #F93758; + + --text-normal: #efe9d9; + --text-muted: #efe9d9; + --text-faint: #efe9d9; + --accent-strong: #efe9d9; + --text-em-color: #f93759; + --text-error: #f93759; + --text-error-hover: #f93759; + + --text-highlight-bg-h: 357; + --text-highlight-bg-s: 79%; + --text-highlight-bg-l: 78%; + --text-highlight-bg-a: 0.847; + --text-highlight-bg: hsla(var(--text-highlight-bg-h), var(--text-highlight-bg-s), var(--text-highlight-bg-l), var(--text-highlight-bg-a)); + --text-selection: #e5c7a94a; + + --accent-h: 357; + --accent-s: 79%; + --accent-l: 78%; + --interactive-accent-rgb: 243, 155, 160; + + --panel-border-color: #f93759; + --search-text: #fff; + --folder-title: #fff; + + --gray-1: #c9b0b0; + --gray-2: #b4b1c6; + --red: #ff9090; + --red-1: #f93759; + --orange: #f28d61; + --green: #00ffc7; + --darkgreen: #1bbc9b; + --aqua: #30daff; + --purple: #b073ff; + --blue: #00a3b9; + --darkblue: #0040ff; + --yellow: #fcdc00; + --light-yellow: #ffd26c; + + --search-result-file-title-color: #f39ba0; + --background-blockquote-dark: #292929; + --list-ul-block-color: #f39ba0; + --list-ul-disc-color: #f93759; + --list-ul-hover: #ffebec; + --list-ol-block-color: #f39ba0; + --list-ol-number-color: #ffccbc; + --list-ol-hover: #ffebec; + --stag1: #f39ba0; + --stag2: #ffccbc; + --stag3: #ffebec; + --tag1: #028588; + --tag2: #40916c; + --tag3: #69a2ee; + --tag4: #c47a5e; + --tag5: #004f2d; + + --h1-color: var(--print-h1-color,#ffccbc); + --h2-color: var(--print-h2-color,#ffccbc); + --h3-color: var(--print-h3-color,#ffccbc); + --h4-color: var(--print-h4-color,#ffccbc); + --h5-color: var(--print-h5-color,#ffccbc); + --h6-color: var(--print-h6-color,#ffccbc); + + --graph-text-color: #efe9d9; + --graph-tag: #f39ba0; + --graph-attach: #ffebec; + --graph-circle: #f39ba0; + --graph-line: #ffc3bc; + --graph-unresolved: #ffccbc; + --graph-arrow: #ffc3bc; + --mermaid-active-task-color: #F39BA4; + --mermaid-seq-dia-color: #ffebec; + --table-background-color: #212121; + --table-background-color-odd: transparent; + --table-border-color: #ffebec; + --table-thead-background-color: #f39ba0ad; + --table-hover-raw-color: #292929; + --table-hover-color: #ffccbc0a; + --table-hover-thead-color: #f39ba0; + --calendar-week-color: #ffccbc; + --calendar-week-hover: #f39ba0; + --calendar-week-background-color: transparent; + --day-planner-pie: #ffccbc; + --day-planner-timeline: #ff9b7c; + --day-planner-line: #f39ba0; + --day-planner-dot: #ffebec; + --day-planner-item-hover: #f39ba0; + --event-item-color9: #ffc3bc; + --event-item-color8: #ffbcbc; + --event-item-color10: #ffccbc; + --event-item-color7: #ffbcc4; + --event-item-color6: #ffbcbc; + --event-item-color5: #ffc3bc; + --event-item-color4: #ffccbc; + --event-item-color3: #ffd4bc; + --event-item-color2: #ffdcbc; + --event-item-color1: #ffe4bc; + + --note-important: #f93759; + --note-cloze: #f93759; + --stickies-color-1: #f39ba0; + --stickies-color-2: #ffebec; + --tape-color: #ffccbc47; + --header-color: #f39ba0; + + --color-view-header-gradient-1: #21212122; + --color-view-header-gradient-2: #21212122; + + --table-color-calendar-2: rgb(215, 86, 125); + --table-color-rgb: 215, 86, 125; + --scrollbar-thumb-bg: #e2bdbd50; + --scrollbar-active-thumb-bg: #e2bdbd; +} + +body.color-scheme-options-flamingo.theme-light #calendar-container { + --color-background-heading: transparent; + --color-background-weeknum: transparent; + --color-background-day: transparent; + --color-background-weekend: transparent; + + --color-tr: #ffdece8c !important; + --color-tr-odd: #ffdece !important; + + --color-dot: var(--text-accent); + --color-arrow: currentColor; + --color-button: var(--text-muted); + --color-text-weeknum: var(--calendar-week-color); + + --color-text-title: var(--text-normal); + --color-text-heading: var(--text-normal); + --color-text-day: var(--text-normal); + --color-text-today: var(--text-accent); + + padding: 0px 5px 0px 8px; + margin: -21px -8px 0px -8px; + line-height: 0.6; +} + +/*表格调整*/ +/*星期*/ +body.color-scheme-options-flamingo.theme-light #calendar-container th { + padding: 6px 0; + border-radius: 0px !important; + background-color: var(--table-thead-background-color) !important; +} + +body.color-scheme-options-flamingo.theme-light #calendar-container .week-num, +body.color-scheme-options-flamingo.theme-light #calendar-container .day { + border-radius: 0px !important; +} + +/*天*/ +body.color-scheme-options-flamingo.theme-light #calendar-container td { + width: 12.5%; + border-right: 0px solid var(--background-secondary-alt); + padding: 0px 0px 0px 0px !important; + line-height: 22px; + border-radius: 0px !important; +} + +body.color-scheme-options-flamingo.theme-light #calendar-container tr { + border: 2px solid var(--background-secondary-alt); +} + +/*“Today”*/ +body.color-scheme-options-flamingo.theme-light #calendar-container .reset-button { + font-size: 14px !important; + margin: 0; + padding: 0; + cursor: pointer; + line-height: 1.2; + text-align: center; +} + +/*悬停Today*/ +body.color-scheme-options-flamingo.theme-light #calendar-container .reset-button:hover { + color: var(--header-color); + background-color: var(--table-hover-raw-color); +} + +/*悬停arrow*/ +body.color-scheme-options-flamingo.theme-light #calendar-container .arrow:hover { + color: var(--theme-color); +} + +body.color-scheme-options-flamingo.theme-light #calendar-container .day:active, +body.color-scheme-options-flamingo.theme-light #calendar-container .active, +body.color-scheme-options-flamingo.theme-light #calendar-container .active.today { + background-color: #f5a7a2 !important; +} + +/*点调整 dot*/ +body.color-scheme-options-flamingo.theme-light #calendar-container .dot-container { + margin-top: -2px; + margin-bottom: -1px; +} + +/*月份调整 month*/ +body.color-scheme-options-flamingo.theme-light #calendar-container .month { + font-size: 20px; + line-height: 1; +} + +/*年份调整 year*/ +body.color-scheme-options-flamingo.theme-light #calendar-container .year { + font-size: 20px; + line-height: 1; +} + +/*星期数 week*/ +body.color-scheme-options-flamingo.theme-light #calendar-container .week-num { + background-color: var(--calendar-week-background-color); + font-weight: 600; +} + +/*星期数悬停 week hover*/ +body.color-scheme-options-flamingo.theme-light #calendar-container .week-num:hover { + background-color: var(--calendar-week-hover) !important; +} + +/*比上面那个还菜鸟的人做的一些修改*/ +body.color-scheme-options-flamingo.theme-light .nav-folder.mod-root>.nav-folder-title { + background-color: var(--background-secondary-alt-bg-4-bt) +} + +body.color-scheme-options-flamingo.theme-light .admonition { + background-color: #ffebec15 !important; +} + +body.color-scheme-options-flamingo.theme-light { + --font-family-vault: Arlrdbd, 'Source Han Sans', 'Noto Sans CJK', 'Source Sans Pro' !important; /*左侧库名字体*/ + --font-family-folder-file-title: Arlrdbd, 'Source Han Sans', 'Noto Sans CJK', 'Source Sans Pro' !important;/*左侧边栏文件、文件夹字体*/ +} + +body.color-scheme-options-flamingo.theme-light .tag[href^="#DailyNote"] { + background-color: var(--tag1); + font-weight: 600; + font-family: var(--font-family-special-tag) !important; +} + +body.color-scheme-options-flamingo.theme-light .tag[href^="#DailyNote"]::after { + content: '❀'; + font-size: var(--font-size-emoji-after-tag); +} + +body.color-scheme-options-flamingo.theme-light .search-result-file-match { + background: transparent; +} + +/*@Lavi & @嘴 的Flamingo主题色(原Pink Topaz)到此结束 */ + +/*=================== Lillian 的配色 ========================*/ +/*蜂蜜牛奶配色 by Lillian */ +body.color-scheme-options-honey-milk-topaz .theme-light, +body.color-scheme-options-honey-milk-topaz.theme-light { + /*色系设置*/ + --color1: #ffde89; + --color2: #ffd876; + --color3: #ffd362; + --color4: #ffcd4e; + --color5: #ffc83b; + --color6: #ffc227; + --color7: #ffbd14; + --color8: #ffb700; + --color9: #ebae14; + --color10: #d8a627; + --color11: #c49d3b; + + --main-color: #f1b024; + --low-color: var(--color3); + --high-color: var(--color8); + --deep-color: var(--color11); + + --bg-color: #f8f8f5; + --bg-color2: #f0ede0; + + --background-primary: var(--background-primary-bg-4-bt,#f8f8f5); + --background-primary-alt: var(--background-primary-alt-bg-4-bt,#f0ede0); + --background-secondary: var(--background-secondary-bg-4-bt,#f8f8f5); + --background-secondary-alt: var(--background-secondary-alt-bg-4-bt,#f0ede0); + + --background-modifier-border: #e1dfdf; + + --accent-em: #099d4e; + + --text-selection: #66bbaa59; + --accent-h: 41; + --accent-s: 88%; + --accent-l: 54%; + --interactive-accent-rgb: 215, 178, 88; + + --search-text: #000000; + --folder-title: #000000; + + --strong-em-highlight-color: var(--color11); + + --text-highlight-bg-h: 34; + --text-highlight-bg-s: 100%; + --text-highlight-bg-l: 80%; + --text-highlight-bg-a: 0.847; + --text-highlight-bg: hsla(var(--text-highlight-bg-h), var(--text-highlight-bg-s), var(--text-highlight-bg-l), var(--text-highlight-bg-a)); + --text-search-highlight-bg: var(--color2); + --search-result-file-matched-bg: var(--low-color); + + --background-mobile-drawer-1: var(--bg-color); + --background-mobile-drawer-2: var(--bg-color); + --background-secondary-alt-bg-4-bt-publish: #f6f6f6; + + --search-result-file-title-color: var(--main-color); + + --list-ul-block-color: var(--color6); + --list-ul-disc-color: var(--main-color); + --green-1: #3dc730; + --list-ul-hover: var(--low-color); + --list-ol-block-color: var(--main-color); + --list-ol-number-color: var(--main-color); + --list-ol-hover: var(--low-color); + + --h1-color: var(--print-h1-color,var(--color6)); + --h2-color: var(--print-h2-color,var(--color7)); + --h3-color: var(--print-h3-color,var(--color8)); + --h4-color: var(--print-h4-color,var(--color9)); + --h5-color: var(--print-h5-color,var(--color10)); + --h6-color: var(--print-h6-color,var(--color11)); + + /*graph*/ + --graph-text-color: #696969; + --graph-tag: #77d425cc; + --graph-attach: #afcfe0cc; + --graph-circle: var(--color3); + --graph-line: #b1b1b1; + --graph-unresolved: #db4e4ecc; + --graph-arrow: #e25300; + --graph-control-bg: var(--bg-color); + + /*mermaid*/ + --mermaid-active-task-color: var(--high-color); + --mermaid-seq-dia-color: var(--low-color); + + /*table*/ + --table-background-color: var(--bg-color2); + --table-background-color-odd: #ffffffaf; + --table-border-color: #7d7d7d; + --table-thead-background-color: var(--color1); + --table-hover-raw-color: var(--color2); + --table-hover-color: var(--color1); + --table-hover-thead-color: var(--color2); + + /*calendar*/ + --calendar-week-color: var(--high-color); + --calendar-week-hover: var(--color1); + --calendar-week-background-color: var(--bg-color); + --calendar-today-background-color: var(--color1); + + /*day planner*/ + --day-planner-pie: var(--deep-color); + --day-planner-timeline: #d62f2f; + --day-planner-line: var(--low-color); + --day-planner-dot: var(--low-color); + --day-planner-item-hover: var(--color1); + --event-item-color1: var(--color2); + --event-item-color2: var(--color3); + --event-item-color3: var(--color4); + --event-item-color4: var(--color5); + --event-item-color5: var(--color6); + --event-item-color6: var(--color7); + --event-item-color7: var(--color8); + --event-item-color8: var(--color9); + --event-item-color9: var(--color10); + --event-item-color10: var(--color11); + + /*Sliding panes*/ + --sliding-panes-header-color: var(--deep-color); + --background-4-sliding-pane: var(--bg-color); + + + + /*checklist*/ + --checklist-bg: #dfdfdf8e; + --checklist-bg-hover: #ffffffcc; + + --color-view-header-gradient-1: var(--color1); + --color-view-header-gradient-2: var(--bg-color); + + /*checkbox*/ + --checkbox-color-0: var(--main-color); + --checkbox-color-1: #c4c116; + --checkbox-color-2: #4bbf40; + --checkbox-color-3: #ffe9e9; + --checkbox-color-4: #fffbd4; + --checkbox-color-5: #ad7fbf; + --checkbox-color-6: #5f5f5f; + --text-checked-checkbox: #9b9b9b; + + --table-color-calendar-2: rgb(242, 235, 207); + --table-color-rgb: 242, 235, 207; +} + +body.color-scheme-options-honey-milk-topaz.all-dark-pdf .print.theme-light, +body.color-scheme-options-honey-milk-topaz.theme-dark { + /*蜂蜜牛奶 #f1b024*/ + + --color1: #ffde89; + --color2: #ffd876; + --color3: #ffd362; + --color4: #ffcd4e; + --color5: #ffc83b; + --color6: #ffc227; + --color7: #ffbd14; + --color8: #ffb700; + --color9: #ebae14; + --color10: #d8a627; + --color11: #a17f28; + + --main-color: #f1b024; + --low-color: var(--color3); + --high-color: var(--color8); + --deep-color: var(--color11); + + --bg-color: #222222; + --bg-color2: #333333; + + --background-primary: var(--background-primary-bg-4-bt,#222222); + --background-primary-alt: var(--background-primary-alt-bg-4-bt,#222222); + --background-secondary: var(--background-secondary-bg-4-bt,#333333); + --background-secondary-alt: var(--background-secondary-alt-bg-4-bt,#222222); + + --background-modifier-border: #565656; + + --text-selection: #47a5914d;/*鼠标选择 文字背景颜色*/ + --accent-h: 43; + --accent-s: 69%; + --accent-l: 50%; + --interactive-accent-rgb: 216, 166, 39;/*主题强调色 rgb , 需与主题色一致(把上面的值转成rgb放下面)*/ + + --panel-border-color: #18191e;/*侧边栏、下部状态栏线条颜色,改了没有,线条被我取消了 :p*/ + --search-text: var(--color1);/*搜索结果文字颜色*/ + --folder-title: #ffffff;/*文件栏文件夹文字颜色*/ + + --strong-em-highlight-color: var(--color11); + --text-search-highlight-bg: #bb4361; + + --strong-em-color-1: #43d3ff;/*加粗斜体渐变色1*/ + --strong-em-color-2: #baaaff;/*加粗斜体渐变色2*/ + --search-result-file-matched-bg: var(--color9);/* 搜索结果文字高亮颜色 */ + + --background-mobile-drawer-1: var(--bg-color); + --background-mobile-drawer-2: var(--bg-color); + + --background-transparent-blue: #003e759a; + + --scrollbar-thumb-bg: #8282827e; + --scrollbar-active-thumb-bg: #828282; + + --search-result-file-title-color: var(--main-color); + + --background-blockquote: #9191911c;/*引用框背景颜色*/ + --background-code: #1111118c;/*代码框背景颜色*/ + --background-code-2: #4c4c4cb0; + --text-color-code: #d58000;/*代码框文字颜色*/ + + --list-ul-block-color: var(--deep-color); + --list-ul-disc-color: var(--main-color); + --green-1: #3dc730; + --list-ul-hover: var(--low-color); + --list-ol-block-color: var(--deep-color); + --list-ol-number-color: var(--main-color); + --list-ol-hover: var(--low-color); + + --h1-color: var(--print-h1-color,var(--color6)); + --h2-color: var(--print-h2-color,var(--color7)); + --h3-color: var(--print-h3-color,var(--color8)); + --h4-color: var(--print-h4-color,var(--color9)); + --h5-color: var(--print-h5-color,var(--color10)); + --h6-color: var(--print-h6-color,var(--color11)); + + /*graph*/ + --graph-text-color: #B5B5B5;/*图谱文字颜色*/ + --graph-tag: #88d842bb;/*图谱线颜色*/ + --graph-attach: #b2cfe0bb;/*图谱附件颜色*/ + --graph-circle: var(--color8);/*图谱普通点颜色*/ + --graph-line: #8c8c8c;/*图谱线颜色*/ + --graph-unresolved: #f08080de;/*图谱未创建点颜色,兼未创建双链颜色*/ + --graph-arrow: #c23917;/*图谱箭头颜色*/ + --graph-control-bg: #00000080;/*图谱控制窗背景颜色*/ + + /*mermaid*/ + --mermaid-active-task-color: var(--low-color); + --mermaid-seq-dia-color: var(--high-color); + + --table-background-color: var(--bg-color2); + --table-background-color-odd: var(--bg-color); + --table-border-color: #878787; + --table-thead-background-color: var(--color11); + --table-hover-raw-color: var(--color10); + --table-hover-color: var(--color11);; + --table-hover-thead-color: var(--color10); + + /*calendar*/ + --calendar-week-color: var(--high-color); + --calendar-week-hover: var(--color1); + --calendar-week-background-color: var(--bg-color); + --calendar-today-background-color: var(--color1); + + /*day planner*/ + --day-planner-pie: var(--color1); + --day-planner-timeline: #000000; + --day-planner-line: var(--low-color); + --day-planner-dot: var(--low-color); + --day-planner-item-hover: var(--main-color); + --event-item-color1: var(--color2); + --event-item-color2: var(--color3); + --event-item-color3: var(--color4); + --event-item-color4: var(--color5); + --event-item-color5: var(--color6); + --event-item-color6: var(--color7); + --event-item-color7: var(--color8); + --event-item-color8: var(--color9); + --event-item-color9: var(--color10); + --event-item-color10: var(--color11); + + /*Sliding panes*/ + --sliding-panes-header-color: var(--color1); + + --color-view-header-gradient-1: var(--bg-color2); + --color-view-header-gradient-2: var(--bg-color); + + /*checkbox*/ + --checkbox-color-0: var(--main-color); + + --table-color-calendar-2: rgb(120, 104, 38); + --table-color-rgb: 120, 104, 38; +} + +body.color-scheme-options-honey-milk-topaz #calendar-container { + --color-background-heading: transparent; + --color-background-weeknum: transparent; + --color-background-day: transparent; + --color-background-weekend: transparent; + + --color-tr: var(--bg-color) !important; + --color-tr-odd: #ffdece !important; + + --color-dot: var(--text-accent); + --color-arrow: currentColor; + --color-button: var(--text-muted); + --color-text-weeknum: var(--calendar-week-color); + + --color-text-title: var(--text-normal); + --color-text-heading: var(--text-normal); + --color-text-day: var(--text-normal); + --color-text-today: var(--text-accent); + + padding: 0px 5px 0px 8px; + margin: -21px -8px 0px -8px; + line-height: 0.6; +} + +/*巧克力色 by Lillian */ +body.color-scheme-options-chocolate-topaz .theme-light, +body.color-scheme-options-chocolate-topaz.theme-light { + --color1: #f8d3a0; + --color2: #d8a86a; + --color3: #c2907a; + --color4: #af7d6b; + --color5: #af694f; + --color6: #74412d; + --color7: #683725; + --color8: #502819; + --color9: #552917; + --color10: #572917; + --color11: #4b1e0e; + + --main-color: var(--color6); + --low-color: var(--color3); + --high-color: var(--color8); + --deep-color: var(--color11); + + --bg-color: #faf4eb; + --bg-color2: #f7e6ce; + + --background-primary: var(--background-primary-bg-4-bt,#faf4eb); + --background-primary-alt: var(--background-primary-alt-bg-4-bt,#faf4eb); + --background-secondary: var(--background-secondary-bg-4-bt,#faf4eb); + --background-secondary-alt: var(--background-secondary-alt-bg-4-bt,#f7e6ce); + + --background-modifier-border: #e1dfdf; + + --accent-em: #099d4e; + --text-selection: #66bbaa59; + + --accent-h: 17; + --accent-s: 44%; + --accent-l: 32%; + --interactive-accent-rgb: 116, 65, 45; + + --strong-em-highlight-color: var(--color11); + + --text-search-highlight-bg: #ffd1dd; + --search-result-file-matched-bg: var(--low-color); + + --background-mobile-drawer-1: var(--bg-color); + --background-mobile-drawer-2: var(--bg-color); + --background-secondary-alt-bg-4-bt-publish: #f6f6f6; + + --search-result-file-title-color: var(--main-color); + --background-blockquote: #b6b6b62c; + --background-code: #ebebeb71; + --background-code-2: #cccccc62; + --text-color-code: #e95d00; + + --list-ul-block-color: var(--color5); + --list-ul-disc-color: var(--main-color); + --green-1: #3dc730; + --list-ul-hover: var(--low-color); + --list-ol-block-color: var(--main-color); + --list-ol-number-color: var(--main-color); + --list-ol-hover: var(--low-color); + + --tag-text: #f8f8f8; + --stag1: #fa8787; + --stag1-bg: #eb2727; + --stag2: #fdbd5c; + --stag2-bg: #ee9002; + --stag3: #50ce3a; + --stag3-bg: #22ac09; + --tag1: var(--color3); + --tag2: var(--color4); + --tag3: var(--color5); + --tag4: var(--color6); + --tag5: var(--color7); + + --tag-dailynote: var(--low-color); + --tag-dailynote-bg: var(--color3); + --tag-weeklynote: var(--color6); + --tag-weeklynote-bg: var(--color4); + --tag-questions: var(--color5); + --tag-questions-bg: var(--color5); + --tag-ideas: #ceb900; + --tag-ideas-bg: #444444d8; + + --h1-color: var(--print-h1-color,var(--color7)); + --h2-color: var(--print-h2-color,var(--color6)); + --h3-color: var(--print-h3-color,var(--color5)); + --h4-color: var(--print-h4-color,var(--color4)); + --h5-color: var(--print-h5-color,var(--color3)); + --h6-color: var(--print-h6-color,var(--color2)); + + /*graph*/ + --graph-text-color: #696969; + --graph-tag: #77d425cc; + --graph-attach: #afcfe0cc; + --graph-circle: var(--color3); + --graph-line: #b1b1b1; + --graph-unresolved: #db4e4ecc; + --graph-arrow: #e25300; + --graph-control-bg: var(--bg-color); + + /*mermaid*/ + --mermaid-active-task-color: var(--high-color); + --mermaid-seq-dia-color: var(--low-color); + + /*table*/ + --table-background-color: var(--bg-color2); + --table-background-color-odd: var(--bg-color); + --table-border-color: #7d7d7d; + --table-thead-background-color: var(--color1); + --table-hover-raw-color: var(--color2); + --table-hover-color: var(--color1); + --table-hover-thead-color: var(--color2); + + /*calendar*/ + --calendar-week-color: var(--high-color); + --calendar-week-hover: var(--color1); + --calendar-week-background-color: var(--bg-color); + --calendar-today-background-color: var(--color1); + + /*day planner*/ + --day-planner-pie: var(--deep-color); + --day-planner-timeline: #d62f2f; + --day-planner-line: var(--low-color); + --day-planner-dot: var(--low-color); + --day-planner-item-hover: var(--color1); + --event-item-color1: var(--color2); + --event-item-color2: var(--color3); + --event-item-color3: var(--color4); + --event-item-color4: var(--color5); + --event-item-color5: var(--color6); + --event-item-color6: var(--color7); + --event-item-color7: var(--color8); + --event-item-color8: var(--color9); + --event-item-color9: var(--color10); + --event-item-color10: var(--color11); + + /*Sliding panes*/ + --sliding-panes-header-color: var(--deep-color); + --background-4-sliding-pane: var(--bg-color); + + --color-view-header-gradient-1: var(--color1); + --color-view-header-gradient-2: var(--bg-color); + + /*checkbox*/ + --checkbox-color-0: var(--main-color); + + --table-color-calendar-2: rgb(76, 52, 16); + --table-color-rgb: 76, 52, 16; +} + +body.color-scheme-options-chocolate-topaz.all-dark-pdf .print.theme-light, +body.color-scheme-options-chocolate-topaz.theme-dark { + /* 焦茶色 焦茶#6f4b3e */ + --color1: #f8d3a0; + --color2: #d8a86a; + --color3: #c2907a; + --color4: #af7d6b; + --color5: #af694f; + --color6: #74412d; + --color7: #683725; + --color8: #502819; + --color9: #552917; + --color10: #572917; + --color11: #4b1e0e; + + --main-color: var(--color6); + --low-color: var(--color3); + --high-color: var(--color7); + --deep-color: var(--color11); + + /*黑暗颜色的背景不建议修改*/ + --bg-color: #222222; + --bg-color2: #222222; + + --background-primary: var(--background-primary-bg-4-bt,#222222); + --background-primary-alt: var(--background-primary-alt-bg-4-bt,#222222); + --background-secondary: var(--background-secondary-bg-4-bt,#222222); + --background-secondary-alt: var(--background-secondary-alt-bg-4-bt,#222222); + + --background-modifier-border: #565656;/*一些线条颜色*/ + + --text-muted: #8a8a8a;/*muted 文字颜色*/ + --text-faint: #797979;/*faint 文字颜色*/ + --text-folder-file: #b3b3b3;/*文件夹、文件 文字颜色*/ + + --accent-em: #a4ca8e;/*斜体 文字颜色*/ + + --text-selection: #47a5914d;/*鼠标选择 文字背景颜色*/ + --accent-h: 17; + --accent-s: 44%; + --accent-l: 32%; + --interactive-accent: var(--main-color); /*主题强调色*/ + --interactive-accent-rgb: 116, 65, 45;/*主题强调色 rgb , 需与主题色一致(把上面的值转成rgb放下面)*/ + + --panel-border-color: #18191e;/*侧边栏、下部状态栏线条颜色,改了没有,线条被我取消了 :p*/ + --search-text: #e0e0e0;/*搜索结果文字颜色*/ + --folder-title: #ffffff;/*文件栏文件夹文字颜色*/ + + --strong-em-highlight-color: var(--color11); + --text-search-highlight-bg: #bb4361; + --strong-em-color-1: #43d3ff;/*加粗斜体渐变色1*/ + --strong-em-color-2: #baaaff;/*加粗斜体渐变色2*/ + --search-result-file-matched-bg: var(--color9);/* 搜索结果文字高亮颜色 */ + + --background-mobile-drawer-1: var(--bg-color); + --background-mobile-drawer-2: var(--bg-color); + + --background-transparent-blue: #003e759a;/*用在kanban里的,可以不调*/ + --scrollbar-thumb-bg: #8282827e; + --scrollbar-active-thumb-bg: #828282; + + --search-result-file-title-color: var(--main-color); + + --background-blockquote: #9191911c;/*引用框背景颜色*/ + --background-code: #1111118c;/*代码框背景颜色*/ + --background-code-2: #4c4c4cb0; + --text-color-code: #d58000;/*代码框文字颜色*/ + + --list-ul-block-color: var(--color6); + --list-ul-disc-color: var(--main-color); + --green-1: #3dc730; + --list-ul-hover: var(--low-color); + --list-ol-block-color: var(--main-color); + --list-ol-number-color: var(--main-color); + --list-ol-hover: var(--low-color); + + --tag-text: #e4e4e4; + --stag1: #f08383; + --stag1-bg: #bd1919; + --stag2: #e7b263; + --stag2-bg: #ac6700; + --stag3: #77df89; + --stag3-bg: #058c1c; + + --tag1: var(--color11); + --tag2: var(--color10); + --tag3: var(--color9); + --tag4: var(--color8); + --tag5: var(--color7); + + --tag-dailynote: var(--mian-color); + --tag-dailynote-bg: var(--color5); + --tag-weeklynote: var(--color3); + --tag-weeklynote-bg: var(--color6); + --tag-questions: var(--color8); + --tag-questions-bg: var(--color8); + --tag-ideas: #fcfcc0; + --tag-ideas-bg: #565656d8; + + --h1-color: var(--print-h1-color,var(--color2)); + --h2-color: var(--print-h2-color,var(--color3)); + --h3-color: var(--print-h3-color,var(--color4)); + --h4-color: var(--print-h4-color,var(--color5)); + --h5-color: var(--print-h5-color,var(--color6)); + --h6-color: var(--print-h6-color,var(--color7)); + + /*graph*/ + --graph-text-color: #B5B5B5; + --graph-tag: #88d842bb; + --graph-attach: #b2cfe0bb; + --graph-circle: var(--color8); + --graph-line: #8c8c8c; + --graph-unresolved: #f08080de; + --graph-arrow: #c23917; + --graph-control-bg: #00000080; + + /*mermaid*/ + --mermaid-active-task-color: var(--low-color); + --mermaid-seq-dia-color: var(--high-color); + + /*table*/ + --table-background-color: var(--bg-color2); + --table-background-color-odd: var(--bg-color); + --table-border-color: #878787; + --table-thead-background-color: var(--color11); + --table-hover-raw-color: var(--color10); + --table-hover-color: var(--color11);; + --table-hover-thead-color: var(--color10); + + /*calendar*/ + --calendar-week-color: var(--high-color); + --calendar-week-hover: var(--color1); + --calendar-week-background-color: var(--bg-color); + --calendar-today-background-color: var(--color1); + + /*day planner*/ + --day-planner-pie: var(--color1); + --day-planner-timeline: #000000; + --day-planner-line: var(--low-color); + --day-planner-dot: var(--low-color); + --day-planner-item-hover: var(--main-color); + --event-item-color1: var(--color2); + --event-item-color2: var(--color3); + --event-item-color3: var(--color4); + --event-item-color4: var(--color5); + --event-item-color5: var(--color6); + --event-item-color6: var(--color7); + --event-item-color7: var(--color8); + --event-item-color8: var(--color9); + --event-item-color9: var(--color10); + --event-item-color10: var(--color11); + + /*Sliding panes*/ + --sliding-panes-header-color: var(--color1); + --background-4-sliding-panel: #252525ed;/* sliding panes 背景颜色 */ + + --color-view-header-gradient-1: var(--bg-color2); + --color-view-header-gradient-2: var(--bg-color); + + /*checkbox*/ + --checkbox-color-0: var(--main-color); + + --table-color-calendar-2: rgb(70, 45, 6); + --table-color-rgb: 70, 45, 6; +} + +body.color-scheme-options-chocolate-topaz #calendar-container { + --color-background-heading: transparent; + --color-background-weeknum: transparent; + --color-background-day: transparent; + --color-background-weekend: transparent; + + --color-tr: var(--bg-color) !important; + --color-tr-odd: #ffdece !important; + + --color-dot: var(--text-accent); + --color-arrow: currentColor; + --color-button: var(--text-muted); + --color-text-weeknum: var(--calendar-week-color); + + --color-text-title: var(--text-normal); + --color-text-heading: var(--text-normal); + --color-text-day: var(--text-normal); + --color-text-today: var(--text-accent); + + /*===*/ + padding: 0px 5px 0px 8px; + margin: -21px -8px 0px -8px; + line-height: 0.6; +} + +body.color-scheme-options-autumn-topaz .theme-light, +body.color-scheme-options-autumn-topaz.theme-light { + /*色系设置*/ + --color1: #ebe1cc; + --color2: #e4ca8f; + --color3: #e6bf66 ; + --color4: #fab102; + --color5: #b6af00; + --color6: #70a600; + --color7: #00992c; + --color8: #00884a; + --color9: #007562; + --color10: #006674; + --color11: #2f4858; + + /*Lillian: 第三步:把上面的色系,粘贴到dark模式下*/ + --main-color: var(--color6); + --low-color: var(--color4); + --high-color: var(--color7); + --deep-color:var(--color11); + + --bg-color:#fafaf3; + --bg-color2:#bbddcd; + + --background-primary: var(--background-primary-bg-4-bt,#fafaf3); + --background-primary-alt: var(--background-primary-alt-bg-4-bt,#fafaf3); + --background-secondary: var(--background-secondary-bg-4-bt,#fafaf3); + --background-secondary-alt: var(--background-secondary-alt-bg-4-bt,#bbddcd); + --accent-h: 80; + --accent-s: 100%; + --accent-l: 33%; + --interactive-accent-rgb: 112, 166, 0; + + --strong-em-highlight-color: var(--color11); + --text-search-highlight-bg: #ffd1dd; + --search-result-file-matched-bg: var(--low-color); + + --background-mobile-drawer-1: var(--bg-color); + --background-mobile-drawer-2: var(--bg-color); + + --search-result-file-title-color: var(--main-color); + + --list-ul-block-color: var(--color5); + --list-ul-disc-color: var(--main-color); + --green-1: #3dc730; + --list-ul-hover: var(--low-color); + --list-ol-block-color: var(--main-color); + --list-ol-number-color: var(--main-color); + --list-ol-hover: var(--low-color); + + --tag1: var(--color3); + --tag2: var(--color4); + --tag3: var(--color5); + --tag4: var(--color6); + --tag5: var(--color7); + + --tag-dailynote: var(--low-color); + --tag-dailynote-bg: var(--color3); + --tag-weeklynote: var(--color6); + --tag-weeklynote-bg: var(--color4); + --tag-questions: var(--color5); + --tag-questions-bg: var(--color5); + + --h1-color: var(--print-h1-color,var(--color9)); + --h2-color: var(--print-h2-color,var(--color8)); + --h3-color: var(--print-h3-color,var(--color7)); + --h4-color: var(--print-h4-color,var(--color6)); + --h5-color: var(--print-h5-color,var(--color5)); + --h6-color: var(--print-h6-color,var(--color4)); + + /*graph*/ + --graph-circle: var(--color3); + --graph-control-bg: var(--bg-color); + + /*mermaid*/ + --mermaid-active-task-color: var(--high-color); + --mermaid-seq-dia-color: var(--low-color); + + /*table*/ + --table-background-color: var(--bg-color2); + --table-background-color-odd: var(--bg-color); + --table-border-color: #7d7d7d; + --table-thead-background-color: var(--color1); + --table-hover-raw-color: var(--color2); + --table-hover-color: var(--color1); + --table-hover-thead-color: var(--color2); + + /*calendar*/ + --calendar-week-color: var(--high-color); + --calendar-week-hover: var(--color1); + --calendar-week-background-color: var(--bg-color); + --calendar-today-background-color: var(--color1); + + /*day planner*/ + --day-planner-pie: var(--deep-color); + --day-planner-timeline: #d62f2f; + --day-planner-line: var(--low-color); + --day-planner-dot: var(--low-color); + --day-planner-item-hover: var(--color1); + --event-item-color1: var(--color2); + --event-item-color2: var(--color3); + --event-item-color3: var(--color4); + --event-item-color4: var(--color5); + --event-item-color5: var(--color6); + --event-item-color6: var(--color7); + --event-item-color7: var(--color8); + --event-item-color8: var(--color9); + --event-item-color9: var(--color10); + --event-item-color10:var(--color11); + + /*Sliding panes*/ + --sliding-panes-header-color: var(--deep-color); + --background-4-sliding-pane: var(--bg-color); + + --color-view-header-gradient-1: #70a60085; + --color-view-header-gradient-2: var(--bg-color); + + /*checkbox*/ + --checkbox-color-0: var(--main-color); + + --table-color-calendar-2: rgb(222, 236, 182); + --table-color-rgb: 222, 236, 182; +} + +body.color-scheme-options-autumn-topaz.all-dark-pdf .print.theme-light, +body.color-scheme-options-autumn-topaz.theme-dark { + /* 黄绿*/ + --color1: #ebe1cc; + --color2: #e4ca8f; + --color3: #e6bf66 ; + --color4: #fab102; + --color5: #b6af00; + --color6: #70a600; + --color7: #00992c; + --color8: #00884a; + --color9: #007562; + --color10: #006674; + --color11: #2f4858; + + --main-color: var(--color6); + --low-color: var(--color3); + --high-color: var(--color7); + --deep-color:var(--color11); + + --bg-color:#222222; + --bg-color2:#444444; + + --background-primary: var(--background-primary-bg-4-bt,#222222); + --background-primary-alt: var(--background-primary-alt-bg-4-bt,#222222); + --background-secondary: var(--background-secondary-bg-4-bt,#222222); + --background-secondary-alt: var(--background-secondary-alt-bg-4-bt,#444444); + + --text-muted: #8a8a8a; /*muted 文字颜色*/ + --text-faint: #797979; /*faint 文字颜色*/ + --text-folder-file: #b3b3b3; /*文件夹、文件 文字颜色*/ + --accent-strong: #f7f7f7; /*加粗 文字颜色*/ + --accent-em: #a4ca8e; /*斜体 文字颜色*/ + + --text-selection: #47a5914d; /*鼠标选择 文字背景颜色*/ + + --interactive-accent: var(--main-color); /*主题强调色*/ + --interactive-accent-rgb: 104, 56, 39; /*主题强调色 rgb , 需与主题色一致(把上面的值转成rgb放下面)*/ + + --strong-em-highlight-color: var(--color11); + + --search-result-file-matched-bg: var(--color9); /* 搜索结果文字高亮颜色 */ + + --background-mobile-drawer-1: var(--bg-color); + --background-mobile-drawer-2: var(--bg-color); + + --search-result-file-title-color: var(--main-color); + + --list-ul-block-color: var(--color6); + --list-ul-disc-color: var(--main-color); + --green-1: #3dc730; + --list-ul-hover: var(--low-color); + --list-ol-block-color: var(--main-color); + --list-ol-number-color: var(--main-color); + --list-ol-hover: var(--low-color); + + --tag1: var(--color11); + --tag2: var(--color10); + --tag3: var(--color9); + --tag4: var(--color8); + --tag5: var(--color7); + --tag-dailynote: var(--mian-color); + --tag-dailynote-bg: var(--color5); + --tag-weeklynote: var(--color3); + --tag-weeklynote-bg: var(--color6); + --tag-questions: var(--color8); + --tag-questions-bg: var(--color8); + --tag-ideas: #fcfcc0; + --tag-ideas-bg: #565656d8; + + --h1-color: var(--print-h1-color,var(--color4)); + --h2-color: var(--print-h2-color,var(--color5)); + --h3-color: var(--print-h3-color,var(--color6)); + --h4-color: var(--print-h4-color,var(--color7)); + --h5-color: var(--print-h5-color,var(--color8)); + --h6-color: var(--print-h6-color,var(--color9)); + + --graph-text-color: #B5B5B5; /*图谱文字颜色*/ + --graph-tag: #88d842bb; /*图谱线颜色*/ + --graph-attach: #b2cfe0bb; /*图谱附件颜色*/ + --graph-circle: var(--color8); /*图谱普通点颜色*/ + --graph-line: #8c8c8c; /*图谱线颜色*/ + --graph-unresolved: #f08080de; /*图谱未创建点颜色,兼未创建双链颜色*/ + --graph-arrow: #c23917; /*图谱箭头颜色*/ + --graph-control-bg: #00000080; /*图谱控制窗背景颜色*/ + + /*mermaid*/ + --mermaid-active-task-color: var(--low-color); + --mermaid-seq-dia-color: var(--high-color); + + /*table*/ + --table-background-color: var(--bg-color2); + --table-background-color-odd: var(--bg-color); + --table-border-color: #878787; + --table-thead-background-color: var(--color11); + --table-hover-raw-color: var(--color10); + --table-hover-color: var(--color11);; + --table-hover-thead-color: var(--color10); + + /*calendar*/ + --calendar-week-color: var(--high-color); + --calendar-week-hover: var(--color1); + --calendar-week-background-color: var(--bg-color); + --calendar-today-background-color: var(--color1); + + /*day planner*/ + --day-planner-pie: var(--color1); + --day-planner-timeline: #000000; + --day-planner-line: var(--low-color); + --day-planner-dot: var(--low-color); + --day-planner-item-hover: var(--main-color); + --event-item-color1: var(--color2); + --event-item-color2: var(--color3); + --event-item-color3: var(--color4); + --event-item-color4: var(--color5); + --event-item-color5: var(--color6); + --event-item-color6: var(--color7); + --event-item-color7: var(--color8); + --event-item-color8: var(--color9); + --event-item-color9: var(--color10); + --event-item-color10:var(--color11); + + /*Sliding panes*/ + --sliding-panes-header-color: var(--color1); + + --checklist-bg-hover: #08080896; + + --color-view-header-gradient-1: var(--bg-color2); + --color-view-header-gradient-2: var(--bg-color); + + /*checkbox*/ + --checkbox-color-0: var(--main-color); + + --table-color-calendar-2: rgb(81, 165, 39); + --table-color-rgb: 81, 165, 39; +} + +body.color-scheme-options-autumn-topaz #calendar-container { + --color-background-heading: transparent; + --color-background-weeknum: transparent; + --color-background-day: transparent; + --color-background-weekend: transparent; + + --color-tr: var(--bg-color) !important; + --color-tr-odd: #ffdece !important; + + --color-dot: var(--text-accent); + --color-arrow: currentColor; + --color-button: var(--text-muted); + --color-text-weeknum: var(--calendar-week-color); + + --color-text-title: var(--text-normal); + --color-text-heading: var(--text-normal); + --color-text-day: var(--text-normal); + --color-text-today: var(--text-accent); + + padding: 0px 5px 0px 8px; + margin: -21px -8px 0px -8px; + line-height: 0.6; +} + +body.color-scheme-options-lillimon-topaz .theme-light, +body.color-scheme-options-lillimon-topaz.theme-light { + /*魔方浅色*/ + /*色系设置*/ + --magic-low-color: #e0e79a; + --magic-main-color: var(--theme-color); + --magic-deep-color: #746909; + --accent-h: 66; + --accent-s: 96%; + --accent-l: 33%; + --bg-color: #f8f8f5; + --bg-color2: #e7e7e4; + + /*色系共 5 个值,3个主题色+2个背景色*/ + --color1: var(--magic-low-color); + --color2: var(--magic-low-color); + --color3: var(--magic-low-color); + --color4: var(--magic-low-color); + --color5: var(--magic-main-color); + --color6: var(--magic-main-color); + --color7: var(--magic-main-color); + --color8: var(--magic-main-color); + --color9: var(--magic-deep-color); + --color10: var(--magic-deep-color); + --color11: var(--magic-deep-color); + + --high-color: var(--color8); + + /*色系设置结束*/ + --background-primary: var(--background-primary-bg-4-bt,#f8f8f5); + --background-primary-alt: var(--background-primary-alt-bg-4-bt,#f8f8f5); + --background-secondary: var(--background-secondary-bg-4-bt,#f8f8f5); + --background-secondary-alt: var(--background-secondary-alt-bg-4-bt,#e7e7e4); + + --text-normal:var(--magic-main-color); + --interactive-accent-rgb: 215, 178, 88; + + --strong-em-highlight-color: var(--color11); + + --search-result-file-matched-bg: var(--magic-low-color); + + --background-mobile-drawer-1: var(--bg-color); + --background-mobile-drawer-2: var(--bg-color); + + --search-result-file-title-color: var(--magic-main-color); + + --list-ul-block-color: var(--color5); + --list-ul-disc-color: var(--magic-main-color); + --green-1: #3dc730; + --list-ul-hover: var(--magic-low-color); + --list-ol-block-color: var(--magic-main-color); + --list-ol-number-color: var(--magic-main-color); + --list-ol-hover: var(--magic-low-color); + + --tag-dailynote: var(--magic-low-color); + --tag-dailynote-bg: var(--color10); + --tag-weeklynote: var(--color6); + --tag-weeklynote-bg: var(--color10); + --tag-questions: var(--color5); + --tag-questions-bg: var(--color5); + --tag-ideas: #ceb900; + --tag-ideas-bg: #444444d8; + + --tag1: var(--color3); + --tag2: var(--color4); + --tag3: var(--color5); + --tag4: var(--color6); + --tag5: var(--color7); + + --h1-color: var(--print-h1-color,var(--color9)); + --h2-color: var(--print-h2-color,var(--color8)); + --h3-color: var(--print-h3-color,var(--color7)); + --h4-color: var(--print-h4-color,var(--color6)); + --h5-color: var(--print-h5-color,var(--color5)); + --h6-color: var(--print-h6-color,var(--color4)); + + /*graph*/ + --graph-circle: var(--color3); + --graph-control-bg: var(--bg-color); + + /*mermaid*/ + --mermaid-active-task-color: var(--high-color); + --mermaid-seq-dia-color: var(--magic-low-color); + + /*table*/ + --table-background-color: var(--bg-color2); + --table-background-color-odd: var(--bg-color); + --table-border-color: #7d7d7d; + --table-thead-background-color: var(--color1); + --table-hover-raw-color: var(--color2); + --table-hover-color: var(--color1); + --table-hover-thead-color: var(--color2); + + /*calendar*/ + --calendar-week-color: var(--high-color); + --calendar-week-hover: var(--color1); + --calendar-week-background-color: var(--bg-color); + --calendar-today-background-color: var(--color1); + + /*day planner*/ + --day-planner-pie: var(--magic-deep-color); + --day-planner-timeline: #d62f2f; + --day-planner-line: var(--magic-low-color); + --day-planner-dot: var(--magic-low-color); + --day-planner-item-hover: var(--color1); + --event-item-color1: var(--color2); + --event-item-color2: var(--color3); + --event-item-color3: var(--color4); + --event-item-color4: var(--color5); + --event-item-color5: var(--color6); + --event-item-color6: var(--color7); + --event-item-color7: var(--color8); + --event-item-color8: var(--color9); + --event-item-color9: var(--color10); + --event-item-color10: var(--color11); + + /*Sliding panes*/ + --sliding-panes-header-color: var(--magic-deep-color); + --background-4-sliding-pane: var(--bg-color); + + --color-view-header-gradient-1: var(--color1); + --color-view-header-gradient-2: var(--bg-color); + + /*checkbox*/ + --checkbox-color-0: var(--magic-main-color); +} + +body.color-scheme-options-lillimon-topaz.all-dark-pdf .print.theme-light, +body.color-scheme-options-lillimon-topaz.theme-dark { + /*魔方深色*/ + /*魔方*/ + --magic-low-color: #e0e79a; + --magic-main-color: #95a503; + --magic-deep-color: #746909; + --accent-h: 66; + --accent-s: 96%; + --accent-l: 33%; + --bg-color: #222222; + --bg-color2: #333333; + + --color1: var(--magic-low-color); + --color2: var(--magic-low-color); + --color3: var(--magic-low-color); + --color4: var(--magic-low-color); + --color5: var(--magic-main-color); + --color6: var(--magic-main-color); + --color7: var(--magic-main-color); + --color8: var(--magic-main-color); + --color9: var(--magic-deep-color); + --color10: var(--magic-deep-color); + --color11: var(--magic-deep-color); + --high-color: var(--color8); + /*主题色设置结束**/ + + --background-primary: var(--background-primary-bg-4-bt,#222222); + --background-primary-alt: var(--background-primary-alt-bg-4-bt,#222222); + --background-secondary: var(--background-secondary-bg-4-bt,#222222); + --background-secondary-alt: var(--background-secondary-alt-bg-4-bt,#333333); + + --interactive-accent-rgb: 58, 91, 82; + + --strong-em-highlight-color: var(--color11); + + --search-result-file-matched-bg: var(--high-color); + /* 搜索结果文字高亮颜色 */ + + --background-mobile-drawer-1: var(--bg-color); + --background-mobile-drawer-2: var(--bg-color); + + --search-result-file-title-color: var(--magic-main-color); + + --list-ul-block-color: var(--color6); + --list-ul-disc-color: var(--magic-main-color); + --green-1: #3dc730; + --list-ul-hover: var(--magic-low-color); + --list-ol-block-color: var(--magic-main-color); + --list-ol-number-color: var(--magic-main-color); + --list-ol-hover: var(--magic-low-color); + + --tag1: var(--color11); + --tag2: var(--color10); + --tag3: var(--color9); + --tag4: var(--color8); + --tag5: var(--color7); + + --tag-dailynote: var(--mian-color); + --tag-dailynote-bg: var(--color5); + --tag-weeklynote: var(--color3); + --tag-weeklynote-bg: var(--color6); + --tag-questions: var(--color8); + --tag-questions-bg: var(--color8); + --tag-ideas: #fcfcc0; + --tag-ideas-bg: #565656d8; + + --h1-color: var(--print-h1-color,var(--color4)); + --h2-color: var(--print-h2-color,var(--color5)); + --h3-color: var(--print-h3-color,var(--color6)); + --h4-color: var(--print-h4-color,var(--color7)); + --h5-color: var(--print-h5-color,var(--color8)); + --h6-color: var(--print-h6-color,var(--color9)); + + --graph-circle: var(--color8); + /*图谱普通点颜色*/ + + /*mermaid*/ + --mermaid-active-task-color: var(--magic-low-color); + --mermaid-seq-dia-color: var(--high-color); + + /*table*/ + --table-background-color: var(--bg-color2); + --table-background-color-odd: var(--bg-color); + --table-border-color: #878787; + --table-thead-background-color: var(--color11); + --table-hover-raw-color: var(--color10); + --table-hover-color: var(--color11); + --table-hover-thead-color: var(--color10); + + /*calendar*/ + --calendar-week-color: var(--high-color); + --calendar-week-hover: var(--color1); + --calendar-week-background-color: var(--bg-color); + --calendar-today-background-color: var(--color1); + + /*day planner*/ + --day-planner-pie: var(--color1); + --day-planner-timeline: #000000; + --day-planner-line: var(--magic-low-color); + --day-planner-dot: var(--magic-low-color); + --day-planner-item-hover: var(--magic-main-color); + --event-item-color1: var(--color2); + --event-item-color2: var(--color3); + --event-item-color3: var(--color4); + --event-item-color4: var(--color5); + --event-item-color5: var(--color6); + --event-item-color6: var(--color7); + --event-item-color7: var(--color8); + --event-item-color8: var(--color9); + --event-item-color9: var(--color10); + --event-item-color10: var(--color11); + + /*Sliding panes*/ + --sliding-panes-header-color: var(--color1); + + --color-view-header-gradient-1: var(--bg-color2); + --color-view-header-gradient-2: var(--bg-color); + + /*checkbox*/ + --checkbox-color-0: var(--magic-main-color); +} + +body.color-scheme-options-lillimon-topaz #calendar-container { + --color-background-heading: transparent; + --color-background-weeknum: transparent; + --color-background-day: transparent; + --color-background-weekend: transparent; + + --color-tr: var(--bg-color) !important; + --color-tr-odd: #ffdece !important; + + --color-dot: var(--text-accent); + --color-arrow: currentColor; + --color-button: var(--text-muted); + --color-text-weeknum: var(--calendar-week-color); + + --color-text-title: var(--text-normal); + --color-text-heading: var(--text-normal); + --color-text-day: var(--text-normal); + --color-text-today: var(--text-accent); + + padding: 0px 5px 0px 8px; + margin: -21px -8px 0px -8px; + line-height: 0.6; +} +/*=================== Lillian 的配色 end ========================*/ + +/*========== awyugan 的 配色 =========*/ +body.color-scheme-options-lilac .theme-light, +body.color-scheme-options-lilac.theme-light { + --background-primary: var(--background-primary-bg-4-bt,#d7c4f2); + --background-primary-alt: var(--background-primary-alt-bg-4-bt,#e8dffa); + --background-secondary: var(--background-secondary-bg-4-bt,#e1cefa); + --background-secondary-alt: var(--background-secondary-alt-bg-4-bt,#d7c4f2); + + --background-modifier-border: #af9dd1; + --background-modifier-success: #d7a4e7; + + --text-normal: #0e0e0e; + --text-muted: #ab7ecf; + --text-faint: #a23ac2; + --accent-em: #620ac6; + --text-selection: #8b66bb59; + + --interactive-normal: #eaeaeb; + --interactive-hover: #d1b6f0; + + --interactive-accent-rgb: 195, 144, 230;/*工作区旁边的线*/ + --accent-h: 266; + --accent-s: 62%; + --accent-l: 72%; + --strong-em-highlight-color: #7908ae; + --text-highlight-bg-h: 273; + --text-highlight-bg-s: 65%; + --text-highlight-bg-l: 75%; + --text-highlight-bg-a: 0.706; + --text-highlight-bg: hsla(var(--text-highlight-bg-h), var(--text-highlight-bg-s), var(--text-highlight-bg-l), var(--text-highlight-bg-a)); + --text-search-highlight-bg: #d1d2ff; + --strong-em-color-1: #5008ae; + --strong-em-color-2: #2e0153; + --search-result-file-matched-bg: #ffc3c3; + + --background-mobile-drawer-1: #ffffff; + --background-mobile-drawer-2: #ffffff; + + --background-secondary-alt-bg-4-bt-publish: #e1d5eb61; + + --scrollbar-thumb-bg: #aa7dd3a8; + --scrollbar-active-thumb-bg: #aa7dd3; + + --search-result-file-title-color: #5a10a0; + + --background-blockquote: #b6b6b62c; + + --internal-link-color: #6203a2; + + --list-ul: #ffffff; + --list-ul-block-color: #7f1bb9; + --list-ul-disc-color: #d955f3; + --list-ul-hover: #ba2fdd; + --list-ol-block-color: #7835a5; + --list-ol-number-color: #85429a; + --list-ol-hover: #9231b8; + + --green-1: #9c30c7; + + --tag-text: #d2a3d4; + --stag1: #fa8787; + --stag1-bg: #eb2727; + --stag2: #fdbd5c; + --stag2-bg: #ee9002; + --stag3: #50ce3a; + --stag3-bg: #22ac09; + + --tag1: #2b85ce; + --tag2: #29b325; + --tag3: #20b9ce; + --tag4: #dfd331; + --tag5: #bbbbbb; + + --tag-dailynote: #0077ff; + --tag-dailynote-bg: #277CDD; + --tag-weeklynote: #4b9fff; + --tag-weeklynote-bg: #6aafff; + --tag-questions: #b68fff; + --tag-questions-bg: #b085ff; + --tag-ideas: #ceb900; + --tag-ideas-bg: #444444d8; + + --h1-color: var(--print-h1-color, #6F6493); + --h2-color: var(--print-h2-color, #724681); + --h3-color: var(--print-h3-color, #330349); + --h4-color: var(--print-h4-color, #2d1445); + --h5-color: var(--print-h5-color, #300e47); + --h6-color: var(--print-h6-color, #331945); + + /*graph*/ + --graph-text-color: #696969; + --graph-tag: #da9ee2cc; + --graph-attach: #88b0d6cc; + --graph-circle: #ac6fbfcc; + --graph-line: #b1b1b1; + --graph-unresolved: #db4e4ecc; + --graph-arrow: #e25300; + --graph-control-bg: #ffffff9a; + + /*mermaid*/ + --mermaid-active-task-color: #44bbff; + --mermaid-seq-dia-color: #76c8ff; + + /*table*/ + --table-background-color: #efe0f1; + --table-background-color-odd: #ffffffaf; + --table-border-color: #7d7d7d; + --table-thead-background-color: #d4a7e6c7; + --table-hover-raw-color: #c485ee2f; + --table-hover-color: #a75dec34; + --table-hover-thead-color: #edddff; + + /*calendar*/ + --calendar-week-color: #8b32b4; + --calendar-week-hover: #f9e3ff; + --calendar-week-background-color: #d4bfe6; + --calendar-today-background-color: #c2aaee; + --color-text-weeknum: #8b32b4; + + /*day planner 改为相应色系*/ + --day-planner-pie: #eca95c; + --day-planner-timeline: #d62f2f; + --day-planner-line: #d0aee6; + --day-planner-dot: #d0aee6; + --day-planner-item-hover: #d0aee6; + + --event-item-color1: #e6e0f1; + --event-item-color2: #d4cae5; + --event-item-color3: #c2b4d9; + --event-item-color4: #b09fcd; + --event-item-color5: #9f8ac1; + --event-item-color6: #9078b6; + --event-item-color7: #8066ac; + --event-item-color8: #7154a1; + --event-item-color9: #604195; + --event-item-color10: #4f2d89; + --event-item-color11: #3c197c; + --event-item-color12: #280070; + + /* stickies */ + --stickies-color-1: #b8b3e2; + --stickies-color-2: #e9c6f1; + --tape-color: #acacac65; + + /*Sliding panes*/ + --sliding-panes-header-color: #2c0240; + --background-4-sliding-pane: #ffffffef; + + --color-view-header-gradient-1: #efe0f1ef; /*标题上的颜色*/ + --color-view-header-gradient-2: #e1c9f1ef; + + /*checkbox*/ + --checkbox-color-0: var(--text-accent); + --checkbox-color-1: #e0dd2a; + --checkbox-color-2: #4077bf; + --checkbox-color-3: #ffe9e9; + --checkbox-color-4: #fffbd4; + --checkbox-color-5: #ad7fbf; + --checkbox-color-6: #a3a1a1; + --text-checked-checkbox: #9b9b9b; + + --interactive-hover: #dbdbdc; + + --table-color-calendar-2: rgb(211, 161, 247); + --table-color-rgb: 211, 161, 247; + + --divider-color: #d7c4f2; + --tab-stacked-shadow: #c69fd5; +} + +body.color-scheme-options-lilac.all-dark-pdf .print.theme-light, +body.color-scheme-options-lilac.theme-dark { + --bg-color: #462058; + --bg-color2: #b276c4; + + --background-primary: var(--background-primary-bg-4-bt,#462058); + --background-primary-alt: var(--background-primary-alt-bg-4-bt,#b276c4); + --background-secondary: var(--background-secondary-bg-4-bt,#462058); + --background-secondary-alt: var(--background-secondary-alt-bg-4-bt,#462058); + + --background-modifier-border: #947676; + + --text-normal: #c9b8e9; + + --text-muted: #c46ec4; + --text-faint: #b932e2; + --text-folder-file: #b3b3b3; + + --accent-em: #ca91d8; + --accent-h: 300; + --accent-s: 53%; + --accent-l: 47%; + --interactive-normal: #20242b; + --interactive-hover: #353b47; + + --interactive-accent-rgb: 128, 50, 159; + + --strong-em-highlight-color: #9c8ce6; + + --text-highlight-bg-h: 286; + --text-highlight-bg-s: 40%; + --text-highlight-bg-l: 38%; + --text-highlight-bg-a: 0.541; + --text-highlight-bg: hsla(var(--text-highlight-bg-h), var(--text-highlight-bg-s), var(--text-highlight-bg-l), var(--text-highlight-bg-a)); + --text-search-highlight-bg: #bb4361; + --strong-em-color-1: #9c8ce6; + --strong-em-color-2: #23d05c; + + --background-mobile-drawer-1: #1b1b1b; + --background-mobile-drawer-2: #1b1b1b69; + --background-transparent-blue: #003e759a; + + --scrollbar-thumb-bg: #603a8199; + --scrollbar-active-thumb-bg: #603a81; + + --search-result-file-title-color: #a75ac6; + + --background-blockquote: #9191911c; + --background-code: #1111118c; + --background-code-2: #4c4c4cb0; + --text-color-code: #d58000; + + --internal-link-color: #a360da; + + --list-ul: #f1a8f8; + --list-ul-block-color: #e142d9a9; + --list-ul-disc-color: #ae63eb; + --green-1: #8442c1; + --list-ul-hover: #9715e2de; + --list-ol-block-color: #9826bbb4; + --list-ol-number-color: #b595c4; + --list-ol-hover: #ba2cd6; + + --tag-text: #e4e4e4; + --stag1: #f08383; + --stag1-bg: #bd1919; + --stag2: #e7b263; + --stag2-bg: #ac6700; + --stag3: #77df89; + --stag3-bg: #058c1c; + --tag1: #2b85ce; + --tag2: #29b325; + --tag3: #20b9ce; + --tag4: #dfd331; + --tag5: #bbbbbb; + + --h1-color: var(--print-h1-color, #bc7ad4); + --h2-color: var(--print-h2-color, #8d26ac); + --h3-color: var(--print-h3-color, #9642af); + --h4-color: var(--print-h4-color, #d496f8); + --h5-color: var(--print-h5-color, #a192f7); + --h6-color: var(--print-h6-color, #c675f5); + + /*graph*/ + --graph-tag: #b992ddbb; + --graph-attach: #76c1f0bb; + --graph-circle: #8f70a1bb; + --graph-line: #8c8c8c; + --graph-unresolved: #c3afdade; + + /*mermaid*/ + --mermaid-active-task-color: #187ef1; + --mermaid-seq-dia-color: #1371be; + + /*table*/ + --table-background-color: #58266e; + --table-background-color-odd: #0000001c; + --table-border-color: #ac9494; + --table-thead-background-color: #4332ddc2; + --table-hover-raw-color: #08569a21; + --table-hover-color: #4125a5a1; + --table-hover-thead-color: #5f298cc7; + + /*calendar*/ + --calendar-week-color: #c194df; + --calendar-week-hover: #705c81; + --calendar-week-background-color: #683270; + --calendar-today-background-color: #e01313; + + /*day planner 改为相应色系*/ + --day-planner-pie: #eca95c; + --day-planner-timeline: #9231b8; + --day-planner-line: #8b36b3; + --day-planner-dot: #8b36b3; + --day-planner-item-hover: #8b36b3; + --event-item-color1: #c79cdb; + --event-item-color2: #b67fd1; + --event-item-color4: #9646bc; + --event-item-color3: #a662c6; + --event-item-color5: #8b3fae; + --event-item-color6: #7f3aa0; + --event-item-color7: #683083; + --event-item-color8: #592672; + --event-item-color9: #371945; + --event-item-color10:#351544; + + /* stickies */ + --stickies-color-1: #683083; + --stickies-color-2: #823a92; + --tape-color: #99999967; + + /*Sliding panes*/ + --sliding-panes-header-color: var(--h2-color); + --background-4-sliding-pane: #252525ed; + + --color-view-header-gradient-1: #330c46de; + --color-view-header-gradient-2: #002900c0; + + /*checkbox*/ + --checkbox-color-0: var(--text-accent); + --checkbox-color-1: #dbd821; + --checkbox-color-2: #1061ac; + --checkbox-color-3: #ffd1d1; + --checkbox-color-4: #625d4c; + --checkbox-color-5: #9a67ae; + --checkbox-color-6: #5f5f5f; + --text-checked-checkbox: #b9b8b8; + + --interactive-hover: #dbdbdc; + + --table-color-calendar-2: rgb(98, 36, 143); + --table-color-rgb: 98, 36, 143; + + --tab-stacked-shadow: #240a2e; +} + +/*分割工作区的线透明*/ +body.color-scheme-options-lilac .workspace-split.mod-left-split>.workspace-leaf-resize-handle, +body.color-scheme-options-lilac .workspace-split.mod-right-split>.workspace-leaf-resize-handle { + width: 2px; + background-color: transparent; +} + +/* scrollbar 滚动条颜色*/ +body.color-scheme-options-lilac.theme-light ::-webkit-scrollbar-thumb { + background-color: #cbb5e9; +} +body.color-scheme-options-lilac.theme-dark ::-webkit-scrollbar-thumb { + background-color: #683083; +} + +/*stickies*/ +body.color-scheme-options-lilac .stickies { + color: var(--text-normal); +} + +body.color-scheme-options-lilac div .CodeMirror-line span.cm-hashtag-begin + span.cm-hashtag.cm-meta.cm-hashtag-end { + background-color: transparent; + border: 1px solid var(--text-normal); + color: var(--tag-text); + border-radius: var(--radius-l); + padding-right: 0.4375em; + padding-left: 0.4375em; +} + +body.color-scheme-options-lilac *:not(font) > em > strong, +body.color-scheme-options-lilac *:not(font) > strong > em, +body.color-scheme-options-lilac .cm-strong.cm-em { + background-image: initial; + background-clip: initial; + -webkit-background-clip: initial; + -webkit-text-fill-color: initial; + background-color: initial; +} + +body.color-scheme-options-lilac.theme-dark #calendar-container { + --theme-color-translucent-3: #553b75; +} + +body.color-scheme-options-lilac.theme-light #calendar-container { + --theme-color-translucent-3: #dccaffb0; +} +/*======@awyugan--end========*/ + + +/*======@cuman--start========*/ +/*modified from https://github.com/hydescarf/Obsidian-Theme-Mado-Miniflow*/ +:root { + --simple-white-1:hsla(204, 45%, 97%, 1); + --simple-white-2:hsla(210, 45%, 95%, 1); + --simple-white-3:hsla(212, 17%, 80%, 0.2); + --simple-white-4:hsla(180, 33%, 99%, 1); + --simple-white-5:hsla(207, 10%, 90%, 0.1); + --simple-white-6:hsla(212, 17%, 80%, 0.3); + + --simple-blue-1:hsla(209, 95%, 62%, 1); + --simple-blue-2:hsla(209, 85%, 72%, 0.5); + --simple-blue-3: hsla(245, 60%, 67%, 1); + --simple-blue-4:hsla(209, 20%, 66%, 0.62); + + --simple-black-1:hsla(0, 0%, 13%, 1); + --simple-black-2:hsla(220, 20%, 35%, 1); + --simple-gray-1:hsla(0, 0%, 33%, 1); + --simple-gray-2:hsla(210, 15%, 70%, 0.2); + --simple-gray-3:hsla(210, 15%, 20%, 0.2); + --simple-gray-4:hsla(210, 6%, 38%, 0.5); + --simple-gray-5:hsla(207, 17%, 90%, 1); + --simple-gray-6:hsla(217, 15%, 83%, 1); + --simple-gray-7:hsla(217, 15%, 83%, 0.7); + --simple-tran:hsla(204, 45%, 97%, 0); + --simple-yellow:hsla(60, 100%, 50%, 0.4); + --simple-orange:hsla(25, 75%, 65%, 1); + --simple-red-1:hsla(365, 90%, 62%, 1); + --simple-red-2:hsl(365, 95%, 85%, 1); + --simple-red-3:hsl(365, 85%, 45%, 1); + --button-radius:4px; + --window-radius:8px; +} + +body.color-scheme-options-simplicity-topaz .theme-light, +body.color-scheme-options-simplicity-topaz.theme-light { + --h1-color: var(--print-h1-color,var(--text-normal)); + --h2-color: var(--print-h2-color,var(--text-normal)); + --h3-color: var(--print-h3-color,var(--text-normal)); + --h4-color: var(--print-h4-color,var(--text-normal)); + --h5-color: var(--print-h5-color,var(--text-normal)); + --h6-color: var(--print-h6-color,var(--text-normal)); + --background-accent: var(--simple-white-1); + --background-modifier-border: var(--simple-gray-5); + --background-modifier-form-field: var(--simple-white-1); + --background-modifier-form-field-highlighted: var(--simple-white-1); + --background-modifier-box-shadow: rgba(0, 0, 0, 0.05); + + --text-normal: var(--simple-black-1); + --text-muted: hsla(218, 19%, 39%, 1); + + --text-faint: hsla(218, 19%, 39%, 1); + + --accent-em: var(--simple-gray-4); + --text-error: var(--simple-red-1); + + --text-selection: var(--simple-gray-7); + + --interactive-normal: var(--simple-white-2); + --interactive-hover: var(--simple-white-4); + --accent-h: 220; + --accent-s: 20%; + --accent-l: 35%; + --interactive-accent-rgb: 70, 142, 235; + + --panel-border-color: var(--simple-white-4); + + --background-primary-bg-4-bt: var(--simple-white-2); + --background-primary-alt-bg-4-bt: var(--simple-tran); + --background-secondary-bg-4-bt: var(--simple-tran); + --background-secondary-alt-bg-4-bt: var(--simple-tran); + --background-primary-alt:var(--simple-white-2); + + --background-mobile-drawer-1: var(--simple-white-1); + --background-mobile-drawer-2: var(--simple-white-1); + --background-modifier-border-hr: var(--simple-gray-5); + --background-secondary-alt-bg-4-bt-publish: var(--simple-gray-5); + + --scrollbar-thumb-bg: var(--simple-gray-5); + + --color-black: var(--simple-black-1); + --color-dark-gray: var(--simple-gray-1); + --color-accent: var(--simple-blue-1); + --color-accent-alt: var(--simple-blue-2); + --color-accent-dark: var(--simple-blue-3); + --color-gray: var(--simple-gray-2); + --color-light-gray: var(--simple-gray-3); + --color-medium-gray: var(--simple-gray-4); + + --modal-group-border: var(--simple-gray-6); + --button-selected: var(--simple-white-6); + --button-hover: var(--simple-white-6); + --button-selected-hover: var(--simple-white-3); + + --window-shadow: 0 1px 3px var(--simple-white-3); + --window-shadow2: 0 0 9px var(--simple-gray-7); + --window-shadow-hover: 0 3px 5px var(--simple-white-6); + --window-shadow-transparent:0 3px 5px transparent; + + --border:1px solid var(--simple-gray-5); + + --background-primary: var(--simple-white-1); + + --background-secondary-alt: var(--simple-white-2); + + --background-tertiary: var(--simple-white-3); + + --background-accent: var(--simple-blue-1); + --background-fourth: var(--simple-white-4); + --background-fifth: var(--simple-white-5); + --background-sixth: var(--simple-white-4); + + --text-color-code: var(--simple-orange); + --text-normal: var(--simple-black-1); + --text-error: var(--simple-red-1); + + --text-faint: var(--simple-gray-1); + --text-highlight-bg: var(--simple-yellow); + --accent-strong: var(--simple-black-2); + --accent-em: var(--simple-gray-4); + --text-muted: hsla(218, 19%, 39%, 1); + + --background-modifier-error: var(--simple-red-1); + --background-modifier-border: var(--simple-gray-5); + --custom-titlebar-bg: var(--background-secondary); + --background-code-2: var(--simple-tran); + --scrollbar-bg: transparent; + --background-transparent-black-or-white-1: var(--simple-white-2) !important; + --background-transparent-black-or-white-2: var(--bg-color-settings-1) !important; + --background-transparent-black-or-white-3: var(--bg-color-settings-1) !important; + --tab-background-active: #ffffff; + --theme-color-translucent-01: hsla(254,80%,68%,0.1); +} + + +body.color-scheme-options-simplicity-topaz.all-dark-pdf .print.theme-light, +body.color-scheme-options-simplicity-topaz.theme-dark { + /* dark mode quick hack */ + --simple-white-1:hsla(215, 17%, 10%, 1); + --simple-white-2:hsla(214, 24%, 15%, 1); + --simple-white-3:hsla(212, 17%, 22%, 0.9); + --simple-white-6:hsla(212, 17%, 0%, 0.3); + --simple-white-4:hsla(215, 22%, 13%, 1); + --simple-white-5:hsla(207, 10%, 10%, 0.1); + --simple-tran:hsla(207, 10%, 10%, 0); + --simple-black-1:hsla(0, 0%, 73%, 1); + --simple-black-2:hsla(213, 33%, 65%, 1); + --simple-gray-1:hsla(0, 0%, 83%, 1); + --simple-gray-2:hsla(210, 25%, 5%, 0.3); + --simple-gray-3:hsla(210, 15%, 50%, 0.4); + --simple-gray-4:hsla(210, 15%, 70%, 0.5); + --simple-gray-5:hsla(207, 17%, 10%, 0.5); + --simple-gray-6:hsla(217, 28%, 90%, 0.9); + --simple-gray-7:hsla(217, 18%, 50%, 0.9); + + --simple-yellow:hsla(45, 63%, 43%, 1); + --simple-blue-3:hsla(245, 60%, 67%, 1); + + --custom-titlebar-bg:var(--background-modifier-cover); + + --color-black: var(--simple-black-1); + --color-dark-gray: var(--simple-gray-1); + --color-accent: var(--simple-blue-1); + --color-accent-alt: var(--simple-blue-2); + --color-accent-dark: var(--simple-blue-3); + --color-gray: var(--simple-gray-2); + --color-light-gray: var(--simple-gray-3); + --color-medium-gray: var(--simple-gray-4); + + --modal-group-border: var(--simple-gray-6); + --button-selected: var(--simple-white-6); + --button-hover: var(--simple-white-6); + --button-selected-hover: var(--simple-white-3); + + --window-shadow: 0 1px 3px var(--simple-white-5); + --window-shadow2: 0 0 9px var(--simple-white-6); + --window-shadow-hover: 0 3px 5px var(--simple-white-6); + --window-shadow-transparent: 0 3px 5px transparent; + + --border:1px solid var(--simple-gray-5); + + --background-primary: var(--simple-gray-2); + + --tab-outline-color: var(--simple-white-2); + --divider-color: var(--simple-gray-5); + --background-secondary-alt: var(--simple-white-2); + --background-tertiary: var(--simple-white-3); + --background-primary-alt: var(--simple-white-6); + --background-secondary-bg-4-bt: var(--simple-tran) ; + + --background-accent: var(--simple-blue-1); + --background-fourth: var(--simple-white-3); + --background-fifth: var(--simple-white-5); + --background-sixth: var(--simple-white-5); + + --text-color-code:var(--simple-orang-1); + --text-normal: var(--simple-black-1); + --text-error: var(--simple-red-1); + + --text-faint: var(--simple-gray-6); + --text-highlight-bg:var(--simple-yellow); + --text-bold: var(--simple-black-2); + --text-em: var(--simple-gray-6); + --text-muted: hsl(218, 17%, 58%); + + --background-modifier-error: var(--simple-red-1); + --background-modifier-border: var(--simple-gray-5); + --accent-h: 209; + --accent-s: 60%; + --accent-l: 55%; + --indentation-guide: var(--simple-gray-3); + + --scrollbar-bg: transparent; + +} + +body.color-scheme-options-simplicity-topaz:not(.background-settings-workplace-background-image) { + --background-secondary: var(--simple-white-2); +} + +body.theme-dark.color-scheme-options-simplicity-topaz .workspace-tab-header.is-active { + --tab-background-active: var(--background-primary); + --tab-outline-width: var(--simple-gray-5); +} + +body.theme-dark.color-scheme-options-simplicity-topaz .workspace-split.mod-root .workspace-tab-header.is-active.mod-active { + background-color: var(--tab-background-active); +} + + +body.color-scheme-options-simplicity-topaz.background-image-settings-switch.background-image-settings-markdown-page-transparent { + --background-secondary: var(--simple-tran); + --background-primary: var(--simple-tran); + --background-secondary-bg-4-bt: var(--simple-tran); + --tab-outline-color: var(--background-secondary); +} + +/* +--------------------------- + Title Bar +--------------------------- +*/ + +@media screen and (max-width:960px) { + body.color-scheme-options-simplicity-topaz .view-header .view-actions .view-action{ + opacity: 1 !important; + } + body.color-scheme-options-simplicity-topaz .workspace>.workspace-split.mod-vertical{ + padding: 0; + } +} + +body.is-mobile.color-scheme-options-simplicity-topaz .workspace>.workspace-split.mod-vertical{ + padding: 0; +} +.view-header .view-actions .view-action +{ + z-index: 1; +} +body.color-scheme-options-simplicity-topaz .view-header .view-actions .view-action, +body.color-scheme-options-simplicity-topaz .titlebar-button-container.mod-right{ + opacity: 0; + z-index: 1; + transition: all 0.6s linear; +} +body.color-scheme-options-simplicity-topaz .view-header:hover .view-actions .view-action, +body.color-scheme-options-simplicity-topaz .titlebar-button-container.mod-left:hover, +body.color-scheme-options-simplicity-topaz .titlebar-button-container.mod-right:hover { + opacity: 0.8; + transition: all 0.6s linear; +} + +body.color-scheme-options-simplicity-topaz .nav-action-button.is-active { + background-color: var(--simple-blue-2); +} +body.color-scheme-options-simplicity-topaz .checkbox-container.is-enabled { + background-color: var(--interactive-accent-hover); +} + +body.theme-light.color-scheme-options-simplicity-topaz .workspace-split.mod-root .workspace-tab-header.is-active.mod-active { + border-radius: 6px; + border-color: var(--background-modifier-border); + border-style: solid; + border-width: 0px; +} + +body.color-scheme-options-simplicity-topaz.theme-dark:not(.background-settings-workplace-background-image) .workspace-split.mod-root .workspace-tab-header.is-active.mod-active { + background-color: var(--simple-white-4); +} + +/* Hide dock's tab menu, and show them when hovered */ +body.color-scheme-options-simplicity-topaz .workspace-tab-header-container { + /* z-index: 1; */ + /* height:1px; */ + transition: opacity 0.1s; + /* border-radius: var(--button-radius); */ + box-shadow: none; + width: 100%; + border-bottom: var(--tab-outline-width) transparent; +} +body.color-scheme-options-simplicity-topaz .modal, +body.color-scheme-options-simplicity-topaz .modal-container .prompt { + animation: 0.2s popup forwards; + border-radius: 20px; + box-shadow: var(--window-shadow2); +} + +body.color-scheme-options-simplicity-topaz.setting-default-frosted-glass.theme-dark .modal-bg { + background-color: var(--bg-color-settings-3); + backdrop-filter: blur(5px); +} + +body.color-scheme-options-simplicity-topaz.background-image-settings-command-palette-switch .modal-container .prompt::before { + border-radius: 20px; + box-shadow: var(--window-shadow2); +} + +body.color-scheme-options-simplicity-topaz.background-image-settings-command-palette-switch .modal-container .community-plugin-search { + border-bottom-left-radius: 20px; +} + +body.color-scheme-options-simplicity-topaz.background-image-settings-command-palette-switch .modal-container .community-plugin-search { + border-bottom-left-radius: 20px; +} + +body.color-scheme-options-simplicity-topaz [class="menu"] { + animation: 0.2s popup forwards; + border-radius: 10px; + box-shadow: var(--window-shadow2); +} +@keyframes popup { + 0% { transform:scale(70%); opacity:0; } + 15% { transform:scale(80%); opacity:0.1; } + 35% { transform:scale(102%); } + 45% { opacity:0.3; } + 65% { opacity:0.7; } + 100% { transform:scale(100%); opacity:1; } +} +/* Left dock navigation (new note, new folder, reorder) */ + +body.color-scheme-options-simplicity-topaz:not(.disable-auto-hide-header) .workspace-tab-header-container:hover + .workspace-tab-container .workspace-leaf .workspace-leaf-content>.nav-header { + margin-top: 0; + transition: all 0.1s linear; +} + +body.color-scheme-options-simplicity-topaz:not(.disable-auto-hide-header) .workspace-tab-header-container + .workspace-tab-container .workspace-leaf .workspace-leaf-content>.nav-header:hover { + margin-top: 0; + transition: all 0.6s linear; +} +body.color-scheme-options-simplicity-topaz:not(.disable-auto-hide-header) .workspace-tab-header-container + .workspace-tab-container .workspace-leaf .workspace-leaf-content>.nav-header { + margin-top: -30px; + transition: all 0.6s linear; +} + + +body.color-scheme-options-simplicity-topaz:not(.disable-auto-hide-header) .workspace-tab-header-container + .workspace-tab-container .workspace-leaf .workspace-leaf-content[data-type="file-tree-view"] +.view-content .file-tree-header-fixed { + position: relative; + margin-top: -30px; + transition: all 0.6s linear; +} +body.color-scheme-options-simplicity-topaz:not(.disable-auto-hide-header) .workspace-tab-header-container:hover + .workspace-tab-container .workspace-leaf .workspace-leaf-content[data-type="file-tree-view"] .view-content .file-tree-header-fixed { + margin-top: 0; + transition: all 0.3s linear; +} +body.color-scheme-options-simplicity-topaz:not(.disable-auto-hide-header) .workspace-tab-header-container + .workspace-tab-container .workspace-leaf .workspace-leaf-content[data-type="file-tree-view"] .view-content .file-tree-header-fixed:hover{ + margin-top: 0; +} + +body.color-scheme-options-simplicity-topaz .oz-folders-tree-wrapper .oz-folder-contents { + border-left: 1px solid var(--background-modifier-border); +} +body.color-scheme-options-simplicity-topaz .oz-flex-container { + justify-content: start; +} +body.color-scheme-options-simplicity-topaz .oz-nav-action-button { + color: var(--text-faint); + opacity: 0.3; +} + +/* Remove style for border-on-active */ +body.color-scheme-options-simplicity-topaz .workspace-tabs .workspace-leaf, +body.color-scheme-options-simplicity-topaz .workspace-tabs .workspace-leaf.mod-active{ + border: none; +} + +body.color-scheme-options-simplicity-topaz .horizontal-main-container { + overflow: visible; +} +body.color-scheme-options-simplicity-topaz .workspace { + overflow: visible; +} + +/* +--------------------------- + Note Title +--------------------------- +*/ + +body.color-scheme-options-simplicity-topaz .workspace-split.mod-root > .workspace-leaf:first-of-type:last-of-type .view-header, +body.color-scheme-options-simplicity-topaz .workspace-split.mod-horizontal > .workspace-leaf .view-header, +body.color-scheme-options-simplicity-topaz .workspace-split.mod-vertical > .workspace-leaf .view-header { + display: flex; + align-items: center; + border: none; + background: var(--simple-white-2); +} + +body.theme-dark.color-scheme-options-simplicity-topaz .workspace-split.mod-root > .workspace-leaf:first-of-type:last-of-type .view-header, +body.theme-dark.color-scheme-options-simplicity-topaz .workspace-split.mod-horizontal > .workspace-leaf .view-header, +body.theme-dark.color-scheme-options-simplicity-topaz .workspace-split.mod-vertical > .workspace-leaf .view-header { + background-color: transparent; +} + +body.color-scheme-options-simplicity-topaz .view-header-title { + font-size: 1rem; + border-radius: var(--button-radius); + margin-left: 0; + border: 1px solid transparent; + transition:border 0.2s, background 0.2s; +} + +body.color-scheme-options-simplicity-topaz .view-header-title:hover, +body.color-scheme-options-simplicity-topaz .view-header-title:focus { + background: var(--background-fourth); +} + +body.color-scheme-options-simplicity-topaz .view-action, +body.color-scheme-options-simplicity-topaz .view-header-icon{ + display: flex; + padding: 4px; + margin: 0 3px; + color: var(--color-dark-gray); + border-radius: var(--button-radius); + transition: 0.1s background, 0.1s opacity; + top: 0; +} + +body.color-scheme-options-simplicity-topaz .view-action:hover,.view-header-icon:hover{ + background: var(--button-hover); + color: var(--color-dark-gray); +} + +body.color-scheme-options-simplicity-topaz .view-action:active,.view-header-icon:active { + opacity: 0.75; +} + +body.color-scheme-options-simplicity-topaz .workspace-split.mod-horizontal > * > .workspace-leaf-resize-handle { + background: none; + height: 7px; + border: none; + background-color: transparent; +} + +body.color-scheme-options-simplicity-topaz .workspace-split.mod-vertical > * > .workspace-leaf-resize-handle, +body.color-scheme-options-simplicity-topaz .workspace-split.mod-left-split > .workspace-leaf-resize-handle, +body.color-scheme-options-simplicity-topaz .workspace-split.mod-right-split > .workspace-leaf-resize-handle{ + background: none; + background-color: transparent; + width: 3px; + border: none; +} +body.color-scheme-options-simplicity-topaz .workspace-split .workspace-leaf-resize-handle:hover{ + background: var(--simple-gray-2); +} + +body:not(.is-mobile).color-scheme-options-simplicity-topaz:not(.background-image-settings-switch) .workspace-split.mod-root .view-content, +body:not(.is-mobile).color-scheme-options-simplicity-topaz:not(.background-settings-workplace-background-image) .workspace-split.mod-root .view-content { + background-color: var(--background-primary); +} + +body:not(.is-mobile).color-scheme-options-simplicity-topaz .workspace-fake-target-overlay:not(.is-in-sidebar) .workspace-tabs .workspace-leaf, +body:not(.is-mobile).color-scheme-options-simplicity-topaz .mod-root .workspace-tabs .workspace-leaf, +body:not(.is-mobile).color-scheme-options-simplicity-topaz .mod-root .workspace-tabs .workspace-tab-header-container { + background-color: transparent; +} + + +body:not(.is-mobile).color-scheme-options-simplicity-topaz.background-settings-workplace-background-image .workspace-split.mod-root +{ + background-color: var(--simple-tran); +} +body.color-scheme-options-simplicity-topaz .workspace-split.mod-root +{ + background-color: var(--simple-white-2); +} +body.color-scheme-options-simplicity-topaz.background-settings-workplace-background-image .workspace-tabs, +body.theme-dark.color-scheme-options-simplicity-topaz.background-settings-workplace-background-image .workspace-ribbon.side-dock-ribbon.mod-left, +body.color-scheme-options-simplicity-topaz.background-settings-workplace-background-image div.workspace-ribbon.mod-left:before +{ + background-color: var(--background-secondary-bg-4-bt); +} + +body.color-scheme-options-simplicity-topaz.background-image-settings-switch.background-image-settings-markdown-page-transparent .workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header { + background-color:var(--simple-white-5); +} +body.color-scheme-options-simplicity-topaz .workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header.is-active { + box-shadow: var(--window-shadow-hover); +} +body.color-scheme-options-simplicity-topaz .workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header { + border-radius: 15px; + box-shadow: none; +} + +body.color-scheme-options-simplicity-topaz .workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header-inner { + border-radius: 15px; +} + +/* +--------------------------- + Main Pane Border Styling +--------------------------- +*/ +body.color-scheme-options-simplicity-topaz .workspace-split.mod-horizonta.mod-left-split.is-collapsed+.workspace-split.mod-root > .workspace-leaf:first-of-type .workspace-leaf-content{ + border-top-left-radius: 0px; +} + +body:not(.is-mobile).color-scheme-options-simplicity-topaz .workspace-split.mod-vertical.mod-root .workspace-leaf{ + border-radius: 15px; +} + +body.color-scheme-options-simplicity-topaz.theme-dark .view-content { + border-bottom-right-radius: 20px; + border-bottom-left-radius: 20px; +} +body.color-scheme-options-simplicity-topaz .workspace-split.mod-vertical.mod-root .workspace-split.mod-vertical:not(:first-child):last-child .workspace-leaf{ + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +body.color-scheme-options-simplicity-topaz .workspace-split.mod-vertical.mod-root, +body.color-scheme-options-simplicity-topaz .workspace-split.mod-vertical.mod-root .workspace-split{ + display: flex; + gap: 18px; +} +body.color-scheme-options-simplicity-topaz .workspace>.workspace-split.mod-vertical{ + padding: 0px 3px 0; +} + +body.is-popout-window.color-scheme-options-simplicity-topaz .workspace>.workspace-split.mod-vertical{ + padding: 0; +} + + +body.theme-light.color-scheme-options-simplicity-topaz .workspace-split.mod-vertical.mod-root .workspace-leaf{ + box-shadow: var(--window-shadow); + height: 100%; +} +body.color-scheme-options-simplicity-topaz .workspace-split.mod-vertical > .workspace-leaf{ + padding: 0; +} +body.color-scheme-options-simplicity-topaz .workspace-split.mod-root > .workspace-leaf:last-of-type .workspace-leaf-content{ + border-top-right-radius: 0; +} + +/* Remove sttles on button-on-active, but not during right-click-menu as that is alright */ +body.color-scheme-options-simplicity-topaz .nav-folder-title, +body.color-scheme-options-simplicity-topaz .nav-file{ + border: none; +} +body.color-scheme-options-simplicity-topaz .workspace-leaf.mod-active .nav-folder.has-focus > .nav-folder-title, +body.color-scheme-options-simplicity-topaz .workspace-leaf.mod-active .nav-file.has-focus{ + border-radius: none; + border: none; + background-color: none; +} + +body.theme-light.color-scheme-options-simplicity-topaz .workspace-split.mod-horizontal > .workspace-leaf.mod-active .view-header, +body.theme-light.color-scheme-options-simplicity-topaz .workspace-split.mod-vertical > .workspace-leaf.mod-active .view-header { + background:var(--simple-white-1); +} +body.theme-dark.color-scheme-options-simplicity-topaz .workspace-split.mod-horizontal > .workspace-leaf.mod-active .view-header .view-header-title, +body.theme-dark.color-scheme-options-simplicity-topaz .workspace-split.mod-vertical > .workspace-leaf.mod-active .view-header .view-header-title{ + color:var(--simple-black-2); + text-shadow: 0px 0px 0px rgba(145, 237, 232, 1); +} + +body.color-scheme-options-simplicity-topaz .workspace-tab-header:not(.is-active ) .workspace-tab-header-inner-icon { + color: var(--text-faint); + opacity: 0.3; +} + + + +body.color-scheme-options-simplicity-topaz .markdown-source-view.mod-cm6 .cm-underline, +body.color-scheme-options-simplicity-topaz a, +body.color-scheme-options-simplicity-topaz :is(.markdown-preview-view,.markdown-rendered) .internal-link { + font-weight: 600; +} + +body.color-scheme-options-simplicity-topaz .nav-folder-children, +body.color-scheme-options-simplicity-topaz +.item-list{ + padding-left: 0.5em; + display: flex; + flex-direction: column; +} +body.color-scheme-options-simplicity-topaz .nav-folder{ +padding-bottom: 2px; +} + +body.color-scheme-options-simplicity-topaz .nav-folder-title{ + font-weight: 500; +} + +body.color-scheme-options-simplicity-topaz :is(h3,h4,h5,h6), +body.color-scheme-options-simplicity-topaz .cm-s-obsidian :is(.cm-header-3,.cm-header-4,.cm-header-5,.cm-header.cm-header-6) { + font-weight: 500; +} + +body.color-scheme-options-simplicity-topaz.background-settings-workplace-background-image:is(.background-settings-workplace-waves2-light,.background-settings-workplace-waves-light).theme-light{ + --background-secondary-bg-4-bt: var(--simple-tran); +} +body.color-scheme-options-simplicity-topaz.background-settings-workplace-background-image.theme-dark { + --background-primary-alt-bg-4-bt: var(--simple-tran); + --background-secondary-bg-4-bt: var(--simple-tran); + --background-secondary-alt-bg-4-bt: var(--simple-tran); +} + + +body.color-scheme-options-simplicity-topaz.is-frameless.background-settings-workplace-background-image .workspace-tab-header.is-active { + box-shadow: none; +} + +body.color-scheme-options-simplicity-topaz .workspace-leaf-content .view-header .view-header-icon { + margin-left: -10px; + opacity: 0; + width: 18px; +} +body.color-scheme-options-simplicity-topaz .workspace-leaf-content .view-header .view-header-icon:hover { + opacity: 1; +} + +body.color-scheme-options-simplicity-topaz:not(.view-button-front) .workspace-leaf-content .view-header .view-header-nav-buttons { + margin-left: -15px; +} + +body.default-tab.theme-light.color-scheme-options-simplicity-topaz .workspace-split.mod-root .workspace-tab-header.is-active { + background-image: linear-gradient(to right, var(--background-secondary), var(--simple-white-2)); +} +body.default-tab.color-scheme-options-simplicity-topaz:not(.background-settings-workplace-background-image,.background-image-settings-switch.background-image-settings-markdown-page-transparent) +.workspace-split.mod-root .workspace-tab-header.is-active { + background:var(--background-primary); + --tab-background-active:var(--background-primary); +} + +body.default-tab.background-image-settings-switch.background-image-settings-markdown-page-transparent +.workspace-split.mod-root .workspace-tab-header.is-active { + background:transparent; + --tab-background-active:transparent; +} + + + +body.color-scheme-options-simplicity-topaz .workspace-leaf-content .view-header .view-header-icon svg { + opacity: 0; +} +body.color-scheme-options-simplicity-topaz .workspace-tab-container-before.is-before-active, +body.color-scheme-options-simplicity-topaz .workspace-tab-container-after.is-after-active, +.workspace-tab-header.is-before-active, +body.color-scheme-options-simplicity-topaz .workspace-tab-header.is-after-active, +body.color-scheme-options-simplicity-topaz .workspace-split.mod-right-split .workspace-tabs .workspace-leaf, +body.color-scheme-options-simplicity-topaz .workspace-split.mod-left-split .workspace-tabs .workspace-leaf, +body.color-scheme-options-simplicity-topaz .workspace-tabs .workspace-tab-header-container { + background-color: var(--background-secondary-alt); +} +body.is-mobile.color-scheme-options-simplicity-topaz .workspace-tabs .workspace-tab-header-container { + background-color: var(--background-secondary); +} + +body.color-scheme-options-simplicity-topaz.background-settings-workplace-background-image .mod-root .workspace-tabs:not(.mod-top) .workspace-tab-header-container-inner { + padding-bottom:1px; +} + +/*==============*/ +/*==============*/ +/*======@cuman--end========*/ + +body.font-family-change-to-default .markdown-source-view, +body.font-family-change-to-default :is(.markdown-preview-view,.markdown-rendered), +body.font-family-change-to-default .markdown-source-view.mod-cm6 .cm-scroller, +body.font-family-change-to-default :is(.markdown-preview-view,.markdown-rendered) h5, +body.font-family-change-to-default :is(.markdown-preview-view,.markdown-rendered) h6, +body.font-family-change-to-default .nav-file-title, +body.font-family-change-to-default .nav-folder-title, +body.font-family-change-to-default a.tag, +body.font-family-change-to-default .cm-s-obsidian span.cm-hashtag, +body.font-family-change-to-default .nav-folder.mod-root>.nav-folder-title, +body.font-family-change-to-default pre.frontmatter.language-yaml::before, +body.font-family-change-to-default span.cm-strong, +body.font-family-change-to-default :not(font)>strong, +body.font-family-change-to-default a, +body.font-family-change-to-default :is(.markdown-preview-view,.markdown-rendered) .internal-link, +body.font-family-change-to-default :is(.markdown-preview-view,.markdown-rendered) th, +body.font-family-change-to-default *:not(font)>em>strong, +body.font-family-change-to-default *:not(font)>strong>em, +body.font-family-change-to-default .cm-strong.cm-em { + font-family: var(--font-default) !important; +} + +body.font-family-change-to-default .cm-s-obsidian .cm-hmd-frontmatter, +body.font-family-change-to-default .markdown-rendered code, +body.font-family-change-to-default :is(.markdown-preview-view,.markdown-rendered) code{ + font-family: var(--font-monospace); +} + +body.reduce-bottom-padding .workspace-leaf-content[data-type="markdown"] :is(.markdown-preview-view,.markdown-rendered) .markdown-preview-sizer, +body.reduce-bottom-padding:not(.plugin-cm-typewriter-scroll) .cm-s-obsidian .cm-content { + padding-bottom: var(--bottom-padding-value) !important; +} + + +/*===============================*/ +/*=============YAML==============*/ +/*===============================*/ + +input[type='text'].metadata-property-key-input { + background:transparent; +} + + +/* cssclass: inline-list */ +/* can change list from block to inline; can be used with inline images */ +.inline-list ul, +.inline-list ol { + display: inline-block; + margin-top: 0.3em; +} + +/* cssclass: code-wrap */ +/* as implied by the name, to wrap texts for code boxes */ +.code-wrap pre>code>span { + word-wrap: break-word; + word-break: break-all; + white-space: pre-wrap; +} +.code-wrap code.language-yaml.is-loaded { + word-wrap: break-word !important; + word-break: break-word !important; + white-space: pre-wrap !important; +} +.code-wrap code.language-md.is-loaded { + word-wrap: break-word !important; + word-break: break-word !important; + white-space: break-spaces !important; +} + +/* cssclass: image-grid */ +/* image-grid-2 */ +/* adapted from https://github.com/iEchoxu/obsidian_orange/blob/main/.obsidian/snippets/image-grid.css */ + +.img-grid :is(.markdown-preview-section,.markdown-rendered)>div>p>.image-embed[alt*="."]:last-child { + padding-right: 0; +} +.img-grid :is(.markdown-preview-section,.markdown-rendered)>div>p>.image-embed[alt*="."]:first-child { + padding-left: 0; +} +.img-grid :is(.markdown-preview-section,.markdown-rendered)>div hr { + width: 100%; +} +.img-grid span.image-embed[alt*="."] { + display: table-cell; +} +.img-grid img[alt*="."] { + max-height: 100vh; + object-fit: cover; +} + +.img-grid .markdown-preview-section .el-embed-image img:not([width]),.img-grid .markdown-preview-section video{ + width:100% +} +.img-grid .markdown-preview-section>.el-embed-image>p{ + display:grid; + grid-column-gap:0.5rem; + grid-row-gap:0; + grid-template-columns:repeat(auto-fit,minmax(0,1fr)) +} +.img-grid .markdown-preview-section>.el-embed-image>p>br{ + display:none +} +.img-grid .markdown-preview-section>.el-embed-image>p>img{ + object-fit:cover; + align-self:stretch +} +.img-grid .markdown-preview-section>.el-embed-image>p>.internal-embed img{ + object-fit:cover; + height:100% +} + +.img-grid-ratio .markdown-preview-section>.el-embed-image>p>.internal-embed img +,.img-grid.img-grid-ratio .markdown-preview-section>.el-embed-image>p>.internal-embed img{ + object-fit:contain; + height:100%; + align-self:center +} +@media (max-width:400pt){ + .el-embed-image{ + margin-top:.25rem + } + .img-grid .markdown-preview-section>.el-embed-image>p{ + grid-column-gap:0.25rem + } +} + +/* cssclass: kanban */ +/* adapted from spectrum theme, thanks to @Braweria. https://github.com/Braweria/Spectrum */ +/* a kind of css-based pseudo-kanban feature */ +.kanban ul { + display: flex; + flex-direction: row; + border: 0px solid var(--p-kanban-border-color); + padding: 0rem; + border-radius: var(--radius-m); + flex-wrap: wrap; +} +.kanban ul>li .list-bullet:after { + display: none; +} + +.kanban ul>li { + flex: 1 1 20%; + padding: 0.1em 1em 0.1em 0.8em; + margin: 0 0.3em 0.3em 0 !important; + list-style: none; + border: 1px solid var(--p-kanban-border-color); + border-left: 1px solid var(--p-kanban-border-color) !important; + border-radius: var(--radius-s); + word-wrap: break-word; + word-break: break-word; +} + +.kanban ul li.task-list-item .task-list-item-checkbox { + margin-left: auto; +} + + +.kanban ul .list-collapse-indicator.collapse-indicator.collapse-icon::before { + color: var(--text-accent); + transition: transform 10ms linear 0s +} + +body.colorful-p-kanban .kanban ul>li:nth-of-type(8n+1) { + background-color: var(--p-kanban-color-1); +} +body.colorful-p-kanban .kanban ul>li:nth-of-type(8n+2) { + background-color: var(--p-kanban-color-2); +} +body.colorful-p-kanban .kanban ul>li:nth-of-type(8n+3) { + background-color: var(--p-kanban-color-3); +} +body.colorful-p-kanban .kanban ul>li:nth-of-type(8n+4) { + background-color: var(--p-kanban-color-4); +} +body.colorful-p-kanban .kanban ul>li:nth-of-type(8n+5) { + background-color: var(--p-kanban-color-5); +} +body.colorful-p-kanban .kanban ul>li:nth-of-type(8n+6) { + background-color: var(--p-kanban-color-6); +} +body.colorful-p-kanban .kanban ul>li:nth-of-type(8n+7) { + background-color: var(--p-kanban-color-7); +} +body.colorful-p-kanban .kanban ul>li:nth-of-type(8n) { + background-color: var(--p-kanban-color-8); +} +.canvas-node-container .kanban ul>li:nth-of-type(n) { + backdrop-filter:none; +} +.kanban ul>li:nth-of-type(n) { + background-color: var(--p-kanban-color-simple); + padding-left: 1em; + backdrop-filter: blur(calc(var(--blur-p-kanban-frosted-glass) * 2px)); +} +.kanban ul:first-child>li:nth-of-type(8n+1) { + border-top: 6px solid var(--p-kanban-color-1) !important; +} +.kanban ul:first-child>li:nth-of-type(8n+2) { + border-top: 6px solid var(--p-kanban-color-2) !important; +} +.kanban ul:first-child>li:nth-of-type(8n+3) { + border-top: 6px solid var(--p-kanban-color-3) !important; +} +.kanban ul:first-child>li:nth-of-type(8n+4) { + border-top: 6px solid var(--p-kanban-color-4) !important; +} +.kanban ul:first-child>li:nth-of-type(8n+5) { + border-top: 6px solid var(--p-kanban-color-5) !important; +} +.kanban ul:first-child>li:nth-of-type(8n+6) { + border-top: 6px solid var(--p-kanban-color-6) !important; +} +.kanban ul:first-child>li:nth-of-type(8n+7) { + border-top: 6px solid var(--p-kanban-color-7) !important; +} +.kanban ul:first-child>li:nth-of-type(8n) { + border-top: 6px solid var(--p-kanban-color-8) !important; +} +body.simple-p-kanban .kanban ul:first-child>li:nth-of-type(n) { + border-top: none !important; +} + +body:not(.remove-shadow-p-kanban) .kanban ul>li:hover { + transition: box-shadow .2s cubic-bezier(.4, 0, 1, 1); + box-shadow: 0 3px 5px 0 var(--p-kanban-color-shadow), 0 3px 1px -3px var(--p-kanban-color-shadow), 2px 3px 3px 0 var(--p-kanban-color-shadow); +} + +.kanban ul ul { + display: flex; + flex-direction: column; + justify-content: center; + padding: 0rem; + margin-top: 0.5rem; + border-radius: 0; + border: 0; + background: none; +} + +.kanban ul ul li:not(.task-list-item) { + width: 100%; + display: block; + background-color: var(--p-kanban-card-color-1) !important; +} + +body.remove-shadow-p-kanban .kanban ul ul li:hover { + background: var(--p-kanban-card-color-2) !important; + border-color: var(--p-kanban-border-color) !important; + border-left: 1px solid var(--p-kanban-border-color) !important; +} + +body.remove-shadow-p-kanban.theme-dark .kanban ul ul li:hover { + border-color: #696969e1 !important; + border-left: 1px solid #696969e1 !important; +} + +.kanban ul ul li .task-list-item-checkbox { + margin-left: 1.5rem !important; +} + +.kanban ul ul ul { + margin-right: 0; +} + +.kanban ul ul::before { + border-left: 0; +} + +:is(.markdown-preview-view,.markdown-rendered).is-readable-line-width.kanban .markdown-preview-sizer>div>ul { + max-width: 100%; +} + +.kanban :is(ol,ul).contains-task-list :is(ol,ul) { + position: initial; +} + +.kanban :is(ol,ul).contains-task-list :is(ol,ul)::before { + all: initial; +} + +.kanban ul > li.task-list-item { + flex: 1 1 20%; + padding: 0.1em 1em; + list-style: none; + border: 1px solid var(--p-kanban-border-color); + border-left: 1px solid var(--p-kanban-border-color) !important; + border-radius: var(--radius-s); + word-wrap: break-word; + word-break: break-word; + text-indent: 0.01em; +} + +.kanban ul ul li.task-list-item { + width: 100%; + display: block; + padding-left: 2em; + text-indent: -3em; + background-color: var(--p-kanban-card-color-1) !important; +} + +.kanban ul ul li.task-list-item .list-collapse-indicator.collapse-indicator.collapse-icon { + text-indent: -1em; +} + +body:not(.default-icons) .kanban li.task-list-item .list-collapse-indicator.collapse-indicator.collapse-icon::before { + margin-left: -0.2em; +} + +body:not(.default-icons) .kanban li.task-list-item .task-list-item.is-collapsed .list-collapse-indicator.collapse-indicator.collapse-icon::before { + transform: translateX(-0.9em) translateY(-1em) rotate(-90deg); +} + +body.colorful-p-kanban .kanban .task-list-item-checkbox { + border-color: var(--text-normal) !important; +} + +/* cssclass: colorful-highlight */ +body:not(.remove-colorful-highlight-bg) .markdown-source-view.is-live-preview *:not([class*="cm-formatting-highlight"])~*:not([class*="cm-em"])~.cm-em.cm-highlight.cm-strong, +.markdown-source-view.is-live-preview.colorful-highlight .cm-em.cm-highlight.cm-strong { + background-color: var(--bg-color-highlight-3) !important; + color: var(--color-highlight-3) !important; + -webkit-text-fill-color: unset; + font-style: normal; + font-weight: var(--font-weight-highlight-3); +} +body:not(.remove-colorful-highlight-bg) .markdown-source-view.is-live-preview *:not([class*="cm-formatting-highlight"])~*:not([class*="cm-strong"])~.cm-highlight.cm-strong, +.markdown-source-view.is-live-preview.colorful-highlight .cm-highlight.cm-strong { + background-color: var(--bg-color-highlight-2) !important; + color: var(--color-highlight-2) !important; + font-weight: var(--font-weight-highlight-2); +} +body:not(.remove-colorful-highlight-bg) .markdown-source-view.is-live-preview *:not([class*="cm-formatting-highlight"])~*:not([class*="cm-em"])~.cm-em.cm-highlight, +.markdown-source-view.is-live-preview.colorful-highlight .cm-em.cm-highlight { + background-color: var(--bg-color-highlight-1) !important; + color: var(--color-highlight-1) !important; + font-style: normal; + font-weight: var(--font-weight-highlight-1); +} +.cm-s-obsidian .cm-formatting.cm-formatting-highlight.cm-highlight~.cm-formatting.cm-highlight[class*="cm-em"]~span.cm-highlight[class*="cm-em"], +.cm-s-obsidian .cm-formatting.cm-formatting-highlight.cm-highlight~.cm-formatting.cm-highlight[class*="cm-strong"]~span.cm-highlight[class*="cm-strong"], +.cm-s-obsidian .cm-formatting.cm-formatting-highlight.cm-highlight~.cm-formatting.cm-highlight[class*="cm-em"]:not([class*="cm-formatting-highlight"]), +.cm-s-obsidian .cm-formatting.cm-formatting-highlight.cm-highlight~.cm-formatting.cm-highlight[class*="cm-strong"]:not([class*="cm-formatting-highlight"]) { + background-color: var(--text-highlight-bg) !important; +} + +/* cssclass: cloze */ +.markdown-source-view.is-live-preview.cloze .cm-highlight.cm-strikethrough:not([class*="formatting"]), +body:not(.remove-cloze-style) .markdown-source-view.is-live-preview .cm-highlight.cm-strikethrough:not([class*="formatting"]) { + background-color: var(--cloze-bg-color) !important; + color: var(--cloze-bg-color); + text-decoration: underline var(--cloze-decoration) var(--cloze-decoration-color); +} + +.markdown-source-view.is-live-preview.cloze .cm-highlight.cm-strikethrough:hover, +body:not(.remove-cloze-style) .markdown-source-view.is-live-preview .cm-highlight.cm-strikethrough:hover { + background-color: transparent !important; + color: var(--text-normal) !important; + transition: all 400ms ease-in-out; +} + + +body:not(.remove-cloze-style) .markdown-rendered mark:has(> del) { + background-color: transparent !important; +} + +body:not(.remove-cloze-style) .markdown-rendered mark:empty { + background-color: initial !important; +} + + +.markdown-source-view.is-live-preview.cloze .cm-em.cm-highlight.cm-strikethrough:not([class*="formatting"]), +body:not(.remove-cloze-style) .markdown-source-view.is-live-preview .cm-em.cm-highlight.cm-strikethrough:not([class*="formatting"]) { + color: transparent !important; + background-color: transparent !important; + padding: 0 2px; + text-decoration: underline var(--cloze-decoration-2) var(--cloze-decoration-color-2) !important; +} + + +/*========floating-toc===========*/ +div.markdown-source-view ul.floating-toc>li{ + flex:none; + background-color: transparent; + border:0px; +} +div.markdown-source-view ul.floating-toc{ + flex-wrap:unset; +} +/*=========================*/ +/*==========tags===========*/ +/*=========================*/ +/*customised colorful tags*/ +body.colorful-tag-bt .tag:not(.token):nth-child(5n+1) { + background-color: var(--tag1); +} + +body.colorful-tag-bt .tag:not(.token):nth-child(5n+2) { + background-color: var(--tag2); +} + +body.colorful-tag-bt .tag:not(.token):nth-child(5n+3) { + background-color: var(--tag3); +} + +body.colorful-tag-bt .tag:not(.token):nth-child(5n+4) { + background-color: var(--tag4); +} + +body.colorful-tag-bt .tag:not(.token):nth-child(5n) { + background-color: var(--tag5); +} + +/*rainbow tag alt*/ +body.rainbow-tag-no-filter .tag:not(.token):nth-child(5n+1) { + --tag-border-color: hsla(var(--accent-h), var(--accent-s), var(--accent-l), 20%); + background-color: var(--theme-color-translucent-01); + color: var(--theme-color); +} + +body.rainbow-tag-no-filter .tag:not(.token):nth-child(5n+2) { + --tag-border-color: hsla(calc(var(--accent-h) + 70), var(--accent-s), var(--accent-l), 20%); + background-color: hsla(calc(var(--accent-h) + 70), var(--accent-s), var(--accent-l), 10%) !important; + color: hsl(calc(var(--accent-h) + 70), var(--accent-s), var(--accent-l-alt)) !important; +} + +body.rainbow-tag-no-filter .tag:not(.token):nth-child(5n+3) { + --tag-border-color: hsla(calc(var(--accent-h) + 140), var(--accent-s), var(--accent-l), 20%); + background-color: hsla(calc(var(--accent-h) + 140), var(--accent-s), var(--accent-l), 10%) !important; + color: hsl(calc(var(--accent-h) + 140), var(--accent-s), var(--accent-l-alt)) !important; +} + +body.rainbow-tag-no-filter .tag:not(.token):nth-child(5n+4) { + --tag-border-color: hsla(calc(var(--accent-h) + 210), var(--accent-s), var(--accent-l), 20%); + background-color: hsla(calc(var(--accent-h) + 210), var(--accent-s), var(--accent-l), 10%) !important; + color: hsl(calc(var(--accent-h) + 210), var(--accent-s), var(--accent-l-alt)) !important; +} + +body.rainbow-tag-no-filter .tag:not(.token):nth-child(5n) { + --tag-border-color: hsla(calc(var(--accent-h) + 280), var(--accent-s), var(--accent-l), 20%); + background-color: hsla(calc(var(--accent-h) + 280), var(--accent-s), var(--accent-l), 10%) !important; + color: hsl(calc(var(--accent-h) + 280), var(--accent-s), var(--accent-l-alt)) !important; +} + + +body.rainbow-tag-no-filter .tag:not(.token):nth-child(5n):hover { + color: white !important; + background-color: hsl(calc(var(--accent-h) + 280), var(--accent-s), var(--accent-l)) !important; +} +body.rainbow-tag-no-filter .tag:not(.token):nth-child(5n+1):hover { + color: white !important; + background-color: hsl(var(--accent-h), var(--accent-s), var(--accent-l)) !important; +} +body.rainbow-tag-no-filter .tag:not(.token):nth-child(5n+2):hover { + color: white !important; + background-color: hsl(calc(var(--accent-h) + 70), var(--accent-s), var(--accent-l)) !important; +} +body.rainbow-tag-no-filter .tag:not(.token):nth-child(5n+3):hover { + color: white !important; + background-color: hsl(calc(var(--accent-h) + 140), var(--accent-s), var(--accent-l)) !important; +} +body.rainbow-tag-no-filter .tag:not(.token):nth-child(5n+4):hover { + color: white !important; + background-color: hsl(calc(var(--accent-h) + 210), var(--accent-s), var(--accent-l)) !important; +} + +body.rainbow-tag-no-filter .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+1), +body.rainbow-tag-no-filter .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+1)+span.cm-hashtag, +body.rainbow-tag-no-filter .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+1)+.cm-hashtag.cm-meta, +body.rainbow-tag-no-filter .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+1)+span.cm-hashtag.cm-meta+span.cm-hashtag.cm-hashtag-end { + --tag-border-color: hsla(var(--accent-h), var(--accent-s), var(--accent-l), 20%); + background-color: var(--theme-color-translucent-01) !important; + color: var(--theme-color) !important; +} + +body.rainbow-tag-no-filter .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+2), +body.rainbow-tag-no-filter .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+2)+span.cm-hashtag, +body.rainbow-tag-no-filter .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+2)+.cm-hashtag.cm-meta, +body.rainbow-tag-no-filter .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+2)+span.cm-hashtag.cm-meta+span.cm-hashtag.cm-hashtag-end { + --tag-border-color: hsla(calc(var(--accent-h) + 210), var(--accent-s), var(--accent-l), 20%); + background-color: hsla(calc(var(--accent-h) + 210), var(--accent-s), var(--accent-l), 10%) !important; + color: hsl(calc(var(--accent-h) + 210), var(--accent-s), var(--accent-l-alt)) !important; +} + +body.rainbow-tag-no-filter .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+3), +body.rainbow-tag-no-filter .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+3)+span.cm-hashtag, +body.rainbow-tag-no-filter .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+3)+.cm-hashtag.cm-meta, +body.rainbow-tag-no-filter .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+3)+span.cm-hashtag.cm-meta+span.cm-hashtag.cm-hashtag-end { + --tag-border-color: hsla(calc(var(--accent-h) + 70), var(--accent-s), var(--accent-l), 20%); + background-color: hsla(calc(var(--accent-h) + 70), var(--accent-s), var(--accent-l), 10%) !important; + color: hsl(calc(var(--accent-h) + 70), var(--accent-s), var(--accent-l-alt)) !important; +} + +body.rainbow-tag-no-filter .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+4), +body.rainbow-tag-no-filter .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+4)+span.cm-hashtag, +body.rainbow-tag-no-filter .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+4)+.cm-hashtag.cm-meta, +body.rainbow-tag-no-filter .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+4)+span.cm-hashtag.cm-meta+span.cm-hashtag.cm-hashtag-end { + --tag-border-color: hsla(calc(var(--accent-h) + 280), var(--accent-s), var(--accent-l), 20%); + background-color: hsla(calc(var(--accent-h) + 280), var(--accent-s), var(--accent-l), 10%) !important; + color: hsl(calc(var(--accent-h) + 280), var(--accent-s), var(--accent-l-alt)) !important; +} + +body.rainbow-tag-no-filter .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n), +body.rainbow-tag-no-filter .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n)+span.cm-hashtag, +body.rainbow-tag-no-filter .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n)+.cm-hashtag.cm-meta, +body.rainbow-tag-no-filter .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n)+span.cm-hashtag.cm-meta+span.cm-hashtag.cm-hashtag-end { + --tag-border-color: hsla(calc(var(--accent-h) + 140), var(--accent-s), var(--accent-l), 20%); + background-color: hsla(calc(var(--accent-h) + 140), var(--accent-s), var(--accent-l), 10%) !important; + color: hsl(calc(var(--accent-h) + 140), var(--accent-s), var(--accent-l-alt)) !important; +} + + + +/*rainbow tag*/ +body.rainbow-tag .tag:not(.token):nth-child(5n+1) { + background-color: var(--theme-color-translucent-01); + color: var(--theme-color); +} + +body.rainbow-tag .tag:not(.token):nth-child(5n+2) { + background-color: var(--theme-color-translucent-01); + color: var(--theme-color); + filter: hue-rotate(70deg); +} + +body.rainbow-tag .tag:not(.token):nth-child(5n+3) { + background-color: var(--theme-color-translucent-01); + color: var(--theme-color); + filter: hue-rotate(140deg); +} + +body.rainbow-tag .tag:not(.token):nth-child(5n+4) { + background-color: var(--theme-color-translucent-01); + color: var(--theme-color); + filter: hue-rotate(210deg); +} + +body.rainbow-tag .tag:not(.token):nth-child(5n) { + background-color: var(--theme-color-translucent-01); + color: var(--theme-color); + filter: hue-rotate(280deg); +} + +body.rainbow-tag .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+1), +body.rainbow-tag .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+1)+span.cm-hashtag, +body.rainbow-tag .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+1)+.cm-hashtag.cm-meta, +body.rainbow-tag .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+1)+span.cm-hashtag.cm-meta+span.cm-hashtag.cm-hashtag-end { + background-color: var(--theme-color-translucent-01) !important; + color: var(--theme-color) !important; +} + +body.rainbow-tag .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+2), +body.rainbow-tag .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+2)+span.cm-hashtag, +body.rainbow-tag .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+2)+.cm-hashtag.cm-meta, +body.rainbow-tag .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+2)+span.cm-hashtag.cm-meta+span.cm-hashtag.cm-hashtag-end { + background-color: var(--theme-color-translucent-01) !important; + color: var(--theme-color) !important; + filter: hue-rotate(210deg); +} + +body.rainbow-tag .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+3), +body.rainbow-tag .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+3)+span.cm-hashtag, +body.rainbow-tag .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+3)+.cm-hashtag.cm-meta, +body.rainbow-tag .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+3)+span.cm-hashtag.cm-meta+span.cm-hashtag.cm-hashtag-end { + background-color: var(--theme-color-translucent-01) !important; + color: var(--theme-color) !important; + filter: hue-rotate(70deg); +} + +body.rainbow-tag .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+4), +body.rainbow-tag .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+4)+span.cm-hashtag, +body.rainbow-tag .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+4)+.cm-hashtag.cm-meta, +body.rainbow-tag .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+4)+span.cm-hashtag.cm-meta+span.cm-hashtag.cm-hashtag-end { + background-color: var(--theme-color-translucent-01) !important; + color: var(--theme-color) !important; + filter: hue-rotate(280deg); +} + +body.rainbow-tag .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n), +body.rainbow-tag .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n)+span.cm-hashtag, +body.rainbow-tag .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n)+.cm-hashtag.cm-meta, +body.rainbow-tag .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n)+span.cm-hashtag.cm-meta+span.cm-hashtag.cm-hashtag-end { + background-color: var(--theme-color-translucent-01) !important; + color: var(--theme-color) !important; + filter: hue-rotate(140deg); +} + + +/*tag font size and font family*/ +body.colorful-tag-bt a.tag:not(.token) { + font-size: var(--font-size-tag); + font-family: var(--font-family-tag) !important; + border: none; + color: var(--tag-text); + text-align: center; + text-decoration: none; + cursor: pointer; +} + +body:not(.tag-default) .tag:not(.token):hover { + color: white !important; + background-color: var(--theme-color) !important; +} + +body:is(:not(.tag-default),:not(.font-family-change-to-default)) .cm-s-obsidian span.cm-hashtag { + font-family: var(--font-family-tag); + font-size: var(--font-size-tag) !important; + text-decoration: none; +} + +body:not(.tag-default) .cm-s-obsidian span.cm-hashtag-begin { + border-top-left-radius: var(--radius-l); + border-bottom-left-radius: var(--radius-l); + border-right: none !important; + text-decoration: none; + padding-left: 0.3em; +} + +body:not(.tag-default) .cm-s-obsidian span.cm-hashtag-end { + border-radius: 0 var(--radius-l) var(--radius-l) 0; + padding-right: 0.3em !important; + border-left: none; + text-decoration: none; +} + +body:not(.tag-default) .cm-s-obsidian span.cm-hashtag-begin+.cm-hashtag.cm-meta { + padding-right: 0; + border-left: none !important; +} + +body:is(.rainbow-tag,.tag-pill-outlined,.tag-clear-style,.colorful-tag-bt) .cm-s-obsidian span:is(.cm-hashtag,.cm-hashtag-begin,.cm-hashtag-end,.cm-hashtag-begin+.cm-hashtag.cm-meta,.cm-hashtag-begin+.cm-hashtag.cm-meta+span.cm-hashtag.cm-meta.cm-hashtag-end) { + color: var(--tag-text) ; +} + + +body:not(.tag-default) .cm-s-obsidian span.cm-hashtag-begin+.cm-hashtag.cm-meta+span.cm-hashtag.cm-meta.cm-hashtag-end { + padding-left: 0; + border-top-right-radius: var(--radius-l); + border-bottom-right-radius: var(--radius-l); + border-top-left-radius: 0; + border-bottom-left-radius: 0; + padding-right: 0.3em; +} + +body:not(.tag-default).tag-pill-outlined .tag:not(.token) { + color: var(--text-normal); + background-color: transparent !important; + border: var(--tag-border-width) solid; + padding: 0px 8px; +} + +a.tag, +.editor .cl-hashtag, +.cm-hashtag { + padding-top: 0.1em; + padding-bottom: 0.1em; +} +.is-live-preview a.tag { + line-height: 1.8; +} +body.tag-pill-outlined .tag:not(.token):nth-child(5n+1) { + border-color: var(--tag1); + color: var(--tag1); +} +body.tag-pill-outlined .tag:not(.token):nth-child(5n+2) { + border-color: var(--tag2); + color: var(--tag2); +} +body.tag-pill-outlined .tag:not(.token):nth-child(5n+3) { + border-color: var(--tag3); + color: var(--tag3); +} +body.tag-pill-outlined .tag:not(.token):nth-child(5n+4) { + border-color: var(--tag4); + color: var(--tag4); +} +body.tag-pill-outlined .tag:not(.token):nth-child(5n) { + border-color: var(--tag5); + color: var(--tag5); +} + +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag, +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin, +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-end, +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin+.cm-hashtag.cm-meta, +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin+.cm-hashtag.cm-meta+span.cm-hashtag.cm-meta.cm-hashtag-end { + color: var(--text-normal) !important; +} + +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+1), +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+1)+span.cm-hashtag, +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+1)+.cm-hashtag.cm-meta, +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+1)+span.cm-hashtag.cm-meta+span.cm-hashtag.cm-hashtag-end { + border: var(--tag-border-width) solid var(--tag1); + background-color: transparent !important; + color: var(--tag1) !important; +} + +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+2), +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+2)+span.cm-hashtag, +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+2)+.cm-hashtag.cm-meta, +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+2)+span.cm-hashtag.cm-meta+span.cm-hashtag.cm-hashtag-end { + border: var(--tag-border-width) solid var(--tag2); + background-color: transparent !important; + color: var(--tag2) !important; +} + +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+3), +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+3)+span.cm-hashtag, +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+3)+.cm-hashtag.cm-meta, +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+3)+span.cm-hashtag.cm-meta+span.cm-hashtag.cm-hashtag-end { + border: var(--tag-border-width) solid var(--tag3); + background-color: transparent !important; + color: var(--tag3) !important; +} + +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+4), +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+4)+span.cm-hashtag, +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+4)+.cm-hashtag.cm-meta, +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+4)+span.cm-hashtag.cm-meta+span.cm-hashtag.cm-hashtag-end { + border: var(--tag-border-width) solid var(--tag4); + background-color: transparent !important; + color: var(--tag4) !important; +} + +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n), +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n)+span.cm-hashtag, +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n)+.cm-hashtag.cm-meta, +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n)+span.cm-hashtag.cm-meta+span.cm-hashtag.cm-hashtag-end { + border: var(--tag-border-width) solid var(--tag5); + background-color: transparent !important; + color: var(--tag5) !important; +} + + +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin:nth-child(n)+span.cm-hashtag:not([class*="-end"]), +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin:nth-child(n)+.cm-hashtag.cm-meta:not([class*="-end"]) { + border-left: none; + border-right: none; +} + +body.tag-pill-outlined .cm-s-obsidian span.cm-hashtag-begin:nth-child(n)+span.cm-hashtag.cm-meta+span.cm-hashtag.cm-hashtag-end { + border-left: none; +} + +body.tag-clear-style .tag:not(.token):nth-child(n) { + background-color: transparent; + border: none; + color: var(--text-accent); + text-decoration: underline; + padding: 0 2px; +} + +body.tag-clear-style .tag:not(.token):nth-child(n):hover { + background-color: var(--theme-color-translucent-015) !important; +} + +body.tag-clear-style .cm-s-obsidian span.cm-hashtag-begin, +body.tag-clear-style .cm-s-obsidian span.cm-hashtag-begin+.cm-hashtag.cm-meta, +body.tag-clear-style .cm-s-obsidian span.cm-hashtag-end, +body.tag-clear-style .cm-s-obsidian span.cm-hashtag-begin+span.cm-hashtag.cm-meta.cm-hashtag-end, +body.tag-clear-style .cm-s-obsidian span.cm-hashtag-begin+.cm-hashtag.cm-meta { + background-color: transparent; + border: none; + color: var(--text-accent) !important; + text-decoration: underline; + padding: 0; +} + +body.tag-clear-style .cm-s-obsidian span.cm-hashtag-begin+span.cm-hashtag.cm-meta+span.cm-hashtag.cm-hashtag-end { + background-color: transparent; +} + +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) .cm-formatting.cm-formatting-hashtag.cm-hashtag.cm-hashtag-begin.cm-meta.cm-tag-dailynote, +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) .cm-formatting.cm-formatting-hashtag.cm-hashtag.cm-hashtag-begin.cm-meta.cm-tag-weeklynote, +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) .cm-formatting.cm-formatting-hashtag.cm-hashtag.cm-hashtag-begin.cm-meta.cm-tag-ideas, +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) .cm-formatting.cm-formatting-hashtag.cm-hashtag.cm-hashtag-begin.cm-meta.cm-tag-inprogress, +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) .cm-formatting.cm-formatting-hashtag.cm-hashtag.cm-hashtag-begin.cm-meta.cm-tag-important, +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) .cm-formatting.cm-formatting-hashtag.cm-hashtag.cm-hashtag-begin.cm-meta.cm-tag-questions, +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) .cm-formatting.cm-formatting-hashtag.cm-hashtag.cm-hashtag-begin.cm-meta.cm-tag-complete { + font-weight: 600; + font-family: var(--font-family-special-tag) !important; + display: inline; + color: var(--white) !important; +} + +body.colorful-tag-bt .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+1), +body.colorful-tag-bt .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+1)+span.cm-hashtag, +body.colorful-tag-bt .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+1)+.cm-hashtag.cm-meta, +body.colorful-tag-bt .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+1)+span.cm-hashtag.cm-meta+span.cm-hashtag.cm-hashtag-end { + background-color: var(--tag1); +} + +body.colorful-tag-bt .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+2), +body.colorful-tag-bt .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+2)+span.cm-hashtag, +body.colorful-tag-bt .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+2)+.cm-hashtag.cm-meta, +body.colorful-tag-bt .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+2)+span.cm-hashtag.cm-meta+span.cm-hashtag.cm-hashtag-end { + background-color: var(--tag2); +} + +body.colorful-tag-bt .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+3), +body.colorful-tag-bt .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+3)+span.cm-hashtag, +body.colorful-tag-bt .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+3)+.cm-hashtag.cm-meta, +body.colorful-tag-bt .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+3)+span.cm-hashtag.cm-meta+span.cm-hashtag.cm-hashtag-end { + background-color: var(--tag3); +} + +body.colorful-tag-bt .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+4), +body.colorful-tag-bt .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+4)+span.cm-hashtag, +body.colorful-tag-bt .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+4)+.cm-hashtag.cm-meta, +body.colorful-tag-bt .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n+4)+span.cm-hashtag.cm-meta+span.cm-hashtag.cm-hashtag-end { + background-color: var(--tag4); +} + +body.colorful-tag-bt .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n), +body.colorful-tag-bt .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n)+span.cm-hashtag, +body.colorful-tag-bt .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n)+.cm-hashtag.cm-meta, +body.colorful-tag-bt .cm-s-obsidian span.cm-hashtag-begin:nth-child(5n)+span.cm-hashtag.cm-meta+span.cm-hashtag.cm-hashtag-end { + background-color: var(--tag5); +} + + +/*special tags*/ +body.tag-pill-outlined .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) span.cm-hashtag.cm-meta.cm-hashtag-end:is(.cm-tag-important,.cm-tag-complete,.cm-tag-ideas,.cm-tag-questions,.cm-tag-weeklynote,.cm-tag-dailynote,.cm-tag-inprogress):not(.cm-formatting-hashtag) { + border-top: var(--tag-border-width) solid var(--tag1); + border-bottom: var(--tag-border-width) solid var(--tag1); +} + +body:not(.tag-default) .tag[href ^="#important"]:not(.token) { + background-color: var(--stag1-bg) !important; + font-weight: 600; + font-family: var(--font-family-special-tag) !important; + color: var(--white) !important; + filter: hue-rotate(0) !important; +} + +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) span.cm-hashtag.cm-meta.cm-hashtag-end.cm-tag-important:not(.cm-formatting-hashtag) { + font-family: var(--font-family-special-tag) !important; + font-weight: 600; + background-color: var(--stag1-bg) !important; + color: var(--white) !important; + font-size: calc(var(--font-size-tag) - 0.3em); + filter: hue-rotate(0) !important; +} + +body:not(.tag-default) .tag[href^="#重要"]:not(.token) { + background-color: var(--stag1-bg) !important; + font-weight: 600; + font-family: Webdings, 'Microsoft YaHei'; + color: var(--white) !important; + filter: hue-rotate(0) !important; +} + +body:not(.tag-default) .tag[href^="#complete"]:not(.token) { + background-color: var(--stag3-bg) !important; + font-weight: 600; + font-family: var(--font-family-special-tag) !important; + color: var(--white) !important; + filter: hue-rotate(0) !important; +} + +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) span.cm-hashtag.cm-meta.cm-hashtag-end.cm-tag-complete:not(.cm-formatting-hashtag) { + font-family: var(--font-family-special-tag) !important; + font-weight: 600; + background-color: var(--stag3-bg) !important; + color: var(--white) !important; + font-size: 0.95em; + filter: hue-rotate(0) !important; +} + +body:not(.tag-default) .tag[href^="#完成"]:not(.token) { + background-color: var(--stag3-bg) !important; + font-family: Origin, 'Microsoft YaHei'; + font-weight: 600; + color: var(--white) !important; + filter: hue-rotate(0) !important; +} + +body:not(.tag-default) .tag[href ^="#inprogress"]:not(.token) { + background-color: var(--stag2-bg) !important; + font-weight: 600; + font-family: var(--font-family-special-tag) !important; + color: var(--white) !important; + filter: hue-rotate(0) !important; +} + +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) span.cm-hashtag.cm-meta.cm-hashtag-end.cm-tag-inprogress:not(.cm-formatting-hashtag) { + font-family: var(--font-family-special-tag) !important; + font-weight: 600; + background-color: var(--stag2-bg) !important; + color: var(--white) !important; + font-size: 0.95em; + filter: hue-rotate(0) !important; +} + +body:not(.tag-default) .tag[href ^="#进行中"]:not(.token) { + background-color: var(--stag2-bg) !important; + font-weight: 600; + font-family: Wingdings, 'Microsoft YaHei'; + color: var(--white) !important; + filter: hue-rotate(0) !important; +} + +body:not(.tag-default) .tag[href ^="#dailynote"]:not(.token) { + background-color: var(--tag-dailynote-bg) !important; + font-weight: 600; + font-family: var(--font-family-special-tag) !important; + color: var(--white) !important; + filter: hue-rotate(0) !important; +} + +body:not(.tag-default) .tag[href ^="#dailynote"]::after { + content: ' 🐈'; + font-size: var(--font-size-emoji-after-tag); +} + +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) span.cm-tag-dailynote:not(.cm-formatting-hashtag)::after { + content: ' 🐈'; +} + +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) span.cm-hashtag.cm-meta.cm-hashtag-end.cm-tag-dailynote:not(.cm-formatting-hashtag) { + font-family: var(--font-family-special-tag) !important; + font-weight: 600; + background-color: var(--tag-dailynote-bg) !important; + color: var(--white) !important; + font-size: 0.95em; + filter: hue-rotate(0) !important; +} + +body:not(.tag-default) .tag[href ^="#weeklynote"]:not(.token) { + background-color: var(--tag-weeklynote-bg) !important; + font-weight: 600; + font-family: var(--font-family-special-tag) !important; + color: var(--white) !important; + filter: hue-rotate(0) !important; +} + +body:not(.tag-default) .tag[href^="#weeklynote"]::after { + content: ' 🥑'; + font-size: var(--font-size-emoji-after-tag); +} + +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) span.cm-tag-weeklynote:not(.cm-formatting-hashtag)::after { + content: ' 🥑'; +} + +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) .cm-hashtag.cm-meta.cm-hashtag-end.cm-tag-weeklynote:not(.cm-formatting-hashtag) { + font-family: var(--font-family-special-tag) !important; + font-weight: 600; + background-color: var(--tag-weeklynote-bg) !important; + color: var(--white) !important; + font-size: 0.95em; + filter: hue-rotate(0) !important; +} + +body:not(.tag-default) .tag[href ^="#questions"]:not(.token) { + background-color: var(--tag-questions-bg) !important; + font-weight: 600; + font-family: var(--font-family-special-tag) !important; + color: var(--white) !important; + filter: hue-rotate(0) !important; +} + +body:not(.tag-default) .tag[href^="#questions"]::after { + content: ' ❓'; + font-size: var(--font-size-emoji-after-tag); +} + +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) span.cm-tag-questions:not(.cm-formatting-hashtag)::after { + content: ' ❓'; +} + +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) span.cm-hashtag.cm-meta.cm-hashtag-end.cm-tag-questions:not(.cm-formatting-hashtag) { + font-family: var(--font-family-special-tag) !important; + font-weight: 600; + background-color: var(--tag-questions-bg) !important; + color: var(--white) !important; + font-size: 0.95em; + filter: hue-rotate(0) !important; +} + +body:not(.tag-default) .tag[href ^="#ideas"]:not(.token) { + background-color: var(--tag-ideas-bg) !important; + font-weight: 600; + font-family: var(--font-family-special-tag) !important; + color: var(--white) !important; + filter: hue-rotate(0) !important; +} + +body:not(.tag-default) .tag[href^="#ideas"]::after { + content: ' 💡'; + font-size: var(--font-size-emoji-after-tag); +} + +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) span.cm-tag-ideas:not(.cm-formatting-hashtag)::after { + content: ' 💡'; +} + +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) span.cm-hashtag.cm-meta.cm-hashtag-end.cm-tag-ideas:not(.cm-formatting-hashtag) { + background-color: var(--tag-ideas-bg) !important; + font-family: var(--font-family-special-tag) !important; + font-weight: 600; + color: var(--white) !important; + font-size: 0.95em; +} + +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) .cm-formatting.cm-formatting-hashtag.cm-hashtag.cm-hashtag-begin.cm-meta.cm-tag-important { + background-color: var(--stag1-bg) !important; + filter: hue-rotate(0) !important; +} + +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) .cm-formatting.cm-formatting-hashtag.cm-hashtag.cm-hashtag-begin.cm-meta.cm-tag-weeklynote { + background-color: var(--tag-weeklynote-bg) !important; + filter: hue-rotate(0) !important; +} + +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) .cm-formatting.cm-formatting-hashtag.cm-hashtag.cm-hashtag-begin.cm-meta.cm-tag-dailynote { + background-color: var(--tag-dailynote-bg) !important; + filter: hue-rotate(0) !important; +} + +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) .cm-formatting.cm-formatting-hashtag.cm-hashtag.cm-hashtag-begin.cm-meta.cm-tag-ideas { + background-color: var(--tag-ideas-bg) !important; + filter: hue-rotate(0) !important; +} +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) .cm-formatting.cm-formatting-hashtag.cm-hashtag.cm-hashtag-begin.cm-meta.cm-tag-inprogress { + background-color: var(--stag2-bg) !important; + filter: hue-rotate(0) !important; +} + +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) .cm-formatting.cm-formatting-hashtag.cm-hashtag.cm-hashtag-begin.cm-meta.cm-tag-questions { + background-color: var(--tag-questions-bg) !important; + filter: hue-rotate(0) !important; +} +body:not(.tag-default) .cm-s-obsidian:not([class="markdown-source-view cm-s-obsidian mod-cm6"]) .cm-formatting.cm-formatting-hashtag.cm-hashtag.cm-hashtag-begin.cm-meta.cm-tag-complete { + background-color: var(--stag3-bg) !important; + filter: hue-rotate(0) !important; +} + +/*source mode*/ +div[class="markdown-source-view cm-s-obsidian mod-cm6"] span.cm-hashtag { + background-color: transparent !important; + color: var(--text-muted) !important; + text-decoration: underline; +} + +div[class="markdown-source-view cm-s-obsidian mod-cm6"] span.cm-hashtag, +div[class="markdown-source-view cm-s-obsidian mod-cm6"] span.cm-hashtag-begin, +div[class="markdown-source-view cm-s-obsidian mod-cm6"] span.cm-hashtag-end, +div[class="markdown-source-view cm-s-obsidian mod-cm6"] span.cm-hashtag-begin+.cm-hashtag.cm-meta { + padding: 0 !important; +} + +/*thanks to Klaas from Obsidian Members Group on discord*/ +/* Selection highlight */ +.suggestion-item.is-selected { + background-color: var(--theme-color-translucent-015); +} + +:is(.markdown-preview-view,.markdown-rendered):not([class*="kanban-plugin"]) { + position: relative; + overflow-y: auto; + overflow-wrap: break-word; + color: var(--text-normal); + user-select: text; +} + +/*edit mode font size*/ +pre.CodeMirror-line { + font-size: var(--font-size-edit-normal) !important; +} + +/*preview mode font size*/ +p { + font-size: var(--font-size-preview-normal); +} + +:is(.markdown-preview-view,.markdown-rendered) p { + margin-block-start: calc(var(--paragraph-spacing) * 1em); + margin-block-end: calc(var(--paragraph-spacing) * 1em); +} + + +:is(.markdown-preview-view,.markdown-rendered) :is(ol,ul) { + margin-block-start: calc((var(--paragraph-spacing) - 1) * 1em); + margin-block-end: calc((var(--paragraph-spacing) - 1) * 1em); +} +body.toggle-paragraph-spacing :is(.markdown-preview-view,.markdown-rendered) p>br { + content:" "; + margin-top: calc((var(--paragraph-spacing) - 1) * 1em); + display: block; +} + +body.toggle-left-aligned-content .markdown-source-view.mod-cm6.is-readable-line-width:not(.is-rtl) .cm-scroller > *:first-child { + margin-left: 0; +} + +body.toggle-left-aligned-content :is(.markdown-preview-view,.markdown-rendered).is-readable-line-width:not(.matrix) .markdown-preview-sizer, .markdown-source-view.is-readable-line-width:not(.matrix) .CodeMirror, :is(.markdown-preview-view,.markdown-rendered):not(.matrix) .is-readable-line-width :is(.markdown-preview-section,.markdown-rendered), :is(.markdown-preview-view,.markdown-rendered):not(.matrix) .is-readable-line-width :is(.markdown-preview-section,.markdown-rendered) > div, :is(.markdown-preview-view,.markdown-rendered).is-readable-line-width:not(.matrix) :is(.markdown-preview-section,.markdown-rendered) { + margin-left: 0; +} + +.markdown-source-view.mod-cm6 div.cm-line:not(.HyperMD-codeblock) { + padding-bottom: calc((var(--paragraph-spacing) - 1) * 1em) ; +} + +body.text-indentation-two-em .markdown-source-view.mod-cm6 div.cm-line:not(.HyperMD-header), +.markdown-source-view.mod-cm6.indent div.cm-line:not(.HyperMD-header) { + text-indent: 2em; +} + +body.text-indentation-two-em .markdown-source-view.mod-cm6 div.cm-line:not(.HyperMD-header) .cm-hmd-frontmatter:first-of-type, +.markdown-source-view.mod-cm6.indent div.cm-line:not(.HyperMD-header) .cm-hmd-frontmatter:first-of-type { + margin-left: -2em; +} +body.text-indentation-two-em .markdown-source-view.mod-cm6 div.has-banner.cm-line:not(.HyperMD-header) .cm-def.cm-hmd-frontmatter, +body.text-indentation-two-em .markdown-source-view.mod-cm6 div.has-banner.cm-line:not(.HyperMD-header) .collapse-indicator, +.markdown-source-view.mod-cm6.indent div.has-banner.cm-line:not(.HyperMD-header) .cm-def.cm-hmd-frontmatter, +.markdown-source-view.mod-cm6.indent div.has-banner.cm-line:not(.HyperMD-header) .collapse-indicator { + margin-left: 0; + left: -3em; +} + +body.text-indentation-two-em [data-type="markdown"] div[class="el-p"]:not(blockquote) > p, +[data-type="markdown"] :is(.markdown-preview-view,.markdown-rendered).indent div[class="el-p"]:not(blockquote) > p { + text-indent: 2em; +} + + +body.text-indentation-two-em [data-type="markdown"] div[class="el-p"]:not(blockquote) > p>br, +[data-type="markdown"] :is(.markdown-preview-view,.markdown-rendered).indent div[class="el-p"]:not(blockquote) > p>br { + content: ' '; + white-space: pre; + line-height: calc((var(--paragraph-spacing) + 0.3) * 1em); + display:unset; +} +body.text-indentation-two-em [data-type="markdown"] div[class="el-p"]:not(blockquote) > p>br::after, +[data-type="markdown"] :is(.markdown-preview-view,.markdown-rendered).indent div[class="el-p"]:not(blockquote) >p>br::after { + content: '\A\9\9'; +} + +body.justify-align div[data-type="markdown"] div.cm-line:not(.HyperMD-codeblock), +body.justify-align div[data-type="markdown"] :is(.markdown-preview-view,.markdown-rendered), +.markdown-source-view.text-justify div.cm-line:not(.HyperMD-codeblock), +:is(.markdown-preview-view,.markdown-rendered).text-justify { + text-align: justify; + hyphens: auto; +} + +/*edit mode blockquote font size*/ +.cm-s-obsidian span.cm-quote { + font-size: var(--font-size-edit-blockquote); +} + +.CodeMirror-code span.cm-formatting.cm-formatting-quote.cm-formatting-quote.cm-quote::before { + content: ""; + border-left: 7px solid var(--theme-color); + border-radius: 0; /*5px 0 0 5px;*/ + height: 100%; + margin-left: -7px; + position: absolute; +} + +.markdown-source-view.mod-cm6 .cm-blockquote-border { + border-color: var(--theme-color); +} + +.CodeMirror-line span.cm-formatting-quote + *::before, +.CodeMirror-line span.cm-formatting-quote + span.cm-hmd-indent-in-quote + span.cm-quote:not(.cm-formatting-quote)::before, +.CodeMirror-line span.cm-inline-code + *::before, +.CodeMirror-line span.cm-highlight + *::before, +.CodeMirror-line span.cm-quote + *::before, +.CodeMirror-line span.cm-hmd-html-end + *::before, +.CodeMirror-line span.cm-formatting-math + *::before { + border-left: none; +} + +/*Quote (> lorem ipsum ...) in edit mode with left border rendered instead of >*/ +div:not(.CodeMirror-activeline)>.CodeMirror-line span.cm-formatting-quote { + color: transparent !important; +} + +.CodeMirror-line span.cm-formatting-quote { + color: var(--red) !important; +} + +.HyperMD-quote.CodeMirror-line { + background-color: var(--background-blockquote); +} + +.cm-quote:not([class*="link"]):not([class*="string"]):not([class*="em"]):not([class*="strong"]) { + color: var(--text-normal); +} + +/* highlight */ +:is(.markdown-preview-view,.markdown-rendered) mark { + background-color: var(--text-highlight-bg); + padding: 1px 2px; + color: var(--text-highlight); + border-radius: var(--radius-xs); +} + +.cm-s-obsidian span.cm-highlight, +.cm-highlight.cm-quote { + color: var(--text-highlight); + padding: 2px 0 1px 0; +} + +body:not(.no-rounded-corners-highlight):not(.all-rounded-corners-highlight) .cm-s-obsidian .cm-widgetBuffer[aria-hidden="true"]+span.cm-highlight:has(+ .cm-widgetBuffer[aria-hidden="true"]) { + border-radius: 3px; + padding: 1px 2px; +} + +.cm-s-obsidian span.cm-formatting-highlight { + border-radius: 3px 0 0 3px; +} + +.cm-s-obsidian span[class="cm-highlight"]+span.cm-formatting-highlight, +.cm-s-obsidian span[class*="cm-highlight"][class*="cm-list"]+span.cm-formatting-highlight, +.cm-s-obsidian span[class*="cm-highlight"][class*="cm-quote"]+span.cm-formatting-highlight, +.cm-s-obsidian span[class*="cm-highlight"][class*="cm-header"]+span.cm-formatting-highlight, +.cm-s-obsidian span[class*="cm-highlight"][class*="cm-formatting-code"][class*="cm-inline-code"]+span.cm-formatting-highlight, +.cm-s-obsidian span[class*="cm-highlight"][class*="cm-formatting-link"]+span.cm-formatting-highlight, +.cm-s-obsidian span[class*="cm-highlight"][class*="cm-hmd-internal-link"]+span.cm-formatting-highlight, +.cm-s-obsidian span[class*="cm-highlight"][class*="cm-strong"]+span.cm-formatting-highlight, +.cm-s-obsidian span[class*="cm-highlight"][class*="cm-em"]+span.cm-formatting-highlight, +.cm-s-obsidian span[class*="cm-highlight"][class*="strikethrough"]+span.cm-formatting-highlight { + border-radius: 0 3px 3px 0; +} + +span.cm-formatting.cm-formatting-code.cm-highlight.cm-inline-code, +span.cm-highlight.cm-inline-code { + border-radius: 0; + padding: 2px 0 1px !important; +} + +.theme-dark .cm-formatting.cm-formatting-highlight.cm-strong.cm-em.cm-highlight { + background-image: initial; + background-clip: initial; + -webkit-background-clip: initial; + -webkit-text-fill-color: initial; + background-color: var(--text-highlight-bg); + color: var(--text-highlight); +} + +.CodeMirror-lines span.cm-strong.cm-em.cm-highlight { + padding: 0 1px 1px; +} + +/*cloze*/ +body:not(.remove-cloze-style) :is(.markdown-preview-view,.markdown-rendered) mark > del, +:is(.markdown-preview-view, +.markdown-rendered).cloze mark > del { + background-color: var(--cloze-bg-color); + color: var(--cloze-bg-color); + text-decoration: underline var(--cloze-decoration) var(--cloze-decoration-color); + border-radius:5px; + padding:2px; +} + +body:not(.remove-cloze-style) .cm-s-obsidian .cm-formatting.cm-formatting-highlight.cm-highlight~span.cm-formatting-strikethrough.cm-highlight.cm-strikethrough~span.cm-highlight.cm-strikethrough:not(.cm-em), +body:not(.remove-cloze-style) .cm-s-obsidian .cm-formatting.cm-formatting-highlight.cm-highlight~span.cm-formatting-strikethrough.cm-highlight.cm-strikethrough, +.markdown-source-view.cloze .cm-formatting.cm-formatting-highlight.cm-highlight~span.cm-formatting-strikethrough.cm-highlight.cm-strikethrough~span.cm-highlight.cm-strikethrough:not(.cm-em), +.markdown-source-view.cloze *:not([class*="cm-formatting-em"]).cm-formatting.cm-formatting-highlight.cm-highlight~span.cm-formatting-strikethrough.cm-highlight.cm-strikethrough { + text-decoration: underline var(--cloze-decoration) var(--cloze-decoration-color); + background-color: transparent !important; +} + +body:not(.remove-cloze-style) .cm-s-obsidian .cm-formatting.cm-formatting-highlight.cm-highlight~.cm-formatting.cm-formatting-strikethrough~span.cm-highlight.cm-strikethrough:not(.cm-em):hover, +.markdown-source-view.cloze .cm-formatting.cm-formatting-highlight.cm-highlight~.cm-formatting.cm-formatting-strikethrough~span.cm-highlight.cm-strikethrough:not(.cm-em):hover { + background-color: var(--text-highlight-bg); + color: var(--text-normal); + transition: all 400ms ease-in-out; +} + +body:not(.remove-cloze-style) :is(.markdown-preview-view, +.markdown-rendered) mark > del:hover, +:is(.markdown-preview-view, +.markdown-rendered).cloze mark > del:hover { + background-color: transparent; + color: var(--accent-strong); + transition: all 400ms ease-in-out; +} + +body:not(.remove-cloze-style) :is(.markdown-preview-view, +.markdown-rendered) em > mark > del, +:is(.markdown-preview-view, +.markdown-rendered).cloze em > mark > del { + color: transparent; + background-color: transparent; + padding: 0 2px; + text-decoration: underline var(--cloze-decoration-2) var(--cloze-decoration-color-2) !important; +} + +body:not(.remove-cloze-style) :is(.markdown-preview-view, +.markdown-rendered) em > mark > del:hover, +:is(.markdown-preview-view, +.markdown-rendered).cloze em > mark > del:hover { + cursor: pointer; + color: transparent; +} + +body:not(.remove-cloze-style) :is(.markdown-preview-view, +.markdown-rendered) em > mark > del:active, +:is(.markdown-preview-view, +.markdown-rendered).cloze em > mark > del:active { + color: var(--accent-strong); + background-color: transparent; + transition: all 400ms ease-in-out; +} + +body:not(.remove-cloze-style) .cm-s-obsidian .cm-em.cm-formatting.cm-formatting-em.cm-em.cm-formatting.cm-formatting-em~.cm-em.cm-formatting.cm-formatting-highlight.cm-highlight~.cm-em.cm-formatting.cm-formatting-strikethrough.cm-highlight.cm-strikethrough~span.cm-em.cm-highlight.cm-strikethrough:not([class*="formatting"]), +body:not(.remove-cloze-style) .cm-s-obsidian .cm-em.cm-formatting.cm-formatting-em.cm-em.cm-formatting.cm-formatting-em~.cm-em.cm-formatting.cm-formatting-highlight.cm-highlight~.cm-em.cm-formatting.cm-formatting-strikethrough.cm-highlight.cm-strikethrough:not([class*="formatting"]), +.markdown-source-view.cloze .cm-em.cm-formatting.cm-formatting-em.cm-em.cm-formatting.cm-formatting-em~.cm-em.cm-formatting.cm-formatting-highlight.cm-highlight~.cm-em.cm-formatting.cm-formatting-strikethrough.cm-highlight.cm-strikethrough~span.cm-em.cm-highlight.cm-strikethrough, +.markdown-source-view.cloze .cm-em.cm-formatting.cm-formatting-em.cm-em.cm-formatting.cm-formatting-em~.cm-em.cm-formatting.cm-formatting-highlight.cm-highlight~.cm-em.cm-formatting.cm-formatting-strikethrough.cm-highlight.cm-strikethrough { + color: var(--accent-strong) !important; + text-decoration: underline var(--cloze-decoration-2) var(--cloze-decoration-color-2) !important; +} +body:not(.remove-cloze-style) .cm-s-obsidian .cm-em.cm-formatting.cm-formatting-em.cm-em.cm-formatting.cm-formatting-em~.cm-em.cm-formatting.cm-formatting-highlight.cm-highlight~.cm-em.cm-formatting.cm-formatting-strikethrough.cm-highlight.cm-strikethrough~span.cm-em.cm-highlight.cm-strikethrough, +body:not(.remove-cloze-style) .cm-s-obsidian .cm-em.cm-formatting.cm-formatting-em.cm-em.cm-formatting.cm-formatting-em~.cm-em.cm-formatting.cm-formatting-highlight.cm-highlight~.cm-em.cm-formatting.cm-formatting-strikethrough.cm-highlight.cm-strikethrough{ + background-color: transparent !important; +} +body:not(.remove-cloze-style) .markdown-source-view:not([class*="cm5"]) .cm-em.cm-formatting.cm-formatting-em.cm-em.cm-formatting.cm-formatting-em~.cm-em.cm-formatting.cm-formatting-highlight.cm-highlight~.cm-em.cm-formatting.cm-formatting-strikethrough.cm-highlight.cm-strikethrough~span.cm-em.cm-highlight.cm-strikethrough~.cm-em.cm-formatting.cm-formatting-highlight.cm-highlight, +.markdown-source-view:not([class*="cm5"]).cloze .cm-em.cm-formatting.cm-formatting-em.cm-em.cm-formatting.cm-formatting-em~.cm-em.cm-formatting.cm-formatting-highlight.cm-highlight~.cm-em.cm-formatting.cm-formatting-strikethrough.cm-highlight.cm-strikethrough~span.cm-em.cm-highlight.cm-strikethrough~.cm-em.cm-formatting.cm-formatting-highlight.cm-highlight { + background-color: var(--bg-color-highlight-1) !important; + color: var(--color-highlight-1); + font-style: normal; +} + +body:not(.remove-cloze-style) :is(.markdown-preview-view, +.markdown-rendered) em > del, +:is(.markdown-preview-view, +.markdown-rendered).cloze em > del { + background-color: var(--cloze-bg-color-3); + color: var(--cloze-bg-color-3); + font-style: normal; + text-decoration: underline var(--cloze-decoration-3) var(--cloze-decoration-color-3); +} + +body:not(.remove-cloze-style) :is(.markdown-preview-view, +.markdown-rendered) em > del:hover, +:is(.markdown-preview-view, +.markdown-rendered).cloze em > del:hover { + background-color: transparent; + color: var(--text-normal); + transition: all 400ms ease-in-out; +} + +body:not(.remove-cloze-style) .markdown-source-view.is-live-preview .cm-em.cm-strikethrough, +.markdown-source-view.is-live-preview.cloze .cm-em.cm-strikethrough { + background-color: var(--cloze-bg-color-3); + color: var(--cloze-bg-color-3); + font-style: normal; + text-decoration: underline var(--cloze-decoration-3) var(--cloze-decoration-color-3); +} + +body:not(.remove-cloze-style) .markdown-source-view.is-live-preview .cm-em.cm-strikethrough:hover, +.markdown-source-view.is-live-preview.cloze .cm-em.cm-strikethrough:hover { + background-color: transparent !important; + color: var(--text-normal) !important; + transition: all 400ms ease-in-out; +} + +body:not(.remove-cloze-style) .cm-em.cm-formatting.cm-formatting-em~.cm-em.cm-formatting.cm-formatting-strikethrough.cm-strikethrough, +.markdown-source-view.cloze .cm-em.cm-formatting.cm-formatting-em~.cm-em.cm-formatting.cm-formatting-strikethrough.cm-strikethrough { + color: var(--accent-strong); + text-decoration: none; +} +body:not(.remove-cloze-style) .cm-em.cm-formatting.cm-formatting-em~.cm-em.cm-formatting.cm-formatting-strikethrough.cm-strikethrough~span.cm-em.cm-strikethrough:not([class*="formatting"]), +.markdown-source-view.cloze .cm-em.cm-formatting.cm-formatting-em~.cm-em.cm-formatting.cm-formatting-strikethrough.cm-strikethrough~span.cm-em.cm-strikethrough:not([class*="formatting"]) { + font-style: normal; + color: var(--accent-strong); + text-decoration: underline var(--cloze-decoration-3) var(--cloze-decoration-color-3); +} + +span.cm-strong.cm-em.cm-highlight { + background-image: initial; + background-clip: initial; + -webkit-background-clip: initial; + -webkit-text-fill-color: var(--strong-em-highlight-color); + background-color: var(--text-highlight-bg); +} + + + +/* body.default-icons .nav-folder.mod-root .nav-folder > .nav-folder-children { + margin: 0 0 0 16px; +} */ + +/* .nav-folder.mod-root .nav-folder > .nav-folder-children { + margin: 0 0 0 13px; +} */ + +.nav-folder.mod-root .nav-folder > .nav-folder-children:hover { + border-left-color: var(--theme-color-translucent-04); +} + +.view-header-title-container:after, +.view-header-title-container::before { + display: none; +} + +.workspace-leaf.mod-active .view-header-icon { + color: var(--interactive-accent); + cursor: grab; + position: relative; +} + +body.hide-titlebar-text .titlebar-text { + display: none +} + +.titlebar-left { + width: 30px; +} + +/*change color when hover*/ +.titlebar-button.mod-back:hover, +.titlebar-button.mod-forward:hover, +.titlebar-button.mod-maximize:hover, +.titlebar-button.mod-minimize:hover, +.workspace-ribbon-collapse-btn:hover { + color: var(--theme-color); +} + +.titlebar-button { + -webkit-app-region: no-drag; + padding: 0 9px; + cursor: pointer; + opacity: 0.8; +} + +.titlebar-button:hover { + opacity: 1; +} + +.workspace-tab-header-inner { + padding: 3px 9px; +} + +/*reduce space of header buttons*/ +body:not(.is-mobile) div.nav-header { + padding: 3px 2px; + line-height: 1; +} + +div.nav-buttons-container { + margin: 1px; +} + +.workspace-leaf-content[data-type='file-explorer'] .nav-buttons-container { + margin-right: 2px; + border-radius: var(--radius-s); +} + +input.search-input { + margin: -2px 0px -3px 0px; +} + +.nav-action-button { + margin: 0px 5px !important; +} + + +/*tag page button*/ +.nav-buttons-container>.nav-action-button, +.nav-buttons-container>.nav-action-button.is-active { + padding: 3px 2px 1px; +} + +.titlebar-text { + font-size: var(--font-size-obsidian-titlebar); + font-weight: 600; +} + +body:not(.is-focused) .titlebar-text { + opacity: 0.5; +} + +.side-dock-ribbon-tab:hover, +.side-dock-ribbon-action:hover { + color: var(--theme-color); +} + +.side-dock-settings { + margin-top: auto; + margin-bottom: 2px; +} + +.workspace-leaf-content[data-type="file-explorer"] .nav-folder.mod-root>.nav-folder-title { + padding-left: 5px; + font-size: var(--font-size-vault-name); + font-family: var(--font-family-vault); + font-weight: bolder; + text-shadow: 1px 1px 6px var(--theme-color-translucent-04); + cursor: default; +} + +.theme-dark .nav-folder.mod-root>.nav-folder-title { + color: var(--theme-color); + text-shadow: none; +} + +.theme-dark .nav-folder.mod-root>.nav-folder-title:hover { + background-color: var(--background-secondary-alt); + color: var(--text-muted); + opacity: 1; +} + +.theme-light .nav-folder.mod-root>.nav-folder-title:hover { + background-color: var(--background-secondary-alt); + text-shadow: 1px 1px 5px #ffffff7c; + color: var(--theme-color); + opacity: 1; +} + +/*=======search panel=======*/ +.search-result-file-title { + color: var(--search-result-file-title-color); +} + +.workspace-leaf-content[data-type="outgoing-link"] .search-result-file-match { + padding: 4px 10px; + left: 0; +} + +.backlink-pane .search-result-container { + margin-left: 3px; +} + +.search-result-file-matches { + border-bottom: none; + margin-bottom: 0; +} + +.tree-item-self.is-clickable:hover { + background-color: transparent; + color: var(--search-result-file-title-color); +} + +.tree-item-self.is-clickable.is-collapsed .tree-item-inner { + opacity: 0.6; +} + +.tag-container .tree-item-self.tag-pane-tag.is-clickable:hover { + background-color: var(--theme-color-translucent-015); + color: var(--text-normal); +} + +.outline .tree-item-self.is-clickable:hover { + background-color: var(--theme-color-translucent-015); + color: var(--text-normal); +} +.outline .tree-item-self { + font-size: var(--font-size-outline); +} + +.search-result-file-match:hover { + background-color: var(--background-secondary-alt); + color: var(--text-normal); +} + +span.search-result-file-matched-text { + color: var(--search-text); + background-color: var(--search-result-file-matched-bg); + opacity: 0.8; +} + +.is-flashing { + background-color: var(--search-result-file-matched-bg); +} + +/* background of search result */ +.search-result { + border-radius: var(--radius-s); + margin: 0 0 0 1px; +} + +.tree-item.search-result .tree-item-self.search-result-file-title.is-clickable { + padding-left: 15px; +} + +span.obsidian-search-match-highlight { + background-color: var(--text-search-highlight-bg) !important; +} + +.search-result-file-match:after { + display: none; +} + +.search-input { + display: block; + margin: 0 auto 10px auto; + width: calc(100% - 20px); +} + +.nav-action-button>svg { + width: 17px; + height: 17px; +} + +/*code box unfold icon*/ +.CodeMirror-foldgutter-open.CodeMirror-guttermarker-subtle::after { + color: var(--text-accent); +} + +.CodeMirror-gutter.CodeMirror-linenumbers, +.CodeMirror-gutter.CodeMirror-foldgutter { + background-color: transparent; +} + +/*checkbox*/ +span.cm-formatting-task.cm-property { + color: var(--text-accent); +} + +:is(.markdown-preview-view,.markdown-rendered,.markdown-reading-view) .task-list-item-checkbox { + top: 0.25em; +} + +/* +.markdown-source-view.mod-cm6 .task-list-label .task-list-item-checkbox { + margin-left: -1.5px; + margin-top: 0px; + margin-bottom: 2px; + margin-right:3px; + vertical-align: middle; + top: 0; +} +.markdown-source-view.mod-cm6 .cm-formatting-list-ol ~ .task-list-label .task-list-item-checkbox { + margin-left: 3px; +} +*/ +input[type=checkbox] { + -webkit-appearance: none; + appearance: none; + border-radius: var(--radius-xs); + border: 1px solid var(--background-modifier-border-checkbox); + padding: 0; + margin: 0 2px 2px 0; + width: var(--checkbox-size); + height: var(--checkbox-size); +} +input[type=checkbox]:hover { + border: 1px solid var(--theme-color); +} + +ul > li.task-list-item.is-checked, +.markdown-source-view.mod-cm6 .HyperMD-task-line[data-task] { + text-decoration: none; +} + +body.toggle-checked-decoration .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="x"], +body.toggle-checked-decoration .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="X"], +body.toggle-checked-decoration ul > li.task-list-item[data-task="x"], +body.toggle-checked-decoration ul > li.task-list-item[data-task="X"] { + text-decoration: var(--checklist-done-decoration); +} + +.task-list-item-checkbox { + filter: hue-rotate(0); +} + +input[type=checkbox]:checked:after { + display: none; +} + +.is-flashing input[type=checkbox]:checked, +input[type=checkbox]:checked { + border-radius: var(--radius-xs); + border: none; + background-repeat: no-repeat; + background-position: center; + background-size: 120%; + background-image: url('data:image/svg+xml; utf8, '); + background-color: var(--checkbox-color-0); +} + +body:not(.unmute-checkbox-animation) .is-flashing input.task-list-item-checkbox[type=checkbox]:checked:hover, +body:not(.unmute-checkbox-animation) input.task-list-item-checkbox[type=checkbox]:checked:hover { + animation: tada 1s; + filter: hue-rotate(160deg) !important; +} + + +/* SVG Plane-right; bujo: task-migrated/waiting */ +input[data-task=">"]:checked, +li[data-task=">"]>input:checked, +li[data-task=">"]>p>input:checked { + background-color: var(--checkbox-color-1); + background-image: url('data:image/svg+xml; utf8, '); +} +:is(.markdown-preview-view,.markdown-rendered) ul.contains-task-list li.task-list-item.is-checked[data-task=">"], +:is(.markdown-preview-view,.markdown-rendered) ol.contains-task-list li.task-list-item.is-checked[data-task=">"], +.markdown-source-view.is-live-preview input.task-list-item-checkbox[data-task=">"] { + text-decoration: none !important; + color: var(--text-normal); +} +/* SVG Plane-left; bujo: task-scheduled/delegated */ +input[data-task="<"]:checked, +li[data-task="<"]>input:checked, +li[data-task="<"]>p>input:checked { + background-color: var(--checkbox-color-2); + background-image: url('data:image/svg+xml; utf8, '); +} +input[data-task="?"]:checked, +li[data-task="?"]>input:checked, +li[data-task="?"]>p>input:checked { + background-color: var(--checkbox-color-3); + background-image: url('data:image/svg+xml; utf8, '); +} + +input[data-task="!"]:checked, +li[data-task="!"]>input:checked, +li[data-task="!"]>p>input:checked { + background-color: var(--checkbox-color-4); + background-image: url('data:image/svg+xml; utf8, '); +} + +input[data-task="+"]:checked, +li[data-task="+"]>input:checked, +li[data-task="+"]>p>input:checked { + background-color: var(--checkbox-color-5); + background-image: url('data:image/svg+xml; utf8, '); +} +input[data-task="-"]:checked, +li[data-task="-"]>input:checked, +li[data-task="-"]>p>input:checked { + background-color: var(--checkbox-color-6); + background-image: url('data:image/svg+xml; utf8, '); +} + +ul > li[data-task="-"].task-list-item.is-checked, .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="-"] { + text-decoration: line-through !important; +} + +body.extend-checkbox-list input[data-task="“"]:checked, +body.extend-checkbox-list li[data-task="“"]>input:checked, +body.extend-checkbox-list li[data-task="“"]>p>input:checked { + background-color: transparent; + background-image: url('data:image/svg+xml; utf8, '); +} + +body.extend-checkbox-list input[data-task="…"]:checked, +body.extend-checkbox-list li[data-task="…"]>input:checked, +body.extend-checkbox-list li[data-task="…"]>p>input:checked { + background-color: transparent; + background-image: url('data:image/svg+xml; utf8, '); +} + +body.extend-checkbox-list input[data-task="/"]:checked, +body.extend-checkbox-list li[data-task="/"]>input:checked, +body.extend-checkbox-list li[data-task="/"]>p>input:checked { + background-color: transparent; + background-image: url('data:image/svg+xml; utf8, '); +} + +body.extend-checkbox-list input[data-task="."]:checked, +body.extend-checkbox-list li[data-task="."]>input:checked, +body.extend-checkbox-list li[data-task="."]>p>input:checked { + background-color: transparent; + background-image: url('data:image/svg+xml; utf8, '); +} + +body.extend-checkbox-list input[data-task="d"]:checked, +body.extend-checkbox-list li[data-task="d"]>input:checked, +body.extend-checkbox-list li[data-task="d"]>p>input:checked { + background-color: transparent; + background-image: url('data:image/svg+xml; utf8, '); +} + +body.extend-checkbox-list input[data-task="u"]:checked, +body.extend-checkbox-list li[data-task="u"]>input:checked, +body.extend-checkbox-list li[data-task="u"]>p>input:checked { + background-color: transparent; + background-image: url('data:image/svg+xml; utf8, '); +} + + +body.extend-checkbox-list input[data-task="A"]:checked, +body.extend-checkbox-list li[data-task="A"]>input:checked, +body.extend-checkbox-list li[data-task="A"]>p>input:checked { + background-color: transparent; + background-image: url('data:image/svg+xml; utf8, '); +} + +body.extend-checkbox-list input[data-task="D"]:checked, +body.extend-checkbox-list li[data-task="D"]>input:checked, +body.extend-checkbox-list li[data-task="D"]>p>input:checked { + background-color: transparent; + background-image: url('data:image/svg+xml; utf8, '); +} + +body.extend-checkbox-list input:is([data-task="¥"],[data-task="$"]):checked, +body.extend-checkbox-list li:is([data-task="¥"],[data-task="$"])>input:checked, +body.extend-checkbox-list li:is([data-task="¥"],[data-task="$"])>p>input:checked { + background-color: transparent; + background-image: url('data:image/svg+xml; utf8, '); +} + +body.extend-checkbox-list input[data-task="*"]:checked, +body.extend-checkbox-list li[data-task="*"]>input:checked, +body.extend-checkbox-list li[data-task="*"]>p>input:checked { + background-color: transparent; + background-image: url('data:image/svg+xml; utf8, '); +} + +@keyframes fade-left { + 0% {-webkit-transform: translateX(-10px); transform: translateX(-10px); opacity: 0;} + 75% {-webkit-transform: translateX(0); transform: translateX(0); opacity: 1;} +} + +@keyframes tada { + from {-webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1);} + 10%, + 20% {-webkit-transform: scale3d(.95, .95, .95) rotate3d(0, 0, 1, -10deg);transform: scale3d(.95, .95, .95) rotate3d(0, 0, 1, -10deg);} + 30%, + 50%, + 70%, + 90% {-webkit-transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, 10deg);transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, 10deg);} + 40%, + 60%, + 80% {-webkit-transform: rotate3d(0, 0, 1, -10deg); transform: rotate3d(0, 0, 1, -10deg);} + to {-webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1);} +} + +body.circular-checkbox input[type=checkbox] { + border-radius: 50%; +} + +/* headers */ +/*编辑状态是否显示H1 H2标记*/ +/*适配Live preview模式*/ +body.clutter-free-headings div:not(.cm-active).cm-line span:not(.cm-formatting-header):not(.cm-hashtag):not(.cm-inline-code):not(.cm-highlight).cm-header::before { + font-size: 0.6rem; + width: auto; + margin-right: 1px; + border-radius: var(--radius-xs); + color: var(--text-muted); + overflow: visible; + font-family: var(--font-interface); + font-weight: normal !important; +} + +body.clutter-free-headings div.mod-cm6.is-live-preview div:not(.cm-active).cm-line .cm-header ~ span.cm-header::before, +body.clutter-free-headings div.mod-cm6.is-live-preview div:not(.cm-active).cm-line .cm-header.cm-hmd-internal-link::before { + display: none; +} + +body.clutter-free-headings div:not(.cm-active).cm-line span:not(.cm-formatting-header).cm-header-1::before { + content: 'H1'; + margin-top: calc(var(--h1-size) - 0.1em); +} + +body.clutter-free-headings div:not(.cm-active).cm-line span:not(.cm-formatting-header).cm-header-2::before { + content: 'H2'; + margin-top: calc(var(--h2-size) - 0.2em); +} + +body.clutter-free-headings div:not(.cm-active).cm-line span:not(.cm-formatting-header).cm-header-3::before { + content: 'H3'; + margin-top: calc(var(--h3-size) - 0.2em); +} +body.clutter-free-headings div:not(.cm-active).cm-line span:not(.cm-formatting-header).cm-header-4::before { + content: 'H4'; + margin-top: calc(var(--h4-size) - 0.3em); +} + +body.clutter-free-headings div:not(.cm-active).cm-line span:not(.cm-formatting-header).cm-header-5::before { + content: 'H5'; + margin-top: calc(var(--h5-size) - 0.4em); +} + +body.clutter-free-headings div:not(.cm-active).cm-line span:not(.cm-formatting-header).cm-header-6::before { + content: 'H6'; + margin-top: calc(var(--h6-size) - 0.4em); +} + +/*适配source mode 模式*/ +body.clutter-free-headings div.mod-cm6:not(.is-live-preview) div:not(.cm-active).cm-line span:not(.cm-formatting-header).cm-header ~ span.cm-header::before { + display: none; +} +body.clutter-free-headings div.mod-cm6:not(.is-live-preview) div:not(.cm-active).cm-line span.cm-formatting-header { + display:none; +} +/*适配传统模式*/ +body.clutter-free-headings div:not(.CodeMirror-activeline)>.CodeMirror-line.hmd-inactive-line span.cm-formatting-header::before { + position: absolute; + margin-top: 10px; + font-size: 0.7rem; + width: auto; + margin-left: -18px; + padding: 0px 2px; + border-radius: var(--radius-xs); + color: var(--text-muted); + overflow: visible; + font-family: var(--font-default); + font-weight: normal !important; +} +body.clutter-free-headings div:not(.CodeMirror-activeline)>.CodeMirror-line:not(.hmd-inactive-line) span.cm-formatting-header::before { + position: absolute; + margin-top: 10px; + font-size: 0.7rem; + width: auto; + margin-left: -6px; + border-radius: var(--radius-xs); + color: var(--text-muted); + overflow: visible; + font-family: var(--font-default); + font-weight: normal !important; +} + +body.clutter-free-headings div:not(.CodeMirror-activeline)>.CodeMirror-line span.cm-formatting-header { + color: transparent !important; + background: none; +} + +body.clutter-free-headings div:not(.CodeMirror-activeline)>.CodeMirror-line span.cm-formatting-header-1::before { + content: 'H1'; +} +body.clutter-free-headings div:not(.CodeMirror-activeline)>.CodeMirror-line span.cm-formatting-header-2::before { + content: 'H2'; +} +body.clutter-free-headings div:not(.CodeMirror-activeline)>.CodeMirror-line span.cm-formatting-header-3::before { + content: 'H3'; +} +body.clutter-free-headings div:not(.CodeMirror-activeline)>.CodeMirror-line span.cm-formatting-header-4::before { + content: 'H4'; +} +body.clutter-free-headings div:not(.CodeMirror-activeline)>.CodeMirror-line span.cm-formatting-header-5::before { + content: 'H5'; +} +body.clutter-free-headings div:not(.CodeMirror-activeline)>.CodeMirror-line span.cm-formatting-header-6::before { + content: 'H6'; +} + +body.h1-toggle-underline :is(.markdown-preview-view,.markdown-rendered) h1, +body.h1-toggle-underline .markdown-source-view.is-live-preview .HyperMD-header.HyperMD-header-1.cm-line { + border-bottom: var(--h1-underline-width, 2px) var(--h1-underline-style, solid) var(--h1-underline-color, var(--h1-color)); +} +body.h2-toggle-underline :is(.markdown-preview-view,.markdown-rendered) h2, +body.h2-toggle-underline .markdown-source-view.is-live-preview .HyperMD-header.HyperMD-header-2.cm-line { + border-bottom: var(--h2-underline-width, 1px) var(--h2-underline-style, solid) var(--h2-underline-color, var(--h2-color)); +} +body.h3-toggle-underline :is(.markdown-preview-view,.markdown-rendered) h3, +body.h3-toggle-underline .markdown-source-view.is-live-preview .HyperMD-header.HyperMD-header-3.cm-line { + border-bottom: var(--h3-underline-width, 1px) var(--h3-underline-style, solid) var(--h3-underline-color, var(--h3-color)); +} +body.h4-toggle-underline :is(.markdown-preview-view,.markdown-rendered) h4, +body.h4-toggle-underline .markdown-source-view.is-live-preview .HyperMD-header.HyperMD-header-4.cm-line { + border-bottom: var(--h4-underline-width, 1px) var(--h4-underline-style, solid) var(--h4-underline-color, var(--h4-color)); +} +body.h5-toggle-underline :is(.markdown-preview-view,.markdown-rendered) h5, +body.h5-toggle-underline .markdown-source-view.is-live-preview .HyperMD-header.HyperMD-header-5.cm-line { + border-bottom: var(--h5-underline-width, 1px) var(--h5-underline-style, solid) var(--h5-underline-color, var(--h5-color)); +} +body.h6-toggle-underline :is(.markdown-preview-view,.markdown-rendered) h6, +body.h6-toggle-underline .markdown-source-view.is-live-preview .HyperMD-header.HyperMD-header-6.cm-line { + border-bottom: var(--h6-underline-width, 1px) var(--h6-underline-style, solid) var(--h6-underline-color, var(--h6-color)); +} + +body.inline-title-toggle-underline .inline-title { + border-bottom: var(--inline-title-underline-width, 2px) var(--inline-title-underline-style, solid) var(--inline-title-underline-color, var(--h1-color)); +} + +body.h1-toggle-short-underline :is(.markdown-preview-view,.markdown-rendered) h1, +body.h2-toggle-short-underline :is(.markdown-preview-view,.markdown-rendered) h2, +body.h3-toggle-short-underline :is(.markdown-preview-view,.markdown-rendered) h3, +body.h4-toggle-short-underline :is(.markdown-preview-view,.markdown-rendered) h4, +body.h5-toggle-short-underline :is(.markdown-preview-view,.markdown-rendered) h5, +body.h6-toggle-short-underline :is(.markdown-preview-view,.markdown-rendered) h6, +body.h1-toggle-short-underline .markdown-source-view.is-live-preview .HyperMD-header.HyperMD-header-1.cm-line, +body.h2-toggle-short-underline .markdown-source-view.is-live-preview .HyperMD-header.HyperMD-header-2.cm-line, +body.h3-toggle-short-underline .markdown-source-view.is-live-preview .HyperMD-header.HyperMD-header-3.cm-line, +body.h4-toggle-short-underline .markdown-source-view.is-live-preview .HyperMD-header.HyperMD-header-4.cm-line, +body.h5-toggle-short-underline .markdown-source-view.is-live-preview .HyperMD-header.HyperMD-header-5.cm-line, +body.h6-toggle-short-underline .markdown-source-view.is-live-preview .HyperMD-header.HyperMD-header-6.cm-line, +body.inline-title-toggle-short-underline .inline-title { + text-decoration: underline; +} + +body.header-1-background .cm-header-1, +body.header-1-background :is(.markdown-preview-view,.markdown-rendered) h1 { + background-color: var(--h1-bg-color); +} +body.header-2-background .cm-header-2, +body.header-2-background :is(.markdown-preview-view,.markdown-rendered) h2 { + background-color: var(--h2-bg-color); +} +body.header-3-background .cm-header-3, +body.header-3-background :is(.markdown-preview-view,.markdown-rendered) h3 { + background-color: var(--h3-bg-color); +} +body.header-4-background .cm-header-4, +body.header-4-background :is(.markdown-preview-view,.markdown-rendered) h4 { + background-color: var(--h4-bg-color); +} +body.header-5-background .cm-header-5, +body.header-5-background :is(.markdown-preview-view,.markdown-rendered) h5 { + background-color: var(--h5-bg-color); +} +body.header-6-background .cm-header-6, +body.header-6-background :is(.markdown-preview-view,.markdown-rendered) h6 { + background-color: var(--h6-bg-color); +} + +body.toggle-inline-title-background .inline-title { + background: no-repeat center/100% var(--inline-title-bg-url) var(--inline-title-bg-color); +} + +.cm-contentContainer :is(.cm-header-1,.cm-header-2,.cm-header-3,.cm-header-4) { + line-height: calc(var(--paragraph-spacing) + 0.5); +} + +body.h1-text-align-center .HyperMD-header.HyperMD-header-1.cm-line, +body.h2-text-align-center .HyperMD-header.HyperMD-header-2.cm-line, +body.h3-text-align-center .HyperMD-header.HyperMD-header-3.cm-line, +body.h4-text-align-center .HyperMD-header.HyperMD-header-4.cm-line, +body.h5-text-align-center .HyperMD-header.HyperMD-header-5.cm-line, +body.h6-text-align-center .HyperMD-header.HyperMD-header-6.cm-line, +body.h1-text-align-center :is(.markdown-preview-view,.markdown-rendered) h1, +body.h2-text-align-center :is(.markdown-preview-view,.markdown-rendered) h2, +body.h3-text-align-center :is(.markdown-preview-view,.markdown-rendered) h3, +body.h4-text-align-center :is(.markdown-preview-view,.markdown-rendered) h4, +body.h5-text-align-center :is(.markdown-preview-view,.markdown-rendered) h5, +body.h6-text-align-center :is(.markdown-preview-view,.markdown-rendered) h6, +body.inline-title-text-align-center .inline-title { + text-align: center; +} +body.h1-text-align-end .HyperMD-header.HyperMD-header-1.cm-line, +body.h2-text-align-end .HyperMD-header.HyperMD-header-2.cm-line, +body.h3-text-align-end .HyperMD-header.HyperMD-header-3.cm-line, +body.h4-text-align-end .HyperMD-header.HyperMD-header-4.cm-line, +body.h5-text-align-end .HyperMD-header.HyperMD-header-5.cm-line, +body.h6-text-align-end .HyperMD-header.HyperMD-header-6.cm-line, +body.h1-text-align-end :is(.markdown-preview-view,.markdown-rendered) h1, +body.h2-text-align-end :is(.markdown-preview-view,.markdown-rendered) h2, +body.h3-text-align-end :is(.markdown-preview-view,.markdown-rendered) h3, +body.h4-text-align-end :is(.markdown-preview-view,.markdown-rendered) h4, +body.h5-text-align-end :is(.markdown-preview-view,.markdown-rendered) h5, +body.h6-text-align-end :is(.markdown-preview-view,.markdown-rendered) h6, +body.inline-title-text-align-end .inline-title { + text-align: end; +} + +body.retain-header-color :is(.markdown-preview-view,.markdown-rendered) :is(h1,h2,h3,h4,h5,h6) em, +body.retain-header-color :is(.markdown-preview-view,.markdown-rendered) :is(h1,h2,h3,h4,h5,h6) strong, +body.retain-header-color :is(.markdown-preview-view,.markdown-rendered) :is(h1,h2,h3,h4,h5,h6) strong em, +body.retain-header-color .cm-s-obsidian .cm-header[class*="cm-em"], +body.retain-header-color .cm-s-obsidian .cm-header[class*="cm-strong"] { + background-image: initial; + background-clip: initial; + -webkit-background-clip: initial; + -webkit-text-fill-color: initial; + background-color: initial; +} +body.retain-header-color :is(.markdown-preview-view,.markdown-rendered) h1 em, +body.retain-header-color :is(.markdown-preview-view,.markdown-rendered) h1 strong, +body.retain-header-color :is(.markdown-preview-view,.markdown-rendered) h1 strong em, +body.retain-header-color .cm-s-obsidian .cm-header.cm-header-1[class*="cm-em"], +body.retain-header-color .cm-s-obsidian .cm-header.cm-header-1[class*="cm-strong"] { + color: var(--h1-color) !important; + font-family: var(--h1-font) !important; +} +body.retain-header-color :is(.markdown-preview-view,.markdown-rendered) h2 em, +body.retain-header-color :is(.markdown-preview-view,.markdown-rendered) h2 strong, +body.retain-header-color :is(.markdown-preview-view,.markdown-rendered) h2 strong em, +body.retain-header-color .cm-s-obsidian .cm-header.cm-header-2[class*="cm-em"], +body.retain-header-color .cm-s-obsidian .cm-header.cm-header-2[class*="cm-strong"] { + color: var(--h2-color) !important; + font-family: var(--h2-font) !important; +} +body.retain-header-color :is(.markdown-preview-view,.markdown-rendered) h3 em, +body.retain-header-color :is(.markdown-preview-view,.markdown-rendered) h3 strong, +body.retain-header-color :is(.markdown-preview-view,.markdown-rendered) h3 strong em, +body.retain-header-color .cm-s-obsidian .cm-header.cm-header-3[class*="cm-em"], +body.retain-header-color .cm-s-obsidian .cm-header.cm-header-3[class*="cm-strong"] { + color: var(--h3-color) !important; + font-family: var(--h3-font) !important; +} +body.retain-header-color :is(.markdown-preview-view,.markdown-rendered) h4 em, +body.retain-header-color :is(.markdown-preview-view,.markdown-rendered) h4 strong, +body.retain-header-color :is(.markdown-preview-view,.markdown-rendered) h4 strong em, +body.retain-header-color .cm-s-obsidian .cm-header.cm-header-4[class*="cm-em"], +body.retain-header-color .cm-s-obsidian .cm-header.cm-header-4[class*="cm-strong"] { + color: var(--h4-color) !important; + font-family: var(--h4-font) !important; +} +body.retain-header-color :is(.markdown-preview-view,.markdown-rendered) h5 em, +body.retain-header-color :is(.markdown-preview-view,.markdown-rendered) h5 strong, +body.retain-header-color :is(.markdown-preview-view,.markdown-rendered) h5 strong em, +body.retain-header-color .cm-s-obsidian .cm-header.cm-header-5[class*="cm-em"], +body.retain-header-color .cm-s-obsidian .cm-header.cm-header-5[class*="cm-strong"] { + color: var(--h5-color) !important; + font-family: var(--h5-font) !important; +} +body.retain-header-color :is(.markdown-preview-view,.markdown-rendered) h6 em, +body.retain-header-color :is(.markdown-preview-view,.markdown-rendered) h6 strong, +body.retain-header-color :is(.markdown-preview-view,.markdown-rendered) h6 strong em, +body.retain-header-color .cm-s-obsidian .cm-header.cm-header-6[class*="cm-em"], +body.retain-header-color .cm-s-obsidian .cm-header.cm-header-6[class*="cm-strong"] { + color: var(--h6-color) !important; + font-family: var(--h6-font) !important; +} + +:is(.markdown-preview-section,.markdown-rendered):not(:first-child) :is(h1,h2,h3,h4,h5) { + margin-top: 13px !important; +} + +:is(.markdown-preview-section,.markdown-rendered):not(:first-child) h6 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +/*preview Header hover*/ +/* adapted from Obsidian-Typora-Vue https://github.com/ZekunC/Obsidian-Typora-Vue-Theme */ +:is(.markdown-preview-view,.markdown-rendered) :is(h1,h2,h3,h4,h5,h6) { + position: relative; +} +body:not(.remove-heading-indicator) :is(.markdown-preview-view,.markdown-rendered) h1:hover::before { + content: 'H1'; + position: absolute; + font-size: 0.7rem; + width: auto; + margin-left: -24px; + border: 1px solid; + padding: 0px 2px; + border-radius: var(--radius-xs); + top: 25px; +} +body:not(.remove-heading-indicator) :is(.markdown-preview-view,.markdown-rendered) h2:hover::before { + content: 'H2'; + position: absolute; + font-size: 0.7rem; + width: auto; + margin-left: -25px; + border: 1px solid; + padding: 0px 2px; + border-radius: var(--radius-xs); + top: 23px; +} +body:not(.remove-heading-indicator) :is(.markdown-preview-view,.markdown-rendered) h3:hover::before { + content: 'H3'; + position: absolute; + font-size: 0.65rem; + width: auto; + margin-left: -25px; + border: 1px solid; + padding: 0px 2px; + border-radius: var(--radius-xs); + top: 22px; +} +body:not(.remove-heading-indicator) :is(.markdown-preview-view,.markdown-rendered) h4:hover::before { + content: 'H4'; + position: absolute; + font-size: 0.6rem; + width: auto; + margin-left: -25px; + border: 1px solid; + padding: 0px 2px; + border-radius: var(--radius-xs); + top: 22px; +} +body:not(.remove-heading-indicator) :is(.markdown-preview-view,.markdown-rendered) h5:hover::before { + content: 'H5'; + position: absolute; + font-size: 0.6rem; + width: auto; + margin-left: -25px; + border: 1px solid; + padding: 0px 2px; + border-radius: var(--radius-xs); + top: 22px; +} +body:not(.remove-heading-indicator) :is(.markdown-preview-view,.markdown-rendered) h6:hover::before { + content: 'H6'; + position: absolute; + font-size: 0.6rem; + width: auto; + margin-left: -25px; + border: 1px solid; + padding: 0px 2px; + border-radius: var(--radius-xs); + top: 22px; +} + +/*---*/ +.markdown-rendered hr { + border-color: var(--background-modifier-border-hr); +} + +/* inspired by Obsidianite */ +body.fancy-hr-icon .markdown-rendered hr { + overflow: initial; + margin-block-start: 2.5em; + margin-block-end: 2.5em; + border: none; + height: 0; + min-height: 0.7em; + border-bottom: 2px solid; + border-image-slice: 1; + border-width: 2px; + border-image: linear-gradient(to right, transparent 0%, var(--hr-color-icon-1) 30%, var(--hr-color-icon-2) 46%, transparent 46%, transparent 54%, var(--hr-color-icon-3) 54%, var(--hr-color-icon-4) 70%, transparent 100%) 1; +} + +body.fancy-hr-icon .markdown-rendered hr::after { + content: var(--fancy-hr-icon); + display: inline-block; + position: relative; + left: 50%; + font-size: 1em; + transform: translate(-50%, -0.35em) rotate(var(--fancy-hr-rotate)); + transform-origin: 50% 50%; + padding: 0.3rem; + color: var(--theme-color); +} + +body.fancy-hr-icon div:not(.CodeMirror-activeline) > .CodeMirror-line span.cm-hr { + opacity: 0; + position: relative; +} + +body.fancy-hr-icon div > .CodeMirror-line span.cm-hr { + display: inline-block; +} + +body.fancy-hr-icon div:not(.CodeMirror-activeline) > .CodeMirror-line.HyperMD-hr::before { + position: absolute; + content: ''; + width: 100%; + height: 2px; + border-image: linear-gradient(to right, transparent 0%, var(--hr-color-icon-1) 30%, var(--hr-color-icon-2) 46%, transparent 46%, transparent 54%, var(--hr-color-icon-3) 54%, var(--hr-color-icon-4) 70%, transparent 100%) 1; + left: 0; + top: 50%; +} + +body.fancy-hr-icon div:not(.CodeMirror-activeline) > .CodeMirror-line.HyperMD-hr::after { + content: var(--fancy-hr-icon); + display: inline-block; + position: absolute; + left: 50%; + top: 50%; + font-size: 1em; + transform: translate(-50%, -50%) rotate(var(--fancy-hr-rotate)); + transform-origin: 50% 50%; + padding: 0.5rem; + color: var(--theme-color); +} + +body.fancy-hr-icon .cm-s-obsidian hr { + border-image: linear-gradient(to right, transparent 0%, var(--hr-color-icon-1) 30%, var(--hr-color-icon-2) 46%, transparent 46%, transparent 54%, var(--hr-color-icon-3) 54%, var(--hr-color-icon-4) 70%, transparent 100%) 1; + border-width: 2px; +} + +body.fancy-hr-icon .markdown-source-view.mod-cm6 .hr::after { + content: var(--fancy-hr-icon); + display: inline-block; + position: absolute; + font-size: 1em; + left: 50%; + top: 50%; + transform: translate(-50%, -50%) rotate(var(--fancy-hr-rotate)); + transform-origin: 50% 50%; + padding: 0.5rem; + color: var(--theme-color); +} + +body.fancy-hr-no-icon .cm-s-obsidian hr { + border-image: linear-gradient(to right, transparent 0%, var(--hr-color-1) 20%, var(--hr-color-2) 40%, var(--hr-color-3) 60%, var(--hr-color-4) 80%, transparent 100%) 1; + border-width: 2px; +} + +body.fancy-hr-no-icon .markdown-rendered hr { + margin-block-start: 2.5em; + margin-block-end: 2.5em; + border: none; + height: 0; + border-bottom: 2px solid; + border-width: 2px; + border-image: linear-gradient(to right, transparent 0%, var(--hr-color-1) 20%, var(--hr-color-2) 40%, var(--hr-color-3) 60%, var(--hr-color-4) 80%, transparent 100%) 1; +} + +body.fancy-hr-no-icon div:not(.CodeMirror-activeline) > .CodeMirror-line.HyperMD-hr::before { + position: absolute; + content: ''; + width: 100%; + height: 2px; + background-image: linear-gradient(to right, transparent 0%, var(--hr-color-1) 20%, var(--hr-color-2) 40%, var(--hr-color-3) 60%, var(--hr-color-4) 80%, transparent 100%); + left: 0; + top: 50%; +} + +body.fancy-hr-number .markdown-rendered { + counter-reset: fancyhrno; +} + +body.fancy-hr-number .markdown-rendered hr { + overflow: initial; + margin-block-start: 2.5em; + margin-block-end: 2.5em; + border: none; + height: 0; + min-height: 0.7em; + border-bottom: 2px solid; + border-image-slice: 1; + border-width: 2px; + border-image-source: linear-gradient(to right, transparent 0%, var(--hr-color-numbers-line-1) 30%, var(--hr-color-numbers-line-2) 46%, transparent 46%, transparent 54%, var(--hr-color-numbers-line-3) 54%, var(--hr-color-numbers-line-4) 70%, transparent 100%); + counter-increment: fancyhrno; +} + +body.fancy-hr-number .markdown-rendered hr::after { + content: counter(fancyhrno); + display: inline-block; + font-family: var(--font-monospace-theme); + font-weight: bold; + position: relative; + left: 50%; + transform: translate(-50%, -0.2em); + color: var(--hr-color-numbers-color); + background: var(--hr-color-numbers-bg-color); + border-radius: 50%; + padding: 0 0.44em 0 0.5em; +} + +body.fancy-hr-number.hollow-number .markdown-rendered hr::after, +body.fancy-hr-number.hollow-number .markdown-source-view.mod-cm6 hr::after, +body.fancy-hr-number.hollow-number .markdown-source-view div:not(.CodeMirror-activeline) > .HyperMD-hr.CodeMirror-line::after { + -webkit-text-fill-color: var(--hr-numbers-text-fill); + -webkit-text-stroke: 1px var(--hr-numbers-text-stroke); + font-family: var(--font-text-theme); +} + +body.fancy-hr-number div:not(.CodeMirror-activeline) > .CodeMirror-line span.cm-hr { + opacity: 0; + position: relative; +} + +body.fancy-hr-number div > .CodeMirror-line span.cm-hr { + display: inline-block; +} + +body.fancy-hr-number .markdown-source-view { + counter-reset: fancyhrno1; +} + +body.fancy-hr-number .markdown-source-view div:not(.CodeMirror-activeline) > .HyperMD-hr.CodeMirror-line::before { + position: absolute; + content: ''; + width: 100%; + height: 2px; + background-image: linear-gradient(to right, transparent 0%, var(--hr-color-numbers-line-1) 30%, var(--hr-color-numbers-line-2) 46%, transparent 46%, transparent 54%, var(--hr-color-numbers-line-3) 54%, var(--hr-color-numbers-line-4) 70%, transparent 100%); + left: 0; + top: 50%; + counter-increment: fancyhrno1; +} + +body.fancy-hr-number .markdown-source-view div:not(.CodeMirror-activeline) > .HyperMD-hr.CodeMirror-line::after { + content: counter(fancyhrno1); + display: inline-block; + font-family: var(--font-monospace-theme); + font-weight: bold; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + color: var(--hr-color-numbers-color); + background: var(--hr-color-numbers-bg-color); + border-radius: 50%; + padding: 0 0.44em 0 0.5em; +} + +body.fancy-hr-number .cm-s-obsidian hr { + border-image: linear-gradient(to right, transparent 0%, var(--hr-color-numbers-line-1) 30%, var(--hr-color-numbers-line-2) 46%, transparent 46%, transparent 54%, var(--hr-color-numbers-line-3) 54%, var(--hr-color-numbers-line-4) 70%, transparent 100%) 1; + border-width: 2px; + counter-increment: fancyhrno; +} + +body.fancy-hr-number .markdown-source-view.mod-cm6 { + counter-reset: fancyhrno; +} + +body.fancy-hr-number .markdown-source-view.mod-cm6 .hr::after { + left: 50%; + top: 50%; + content: counter(fancyhrno); + display: inline-block; + font-family: var(--font-monospace-theme); + font-weight: bold; + position: absolute; + transform: translate(-50%, -50%); + color: var(--hr-color-numbers-color); + background: var(--hr-color-numbers-bg-color); + border-radius: 50%; + padding: 0 0.45em 0 0.5em; +} + +.nav-files-container { + padding: 0 3px 10px; +} + +/* blockquote */ +:is(.markdown-preview-view,.markdown-rendered) blockquote { + padding: 0.5em 0.5em 0.5em 0.6em; + border-right-width: 0; + border-left: solid; + border-top-width: 0; + border-bottom-width: 0; + border-left-width: 5px; + border-color: var(--theme-color); + background-color: var(--background-blockquote); + border-radius: var(--radius-s); + margin-inline-start: 2.5%; + margin-inline-end: 2.5%; +} + +:is(.markdown-preview-view,.markdown-rendered) blockquote p { + margin-left: 1px; + margin-right: 0; + font-size: var(--font-size-preview-blockquote); +} + +body:not(.font-family-change-to-default) :is(.markdown-preview-view,.markdown-rendered), +body:not(.font-family-change-to-default) .markdown-source-view.mod-cm6 .cm-scroller, +body:not(.font-family-change-to-default) .markdown-source-view { + font-family: var(--font-text); +} + +/* preview page */ +:is(.markdown-preview-view,.markdown-rendered).is-readable-line-width :is(.markdown-preview-section,.markdown-rendered), +.markdown-source-view.is-readable-line-width .CodeMirror, +:is(.markdown-preview-view,.markdown-rendered).is-readable-line-width .markdown-preview-sizer, +:is(.markdown-preview-view,.markdown-rendered) :is(.markdown-preview-section,.markdown-rendered), +.markdown-source-view .CodeMirror, +:is(.markdown-preview-view,.markdown-rendered) .markdown-preview-sizer, +.markdown-source-view.mod-cm6 .cm-scroller, +.cm-s-obsidian.is-folding.is-readable-line-width .markdown-reading-view { + line-height: var(--line-height-main); + letter-spacing: calc(var(--letter-space-main) * 0.03em); + /*text-align: var();*/ + -webkit-font-smoothing: subpixel-antialiased; +} + +:is(.markdown-preview-view,.markdown-rendered).is-readable-line-width:not(.matrix) .markdown-preview-sizer, +.markdown-source-view.is-readable-line-width:not(.matrix) .CodeMirror, +:is(.markdown-preview-view,.markdown-rendered):not(.matrix) .is-readable-line-width :is(.markdown-preview-section,.markdown-rendered), +:is(.markdown-preview-view,.markdown-rendered):not(.matrix) .is-readable-line-width :is(.markdown-preview-section,.markdown-rendered) > div, +:is(.markdown-preview-view,.markdown-rendered).is-readable-line-width:not(.matrix) :is(.markdown-preview-section,.markdown-rendered) { + width: var(--file-line-width); + max-width: 100%; + margin: 0 auto; +} + +.markdown-source-view.mod-cm6.is-readable-line-width:not(.is-rtl) .cm-contentContainer { + max-width: var(--file-line-width); +} + +.markdown-source-view.mod-cm6.is-readable-line-width:not(.is-rtl) .cm-content { +/* width: var(--file-line-width); + max-width: 100%; */ + margin: 0 auto; +} + +.markdown-source-view.mod-cm6.is-line-wrap.is-readable-line-width .cm-line:not(.HyperMD-table-row) { + max-width: 100%; +} + +body:not(.default-split-style) .workspace>.workspace-split:not(.mod-root) .CodeMirror, +body:not(.default-split-style) .workspace>.workspace-split:not(.mod-root) .cm-scroller, +body:not(.default-split-style) .workspace>.workspace-split:not(.mod-root) .markdown-preview-sizer { + line-height: var(--line-height-split); + font-size: var(--font-size-split); +} +body:not(.default-split-style) .workspace>.workspace-split:not(.mod-root) :is(.markdown-preview-view,.markdown-rendered) { + padding: 7px 9px 7px 19px; +} +body:not(.default-split-style) .workspace>.workspace-split:not(.mod-root) .cm-scroller { + padding: 7px 10px 7px 30px; +} +body:not(.default-split-style) .workspace>.workspace-split:not(.mod-root) .cm-gutters { + padding-right: 10px; +} +body:not(.default-split-style) .workspace>.workspace-split:not(.mod-root) .cm-lineNumbers .cm-gutterElement { + padding: 0; +} + +/* code */ +.cm-s-obsidian .hmd-fold-html-stub, +.cm-s-obsidian .hmd-fold-code-stub, +.cm-s-obsidian.CodeMirror .HyperMD-hover > .HyperMD-hover-content code, +body:not(.tag-default) .cm-s-obsidian .cm-formatting-hashtag, +.cm-s-obsidian .cm-inline-code, +.cm-s-obsidian .HyperMD-codeblock, +.cm-s-obsidian .HyperMD-hr, +.cm-s-obsidian .cm-hmd-frontmatter, +.cm-s-obsidian .cm-hmd-orgmode-markup, +.cm-s-obsidian .cm-formatting-code, +.cm-s-obsidian .cm-math, +.cm-s-obsidian span.hmd-fold-math-placeholder, +.cm-s-obsidian .CodeMirror-linewidget kbd, +.cm-s-obsidian .hmd-fold-html kbd { + font-family: var(--font-monospace); +} +.is-live-preview .admonition-content .math-block>mjx-container { + padding: 0.3em 0; +} + +.math.math-block mjx-container[jax='CHTML'] { + outline: none; + font-size: var(--font-size-latex); +} + +.markdown-source-view mjx-math, +:is(.markdown-preview-view,.markdown-rendered) :not(:is(h1,h2,h3,h4,h5,h6))>.math>mjx-container>mjx-math { + color: var(--mjx-inline-math-color); +} +.markdown-source-view .cm-header-1 ~ .math mjx-math { + color: var(--h1-color); +} +.markdown-source-view .cm-header-2 ~ .math mjx-math { + color: var(--h2-color); +} +.markdown-source-view .cm-header-3 ~ .math mjx-math { + color: var(--h3-color); +} +.markdown-source-view .cm-header-4 ~ .math mjx-math { + color: var(--h4-color); +} +.markdown-source-view .cm-header-5 ~ .math mjx-math { + color: var(--h5-color); +} +.markdown-source-view .cm-header-6 ~ .math mjx-math { + color: var(--h6-color); +} + +div.math.math-block mjx-math{ + color: var(--mjx-math-color); +} + +.cm-s-obsidian pre.HyperMD-codeblock, +:is(.markdown-preview-view,.markdown-rendered) code, +.markdown-rendered code { + color: var(--text-color-code); + font-size: var(--font-size-code) !important; + font-family: var(--font-monospace); + text-align: start; +} +.cm-s-obsidian span.cm-math:not(.cm-formatting-math-begin):not(.cm-formatting-math-end) { + font-size: var(--font-size-code) !important; + font-family: var(--font-monospace); + text-align: start; +} + +.cm-s-obsidian .cm-widgetBuffer[aria-hidden="true"]+.cm-inline-code:has(+ .cm-widgetBuffer[aria-hidden="true"]) { + border-radius: var(--radius-s); + padding: 2px 2px 1px; +} + +.cm-s-obsidian div.HyperMD-codeblock-bg { + border-left: none; + border-right: none; + border-top: none; +} + +:is(.markdown-preview-view,.markdown-rendered) pre { + background-color: var(--background-code); + padding: 1em 1.5em; +} + +:is(.markdown-preview-view,.markdown-rendered) code { + vertical-align: auto; + background-color: var(--background-code-2) ; +} + +:is(.markdown-preview-view,.markdown-rendered) pre code { + background-color: transparent !important; + color:var(--code-normal); +} + +.cm-s-obsidian span.cm-inline-code:not(.cm-formatting):not(.cm-hmd-indented-code):not(.obsidian-search-match-highlight), +.cm-formatting.cm-formatting-code.cm-inline-code { + color: var(--text-color-code); + background-color: var(--background-code-2); +} + +.cm-s-obsidian .cm-inline-code.cm-strong { + color: var(--text-color-code) !important; +} + +/*******codebox settings*******/ +/* ================================== */ +/* ===== editor syntax highlight ==== */ +/* ================================== */ +body.theme-dark { + --code-tag: var(--red); +} +body { + --code-selection-background: var(--text-selection); + --code-selection-color: var(--code-normal); + --code-type: var(--code-function); + --code-qualifier: var(--aqua); + --code-property: var(--blue); + --code-value: var(--green); + --code-tag: var( --purple); + --code-operator: var(--code-property); + --code-hr: var(--code-punctuation); + --code-string-2: var(--code-string); + --code-language: var(--text-muted); + --code-attribute: var(--code-function); + --code-atom: var(--orange-1); + --code-comment: var(--darkgreen); +} + + +:root, +.code-theme-custom { + /* material: palenight theme */ + --code-keyword: #c792ea; + --code-atom: #f78c6c; + --code-number: #ff5370; + --code-type: #decb6b; + --code-def: #82aaff; + --code-property: #c792ea; + --code-variable: #f07178; + --code-variable-2: #53ada3; + --code-variable-3: #e7852fe7; + --code-definition: #82aaff; + --code-callee: #89ddff; + --code-qualifier: #decb6b; + --code-operator: #89ddff; + --code-hr: #98e342; + --code-link: #696d70; + --code-error-bg: #ff5370; + --code-header: #da7dae; + --code-builtin: #ffcb6b; + --code-meta: #ffcb6b; + --code-matching-bracket: #ffffff; + --code-tag: #ff5370; + --code-tag-in-comment: #ff5370; + --code-string-2: #f07178; + --code-bracket: #ff5370; + --code-comment: #676e95; + --code-string: #c3e88d; + --code-attribute: #c792ea; + --code-attribute-in-comment: #c792ea; + --background-code: #292d3e; + --code-normal: #d4d4d4; +} +.theme-light, +.theme-dark { + --code-active-line-background-color: var(--activeline-background); +} + +.code-theme-custom { + --code-active-line-background-color: #353a50c2; +} + +body.theme-light.code-theme-material-palenight, +body.theme-dark.code-theme-material-palenight { + /* material: palenight theme */ + --code-keyword: #c792ea; + --code-atom: #f78c6c; + --code-number: #ff5370; + --code-type: #decb6b; + --code-def: #82aaff; + --code-property: #c792ea; + --code-variable: #f07178; + --code-variable-2: #eeffff; + --code-variable-3: #f07178; + --code-definition: #82aaff; + --code-callee: #89ddff; + --code-qualifier: #decb6b; + --code-operator: #89ddff; + --code-hr: #98e342; + --code-link: #696d70; + --code-error-bg: #ff5370; + --code-header: #da7dae; + --code-builtin: #ffcb6b; + --code-meta: #ffcb6b; + --code-matching-bracket: #ffffff; + --code-tag: #ff5370; + --code-tag-in-comment: #ff5370; + --code-string-2: #f07178; + --code-bracket: #ff5370; + --code-comment: #676e95; + --code-string: #c3e88d; + --code-attribute: #c792ea; + --code-attribute-in-comment: #c792ea; + --background-code: #292d3eba; + --code-active-line-background-color: #353a50; + --code-normal: #d4d4d4; +} + +body.theme-light.code-theme-solarized-light, +body.theme-dark.code-theme-solarized-light { + /* solarized */ + --code-keyword: #cb4b16; + --code-atom: #d33682; + --code-number: #d33682; + --code-type: #6c71c4; + --code-def: #2aa198; + --code-property: #2aa198; + --code-variable: #839496; + --code-variable-2: #b58900; + --code-variable-3: #6c71c4; + --code-function: var(--code-def) ; + --code-definition: #82aaff; + --code-callee: #89ddff; + --code-qualifier: #b58900; + --code-operator: #6c71c4; + --code-hr: #98e342; + --code-link: #93a1a1; + --code-error-bg: #ff5370; + --code-header: #586e75; + --code-builtin: #d33682; + --code-meta: #859900; + --code-matching-bracket: #859900; + --code-tag: #93a1a1; + --code-tag-in-comment: #ff5370; + --code-string-2: #b58900; + --code-bracket: #cb4b16; + --code-comment: #586e75; + --code-string: #859900; + --code-attribute: #2aa198; + --code-attribute-in-comment: #c792ea; + --background-code: #fdf6e3e1; + --code-active-line-background-color: #fffcf4; + --code-normal: #657b83; +} + +body.theme-dark.code-theme-bt-default { + --background-code: #1111118c; + --code-variable: var(--red) ; + --code-normal: #ebdbb2; + --code-comment: var(--darkgreen) ; + --code-function: var(--light-yellow) ; + --code-important: var(--darkblue); + --code-keyword: var(--darkblue);; + --code-operator: #a89984; + --code-property: var(--blue) ; + --code-punctuation: var(--gray-2) ; + --code-string: var(--green) ; + --code-tag: var(--red) ; + --code-value: var(--green) ; + --code-string-2:var(--yellow) ; + --code-active-line-background-color: #111111eb; +} +body.theme-light.code-theme-bt-default { + --code-keyword:var(--blue-green); + --code-tag: var(--purple); + --code-function: var(--red); + --code-important: var(--blue-green); + --code-active-line-background-color: var(--activeline-background); + --code-string-2: var(--orange-1); + --code-variable-2: var(--light-purple); + --code-meta: var(--text-faint); +} + +body.code-theme-Gruvbox-dark { + --code-selection-color: #fbf1c7; + --code-selection-background: #7c6f6456; + --code-active-line-background-color: #533c3cee; + --background-code: #1d2021c6; + --code-variable: var(--code-property); + --code-normal: #ebdbb2; + --code-comment: #a89984; + --code-function: #fabd2f; + --code-important: #fb4934; + --code-keyword: #fb4934; + --code-operator: #a89984; + --code-property: #fb4934; + --code-punctuation: #a89984; + --code-string: #b8bb26; + --code-tag: #fabd2f; + --code-value: #d3869b; + --code-meta:var(--code-comment); +} + +body.theme-light.code-theme-dracula { + --background-code: #e6e6e671; + --code-normal: var(--tex-normal); + --code-string: var(--orange) ; + --code-string-2: var(--orange-1) ; + --code-variable: var(--blue-green); + --code-variable-2: var(--light-purple) ; + --code-meta: var(--text-faint); + --code-active-line-background-color:#dee1b9a5; +} +body.code-theme-dracula { + --background-code: #282a36c0; + --code-normal: #f8f8f2; + --code-comment: #6272a4; + --code-string: #f1fa8c; + --code-string-2: #ffb86c;; + --code-number: #bd93f9; + --code-variable: #50fa7b; + --code-variable-2: #ffffff; + --code-def: #50fa7b; + --code-operator: #8be9fd; + --code-keyword: #ff79c6; + --code-atom: #bd93f9; + --code-meta: #f8f8f2; + --code-tag: #ff79c6; + --code-attribute: #50fa7b; + --code-qualifier: #50fa7b; + --code-property: #66d9ef; + --code-builtin: #50fa7b; + --code-variable-3: #dc8e3b; + --code-type: #ffb86c; + --code-active-line-background-color: #414458; + --code-matchingbracket: #fffff; +} +body.theme-light.code-theme-monokai { + --code-comment: #aca47a; +} +body.code-theme-monokai { + --background-code: #272822d9; + --code-normal: #F8F8F2; + --code-keyword:#F92772; + --code-value: #AE81FF; + --code-string-2:#E6DB74; + --code-comment: #75715E; + --code-active-line-background-color: #17013f9f; +} +body.code-theme-sublime { + --code-operator: #9a6e3a; + --code-variable: #5180de; + --code-keyword: #EA5E66; + --code-string: #40bf31; + --code-function: #F9AE58; + --code-string-2: #F9AE58; + --code-type: #F9AE58; + --code-def: #F9AE58; +} + + +.cm-s-obsidian span.cm-variable { + color: var(--code-variable); +} +.cm-s-obsidian span.cm-variable-2 { + color: var(--code-variable-2); +} + +.cm-s-obsidian span.cm-variable-3 { + color: var(---code-variable-3); +} +.token.class, +.token.class-name { + color: var(--code-string-2) ; +} + +span.cm-variable + .cm-hmd-codeblock + span.cm-variable { + color: var(--code-variable-2); +} + +span.cm-variable + .cm-hmd-codeblock + span.cm-variable + .cm-hmd-codeblock + span.cm-variable { + color: var(--code-variable-3); +} +span.cm-type { + color: var(--code-keyword); +} +span.cm-def { + color:var(--code-function); +} +.cm-type { + color: var(--code-type); +} +.token.atrule, +.token.attr-value, +.cm-property, +.cm-attribute { + color: var(--code-attribute); +} + +.cm-qualifier { + color: var(--code-qualifier); +} + +.cm-operator { + color:var(--code-operator); +} + +.cm-hr { + color: var(--code-hr); +} +.cm-string-2 { + color: var(--code-string-2); +} + +.cm-s-obsidian .cm-hmd-frontmatter.cm-atom, +.cm-s-obsidian .cm-templater-command.cm-atom, +.cm-s-obsidian .cm-math.cm-atom, +.cm-s-obsidian .HyperMD-codeblock .cm-atom, +.markdown-preview-view pre.cm-s-obsidian .cm-atom { + color: var(--code-atom); +} + +.cm-s-obsidian .cm-hmd-frontmatter.cm-meta, +.cm-s-obsidian .cm-templater-command.cm-meta, +.cm-s-obsidian .cm-math.cm-meta, +.cm-s-obsidian .HyperMD-codeblock .cm-meta, +.markdown-preview-view pre.cm-s-obsidian .cm-meta { + color: var(--code-meta); +} + +.cm-s-obsidian .cm-hmd-frontmatter.cm-builtin, +.cm-s-obsidian .cm-templater-command.cm-builtin, +.cm-s-obsidian .cm-math.cm-builtin, +.cm-s-obsidian .HyperMD-codeblock .cm-builtin, +.markdown-preview-view pre.cm-s-obsidian .cm-builtin, +.markdown-preview-view pre code span.builtin { + color: var(--code-builtin); +} + + +.markdown-preview-view pre code span.class { + color: var(--code-qualifier); +} + +.markdown-preview-view pre code span.function { + color: var(--code-function); +} + +.markdown-preview-view pre code span.punctuation { + color: var(--code-punctuation); +} + +.markdown-preview-view pre code span.operator { + color: var(--code-operator); + background: transparent; +} + +.markdown-preview-view pre code span.entity { + color: var(--code-attribute); +} + +.markdown-preview-view pre code span.parameter { + color: var(--code-property); +} + +.markdown-preview-view pre code span.property { + color: var(--code-property); +} + +.markdown-preview-view pre code span.important { + color: var(--code-important); +} + +.markdown-preview-view pre code span.attr-name { + color: var(--code-tag); +} + +.markdown-preview-view pre code span.attr-value { + color: var(--code-string); +} + +.markdown-preview-view pre code span.builtin { + color: var(--code-builtin); +} + +.markdown-preview-view pre code span.unit { + color: var(--code-value); +} + +.markdown-preview-view span.token.macro-name { + color: var(--code-important); +} + +span.token.directive-hash { + color: var(--code-tag); +} +.cm-s-obsidian span.cm-comment { + color: var(--code-comment); +} + +.muted-code-activeline-bg .markdown-source-view.cm-s-obsidian.mod-cm6 .cm-active.cm-line.HyperMD-codeblock-bg { + background-color: var(--background-code) !important; +} +.muted-code-activeline-bg .markdown-source-view.cm-s-obsidian.mod-cm6 .cm-active.cm-line.HyperMD-codeblock-bg::before { + background-color: unset !important; +} +.markdown-source-view.cm-s-obsidian.mod-cm6 .cm-active.cm-line.HyperMD-codeblock-bg::before { + display: none; +} +.markdown-source-view.cm-s-obsidian.mod-cm6 .cm-active.cm-line.HyperMD-codeblock-bg { + background-color: var(--code-active-line-background-color) !important; + --text-selection:var(--code-selection-background); + z-index: -1; +} + +pre code[class*="language-"] { + padding: 1em 0.5em; +} +pre[class*="language-"]::selection, +pre[class*="language-"] ::selection, +code[class*="language-"]::selection, +code[class*="language-"] ::selection { + color: var(--code-selection-color); + background: var(--code-active-line-background-color); +} + +/*Advanced Codeblock */ +.HyperMD-codeblock.HyperMD-codeblock-bg.cm-line span.live-preview-codeblock-line-nums { + margin-left: -1.5em; +} + +.code-line-number .HyperMD-codeblock-begin { + counter-reset: line-numbers; +} + +.code-line-number .HyperMD-codeblock.cm-line:not(.HyperMD-codeblock-begin):not(.HyperMD-codeblock-end) { + padding-left: 3em; + position: relative; +} + +.code-line-number .HyperMD-codeblock.cm-line:not(.HyperMD-codeblock-begin):not(.HyperMD-codeblock-end)::after { + align-items: flex-start; + color: var(--text-faint); + content: counter(line-numbers); + counter-increment: line-numbers; + display: flex; + font-size: 0.8em; + height: 100%; + justify-content: flex-end; + left: 0; + position: absolute; + text-align: right; + width: 2em; + padding-right: 0.5em; + bottom: -2px; + border-right: 1px solid var(--scrollbar-thumb-bg); +} + +.code-line-number .HyperMD-codeblock.cm-line.cm-active:not(.HyperMD-codeblock-begin):not(.HyperMD-codeblock-end)::after { + color: var(--color-accent); +} + +.code-line-number .HyperMD-codeblock .cm-foldPlaceholder::before { + display: none; +} + + +/* ================================== */ +.cm-s-obsidian .cm-hmd-frontmatter.cm-qualifier, +.cm-s-obsidian .cm-math.cm-qualifier, +.cm-s-obsidian .cm-qualifier { + color: var(--yellow) ; +} + +.cm-s-obsidian pre.HyperMD-codeblock .cm-qualifier { + color: var(--code-qualifier) ; +} + +.cm-s-obsidian .cm-hmd-frontmatter.cm-property, +.cm-s-obsidian .cm-math.cm-property, +.cm-s-obsidian pre.HyperMD-codeblock .cm-property { + color: var(--code-property) ; +} + +.cm-s-obsidian .cm-math.cm-atom, +.cm-s-obsidian pre.HyperMD-codeblock .cm-atom { + color: var(--text-normal) ; +} + +.cm-s-obsidian .cm-hmd-frontmatter.cm-number, +.cm-s-obsidian .cm-math.cm-number, +.cm-s-obsidian pre.HyperMD-codeblock .cm-number { + color: var(--code-value) ; +} + +.cm-s-obsidian .cm-hmd-frontmatter.cm-comment, +.cm-s-obsidian .cm-math.cm-comment, +.cm-s-obsidian pre.HyperMD-codeblock .cm-comment { + color: var(--code-comment) ; +} + +.theme-dark .cm-s-obsidian .cm-hmd-frontmatter.cm-tag, +.theme-dark .cm-s-obsidian .cm-math.cm-tag, +.theme-dark .cm-s-obsidian pre.HyperMD-codeblock .cm-tag { + color: var(--code-tag) ; +} + +.theme-light .cm-s-obsidian .cm-hmd-frontmatter.cm-tag, +.theme-light .cm-s-obsidian .cm-math.cm-tag, +.theme-light .cm-s-obsidian pre.HyperMD-codeblock .cm-tag { + color: var(--code-tag) ; +} + +.cm-atom.cm-hmd-frontmatter { + color: var(--code-atom) ; +} + +.cm-meta.cm-hmd-frontmatter { + color: var(--code-meta) ; +} +.token.punctuation, +.cm-punctuation, +.cm-bracket { + color: var(--code-punctuation) !important ; +} + +.theme-dark .cm-s-obsidian span.cm-keyword { + font-weight: 600 ; +} + + +/*inline code*/ +.cm-s-obsidian.mod-cm6 .HyperMD-codeblock span.cm-inline-code { + display: inline-block; + padding: unset; +} + +.cm-s-obsidian span.cm-formatting-code.cm-inline-code { + color: var(--text-muted); + border-radius: 3px 0 0 3px; +} + +.cm-s-obsidian span[class="cm-inline-code"]+span.cm-formatting-code.cm-inline-code, +.cm-s-obsidian span[class*="cm-inline-code"][class*="cm-list"]+span.cm-formatting-code.cm-inline-code, +.cm-s-obsidian span[class*="cm-inline-code"][class*="cm-quote"]+span.cm-formatting-code.cm-inline-code, +.cm-s-obsidian span[class*="cm-inline-code"][class*="cm-header"]+span.cm-formatting-code.cm-inline-code, +.cm-s-obsidian span[class*="cm-inline-code"][class*="cm-em"]+span.cm-formatting-code.cm-inline-code, +.cm-s-obsidian span[class*="cm-inline-code"][class*="cm-strong"]+span.cm-formatting-code.cm-inline-code { + color: var(--text-muted); + border-radius: 0 3px 3px 0; +} + +.cm-formatting.cm-formatting-code-block.cm-hmd-codeblock { + color: var(--code-language); +} +.cm-hmd-frontmatter { + color: var(--code-normal); +} +.cm-hmd-frontmatter.cm-string { + color: var(--code-string); +} +/*bold code text except code language*/ +:not(pre)>code:not([class*='language-']) { + font-weight: var(--font-weight-inline-code); + padding: 2px 2px 1px; + font-family: var(--font-family-inline-code) !important; +} + +.cm-s-obsidian span.cm-inline-code { + padding: 2px 0 1px; + color: var(--text-color-code); + font-weight: var(--font-weight-inline-code); + font-family: var(--font-family-inline-code) !important; + font-size: var(--font-size-code) !important; +} + +.cm-formatting.cm-formatting-list.cm-formatting-list-ol { + color: var(--list-ol-number-color); +} + +:not(.default-ol-list-marker) .cm-formatting.cm-formatting-list.cm-formatting-list-ol { + margin-left: -2px; +} + +.cm-s-obsidian .HyperMD-table-row.HyperMD-table-row.HyperMD-table-row { + min-width: max-content; + white-space: pre-wrap; +} + +.markdown-source-view.mod-cm6 .HyperMD-list-line.cm-line { + font-family: var(--font-family-list); +} + +li { + line-height: var(--line-height-list); + font-family: var(--font-family-list); +} + +li>p:not(.task-list-item) { + margin-top: 0.75em; + margin-bottom: 0.75em; +} + +.markdown-source-view ol > li, +.markdown-source-view ul > li, +.markdown-preview-view ol > li, +.markdown-preview-view ul > li, +.markdown-rendered ul > li, +.mod-cm6 .HyperMD-list-line.cm-line { + padding-top: calc(var(--list-spacing-bt) * 0.075em); + padding-bottom: calc(var(--list-spacing-bt) * 0.075em); +} + +ul, +ol ul, +ol ol ul, +ol ol ol ul { + list-style: disc; +} +ul ul, +ol ul ul, +ul ol ul, +ol ol ul ul { + list-style: circle; +} +ul ul ul, +ol ul ul ul, +ul ol ul ul, +ul ul ol ul { + list-style: square; +} +ul ul ul ul, +ol ul ul ul ul, +ul ol ul ul ul, +ul ul ol ul ul, +ul ul ul ol ul { + list-style: circle; +} + + +body.custom-ordered-list ol { + list-style: var(--list-ol-marker-1); +} +body.custom-ordered-list :is(ul, ol) ol { + list-style: var(--list-ol-marker-2); +} +body.custom-ordered-list :is(ul, ol) :is(ul, ol) ol { + list-style: var(--list-ol-marker-3); +} +body.custom-ordered-list :is(ul, ol) :is(ul, ol) :is(ul, ol) ol { + list-style: var(--list-ol-marker-4); +} + +body.custom-ordered-list ol>li::marker { + font-weight: 600; + color: var(--list-ol-number-color); + white-space: pre; + font-family: Inter; +} + +:is(ol,ul) li { + font-size: var(--font-size-list); +} + +ol > li::marker { + color: var(--list-ol-number-color); +} + +ol > li.is-collapsed::marker, +ul > li.is-collapsed::marker, +.cm-s-obsidian .is-collapsed ~ .cm-formatting-list { + color: var(--list-marker-color-collapsed); +} + +/*list-no-border*/ +body.list-no-border ul>li:not(.task-list-item) { + border-left: none !important; +} + +body.list-no-border ol>li { + border-left: none !important; +} + +/* Adapted from https://gist.github.com/KillyMXI/cbef8edff6dd55d9e6ea4df66567e9b1 */ +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-1:not(:has(~ .HyperMD-list-line-1 ~ .HyperMD-list-line:hover)):has(~ :is(.HyperMD-list-line-7, .HyperMD-list-line-6, .HyperMD-list-line-5, .HyperMD-list-line-4, .HyperMD-list-line-3, .HyperMD-list-line-2):hover)::after, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-1:not(:has(~ .HyperMD-list-line-1 ~ .HyperMD-list-line:hover)) ~ .HyperMD-list-line:has(~ .HyperMD-list-line-2:hover, ~ .HyperMD-list-line-2 ~ :is(.HyperMD-list-line-3, .HyperMD-list-line-4, .HyperMD-list-line-5, .HyperMD-list-line-6, .HyperMD-list-line-7):hover)::before, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-2:not(:has(~ .HyperMD-list-line-2 ~ .HyperMD-list-line:hover)):is(:hover, :has(~ :is(.HyperMD-list-line-3, .HyperMD-list-line-4, .HyperMD-list-line-5, .HyperMD-list-line-6, .HyperMD-list-line-7):hover))::before { + --list-threading-offset: calc(4px + 0.12em); +} + +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-2:not(:has(~ .HyperMD-list-line-2 ~ .HyperMD-list-line:hover)):has(~ :is(.HyperMD-list-line-7, .HyperMD-list-line-6, .HyperMD-list-line-5, .HyperMD-list-line-4, .HyperMD-list-line-3):hover)::after, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-2:not(:has(~ .HyperMD-list-line-2 ~ .HyperMD-list-line:hover)) ~ .HyperMD-list-line:has(~ .HyperMD-list-line-3:hover, ~ .HyperMD-list-line-3 ~ :is(.HyperMD-list-line-4, .HyperMD-list-line-5, .HyperMD-list-line-6, .HyperMD-list-line-7):hover)::before, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-3:not(:has(~ .HyperMD-list-line-3 ~ .HyperMD-list-line:hover)):is(:hover, :has(~ :is(.HyperMD-list-line-4, .HyperMD-list-line-5, .HyperMD-list-line-6, .HyperMD-list-line-7):hover))::before { + --list-threading-offset: calc(4px + 0.12em + var(--list-indent)); +} + +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-3:not(:has(~ .HyperMD-list-line-3 ~ .HyperMD-list-line:hover)):has(~ :is(.HyperMD-list-line-7, .HyperMD-list-line-6, .HyperMD-list-line-5, .HyperMD-list-line-4):hover)::after, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-3:not(:has(~ .HyperMD-list-line-3 ~ .HyperMD-list-line:hover)) ~ .HyperMD-list-line:has(~ .HyperMD-list-line-4:hover, ~ .HyperMD-list-line-4 ~ :is(.HyperMD-list-line-5, .HyperMD-list-line-6, .HyperMD-list-line-7):hover)::before, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-4:not(:has(~ .HyperMD-list-line-4 ~ .HyperMD-list-line:hover)):is(:hover, :has(~ :is(.HyperMD-list-line-5, .HyperMD-list-line-6, .HyperMD-list-line-7):hover))::before { + --list-threading-offset: calc(4px + 0.12em + 2 * var(--list-indent)); +} + +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-4:not(:has(~ .HyperMD-list-line-4 ~ .HyperMD-list-line:hover)):has(~ :is(.HyperMD-list-line-7, .HyperMD-list-line-6, .HyperMD-list-line-5):hover)::after, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-4:not(:has(~ .HyperMD-list-line-4 ~ .HyperMD-list-line:hover)) ~ .HyperMD-list-line:has(~ .HyperMD-list-line-5:hover, ~ .HyperMD-list-line-5 ~ :is(.HyperMD-list-line-6, .HyperMD-list-line-7):hover)::before, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-5:not(:has(~ .HyperMD-list-line-5 ~ .HyperMD-list-line:hover)):is(:hover, :has(~ :is(.HyperMD-list-line-6, .HyperMD-list-line-7):hover))::before { + --list-threading-offset: calc(4px + 0.12em + 3 * var(--list-indent)); +} + +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-5:not(:has(~ .HyperMD-list-line-5 ~ .HyperMD-list-line:hover)):has(~ :is(.HyperMD-list-line-7, .HyperMD-list-line-6):hover)::after, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-5:not(:has(~ .HyperMD-list-line-5 ~ .HyperMD-list-line:hover)) ~ .HyperMD-list-line:has(~ .HyperMD-list-line-6:hover, ~ .HyperMD-list-line-6 ~ :is(.HyperMD-list-line-7):hover)::before, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-6:not(:has(~ .HyperMD-list-line-6 ~ .HyperMD-list-line:hover)):is(:hover, :has(~ :is(.HyperMD-list-line-7):hover))::before { + --list-threading-offset: calc(4px + 0.12em + 4 * var(--list-indent)); +} + +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-6:not(:has(~ .HyperMD-list-line-6 ~ .HyperMD-list-line:hover)):has(~ :is(.HyperMD-list-line-7):hover)::after, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-6:not(:has(~ .HyperMD-list-line-6 ~ .HyperMD-list-line:hover)) ~ .HyperMD-list-line:has(~ .HyperMD-list-line-7:hover, ~ .HyperMD-list-line-7 ~ :is(.HyperMD-list-line-8):hover)::before, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-7:not(:has(~ .HyperMD-list-line-7 ~ .HyperMD-list-line:hover)):hover::before { + --list-threading-offset: calc(4px + 0.12em + 5 * var(--list-indent)); +} + +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-2:not(:has(~ .HyperMD-list-line-2 ~ .HyperMD-list-line:hover)):has(~ :is(.HyperMD-list-line-7, .HyperMD-list-line-6, .HyperMD-list-line-5, .HyperMD-list-line-4, .HyperMD-list-line-3):hover)::after, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-2:not(:has(~ .HyperMD-list-line-2 ~ .HyperMD-list-line:hover)) ~ .HyperMD-list-line:has(~ .HyperMD-list-line-3:hover, ~ .HyperMD-list-line-3 ~ :is(.HyperMD-list-line-4, .HyperMD-list-line-5, .HyperMD-list-line-6, .HyperMD-list-line-7):hover)::before, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-3:not(:has(~ .HyperMD-list-line-3 ~ .HyperMD-list-line:hover)):is(:hover, :has(~ :is(.HyperMD-list-line-4, .HyperMD-list-line-5, .HyperMD-list-line-6, .HyperMD-list-line-7):hover))::before { + filter: hue-rotate(60deg); +} + +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-3:not(:has(~ .HyperMD-list-line-3 ~ .HyperMD-list-line:hover)):has(~ :is(.HyperMD-list-line-7, .HyperMD-list-line-6, .HyperMD-list-line-5, .HyperMD-list-line-4):hover)::after, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-3:not(:has(~ .HyperMD-list-line-3 ~ .HyperMD-list-line:hover)) ~ .HyperMD-list-line:has(~ .HyperMD-list-line-4:hover, ~ .HyperMD-list-line-4 ~ :is(.HyperMD-list-line-5, .HyperMD-list-line-6, .HyperMD-list-line-7):hover)::before, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-4:not(:has(~ .HyperMD-list-line-4 ~ .HyperMD-list-line:hover)):is(:hover, :has(~ :is(.HyperMD-list-line-5, .HyperMD-list-line-6, .HyperMD-list-line-7):hover))::before { + filter: hue-rotate(120deg); +} + +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-4:not(:has(~ .HyperMD-list-line-4 ~ .HyperMD-list-line:hover)):has(~ :is(.HyperMD-list-line-7, .HyperMD-list-line-6, .HyperMD-list-line-5):hover)::after, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-4:not(:has(~ .HyperMD-list-line-4 ~ .HyperMD-list-line:hover)) ~ .HyperMD-list-line:has(~ .HyperMD-list-line-5:hover, ~ .HyperMD-list-line-5 ~ :is(.HyperMD-list-line-6, .HyperMD-list-line-7):hover)::before, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-5:not(:has(~ .HyperMD-list-line-5 ~ .HyperMD-list-line:hover)):is(:hover, :has(~ :is(.HyperMD-list-line-6, .HyperMD-list-line-7):hover))::before { + filter: hue-rotate(180deg); +} + +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-5:not(:has(~ .HyperMD-list-line-5 ~ .HyperMD-list-line:hover)):has(~ :is(.HyperMD-list-line-7, .HyperMD-list-line-6):hover)::after, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-5:not(:has(~ .HyperMD-list-line-5 ~ .HyperMD-list-line:hover)) ~ .HyperMD-list-line:has(~ .HyperMD-list-line-6:hover, ~ .HyperMD-list-line-6 ~ :is(.HyperMD-list-line-7):hover)::before, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-6:not(:has(~ .HyperMD-list-line-6 ~ .HyperMD-list-line:hover)):is(:hover, :has(~ :is(.HyperMD-list-line-7):hover))::before { + filter: hue-rotate(240deg); +} + +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-6:not(:has(~ .HyperMD-list-line-6 ~ .HyperMD-list-line:hover)):has(~ :is(.HyperMD-list-line-7):hover)::after, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-6:not(:has(~ .HyperMD-list-line-6 ~ .HyperMD-list-line:hover)) ~ .HyperMD-list-line:has(~ .HyperMD-list-line-7:hover, ~ .HyperMD-list-line-7 ~ :is(.HyperMD-list-line-8):hover)::before, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-7:not(:has(~ .HyperMD-list-line-7 ~ .HyperMD-list-line:hover)):hover::before { + filter: hue-rotate(300deg); +} + +/* tails */ +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-1:not(:has(~ .HyperMD-list-line-1 ~ .HyperMD-list-line:hover)):has(~ :is(.HyperMD-list-line-7, .HyperMD-list-line-6, .HyperMD-list-line-5, .HyperMD-list-line-4, .HyperMD-list-line-3, .HyperMD-list-line-2):hover)::after, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-2:not(:has(~ .HyperMD-list-line-2 ~ .HyperMD-list-line:hover)):has(~ :is(.HyperMD-list-line-7, .HyperMD-list-line-6, .HyperMD-list-line-5, .HyperMD-list-line-4, .HyperMD-list-line-3):hover)::after, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-3:not(:has(~ .HyperMD-list-line-3 ~ .HyperMD-list-line:hover)):has(~ :is(.HyperMD-list-line-7, .HyperMD-list-line-6, .HyperMD-list-line-5, .HyperMD-list-line-4):hover)::after, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-4:not(:has(~ .HyperMD-list-line-4 ~ .HyperMD-list-line:hover)):has(~ :is(.HyperMD-list-line-7, .HyperMD-list-line-6, .HyperMD-list-line-5):hover)::after, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-5:not(:has(~ .HyperMD-list-line-5 ~ .HyperMD-list-line:hover)):has(~ :is(.HyperMD-list-line-7, .HyperMD-list-line-6):hover)::after, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-6:not(:has(~ .HyperMD-list-line-6 ~ .HyperMD-list-line:hover)):has(~ :is(.HyperMD-list-line-7):hover)::after { + content: ""; + position: absolute; + left: var(--list-threading-offset); + bottom: 0; + height: calc(100% - 1em); + width: var(--bt-indentation-width-hover); + background-color: var(--bt-connected-indent-line-color); +} +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line.HyperMD-task-line::after { + max-height: calc(100% - 1.2em); +} + +/* in-between lines */ +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-1:not(:has(~ .HyperMD-list-line-1 ~ .HyperMD-list-line:hover)) ~ .HyperMD-list-line:has(~ .HyperMD-list-line-2:hover, ~ .HyperMD-list-line-2 ~ :is(.HyperMD-list-line-7, .HyperMD-list-line-6, .HyperMD-list-line-5, .HyperMD-list-line-4, .HyperMD-list-line-3):hover)::before, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-2:not(:has(~ .HyperMD-list-line-2 ~ .HyperMD-list-line:hover)) ~ .HyperMD-list-line:has(~ .HyperMD-list-line-3:hover, ~ .HyperMD-list-line-3 ~ :is(.HyperMD-list-line-7, .HyperMD-list-line-6, .HyperMD-list-line-5, .HyperMD-list-line-4):hover)::before, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-3:not(:has(~ .HyperMD-list-line-3 ~ .HyperMD-list-line:hover)) ~ .HyperMD-list-line:has(~ .HyperMD-list-line-4:hover, ~ .HyperMD-list-line-4 ~ :is(.HyperMD-list-line-7, .HyperMD-list-line-6, .HyperMD-list-line-5):hover)::before, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-4:not(:has(~ .HyperMD-list-line-4 ~ .HyperMD-list-line:hover)) ~ .HyperMD-list-line:has(~ .HyperMD-list-line-5:hover, ~ .HyperMD-list-line-5 ~ :is(.HyperMD-list-line-7, .HyperMD-list-line-6):hover)::before, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-5:not(:has(~ .HyperMD-list-line-5 ~ .HyperMD-list-line:hover)) ~ .HyperMD-list-line:has(~ .HyperMD-list-line-6:hover, ~ .HyperMD-list-line-6 ~ :is(.HyperMD-list-line-7, .HyperMD-list-line-6):hover)::before, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-6:not(:has(~ .HyperMD-list-line-6 ~ .HyperMD-list-line:hover)) ~ .HyperMD-list-line:has(~ .HyperMD-list-line-7:hover)::before { + content: ""; + position: absolute; + left: var(--list-threading-offset); + top: 0; + height: 100%; + width: var(--bt-indentation-width-hover); + background-color: var(--bt-connected-indent-line-color); +} + +/* elbows */ +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-2:not(:has(~ .HyperMD-list-line-2 ~ .HyperMD-list-line:hover)):is(:hover, :has(~ :is(.HyperMD-list-line-7, .HyperMD-list-line-6, .HyperMD-list-line-5, .HyperMD-list-line-4, .HyperMD-list-line-3):hover))::before, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-3:not(:has(~ .HyperMD-list-line-3 ~ .HyperMD-list-line:hover)):is(:hover, :has(~ :is(.HyperMD-list-line-7, .HyperMD-list-line-6, .HyperMD-list-line-5, .HyperMD-list-line-4):hover))::before, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-4:not(:has(~ .HyperMD-list-line-4 ~ .HyperMD-list-line:hover)):is(:hover, :has(~ :is(.HyperMD-list-line-7, .HyperMD-list-line-6, .HyperMD-list-line-5):hover))::before, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-5:not(:has(~ .HyperMD-list-line-5 ~ .HyperMD-list-line:hover)):is(:hover, :has(~ :is(.HyperMD-list-line-7, .HyperMD-list-line-6):hover))::before, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-6:not(:has(~ .HyperMD-list-line-6 ~ .HyperMD-list-line:hover)):is(:hover, :has(~ :is(.HyperMD-list-line-7):hover))::before, +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line-7:not(:has(~ .HyperMD-list-line-7 ~ .HyperMD-list-line:hover)):hover::before { + content: ""; + position: absolute; + left: var(--list-threading-offset); + width: var(--list-indent); + top: 0; + height: calc(var(--line-height-list) / 2 * var(--font-size-list) + var(--list-spacing-bt) * 0.075em * 1.5); + border-bottom-left-radius: var(--radius-m); + border-bottom: var(--bt-indentation-width-hover) solid var(--bt-connected-indent-line-color); + border-left: var(--bt-indentation-width-hover) solid var(--bt-connected-indent-line-color); +} +body.bt-connected-indent-hover .cm-s-obsidian:not(.kanban) .HyperMD-list-line.HyperMD-task-line::before { + max-width: calc(var(--list-indent) - 0.35em); +} + +body.bt-colorful-indentation-lines.bt-indentation-line-gradient ul ul::before, +body.bt-colorful-indentation-lines.bt-indentation-line-gradient ol ol::before { + border-right-color: var(--bt-connected-indent-line-color) !important; + border-image: linear-gradient(var(--bt-indentation-gradient-color-1), var(--bt-indentation-gradient-color-2)) 10; +} + +body.bt-colorful-indentation-lines.bt-indentation-line-image :is(ul, ol) :is(ul, ol)::before { + border-right-color: var(--bt-connected-indent-line-color) !important; + border-image: var(--bt-indentation-line-image) 10; +} + +body.bt-colorful-indentation-lines :is(ul, ol) :is(ul, ol)::before { + border-right-color: var(--bt-connected-indent-line-color) !important; + border-right-width: var(--bt-colorful-indentation-width); + border-right-style: double; +} +body.bt-colorful-indentation-lines :is(ul, ol) :is(ul, ol) :is(ul, ol)::before { + border-right-color: var(--bt-connected-indent-line-color) !important; + filter: hue-rotate(60deg); +} +body.bt-colorful-indentation-lines :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol)::before { + border-right-color: var(--bt-connected-indent-line-color) !important; + filter: hue-rotate(120deg); +} +body.bt-colorful-indentation-lines :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol)::before { + border-right-color: var(--bt-connected-indent-line-color) !important; + filter: hue-rotate(180deg); +} +body.bt-colorful-indentation-lines :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol)::before { + border-right-color: var(--bt-connected-indent-line-color) !important; + filter: hue-rotate(240deg); +} +body.bt-colorful-indentation-lines :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol)::before { + border-right-color: var(--bt-connected-indent-line-color) !important; + filter: hue-rotate(300deg); +} + +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-2 .cm-hmd-list-indent > .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-3 .cm-hmd-list-indent > .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-4 .cm-hmd-list-indent > .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-5 .cm-hmd-list-indent > .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-6 .cm-hmd-list-indent > .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-7 .cm-hmd-list-indent > .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-8 .cm-hmd-list-indent > .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-9 .cm-hmd-list-indent > .cm-indent::before { + border-color: var(--bt-connected-indent-line-color) +} + +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-3 .cm-hmd-list-indent > .cm-indent ~ .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-4 .cm-hmd-list-indent > .cm-indent ~ .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-5 .cm-hmd-list-indent > .cm-indent ~ .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-6 .cm-hmd-list-indent > .cm-indent ~ .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-7 .cm-hmd-list-indent > .cm-indent ~ .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-8 .cm-hmd-list-indent > .cm-indent ~ .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-9 .cm-hmd-list-indent > .cm-indent ~ .cm-indent::before { + border-color: var(--bt-connected-indent-line-color); + filter: hue-rotate(60deg); +} + +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-4 .cm-hmd-list-indent > .cm-indent ~ .cm-indent ~ .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-5 .cm-hmd-list-indent > .cm-indent ~ .cm-indent ~ .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-6 .cm-hmd-list-indent > .cm-indent ~ .cm-indent ~ .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-7 .cm-hmd-list-indent > .cm-indent ~ .cm-indent ~ .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-8 .cm-hmd-list-indent > .cm-indent ~ .cm-indent ~ .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-9 .cm-hmd-list-indent > .cm-indent ~ .cm-indent ~ .cm-indent::before { + border-color: var(--bt-connected-indent-line-color); + filter: hue-rotate(120deg); +} + +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-5 .cm-hmd-list-indent > .cm-indent ~ .cm-indent ~ .cm-indent ~ .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-6 .cm-hmd-list-indent > .cm-indent ~ .cm-indent ~ .cm-indent ~ .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-7 .cm-hmd-list-indent > .cm-indent ~ .cm-indent ~ .cm-indent ~ .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-8 .cm-hmd-list-indent > .cm-indent ~ .cm-indent ~ .cm-indent ~ .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-9 .cm-hmd-list-indent > .cm-indent ~ .cm-indent ~ .cm-indent ~ .cm-indent::before { + border-color: var(--bt-connected-indent-line-color); + filter: hue-rotate(180deg); +} + +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-6 .cm-hmd-list-indent > .cm-indent ~ .cm-indent ~ .cm-indent ~ .cm-indent ~ .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-7 .cm-hmd-list-indent > .cm-indent ~ .cm-indent ~ .cm-indent ~ .cm-indent ~ .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-8 .cm-hmd-list-indent > .cm-indent ~ .cm-indent ~ .cm-indent ~ .cm-indent ~ .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-9 .cm-hmd-list-indent > .cm-indent ~ .cm-indent ~ .cm-indent ~ .cm-indent ~ .cm-indent::before { + border-color: var(--bt-connected-indent-line-color); + filter: hue-rotate(240deg); +} + +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-7 .cm-hmd-list-indent > .cm-indent ~ .cm-indent ~ .cm-indent ~ .cm-indent ~ .cm-indent ~ .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-8 .cm-hmd-list-indent > .cm-indent ~ .cm-indent ~ .cm-indent ~ .cm-indent ~ .cm-indent ~ .cm-indent::before, +body.bt-colorful-indentation-lines-editing .HyperMD-list-line-9 .cm-hmd-list-indent > .cm-indent ~ .cm-indent ~ .cm-indent ~ .cm-indent ~ .cm-indent ~ .cm-indent::before{ + border-color: var(--bt-connected-indent-line-color); + filter: hue-rotate(300deg); +} + +body.bt-connected-indent-hover .markdown-preview-view:not(.kanban) li { + position: relative; +} + +/* In-between items */ +body.bt-connected-indent-hover .markdown-preview-view:not(.kanban) *:not([data-callout="kanban"]) > div > :is(ul, ol) li > :is(ul, ol) > li:has(~ li:hover)::before, +body.bt-connected-indent-hover .markdown-preview-view:not(.kanban) *:not([data-callout="kanban"]) > div > :is(ul, ol) :is(ul, ol):has(~ *:hover) > li::before { + content: ""; + position: absolute; + background-color: var(--bt-connected-indent-line-color); + width: var(--bt-indentation-width-hover); + top: calc(var(--list-spacing-bt) * 0.075em - var(--font-size-list) * 0.6); + left: calc(-1.5 * var(--list-indent) - 1px); + bottom: calc(var(--list-spacing-bt) * 0.075em - var(--font-size-list) * 0.5); +} + +/* Elbows items */ +body.bt-connected-indent-hover .markdown-preview-view:not(.kanban) *:not([data-callout="kanban"]) > div > :is(ul, ol) li > :is(ul, ol) > li:hover::before { + content: ""; + position: absolute; + background-color: transparent; + top: calc(var(--list-spacing-bt) * 0.075em - var(--font-size-list) * 0.6); + left: calc(-1.5 * var(--list-indent) - 1px); + width: calc(1em + var(--size-4-4)); + height: calc(var(--font-size-list) * 1.27); + border-bottom-left-radius: var(--radius-m); + border-bottom: var(--bt-indentation-width-hover) solid var(--bt-connected-indent-line-color); + border-left: var(--bt-indentation-width-hover) solid var(--bt-connected-indent-line-color); +} + +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .markdown-preview-view:not(.kanban) *:not([data-callout="kanban"]) > div > :is(ul, ol) li > :is(ul, ol) > li > :is(ul, ol) > li:has( ~ li:hover)::before, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .markdown-preview-view:not(.kanban) *:not([data-callout="kanban"]) > div > :is(ul, ol) li > :is(ul, ol) > li > :is(ul, ol) > li:hover::before, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .markdown-preview-view:not(.kanban) *:not([data-callout="kanban"]) > div > :is(ul, ol) li:hover > :is(ul, ol) > li > ul:has(+ ol) > li::before, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .markdown-preview-view:not(.kanban) *:not([data-callout="kanban"]) > div > :is(ul, ol) li:hover > :is(ul, ol) > li > ol:has(+ ul) > li::before { + filter: hue-rotate(60deg); +} + +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .markdown-preview-view:not(.kanban) *:not([data-callout="kanban"]) > div > :is(ul, ol) li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li:has( ~ li:hover)::before, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .markdown-preview-view:not(.kanban) *:not([data-callout="kanban"]) > div > :is(ul, ol) li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li:hover::before, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .markdown-preview-view:not(.kanban) *:not([data-callout="kanban"]) > div > :is(ul, ol) li:hover > :is(ul, ol) > li > :is(ul, ol) > li > ul:has(+ ol) > li::before, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .markdown-preview-view:not(.kanban) *:not([data-callout="kanban"]) > div > :is(ul, ol) li:hover > :is(ul, ol) > li > :is(ul, ol) > li > ol:has(+ ul) > li::before { + filter: hue-rotate(120deg); +} + +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .markdown-preview-view:not(.kanban) *:not([data-callout="kanban"]) > div > :is(ul, ol) li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) >li:has( ~ li:hover)::before, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .markdown-preview-view:not(.kanban) *:not([data-callout="kanban"]) > div > :is(ul, ol) li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li:hover::before, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .markdown-preview-view:not(.kanban) *:not([data-callout="kanban"]) > div > :is(ul, ol) li:hover > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > ul:has(+ ol) > li::before, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .markdown-preview-view:not(.kanban) *:not([data-callout="kanban"]) > div > :is(ul, ol) li:hover > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > ol:has(+ ul) > li::before { + filter: hue-rotate(180deg); +} + +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .markdown-preview-view:not(.kanban) *:not([data-callout="kanban"]) > div > :is(ul, ol) li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) >li:has( ~ li:hover)::before, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .markdown-preview-view:not(.kanban) *:not([data-callout="kanban"]) > div > :is(ul, ol) li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li:hover::before, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .markdown-preview-view:not(.kanban) *:not([data-callout="kanban"]) > div > :is(ul, ol) li:hover > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > ul:has(+ ol) > li::before, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .markdown-preview-view:not(.kanban) *:not([data-callout="kanban"]) > div > :is(ul, ol) li:hover > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > ol:has(+ ul) > li::before { + filter: hue-rotate(240deg); +} + +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .markdown-preview-view:not(.kanban) *:not([data-callout="kanban"]) > div > :is(ul, ol) li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li:has( ~ li:hover)::before, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .markdown-preview-view:not(.kanban) *:not([data-callout="kanban"]) > div > :is(ul, ol) li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li:hover::before, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .markdown-preview-view:not(.kanban) *:not([data-callout="kanban"]) > div > :is(ul, ol) li:hover > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > ul:has(+ ol) > li::before, +body.bt-connected-indent-hover.bt-colorful-connected-indent-hover .markdown-preview-view:not(.kanban) *:not([data-callout="kanban"]) > div > :is(ul, ol) li:hover > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > :is(ul, ol) > li > ol:has(+ ul) > li::before { + filter: hue-rotate(300deg); +} + + +/*===========*/ +:is(.markdown-preview-view,.markdown-rendered) :is(b,strong), +.view-header-title { + font-weight: bold; +} + +span.cm-strong, +:not(font)>strong, +.cm-s-obsidian .cm-highlight.cm-strong { + font-weight: var(--font-weight-strong); +} + +span.cm-strong, +:not(font)>strong, +.cm-s-obsidian .cm-highlight.cm-strong { + color: var(--accent-strong) !important; + font-family: var(--font-family-strong) !important; +} + +font>strong { + font-family: var(--font-family-strong) !important; +} + +span.cm-em, +span.cm-em.cm-highlight, +span.cm-em.cm-quote, +span.cm-em.cm-highlight.cm-quote, +:is(.markdown-preview-view,.markdown-rendered) :not(font):not(strong)>em, +:is(.markdown-preview-view,.markdown-rendered) em>mark { + color: var(--accent-em); + font-family: var(--font-family-em); + font-style: var(--font-style-em); +} + +*:not(font)>em>strong, +*:not(font)>strong>em, +.cm-strong.cm-em { + padding-right: 0.05em; + background-clip: text; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-color: #f55454; + background-image: linear-gradient(120deg, var(--strong-em-color-1) 0%, var(--strong-em-color-2) 80%); + font-family: var(--font-family-strong) !important; +} + +:is(.markdown-preview-view,.markdown-rendered) :not(font)>strong>em>mark { + background-color: var(--mark-highlight-strong-em); + padding: 1px 3px; + border-radius: var(--radius-xs); +} + +em>strong>font, +strong>em>font, +strong>em>mark>font { + background-image: initial; + background-clip: initial; + -webkit-background-clip: initial; + -webkit-text-fill-color: initial; + background-color: initial; +} + +/*internal link with strong&em*/ +strong>em>.internal-link, +.cm-strong.cm-em.cm-hmd-internal-link { + -webkit-text-fill-color: initial; + text-decoration: underline !important; +} + +.markdown-source-view.mod-cm5 span.cm-formatting.cm-formatting-strong.cm-strong, +.markdown-source-view.mod-cm5 span.cm-formatting.cm-formatting-em.cm-em { + opacity: 0.2; +} + +.theme-dark .markdown-source-view.mod-cm5 .cm-formatting.cm-formatting-strong.cm-em.cm-strong { + opacity: 0.2; + -webkit-text-fill-color: var(--green); +} + +.theme-light .markdown-source-view.mod-cm5 .cm-formatting.cm-formatting-strong.cm-em.cm-strong { + opacity: 0.2; + -webkit-text-fill-color: var(--orange); +} + +a:not([class*="is-unresolved"]).internal-link>strong, +a.external-link>strong, +a:not([class*="is-unresolved"]).internal-link>em, +a.external-link>em { + color: var(--text-accent); +} + +body.remove-external-link-icon a.external-link { + background-image: none; +} +body.remove-external-link-icon span.external-link +{ + background-image:none; +} +/*link format [[]]*/ +.cm-formatting-link.cm-strong.cm-em { + -webkit-text-fill-color: var(--text-faint); + opacity: 0.2; +} + +div.CodeMirror-activeline .CodeMirror-line span.cm-formatting-link.cm-strong.cm-em { + opacity: 1; +} + +.theme-dark div.CodeMirror-activeline .CodeMirror-line span.cm-formatting.cm-formatting-strong.cm-strong { + opacity: 1; + color: var(--text-accent); +} + +.theme-dark div.CodeMirror-activeline .CodeMirror-line span.cm-formatting.cm-formatting-em.cm-em { + opacity: 1; + color: var(--text-orange); +} + +.theme-dark div.CodeMirror-activeline .CodeMirror-line span.cm-formatting.cm-formatting-strong.cm-em.cm-strong { + opacity: 1; + color: var(--green); +} + +.theme-light div.CodeMirror-activeline .CodeMirror-line span.cm-formatting.cm-formatting-strong.cm-strong { + opacity: 1; + color: var(--orange); +} + +.theme-light div.CodeMirror-activeline .CodeMirror-line span.cm-formatting.cm-formatting-em.cm-em, +.theme-light div.CodeMirror-activeline .CodeMirror-line span.cm-formatting.cm-formatting-strong.cm-em.cm-strong { + opacity: 1; + color: var(--orange); +} + +.workspace>.workspace-split>.workspace-leaf:first-of-type:last-of-type .view-header { + border: none; + background: var(--background-primary); +} + +/*smaller header title*/ +.view-header-title { + font-size: var(--font-size-file-header-title); +} + +.popover.hover-popover { + overflow: hidden; + box-shadow: 0 0 6px 6px var(--theme-color-translucent-015); +} + +.popover.hover-popover:not(.hover-editor) > *:not(.mod-empty) { + width: calc(var(--popover-width) * var(--popover-width-factor)); + height: calc(var(--popover-height) * var(--popover-height-factor)); + max-height: calc(var(--popover-height) * var(--popover-height-factor)); +} + +/*hover editor plugin*/ +.popover.hover-editor .popover-title:after { + background: none !important; +} + +body:not(.remove-heading-indicator) .popover h1:hover::before, +body:not(.remove-heading-indicator) .markdown-embed h1:hover::before, +body:not(.remove-heading-indicator) .markdown-preview-view .callout-content h1:hover::before { + content: 'H1'; + position: absolute; + font-size: 0.4em; + width: auto; + border: 1px solid; + padding: 0 2px; + border-radius: var(--radius-xs); + top: -1.1em; +} +body:not(.remove-heading-indicator) .popover h2:hover::before, +body:not(.remove-heading-indicator) .markdown-embed h2:hover::before, +body:not(.remove-heading-indicator) .markdown-preview-view .callout-content h2:hover::before { + content: 'H2'; + position: absolute; + font-size: 0.45em; + width: auto; + border: 1px solid; + padding: 0 2px; + border-radius: var(--radius-xs); + top: -1.1em; +} +body:not(.remove-heading-indicator) .popover h3:hover::before, +body:not(.remove-heading-indicator) .markdown-embed h3:hover::before, +body:not(.remove-heading-indicator) .markdown-preview-view .callout-content h3:hover::before { + content: 'H3'; + position: absolute; + font-size: 0.45em; + width: auto; + border: 1px solid; + padding: 0 2px; + border-radius: var(--radius-xs); + top: -1.1em; +} +body:not(.remove-heading-indicator) .popover h4:hover::before, +body:not(.remove-heading-indicator) .markdown-embed h4:hover::before, +body:not(.remove-heading-indicator) .markdown-preview-view .callout-content h4:hover::before { + content: 'H4'; + position: absolute; + font-size: 0.5em; + width: auto; + border: 1px solid; + padding: 0 2px; + border-radius: var(--radius-xs); + top: -1.1em; +} +body:not(.remove-heading-indicator) .popover h5:hover::before, +body:not(.remove-heading-indicator) .markdown-embed h5:hover::before, +body:not(.remove-heading-indicator) .markdown-preview-view .callout-content h5:hover::before { + content: 'H5'; + position: absolute; + font-size: 0.55em; + width: auto; + border: 1px solid; + padding: 0 2px; + border-radius: var(--radius-xs); + top: -1.1em; +} +body:not(.remove-heading-indicator) .popover h6:hover::before, +body:not(.remove-heading-indicator) .markdown-embed h6:hover::before, +body:not(.remove-heading-indicator) .markdown-preview-view .callout-content h6:hover::before { + content: 'H6'; + position: absolute; + font-size: 0.6em; + width: auto; + border: 1px solid; + padding: 0 2px; + border-radius: var(--radius-xs); + top: -1.1em; +} + +body:not(.remove-heading-indicator) .markdown-embed :is(h1, h2, h3, h4, h5, h6):hover::before, +body:not(.remove-heading-indicator) .callout-content :is(h1, h2, h3, h4, h5, h6):hover::before{ + margin-left: 0 !important; +} +body:not(.remove-heading-indicator) .callout-content :is(h1, h2, h3, h4, h5, h6):hover::before { + top: -1.25em; +} + +:is(.markdown-preview-section,.markdown-rendered) table:not(.dataview.table-view-table) { + + border-collapse: collapse; + overflow: auto; + margin: 20px auto; +} + +body.table-width-100 :is(.markdown-preview-section,.markdown-rendered) table:not(.dataview.table-view-table) { + width: 100%; +} +body.table-width-auto :is(.markdown-preview-section,.markdown-rendered) table:not(.dataview.table-view-table) { + width: auto; +} + +:is(.markdown-preview-section,.markdown-rendered) table:not(.dataview.table-view-table):active, +:is(.markdown-preview-section,.markdown-rendered) table:not(.dataview.table-view-table):hover { + overflow: hidden; + resize: both !important; +} + +body .markdown-preview-view th, +body .markdown-source-view.mod-cm6 .dataview.table-view-table thead.table-view-thead tr th, +body .table-view-table>thead>tr>th { + background-image: none; +} +/*修复Itinerary插件显示问题*/ +:is(.markdown-preview-view,.markdown-rendered) :is(.markdown-preview-section,.markdown-rendered) .block-language-itinerary.fc table { + overflow: unset; +} + +/*modified from https://codepen.io/brettdewoody/pen/oBjbbB */ +body.no-wrapped-table-cell table:not([class*="table-view-table"]), +body.no-wrapped-dvtable-cell .dataview.table-view-table { + width: 100%; + table-layout: fixed; +} + +body.no-wrapped-table-cell table:not([class*="table-view-table"]) :is(th,td), +body.no-wrapped-dvtable-cell .dataview.table-view-table :is(th,td) { + white-space: nowrap; + overflow-x: auto; + text-overflow: ellipsis; +} + +body.no-wrapped-table-cell table:not([class*="table-view-table"]) :is(th,td):hover, +body.no-wrapped-dvtable-cell .dataview.table-view-table :is(th,td):hover { + text-overflow: clip; +} +/*modified from https://forum.obsidian.md/t/custom-css-for-tables-5-new-styles-ready-to-use-in-your-notes/17084 */ + +/****dataview table***/ +table.table-view-table > thead > tr > th { + font-size: 0.9em; +} +table.table-view-table > tbody > tr > td { + font-size: 0.85em; +} + +body.wrapped-dvtable:not(.no-wrapped-dvtable-cell):not(.no-wrapped-dvtable) :is(.markdown-preview-view,.markdown-rendered) table.dataview.table-view-table>thead>tr, +body.wrapped-dvtable:not(.no-wrapped-dvtable-cell):not(.no-wrapped-dvtable) :is(.markdown-preview-view,.markdown-rendered) .table.dataview.table-view-table>tbody>tr, +body.wrapped-table:not(.no-wrapped-table-cell):not(.no-wrapped-table) :is(.markdown-preview-view,.markdown-rendered) table:not([class*="table-view-table"]) >thead>tr, +body.wrapped-table:not(.no-wrapped-table-cell):not(.no-wrapped-table) :is(.markdown-preview-view,.markdown-rendered) table:not([class*="table-view-table"]) >tbody>tr { + white-space: pre-wrap; + word-break: break-word; + overflow-wrap: anywhere; +} + +body.no-wrapped-dvtable .block-language-dataview, +body.no-wrapped-table table:not([class*="table-view-table"]) { + width: 100%; + margin: 0; + overflow-x: auto; + white-space: nowrap; +} +body.no-wrapped-dvtable table.dataview th { + padding: 0 20px; + font-size: 1em; +} + +body.no-wrapped-dvtable table.dataview tbody tr td:first-child { + font-size: 0.9em; +} + +body.no-wrapped-dvtable table.dataview td:not(:first-child), +body.no-wrapped-dvtable table.dataview tr > td:last-of-type { + font-size: 0.9em; + max-width: unset; +} + +body.auto-serial-number-dvtable .markdown-source-view:not(.cards) .dataview.table-view-table { + counter-reset: sec; +} +body.auto-serial-number-dvtable .markdown-source-view:not(.cards) .dataview.table-view-table> tbody > tr> td:first-child::before { + counter-increment: sec; + content:counter(sec) ". "; +} + +body.auto-serial-number-dvtable .markdown-preview-view:not(.cards) .dataview.table-view-table { + counter-reset: section; +} +body.auto-serial-number-dvtable .markdown-preview-view:not(.cards) .dataview.table-view-table> tbody > tr> td:first-child::before { + counter-increment: section; + content:counter(section) ". "; +} + +body:not(.no-wrapped-dvtable) :is(.markdown-preview-view,.markdown-rendered) .table-view-table>tbody>tr>td, +body:not(.no-wrapped-dvtable) .markdown-source-view.mod-cm6 .table-view-table>tbody>tr>td { + max-width: 18em; +} + +:is(.markdown-preview-view,.markdown-rendered) table tbody>tr:nth-child(odd), +.markdown-source-view table tbody>tr:nth-child(odd) { + background-color: var(--table-background-color-odd); +} + +:is(.markdown-preview-view,.markdown-rendered) table tbody>tr, +.markdown-source-view table tbody>tr { + background-color: var(--table-background-color); +} + +:is(.markdown-preview-view,.markdown-rendered) :is(th,td) { + padding: 4px 10px; + border: none; +} + +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view) th, +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view) thead tr > th:nth-child(2n+2) { + background-color: var(--table-thead-background-color); + font-family: var(--font-family-strong); +} + + +/*table hover*/ +:is(.markdown-preview-view,.markdown-rendered) td:hover, +.markdown-rendered tbody tr > td:nth-child(2n+2):hover { + background-color: var(--table-hover-color); +} + +/*table raw hover*/ +:is(.markdown-preview-view,.markdown-rendered) table tbody>tr:hover, +.markdown-rendered tbody tr:nth-child(odd):hover { + background-color: var(--table-hover-raw-color); +} + +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view) th:hover, +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view) thead tr > th:nth-child(2n+2):hover { + background-color: var(--table-hover-thead-color); +} + + +body.toggle-table-transition :is(.markdown-preview-view,.markdown-rendered,.markdown-source-view) tbody tr:nth-child(odd):hover, +body.toggle-table-transition :is(.markdown-preview-view,.markdown-rendered,.markdown-source-view) tbody tr:hover{ + background: var(--table-hover-raw-color); + transform: scale(1.02); + transition: transform 0.1s cubic-bezier(0.11, 0.33, 0.23, 0.33); +} + +body.toggle-table-transition :is(.markdown-preview-view,.markdown-rendered,.markdown-source-view) tbody td:hover{ + background: var(--table-hover-color); + transform: scale(1.02); + transition: transform 0.1s cubic-bezier(0.22, 0.66, 0.46, 0.66); +} + +body.show-border-table :is(.markdown-preview-view,.markdown-rendered) :is(th,td) { + border: 1px solid var(--table-border-color); +} + +:is(.markdown-preview-view,.markdown-rendered) table { + box-shadow: 2px 2px 12px rgba(0, 0, 0, 0.1); +} + +body.table-style-one.theme-light { + --table-background-color-odd: rgba(0, 0, 0, 0.02); + --table-background-color: rgba(0, 0, 0, 0.02); + --table-thead-background-color: rgba(0, 0, 0, 0.1); + --table-hover-color: rgba(0, 0, 0, 0.03); + --table-hover-raw-color: rgba(0, 0, 0, 0.05); + --table-hover-thead-color: var(--table-thead-background-color); +} +body.table-style-one.theme-dark { + --table-background-color-odd: rgba(0, 0, 0, 0.3); + --table-background-color: rgba(0, 0, 0, 0.3); + --table-thead-background-color: rgba(0, 0, 0, 0.5); + --table-hover-color: rgba(0, 0, 0, 0.5); + --table-hover-raw-color: rgba(0, 0, 0, 0.5); + --table-hover-thead-color: var(--table-thead-background-color); +} + +body.table-style-two.theme-light { + --table-background-color-odd: rgba(0, 0, 0, 0.02); + --table-background-color: rgba(0, 0, 0, 0.05); + --table-thead-background-color: rgba(0, 0, 0, 0.1); + --table-hover-color: rgba(0, 0, 0, 0.03); + --table-hover-raw-color: rgba(0, 0, 0, 0.09); + --table-hover-thead-color: var(--table-thead-background-color); +} +body.table-style-two.theme-dark { + --table-background-color-odd: rgba(0, 0, 0, 0.3); + --table-background-color: rgba(0, 0, 0, 0.4); + --table-thead-background-color: rgba(0, 0, 0, 0.5); + --table-hover-color: rgba(0, 0, 0, 0.5); + --table-hover-raw-color: rgba(0, 0, 0, 0.5); + --table-hover-thead-color: var(--table-thead-background-color); +} + +body.table-style-two :is(.markdown-preview-view,.markdown-rendered) th { + border: none; + border-bottom: 2px solid; +} +body.table-style-two :is(.markdown-preview-view,.markdown-rendered) td { + border: none; +} + +body.table-style-three :is(.markdown-preview-view,.markdown-rendered) th, +body.table-style-three .markdown-source-view th, +body.table-style-three :is(.markdown-preview-view,.markdown-rendered) th:hover, +body.table-style-three .markdown-source-view th:hover, +body.table-style-three :is(.markdown-preview-view,.markdown-rendered) td:hover, +body.table-style-three .markdown-source-view td:hover, +body.table-style-three :is(.markdown-preview-view,.markdown-rendered) table tbody>tr:hover, +body.table-style-three .markdown-source-view table tbody>tr:hover, +body.table-style-three :is(.markdown-preview-view,.markdown-rendered) table tbody>tr:nth-child(odd), +body.table-style-three .markdown-source-view table tbody>tr:nth-child(odd), +body.table-style-three :is(.markdown-preview-view,.markdown-rendered) table tbody>tr, +body.table-style-three .markdown-source-view table tbody>tr { + background-color: transparent; +} + +/*Full-width table dvtable callout backlinks layout*/ +/*modified from https://github.com/efemkay */ +:is(body.full-width-table,body.full-width-dvtable,body.full-width-callout,body.full-width-backlinks) .markdown-source-view.mod-cm6 .cm-contentContainer.cm-contentContainer, +:is(body.full-width-table,body.full-width-dvtable,body.full-width-callout,body.full-width-backlinks) .markdown-source-view.mod-cm6 .cm-contentContainer.cm-contentContainer > div, +:is(body.full-width-table,body.full-width-dvtable,body.full-width-callout,body.full-width-backlinks) .markdown-source-view.mod-cm6 .cm-contentContainer.cm-contentContainer > div.cm-content, +:is(body.full-width-table,body.full-width-dvtable,body.full-width-callout,body.full-width-backlinks) .markdown-source-view.mod-cm6 .cm-contentContainer.cm-contentContainer > div.cm-content .cm-table-widge { + max-width: 100%; + /* width: 100%; ob1.0*/ +} + +:is(body.full-width-table,body.full-width-dvtable,body.full-width-callout,body.full-width-backlinks) .markdown-preview-view .markdown-preview-sizer.markdown-preview-sizer, +:is(body.full-width-table,body.full-width-dvtable,body.full-width-callout,body.full-width-backlinks) .markdown-preview-view .markdown-preview-sizer.markdown-preview-sizer > div { + max-width: 100%; + margin-inline: auto; + width: 100%; +} + +/* Editing View -- set all divs back to normal width (ensuring specificity rule over some theme), then expand to full-width for each selected css class */ +:is(body.full-width-table,body.full-width-dvtable,body.full-width-callout,body.full-width-backlinks) div.markdown-source-view.mod-cm6 .cm-contentContainer.cm-contentContainer > div > div, +:is(body.full-width-table,body.full-width-dvtable,body.full-width-callout,body.full-width-backlinks) div.markdown-source-view.mod-cm6 .cm-contentContainer.cm-contentContainer > div > .cm-line { + max-width: var(--file-line-width); + margin-inline: auto !important; +} /* important for margin needed because app.css:2842 use it */ + +body.full-width-dvtable .markdown-source-view.mod-cm6 .cm-contentContainer.cm-contentContainer > div > div.cm-preview-code-block:not(.admonition-parent), +body.full-width-table .markdown-source-view.mod-cm6 .cm-contentContainer.cm-contentContainer > div > div:is(.HyperMD-table-row, .cm-table-widget), +body.full-width-callout .markdown-source-view.mod-cm6 .cm-contentContainer.cm-contentContainer > div > div:is(.cm-callout,.admonition-parent), +body.full-width-backlinks .markdown-source-view.mod-cm6 .cm-contentContainer.cm-contentContainer > div:is(.embedded-backlinks) > div { + max-width: 100%; +} + +body.full-width-dvtable .markdown-source-view.mod-cm6 .cm-contentContainer.cm-contentContainer > div > div.cm-preview-code-block>div[class^="block-language"]:not(.block-language-dataview) { + max-width: var(--file-line-width); + margin-inline: auto; +} + +/* Reading View -- similar to Editing View, set all divs to normal-width and then selected divs to full-width, + however, for Reading View, wide-dataview and wide-table will require Contextual Typography plugin */ +:is(body.full-width-table,body.full-width-dvtable,body.full-width-callout,body.full-width-backlinks) div.markdown-preview-view:not(.fullwidth) .markdown-preview-sizer.markdown-preview-sizer > div:not(.obsidian-banner-wrapper) { + max-width: var(--file-line-width); + margin-inline: auto; +} + + +body.full-width-dvtable .markdown-preview-view .markdown-preview-sizer.markdown-preview-sizer > div:is(.el-lang-dataview), +body.full-width-table .markdown-preview-view .markdown-preview-sizer.markdown-preview-sizer > div:is(.el-table), +body.full-width-callout .markdown-preview-view .markdown-preview-sizer.markdown-preview-sizer > div:is([data-callout],.admonition-parent), +body.full-width-backlinks .markdown-preview-view .markdown-preview-sizer.markdown-preview-sizer > div:is(.embedded-backlinks) { + max-width: 100%!important; +} + +/*Full-width table dvtable callout backlinks layout*/ +/*modified from https://github.com/efemkay */ + +/* Editing View -- set Readable Line Length (RLL) to wide (100%) for any css class with "wide" word in it. / "width:100%" added for Blue Topaz / div.cm-content added to override Mado 11 */ +div[class*="wide-"].markdown-source-view.mod-cm6 .cm-contentContainer.cm-contentContainer, +div[class*="wide-"].markdown-source-view.mod-cm6 .cm-contentContainer.cm-contentContainer > div, +div[class*="wide-"].markdown-source-view.mod-cm6 .cm-contentContainer.cm-contentContainer > div.cm-content, +div[class*="wide-"].markdown-source-view.mod-cm6 .cm-contentContainer.cm-contentContainer > div.cm-content .cm-table-widget { + max-width: 100%; + /* width: 100%; ob1.0*/ +} + +/* Reading View -- similar to Editing View, set the RLL to 100% for any css class with "wide" word in it. "width:100%" added for Blue Topaz */ +div[class*="wide-"].markdown-preview-view .markdown-preview-sizer.markdown-preview-sizer, +div[class*="wide-"].markdown-preview-view .markdown-preview-sizer.markdown-preview-sizer > div { + max-width: 100%; + margin-inline: auto; + width: 100%; +} + +/* === Wide Dataview, Table & Backlink === */ +/* Editing View -- set all divs back to normal width (ensuring specificity rule over some theme), then expand to full-width for each selected css class (i.e. wide-dataview, wide-table and wide-backlinks) */ +div.markdown-source-view.mod-cm6:is(.wide-dataview,.wide-table,.wide-backlinks,.wide-callout) .cm-contentContainer.cm-contentContainer > div > div, +div.markdown-source-view.mod-cm6:is(.wide-dataview,.wide-table,.wide-backlinks,.wide-callout) .cm-contentContainer.cm-contentContainer > div > .cm-line { + max-width: var(--file-line-width); + margin-inline: auto !important; +} /* important for margin needed because app.css:2842 use it */ +div[class*="-dataview"].markdown-source-view.mod-cm6 .cm-contentContainer.cm-contentContainer > div > div.cm-preview-code-block:not(.admonition-parent), +div[class*="-table"].markdown-source-view.mod-cm6 .cm-contentContainer.cm-contentContainer > div > div:is(.HyperMD-table-row, .cm-table-widget), +div[class*="-callout"].markdown-source-view.mod-cm6 .cm-contentContainer.cm-contentContainer > div > div:is(.cm-callout,.admonition-parent), +div[class*="-backlinks"].markdown-source-view.mod-cm6 .cm-contentContainer.cm-contentContainer > div:is(.embedded-backlinks) > div { + max-width: 100%; +} + +div[class*="-dataview"].markdown-source-view.mod-cm6 .cm-contentContainer.cm-contentContainer > div > div.cm-preview-code-block>div[class^="block-language"]:not(.block-language-dataview) { + max-width: var(--file-line-width); + margin-inline: auto; +} + +/* Reading View -- similar to Editing View, set all divs to normal-width and then selected divs to full-width, however, for Reading View, wide-dataview and wide-table will require Contextual Typography plugin */ +div.markdown-preview-view:is(.wide-dataview,.wide-table,.wide-backlinks,.wide-callout) .markdown-preview-sizer.markdown-preview-sizer > div { + max-width: var(--file-line-width); + margin-inline: auto; +} +div[class*="-dataview"].markdown-preview-view .markdown-preview-sizer.markdown-preview-sizer > div:is(.el-lang-dataview), +div[class*="-table"].markdown-preview-view .markdown-preview-sizer.markdown-preview-sizer > div:is(.el-table), +div[class*="-callout"].markdown-preview-view .markdown-preview-sizer.markdown-preview-sizer > div:is([data-callout],.admonition-parent), +div[class*="-backlinks"].markdown-preview-view .markdown-preview-sizer.markdown-preview-sizer > div:is(.embedded-backlinks) { + max-width: 100%!important; +} + +/***end--Full-width table display--end****/ + +.popover mark { + color: var(--text-normal); +} + +.theme-light .cm-s-obsidian span.cm-formatting-highlight, +.theme-light .cm-s-obsidian span.cm-highlight:not([class*="code"]), +.theme-light :is(.markdown-preview-view,.markdown-rendered) mark, +.theme-light .cm-formatting.cm-formatting-highlight.cm-strong.cm-em.cm-highlight, +.theme-light .popover mark, +.theme-light span.cm-strong.cm-em.cm-highlight { + background-color: hsla(var(--text-highlight-bg-h-light), var(--text-highlight-bg-s-light), var(--text-highlight-bg-l-light), var(--text-highlight-bg-a-light)); +} +.theme-dark .cm-s-obsidian span.cm-formatting-highlight, +.theme-dark .cm-s-obsidian span.cm-highlight:not([class*="code"]), +.theme-dark :is(.markdown-preview-view,.markdown-rendered) mark, +.theme-dark .cm-formatting.cm-formatting-highlight.cm-strong.cm-em.cm-highlight, +.theme-dark .popover mark, +.theme-dark span.cm-strong.cm-em.cm-highlight { + background-color: hsla(var(--text-highlight-bg-h-dark), var(--text-highlight-bg-s-dark), var(--text-highlight-bg-l-dark), var(--text-highlight-bg-a-dark)); +} + +.theme-light :is(.markdown-preview-view,.markdown-rendered) :not(font)>strong>em>mark { + background-color: hsla(var(--text-highlight-bg-h-light), calc(var(--text-highlight-bg-s-light) * 1.5), calc(var(--text-highlight-bg-l-light) * 0.6), calc(var(--text-highlight-bg-a-light) * 0.28)); +} + +.theme-dark :is(.markdown-preview-view,.markdown-rendered) :not(font)>strong>em>mark { + background-color: hsla(var(--text-highlight-bg-h-dark), calc(var(--text-highlight-bg-s-dark) * 1.5), calc(var(--text-highlight-bg-l-dark) * 1.1), calc(var(--text-highlight-bg-a-dark) * 0.55)); +} + +body:not(.remove-colorful-highlight-bg) .cm-em.cm-formatting.cm-formatting-highlight.cm-highlight, +body:not(.remove-colorful-highlight-bg) .cm-em.cm-formatting.cm-formatting-highlight.cm-highlight + .cm-em.cm-highlight:not([class*="strong"]), +.markdown-source-view.colorful-highlight .cm-em.cm-formatting.cm-formatting-highlight.cm-highlight, +.markdown-source-view.colorful-highlight .cm-em.cm-formatting.cm-formatting-highlight.cm-highlight + .cm-em.cm-highlight:not([class*="strong"]), +body:not(.remove-colorful-highlight-bg) :is(.markdown-preview-view,.markdown-rendered) :not(font):not(strong)>em>mark, +:is(.markdown-preview-view,.markdown-rendered).colorful-highlight :not(font):not(strong)>em>mark { + background-color: var(--bg-color-highlight-1); + color: var(--color-highlight-1); + font-style: normal; + font-weight: var(--font-weight-highlight-1); +} +body:not(.remove-colorful-highlight-bg) :is(.markdown-preview-view,.markdown-rendered) :not(font):not(strong)>em>mark { + border-radius: var(--radius-xs); +} + +body:not(.remove-colorful-highlight-bg) .cm-formatting.cm-formatting-highlight.cm-highlight.cm-strong, +body:not(.remove-colorful-highlight-bg) .cm-formatting.cm-formatting-highlight.cm-highlight.cm-strong + .cm-highlight.cm-strong:not([class*="em"]), +.markdown-source-view.colorful-highlight .cm-formatting.cm-formatting-highlight.cm-highlight.cm-strong, +.markdown-source-view.colorful-highlight .cm-formatting.cm-formatting-highlight.cm-highlight.cm-strong + .cm-highlight.cm-strong:not([class*="em"]), +body:not(.remove-colorful-highlight-bg) :is(.markdown-preview-view,.markdown-rendered) :not(font):not(em)>strong>mark, +:is(.markdown-preview-view,.markdown-rendered).colorful-highlight :not(font):not(em)>strong>mark { + background-color: var(--bg-color-highlight-2) !important; + color: var(--color-highlight-2) !important; + font-weight: var(--font-weight-highlight-2); +} + +body:not(.remove-colorful-highlight-bg) .cm-em.cm-formatting.cm-formatting-highlight.cm-highlight.cm-strong, +body:not(.remove-colorful-highlight-bg) .cm-em.cm-formatting.cm-formatting-highlight.cm-highlight.cm-strong + .cm-em.cm-highlight.cm-strong, +.markdown-source-view.colorful-highlight .cm-em.cm-formatting.cm-formatting-highlight.cm-highlight.cm-strong, +.markdown-source-view.colorful-highlight .cm-em.cm-formatting.cm-formatting-highlight.cm-highlight.cm-strong + .cm-em.cm-highlight.cm-strong, +body:not(.remove-colorful-highlight-bg) :is(.markdown-preview-view,.markdown-rendered) :not(font)>strong>em>mark, +:is(.markdown-preview-view,.markdown-rendered).colorful-highlight :not(font)>strong>em>mark { + background-color: var(--bg-color-highlight-3) !important; + color: var(--color-highlight-3) !important; + font-style: normal; + font-weight: var(--font-weight-highlight-3); + background-image: initial; + background-clip: initial; + -webkit-background-clip: initial; + -webkit-text-fill-color: initial; +} +body:not(.remove-colorful-highlight-bg) .cm-em.cm-formatting.cm-formatting-highlight.cm-highlight.cm-strong, +body:not(.remove-colorful-highlight-bg) .cm-em.cm-formatting.cm-formatting-highlight.cm-highlight.cm-strong + .cm-em.cm-highlight.cm-strong, +body:not(.remove-colorful-highlight-bg) .cm-em.cm-formatting.cm-formatting-highlight.cm-highlight, +body:not(.remove-colorful-highlight-bg) .cm-em.cm-formatting.cm-formatting-highlight.cm-highlight + .cm-em.cm-highlight:not([class*="strong"]) { + padding: 1px 0; +} + +body.all-rounded-corners-highlight .cm-s-obsidian span.cm-highlight, +body.all-rounded-corners-highlight :is(.markdown-preview-view,.markdown-rendered) mark { + -webkit-box-decoration-break: clone; + border-radius: 5px; + padding: 1px 2px; + margin: 0 2px; +} + +body.all-rounded-corners-highlight .cm-s-obsidian .cm-formatting.cm-formatting-highlight:has(+ span.cm-highlight) { + border-radius: 5px 0 0 5px; + padding: 1px 0; + margin: 0 -5px 0 2px; +} + +body.all-rounded-corners-highlight .cm-s-obsidian .cm-formatting.cm-formatting-highlight+span.cm-highlight:has(+ span.cm-highlight) { + padding: 1px 4px; +} + +body.all-rounded-corners-highlight .cm-s-obsidian span.cm-highlight+.cm-formatting.cm-formatting-highlight { + border-radius: 0 5px 5px 0; + padding: 1px 0; + margin: 0 2px 0 -5px; +} + +body.no-rounded-corners-highlight .cm-s-obsidian span.cm-highlight, +body.no-rounded-corners-highlight :is(.markdown-preview-view,.markdown-rendered) mark { + border-radius: 0; + padding: 0; + margin: 0; +} + +.status-bar, +.side-dock.mod-right, +.side-dock.mod-left { + border-color: var(--panel-border-color); + border-width: 1px; +} +/* ----状态栏透明开关----------- */ + +body.bt-search-bar-bottom .document-search-container { + bottom: 38px; + width: 100% !important; + position: absolute; + height: 62px !important; + margin: 0 5px; +} +body.bt-status-on .status-bar { + position: sticky; +} +.status-bar { + --bar-vertical-padding: 5px; + --bar-height: calc(22px + (var(--bar-vertical-padding))); + line-height: 1; + height: var(--bar-height); + max-height: var(--bar-height); + min-height: var(--bar-height); + overflow: hidden; + color: var(--status-bar-text-color); + border-top: 1px solid var(--panel-border-color); + background-color: var(--status-bar-bg); +} + +.is-translucent .status-bar { + margin: 0; +} + +body.dark-background-file .nav-file-title.is-active { + background-color: var(--theme-color); + color: var(--white); +} + +/** file name**/ + +body.file-name-animation .nav-file-title-content:not(.is-being-renamed):hover { + animation: filemove 1.5s 1 normal linear; +} + +body.file-name-animation .nav-file-title-content:not(.is-being-renamed) { + min-width: 200px; + white-space: nowrap; +} +body.file-name-animation .nav-file { + display: table; +} +/** file folder name**/ +body.file-name-animation .obsidian-icon-folder-icon { + vertical-align: middle; + display: inline; +} + +body.file-name-animation .nav-folder-title { + white-space: nowrap; +} + +.nav-folder-title-content.is-being-renamed { + white-space: break-spaces; +} + +body.file-name-animation .nav-folder-title-content:not(.is-being-renamed) { + min-width: 200px; + white-space: nowrap; +} +body.file-name-animation .nav-folder-title-content:not(.is-being-renamed):hover { + animation: filemove 1.5s 1 normal linear; +} + +@keyframes filemove { + 0% {transform: translate(0, 0);} + 100% {transform: translate(calc(-100% + 200px), 0);} +} + +body.file-bg-rounded-rectangle .nav-file-title.is-active, +body.file-bg-rounded-rectangle .nav-folder-title.is-active, +body:not(.is-grabbing).file-bg-rounded-rectangle .nav-file-title:hover, +body:not(.is-grabbing).file-bg-rounded-rectangle .nav-folder-title:hover { + border-radius: var(--radius-m); +} + +body.file-bg-pill .nav-file-title.is-active, +body.file-bg-pill .nav-folder-title.is-active, +body:not(.is-grabbing).file-bg-pill .nav-file-title:hover, +body:not(.is-grabbing).file-bg-pill .nav-folder-title:hover { + border-radius: 15px; +} + +body.file-bg-pill .nav-folder.mod-root>.nav-folder-title { + margin-left: -2px; +} + +.item-list { + padding: 0; +} + +body.file-bg-pill .item-list { + padding: 0 4px 0 1px; +} + +.item-list .nav-file-icon { + margin-left: 2px; +} + +.nav-file-title.is-active { + background-color: var(--theme-color-translucent-01); +} + +body:not(.is-grabbing) .tree-item-self.is-clickable.nav-folder-title:hover { + background-color: color-mix(in srgb, var(--nav-item-background-active), transparent 0%); + color: var(--text-normal); + font-weight: bold; +} + +.nav-folder-title.is-being-dragged-over { + border-radius: var(--radius-xs); + color: var(--theme-color); + background: var(--theme-color-translucent-015); +} + +body:not(.is-grabbing) .tree-item-self.is-clickable.nav-file-title.is-active:hover, +body:not(.is-grabbing) .tree-item-self.is-clickable.nav-file-title:hover, +.nav-file:not(.is-active):hover .nav-file-title, +.nav-folder:hover .nav-folder-content { + background-color: var(--theme-color-translucent-01); +} + +body.is-grabbing .nav-folder-title:hover, +body.is-grabbing .nav-file-title:hover { + font-weight: bold !important; + color: var(--theme-color); + filter: hue-rotate(160deg); + background-color: var(--theme-color-translucent-015); + opacity: 1; +} + +.workspace-leaf.mod-active .nav-folder.has-focus > .nav-folder-title, +.workspace-leaf.mod-active .nav-file.has-focus > .nav-file-title { + background-color: var(--theme-color-translucent-015); +} + +body.is-grabbing:not(.remove-file-icons):not(.bt-toggle-colorful-folder.folder-style-change-options-colorful) .nav-file-title.is-active[data-path$=".md"]>.nav-file-title-content::before, +body:not(.remove-file-icons):not(.bt-toggle-colorful-folder.folder-style-change-options-colorful) .nav-file-title.is-active[data-path$=".md"]:hover>.nav-file-title-content::before { + filter: hue-rotate(160deg); +} + +.side-dock-plugin-panel-inner { + padding-left: 6px; +} + +/*link*/ +:is(.markdown-preview-view,.markdown-rendered) .internal-link { + font-family: var(--font-family-strong) !important; +} + +body:not(.default-unresolved-link) :is(.markdown-preview-view,.markdown-rendered) .internal-link.is-unresolved>*, +body:not(.default-unresolved-link) *>.internal-link.is-unresolved, +body:not(.default-unresolved-link) .markdown-source-view.mod-cm6 .cm-hmd-internal-link .is-unresolved { + color: var(--unresolved-link) !important; +} + +body:not(.default-unresolved-link) .markdown-source-view.mod-cm6 .is-unresolved, +body:not(.default-unresolved-link) :is(.markdown-preview-view,.markdown-rendered) .internal-link.is-unresolved { + opacity: 0.7; +} + +body.link-underline-unresolved :is(.markdown-preview-view,.markdown-rendered) .internal-link.is-unresolved>*, +body.link-underline-unresolved *>.internal-link.is-unresolved, +body.link-underline-unresolved .markdown-source-view.mod-cm6 .cm-hmd-internal-link .is-unresolved, +body.link-underline-unresolved .markdown-source-view.mod-cm6 .is-unresolved, +body.link-underline-unresolved :is(.markdown-preview-view,.markdown-rendered) .internal-link.is-unresolved, +body.link-underline-unresolved .cm-hmd-internal-link .is-unresolved .cm-underline { + text-decoration: none !important; +} + +body:not(.default-unresolved-link) :is(.markdown-preview-view,.markdown-rendered) mark .internal-link.is-unresolved { + opacity: 0.9; +} + +:is(.markdown-preview-view,.markdown-rendered) .internal-link.is-unresolved:hover { + opacity: 1 !important; +} + +a.internal-link, +.cm-s-obsidian span.cm-link, +.cm-s-obsidian span.cm-hmd-internal-link { + color: var(--internal-link-color) !important; +} + +.cm-s-obsidian span.cm-link:hover, +.cm-s-obsidian span.cm-hmd-internal-link:hover { + background: var(--theme-color-translucent-01); +} +/* internal link in highlight +.cm-highlight.cm-hmd-internal-link, +:is(.markdown-preview-view,.markdown-rendered) mark .internal-link:not(.is-unresolved) { + color: var(--internal-link-color-in-highlight) !important; +} +*/ + +:is(.markdown-preview-view,.markdown-rendered) a:hover { + color: var(--text-accent); + border-radius: var(--radius-xs); + text-decoration: none !important; + transition: all 0.4s ease-in-out; + text-shadow: var(--window-shadow-hover); + background: var(--theme-color-translucent-01); +} + +body.colorful-link-animation :is(.markdown-preview-view,.markdown-rendered) a:hover { + animation: 2s colorful-link infinite; +} + +@keyframes colorful-link { + 0% { filter: hue-rotate(0deg); } + 100% { filter: hue-rotate(360deg); } +} + +a.external-link { + text-decoration: underline; + color: var(--external-link-color); +} + + +body.link-underline-external .markdown-source-view.mod-cm6 .cm-link .cm-underline, +body.link-underline-externa .markdown-source-view.mod-cm6 .cm-url .cm-underline, +body.link-underline-external a.external-link, +body:not(.link-underline-internal) .markdown-source-view.mod-cm6 .cm-hmd-internal-link >*:not(.is-unresolved).cm-underline, +body:not(.link-underline-internal) :is(.markdown-preview-view,.markdown-rendered) .internal-link:not(.is-unresolved) { + text-decoration-line:none; +} + +.cm-url:hover { + transition: all 600ms; +} + +.cm-s-obsidian div.HyperMD-codeblock-bg { + background: var(--background-code); +} + +.theme-dark :not(pre)>code[class*='language-'], +.theme-dark pre[class*='language-'] { + background: var(--background-code) ; + border-radius: var(--radius-m); +} + +.theme-light :not(pre)>code[class*='language-'], +.theme-light pre[class*='language-'] { + background: var(--background-code); + border-radius: var(--radius-m); +} + +.theme-light code[class*="language-"], +.theme-light pre[class*="language-"] { + text-shadow: none; + color: var(--code-normal); + letter-spacing: calc(var(--letter-space-code) * 0.02em); +} + +.theme-dark code[class*="language-"], +.theme-dark pre[class*="language-"] { + color: var(--code-normal); + text-shadow: none; + letter-spacing: calc(var(--letter-space-code) * 0.02em); +} + +body.codebox-frosted-glass .canvas-node-container pre[class*='language-'] { + backdrop-filter: none; +} +body.codebox-frosted-glass .cm-s-obsidian div.HyperMD-codeblock-bg, +body.codebox-frosted-glass :not(pre)>code[class*='language-'], +body.codebox-frosted-glass pre[class*='language-'] { + backdrop-filter: blur(calc(var(--blur-codebox-frosted-glass) * 2px)); +} + +code[class*="language-"] { + padding: 1em 0.5em; +} + +/*embedded*/ +body.naked-embed.theme-dark, +body.naked-embed.theme-light { + --embed-color: transparent !important; +} +body.naked-embed .markdown-source-view.mod-cm6 .markdown-embed { + border: none; +} +body.hide-embed-title .markdown-embed-title{ + display: none; +} +body.embed-hd .markdown-embed :is(.markdown-preview-view,.markdown-rendered) :is(h1,h2,h3,h4,h5,h6) { + display: none; +} +.hide-embed-banner .markdown-embed-content .obsidian-banner-wrapper { + display: none; +} + + +.popover.hover-popover :is(.markdown-preview-view,.markdown-rendered) .markdown-embed, +.popover .markdown-preview-sizer:is(.markdown-preview-section,.markdown-rendered) { + height: auto; + min-height: min-content !important; +} + + +body.embed-hover.theme-light :is(.markdown-preview-view,.markdown-rendered) .internal-embed .markdown-embed:hover { + box-shadow: 0 3px 8px 0 rgba(0, 0, 0, .25); + transition: all .2s ease-in-out; + transform: translate3d(0px, -3px, 0px); +} +body.embed-hover.theme-light .markdown-source-view .internal-embed .markdown-embed:hover { + background: var(--background-primary-alt); + color: var(--text-normal); + border-radius: 6px; + border-width: 1px; + box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.1); +} + +body.embed-hover.theme-dark .internal-embed .markdown-embed:hover { + box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 10px 10px rgba(0,0,0,0.22); + transform: translate3d(0px, -3px, 0px); +} + +body:not(.is-mobile).hover-scrollbars .markdown-embed:not(.canvas-node-content), +body:not(.is-mobile).hover-scrollbars .popover.hover-popover .markdown-embed .markdown-embed { + padding: 0 0 0 1em; +} +.markdown-embed:not(.canvas-node-content), +.popover.hover-popover .markdown-embed .markdown-embed { + background-color: var(--embed-color); + border: 1px solid var(--embed-color); + border-radius: var(--radius-xs); + margin-bottom: 0; + padding: 0 0.5em 0 1em; + margin-top: 0; +} +.popover.hover-popover, +.popover.hover-popover .markdown-embed { + background-color: var(--background-popover); +} + + +.markdown-embed-link, +.file-embed-link { + position: absolute; + top: 2px; + right: 2px; + color: var(--text-faint); + cursor: pointer; + opacity: 0; +} + +.markdown-embed:hover .markdown-embed-link, +.markdown-embed:hover .file-embed-link { + opacity: 1; +} + +.markdown-source-view .markdown-embed { + border-color: transparent; + border-radius: var(--radius-xs); +} + +:is(.markdown-preview-view,.markdown-rendered,.cm-s-obsidian) .file-embed { + border: 2px solid var(--embed-color); + border-radius: var(--radius-l); + padding: 0.1em 0.5em; + margin: 0.1em 0; + background-color: transparent; +} + +:is(.markdown-preview-view,.markdown-rendered,.cm-s-obsidian) .file-embed:hover { + border: 2px solid var(--theme-color-translucent-04); + background-color: var(--embed-color); + border-radius: var(--radius-m); +} + +.markdown-embed .markdown-preview-sizer:is(.markdown-preview-section,.markdown-rendered):first-child :is(h1,h2,h3,h4,h5,h6) { + margin-block-start: 0.5em; +} + +.inline-embed .markdown-embed-content p:first-child { + margin: 0.5em 0; +} + +body:not(.adjustable-embed-content-height) :is(.markdown-preview-view,.markdown-rendered) .markdown-embed-content { + padding-right: 0; + max-height: 100%; + max-width: 100%; + overflow: auto; +} + +body.adjustable-embed-content-height :is(.markdown-preview-view,.markdown-rendered) .markdown-embed-content { + padding-right: 0; + max-height: var(--embed-content-height); + max-width: 100%; + overflow: auto; +} + +.file-embed-icon { + color: var(--theme-color); + vertical-align: middle; +} + +.markdown-embed-title { + font-weight: 600; + font-size: var(--font-size-embed-title-size); + line-height: inherit; + height: unset; + word-wrap: break-word; + white-space: pre-wrap; +} + +.file-embed-title { + font-weight: 600; + text-align: left; + line-height: 1.5em; + font-size: var(--font-size-embed-file); +} + +/* Source: https://github.com/AGMStudio/prism-theme-one-dark */ +body:not(.whole-code-wrap) code[class*='language-'], +body:not(.whole-code-wrap) pre[class*='language-'] { + word-spacing: normal; + word-break: normal; + word-wrap: break-word; + white-space: pre; + -moz-tab-size: 4 !important; + -o-tab-size: 4 !important; + tab-size: 4 !important; +} + +body.whole-code-wrap code[class*='language-'], +body.whole-code-wrap pre[class*='language-'] { + word-spacing: normal; + word-wrap: break-word; + white-space: pre-wrap; + word-break: normal; +} + + + +/* Inline code */ +:not(pre)>code[class*='language-'] { + padding: .1em !important; + border-radius: var(--radius-s) !important; + white-space: normal !important; +} + +.token.important, +.token.bold { + font-weight: bold !important; +} + +.token.italic { + font-style: italic !important; +} + +.token.entity { + cursor: help !important; +} + +/*show language type in preview mode*/ +/*Thanks to elutao from https://snippets.cacher.io/snippet/018387c872dc39277996 */ +body:not(.remove-language-type) pre::before { + font-family: var(--font-default); + color: #95a3b5; + opacity: 0.7; + font-size: 0.85em; + font-weight: 600; + position: absolute; + right: 48px; + top: 0.05em; +} + +pre { + position: relative; +} + +body:not(.remove-language-type) pre[class~='language-c']::before { + content: "C"; +} +body:not(.remove-language-type) pre[class~='language-py']::before, +body:not(.remove-language-type) pre[class~='language-python']::before { + content: "PYTHON"; +} +body:not(.remove-language-type) pre[class~='language-nginx']::before { + content: "NGINX"; +} +body:not(.remove-language-type) pre[class~='language-css']::before { + content: "CSS"; +} +body:not(.remove-language-type) pre[class~='language-javascript']::before { + content: "JS"; +} +body:not(.remove-language-type) pre[class~='language-js']::before { + content: "JS"; +} +body:not(.remove-language-type) pre[class~='language-php']::before { + content: "PHP"; +} +body:not(.remove-language-type) pre[class~='language-shell']::before, +body:not(.remove-language-type) pre[class~='language-bash']::before { + content: "SHELL"; +} +body:not(.remove-language-type) pre[class~='language-flow']::before { + content: "FLOW"; +} +body:not(.remove-language-type) pre[class~='language-sequence']::before { + content: "SEQUENCE"; +} +body:not(.remove-language-type) pre[class~='language-sql']::before { + content: "SQL"; +} +body:not(.remove-language-type) pre[class~='language-yaml']::before { + content: "YAML"; +} +body:not(.remove-language-type) pre[class~='language-ini']::before { + content: "INI"; +} +body:not(.remove-language-type) pre[class~='language-xml']::before { + content: "XML"; +} +body:not(.remove-language-type) pre[class~='language-git']::before { + content: "GIT"; +} +body:not(.remove-language-type) pre[class~='language-cs']::before { + content: "C#"; +} +body:not(.remove-language-type) pre[class~='language-cpp']::before { + content: "C++"; +} +body:not(.remove-language-type) pre[class~='language-java']::before { + content: "JAVA"; +} +body:not(.remove-language-type) pre[class~='language-html']::before { + content: "HTML"; +} +body:not(.remove-language-type) pre[class~='language-txt']::before { + content: "TXT"; +} +body:not(.remove-language-type) pre[class~='language-r']::before { + content: "R"; +} +body:not(.remove-language-type) pre[class~='language-matlab']::before { + content: "MATLAB"; +} + +/* ==== fold icons ==== */ +.CodeMirror-guttermarker-subtle { + color: var(--text-normal); +} + +/*-- reduce left padding --*/ +div:not(.CodeMirror-activeline)>.CodeMirror-line span.cm-formatting.cm-formatting-header { + font-size: 0.6rem !important; + opacity: 0.5; +} + +div.CodeMirror-activeline .CodeMirror-line span.cm-formatting.cm-formatting-header { + font-size: 0.6rem !important; + opacity: 1; +} + +span.cm-formatting.cm-formatting-header { + opacity: 0.45; +} + +body.image-border img{ + border: 1px solid rgba(var(--mono-rgb-100),0.1); + filter: drop-shadow(0px 0px 3px rgba(var(--mono-rgb-100),0.2)); +} +/* images : reduce displayed size of embedded files, zoom on hover */ +body:not(.obsidian-default-image) :is(.markdown-preview-view, .markdown-rendered) .workspace-leaf-content[data-type="markdown"] img:not([class*="emoji"]) { + max-width: var(--image-max-width); + margin-left: auto; + margin-right: auto; +} + +body:not(.obsidian-default-image) .print :is(.markdown-preview-view, .markdown-rendered) img:not([class*="emoji"]) { + display: block; +} + +body:not(.obsidian-default-image) .workspace-leaf-content[data-type="markdown"] .view-content :not(.canvas-node-content)>img:not([class*="emoji"]) { + cursor: zoom-in; + display: block; + margin-left: auto ; + margin-right: auto; +} + +body:not(.image-zoom) .markdown-reading-view button img, +body:not(.image-zoom) .markdown-reading-view .callout-title-inner img { + pointer-events: none; +} + +body:not(.image-zoom) .markdown-reading-view img:not([class*="emoji"]):active, +.workspace-leaf-content[data-type="image"] img:active { + cursor: zoom-out !important; + position: fixed; + object-fit: contain; + max-height: 100%; + max-width: 100%; + height: 100%; + width: 100%; + margin: 1px auto 0; + padding: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 200; + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MCIgaGVpZ2h0PSI4MCIgdmlld0JveD0iMCAwIDgwIDgwIj4KICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgPHJlY3Qgd2lkdGg9IjgwIiBoZWlnaHQ9IjgwIiBmaWxsPSIjRjJGNEY2Ii8+CiAgICA8ZyBmaWxsPSIjRkZGIj4KICAgICAgPHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iNzkiIHg9Ijc4Ii8+CiAgICAgIDxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjE5IiB4PSIxOSIvPgogICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxOSIgeD0iMzkiLz4KICAgICAgPHJlY3Qgd2lkdGg9IjEiIGhlaWdodD0iMTkiIHg9IjU5Ii8+CiAgICAgIDxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjE5IiB4PSIxOSIgeT0iMjAiLz4KICAgICAgPHJlY3Qgd2lkdGg9IjEiIGhlaWdodD0iMTkiIHg9IjM5IiB5PSIyMCIvPgogICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxOSIgeD0iNTkiIHk9IjIwIi8+CiAgICAgIDxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjE5IiB4PSIxOSIgeT0iNDAiLz4KICAgICAgPHJlY3Qgd2lkdGg9IjEiIGhlaWdodD0iMTkiIHg9IjM5IiB5PSI0MCIvPgogICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxOSIgeD0iNTkiIHk9IjQwIi8+CiAgICAgIDxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjE5IiB4PSIxOSIgeT0iNjAiLz4KICAgICAgPHJlY3Qgd2lkdGg9IjEiIGhlaWdodD0iMTkiIHg9IjM5IiB5PSI2MCIvPgogICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxOSIgeD0iNTkiIHk9IjYwIi8+CiAgICAgIDxyZWN0IHdpZHRoPSI3OSIgaGVpZ2h0PSIxIiB5PSIxOSIvPgogICAgICA8cmVjdCB3aWR0aD0iNzkiIGhlaWdodD0iMSIgeT0iMzkiLz4KICAgICAgPHJlY3Qgd2lkdGg9Ijc5IiBoZWlnaHQ9IjEiIHk9IjU5Ii8+CiAgICA8L2c+CiAgICA8cmVjdCB3aWR0aD0iODAiIGhlaWdodD0iMiIgeT0iNzgiIGZpbGw9IiNGRkYiLz4KICA8L2c+Cjwvc3ZnPgo="); +} + +body:not(.obsidian-default-image) .internal-embed.image-embed.is-loaded img:not([class*="emoji"]) { + max-width: var(--image-max-width); + margin: 3px auto; + display: block; +} + +.internal-embed[alt$="inline"], +.internal-embed[alt$="Inline"], +.internal-embed[alt$="INLINE"], +.internal-embed[alt$="inl"] { + display: inline ; +} + +body:not(.obsidian-default-image) .markdown-source-view.mod-cm6 img:not([class*="emoji"]) { + display: block; + margin: auto !important; + cursor: help; +} + +body.hide-vault-name .nav-folder.mod-root>.nav-folder-title { + display: none; +} + +body.file-name-wrapped .workspace-leaf-content[data-type="file-explorer"] .nav-file-title-content, +body.file-name-wrapped .workspace-leaf-content[data-type="file-explorer"] .nav-folder-title-content { + white-space: normal; +} + +.nav-file-title-content.is-being-renamed { + margin-left: 0px; + text-indent: 0px; + color: black !important; +} + +/* Cursor color in normal vim mode and opacity */ +.cm-fat-cursor .CodeMirror-cursor, +.cm-animate-fat-cursor { + width: 0.6em; + background: #db9a1f; + opacity: 0.6 !important; +} + +/*an active line highlight in vim normal mode */ +.cm-fat-cursor .CodeMirror-activeline .CodeMirror-linebackground, +.CodeMirror-activeline-background.CodeMirror-linebackground, +.cm-active.cm-line { + background-color: var(--activeline-background) !important; +} + +.mute-code-indent-line .markdown-source-view.mod-cm6 .HyperMD-codeblock .cm-indent::before { + display: none; +} + +.muted-activeline-bg .CodeMirror-activeline-background.CodeMirror-linebackground, +.muted-activeline-bg .markdown-source-view.cm-s-obsidian.mod-cm6 .cm-active.cm-line:not(.HyperMD-codeblock-bg) { + background-color: transparent !important; +} + +.CodeMirror pre.CodeMirror-line, +.CodeMirror pre.CodeMirror-line-like { + padding-left: 0; +} + +.CodeMirror pre.HyperMD-codeblock.CodeMirror-line { + padding-left: 4px; + letter-spacing: calc(var(--letter-space-code) * 0.02em); +} + +.CodeMirror pre.HyperMD-quote.CodeMirror-line { + padding-left: 4px; +} + +.cm-s-obsidian pre.HyperMD-header { + padding-top: 0.25em; +} + +/*linenumber*/ +.is-mobile .cm-lineNumbers .cm-gutterElement, +.cm-s-obsidian .CodeMirror-linenumber { + font-family: var(--font-monospace-theme); + font-size: 0.85em; +} + +.cm-gutter.cm-lineNumbers { + font-family: var(--font-monospace-theme); +} + +.cm-lineNumbers .cm-active.cm-gutterElement { + color: var(--text-accent); + /* background: var(--activeline-background); */ +} + +/*----file explorer smaller fonts & line height----*/ +.workspace-leaf-content[data-type="file-explorer"] .nav-file-title, +.workspace-leaf-content[data-type="file-explorer"] .nav-folder-title { + font-size: var(--font-size-folder-and-file); + font-family: var(--font-family-folder-file-title); + border-radius: 0; +} + +.workspace-leaf-content[data-type="file-explorer"] .nav-file-title { + padding: 1px 5px 3px 4px; + color: var(--text-folder-file); +} + +.workspace-leaf-content[data-type="file-explorer"] .nav-folder-title, +.workspace-leaf-content[data-type="file-explorer"] .tree-item-self.is-clickable.mod-collapsible.nav-folder-title { + font-weight: 600; + padding: 4px 0 4px 23px; + color: var(--text-normal); +} + +/*rename*/ +.nav-file-title-content.is-being-renamed, +.nav-folder-title-content.is-being-renamed { + cursor: text; + border-color: transparent; + background-color: white; + color: black; +} + +/*---- nav arrows adjust location ----*/ +body:not(.default-icons) .nav-folder-collapse-indicator { + position: absolute; + transition: transform 20ms linear 0s; +} + +/* body.default-icons .nav-folder-collapse-indicator { + margin-left: -9px; +} */ + +body:not(.default-icons):not(.remove-arrow) .nav-folder-collapse-indicator::before { + position: absolute; + content: "↓"; + margin-left: 3px; + font-family: 'Inter'; + font-weight: bold; + color: var(--text-accent); + transition: transform 10ms linear 0s; +} + +body:not(.default-icons) .nav-folder-collapse-indicator svg { + display: none; + color: var(--accent-strong); + height: 7px; + width: 7px; +} + +body:not(.unmuted-collapsed-folder):not(.is-grabbing) .nav-folder.is-collapsed .nav-folder-title-content:not(.is-being-renamed) { + opacity: 0.55; +} + +body:not(.default-icons) .nav-folder.is-collapsed .nav-folder-collapse-indicator::before { + transform: rotate(-90deg); + opacity: 0.55; +} + +/*search icon 1*/ +body:not(.default-icons) .backlink-pane .search-result-container .collapse-icon { + transition: transform 20ms linear 0s; +} + +body:not(.default-icons) .backlink-pane .search-result-container .collapse-icon::before { + content: "↓"; + font-size: 14px; + font-family: 'Inter'; + font-weight: bold; + color: var(--text-accent); + transition: transform 10ms linear 0s; +} + +body:not(.default-icons) .backlink-pane .search-result-container .collapse-icon svg { + display: none; + color: var(--accent-strong); + height: 7px; + width: 7px; +} + +body:not(.default-icons) .backlink-pane .search-result-container .tree-item.search-result.is-collapsed .collapse-icon::before { + transform: rotate(-90deg); + opacity: 0.5; +} + +/* search panel icons */ +body:not(.default-icons) .workspace-leaf .search-result-container.mod-global-search .tree-item-self.search-result-file-title.is-clickable .collapse-icon { + transition: transform 20ms linear 0s; +} + +body:not(.default-icons) .workspace-leaf .search-result-container.mod-global-search .tree-item-self.search-result-file-title.is-clickable .collapse-icon::before { + content: "↓"; + font-size: 14px; + font-weight: bold; + font-family: 'Inter'; + color: var(--text-accent); + transition: transform 10ms linear 0s; +} + +body:not(.default-icons) .workspace-leaf .search-result-container.mod-global-search .tree-item-self.search-result-file-title.is-clickable .collapse-icon svg { + display: none; + color: var(--accent-strong); + height: 7px; + width: 7px; +} + +body:not(.default-icons) .workspace-leaf .search-result-container.mod-global-search .tree-item.search-result.is-collapsed .collapse-icon::before { + transform: rotate(-90deg); + opacity: 0.5; +} + +/* header collaspe indicators*/ +:is(.markdown-preview-view,.markdown-rendered) div.is-collapsed :is(h1,h2,h3,h4,h5,h6)::after, +:is(.markdown-preview-view,.markdown-rendered) li.is-collapsed::after { + content: "..."; + padding: 5px; + color: var(--text-faint); +} + +body:not(.default-icons) div.heading-collapse-indicator.collapse-indicator { + position: absolute; + margin: 15px 0 0 -20px; + padding: 0; + transition: transform 20ms linear 0s; +} + +body:not(.default-icons) :is(h1,h2) div.heading-collapse-indicator.collapse-indicator { + position: absolute; + transition: transform 20ms linear 0s; +} + +body:not(.default-icons) div.heading-collapse-indicator.collapse-indicator::before { + content: "↓"; + position: absolute; + font-size: 15px; + font-weight: bold; + font-family: 'Inter'; + color: var(--text-accent); + transition: transform 10ms linear 0s; + opacity: 0; +} + +body:not(.default-icons) .heading-collapse-indicator.collapse-indicator.collapse-icon svg { + display: none; +} + +body:not(.default-icons) div.is-collapsed div.heading-collapse-indicator.collapse-indicator { + transform: translateX(7px) translateY(7px) rotate(-90deg); +} + +body:not(.default-icons) div.is-collapsed div.heading-collapse-indicator.collapse-indicator::before, +body:not(.default-icons) :is(h1,h2,h3,h4,h5,h6):hover div.heading-collapse-indicator.collapse-indicator::before { + opacity: 1; +} + +body:not(.default-icons) .outline .tree-item .collapse-icon { + padding: 0; + transition: transform 20ms linear 0s; +} + +body:not(.default-icons) .outline .tree-item .collapse-icon::before { + content: "↓"; + font-size: 1em; + font-weight: bold; + font-family: 'Inter'; + color: var(--text-accent); + transition: transform 10ms linear 0s; +} + +body:not(.default-icons) .outline .tree-item .collapse-icon svg { + display: none; + color: var(--accent-strong); + height: 7px; + width: 7px; +} + +body:not(.default-icons) .outline .tree-item.is-collapsed .collapse-icon::before { + transform: rotate(-90deg); + opacity: 0.5; +} + +/*vertical lines in outline page*/ +.outline .tree-item-children { + margin-left: 14px; + border-left: 1px solid #94949433; + border-radius: 0; + transition: all 400ms ease-in-out; +} + +body.default-icons .outline .tree-item-children { + margin-left: 12.5px; +} + +.outline .tree-item-children:hover { + border-left-color: var(--theme-color-translucent-04); +} + +.tree-item-flair { + line-height: 17px; + padding-top: 3px; + height: 1.45rem; +} + +body.nowrap-outline .outline .tree-item-inner { + white-space: nowrap; +} +/*****from https://www.yuque.com/fanmofeng/obsidian/ioifq0 *******/ + +body.logseq-outline-style .workspace-leaf-content[data-type=outline] .view-content .outline .collapse-icon { + padding-inline-end: var(--size-2-3); +} +body.logseq-outline-style .workspace-leaf-content[data-type=outline] .view-content .outline .collapse-icon::before { + content: "" !important; +} +body.logseq-outline-style .workspace-leaf-content[data-type=outline] .view-content .outline .tree-item { + position: relative; +} +body.logseq-outline-style .workspace-leaf-content[data-type=outline] .view-content .outline .tree-item-self { + position: relative; + margin-bottom: 0; + white-space: nowrap; + margin-top: -1px; /* fix item gap */ +} +body.logseq-outline-style .workspace-leaf-content[data-type=outline] .view-content .outline .tree-item-self .tree-item-inner { + padding-left: 4px; + overflow: hidden; + text-overflow: ellipsis; + height: calc(var(--nav-item-size) * 1.8); + line-height: calc(var(--nav-item-size) * 1.8); +} +body.logseq-outline-style .workspace-leaf-content[data-type=outline] .view-content .outline .tree-item-self .tree-item-inner::before { + content: ""; + width: var(--size-4-1); + height: var(--size-4-1); + border: 2px solid hsla(var(--color-accent-hsl), 0.9); + border-radius: 50%; + position: absolute; + margin-left:-1.5em; + top: 50%; + transform: translateY(-50%); +} +body.logseq-outline-style .workspace-leaf-content[data-type=outline] .view-content .outline .tree-item-self .tree-item-icon ~ .tree-item-inner { + padding-left: 4px; +} +body.logseq-outline-style .workspace-leaf-content[data-type=outline] .view-content .outline .tree-item-self .tree-item-icon ~ .tree-item-inner::before { + content: none; +} +body.logseq-outline-style .workspace-leaf-content[data-type=outline] .view-content .outline .tree-item.is-collapsed .tree-item-icon::before { + box-shadow: 0 0 0 4px var(--background-modifier-hover); +} +body.logseq-outline-style .workspace-leaf-content[data-type=outline] .view-content .outline .tree-item::after { + content: ""; + width: 1.5px; + position: absolute; + background-color: transparent; + top: calc(calc(var(--nav-item-size) * 1.8) / 2 * -1); + left: -10px; + height: calc(100% - calc(var(--nav-item-size) * 1.8) + var(--size-4-8)); +} +body.logseq-outline-style .workspace-leaf-content[data-type=outline] .view-content .outline .tree-item-icon { + cursor: pointer; +} +body.logseq-outline-style .workspace-leaf-content[data-type=outline] .view-content .outline .tree-item-icon::before { + margin-top: 50%; + width: var(--size-4-2); + height: var(--size-4-2); + background-color: hsla(var(--color-accent-hsl), 0.9); + border-radius: 50%; + position: absolute; + left: 4px; + top: 50%; + transform: translateY(-50%); +} +body.logseq-outline-style .workspace-leaf-content[data-type=outline] .view-content .outline .tree-item-icon svg { + display: block; +} +body.logseq-outline-style .workspace-leaf-content[data-type=outline] .view-content .outline .tree-item-icon svg path { + display: none; +} +body.logseq-outline-style .workspace-leaf-content[data-type=outline] .view-content .outline .tree-item:hover > .tree-item-children > .tree-item::after { + background-color: hsla(var(--color-accent-hsl), 0.9); +} +body.logseq-outline-style .workspace-leaf-content[data-type=outline] .view-content .outline .tree-item:hover > .tree-item-self:hover + .tree-item-children .tree-item::after { + background-color: transparent; +} +body.logseq-outline-style .workspace-leaf-content[data-type=outline] .view-content .outline .tree-item:hover > .tree-item-children > .tree-item:hover::after, body.logseq-outline-style .workspace-leaf-content[data-type=outline] .view-content .outline .tree-item:hover > .tree-item-children > .tree-item:hover ~ .tree-item::after { + background-color: transparent; +} +body.logseq-outline-style .workspace-leaf-content[data-type=outline] .view-content .outline .tree-item:hover > .tree-item-children > .tree-item:hover::before { + content: ""; + position: absolute; + top: calc(calc(var(--nav-item-size) * 1.8) / 2 * -1); + left: -10px; + bottom: calc(100% - (calc(var(--nav-item-size) * 1.8) + var(--size-4-2)) / 2 - 1px); + width: 16px; + border-bottom-left-radius: var(--radius-m); + border-bottom: 1.5px solid hsla(var(--color-accent-hsl), 0.9); + border-left: 2px solid hsla(var(--color-accent-hsl), 0.9); +} +body.logseq-outline-style .workspace-leaf-content[data-type=outline] .view-content .outline :is(.tree-item-children, .tree-item-self .tree-item-self) { + padding-left: 0; + margin-left: var(--size-4-5); + border-left: none; +} + +/*tag collapse indicator*/ +.tag-container .tree-item-children { + border-left: 1px solid #94949433; + border-radius: 0 3px 3px 0; + transition: all 300ms ease-in-out; +} + +.tag-container .tree-item-children > div[style="width: 1px; height: 0.1px; margin-bottom: 0px;"] { + height: 0 !important; +} + +.tag-container .tree-item-self .tree-item-icon svg { + display: none; +} + +.tag-container .tree-item-self .tree-item-icon::before { + content: "#"; + font-size: 1em; + font-weight: bold; + font-family: 'Inter'; + color: var(--text-accent); + transition: transform 10ms linear 0s; +} + +.tag-container .tree-item-children:hover { + border-left-color: var(--theme-color); +} + +.tag-container .tree-item.is-collapsed .collapse-icon { + opacity: 0.5; +} + +/*setting panel*/ + +.modal .modal-title { + margin-left: 1em; +} +.modal-content .cmdr-setting-content { + height: auto; +} +[class='modal'] { + max-width: unset ; + width: unset; + min-width: var(--dialog-width); +} + +.modal.mod-settings { + border: none; +} + +.modal.mod-narrow .modal-content { + overflow: hidden; +} + +.vertical-tab-nav-item { + padding: 6px 6px 6px 24px; + margin-bottom: 0; +} + + +.modal.mod-settings .vertical-tab-content-container { + padding: 0; +} + +.modal-content .cmdr-setting-content { + height: auto; +} + +.vertical-tab-content .setting-item { + padding: 8px 0; +} + +.is-phone .setting-item-heading { + margin-top: 0px; + margin-bottom: 0px; +} + +.modal button:not(.mod-cta):not(.mod-warning):hover { + background-color: var(--interactive-accent-hover); + color: #fdfdfd; +} +.modal .community-modal-details { + background-color: var(--background-primary); +} +.community-theme-container .clickable-icon { + color: var(--accent-strong) +} + +.dropdown { + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy1TVkctMjAwMTA5MDQvRFREL3N2ZzEwLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4wIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiB3aWR0aD0iMTI4MC4wMDAwMDBwdCIgaGVpZ2h0PSI2NDAuMDAwMDAwcHQiIHZpZXdCb3g9IjAgMCAxMjgwLjAwMDAwMCA2NDAuMDAwMDAwIgogcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCI+CjxtZXRhZGF0YT4KQ3JlYXRlZCBieSBwb3RyYWNlIDEuMTUsIHdyaXR0ZW4gYnkgUGV0ZXIgU2VsaW5nZXIgMjAwMS0yMDE3CjwvbWV0YWRhdGE+CjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuMDAwMDAwLDY0MC4wMDAwMDApIHNjYWxlKDAuMTAwMDAwLC0wLjEwMDAwMCkiCmZpbGw9IiMyMTk2ZjMiIHN0cm9rZT0ibm9uZSI+CjxwYXRoIGQ9Ik0xMCA2MzkyIGMwIC00IDE0MzggLTE0NDUgMzE5NSAtMzIwMiBsMzE5NSAtMzE5NCAzMTk1IDMxOTQgYzE3NTcKMTc1NyAzMTk1IDMxOTggMzE5NSAzMjAyIDAgNSAtMjg3NSA4IC02MzkwIDggLTM1MTUgMCAtNjM5MCAtMyAtNjM5MCAtOHoiLz4KPC9nPgo8L3N2Zz4K); +} + +/*translucent setting panel*/ +body.translucent-setting-panel .modal-bg { + background-color: var(--background-secondary-translucent-1); +} + + + +body.setting-default-frosted-glass .prompt { + background-color: var(--bg-color-settings-4); + backdrop-filter: blur(3px); +} + +body.setting-default-frosted-glass.theme-dark .prompt { + backdrop-filter: blur(8px); +} + +body.setting-default-frosted-glass .vertical-tab-header-group-title { + color: var(--text-normal); + border-top: 1px dashed var(--text-muted); +} + +body.translucent-setting-panel .modal-bg, +body.setting-default-frosted-glass .modal-bg { + background-color: var(--bg-color-settings-0); + backdrop-filter: blur(5px); +} + +body.translucent-setting-panel .modal.mod-settings, +body.setting-default-frosted-glass .modal.mod-settings { + background-color: var(--bg-color-settings-0-1); + box-shadow: 0 0 20px var(--bg-color-settings-1); +} + +body.translucent-setting-panel .modal.mod-settings, +body.setting-default-frosted-glass .modal.mod-settings { + border: none; +} +body.setting-default-frosted-glass .vertical-tab-header, +body.translucent-setting-panel .vertical-tab-header { + background-color: var(--bg-color-settings-1); +} +body.translucent-setting-panel .horizontal-tab-nav-item, +body.translucent-setting-panel .vertical-tab-nav-item, +body.setting-default-frosted-glass .horizontal-tab-nav-item, +body.setting-default-frosted-glass .vertical-tab-nav-item { + background-color: transparent; +} + +body.translucent-setting-panel .horizontal-tab-nav-item:hover, +body.translucent-setting-panel .vertical-tab-nav-item:hover, +body.translucent-setting-panel .horizontal-tab-nav-item.is-active, +body.translucent-setting-panel .vertical-tab-nav-item.is-active, +body.setting-default-frosted-glass .horizontal-tab-nav-item:hover, +body.setting-default-frosted-glass .vertical-tab-nav-item:hover, +body.setting-default-frosted-glass .horizontal-tab-nav-item.is-active, +body.setting-default-frosted-glass .vertical-tab-nav-item.is-active { + background-color: var(--bg-color-settings-2); + color: var(--text-normal); + font-weight: bold; +} + +body.translucent-setting-panel .horizontal-tab-content, +body.translucent-setting-panel .vertical-tab-content, +body.setting-default-frosted-glass .horizontal-tab-content, +body.setting-default-frosted-glass .vertical-tab-content { + background-color: var(--bg-color-settings-3); +} + +body.translucent-setting-panel .vertical-tab-content { + background-color: var(--bg-color-settings-1); +} + +body.setting-default-frosted-glass .vertical-tab-header-group-title { + border: none; +} + +/* ======= graph view ==============*/ +.workspace-leaf-content[data-type="graph"] .graph-controls { + background-color: var(--graph-control-bg); + border: none; +} +.workspace-split.mod-root .workspace-leaf-content[data-type="graph"] .view-content { + background-color: var(--graph-canvas-bg); +} + +.graph-view.color-fill { + color: var(--graph-circle); +} +.graph-view.color-circle { + color: var(--graph-circle-outline); +} +.graph-view.color-line { + color: var(--graph-line); +} +.graph-view.color-text { + color: var(--graph-text-color); +} +.graph-view.color-fill-highlight { + color: var(--graph-circle-fill-highlight); +} +.graph-view.color-line-highlight { + color: var(--graph-line-fill-highlight); +} +.graph-view.color-fill-tag { + color: var(--graph-tag) !important; +} +.graph-view.color-fill-attachment { + color: var(--graph-attach) !important; +} +.graph-view.color-fill-unresolved { + color: var(--graph-unresolved); + opacity: 1; +} +.graph-view.color-arrow { + color: var(--graph-arrow); + opacity: 1; +} + +/*Horizontal line in edit mode. Changes --- to full-width line*/ +/*thanks to Piotr from obsidian forum*/ +div:not(.CodeMirror-activeline)>.CodeMirror-line span.cm-hr { + color: transparent; +} + +div:not(.CodeMirror-activeline)>.CodeMirror-line span.cm-hr:after { + content: ""; + position: absolute; + height: 1px; + width: 100%; + background: var(--text-muted); + left: 0; + top: 50%; +} + +/*change collapse icon position in left side*/ +.workspace-ribbon.mod-left .workspace-ribbon-collapse-btn { + margin-top: 0; + padding: 7px 6px 2px 6px; +} + +/* colourful notes */ +/* from Notation by death_au https://github.com/deathau/Notation-for-Obsidian */ +/* Original idea from: https://gist.github.com/mklepaczewski/54e451f09994b9d450de81c8baaf8aa4 */ +/* but also with simpler classes so you can use `` as well */ + :is(.markdown-preview-view,.markdown-rendered) pre.language-note-gray-bg code, + :is(.markdown-preview-view,.markdown-rendered) pre.language-note-brown-bg code, + :is(.markdown-preview-view,.markdown-rendered) pre.language-note-orange-bg code, + :is(.markdown-preview-view,.markdown-rendered) pre.language-note-yellow-bg code, + :is(.markdown-preview-view,.markdown-rendered) pre.language-note-green-bg code, + :is(.markdown-preview-view,.markdown-rendered) pre.language-note-blue-bg code, + :is(.markdown-preview-view,.markdown-rendered) pre.language-note-purple-bg code, + :is(.markdown-preview-view,.markdown-rendered) pre.language-note-pink-bg code, + :is(.markdown-preview-view,.markdown-rendered) pre.language-note-red-bg code, +.print pre.language-note-gray-bg code, +.print pre.language-note-brown-bg code, +.print pre.language-note-orange-bg code, +.print pre.language-note-yellow-bg code, +.print pre.language-note-green-bg code, +.print pre.language-note-blue-bg code, +.print pre.language-note-purple-bg code, +.print pre.language-note-pink-bg code, +.print pre.language-note-red-bg code, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-gray-bg code, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-brown-bg code, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-orange-bg code, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-yellow-bg code, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-green-bg code, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-blue-bg code, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-purple-bg code, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-pink-bg code, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-red-bg code{ + background: unset !important; + background-color:unset !important; + white-space: pre-wrap !important; +} + +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-notice, +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-gray-background, +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-gray-bg, +.gray-background, +.gray-bg, +.print pre.language-note-gray-bg .popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-notice, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-gray-background, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-gray-bg { + background-color: var(--background-gray) !important; +} +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-brown-background, +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-brown-bg, +.brown-background, +.brown-bg, +.print pre.language-note-brown-bg, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-brown-background, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-brown-bg { + background-color: var(--background-brown) !important; +} +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-orange-background, +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-orange-bg, +.orange-background, +.orange-bg, +.print pre.language-note-orange-bg, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-orange-background, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-orange-bg { + background-color: var(--background-orange) !important; +} +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-yellow-background, +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-yellow-bg, +.yellow-background, +.yellow-bg, +.print pre.language-note-yellow-bg, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-yellow-background, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-yellow-bg { + background-color: var(--background-yellow) !important; +} +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-green-background, +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-green-bg, +.green-background, +.green-bg, +.print pre.language-note-green-bg, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-green-background, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-green-bg { + background-color: var(--background-green) !important; +} + :is(.markdown-preview-view,.markdown-rendered) pre.language-note-blue-background, + :is(.markdown-preview-view,.markdown-rendered) pre.language-note-blue-bg, +.blue-background, +.blue-bg, +.print pre.language-note-blue-bg, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-blue-background, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-blue-bg { + background-color: var(--background-blue) !important; +} +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-purple-background, +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-purple-bg, +.purple-background, +.purple-bg, +.print pre.language-note-purple-bg, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-purple-background, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-purple-bg { + background-color: var(--background-purple) !important; +} +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-pink-background, +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-pink-bg, +.pink-background, +.pink-bg, +.print pre.language-note-pink-bg, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-pink-background, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-pink-bg { + background-color: var(--background-pink) !important; +} +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-red-background, +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-red-bg, +.red-background, +.red-bg, +.print pre.language-note-red-bg, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-red-background, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-red-bg { + background-color: var(--background-red) !important; +} +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-important, +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-imp, +.print pre.language-note-important, +.print pre.language-note-imp, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-important, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-imp { + border: 4px dashed var(--note-important) !important; +} +pre.language-note-important:before, +pre.language-note-imp::before { + content: "Important"; + color: var(--note-important) !important; + font-weight: 800; + top: -1px; +} + +/*colourful text*/ +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-gray, +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-brown, +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-orange, +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-yellow, +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-green, +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-blue, +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-purple, +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-pink, +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-red, +.print pre.language-note-gray, +.print pre.language-note-brown, +.print pre.language-note-orange, +.print pre.language-note-yellow, +.print pre.language-note-green, +.print pre.language-note-blue, +.print pre.language-note-purple, +.print pre.language-note-pink, +.print pre.language-note-red, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-gray, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-brown, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-orange, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-yellow, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-green, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-blue, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-purple, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-pink, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-red { + background-color: transparent !important; + margin: 3px 0; + padding: 5px 10px; +} + +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-gray code.language-note-gray, +.print code.language-note-gray, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-gray code.language-note-gray { + color: var(--text-gray) !important; + background: unset !important; +} +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-brown code.language-note-brown, +.print code.language-note-brown, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-brown code.language-note-brown { + color: var(--text-brown) !important; + background: unset !important; +} +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-orange code.language-note-orange, +.print code.language-note-orange, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-orange code.language-note-orange { + color: var(--text-orange) !important; + background: unset !important; +} +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-yellow code.language-note-yellow, +.print code.language-note-yellow, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-yellow code.language-note-yellow { + color: var(--text-yellow) !important; + background: unset !important; +} +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-green code.language-note-green, +.print code.language-note-green, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-green code.language-note-green { + color: var(--text-green) !important; + background: unset !important; +} +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-blue code.language-note-blue, +.print code.language-note-blue, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-blue code.language-note-blue { + color: var(--text-blue) !important; + background: unset !important; +} +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-purple code.language-note-purple, +.print code.language-note-purple, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-purple code.language-note-purple { + color: var(--text-purple) !important; + background: unset !important; +} +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-pink code.language-note-pink, +.print code.language-note-pink, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-pink code.language-note-pink { + color: var(--text-pink) !important; + background: unset !important; +} +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-red code.language-note-red, +.print code.language-note-red, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-red code.language-note-red { + color: var(--text-red) !important; + background: unset !important; +} + +/* cloze */ +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-cloze code.language-note-cloze, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-cloze code.language-note-cloze { + color: var(--text-normal) !important; + background-color: var(--text-normal)!important; + display: block; + padding: 0px !important; + text-shadow: none; + margin: 1em 0.7em 0; + font-size: var(--font-size-cloze) !important; +} + +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-cloze, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-cloze { + background-color: transparent; +} + +code.language-note-cloze.is-loaded:hover { + cursor: pointer; +} +:is(.markdown-preview-view,.markdown-rendered) pre.language-note-cloze code.language-note-cloze.is-loaded:active, +.popover :is(.markdown-preview-view,.markdown-rendered) pre.language-note-cloze code.language-note-cloze.is-loaded:active { + background-color: transparent !important; +} + +pre.language-note-cloze::before { + content: "TO RECALL"; + color: var(--note-cloze); + font-weight: 800; + left: 22px; +} + +/*hidden box*/ +/*改自 https://github.com/chokcoco/iCSS/issues/153 */ +@property --hibox { + syntax: ''; + inherits: false; + initial-value: 24px; +} + +:is(.markdown-preview-view,.markdown-rendered) pre.language-hibox { + background-color: transparent; +} + +:is(.markdown-preview-view,.markdown-rendered) pre.language-hibox code.language-hibox:hover { + color: var(--text-normal); + --hibox: 900px; + overflow: auto; +} + +:is(.markdown-preview-view,.markdown-rendered) pre.language-hibox code.language-hibox { + position: relative; + height: auto; + overflow: hidden; + background: radial-gradient(circle at 0px 0px, var(--theme-color-translucent-015) 0, var(--theme-color-translucent-015) var(--hibox), transparent var(--hibox), transparent 0); + transition: --hibox 0.4s linear; + color: var(--background-code); + color: transparent; +} + + +/*======== optionnal mermaid style below ========*/ +.markdown-source-view.mod-cm6 .cm-content > [contenteditable=false] { + overflow: auto; +} + +body.resizable-mermaid .mermaid { + resize: both; + overflow: auto; + position: relative; +} + +:is(.markdown-preview-section,.markdown-rendered) .mermaid, +.markdown-source-view.mod-cm6 .cm-scroller .mermaid { + letter-spacing: 0; +} + +.markdown-source-view.mod-cm6 .mermaid svg { + margin: 0 auto; + display: block; +} + +.mermaid .label { + font-family: var(--mermaid-font-family) !important; + color: var(--text-normal) !important; +} + +.mermaid .label text { + fill: var(--background-primary-alt) !important; +} + +.mermaid .node:not([class*="id"]) rect:not([style*="fill"]):not([style*="stroke"]), +.mermaid .node:not([class$="id"]) circle:not([style*="fill"]):not([style*="stroke"]), +.mermaid .node:not([class$="id"]) ellipse:not([style*="fill"]):not([style*="stroke"]), +.mermaid .node:not([class$="id"]) polygon:not([style*="fill"]):not([style*="stroke"]), +.mermaid .node:not([class$="id"]) path:not([style*="fill"]):not([style*="stroke"]) { + fill: var(--background-primary) !important; +} + +.mermaid .node .label { + text-align: center !important; +} + +.mermaid .node.clickable { + cursor: pointer !important; +} + +.mermaid .arrowheadPath { + fill: var(--text-faint) !important; +} + +.mermaid .edgePath .path, +.mermaid .flowchart-link { + stroke: var(--text-faint) !important; +} + +.mermaid .edgeLabel { + background-color: var(--background-primary) !important; + text-align: center !important; +} + +.mermaid .edgeLabel rect { + opacity: 0 !important; +} + +.mermaid .cluster rect { + fill: var(--background-primary-alt) !important; + stroke: var(--text-faint) !important; +} + +.mermaid .cluster text { + fill: var(--background-primary) !important; +} + +/* Sequence Diagram variables */ +.mermaid .actor { + stroke: var(--text-accent) !important; +} + +.mermaid .actor-line { + stroke: var(--text-muted) !important; +} + +.mermaid .messageLine0 { + stroke-dasharray: none !important; + stroke: var(--text-muted) !important; +} + +.mermaid .messageLine1 { + stroke-dasharray: 2, 2 !important; + stroke: var(--text-muted) !important; +} + +.mermaid #arrowhead path, +.mermaid #crosshead path { + fill: var(--text-muted) !important; + stroke: var(--text-muted) !important; +} + +.mermaid .sequenceNumber { + fill: var(--background-primary) !important; +} + +.mermaid #sequencenumber, +.mermaid .messageText { + fill: var(--text-muted) !important; +} + +.mermaid .labelBox { + stroke: var(--text-accent) !important; + fill: var(--background-secondary-alt) !important; +} + +.mermaid .labelText, +.mermaid .labelText>tspan, +.mermaid .loopText, +.mermaid .loopText>tspan { + fill: var(--text-muted) !important; + stroke: none !important; +} + +.mermaid .loopLine { + stroke-dasharray: 2, 2 !important; + stroke: var(--text-accent) !important; + fill: var(--text-accent) !important; +} + +.mermaid .note { + stroke: var(--text-normal) !important; + fill: var(--mermaid-seq-dia-color) !important; +} + +.mermaid .noteText, +.mermaid .noteText>tspan { + fill: var(--text-normal) !important; + stroke: none !important; +} + +/* Gantt chart variables */ +.mermaid .activation0, +.mermaid .activation1, +.mermaid .activation2 { + fill: var(--background-secondary) !important; + stroke: var(--text-accent) !important; +} + +/** Section styling */ +.mermaid .mermaid-main-font { + font-family: var(--mermaid-font-family) !important; +} + +.mermaid .section { + stroke: none !important; + opacity: 0.3 !important; +} + +.mermaid .section0 { + fill: var(--text-faint) !important; +} + +.mermaid .section2 { + fill: var(--text-accent) !important; +} + +.mermaid .section1, +.mermaid .section3 { + fill: var(--text-muted) !important; + opacity: 0.15 !important; +} + +.mermaid .sectionTitle0, +.mermaid .sectionTitle1, +.mermaid .sectionTitle2, +.mermaid .sectionTitle3 { + fill: var(--text-normal) !important; +} + +.mermaid .sectionTitle { + text-anchor: start !important; + font-size: 15px !important; + font-weight: bold; + line-height: 14px !important; + font-family: var(--mermaid-font-family) !important; +} + +/* Grid and axis */ +.mermaid .grid .tick { + stroke: var(--text-muted) !important; + opacity: 1 !important; + shape-rendering: crispEdges !important; +} + +.mermaid .grid .tick text { + font-family: var(--mermaid-font-family) !important; + font-size: 13px; +} + +.mermaid .grid path { + stroke-width: 0 !important; +} + +/* Today line */ +.today { + fill: none !important; + stroke: var(--background-modifier-error) !important; + stroke-width: 2px !important; +} + +/* Task styling */ + +/* Default task */ +.task { + stroke-width: 0.5px !important; +} + +.taskText:not([font-size]) { + font-size: 9px !important; +} + +.taskTextOutsideRight { + fill: var(--text-normal) !important; + text-anchor: start !important; + font-size: 12px !important; + font-family: var(--mermaid-font-family) !important; +} + +.taskTextOutsideLeft { + fill: var(--text-normal) !important; + text-anchor: end !important; + font-size: 9px !important; +} + +/* Special case clickable */ +.task.clickable { + cursor: pointer !important; +} + +.taskText.clickable { + cursor: pointer !important; + fill: var(--interactive-accent_hover) !important; + font-weight: bold !important; +} + +.taskTextOutsideLeft.clickable { + cursor: pointer !important; + fill: var(--interactive-accent_hover) !important; + font-weight: bold !important; +} + +.taskTextOutsideRight.clickable { + cursor: pointer !important; + fill: var(--interactive-accent_hover) !important; + font-weight: bold !important; +} + +/* Specific task settings for the sections*/ +.taskText0, +.taskText1, +.taskText2, +.taskText3 { + fill: var(--text-normal) !important; + font-size: 13px; +} + +.task0, +.task1, +.task2, +.task3 { + fill: var(--theme-color-translucent-04) !important; + stroke: var(--text-muted) !important; +} + +.taskTextOutside0, +.taskTextOutside2, +.taskTextOutside1, +.taskTextOutside3 { + fill: var(--text-muted) !important; +} + +/* Active task */ +.active0, +.active1, +.active2, +.active3 { + fill: var(--mermaid-active-task-color) !important; + stroke: var(--text-muted) !important; +} + +.activeText0, +.activeText1, +.activeText2, +.activeText3 { + fill: var(--text-normal) !important; +} + +/* Completed task */ +.done0, +.done1, +.done2, +.done3 { + stroke: var(--text-muted) !important; + fill: var(--background-secondary) !important; +} + +.doneText0, +.doneText1, +.doneText2, +.doneText3 { + fill: var(--text-normal) !important; +} + +/* Tasks on the critical line */ +.crit0, +.crit1, +.crit2, +.crit3 { + stroke: var(--red-1) !important; + fill: var(--red-1) !important; +} + +.activeCrit0, +.activeCrit1, +.activeCrit2, +.activeCrit3 { + stroke: var(--accent-strong) !important; + fill: var(--text-accent) !important; +} + +.doneCrit0, +.doneCrit1, +.doneCrit2, +.doneCrit3 { + stroke: var(--accent-strong) !important; + fill: var(--text-muted) !important; + cursor: pointer !important; + shape-rendering: crispEdges !important; +} + +.milestone { + transform: rotate(45deg) scale(0.8, 0.8) !important; +} + +.milestoneText { + font-style: italic !important; +} + +.doneCritText0, +.doneCritText1, +.doneCritText2, +.doneCritText3, +.activeCritText0, +.activeCritText1, +.activeCritText2, +.activeCritText3 { + fill: var(--text-normal) !important; +} + +.titleText { + text-anchor: middle !important; + font-size: 20px !important; + fill: var(--text-normal) !important; + font-family: var(--mermaid-font-family) !important; +} + +g.classGroup text { + fill: var(--text-normal) !important; + stroke: none !important; + font-size: 8px !important; +} + +g.classGroup text .title { + font-weight: bolder !important; +} + +g.clickable { + cursor: pointer !important; +} + +g.classGroup rect { + fill: var(--background-secondary-alt) !important; + stroke: var(--theme-color) !important; +} + +g.classGroup line { + stroke: var(--theme-color) !important; + stroke-width: 1 !important; +} + +.classLabel .box { + stroke: none !important; + stroke-width: 0 !important; + fill: var(--background-secondary-alt) !important; + opacity: 0.2 !important; +} + +.classLabel .label { + fill: var(--text-accent) !important; + font-size: 10px !important; +} + +.relation { + stroke: var(--text-accent) !important; + fill: none !important; +} + +.dashed-line { + stroke-dasharray: 3 !important; +} + +#compositionStart, +#compositionEnd, +#dependencyStart, +#dependencyEnd, +#extensionStart, +#extensionEnd { + fill: var(--text-accent) !important; + stroke: var(--text-accent) !important; +} + +#aggregationStart, +#aggregationEnd { + fill: var(--background-secondary-alt) !important; + stroke: var(--text-accent) !important; +} + +.commit-id, +.commit-msg, +.branch-label { + fill: var(--text-muted) !important; + color: var(--text-muted) !important; + font-family: var(--mermaid-font-family) !important; +} + +.pieTitleText { + text-anchor: middle !important; + font-size: 18px !important; + fill: var(--text-normal) !important; + font-family: var(--mermaid-font-family) !important; +} + +.slice { + font-family: var(--mermaid-font-family) !important; +} + +g.stateGroup text { + fill: var(--text-accent) !important; + stroke: none !important; + font-size: 10px !important; + font-family: var(--mermaid-font-family) !important; +} + +g.stateGroup text { + fill: var(--text-accent) !important; + stroke: none !important; + font-size: 10px !important; +} + +g.stateGroup .state-title { + font-weight: bolder !important; + fill: var(--text-normal) !important; +} + +g.stateGroup rect { + fill: var(--background-secondary-alt) !important; + stroke: var(--background-secondary-alt) !important; +} + +g.stateGroup line, +.transition { + stroke: var(--text-accent) !important; +} + +.stateGroup .composit { + fill: var(--background-secondary) !important; + border-bottom: 1px !important; +} + +.stateGroup .alt-composit { + fill: var(--background-primary) !important; + border-bottom: 1px !important; +} + +.state-note { + stroke: var(--text-faint) !important; + fill: var(--text-accent) !important; +} + +.state-note text { + fill: black !important; + stroke: none !important; + font-size: 10px !important; +} + +.stateLabel .box { + stroke: none !important; + stroke-width: 0 !important; + fill: var(--background-secondary-alt) !important; + opacity: 0.5 !important; +} + +.stateLabel text { + fill: black !important; + font-size: 10px !important; + font-weight: bold !important; + font-family: var(--mermaid-font-family) !important; +} + +.node circle.state-start { + fill: var(--text-normal) !important; + stroke: var(--text-normal) !important; +} + +.node circle.state-end { + fill: var(--text-normal) !important; + stroke: var(--text-normal) !important; + stroke-width: 1.5 !important; +} + +#statediagram-barbEnd { + fill: var(--text-accent) !important; +} + +.statediagram-cluster rect { + fill: var(--background-secondary-alt) !important; +} + +.statediagram-cluster rect.outer, +.statediagram-state .title-state, +.statediagram-state rect.basic { + rx: 5px !important; + ry: 5px !important; +} + +.statediagram-state .divider { + stroke: var(--text-accent) !important; +} + +.statediagram-cluster.statediagram-cluster .inner { + fill: var(--background-secondary) !important; +} + +.statediagram-cluster.statediagram-cluster-alt .inner { + fill: var(--background-secondary-alt) !important; +} + +.statediagram-cluster .inner { + rx: 0 !important; + ry: 0 !important; +} + +.statediagram-state rect.divider { + stroke-dasharray: 10, 10 !important; + fill: var(--background-secondary) !important; +} + +.note-edge { + stroke-dasharray: 5 !important; +} + +.statediagram-note rect { + fill: var(--text-accent) !important; + stroke: var(--text-muted) !important; + stroke-width: 1px !important; + rx: 0 !important; + ry: 0 !important; +} + +/* Classes common for multiple diagrams */ +.error-icon { + fill: var(--text-error) !important; +} + +.error-text { + fill: var(--text-muted) !important; + stroke: var(--text-muted) !important; +} + +.edge-pattern-solid { + stroke-dasharray: 0 !important; +} + +.edge-pattern-dashed { + stroke-dasharray: 3 !important; +} + +.edge-pattern-dotted { + stroke-dasharray: 2 !important; +} + +.marker { + fill: var(--text-muted) !important; +} + +.marker.cross { + stroke: var(--text-muted) !important; +} + +.mermaid div:not(text.tracker-month-label) #arrowhead, +.mermaid div:not(text.tracker-month-label) #sequencenumber, +.mermaid div:not(text.tracker-month-label) .cluster text, +.mermaid div:not(text.tracker-month-label) .label text, +.mermaid div:not(text.tracker-month-label) text, +.mermaid div:not(text.tracker-month-label) text.actor { + fill: var(--text-muted) !important; +} + +/*emoji🙂*/ +.mermaid g>g>circle, +.mermaid g>circle { + stroke: #000000 !important; +} + +.mermaid line.task-line { + stroke: #6e6e6e !important; +} + +/* scrollbar*/ +body:not(.native-scrollbars) ::-webkit-scrollbar-thumb { + background-clip: padding-box; + border: 3px solid transparent; + border-width: 3px 2px 3px 3px; + min-height: 65px; + background-color: var(--scrollbar-thumb-bg); + border: 3.5px solid transparent !important; +} + +body:not(.native-scrollbars) ::-webkit-scrollbar { + background: transparent; +} + +body:not(.native-scrollbars) textarea:hover::-webkit-scrollbar-thumb:active, +body:not(.native-scrollbars) ::-webkit-scrollbar-thumb:hover { + background: var(--scrollbar-active-thumb-bg); +} + +body.remove-scrollbars ::-webkit-scrollbar-thumb { + display: none; +} + +/*adapted from the CSS snippet created by @subframe7536 https://forum-zh.obsidian.md/t/topic/11164*/ +body.body:not(.is-mobile).hover-scrollbars :is(.vertical-tab-header, .vertical-tab-content, .nav-files-container,.workspace-leaf-content .view-content, .search-result-container, .git-view-body, .workspace-leaf-content[data-type=markdown] .cm-scroller, .markdown-preview-view, .suggestion-container .suggestion, +.prompt-results, .markdown-embed-content, .community-modal-search-results-wrapper,.community-modal-info,.tag-container)::-webkit-scrollbar-thumb { + box-shadow: inset 0 0 0 10px !important; + background-color: transparent !important; +} + +body.body:not(.is-mobile).hover-scrollbars .community-modal-info div[class^='community-modal-info-'] { + color:var(--text-normal); +} +body.body:not(.is-mobile).hover-scrollbars .canvas-node-content .markdown-preview-view { + overflow-y: auto!important; +} +body.body:not(.is-mobile).hover-scrollbars :is(.vertical-tab-header, .vertical-tab-content, .nav-files-container, .view-content, .search-result-container, .git-view-body, .workspace-leaf-content[data-type=markdown] .cm-scroller, .markdown-preview-view, .suggestion-container .suggestion, .prompt-results, .markdown-embed-content, .community-modal-search-results-wrapper,.community-modal-info,.tag-container) { + color: transparent; + transition: color var(--anim-duration-fast) var(--anim-motion-smooth); + overflow-y: overlay; +} +body.body:not(.is-mobile).hover-scrollbars :is(.vertical-tab-header, .vertical-tab-content, .nav-files-container, .view-content, .search-result-container, .git-view-body, .workspace-leaf-content[data-type=markdown] .cm-scroller, .markdown-preview-view, .suggestion-container .suggestion, .prompt-results, .markdown-embed-content, .community-modal-search-results-wrapper,.community-modal-info,.tag-container):hover { + color: var(--scrollbar-thumb-bg); +} +body.body:not(.is-mobile).hover-scrollbars :is(.vertical-tab-header, .vertical-tab-content, .nav-files-container, .view-content, .search-result-container, .git-view-body, .workspace-leaf-content[data-type=markdown] .cm-scroller, .markdown-preview-view, .suggestion-container .suggestion, .prompt-results, .community-modal-search-results-wrapper,.tag-container) > :not(h1, h2, h3, h4, h5, h6) { + color: var(--text-normal); +} + +body.body:not(.is-mobile).hover-scrollbars :is(.vertical-tab-header, .vertical-tab-content, .nav-files-container, .view-content, .search-result-container, .git-view-body, .workspace-leaf-content[data-type=markdown] .cm-scroller, .markdown-preview-view, .suggestion-container .suggestion, .prompt-results, .markdown-embed-content, .community-modal-search-results-wrapper,.community-modal-info,.tag-container)::-webkit-scrollbar-thumb:active { + background-color: var(--scrollbar-active-thumb-bg) !important; +} + +body.body:not(.is-mobile).hover-scrollbars .popover.hover-popover > .markdown-embed > .markdown-embed-content > .markdown-preview-view { + color: transparent !important; +} +body.body:not(.is-mobile).hover-scrollbars .popover.hover-popover > .markdown-embed > .markdown-embed-content > .markdown-preview-view:hover { + color: var(--scrollbar-thumb-bg) !important; +} + + +.workspace-split::-webkit-scrollbar:vertical { + display: none; +} + +body.plugin-sliding-panes.transparent-panes .workspace-leaf.mod-am-left-of-active .workspace-leaf-content .view-content, +body.plugin-sliding-panes.transparent-panes .workspace-leaf.mod-am-left-of-active .workspace-leaf-content .view-content *, +body.plugin-sliding-panes.transparent-panes .workspace-leaf.mod-am-left-of-active .workspace-leaf-content .view-content *::before, +body.plugin-sliding-panes.transparent-panes .workspace-leaf.mod-am-left-of-active .workspace-leaf-content .view-content *::-webkit-scrollbar-thumb, +body.plugin-sliding-panes.transparent-panes .workspace-leaf.mod-am-left-of-active .workspace-leaf-content .view-content *::-webkit-scrollbar, +body.plugin-sliding-panes.transparent-panes .workspace-leaf.mod-am-left-of-active .workspace-leaf-content .view-content *::marker { + color: transparent !important; + background: none !important; + background-color: transparent !important; + border: none !important; + -webkit-text-fill-color: transparent !important; +} + +body.plugin-sliding-panes.transparent-panes .workspace-split.mod-root .workspace-leaf:not(:first-of-type) .workspace-leaf-content { + background-color: transparent; +} + +body.plugin-sliding-panes.transparent-panes .workspace-split.mod-vertical > * > .workspace-leaf-resize-handle { + width: 0; +} + +body.plugin-sliding-panes.plugin-sliding-panes.transparent-panes.theme-light .workspace-split.mod-vertical>.workspace-leaf { + box-shadow: -5px 0px 6px 0px rgba(0, 0, 0, 0.1) !important; +} + + +/*==========================*/ +/* obsidian-calendar-plugin */ +/*==========================*/ +#calendar-container { + --color-background-heading: transparent; + --color-background-weeknum: transparent; + --color-background-day: transparent; + --color-background-weekend: transparent; + + --color-dot: var(--text-accent); + --color-arrow: currentColor; + --color-button: var(--text-muted); + --color-text-weeknum: var(--calendar-week-color); + + --color-text-title: var(--text-normal); + --color-text-heading: var(--text-normal); + --color-text-day: var(--text-normal); + --color-text-today: var(--text-accent); + + padding: 0 8px 0 8px; + margin: -21px -8px 0px -8px; + line-height: 0.6; +} + +.theme-dark #calendar-container { + --color-tr: #11111166; + --color-tr-odd: #1e1e1e93; + --color-calendar-weekends: #cc8484; + --color-calendar-weekends-2: #ff9f9f21; + --calendar-today-background-color: #00b3005e; + --theme-color-translucent-3: #217cc769; +} + +.theme-light #calendar-container { + --color-tr: #ffffff6a; + --color-tr-odd: #eeeeeea2; + --color-calendar-weekends: #c74a4a; + --color-calendar-weekends-2: #fdadad21; + --theme-color-translucent-3: #91c2eb80; +} + +#calendar-container .calendar { + background-color: transparent; + padding: 0 4px 2px 4px; + margin-top: -8px; + margin-left: 2px; + border-collapse: separate; + border-spacing: 0; +} + +#calendar-container .calendar tr { + background-color: transparent; +} + +/*表格调整*/ +/*星期*/ +#calendar-container th:first-of-type { + border-top-left-radius: 3px !important; +} + +#calendar-container th:last-of-type { + border-top-right-radius: 3px !important; +} + +#calendar-container th { + padding: 8px 0; + border-bottom: 2px solid var(--text-accent); + border-radius: 0 !important; +} + +/*天*/ +#calendar-container td { + width: 12.5%; + border-right: none; + padding: 0 !important; + line-height: 23px; +} + +#calendar-container tr { + background-color: var(--color-tr); +} + +#calendar-container .day { + padding: 2px 0 0 !important; +} + +#calendar-container .day.has-note.active:not(.today) { + background-color: var(--calendar-hover-color) !important; + color: var(--text-normal) !important; + font-weight: 700; +} + +#calendar-container .day:not(:empty):hover { + background-color: var(--calendar-hover-color); +} + +#calendar-container .day:active, +#calendar-container .active, +#calendar-container .active.today { + background-color: var(--calendar-active-color) !important; + font-weight: 700; +} + +#calendar-container .active.today, +#calendar-container .day.has-note.active { + color: var(--text-accent) !important; + font-weight: 700; +} + +body.toggle-calendar-shadow #calendar-container .active.today { + box-shadow: 0 0 1px 2px var(--text-accent); +} + +body.toggle-calendar-shadow #calendar-container .today { + box-shadow: 0 0 5px var(--text-accent); +} + +#calendar-container .today { + font-weight: bolder; +} + +/*“Today”*/ +#calendar-container .reset-button { + font-size: 14px !important; + margin: 0; + padding: 0; + cursor: pointer; + line-height: 1.2; + text-align: center; +} + +/*悬停Today*/ +#calendar-container .reset-button:hover { + color: var(--sliding-panes-header-color); + background-color: var(--table-hover-raw-color); +} + +/*悬停arrow*/ +#calendar-container .arrow:hover { + color: var(--theme-color); +} + +/*dot*/ +#calendar-container .dot { + stroke: transparent; + margin: -3px 0 2px !important; +} + +#calendar-container .hollow { + margin: -3px 0 2px !important; +} + +#calendar-container .dot-container { + margin-top: 0; + margin-bottom: 0; +} + +/*月份调整 month*/ +#calendar-container .month { + font-size: 20px; + line-height: 1; +} + +/*年份调整 year*/ +#calendar-container .year { + font-size: 20px; + line-height: 1; +} + +/*星期数 week*/ +#calendar-container .week-num { + border-right: 2px solid var(--calendar-week-background-color) !important; + background-color: transparent; + font-weight: 600; + border-radius: 0; +} + +#calendar-container .week-num.active { + background-color: var(--calendar-week-background-color) !important; + color: var(--color-text-weeknum) !important; + font-weight: 800; +} + +/*星期数悬停 week hover*/ +#calendar-container .week-num:hover { + background-color: var(--calendar-week-hover) !important; +} + +/* calendar-1 translucent, v0.2, for Blue Topaz*/ +body.style-options-for-calendar-plugin-style-one.theme-dark { + --color-calendar-weekends: #cc8484; + --color-calendar-weekends-2: #ff9f9f21; + --calendar-today-background-color: #00b3005e; + --theme-color-translucent-3: #217cc769; +} + +body.style-options-for-calendar-plugin-style-one.theme-light { + --color-calendar-weekends: #c74a4a; + --color-calendar-weekends-2: #fdadad21; + --theme-color-translucent-3: #91c2eb80; +} + +body.style-options-for-calendar-plugin-style-one.theme-dark #calendar-container { + --color-tr: #11111183; +} + +body.style-options-for-calendar-plugin-style-one.theme-light #calendar-container { + --color-tr: #ffffffa9; +} + +body.style-options-for-calendar-plugin-style-one #calendar-container th { + padding: 10px 0; + border-radius: 0 !important; +} + +body.style-options-for-calendar-plugin-style-one #calendar-container th:nth-last-child(1), +body.style-options-for-calendar-plugin-style-one #calendar-container th:nth-last-child(2) { + color: var(--color-calendar-weekends) !important; +} + +body.style-options-for-calendar-plugin-style-one #calendar-container td:nth-last-child(1), +body.style-options-for-calendar-plugin-style-one #calendar-container td:nth-last-child(2) { + background-color: var(--color-calendar-weekends-2) !important; +} + +body.style-options-for-calendar-plugin-style-one #calendar-container .day { + border-radius: 50% !important; +} + +body.style-options-for-calendar-plugin-style-one #calendar-container .today { + color: var(--text-accent) !important; + font-weight: 700 !important; + background-image: unset; +} + +body.style-options-for-calendar-plugin-style-one #calendar-container .day:active, +body.style-options-for-calendar-plugin-style-one #calendar-container .active, +body.style-options-for-calendar-plugin-style-one #calendar-container .active.today { + background-color: var(--theme-color-translucent-3) !important; +} + +body.style-options-for-calendar-plugin-style-two #calendar-container .day { + border-radius: 0 !important; +} + +body.style-options-for-calendar-plugin-style-two .day.adjacent-month { + background-color: var(--background-transparent-black-or-white-3) !important; +} + +body.style-options-for-calendar-plugin-style-two #calendar-container tbody tr:first-child { + background-color: rgba(var(--table-color-rgb), 0.1) !important; +} + +body.style-options-for-calendar-plugin-style-two #calendar-container tbody tr:nth-child(2) { + background-color: rgba(var(--table-color-rgb), 0.2) !important; +} + +body.style-options-for-calendar-plugin-style-two #calendar-container tbody tr:nth-child(3) { + background-color: rgba(var(--table-color-rgb), 0.3) !important; +} + +body.style-options-for-calendar-plugin-style-two #calendar-container tbody tr:nth-child(4) { + background-color: rgba(var(--table-color-rgb), 0.4) !important; +} + +body.style-options-for-calendar-plugin-style-two #calendar-container tbody tr:nth-child(5) { + background-color: rgba(var(--table-color-rgb), 0.5) !important; +} + +body.style-options-for-calendar-plugin-style-two #calendar-container tbody tr:nth-child(6) { + background-color: rgba(var(--table-color-rgb), 0.6) !important; +} + +/*===========================*/ +/*copy button for code blocks*/ +/*===========================*/ +button.copy-code-button:not([style="right: 32pt"]) { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAABU0lEQVRYhe2WMU4CQRSG/2eMjQRptQB7j8AJnIbKEq/A2qg0SjRROgauYGljTMALLN7AA7Ak1oRIY7HPYt0IuzPLMgxggK97u2/e/PPv25kBNh0yGSSavQqYqkHEDx2n0FqaANH0SmC8RIqU2k7+1YqAs9rH3uggcw+iMoBD7UDyi75PRESuLoeBT4CeMoPhzXPt5FuVsxt98JXL3hH4cpryduX4HQCE9LQ5BBwBfDXKZRlANZUAgMtAsMJwkt+JGAA6Tn7CtTBWvT9t9IpE5DL4XCdgR636b4Xz8HZR6I7XVKFwIJlwpbaIObBsUjsQ/fa2WLkDWwEz/wWzMq13Vu6AsQAh+10hPdc0nlsAwEwAm8cahPTY9m6XxPr0gGm+xR6wlL/tgbQsrAeCi2RwnUouaacHYvu0kP1HgK91ZWzfC2IO7A+GtwDVQyf+Let7FmwcPzCZvMtlTU3QAAAAAElFTkSuQmCC); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + background-color: transparent; + color: transparent; + height: 1.6em; +} + +button.copy-code-button:hover { + background-color: var(--theme-color-translucent-015); +} + +.obsidian-banner-wrapper.has-copy-button { + position:unset; +} + +/*====================*/ +/*day planner plugin*/ +/*====================*/ +.day-planner-status-bar-text { + color: var(--text-accent); + font-weight: 600; +} + +.progress-pie.day-planner { + background-color: var(--day-planner-pie); + float: left; + height: 20px; + margin: 0.3px 10px 0.3px 0; + width: 20px; + display: none; +} + +#scroll-controls input#auto-scroll.toggle { + background-image: none; +} + +.aside__line { + background: var(--day-planner-dot) !important; + left: 35px !important; +} + +.ei_Dot { + background-color: var(--day-planner-line) !important; + left: 28px !important; +} + +.ei_Title { + font-size: 15px !important; + margin-left: -10px !important; +} + +.ei_Copy { + font-size: 15px !important; + margin-left: 5px !important; +} + +.event_item { + overflow: hidden !important; +} + +#now-line, .timeline-time { + background-color: var(--day-planner-timeline) !important; +} + +.event_item:hover { + background-color: var(--day-planner-item-hover) !important; + box-shadow: 0px 0px 52px -18px rgba(0, 0, 0, 0.75); +} + +.event_item_color1 { + background-color: var(--event-item-color1) !important; +} +.event_item_color2 { + background-color: var(--event-item-color2) !important; +} +.event_item_color3 { + background-color: var(--event-item-color3) !important; +} +.event_item_color4 { + background-color: var(--event-item-color4) !important; +} +.event_item_color5 { + background-color: var(--event-item-color5) !important; +} +.event_item_color6 { + background-color: var(--event-item-color6) !important; +} +.event_item_color7 { + background-color: var(--event-item-color7) !important; +} +.event_item_color8 { + background-color: var(--event-item-color8) !important; +} +.event_item_color9 { + background-color: var(--event-item-color9) !important; +} +.event_item_color10 { + background-color: var(--event-item-color10) !important; +} + +/* ================================== */ +/* ============= kanban ============= */ +/* ================================== */ +.kanban-plugin__markdown-preview-view { + font-family: var(--font-text) !important; +} +/*body:not(.style-options-for-kanban-plugin-static-default)*/ +.workspace-leaf .kanban-plugin__lane { + border-radius: 8px; + box-shadow: 0 2px 6px 1px rgba(0, 0, 0, 0.1); +} + +.kanban-plugin { + background-color: var(--background-secondary) !important; +} + +.kanban-plugin__item-title ol:not(.contains-task-list)>li:not(.task-list-item), +.kanban-plugin__item-title ul:not(.contains-task-list)>li:not(.task-list-item) { + border-left: none; + padding: 0 1px; + margin-left: 0px; +} + +.kanban-plugin .task-list-item-checkbox { + margin: 0px 7px 0px 0; +} + +.kanban-plugin__markdown-preview-view blockquote { + padding-top: 1px; + padding-bottom: 1px; +} + +.kanban-plugin__lane-header-wrapper { + background: var(--theme-color-translucent-015) !important; + padding: 8px 11px !important; + border-radius: 5px 5px 0 0; + margin-bottom: 0px !important; + z-index: 100 !important; + border-bottom: none !important; +} + +.theme-dark .kanban-plugin__lane-header-wrapper { + background: unset !important; + padding: 8px 11px 0 !important; +} + + +.kanban-plugin__checkbox-wrapper { + background: var(--background-transparent-black-or-white-2); +} + +.kanban-plugin__item { + border: none !important; + z-index: 100 !important; +} + +.kanban-plugin__item-content-wrapper, +.kanban-plugin__item-title-wrapper { + background: var(--background-transparent-black-or-white-1) !important; + z-index: 100 !important; +} + +.kanban-plugin__item-content-wrapper:hover, +.kanban-plugin__item-title-wrapper:hover { + background: var(--background-transparent-black-or-white-3-1) !important; +} + +.kanban-plugin__item-button-wrapper { + background: var(--background-transparent-black-or-white-2) !important; + border-radius: 0 0 5px 5px; +} + +button.kanban-plugin__new-item-button { + color: var(--text-muted) !important; + font-weight: bold; + font-size: 0.8em; + z-index: 100 !important; +} + +button.kanban-plugin__new-item-button:hover { + color: var(--accent-strong) !important; +} + +.kanban-plugin__lane { + border: none !important; +} + +.kanban-plugin__lane-items { + padding: 4px !important; +} + +.kanban-plugin__markdown-preview-view ol:not(.contains-task-list)>li:not(.task-list-item), +.kanban-plugin__markdown-preview-view:not(.kanban) ul>li:not(.task-list-item) { + margin-left: unset; + padding-left: unset; + margin-bottom: unset; + margin-top: unset; +} + +/*meta*/ +.kanban-plugin__meta-row { + background: transparent !important; +} + +.kanban-plugin__item-metadata-wrapper:not(:empty) { + background: var(--background-transparent-black-or-white-3) !important; +} + +.kanban-plugin__lane { + background: transparent !important; +} + +.theme-light .kanban-plugin__lane { + background: var(--background-transparent-black-or-white-3) !important; +} + +.kanban-plugin__lane-wrapper { + border-radius: var(--radius-s); +} + +.kanban-plugin__lane-wrapper { + background-repeat: no-repeat; + background-size: cover; +} + +/* checkbox */ +.kanban-plugin__item-prefix-button-wrapper input[type=checkbox] { + margin: 1px 6px 0 0; + width: 14px; + height: 14px; + filter: hue-rotate(var(--theme-color)) !important; +} + +.theme-dark .kanban-plugin__lane-wrapper:nth-child(7n+1) { + background: linear-gradient(to bottom, var(--kanban-color-1) 60%, transparent); + --scrollbar-thumb-bg: color-mix(in srgb, var(--kanban-color-1), transparent 60%); + --scrollbar-active-thumb-bg: var(--kanban-color-1); +} +.theme-dark .kanban-plugin__lane-wrapper:nth-child(7n+2) { + background: linear-gradient(to bottom, var(--kanban-color-2) 60%, transparent); + --scrollbar-thumb-bg: color-mix(in srgb, var(--kanban-color-2), transparent 60%); + --scrollbar-active-thumb-bg: var(--kanban-color-2); +} +.theme-dark .kanban-plugin__lane-wrapper:nth-child(7n+3) { + background: linear-gradient(to bottom, var(--kanban-color-3) 60%, transparent); + --scrollbar-thumb-bg: color-mix(in srgb, var(--kanban-color-3), transparent 60%); + --scrollbar-active-thumb-bg: var(--kanban-color-3); +} +.theme-dark .kanban-plugin__lane-wrapper:nth-child(7n+4) { + background: linear-gradient(to bottom, var(--kanban-color-4) 60%, transparent); + --scrollbar-thumb-bg: color-mix(in srgb, var(--kanban-color-4), transparent 60%); + --scrollbar-active-thumb-bg: var(--kanban-color-4); +} +.theme-dark .kanban-plugin__lane-wrapper:nth-child(7n+5) { + background: linear-gradient(to bottom, var(--kanban-color-5) 60%, transparent); + --scrollbar-thumb-bg: color-mix(in srgb, var(--kanban-color-5), transparent 60%); + --scrollbar-active-thumb-bg: var(--kanban-color-5); +} +.theme-dark .kanban-plugin__lane-wrapper:nth-child(7n+6) { + background: linear-gradient(to bottom, var(--kanban-color-6) 60%, transparent); + --scrollbar-thumb-bg: color-mix(in srgb, var(--kanban-color-6), transparent 60%); + --scrollbar-active-thumb-bg: var(--kanban-color-6); +} +.theme-dark .kanban-plugin__lane-wrapper:nth-child(7n+0) { + background: linear-gradient(to bottom, var(--kanban-color-7) 60%, transparent); + --scrollbar-thumb-bg: color-mix(in srgb, var(--kanban-color-7), transparent 60%); + --scrollbar-active-thumb-bg: var(--kanban-color-7); +} + +body.style-options-for-kanban-plugin-static-all-color.theme-light { + --kanban-color-1: #63a1e970; + --kanban-color-2: #63e6e970; + --kanban-color-3: #63e98270; + --kanban-color-4: #dee96370; + --kanban-color-5: #e8c89170; + --kanban-color-6: #e8919170; + --kanban-color-7: #bd91e870; +} + +body.style-options-for-kanban-plugin-static-all-color.theme-light .kanban-plugin__lane-wrapper:nth-child(7n+1) { + background: linear-gradient(to bottom, var(--kanban-color-1) 30%, transparent) !important; + --scrollbar-thumb-bg: color-mix(in srgb, var(--kanban-color-1), transparent 60%); + --scrollbar-active-thumb-bg: var(--kanban-color-1); +} +body.style-options-for-kanban-plugin-static-all-color.theme-light .kanban-plugin__lane-wrapper:nth-child(7n+2) { + background: linear-gradient(to bottom, var(--kanban-color-2) 30%, transparent) !important; + --scrollbar-thumb-bg: color-mix(in srgb, var(--kanban-color-2), transparent 60%); + --scrollbar-active-thumb-bg: var(--kanban-color-2); +} +body.style-options-for-kanban-plugin-static-all-color.theme-light .kanban-plugin__lane-wrapper:nth-child(7n+3) { + background: linear-gradient(to bottom, var(--kanban-color-3) 30%, transparent) !important; + --scrollbar-thumb-bg: color-mix(in srgb, var(--kanban-color-3), transparent 60%); + --scrollbar-active-thumb-bg: var(--kanban-color-3); +} +body.style-options-for-kanban-plugin-static-all-color.theme-light .kanban-plugin__lane-wrapper:nth-child(7n+4) { + background: linear-gradient(to bottom, var(--kanban-color-4) 30%, transparent) !important; + --scrollbar-thumb-bg: color-mix(in srgb, var(--kanban-color-4), transparent 60%); + --scrollbar-active-thumb-bg: var(--kanban-color-4); +} +body.style-options-for-kanban-plugin-static-all-color.theme-light .kanban-plugin__lane-wrapper:nth-child(7n+5) { + background: linear-gradient(to bottom, var(--kanban-color-5) 30%, transparent) !important; + --scrollbar-thumb-bg: color-mix(in srgb, var(--kanban-color-5), transparent 60%); + --scrollbar-active-thumb-bg: var(--kanban-color-5); +} +body.style-options-for-kanban-plugin-static-all-color.theme-light .kanban-plugin__lane-wrapper:nth-child(7n+6) { + background: linear-gradient(to bottom, var(--kanban-color-6) 30%, transparent) !important; + --scrollbar-thumb-bg: color-mix(in srgb, var(--kanban-color-6), transparent 60%); + --scrollbar-active-thumb-bg: var(--kanban-color-6); +} +body.style-options-for-kanban-plugin-static-all-color.theme-light .kanban-plugin__lane-wrapper:nth-child(7n+0) { + background: linear-gradient(to bottom, var(--kanban-color-7) 30%, transparent) !important; + --scrollbar-thumb-bg: color-mix(in srgb, var(--kanban-color-7), transparent 60%); + --scrollbar-active-thumb-bg: var(--kanban-color-7); +} +body.style-options-for-kanban-plugin-static-all-color .kanban-plugin__item-title-wrapper { + background: transparent !important; +} + + +body.style-options-for-kanban-plugin-static-all-image-one.theme-dark .kanban-plugin__lane-wrapper { + background-repeat: no-repeat; + background-size: cover; +} + + + +body.style-options-for-kanban-plugin-static-all-image-two.theme-dark .kanban-plugin__lane-wrapper { + background-repeat: no-repeat; + background-size: cover; +} + +body.style-options-for-kanban-plugin-static-plain .kanban-plugin__lane-wrapper { + background: unset !important; + --scrollbar-thumb-bg: unset !important; + --scrollbar-active-thumb-bg: unset !important; +} + +body.style-options-for-kanban-plugin-static-plain .kanban-plugin__lane { + border: 2px solid var(--background-modifier-border) !important; +} + +body.style-options-for-kanban-plugin-static-plain .kanban-plugin__lane-header-wrapper { + background: unset !important; + border-bottom: 1px solid var(--background-modifier-border) !important; +} + +body.style-options-for-kanban-plugin-static-plain.theme-dark .kanban-plugin__lane-header-wrapper, +body.style-options-for-kanban-plugin-static-little-color.theme-dark .kanban-plugin__lane-header-wrapper { + padding: 10px 11px !important; +} + +body.style-options-for-kanban-plugin-static-plain .kanban-plugin__item-button-wrapper { + background: transparent !important; +} + +body.style-options-for-kanban-plugin-static-little-color.theme-light { + --kanban-color-1: #91bae870; + --kanban-color-2: #91e8e070; + --kanban-color-3: #91e89a70; + --kanban-color-4: #e0e89170; + --kanban-color-5: #e8c89170; + --kanban-color-6: #e8919170; + --kanban-color-7: #bd91e870; +} + +body.style-options-for-kanban-plugin-static-little-color.style-options-for-kanban-plugin-dynamic-neon-three .kanban-plugin__lane, +body.style-options-for-kanban-plugin-static-plain.style-options-for-kanban-plugin-dynamic-neon-three .kanban-plugin__lane, +body.style-options-for-kanban-plugin-static-little-color.style-options-for-kanban-plugin-dynamic-neon-one .kanban-plugin__lane, +body.style-options-for-kanban-plugin-static-plain.style-options-for-kanban-plugin-dynamic-neon-one .kanban-plugin__lane, +body.style-options-for-kanban-plugin-static-little-color.style-options-for-kanban-plugin-dynamic-neon-two .kanban-plugin__lane, +body.style-options-for-kanban-plugin-static-plain.style-options-for-kanban-plugin-dynamic-neon-two .kanban-plugin__lane { + border: none !important; +} + +body.style-options-for-kanban-plugin-static-little-color .kanban-plugin__item, +body.style-options-for-kanban-plugin-static-little-color .kanban-plugin__lane { + border: 1px solid var(--background-modifier-border) !important +} + +body.style-options-for-kanban-plugin-static-little-color .kanban-plugin__lane-wrapper { + background-image: unset !important; + background-color: transparent !important; +} +body.style-options-for-kanban-plugin-static-little-color .kanban-plugin__lane-wrapper:nth-child(7n+1) .kanban-plugin__lane-header-wrapper { + background-color: var(--kanban-color-1) !important; +} +body.style-options-for-kanban-plugin-static-little-color .kanban-plugin__lane-wrapper:nth-child(7n+2) .kanban-plugin__lane-header-wrapper { + background-color: var(--kanban-color-2) !important; +} +body.style-options-for-kanban-plugin-static-little-color .kanban-plugin__lane-wrapper:nth-child(7n+3) .kanban-plugin__lane-header-wrapper { + background-color: var(--kanban-color-3) !important; +} +body.style-options-for-kanban-plugin-static-little-color .kanban-plugin__lane-wrapper:nth-child(7n+4) .kanban-plugin__lane-header-wrapper { + background-color: var(--kanban-color-4) !important; +} +body.style-options-for-kanban-plugin-static-little-color .kanban-plugin__lane-wrapper:nth-child(7n+5) .kanban-plugin__lane-header-wrapper { + background-color: var(--kanban-color-5) !important; +} +body.style-options-for-kanban-plugin-static-little-color .kanban-plugin__lane-wrapper:nth-child(7n+6) .kanban-plugin__lane-header-wrapper { + background-color: var(--kanban-color-6) !important; +} +body.style-options-for-kanban-plugin-static-little-color .kanban-plugin__lane-wrapper:nth-child(7n) .kanban-plugin__lane-header-wrapper { + background-color: var(--kanban-color-7) !important; +} + +/* Kanban Neon, v0.5, for Blue Topaz, modified from https://codepen.io/Chokcoco/pen/BaQzBEG by @Chokcoco */ +body.style-options-for-kanban-plugin-dynamic-neon-one.theme-dark, +body.style-options-for-kanban-plugin-dynamic-neon-two.theme-dark, +body.style-options-for-kanban-plugin-dynamic-neon-three.theme-dark { + --background-transparent-black-or-white-1: #232323c2; + --background-transparent-black-or-white-2: #0f0f0f69; + --background-transparent-black-or-white-3: #2222224d; + --background-transparent-blue: #53a3ff41; +} + +body.style-options-for-kanban-plugin-dynamic-neon-one.theme-light, +body.style-options-for-kanban-plugin-dynamic-neon-two.theme-light, +body.style-options-for-kanban-plugin-dynamic-neon-three.theme-light { + --background-transparent-black-or-white-1: #ffffffb0; + --background-transparent-black-or-white-2: #eeeeee88; + --background-transparent-black-or-white-3: #f5f5f583; + --background-transparent-blue: #5eb6ff44; +} + +body.style-options-for-kanban-plugin-dynamic-neon-one .kanban-plugin, +body.style-options-for-kanban-plugin-dynamic-neon-two .kanban-plugin, +body.style-options-for-kanban-plugin-dynamic-neon-three .kanban-plugin { + background-color: var(--background-secondary-alt) !important; +} + +body.style-options-for-kanban-plugin-dynamic-neon-one.theme-dark .kanban-plugin__lane-header-wrapper, +body.style-options-for-kanban-plugin-dynamic-neon-two.theme-dark .kanban-plugin__lane-header-wrapper, +body.style-options-for-kanban-plugin-dynamic-neon-three.theme-dark .kanban-plugin__lane-header-wrapper { + background: var(--background-transparent-blue) !important; + padding: 5px 11px!important; + border-radius: 6px 6px 0 0; + margin-bottom: 5px !important; + z-index: 100 !important; +} + +body.style-options-for-kanban-plugin-dynamic-neon-one .kanban-plugin__lane-wrapper:nth-child(n) { + + position: relative; + z-index: 0; + border-radius: 10px; + overflow: hidden; + cursor: pointer; + transition: .3s; + -webkit-box-reflect: below 10px linear-gradient(transparent, rgba(0, 0, 0, .4)); +} + +body.style-options-for-kanban-plugin-dynamic-neon-one .kanban-plugin__lane-wrapper:nth-child(n)::before, +body.style-options-for-kanban-plugin-dynamic-neon-two .kanban-plugin__lane-wrapper:nth-child(n)::before { + content: ''; + position: absolute; + z-index: -2; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + width: 38px; + height: 125%; + background-color: var(--background-secondary-alt) !important; + background-repeat: no-repeat; + background-size: 50% 50%; + background-position: 0 0; + background-image: conic-gradient(var(--kanban-shadow), var(--kanban-shadow)); + animation: rotate 2s linear infinite; +} + +body.style-options-for-kanban-plugin-dynamic-neon-one .kanban-plugin__lane-wrapper:nth-child(n)::after, +body.style-options-for-kanban-plugin-dynamic-neon-two .kanban-plugin__lane-wrapper:nth-child(n)::after { + content: ''; + position: absolute; + z-index: -1; + left: 2px; + top: 2px; + width: calc(100% - 4px); + height: calc(100% - 4px); + background-color: var(--background-secondary-alt) !important; + border-radius: 10px; +} + +body.style-options-for-kanban-plugin-dynamic-neon-two .kanban-plugin__lane-wrapper:nth-child(n) { + background: unset !important; + position: relative; + z-index: 0; + border-radius: 10px; + overflow: hidden; + cursor: pointer; + transition: .3s; + box-shadow: 0px 0px 5px 1px var(--kanban-shadow); +} + +@keyframes rotate { + 100% {transform: translate(-50%, -50%) rotate(1turn);} +} + +body.style-options-for-kanban-plugin-dynamic-neon-one .kanban-plugin__lane-wrapper:nth-child(n):hover +body.style-options-for-kanban-plugin-dynamic-neon-two .kanban-plugin__lane-wrapper:nth-child(n):hover { + box-shadow: 0 0 5px var(--kanban-shadow), 0 0 25px var(--kanban-shadow); +} + +body.style-options-for-kanban-plugin-dynamic-neon-one .kanban-plugin__lane-wrapper:nth-child(n):hover::after, +body.style-options-for-kanban-plugin-dynamic-neon-one .kanban-plugin__lane-wrapper:nth-child(n):hover::before, +body.style-options-for-kanban-plugin-dynamic-neon-two .kanban-plugin__lane-wrapper:nth-child(n):hover::after, +body.style-options-for-kanban-plugin-dynamic-neon-two .kanban-plugin__lane-wrapper:nth-child(n):hover::before { + transition: .3s; + background: linear-gradient(to bottom, var(--kanban-shadow) 30%, transparent) !important; +} + +body.style-options-for-kanban-plugin-dynamic-neon-one .kanban-plugin__lane-wrapper:nth-child(7n+2), +body.style-options-for-kanban-plugin-dynamic-neon-two .kanban-plugin__lane-wrapper:nth-child(7n+2) { + filter: hue-rotate(50deg); +} +body.style-options-for-kanban-plugin-dynamic-neon-one .kanban-plugin__lane-wrapper:nth-child(7n+3), +body.style-options-for-kanban-plugin-dynamic-neon-two .kanban-plugin__lane-wrapper:nth-child(7n+3) { + filter: hue-rotate(140deg); +} +body.style-options-for-kanban-plugin-dynamic-neon-one .kanban-plugin__lane-wrapper:nth-child(7n+4), +body.style-options-for-kanban-plugin-dynamic-neon-two .kanban-plugin__lane-wrapper:nth-child(7n+4) { + filter: hue-rotate(180deg); +} +body.style-options-for-kanban-plugin-dynamic-neon-one .kanban-plugin__lane-wrapper:nth-child(7n+5), +body.style-options-for-kanban-plugin-dynamic-neon-two .kanban-plugin__lane-wrapper:nth-child(7n+5) { + filter: hue-rotate(220deg); +} +body.style-options-for-kanban-plugin-dynamic-neon-one .kanban-plugin__lane-wrapper:nth-child(7n+6), +body.style-options-for-kanban-plugin-dynamic-neon-two .kanban-plugin__lane-wrapper:nth-child(7n+6) { + filter: hue-rotate(280deg); +} +body.style-options-for-kanban-plugin-dynamic-neon-one .kanban-plugin__lane-wrapper:nth-child(7n) +body.style-options-for-kanban-plugin-dynamic-neon-two .kanban-plugin__lane-wrapper:nth-child(7n) { + filter: hue-rotate(330deg); +} + +body.style-options-for-kanban-plugin-dynamic-neon-three .kanban-plugin__lane-wrapper:nth-child(n) { + background: unset !important; + position: relative; + border-radius: 10px; + overflow: hidden; + cursor: pointer; + transition: .3s; + animation: huerotate-1 6s infinite linear; + filter: hue-rotate(360deg); +} + +@keyframes huerotate-1 { + 0% {filter: hue-rotate(0deg);} + 100% {filter: hue-rotate(360deg);} +} + +body.style-options-for-kanban-plugin-dynamic-neon-three .kanban-plugin__lane-wrapper:nth-child(n)::before { + content: ''; + position: absolute; + z-index: -2; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + width: 250%; + height: 300%; + background-color: var(--background-secondary-alt) !important; + background-repeat: no-repeat; + background-size: 50% 50%; + background-position: 0 0; + background-image: conic-gradient(var(--kanban-shadow), var(--kanban-shadow)); + animation: rotate 2s linear infinite; +} + +body.style-options-for-kanban-plugin-dynamic-neon-three .kanban-plugin__lane-wrapper:nth-child(n)::after { + content: ''; + position: absolute; + z-index: -1; + left: 2px; + top: 2px; + width: calc(100% - 4px); + height: calc(100% - 4px); + background-color: var(--background-secondary-alt) !important; + border-radius: 10px; +} + +body.style-options-for-kanban-plugin-dynamic-neon-three .kanban-plugin__lane-wrapper:nth-child(n):hover { + box-shadow: 0 0 5px var(--kanban-shadow), 0 0 25px var(--kanban-shadow); +} +body.style-options-for-kanban-plugin-dynamic-neon-three .kanban-plugin__lane-wrapper:nth-child(n):hover::after, +body.style-options-for-kanban-plugin-dynamic-neon-three .kanban-plugin__lane-wrapper:nth-child(n):hover::before { + transition: .3s; + background: var(--kanban-shadow); +} +body.style-options-for-kanban-plugin-dynamic-neon-three .kanban-plugin__lane-wrapper:nth-child(7n+2) { + animation: huerotate-2 6s infinite linear; + filter: hue-rotate(410deg); +} + +@keyframes huerotate-2 { + 0% {filter: hue-rotate(50deg);} + 100% {filter: hue-rotate(410deg);} +} + +body.style-options-for-kanban-plugin-dynamic-neon-three .kanban-plugin__lane-wrapper:nth-child(7n+3) { + animation: huerotate-3 6s infinite linear; + filter: hue-rotate(500deg); +} + +@keyframes huerotate-3 { + 0% {filter: hue-rotate(140deg);} + 100% {filter: hue-rotate(500deg);} +} + +body.style-options-for-kanban-plugin-dynamic-neon-three .kanban-plugin__lane-wrapper:nth-child(7n+4) { + filter: hue-rotate(540deg); + animation: huerotate-4 6s infinite linear; +} + +@keyframes huerotate-4 { + 0% {filter: hue-rotate(180deg);} + 100% {filter: hue-rotate(540deg);} +} + +body.style-options-for-kanban-plugin-dynamic-neon-three .kanban-plugin__lane-wrapper:nth-child(7n+5) { + filter: hue-rotate(580deg); + animation: huerotate-5 6s infinite linear; +} + +@keyframes huerotate-5 { + 0% {filter: hue-rotate(220deg);} + 100% {filter: hue-rotate(580deg);} +} + +body.style-options-for-kanban-plugin-dynamic-neon-three .kanban-plugin__lane-wrapper:nth-child(7n+6) { + filter: hue-rotate(640deg); + animation: huerotate-6 6s infinite linear; +} + +@keyframes huerotate-6 { + 0% {filter: hue-rotate(280deg);} + 100% {filter: hue-rotate(640deg);} +} + +body.style-options-for-kanban-plugin-dynamic-neon-three .kanban-plugin__lane-wrapper:nth-child(7n+0) { + filter: hue-rotate(690deg); + animation: huerotate-7 6s infinite linear; +} + +@keyframes huerotate-7 { + 0% { filter: hue-rotate(330deg);} + 100% { filter: hue-rotate(690deg);} +} + +/* =========================================*/ +/* =========tapes pins and stickies=========*/ +/* =========================================*/ +/* thanks to death_au, Gabroel and Lithou from Obsidian Members Group on Discord */ +.stickies { + text-align: center; + transition: width 2s; + padding: 5px; + margin: 18px; + position: relative; + float: right; + right: -10px; + width: max(180px, 30%); + max-width: 50%; + background-color: var(--stickies-color-1); + -webkit-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -o-transform: rotate(0deg); + -ms-transform: rotate(0deg); + transform: rotate(2deg); + transition: all 2s ease; + z-index: 1; + padding-top: 10px; + padding-bottom: 10px; + border-radius: 0; + color: black; +} + +.stickies::after { + content: ""; + left: -5%; + top: -10px; + height: 40px; + width: 15px; + border-radius: var(--radius-l); + border: 3px solid #979797; + display: inline-block; + position: absolute; + -webkit-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -o-transform: rotate(0deg); + -ms-transform: rotate(0deg); + transform: rotate(-11deg); + z-index: 11; +} + +.stickies::before { + width: 11px; + height: 20px; + content: ""; + display: inline-block; + position: absolute; + left: -3.5%; + top: -2px; + border-radius: var(--radius-l); + border: 3px solid #979797; + border-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + z-index: 10; + -webkit-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -o-transform: rotate(0deg); + -ms-transform: rotate(0deg); + transform: rotate(-11deg); +} + +.stickies2 { + position: relative; + float: left; + box-shadow: 0 10px 10px 2px #9191912d; + width: max(180px, 30%); + max-width: 50%; + background-color: var(--stickies-color-2); + -webkit-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -o-transform: rotate(0deg); + -ms-transform: rotate(0deg); + transform: rotate(-2deg); + transition: all 2s ease; + z-index: 1; + padding: 20px; + margin: 10px; + color: black; +} + +.stickies2::after { + content: ""; + display: block; + height: 32px; + width: 2px; + position: absolute; + left: 50%; + top: -10px; + z-index: 1; + border-radius: 50%; + display: inline-block; + height: 15px; + width: 15px; + border: 1px; + box-shadow: inset -10px -10px 10px #f0b7a4, inset 3px 3px 5px; +} + +.to-recall { + position: relative; + float: left; + max-width: 30%; + background-color: var(--text-normal); + border-radius: var(--radius-xs); + -webkit-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -o-transform: rotate(0deg); + -ms-transform: rotate(0deg); + transform: rotate(0deg); + z-index: 1; + padding: 8px; + margin-right: 8px; + margin-top: 20px; + font-weight: bold; + font-family: Cooper; + color: var(--text-normal); +} + +.to-recall:hover { + cursor: pointer; +} + +.to-recall:active { + background-color: transparent; + transition: all 300ms ease; +} + +.to-recall::after { + content: "Click"; + position: absolute; + font-size: 12px; + top: 1px; + right: 5px; + font-weight: 600; + font-family: Arial; + color: var(--background-primary); +} + +.to-recall:active:after { + display: none; +} + +.to-recall::before { + content: " To Recall"; + display: inline-block; + position: absolute; + top: -20px; + left: -8px; + border-radius: var(--radius-l); + font-size: 14px; + font-weight: bold; + font-family: OCR A; + color: #858585; + white-space: pre; +} + +/* thanks to dcoales from obsidian member group on discord */ +/* https://discord.com/channels/686053708261228577/702656734631821413/794236352857374764 */ +aside { + float: right; + position: relative; + left: 5px; + padding: 0 0 0 2px; +} + +aside>h1, +aside>h2 { + font-weight: normal !important; + font-size: 16px !important; + border: 1px solid; + border-bottom: 1px solid !important; + background-color: transparent; + padding: 0 5px; + max-width: 150px; + color: #467cf0 !important; + position: absolute; +} + +aside>h1:hover::before, +aside>h2:hover::before { + display: none; +} + +aside>h2 { + color: #dd9207 !important; +} + +.is-readable-line-width.sidecomments .markdown-preview-sizer { + margin-left: 20px !important; +} + +/* ================================== */ +/* ====== markdown assitance ======== */ +/* ================================== */ +.command-list-view-row-selected { + background-color: gray !important; +} + + +/* +.cm-s-obsidian pre.HyperMD-codeblock, +.cm-s-obsidian span.cm-math:not(.cm-formatting-math-begin):not(.cm-formatting-math-end) { + color: var(--gray-2); +} +*/ + +/* ================================== */ +/* ============ comments ============ */ +/* ================================== */ +.theme-light .ob-comment { + position: relative; + border-bottom: 1px dotted black; + color: var(--text-normal) !important; + background-color: #57b2ee77 !important; + border-radius: 10% !important; +} + +.theme-dark .ob-comment { + position: relative; + border-bottom: 1px dotted rgb(255, 255, 255); + color: var(--text-normal) !important; + background-color: #0054b5e0 !important; + border-radius: 10% !important; +} + +.theme-light .ob-comment:hover { + background-color: #57b2ee50 !important; +} + +.theme-dark .ob-comment:hover { + background-color: #0062d1 !important; +} + +.theme-light .ob-comment span { + visibility: hidden; + min-width: auto; + max-width: 500px; + width: max-content; + background-color: #c7e2f5e5 !important; + color: #0068c9 !important; + text-align: left; + border-radius: var(--radius-s); + padding: 10px 10px; + z-index: 1; + position: absolute; + top: 20px; + right: 20px; + box-shadow: 1px 1px 10px 5px var(--background-secondary); + transition: opacity 1s; +} + +.theme-dark .ob-comment span { + visibility: hidden; + min-width: auto; + max-width: 500px; + width: max-content; + background-color: #aed6f3ef !important; + color: #005cb3 !important; + text-align: left; + border-radius: var(--radius-s); + padding: 10px 10px; + z-index: 1; + position: absolute; + top: 20px; + right: 20px; + box-shadow: 1px 1px 10px 5px var(--background-secondary); + transition: opacity 1s; +} + +.theme-light .comment-pannel-p3 { + background-color: #c7e2f5e5 !important; + color: #0068c9 !important; +} + +.theme-dark .comment-pannel-p3 { + background-color: #aed6f3ef !important; + color: #005cb3 !important; +} + +.comment-pannel-bubble { + width: 90% !important; + padding: 0 5px !important; + text-decoration: none; + display: inline-block; + margin-right: 0 !important; +} + +/* ======== tooltip ========= */ +.tooltip, +.tooltip.mod-right { + color: var(--white); + background-color: var(--interactive-accent); +} +.tooltip .tooltip-arrow { + border-bottom: 5px solid var(--interactive-accent); +} +.tooltip.mod-right .tooltip-arrow { + border-right: 5px solid var(--interactive-accent); +} +.tooltip.mod-left .tooltip-arrow { + border-left: 5px solid var(--interactive-accent); +} + +/* ================================== */ +/* ======== better footnote ========= */ +/* ================================== */ +:is(.markdown-preview-view,.markdown-rendered) .tippy-content { + -webkit-background-clip: initial; + -webkit-text-fill-color: initial; + /* font-size: var(--font-size-better-footnote) !important;*/ + font-family: var(--font-family-better-footnote) !important; +} + +/*default footnote*/ +section.footnotes ol>li:not(.task-list-item) { + border-left: none !important; +} + +.cm-s-obsidian span.cm-footref { + color: var(--text-accent); +} +.tippy-box[data-theme~="obsidian"] +{ + backdrop-filter: blur(8px); +} +.file-embed.mod-empty:hover { + backdrop-filter: blur(5px); +} +/* ================================== */ +/* =========== admonition =========== */ +/* ================================== */ +body.style-options-for-admonition-plugin .admonition { + break-inside: avoid; +} + +body.style-options-for-admonition-plugin .callout.admonition .admonition-content { + overflow: hidden; +} + +.admonition.callout { + border-color: rgba(var(--callout-color),0.15); +} +.callout:not(.admonition).drop-shadow +{ + box-shadow:var(--window-shadow2); +} +.callout.admonition.admonition-plugin.is-collapsed { + overflow: hidden; +} +/* ad伪看板效果*/ +body.style-options-for-admonition-plugin .admonition-kanban { + overflow: visible; + background-color: rgba(255, 255, 255, 0) !important; + border-left: none !important; + margin: auto; + box-shadow: none !important; +} +body.style-options-for-admonition-plugin .admonition-kanban .admonition-content { + overflow: visible; + margin: 0; +} + +body.style-options-for-admonition-plugin .admonition-kanban .is-mobile ul { + display: flex; +} + +body.style-options-for-admonition-plugin .admonition-kanban ul { + display: flex; + margin: 0; + flex-direction: row; + border: none; + padding: 0; + border-radius: var(--radius-m); + flex-wrap: wrap; +} + +body.style-options-for-admonition-plugin .admonition-kanban ul>li:not(.task-list-item) { + flex: 1 1 20%; + padding: 0.1em 1em 0.1em 0.8em !important; + margin: 0 0.1em 0.3em 0 !important; + list-style: none; + border: 1px solid var(--p-kanban-border-color); + border-left: 1px solid var(--p-kanban-border-color) !important; + border-radius: var(--radius-s); + word-wrap: break-word; + word-break: break-word; +} + +body.style-options-for-admonition-plugin .admonition-kanban ul .list-collapse-indicator.collapse-indicator.collapse-icon { + margin-left: -1.2em; + position: absolute; +} + +body.style-options-for-admonition-plugin .admonition-kanban ul .list-collapse-indicator.collapse-indicator.collapse-icon::before { + color: var(--text-accent); + transition: transform 10ms linear 0s; +} + +body.style-options-for-admonition-plugin.colorful-p-kanban .admonition-kanban ul>li:nth-of-type(8n+1) { + background-color: var(--p-kanban-color-1); + padding-left: 1em; +} +body.style-options-for-admonition-plugin.colorful-p-kanban .admonition-kanban ul>li:nth-of-type(8n+2) { + background-color: var(--p-kanban-color-2); + padding-left: 1em; +} +body.style-options-for-admonition-plugin.colorful-p-kanban .admonition-kanban ul>li:nth-of-type(8n+3) { + background-color: var(--p-kanban-color-3); + padding-left: 1em; +} +body.style-options-for-admonition-plugin.colorful-p-kanban .admonition-kanban ul>li:nth-of-type(8n+4) { + background-color: var(--p-kanban-color-4); + padding-left: 1em; +} +body.style-options-for-admonition-plugin.colorful-p-kanban .admonition-kanban ul>li:nth-of-type(8n+5) { + background-color: var(--p-kanban-color-5); + padding-left: 1em; +} +body.style-options-for-admonition-plugin.colorful-p-kanban .admonition-kanban ul>li:nth-of-type(8n+6) { + background-color: var(--p-kanban-color-6); + padding-left: 1em; +} +body.style-options-for-admonition-plugin.colorful-p-kanban .admonition-kanban ul>li:nth-of-type(8n+7) { + background-color: var(--p-kanban-color-7); + padding-left: 1em; +} +body.style-options-for-admonition-plugin.colorful-p-kanban .admonition-kanban ul>li:nth-of-type(8n) { + background-color: var(--p-kanban-color-8); + padding-left: 1em; +} + +body.style-options-for-admonition-plugin .admonition-kanban ul ul { + display: flex; + flex-direction: column; + justify-content: center; + padding: 0; + margin-top: 0.5rem; + border-radius: 0; + border: 0; + background: none; +} + +body.style-options-for-admonition-plugin .admonition-kanban ul ul li:not(.task-list-item) { + width: 100%; + display: block; + background-color: var(--p-kanban-card-color-1) !important; +} + +body.style-options-for-admonition-plugin .admonition-kanban ul>li:hover { + border-color: var(--p-kanban-border-color) !important; +} + +body.style-options-for-admonition-plugin .admonition-kanban ul ul li:hover { + background: transparent !important; + border-color: var(--p-kanban-border-color) !important; + border-left: 1px solid var(--p-kanban-border-color) !important; +} + +.theme-dark body.style-options-for-admonition-plugin .admonition-kanban ul ul li:hover { + border-color: #696969e1 !important; + border-left: 1px solid #696969e1 !important; +} + +body.style-options-for-admonition-plugin .admonition-kanban ul ul li .task-list-item-checkbox { + margin-left: 1.5rem; +} + +body.style-options-for-admonition-plugin .admonition-kanban ul ul ul { + margin-right: 0; +} + +body.style-options-for-admonition-plugin .admonition-kanban ul ul::before { + border-left: 0; +} + +:is(.markdown-preview-view,.markdown-rendered).is-readable-line-widthbody.style-options-for-admonition-plugin .admonition-kanban .markdown-preview-sizer>div>ul { + max-width: 100%; +} + +body.style-options-for-admonition-plugin .admonition-kanban ul.contains-task-list ul, +body.style-options-for-admonition-plugin .admonition-kanban ol.contains-task-list ul, +body.style-options-for-admonition-plugin .admonition-kanban ul.contains-task-list ol, +body.style-options-for-admonition-plugin .admonition-kanban ol.contains-task-list ol { + position: initial; +} + +body.style-options-for-admonition-plugin .admonition-kanban ul.contains-task-list ul::before, +body.style-options-for-admonition-plugin .admonition-kanban ol.contains-task-list ul::before, +body.style-options-for-admonition-plugin .admonition-kanban ul.contains-task-list ol::before, +body.style-options-for-admonition-plugin .admonition-kanban ol.contains-task-list ol::before { + all: initial +} + +body.style-options-for-admonition-plugin .admonition-kanban ul > li.task-list-item { + flex: 1 1 20%; + padding: 0.1em 1em; + margin: 0 0.1em 0.3em 0; + list-style: none; + border: 1px solid var(--p-kanban-border-color); + border-left: 1px solid var(--p-kanban-border-color) !important; + border-radius: var(--radius-s); + word-wrap: break-word; + word-break: break-word; + text-indent: 0; +} + +body.style-options-for-admonition-plugin .admonition-kanban ul ul li.task-list-item { + width: 100%; + display: block; + padding-left: 2em; + text-indent: -3.1em; + background-color: var(--p-kanban-card-color-1) !important; +} + +/*blank ad分栏 +修改自 https://forum-zh.obsidian.md/t/topic/2081 */ +body.style-options-for-admonition-plugin .is-live-preview .admonition-col2 .callout-content.admonition-content>div:nth-child(2), +body.style-options-for-admonition-plugin .is-live-preview .admonition-col3 .callout-content.admonition-content>div:nth-child(2), +body.style-options-for-admonition-plugin .is-live-preview .admonition-col4 .callout-content.admonition-content>div:nth-child(2) { + margin-top: -1.5em; +} +body.style-options-for-admonition-plugin .admonition-kanban .admonition-title-icon, +body.style-options-for-admonition-plugin .admonition-flex .admonition-title-icon, +body.style-options-for-admonition-plugin .admonition-col2 .admonition-title-icon, +body.style-options-for-admonition-plugin .admonition-col3 .admonition-title-icon, +body.style-options-for-admonition-plugin .admonition-col4 .admonition-title-icon { + display: none; +} +body.style-options-for-admonition-plugin .is-live-preview :is(.admonition-col2, .admonition-col3, .admonition-col4, .admonition-flex) .admonition-content blockquote { + padding: 0; + margin: 0; + line-height:1em; +} +body.style-options-for-admonition-plugin :is(.admonition-col2, .admonition-col3, .admonition-col4, .admonition-flex) .admonition-content blockquote { + flex: 100%; + border-left: none; + padding-left: 0; + padding-right: 0; + margin-block-start: 0; + margin: 0; + box-shadow: none; + background-color: transparent; + color: var(--text-muted); +} +body.style-options-for-admonition-plugin :is(.admonition-col2, .admonition-col3, .admonition-col4, .admonition-flex) .admonition-content blockquote p::before { + display: none; +} +body.style-options-for-admonition-plugin :is(.admonition-col2, .admonition-col3, .admonition-col4, .admonition-flex) .admonition-content blockquote p { + margin: 0; + overflow-wrap: anywhere; +} + +body.style-options-for-admonition-plugin :is(.callout.admonition-col2,.callout.admonition-col3,.callout.admonition-col4,.callout.admonition-flex)>.admonition-content>ul { + margin-left: auto; +} +body.style-options-for-admonition-plugin .admonition-col2 .admonition-content>ul, +body.style-options-for-admonition-plugin .admonition-col3 .admonition-content>ul, +body.style-options-for-admonition-plugin .admonition-col4 .admonition-content>ul, +body.style-options-for-admonition-plugin .admonition-flex .admonition-content>ul { + padding-inline-start: 20px !important; + margin-left: -20px; + margin-block-start:0; +} + +body.style-options-for-admonition-plugin :is(.admonition-flex,.admonition-col2,.admonition-col3,.admonition-col4) .admonition-content .admonition-content>ul>li{ + list-style-type: none; + padding:0; +} +.markdown-rendered .admonition ul li p:last-of-type, .markdown-rendered ol li p:last-of-type { + margin-block-end: 0.5em; +} + +.markdown-rendered .admonition ul li p:first-of-type, .markdown-rendered ol li p:first-of-type { + margin-block-start: 0.5em; +} + +body.style-options-for-admonition-plugin .admonition-col2 .admonition-content ul li .task-list-item-checkbox, +body.style-options-for-admonition-plugin .admonition-col3 .admonition-content ul li .task-list-item-checkbox, +body.style-options-for-admonition-plugin .admonition-col4 .admonition-content ul li .task-list-item-checkbox, +body.style-options-for-admonition-plugin .admonition-flex .admonition-content ul li .task-list-item-checkbox { + margin-left: auto; +} +:is(.admonition-col2,.admonition-col3,.admonition-col4,.admonition-flex) .callout-content ul.dataview.list-view-ul>li:not(.task-list-item) { + margin-left: auto; +} + +body.style-options-for-admonition-plugin .admonition-col2 { + box-shadow: none!important; +} + +body.style-options-for-admonition-plugin .admonition-col2 .admonition { + overflow: visible; + margin: 0; +} + +body.style-options-for-admonition-plugin .admonition-col2>.admonition-content-holder> .admonition-content { + columns: 150px 2; + -moz-columns: 150px 2; + -webkit-columns: 150px 2; + column-gap: 2vw; + overflow: visible; + margin: 0; + /*分栏的分割线 + column-rule: 1px solid #d4d2d2; */ +} +body.style-options-for-admonition-plugin .callout.admonition-col2> .admonition-content { + columns: 150px 2; + -moz-columns: 150px 2; + -webkit-columns: 150px 2; + column-gap: 2vw; + overflow: visible; + margin: 0; + /*分栏的分割线 + column-rule: 1px solid #d4d2d2; */ +} +body.style-options-for-admonition-plugin .admonition-col2 .admonition-content ol, +body.style-options-for-admonition-plugin .admonition-col2 .admonition-content ul { + margin-top: -0.25em; + +} +body.style-options-for-admonition-plugin :is(.markdown-preview-view,.markdown-rendered) .admonition-col2 .admonition-content :is(h3,h4) { + margin-top: -0.001em !important; +} +body.style-options-for-admonition-plugin .admonition-kanban .admonition-col2 .admonition-content ol{ + margin: 0; + break-inside: avoid; +} + +body.style-options-for-admonition-plugin .admonition-kanban .admonition-col2 .admonition-content ul { + margin: 0; + break-inside: avoid; +} + +body.style-options-for-admonition-plugin .admonition-col2 .admonition-content { + overflow: visible ; +} + +body.style-options-for-admonition-plugin .admonition-col2 > .admonition-content-holder { + margin-top: 0 !important; + margin-bottom: 0 !important; +} +body.style-options-for-admonition-plugin .admonition-col2 p { + text-align: justify; + margin-top: 0; + padding: 2px; + /* height:100%; + overflow: auto; */ +} +body.style-options-for-admonition-plugin .admonition-col2 p > img{ + display: block; + height: auto; +} + +body.style-options-for-admonition-plugin .admonition-col2-parent .admonition-col2 .admonition > .admonition-title.no-title + .admonition-content-holder { + margin-top: 0; +} + +/****col3 三栏*****/ +body.style-options-for-admonition-plugin .admonition-col3 { + box-shadow: none !important; +} + +body.style-options-for-admonition-plugin .admonition-col3 .admonition { + overflow: visible; + margin: 0; +} + +body.style-options-for-admonition-plugin .callout.admonition-col3>.admonition-content { + columns: 100px 3; + -moz-columns: 100px 3; + -webkit-columns: 100px 3; + column-gap: 1vw; + overflow: visible; + margin: 0; + break-inside: avoid; + column-rule: 1px solid #d4d2d2; +} +body.style-options-for-admonition-plugin .admonition-col3>.admonition-content-holder>.admonition-content { + columns: 100px 3; + -moz-columns: 100px 3; + -webkit-columns: 100px 3; + column-gap: 1vw; + overflow: visible ; + margin: 0; + break-inside: avoid; + column-rule: 1px solid #d4d2d2; +} +body.style-options-for-admonition-plugin .admonition-col3 .admonition-content ol, +body.style-options-for-admonition-plugin .admonition-col3 .admonition-content ul { + margin-top: -0.25em; +} +body.style-options-for-admonition-plugin .admonition-kanban .admonition-col3 .admonition-content ul { + margin: 0; + break-inside: avoid; +} +body.style-options-for-admonition-plugin .admonition-kanban .admonition-col3 .admonition-content ol { + margin: 0; + break-inside: avoid; +} +body.style-options-for-admonition-plugin .admonition-col3 .admonition-content { + overflow: visible; +} + +body.style-options-for-admonition-plugin .admonition-col3 >.admonition-content-holder { + margin-top: 0 !important; + margin-bottom: 0 !important; +} +body.style-options-for-admonition-plugin .admonition-col3 p{ + text-align: justify; + margin-top: 0; + padding: 2px; + /* height:100%; + overflow: auto; */ +} +body.style-options-for-admonition-plugin .admonition-col3 p>img{ + display: block; + height: auto; +} + +body.style-options-for-admonition-plugin .admonition-col3-parent .admonition-col3 .admonition > .admonition-title.no-title + .admonition-content-holder { + margin-top: 0; +} + +/****col4 四栏*****/ +body.style-options-for-admonition-plugin .admonition-col4 { + box-shadow: none !important; +} + +body.style-options-for-admonition-plugin .admonition-col4 .admonition { + overflow: visible; + margin: 0; +} + +body.style-options-for-admonition-plugin .callout.admonition-col4 > .admonition-content { + column-count: 4; + column-gap: 1vw; + overflow: visible; + margin: 0; + break-inside: avoid; +} +body.style-options-for-admonition-plugin .admonition-col4 > .admonition-content-holder>.admonition-content { + column-count: 4; + column-gap: 1vw; + overflow: visible; + margin: 0; + break-inside: avoid; +} +body.style-options-for-admonition-plugin .admonition-col4 .admonition-content { + margin: 0; + break-inside: avoid; +} + +body.style-options-for-admonition-plugin .admonition-col4 .admonition-content ol, +body.style-options-for-admonition-plugin .admonition-col4 .admonition-content ul { + margin-top: -0.25em; +} +body.style-options-for-admonition-plugin .admonition-kanban .admonition-col4 .admonition-content ul { + margin: 0; + break-inside: avoid; +} +body.style-options-for-admonition-plugin .admonition-kanban .admonition-col4 .admonition-content ol { + margin: 0; + break-inside: avoid; +} +body.style-options-for-admonition-plugin .admonition-col4 > .admonition-content { + overflow: visible; +} + +body.style-options-for-admonition-plugin .admonition-col4 > .admonition-content-holder { + margin-top: 0 !important; + margin-bottom: 0 !important; +} +body.style-options-for-admonition-plugin .admonition-col4 p { + text-align: justify; + margin-top: 0; + padding: 2px; +} +body.style-options-for-admonition-plugin .admonition-col4 p>img{ + display: block; + height: auto; + -webkit-transition: -webkit-transform .3s ease; + -moz-transition: -moz-transform .3s ease; + -ms-transition: -ms-transform .3s ease; + transition: transform .3s ease; +} + +body.style-options-for-admonition-plugin .admonition-col4 p>img:hover{ + -webkit-transform: scale(1.2); + -moz-transform: scale(1.2); + -ms-transform: scale(1.2); + transform: scale(1.2) +} + +body.style-options-for-admonition-plugin .admonition-col4-parent .admonition-col4 .admonition > .admonition-title.no-title + .admonition-content-holder { + margin-top: 0; +} + +/*自适应分栏*/ +body.style-options-for-admonition-plugin .admonition-flex { + margin: auto; + box-shadow: none; + border-left: none; + word-break: break-word; +} +body.admonition-bg-color-same.style-options-for-admonition-plugin .admonition-flex { + margin: 1em 0; +} +.is-live-preview .callout-content.admonition-content >p { + margin-top: 0; +} +body.style-options-for-admonition-plugin .admonition-flex >.admonition-content-holder { + margin-top: 0 !important; + margin-bottom: 0 !important; +} +body.style-options-for-admonition-plugin .admonition-flex .admonition-content { + width: 100%; + margin: 0px; + display: flex; + flex-wrap: wrap; + border: none; +} +body.style-options-for-admonition-plugin .admonition-flex .admonition-content>div{ + flex: 1; + margin: 0 0.625rem; +} +body.style-options-for-admonition-plugin .admonition-flex .admonition-content[data-embed-type="image"] p{ + align-self: baseline; +} + +body.style-options-for-admonition-plugin .admonition-flex .admonition-content[data-embed-type="image"] { + justify-content: space-around; +} + +/*ad-table*/ +body.style-options-for-admonition-plugin .admonition-table { + overflow: visible; + margin: auto; + box-shadow: none; +} +body.style-options-for-admonition-plugin .admonition-table .admonition-content { + width: calc(100% - 5px); + margin: 0; + overflow-x: auto !important; + white-space: nowrap; +} +body.style-options-for-admonition-plugin .admonition-table .admonition-content thead > tr > th, +body.style-options-for-admonition-plugin .admonition-table .admonition-content tbody > tr > td { + white-space: nowrap; +} +/*blank ad框全透明隐藏*/ +body.style-options-for-admonition-plugin .admonition-blank { + overflow: visible; + background-color: rgba(255, 255, 255, 0) !important; + border-left: none !important; + margin: auto; + box-shadow: none; +} +body.style-options-for-admonition-plugin .admonition-blank .admonition-content { + overflow: visible; + margin: 0; +} +body.style-options-for-admonition-plugin .callout.admonition-blank .admonition-content { + overflow: hidden; +} + +/* 感谢 围城 网友分享 +本样式仿造自elegantbook模板:https://github.com/ElegantLaTeX/ElegantBook +为以下类型设置了样式,需要在admonition中自行添加,设置好颜色和icon +- def: definition +- thm: theorem +- lem: lemma +- cor: corollary +- pro: proposition + +标题使用方正书宋_GBK,正文使用方正楷体_GBK,系统需要安装 +*/ + +body.style-options-for-admonition-plugin :is(.admonition-def,.admonition-thm,.admonition-lem,.admonition-cor,.admonition-pro) { + margin: 1.5625em 0 !important; + overflow: visible !important; + border: 1px solid rgb(var(--callout-color)) !important; + border-radius: 0.3em !important; + background-color: rgba(var(--callout-color),0.05) !important; + box-shadow: 0 0 0 !important; +} + +body.style-options-for-admonition-plugin :is(.admonition-def,.admonition-thm,.admonition-lem,.admonition-cor,.admonition-pro) *.admonition-title { + display: inline-block; + top: -0.9em; + left: 1.5em; + padding: 1px 8px !important; + background-color: rgb(var(--callout-color)) !important; + border-radius: 0.2em; +} + +body.style-options-for-admonition-plugin :is(.admonition-def,.admonition-thm,.admonition-lem,.admonition-cor,.admonition-pro) *.callout-title.admonition-title { + display: flex; + top: unset; + left: 1.5em; + padding: 1px 8px !important; + background-color: rgb(var(--callout-color)) !important; + border-radius: 0.2em; + position: relative; + width: fit-content; +} + +body.style-options-for-admonition-plugin :is(.admonition-def,.admonition-thm,.admonition-lem,.admonition-cor,.admonition-pro) *.admonition-title-content { + color: white; + font-family: "方正书宋_GBK", var(--font-text); + font-size: 1.1em; +} + +body.style-options-for-admonition-plugin :is(.admonition-def,.admonition-thm,.admonition-lem,.admonition-cor,.admonition-pro) *.admonition-title-icon { + /* display: none !important; */ + color: white; + background-color: rgb(var(--callout-color)); + margin: 0.2em; +} + +body.style-options-for-admonition-plugin :is(.admonition-def,.admonition-thm,.admonition-lem,.admonition-cor,.admonition-pro) *.admonition-content-holder { + margin-top: -1em; + padding: 0; +} + +body.style-options-for-admonition-plugin :is(.admonition-def,.admonition-thm,.admonition-lem,.admonition-cor,.admonition-pro) *.callout-title.admonition-title { + margin-top: -1em ; + padding: 0; +} + +body.style-options-for-admonition-plugin :is(.admonition-def,.admonition-thm,.admonition-lem,.admonition-cor,.admonition-pro) p { + text-indent: 0; + font-family: "方正楷体_GBK", var(--font-text) !important; + font-size: 1.1em; +} + +/*hibox*/ +/*改自 https://github.com/chokcoco/iCSS/issues/153 */ +body.style-options-for-admonition-plugin .admonition-hibox .admonition-content-holder { + margin: -1em 0.2em; +} + +body.style-options-for-admonition-plugin .admonition-hibox { + background-color: transparent !important; + box-shadow: none !important; +} + +body.style-options-for-admonition-plugin .admonition-hibox *::marker { + visibility: hidden; +} + +body.style-options-for-admonition-plugin .admonition-hibox { + position: relative; + height: auto; + overflow: hidden; + border-radius: var(--radius-s) !important; + background: radial-gradient(circle at 0px 0px, rgba(var(--callout-color), 0.2) 0, rgba(var(--callout-color), 0.2) var(--hibox), transparent var(--hibox), transparent 0); + transition: --hibox 0.6s linear; + border-left: none !important; +} + +body.style-options-for-admonition-plugin .admonition-hibox:hover { + --hibox: 1500px; + box-shadow: 0 0.2rem 0.5rem var(--background-modifier-box-shadow) !important; +} + +body.style-options-for-admonition-plugin .admonition-hibox:hover * { + visibility: visible; +} + +body.style-options-for-admonition-plugin .admonition-hibox .admonition-content-copy { + top: 7px; +} + +body.style-options-for-admonition-plugin .admonition-hibox:hover ol:not(.contains-task-list)>li:not(.task-list-item) { + border-color: var(--list-ol-block-color) !important; +} + +body.style-options-for-admonition-plugin .admonition-hibox:hover ul>li:not(.task-list-item) { + border-color: var(--list-ul-block-color) !important; +} + +body.style-options-for-admonition-plugin .admonition-hibox:hover *::marker { + color: var(--list-ol-number-color) !important; +} + +body.style-options-for-admonition-plugin .admonition-hibox:hover blockquote { + border-color: var(--theme-color) !important; + background-color: var(--background-blockquote) !important; +} + +body.style-options-for-admonition-plugin .admonition-hibox:hover { + border-color: var(--text-normal) !important; +} + +body.style-options-for-admonition-plugin .admonition-hibox .admonition-title { + display: none; +} + + +/* ======Notice================ */ +.notice-container .notice:nth-child(4n+1){ + background-color: var(--background-pink); + color: var(--text-normal); +} +.notice-container .notice:nth-child(4n+2){ + background-color: var(--background-yellow); + color: var(--text-normal); +} +.notice-container .notice:nth-child(4n+3){ + background-color: var(--background-green); + color: var(--text-normal); +} +.notice-container .notice:nth-child(4n+4){ + background-color: var(--background-red); + color: var(--text-normal); +} + +.notice-container { + z-index: var(--layer-notice); + position: fixed; + top: 40px; + right: 0px; + padding: 0px; + overflow: hidden; +} + +/* ================================== */ +/* ============ checklist =========== */ +/* ================================== */ +.checklist-plugin-main button { + box-shadow: none; +} +.checklist-plugin-main:is(.markdown-preview-view,.markdown-rendered) li { + border-left: none !important; + font-size: var(--font-size-checklist); +} + +.checklist-plugin-main { + --todoList-listItemBackground: var(--checklist-bg) !important; + --todoList-listItemBackground--hover: var(--checklist-bg-hover) !important; +} + +body.rainbow-checklist .checklist-plugin-main:is(.markdown-preview-view,.markdown-rendered) li:nth-of-type(7n+1) { + background-color: var(--checklist-color-1); +} +body.rainbow-checklist .checklist-plugin-main:is(.markdown-preview-view,.markdown-rendered) li:nth-of-type(7n+2) { + background-color: var(--checklist-color-2); +} +body.rainbow-checklist .checklist-plugin-main:is(.markdown-preview-view,.markdown-rendered) li:nth-of-type(7n+3) { + background-color: var(--checklist-color-3); +} +body.rainbow-checklist .checklist-plugin-main:is(.markdown-preview-view,.markdown-rendered) li:nth-of-type(7n+4) { + background-color: var(--checklist-color-4); +} +body.rainbow-checklist .checklist-plugin-main:is(.markdown-preview-view,.markdown-rendered) li:nth-of-type(7n+5) { + background-color: var(--checklist-color-5); +} +body.rainbow-checklist .checklist-plugin-main:is(.markdown-preview-view,.markdown-rendered) li:nth-of-type(7n+6) { + background-color: var(--checklist-color-6); +} +body.rainbow-checklist .checklist-plugin-main:is(.markdown-preview-view,.markdown-rendered) li:nth-of-type(7n+7) { + background-color: var(--checklist-color-7); +} + +.is-mobile .checklist-plugin-main :is(.markdown-preview-view,.markdown-rendered) ul { + padding-inline-start: 0; +} + +.is-mobile .checklist-plugin-main button.toggle { + width: unset; +} + +.checklist-plugin-main button.toggle .checked { + background-color: var(--theme-color) !important; +} + +/* ================================== */ +/* ============ longform ============ */ +/* ================================== */ +.workspace-leaf-content[data-type="VIEW_TYPE_LONGFORM_EXPLORER"] li { + border-left: none; +} + +/* ================================== */ +/* ========== Breadcrumbs =========== */ +/* ================================== */ +.workspace-leaf-content[data-type="breadcrumbs-matrix"] summary.hier-summary, +h3.breadcrumbs-matrix-header { + color: var(--h3-color) !important; +} + +.workspace-leaf-content[data-type="breadcrumbs-matrix"] summary { + color: var(--h4-color) !important; +} + +/*remove H3, H5 when hovering*/ +h3.breadcrumbs-matrix-header:hover::before, +h5.breadcrumbs-matrix-header:hover::before { + display: none; +} + +h5.breadcrumbs-header, +h5.breadcrumbs-matrix-header { + color: var(--h5-color) !important; +} + +.breadcrumbs-matrix-square { + border: none !important; +} + +.breadcrumbs-matrix ol { + margin-left: 8px !important; +} + +/* ================================== */ +/* ===== code block enhancer ======= */ +/* ================================== */ +.obsidian-banner-wrapper.code-block-wrap { + position: unset; +} +.code-block-wrap .code-block-linenum-wrap { + top: 0.4em; + background-color: transparent; +} +.code-block-wrap .code-block-lang-name { + top: 4px; + left: 2px; +} +.code-block-wrap .code-block-lang-name + .code-block-linenum-wrap>.code-block-linenum:first-child::before { + color: transparent; +} + +/* ================================== */ +/* ============ Dataview ============ */ +/* ================================== */ +span.dataview.small-text { + position: relative; + font-size: 70%; + line-height: 0; + vertical-align: baseline; + top: -.5em; + color: var(--text-accent); + border-radius: 3px; + text-align: center; + padding: 0 0.2em; + margin: 0 1px; + font-variant-numeric: ordinal; + opacity: 0.6; +} + +.dataview-container .internal-link { + font-size:0.88em; +} + +ul.dataview.list-view-ul>li:not(.task-list-item) { + border-left: none !important; + margin-left: -1em; +} + +li.dataview-result-list-li ul>li:not(.task-list-item) { + border-left: none !important; +} + +ul.dataview.list-view-ul>li:not(.task-list-item)::before { + font-family: boxicons; + font-size: 0.8em; + padding: 0 5px 0 0; +} + +body.dataview-list-style-pacman ul.dataview.list-view-ul>li:not(.task-list-item):first-of-type::before { + content: '\edcf'; + color: var(--list-ol-number-color); +} +body.dataview-list-style-pacman ul.dataview.list-view-ul>li:not(.task-list-item):not(:first-of-type):nth-of-type(2n):not(:nth-of-type(10n))::before { + content: '\eaee'; + color: var(--list-ul-disc-color); +} +body.dataview-list-style-pacman ul.dataview.list-view-ul>li:not(.task-list-item):not(:first-of-type):nth-of-type(2n+1)::before { + content: '\edd1'; + color: var(--list-ul-disc-color); +} +body.dataview-list-style-pacman ul.dataview.list-view-ul>li:not(.task-list-item):nth-of-type(10n)::before { + content: '\ef29'; + color: var(--list-ol-number-color); +} + +body.dataview-list-style-pacman ul.dataview.list-view-ul { + list-style: none; +} + +ul.dataview.dataview-ul.dataview-result-list-root-ul>li.dataview-result-list-li { + border-left: none !important; + margin: 0; + padding-left: 0em; +} + +ul.dataview.dataview-ul.dataview-result-list-root-ul { + list-style: none; +} + +.CodeMirror-code .CodeMirror-linewidget.rendered-block-embed.rendered-widget { + background-color: var(--embed-color); + border-radius: var(--radius-xs); + border: 1px solid var(--embed-color); +} + +body:is(.rainbow-lines-reading,.list-vertical-line-one) table.dataview.table-view-table :is(ol,ul) :is(ol,ul)::before, +body:is(.rainbow-lines-reading,.list-vertical-line-one) .kanban-plugin__markdown-preview-view :is(ol,ul) :is(ol,ul)::before { + border-left: none; +} + +:is(.markdown-preview-view,.markdown-rendered) .dataview.inline-field-standalone-value { + background-color: transparent; +} + +/* ================================== */ +/* ======= CodeMirror Options ======= */ +/* ================================== */ +.CodeMirror-widget img.hmd-image:active { + all: initial; +} + +.cm-formatting.cm-formatting-highlight.cm-highlight.hmd-hidden-token+.cm-highlight { + border-radius: var(--radius-xs); + padding: 0 3px 2px; +} + +.cm-formatting.cm-formatting-code.cm-inline-code.hmd-hidden-token+.cm-inline-code { + border-radius: var(--radius-xs); + padding: 2px 4px; +} + +.cm-formatting.cm-formatting-code.cm-inline-code.hmd-hidden-token { + font-size: 0 !important; +} + +.cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task=">"] { + background-size: 80% !important; + background-position: 60% 55% !important; + background-image: url('data:image/svg+xml;utf8,') !important; +} +.cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task=">"]::before { + content: ' '; + position: absolute; + padding: 0 0.2em; + margin-left: 0.4em; + border-radius: var(--radius-xs); + background-color: var(--checkbox-color-2); + z-index: -1; +} + +.cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task="<"] { + background-size: 80% !important; + background-position: 60% 55% !important; + background-image: url('data:image/svg+xml;utf8,') !important; +} +.cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task="<"]::before { + content: ' '; + position: absolute; + padding: 0 0.2em; + margin-left: 0.4em; + border-radius: var(--radius-xs); + background-color: var(--checkbox-color-1); + z-index: -1; +} + +.cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task="!"] { + background-size: 62% !important; + background-position: center !important; + background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiNkNGEzMDAiPjxnPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjwvZz48Zz48Zy8+PGc+PHBhdGggZD0iTTEyLDNjLTAuNDYsMC0wLjkzLDAuMDQtMS40LDAuMTRDNy44NCwzLjY3LDUuNjQsNS45LDUuMTIsOC42NmMtMC40OCwyLjYxLDAuNDgsNS4wMSwyLjIyLDYuNTYgQzcuNzcsMTUuNiw4LDE2LjEzLDgsMTYuNjlWMTljMCwxLjEsMC45LDIsMiwyaDAuMjhjMC4zNSwwLjYsMC45OCwxLDEuNzIsMXMxLjM4LTAuNCwxLjcyLTFIMTRjMS4xLDAsMi0wLjksMi0ydi0yLjMxIGMwLTAuNTUsMC4yMi0xLjA5LDAuNjQtMS40NkMxOC4wOSwxMy45NSwxOSwxMi4wOCwxOSwxMEMxOSw2LjEzLDE1Ljg3LDMsMTIsM3ogTTE0LDE3aC00di0xaDRWMTd6IE0xMCwxOXYtMWg0djFIMTB6IE0xNS4zMSwxMy43NGMtMC4wOSwwLjA4LTAuMTYsMC4xOC0wLjI0LDAuMjZIOC45MmMtMC4wOC0wLjA5LTAuMTUtMC4xOS0wLjI0LTAuMjdjLTEuMzItMS4xOC0xLjkxLTIuOTQtMS41OS00LjcgYzAuMzYtMS45NCwxLjk2LTMuNTUsMy44OS0zLjkzQzExLjMyLDUuMDMsMTEuNjYsNSwxMiw1YzIuNzYsMCw1LDIuMjQsNSw1QzE3LDExLjQzLDE2LjM5LDEyLjc5LDE1LjMxLDEzLjc0eiIvPjwvZz48Zz48cmVjdCBoZWlnaHQ9IjMiIHdpZHRoPSIxIiB4PSIxMS41IiB5PSIxMSIvPjxyZWN0IGhlaWdodD0iMyIgdHJhbnNmb3JtPSJtYXRyaXgoMC43MDcxIC0wLjcwNzEgMC43MDcxIDAuNzA3MSAtNC4wMzEyIDEwLjg1MzYpIiB3aWR0aD0iMSIgeD0iMTAuNTkiIHk9IjguNzkiLz48cmVjdCBoZWlnaHQ9IjMiIHRyYW5zZm9ybT0ibWF0cml4KC0wLjcwNzEgLTAuNzA3MSAwLjcwNzEgLTAuNzA3MSAxNC43Njc4IDI2LjcwMjgpIiB3aWR0aD0iMSIgeD0iMTIuNDEiIHk9IjguNzkiLz48L2c+PC9nPjwvc3ZnPg==) !important; +} +.theme-dark .cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task="!"] { + background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiNmZmRjNTEiPjxnPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjwvZz48Zz48Zy8+PGc+PHBhdGggZD0iTTEyLDNjLTAuNDYsMC0wLjkzLDAuMDQtMS40LDAuMTRDNy44NCwzLjY3LDUuNjQsNS45LDUuMTIsOC42NmMtMC40OCwyLjYxLDAuNDgsNS4wMSwyLjIyLDYuNTYgQzcuNzcsMTUuNiw4LDE2LjEzLDgsMTYuNjlWMTljMCwxLjEsMC45LDIsMiwyaDAuMjhjMC4zNSwwLjYsMC45OCwxLDEuNzIsMXMxLjM4LTAuNCwxLjcyLTFIMTRjMS4xLDAsMi0wLjksMi0ydi0yLjMxIGMwLTAuNTUsMC4yMi0xLjA5LDAuNjQtMS40NkMxOC4wOSwxMy45NSwxOSwxMi4wOCwxOSwxMEMxOSw2LjEzLDE1Ljg3LDMsMTIsM3ogTTE0LDE3aC00di0xaDRWMTd6IE0xMCwxOXYtMWg0djFIMTB6IE0xNS4zMSwxMy43NGMtMC4wOSwwLjA4LTAuMTYsMC4xOC0wLjI0LDAuMjZIOC45MmMtMC4wOC0wLjA5LTAuMTUtMC4xOS0wLjI0LTAuMjdjLTEuMzItMS4xOC0xLjkxLTIuOTQtMS41OS00LjcgYzAuMzYtMS45NCwxLjk2LTMuNTUsMy44OS0zLjkzQzExLjMyLDUuMDMsMTEuNjYsNSwxMiw1YzIuNzYsMCw1LDIuMjQsNSw1QzE3LDExLjQzLDE2LjM5LDEyLjc5LDE1LjMxLDEzLjc0eiIvPjwvZz48Zz48cmVjdCBoZWlnaHQ9IjMiIHdpZHRoPSIxIiB4PSIxMS41IiB5PSIxMSIvPjxyZWN0IGhlaWdodD0iMyIgdHJhbnNmb3JtPSJtYXRyaXgoMC43MDcxIC0wLjcwNzEgMC43MDcxIDAuNzA3MSAtNC4wMzEyIDEwLjg1MzYpIiB3aWR0aD0iMSIgeD0iMTAuNTkiIHk9IjguNzkiLz48cmVjdCBoZWlnaHQ9IjMiIHRyYW5zZm9ybT0ibWF0cml4KC0wLjcwNzEgLTAuNzA3MSAwLjcwNzEgLTAuNzA3MSAxNC43Njc4IDI2LjcwMjgpIiB3aWR0aD0iMSIgeD0iMTIuNDEiIHk9IjguNzkiLz48L2c+PC9nPjwvc3ZnPg==) !important; +} +.cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task="!"]::before { + content: ' '; + position: absolute; + padding: 0 0.2em; + margin-left: 0.4em; + border-radius: var(--radius-xs); + background-color: var(--checkbox-color-4); + z-index: -1; +} + +.cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task="?"] { + background-size: 62% !important; + background-position: 55% 80% !important; + background-image: url('data:image/svg+xml;utf8,') !important; +} +.cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task="?"]::before { + content: ' '; + position: absolute; + padding: 0 0.2em; + margin-left: 0.4em; + border-radius: var(--radius-xs); + background-color: var(--checkbox-color-3); + z-index: -1; +} + +.cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task="+"] { + background-size: 65% !important; + background-position: 52% 55% !important; + background-image: url('data:image/svg+xml;utf8,') !important; +} +.cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task="+"]::before { + content: ' '; + position: absolute; + padding: 0 0.2em; + margin-left: 0.4em; + border-radius: var(--radius-xs); + background-color: var(--checkbox-color-5); + z-index: -1; +} + +.cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task="-"] { + background-size: 65% !important; + background-position: 55% 60% !important; + background-image: url('data:image/svg+xml;utf8,') !important; +} +.cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task="-"]::before { + content: ' '; + position: absolute; + padding: 0 0.2em; + margin-left: 0.4em; + border-radius: var(--radius-xs); + background-color: var(--checkbox-color-6); + z-index: -1; +} + +.theme-dark .cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task="<"], +.theme-dark .cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task=">"], +.theme-dark .cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task="!"], +.theme-dark .cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task="?"], +.theme-dark .cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task="+"], +.theme-dark .cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task="-"] { + filter: invert(0) !important; +} + +.theme-dark .cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task="<"]::before, +.theme-dark .cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task=">"]::before, +.theme-dark .cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task="!"]::before, +.theme-dark .cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task="?"]::before, +.theme-dark .cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task="+"]::before, +.theme-dark .cm-formatting.cm-formatting-task.cm-property.hmd-hidden-token[data-task="-"]::before { + filter: invert(0) opacity(0.5) !important; +} + +span.cm-formatting.cm-formatting-highlight.cm-strong.cm-em.cm-highlight.hmd-hidden-token { + padding: 0; +} + +.markdown-source-view.mod-cm5 .CodeMirror-lines .view-content { + background-color: var(--background-transparent-black-or-white-3) !important; +} + +.hide-tokens .cm-s-obsidian pre.HyperMD-hr { + background: unset !important; +} + +.HyperMD-quote.CodeMirror-line .CodeMirror-widget + span.cm-quote::before { + border-left: none; +} + +.vertical-tab-content { + padding-bottom: 4em; +} + +.modal-container .modal-content textarea:not(.rename-textarea) { + height: 18rem !important; +} + +.suggestion-container +{ + background-color: var(--bg-color-settings-4); + backdrop-filter: blur(3px); +} + +/* ================================== */ +/* ============ QuickAdd ============ */ +/* ================================== */ +.quickAddModal .modal { + max-height: 90% !important; +} + +.modal-container.quickAddModal .modal-content { + overflow: initial !important; + margin-top: 5px !important; +} + +/* ================================== */ +/* ========= Style Settings ========= */ +/* ================================== */ +.style-settings-heading { + border-bottom: none !important; +} +.setting-item.setting-item-heading.style-settings-heading[data-level="2"], +.style-settings-container[data-level="2"], +.setting-item.setting-item-heading.style-settings-heading[data-level="3"], +.style-settings-container[data-level="3"], +.setting-item.setting-item-heading.style-settings-heading[data-level="4"], +.style-settings-container[data-level="4"] { + padding-left: 20px; +} + +.setting-item-description, +.setting-item-info { + word-wrap: break-word; + word-break: break-word; +} + +.setting-item.setting-item-heading.style-settings-heading[data-level="1"] .setting-item-name { + color: var(--h2-color) !important; +} +.setting-item.setting-item-heading.style-settings-heading[data-level="2"] .setting-item-name { + color: var(--h3-color)!important; +} +.setting-item.setting-item-heading.style-settings-heading[data-level="3"] .setting-item-name { + color: var(--h4-color) !important; +} +.setting-item.setting-item-heading.style-settings-heading[data-level="4"] .setting-item-name { + color: var(--h5-color) !important; +} +.style-settings-collapse-indicator { + color: var(--theme-color) !important; +} + +.setting-item.setting-item-heading.style-settings-heading.is-collapsed .style-settings-collapse-indicator { + opacity: 0.4; +} + +.style-settings-container { + padding-bottom: 5px !important; +} + +.style-settings-container .setting-item-control select { + max-width: 330px; +} + +.workspace-leaf-content .style-settings-container .setting-item:first-child { + margin-top: 20px; +} + +div.style-settings-heading[data-level="0"] { + position: relative; + padding: 8px; + margin-bottom: 0; + background-color: var(--background-primary); + border-radius: var(--radius-l); + box-shadow: 0 3px 5px var(--background-modifier-box-shadow); +} + +.is-mobile div.style-settings-heading[data-level="0"] { + padding: 4px; +} + +div.style-settings-heading[data-level="0"] + .style-settings-container { + padding: 20px 30px; + margin-top: -10px; + margin-bottom: 0; + margin-left: 0; + border: 0px; + border-radius: var(--radius-l); +} + +div.style-settings-heading[data-level="0"] + .style-settings-container .style-settings-collapse-indicator { + margin-left: 0; +} + + +div.style-settings-heading[data-level="0"].is-collapsed { + margin-bottom: 15px; + border-radius: var(--radius-l); + box-shadow: 0 3px 5px var( --background-modifier-box-shadow); +} + +div.style-settings-heading[data-level="0"].is-collapsed { + background-color: var(--background-primary-alt); +} + + +div.style-settings-heading[data-level="1"] .setting-item-description { + padding-left: 2em; +} + +div.style-settings-heading:not([data-level="0"]):not([data-level="1"]) .setting-item-description { + padding-left: 2em; +} + +div.style-settings-heading { + padding: 8px 0; + margin-bottom: 5px; +} + +div.style-settings-container[data-level="0"] { + margin-left: 4px; +} + +div.style-settings-container[data-level] { + padding-bottom: 0; + margin-left: 0.5em; +} + +.setting-item.setting-item-heading.style-settings-heading .setting-item-name { + width: fit-content; + padding: 0 8px; + border-radius: var(--radius-l); +} + +.setting-item.setting-item-heading.style-settings-heading:hover .style-settings-collapse-indicator { + color: var(--text-accent-hover)!important; +} + +.setting-item.setting-item-heading.style-settings-heading:hover .setting-item-name { + color: var(--text-accent-hover)!important; +} + +div.workspace-leaf-content[data-type="style-settings"] .view-content .style-settings-container div.setting-item:not(.setting-item-heading) { + flex-flow: wrap; +} + +div.workspace-leaf-content[data-type="style-settings"] .setting-item-description { + font-size:12px; +} + +div.workspace-leaf-content[data-type="style-settings"] div.setting-item, +div.workspace-leaf-content[data-type="style-settings"] div.style-settings-heading { + border-bottom: unset; + border-top: 1px inset #ffffff24; +} + + +/* +.theme-light div.setting-item { + border-bottom: 1px dotted #e1e1e199; + border-top: 1.5px solid #cfcfcf42; + +} + + +.theme-dark div.setting-item { + border-bottom: 1px solid var(--background-modifier-border); + box-shadow: inset 0 -1px 0 rgb(0 0 0 / 45%), + inset 0 -2px 0 rgb(0 0 0 / 10%) +} +*/ + + +div.workspace-leaf-content[data-type="style-settings"] div.style-settings-heading[data-id="topaz-community"] { + margin-top: 10px; + margin-bottom: 0; + pointer-events: none; + cursor: text; + border-top: 2px solid var(--background-modifier-border); + pointer-events: none; +} + +.style-settings-heading[data-id="topaz-community"] .setting-item-control, +.style-settings-heading[data-id="topaz-community"] .style-settings-collapse-indicator { + display: none; +} + +.style-settings-heading[data-id="topaz-community"] .setting-item-name::before { + display: inline-block; + width: 20px; + height: fit-content; + padding-right: 8px; + font-family: "Segoe UI Emoji", "Apple Color Emoji", sans-serif; + font-weight: initial; + color: unset; + content: "❤️"; +} + +.setting-item.style-settings-heading[data-id="topaz-github"] { + cursor: default; +} + +.setting-item.style-settings-heading[data-id="topaz-github"]:hover div.setting-item-name { + color: var(--text-normal); +} + +.setting-item.style-settings-heading[data-id="topaz-github"] .setting-item-name::before { + display: inline-block; + width: 20px; + height: fit-content; + padding-right: 8px; + font-family: "Segoe UI Emoji", "Apple Color Emoji", sans-serif; + font-weight: initial; + color: unset; + content: "⭐"; +} + +.setting-item.style-settings-heading[data-id="topaz-github"] .setting-item-description { + color: var(--interactive-accent); + cursor: text; + user-select: all; +} + +.setting-item.style-settings-heading[data-id="topaz-example-github"] { + cursor: default; +} + +.setting-item.style-settings-heading[data-id="topaz-example-github"]:hover div.setting-item-name { + color: var(--text-normal); +} + +.setting-item.style-settings-heading[data-id="topaz-example-github"] .setting-item-name::before { + display: inline-block; + width: 20px; + height: fit-content; + padding-right: 8px; + font-family: "Segoe UI Emoji", "Apple Color Emoji", sans-serif; + font-weight: initial; + color: unset; + content: "⚠️"; +} + +.setting-item.style-settings-heading[data-id="topaz-example-github"] .setting-item-description { + color: var(--interactive-accent); + cursor: text; + user-select: all; +} + +.style-settings-container .setting-item:is([data-id*="interactive-accent"], [data-id*="text-accent"]) .setting-item-control::before { + width: 1.5em; + height: 1.5em; + margin-right: 8px; + content: " "; + border: 1px solid var(--background-modifier-border); + border-radius: var(--radius-l); +} + + +.style-settings-container .setting-item:is([data-id^="interactive-accent"]) .setting-item-control::before { + background-color: var(--interactive-accent); +} +.style-settings-container .setting-item:is([data-id^="text-accent"]) .setting-item-control::before { + background-color: var(--text-accent); +} +/**style setting logic ******/ +body:not(.color-scheme-options-lillimon-topaz) .setting-item[data-id="color-magic"], +body:not(.background-settings-workplace-background-image) .setting-item[data-id="background-settings-workplace-background-image"] ~ * { + display: none; +} +body:not(.background-image-settings-switch) .setting-item[data-id="bg-markdown-page-opacity-cp"], +body:not(.background-image-settings-switch) .setting-item[data-id="toggle-nonoverlapping-bg"], +body:not(.background-image-settings-switch) .setting-item[data-id="background-image-settings-markdown-page-options"], +body:not(.background-image-settings-switch) .setting-item[data-id="background-image-settings-markdown-page-random"], +body:not(.background-image-settings-switch) .setting-item[data-id="background-image-settings-markdown-page-random-options"] { + display: none; +} + +body:not(.background-notebook-liked-switch) .setting-item[data-id="background-notebook-liked-switch"] ~ * { + display: none; +} + +body:not([class*="background-settings-workplace-wave"]) .setting-item[data-id="background-waves-color"], +body:not(.background-settings-workplace-theme-light-custom-option) .setting-item[data-id="background-settings-workplace-theme-light-custom"], +body:not(.background-settings-workplace-theme-dark-custom-option) .setting-item[data-id="background-settings-workplace-theme-dark-custom"], +body:not(.background-settings-workplace-random-dark) .setting-item[data-id="background-settings-workplace-random"], +body:not(.background-settings-workplace-random-light) .setting-item[data-id="background-settings-workplace-random"] { + display: none; +} + +.setting-item:is([data-id="background-image-settings-switch"],[data-id="background-notebook-liked-switch"],[data-id="background-settings-workplace-background-image"],[data-id="background-image-settings-command-palette-switch"]) .setting-item-name { + font-weight: bold; +} +body:not(.background-image-settings-markdown-page-custom) .setting-item[data-id="custom-markdown-page-background-color"], +body:not(.background-image-settings-markdown-page-custom) .setting-item[data-id="background-markdown-page-theme-light-custom"], +body:not(.background-image-settings-markdown-page-custom) .setting-item[data-id="background-markdown-page-theme-dark-custom"] { + display: none; +} + + +body:not(.background-image-settings-markdown-page-random) .setting-item[data-id="background-image-settings-markdown-page-random-options"] { + display: none; +} +.setting-item[data-id="notebook-liked-background-settings"] + .style-settings-container .setting-item:not(:first-child) { + /* display: none; */ +} +body:is(.notebook-liked-markdown-page-grid-notebook-1,.notebook-liked-markdown-page-grid-notebook-2, +.notebook-liked-markdown-page-dotted-notebook-1,.notebook-liked-markdown-page-dotted-notebook-2) .setting-item[data-id="bg-color-notebook"], +body.notebook-liked-markdown-page-grid-notebook-1 .setting-item[data-id="grid-notebook-line-color-1"], +body.notebook-liked-markdown-page-grid-notebook-2 .setting-item[data-id="grid-notebook-line-color-2"], +body:is(.notebook-liked-markdown-page-dotted-notebook-1,.notebook-liked-markdown-page-dotted-notebook-2) .setting-item[data-id="dotted-notebook-dot-color"] { + display: block !important; +} +body:not(.background-image-settings-command-palette-switch) .setting-item[data-id="background-image-settings-command-palette-switch"] ~ *, +body:not(.background-image-settings-command-palette-custom) .setting-item[data-id="background-command-palette-theme-light-custom"], +body:not(.background-image-settings-command-palette-custom) .setting-item[data-id="background-command-palette-theme-dark-custom"] { + display: none; +} +body:not(.toggle-bg-panel-page) .setting-item[data-id="toggle-bg-panel-page"] ~ *, +body:not(.panel-page-bg-theme-light-custom) .setting-item[data-id="background-panel-page-theme-light-custom"], +body:not(.panel-page-bg-theme-dark-custom) .setting-item[data-id="background-panel-page-theme-dark-custom"] { + display: none; +} + +body:not(.fancy-hr-icon) .setting-item[data-id="fancy-hr-folder-icon"], +body:not(.fancy-hr-no-icon) .setting-item[data-id="fancy-hr-folder-no-icon"], +body:not(.fancy-hr-number) .setting-item[data-id="fancy-hr-folder-with-number"] { + display: none; +} + +body:not(.bt-default-unordered-list) .setting-item[data-id="options-bt-default"], +body:not(.custom-unordered-list) .setting-item[data-id="options-for-custom"] { + display: none; +} + +body:not(.custom-ordered-list) .setting-item[data-id^="list-ol-marker-"] { + display: none; +} +body.folder-style-change-options-colorful-default .setting-item[data-id="folder-style-change-options-colorful-subfolder"] { + display: none; +} + +body:not(.folder-colorful-custom) .setting-item[data-id="folder-colorful-custom-color"] { + display: none; +} + +body:not(.loading-custom-text) .setting-item[data-id="loading-custom-text-folder"], +body:not(.loading-animation-custom) .setting-item[data-id="loading-animation-custom-folder"] { + display: none; +} + +body:not(.colorful-tag-bt) .setting-item[data-id="customised-colorful-tag"], +body:not(.tag-pill-outlined) .setting-item[data-id="outlined-style"] { + display: none; +} + + +body.is-hidden-frameless .setting-item:is([data-id="simple-titlebar"],[data-id="custom-titlebar-bg"],[data-id="titlebar-blur-depth"],[data-id="titlebar-brightness"],[data-id="hide-titlebar-text"]) { + display: none; +} + +body:not(.is-hidden-frameless) .setting-item:is([data-id="hide-titlebar-close-btn"]) { + display: none; +} + +body:not(.color-scheme-options-simplicity-topaz) .setting-item:is([data-id="disable-auto-hide-header"]) { + display: none; +} + +body:not(.bt-colorful-titlebar) .setting-item[data-id="background-titlebar-inner"] { + display: none; +} + +/********/ +/* ================================== */ +/* ==== advanced-tables-toolbar ===== */ +/* ================================== */ +.workspace-leaf-content[data-type="advanced-tables-toolbar"] .nav-buttons-container>.nav-action-button { + padding: 5px; +} + +.workspace-leaf-content[data-type="advanced-tables-toolbar"] .nav-buttons-container>.nav-action-button svg { + height: 20px; + width: 20px; +} + +/* ================================== */ +/* =========== RTL support ========= */ +/* ================================== */ +:is(.markdown-preview-view,.markdown-rendered).rtl blockquote { + border-right-width: 7px; + border-left-width: 0; +} + +:is(.markdown-preview-view,.markdown-rendered).rtl ul >li:not(.task-list-item) { + border-left: none; + border-right: 0.125em solid var(--list-ul-block-color); +} + +:is(.markdown-preview-view,.markdown-rendered).rtl ol:not(.contains-task-list)>li:not(.task-list-item) { + border-right: 0.125em solid var(--list-ol-block-color); + border-left: none; +} + +.markdown-preview-view.rtl:not(.kanban) ul>li:not(.task-list-item), +.markdown-preview-view.rtl ol:not(.contains-task-list)>li:not(.task-list-item) { + padding-right: 0.25em; +} + +:is(.markdown-preview-view,.markdown-rendered).rtl h1:hover::before { + margin-right: -24px; +} + +:is(.markdown-preview-view,.markdown-rendered).rtl h2:hover::before, +:is(.markdown-preview-view,.markdown-rendered).rtl h3:hover::before, +:is(.markdown-preview-view,.markdown-rendered).rtl h4:hover::before, +:is(.markdown-preview-view,.markdown-rendered).rtl h5:hover::before, +:is(.markdown-preview-view,.markdown-rendered).rtl h6:hover::before { + margin-right: -25px; +} + +body:not(.default-icons) :is(.markdown-preview-view,.markdown-rendered).rtl div.heading-collapse-indicator.collapse-indicator { + position: absolute; + right: -33px; + padding-left: 0; + transition: transform 20ms linear 0s; +} + +body:not(.default-icons) :is(.markdown-preview-view,.markdown-rendered).rtl h1 div.heading-collapse-indicator.collapse-indicator, +body:not(.default-icons) :is(.markdown-preview-view,.markdown-rendered).rtl h2 div.heading-collapse-indicator.collapse-indicator { + position: absolute; + right: -32px; + padding-left: 0; + margin-top: 11px; + transition: transform 20ms linear 0s; +} + +body:not(.default-icons) :is(.markdown-preview-view,.markdown-rendered).rtl div.is-collapsed h1 div.heading-collapse-indicator.collapse-indicator, +body:not(.default-icons) :is(.markdown-preview-view,.markdown-rendered).rtl div.is-collapsed h2 div.heading-collapse-indicator.collapse-indicator { + transform: translateX(-9px) translateY(18px) rotate(90deg); + opacity: 0.5; +} + +body:not(.default-icons) :is(.markdown-preview-view,.markdown-rendered).rtl div.is-collapsed div.heading-collapse-indicator.collapse-indicator { + transform: translateX(-2px) translateY(25px) rotate(90deg); + opacity: 0.5; +} + +body:not(.default-icons) :is(.markdown-preview-view,.markdown-rendered).rtl .list-collapse-indicator.collapse-indicator.collapse-icon::before { + right: 0; +} + +body:not(.default-icons) :is(.markdown-preview-view,.markdown-rendered).rtl div>ul>li>.list-collapse-indicator.collapse-indicator.collapse-icon::before, +body:not(.default-icons) :is(.markdown-preview-view,.markdown-rendered).rtl div>ol>li>.list-collapse-indicator.collapse-indicator.collapse-icon::before { + margin-right: 48px; +} + +body:not(.default-icons) :is(.markdown-preview-view,.markdown-rendered).rtl li.is-collapsed div.list-collapse-indicator.collapse-indicator.collapse-icon::before { + transform: rotate(90deg); +} + +.markdown-source-view.mod-cm6.is-live-preview.is-rtl .HyperMD-quote { + border: 0 solid var(--theme-color); + border-right-width: 5px; +} + +.CodeMirror-code.CodeMirror-rtl span.cm-quote::before { + content: ""; + border-right: 7px solid var(--theme-color); + border-radius: 0; /*5px 0 0 5px;*/ + height: 100%; + border-left: none !important; + margin-right: -11px; + position: absolute; +} + +.markdown-source-view.mod-cm6.is-rtl .HyperMD-list-line:not([class*="quote"]) .cm-indent::before { + margin-right: 0.3rem; +} + +.CodeMirror-code.CodeMirror-rtl span.cm-formatting-quote + *::before, +.CodeMirror-code.CodeMirror-rtl span.cm-formatting-quote + span.cm-hmd-indent-in-quote + span.cm-quote:not(.cm-formatting-quote)::before, +.CodeMirror-code.CodeMirror-rtl span.cm-inline-code + *::before, +.CodeMirror-code.CodeMirror-rtl span.cm-highlight + *::before, +.CodeMirror-code.CodeMirror-rtl span.cm-quote + *::before, +.CodeMirror-code.CodeMirror-rtl span.cm-hmd-html-end + *::before { + border-right: none; +} + +.CodeMirror-code.CodeMirror-rtl *:not(font)>em>strong, +.CodeMirror-code.CodeMirror-rtl *:not(font)>strong>em, +.CodeMirror-code.CodeMirror-rtl .cm-strong.cm-em { + padding-right: 0 !important; +} + +/* ================================== */ +/* ============ CardBoard =========== */ +/* ================================== */ +.card-board input[type="checkbox"] { + box-sizing: border-box !important; + border: 2px solid var(--background-modifier-border) !important; + width: 1.2em !important; + height: 1.2em !important; + margin: 0.2em 0.5em 0em 0; + filter: hue-rotate(var(--theme-color)); +} + +.card-board input[type="checkbox"]:checked { + background-position: center; + background-size: 120%; + background-repeat: no-repeat; + background-image: url('data:image/svg+xml; utf8, '); +} + +.card-board input[type="checkbox"]:checked { + border: none !important; +} + +.card-board input[type="checkbox"]:checked::before, +.card-board input[type="checkbox"]:hover::before { + display: none; +} + +/* ================================== */ +/* ============ Outliner ============ */ +/* ================================== */ +body:not(.outliner-plugin-bls).markdown-source-view.mod-cm5 .cm-hmd-list-indent { + position: initial !important; +} + +.outliner-plugin-bls .cm-hmd-list-indent .cm-tab::before { + display: none; +} + +.outliner-plugin-bls .cm-s-obsidian.is-live-preview .list-bullet:before { + display: none; +} +.outliner-plugin-bls .CodeMirror-line .cm-hmd-list-indent::before { + left: -0.2em !important; + right: -0.4em; + background-size: 1.6ch 1px !important; +} +.outliner-plugin-bls .cm-line .cm-hmd-list-indent::before { + right: -0.4em; + background-size: 1.45ch 1px !important; +} + + +/* ================================== */ +/* ==============Better Code Block ============= */ +/* ================================== */ +pre.code-block-pre__has-linenum { + padding: 0; + min-height: unset; +} +div.code-block-wrap > pre pre:not([closed]) + code[class*=language-] { + padding-bottom: 1em !important; +} + +.obsidian-embedded-code-title__code-block-title > .title { + line-height: 29px; + font-weight: bold; + font-size: var(--callout-title-size); + font-family: var(--font-text); +} +.markdown-rendered pre.obsidian-embedded-code-title__code-block-title[closed] { + background-color: rgba(var(--interactive-accent-rgb), 0.1) !important; +} +.markdown-rendered pre.obsidian-embedded-code-title__code-block-title { + overflow-y: hidden; + background-color: transparent !important; +} + +.obsidian-embedded-code-title__code-block-title:not([closed]) .langName { + opacity: 0.35; + font-size: 12px; +} +.obsidian-embedded-code-title__code-block-title .langName { + color: var(--code-language); +} +.obsidian-embedded-code-title__code-block-title .collapser .handle { + margin-top: -3px; +} +.obsidian-embedded-code-title__code-block-title[closed] .langName { + opacity: 0.75; + font-size: 12px; +} +.obsidian-embedded-code-title__code-block-title .collapser .handle { + opacity: 0.35; +} +pre.code-block-pre__has-linenum::before { + display: none; +} +.code-block-linenum-wrap { + opacity: 0.5; + border-right-color:rgba(var(--mono-rgb-100), 0.5) !important; +} + +.markdown-rendered .code-block-pre__has-linenum button.copy-code-button:not([style="right: 32pt"]) { + background-image: url("data:image/svg+xml,%3Csvg t='1667575665955' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='5542' width='32' height='32'%3E%3Cpath d='M568.7 319.8l86.8 86.8v476.6h-466V319.8h379.2m29-70H178.9c-32.8 0-59.4 26.5-59.4 59.3v584.7c0 15.7 6.3 30.8 17.4 42 11.1 11.2 26.2 17.4 42 17.4h487.4c15.7 0 30.8-6.3 41.9-17.4 11.1-11.1 17.3-26.2 17.3-42V377.6L597.7 249.8z' fill='%2391B1D5' p-id='5543'%3E%3C/path%3E%3Cpath d='M776.7 70.8H357.9c-32.8 0-59.4 26.5-59.4 59.3v100h70v-89.3h379.2l86.8 86.8v476.6h-85.8v70h96.6c15.7 0 30.8-6.3 41.9-17.4 11.1-11.1 17.3-26.2 17.3-42V198.6L776.7 70.8z' fill='%2391B1D5' p-id='5544'%3E%3C/path%3E%3C/svg%3E"); +} +.code-block-pre__has-linenum button.copy-code-button:hover { + background-color: none; + box-shadow: var(--window-shadow); +} +/* ================================== */ +/* ============== Make.md ============= */ +/* ================================== */ +body.mk-mark-sans #calendar-container { + margin: -10px -8px 0px -8px; +} + +/* ================================== */ +/* ============== Memos ============= */ +/* ================================== */ +div[data-type="memos_view"] .memo-editor-wrapper > .memo-editor textarea { + max-height: calc(65vh)!important; +} +div[data-type="memos_view"] .memo-editor-wrapper > .memo-editor { + background-color: transparent !important; +} +div[data-type="memos_view"] .memo-editor-wrapper, +div[data-type="memos_view"] .memo-wrapper { + background-color: var(--background-primary) !important; +} +div[data-type="memos_view"] .memo-editor-wrapper, +div[data-type="memos_view"] .search-bar-container > .search-bar-inputer { + border: 2px solid var(--background-black-or-white-1) !important; + background-color: transparent !important; +} + +div[data-type="memos_view"] .queries-wrapper > .create-query-btn-container > .btn { + border-color: var(--text-muted) !important; +} + +div[data-type="memos_view"] { + color: var(--text-muted) !important; +} + +div[data-type="memos_view"] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .confirm-btn { + background-color: var(--theme-color) !important; +} + +div[data-type="memos_view"] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .confirm-btn:disabled { + opacity: 0.8 !important; +} + +div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-heat-map > .stat-container:not([class*="bg"]):not([class*=null]) { + background-color: var(--background-transparent-black-or-white-4) !important; +} + +div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.today { + border-color: var(--theme-color) !important; +} + +div[data-type="memos_view"] .tags-wrapper > .tags-container > .tag-tip-container > .code-text { + padding: 4px 2px 4px 4px !important; + margin: 0 3px !important; + font-weight: bold; +} + +div[data-type='memos_view'] .tags-wrapper > .title-text, +[data-type='memos_view'] .queries-wrapper > .title-text > * { + color: var(--text-normal) !important; + opacity: 0.7 !important; +} +.mod-left-split div[data-type="memos_view"] #page-wrapper, +.mod-right-split div[data-type="memos_view"] #page-wrapper { + padding-left: 8px; + padding-right: 8px; + transform: translateX(0); +} +.mod-left-split div[data-type="memos_view"] #page-wrapper textarea, +.mod-right-split div[data-type="memos_view"] #page-wrapper textarea{ + padding: 0; + max-height: calc(28vh); +} +div[data-type="memos_view"] #page-wrapper .memo-comment-inputer textarea, +div[data-type="memos_view"] #page-wrapper .memo-comment-inputer textarea{ + padding: 8px; +} +.mod-left-split div[data-type="memos_view"] #page-wrapper > .content-wrapper-padding-fix, +.mod-right-split div[data-type="memos_view"] #page-wrapper > .content-wrapper-padding-fix { + width: 100%; + padding: 0; +} +.mod-left-split div[data-type="memos_view"] .view-content, +.mod-right-split div[data-type="memos_view"] .view-content { + padding: 0; +} +.mod-left-split div[data-type="memos_view"] .view-content .title-text span, +.mod-right-split div[data-type="memos_view"] .view-content .title-text span { + font-size: var(--editor-font-size); +} +.mod-left-split div[data-type="memos_view"] .memo-editor-wrapper, +div[data-type="memos_view"] .search-bar-container > .search-bar-inputer, +.mod-right-split div[data-type="memos_view"] .memo-editor-wrapper, +div[data-type="memos_view"] .search-bar-container > .search-bar-inputer { + border: 0 !important; +} +.mod-left-split div[data-type="memos_view"] .memo-editor-wrapper, div[data-type="memos_view"] .search-bar-container > .search-bar-inputer input, +.mod-right-split div[data-type="memos_view"] .memo-editor-wrapper, div[data-type="memos_view"] .search-bar-container > .search-bar-inputer input { + border: none; + border-bottom: 1px solid #ccc; + border-radius: 0; +} +div.mod-right-split div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper, +div.mod-left-split div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper { + width:100%; +} + +.mobile-view .memos-sidebar-wrapper, +div[data-type='memos_view'].mobile-view .tags-wrapper { + left: -1.1em !important; +} + +div[data-type='memos_view'] .common-editor-wrapper > .common-editor-inputer { + z-index: 0 !important; +} + +body div[data-type='memos_view'] #page-wrapper .usage-heat-map-wrapper > .day-tip-text-container > .tip-text { + white-space: nowrap; +} + +body.is-popout-window div[data-type='memos_view'] #page-wrapper .menu-popup-btn:hover +.menu-btns-popup.hidden { + display:flex !important; + margin-top: 50%; +} + +body.is-popout-window div[data-type='memos_view'] #page-wrapper .menu-popup-btn +.menu-btns-popup.hidden:hover { + display:flex !important; + margin-top: 50%; +} +body.is-popout-window.theme-dark div[data-type='memos_view'] .view-actions svg { + fill:none; +} + +.theme-light div[data-type='memos_view'] .view-actions a { + color: unset; +} + +body.is-popout-window .memos-sidebar-wrapper:hover { + transform: translateX(0); + box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.2); +} + +body.is-popout-window .memos-sidebar-wrapper { + display: flex; + flex-direction: column; + justify-content: flex-start; + align-items: center; + z-index: 99; + position: absolute; + top: 0; + left: 0; + width: 320px; + height: 100%; + padding: 0; + background-color: var(--background-secondary); + transition: all 1.2s ease-in-out; + transform: translateX(-320px); +} +body.is-popout-window div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn { + display: none!important; +} + +@media only screen and (max-width: 875px) { + body.is-popout-window .memos-sidebar-wrapper > * { + width: 320px; + max-width: 95%; + flex-shrink: 0; + padding-left: 32px; + } + + body.is-popout-window div[data-type='memos_view'] .memo-editor-wrapper { + box-shadow: + 0px 2.3px 4.4px -12px rgba(0, 0, 0, 0.14), + 0px 7.8px 14.8px -12px rgba(0, 0, 0, 0.083), + 0px 35px 63px -12px rgba(0, 0, 0, 0.057); + width: calc(100% - 10px); + margin: auto; + } + + body.is-popout-window div[data-type='memos_view'] .search-bar-container { + width: 120px; + } + body.is-popout-window div[data-type='memos_view'] .search-bar-container > .search-bar-inputer { + display: flex; + flex-direction: row; + justify-content: flex-start; + align-items: center; + background-color: #fcfcfc; + height: 40px; + padding: 4px 16px; + border-radius: 8px; + width: 120%; + margin-left: -35px; + } + body.is-popout-window div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper { + display: none; + position: absolute; + top: 42px; + right: -2px; + z-index: 12; + padding-right: 20px; + padding-left: 8px; + padding-top: 8px; + padding-bottom: 8px; + width: 320px; + } + + body.is-popout-window div[data-type='memos_view'] .section-header-container, + body.is-popout-window div[data-type='memos_view'] .memos-header-container { + height: auto; + margin-top: 4px; + margin-bottom: 0; + padding: 0 12px; + padding-bottom: 8px; + } + body.is-popout-window div[data-type='memos_view'] .section-header-container > .title-text > .action-btn, + body.is-popout-window div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + width: 60px; + height: 24px; + margin-right: -8px; + margin-left: -20px; + flex-shrink: 0; + background-color: unset; + } + + /***/ + body.is-popout-window div[data-type="memos_view"] #page-wrapper { + padding-left: 8px; + padding-right: 8px; + transform: translateX(0); + } + + body.is-popout-window div[data-type="memos_view"] .view-content { + padding-top: 0; + padding-right: 0; + } + + body.is-popout-window div[data-type='memos_view'] #page-wrapper > .content-wrapper { + width:auto; + } + body:not(.is-mobile) div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map { + width: 192px; + } + body:not(.is-mobile) div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map > .stat-container { + width: 13px; + height: 13px; + margin-bottom: 2px; + } +} + + +/**memos 输入框移到下方***/ +body.memos-inputbox div[data-type='memos_view']:not(.mobile-view) #page-wrapper .memo-editor-wrapper { + bottom: 0; + margin-bottom: -145px; + position: absolute; + padding:8px; +} +body.memos-inputbox div[data-type='memos_view']:not(.mobile-view) .memolist-wrapper.completed { + padding-bottom: 40px; +} +body.memos-inputbox div[data-type='memos_view']:not(.mobile-view) #page-wrapper > .content-wrapper { + height: calc(100% - 150px); +} + +body.memos-inputbox div[data-type='memos_view']:not(.mobile-view) .memolist-wrapper { + flex-direction: column-reverse; +} + + +body:is(.grass-light.theme-light,.grass-dark.theme-dark) { + --stat-day-L1: #9be9a8; + --stat-day-L2: #40c463; + --stat-day-L3: #30a14e; + --stat-day-L4: #216e39; +} +body:is(.frame-light.theme-light,.frame-dark.theme-dark) { + --stat-day-L1: #f75205; + --stat-day-L2: #e03a07; + --stat-day-L3: #bf2104; + --stat-day-L4: #940b01; +} +body:is(.olive-light.theme-light,.olive-dark.theme-dark) { + --stat-day-L1: #9cc069; + --stat-day-L2: #78a851; + --stat-day-L3: #648b3f; + --stat-day-L4: #4f6e30; +} +body:is(.ice-light.theme-light,.ice-dark.theme-dark) { + --stat-day-L1: #82bbf0; + --stat-day-L2: #5da2eb; + --stat-day-L3: #3889e6; + --stat-day-L4: #126fe0; +} +body:is(.magenta-light.theme-light,.magenta-dark.theme-dark) { + --stat-day-L1: #fa9fb5; + --stat-day-L2: #ea4e9c; + --stat-day-L3: #ae017e; + --stat-day-L4: #610070; +} + +.theme-dark, +.theme-light { + --stat-day-L1: hsla(var(--interactive-accent-hsl),0.35); + --stat-day-L2: hsla(var(--interactive-accent-hsl),0.6); + --stat-day-L3: hsla(var(--interactive-accent-hsl),0.8); + --stat-day-L4: hsla(var(--interactive-accent-hsl),1); +} + +div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.stat-day-L1-bg { + background-color: var(--stat-day-L1) !important; +} +div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.stat-day-L2-bg { + background-color: var(--stat-day-L2) !important; +} +div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.stat-day-L3-bg { + background-color: var(--stat-day-L3) !important; +} +div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.stat-day-L4-bg { + background-color: var(--stat-day-L4) !important; +} +/* ==============Commander================ */ + +.cmdr.titlebar-button{ + float: left; + left: 100px; +} + +/* =============recent files=============== */ + +/**recent file **/ +body.remove-file-icons .workspace-leaf-content[data-type="recent-files"] .view-content { + padding: unset; +} + +body.remove-file-icons:not(.remove-arrow) .nav-folder.mod-root>.nav-folder-children>.nav-file { + padding-left: 16px; +} +body.remove-file-icons.remove-arrow .nav-folder.mod-root { + padding-left: 4px; +} +.workspace-leaf-content[data-type="recent-files"] .view-content { + padding: 3px 0 3px 3px; +} +.workspace-leaf-content[data-type="recent-files"] .nav-folder.mod-root { + height: fit-content; +} + +/**end recent file **/ +/* =============Db folder=============== */ + +/**db folder*/ +.database-plugin__cell_size_normal div.dataview-error-box { + min-height:auto; +} +.database-plugin__cell_size_normal .database-plugin__tr .data-input { + padding: 0; + flex: 0; + font-size: 0.9em; +} +.database-plugin__cell_size_normal .database-plugin__tr .data-input .markdown-preview-view { + padding:0px; + +} +.database-plugin__cell_size_normal .database-plugin__tr .database-plugin__td .database-plugin__md_cell { + padding: 0; +} +.database-plugin__cell_size_normal .data-input > * +{ + align-items: center; +} +.database-plugin__cell_size_normal .data-input > div +{ + display: flex;; + align-items: center; +} + +.data-input.database-plugin__calendar { + flex: 0; + cursor: pointer; +} + +div.react-datepicker-wrapper { + flex: 0; +} +.data-input.text-align-right { + flex: 0; +} +.database-plugin__td :is(.cell-padding, .data-input):empty::before { + content: "✏️"; + text-align: center; + color: hsla(var(--interactive-accent-hsl),0.8); + pointer-events: none; +} +.database-plugin__markdown-preview-view { + padding: 0; +} +.database-plugin__markdown-preview-view p{ + margin-block-start: 0; + margin-block-end: 0; +} +.database-plugin__tr .database-plugin__td { + background-color: transparent; +} +.database-plugin__tr .database-plugin__td .data-input { + background-color: transparent; +} +.database-plugin__table .database-plugin__tr:nth-child(odd) { + background-color: var(--table-background-color-odd); +} + +.database-plugin__td input[type="checkbox"] { + border: 1px dashed currentColor; +} +.database-plugin__td input[type="checkbox"]:checked { + border: none; +} +.database-plugin__td .database-plugin__checkbox input[type="checkbox"]:checked::before { + transform: scale(0); +} + + +/* =============folder tree===================== */ + +.oz-folders-tree-wrapper .oz-folder-contents { + border-left: 1px solid var(--background-modifier-border); +} +.oz-folders-tree-wrapper .file-tree-header-fixed { + background-color: transparent; +} +body.hide-titlebar-close-btn.hide-left-ribbon-retention-drawer .file-tree-plugin-view .oz-nav-action-button { + margin-left: 20px!important; +} +.file-tree-plugin-view .oz-flex-container { + margin-top: -6px; +} +.file-tree-plugin-view .oz-folders-tree-wrapper{ + margin-top: -8px; +} +/* ================================== */ +/* ============== webpage export html ============= */ +/* ================================== */ + +.webpage-container { + --banner-height:300px; + --banner-internal-embed-height:200px; + --banner-preview-embed-height:120px; + } + +body.color-scheme-options-simplicity-topaz.theme-dark.background-settings-workplace-background-image .webpage-container::before { + filter: blur(var(--blur-depth)) brightness(calc(var(--brightness-4-bg) - 0.5)) saturate(var(--saturate-4-bg)); +} +body.background-settings-workplace-background-image.theme-light .webpage-container::before, +body.background-settings-workplace-background-image.theme-dark .webpage-container::before { + background-image: var(--theme-background); + background-size: cover; + filter: blur(var(--blur-depth)) brightness(var(--brightness-4-bg)) saturate(var(--saturate-4-bg)); +} +body.background-settings-workplace-background-image.background-settings-workplace-waves2-light.theme-light .webpage-container::before, +body.background-settings-workplace-background-image.background-settings-workplace-waves2.theme-dark .webpage-container:before { + content: ""; + position: fixed; + height: auto; + width: 300%; + top: 75%; + left: -25%; + background-image: unset; + -webkit-mask-image: var(--theme-background); + background-size: 100% 100%; + opacity: 0.7; + filter: blur(var(--blur-depth)) brightness(var(--brightness-4-bg)) saturate(var(--saturate-4-bg)); + background-color: var(--wave2-background-color); +} +body.background-settings-workplace-background-image .webpage-container::before { + content: ''; + display: block; + position: absolute; + top: -37px; + right: -15px; + bottom: 0; + left: -15px; +} + +body.background-settings-workplace-background-image.background-settings-workplace-waves-light.theme-light .webpage-container::before, +body.background-settings-workplace-background-image.background-settings-workplace-waves.theme-dark .webpage-container::before { + content: ""; + position: fixed; + height: auto; + width: 300%; + transform: rotate(180deg); + top: 75%; + left: -25%; + background-image: unset; + -webkit-mask-image: var(--theme-background); + background-size: 100% 100%; + opacity: 0.7; + filter: blur(var(--blur-depth)) brightness(var(--brightness-4-bg)) saturate(var(--saturate-4-bg)); + background-color: var(--wave-background-color); +} + +.document-container :is(.markdown-preview-view,.markdown-rendered),.document-container .markdown-source-view { + background-color: var(--background-primary)!important; +} + +/* ================================== */ +/* ============== quiet-outline ============= */ +/* ================================== */ + +/**quiet outline**/ +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .view-content { + padding: unset; +} +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .n-slider .n-slider-rail { + background-color: var(--background-secondary-alt); + box-shadow: 0 3px 5px var(--background-modifier-box-shadow); +} +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .n-slider .n-slider-rail .n-slider-rail__fill { + background-color: var(--background-modifier-border); +} +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .n-slider .n-slider-dots .n-slider-dot { + background-color: var(--background-primary); + border: 2px solid var(--background-modifier-border); +} +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .n-slider .n-slider-dots .n-slider-dot.n-slider-dot--active { + border: 2px solid var(--interactive-accent); +} + + +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .n-button { + width: 32px; + height: 32px; + background-color: var(--background-secondary-alt); + border: 0px; + border-radius: var(--radius-l); +} +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .n-button .n-button__icon svg { + display: flex; + align-items: center; + justify-content: center; +} +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .n-button .n-button__border, +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .n-button .n-button__state-border { + display: none; +} + +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .quiet-outline .n-tree-node-content__text p { + color:var(--text-normal); +} + + +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .quiet-outline { + padding-top: 10px; + padding-bottom: 28px; + margin-bottom: 5px; + border-radius: var(--radius-l); +} + +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .quiet-outline .function-bar > :first-child { + margin-right: 8px; +} +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .quiet-outline .level-2 .n-tree-node-indent, +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .quiet-outline .level-3 .n-tree-node-indent:first-child, +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .quiet-outline .level-4 .n-tree-node-indent:first-child, +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .quiet-outline .level-5 .n-tree-node-indent:first-child, +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .quiet-outline .level-6 .n-tree-node-indent:first-child { + border-right: 1px solid rgb(var(--accent-1-rgb),0.5) ; +} +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .quiet-outline .level-3 .n-tree-node-indent, +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .quiet-outline .level-4 .n-tree-node-indent:nth-child(2), +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .quiet-outline .level-5 .n-tree-node-indent:nth-child(2), +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .quiet-outline .level-6 .n-tree-node-indent:nth-child(2) { + border-right: 1px solid rgb(var(--accent-2-rgb),0.5) ; +} +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .quiet-outline .level-4 .n-tree-node-indent, +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .quiet-outline .level-5 .n-tree-node-indent:nth-child(3), +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .quiet-outline .level-6 .n-tree-node-indent:nth-child(3) { + border-right: 1px solid rgb(var(--accent-3-rgb),0.5) ; +} +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .quiet-outline .level-5 .n-tree-node-indent, +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .quiet-outline .level-6 .n-tree-node-indent:nth-child(4) { + border-right: 1px solid rgb(var(--accent-4-rgb),0.5) ; +} +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .quiet-outline .level-6 .n-tree-node-indent { + border-right: 1px solid rgb(var(--accent-5-rgb),0.5) ; +} +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .n-tree.n-tree--block-line .n-tree-node:not(.n-tree-node--disabled):hover { + background-color: hsla(var(--interactive-accent-hsl),0.2) +} +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .n-tree.n-tree--block-line .n-tree-node:not(.n-tree-node--disabled):hover p { + color: var(--text-accent-hover); +} + +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .quiet-outline .n-tree-node--selectable.located p { + color: var(--text-accent-hover); +} +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .quiet-outline .n-tree-node--selected p { + color: var(--text-accent-hover); + font-weight: 600; + background-color: hsla(var(--interactive-accent-hsl),0.2) +} + +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .n-input { + height: 32px; + background-color: var(--background-primary); + border-radius: var(--radius-l); +} +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .n-input .n-input__border { + border: 0; +} +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .n-input:not(.n-input--disabled):hover .n-input__state-border, +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .n-input:not(.n-input--disabled).n-input--focus .n-input__state-border { + border: 0; + box-shadow: unset; +} +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .n-input .n-input__placeholder { + display: none; +} +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .n-input .n-input__input input { + caret-color: var(--interactive-accent); +} +body.quiet-outline-optimize .workspace-leaf-content[data-type=quiet-outline] .n-input .n-input__input input::placeholder { + color: var(--text-faint); +} +/* #end quiet outline */ + +/* ============ */ +/*table-generatorn*/ +/* ============ */ + +.table-generator { + animation:0.2s popup forwards; + border-radius:10px; + width: auto!important; + box-shadow: 2px 2px 12px rgba(0, 0, 0, 0.1); +} + +.table-generator-view { + border: none !important; +} +.input-table-generator { + font-size: small; +} +.input-table-generator input { + outline-style: none; + border: 1px solid var(--background-modifier-border)!important; + border-radius: 3px; +} +.table-generator button { + border: 1px solid var(--background-modifier-border)!important; + border-radius: 3px; +} + +/* ============ */ +/*image position*/ +/* ============ */ +img[alt$="left"]:not([class*="emoji"]), +img[alt$="Left"]:not([class*="emoji"]), +img[alt$="LEFT"]:not([class*="emoji"]), +img[alt$="L"]:not([class*="emoji"]), +.markdown-source-view.mod-cm6 img[alt$="left"]:not([class*="emoji"]), +.markdown-source-view.mod-cm6 img[alt$="Left"]:not([class*="emoji"]), +.markdown-source-view.mod-cm6 img[alt$="LEFT"]:not([class*="emoji"]), +.markdown-source-view.mod-cm6 img[alt$="L"]:not([class*="emoji"]), +.internal-embed.image-embed.is-loaded[alt$="left"] img[alt$="left"]:not([class*="emoji"]), +.internal-embed.image-embed.is-loaded[alt$="Left"] img[alt$="Left"]:not([class*="emoji"]), +.internal-embed.image-embed.is-loaded[alt$="LEFT"] img[alt$="LEFT"]:not([class*="emoji"]), +.internal-embed.image-embed.is-loaded[alt$="L"] img[alt$="L"]:not([class*="emoji"]), +body:not(.image-zoom) .view-content img[alt$="left"]:not([class*="emoji"]), +body:not(.image-zoom) .view-content img[alt$="Left"]:not([class*="emoji"]), +body:not(.image-zoom) .view-content img[alt$="LEFT"]:not([class*="emoji"]), +body:not(.image-zoom) .view-content img[alt$="L"]:not([class*="emoji"]) { + margin: auto !important; + margin-left: 0 !important; + display: block; +} + +img[alt$="right"]:not([class*="emoji"]), +img[alt$="Right"]:not([class*="emoji"]), +img[alt$="RIGHT"]:not([class*="emoji"]), +img[alt$="R"]:not([class*="emoji"]), +.markdown-source-view.mod-cm6 img[alt$="right"]:not([class*="emoji"]), +.markdown-source-view.mod-cm6 img[alt$="Right"]:not([class*="emoji"]), +.markdown-source-view.mod-cm6 img[alt$="RIGHT"]:not([class*="emoji"]), +.markdown-source-view.mod-cm6 img[alt$="R"]:not([class*="emoji"]), +.internal-embed.image-embed.is-loaded[alt$="right"] img[alt$="right"]:not([class*="emoji"]), +.internal-embed.image-embed.is-loaded[alt$="Right"] img[alt$="Right"]:not([class*="emoji"]), +.internal-embed.image-embed.is-loaded[alt$="RIGHT"] img[alt$="RIGHT"]:not([class*="emoji"]), +.internal-embed.image-embed.is-loaded[alt$="R"] img[alt$="R"]:not([class*="emoji"]), +body:not(.image-zoom) .view-content img[alt$="right"]:not([class*="emoji"]), +body:not(.image-zoom) .view-content img[alt$="Right"]:not([class*="emoji"]), +body:not(.image-zoom) .view-content img[alt$="RIGHT"]:not([class*="emoji"]), +body:not(.image-zoom) .view-content img[alt$="R"]:not([class*="emoji"]) { + margin: auto !important; + margin-right: 0 !important; + display: block; +} + +img[alt$="centre"]:not([class*="emoji"]), +img[alt$="center"]:not([class*="emoji"]), +img[alt$="CENTRE"]:not([class*="emoji"]), +img[alt$="CENTER"]:not([class*="emoji"]), +img[alt$="Center"]:not([class*="emoji"]), +img[alt$="Centre"]:not([class*="emoji"]), +img[alt$="C"]:not([class*="emoji"]), +.markdown-source-view.mod-cm6 img[alt$="centre"]:not([class*="emoji"]), +.markdown-source-view.mod-cm6 img[alt$="center"]:not([class*="emoji"]), +.markdown-source-view.mod-cm6 img[alt$="Centre"]:not([class*="emoji"]), +.markdown-source-view.mod-cm6 img[alt$="Center"]:not([class*="emoji"]), +.markdown-source-view.mod-cm6 img[alt$="CENTRE"]:not([class*="emoji"]), +.markdown-source-view.mod-cm6 img[alt$="CENTER"]:not([class*="emoji"]), +.markdown-source-view.mod-cm6 img[alt$="C"]:not([class*="emoji"]), +.internal-embed.image-embed.is-loaded[alt$="centre"] img[alt$="right"]:not([class*="emoji"]), +.internal-embed.image-embed.is-loaded[alt$="center"] img[alt$="Right"]:not([class*="emoji"]), +.internal-embed.image-embed.is-loaded[alt$="Centre"] img[alt$="RIGHT"]:not([class*="emoji"]), +.internal-embed.image-embed.is-loaded[alt$="Center"] img[alt$="R"]:not([class*="emoji"]), +.internal-embed.image-embed.is-loaded[alt$="CENTRE"] img[alt$="Right"]:not([class*="emoji"]), +.internal-embed.image-embed.is-loaded[alt$="CENTER"] img[alt$="RIGHT"]:not([class*="emoji"]), +.internal-embed.image-embed.is-loaded[alt$="C"] img[alt$="R"]:not([class*="emoji"]), +body:not(.image-zoom) .view-content img[alt$="centre"]:not([class*="emoji"]), +body:not(.image-zoom) .view-content img[alt$="center"]:not([class*="emoji"]), +body:not(.image-zoom) .view-content img[alt$="Centre"]:not([class*="emoji"]), +body:not(.image-zoom) .view-content img[alt$="Center"]:not([class*="emoji"]), +body:not(.image-zoom) .view-content img[alt$="CENTRE"]:not([class*="emoji"]), +body:not(.image-zoom) .view-content img[alt$="CENTER"]:not([class*="emoji"]), +body:not(.image-zoom) .view-content img[alt$="C"]:not([class*="emoji"]) { + margin: auto !important; + display: block; +} + +img[alt$="inline"]:not([class*="emoji"]), +img[alt$="Inline"]:not([class*="emoji"]), +img[alt$="INLINE"]:not([class*="emoji"]), +img[alt$="inl"]:not([class*="emoji"]), +img[alt$="INL"]:not([class*="emoji"]), +img[alt$="Inl"]:not([class*="emoji"]) { + display: inline !important; + padding: 0.05em 0.05em !important; + vertical-align: bottom; +} + +img[alt$="inlineL"]:not([class*="emoji"]), +img[alt$="InlineL"]:not([class*="emoji"]), +img[alt$="INLINEL"]:not([class*="emoji"]), +img[alt$="inlL"]:not([class*="emoji"]), +img[alt$="INLL"]:not([class*="emoji"]), +img[alt$="InlL"]:not([class*="emoji"]) { + float: left; + padding: 0 0.05em 0.05em 0 !important; +} + +img[alt$="inlineR"]:not([class*="emoji"]), +img[alt$="InlineR"]:not([class*="emoji"]), +img[alt$="INLINER"]:not([class*="emoji"]), +img[alt$="inlR"]:not([class*="emoji"]), +img[alt$="INLR"]:not([class*="emoji"]), +img[alt$="InlR"]:not([class*="emoji"]) { + float: right; + padding: 0 0 0.05em 0.05em !important; +} + +img.excalidraw-svg-right, +img.excalidraw-svg-Right, +img.excalidraw-svg-RIGHT, +img.excalidraw-svg-R { + float: right !important; +} + +img.excalidraw-svg-left, +img.excalidraw-svg-Left, +img.excalidraw-svg-LEFT, +img.excalidraw-svg-L { + float: left !important; +} + +img.excalidraw-svg-right, +img.excalidraw-svg-Right, +img.excalidraw-svg-RIGHT, +img.excalidraw-svg-R, +img.excalidraw-svg-left, +img.excalidraw-svg-Left, +img.excalidraw-svg-LEFT, +img.excalidraw-svg-L { + display: table; + width: 100% +} + +/* img captions */ +/* modified from Discordian theme by @radekkozak */ +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="center"], +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="centre"], +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="Centre"], +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="Center"], +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="CENTRE"], +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="CENTER"], +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="C"] { + clear: both; + margin: 0 auto !important; + width: fit-content; + display: block; +} + +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="center"]::after, +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="centre"]::after, +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="Centre"]::after, +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="Center"]::after, +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="CENTRE"]::after, +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="CENTER"]::after, +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="C"]::after { + content: attr(alt); + margin: 0.5rem 0; + display: block; + caption-side: bottom; + text-align: center; + font-size: 0.85rem; +} + +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="left"], +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="LEFT"], +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="Left"], +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="L"] { + position: relative; + float: left; + margin: 0.5rem 1rem 0.5rem 0 !important; + clear: both; + display: table; +} + +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="left"]::after, +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="LEFT"]::after, +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="Left"]::after, +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="L"]::after { + content: attr(alt); + padding: 0 0.5rem; + margin: 0.5rem 0 1rem; + display: table-caption; + caption-side: bottom; + text-align: center; + font-size: 0.85rem; +} + +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="right"], +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="RIGHT"], +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="Right"], +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="R"] { + position: relative; + float: right; + margin: 0.5rem 0 0.5rem 1rem !important; + clear: both; + display: table; +} + +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="right"]::after, +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="RIGHT"]::after, +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="Right"]::after, +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="R"]::after { + content: attr(alt); + padding: 0 0.5rem; + margin: 0.5rem 0 1rem; + display: table-caption; + caption-side: bottom; + text-align: center; + font-size: 0.85rem; +} + +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="inline"], +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="Inline"], +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="INLINE"], +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="inl"], +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="INL"], +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="Inl"] { + clear: both; + margin: 0 auto !important; + width: fit-content; + display: inline-table; +} + +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="inline"]::after, +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="Inline"]::after, +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="INLINE"]::after, +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="inl"]::after, +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="INL"]::after, +:is(.markdown-preview-view,.markdown-rendered,.markdown-source-view.mod-cm6.is-live-preview) .image-embed[src$="Inl"]::after { + content: attr(alt); + padding: 0 0.7em; + margin: 0.5rem 0; + display: block; + caption-side: bottom; + text-align: center; + font-size: 0.85rem; +} + +/* image-grid-1 */ +/* adapted from https://github.com/Lithou/Sandbox/blob/main/.obsidian/snippets/pub-Image%20Flags.css */ +body span[alt*="+grid"] { + display: table-cell; + vertical-align: middle; + padding: 5px; +} + +.markdown-source-view.is-live-preview .internal-embed.image-embed.is-loaded[alt*="+grid"] { + display: inline-table; + vertical-align: middle; + max-width: 25%; +} + +/* image-background */ +.markdown-preview-view img[alt^="background"] { + width: 100%; + margin: 0px auto; + position: absolute; + top: 0; + left: 0; + -webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0,0,0,1)), to(rgba(0,0,0,0))); + mask-image: linear-gradient(to bottom, rgba(0,0,0,1), rgba(0,0,0,0)); + z-index: -1; + background-size:cover; +} +.is-live-preview img[alt^="background"] { + width: 100%; + margin: 0px auto; + position: absolute; + top: 0; + left: 0; + -webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0,0,0,1)), to(rgba(0,0,0,0))); + mask-image: linear-gradient(to bottom, rgba(0,0,0,1), rgba(0,0,0,0)); + opacity: 0.35; + z-index: -1; +} + + +/*===================================================*/ +/*================== PRESENTATION =================*/ +/*===================================================*/ +/* +.slides-container li { + line-height: 1.05em; +} + +.reveal ol, +.reveal dl, +.reveal ul { + margin: 0.3em 0 0 1em; +} + +.slides-container ol>li { + border-left: 3px solid var(--list-ol-block-color); +} + +.slides-container ul>li:not(.task-list-item) { + border-left: 3px solid var(--list-ul-block-color); +} +*/ +/*===================================================*/ +/*================== MOBILE =====================*/ +/*===================================================*/ +.is-mobile :is(.markdown-preview-view,.markdown-rendered) { + padding: 0 18px 0 21px; +} + +.is-mobile :is(.markdown-preview-view,.markdown-rendered) ol:not(.contains-task-list)>li:not(.task-list-item), +.is-mobile .markdown-preview-view:not(.kanban) ul>li:not(.task-list-item) { + margin-left: 0; +} + +/*collapse allows*/ +body:not(.default-icons).is-mobile h1 div.heading-collapse-indicator.collapse-indicator, +body:not(.default-icons).is-mobile h2 div.heading-collapse-indicator.collapse-indicator, +body:not(.default-icons).is-mobile div.heading-collapse-indicator.collapse-indicator { + padding-left: 2px; +} + +body:not(.default-icons).is-mobile div.is-collapsed div.heading-collapse-indicator.collapse-indicator { + transform: translateX(-11px) translateY(16px) rotate(-90deg); +} + +body:not(.default-icons).is-mobile div.is-collapsed h1 div.heading-collapse-indicator.collapse-indicator, +body:not(.default-icons).is-mobile div.is-collapsed h2 div.heading-collapse-indicator.collapse-indicator { + transform: translateX(-2px) translateY(6px) rotate(-90deg); +} + +/*main body*/ +.is-mobile :is(.markdown-preview-view,.markdown-rendered) :is(.markdown-preview-section,.markdown-rendered), +.is-mobile .markdown-source-view .CodeMirror, +.is-mobile :is(.markdown-preview-view,.markdown-rendered) .markdown-preview-sizer { + text-align: left; +} + +/*strong*/ +.is-mobile :is(h1,h2,h3,h4,h5,h6,b), +.is-mobile .view-header-title { + font-weight: bold; +} + +.is-mobile .view-header-title { + line-height: 37px; + -webkit-mask-image: unset; + text-overflow: ellipsis; +} + +.is-mobile .view-header-title-container, +.is-mobile .view-header { + height: 40px; +} + +.is-mobile .view-action { + margin: 0 5px; +} + +.is-mobile span.cm-strong, +.is-mobile :not(font)>strong, +.is-mobile .cm-highlight.cm-strong { + color: var(--accent-strong); + font-weight: bold; +} + +/*image*/ +body:not(.image-zoom).is-mobile .markdown-reading-view img:not([class*="emoji"]):active { + cursor: initial; + position: initial; + object-fit: initial; + height: initial; + width: initial; + padding: initial; + top: initial; + left: initial; + right: initial; + bottom: initial; + transform: initial; + z-index: initial; + background-image: initial; + margin: initial; + max-width: 100%; +} + +.is-mobile .workspace-drawer-active-tab-container { + padding: 0; +} + + + +/*======================= +===custom buttons by cuman==== +========================*/ +/*便签动画效果*/ +@keyframes shake { /* 水平抖动,核心代码 */ + 10%, 90% { transform: translate3d(-1px, 0, 0); } + 20%, 80% { transform: translate3d(+2px, 0, 0); } + 30%, 70% { transform: translate3d(-4px, 0, 0); } + 40%, 60% { transform: translate3d(+4px, 0, 0); } + 50% { transform: translate3d(-4px, 0, 0); } +} +:is(.markdown-preview-view,.markdown-rendered) .stickies:hover{ + animation: shake 800ms ease-in-out; +} + +/*按钮颜色*/ +/*图标按钮*/ +button:not(.clickable-icon) { + box-shadow: none; +} +button:not(.clickable-icon):hover { + box-shadow: var(--input-shadow-hover); +} +body.style-options-for-buttons-plugin button.circle_btn { + box-shadow: none; + font-size: 12px; + word-break: keep-all; + margin: 4px; + padding: 0px; + height: 50px; + /* border-radius:50%; */ + position: relative; + border: 0; + display: inline-grid; + text-align: center; + justify-items: center; +} +/* blank 透明按钮*/ +body.style-options-for-buttons-plugin button.blank { + box-shadow: none; + background: #fff0f000; + padding: 0; +} +body.style-options-for-buttons-plugin button.blank:hover { + animation: swing_image 0.8s linear 0s 1 normal; + box-shadow: 0 2px 6px rgba(0, 0, 0, .3); +} + +body.style-options-for-buttons-plugin .admonition-content span>button.grad_button { + margin:3px; +} +body.style-options-for-buttons-plugin button.grad_button { + margin:5PX; + line-height: inherit; + display: inline-flex; + justify-content: center; + align-items: center; + min-width: 90px; + padding: 0 18px; + height: 38px; + font-size: 16px; + color: #fff; + text-align: center; + box-sizing: border-box; + font-weight: 500; + cursor: pointer; + border-radius: 30px; + transition: box-shadow .5s ease, transform .2s ease; + will-change: transform; + box-shadow: 0 2px 5px rgba(0, 0, 0, .2); + transform: + translateY(var(--ty, 0)) + rotateX(var(--rx, 0)) + rotateY(var(--ry, 0)) + translateZ(var(--tz, -12px)); +} + +body.style-options-for-buttons-plugin button.grad_button:hover { + animation: swing_image 0.8s linear 0s 1 normal; + box-shadow: 0 5px 15px rgba(0, 0, 0, .3); +} +body.style-options-for-buttons-plugin button.g_purple { + background: linear-gradient(135deg, #6e8efb, #a777e3); +} +body.style-options-for-buttons-plugin button.g_blue { + background: linear-gradient(135deg, #3370ff, #9fb9f6); +} +body.style-options-for-buttons-plugin button.g_green { + background: linear-gradient(135deg, #0eb347, #5be08a); +} +body.style-options-for-buttons-plugin button.g_lightgreen { + color: #17695e; + background: linear-gradient(135deg, #adfdad, #dafdda); +} +body.style-options-for-buttons-plugin button.g_yellow { + color: #836f20; + background: linear-gradient(135deg, #fcd539, #ffeb9b); +} +body.style-options-for-buttons-plugin.theme-dark button.g_yellow { + color: #e4cb58; + background: none; + border: 1px solid; +} +body.style-options-for-buttons-plugin.theme-dark button.g_green { + color: #19bc8b; + background: none; + border: 1px solid; +} +body.style-options-for-buttons-plugin.theme-dark button.g_lightgreen { + color: #8fc866; + background: none; + border: 1px solid; +} +body.style-options-for-buttons-plugin.theme-dark button.g_purple { + color: #ffa260; + background: none; + border: 1px solid; +} +body.style-options-for-buttons-plugin.theme-dark button.g_blue { + color: #739df9; + background: none; + border: 1px solid; +} +body.style-options-for-buttons-plugin.theme-dark .grad_button:hover { + color: var(--text-accent) +} + +button.tiny { + border-radius: 10px; + display: inline-flex; + justify-content: center; + align-items: center; + font-size: 1em; + min-width:3.5em; + cursor: pointer; + margin: 0; + padding:3px 6px; + background-color: transparent; + color: var(--text-normal); + position: relative; + z-index: 1; + overflow: hidden; + box-shadow: rgba(0, 0, 0, 0.1) 0px 5px 35px, rgba(0, 0, 0, 0.05) 0px 5px 5px; +} +button.tiny:hover { + color: var(--text-on-accent); +} +button.tiny::before { + content: ""; + position: absolute; + z-index: -1; + top: 50%; + left: 50%; + width: 1rem; + height: 1rem; + transform: translate3d(-50%,-50%,0) scale(0,0); + border-radius: 50%; + background-color: var(--interactive-accent-hover); + transform-origin: center; + transition: ease-in-out .5s; +} + +button.tiny:hover::before { + transform: translate3d(-50%,-50%,0) scale(15,15); +} + + +/*buttons*/ +.is-mobile .nav-action-button { + margin: 0px 3px !important +} + +.is-mobile .workspace-leaf-content[data-type='file-explorer'] .nav-buttons-container { + margin: 0 0 5px 0; +} + +.is-mobile .workspace-leaf-content .view-header-icon { + padding: 7px 3px 5px 8px; +} + +.is-mobile .nav-buttons-container>.nav-action-button svg { + width: 1.5em; + height: 1.5em; +} + +/* side bar button */ +.is-mobile .side-dock-ribbon-action { + padding: 5px; +} + +.is-mobile .cm-s-obsidian .HyperMD-codeblock { + color: var(--text-color-code); +} + +.is-mobile :is(.markdown-preview-view,.markdown-rendered) blockquote { + margin-left: 3%; + margin-right: 3%; +} + +.is-mobile code:not([class*='language-']), +.is-mobile .cm-s-obsidian span.cm-inline-code { + padding: 5px 3px 2px; +} + +.is-mobile .workspace>.workspace-split>.workspace-leaf:first-of-type:last-of-type .view-header { + background: linear-gradient(120deg, var(--color-view-header-gradient-1) 0%, var(--color-view-header-gradient-2) 90%) !important; +} + +.is-mobile .cm-s-obsidian .cm-gutters { + background-color: transparent !important; +} + +.is-mobile .cm-foldGutter .cm-gutterElement { + color: transparent !important; +} + +.is-mobile .cm-formatting.cm-formatting-quote { + color: var(--red); +} + +body:not(.font-family-change-to-default).is-mobile .markdown-source-view.mod-cm6 .cm-scroller { + font-family: var(--font-text); +} + +.is-mobile #calendar-container { + padding: 0 4px 2px 4px; + margin: unset !important; + line-height: unset; +} + +.is-mobile #calendar-container .calendar { + margin-left: -8px !important; + width: 103%; +} + +.is-mobile #calendar-container th { + padding: 2px 0 !important; +} + +.is-mobile #calendar-container td { + padding: 0 !important; + line-height: 24px !important; +} + +.is-mobile #calendar-container th { + padding: 10px 0; + border-radius: 0 !important; + background-color: transparent !important; +} + +.is-mobile #calendar-container tr { + background-color: transparent; +} + +.is-mobile #calendar-container .dot { + margin-top: 0 !important; +} + +.is-mobile #calendar-container .hollow { + margin: 0 !important; +} + +.is-mobile .workspace-drawer-header-name { + font-size: 25px; +} + +.is-mobile .workspace-drawer-header-name-text { + color: var(--text-accent); + font-weight: 600; +} + +.is-mobile .workspace-drawer-active-tab-header { + margin: 5px 0; +} + +.is-mobile .workspace-drawer.mod-left { + border-right: none; +} + +.is-mobile .workspace-drawer.mod-right { + border-left: none; +} + +.is-mobile .workspace-drawer.mod-right .workspace-drawer-inner { + background: linear-gradient(to left, var(--background-mobile-drawer-1) 30%, var(--background-mobile-drawer-2) 100%); +} + +.is-mobile .workspace-drawer.mod-left .workspace-drawer-inner { + background: linear-gradient(to right, var(--background-mobile-drawer-1) 30%, var(--background-mobile-drawer-2) 100%); +} + +.is-mobile .workspace-drawer-ribbon { + background-color: var(--background-secondary-alt); +} + +.is-mobile .nav-buttons-container { + margin-bottom: 10px; +} + +.is-mobile .cm-line .cm-link.cm-strong { + color: var(--text-accent); +} + +.is-mobile .cm-line .cm-formatting.cm-formatting-link, +.is-mobile .cm-line .cm-string.cm-strong.cm-url { + color: var(--text-muted); +} + +.is-mobile .search-result-file-match-replace-button { + color: var(--text-normal); +} + +.is-mobile :is(.markdown-preview-view,.markdown-rendered).kanban-plugin__markdown-preview-view { + padding: 0 5px; +} + +/***修复iphone 底部横条不透明的问题*** +body.is-mobile { + padding-bottom: 0 !important; +} +/*** iphone标题栏上方遮罩*** +body.is-mobile .safe-area-top-cover { + background-color: var(--background-primary); +} +/*** iphone标题栏上方遮罩 设置背景色后遮罩颜色跟工作区保持一致*** +body.is-mobile.background-settings-workplace-background-image .safe-area-top-cover { + background-color: var(--background-primary); +} +*/ + +body.is-mobile.theme-light .menu { + background-color: var(--background-primary-alt); +} +body.is-mobile .menu { + color:var(--text-muted); +} +body.is-mobile .menu-item-title { + padding-left: 4px; +} + +/*侧边栏文件列表字体大小*/ +.is-mobile .nav-file-title, .is-mobile .nav-folder-title, .is-mobile .outline, .is-mobile .tree-item-self, .is-mobile .tag-container, .is-mobile .tag-pane-tag { + font-size: calc(var(--font-size-folder-and-file) + 0.2em); + line-height: 1.5; + margin-bottom: 2px; +} + +body:not(.default-icons).is-mobile .nav-folder-collapse-indicator::before { + margin-left: -0.1em; +} + +/*侧边栏工作区标题*/ +.is-mobile .workspace-drawer-tab-option-item-title, .is-mobile .workspace-drawer-active-tab-title { + font-size: calc(var(--font-size-folder-and-file) + 0.15em); +} +/*小屏幕特别优化*/ +@media screen and(min-width: 480px) and (max-width: 767px) { + body.style-options-for-admonition-plugin .admonition-flex .admonition-content { + gap:24px; + } + body.style-options-for-admonition-plugin .admonition-kanban ul > li.task-list-item { + flex: 1 1 40%; + } + body.style-options-for-admonition-plugin .admonition-kanban ul>li:not(.task-list-item) { + flex: 1 1 40%; + } + .kanban ul>li:not(.task-list-item) { + flex: 1 1 40%; + } + .kanban ul>li.task-list-item{ + flex: 1 1 40%; + } +} + +@media screen and (max-width: 479px) { + body.style-options-for-admonition-plugin .admonition-flex .admonition-content { + gap:15px; + } + body.style-options-for-admonition-plugin .admonition-flex .admonition-content div { + flex: 1 1 60%; + margin: 0; + } + body.style-options-for-admonition-plugin .admonition-kanban ul > li.task-list-item { + flex: 1 1 60%; + } + body.style-options-for-admonition-plugin .admonition-kanban ul>li:not(.task-list-item) { + flex: 1 1 40%; + } + + /*伪看板优化显示*/ + .kanban ul>li:not(.task-list-item) { + flex: 1 1 auto; + } + .kanban ul>li.task-list-item { + flex: 1 1 auto; + } + .is-mobile .nav-folder.mod-root > .nav-folder-title { + display: none; + } + + body:not(.default-icons).is-mobile .nav-folder-collapse-indicator::before { + top: 1px; + } +} + +/*======================= +=== projects by cuman==== +========================*/ +.projects-container [role='row']:hover { + background-color: hsla(var(--color-accent-hsl), 0.1); +} + +.projects-container [role='row'] { + position: relative; + font-size: var(--font-ui-small); +} +.projects-container a { + font-size: var(--font-ui-small); + text-decoration-line:none; +} + +.projects-container [role='row'] [role='gridcell']{ + background-color: transparent; +} + +.projects-container [role='row'] [role='gridcell'][aria-selected="true"]::before { + content: " "; + position:absolute; + left: 0; + min-height: 30px; + background-color: hsla(var(--color-accent-hsl), 0.2); + width: 100%; + pointer-events: none; +} + +.projects-container [role='row'] [role='gridcell'].selected { + box-shadow: 0 0 0 1px var(--interactive-accent); +} + +.projects-container div.rowHeader { + backdrop-filter: blur(10px); +} +/*======================= +=== dialogue by cuman==== +========================*/ +body.dialogue-style-wechat .dialogue-plugin-block-wrapper { + margin-bottom: 15px; + position: relative; + display: flex; +} +body.dialogue-style-wechat .dialogue-plugin-message { + background-color:unset; + padding: 1px; +} + +body.dialogue-style-wechat.is-mobile .dialogue-plugin-message { + max-width: calc(100% - 2em) !important; +} +body.dialogue-style-wechat.is-mobile .dialogue-plugin-message .dialogue-plugin-message-content { + margin-left: 2em; + margin-right: 2em; +} + +body.dialogue-style-wechat.is-mobile .dialogue-plugin-message .dialogue-plugin-message-title { + min-width:unset; + margin-left: -1em; + margin-right: -1em; +} + +body.dialogue-style-wechat .dialogue-plugin-comment-wrapper .dialogue-plugin-comment { + margin: 7px; + width: fit-content; + max-width: 75%; + margin: 24px auto; + line-height: 1.8; + text-align: center; + opacity: var(--opacity); +} + +body.dialogue-style-wechat .dialogue-plugin-message .dialogue-plugin-message-title { + min-width: 6.8em; + font-size: 18px; + height: 50px; + background: #f1f1f1; + border-radius: 8px; + background-size: cover; + background-repeat: no-repeat; + position: absolute; + background-position: center; + overflow: hidden; + display: flex; + align-items: center; + justify-content: right; + background-color: unset; +} + +body.dialogue-style-wechat .dialogue-plugin-message-wrapper-right .dialogue-plugin-message-title { + justify-content:left; + margin-left: 2em; + right: 0; +} +body.dialogue-style-wechat .dialogue-plugin-message-wrapper-left .dialogue-plugin-message .dialogue-plugin-message-content { + margin-right: 0px; +} +body.dialogue-style-wechat .dialogue-plugin-message-wrapper-left .dialogue-plugin-message-content:after { + box-shadow: -1px 2px 0px 0 rgb(178 178 178 / 23%) +} + +body.dialogue-style-wechat .dialogue-plugin-message-wrapper-right .dialogue-plugin-message .dialogue-plugin-message-content { + color: black; + background: #98e970; + margin-left: 0; +} +body.dialogue-style-wechat .dialogue-plugin-message-wrapper-right .dialogue-plugin-message .dialogue-plugin-message-content:after { + background: #98e970; + left: auto; + right: -5px; + border-top-right-radius: 2px; + border-bottom-left-radius: 0; +} +body.dialogue-style-wechat .dialogue-plugin-message .dialogue-plugin-message-content { + background: #fff; + padding: 12px 18px; + font-size: large; + border-radius: 8px; + margin-right: 7em; + word-break: break-all; + margin-left: 7em; + display: inline-block; + position: relative; + line-height: normal; + min-height: 50px; + -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.25); + -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.25); +} +.dialogue-style-wechat.theme-dark .dialogue-plugin-message .dialogue-plugin-message-content { + background: #343434; +} + +body.dialogue-style-wechat .dialogue-plugin-message .dialogue-plugin-message-content:after { + content: ''; + background: #fff; + width: 12px; + height: 12px; + border-bottom-left-radius: 2px; + top: 20px; + left: -6px; + position: absolute; + transform: rotate(45deg); +} + +.dialogue-style-wechat.theme-dark .dialogue-plugin-message .dialogue-plugin-message-content:after { + background: #343434; +} + +/*chatview-style-wechat*/ +body.dialogue-style-wechat div.chat-view-bubble { + background-color: transparent; + border: 0px; +} +body.dialogue-style-wechat .chat-view-message .chat-view-header { + font-size: 18px; + height: 55px; + background: #f1f1f1; + border-radius: 8px; + background-size: cover; + background-repeat: no-repeat; + position: absolute; + background-position: center; + overflow: hidden; + display: flex; + align-items: center; + justify-content: center; + background-color:unset; +} + +body.dialogue-style-wechat .chat-view-align-right .chat-view-header { + text-align: right; + margin-right: 0.5em; +} + +body.dialogue-style-wechat div.chat-view-align-left .chat-view-message { + margin-right: 0; + +} +body.dialogue-style-wechat .chat-view-align-right .chat-view-message { + color: black; + background: #98e970; + float: right; +} +body.dialogue-style-wechat div.chat-view-align-center .chat-view-message { + background: #e4effc; + padding: 12px 18px; + font-size: large; + border-radius: 8px; + word-break: break-all; + display: inline-block; + position: relative; + line-height: normal; + min-height: 50px; + -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.25); + -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.25); +} +body.dialogue-style-wechat div.chat-view-align-center .chat-view-message:after { + content: ''; + background: #e4effc; + width: 12px; + height: 12px; + border-bottom-left-radius: 2px; + top: -5px; + left: 10%; + position: absolute; + transform: rotate(45deg); +} + +body.dialogue-style-wechat div.chat-view-align-left .chat-view-message:after { + box-shadow: -1px 2px 0px 0 rgb(178 178 178 / 23%) +} + +body.dialogue-style-wechat .chat-view-align-right .chat-view-message:after { + background: #98e970; + left: auto; + right: -5px; + border-top-right-radius: 2px; + border-bottom-left-radius: 0; +} +body.dialogue-style-wechat .chat-view-message, +body.dialogue-style-wechat .chat-view-bubble> :not(:is(h1,h2,h3,h4,h5,h6,sub)) { + background: #fff; + padding: 12px 18px; + font-size: large; + border-radius: 8px; + word-break: break-all; + display: inline-block; + position: relative; + line-height: normal; + min-height: 50px; + -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.25); + -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.25); +} +body.dialogue-style-wechat.theme-dark .chat-view-align-left .chat-view-message { + background: #343434; +} +body.dialogue-style-wechat.theme-dark .chat-view-align-center .chat-view-message { + background: #3cb676; + color:black; +} +body.dialogue-style-wechat.theme-dark .chat-view-align-center .chat-view-message:after { + background: #3cb676; +} + +body.dialogue-style-wechat .chat-view-bubble> :not(:is(h1,h2,h3,h4,h5,h6,sub)):after { + content: ''; + background: #fff; + width: 12px; + height: 12px; + border-bottom-left-radius: 2px; + top: 20px; + left: -6px; + position: absolute; + transform: rotate(45deg); +} + +body.dialogue-style-wechat.theme-dark .chat-view-align-left .chat-view-message:after { + background: #343434; +} + +body.dialogue-style-wechat .chat-view-bubble .chat-view-subtext { + display:block; +} +body.dialogue-style-wechat .chat-view-align-right .chat-view-subtext { + float: right; +} +body.dialogue-style-wechat div.chat-view-align-right { + overflow: hidden; +} +body.dialogue-style-wechat h4.chat-view-header { + margin-bottom: 2px; + margin-top: 0 !important; +} +body.dialogue-style-wechat div.chat-view-align-center h4.chat-view-header { + text-align: left; + margin-bottom: 8px; +} + +/*dialogue-style-chat*/ +.dialogue-style-chat.theme-dark .dialogue-plugin-message-wrapper-left .dialogue-plugin-message { + color: #cccccc; + background: #343434; + box-shadow: 0px 2px 1px 0px #191818,0px 2px 1px 0px #343434; +} +.dialogue-style-chat.theme-dark .dialogue-plugin-message-wrapper-right .dialogue-plugin-message { + color: #333333; + background-image: -webkit-linear-gradient(left, #cccccc,#cccccc); +} +body.dialogue-style-chat .dialogue-plugin-message-wrapper-left .dialogue-plugin-message { + font-size: 15px; + background: #f5f8ff; + letter-spacing: 1.5px; + color: #333; + border-radius:12px; + border-bottom-left-radius: 0px; + margin-left: 6px; + box-shadow: 0px 2px 1px 0px #f3f3f3,0px 2px 1px 0px #f3f3f3; + margin-right: 3em; + align-self: flex-end; +} + +body.dialogue-style-chat .dialogue-plugin-message-wrapper-right .dialogue-plugin-message{ + font-size: 15px; + letter-spacing: 1.5px; + color: #333; + border-radius: 12px; + border-bottom-right-radius: 0px; + background-image: -webkit-linear-gradient(left, #cee4ff,#d7eaff); + margin-right: 6px; + align-self: flex-end; + margin-left: 3em; +} + +body.dialogue-style-chat .dialogue-plugin-message-title { + font-size: 16px; + letter-spacing: 2px; + text-align: center; + color: rgb(236, 236, 236); + font-weight: bold; +} + +/*===================================================*/ +/*================= Live Preview ================*/ +/*===================================================*/ +.markdown-source-view.is-live-preview span.cm-quote::before { + all: initial; +} + +.markdown-source-view.mod-cm6 .cm-gutters { + background-color: transparent !important; +} + +.markdown-source-view.mod-cm6.is-live-preview .HyperMD-quote { + border-color: var(--theme-color); + background-color: var(--background-blockquote); +} + +.markdown-source-view.is-live-preview .cm-formatting.cm-formatting-quote.cm-quote { + color: var(--red); +} + +.markdown-source-view.is-live-preview span.code-block-flair { + color: var(--code-language); +} + +.markdown-source-view .HyperMD-codeblock.HyperMD-codeblock-bg.cm-line { + letter-spacing: calc(var(--letter-space-code) * 0.02em); + line-height: var(--line-height-normal); +} + +.cm-s-obsidian div.HyperMD-codeblock-end-bg { + border-bottom: none; +} + +.markdown-source-view.cm-s-obsidian.mod-cm6 .HyperMD-codeblock { + font-size: var(--font-size-code); +} + +/* ============ */ +/* just for fun */ +/* ============ */ +/*cursor*/ +.CodeMirror-cursor, +.cm-s-obsidian .cm-cursor, +.cm-s-obsidian .cm-dropCursor { + border-left-color: var(--cursor-color-temp); +} + +.markdown-source-view.mod-cm6 .cm-content { + caret-color: var(--cursor-color); +} + +body.bt-colorful-titlebar .titlebar::after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: var(--background-titlebar-inner); +} + +body.theme-dark.bt-colorful-titlebar .workspace-split.mod-root .workspace-tab-header.is-active.mod-active { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + box-shadow: none; + background-color: #181818; +} +body.theme-light.bt-colorful-titlebar .workspace-split.mod-root .workspace-tab-header.is-active.mod-active { + box-shadow: none; + background-color:var(--color-base-00); +} +body.theme-light.background-settings-workplace-background-image .workspace-ribbon.side-dock-ribbon.mod-left, +body.theme-light.background-settings-workplace-background-image .workspace-ribbon.side-dock-ribbon.mod-right, +body.theme-light.background-settings-workplace-background-image .nav-folder.mod-root>.nav-folder-title { + background-color: var(--background-secondary); +} +body.theme-dark.background-settings-workplace-background-image .workspace-ribbon.side-dock-ribbon.mod-left { + background-color: var(--background-secondary) +} +body.theme-dark.background-settings-workplace-background-image .workspace-ribbon.side-dock-ribbon.mod-right { + background-color: var(--background-primary-alt); +} + + +/*==== separators =====*/ +body.asymmetric-split-left .workspace-split.mod-horizontal.mod-left-split .workspace-leaf { + background-color: var(--background-asymm-split-left); +} + +body.asymmetric-split-left .workspace-ribbon.mod-left { + border-right: 1px solid var(--background-modifier-border-asymm); +} + +body.asymmetric-split-left .titlebar, +body.asymmetric-split-left .workspace-split.mod-left-split .workspace-tabs{ + border-bottom: 1px solid var(--background-modifier-border-asymm); +} + +body.asymmetric-split-left .workspace-split.mod-left-split .workspace-tab-container-before.is-before-active .workspace-tab-header-inner, +body.asymmetric-split-left .workspace-split.mod-left-split .workspace-tab-container-after.is-after-active .workspace-tab-header-inner, +body.asymmetric-split-left .workspace-split.mod-left-split .workspace-tab-header.is-before-active .workspace-tab-header-inner, +body.asymmetric-split-left .workspace-split.mod-left-split .workspace-tab-header.is-after-active .workspace-tab-header-inner, +body.asymmetric-split-left .workspace-split.mod-left-split .workspace-tab-header, +body.asymmetric-split-left .workspace-split.mod-left-split .workspace-tab-header-inner, +body.asymmetric-split-left .workspace-split.mod-left-split .workspace-tab-header.is-after-active, +body.asymmetric-split-left .workspace-split.mod-left-split .workspace-tab-header.is-before-active, +body.asymmetric-split-left .workspace-split.mod-left-split .workspace-tab-container-before.is-before-active .workspace-tab-header-inner { + background-color: var(--background-asymm-split-left); + border-radius: 0; +} + +body.asymmetric-split-left .workspace-split.mod-left-split .workspace-tab-header-container { + padding: 4px 0; +} + +.workspace-split.mod-left-split>.workspace-leaf-resize-handle:hover, +.workspace-split.mod-right-split>.workspace-leaf-resize-handle:hover { + background-color: hsla(var(--interactive-accent-hsl),0.5) +} + +.is-translucent .workspace-split.mod-left-split>.workspace-leaf-resize-handle, +.is-translucent .workspace-split.mod-right-split>.workspace-leaf-resize-handle { + background-color: var(--background-modifier-border); +} + +.workspace-tab-container-before.is-before-active .workspace-tab-header-inner, +.workspace-tab-container-after.is-after-active .workspace-tab-header-inner, +.workspace-tab-header.is-before-active .workspace-tab-header-inner, +.workspace-tab-header.is-after-active .workspace-tab-header-inner { + background-color: var(--background-secondary-alt); +} + +.workspace-tabs { + background-color: var(--background-secondary); + padding-right: 0; +} + +.is-hidden-frameless.mod-windows .titlebar-button { + background: var(--background-primary); +} + +body:not(.color-scheme-options-simplicity-topaz) .workspace-ribbon.mod-left:before, +body:not(.color-scheme-options-simplicity-topaz) .workspace-split.mod-root, +body:not(.color-scheme-options-simplicity-topaz) .workspace-tabs { + background: var(--background-secondary-alt); +} + +.workspace-tab-header-container { + background: var(--background-secondary-alt); +} + +.sidebar-toggle-button, +body.background-settings-workplace-background-image:not(.is-frameless) .workspace-split.mod-root .workspace-tab-header-container, +body.background-settings-workplace-background-image:not(.is-frameless) .mod-root .workspace-tabs .workspace-leaf, +body.background-settings-workplace-background-image .workspace { + background: transparent; +} + +body.background-settings-workplace-background-image .workspace-ribbon.mod-left:before, +body.background-settings-workplace-background-image .workspace-tabs { + background: var(--background-secondary); +} + + +body.toggle-divider-lines { + --divider-color: transparent; + --tab-outline-color: transparent; + --tab-divider-color: transparent; +} +body.toggle-divider-lines .workspace-ribbon, +body.toggle-divider-lines .workspace-split > .workspace-leaf-resize-handle, +body.toggle-divider-lines .view-header { + border: none; +} + +body.toggle-divider-lines .workspace-split.mod-horizontal > * > .workspace-leaf-resize-handle:not(:hover) { + border-bottom-color: transparent; +} + +body.toggle-divider-lines .workspace-ribbon.mod-left:before { + border-bottom: var(--tab-outline-width) transparent; +} +body.toggle-divider-lines .workspace-tab-header-container{ + border-bottom: var(--tab-outline-width) transparent; +} + +body.toggle-divider-lines .workspace-split.mod-root .workspace-tab-header.is-active { + box-shadow: var(--window-shadow); +} + +/* +body.background-settings-workplace-background-image .titlebar, +body.background-settings-workplace-background-image .workspace-ribbon.mod-left { + background: var(--background-secondary); +} +*/ +body.background-settings-workplace-background-image.theme-dark .workspace-ribbon.mod-left { + background: transparent; +} + +body.background-settings-workplace-background-image .workspace-tab-header::before { + clip-path: inset(50% 0 0 50%); + left: calc(var(--tab-curve) * -1.97); +} +body.background-settings-workplace-background-image .workspace-tab-header::after { + clip-path: inset(50% 50% 0 0); + right: calc(var(--tab-curve) * -1.97); +} + +body.background-settings-workplace-background-image .nav-folder.mod-root>.nav-folder-title { + background-color: transparent; +} + +body.background-settings-workplace-background-image { + --tab-text-color-focused: var(--text-normal); + --titlebar-text-color-focused: var(--text-noraml); + --canvas-background: transparent; +} + +body.is-frameless.background-settings-workplace-background-image.theme-dark { + --divider-color: #22222288; +} + +/* +body.is-frameless.background-settings-workplace-background-image .workspace-tab-header.is-active { + box-shadow: none; +} +*//* +body.is-frameless.background-settings-workplace-background-image .workspace-split.mod-root, +body:not(.is-focused).is-frameless.background-settings-workplace-background-image .workspace-tabs.mod-top .workspace-tab-header-container, +body.is-frameless.background-settings-workplace-background-image .workspace-tabs.mod-top .workspace-tab-header-container, +body.is-frameless.background-settings-workplace-background-image .workspace-split.mod-root .workspace-tab-header-container { + background-color: transparent !important; +} +*/ +body:not(.is-focused):not(.is-frameless) .workspace-split.mod-root .workspace-tab-header-container { + background-color: transparent; +} + +.workspace-tab-container-before.is-before-active, +.workspace-tab-container-after.is-after-active, +.workspace-tab-header.is-before-active, +.workspace-tab-header.is-after-active, +.workspace-split.mod-right-split .workspace-tabs .workspace-leaf, +.workspace-split.mod-left-split .workspace-tabs .workspace-leaf { + background-color: var(--background-secondary); +} + + +.view-header { + border-top: none; + height: 33px; + border-bottom: 1px solid var(--page-border-bottom); +} + +body.color-scheme-options-flamingo .view-header, +body.color-scheme-options-honey-milk-topaz .view-header, +body.color-scheme-options-chocolate-topaz .view-header, +body.color-scheme-options-autumn-topaz .view-header, +body.color-scheme-options-lillimon-topaz .view-header { + border-bottom: 1px solid transparent; +} + +.workspace-split.mod-root .view-content { + background-color: var(--background-primary); +} + +:is(.markdown-preview-view,.markdown-rendered), +.markdown-source-view { + background-color: transparent; +} + + +body.view-button-front .popover .workspace-leaf-content:is([data-mode="preview"],[data-mode="source"]) .view-header .view-actions>:is([aria-label^="该面板处于编辑视图中"],[aria-label^="Current view: editing"]), +body.view-button-front .popover .workspace-leaf-content:is([data-mode="preview"],[data-mode="source"]) .view-header .view-actions>:is([aria-label^="该面板处于编辑视图中"],[aria-label^="Current view: editing"]) { + left: 0; + top: 6px; +} +body.view-button-front .popover .workspace-leaf-content[data-mode='preview'] .view-header .view-actions>:is([aria-label^="该面板处于阅读视图中"],[aria-label^="Current view: reading"]) , +body.view-button-front .popover .workspace-leaf-content[data-mode='preview'] .view-header .view-actions>:is([aria-label^="该面板处于阅读视图中"],[aria-label^="Current view: reading"]) { + left: 0; + top: 6px; +} + +body.is-mobile.view-button-front .workspace-leaf-content:is([data-mode="preview"],[data-mode="source"]) .view-header .view-actions>:is([aria-label^="该面板处于编辑视图中"],[aria-label^="Current view: editing"]) { + left: 0; + top: 6px; +} + +body.view-button-front .workspace-leaf-content:is([data-mode="preview"],[data-mode="source"]) .view-header .view-actions>:is([aria-label^="该面板处于编辑视图中"],[aria-label^="Current view: editing"]) { + opacity: 0.8; + position: absolute; + left: 20px; + top: 3px; +} +body.is-mobile.view-button-front .workspace-leaf-content[data-mode='preview'] .view-header .view-actions>:is([aria-label^="该面板处于阅读视图中"],[aria-label^="Current view: reading"]) { + left: 0; + top: 6px; +} +body.view-button-front .workspace-leaf-content[data-mode='preview'] .view-header .view-actions>:is([aria-label^="该面板处于阅读视图中"],[aria-label^="Current view: reading"]) { + opacity: 0.5; + position: absolute; + left: 20px; + top: 3px; +} +body.view-button-front .workspace-leaf-content[data-mode='preview'] .view-header:hover .view-actions>:is([aria-label^="该面板处于阅读视图中"],[aria-label^="Current view: reading"]) { + opacity: 1; +} + +body.view-button-front:not(.color-scheme-options-simplicity-topaz) .workspace-leaf-content .view-header .view-header-nav-buttons { + margin-left: 25px; +} +body.view-button-front.hide-titlebar-close-btn.hide-left-ribbon-retention-drawer.color-scheme-options-simplicity-topaz .workspace-leaf-content .view-header .view-header-nav-buttons { + margin-left: 5px; +} + +body.view-button-front .workspace-leaf-content[data-mode='source'] .view-content .markdown-source-view:not(.is-live-preview)::before { + content: ""; + background-image:url("data:image/svg+xml,%3Csvg width='' height='' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M84.8 468.8H43.2C17.6 468.8 0 486.4 0 512s17.6 43.2 43.2 43.2h43.2C110.4 555.2 128 537.6 128 512s-17.6-43.2-43.2-43.2zM384 468.8h-43.2c-25.6 0-43.2 17.6-43.2 43.2s17.6 43.2 43.2 43.2H384c25.6 0 43.2-17.6 43.2-43.2s-17.6-43.2-43.2-43.2zM683.2 468.8H640c-25.6 0-43.2 17.6-43.2 43.2s17.6 43.2 43.2 43.2h43.2c25.6 0 43.2-17.6 43.2-43.2-1.6-25.6-17.6-43.2-43.2-43.2zM980.8 468.8h-43.2c-25.6 0-43.2 17.6-43.2 43.2s17.6 43.2 43.2 43.2h43.2c25.6 0 43.2-17.6 43.2-43.2s-17.6-43.2-43.2-43.2z' fill='%23666666'/%3E%3C/svg%3E"); + background-size: 14px 16px; + background-repeat: no-repeat; + height: 12px; + width: 15px; + position: absolute; + z-index: 1; + top: 17px; + left: 26px; + opacity: 0.5; + pointer-events: none; +} + +body.hide-titlebar-close-btn.hide-left-ribbon-retention-drawer.view-button-front .workspace-leaf-content[data-mode='source'] .view-content .markdown-source-view:not(.is-live-preview)::before { + left: 38px; +} + +body.view-button-front:not(.remove-custom-svg-icons) .workspace-leaf-content .view-header .view-actions svg.svg-icon.lucide-book-open { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='' height='' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M114.18 936.37c-7.08-0.01-13.88-2.83-18.90-7.84-7.13-7.13-9.73-17.60-6.78-27.24 0.58-1.89 58.08-190.17 69.57-232.60 1.24-4.57 3.65-8.73 6.99-12.08 0 0 509.13-509.34 524.08-524.12 27.32-27.32 63.92-43.31 102.51-44.84 35.84 0.81 69.89 15.79 94.70 41.66 32.72 31.43 49.66 65.07 50.34 100.03 0.52 35.39-15.64 70.37-48.22 103.97C856.96 365.85 382.08 835.45 361.87 855.42c-3.13 3.09-6.97 5.37-11.19 6.62-31.98 9.53-226.32 72.36-228.29 72.99C119.75 935.90 116.98 936.35 114.18 936.37zM207.99 690.03c-10.01 35.62-39.82 125.58-56.68 181.06 55.85-17.99 146.82-49.51 177.65-59.01 50.76-50.21 491.57-486.20 521.11-516.63 22.12-22.85 33.24-44.76 32.85-65.12-0.40-19.87-11.67-40.69-33.65-61.74-14.94-16.13-35.63-25.74-57.60-26.73-24.42 1.73-47.44 12.11-64.90 29.28-14.10 13.90-465.93 465.95-518.84 518.88L207.99 690.03zM350.36 853.71c-13.57-0.06-24.98-10.20-26.63-23.68-6.27-30.87-21.46-59.22-43.70-81.52-22.46-24.48-52.04-41.30-84.56-48.09-14.71-1.90-25.17-15.27-23.48-30.01 1.53-14.70 14.70-25.39 29.40-23.85 0.01 0 0.03 0 0.05 0 88.93 17.85 158.30 87.60 175.66 176.62 1.91 14.80-8.50 28.34-23.28 30.29-1.16 0.15-2.33 0.22-3.51 0.22L350.36 853.71zM828.88 369.14c-13.58-0.05-24.99-10.20-26.62-23.68-14.30-64.29-64.20-114.68-128.34-129.60-14.70-1.94-25.13-15.30-23.45-30.03 1.51-14.67 14.63-25.35 29.31-23.85 0.03 0.01 0.06 0.01 0.10 0.01 44.72 8.07 85.64 30.37 116.68 63.57 30.72 30.78 51.32 70.19 59.05 112.99 2.02 14.73-8.28 28.31-23.02 30.33-1.25 0.18-2.52 0.26-3.80 0.26L828.88 369.14z' fill='%23666666'/%3E%3C/svg%3E"); + opacity:0.6; +} + +body:not(.remove-custom-svg-icons) .workspace-leaf-content[data-type="markdown"] .view-header-icon:hover::before { + content:"👆🏻"; + opacity: 0.6; + margin-left: -12px; +} + + +body.folder-icons .nav-folder-children .nav-folder-title-content::before { + position: relative; + content: ""; + display: inline-block; + opacity: 0.9; + top: 2px; + margin-left: -1px; + width: 0.95rem; + height: 0.95rem; + margin-right: 5px; + background-size: contain; + background-repeat: no-repeat; + background-position: center center; + background-color: var(--text-folder-file-icon); + filter: hue-rotate(160deg); + -webkit-mask-image: url('data:image/svg+xml;utf8,'); +} +body.folder-icons .nav-folder-children .nav-folder.is-collapsed .nav-folder-title-content::before { + position: relative; + content: ""; + display: inline-block; + width: 0.95rem; + height: 0.95rem; + background-size: contain; + background-repeat: no-repeat; + background-position: center center; + background-color: var(--text-folder-file-icon); + filter: hue-rotate(160deg); + -webkit-mask-image: url('data:image/svg+xml;utf8,'); +} + + +body.remove-arrow:not(.default-icons):not(.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked) .nav-folder-collapse-indicator::before { + display: none; +} +body.remove-arrow:not(.default-icons) :not([class*="mk-tree"]).nav-folder-title-content { + margin-left: -18px; +} + +body.remove-arrow:not(.default-icons) .tree-item.nav-folder.mod-root>.tree-item-self.nav-folder-title { + padding-left: 30px; + margin-left: -10px; +} + +body.remove-arrow .nav-folder-title .iconize-icon { + margin: 0 22px 0 -18px !important; +} + +body:not(.remove-file-icons) [data-type="starred"] .nav-file-icon .svg-icon { + padding: 4px 0 0; +} + +body:not(.remove-file-icons) .workspace-leaf-content[data-type="starred"] .nav-file-title-content::before { + display: none; +} +body:not(.remove-file-icons) .nav-file-title .nav-file-title-content:not(.mk-tree-text)::before { + position: relative; + content: ""; + display: inline-block; + width: 0.9rem; + opacity: 0.9; + top: 0.15rem; + height: 0.9rem; + margin-right: 5px; + background-size: contain; + background-repeat: no-repeat; + background-position: center center; + background-color: var(--text-folder-file-icon); + -webkit-mask-image: url('data:image/svg+xml;utf8,'); +} + +body:not(.remove-file-icons) .nav-file-title[data-path$=".pdf"] .nav-file-title-content::before { + -webkit-mask-image: url('data:image/svg+xml;utf8,'); + filter: hue-rotate(-45deg); +} + +body:not(.remove-file-icons) .nav-file-title[data-path$=".pdf"] .nav-file-tag { + background-color: var(--theme-color-translucent-01); + color: var(--theme-color); + filter: hue-rotate(-45deg); +} + +body:not(.remove-file-icons) .nav-file-title[data-path$=".jpg"] .nav-file-title-content::before, +body:not(.remove-file-icons) .nav-file-title[data-path$=".png"] .nav-file-title-content::before, +body:not(.remove-file-icons) .nav-file-title[data-path$=".svg"] .nav-file-title-content::before, +body:not(.remove-file-icons) .nav-file-title[data-path$=".gif"] .nav-file-title-content::before, +body:not(.remove-file-icons) .nav-file-title[data-path$=".jpeg"] .nav-file-title-content::before, +body:not(.remove-file-icons) .nav-file-title[data-path$=".bmp"] .nav-file-title-content::before { + -webkit-mask-image: url('data:image/svg+xml;utf8,'); + filter: hue-rotate(45deg); +} + +body:not(.remove-file-icons) .nav-file-title[data-path$=".jpg"] .nav-file-tag, +body:not(.remove-file-icons) .nav-file-title[data-path$=".png"] .nav-file-tag, +body:not(.remove-file-icons) .nav-file-title[data-path$=".svg"] .nav-file-tag, +body:not(.remove-file-icons) .nav-file-title[data-path$=".gif"] .nav-file-tag, +body:not(.remove-file-icons) .nav-file-title[data-path$=".jpeg"] .nav-file-tag, +body:not(.remove-file-icons) .nav-file-title[data-path$=".bmp"] .nav-file-tag { + background-color: var(--theme-color-translucent-01); + color: var(--theme-color); + filter: hue-rotate(45deg); +} + +body:not(.remove-file-icons) .nav-file-title[data-path$=".mp4"] .nav-file-title-content::before, +body:not(.remove-file-icons) .nav-file-title[data-path$=".webm"] .nav-file-title-content::before, +body:not(.remove-file-icons) .nav-file-title[data-path$=".ogv"] .nav-file-title-content::before, +body:not(.remove-file-icons) .nav-file-title[data-path$=".mov"] .nav-file-title-content::before, +body:not(.remove-file-icons) .nav-file-title[data-path$=".mkv"] .nav-file-title-content::before { + -webkit-mask-image: url('data:image/svg+xml;utf8,'); + filter: hue-rotate(90deg); +} + +body:not(.remove-file-icons) .nav-file-title[data-path$=".mp4"] .nav-file-tag, +body:not(.remove-file-icons) .nav-file-title[data-path$=".webm"] .nav-file-tag, +body:not(.remove-file-icons) .nav-file-title[data-path$=".ogv"] .nav-file-tag, +body:not(.remove-file-icons) .nav-file-title[data-path$=".mov"] .nav-file-tag, +body:not(.remove-file-icons) .nav-file-title[data-path$=".mkv"] .nav-file-tag { + background-color: var(--theme-color-translucent-01); + color: var(--theme-color); + filter: hue-rotate(90deg); +} + +body:not(.remove-file-icons) .nav-file-title[data-path$=".mp3"] .nav-file-title-content::before, +body:not(.remove-file-icons) .nav-file-title[data-path$=".wav"] .nav-file-title-content::before, +body:not(.remove-file-icons) .nav-file-title[data-path$=".m4a"] .nav-file-title-content::before, +body:not(.remove-file-icons) .nav-file-title[data-path$=".ogg"] .nav-file-title-content::before, +body:not(.remove-file-icons) .nav-file-title[data-path$=".3gp"] .nav-file-title-content::before, +body:not(.remove-file-icons) .nav-file-title[data-path$=".flac"] .nav-file-title-content::before { + -webkit-mask-image: url('data:image/svg+xml;utf8,'); + filter: hue-rotate(-90deg); +} + +body:not(.remove-file-icons) .nav-file-title[data-path$=".mp3"] .nav-file-tag, +body:not(.remove-file-icons) .nav-file-title[data-path$=".wav"] .nav-file-tag, +body:not(.remove-file-icons) .nav-file-title[data-path$=".m4a"] .nav-file-tag, +body:not(.remove-file-icons) .nav-file-title[data-path$=".ogg"] .nav-file-tag, +body:not(.remove-file-icons) .nav-file-title[data-path$=".3gp"] .nav-file-tag, +body:not(.remove-file-icons) .nav-file-title[data-path$=".flac"] .nav-file-tag { + background-color: var(--theme-color-translucent-01); + color: var(--theme-color); + filter: hue-rotate(-90deg); +} + +body:not(.remove-file-icons) .nav-file-title[data-path$=".canvas"] .nav-file-title-content::before { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23adb5bd' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='svg-icon lucide-layout-dashboard'%3E%3Crect x='3' y='3' width='7' height='9'%3E%3C/rect%3E%3Crect x='14' y='3' width='7' height='5'%3E%3C/rect%3E%3Crect x='14' y='12' width='7' height='9'%3E%3C/rect%3E%3Crect x='3' y='16' width='7' height='5'%3E%3C/rect%3E%3C/svg%3E"); + filter: hue-rotate(180deg); +} + +body:not(.remove-file-icons) .nav-file-title[data-path$=".canvas"] .nav-file-tag { + background-color: var(--theme-color-translucent-01); + color: var(--theme-color); + filter: hue-rotate(180deg); +} + +body:not(.remove-file-icons) .nav-file-title[data-path$=".excalidraw.md"] .nav-file-title-content::before { + -webkit-mask-image: url('data:image/svg+xml;utf8,'); + /* + -webkit-mask-image: url('data:image/svg+xml;utf8,');*/ + filter: hue-rotate(135deg); +} + +body:not(.remove-file-icons) .nav-file-title[data-path$=".loom"] .nav-file-title-content::before { + -webkit-mask-image: url('data:image/svg+xml;utf8,'); + filter: hue-rotate(200deg); +} +body:not(.remove-file-icons) .nav-file-title[data-path$=".loom"] .nav-file-tag { + background-color: var(--theme-color-translucent-01); + color: var(--theme-color); + filter: hue-rotate(200deg); +} + +body.dark-background-file:not(.remove-file-icons):not(.bt-toggle-colorful-folder.folder-style-change-options-colorful) .nav-file-title.is-active[data-path$=".md"]>.nav-file-title-content::before { + background-color: var(--white); +} +body:not(.remove-file-icons) .nav-file-title.is-active[data-path$=".md"]>.nav-file-title-content::before { + background-color: var(--text-folder-file-icon); + opacity: 1; +} + +body:not(.remove-custom-svg-icons) .workspace-leaf-content .view-header .view-actions svg.svg-icon.lucide-edit-3 > path, +body:not(.remove-custom-svg-icons) .workspace-leaf-content .view-header .view-actions svg.svg-icon.lucide-book-open > path { + display: none; +} + +body:not(.remove-custom-svg-icons) .workspace-leaf-content .view-header .view-actions svg.svg-icon.lucide-edit-3, +body:not(.remove-custom-svg-icons) .workspace-leaf-content .view-header .view-actions svg.svg-icon.lucide-book-open { + background-color: currentColor; +} + +body:not(.remove-custom-svg-icons) .workspace-leaf-content .view-action svg{ + width: 17px; + height: 17px; + background-repeat: no-repeat; +} + +body:not(.remove-custom-svg-icons) .workspace-leaf-content .view-header .view-actions svg.svg-icon.lucide-edit-3 { + -webkit-mask-image: url('data:image/svg+xml;utf8,'); +} + +body:not(.remove-custom-svg-icons) .workspace-leaf-content .view-header .view-actions svg.svg-icon.lucide-book-open { + -webkit-mask-image: url('data:image/svg+xml;utf8,'); + background-color: var(--theme-color); +} + +body.setting-default-frosted-glass [class="menu"] { + border: none; + backdrop-filter: blur(8px); + background-color: var(--bg-color-settings-3); + box-shadow: 0 0 8px var(--bg-color-settings-5); +} + +.menu-item.selected:not(.is-disabled):not(.is-label), +.menu-item:hover:not(.is-disabled):not(.is-label) { + background-color: var(--bg-color-settings-5); +} +body.toggle-bg-panel-page :is(.nav-files-container,.file-tree-plugin-view)::before { + content: ''; + display: block; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: no-repeat center/cover var(--panel-page-background-url-theme); + z-index: -1; +} + +body.toggle-bg-panel-page.theme-dark :is(.nav-files-container,.file-tree-plugin-view)::before { + opacity: var(--bg-panel-page-opacity-cp); +} + +body.toggle-bg-panel-page.theme-light :is(.nav-files-container,.file-tree-plugin-view)::before { + opacity: var(--bg-panel-page-opacity-cp); +} + +body.toggle-bg-panel-page.panel-page-bg-theme-dark-plant.theme-dark { + --panel-page-background-url-theme: url("data:image/avif;base64,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"); +} +body.toggle-bg-panel-page.panel-page-bg-theme-dark-custom.theme-dark { + --panel-page-background-url-theme: var(--background-panel-page-theme-dark-custom); +} + +body.toggle-bg-panel-page.panel-page-bg-theme-light-custom.theme-light { + --panel-page-background-url-theme: var(--background-panel-page-theme-light-custom); +} + + +body.background-image-settings-switch.toggle-nonoverlapping-bg .workspace-split.mod-root .view-content { + background: var(--background-nonoverlapping-note); +} + +/* Sea and sky for Blue Topaz */ +.workspace-split.mod-root .workspace-leaf:nth-child(n) .workspace-leaf-content[data-type="markdown"]::before { + content: ''; + display: block; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + opacity: 0.12; + background-size: 100% 100%; +} + +body.background-notebook-liked-switch .markdown-embed :is(.markdown-preview-view, .markdown-rendered), +body.background-notebook-liked-switch .cm-s-obsidian .cm-embed-block { + background: inherit !important; +} +body.background-notebook-liked-switch.notebook-liked-markdown-page-grid-notebook-1 .markdown-preview-view.markdown-rendered, +body.background-notebook-liked-switch.notebook-liked-markdown-page-grid-notebook-1 .cm-s-obsidian .cm-scroller { + background: var(--bg-color-notebook); + background-image: linear-gradient(90deg, var(--grid-notebook-line-color-1) 3%, transparent 0), linear-gradient(var(--grid-notebook-line-color-1) 3%, transparent 0); + background-size: 20px 20px; +} + +body:not(.toggle-fixed-pattern).background-notebook-liked-switch .markdown-preview-view.markdown-rendered, +body:not(.toggle-fixed-pattern).background-notebook-liked-switch .cm-s-obsidian .cm-scroller { + background-attachment: local !important; +} + +body.background-notebook-liked-switch.notebook-liked-markdown-page-dotted-notebook-1 .markdown-preview-view.markdown-rendered, +body.background-notebook-liked-switch.notebook-liked-markdown-page-dotted-notebook-1 .cm-s-obsidian .cm-scroller { + background: var(--bg-color-notebook); + background-image: radial-gradient(var(--dotted-notebook-dot-color) 10%, transparent 0); + background-size: 22px 22px; + background-position: 8px 8px; +} + +body.background-notebook-liked-switch.notebook-liked-markdown-page-dotted-notebook-2 .markdown-preview-view.markdown-rendered, +body.background-notebook-liked-switch.notebook-liked-markdown-page-dotted-notebook-2 .cm-s-obsidian .cm-scroller { + background: var(--bg-color-notebook); + background-image: radial-gradient(var(--dotted-notebook-dot-color) 10%, transparent 0), + radial-gradient(var(--dotted-notebook-dot-color) 10%, transparent 0); + background-size: 30px 30px; + background-position: 0 0, 15px 15px; +} + +/*https://www.jianshu.com/p/2b713844cfe9*/ +body.background-notebook-liked-switch.notebook-liked-markdown-page-grid-notebook-2 .markdown-preview-view.markdown-rendered, +body.background-notebook-liked-switch.notebook-liked-markdown-page-grid-notebook-2 .cm-s-obsidian .cm-scroller { + background: var(--bg-color-notebook); + background-image: + linear-gradient(var(--grid-notebook-line-color-2) 1px, transparent 0), + linear-gradient(90deg, var(--grid-notebook-line-color-2) 1px,transparent 0), + linear-gradient(var(--grid-notebook-line-color-1) 1px, + transparent 0), + linear-gradient(90deg,var(--grid-notebook-line-color-1) 1px, + transparent 0); + background-size: 75px 75px, 75px 75px, 15px 15px, 15px 15px; +} +body.background-notebook-liked-switch.notebook-liked-markdown-page-stripe-notebook-1 .markdown-preview-view.markdown-rendered, +body.background-notebook-liked-switch.notebook-liked-markdown-page-stripe-notebook-1 .cm-s-obsidian .cm-scroller { + background: var(--stripe-notebook-stripe-color); + background-image: repeating-linear-gradient(135deg, + hsla(0,0%,100%,.03), hsla(0,0%,100%,.03) 13px, transparent 0, transparent 30px); +} +body.background-notebook-liked-switch.notebook-liked-markdown-page-stripe-notebook-1.theme-light .markdown-preview-view.markdown-rendered, +body.background-notebook-liked-switch.notebook-liked-markdown-page-stripe-notebook-1.theme-light .cm-s-obsidian .cm-scroller { + background: var(--stripe-notebook-stripe-color); + background-image: repeating-linear-gradient(135deg, + hsla(0,0%,100%,.3), hsla(0,0%,100%,.3) 13px, transparent 0, transparent 30px); +} +body.background-notebook-liked-switch.notebook-liked-markdown-page-stripe-notebook-2 .markdown-preview-view.markdown-rendered, +body.background-notebook-liked-switch.notebook-liked-markdown-page-stripe-notebook-2 .cm-s-obsidian .cm-scroller { + background: var(--stripe-notebook-stripe-color); + background-image:repeating-linear-gradient(45deg, + hsla(0,0%,100%,.025), hsla(0,0%,100%,.025) 20px, transparent 0, transparent 60px), repeating-linear-gradient(-45deg, hsla(0,0%,100%,.025), hsla(0,0%,100%,.025) 20px, transparent 0, transparent 60px); +} +body.background-notebook-liked-switch.notebook-liked-markdown-page-stripe-notebook-2.theme-light .markdown-preview-view.markdown-rendered, +body.background-notebook-liked-switch.notebook-liked-markdown-page-stripe-notebook-2.theme-light .cm-s-obsidian .cm-scroller { + background: var(--stripe-notebook-stripe-color); + background-image:repeating-linear-gradient(45deg, + hsla(0,0%,100%,.3), hsla(0,0%,100%,.3) 20px, transparent 0, transparent 60px), repeating-linear-gradient(-45deg, hsla(0,0%,100%,.3), hsla(0,0%,100%,.3) 20px, transparent 0, transparent 60px); +} + +.workspace-leaf-content .floating-toc-div+.markdown-source-view .cm-editor { + padding-left: 0; +} + +body.toggle-split-note-background .workspace-split.mod-horizontal:is(.mod-left-split,.mod-right-split) .workspace-leaf-content .markdown-rendered, +body.toggle-split-note-background .workspace-split.mod-horizontal:is(.mod-left-split,.mod-right-split) .workspace-tab-container .workspace-leaf-content .cm-scroller, +body.toggle-split-note-background .workspace-split.mod-horizontal:is(.mod-left-split,.mod-right-split) .workspace-tab-container .workspace-leaf-content .markdown-reading-view { + background: initial; +} + +body.background-image-settings-switch .workspace-split.mod-root .workspace-leaf:nth-child(n) .workspace-leaf-content[data-type="markdown"]::before { + content: ''; + display: block; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + opacity: var(--bg-markdown-page-opacity-cp,0.25); + background-size: cover; +} + + +body.background-image-settings-switch.background-image-settings-markdown-page-transparent .workspace-split.mod-root { + --background-primary: transparent; + --tab-outline-color:transparent; +} + +body.background-image-settings-switch.background-image-settings-markdown-page-transparent.theme-dark .workspace-split.mod-root .workspace-tab-header.is-active { + background-color: transparent; +} +body.background-image-settings-switch.background-image-settings-markdown-page-transparent .mod-root .workspace-tabs .workspace-leaf { + background-color: unset; +} + + +body.background-image-settings-switch.background-image-settings-markdown-page-four-seasons .workspace-split.mod-root .workspace-leaf:nth-child(n) .workspace-leaf-content[data-type="markdown"]::before { + background-size: 100% 100%; +} + +body.background-image-settings-switch.background-image-settings-markdown-page-custom.theme-dark .workspace-split.mod-root .workspace-leaf .workspace-leaf-content[data-type="markdown"]::before { + background-image: var(--background-markdown-page-theme-dark-custom); +} + +body.background-image-settings-switch.background-image-settings-markdown-page-custom.theme-light .workspace-split.mod-root .workspace-leaf .workspace-leaf-content[data-type="markdown"]::before { + background-image: var(--background-markdown-page-theme-light-custom); +} +body.background-image-settings-switch.background-image-settings-markdown-page-custom .workspace-split.mod-root .workspace-leaf .workspace-leaf-content[data-type="markdown"]::before { +background-size:unset; +background-color: var(--custom-markdown-page-background-color); +opacity: var(--bg-markdown-page-opacity-cp,1); +} +/* ================================== */ +/* ============= publish ============ */ +/* ================================== */ +/* +.site-body .site-body-left-column-site-name { + color: var(--theme-color); + font-size: 2.5em; +} + +.modal.mod-publish .file-tree-item-checkbox { + filter: hue-rotate(var(--theme-color)); +} + +.graph-view-outer .graph-view-container, +.site-body-left-column, +.site-body-left-column:before { + background-color: var(--background-secondary); +} + +.theme-light .site-body-left-column, +.theme-light .site-body-left-column:before { + background-color: var(--background-secondary-alt-bg-4-bt-publish); +} + +.nav-view-outer .tree-item .tree-item .tree-item-children { + margin-left: 12px; + padding-left: 0; + border-left: 1px solid var(--background-modifier-border); + border-radius: 0; + transition: all 400ms ease-in; +} + +.nav-view-outer .tree-item .tree-item .tree-item-children:hover { + border-left-color: var(--theme-color); +} + +body:not(.default-icons) .nav-view-outer .tree-item-self.collapse-icon { + left: 0px; + top: 7px; + margin-top: 0px; +} + +body:not(.default-icons) .nav-view-outer .tree-item-self .tree-item-icon::before { + content: "↓"; + font-size: 14px; + font-family: 'Inter'; + font-weight: bold; + color: var(--text-accent); + transition: transform 10ms linear 0s; +} + +body:not(.default-icons) .nav-view-outer .tree-item-self .tree-item-icon svg { + display: none; + color: var(--accent-strong); + height: 7px; + width: 7px; +} + +body:not(.default-icons) .nav-view-outer .tree-item.is-collapsed .tree-item-icon.collapse-icon { + transform: translateX(0px) translateY(0px) rotate(-90deg); + opacity: 0.5; +} + +.nav-view-outer .tree-item-self.mod-active { + --background-secondary-alt: var(--interactive-accent); + --text-normal: #ffffff; +} + +.nav-view-outer .tree-item .tree-item-self.is-clickable { + color: var(--text-normal); + font-weight: 600; +} + +.nav-view-outer .tree-item .tree-item-self.is-clickable:hover { + background-color: var(--background-secondary-alt); +} + +.nav-view-outer .tree-item.is-collapsed .tree-item-self.is-clickable { + color: var(--text-muted); +} + +.outline-view-outer .tree-item .tree-item-children { + margin-left: 12px; + padding-left: 0; + border-left: 1px solid var(--background-modifier-border); + border-radius: 0; + transition: all 400ms ease-in; +} + +.outline-view-outer .tree-item.tree-item-children:hover { + border-left-color: var(--theme-color); +} + +.outline-view-outer .tree-item-self { + padding: 2px 6px 2px 10px; +} + +.outline-view-outer .tree-item-self.mod-active { + background-color: var(--theme-color-translucent-015); +} + +.site-body :is(.markdown-preview-view,.markdown-rendered) .tag:not(.token) { + color: var(--tag-text); +} + +.site-body .publish-renderer :is(.markdown-preview-view,.markdown-rendered) ol>li { + border-left: 0.125em solid var(--list-ol-block-color); +} + +.site-body .publish-renderer :is(.markdown-preview-view,.markdown-rendered) ul>li:not(.task-list-item) { + border-left: 0.125em solid var(--list-ul-block-color); +} +*/ + +/* Coloured Folders for Blue Topaz 0-Z, v0.3 +modified from the snippet created by @Lithou */ +body.bt-toggle-colorful-folder:is(.folder-style-change-options-colorful,.folder-style-change-options-colorful-order) .nav-folder-title { + margin-bottom: 0; +} + +body.bt-toggle-colorful-folder:is(.folder-style-change-options-colorful,.folder-style-change-options-colorful-order).theme-dark { + --FoldText: #cbcbcb; +} + +/*color scheme-1, high transparency*/ +body.bt-toggle-colorful-folder.folder-colorful-one.theme-dark { + --Fold0: #ff40403d; + --Fold1: #f31f7448; + --Fold2: #be25ff49; + --Fold3: #7337ff67; + --Fold4: #2f4bff65; + --Fold5: #1372d188; + --Fold6: #0289d17e; + --Fold7: #0096a77e; + --Fold8: #00796b94; + --Fold9: #388e3c80; + --FoldA: #689f3883; + --FoldB: #afb42b81; + --FoldC: #f9ab255d; + --FoldD: #ff910063; + --FoldE: #ef6c0067; + --FoldF: #d8421559; + --FoldG: #1e5f74ca; + --FoldH: #c53571b9; + --FoldI: #4b5d67d0; + --FoldJ: #295d6d7a; + --FoldK: #5734d691; + --FoldL: #4c4c6dda; + --FoldM: #ad62aab9; + --FoldN: #c490e4a1; + --FoldO: #b42a3d8e; + --FoldP: #af173880; + --FoldQ: #4c25a0b2; + --FoldR: #5f84dbc4; + --FoldS: #c06c84ce; + --FoldT: #684656d5; + --FoldU: #797d8581; + --FoldV: #556e53e3; + --FoldW: #2f5241b2; + --FoldX: #834c69ed; + --FoldY: #df85c885; + --FoldZ: #362222ea; +} + +/*color scheme-2, low transparency*/ +body.bt-toggle-colorful-folder.folder-colorful-two.theme-dark { + --Fold0: #823131d7; + --Fold1: #96174ad7; + --Fold2: #731a9ad7; + --Fold3: #543796d7; + --Fold4: #2b3ba2d7; + --Fold5: #185898d7; + --Fold6: #1e6b95d7; + --Fold7: #187782d7; + --Fold8: #0d6a5fd7; + --Fold9: #1f7624d7; + --FoldA: #2f6007ef; + --FoldB: #6c7e12ef; + --FoldC: #7b7e0def; + --FoldD: #7f6c0cef; + --FoldE: #7d550cef; + --FoldF: #76350aef; + --FoldG: #671c14ef; + --FoldH: #710d0def; + --FoldI: #7a0d36ef; + --FoldJ: #710b52ef; + --FoldK: #710e7aef; + --FoldL: #621287ef; + --FoldM: #470f7bef; + --FoldN: #381182ef; + --FoldO: #1c1089ef; + --FoldP: #192698ef; + --FoldQ: #1737a2ef; + --FoldR: #0e4295ef; + --FoldS: #0f5495ef; + --FoldT: #0f5f8eef; + --FoldU: #0d687eef; + --FoldV: #0a7373ef; + --FoldW: #0d6e5def; + --FoldX: #0b6542ef; + --FoldY: #0a642def; + --FoldZ: #105b09ef; +} + +/*color scheme-3*/ +body.bt-toggle-colorful-folder.folder-colorful-three.theme-dark { + --Fold0: #002044d7; + --Fold1: #042b58d7; + --Fold2: #032d5dd7; + --Fold3: #032f60d7; + --Fold4: #04356ed7; + --Fold5: #053c7ad7; + --Fold6: #0f4a8ed7; + --Fold7: #18559ad7; + --Fold8: #1e5fa9d7; + --Fold9: #296bb6d7; + --FoldA: #003404ef; + --FoldB: #014406ef; + --FoldC: #004c06ef; + --FoldD: #005607ef; + --FoldE: #005d08ef; + --FoldF: #006c09ef; + --FoldG: #007a06ef; + --FoldH: #4e3200ef; + --FoldI: #5d3c00ef; + --FoldJ: #6c4600ef; + --FoldK: #784e00ef; + --FoldL: #8c5b00ef; + --FoldM: #915e00ef; + --FoldN: #a06800ef; + --FoldO: #5d0000ef; + --FoldP: #640000ef; + --FoldQ: #780000ef; + --FoldR: #870000ef; + --FoldS: #930000ef; + --FoldT: #a20000ef; + --FoldU: #0a0f58ef; + --FoldV: #050b64ef; + --FoldW: #091075ef; + --FoldX: #131a82ef; + --FoldY: #1f2791ef; + --FoldZ: #2a3296ef; +} + +/*color scheme-4*/ +body.bt-toggle-colorful-folder.folder-colorful-four.theme-dark { + --Fold0: #002f65d7; + --Fold1: #003675d7; + --Fold2: #003d82d7; + --Fold3: #004696d7; + --Fold4: #0053b1d7; + --Fold5: #0657b5d7; + --Fold6: #0b66ced7; + --Fold7: #156cd0d7; + --Fold8: #2278dad7; + --Fold9: #2879d6d7; + --FoldA: #001e5fef; + --FoldB: #002473ef; + --FoldC: #002d90ef; + --FoldD: #0135a5ef; + --FoldE: #073bb6ef; + --FoldF: #0d46c2ef; + --FoldG: #1253d6ef; + --FoldH: #002351ef; + --FoldI: #00306eef; + --FoldJ: #05336fef; + --FoldK: #093c7eef; + --FoldL: #0f4489ef; + --FoldM: #19529def; + --FoldN: #2965b3ef; + --FoldO: #003156ef; + --FoldP: #003f6fef; + --FoldQ: #004b84ef; + --FoldR: #005190ef; + --FoldS: #07599bef; + --FoldT: #1c6db0ef; + --FoldU: #003d5aef; + --FoldV: #004d71ef; + --FoldW: #005c87ef; + --FoldX: #066996ef; + --FoldY: #1379a9ef; + --FoldZ: #1b89bbef; +} + +/*color scheme-5*/ +body.bt-toggle-colorful-folder.folder-colorful-five.theme-dark { + --Fold0: #7b7b05d7; + --Fold1: #2d7a04d7; + --Fold2: #097a4bd7; + --Fold3: #09756fd7; + --Fold4: #0a6b7ad7; + --Fold5: #0b556ed7; + --Fold6: #0b426fd7; + --Fold7: #0d226ed7; + --Fold8: #350e6cd7; + --Fold9: #5b0254d7; + --FoldA: #350e6cd7; + --FoldB: #0d226ed7; + --FoldC: #0b426fd7; + --FoldD: #0b556ed7; + --FoldE: #09756fd7; + --FoldF: #097a4bd7; + --FoldG: #2d7a04d7; + --FoldH: #7b7b05d7; + --FoldI: #2d7a04d7; + --FoldJ: #097a4bd7; + --FoldK: #09756fd7; + --FoldL: #0b556ed7; + --FoldM: #0b556ed7; + --FoldN: #0b426fd7; + --FoldO: #0d226ed7; + --FoldP: #350e6cd7; + --FoldQ: #5b0254d7; + --FoldR: #350e6cd7; + --FoldS: #0d226ed7; + --FoldT: #0b426fd7; + --FoldU: #0b556ed7; + --FoldV: #0b556ed7; + --FoldW: #09756fd7; + --FoldX: #097a4bd7; + --FoldY: #2d7a04d7; + --FoldZ: #7b7b05d7; +} + +body.bt-toggle-colorful-folder:is(.folder-style-change-options-colorful,.folder-style-change-options-colorful-order).theme-light { + --FoldText: #000000; +} + +/*color scheme-1, high transparency*/ +body.bt-toggle-colorful-folder.folder-colorful-one.theme-light { + --Fold0: #f3bfbf54; + --Fold1: #ffbdd769; + --Fold2: #ebbcff69; + --Fold3: #ccb7ff65; + --Fold4: #b1bcff5e; + --Fold5: #98c6f45d; + --Fold6: #99ceeb5d; + --Fold7: #81dee95d; + --Fold8: #6ec7bc5b; + --Fold9: #8dde9162; + --FoldA: #a5dd745e; + --FoldB: #c9d96c5e; + --FoldC: #dbdd6a65; + --FoldD: #e5cb5965; + --FoldE: #e6b25365; + --FoldF: #e5915965; + --FoldG: #df756765; + --FoldH: #f46f6f65; + --FoldI: #f16fa16e; + --FoldJ: #ec6bc66e; + --FoldK: #de6ce86e; + --FoldL: #be62e96e; + --FoldM: #ad6cea6e; + --FoldN: #966ce66e; + --FoldO: #786be56e; + --FoldP: #717ce26e; + --FoldQ: #748fe76e; + --FoldR: #6f9ee96e; + --FoldS: #6fade86e; + --FoldT: #68b8e76e; + --FoldU: #63c9e36e; + --FoldV: #6ed3d36e; + --FoldW: #61c0b06e; + --FoldX: #4dbc916e; + --FoldY: #52bb7b6e; + --FoldZ: #5fbb576e; +} + +/*color scheme-2, low transparency*/ +body.bt-toggle-colorful-folder.folder-colorful-two.theme-light { + --Fold0: #ffe2e2; + --Fold1: #ffdee9; + --Fold2: #f6e1ff; + --Fold3: #e9dfff; + --Fold4: #e1e5ff; + --Fold5: #d4eaff; + --Fold6: #cdedff; + --Fold7: #ccf2f7; + --Fold8: #d5f8f4; + --Fold9: #d8f8da; + --FoldA: #ecffdb; + --FoldB: #f4fbd2; + --FoldC: #f7f8cf; + --FoldD: #f7f0cc; + --FoldE: #fdeed2; + --FoldF: #ffe4d3; + --FoldG: #ffdbd6; + --FoldH: #ffdfdf; + --FoldI: #ffdce9; + --FoldJ: #ffdbf4; + --FoldK: #fcddff; + --FoldL: #f4dbff; + --FoldM: #ecd7ff; + --FoldN: #e5d7ff; + --FoldO: #dad6ff; + --FoldP: #d6daff; + --FoldQ: #d7e1ff; + --FoldR: #d5e5ff; + --FoldS: #d3eaff; + --FoldT: #d3eeff; + --FoldU: #d6f7ff; + --FoldV: #d6ffff; + --FoldW: #dafff8; + --FoldX: #dcfcef; + --FoldY: #dcffe9; + --FoldZ: #defcdc; +} + + +/*color scheme-3*/ +body.bt-toggle-colorful-folder.folder-colorful-three.theme-light { + --Fold0: #80dc87ef; + --Fold1: #8fe296ef; + --Fold2: #9de5a3ef; + --Fold3: #b1ebb6ef; + --Fold4: #bbebbfef; + --Fold5: #c8ebcbef; + --Fold6: #d9ecdaef; + --FoldG: #50a2ffd7; + --FoldF: #60aaffd7; + --FoldE: #6eb2ffd7; + --FoldD: #76b6ffd7; + --FoldC: #89c0ffd7; + --FoldB: #93c5ffd7; + --FoldA: #aad2ffd7; + --Fold9: #bbdbffd7; + --Fold8: #c8e2ffd7; + --Fold7: #d2e7ffd7; + --FoldH: #ffbc40ef; + --FoldI: #ffc75fef; + --FoldJ: #ffcd71ef; + --FoldK: #ffd485ef; + --FoldL: #ffe0a6ef; + --FoldM: #ffe7bbef; + --FoldN: #ffedcbef; + --FoldO: #ff7676ef; + --FoldP: #ff9494ef; + --FoldQ: #ffa1a1ef; + --FoldR: #ffb8b8ef; + --FoldS: #ffcbcbef; + --FoldT: #ffe1e1ef; + --FoldU: #a38fffef; + --FoldV: #b09fffef; + --FoldW: #c2b5ffef; + --FoldX: #d2c6ffef; + --FoldY: #e0daffef; + --FoldZ: #eae4ffef; +} + +/*color scheme-4*/ +body.bt-toggle-colorful-folder.folder-colorful-four.theme-light { + --Fold0: #50a2ffd7; + --Fold1: #60aaffd7; + --Fold2: #6eb2ffd7; + --Fold3: #76b6ffd7; + --Fold4: #89c0ffd7; + --Fold5: #93c5ffd7; + --Fold6: #aad2ffd7; + --Fold7: #bbdbffd7; + --Fold8: #c8e2ffd7; + --Fold9: #d2e7ffd7; + --FoldA: #709effef; + --FoldB: #81a9ffef; + --FoldC: #92b5ffef; + --FoldD: #a4c1ffef; + --FoldE: #b4cbffef; + --FoldF: #c3d6ffef; + --FoldG: #d4e2ffef; + --FoldH: #7ab3ffef; + --FoldI: #86bbffef; + --FoldJ: #9dc7ffef; + --FoldK: #acd0ffef; + --FoldL: #b1d3ffef; + --FoldM: #c6dfffef; + --FoldN: #d1e5ffef; + --FoldO: #80c8ffef; + --FoldP: #97d2ffef; + --FoldQ: #a9daffef; + --FoldR: #b7e0ffef; + --FoldS: #c8e6ffef; + --FoldT: #d9eeffef; + --FoldU: #7dd6ffef; + --FoldV: #94ddffef; + --FoldW: #a4e2ffef; + --FoldX: #b5e8ffef; + --FoldY: #c5edffef; + --FoldZ: #d2f1ffef; +} + +/*color scheme-5*/ +body.bt-toggle-colorful-folder.folder-colorful-five.theme-light { + --Fold0: #e4e483d7; + --Fold1: #bde7a7d7; + --Fold2: #9de2c5d7; + --Fold3: #93dad6d7; + --Fold4: #9de2ecd7; + --Fold5: #8ddcf7d7; + --Fold6: #8acaffd7; + --Fold7: #aebdf3d7; + --Fold8: #cab2ebd7; + --Fold9: #e9b1e5d7; + --FoldA: #cab2ebd7; + --FoldB: #aebdf3d7; + --FoldC: #8acaffd7; + --FoldD: #9de2ecd7; + --FoldE: #93dad6d7; + --FoldF: #9de2c5d7; + --FoldG: #bde7a7d7; + --FoldH: #e4e483d7; + --FoldI: #bde7a7d7; + --FoldJ: #9de2c5d7; + --FoldK: #93dad6d7; + --FoldL: #9de2ecd7; + --FoldM: #8ddcf7d7; + --FoldN: #8acaffd7; + --FoldO: #aebdf3d7; + --FoldP: #cab2ebd7; + --FoldQ: #e9b1e5d7; + --FoldR: #cab2ebd7; + --FoldS: #aebdf3d7; + --FoldT: #8acaffd7; + --FoldU: #8ddcf7d7; + --FoldV: #9de2ecd7; + --FoldW: #93dad6d7; + --FoldX: #9de2c5d7; + --FoldY: #bde7a7d7; + --FoldZ: #e4e483d7; +} + +/*color scheme-custom*/ +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) { + --Fold0: hue-rotate(350deg); + --Fold1: hue-rotate(340deg); + --Fold2: hue-rotate(330deg); + --Fold3: hue-rotate(320deg); + --Fold4: hue-rotate(310deg); + --Fold5: hue-rotate(300deg); + --Fold6: hue-rotate(290deg); + --Fold7: hue-rotate(280deg); + --Fold8: hue-rotate(270deg); + --Fold9: hue-rotate(260deg); + --FoldA: hue-rotate(250deg); + --FoldB: hue-rotate(240deg); + --FoldC: hue-rotate(230deg); + --FoldD: hue-rotate(220deg); + --FoldE: hue-rotate(210deg); + --FoldF: hue-rotate(200deg); + --FoldG: hue-rotate(190deg); + --FoldH: hue-rotate(180deg); + --FoldJ: hue-rotate(170deg); + --FoldK: hue-rotate(160deg); + --FoldL: hue-rotate(150deg); + --FoldM: hue-rotate(140deg); + --FoldN: hue-rotate(130deg); + --FoldO: hue-rotate(120deg); + --FoldP: hue-rotate(110deg); + --FoldQ: hue-rotate(100deg); + --FoldR: hue-rotate(90deg); + --FoldS: hue-rotate(80deg); + --FoldT: hue-rotate(70deg); + --FoldU: hue-rotate(60deg); + --FoldV: hue-rotate(50deg); + --FoldW: hue-rotate(40deg); + --FoldX: hue-rotate(30deg); + --FoldY: hue-rotate(20deg); + --FoldZ: hue-rotate(10deg); +} + +body.bt-toggle-colorful-folder.folder-colorful-six { + --Fold0: #fc5c65; + --Fold1: #fd9644; + --Fold2: #fed330; + --Fold3: #26de81; + --Fold4: #2bcbba; + --Fold5: #45aaf2; + --Fold6: #4b7bec; + --Fold7: #a55eea; + --Fold8: #d1d8e0; + --Fold9: #778ca3; + --FoldA: #eb3b5a; + --FoldB: #fa8231; + --FoldC: #f7b731; + --FoldD: #20bf6b; + --FoldE: #0fb9b1; + --FoldF: #2d98da; + --FoldG: #3867d6; + --FoldH: #8854d0; + --FoldI: #a5b1c2; + --FoldJ: #4b6584; + --FoldK: #fc5c65; + --FoldL: #fd9644; + --FoldM: #fed330; + --FoldN: #26de81; + --FoldO: #2bcbba; + --FoldP: #45aaf2; + --FoldQ: #4b7bec; + --FoldR: #a55eea; + --FoldS: #d1d8e0; + --FoldT: #778ca3; + --FoldU: #eb3b5a; + --FoldV: #fa8231; + --FoldW: #f7b731; + --FoldX: #20bf6b; + --FoldY: #0fb9b1; + --FoldZ: #2d98da; +} +/* =======folder-colorful-custom============= */ +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder .nav-folder-title:hover, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder .nav-file-title:hover{ + font-weight: bold; +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title+.nav-folder-children .nav-file-title.is-active { + opacity: 0.8; + background-color: var(--folder-colorful-custom-color); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="0"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="0"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="0"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--Fold0); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="1"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="1"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="1"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--Fold1); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="2"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="2"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="2"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--Fold2); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="3"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="3"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="3"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--Fold3); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="4"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="4"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="4"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--Fold4); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="5"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="5"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="5"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--Fold5); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="6"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="6"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="6"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--Fold6); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="7"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="7"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="7"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--Fold7); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="8"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="8"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="8"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--Fold8); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="9"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="9"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="9"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--Fold9); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="A"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="A"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="A"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldA); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="B"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="B"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="B"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldB); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="C"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="C"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="C"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldC); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="D"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="D"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="D"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldD); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="E"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="E"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="E"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldE); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="F"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="F"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="F"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldF); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="G"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="G"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="G"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldG); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="H"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="H"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="H"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldH); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="I"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="I"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="I"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldI); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="J"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="J"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="J"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldJ); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="K"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="K"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="K"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldK); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="L"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="L"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="L"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldL); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="M"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="M"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="M"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldM); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="N"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="N"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="N"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldN); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="O"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="O"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="O"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldO); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="P"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="P"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="P"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldP); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="Q"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="Q"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="Q"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldQ); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="R"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="R"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="R"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldR); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="S"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="S"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="S"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldS); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="T"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="T"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="T"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldT); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="U"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="U"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="U"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldU); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="V"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="V"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="V"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldV); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="W"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="W"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="W"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldW); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="X"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="X"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="X"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldX); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="Y"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="Y"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="Y"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldY); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="Z"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="Z"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="Z"]+.nav-folder-children .nav-file-title.is-active { + filter: var(--FoldZ); +} + +/* ===folder-style-change-options-colorful-order ============ */ + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder .nav-file-title { + color: var(--FoldText); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder .nav-folder-title.is-active, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder .nav-folder-title:hover { + font-weight: bold; + filter: saturate(150%); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+2) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+2) .nav-folder-title+.nav-folder-children { + background-color: var(--Fold0); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+3) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+3) .nav-folder-title+.nav-folder-children { + background-color: var(--Fold1); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+4) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+4) .nav-folder-title+.nav-folder-children { + background-color: var(--Fold2); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+5) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+5) .nav-folder-title+.nav-folder-children { + background-color: var(--Fold3); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+6) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+6) .nav-folder-title+.nav-folder-children { + background-color: var(--Fold4); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+7) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+7) .nav-folder-title+.nav-folder-children { + background-color: var(--Fold5); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+8) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+8) .nav-folder-title+.nav-folder-children { + background-color: var(--Fold6); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+9) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+9) .nav-folder-title+.nav-folder-children { + background-color: var(--Fold7); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+10) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+10) .nav-folder-title+.nav-folder-children { + background-color: var(--Fold8); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+11) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+11) .nav-folder-title+.nav-folder-children { + background-color: var(--Fold9); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+12) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+12) .nav-folder-title+.nav-folder-children { + background-color: var(--FoldA); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+13) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+13) .nav-folder-title+.nav-folder-children { + background-color: var(--FoldB); +} + +/*=====folder colorful title=====*/ +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder .nav-folder-title.is-active, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder .nav-file-title.is-active, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder .nav-folder-title:hover, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder .nav-file-title:hover{ + font-weight: bold; + filter: saturate(150%); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder .nav-folder-title { + font-weight: 600; +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+2) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+2) .nav-file-title { + color: var(--Fold0); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+3) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+3) .nav-file-title { + color: var(--Fold1); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+4) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+4) .nav-file-title{ + color: var(--Fold2); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+5) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+5) .nav-file-title { + color: var(--Fold3); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+6) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+6) .nav-file-title { + color: var(--Fold4); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+7) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+7) .nav-file-title { + color: var(--Fold5); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+8) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+8) .nav-file-title { + color: var(--Fold6); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+9) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+9) .nav-file-title { + color: var(--Fold7); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+10) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+10) .nav-file-title { + color: var(--Fold8); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+11) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+11) .nav-file-title { + color: var(--Fold9); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+12) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+12) .nav-file-title { + color: var(--FoldA); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+13) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+13) .nav-file-title { + color: var(--FoldB); +} + +/*=====folder-colorful-custom=====*/ +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-order.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder .nav-folder-title+.nav-folder-children { + background-color: var(--folder-colorful-custom-color); +} + +body.bt-toggle-colorful-folder:is(.folder-style-change-options-colorful,.folder-style-change-options-colorful-order,.folder-style-change-options-colorful-title) { + --folder-colorful-custom-color: var(--theme-color); +} + +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder .nav-folder-title.is-active, +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder .nav-file-title.is-active, +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder .nav-folder-title:hover, +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder .nav-file-title:hover{ + font-weight: bold; + filter: saturate(150%); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder .nav-folder-title, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-title.folder-colorful-custom .nav-folder.mod-root>.nav-folder-children>.nav-folder .nav-file-title { + color:var(--folder-colorful-custom-color); + font-weight: 600; +} +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+2) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+2) .nav-file-title { + filter: var(--Fold0); +} +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+3) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+3) .nav-file-title { + filter: var(--Fold1); +} +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+4) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+4) .nav-file-title { + filter: var(--Fold2); +} +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+5) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+5) .nav-file-title { + filter: var(--Fold3); +} +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+6) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+6) .nav-file-title { + filter: var(--Fold4); +} +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+7) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+7) .nav-file-title { + filter: var(--Fold5); +} +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+8) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+8) .nav-file-title { + filter: var(--Fold6); +} +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+9) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+9) .nav-file-title { + filter: var(--Fold7); +} +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+10) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+10) .nav-file-title { + filter: var(--Fold8); +} +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+11) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+11) .nav-file-title { + filter: var(--Fold9); +} +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+12) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+12) .nav-file-title { + filter: var(--FoldA); +} +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+13) .nav-folder-title, +body.bt-toggle-colorful-folder.folder-colorful-custom:not(.folder-style-change-options-colorful-default) .nav-folder.mod-root>.nav-folder-children>.nav-folder:nth-child(12n+13) .nav-file-title { + filter: var(--FoldB); +} + +/* Set up explorer container margins */ +body.bt-toggle-colorful-folder:is(.folder-style-change-options-colorful,.folder-style-change-options-colorful-order) .nav-files-container { + margin: 0 5px; +} + +/* Remove collapse arrow from top level folders */ +body.remove-arrow.bt-toggle-colorful-folder:is(.folder-style-change-options-colorful,.folder-style-change-options-colorful-order) .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title>.nav-folder-collapse-indicator { + display: none; +} + +/* Top Level Folder Titles */ +body.bt-toggle-colorful-folder:is(.folder-style-change-options-colorful,.folder-style-change-options-colorful-order) .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title { + color: var(--FoldText); + padding: var(--nav-item-parent-padding); + padding-bottom: 4px; + /* padding-left: 3px; */ + margin-top: 3px; + /* space between top level sections */ + border-radius: 5px 5px 0 0; +} + +/* Rounded borders */ +body.bt-toggle-colorful-folder:is(.folder-style-change-options-colorful,.folder-style-change-options-colorful-order) .nav-folder.mod-root>.nav-folder-children>.nav-folder.is-collapsed>.nav-folder-title { + border-radius: 5px; +} + +/* General Nav Folder Children (this is the part that expands from each top level folder) */ +body.bt-toggle-colorful-folder:is(.folder-style-change-options-colorful,.folder-style-change-options-colorful-order) .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-children { + margin-left: 0; + border-radius: 0 0 5px 5px; + padding-bottom: 5px; + border-left: 0px solid; + padding-left:1em; +} + +body.bt-toggle-colorful-folder:is(.folder-style-change-options-colorful,.folder-style-change-options-colorful-order) .nav-file-title { + padding-left: 5px; +} + +body.bt-toggle-colorful-folder:is(.folder-style-change-options-colorful,.folder-style-change-options-colorful-order) .nav-file-title-content { + color: var(--FoldText); +} + +/* +body.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder>.nav-folder-children { + margin-left: 0; + padding-left: 0; + border-left: unset !important; + border-radius: 0; + transition: all 400ms ease-in; +} +*/ +body.bt-toggle-colorful-folder:is(.folder-style-change-options-colorful,.folder-style-change-options-colorful-order).is-mobile .nav-folder-title { + margin-bottom: 0; +} + +body.bt-toggle-colorful-folder:is(.folder-style-change-options-colorful,.folder-style-change-options-colorful-order) .nav-folder-children .nav-folder-children { + border-left: 1px solid var(--text-muted); +} + +body.bt-toggle-colorful-folder:is(.folder-style-change-options-colorful,.folder-style-change-options-colorful-order).is-mobile .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-children { + padding-bottom: 5px; +} + +/* active file increase font size and removes normal highlight marker */ +body.bt-toggle-colorful-folder:is(.folder-style-change-options-colorful,.folder-style-change-options-colorful-order) .nav-file-title.is-active { + background-color: var(--theme-color-translucent-015); +} + +/* Adds hemisphere marker to active file instead */ +body.bt-toggle-colorful-folder:is(.folder-style-change-options-colorful,.folder-style-change-options-colorful-order) .nav-file-title.is-active::before { + content: ''; + position: absolute; + bottom: -1px; + left: 0; + height: 2px; + width: 100%; + background-image: linear-gradient(to right, var(--theme-color), transparent 90%); +} + +body.unmuted-collapsed-folder.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.is-collapsed { + opacity: 1; +} + +/* 16 Top level Folders By Starting Digit (0-F) +These are set for me by leading number/letter which also ensures they are in the correct order when sorted alphabetically +You can change these to match your use case. +*/ +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="0"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="0"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="0"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--Fold0); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="1"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="1"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="1"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--Fold1); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="2"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="2"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="2"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--Fold2); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="3"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="3"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="3"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--Fold3); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="4"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="4"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="4"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--Fold4); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="5"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="5"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="5"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--Fold5); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="6"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="6"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="6"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--Fold6); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="7"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="7"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="7"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--Fold7); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="8"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="8"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="8"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--Fold8); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="9"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="9"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="9"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--Fold9); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="A"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="A"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="A"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldA); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="B"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="B"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="B"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldB); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="C"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="C"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="C"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldC); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="D"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="D"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="D"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldD); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="E"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="E"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="E"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldE); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="F"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="F"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="F"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldF); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="G"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="G"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="G"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldG); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="H"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="H"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="H"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldH); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="I"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="I"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="I"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldI); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="J"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="J"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="J"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldJ); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="K"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="K"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="K"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldK); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="L"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="L"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="L"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldL); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="M"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="M"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="M"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldM); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="N"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="N"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="N"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldN); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="O"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="O"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="O"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldO); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="P"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="P"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="P"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldP); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="Q"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="Q"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="Q"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldQ); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="R"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="R"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="R"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldR); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="S"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="S"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="S"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldS); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="T"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="T"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="T"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldT); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="U"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="U"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="U"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldU); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="V"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="V"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="V"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldV); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="W"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="W"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="W"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldW); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="X"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="X"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="X"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldX); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="Y"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="Y"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="Y"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldY); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="Z"], +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="Z"]+.nav-folder-children, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children>.nav-folder>.nav-folder-title[data-path^="Z"]+.nav-folder-children .nav-file-title.is-active { + background-color: var(--FoldZ); +} +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder.mod-root>.nav-folder-children .nav-file-title.is-active { + filter: hue-rotate(110deg); +} +/* Scrollbars eliminated +body.folder-style-change-options-colorful .workspace-leaf-content[data-type='file-explorer'] ::-webkit-scrollbar { + width: 0px; + height: 0px; +} +*/ + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful .nav-folder-title:hover { + font-weight: bold; + filter: saturate(250%); +} + +body.bt-toggle-colorful-folder:is(.folder-style-change-options-colorful,.folder-style-change-options-colorful-order) .theme-dark .workspace-leaf-content[data-type="file-explorer"] { + background-color: var(--background-secondary-alt); +} + +body.bt-toggle-colorful-folder:is(.folder-style-change-options-colorful,.folder-style-change-options-colorful-order) .nav-folder.mod-root>.nav-folder-title { + background-color: initial; +} + +/*style settings blockquote quotation marks*/ +body.blockquote-style-quotation-mark .markdown-source-view.mod-cm6.is-live-preview .HyperMD-quote:before, +body.blockquote-style-quotation-mark .markdown-source-view.mod-cm6 .cm-blockquote-border:before { + border-left: none; +} +body.blockquote-style-quotation-mark :is(.markdown-preview-view,.markdown-rendered) blockquote { + color: var(--text-normal); + box-shadow: 0 0.8rem 2rem rgba(0, 0, 0, 0.1); +} + +body.blockquote-style-quotation-mark :is(.markdown-preview-view,.markdown-rendered) blockquote { + padding-left: 35px; + padding-right: 10px; + margin-inline-start: 1%; + margin-inline-end: 1%; + border-left-width: 0px; +} + +body.blockquote-style-quotation-mark :is(.markdown-preview-view,.markdown-rendered) blockquote p { + position: relative; + margin-left: 0.7em; + margin-right: 0; + font-size: var(--font-size-preview-blockquote); +} + +body.blockquote-style-quotation-mark :is(.markdown-preview-view,.markdown-rendered) blockquote p:first-of-type::before { + content: '\ee81'; + font-size: 2em; + font-family: boxicons; + color: var(--text-folder-file-icon); + position: absolute; + top: -0.4em; + left: -1.2em; +} + +body.blockquote-style-quotation-mark +.markdown-source-view.mod-cm6.is-live-preview +.HyperMD-quote:not(.cm-active) > .cm-formatting.cm-formatting-quote.cm-quote::before { + content: '\ee81'; + font-size: 1.5em; + font-family: boxicons; + color: var(--text-folder-file-icon); + position: absolute; + margin-left: -0.8em; +} +body.blockquote-style-quotation-mark .markdown-source-view.mod-cm6.is-live-preview .HyperMD-quote + .HyperMD-quote > .cm-formatting.cm-formatting-quote.cm-quote::before { + display: none; +} +body.blockquote-style-quotation-mark .markdown-source-view.mod-cm6.is-live-preview .cm-content div.HyperMD-quote .cm-blockquote-border { + border: none; +} + +/*speech bubble-1*/ +body.blockquote-style-speech-bubble-one :is(.markdown-preview-view,.markdown-rendered):not(.kanban-plugin__markdown-preview-view) blockquote { + position: relative; + color: var(--theme-color); + font-weight: normal; + line-height: 1.5; + margin-top: 2em; + margin-bottom: 2.5em; + border: 3px solid; + border-radius: 20px; + padding: 10px 15px; + background: var(--background-primary) !important; +} + +body.blockquote-style-speech-bubble-one .theme-dark :is(.markdown-preview-view,.markdown-rendered):not(.kanban-plugin__markdown-preview-view) blockquote { + background-color: var(--background-primary) !important; +} + +body.blockquote-style-speech-bubble-one :is(.markdown-preview-view,.markdown-rendered):not(.kanban-plugin__markdown-preview-view) blockquote p { + color: var(--text-normal); +} + +body.blockquote-style-speech-bubble-one :is(.markdown-preview-view,.markdown-rendered):not(.kanban-plugin__markdown-preview-view) blockquote:after { + content: ''; + position: absolute; + border: 2.5px solid var(--theme-color); + border-radius: 35px 0 0 0; + width: 1.75rem; + height: 3.45rem; + bottom: -3.65rem; + left: 1.8rem; + border-bottom: none; + border-left: none; + border-right: none; + z-index: 3; +} + +body.blockquote-style-speech-bubble-one :is(.markdown-preview-view,.markdown-rendered):not(.kanban-plugin__markdown-preview-view) blockquote:before { + content: ''; + position: absolute; + width: 25px; + border: 4px solid var(--background-primary); + bottom: -4px; + left: 20px; + z-index: 2; +} + +/*speech bubble-2*/ +/*adapted from https://codepen.io/mchernin34/pen/ojXvLq*/ +body.blockquote-style-speech-bubble-two :is(.markdown-preview-view,.markdown-rendered):not(.kanban-plugin__markdown-preview-view) blockquote { + position: relative; + padding: 10px; + margin-top: 1.5rem; + margin-bottom: 2.2rem; + border: 4px solid var(--theme-color); + text-align: center; + background: var(--background-primary); + -webkit-border-radius: 20px; + -moz-border-radius: 20px; + border-radius: 20px; + font-size: 1.2em; +} + +body.blockquote-style-speech-bubble-two .theme-dark :is(.markdown-preview-view,.markdown-rendered):not(.kanban-plugin__markdown-preview-view) blockquote { + background-color: var(--background-primary) !important; + border: 4px solid var(--theme-color); +} + +body.blockquote-style-speech-bubble-two.theme-dark :is(.markdown-preview-view,.markdown-rendered):not(.kanban-plugin__markdown-preview-view) blockquote:before, +body.blockquote-style-speech-bubble-two.theme-dark :is(.markdown-preview-view,.markdown-rendered):not(.kanban-plugin__markdown-preview-view) blockquote:after { + border-color: var(--theme-color); +} + +body.blockquote-style-speech-bubble-two.theme-dark :is(.markdown-preview-view,.markdown-rendered):not(.kanban-plugin__markdown-preview-view) blockquote> :first-child:before { + background: var(--theme-color); +} + +body.blockquote-style-speech-bubble-two :is(.markdown-preview-view,.markdown-rendered):not(.kanban-plugin__markdown-preview-view) blockquote:before { + content: ''; + position: absolute; + z-index: 10; + bottom: -35px; + left: 50px; + width: 50px; + height: 29px; + border-style: solid; + border-width: 0 7px 4px 0; + border-color: var(--theme-color); + background: transparent; + -webkit-border-bottom-right-radius: 80px 50px; + -moz-border-radius-bottomright: 80px 50px; + border-bottom-right-radius: 80px 50px; + display: block; +} + +body.blockquote-style-speech-bubble-two :is(.markdown-preview-view,.markdown-rendered):not(.kanban-plugin__markdown-preview-view) blockquote:after { + content: ''; + position: absolute; + z-index: 10; + bottom: -35px; + left: 49px; + width: 20px; + height: 29px; + border-style: solid; + border-width: 0 7px 4px 0; + border-color: var(--theme-color); + background: transparent; + -webkit-border-bottom-right-radius: 40px 50px; + -moz-border-radius-bottomright: 40px 50px; + border-bottom-right-radius: 40px 50px; + display: block; +} + +/* creates a small circle to produce a rounded point where the two curves meet */ +body.blockquote-style-speech-bubble-two :is(.markdown-preview-view,.markdown-rendered):not(.kanban-plugin__markdown-preview-view) blockquote> :first-child:before { + content: ''; + position: absolute; + bottom: -35px; + left: 47px; + width: 4px; + height: 4px; + background: var(--theme-color); + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + border-radius: 10px; +} + +/* creates a white rectangle to cover part of the oval border*/ +body.blockquote-style-speech-bubble-two :is(.markdown-preview-view,.markdown-rendered):not(.kanban-plugin__markdown-preview-view) blockquote> :first-child:after { + content: ""; + position: absolute; + bottom: -10px; + left: 76px; + width: 24px; + height: 15px; + background: var(--background-primary); +} + +/*blockquote-style-outline*/ +body.blockquote-style-outline :is(.markdown-preview-view,.markdown-rendered) blockquote { + border: 3px solid var(--theme-color-translucent-04); + background-color: transparent; + border-radius: var(--radius-m); +} + +/*blockquote-style-border-left*/ +body.blockquote-style-border-left :is(.markdown-preview-view,.markdown-rendered) blockquote { + border-left: 3px solid var(--theme-color-translucent-04); + background-color: transparent; + border-radius: 0; +} + +body.background-settings-workplace-background-image .titlebar { + z-index: 1; +} + +body.background-settings-workplace-background-image.theme-light .titlebar-text, +body.background-settings-workplace-background-image.theme-dark .titlebar-text { + color: var(--text-normal); +} + +body.background-settings-workplace-background-image:not(.simple-titlebar):not(.is-frameless) .titlebar::before { + background-image: var(--theme-background); + background-size: cover; + content: ''; + display: block; + position: absolute; + top: -3px; + filter: blur(var(--titlebar-blur-depth)) brightness(var(--titlebar-brightness)) opacity(0.5); + right: -15px; + bottom: 0px; + left: -15px; +} +body.background-settings-workplace-background-image:not(.simple-titlebar):not(.is-frameless).theme-dark .titlebar::before { + filter: blur(var(--titlebar-blur-depth)) brightness(calc(var(--titlebar-brightness) - 0.5)) opacity(0.5); +} + +body:not(.simple-titlebar).background-settings-workplace-waves-light.theme-light .titlebar::before { + content: ''; + display: block; + position: absolute; + height:40px; + width: 120%; + background-image: unset; + -webkit-mask-image: var(--theme-background); + background-size: 100% 100%; + opacity: 0.5; + background-color: var(--wave-background-color); +} +body.background-settings-workplace-background-image:not(.simple-titlebar):not(.is-hidden-frameless) .titlebar { + --custom-titlebar-bg: var(--background-primary); + background-color: var(--custom-titlebar-bg); + border: none; +} + +body .titlebar, +body .workspace-ribbon.mod-left { + --titlebar-background: var(--titlebar-background-focused); +} + +body.simple-titlebar .titlebar { + background-color: var(--custom-titlebar-bg); + border: none; +} + +body.simple-titlebar .titlebar::before { + content: ''; + background-color: var(--custom-titlebar-bg); +} + +/*==========*/ +body.background-settings-workplace-background-image .side-dock-ribbon-tab, +body.background-settings-workplace-background-image .side-dock-ribbon-action:not(:hover), +body.background-settings-workplace-style-high-transparency .side-dock-ribbon-tab, +body.background-settings-workplace-style-high-transparency .side-dock-ribbon-action:not(:hover) { + color: var(--text-normal); +} + +body.is-mobile.background-settings-workplace-background-image .workspace-split.mod-root { + background-color: transparent; +} +body.is-mobile.background-settings-workplace-background-image:not(:is(.background-settings-workplace-waves-light,.background-settings-workplace-waves2-light,.background-settings-workplace-waves,.background-settings-workplace-waves2)) { + background-image: var(--theme-background); + background-size: cover; + opacity: 0.8; +} +body.color-scheme-options-simplicity-topaz.theme-dark.background-settings-workplace-background-image .workspace::before { + filter: blur(var(--blur-depth)) brightness(calc(var(--brightness-4-bg) - 0.5)) saturate(var(--saturate-4-bg)); +} + +body.background-settings-workplace-background-image.theme-light .workspace::before, +body.background-settings-workplace-background-image.theme-dark .workspace::before { + background-image: var(--theme-background); + background-size: cover; + filter: blur(var(--blur-depth)) brightness(var(--brightness-4-bg)) saturate(var(--saturate-4-bg)); +} + +body.is-mobile.background-settings-workplace-background-image:is(.background-settings-workplace-waves-light,.background-settings-workplace-waves2-light,.background-settings-workplace-waves,.background-settings-workplace-waves2), +body.background-settings-workplace-background-image:is(.background-settings-workplace-waves-light,.background-settings-workplace-waves2-light).theme-light .workspace, +body.color-scheme-options-simplicity-topaz.background-settings-workplace-background-image:is(.background-settings-workplace-waves,.background-settings-workplace-waves2).theme-dark .workspace, +body.background-settings-workplace-background-image:is(.background-settings-workplace-waves-light,.background-settings-workplace-waves2-light):not(.is-hidden-frameless).theme-light .titlebar { + background: var(--simple-white-2); +} + +body.background-settings-workplace-background-image:is(.background-settings-workplace-waves-light,.background-settings-workplace-waves,.background-settings-workplace-waves2,.background-settings-workplace-waves2-light):not(.is-hidden-frameless) .titlebar-inner, +body.background-settings-workplace-background-image:is(.background-settings-workplace-waves,.background-settings-workplace-waves2).theme-dark .workspace { + background: var(--background-secondary); +} + +/****from https://www.shapedivider.app/*****/ +body.background-settings-workplace-background-image.background-settings-workplace-waves-light.theme-light .workspace:before, +body.background-settings-workplace-background-image.background-settings-workplace-waves.theme-dark .workspace:before { + content: ""; + position: fixed; + height: auto; + width: 300%; + transform: rotate(180deg); + top: 75%; + left: -25%; + background-image: unset; + -webkit-mask-image: var(--theme-background); + background-size: 100% 100%; + opacity: 0.7; + filter: blur(var(--blur-depth)) brightness(var(--brightness-4-bg)) saturate(var(--saturate-4-bg)); + background-color: var(--wave-background-color); +} +/**from https://svgwave.in/*/ +body.background-settings-workplace-background-image.background-settings-workplace-waves2-light.theme-light .workspace::before, +body.background-settings-workplace-background-image.background-settings-workplace-waves2.theme-dark .workspace:before { + content: ""; + position: fixed; + height: auto; + width: 300%; + top: 75%; + left: -25%; + background-image: unset; + -webkit-mask-image: var(--theme-background); + background-size: 100% 100%; + opacity: 0.7; + filter: blur(var(--blur-depth)) brightness(var(--brightness-4-bg)) saturate(var(--saturate-4-bg)); + background-color: var(--wave2-background-color); +} + +body.background-settings-workplace-background-image.theme-light .workspace-split.mod-root:fullscreen::before, +body.background-settings-workplace-background-image.theme-dark .workspace-split.mod-root:fullscreen::before { + background-image: var(--theme-background); + background-size: cover; + filter: blur(var(--blur-depth)) brightness(var(--brightness-4-bg)) saturate(var(--saturate-4-bg)); + content: ''; + display: block; + position: absolute; + top: -25px; + right: -15px; + bottom: 0px; + left: -15px; +} + +/****from https://www.shapedivider.app/*****/ +body.background-settings-workplace-background-image.background-settings-workplace-waves-light.theme-light .workspace-split.mod-root::before, +body.background-settings-workplace-background-image.background-settings-workplace-waves.theme-dark .workspace-split.mod-root::before { + content: ""; + position: fixed; + height: auto; + width: 300%; + transform: rotate(180deg); + top: 75%; + left: -25%; + background-image: unset; + -webkit-mask-image: var(--theme-background); + background-size: 100% 100%; + opacity: 0.7; + filter: blur(var(--blur-depth)) brightness(var(--brightness-4-bg)) saturate(var(--saturate-4-bg)); + background-color: var(--wave-background-color); +} + +/**from https://svgwave.in/*/ +body.background-settings-workplace-background-image.background-settings-workplace-waves2-light.theme-light .workspace-split.mod-root::before, +body.background-settings-workplace-background-image.background-settings-workplace-waves2.theme-dark .workspace-split.mod-root:before { + content: ""; + position: fixed; + height: auto; + width: 300%; + top: 75%; + left: -25%; + background-image: unset; + -webkit-mask-image: var(--theme-background); + background-size: 100% 100%; + opacity: 0.7; + filter: blur(var(--blur-depth)) brightness(var(--brightness-4-bg)) saturate(var(--saturate-4-bg)); + background-color: var(--wave2-background-color); +} + +.workspace-split.mod-root:fullscreen .modal-container .prompt { + width: 90%; +} + +body.background-settings-workplace-background-image .workspace::before { + content: ''; + display: block; + position: absolute; + top: -37px; + right: -15px; + bottom: 0; + left: -15px; +} + +/* +body.background-settings-workplace-background-image.theme-light .workspace-leaf .view-header { + background: #f7f7f7; +} + +body.background-settings-workplace-background-image.theme-light .workspace-split.mod-root .workspace-tab-header.is-active.mod-active { + --tab-background-active: #f7f7f7; +} +*/ +body.background-settings-workplace-background-image.theme-light { + --background-primary:var(--background-primary-bg-4-bt); + --background-primary-bg-4-bt: #ffffffab; + --background-primary-alt-bg-4-bt: #ffffffbe; + --background-secondary-bg-4-bt: #ffffff80; + --background-secondary-alt-bg-4-bt: #ffffff20; + --text-muted: #525252; + --text-folder-file: #292929; + --background-modifier-border: #bfbfbf; + --page-border-bottom: var(--color-base-30); + --tab-outline-color: #dededee0; + --divider-color: #dededee0; +} + +textarea, input[type='text'], input[type='search'], input[type='email'], input[type='password'], input[type='number'] +{ + background: var(--bg-color-settings-4); +} + +body:is(.background-settings-workplace-background-image,.background-image-settings-switch) .modal-container { + --modal-background:var(--bg-color-settings-3); + --background-primary: var(--bg-color-settings-3); + --background-secondary:var(--bg-color-settings-3); +} + + +/* font color */ +/* body.background-settings-workplace-background-image :is(.tree-item-inner,.tree-item-flair,.workspace-ribbon-collapse-btn,.side-dock-ribbon-tab,.side-dock-ribbon-action):not(:hover) { + color: var(--text-normal); +} */ + + +body.background-settings-workplace-background-image.theme-dark { + --background-primary-bg-4-bt: #1414148a; + --background-secondary-bg-4-bt: #16161680; + --background-secondary-alt-bg-4-bt: #16161680; + --background-primary-alt-bg-4-bt: #1c1c1ccf; + --text-normal: #cccccc; + --page-border-bottom: var(--color-base-30); +} + +body.background-settings-workplace-background-image .nav-folder.mod-root>.nav-folder-title { + background-color: transparent !important; +} + +body.background-settings-workplace-background-image.theme-dark.is-mobile { + --background-primary-bg-4-bt: #1f1f1fbf; + --background-secondary-bg-4-bt: #00000069; + --background-secondary-alt-bg-4-bt: #16161680; + --background-primary-alt-bg-4-bt: #00000082; + --text-normal: #d4d4d4; + --page-border-bottom: var(--color-base-30); +} + +body.background-settings-workplace-background-image.background-settings-workplace-theme-dark-night-sky.theme-dark { + --night-sky: url(data:image/jpeg;base64,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); + --theme-background: var(--night-sky); +} + +body.background-settings-workplace-background-image.background-settings-workplace-theme-dark-dark-sky.theme-dark { + --dark-sky: url(data:image/jpeg;base64,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); + --theme-background: var(--dark-sky); +} + +body.background-settings-workplace-background-image.background-settings-workplace-theme-dark-in-the-sky.theme-dark { + --in-the-sky: url(data:image/jpeg;base64,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); + --theme-background: var(--in-the-sky); +} + +body.background-settings-workplace-background-image.background-settings-workplace-waves-light.theme-light, +body.background-settings-workplace-background-image.background-settings-workplace-waves.theme-dark { + --wave-background: url("data:image/svg+xml, %3Csvg data-name='Layer 1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 120' preserveAspectRatio='none'%3E %3Cpath d='M0,0V46.29c47.79,22.2,103.59,32.17,158,28,70.36-5.37,136.33-33.31,206.8-37.5C438.64,32.43,512.34,53.67,583,72.05c69.27,18,138.3,24.88,209.4,13.08,36.15-6,69.85-17.84,104.45-29.34C989.49,25,1113-14.29,1200,52.47V0Z' opacity='.25' class='shape-fill'%3E%3C/path%3E %3Cpath d='M0,0V15.81C13,36.92,27.64,56.86,47.69,72.05,99.41,111.27,165,111,224.58,91.58c31.15-10.15,60.09-26.07,89.67-39.8,40.92-19,84.73-46,130.83-49.67,36.26-2.85,70.9,9.42,98.6,31.56,31.77,25.39,62.32,62,103.63,73,40.44,10.79,81.35-6.69,119.13-24.28s75.16-39,116.92-43.05c59.73-5.85,113.28,22.88,168.9,38.84,30.2,8.66,59,6.17,87.09-7.5,22.43-10.89,48-26.93,60.65-49.24V0Z' opacity='.5' class='shape-fill'%3E%3C/path%3E %3Cpath d='M0,0V5.63C149.93,59,314.09,71.32,475.83,42.57c43-7.64,84.23-20.12,127.61-26.46,59-8.63,112.48,12.24,165.56,35.4C827.93,77.22,886,95.24,951.2,90c86.53-7,172.46-45.71,248.8-84.81V0Z' class='shape-fill'%3E%3C/path%3E %3C/svg%3E"); + --theme-background: var(--wave-background); + --wave-background-color: var(--background-waves-color); +} +body.background-settings-workplace-background-image.background-settings-workplace-waves2-light.theme-light, +body.background-settings-workplace-background-image.background-settings-workplace-waves2.theme-dark { + --wave2-background: url("data:image/svg+xml,%3Csvg width='100%25' height='100%25' id='svg' viewBox='0 0 1440 600' xmlns='http://www.w3.org/2000/svg' class='transition duration-300 ease-in-out delay-150'%3E%3Cstyle%3E .path-0%7B animation:pathAnim-0 4s; animation-timing-function: linear; animation-iteration-count: infinite; %7D @keyframes pathAnim-0%7B 0%25%7B d: path('M 0,600 C 0,600 0,150 0,150 C 81.35641025641027,172.9153846153846 162.71282051282054,195.83076923076922 252,194 C 341.28717948717946,192.16923076923078 438.50512820512824,165.59230769230766 511,146 C 583.4948717948718,126.40769230769234 631.2666666666665,113.80000000000004 703,116 C 774.7333333333335,118.19999999999996 870.428205128205,135.20769230769227 957,154 C 1043.571794871795,172.79230769230773 1121.0205128205127,193.3692307692308 1200,193 C 1278.9794871794873,192.6307692307692 1359.4897435897437,171.3153846153846 1440,150 C 1440,150 1440,600 1440,600 Z'); %7D 25%25%7B d: path('M 0,600 C 0,600 0,150 0,150 C 93.78717948717946,117.86410256410255 187.57435897435892,85.72820512820512 265,105 C 342.4256410256411,124.27179487179488 403.4897435897436,194.95128205128205 488,191 C 572.5102564102564,187.04871794871795 680.4666666666668,108.46666666666668 760,108 C 839.5333333333332,107.53333333333332 890.6435897435897,185.18205128205128 968,201 C 1045.3564102564103,216.81794871794872 1148.9589743589743,170.8051282051282 1232,152 C 1315.0410256410257,133.1948717948718 1377.520512820513,141.5974358974359 1440,150 C 1440,150 1440,600 1440,600 Z'); %7D 50%25%7B d: path('M 0,600 C 0,600 0,150 0,150 C 96.15641025641025,143.13589743589745 192.3128205128205,136.2717948717949 266,127 C 339.6871794871795,117.72820512820512 390.9051282051282,106.04871794871795 455,129 C 519.0948717948718,151.95128205128205 596.0666666666668,209.5333333333333 676,201 C 755.9333333333332,192.4666666666667 838.8282051282051,117.81794871794872 936,114 C 1033.1717948717949,110.18205128205128 1144.6205128205129,177.1948717948718 1231,195 C 1317.3794871794871,212.8051282051282 1378.6897435897436,181.4025641025641 1440,150 C 1440,150 1440,600 1440,600 Z'); %7D 75%25%7B d: path('M 0,600 C 0,600 0,150 0,150 C 55.16923076923078,140.31538461538463 110.33846153846156,130.63076923076923 198,135 C 285.66153846153844,139.36923076923077 405.8153846153846,157.7923076923077 496,167 C 586.1846153846154,176.2076923076923 646.4000000000001,176.2 733,158 C 819.5999999999999,139.8 932.5846153846155,103.40769230769229 1001,104 C 1069.4153846153845,104.59230769230771 1093.2615384615385,142.16923076923078 1159,156 C 1224.7384615384615,169.83076923076922 1332.3692307692309,159.9153846153846 1440,150 C 1440,150 1440,600 1440,600 Z'); %7D 100%25%7B d: path('M 0,600 C 0,600 0,150 0,150 C 81.35641025641027,172.9153846153846 162.71282051282054,195.83076923076922 252,194 C 341.28717948717946,192.16923076923078 438.50512820512824,165.59230769230766 511,146 C 583.4948717948718,126.40769230769234 631.2666666666665,113.80000000000004 703,116 C 774.7333333333335,118.19999999999996 870.428205128205,135.20769230769227 957,154 C 1043.571794871795,172.79230769230773 1121.0205128205127,193.3692307692308 1200,193 C 1278.9794871794873,192.6307692307692 1359.4897435897437,171.3153846153846 1440,150 C 1440,150 1440,600 1440,600 Z'); %7D %7D%3C/style%3E%3Cdefs%3E%3ClinearGradient id='gradient' x1='0%25' y1='50%25' x2='100%25' y2='50%25'%3E%3Cstop offset='5%25' stop-color='%23002bdc66'%3E%3C/stop%3E%3Cstop offset='95%25' stop-color='%2332ded466'%3E%3C/stop%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M 0,600 C 0,600 0,150 0,150 C 81.35641025641027,172.9153846153846 162.71282051282054,195.83076923076922 252,194 C 341.28717948717946,192.16923076923078 438.50512820512824,165.59230769230766 511,146 C 583.4948717948718,126.40769230769234 631.2666666666665,113.80000000000004 703,116 C 774.7333333333335,118.19999999999996 870.428205128205,135.20769230769227 957,154 C 1043.571794871795,172.79230769230773 1121.0205128205127,193.3692307692308 1200,193 C 1278.9794871794873,192.6307692307692 1359.4897435897437,171.3153846153846 1440,150 C 1440,150 1440,600 1440,600 Z' stroke='none' stroke-width='0' fill='url(%23gradient)' class='transition-all duration-300 ease-in-out delay-150 path-0'%3E%3C/path%3E%3Cstyle%3E .path-1%7B animation:pathAnim-1 4s; animation-timing-function: linear; animation-iteration-count: infinite; %7D @keyframes pathAnim-1%7B 0%25%7B d: path('M 0,600 C 0,600 0,300 0,300 C 82.94102564102565,295.425641025641 165.8820512820513,290.85128205128206 257,284 C 348.1179487179487,277.14871794871794 447.41282051282053,268.02051282051286 514,267 C 580.5871794871795,265.97948717948714 614.4666666666667,273.06666666666666 676,278 C 737.5333333333333,282.93333333333334 826.7205128205128,285.71282051282054 921,295 C 1015.2794871794872,304.28717948717946 1114.6512820512821,320.0820512820513 1202,322 C 1289.3487179487179,323.9179487179487 1364.674358974359,311.9589743589744 1440,300 C 1440,300 1440,600 1440,600 Z'); %7D 25%25%7B d: path('M 0,600 C 0,600 0,300 0,300 C 88.24102564102563,279.49487179487176 176.48205128205126,258.98974358974357 263,274 C 349.51794871794874,289.01025641025643 434.3128205128206,339.5358974358975 519,332 C 603.6871794871794,324.4641025641025 688.2666666666667,258.8666666666667 759,247 C 829.7333333333333,235.13333333333335 886.6205128205129,276.99743589743593 960,293 C 1033.3794871794871,309.00256410256407 1123.2512820512823,299.14358974358976 1206,296 C 1288.7487179487177,292.85641025641024 1364.374358974359,296.42820512820515 1440,300 C 1440,300 1440,600 1440,600 Z'); %7D 50%25%7B d: path('M 0,600 C 0,600 0,300 0,300 C 77.61025641025643,301.1948717948718 155.22051282051285,302.38974358974355 229,309 C 302.77948717948715,315.61025641025645 372.7282051282051,327.63589743589745 455,315 C 537.2717948717949,302.36410256410255 631.8666666666667,265.0666666666667 730,264 C 828.1333333333333,262.9333333333333 929.8051282051283,298.0974358974359 1003,313 C 1076.1948717948717,327.9025641025641 1120.9128205128204,322.54358974358973 1189,317 C 1257.0871794871796,311.45641025641027 1348.5435897435898,305.7282051282051 1440,300 C 1440,300 1440,600 1440,600 Z'); %7D 75%25%7B d: path('M 0,600 C 0,600 0,300 0,300 C 53.37692307692305,305.2846153846154 106.7538461538461,310.5692307692308 202,310 C 297.2461538461539,309.4307692307692 434.36153846153854,303.00769230769225 521,293 C 607.6384615384615,282.99230769230775 643.8,269.4 716,259 C 788.2,248.6 896.4384615384615,241.39230769230772 974,254 C 1051.5615384615385,266.6076923076923 1098.4461538461537,299.03076923076924 1171,310 C 1243.5538461538463,320.96923076923076 1341.7769230769231,310.4846153846154 1440,300 C 1440,300 1440,600 1440,600 Z'); %7D 100%25%7B d: path('M 0,600 C 0,600 0,300 0,300 C 82.94102564102565,295.425641025641 165.8820512820513,290.85128205128206 257,284 C 348.1179487179487,277.14871794871794 447.41282051282053,268.02051282051286 514,267 C 580.5871794871795,265.97948717948714 614.4666666666667,273.06666666666666 676,278 C 737.5333333333333,282.93333333333334 826.7205128205128,285.71282051282054 921,295 C 1015.2794871794872,304.28717948717946 1114.6512820512821,320.0820512820513 1202,322 C 1289.3487179487179,323.9179487179487 1364.674358974359,311.9589743589744 1440,300 C 1440,300 1440,600 1440,600 Z'); %7D %7D%3C/style%3E%3Cdefs%3E%3ClinearGradient id='gradient' x1='0%25' y1='50%25' x2='100%25' y2='50%25'%3E%3Cstop offset='5%25' stop-color='%23002bdc88'%3E%3C/stop%3E%3Cstop offset='95%25' stop-color='%2332ded488'%3E%3C/stop%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M 0,600 C 0,600 0,300 0,300 C 82.94102564102565,295.425641025641 165.8820512820513,290.85128205128206 257,284 C 348.1179487179487,277.14871794871794 447.41282051282053,268.02051282051286 514,267 C 580.5871794871795,265.97948717948714 614.4666666666667,273.06666666666666 676,278 C 737.5333333333333,282.93333333333334 826.7205128205128,285.71282051282054 921,295 C 1015.2794871794872,304.28717948717946 1114.6512820512821,320.0820512820513 1202,322 C 1289.3487179487179,323.9179487179487 1364.674358974359,311.9589743589744 1440,300 C 1440,300 1440,600 1440,600 Z' stroke='none' stroke-width='0' fill='url(%23gradient)' class='transition-all duration-300 ease-in-out delay-150 path-1'%3E%3C/path%3E%3Cstyle%3E .path-2%7B animation:pathAnim-2 4s; animation-timing-function: linear; animation-iteration-count: infinite; %7D @keyframes pathAnim-2%7B 0%25%7B d: path('M 0,600 C 0,600 0,450 0,450 C 76.1974358974359,467.39230769230767 152.3948717948718,484.7846153846154 220,481 C 287.6051282051282,477.2153846153846 346.6179487179487,452.25384615384615 441,452 C 535.3820512820513,451.74615384615385 665.1333333333334,476.2 762,477 C 858.8666666666666,477.8 922.8487179487179,454.94615384615383 984,443 C 1045.1512820512821,431.05384615384617 1103.4717948717948,430.0153846153846 1179,433 C 1254.5282051282052,435.9846153846154 1347.2641025641026,442.9923076923077 1440,450 C 1440,450 1440,600 1440,600 Z'); %7D 25%25%7B d: path('M 0,600 C 0,600 0,450 0,450 C 86.80769230769232,454.0974358974359 173.61538461538464,458.1948717948718 262,469 C 350.38461538461536,479.8051282051282 440.3461538461538,497.3179487179487 508,488 C 575.6538461538462,478.6820512820513 621,442.53333333333336 697,418 C 773,393.46666666666664 879.6538461538462,380.5487179487179 972,401 C 1064.3461538461538,421.4512820512821 1142.3846153846155,475.2717948717949 1218,489 C 1293.6153846153845,502.7282051282051 1366.8076923076924,476.36410256410255 1440,450 C 1440,450 1440,600 1440,600 Z'); %7D 50%25%7B d: path('M 0,600 C 0,600 0,450 0,450 C 79.76153846153846,435.7282051282051 159.52307692307693,421.45641025641027 229,422 C 298.4769230769231,422.54358974358973 357.6692307692308,437.9025641025641 443,442 C 528.3307692307692,446.0974358974359 639.8,438.93333333333334 720,424 C 800.2,409.06666666666666 849.1307692307691,386.36410256410255 925,394 C 1000.8692307692309,401.63589743589745 1103.676923076923,439.6102564102564 1194,454 C 1284.323076923077,468.3897435897436 1362.1615384615384,459.1948717948718 1440,450 C 1440,450 1440,600 1440,600 Z'); %7D 75%25%7B d: path('M 0,600 C 0,600 0,450 0,450 C 72.5102564102564,462.1435897435897 145.0205128205128,474.28717948717946 236,478 C 326.9794871794872,481.71282051282054 436.42820512820515,476.9948717948718 503,459 C 569.5717948717949,441.0051282051282 593.2666666666667,409.7333333333333 677,408 C 760.7333333333333,406.2666666666667 904.5051282051284,434.07179487179496 998,437 C 1091.4948717948716,439.92820512820504 1134.7128205128206,417.9794871794872 1200,416 C 1265.2871794871794,414.0205128205128 1352.6435897435897,432.0102564102564 1440,450 C 1440,450 1440,600 1440,600 Z'); %7D 100%25%7B d: path('M 0,600 C 0,600 0,450 0,450 C 76.1974358974359,467.39230769230767 152.3948717948718,484.7846153846154 220,481 C 287.6051282051282,477.2153846153846 346.6179487179487,452.25384615384615 441,452 C 535.3820512820513,451.74615384615385 665.1333333333334,476.2 762,477 C 858.8666666666666,477.8 922.8487179487179,454.94615384615383 984,443 C 1045.1512820512821,431.05384615384617 1103.4717948717948,430.0153846153846 1179,433 C 1254.5282051282052,435.9846153846154 1347.2641025641026,442.9923076923077 1440,450 C 1440,450 1440,600 1440,600 Z'); %7D %7D%3C/style%3E%3Cdefs%3E%3ClinearGradient id='gradient' x1='0%25' y1='50%25' x2='100%25' y2='50%25'%3E%3Cstop offset='5%25' stop-color='%23002bdcff'%3E%3C/stop%3E%3Cstop offset='95%25' stop-color='%2332ded4ff'%3E%3C/stop%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M 0,600 C 0,600 0,450 0,450 C 76.1974358974359,467.39230769230767 152.3948717948718,484.7846153846154 220,481 C 287.6051282051282,477.2153846153846 346.6179487179487,452.25384615384615 441,452 C 535.3820512820513,451.74615384615385 665.1333333333334,476.2 762,477 C 858.8666666666666,477.8 922.8487179487179,454.94615384615383 984,443 C 1045.1512820512821,431.05384615384617 1103.4717948717948,430.0153846153846 1179,433 C 1254.5282051282052,435.9846153846154 1347.2641025641026,442.9923076923077 1440,450 C 1440,450 1440,600 1440,600 Z' stroke='none' stroke-width='0' fill='url(%23gradient)' class='transition-all duration-300 ease-in-out delay-150 path-2'%3E%3C/path%3E%3C/svg%3E"); + --theme-background: var(--wave2-background); + --wave2-background-color: var(--background-waves-color); +} + +body.is-mobile.background-settings-workplace-background-image:is(.background-settings-workplace-waves-light,.background-settings-workplace-waves2-light).theme-light, +body.is-mobile.background-settings-workplace-background-image:is(.background-settings-workplace-waves,.background-settings-workplace-waves2).theme-dark { + --wave2-background-color: #001ae0; + --wave-background-color: #245eff; +} + +body.background-image-settings-command-palette-switch .modal-container .prompt::before { + background-size: cover; + content: ''; + top: 0; + right: 0; + bottom: 0; + left: 0; + position: absolute; +} + +body.background-image-settings-command-palette-same-as-workplace.background-image-settings-command-palette-switch .modal-container .prompt::before { + background-image: var(--theme-background); + filter: blur(var(--blur-depth-cp)) brightness(var(--brightness-4-bg-cp)) saturate(var(--saturate-4-bg-cp)); + opacity: var(--opacity-cp); + z-index: -1; +} +body.background-image-settings-command-palette-same-as-workplace.background-image-settings-command-palette-switch.background-settings-workplace-waves2-light .modal-container .prompt::before, +body.background-image-settings-command-palette-same-as-workplace.background-image-settings-command-palette-switch.background-settings-workplace-waves2 .modal-container .prompt::before { + top: 60%; +} + +body.theme-light.background-image-settings-command-palette-same-as-workplace.background-image-settings-command-palette-switch.background-settings-workplace-waves-light .modal-container .prompt::before, +body.background-image-settings-command-palette-same-as-workplace.background-image-settings-command-palette-switch.background-settings-workplace-background-image.background-settings-workplace-waves.theme-dark .prompt:before { + transform: rotate(180deg); + top: 75%; + background-image:unset; + -webkit-mask-image: var(--theme-background); + background-size:100% 100%; + opacity:0.5; + background-color: var(--wave-background-color); +} + +body.background-image-settings-command-palette-same-as-workplace.background-image-settings-command-palette-switch .modal-container .prompt input.prompt-input, +body.background-image-settings-command-palette-switch:not(.background-image-settings-command-palette-same-as-workplace) .modal-container .prompt input.prompt-input { + background-color: transparent; +} + +body.background-image-settings-command-palette-custom.background-image-settings-command-palette-switch:not(.background-image-settings-command-palette-same-as-workplace).theme-light .modal-container .prompt::before { + background-image: var(--background-command-palette-theme-light-custom); +} + +body.background-image-settings-command-palette-custom.background-image-settings-command-palette-switch:not(.background-image-settings-command-palette-same-as-workplace).theme-dark .modal-container .prompt::before { + background-image: var(--background-command-palette-theme-dark-custom); +} + +body.layout-style-options-default.background-settings-workplace-background-image .workspace-tab-container-before.is-before-active .workspace-tab-header-inner, +body.layout-style-options-default.background-settings-workplace-background-image .workspace-tab-container-after.is-after-active .workspace-tab-header-inner, +body.layout-style-options-default.background-settings-workplace-background-image .workspace-tab-header.is-before-active .workspace-tab-header-inner, +body.layout-style-options-default.background-settings-workplace-background-image .workspace-tab-header.is-after-active .workspace-tab-header-inner, +body.layout-style-options-default.background-settings-workplace-background-image .workspace-tab-container-before.is-before-active, +body.layout-style-options-default.background-settings-workplace-background-image .workspace-tab-container-after.is-after-active, +body.layout-style-options-default.background-settings-workplace-background-image .workspace-tab-header.is-before-active, +body.layout-style-options-default.background-settings-workplace-background-image .workspace-tab-header.is-after-active { + background-color: transparent; +} + +body.background-settings-workplace-background-image.background-settings-workplace-theme-light-custom-option.theme-light { + --theme-background: var(--background-settings-workplace-theme-light-custom); +} + +body.background-settings-workplace-background-image.background-settings-workplace-theme-dark-custom-option.theme-dark { + --theme-background: var(--background-settings-workplace-theme-dark-custom); +} + +/*rectangle*/ +body.layout-style-options-rectangle .workspace-tab-container-before.is-before-active .workspace-tab-header-inner, +body.layout-style-options-rectangle .workspace-tab-container-after.is-after-active .workspace-tab-header-inner, +body.layout-style-options-rectangle .workspace-tab-header.is-before-active .workspace-tab-header-inner, +body.layout-style-options-rectangle .workspace-tab-header.is-after-active .workspace-tab-header-inner, +body.layout-style-options-rectangle .workspace-tab-header, +body.layout-style-options-rectangle .workspace-tab-header-inner, +body.layout-style-options-rectangle .workspace-split.mod-left-split .view-content, +body.layout-style-options-rectangle .workspace-split.mod-right-split .view-content, +body.layout-style-options-rectangle .workspace-tab-header.is-after-active, +body.layout-style-options-rectangle .workspace-tab-header.is-before-active, +body.layout-style-options-rectangle .workspace-tab-container-before.is-before-active .workspace-tab-header-inner { + background-color: transparent; + border-radius: 0; +} + +body.layout-style-options-rectangle .workspace-split.mod-root>.workspace-leaf:first-of-type .workspace-leaf-content, +body.layout-style-options-rectangle .workspace-split.mod-root>.workspace-leaf:last-of-type .workspace-leaf-content { + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +body.layout-style-options-rectangle .workspace-tab-header-inner { + padding: 3px 9px; +} + +body.layout-style-options-rectangle .workspace-tab-container-before, +body.layout-style-options-rectangle .workspace-tab-container-after { + width: 0; +} + +body.layout-style-options-rectangle .workspace-tab-header-container { + padding: 4px 0 0 4px; +} + +body.layout-style-options-rectangle .workspace-split.mod-right-split .workspace-tabs .workspace-leaf { + border-top-right-radius: 0; +} + +body.layout-style-options-rectangle .workspace-split.mod-left-split .workspace-tabs .workspace-leaf { + border-top-left-radius: 0; +} + +body.layout-style-options-rectangle .workspace-tab-header-container { + background-color: var(--background-secondary); + border-bottom: 1px solid var(--background-modifier-border-1); +} + +body.layout-style-options-rectangle .workspace-split.mod-left-split>.workspace-leaf-resize-handle:not(:hover), +body.layout-style-options-rectangle .workspace-split.mod-right-split>.workspace-leaf-resize-handle:not(:hover), +body.layout-style-options-rectangle .workspace-split.mod-vertical>*>.workspace-leaf-resize-handle:not(:hover) { + height: 100%; + background-color: var(--background-leaf-resize-handle); +} + +body.layout-style-options-rectangle .workspace-split.mod-left-split>.workspace-leaf-resize-handle:hover, +body.layout-style-options-rectangle .workspace-split.mod-right-split>.workspace-leaf-resize-handle:hover, +body.layout-style-options-rectangle .workspace-split.mod-vertical>*>.workspace-leaf-resize-handle:hover { + height: 100%; +} + +body.layout-style-options-rectangle .side-dock-ribbon-action { + padding: 3px 0; +} + +/*-------- Eisenhower Matrix start--- */ +/* Eisenhower Matrix from Spectrum themes */ + +/*for Blue Topaz theme-表格四象图分布 Modified by cuman 2021-11-29*/ +/* 用法 yaml区域声明 +cssclass: matrix +内容如下形式(表格内容最好使用嵌入形式): + +| | | +| ----------------- | ----------- | +| ![[#To-Do]] | ![[#Doing]] | +| ![[#Considering]] | ![[#Maybe]] | + +*/ + +:root, +.theme-dark, +.theme-light { + --matrix-1: var(--p-kanban-color-2); + --matrix-2: var(--p-kanban-color-3); + --matrix-4: var(--p-kanban-color-5); + --matrix-5: var(--p-kanban-color-6); +} + +:is(.markdown-preview-view,.markdown-rendered).matrix table tr { + display: flex; +} +:is(.markdown-preview-view,.markdown-rendered).matrix table th { + background-color: transparent; + background-image: none; +} +:is(.markdown-preview-view,.markdown-rendered).matrix table tbody>tr { + background-color: transparent; +} + +:is(.markdown-preview-view,.markdown-rendered).matrix .internal-embed:not(.image-embed) { + border: 1px solid; + border-radius: 10px; +} +:is(.markdown-preview-view,.markdown-rendered).matrix thead { + background-color: transparent; +} +:is(.markdown-preview-view,.markdown-rendered).matrix table tr th, +:is(.markdown-preview-view,.markdown-rendered).matrix table tr td { + background-color: transparent; + padding-right: 0; + border: 0px; + width: 50%; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} +:is(.markdown-preview-view,.markdown-rendered).matrix .markdown-embed { + background-color: transparent; +} +:is(.markdown-preview-view,.markdown-rendered).matrix table tr th > *, +:is(.markdown-preview-view,.markdown-rendered).matrix table tr td > * { + width: 100%; + height: 100%; + background-color: var(--background-secondary); +} + +:is(.markdown-preview-view,.markdown-rendered).matrix table tr td { + background-color: transparent; +} + +:is(.markdown-preview-view,.markdown-rendered).matrix table tr:nth-child(1n) td:nth-child(1) > * { + border-color: var(--matrix-1); +} + +:is(.markdown-preview-view,.markdown-rendered).matrix table tr:nth-child(1n) td:nth-child(1):hover { + background-color: var(--matrix-1); +} + +:is(.markdown-preview-view,.markdown-rendered).matrix table tr:nth-child(1n) td:nth-child(2) > * { + border-color: var(--matrix-2); +} + +:is(.markdown-preview-view,.markdown-rendered).matrix table tr:nth-child(1n) td:nth-child(2):hover { + background-color: var(--matrix-2); +} + +:is(.markdown-preview-view,.markdown-rendered).matrix table tr:nth-child(2n) td:nth-child(1) > * { + border-color: var(--matrix-4); +} + +:is(.markdown-preview-view,.markdown-rendered).matrix table tr:nth-child(2n) td:nth-child(1):hover { + background-color: var(--matrix-4); +} + +:is(.markdown-preview-view,.markdown-rendered).matrix table tr:nth-child(2n) td:nth-child(2) > * { + border-color: var(--matrix-5); +} + +:is(.markdown-preview-view,.markdown-rendered).matrix table tr:nth-child(2n) td:nth-child(2):hover { + background-color: var(--matrix-5); +} +/*-------- Eisenhower Matrix end--- */ + +.recent-vaults-list-item:hover { + color: var(--theme-color) !important; +} + +body.plain-file-title.theme-light, +body.plain-file-title.theme-dark { + --color-view-header-gradient-1: var(--background-primary); + --color-view-header-gradient-2: var(--background-primary); +} + +body:not(:is(.default-loading-page,.is-popout-window)) .progress-bar-message { + visibility: hidden; +} + +body:not(.default-loading-page).loading-page-style-default .progress-bar-message:before { + content: ""; + width: 80px; + height: 80px; + position: relative; + animation: shape 2.5s infinite alternate; + visibility: visible !important; + display: block; + transform: translateZ(0); + -webkit-transform: translateZ(0); + will-change: transform; +} + +body:not(.default-loading-page).theme-light .progress-bar { + background-color: white; +} +body:not(.default-loading-page).theme-dark .progress-bar { + background-color: #222222; +} + +@keyframes shape { + 0% {background-color: transparent; transform: translate(-50px, -50px); border-radius: 50%;} + 10% {background-color: #53c7ff; transform: translate(-50px, -50px); border-radius: 50%;} + 30% {background-color: #8fff7b; transform: translate(110px, -50px); border-radius: 0;} + 50% {background-color: #ffe468; transform: translate(110px, 110px); border-radius: 50%;} + 70% {background-color: #fe9289; transform: translate(-50px, 110px); border-radius: 0;} + 90% {background-color: #53c7ff; transform: translate(-50px, -50px); border-radius: 50%;} + 100% {background-color: transparent; transform: translate(-50px, -50px); border-radius: 50%;} +} + +/* the gif animation was created by @Jake Fleming https://dribbble.com/shots/9948351-kitty-wiggle */ +body:not(.default-loading-page).loading-animation-cat .progress-bar-message::before { + content: "GIF creator: Jake Fleming"; + display: block; + background: no-repeat center/cover; + width: 800px; + height: 500px; + margin-top: -20px; + font-size: initial; + color: var(--text-muted); + filter: hue-rotate(-55deg) saturate(120%); + position: initial; + animation: unset; +} + +body:not(.default-loading-page).loading-animation-cat.theme-dark .progress-bar-message::before { + filter: invert(100%) hue-rotate(153deg) saturate(250%); +} + +body:not(.default-loading-page).loading-animation-cat.theme-light .progress-bar { + background-color: white; +} + +body:not(.default-loading-page).loading-animation-cat.theme-dark .progress-bar { + background-color: black; +} + +body:not(.default-loading-page).loading-animation-cat .progress-bar-message { + color: var(--text-normal); + font-size: 25px; + visibility: visible; +} + +body:not(.default-loading-page).loading-animation-custom .progress-bar-message::before { + position: initial; + animation: unset; + display: block; + content: var(--loading-page-custom-gif-caption); + background: no-repeat center/cover var(--loading-page-custom-gif-url); + width: 800px; + height: 600px; + margin-top: -20px; +} + +body:not(.default-loading-page).loading-shape-with-custom-gif .progress-bar-message:before { + display: block; + width: 250px; + height: 250px; + content: var(--loading-page-custom-gif-caption-alt); + background: no-repeat center/cover var(--loading-page-custom-gif-url-alt); + animation: shape-gif 2.5s infinite alternate; +} + +body:not(.default-loading-page).loading-shape-with-custom-gif.loading-shape-with-custom-high-contrast-bg.theme-light .progress-bar { + background-color: black; +} + +body:not(.default-loading-page).loading-shape-with-custom-gif.loading-shape-with-custom-high-contrast-bg.theme-dark .progress-bar { + background-color: white; +} + +body:not(.default-loading-page).loading-shape-with-custom-gif.loading-shape-with-custom-high-contrast-bg.theme-dark .progress-bar-message::before { + animation: shape-gif-dark 2.5s infinite alternate; + transform: translateZ(0); + -webkit-transform: translateZ(0); + will-change: transform; +} + +@keyframes shape-gif { + 0% {filter: hue-rotate(0deg); transform: translate(-80px, -80px); border-radius: 50%;} + 25% {filter: hue-rotate(90deg); transform: translate(80px, -80px); border-radius: 0;} + 50% {filter: hue-rotate(180deg); transform: translate(80px, 80px); border-radius: 50%;} + 75% {filter: hue-rotate(270deg); transform: translate(-80px, 80px); border-radius: 0;} + 100% {filter: hue-rotate(360deg); transform: translate(-80px, -80px); border-radius: 50%;} +} + +@keyframes shape-gif-dark { + 0% {filter: hue-rotate(0deg) invert(100%); transform: translate(-80px, -80px); border-radius: 50%;} + 25% {filter: hue-rotate(90deg) invert(100%); transform: translate(80px, -80px); border-radius: 0;} + 50% {filter: hue-rotate(180deg) invert(100%); transform: translate(80px, 80px); border-radius: 50%;} + 75% {filter: hue-rotate(270deg) invert(100%); transform: translate(-80px, 80px); border-radius: 0;} + 100% {filter: hue-rotate(360deg) invert(100%); transform: translate(-80px, -80px); border-radius: 50%;} +} + +body:not(.default-loading-page).loading-add-icons .progress-bar-message { + all: initial; + font-size: var(--font-size-loading-add); + color: var(--loading-add-text-color); + animation: 1.5s infinite alternate; + animation-name: gradientChange, moving; +} + +/*加载画面的文字*/ +body:not(.default-loading-page).loading-add-icons .progress-bar-message::before { + all: initial; + color: var(--loading-add-text-color); + content: var(--loading-text-before); + animation: 2s infinite alternate; + animation-name: gradientChange; +} + +body:not(.default-loading-page).loading-add-icons .progress-bar-message::after { + all: initial; + color: var(--loading-add-text-color); + content: var(--loading-text-after); + animation: 2s infinite alternate; + animation-name: gradientChange; + transform: translateZ(0); + -webkit-transform: translateZ(0); + will-change: transform; +} + +@keyframes gradientChange { + 100% { color: var(--loading-add-text-color-alt); } +} +@keyframes moving { + 0% { transform: translateX(-100px); } + 100% { transform: translateX(100px); } +} + +body:not(.default-loading-page).loading-custom-text .progress-bar-message::before { + all: initial; + content: var(--loading-diy-text); + font-family: var(--font-loading-text) !important; + visibility: visible !important; + display: block; + font-size: var(--font-size-loading-diy-text); + line-height: 2; + color: var(--loading-diy-text-color); +} + +body:not(.default-loading-page).loading-custom-text.loading-text-typing-style .progress-bar-message::before { + overflow: hidden; + white-space: nowrap; + border-right: 0.07em solid; + animation: typing-style 3s steps(23, end), + cursor-blink 0.3s step-end infinite alternate; + transform: translateZ(0); + -webkit-transform: translateZ(0); + will-change: transform; +} + +@keyframes cursor-blink { + 50% {border-color: transparent;} +} + +@keyframes typing-style { + 0% {width: 0;} + 100% {width: 42ch;} +} + +body:not(.default-loading-page).loading-custom-text.loading-text-moving-style .progress-bar-message::before { + animation: moving-style 3s ease-in-out infinite alternate; + transform: translateZ(0); + -webkit-transform: translateZ(0); + will-change: transform; +} + +@keyframes moving-style { + 0% {-webkit-transform: translateX(-100px); transform: translateX(-100px);} + 50% {-webkit-transform: translateX(100px); transform: translateX(100px);} + 100% {-webkit-transform: translateX(-100px); transform: translateX(-100px)} +} + +body:not(.default-loading-page).loading-custom-text.loading-text-shinning-style .progress-bar-message::before { + animation: shinning-style 3s infinite; + transform: translateZ(0); + -webkit-transform: translateZ(0); + will-change: transform; +} + +@keyframes shinning-style { + 0% { opacity: 1;} + 45% { opacity: 0;} + 90% { opacity: 1;} +} + +body:not(.default-loading-page).loading-custom-text.loading-text-color-changing-style .progress-bar-message::before { + animation: color-changing-style 3s infinite; + transform: translateZ(0); + -webkit-transform: translateZ(0); + will-change: transform; +} + +@keyframes color-changing-style { + 0% { color: var(--text-blue);} + 25% { color: var(--text-green);} + 50% { color: var(--text-yellow);} + 75% { color: var(--text-red);} + 100% { color: var(--text-blue);} +} + +body:not(.default-loading-page).loading-custom-text.loading-text-typing-style.loading-text-moving-style .progress-bar-message::before { + animation: + typing-style 3s steps(26, end), + cursor-blink 0.3s step-end infinite alternate, + moving-style 3s ease-in-out infinite alternate; + transform: translateZ(0); + -webkit-transform: translateZ(0); + will-change: transform; +} + +body:not(.default-loading-page).loading-custom-text.loading-text-typing-style.loading-text-shinning-style .progress-bar-message::before { + animation: + typing-style 3s steps(26, end), + cursor-blink 0.3s step-end infinite alternate, + shinning-style 3s infinite; + transform: translateZ(0); + -webkit-transform: translateZ(0); + will-change: transform; +} + +body:not(.default-loading-page).loading-custom-text.loading-text-typing-style.loading-text-color-changing-style .progress-bar-message::before { + animation: + color-changing-style 3s infinite, + typing-style 3s steps(26, end), + cursor-blink 0.3s step-end infinite alternate; + transform: translateZ(0); + -webkit-transform: translateZ(0); + will-change: transform; +} + +body:not(.default-loading-page).loading-custom-text.loading-text-typing-style.loading-text-moving-style.loading-text-shinning-style .progress-bar-message::before { + animation: + typing-style 3s steps(26, end), + cursor-blink 0.3s step-end infinite alternate, + moving-style 3s ease-in-out infinite alternate, + shinning-style 3s infinite; + transform: translateZ(0); + -webkit-transform: translateZ(0); + will-change: transform; +} + +body:not(.default-loading-page).loading-custom-text.loading-text-typing-style.loading-text-moving-style.loading-text-shinning-style.loading-text-color-changing-style .progress-bar-message::before { + animation: + typing-style 3s steps(26, end), + cursor-blink 0.3s step-end infinite alternate, + moving-style 3s ease-in-out infinite alternate, + shinning-style 3s infinite, + color-changing-style 3s infinite; + transform: translateZ(0); + -webkit-transform: translateZ(0); + will-change: transform; +} + +body:not(.default-loading-page).loading-custom-text.loading-text-moving-style.loading-text-shinning-style .progress-bar-message::before { + animation: + moving-style 3s ease-in-out infinite alternate, + shinning-style 3s infinite; + transform: translateZ(0); + -webkit-transform: translateZ(0); + will-change: transform; +} + +body:not(.default-loading-page).loading-custom-text.loading-text-moving-style.loading-text-color-changing-style .progress-bar-message::before { + animation: + moving-style 3s ease-in-out infinite alternate, + color-changing-style 3s infinite; + transform: translateZ(0); + -webkit-transform: translateZ(0); + will-change: transform; +} + +body:not(.default-loading-page).loading-custom-text.loading-text-moving-style.loading-text-shinning-style.loading-text-color-changing-style .progress-bar-message::before { + animation: + moving-style 3s ease-in-out infinite alternate, + shinning-style 3s infinite, + color-changing-style 3s infinite; + transform: translateZ(0); + -webkit-transform: translateZ(0); + will-change: transform; +} + +body:not(.default-loading-page).loading-custom-text.loading-text-shinning-style.loading-text-color-changing-style .progress-bar-message::before { + animation: + shinning-style 3s infinite, + color-changing-style 3s infinite; + transform: translateZ(0); + -webkit-transform: translateZ(0); + will-change: transform; +} + +/* the mario animation was created by @B.C.Rikko https://bcrikko.github.io/css-collection/other/mario/index.html */ +/* need mario snippets */ +body:not(.default-loading-page).loading-page-style-mario .progress-bar-message:before { + content: ""; + position: relative; + visibility: visible !important; + display: block; + top: calc(var(--pixel) * -6); + left: calc(var(--pixel) * -6.5); + width: var(--pixel); + height: var(--pixel); + background: transparent; + animation: sprite 0.618s infinite, jump 0.618s infinite; + transform: translateZ(0); + -webkit-transform: translateZ(0); + will-change: transform; +} + +@keyframes jump { + from, 25%, 75%, to {transform: translateY(0);} + 50% {transform: translateY(calc(var(--pixel) * -8));} +} + +@keyframes sprite { + from, 24%, 74%, to { + box-shadow: + /* r:1 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 1) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 1) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 1) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 1) 0 transparent, + calc(var(--pixel) * 5) calc(var(--pixel) * 1) 0 transparent, + calc(var(--pixel) * 6) calc(var(--pixel) * 1) 0 transparent, + calc(var(--pixel) * 7) calc(var(--pixel) * 1) 0 var(--c-1), + calc(var(--pixel) * 8) calc(var(--pixel) * 1) 0 var(--c-1), + calc(var(--pixel) * 9) calc(var(--pixel) * 1) 0 var(--c-1), + calc(var(--pixel) * 10) calc(var(--pixel) * 1) 0 var(--c-1), + calc(var(--pixel) * 11) calc(var(--pixel) * 1) 0 var(--c-1), + calc(var(--pixel) * 12) calc(var(--pixel) * 1) 0 transparent, + calc(var(--pixel) * 13) calc(var(--pixel) * 1) 0 transparent, + calc(var(--pixel) * 14) calc(var(--pixel) * 1) 0 transparent, + calc(var(--pixel) * 15) calc(var(--pixel) * 1) 0 transparent, + calc(var(--pixel) * 16) calc(var(--pixel) * 1) 0 transparent, + + /* r:2 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 2) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 2) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 2) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 2) 0 transparent, + calc(var(--pixel) * 5) calc(var(--pixel) * 2) 0 transparent, + calc(var(--pixel) * 6) calc(var(--pixel) * 2) 0 var(--c-1), + calc(var(--pixel) * 7) calc(var(--pixel) * 2) 0 var(--c-1), + calc(var(--pixel) * 8) calc(var(--pixel) * 2) 0 var(--c-1), + calc(var(--pixel) * 9) calc(var(--pixel) * 2) 0 var(--c-1), + calc(var(--pixel) * 10) calc(var(--pixel) * 2) 0 var(--c-1), + calc(var(--pixel) * 11) calc(var(--pixel) * 2) 0 var(--c-1), + calc(var(--pixel) * 12) calc(var(--pixel) * 2) 0 var(--c-1), + calc(var(--pixel) * 13) calc(var(--pixel) * 2) 0 var(--c-1), + calc(var(--pixel) * 14) calc(var(--pixel) * 2) 0 var(--c-1), + calc(var(--pixel) * 15) calc(var(--pixel) * 2) 0 transparent, + calc(var(--pixel) * 16) calc(var(--pixel) * 2) 0 transparent, + + /* r:3 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 3) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 3) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 3) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 3) 0 transparent, + calc(var(--pixel) * 5) calc(var(--pixel) * 3) 0 transparent, + calc(var(--pixel) * 6) calc(var(--pixel) * 3) 0 var(--c-3), + calc(var(--pixel) * 7) calc(var(--pixel) * 3) 0 var(--c-3), + calc(var(--pixel) * 8) calc(var(--pixel) * 3) 0 var(--c-3), + calc(var(--pixel) * 9) calc(var(--pixel) * 3) 0 var(--c-2), + calc(var(--pixel) * 10) calc(var(--pixel) * 3) 0 var(--c-2), + calc(var(--pixel) * 11) calc(var(--pixel) * 3) 0 var(--c-3), + calc(var(--pixel) * 12) calc(var(--pixel) * 3) 0 var(--c-2), + calc(var(--pixel) * 13) calc(var(--pixel) * 3) 0 transparent, + calc(var(--pixel) * 14) calc(var(--pixel) * 3) 0 transparent, + calc(var(--pixel) * 15) calc(var(--pixel) * 3) 0 transparent, + calc(var(--pixel) * 16) calc(var(--pixel) * 3) 0 transparent, + + /* r:4 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 4) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 4) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 4) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 4) 0 transparent, + calc(var(--pixel) * 5) calc(var(--pixel) * 4) 0 var(--c-3), + calc(var(--pixel) * 6) calc(var(--pixel) * 4) 0 var(--c-2), + calc(var(--pixel) * 7) calc(var(--pixel) * 4) 0 var(--c-3), + calc(var(--pixel) * 8) calc(var(--pixel) * 4) 0 var(--c-2), + calc(var(--pixel) * 9) calc(var(--pixel) * 4) 0 var(--c-2), + calc(var(--pixel) * 10) calc(var(--pixel) * 4) 0 var(--c-2), + calc(var(--pixel) * 11) calc(var(--pixel) * 4) 0 var(--c-3), + calc(var(--pixel) * 12) calc(var(--pixel) * 4) 0 var(--c-2), + calc(var(--pixel) * 13) calc(var(--pixel) * 4) 0 var(--c-2), + calc(var(--pixel) * 14) calc(var(--pixel) * 4) 0 var(--c-2), + calc(var(--pixel) * 15) calc(var(--pixel) * 4) 0 transparent, + calc(var(--pixel) * 16) calc(var(--pixel) * 4) 0 transparent, + + /* r:5 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 5) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 5) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 5) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 5) 0 transparent, + calc(var(--pixel) * 5) calc(var(--pixel) * 5) 0 var(--c-3), + calc(var(--pixel) * 6) calc(var(--pixel) * 5) 0 var(--c-2), + calc(var(--pixel) * 7) calc(var(--pixel) * 5) 0 var(--c-3), + calc(var(--pixel) * 8) calc(var(--pixel) * 5) 0 var(--c-3), + calc(var(--pixel) * 9) calc(var(--pixel) * 5) 0 var(--c-2), + calc(var(--pixel) * 10) calc(var(--pixel) * 5) 0 var(--c-2), + calc(var(--pixel) * 11) calc(var(--pixel) * 5) 0 var(--c-2), + calc(var(--pixel) * 12) calc(var(--pixel) * 5) 0 var(--c-3), + calc(var(--pixel) * 13) calc(var(--pixel) * 5) 0 var(--c-2), + calc(var(--pixel) * 14) calc(var(--pixel) * 5) 0 var(--c-2), + calc(var(--pixel) * 15) calc(var(--pixel) * 5) 0 var(--c-2), + calc(var(--pixel) * 16) calc(var(--pixel) * 5) 0 transparent, + + /* r:6 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 6) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 6) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 6) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 6) 0 transparent, + calc(var(--pixel) * 5) calc(var(--pixel) * 6) 0 var(--c-3), + calc(var(--pixel) * 6) calc(var(--pixel) * 6) 0 var(--c-3), + calc(var(--pixel) * 7) calc(var(--pixel) * 6) 0 var(--c-2), + calc(var(--pixel) * 8) calc(var(--pixel) * 6) 0 var(--c-2), + calc(var(--pixel) * 9) calc(var(--pixel) * 6) 0 var(--c-2), + calc(var(--pixel) * 10) calc(var(--pixel) * 6) 0 var(--c-2), + calc(var(--pixel) * 11) calc(var(--pixel) * 6) 0 var(--c-3), + calc(var(--pixel) * 12) calc(var(--pixel) * 6) 0 var(--c-3), + calc(var(--pixel) * 13) calc(var(--pixel) * 6) 0 var(--c-3), + calc(var(--pixel) * 14) calc(var(--pixel) * 6) 0 var(--c-3), + calc(var(--pixel) * 15) calc(var(--pixel) * 6) 0 transparent, + calc(var(--pixel) * 16) calc(var(--pixel) * 6) 0 transparent, + + /* r:7 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 7) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 7) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 7) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 7) 0 transparent, + calc(var(--pixel) * 5) calc(var(--pixel) * 7) 0 transparent, + calc(var(--pixel) * 6) calc(var(--pixel) * 7) 0 transparent, + calc(var(--pixel) * 7) calc(var(--pixel) * 7) 0 var(--c-2), + calc(var(--pixel) * 8) calc(var(--pixel) * 7) 0 var(--c-2), + calc(var(--pixel) * 9) calc(var(--pixel) * 7) 0 var(--c-2), + calc(var(--pixel) * 10) calc(var(--pixel) * 7) 0 var(--c-2), + calc(var(--pixel) * 11) calc(var(--pixel) * 7) 0 var(--c-2), + calc(var(--pixel) * 12) calc(var(--pixel) * 7) 0 var(--c-2), + calc(var(--pixel) * 13) calc(var(--pixel) * 7) 0 var(--c-2), + calc(var(--pixel) * 14) calc(var(--pixel) * 7) 0 transparent, + calc(var(--pixel) * 15) calc(var(--pixel) * 7) 0 transparent, + calc(var(--pixel) * 16) calc(var(--pixel) * 7) 0 transparent, + + /* r:8 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 8) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 8) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 8) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 8) 0 transparent, + calc(var(--pixel) * 5) calc(var(--pixel) * 8) 0 transparent, + calc(var(--pixel) * 6) calc(var(--pixel) * 8) 0 var(--c-3), + calc(var(--pixel) * 7) calc(var(--pixel) * 8) 0 var(--c-3), + calc(var(--pixel) * 8) calc(var(--pixel) * 8) 0 var(--c-1), + calc(var(--pixel) * 9) calc(var(--pixel) * 8) 0 var(--c-3), + calc(var(--pixel) * 10) calc(var(--pixel) * 8) 0 var(--c-3), + calc(var(--pixel) * 11) calc(var(--pixel) * 8) 0 var(--c-3), + calc(var(--pixel) * 12) calc(var(--pixel) * 8) 0 transparent, + calc(var(--pixel) * 13) calc(var(--pixel) * 8) 0 transparent, + calc(var(--pixel) * 14) calc(var(--pixel) * 8) 0 transparent, + calc(var(--pixel) * 15) calc(var(--pixel) * 8) 0 transparent, + calc(var(--pixel) * 16) calc(var(--pixel) * 8) 0 transparent, + + /* r:9 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 9) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 9) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 9) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 9) 0 transparent, + calc(var(--pixel) * 5) calc(var(--pixel) * 9) 0 var(--c-3), + calc(var(--pixel) * 6) calc(var(--pixel) * 9) 0 var(--c-3), + calc(var(--pixel) * 7) calc(var(--pixel) * 9) 0 var(--c-3), + calc(var(--pixel) * 8) calc(var(--pixel) * 9) 0 var(--c-1), + calc(var(--pixel) * 9) calc(var(--pixel) * 9) 0 var(--c-3), + calc(var(--pixel) * 10) calc(var(--pixel) * 9) 0 var(--c-3), + calc(var(--pixel) * 11) calc(var(--pixel) * 9) 0 var(--c-1), + calc(var(--pixel) * 12) calc(var(--pixel) * 9) 0 var(--c-3), + calc(var(--pixel) * 13) calc(var(--pixel) * 9) 0 var(--c-3), + calc(var(--pixel) * 14) calc(var(--pixel) * 9) 0 var(--c-3), + calc(var(--pixel) * 15) calc(var(--pixel) * 9) 0 transparent, + calc(var(--pixel) * 16) calc(var(--pixel) * 9) 0 transparent, + + /* r:10 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 10) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 10) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 10) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 10) 0 var(--c-3), + calc(var(--pixel) * 5) calc(var(--pixel) * 10) 0 var(--c-3), + calc(var(--pixel) * 6) calc(var(--pixel) * 10) 0 var(--c-3), + calc(var(--pixel) * 7) calc(var(--pixel) * 10) 0 var(--c-3), + calc(var(--pixel) * 8) calc(var(--pixel) * 10) 0 var(--c-1), + calc(var(--pixel) * 9) calc(var(--pixel) * 10) 0 var(--c-1), + calc(var(--pixel) * 10) calc(var(--pixel) * 10) 0 var(--c-1), + calc(var(--pixel) * 11) calc(var(--pixel) * 10) 0 var(--c-1), + calc(var(--pixel) * 12) calc(var(--pixel) * 10) 0 var(--c-3), + calc(var(--pixel) * 13) calc(var(--pixel) * 10) 0 var(--c-3), + calc(var(--pixel) * 14) calc(var(--pixel) * 10) 0 var(--c-3), + calc(var(--pixel) * 15) calc(var(--pixel) * 10) 0 var(--c-3), + calc(var(--pixel) * 16) calc(var(--pixel) * 10) 0 transparent, + + /* r:11 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 11) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 11) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 11) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 11) 0 var(--c-2), + calc(var(--pixel) * 5) calc(var(--pixel) * 11) 0 var(--c-2), + calc(var(--pixel) * 6) calc(var(--pixel) * 11) 0 var(--c-3), + calc(var(--pixel) * 7) calc(var(--pixel) * 11) 0 var(--c-1), + calc(var(--pixel) * 8) calc(var(--pixel) * 11) 0 var(--c-2), + calc(var(--pixel) * 9) calc(var(--pixel) * 11) 0 var(--c-1), + calc(var(--pixel) * 10) calc(var(--pixel) * 11) 0 var(--c-1), + calc(var(--pixel) * 11) calc(var(--pixel) * 11) 0 var(--c-2), + calc(var(--pixel) * 12) calc(var(--pixel) * 11) 0 var(--c-1), + calc(var(--pixel) * 13) calc(var(--pixel) * 11) 0 var(--c-3), + calc(var(--pixel) * 14) calc(var(--pixel) * 11) 0 var(--c-2), + calc(var(--pixel) * 15) calc(var(--pixel) * 11) 0 var(--c-2), + calc(var(--pixel) * 16) calc(var(--pixel) * 11) 0 transparent, + + /* r:12 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 12) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 12) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 12) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 12) 0 var(--c-2), + calc(var(--pixel) * 5) calc(var(--pixel) * 12) 0 var(--c-2), + calc(var(--pixel) * 6) calc(var(--pixel) * 12) 0 var(--c-2), + calc(var(--pixel) * 7) calc(var(--pixel) * 12) 0 var(--c-1), + calc(var(--pixel) * 8) calc(var(--pixel) * 12) 0 var(--c-1), + calc(var(--pixel) * 9) calc(var(--pixel) * 12) 0 var(--c-1), + calc(var(--pixel) * 10) calc(var(--pixel) * 12) 0 var(--c-1), + calc(var(--pixel) * 11) calc(var(--pixel) * 12) 0 var(--c-1), + calc(var(--pixel) * 12) calc(var(--pixel) * 12) 0 var(--c-1), + calc(var(--pixel) * 13) calc(var(--pixel) * 12) 0 var(--c-2), + calc(var(--pixel) * 14) calc(var(--pixel) * 12) 0 var(--c-2), + calc(var(--pixel) * 15) calc(var(--pixel) * 12) 0 var(--c-2), + calc(var(--pixel) * 16) calc(var(--pixel) * 12) 0 transparent, + + /* r:13 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 13) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 13) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 13) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 13) 0 var(--c-2), + calc(var(--pixel) * 5) calc(var(--pixel) * 13) 0 var(--c-2), + calc(var(--pixel) * 6) calc(var(--pixel) * 13) 0 var(--c-1), + calc(var(--pixel) * 7) calc(var(--pixel) * 13) 0 var(--c-1), + calc(var(--pixel) * 8) calc(var(--pixel) * 13) 0 var(--c-1), + calc(var(--pixel) * 9) calc(var(--pixel) * 13) 0 var(--c-1), + calc(var(--pixel) * 10) calc(var(--pixel) * 13) 0 var(--c-1), + calc(var(--pixel) * 11) calc(var(--pixel) * 13) 0 var(--c-1), + calc(var(--pixel) * 12) calc(var(--pixel) * 13) 0 var(--c-1), + calc(var(--pixel) * 13) calc(var(--pixel) * 13) 0 var(--c-1), + calc(var(--pixel) * 14) calc(var(--pixel) * 13) 0 var(--c-2), + calc(var(--pixel) * 15) calc(var(--pixel) * 13) 0 var(--c-2), + calc(var(--pixel) * 16) calc(var(--pixel) * 13) 0 transparent, + + /* r:14 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 14) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 14) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 14) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 14) 0 transparent, + calc(var(--pixel) * 5) calc(var(--pixel) * 14) 0 transparent, + calc(var(--pixel) * 6) calc(var(--pixel) * 14) 0 var(--c-1), + calc(var(--pixel) * 7) calc(var(--pixel) * 14) 0 var(--c-1), + calc(var(--pixel) * 8) calc(var(--pixel) * 14) 0 var(--c-1), + calc(var(--pixel) * 9) calc(var(--pixel) * 14) 0 transparent, + calc(var(--pixel) * 10) calc(var(--pixel) * 14) 0 transparent, + calc(var(--pixel) * 11) calc(var(--pixel) * 14) 0 var(--c-1), + calc(var(--pixel) * 12) calc(var(--pixel) * 14) 0 var(--c-1), + calc(var(--pixel) * 13) calc(var(--pixel) * 14) 0 var(--c-1), + calc(var(--pixel) * 14) calc(var(--pixel) * 14) 0 transparent, + calc(var(--pixel) * 15) calc(var(--pixel) * 14) 0 transparent, + calc(var(--pixel) * 16) calc(var(--pixel) * 14) 0 transparent, + + /* r:15 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 15) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 15) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 15) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 15) 0 transparent, + calc(var(--pixel) * 5) calc(var(--pixel) * 15) 0 var(--c-3), + calc(var(--pixel) * 6) calc(var(--pixel) * 15) 0 var(--c-3), + calc(var(--pixel) * 7) calc(var(--pixel) * 15) 0 var(--c-3), + calc(var(--pixel) * 8) calc(var(--pixel) * 15) 0 transparent, + calc(var(--pixel) * 9) calc(var(--pixel) * 15) 0 transparent, + calc(var(--pixel) * 10) calc(var(--pixel) * 15) 0 transparent, + calc(var(--pixel) * 11) calc(var(--pixel) * 15) 0 transparent, + calc(var(--pixel) * 12) calc(var(--pixel) * 15) 0 var(--c-3), + calc(var(--pixel) * 13) calc(var(--pixel) * 15) 0 var(--c-3), + calc(var(--pixel) * 14) calc(var(--pixel) * 15) 0 var(--c-3), + calc(var(--pixel) * 15) calc(var(--pixel) * 15) 0 transparent, + calc(var(--pixel) * 16) calc(var(--pixel) * 15) 0 transparent, + + /* r:16 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 16) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 16) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 16) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 16) 0 var(--c-3), + calc(var(--pixel) * 5) calc(var(--pixel) * 16) 0 var(--c-3), + calc(var(--pixel) * 6) calc(var(--pixel) * 16) 0 var(--c-3), + calc(var(--pixel) * 7) calc(var(--pixel) * 16) 0 var(--c-3), + calc(var(--pixel) * 8) calc(var(--pixel) * 16) 0 transparent, + calc(var(--pixel) * 9) calc(var(--pixel) * 16) 0 transparent, + calc(var(--pixel) * 10) calc(var(--pixel) * 16) 0 transparent, + calc(var(--pixel) * 11) calc(var(--pixel) * 16) 0 transparent, + calc(var(--pixel) * 12) calc(var(--pixel) * 16) 0 var(--c-3), + calc(var(--pixel) * 13) calc(var(--pixel) * 16) 0 var(--c-3), + calc(var(--pixel) * 14) calc(var(--pixel) * 16) 0 var(--c-3), + calc(var(--pixel) * 15) calc(var(--pixel) * 16) 0 var(--c-3), + calc(var(--pixel) * 16) calc(var(--pixel) * 16) 0 transparent; + } + + 25%, 75% { + box-shadow: + /* r:1 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 1) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 1) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 1) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 1) 0 transparent, + calc(var(--pixel) * 5) calc(var(--pixel) * 1) 0 transparent, + calc(var(--pixel) * 6) calc(var(--pixel) * 1) 0 transparent, + calc(var(--pixel) * 7) calc(var(--pixel) * 1) 0 transparent, + calc(var(--pixel) * 8) calc(var(--pixel) * 1) 0 transparent, + calc(var(--pixel) * 9) calc(var(--pixel) * 1) 0 transparent, + calc(var(--pixel) * 10) calc(var(--pixel) * 1) 0 transparent, + calc(var(--pixel) * 11) calc(var(--pixel) * 1) 0 transparent, + calc(var(--pixel) * 12) calc(var(--pixel) * 1) 0 transparent, + calc(var(--pixel) * 13) calc(var(--pixel) * 1) 0 transparent, + calc(var(--pixel) * 14) calc(var(--pixel) * 1) 0 var(--c-2), + calc(var(--pixel) * 15) calc(var(--pixel) * 1) 0 var(--c-2), + calc(var(--pixel) * 16) calc(var(--pixel) * 1) 0 var(--c-2), + + /* r:2 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 2) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 2) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 2) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 2) 0 transparent, + calc(var(--pixel) * 5) calc(var(--pixel) * 2) 0 transparent, + calc(var(--pixel) * 6) calc(var(--pixel) * 2) 0 transparent, + calc(var(--pixel) * 7) calc(var(--pixel) * 2) 0 var(--c-1), + calc(var(--pixel) * 8) calc(var(--pixel) * 2) 0 var(--c-1), + calc(var(--pixel) * 9) calc(var(--pixel) * 2) 0 var(--c-1), + calc(var(--pixel) * 10) calc(var(--pixel) * 2) 0 var(--c-1), + calc(var(--pixel) * 11) calc(var(--pixel) * 2) 0 var(--c-1), + calc(var(--pixel) * 12) calc(var(--pixel) * 2) 0 transparent, + calc(var(--pixel) * 13) calc(var(--pixel) * 2) 0 transparent, + calc(var(--pixel) * 14) calc(var(--pixel) * 2) 0 var(--c-2), + calc(var(--pixel) * 15) calc(var(--pixel) * 2) 0 var(--c-2), + calc(var(--pixel) * 16) calc(var(--pixel) * 2) 0 var(--c-2), + + /* r:3 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 3) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 3) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 3) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 3) 0 transparent, + calc(var(--pixel) * 5) calc(var(--pixel) * 3) 0 transparent, + calc(var(--pixel) * 6) calc(var(--pixel) * 3) 0 var(--c-1), + calc(var(--pixel) * 7) calc(var(--pixel) * 3) 0 var(--c-1), + calc(var(--pixel) * 8) calc(var(--pixel) * 3) 0 var(--c-1), + calc(var(--pixel) * 9) calc(var(--pixel) * 3) 0 var(--c-1), + calc(var(--pixel) * 10) calc(var(--pixel) * 3) 0 var(--c-1), + calc(var(--pixel) * 11) calc(var(--pixel) * 3) 0 var(--c-1), + calc(var(--pixel) * 12) calc(var(--pixel) * 3) 0 var(--c-1), + calc(var(--pixel) * 13) calc(var(--pixel) * 3) 0 var(--c-1), + calc(var(--pixel) * 14) calc(var(--pixel) * 3) 0 var(--c-1), + calc(var(--pixel) * 15) calc(var(--pixel) * 3) 0 var(--c-2), + calc(var(--pixel) * 16) calc(var(--pixel) * 3) 0 var(--c-2), + + /* r:4 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 4) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 4) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 4) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 4) 0 transparent, + calc(var(--pixel) * 5) calc(var(--pixel) * 4) 0 transparent, + calc(var(--pixel) * 6) calc(var(--pixel) * 4) 0 var(--c-3), + calc(var(--pixel) * 7) calc(var(--pixel) * 4) 0 var(--c-3), + calc(var(--pixel) * 8) calc(var(--pixel) * 4) 0 var(--c-3), + calc(var(--pixel) * 9) calc(var(--pixel) * 4) 0 var(--c-2), + calc(var(--pixel) * 10) calc(var(--pixel) * 4) 0 var(--c-2), + calc(var(--pixel) * 11) calc(var(--pixel) * 4) 0 var(--c-3), + calc(var(--pixel) * 12) calc(var(--pixel) * 4) 0 var(--c-2), + calc(var(--pixel) * 13) calc(var(--pixel) * 4) 0 transparent, + calc(var(--pixel) * 14) calc(var(--pixel) * 4) 0 var(--c-2), + calc(var(--pixel) * 15) calc(var(--pixel) * 4) 0 var(--c-2), + calc(var(--pixel) * 16) calc(var(--pixel) * 4) 0 var(--c-2), + + /* r:5 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 5) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 5) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 5) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 5) 0 transparent, + calc(var(--pixel) * 5) calc(var(--pixel) * 5) 0 var(--c-3), + calc(var(--pixel) * 6) calc(var(--pixel) * 5) 0 var(--c-2), + calc(var(--pixel) * 7) calc(var(--pixel) * 5) 0 var(--c-3), + calc(var(--pixel) * 8) calc(var(--pixel) * 5) 0 var(--c-2), + calc(var(--pixel) * 9) calc(var(--pixel) * 5) 0 var(--c-2), + calc(var(--pixel) * 10) calc(var(--pixel) * 5) 0 var(--c-2), + calc(var(--pixel) * 11) calc(var(--pixel) * 5) 0 var(--c-3), + calc(var(--pixel) * 12) calc(var(--pixel) * 5) 0 var(--c-2), + calc(var(--pixel) * 13) calc(var(--pixel) * 5) 0 var(--c-2), + calc(var(--pixel) * 14) calc(var(--pixel) * 5) 0 var(--c-2), + calc(var(--pixel) * 15) calc(var(--pixel) * 5) 0 var(--c-3), + calc(var(--pixel) * 16) calc(var(--pixel) * 5) 0 var(--c-3), + + /* r:6 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 6) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 6) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 6) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 6) 0 transparent, + calc(var(--pixel) * 5) calc(var(--pixel) * 6) 0 var(--c-3), + calc(var(--pixel) * 6) calc(var(--pixel) * 6) 0 var(--c-2), + calc(var(--pixel) * 7) calc(var(--pixel) * 6) 0 var(--c-3), + calc(var(--pixel) * 8) calc(var(--pixel) * 6) 0 var(--c-3), + calc(var(--pixel) * 9) calc(var(--pixel) * 6) 0 var(--c-2), + calc(var(--pixel) * 10) calc(var(--pixel) * 6) 0 var(--c-2), + calc(var(--pixel) * 11) calc(var(--pixel) * 6) 0 var(--c-2), + calc(var(--pixel) * 12) calc(var(--pixel) * 6) 0 var(--c-3), + calc(var(--pixel) * 13) calc(var(--pixel) * 6) 0 var(--c-2), + calc(var(--pixel) * 14) calc(var(--pixel) * 6) 0 var(--c-2), + calc(var(--pixel) * 15) calc(var(--pixel) * 6) 0 var(--c-2), + calc(var(--pixel) * 16) calc(var(--pixel) * 6) 0 var(--c-3), + + /* r:7 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 7) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 7) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 7) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 7) 0 transparent, + calc(var(--pixel) * 5) calc(var(--pixel) * 7) 0 var(--c-3), + calc(var(--pixel) * 6) calc(var(--pixel) * 7) 0 var(--c-3), + calc(var(--pixel) * 7) calc(var(--pixel) * 7) 0 var(--c-2), + calc(var(--pixel) * 8) calc(var(--pixel) * 7) 0 var(--c-2), + calc(var(--pixel) * 9) calc(var(--pixel) * 7) 0 var(--c-2), + calc(var(--pixel) * 10) calc(var(--pixel) * 7) 0 var(--c-2), + calc(var(--pixel) * 11) calc(var(--pixel) * 7) 0 var(--c-3), + calc(var(--pixel) * 12) calc(var(--pixel) * 7) 0 var(--c-3), + calc(var(--pixel) * 13) calc(var(--pixel) * 7) 0 var(--c-3), + calc(var(--pixel) * 14) calc(var(--pixel) * 7) 0 var(--c-3), + calc(var(--pixel) * 15) calc(var(--pixel) * 7) 0 transparent, + calc(var(--pixel) * 16) calc(var(--pixel) * 7) 0 transparent, + + /* r:8 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 8) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 8) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 8) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 8) 0 transparent, + calc(var(--pixel) * 5) calc(var(--pixel) * 8) 0 transparent, + calc(var(--pixel) * 6) calc(var(--pixel) * 8) 0 transparent, + calc(var(--pixel) * 7) calc(var(--pixel) * 8) 0 var(--c-2), + calc(var(--pixel) * 8) calc(var(--pixel) * 8) 0 var(--c-2), + calc(var(--pixel) * 9) calc(var(--pixel) * 8) 0 var(--c-2), + calc(var(--pixel) * 10) calc(var(--pixel) * 8) 0 var(--c-2), + calc(var(--pixel) * 11) calc(var(--pixel) * 8) 0 var(--c-2), + calc(var(--pixel) * 12) calc(var(--pixel) * 8) 0 var(--c-2), + calc(var(--pixel) * 13) calc(var(--pixel) * 8) 0 var(--c-2), + calc(var(--pixel) * 14) calc(var(--pixel) * 8) 0 transparent, + calc(var(--pixel) * 15) calc(var(--pixel) * 8) 0 transparent, + calc(var(--pixel) * 16) calc(var(--pixel) * 8) 0 transparent, + + /* r:9 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 9) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 9) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 9) 0 var(--c-3), + calc(var(--pixel) * 4) calc(var(--pixel) * 9) 0 var(--c-3), + calc(var(--pixel) * 5) calc(var(--pixel) * 9) 0 var(--c-3), + calc(var(--pixel) * 6) calc(var(--pixel) * 9) 0 var(--c-3), + calc(var(--pixel) * 7) calc(var(--pixel) * 9) 0 var(--c-3), + calc(var(--pixel) * 8) calc(var(--pixel) * 9) 0 var(--c-1), + calc(var(--pixel) * 9) calc(var(--pixel) * 9) 0 var(--c-3), + calc(var(--pixel) * 10) calc(var(--pixel) * 9) 0 var(--c-3), + calc(var(--pixel) * 11) calc(var(--pixel) * 9) 0 var(--c-3), + calc(var(--pixel) * 12) calc(var(--pixel) * 9) 0 var(--c-1), + calc(var(--pixel) * 13) calc(var(--pixel) * 9) 0 var(--c-3), + calc(var(--pixel) * 14) calc(var(--pixel) * 9) 0 transparent, + calc(var(--pixel) * 15) calc(var(--pixel) * 9) 0 transparent, + calc(var(--pixel) * 16) calc(var(--pixel) * 9) 0 transparent, + + /* r:10 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 10) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 10) 0 var(--c-3), + calc(var(--pixel) * 3) calc(var(--pixel) * 10) 0 var(--c-3), + calc(var(--pixel) * 4) calc(var(--pixel) * 10) 0 var(--c-3), + calc(var(--pixel) * 5) calc(var(--pixel) * 10) 0 var(--c-3), + calc(var(--pixel) * 6) calc(var(--pixel) * 10) 0 var(--c-3), + calc(var(--pixel) * 7) calc(var(--pixel) * 10) 0 var(--c-3), + calc(var(--pixel) * 8) calc(var(--pixel) * 10) 0 var(--c-1), + calc(var(--pixel) * 9) calc(var(--pixel) * 10) 0 var(--c-3), + calc(var(--pixel) * 10) calc(var(--pixel) * 10) 0 var(--c-3), + calc(var(--pixel) * 11) calc(var(--pixel) * 10) 0 var(--c-3), + calc(var(--pixel) * 12) calc(var(--pixel) * 10) 0 var(--c-1), + calc(var(--pixel) * 13) calc(var(--pixel) * 10) 0 transparent, + calc(var(--pixel) * 14) calc(var(--pixel) * 10) 0 transparent, + calc(var(--pixel) * 15) calc(var(--pixel) * 10) 0 transparent, + calc(var(--pixel) * 16) calc(var(--pixel) * 10) 0 var(--c-3), + + /* r:11 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 11) 0 var(--c-2), + calc(var(--pixel) * 2) calc(var(--pixel) * 11) 0 var(--c-2), + calc(var(--pixel) * 3) calc(var(--pixel) * 11) 0 var(--c-3), + calc(var(--pixel) * 4) calc(var(--pixel) * 11) 0 var(--c-3), + calc(var(--pixel) * 5) calc(var(--pixel) * 11) 0 var(--c-3), + calc(var(--pixel) * 6) calc(var(--pixel) * 11) 0 var(--c-3), + calc(var(--pixel) * 7) calc(var(--pixel) * 11) 0 var(--c-3), + calc(var(--pixel) * 8) calc(var(--pixel) * 11) 0 var(--c-3), + calc(var(--pixel) * 9) calc(var(--pixel) * 11) 0 var(--c-1), + calc(var(--pixel) * 10) calc(var(--pixel) * 11) 0 var(--c-1), + calc(var(--pixel) * 11) calc(var(--pixel) * 11) 0 var(--c-1), + calc(var(--pixel) * 12) calc(var(--pixel) * 11) 0 var(--c-1), + calc(var(--pixel) * 13) calc(var(--pixel) * 11) 0 var(--c-1), + calc(var(--pixel) * 14) calc(var(--pixel) * 11) 0 transparent, + calc(var(--pixel) * 15) calc(var(--pixel) * 11) 0 transparent, + calc(var(--pixel) * 16) calc(var(--pixel) * 11) 0 var(--c-3), + + /* r:12 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 12) 0 var(--c-2), + calc(var(--pixel) * 2) calc(var(--pixel) * 12) 0 var(--c-2), + calc(var(--pixel) * 3) calc(var(--pixel) * 12) 0 var(--c-2), + calc(var(--pixel) * 4) calc(var(--pixel) * 12) 0 transparent, + calc(var(--pixel) * 5) calc(var(--pixel) * 12) 0 transparent, + calc(var(--pixel) * 6) calc(var(--pixel) * 12) 0 var(--c-1), + calc(var(--pixel) * 7) calc(var(--pixel) * 12) 0 var(--c-3), + calc(var(--pixel) * 8) calc(var(--pixel) * 12) 0 var(--c-1), + calc(var(--pixel) * 9) calc(var(--pixel) * 12) 0 var(--c-1), + calc(var(--pixel) * 10) calc(var(--pixel) * 12) 0 var(--c-1), + calc(var(--pixel) * 11) calc(var(--pixel) * 12) 0 var(--c-2), + calc(var(--pixel) * 12) calc(var(--pixel) * 12) 0 var(--c-1), + calc(var(--pixel) * 13) calc(var(--pixel) * 12) 0 var(--c-2), + calc(var(--pixel) * 14) calc(var(--pixel) * 12) 0 var(--c-1), + calc(var(--pixel) * 15) calc(var(--pixel) * 12) 0 var(--c-3), + calc(var(--pixel) * 16) calc(var(--pixel) * 12) 0 var(--c-3), + + /* r:13 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 13) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 13) 0 var(--c-2), + calc(var(--pixel) * 3) calc(var(--pixel) * 13) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 13) 0 var(--c-3), + calc(var(--pixel) * 5) calc(var(--pixel) * 13) 0 transparent, + calc(var(--pixel) * 6) calc(var(--pixel) * 13) 0 var(--c-1), + calc(var(--pixel) * 7) calc(var(--pixel) * 13) 0 var(--c-1), + calc(var(--pixel) * 8) calc(var(--pixel) * 13) 0 var(--c-1), + calc(var(--pixel) * 9) calc(var(--pixel) * 13) 0 var(--c-1), + calc(var(--pixel) * 10) calc(var(--pixel) * 13) 0 var(--c-1), + calc(var(--pixel) * 11) calc(var(--pixel) * 13) 0 var(--c-1), + calc(var(--pixel) * 12) calc(var(--pixel) * 13) 0 var(--c-1), + calc(var(--pixel) * 13) calc(var(--pixel) * 13) 0 var(--c-1), + calc(var(--pixel) * 14) calc(var(--pixel) * 13) 0 var(--c-1), + calc(var(--pixel) * 15) calc(var(--pixel) * 13) 0 var(--c-3), + calc(var(--pixel) * 16) calc(var(--pixel) * 13) 0 var(--c-3), + + /* r:14 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 14) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 14) 0 transparent, + calc(var(--pixel) * 3) calc(var(--pixel) * 14) 0 var(--c-3), + calc(var(--pixel) * 4) calc(var(--pixel) * 14) 0 var(--c-3), + calc(var(--pixel) * 5) calc(var(--pixel) * 14) 0 var(--c-3), + calc(var(--pixel) * 6) calc(var(--pixel) * 14) 0 var(--c-1), + calc(var(--pixel) * 7) calc(var(--pixel) * 14) 0 var(--c-1), + calc(var(--pixel) * 8) calc(var(--pixel) * 14) 0 var(--c-1), + calc(var(--pixel) * 9) calc(var(--pixel) * 14) 0 var(--c-1), + calc(var(--pixel) * 10) calc(var(--pixel) * 14) 0 var(--c-1), + calc(var(--pixel) * 11) calc(var(--pixel) * 14) 0 var(--c-1), + calc(var(--pixel) * 12) calc(var(--pixel) * 14) 0 var(--c-1), + calc(var(--pixel) * 13) calc(var(--pixel) * 14) 0 var(--c-1), + calc(var(--pixel) * 14) calc(var(--pixel) * 14) 0 var(--c-1), + calc(var(--pixel) * 15) calc(var(--pixel) * 14) 0 var(--c-3), + calc(var(--pixel) * 16) calc(var(--pixel) * 14) 0 var(--c-3), + + /* r:15 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 15) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 15) 0 var(--c-3), + calc(var(--pixel) * 3) calc(var(--pixel) * 15) 0 var(--c-3), + calc(var(--pixel) * 4) calc(var(--pixel) * 15) 0 var(--c-3), + calc(var(--pixel) * 5) calc(var(--pixel) * 15) 0 var(--c-1), + calc(var(--pixel) * 6) calc(var(--pixel) * 15) 0 var(--c-1), + calc(var(--pixel) * 7) calc(var(--pixel) * 15) 0 var(--c-1), + calc(var(--pixel) * 8) calc(var(--pixel) * 15) 0 var(--c-1), + calc(var(--pixel) * 9) calc(var(--pixel) * 15) 0 var(--c-1), + calc(var(--pixel) * 10) calc(var(--pixel) * 15) 0 var(--c-1), + calc(var(--pixel) * 11) calc(var(--pixel) * 15) 0 var(--c-1), + calc(var(--pixel) * 12) calc(var(--pixel) * 15) 0 var(--c-1), + calc(var(--pixel) * 13) calc(var(--pixel) * 15) 0 transparent, + calc(var(--pixel) * 14) calc(var(--pixel) * 15) 0 transparent, + calc(var(--pixel) * 15) calc(var(--pixel) * 15) 0 transparent, + calc(var(--pixel) * 16) calc(var(--pixel) * 15) 0 transparent, + + /* r:16 */ + calc(var(--pixel) * 1) calc(var(--pixel) * 16) 0 transparent, + calc(var(--pixel) * 2) calc(var(--pixel) * 16) 0 var(--c-3), + calc(var(--pixel) * 3) calc(var(--pixel) * 16) 0 transparent, + calc(var(--pixel) * 4) calc(var(--pixel) * 16) 0 transparent, + calc(var(--pixel) * 5) calc(var(--pixel) * 16) 0 var(--c-1), + calc(var(--pixel) * 6) calc(var(--pixel) * 16) 0 var(--c-1), + calc(var(--pixel) * 7) calc(var(--pixel) * 16) 0 var(--c-1), + calc(var(--pixel) * 8) calc(var(--pixel) * 16) 0 var(--c-1), + calc(var(--pixel) * 9) calc(var(--pixel) * 16) 0 transparent, + calc(var(--pixel) * 10) calc(var(--pixel) * 16) 0 transparent, + calc(var(--pixel) * 11) calc(var(--pixel) * 16) 0 transparent, + calc(var(--pixel) * 12) calc(var(--pixel) * 16) 0 transparent, + calc(var(--pixel) * 13) calc(var(--pixel) * 16) 0 transparent, + calc(var(--pixel) * 14) calc(var(--pixel) * 16) 0 transparent, + calc(var(--pixel) * 15) calc(var(--pixel) * 16) 0 transparent, + calc(var(--pixel) * 16) calc(var(--pixel) * 16) 0 transparent; + } +} + +/*加载画面的进度条框*/ +body:not(.default-loading-page) .progress-bar-line { + display: none; +} + +/*加载画面的进度条*/ +body:not(.default-loading-page) .progress-bar-subline { + display: none; +} + +/* ================================== */ +/* ======= Banner ======= */ +/* ================================== */ + +.show-inline-title .obsidian-banner-wrapper.has-banner-icon .obsidian-banner-icon.v-center, +.show-inline-title .obsidian-banner-wrapper.has-banner-icon .obsidian-banner-icon.v-custom { + margin-top: calc(-1em - 6px); +} +.show-inline-title .obsidian-banner-wrapper.has-banner-icon .obsidian-banner-icon.v-above { + margin-top: calc(-2em - 12px); +} +/* ====cssclass background 属性可以使得banner作为笔记背景 ===== */ +.markdown-preview-view.background .obsidian-banner-wrapper { + position: absolute; + width: 100%; + height: 100%; + top: 0; + bottom: 0; + left: 0; + background-size: cover; + z-index: -1; + opacity: 0.8; + background-attachment:fixed; +} + +.markdown-preview-view.background .obsidian-banner { + top: -310px; + width: 100%; + height: 100%; + background-repeat: no-repeat; + background-size: cover; +} + +.is-live-preview.background .has-banner .obsidian-banner { + position: absolute!important; + width: 100%; + top: 0; + bottom: 0; + left: 0; + background-size: cover; + z-index: -1; +} +.is-live-preview.background .has-banner .cm-hmd-frontmatter { + display: none; +} +.is-live-preview.background .has-banner .obsidian-banner.cm6-banner { + opacity: 0.5; + height: 100%; +} + +:is(.markdown-preview-view,.markdown-rendered) img.banner-image.full-width{ + max-width: none; +} +/* ==修复新弹出窗口banner位置错位===================== */ +body.is-popout-window { + --banner-height: 300px; + --banner-internal-embed-height: 200px; + --banner-preview-embed-height: 120px; +} + + +/* ================================== */ +/* =======Tasks======= */ +/* ================================== */ +:is(.markdown-preview-view,.markdown-rendered) .tasks-backlink>.internal-link.internal-link-short-mode { + font-size: 0; +} +:is(.markdown-preview-view,.markdown-rendered) .tasks-backlink>.internal-link.internal-link-short-mode::before { + content: ""; + background-image: url("data:image/svg+xml,%3Csvg width='' height='' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M330.97 451.71l-120.70 120.70a170.67 170.67 0 0 0 235.22 247.21l6.14-5.89 120.70-120.66 60.33 60.33-120.70 120.70A256 256 0 1 1 149.93 512l120.70-120.66 60.33 60.33z m301.70-60.33a42.67 42.67 0 0 1 0 60.33l-181.03 181.03a42.67 42.67 0 0 1-60.33-60.33l181.03-181.03a42.67 42.67 0 0 1 60.33 0z m241.37-241.37a256 256 0 0 1 0 362.03l-120.70 120.70-60.33-60.33 120.70-120.70a170.67 170.67 0 0 0-235.22-247.21l-6.14 5.85-120.70 120.70-60.33-60.33L512 150.02a256 256 0 0 1 362.03 0z' fill='%230061b0'/%3E%3C/svg%3E"); + background-size: 16px 16px; + transform: translate(0, 2px); + background-repeat: no-repeat; + display: inline-block; + height: 16px; + width: 16px; +} + +a.tasks-edit { + background-color: var(--text-accent); + mask-image: url("data:image/svg+xml,%3Csvg width='' height='' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M247.47 851.91c-7.11 0-14.22-2.84-19.91-8.53-7.11-7.11-9.96-15.64-8.53-25.6l34.13-184.89c1.42-5.69 4.27-11.38 8.53-14.22l345.6-345.6c52.62-52.62 137.96-52.62 190.58 0 25.6 25.6 39.82 59.73 39.82 95.29s-14.22 69.69-39.82 95.29L453.69 809.24c-4.27 4.27-8.53 7.11-14.22 8.53l-184.89 34.13h-7.11z m186.31-62.58z m-125.16-137.96l-25.6 136.53 136.53-25.6 338.49-338.49c14.22-14.22 22.76-34.13 22.76-55.47s-8.53-39.82-22.76-55.47c-29.87-29.87-79.64-29.87-110.93 0L308.62 651.38z' fill='%230061b0'/%3E%3Cpath d='M739.56 510.58c-7.11 0-14.22-2.84-19.91-8.53L568.89 351.29c-11.38-11.38-11.38-28.44 0-39.82 11.38-11.38 28.44-11.38 39.82 0l150.76 150.76c11.38 11.38 11.38 28.44 0 39.82-4.27 5.69-12.8 8.53-19.91 8.53z' fill='%230061b0'/%3E%3Cpath d='M797.87 860.44H593.07c-15.64 0-28.44-12.8-28.44-28.44s12.8-28.44 28.44-28.44h204.8c15.64 0 28.44 12.8 28.44 28.44s-12.8 28.44-28.44 28.44z' fill='%230061b0'/%3E%3C/svg%3E"); + -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='' height='' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M247.47 851.91c-7.11 0-14.22-2.84-19.91-8.53-7.11-7.11-9.96-15.64-8.53-25.6l34.13-184.89c1.42-5.69 4.27-11.38 8.53-14.22l345.6-345.6c52.62-52.62 137.96-52.62 190.58 0 25.6 25.6 39.82 59.73 39.82 95.29s-14.22 69.69-39.82 95.29L453.69 809.24c-4.27 4.27-8.53 7.11-14.22 8.53l-184.89 34.13h-7.11z m186.31-62.58z m-125.16-137.96l-25.6 136.53 136.53-25.6 338.49-338.49c14.22-14.22 22.76-34.13 22.76-55.47s-8.53-39.82-22.76-55.47c-29.87-29.87-79.64-29.87-110.93 0L308.62 651.38z' fill='%230061b0'/%3E%3Cpath d='M739.56 510.58c-7.11 0-14.22-2.84-19.91-8.53L568.89 351.29c-11.38-11.38-11.38-28.44 0-39.82 11.38-11.38 28.44-11.38 39.82 0l150.76 150.76c11.38 11.38 11.38 28.44 0 39.82-4.27 5.69-12.8 8.53-19.91 8.53z' fill='%230061b0'/%3E%3Cpath d='M797.87 860.44H593.07c-15.64 0-28.44-12.8-28.44-28.44s12.8-28.44 28.44-28.44h204.8c15.64 0 28.44 12.8 28.44 28.44s-12.8 28.44-28.44 28.44z' fill='%230061b0'/%3E%3C/svg%3E"); + display: inline-block; + transform: translate(0, -1px); + background-size: 25px 20px; + height: 20px; + width: 20px; + margin-left: -0.1em; + cursor: pointer; +} + +/* ================================== */ +/* ======= Hover editor======= */ +/* ================================== */ +body.theme-light .popover.hover-popover:not(.is-loaded) { + box-shadow: 0px 2.7px 3.1px rgba(0, 0, 0, 0.032), + 0px 5.9px 8.7px rgba(0, 0, 0, 0.052), + 0px 10.4px 18.1px rgba(0, 0, 0, 0.071), + 0px 20px 40px rgba(0, 0, 0, 0.11); +} + +body .popover.hover-popover:not(.is-loaded) :is(.markdown-preview-view,.markdown-rendered), +.popover.hover-popover:not(.is-loaded) .markdown-source-view .cm-scroller { + padding: 5px 32px 0; +} + +body.theme-dark .popover.hover-popover:not(.is-loaded) { + box-shadow: 0px 2.7px 3.1px rgba(0, 0, 0, 0.081), + 0px 5.9px 8.7px rgba(0, 0, 0, 0.131), + 0px 10.4px 18.1px rgba(0, 0, 0, 0.18), + 0px 20px 40px rgba(0, 0, 0, 0.28); +} + +/* ================================== */ +/* ======= custom cssclass ======= */ +/* ========fullwidth noyaml noscroll================ */ +/*主页预览宽度*/ +:is(.markdown-preview-view,.markdown-rendered).fullwidth.is-readable-line-width .markdown-preview-sizer, +.markdown-source-view.is-readable-line-width.fullwidth .CodeMirror, +.is-readable-line-width.fullwidth :is(.markdown-preview-section,.markdown-rendered), +.is-readable-line-width.fullwidth :is(.markdown-preview-section,.markdown-rendered) > div, +:is(.markdown-preview-view,.markdown-rendered).is-readable-line-width.fullwidth :is(.markdown-preview-section,.markdown-rendered) { + width: 100% !important; + max-width: 100% !important; + /* margin: 0 auto; */ +} + + +/*隐藏backlinks区域*/ +:is(.markdown-preview-view,.markdown-rendered).nobacklinks .embedded-backlinks { + display: none; +} +/*隐藏yaml区域*/ +:is(.markdown-preview-view,.markdown-rendered).noyaml div>.language-yaml { + display: none; +} +:is(.markdown-preview-view,.markdown-rendered).noyaml div>:is(.metadata-container,.frontmatter-container) { + display: none; +} +/*隐藏滚动条*/ +:is(.markdown-preview-view,.markdown-rendered).noscroll::-webkit-scrollbar { + display: none; +} +/*无序列表分栏(配合伪看板使用)*/ +.theme-dark .gridlist ul>li a { + color:var(--text-folder-file) !important; +} + +.gridlist ul ul { + display: grid; + grid-template-columns: repeat(2, minmax(10px, 1fr)); + gap: 0.5rem; +} +.gridlist ul>li:not(.task-list-item) { + padding:0.2em 1em 0.2em 0.8em; + margin: 0px!important; +} +.gridlist ul>li>p:not(.task-list-item) { + margin-top: 0.55em; + margin-bottom: 0.55em; +} +.gridlist ul>li strong::before { + content: ''; + background-image: url("data:image/svg+xml,%3Csvg t='1626092983490' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='3709' width='200' height='200'%3E%3Cpath d='M444.88192 549.376h529.72544v263.5776a48.83456 48.83456 0 0 1-48.7936 48.88064H303.48288v-170.80832A141.53216 141.53216 0 0 1 444.88192 549.376z' fill='%23F4CA1C' p-id='3710'%3E%3C/path%3E%3Cpath d='M890.83904 196.80256h-269.85984a2.23744 2.23744 0 0 1-1.024-0.24064l-160.48128-80.384A82.176 82.176 0 0 0 422.81984 107.52H133.16096A82.11968 82.11968 0 0 0 51.2 189.60896v644.78208A82.11968 82.11968 0 0 0 133.16096 916.48h757.67808A82.11968 82.11968 0 0 0 972.8 834.39104V278.89152a82.11968 82.11968 0 0 0-81.96096-82.08896z m-757.67808-9.472h289.65888a2.24768 2.24768 0 0 1 1.024 0.24064l160.49664 80.384a82.304 82.304 0 0 0 36.65408 8.66816h269.85984a2.2784 2.2784 0 0 1 2.27328 2.27328v91.51488H130.88768V189.60896a2.2784 2.2784 0 0 1 2.27328-2.2784z m757.67808 649.33888H133.16096a2.2784 2.2784 0 0 1-2.27328-2.2784V450.22208h762.22464v384.16896a2.2784 2.2784 0 0 1-2.27328 2.2784z' fill='%23595BB3' p-id='3711'%3E%3C/path%3E%3C/svg%3E"); + background-size: 14px 14px; + background-repeat: no-repeat; + display: inline-block; + height: 13px; + width: 13px; + margin-right: 5px; + margin-left:-5px; +} + +.gridlist ul ul ul{ + display:flex; +} +.gridlist ul ul li:hover { + background: var(--background-secondary-translucent) !important; + border-color: var(--p-kanban-border-color) !important; + border-left: 1px solid var(--p-kanban-border-color) !important; +} + + +.gridlist ul li a[href$=".js"]::before { + font-family:var(--font-family-inline-code); + content: 'JS'; + color: var(--text-faint); + margin-right: 5px; + font-size:10px; +} +.gridlist ul li a[href$=".css"]::before { + font-family:var(--font-family-inline-code); + content: 'CSS'; + color: var(--text-faint); + margin-right: 5px; + font-size:10px; +} + +.gridlist ul li a[href$=".html"]::before { + font-family:var(--font-family-inline-code); + content: 'HTML'; + color: var(--text-faint); + margin-right: 5px; + font-size:10px; +} + +.gridlist ul li a[href$=".pdf"]::before { + font-family:var(--font-family-inline-code); + content: 'PDF'; + color: var(--text-faint); + margin-right: 5px; + font-size:10px; +} +.gridlist ul li a[href$=".mp3"]::before, +.gridlist ul li a[href$=".wav"]::before, +.gridlist ul li a[href$=".m4a"]::before, +.gridlist ul li a[href$=".ogg"]::before, +.gridlist ul li a[href$=".3gp"]::before, +.gridlist ul li a[href$=".flac"]::before { + content: ''; + background-size: 18px 18px; + background-repeat: no-repeat; + display: inline-block; + height: 18px; + width: 18px; + vertical-align: text-top; + margin-right: 5px; + background-image: url("data:image/svg+xml,%3Csvg t='1667450617533' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='2116' width='32' height='32'%3E%3Cpath d='M512 900.8c214.4 0 388.9-174.4 388.9-388.9 0-54-11.1-105.4-31-152.1 10.1 106.6-34.1 271.1-172 382.9-143.8 116.6-375.7 80.7-477 26.6 71.2 80.6 175.3 131.5 291.1 131.5z' fill='%23FFD524' p-id='2117'%3E%3C/path%3E%3Cpath d='M512 64.2c-26.1 0-52.2 2.3-77.7 6.7-16 2.8-26.7 18.1-23.9 34.1 2.8 16 18.1 26.7 34.1 23.9 22.2-3.9 44.9-5.9 67.6-5.9 160.5 0 298.5 97.7 357.8 236.7 20 46.8 31 98.2 31 152.1 0 214.4-174.4 388.9-388.9 388.9-115.8 0-219.9-50.9-291.2-131.5-60.7-68.6-97.7-158.7-97.7-257.4 0-124.2 57.2-238 157.1-312.3 13-9.7 15.8-28.2 6.1-41.2-9.7-13-28.2-15.8-41.2-6.1C131.8 236.7 64.2 371.1 64.2 512c0 246.9 200.9 447.8 447.8 447.8S959.7 758.9 959.7 512 758.9 64.2 512 64.2z' fill='%23333333' p-id='2118'%3E%3C/path%3E%3Cpath d='M343.2 158.6c4 0 8-0.8 11.9-2.5 3.4-1.5 6.8-3 10.3-4.4 15-6.2 22.3-23.4 16.1-38.4-6.2-15-23.3-22.3-38.4-16.1-3.9 1.6-7.8 3.3-11.7 5-14.9 6.6-21.6 24-15 38.8 4.7 11 15.5 17.6 26.8 17.6zM394.6 787.4c66.2 0 120.9-50.5 127.4-115.1 0.4-2 0.7-4 0.7-6.1V313.6H663c-8 21.5-27.6 49.4-75.9 63.8-15.6 4.6-24.5 21-19.8 36.6 3.8 12.8 15.5 21.1 28.2 21.1 2.8 0 5.6-0.4 8.4-1.2C705.3 403.8 728.9 322 727.2 283c-0.7-15.8-13.6-28.2-29.4-28.2H493.3c-16.3 0-29.4 13.2-29.4 29.4v375.2c0 38.2-31.1 69.2-69.2 69.2s-69.2-31.1-69.2-69.2c0-38.2 31.1-69.2 69.2-69.2 16.3 0 29.4-13.2 29.4-29.4s-13.2-29.4-29.4-29.4c-70.6 0-128.1 57.5-128.1 128.1s57.4 127.9 128 127.9z' fill='%23333333' p-id='2119'%3E%3C/path%3E%3C/svg%3E"); +} + +.gridlist ul li a[href$=".jpg"]::before, +.gridlist ul li a[href$=".png"]::before, +.gridlist ul li a[href$=".svg"]::before, +.gridlist ul li a[href$=".gif"]::before, +.gridlist ul li a[href$=".jpeg"]::before, +.gridlist ul li a[href$=".bmp"]::before { + content: ''; + background-image: url("data:image/svg+xml,%3Csvg t='1626092464076' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='3121' width='200' height='200'%3E%3Cpath d='M266.42944 804.352l123.3408-136.82688a37.93408 37.93408 0 0 1 53.39136-2.90304l81.6896 72.83712a37.92384 37.92384 0 0 0 56.43776-6.76864l99.92704-145.04448a37.91872 37.91872 0 0 1 58.15808-5.12l86.33856 87.31136 66.64704 72.65792-13.9264 60.18048-67.30752 25.46176-529.20832 11.5712z' fill='%23F4CA1C' p-id='3122'%3E%3C/path%3E%3Cpath d='M814.76096 148.48H209.23904A153.26208 153.26208 0 0 0 56.32 301.74208v415.40096A153.26208 153.26208 0 0 0 209.23904 870.4h605.52192A153.26208 153.26208 0 0 0 967.68 717.13792V301.74208A153.26208 153.26208 0 0 0 814.76096 148.48z m83.456 568.65792a83.62496 83.62496 0 0 1-83.456 83.62496H209.23904a83.62496 83.62496 0 0 1-83.456-83.62496V301.74208a83.62496 83.62496 0 0 1 83.456-83.63008h605.52192a83.62496 83.62496 0 0 1 83.456 83.61984v415.40096z m-137.728-298.55744a72.42752 72.42752 0 0 0-111.4112 9.87648l-99.712 145.46432a2.8672 2.8672 0 0 1-2.14528 1.29536 2.81088 2.81088 0 0 1-2.38592-0.75264L463.28832 501.41696a72.52992 72.52992 0 0 0-102.272 5.59104l-123.0848 137.216a34.77504 34.77504 0 1 0 51.67104 46.55616l123.0848-137.216a3.03104 3.03104 0 0 1 4.28544-0.2304l81.51552 73.04192a72.41728 72.41728 0 0 0 108.1088-13.02528l99.71712-145.4592a3.03104 3.03104 0 0 1 4.66432-0.41472l86.15936 87.552a34.78016 34.78016 0 1 0 49.47456-48.896z m-316.2368-33.32608a47.00672 47.00672 0 1 0-46.90432-47.00672 46.95552 46.95552 0 0 0 46.90432 47.00672z' fill='%23595BB3' p-id='3123'%3E%3C/path%3E%3C/svg%3E"); + background-size: 18px 16px; + background-repeat: no-repeat; + display: inline-block; + height: 18px; + width: 18px; + vertical-align: middle; + margin-right: 5px; +} + +.gridlist ul li a[href*=".excalidraw"]::before { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23595BB3' d='M18.404 2.998c-.757-.754-2.077-.751-2.828.005l-1.784 1.791L11.586 7H7a.998.998 0 0 0-.939.658l-4 11c-.133.365-.042.774.232 1.049l2 2a.997.997 0 0 0 1.049.232l11-4A.998.998 0 0 0 17 17v-4.586l2.207-2.207v-.001h.001L21 8.409c.378-.378.586-.881.585-1.415 0-.535-.209-1.038-.588-1.415l-2.593-2.581zm-3.111 8.295A.996.996 0 0 0 15 12v4.3l-9.249 3.363 4.671-4.671c.026.001.052.008.078.008A1.5 1.5 0 1 0 9 13.5c0 .026.007.052.008.078l-4.671 4.671L7.7 9H12c.266 0 .52-.105.707-.293L14.5 6.914 17.086 9.5l-1.793 1.793zm3.206-3.208-2.586-2.586 1.079-1.084 2.593 2.581-1.086 1.089z '%3E%3C/path%3E%3C/svg%3E"); + content: ''; + background-size: 14px 18px; + background-repeat: no-repeat; + display: inline-block; + height: 14px; + width: 14px; + margin-right: 5px; +} + +/*PDF*/ + +@media print { + code[class*='language-'], + pre[class*='language-'] { + word-wrap: break-word !important; + white-space: pre-wrap !important; + } + + th, + td { + white-space: pre-wrap !important; + /* word-break: break-word !important; */ + overflow-wrap: break-word !important; + } +/* Page breaks */ + + h2, h3, h4, h5, h6 { + page-break-after: avoid; + } + pre, blockquote { + page-break-inside: avoid; + } + + .print :not(font)>strong { + -webkit-print-color-adjust: exact; + color: var(--print-strong-color) !important; + } + + .print :not(font):not(strong)>em { + color: var(--print-em-color) !important; + } + + body.hr-for-pagination .markdown-rendered hr { + break-after: page; + visibility: hidden; + } + + body.hr-for-pagination.fancy-hr-number .markdown-rendered hr:after { + break-after: page; + visibility: visible; + } + + body.show-url-after-link a.external-link::after { + content: " (" attr(href) ") "; + } + + body.fancy-hr-icon .markdown-rendered hr { + border-image-source: linear-gradient(to right, var(--background-primary) 0%, var(--hr-color-icon-1) 30%, var(--hr-color-icon-2) 46%, transparent 46%, transparent 54%, var(--hr-color-icon-3) 54%, var(--hr-color-icon-4) 70%, var(--background-primary) 100%); + } + body.fancy-hr-no-icon .markdown-rendered hr { + border-image: linear-gradient(to right, var(--background-primary) 0%, var(--hr-color-1) 20%, var(--hr-color-2) 40%, var(--hr-color-3) 60%, var(--hr-color-4) 80%, var(--background-primary) 100%) 1; + } + + body.all-dark-pdf .print :is(.markdown-preview-view,.markdown-rendered) { + background-color: var(--background-primary) !important; + } + body.all-dark-pdf .print :is(.markdown-preview-view,.markdown-rendered) mark { + color: var(--text-highlight) !important; + } + body.all-dark-pdf .print .markdown-preview-view { + color: var(--text-normal) !important; + } + + .print .markdown-preview-view .callout.callout[data-callout="timeline"] >.callout-content { + display: grid !important; + } + .print .markdown-preview-view .callout.callout[data-callout="timeline"] .callout-content hr { + visibility: visible; + } + .print .markdown-preview-view .admonition-flex .admonition-content { + display: flex !important; + } + + body.text-indentation-two-em .print *:not(blockquote) > p { + text-indent: 2em; + } + body.text-indentation-two-em .print *:not(blockquote) > p>br { + content: ' '; + white-space: pre; + line-height: calc((var(--paragraph-spacing) + 0.3) * 1em); + display:unset; + } + body.text-indentation-two-em .print *:not(blockquote) > p>br::after { + content: '\A\9\9''; + } + body.justify-align .print *:not(blockquote) > p { + text-align: justify; + hyphens: auto; + } +} + +body.pdf-style-invert-color-light.theme-light, +body.pdf-style-invert-color-dark.theme-dark { + --pdf-background: var(--background-secondary); + --pdf-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1), 0 2px 8px transparent; + --pdf-thumbnail-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1), 0 2px 8px transparent; +} +body.pdf-style-invert-color-light.theme-light .pdf-viewer .canvasWrapper, +body.pdf-style-invert-color-dark.theme-dark .pdf-viewer .canvasWrapper, +body.pdf-style-invert-color.theme-light .pdf-thumbnail-view .thumbnailImage, +body.pdf-style-invert-color.theme-dark .pdf-thumbnail-view .thumbnailImage { + filter: invert(1) hue-rotate(180deg); +} + +body.pdf-style-green-bg-light.theme-light .pdf-viewer .textLayer, +body.pdf-style-green-bg-dark.theme-dark .pdf-viewer .textLayer { + background-color: #74c969; +} + +body.pdf-style-warm-bg-light.theme-light .pdf-viewer .textLayer, +body.pdf-style-warm-bg-dark.theme-dark .pdf-viewer .textLayer { + background-color: #f7b955; +} + +body.pdf-style-custom-bg.theme-dark { + --custom-bg-pdf-style: #; +} +body.pdf-style-custom-bg.theme-light { + --custom-bg-pdf-style: #; +} + +body.pdf-style-custom-bg .pdf-viewer .textLayer { + background-color: var(--custom-bg-pdf-style); +} + +/* ================================== */ +/* ======= Callout======= */ +/* ================================== */ +body.admonition-bg-color-same .callout { + background-color: rgba(var(--callout-color), 0.1); + border-width: var(--callout-border-width); +} +body.shade-callout-style .callout { + border:none; + box-shadow: inset 0 0 0 2px rgba(var(--callout-color), 0.25), 0px 0.5px 1px 0.5px rgba(0, 0, 0, 0.1) !important; +} +body.shade-callout-style .callout .callout-title { + padding: 6px; + background-color: rgba(var(--callout-color), 0.4); +} + +body.border-callout-style .callout { + --callout-radius: 2px; + border-left: solid 4px rgb(var(--callout-color)); +} + +body.border-callout-style .callout .callout-title { + padding: 6px; + background-color: rgba(var(--callout-color), 0.4); +} +body.border-callout-style .callout .callout-content { + background-color: rgba(var(--callout-color), 0.1); +} +.callout-title { + background-color: rgba(var(--callout-color), 0.15); +} +.callout { + padding: 0; + border-left: 4px solid rgba(var(--callout-color),0.15); + background-color:var(--admonition-bg-color); +} + +.callout-content { + padding: 5px 15px; +} +.is-live-preview .admonition-content>* br { + display: unset; +} +body.admonition-bg-color-same .callout-title { + color: rgb(var(--callout-color)); + background-color:unset; +} +.callout-title { + padding: 8px 0 8px 12px; + color: unset; +} +.admonition-title .admonition-title-icon { + color: rgb(var(--callout-color)); +} + +.callout .callout-title-inner>img:not([class*="emoji"]) { + border-radius: 1em !important; + margin: auto; + display: block; +} + +.callout-title-inner.admonition-title-content svg { + height: 1em; + align-self: center; + width: 1em; +} + +.callout-icon svg { + height: 1em; +} + +.markdown-source-view.is-live-preview .admonition-content .callout-content :is(h1,h2,h3,h4,h5,h6,p) { + margin: 0; +} + +.callout .callout-content p img { + display: block; +} + +.is-live-preview .callout:not(.admonition) .callout-content { + padding-top: 0; + padding-bottom: 0; +} +.callout-content { + padding-left: 10px; + padding-right: 10px; +} +.callout img[alt*=circle] { + border-radius: 35px; + width: 70px; + height: 70px; +} +/* ===编辑代码块按钮调整============ */ +.markdown-source-view.mod-cm6 .cm-embed-block { + border: 0; + +} +.markdown-source-view.mod-cm6 .cm-embed-block:hover { + box-shadow: 0 3px 8px 0 rgba(var(--mono-rgb-100), .25); + transition: all .2s ease-in-out; +} + +.markdown-source-view.mod-cm6 .edit-block-button { + padding: 0; + top: 0; + border-radius: var(--radius-s); + right: 10px; + opacity: 0.3; +} +.markdown-source-view.mod-cm6 .edit-block-button::before { + width: 25px; + font-size: 11px; + text-align: center; + content: ''; + margin-left:1em; +} +.markdown-source-view.mod-cm6 .edit-block-button>svg { + display: none; +} + +/*cards 视图*/ +:root{ + --cards-width: 138px; +} + +@media (max-width: 450px) { + :root{ + --cards-width: 112.64px; + } +} + +@media (max-width: 375px) { + :root{ + --cards-width: 102.4px; + } +} + +@media (max-width: 350px) { + :root{ + --cards-width: 87.04px; + } +} +.callout.callout[data-callout*=cards] .callout-content { + padding: 0; +} +.callout.callout[data-callout*=cards] progress { + position: absolute; + width: var(--cards-width); + margin-top: -10px; + margin-left: calc(var(--cards-width) /2 * -1); + overflow: hidden; + height: 3px; + background: #f0ec05; +} +.callout.callout[data-callout*=cards] progress.yellow::-moz-progress-bar { + background: #e78f0c; +} +.callout.callout[data-callout*=cards] progress.yellow::-webkit-progress-value { + border-radius: 1em; + background: #e78f0c; +} + +.callout.callout[data-callout*=cards] progress.hot::-moz-progress-bar { + background: #fa7131dc; +} +.callout.callout[data-callout*=cards] progress.hot::-webkit-progress-value { + border-radius: 1em; + background: #fa7131dc; +} + + +.callout.callout[data-callout*=cards] table.dataview tbody { + display: flex; + flex-flow: wrap; + margin-top: 20px; + margin-left: 0.5em; + width: 105%; +} + +@media (max-width:1120px) { + .callout.callout[data-callout*=cards] table.dataview tbody { + margin-left: -40px; + padding: 0 40px + } +} + +@media (max-width:960px) { + .callout.callout[data-callout*=cards] table.dataview tbody { + margin-left: -30px; + padding: 0 30px + } +} + +@media (max-width:460px) { + .callout.callout[data-callout*=cards] table.dataview tbody { + padding: 0px; + margin-left: -20px; + } +} + +.callout.callout[data-callout*=cards] table.dataview>tbody>tr { + display: block; + width:var(--cards-width); + height: auto; + margin-left: 1.2em; + margin-bottom: 44px; + background-color: transparent; +} + +@media (max-width:1120px) { + .callout.callout[data-callout*=cards] table.dataview>tbody>tr { + margin-left: 40px; + } +} + +@media (max-width:960px) { + .callout.callout[data-callout*=cards] table.dataview>tbody>tr { + margin-left: 30px; + } +} + +@media (max-width:460px) { + .callout.callout[data-callout*=cards] table.dataview>tbody>tr { + margin-left: 20px; + margin-bottom: 20px; + } +} + +.callout.callout[data-callout*=cards] table.dataview tbody>tr>td:first-child, +.markdown-source-view.mod-cm6.callout.callout[data-callout*=cards] .dataview.table-view-table>tbody>tr>td:first-child { + width: 100%; + display: block; + box-shadow: 0 2px 16px rgba(0, 0, 0, .2); + position: relative; + padding: 0; +} + +.callout.callout[data-callout*=cards] table.dataview tbody>tr>td img { + vertical-align: top; + width: 100%; + height: calc(var(--cards-width) / 0.7 ); + background-color:var(--background-secondary); + -o-object-fit: cover; + object-fit: cover; +} +.callout.callout[data-callout*=cards] table.dataview tbody>tr>td:before { + display: none; +} +.callout.callout[data-callout*=cards] table.dataview tbody>tr>td:first-child:after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-image: linear-gradient(90deg, hsla(0, 0%, 63.1%, .25), rgba(21, 21, 20, .1) 1%, hsla(0, 0%, 100%, .15) 4%, hsla(0, 0%, 58%, .1) 8%, hsla(0, 0%, 89%, 0) 57%, rgba(223, 218, 218, .03) 91%, rgba(223, 218, 218, .05) 98%, hsla(0, 0%, 100%, .1)); + box-shadow: inset 0 0 0 0 rgba(0, 0, 0, .1); +} +.callout.callout[data-callout*=cards] table.dataview tbody>tr>td:not(:first-child), +.markdown-source-view.mod-cm6.callout.callout[data-callout*=cards] .dataview.table-view-table>tbody>tr>td:not(:first-child) { + text-align: center; + padding: 0; + margin-top: 4px; + font-size: 15px; + color: var(--text-muted); + line-height: 18px; + overflow: hidden; + display: -webkit-box; + display: -moz-box; + -webkit-line-clamp: 2; + -moz-line-clamp: 2; + line-clamp: 2; + -webkit-box-orient: vertical; + -webkit-text-size-adjust: none; + box-orient: vertical; + height: auto; + font-size: 13px; + line-height: 1.1; + white-space: nowrap; + text-overflow: ellipsis; +} +.callout.callout[data-callout*=cards] table.dataview tbody>tr>td>button { + font-size: 12px; + background-color: transparent; + padding: 0; +} +.callout.callout[data-callout*=cards] table.dataview tbody>tr>td:nth-child(2) { + margin-top: 10px; +} +.callout.callout[data-callout*=cards] table.dataview tbody>tr>td:nth-child(3) { + -webkit-text-stroke: 0.25px ; +} +/*------------*/ + +.callout.callout[data-callout*=cards] table.dataview thead { + user-select: none; + width: 160px; + display: block; + float: right; + position: relative; + text-align: right; + padding-bottom: 4px +} +.callout.callout[data-callout*=cards] table.dataview thead:before { + content: ''; + background-repeat: no-repeat; + cursor: var(--cursor); + text-align: right; + padding: 4px 10px; + margin-bottom: 2px; + border-radius: 5px; + font-weight: 500; + font-size: var(--font-adaptive-small); +} +.callout.callout[data-callout*=cards] table.dataview thead:before { + opacity: .25; + background-position: center center; + background-size: 18px; + background-image: url('data:image/svg+xml;utf8,'); +} +.theme-light .callout.callout[data-callout*=cards] table.dataview thead:before { + background-image: url('data:image/svg+xml;utf8,'); +} +.callout.callout[data-callout*=cards] table.dataview thead:hover:before { + opacity: .5; +} +.callout.callout[data-callout*=cards] table.dataview thead>tr { + position: absolute; + display: none; + z-index: 9; + border: 1px solid var(--background-modifier-border); + background-color: var(--background-secondary); + box-shadow: 0 2px 8px var(--background-modifier-box-shadow); + padding: 6px; + border-radius: 6px; + flex-direction: column; + margin: 0; + width: 100%; +} +.callout.callout[data-callout*=cards] table.dataview thead:hover>tr { + display: flex; +} +.callout.callout[data-callout*=cards] table.dataview thead>tr>th { + display: block; + background-color: var(--background-primary); + padding: 3px 30px 3px 6px!important; + border-radius: 5px; + width: 100%; + font-weight: 400; + color: var(--text-muted); + border: none; + font-size: var(--font-adaptive-small); +} +.callout.callout[data-callout*=cards] table.dataview thead>tr>th[sortable-style=sortable-asc], +.callout.callout[data-callout*=cards] table.dataview thead>tr>th[sortable-style=sortable-desc] { + color: var(--text-normal); +} +.callout.callout[data-callout*=cards] table.dataview thead>tr>th:hover { + color: var(--text-normal); + background-color: var(--background-secondary); +} + +/*全透明callout*/ +.callout.callout[data-callout*=blank] { + box-shadow: none; + max-width: 100%; + background: transparent; + border: none; + background-color: transparent !important; + box-shadow: none !important; + margin: 0; +} + +.callout.callout[data-callout*=blank].is-collapsed .callout-fold { + border: none; + padding: 5px 10px; +} +.callout.callout[data-callout*=blank] .callout-title, +.callout.callout[data-callout*=blank] .callout-title :is(.callout-icon, .callout-title-inner) { + display: none; +} +.callout.callout[data-callout*=blank] .callout-content { + overflow: visible; + margin: 0; + padding: 0; + border: none; +} + +/* ===段落自动缩进============ */ +/*支持两种写法 + > [!note|indent] + > [!note indent] + */ +.callout.callout:is([data-callout-metadata*="indent"], +[data-callout*=indent]) .callout-content p br { + content: ''; + white-space: pre; + line-height: calc((var(--paragraph-spacing) + 0.3) * 1em); + display: unset; +} +.callout.callout:is([data-callout-metadata*="indent"], +[data-callout*=indent]) .callout-content>p { + text-indent: 2em; +} +.callout.callout:is([data-callout-metadata*="indent"], +[data-callout*=indent]) .callout-content blockquote>p { + text-indent: 2em; +} + +.callout.callout:is([data-callout-metadata*="indent"], +[data-callout*=indent]) .callout-content p br::after { + content: '\A\9\9'; +} + +/* ===段落两端对齐============ */ +/*支持两种写法 + > [!note|justify] + > [!note justify] + */ +.callout.callout:is([data-callout-metadata*="justify"], +[data-callout*=justify]) .callout-content>p { + text-align: justify; + hyphens: auto; + -webkit-hyphens: auto; +} +/* ===隐藏图标============ */ +.callout.callout:is([data-callout-metadata^="noicon"], +[data-callout*=noicon]) .callout-icon { + display: none; +} + +/* ===隐藏边框============ */ +.callout.callout:is([data-callout-metadata*="noborder"], +[data-callout*=noborder]) { + border-left: none; + background-color: transparent; + box-shadow: none; +} +.callout.callout:is([data-callout-metadata*="noborder"], +[data-callout*=noborder]) .callout-content { + border-left: none; + background-color: transparent; + box-shadow: none; + border: none; +} + +/* ===banner============ */ +.is-live-preview .admonition-flex .callout.callout[data-callout-metadata*="banner"]:nth-child(2) { + margin-top: -1.5em; +} + +.callout.callout[data-callout-metadata*="banner"] { + border-left: 0; + background-color: transparent; + box-shadow: none !important; +} +.callout.callout[data-callout-metadata*="banner"] .callout-content{ + overflow: visible; +} +.callout.callout[data-callout-metadata*="banner"] .callout-title { + background-color: transparent; + display: inline; +} +/* nested callout note for culumns | image used as tittle + centered */ +.callout.callout[data-callout-metadata*="banner"] .callout-title img { + border-radius: 1em; + margin: auto; + display: block; +} +.callout.callout[data-callout-metadata*="banner"] .callout-fold { + display: none; +} +.callout.callout[data-callout-metadata*="banner"] .callout-icon { + display: none; +} +.callout.callout[data-callout-metadata*="banner"] .callout-title h3 { + text-align: center; + line-height: 2; +} +.callout.callout[data-callout-metadata*="banner"] .callout-title h3::before { + display: none; +} +/* ===隐藏标题============ */ +.callout.callout:is([data-callout-metadata*="notitle"], +[data-callout*=notitle]) .callout-title { + display:none; +} +/* ===支持 right left center 语法============ */ +/*支持两种写法 + > [!note|right] + > [!note right] + */ +.callout.callout:is([data-callout-metadata*="left"], +[data-callout*=left]) { + float: left !important; + margin: unset; +} +.callout.callout:is([data-callout-metadata*="right"], +[data-callout*=right]) { + float: right !important; + margin: unset; +} + +.callout.callout:is([data-callout-metadata*="center"], +[data-callout*=center]) { + display: block; + margin: auto; + float: unset ; + text-align:center; +} +/* ===块内元素不换行============ */ +.callout.callout:is([data-callout-metadata*='nowrap'], +[data-callout*='nowrap']) { + max-width: unset !important; + white-space: nowrap; + overflow: hidden; +} +.callout.callout:is([data-callout-metadata*='nowrap'], +[data-callout*='nowrap']) thead > tr > th, +.callout.callout:is([data-callout-metadata*='nowrap'], +[data-callout*='nowrap']) tbody > tr > td { + white-space: nowrap; +} +.callout.callout:is([data-callout-metadata*='nowrap'], +[data-callout*='nowrap']) .callout-content { + overflow-x: auto !important; +} +.callout.callout:is([data-callout-metadata*='nowrap'], +[data-callout*='nowrap']) .callout-content p { + display: flex; + align-items: center; + margin-block-start: 0; + margin-block-end: 0; +} +.callout.callout:is([data-callout-metadata*='nowrap'], +[data-callout*='nowrap']) .callout-content img { + max-width: unset !important; + display: table-cell; + vertical-align: middle; + padding: 1px; + max-height: 30vh; +} + +/* ===块内元素网格布局============ */ +.callout.callout:is([data-callout-metadata*='grid'], +[data-callout*='grid']) { + max-width: unset !important; + white-space: nowrap; + overflow: hidden; +} +.callout.callout:is([data-callout-metadata*='grid'], +[data-callout*='grid']) .callout-content { + overflow-x: auto!important; +} +.callout.callout:is([data-callout-metadata*='grid'], +[data-callout*='grid']) .callout-content p { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(0, auto)); + grid-gap: 2px; +} +.callout.callout:is([data-callout-metadata*='grid'], +[data-callout*='grid']) .callout-content ul { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(160px, auto)); + grid-gap: 0 10px; +} +.callout.callout:is([data-callout-metadata*='grid'], +[data-callout*='grid']) .callout-content ul li { + WHITE-SPACE: normal; + padding-left: 1em; + text-indent: -1em; +} +.callout.callout:is([data-callout-metadata*='grid'], +[data-callout*='grid']) .callout-content ul li::before { + content: ' ' !important; +} +.callout.callout:is([data-callout-metadata*='grid'], +[data-callout*='grid']) .callout-content img { + display: flex; + flex: 1; + align-self: stretch; + object-fit: cover; + margin: unset !important; +} + + +/* ===百分比宽度============ */ +/*支持两种写法 + > [!note|30%] + > [!note 30%] +*/ +.callout.callout:is([data-callout-metadata*='100%'], +[data-callout*='100%']) { + width: 100%; +} +.callout.callout:is([data-callout-metadata*='95%'], +[data-callout*='95%']) { + width: 95%; +} +.callout.callout:is([data-callout-metadata*='90%'], +[data-callout*='90%']) { + width: 90%; +} +.callout.callout:is([data-callout-metadata*='85%'], +[data-callout*='85%']) { + width: 85%; +} +.callout.callout:is([data-callout-metadata*='80%'], +[data-callout*='80%']) { + width: 80%; +} +.callout.callout:is([data-callout-metadata*='75%'], +[data-callout*='75%']) { + width: 75%; +} +.callout.callout:is([data-callout-metadata*='70%'], +[data-callout*='70%']) { + width: 70%; +} +.callout.callout:is([data-callout-metadata*='65%'], +[data-callout*='65%']) { + width: 65%; +} +.callout.callout:is([data-callout-metadata*='60%'], +[data-callout*='60%']) { + width: 60%; +} +.callout.callout:is([data-callout-metadata*='55%'], +[data-callout*='55%']) { + width: 55%; +} +.callout.callout:is([data-callout-metadata*='50%'], +[data-callout*='50%']) { + width: 50%; +} +.callout.callout:is([data-callout-metadata*='45%'], +[data-callout*='45%']) { + width: 45%; +} +.callout.callout:is([data-callout-metadata*='40%'], +[data-callout*='40%']) { + width: 40%; +} +.callout.callout:is([data-callout-metadata*='35%'], +[data-callout*='35%']) { + width: 35%; +} +.callout.callout:is([data-callout-metadata*='30%'], +[data-callout*='30%']) { + width: 30%; +} +.callout.callout:is([data-callout-metadata*='25%'], +[data-callout*='25%']) { + width: 25%; +} +.callout.callout:is([data-callout-metadata*='20%'], +[data-callout*='20%']) { + width: 20%; +} +.callout.callout:is([data-callout-metadata*='15%'], +[data-callout*='15%']) { + width: 15%; +} +.callout.callout:is([data-callout-metadata*='10%'], +[data-callout*='10%']) { + width: 10%; +} + + +/* callout模糊文字效果*/ +.callout.callout[data-callout=cloze] { + border-left-width: 0; + filter: blur(4px); +} + +.callout.callout[data-callout=cloze]:hover { + filter: none; +} + +.callout.callout[data-callout=cloze] .callout-title { + display: none; +} + +/* callout伪看板效果*/ +.callout.callout[data-callout*="kanban"] ul { + display: flex; + flex-direction: row; + border: 0px solid var(--p-kanban-border-color); + padding: 0; + border-radius: var(--radius-m); + flex-wrap: wrap; +} +.callout.callout[data-callout*="kanban"] li .list-bullet{ + display: none; +} + +.callout.callout[data-callout*="kanban"] ul>li { + flex: 1 1 20%; + padding: 0.1em 1em 0.1em 0.8em; + margin: 0 0.3em 0.3em 0 !important; + list-style: none; + border: 1px solid var(--p-kanban-border-color); + border-left: 1px solid var(--p-kanban-border-color) !important; + border-radius: var(--radius-s); + word-wrap: break-word; + word-break: break-word; +} + +.callout.callout[data-callout*="kanban"] ul li.task-list-item .task-list-item-checkbox { + margin-left: auto; +} + + +.callout.callout[data-callout*="kanban"] ul .list-collapse-indicator.collapse-indicator.collapse-icon::before { + color: var(--text-accent); + transition: transform 10ms linear 0s; +} + +body.colorful-p-kanban .callout.callout[data-callout*="kanban"] ul>li:nth-of-type(8n+1) { + background-color: var(--p-kanban-color-1); +} +body.colorful-p-kanban .callout.callout[data-callout*="kanban"] ul>li:nth-of-type(8n+2) { + background-color: var(--p-kanban-color-2); +} +body.colorful-p-kanban .callout.callout[data-callout*="kanban"] ul>li:nth-of-type(8n+3) { + background-color: var(--p-kanban-color-3); +} +body.colorful-p-kanban .callout.callout[data-callout*="kanban"] ul>li:nth-of-type(8n+4) { + background-color: var(--p-kanban-color-4); +} +body.colorful-p-kanban .callout.callout[data-callout*="kanban"] ul>li:nth-of-type(8n+5) { + background-color: var(--p-kanban-color-5); +} +body.colorful-p-kanban .callout.callout[data-callout*="kanban"] ul>li:nth-of-type(8n+6) { + background-color: var(--p-kanban-color-6); +} +body.colorful-p-kanban .callout.callout[data-callout*="kanban"] ul>li:nth-of-type(8n+7) { + background-color: var(--p-kanban-color-7); +} +body.colorful-p-kanban .callout.callout[data-callout*="kanban"] ul>li:nth-of-type(8n) { + background-color: var(--p-kanban-color-8); +} + +.callout.callout[data-callout*="kanban"] ul>li:nth-of-type(n) { + background-color: var(--p-kanban-color-simple); + padding-left: 1em; +} +.callout.callout[data-callout*="kanban"] .callout-content>ul:first-child>li:nth-of-type(8n+1) { + border-top: 6px solid var(--p-kanban-color-1) !important; +} +.callout.callout[data-callout*="kanban"] .callout-content>ul:first-child>li:nth-of-type(8n+2) { + border-top: 6px solid var(--p-kanban-color-2) !important; +} +.callout.callout[data-callout*="kanban"] .callout-content>ul:first-child>li:nth-of-type(8n+3) { + border-top: 6px solid var(--p-kanban-color-3) !important; +} +.callout.callout[data-callout*="kanban"] .callout-content>ul:first-child>li:nth-of-type(8n+4) { + border-top: 6px solid var(--p-kanban-color-4) !important; +} +.callout.callout[data-callout*="kanban"] .callout-content>ul:first-child>li:nth-of-type(8n+5) { + border-top: 6px solid var(--p-kanban-color-5) !important; +} +.callout.callout[data-callout*="kanban"] .callout-content>ul:first-child>li:nth-of-type(8n+6) { + border-top: 6px solid var(--p-kanban-color-6) !important; +} +.callout.callout[data-callout*="kanban"] .callout-content>ul:first-child>li:nth-of-type(8n+7) { + border-top: 6px solid var(--p-kanban-color-7) !important; +} +.callout.callout[data-callout*="kanban"] .callout-content>ul:first-child>li:nth-of-type(8n) { + border-top: 6px solid var(--p-kanban-color-8) !important; +} +body.simple-p-kanban .callout.callout[data-callout*="kanban"] ul:first-child>li:nth-of-type(n) { + border-top: none !important; +} + +body:not(.remove-shadow-p-kanban) .callout.callout[data-callout*="kanban"] ul>li:hover { + transition: box-shadow .2s cubic-bezier(.4, 0, 1, 1); + box-shadow: 0 3px 5px 0 var(--p-kanban-color-shadow), 0 3px 1px -3px var(--p-kanban-color-shadow), 2px 3px 3px 0 var(--p-kanban-color-shadow); +} + +.callout.callout[data-callout*="kanban"] ul ul { + display: flex; + flex-direction: column; + justify-content: center; + padding: 0rem; + margin-top: 0.5rem; + border-radius: 0; + border: 0; + background: none; +} + +.callout.callout[data-callout*="kanban"] ul ul li:not(.task-list-item) { + width: 100%; + display: block; + background-color: var(--p-kanban-card-color-1) !important; +} + +body.remove-shadow-p-kanban .callout.callout[data-callout*="kanban"] ul ul li:hover { + background: var(--p-kanban-card-color-2) !important; + border-color: var(--p-kanban-border-color) !important; + border-left: 1px solid var(--p-kanban-border-color) !important; +} + +body.remove-shadow-p-kanban.theme-dark .callout.callout[data-callout*="kanban"] ul ul li:hover { + border-color: #696969e1 !important; + border-left: 1px solid #696969e1 !important; +} + +.callout.callout[data-callout*="kanban"] ul ul li .task-list-item-checkbox { + margin-left: 1.5rem !important; +} + +.callout.callout[data-callout*="kanban"] ul ul ul { + margin-right: 0; +} + +.callout.callout[data-callout*="kanban"] ul ul::before { + border-left: 0; + border:0; +} + +:is(.markdown-preview-view,.markdown-rendered).is-readable-line-width.callout.callout[data-callout*="kanban"] .markdown-preview-sizer>div>ul { + max-width: 100%; +} + +.callout.callout[data-callout*="kanban"] :is(ol,ul).contains-task-list :is(ol,ul) { + position: initial; +} + +.callout.callout[data-callout*="kanban"] :is(ol,ul).contains-task-list :is(ol,ul)::before { + all: initial; +} + +.callout.callout[data-callout*="kanban"] ul > li.task-list-item { + flex: 1 1 20%; + padding: 0.1em 1em; + list-style: none; + border: 1px solid var(--p-kanban-border-color); + border-left: 1px solid var(--p-kanban-border-color) !important; + border-radius: var(--radius-s); + word-wrap: break-word; + word-break: break-word; + text-indent: 0.01em; +} + +.callout.callout[data-callout*="kanban"] ul ul li.task-list-item { + width: 100%; + display: block; + padding-left: 2em; + text-indent: -3em; + background-color: var(--p-kanban-card-color-1) !important; +} + +.callout.callout[data-callout*="kanban"] ul ul li.task-list-item .list-collapse-indicator.collapse-indicator.collapse-icon { + text-indent: -1em; +} + +body:not(.default-icons) .callout.callout[data-callout*="kanban"] li.task-list-item .list-collapse-indicator.collapse-indicator.collapse-icon::before { + margin-left: -0.2em; +} + +body:not(.default-icons) .callout.callout[data-callout*="kanban"] li.task-list-item .task-list-item.is-collapsed .list-collapse-indicator.collapse-indicator.collapse-icon::before { + transform: translateX(-0.9em) translateY(-1em) rotate(-90deg); +} + +body.colorful-p-kanban .callout.callout[data-callout*="kanban"] .task-list-item-checkbox { + border-color: var(--text-normal) !important; +} + +/*callout hibox*/ +.callout.callout[data-callout*="hibox"] { + background-color: transparent !important; + box-shadow: none !important; +} + +.callout.callout[data-callout*="hibox"] .callout-content *, +.callout.callout[data-callout*="hibox"] .callout-content *::before, +.callout.callout[data-callout*="hibox"] .callout-content *::marker { + visibility: hidden; +} + +.callout.callout[data-callout*="hibox"] .callout-content { + position: relative; + height: auto; + overflow: hidden; + background: radial-gradient(circle at 0px 0px, var(--background-modifier-box-shadow), 0, var(--background-modifier-box-shadow), var(--hibox), transparent var(--hibox), transparent 0); + transition: --hibox 0.6s linear; +} + +.callout.callout[data-callout*="hibox"] .callout-content:hover { + --hibox: 1500px; + box-shadow: 0 0.2rem 0.5rem var(--background-modifier-box-shadow) !important; +} + +.callout.callout[data-callout*="hibox"] .callout-content:hover *, +.callout.callout[data-callout*="hibox"] .callout-content:hover *::marker, +.callout.callout[data-callout*="hibox"] .callout-content:hover *::before { + border-color: inherit; + visibility: visible; +} + +.callout.callout[data-callout*="hibox"] .callout-content:hover ol:not(.contains-task-list)>li:not(.task-list-item) { + border-color: var(--list-ol-block-color) !important; +} + +.callout.callout[data-callout*="hibox"] .callout-content:hover ul>li:not(.task-list-item) { + border-color: var(--list-ul-block-color) !important; +} + +.callout.callout[data-callout*="hibox"] .callout-content:hover blockquote { + border-color: var(--theme-color) !important; + background-color: var(--background-blockquote) !important; +} + +.callout.callout[data-callout*="hibox"] .callout-content:hover { + border-color: var(--text-normal) !important; +} + +/* callout infobox效果*/ +/*Infobox from https://github.com/SlRvb/Obsidian--ITS-Theme/blob/main/S%20-%20Callouts.css*/ +:is(.is-mobile, .is-live-preview) .callout[data-callout*=infobox] { + float: unset !important; + max-width: 100%; + margin: 0 !important; +} + +.callout.callout[data-callout*=infobox] { + --callout-color: var(--interactive-accent-rgb); + background: transparent; + border: 0; + box-shadow: none !important; + margin: 0; + margin-left: 8px; + align-self: center; + float: right; +} +.callout.callout[data-callout*=infobox] .callout-title { + background-color: transparent; + padding: 0; + justify-content: center; +} +.callout.callout[data-callout*=infobox].is-collapsed .callout-fold { + padding: 3px 10px; +} +.callout.callout[data-callout*=infobox]:not(:hover):not(.is-collapsible) .callout-title, .callout.callout[data-callout*=infobox]:not(.is-collapsible) .callout-title :is(.callout-icon, .callout-fold,.callout-title-inner) { + display: none; +} +.callout.callout[data-callout*=infobox] .callout-content { + padding: 1px; + margin: 0; + border-radius: var(--radius, var(--co-radius)); +} +.callout.callout[data-callout*=infobox] table { + width: 100%; +} +.callout.callout[data-callout*=infobox] :is(p, table) { + margin-block-start: 0; + margin-block-end: 0; + margin: 0; +} +.callout.callout[data-callout*=infobox] :is(h1, h2, h3, h4, h5, h6) { + text-align: center; + margin: 0; + padding: 2px; + color: var(--text-normal); +} +.callout.callout[data-callout*=infobox] p, +.callout.callout[data-callout*=infobox] .internal-embed, +.callout.callout[data-callout*=infobox] img { + margin: auto; + padding: auto; + text-align: center; +} + +/******callout bookinfo*****/ +.callout.callout[data-callout*="bookinfo"] { + --callout-color: 64, 201, 75; + --callout-icon: ''; + overflow: unset; + border: 0; + width: auto; + padding: 0; +} + +.callout.callout[data-callout*=bookinfo] .callout-title { + text-align: center; + display: flex; + justify-content: space-between; +} + +.callout.callout[data-callout*=bookinfo] .callout-content { + display: flex; + justify-content: space-between; +} + +.callout.callout[data-callout*=bookinfo] .callout-content table { + width: 68%; + margin-left: 2%; + word-break: normal; +} +.callout.callout[data-callout*=bookinfo] .callout-content table tr th { + padding-right: 5px;; +} +.callout.callout[data-callout*=bookinfo] .callout-content td:nth-child(2) { + display: table-cell; + overflow: hidden; +} +@media screen and (max-width: 768px) { + .callout.callout[data-callout*=bookinfo] .callout-content table { + width: 100%; + } + .callout.callout[data-callout*=bookinfo] .callout-content { + display: grid; + } +} +/******callout timeline*****/ +.callout.callout[data-callout="timeline"] { + --callout-color: 31, 172, 139; + --callout-icon: ''; + border-left: none; + background-color: transparent; +} + +.callout.callout[data-callout="timeline"] >.callout-content { + border-left:none; + display: -ms-grid; + display: grid; + -ms-grid-columns: auto auto 1fr; + grid-template-columns: 0.3fr auto 1fr; + -webkit-column-gap: 1.5rem; + column-gap: 1.5rem; + row-gap: 0.25rem; + margin: 2.3rem 1rem 0 0; + padding: 0; +} +.callout.callout[data-callout="timeline"] .callout-content hr::before { + display: none; +} +.callout.callout[data-callout="timeline"] .callout-content hr { + height: 100%; + width: 0.5rem; + -ms-grid-column: 2; + -ms-grid-column-span: 1; + grid-column: 2 / span 1; + -ms-grid-row: 1; + grid-row-start: 1; + background-color: var(--text-normal); + opacity: 0.1; + grid-row-end: 9; + margin:auto; + border: none; + overflow: hidden; + border-radius: 10px; +} +.callout.callout[data-callout="timeline"] .callout-content blockquote { + color: var(--text-on-accent); + display: block; + -ms-grid-column: 1; + -ms-grid-column-span: 1; + grid-column: 1 / span 1; + position: relative; + -ms-flex-item-align: start; + -ms-grid-row-align: start; + align-self: start; + text-align: left; + box-shadow: none; + margin: 0; + border: none; + padding: 0; + background-color: var(--interactive-accent); +} +.callout.callout[data-callout="timeline"] .callout-content blockquote p::before { + display: none; +} +.callout.callout[data-callout="timeline"] .callout-content blockquote, +.callout.callout[data-callout="timeline"] .callout-content blockquote + *:not(.callout), +.callout.callout[data-callout="timeline"] .callout-content hr+ *:not(.callout) { + padding-top: 0.2em; + padding-bottom: 0.2em; +} +.callout.callout[data-callout="timeline"] .callout-content blockquote .list-bullet::after{ + color: var(--text-on-accent); + left:0; +} +.callout.callout[data-callout="timeline"] .callout-content blockquote p { + display: block; + color: var(--text-on-accent); + background-color: var(--interactive-accent); + font-style: normal; + border-radius: 5px; +} +.callout.callout[data-callout="timeline"] .callout-content>*:not(blockquote):not(hr) { + position: relative; + -ms-grid-column: 3; + -ms-grid-column-span: 1; + grid-column: 3 / span 1; + margin-block-start: 0; + margin-block-end: 0; +} +.callout.callout[data-callout="timeline"] table { + font-size: 13px; +} + +/******callout icon*****/ +.show-inline-title .callout.callout:is([data-callout-metadata^='icon'], +.show-inline-title [data-callout='icon']) { + margin-top: -7em; +} +.callout.callout:is([data-callout-metadata^='icon'], +[data-callout='icon']) { + flex: none !important; + border-left: 0; + background-color: transparent; + box-shadow: none; + float: left; + margin-top: -4em; + margin-bottom: 0; +} +.is-live-preview .callout.callout:is([data-callout-metadata^='icon'], +[data-callout='icon']) { + margin-top: -1.6em; +} +.callout.callout:is([data-callout-metadata^='icon'], +[data-callout='icon']) .callout-title { + display: none; +} +.callout.callout:is([data-callout-metadata^='icon'], +[data-callout='icon']) .callout { + overflow: visible; + margin: 0; +} +.callout.callout:is([data-callout-metadata^='icon'], +[data-callout='icon']) > .callout-content { + padding: 0; +} +.callout.callout:is([data-callout-metadata^='icon'], +[data-callout='icon']) > .callout-content>svg { + height: calc(1em + 12px); + padding: 6px; + border-radius: 4px; + pointer-events: initial; + transition: ease .2s background; + font-size: 4em; + margin-bottom: 0px; +} + +/***Sticky notes 便签效果**/ +.callout[data-callout="stickies"] { + box-shadow:none; + border-left:0px; + overflow: unset; +} +.callout[data-callout="stickies"][data-callout-metadata*="left"] { + width: max(180px, 30%); +} + +.callout[data-callout="stickies"][data-callout-metadata*="left"]>.callout-content { + max-width: 100%; +} +.callout[data-callout="stickies"] >.callout-title { + display: none; +} + +.callout[data-callout="stickies"] >.callout-content { + overflow:visible; + text-align: center; + transition: width 2s; + padding: 5px; + margin: 18px; + position: relative; + float: right; + right: -10px; + width: max(180px, 30%); + max-width: 50%; + background-color: var(--stickies-color-1); + -webkit-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -o-transform: rotate(0deg); + -ms-transform: rotate(0deg); + transform: rotate(2deg); + transition: all 2s ease; + z-index: 1; + padding-top: 10px; + padding-bottom: 10px; + border-radius: 0px; + color: black; +} +.callout[data-callout="stickies"] >.callout-content::after { + content: ""; + left: -5%; + top: -10px; + height: 40px; + width: 15px; + border-radius: var(--radius-l); + border: 3px solid #979797; + display: inline-block; + position: absolute; + -webkit-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -o-transform: rotate(0deg); + -ms-transform: rotate(0deg); + transform: rotate(-11deg); + z-index: 11; +} +.callout[data-callout="stickies"] >.callout-content::before { + width: 11px; + height: 20px; + content: ""; + display: inline-block; + position: absolute; + left: -3.5%; + top: -2px; + border-radius: var(--radius-l); + border: 3px solid #979797; + border-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + z-index: 10; + -webkit-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -o-transform: rotate(0deg); + -ms-transform: rotate(0deg); + transform: rotate(-11deg); +} + +.callout[data-callout="stickies2"] { + box-shadow: none; + border-left: none; +} +.callout[data-callout="stickies2"] >.callout-title { + display: none; +} + +.callout[data-callout="stickies2"] >.callout-content { + overflow:visible; + position: relative; + float: left; + box-shadow: 0 10px 10px 2px #9191912d; + width: max(180px, 30%); + max-width: 50%; + background-color: var(--stickies-color-2); + -webkit-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -o-transform: rotate(0deg); + -ms-transform: rotate(0deg); + transform: rotate(-2deg); + transition: all 2s ease; + z-index: 1; + padding: 20px; + margin: 10px; + color: black; +} +.callout[data-callout="stickies2"] >.callout-content::after { + content: ""; + display: block; + height: 32px; + width: 2px; + position: absolute; + left: 50%; + top: -10px; + z-index: 1; + border-radius: 50%; + display: inline-block; + height: 15px; + width: 15px; + border: 1px; + box-shadow: inset -10px -10px 10px #f0b7a4, inset 3px 3px 5px; +} +.callout[data-callout="stickies2"][data-callout-metadata*="right"] { + width: max(180px, 30%); +} +.callout[data-callout="stickies2"][data-callout-metadata*="right"] >.callout-content { + float:right; + max-width: 100%; +} + +.callout[data-callout="stickies3"] { + background-color: transparent ; + box-shadow:none; + border-left:0px; + margin: 20px auto 0 auto !important; +} +.callout[data-callout="stickies3"] >.callout-title { + display: none; +} + +.callout[data-callout="stickies3"] >.callout-content { + overflow:visible; + width: max(180px, 30%); + max-width: 235px; + min-height: 235px; + padding-top: 2.5em; + font-family: Arial; + margin-top: 20px; + margin-right: 25px; + position: relative; + vertical-align: top; + display: inline-block; + background: #F7E999; + text-align: center; + box-shadow: 0 4px 5px rgba(0, 0, 0, 0.2); + color: black; + font-family: var(--font-family-vault); +} +div.is-live-preview .callout[data-callout="stickies3"] >.callout-content { + padding: 20px 15px 10px 15px; +} +.markdown-preview-view .callout[data-callout="stickies3"] >.callout-content p { + margin-block-start: 0.5em; + margin-block-end: 0.5em; +} +div.callout[data-callout="stickies3"] >.callout-content ul { + text-align: left; + margin-left: auto; +} +.callout[data-callout="stickies3"] >.callout-content::before { + display: block; + content: ""; + background: rgba(227, 200, 114, 0.4); + width: 56%; + height: 28px; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); + border-radius: 6px/18px 0; + position: absolute; + top: -13px; + left: 20%; + -webkit-transform: rotate(-2deg); + -moz-transform: rotate(-2deg); + -o-transform: rotate(-2deg); + -ms-transform: rotate(-2deg); + transform: rotate(-2deg); +} +.callout[data-callout="stickies3"] >.callout-content a { + color: #6b824f; + -webkit-transition: all 0.4s ease; + -moz-transition: all 0.4s ease; + -o-transition: all 0.4s ease; + -ms-transition: all 0.4s ease; + transition: all 0.4s ease; +} +.callout[data-callout="stickies3"] >.callout-content a:hover { + color: #D83A25; + background: transparent; +} +.callout[data-callout="stickies3"] >.callout-content a::before { + content: ""; +} + +.markdown-preview-view .callout[data-callout="stickies3"] >.callout-content span { + font-size: smaller; +} + +.markdown-preview-view .callout[data-callout="stickies3"] >.callout-content img { + max-height: 205px; + margin-top: -2.5em; +} +.markdown-preview-view .callout[data-callout="stickies3"] >.callout-content { + font-size: smaller; +} +.theme-dark .markdown-preview-view .callout[data-callout="stickies3"] >.callout-content blockquote { + color: var(--interactive-normal); +} +.theme-dark .markdown-preview-view .callout[data-callout="stickies3"] >.callout-content em { + color: var(--interactive-accent); + -webkit-text-fill-color: unset; +} +.theme-dark .markdown-preview-view .callout[data-callout="stickies3"] >.callout-content strong { + color: var(--interactive-accent)!important; +} +.markdown-preview-view .callout[data-callout="stickies3"] >.callout-content .block-language-dataviewjs p { + max-height: 195px; +} + +.callout:is([data-callout-metadata*='yellow']) .callout-content{ + background: #F7E999; + -webkit-transform: rotate(2deg); + -moz-transform: rotate(2deg); + -o-transform: rotate(2deg); + -ms-transform: rotate(2deg); + transform: rotate(2deg); +} + +.callout:is([data-callout-metadata*='blue']) .callout-content { + background: #b9dcf4; + -webkit-transform: rotate(-2deg); + -moz-transform: rotate(-2deg); + -o-transform: rotate(-2deg); + -ms-transform: rotate(-2deg); + transform: rotate(-2deg); +} + +.callout:is([data-callout-metadata*='pink']) .callout-content { + background: #FFBDA3; + -webkit-transform: rotate(1deg); + -moz-transform: rotate(1deg); + -o-transform: rotate(1deg); + -ms-transform: rotate(1deg); + transform: rotate(1deg); +} + +.callout:is([data-callout-metadata*='green']) .callout-content { + background: #CAF4B9; + -webkit-transform: rotate(-1deg); + -moz-transform: rotate(-1deg); + -o-transform: rotate(-1deg); + -ms-transform: rotate(-1deg); + transform: rotate(-1deg); +} +/*禁用点击超链接跳转 需要跳转 按ctrl+超链接即可*/ +body.link-click .is-live-preview .cm-s-obsidian span.cm-link { + pointer-events: none; +} + +/*禁用实时预览点击标签跳转 需要跳转 点击#号即可*/ +body.tag-click .cm-line span.cm-hashtag:not(.cm-formatting) { + pointer-events: none; +} +/*ob关闭按钮顺序调整*/ +body.reversal-titlebar .titlebar-button-container.mod-right { + direction: rtl; +} +body.is-hidden-frameless:not(.is-fullscreen).is-focused .titlebar-button-container.mod-right { + background-color:transparent; +} + + +/* funny LP headers animation 开启标题动画 === +from discord @sailKite https://cdn.discordapp.com/attachments/702656734631821413/1007258862606352424/FunnyHeaderAnimLP.css +*/ +body.funny-header-anim .is-live-preview .cm-line > :is(.cm-header, .cm-widgetBuffer) + .cm-header, +body.funny-header-anim.clutter-free-headings .cm-line > :is(.cm-header, .cm-widgetBuffer) + .cm-header { + display: inline-block; +} +body.funny-header-anim .is-live-preview .cm-line:not(.cm-active) :is(.cm-header, .cm-widgetBuffer) + .cm-header, +body.funny-header-anim.clutter-free-headings .cm-line:not(.cm-active) :is(.cm-header, .cm-widgetBuffer) + .cm-header, +body.funny-header-anim .is-live-preview .cm-line:not(.cm-active) :is(.cm-header, .cm-widgetBuffer) + .cm-header ~ *, +body.funny-header-anim.clutter-free-headings .cm-line:not(.cm-active) :is(.cm-header, .cm-widgetBuffer) + .cm-header ~ * { + transform: translateX(0ch); + transition: transform 333ms; +} +body.funny-header-anim .is-live-preview .cm-active :is(.cm-header, .cm-widgetBuffer) + .cm-header, +body.funny-header-anim.clutter-free-headings :is(.cm-header, .cm-widgetBuffer) + .cm-header , +body.funny-header-anim .is-live-preview .cm-active :is(.cm-header, .cm-widgetBuffer) + .cm-header ~ *, +body.funny-header-anim.clutter-free-headings :is(.cm-header, .cm-widgetBuffer) + .cm-header ~ *{ + transition: transform 333ms; + transform: translateX(30px); +} +body.funny-header-anim .is-live-preview .cm-active :is(.cm-header) +.cm-widgetBuffer + .cm-html-embed, +body.funny-header-anim.clutter-free-headings .cm-active :is(.cm-header) + .cm-widgetBuffer + .cm-html-embed { + transition: margin-left 500ms; + margin-left: 30px; +} +body.funny-header-anim .is-live-preview .cm-active :is(.cm-header, .cm-widgetBuffer) + .cm-bracket, +body.funny-header-anim.clutter-free-headings .cm-active :is(.cm-header, .cm-widgetBuffer) + .cm-bracket { + transition: margin-left 333ms; + margin-left: 30px; +} +body.funny-header-anim .is-live-preview .cm-line:not(.cm-active) .cm-header:first-of-type, +body.funny-header-anim.clutter-free-headings .cm-line:not(.cm-active) .cm-header:first-of-type { + display: none; + opacity: 0; +} + +body.funny-header-anim .is-live-preview .cm-active .cm-formatting-header + .cm-header, +body.funny-header-anim.clutter-free-headings .cm-active .cm-formatting-header + .cm-header{ + margin-left: -30px; +} + +body.funny-header-anim .is-live-preview .cm-active .cm-header:first-of-type, +body.funny-header-anim.clutter-free-headings .cm-active .cm-header:first-of-type { + transform: translateX(0ch); + animation: opac 333ms; +} + +@keyframes opac { + from {opacity: 0;} + to {opacity: 1;} +} + +/* head-tag-style*/ +body.head-tag-style :is(.cm-header) +.cm-widgetBuffer + .cm-html-embed>sup { + background-color: var(--text-accent-hover); + color: #fff; + vertical-align: top; + border-radius: 3px; + padding: 1px 6px; + font-size: 12px; + line-height: calc(var(--paragraph-spacing) + 0.7); + margin-left: 0.5em; + letter-spacing: .1em; + font-family: var(--font-default); +} +body.head-tag-style :is(.cm-header) +.cm-widgetBuffer + .cm-html-embed>sub { + background-color: var( --simple-orange); + color: #fff; + vertical-align: top; + border-radius: 3px; + padding: 1px 6px; + font-size: 12px; + line-height: calc(var(--paragraph-spacing) + 0.7); + margin-left: 0.5em; + letter-spacing: .1em; + font-family: var(--font-default); +} + +body.head-tag-style :is(.markdown-preview-view,.markdown-rendered) :is(h1,h2,h3,h4,h5,h6) sup { + background-color: var(--text-accent-hover); + color: #fff; + vertical-align: top; + border-radius: 3px; + padding: 1px 6px; + font-size: 12px; + margin-left: 0.5em; + letter-spacing: .1em; + margin-top: -0.2em; + line-height: calc(var(--line-height-main) - 0.7); +} + +body.head-tag-style :is(.markdown-preview-view,.markdown-rendered) :is(h1,h2,h3,h4,h5,h6) sub { + background-color: var( --simple-orange); + color: #fff; + vertical-align: top; + border-radius: 3px; + padding: 1px 6px; + font-size: 12px; + margin-left: 0.5em; + letter-spacing: .1em; + margin-top: -0.2em; + line-height: calc(var(--line-height-main) - 0.7); +} +body.head-tag-style :is(.markdown-preview-view,.markdown-rendered) :is(h1,h2,h3,h4,h5,h6) :is(sub,sup)>.tag:not(.token) { + padding: 0; + background-color: transparent; +} + +body.head-tag-style .cm-s-obsidian .cm-header ~ span.cm-hashtag { + font-size: calc(var(--font-size-tag) - 0.3em)!important; + vertical-align: top; +} +body.head-tag-style .cm-s-obsidian .cm-formatting.cm-formatting-hashtag.cm-hashtag.cm-hashtag-begin.cm-header, +body.head-tag-style .cm-s-obsidian .cm-hashtag.cm-header { + vertical-align: top; +} + + +body:not(.tag-default) .cm-s-obsidian .cm-header ~ span.cm-hashtag { + font-size: calc(var(--font-size-tag) - 0.3em)!important; +} + + +body.head-tag-style :is(.markdown-preview-view,.markdown-rendered) :is(h1,h2,h3,h4,h5,h6) >.tag:not(.token) { + font-size: calc(var(--font-size-tag) - 0.3em); + vertical-align: top; +} + +/* +.cm-s-obsidian .cm-formatting.cm-formatting-hashtag.cm-hashtag.cm-hashtag-begin.cm-header, +.cm-s-obsidian .cm-hashtag.cm-header { + font-size: calc(var(--font-size-tag) - 0.3em) !important; + vertical-align: middle; + margin-top: -0.3em; +} +*/ + +body.head-tag-style .cm-s-obsidian .cm-formatting.cm-formatting-hashtag.cm-hashtag.cm-hashtag-begin.cm-header, +body.head-tag-style .cm-s-obsidian .cm-hashtag.cm-header { + vertical-align: top; +} + +:is(.markdown-preview-view,.markdown-rendered) :is(h1,h2,h3,h4,h5,h6) >.tag:not(.token) { + font-size: calc(var(--font-size-tag) - 0.2em); + vertical-align: middle; +} + +/****** 网络图片标题样式********/ +[data-dv-key="img-caption"] + span.dataview>span { + margin: 0.5rem 0; + display: block; + caption-side: bottom; + text-align: center; + font-size: 0.85rem; +} +.dataview.inline-field-key[data-dv-key="img-caption"] + .dataview.inline-field-value { + background-color:unset; + border-radius: 0px; + padding: 0; + font-family: var(--font-text); +} + +.dataview.inline-field-key[data-dv-key="img-caption"] { + display:none; + background-color:unset; + font-size: 0px; + padding: 0; + border-radius: 0px; +} + +.dataview.inline-field-key[data-dv-key="img-caption"] { + display:none; + background-color:unset; + font-size: 0px; + padding: 0; + border-radius: 0px; +} + + +body:not(.remove-selectionbackground) .markdown-source-view.mod-cm6 .cm-editor .cm-selectionBackground { + background: transparent; +} + +.clickable-icon.is-active, +.clickable-icon.has-active-menu, +.clickable-icon:active, +.clickable-icon:hover { + background-color: var(--theme-color-translucent-015); +} + +.workspace.is-left-sidedock-open .workspace-ribbon.side-dock-ribbon.mod-left .sidebar-toggle-button .clickable-icon, +.workspace-split.mod-horizontal .sidebar-toggle-button .clickable-icon, +.workspace.is-right-sidedock-open .sidebar-toggle-button.mod-right .clickable-icon { + color: var(--theme-color); +} + +.workspace-tabs .view-header { + margin: 0; + padding: 0 var(--size-4-2); +} + +.workspace-split.mod-root .workspace-tab-header.is-active { + z-index: var(--layer-popover); + color: var(--text-normal); + /*box-shadow: var(--window-shadow);*/ +} +.is-mobile .workspace-split.mod-root .workspace-tab-header.is-active.mod-active { + z-index: 29; +} +.is-focused .workspace-tab-header { + color: var(--text-muted); +} + + +/* +.workspace-tabs.mod-stacked .view-header, +.is-focused .workspace .mod-root .workspace-tabs.mod-stacked .workspace-leaf.mod-active .view-header { + background-color: var(--color-base-10); +}*/ +.workspace-split.mod-root .workspace-tabs.mod-stacked .view-content { + backdrop-filter: blur(var(--stack-tabs-background-blur-depth)); +} +.workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header { + background-color: var(--background-primary); + border-right: 1px solid var(--page-border-bottom); + box-shadow: -1px 0 10px 0 var(--tab-stacked-shadow); + backdrop-filter: blur(6px); +} +.workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header:first-child { + border-left: 1px solid var(--page-border-bottom); +} + +.titlebar-button:hover { + background-color: unset; +} + +/* body:not(.default-list-marker) .list-bullet::before { + display: none; +} */ + +body:not(.default-list-marker) .markdown-rendered .list-bullet::after { + content: '\2022'; + font-size: var(--list-ul-marker-size); + font-family: Inter; + width: unset; + height: unset; + border: none; + background: transparent; + color: var(--list-ul-marker-color); + margin-left: 0.13em; + /* margin-top: calc(0.466em * var(--line-height-list) - 0.286em); */ + line-height: 0.55; + transition: all 0.15s ease; +} + +body:not(.default-list-marker) .list-bullet::after { + content: '\2022'; + font-size: var(--list-ul-marker-size); + font-family: Inter; + width: unset; + border: none; + background: transparent; + color: var(--list-ul-marker-color); +/* margin-left: -0.03em; + margin-top: -0.15em; */ + display: flex; + justify-content: center; + flex-direction: column; + height: 43%; + transition: all 0.15s ease; +} + +body.custom-unordered-list .markdown-rendered .has-list-bullet .has-list-bullet .has-list-bullet .has-list-bullet .list-bullet::after, +body.custom-unordered-list .markdown-rendered .list-bullet::after { + content: var(--list-ul-marker-4); + font-size: var(--list-ul-marker-size-4); + color: var(--list-ul-marker-color-4,var(--list-marker-color)); +} + +body.custom-unordered-list .markdown-source-view.mod-cm6 .list-bullet::after { + content: var(--list-ul-marker-4); + font-size: var(--list-ul-marker-size-4); + color: var(--list-ul-marker-color-4,var(--list-marker-color)); +} + +body.custom-unordered-list .has-list-bullet .list-bullet::after, +body.custom-unordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-1.cm-line div.cm-fold-indicator ~ span.cm-formatting .list-bullet::after, +body.custom-unordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-1.cm-line>span.cm-formatting:first-of-type .list-bullet::after { + content: var(--list-ul-marker-1); + font-size: var(--list-ul-marker-size-1); + color: var(--list-ul-marker-color-1,var(--list-marker-color)); +} + +body.custom-unordered-list .has-list-bullet .has-list-bullet .list-bullet::after, +body.custom-unordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-2.cm-line div.cm-fold-indicator ~ span.cm-formatting .list-bullet::after, +body.custom-unordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-2.cm-line span.cm-hmd-list-indent ~ span.cm-formatting .list-bullet::after { + content: var(--list-ul-marker-2); + font-size: var(--list-ul-marker-size-2); + color: var(--list-ul-marker-color-2,var(--list-marker-color)); +} +body.custom-unordered-list .has-list-bullet .has-list-bullet .has-list-bullet .list-bullet::after, +body.custom-unordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-3.cm-line div.cm-fold-indicator ~ span.cm-formatting .list-bullet::after, +body.custom-unordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-3.cm-line span.cm-hmd-list-indent ~ span.cm-formatting .list-bullet::after { + content: var(--list-ul-marker-3); + font-size: var(--list-ul-marker-size-3); + color: var(--list-ul-marker-color-3,var(--list-marker-color)); +} + + +.markdown-source-view.mod-cm6 .cm-indent::before { + margin-left: var(--bt-list-indentation-margin-left-editing, 0px); +} +.markdown-rendered.show-indentation-guide li > ul::before, +.markdown-rendered.show-indentation-guide li > ol::before { + margin-left: var(--bt-list-indentation-margin-left-reading, 0); +} + +.is-focused .mod-active .workspace-tab-header.is-active +.workspace-tab-header-inner-icon { + color: var(--theme-color); +} + +body:not(.default-list-marker) .list-collapse-indicator:hover ~ .list-bullet:after, +body:not(.default-list-marker) .cm-fold-indicator:hover ~ .list-bullet:after, +body:not(.default-list-marker) .list-collapse-indicator:hover ~ .cm-formatting-list .list-bullet:after, +body:not(.default-list-marker) .cm-fold-indicator:hover ~ .cm-formatting-list .list-bullet:after { + box-shadow: -0.02em 0.058em 0 2px var(--background-modifier-hover); + background-color: var(--background-modifier-hover); +} + +body:not(.default-list-marker) li.is-collapsed .list-collapse-indicator:hover ~ .list-bullet:after, +body:not(.default-list-marker) li.is-collapsed .cm-fold-indicator:hover ~ .list-bullet:after, +body:not(.default-list-marker) .list-collapse-indicator:hover.is-collapsed ~ .list-bullet:after, +body:not(.default-list-marker) .cm-fold-indicator:hover.is-collapsed ~ .list-bullet:after, +body:not(.default-list-marker) li.is-collapsed .list-collapse-indicator:hover ~ .cm-formatting-list .list-bullet:after, +body:not(.default-list-marker) li.is-collapsed .cm-fold-indicator:hover ~ .cm-formatting-list .list-bullet:after, +body:not(.default-list-marker) .list-collapse-indicator:hover.is-collapsed ~ .cm-formatting-list .list-bullet:after, +body:not(.default-list-marker) .cm-fold-indicator:hover.is-collapsed ~ .cm-formatting-list .list-bullet:after, + +body:not(.default-list-marker) li.is-collapsed .list-bullet:after, +body:not(.default-list-marker) .is-collapsed ~ .cm-formatting-list .list-bullet:after, +body:not(.default-list-marker) .markdown-rendered .has-list-bullet .has-list-bullet .has-list-bullet .has-list-bullet .is-collapsed .list-bullet::after { + color: var(--list-marker-color-collapsed); + box-shadow: -0.02em 0.058em 0 2px var(--background-modifier-active-hover); + background-color: var(--background-modifier-active-hover); +} + + +body.colorful-unordered-list ul > li::marker { + color: var(--list-colorful-marker); +} +body.colorful-unordered-list :is(ul, ol) ul li::marker { + color: hsl(calc(var(--accent-h) + 60),var(--accent-s),var(--accent-l)); +} +body.colorful-ordered-list :is(ul, ol) :is(ul, ol) ul li::marker { + color: hsl(calc(var(--accent-h) + 120),var(--accent-s),calc(var(--accent-l) * 0.95)); +} +body.colorful-ordered-list :is(ul, ol) :is(ul, ol) :is(ul, ol) ul li::marker { + color: hsl(calc(var(--accent-h) + 180),var(--accent-s),calc(var(--accent-l) * 0.95)); +} +body.colorful-ordered-list :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) ul li::marker { + color: hsl(calc(var(--accent-h) + 240),var(--accent-s),calc(var(--accent-l) * 0.95)); +} +body.colorful-ordered-list :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) ul li::marker { + color: hsl(calc(var(--accent-h) + 300),var(--accent-s),calc(var(--accent-l) * 0.95)); +} +body.colorful-ordered-list :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) ul li::marker { + color: hsl(calc(var(--accent-h) + 0), var(--accent-s), calc(var(--accent-l) * 0.95)); +} + +body.colorful-unordered-list .markdown-source-view.mod-cm6 .list-bullet::after { + content: var(--list-ul-colorful-marker-content); +} + +body.colorful-unordered-list .has-list-bullet .list-bullet::after, +body.colorful-unordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-1.cm-line div.cm-fold-indicator ~ span.cm-formatting .list-bullet::after, +body.colorful-unordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-1.cm-line>span.cm-formatting:first-of-type .list-bullet::after { + color: var(--list-colorful-marker); +} + + +body.colorful-unordered-list .has-list-bullet .has-list-bullet .list-bullet::after, +body.colorful-unordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-2.cm-line div.cm-fold-indicator ~ span.cm-formatting .list-bullet::after, +body.colorful-unordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-2.cm-line span.cm-hmd-list-indent ~ span.cm-formatting .list-bullet::after { + color: var(--list-colorful-marker); + filter: hue-rotate(60deg); +} +body.colorful-unordered-list .has-list-bullet .has-list-bullet .has-list-bullet .list-bullet::after, +body.colorful-unordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-3.cm-line div.cm-fold-indicator ~ span.cm-formatting .list-bullet::after, +body.colorful-unordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-3.cm-line span.cm-hmd-list-indent ~ span.cm-formatting .list-bullet::after { + color: var(--list-colorful-marker); + filter: hue-rotate(120deg); +} +body.colorful-unordered-list .has-list-bullet .has-list-bullet .has-list-bullet .has-list-bullet .list-bullet::after, +body.colorful-unordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-4.cm-line div.cm-fold-indicator ~ span.cm-formatting .list-bullet::after, +body.colorful-unordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-4.cm-line span.cm-hmd-list-indent ~ span.cm-formatting .list-bullet::after { + color: var(--list-colorful-marker); + filter: hue-rotate(180deg); +} +body.colorful-unordered-list .has-list-bullet .has-list-bullet .has-list-bullet .has-list-bullet .has-list-bullet .list-bullet::after, +body.colorful-unordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-5.cm-line div.cm-fold-indicator ~ span.cm-formatting .list-bullet::after, +body.colorful-unordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-5.cm-line span.cm-hmd-list-indent ~ span.cm-formatting .list-bullet::after { + color: var(--list-colorful-marker); + filter: hue-rotate(240deg); +} +body.colorful-unordered-list .has-list-bullet .has-list-bullet .has-list-bullet .has-list-bullet .has-list-bullet .has-list-bullet .list-bullet::after, +body.colorful-unordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-6.cm-line div.cm-fold-indicator ~ span.cm-formatting .list-bullet::after, +body.colorful-unordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-6.cm-line span.cm-hmd-list-indent ~ span.cm-formatting .list-bullet::after { + color: var(--list-colorful-marker); + filter: hue-rotate(300deg); +} + + +body.colorful-unordered-list li.is-collapsed .list-collapse-indicator:hover ~ .list-bullet:after, +body.colorful-unordered-list li.is-collapsed .cm-fold-indicator:hover ~ .list-bullet:after, +body.colorful-unordered-list .list-collapse-indicator:hover.is-collapsed ~ .list-bullet:after, +body.colorful-unordered-list .cm-fold-indicator:hover.is-collapsed ~ .list-bullet:after, +body.colorful-unordered-list li.is-collapsed .list-collapse-indicator:hover ~ .cm-formatting-list .list-bullet:after, +body.colorful-unordered-list li.is-collapsed .cm-fold-indicator:hover ~ .cm-formatting-list .list-bullet:after, +body.colorful-unordered-list .list-collapse-indicator:hover.is-collapsed ~ .cm-formatting-list .list-bullet:after, +body.colorful-unordered-list .cm-fold-indicator:hover.is-collapsed ~ .cm-formatting-list .list-bullet:after, + +body.colorful-unordered-list li.is-collapsed .list-bullet:after, +body.colorful-unordered-list .is-collapsed ~ .cm-formatting-list .list-bullet:after, +body.colorful-unordered-list .markdown-rendered .has-list-bullet .has-list-bullet .has-list-bullet .has-list-bullet .is-collapsed .list-bullet::after { + color: var(--list-marker-color-collapsed); + box-shadow: -0.02em 0.058em 0 2px var(--background-modifier-active-hover); + background-color: var(--background-modifier-active-hover); +} + + +/*ordered-list-style-1*/ +body.ordered-list-style-1 ol, +body.ordered-list-style-1 ol ol, +body.ordered-list-style-1 ol ol ol, +body.ordered-list-style-1 ol ul ol, +body.ordered-list-style-1 ol ol ol ol, +body.ordered-list-style-1 ol ol ul ol, +body.ordered-list-style-1 ol ul ol ol { + list-style: none; +} + +body.ordered-list-style-1 ol { + counter-reset: niceBT; +} + +body.ordered-list-style-1 ol>li { + counter-increment: niceBT; +} + +body.ordered-list-style-1 .markdown-rendered.show-indentation-guide li > ul::before { + left: -18px; +} +body.ordered-list-style-1 .markdown-rendered.show-indentation-guide li > ol::before { + left: -11px; +} + +body.ordered-list-style-1 ol>li::before { + content: counters(niceBT, '.') '. '; + font-weight: bold; + font-family: Inter; + color: var(--list-ol-number-color); + display: inline-block; + white-space: pre; + margin-left: -0.7em; +} +body.ordered-list-style-1 ul>li:not(.task-list-item)>p { + display: inline; +} +body.ordered-list-style-1 ul>li:not(.task-list-item) { + list-style-position: inside; + padding-left: 0.25em; +} + +body.ordered-list-style-1 ol.contains-task-list>li.task-list-item { + margin-left: -1.2em; +} + +body.list-bracket-style .markdown-rendered.show-indentation-guide li:not(.task-list-item) > :is(ol,ul)::before{ + border: none; +} + +body.list-bracket-style :is(.markdown-preview-view,.markdown-rendered) ul>li:not(.task-list-item)::marker { + font-size: 0.9em; +} + + +body.list-bracket-style :is(.markdown-preview-view,.markdown-rendered):not(.kanban) li:not(.task-list-item) { + padding-left: 0.3rem; +} + +body.list-bracket-style :is(.markdown-preview-view,.markdown-rendered):not(.kanban) ul>li:not(.task-list-item) { + border-radius: var(--radius-s); + word-wrap: break-word; + word-break: break-word; + transition: all 300ms ease-in-out; + border-left: 0.125em solid var(--list-ul-block-color); +} + +body.list-bracket-style :is(.markdown-preview-view,.markdown-rendered):not(.kanban) ul>li:not(.task-list-item):hover { + border-color: var(--list-ul-hover); +} + + + +body.list-bracket-style :is(.markdown-preview-view,.markdown-rendered) ol:not(.contains-task-list)>li:not(.task-list-item) { + border-left: 0.125em solid var(--list-ol-block-color); + border-radius: var(--radius-s); + padding-left: 0.3rem; + border-radius: var(--radius-s); + transition: all 300ms ease-in-out; +} + +body.list-bracket-style ol.contains-task-list ol li:not(.task-list-item) { + border-left: none !important; + padding-left: 0.25em; +} + +body.list-bracket-style :is(.markdown-preview-view,.markdown-rendered) ol:not(.contains-task-list)>li:not(.task-list-item):hover { + border-color: var(--list-ol-hover); +} + + +body.list-bracket-style-two :is(.markdown-preview-view,.markdown-rendered):not(.kanban) :is(ul,ol)>li:not(.task-list-item) { + border-radius: var(--radius-s); + word-wrap: break-word; + word-break: break-word; + transition: all 300ms ease-in-out; + border-left: 0.125em solid var(--list-ul-block-color); +} + +body.list-bracket-style-two :is(.markdown-preview-view,.markdown-rendered):not(.kanban) ol>li:not(.task-list-item) { + border-left: 0.125em solid var(--list-ol-block-color); +} + +body.list-bracket-style-two .markdown-rendered.show-indentation-guide li:not(.task-list-item) > ul::before, +body.list-bracket-style-two .markdown-rendered.show-indentation-guide li:not(.task-list-item) > ol::before { + border: none; +} + +/*list-bracket-style-two*/ +body.list-bracket-style-two ol, +body.list-bracket-style-two ol ol, +body.list-bracket-style-two ol ol ol, +body.list-bracket-style-two ol ul ol, +body.list-bracket-style-two ol ol ol ol, +body.list-bracket-style-two ol ol ul ol, +body.list-bracket-style-two ol ul ol ol { + list-style: none; +} + +body.list-bracket-style-two ol { + counter-reset: niceBT; +} + +body.list-bracket-style-two ol>li { + counter-increment: niceBT; +} + +body.list-bracket-style-two ol>li::before { + content: counters(niceBT, '.') '. '; + font-weight: bold; + font-family: Monaco; + font-size: 0.8em; + color: var(--list-ol-number-color); + display: inline-block; + white-space: pre; +} + +body.list-bracket-style-two ul>li:not(.task-list-item) { + padding-left: 1.1em; +} +body.list-bracket-style-two ol>li:not(.task-list-item) { + padding-left: 0.4em; +} + +body.list-bracket-style-two .markdown-rendered .list-bullet { + left: 0.6em; +} + +body.list-bracket-style-three :is(.markdown-preview-view,.markdown-rendered):not(.kanban) :is(ul,ol):has(:is(ol,ul))>li:has(:is(ol,ul)):not(.task-list-item) { + border-radius: var(--radius-s); + word-wrap: break-word; + word-break: break-word; + transition: all 300ms ease-in-out; + border-left: 0.125em solid var(--list-ul-block-color); +} +body.list-bracket-style-three :is(.markdown-preview-view,.markdown-rendered):not(.kanban) ol:has(:is(ol,ul))>li:has(:is(ol,ul)):not(.task-list-item) { + border-left: 0.125em solid var(--list-ol-block-color); +} + +body.list-bracket-style-three :is(.markdown-preview-view,.markdown-rendered):not(.kanban) :is(ul,ol):has(:is(ol,ul))>li:has(:is(ol,ul)):not(.task-list-item) { + padding-left: 0.3em; +} + +body.list-bracket-style-three .markdown-rendered.show-indentation-guide li:not(.task-list-item) > ul::before, +body.list-bracket-style-three .markdown-rendered.show-indentation-guide li:not(.task-list-item) > ol::before { + border: none; +} +body.list-bracket-style-three :is(.markdown-preview-view,.markdown-rendered):not(.kanban) li:not(.task-list-item) { + padding-left: 0.45rem; +} + + +/*list-vertical-line-one*/ +body.list-vertical-line-one ol, +body.list-vertical-line-one ol ol, +body.list-vertical-line-one ol ol ol, +body.list-vertical-line-one ol ul ol, +body.list-vertical-line-one ol ol ol ol, +body.list-vertical-line-one ol ol ul ol, +body.list-vertical-line-one ol ul ol ol { + list-style: none; +} + +body.list-vertical-line-one ol { + counter-reset: niceBTT; +} + +body.list-vertical-line-one ol>li { + counter-increment: niceBTT; +} + +body.list-vertical-line-one ol>li::before { + content: counters(niceBTT, '.') '. '; + font-weight: bold; + color: var(--list-ol-number-color); + margin-left: -1.3em; + font-family: Monaco; + font-size: 0.9em; +} + +body.list-vertical-line-one :is(ol,ul) :is(ol,ul) { + position: relative; +} + +:is(body.list-vertical-line-one,body.list-vertical-line-one, body.list-vertical-line-one) :is(.markdown-preview-view,.markdown-rendered) ul ol:not(.contains-task-list)>li:not(.task-list-item), +:is(body.list-vertical-line-one,body.list-vertical-line-one, body.list-vertical-line-one) :is(.markdown-preview-view,.markdown-rendered) ul ol:not(.contains-task-list)+ul>li:not(.task-list-item), +:is(body.list-vertical-line-one,body.list-vertical-line-one, body.list-vertical-line-one) :is(.markdown-preview-view,.markdown-rendered):not(.kanban) ol ul>li:not(.task-list-item), +:is(body.list-vertical-line-one,body.list-vertical-line-one, body.list-vertical-line-one) :is(.markdown-preview-view,.markdown-rendered):not(.kanban) ol ul+ol>li:not(.task-list-item) { + margin-top: calc(var(--margin-list) * -0.25em); + padding-top: calc(var(--margin-list) * 0.25em); +} + + +body.colorful-ordered-list ol li::marker, +body.colorful-ordered-list ol li::before, +body.colorful-ordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-1.cm-line div.cm-fold-indicator ~ span.cm-formatting.cm-formatting-list-ol, +body.colorful-ordered-list .cm-formatting.cm-formatting-list.cm-formatting-list-ol, +body.colorful-ordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-1.cm-line span.cm-hmd-list-indent ~ span.cm-formatting.cm-formatting-list-ol { + color: var(--list-colorful-marker); +} + +body.colorful-ordered-list :is(ul, ol) ol li::marker { + color: hsl(calc(var(--accent-h) + 60),var(--accent-s),var(--accent-l)); +} +body.colorful-ordered-list :is(ul, ol) ol li::before, +body.colorful-ordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-2.cm-line div.cm-fold-indicator ~ span.cm-formatting.cm-formatting-list-ol, +body.colorful-ordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-2.cm-line span.cm-hmd-list-indent ~ span.cm-formatting.cm-formatting-list-ol { + color: var(--list-colorful-marker); + filter: hue-rotate(60deg); +} + +body.colorful-ordered-list :is(ul, ol) :is(ul, ol) ol li::marker { + color: hsl(calc(var(--accent-h) + 120),var(--accent-s),calc(var(--accent-l) * 0.95)); +} +body.colorful-ordered-list :is(ul, ol) :is(ul, ol) ol li::before, +body.colorful-ordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-3.cm-line div.cm-fold-indicator ~ span.cm-formatting.cm-formatting-list-ol, +body.colorful-ordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-3.cm-line span.cm-hmd-list-indent ~ span.cm-formatting.cm-formatting-list-ol { + color: var(--list-colorful-marker); + filter: hue-rotate(120deg); +} + +body.colorful-ordered-list :is(ul, ol) :is(ul, ol) :is(ul, ol) ol li::marker { + color: hsl(calc(var(--accent-h) + 180),var(--accent-s),calc(var(--accent-l) * 0.95)); +} +body.colorful-ordered-list :is(ul, ol) :is(ul, ol) :is(ul, ol) ol li::before, +body.colorful-ordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-4.cm-line div.cm-fold-indicator ~ span.cm-formatting.cm-formatting-list-ol, +body.colorful-ordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-4.cm-line span.cm-hmd-list-indent ~ span.cm-formatting.cm-formatting-list-ol { + color: var(--list-colorful-marker); + filter: hue-rotate(180deg); +} + +body.colorful-ordered-list :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) ol li::marker { + color: hsl(calc(var(--accent-h) + 240),var(--accent-s),calc(var(--accent-l) * 0.95)); +} +body.colorful-ordered-list :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) ol li::before, +body.colorful-ordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-5.cm-line div.cm-fold-indicator ~ span.cm-formatting.cm-formatting-list-ol, +body.colorful-ordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-5.cm-line span.cm-hmd-list-indent ~ span.cm-formatting.cm-formatting-list-ol { + color: var(--list-colorful-marker); + filter: hue-rotate(240deg); +} + +body.colorful-ordered-list :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) ol li::marker { + color: hsl(calc(var(--accent-h) + 300),var(--accent-s),calc(var(--accent-l) * 0.95)); +} + +body.colorful-ordered-list :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) ol li::before, +body.colorful-ordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-6.cm-line div.cm-fold-indicator ~ span.cm-formatting.cm-formatting-list-ol, +body.colorful-ordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-6.cm-line span.cm-hmd-list-indent ~ span.cm-formatting.cm-formatting-list-ol { + color: var(--list-colorful-marker); + filter: hue-rotate(300deg); +} + +body.colorful-ordered-list :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) ol li::marker { + color: hsl(calc(var(--accent-h) + 0), var(--accent-s), calc(var(--accent-l) * 0.95)); +} + +body.colorful-ordered-list :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) :is(ul, ol) ol li::before, +body.colorful-ordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-7.cm-line div.cm-fold-indicator ~ span.cm-formatting.cm-formatting-list-ol, +body.colorful-ordered-list .markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-7.cm-line span.cm-hmd-list-indent ~ span.cm-formatting.cm-formatting-list-ol { + color: var(--list-colorful-marker); + filter: hue-rotate(0deg); +} + + +@property --colorA { + syntax: ''; + inherits: false; + initial-value: #9800f021; +} +@property --colorB { + syntax: ''; + inherits: false; + initial-value: #0048f021; +} +@property --colorC { + syntax: ''; + inherits: false; + initial-value: #00f02c21; +} +body.enable-icon-anima div.nav-header:hover { + background: linear-gradient(135deg,var(--colorA),var(--colorB),var(--colorC)); + animation: rainbow-change 8s infinite linear; +} + +@keyframes rainbow-change { + 20% { + --colorA: #f0000015; + --colorB: #88f00015; + --colorC: #0048f015; + } + 40% { + --colorA: #10f00015; + --colorB: #007cf015; + --colorC: #6400f015; + } + 60% { + --colorA: #d4f00015; + --colorB: #f0780015; + --colorC: #f0003c15; + } + 80% { + --colorA: #0060f015; + --colorB: #f0700015; + --colorC: #00d0f015; + } +} + + +body.enable-icon-anima :is(.workspace-ribbon, .nav-header) .clickable-icon:before{ + content: ''; + background-color: var(--theme-color-translucent-01); + position: absolute; + width: 20px; + height: 20px; + border-radius: 50%; + visibility: hidden; +} + +body.enable-icon-anima :is(.workspace-ribbon, .nav-header) .clickable-icon:hover:before { + animation: bead-1 1s; +} + +body.enable-icon-anima :is(.workspace-ribbon, .nav-header) .clickable-icon:after { + content: ''; + background-color: var(--theme-color-translucent-01); + position: absolute; + width: 20px; + height: 20px; + border-radius: 50%; + visibility: hidden; +} + +body.enable-icon-anima :is(.workspace-ribbon, .nav-header) .clickable-icon:hover:after { + animation: bead-2 1s; +} + +@keyframes bead-1 { + 0% { + transform: scale(1); + visibility: visible; + } + 25% { + margin-left: 20px; + margin-top: 20px; + transform: scale(0); + visibility: hidden; + } + 50% { + margin: 0px; + transform: scale(1); + visibility: visible; + } + 100% { + margin-left: 20px; + margin-top: -20px; + transform: scale(0); + visibility: hidden; + } +} + +@keyframes bead-2 { + 0% { + transform: scale(1); + visibility: visible; + } + 25% { + margin-left: -20px; + margin-top: -20px; + transform: scale(0); + visibility: hidden; + } + 50% { + margin: 0px; + transform: scale(1); + visibility: visible; + } + 100% { + margin-left: -20px; + margin-top: 20px; + transform: scale(0); + visibility: hidden; + } +} + +/**ob 1.0 **/ +.is-hidden-frameless:not(.is-fullscreen) .titlebar-button-container.mod-right:hover { + background-color: var(--titlebar-background-focused); +} +.is-hidden-frameless:not(.is-fullscreen) .titlebar-button-container.mod-right { + background-color: transparent; +} +.is-hidden-frameless.mod-windows .titlebar-button { + background-color: transparent; +} + +.markdown-preview-view progress, .markdown-rendered progress, .markdown-source-view.is-live-preview progress { + overflow: unset; + vertical-align:top; +} + +body.title-justify-start .view-header-title-container { + justify-content: flex-start; +} + +.search-input-container input:hover { + box-shadow: var(--window-shadow-hover); +} +.menu{ + background-color: var(--color-base-10); +} + +.cm-s-obsidian span.obsidian-search-match-highlight { + box-shadow: none; +} +select:hover, +.dropdown:hover, +select:focus, +.dropdown:focus { + box-shadow: none; +} + +.workspace-leaf.mod-active .nav-folder.has-focus > .nav-folder-title, .workspace-leaf.mod-active .nav-file.has-focus > .nav-file-title { + box-shadow: none; +} + +.nav-folder.mod-root > .nav-folder-children > .nav-file .nav-file-title { + padding-left: var(--size-2-3); +} + +.nav-folder .nav-folder-children[style="height: 0px;"] { + height: auto !important; +} + +textarea:active, +input[type='text']:active, +input[type='search']:active, +input[type='email']:active, +input[type='password']:active, +input[type='number']:active, +textarea:focus, +input[type='text']:focus, +input[type='search']:focus, +input[type='email']:focus, +input[type='password']:focus, +input[type='number']:focus, +textarea:focus-visible, +input[type='text']:focus-visible, +input[type='search']:focus-visible, +input[type='email']:focus-visible, +input[type='password']:focus-visible, +input[type='number']:focus-visible { + box-shadow: none; +} + + +@keyframes fancy-prompt-1 { + 0% { + transform: scale(1.2) rotate(0); + opacity: 0; + box-shadow: 0 0 0 rgba(241, 241, 241, 0); + } + 50% { + transform: scale(1) rotate(-0.2deg); + opacity: 1; + box-shadow: 0 0 0 rgba(241, 241, 241, 0.5); + } + 75% { + transform: scale(1) rotate(0.2deg); + opacity: 1; + box-shadow: 0 0 250px rgba(241, 241, 241, 0.5); + } + 100% { + transform: scale(1) rotate(0); + opacity: 1; + box-shadow: 0 0 500px rgba(241, 241, 241, 0); + } +} + +.prompt { + box-shadow: 0 0 10px 1px var(--prompt-box-shadow); + border: none; +} + + +@keyframes slideUpLarge { + 0% { + transform: translateY(-100%); + } + 100% { + transform: translateY(0%); + } +} + +@keyframes quickScaleDown { + 0% { + transform: scale(0); + } + 20% { + transform: scale(0.2); + } + + 40% { + transform: scale(0.4); + } + 60% { + transform: scale(0.6); + } + 80% { + transform: scale(0.8); + } + 100% { + transform: scale(1); + } +} + +@keyframes blowUpModal { + 0% { + transform: scale(0); + opacity: 0; + } + 100% { + transform: scale(1); + opacity: 1; + } +} + + +@keyframes roadRunnerIn { + 0% { + transform: translateX(-1500px) skewX(30deg) scaleX(1.3); + } + 70% { + transform: translateX(30px) skewX(0deg) scaleX(0.9); + } + 100% { + transform: translateX(0px) skewX(0deg) scaleX(1); + } +} + +@keyframes roadRunnerOut { + 0% { + transform: translateX(400px) skewX(30deg) scaleX(1.3); + } + 50% { + transform: translateX(-30px) skewX(0deg) scaleX(0.9); + } + 100% { + transform: translateX(0px) skewX(0deg) scaleX(1); + } +} + +@keyframes pop-swirl { + 0% { + transform: scale(0) rotate(360deg); + } + 60% { + transform: scale(0.8) rotate(-10deg); + } + 100% { + transform: scale(1) rotate(0deg); + } +} + +@keyframes unfoldIn { + 0% { + transform: scaleY(0.005) scaleX(0); + } + 50% { + transform: scaleY(0.005) scaleX(1); + } + 100% { + transform: scaleY(1) scaleX(1); + } +} + +[class="prompt"] { + animation: var(--prompt-options) .5s ease-in; +} + +body.hide-left-ribbon .workspace-ribbon.mod-left:not(:hover):before, +body.hide-left-ribbon .workspace-ribbon.side-dock-ribbon.mod-left:not(:hover), +body.hide-left-ribbon .workspace-ribbon.side-dock-ribbon.mod-left:not(:hover) .sidebar-toggle-button.mod-left { + margin-left: -40px; +} + +body.hide-left-ribbon .workspace-ribbon.side-dock-ribbon.mod-left .sidebar-toggle-button.mod-left, +body.hide-left-ribbon .workspace-ribbon.mod-left:before, +body.hide-left-ribbon .workspace-ribbon.side-dock-ribbon.mod-left { + transition: all 350ms ease-in-out; +} + +body.hide-left-ribbon-retention-drawer.hide-titlebar-close-btn.is-hidden-frameless .titlebar-button.mod-logo { + display: none; +} + +body.hide-left-ribbon-retention-drawer.hide-titlebar-close-btn.is-hidden-frameless .workspace-ribbon.mod-left .sidebar-toggle-button { + padding-top: var(--size-4-2); +} +body.hide-left-ribbon-retention-drawer .workspace-ribbon.mod-left:not(:hover) ~ .workspace-split .workspace-tabs.mod-top.mod-top-left-space .workspace-tab-header-container { + margin-left: 30px; + transition: all 350ms ease-in-out; +} +body.hide-left-ribbon-retention-drawer .workspace-ribbon.mod-left:not(:hover):before, +body.hide-left-ribbon-retention-drawer .workspace-ribbon.side-dock-ribbon.mod-left:not(:hover) { + margin-left: -40px; +} + +body.hide-left-ribbon-retention-drawer .workspace-ribbon.side-dock-ribbon.mod-left .sidebar-toggle-button.mod-left, +body.hide-left-ribbon-retention-drawer .workspace-ribbon.mod-left:before, +body.hide-left-ribbon-retention-drawer .workspace-ribbon.side-dock-ribbon.mod-left, +body.hide-left-ribbon-retention-drawer .workspace-ribbon.mod-left:hover ~ .workspace-split .workspace-tabs.mod-top .workspace-tab-header-container { + transition: all 350ms ease-in-out; +} +body.hide-titlebar-close-btn.hide-left-ribbon-retention-drawer .workspace-ribbon.side-dock-ribbon.mod-left .sidebar-toggle-button.mod-left { + background: unset; +} + + +body.hide-left-ribbon-retention-drawer:not(.background-settings-workplace-background-image) .workspace-tabs.mod-top { + background: var(--background-secondary-alt); +} +body.stack-tab-text-ori-mixed .workspace-tab-header-inner-title { + text-orientation: mixed; +} + +body:is(.bt-bubble-ribbon-hide-left,.bt-bubble-ribbon) .side-dock-actions { + border-radius: 0 var(--radius-l) var(--radius-l) 0; +} +body:is(.bt-bubble-ribbon-hide-left,.bt-bubble-ribbon) .side-dock-actions, +body:is(.bt-bubble-ribbon-hide-left,.bt-bubble-ribbon) .side-dock-settings { + border: 1px solid var(--tab-outline-color); + padding: 5px 0; + background-color: var(--background-primary); +} +body:is(.bt-bubble-ribbon-hide-left,.bt-bubble-ribbon) .side-dock-settings { + border-radius: 0 var(--radius-l) 0 0; + margin-bottom: 0; +} +body:is(.bt-bubble-ribbon-hide-left,.bt-bubble-ribbon) .workspace-ribbon { + padding: 0 3px 0 0; + border-right: none; +} + +body.bt-bubble-ribbon-hide-left .workspace-ribbon.mod-left:not(:hover):before, +body.bt-bubble-ribbon-hide-left .workspace-ribbon.side-dock-ribbon.mod-left:not(:hover), +body.bt-bubble-ribbon-hide-left .workspace-ribbon.side-dock-ribbon.mod-left:not(:hover) .sidebar-toggle-button.mod-left { + margin-left: -40px; +} + +body.bt-bubble-ribbon-hide-left .workspace-ribbon.side-dock-ribbon.mod-left .sidebar-toggle-button.mod-left, +body.bt-bubble-ribbon-hide-left .workspace-ribbon.mod-left:before, +body.bt-bubble-ribbon-hide-left .workspace-ribbon.side-dock-ribbon.mod-left { + transition: all 350ms ease-in-out; +} + + +body.tab-title-bar-position .workspace-tabs:not(.mod-stacked) .view-header { + left: 16px; + border: none; + transform-origin: right center; + writing-mode: vertical-rl; + position: absolute; + padding: 0; + background: transparent; +} + +body.tab-title-bar-position .workspace-tabs:not(.mod-stacked) .view-header-nav-buttons { + margin-left: -12px; +} + +body.tab-title-bar-position .workspace-tabs:not(.mod-stacked) .view-header .view-actions { + margin-left: -13px; +} +body.tab-title-bar-position .workspace-tabs:not(.mod-stacked) .view-header-title-container { + position: absolute; + top: 25vh; + left: -8px; + transform-origin: right center; + writing-mode: vertical-rl; + text-orientation: mixed; +} + +body.view-button-front.tab-title-bar-position .workspace-leaf-content .view-header .view-header-nav-buttons{ + margin-left: -12px; + margin-top: 25px; +} + +body.view-button-front.tab-title-bar-position .workspace-leaf-content:is([data-mode="preview"], +[data-mode="source"]) .view-header .view-actions>:is([aria-label^="该面板处于编辑视图中"], +[aria-label^="Current view: editing"]) { + left: -10px; +} +body.view-button-front.tab-title-bar-position .workspace-leaf-content[data-mode='preview'] .view-header .view-actions>:is([aria-label^="该面板处于阅读视图中"],[aria-label^="Current view: reading"]) { + left: -10px; +} + +body.tab-title-bar-position .markdown-preview-view { + padding-left: unset; +} + +body.tab-title-bar-position .workspace-split.mod-root .workspace-leaf-content[data-type='markdown'] .view-content { + padding-left: 2.5rem; +} + +body.tab-title-bar-position .workspace-tabs:not(.mod-stacked) .view-header-title-container.web-browser-header-bar { + top: unset; +} + +body.mod-windows.hide-titlebar-close-btn.is-hidden-frameless .titlebar-button.mod-logo { + display: block; + margin-left: 5px; + margin-top: 6px; +} + +body.hide-titlebar-close-btn.hide-left-ribbon-retention-drawer .view-header { + padding-left: 24px; +} +body.hide-titlebar-close-btn.hide-left-ribbon-retention-drawer.view-button-front .workspace-leaf-content:is([data-mode="preview"],[data-mode="source"]) .view-header .view-actions>:is([aria-label^="该面板处于编辑视图中"],[aria-label^="Current view: editing"]) { + left:30px +} +body.hide-titlebar-close-btn.hide-left-ribbon-retention-drawer.view-button-front .workspace-leaf-content[data-mode='preview'] .view-header .view-actions>:is([aria-label^="该面板处于阅读视图中"],[aria-label^="Current view: reading"]) { + left: 30px; +} + +body.view-button-front .view-header { + padding-left: 32px !important; +} +body.hide-titlebar-close-btn.hide-left-ribbon.is-hidden-frameless .titlebar-button.mod-logo { + display: none; +} + +body.mod-windows.hide-titlebar-close-btn.is-hidden-frameless .workspace-ribbon.side-dock-ribbon.mod-left { + padding-top: 26px; +} + +body.mod-windows.hide-titlebar-close-btn.is-hidden-frameless .workspace-ribbon.mod-left .sidebar-toggle-button { + padding-top: 56px; +} +body.mod-windows.hide-titlebar-close-btn.is-hidden-frameless .workspace-ribbon.mod-left.is-collapsed .sidebar-toggle-button { + padding-top: 54px; +} +body.mod-windows.hide-titlebar-close-btn.is-hidden-frameless .workspace-ribbon.mod-left .side-dock-actions { + padding-top: 12px; +} +body.hide-titlebar-close-btn.is-hidden-frameless .titlebar-button-container.mod-right:not(:hover) { + transform: translateY(calc( -1 * var(--header-height) + 6px)); + transition: all 0.6s linear; +} + +body.hide-titlebar-close-btn.is-hidden-frameless:not(.is-fullscreen) .workspace-tabs.mod-top-right-space .workspace-tab-header-container:after { + top: -20px; +} + +body.hide-titlebar-close-btn.is-hidden-frameless:not(.is-fullscreen) .workspace-tabs.mod-top-right-space .workspace-tab-header-container { + padding-right: unset; +} +body.hide-titlebar-close-btn.is-hidden-frameless .titlebar-inner:hover .titlebar-button-container.mod-right { + transition: all 0.1s linear; + transform:translateY(-15px); + background: var(--titlebar-background-focused); + opacity: 0.8; +} +body.hide-titlebar-close-btn.is-hidden-frameless.mod-linux .titlebar-button, +body.hide-titlebar-close-btn.is-hidden-frameless.mod-windows .titlebar-button { + padding-bottom: 6px; + align-items: flex-end; +} + +.theme-light .view-header-title-container:is(.web-browser-header-bar,.wb-header-bar) input:is(.web-browser-search-bar,.wb-search-bar) { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='svg-icon lucide-search'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: 4px 7.5px; + background-size: 14px; + opacity: 0.6; + padding: 0 0 0 22px; + border: none; +} +.theme-dark .view-header-title-container:is(.web-browser-header-bar,.wb-header-bar) input:is(.web-browser-search-bar,.wb-search-bar) { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='svg-icon lucide-search'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: 4px 7.5px; + background-size: 14px; + opacity: 0.6; + padding: 0 0 0 22px; + border: none; + background-color: transparent; +} +.view-header-title-container:is(.web-browser-header-bar,.wb-header-bar) input:is(.web-browser-search-bar,.wb-search-bar):focus { + opacity: 1; +} +.view-header .view-header-title-container:is(.web-browser-header-bar,.wb-header-bar):hover { + border:none; +} + +.view-header-title-container:is(.web-browser-header-bar,.wb-header-bar) .view-header-title-parent:before { + content: ' '; + margin-left: 10px; + color: var(--text-faint); + width:10px; + height: 6px; + background-color: var(--text-muted); + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='svg-icon lucide-search'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E"); +} +/* ====web-browser==== */ +.wb-bookmark-bar { + overflow: unset; + border:none; + right: 7px; +} +.wb-page-search-bar-text { + font-family: var(--font-family-vault); +} +.workspace-leaf-content:is([data-type$="web-browser-view"],[data-type="surfing-view"]) .view-actions .view-action { + opacity: 1 !important; +} +.workspace-leaf-content[data-type$="web-browser-view"] .view-actions>a:not([class*="-web-browser"]) { + display: none; +} +.workspace-leaf-content:not([data-type$="web-browser-view"]) .view-actions>a[class*="-web-browser"]{ + display: none; +} +.workspace-leaf-content[data-type="surfing-view"] .view-actions>a:not(:is([class*="surfing"],[aria-label^="Surfing"],[aria-label="星标"],[aria-label="设置"],[aria-label="star"],[aria-label="settings"])) { + display: none; +} +.wb-bookmark-item, .wb-bookmark-folder { + width: auto; +} +.workspace-leaf-content:not([data-type="surfing-view"]) .view-actions>a:is([class*="surfing"],[aria-label^="Surfing"]) { + display: none; +} + +.wb-page-search-bar-input-container input.wb-page-search-bar-input{ + background-color: var(--background-secondary); + box-shadow: var(--window-shadow2); +} +.wb-page-search-bar-input-container input.wb-page-search-bar-input:not(:hover){ + border:none; +} +.view-header-title-container.web-browser-header-bar input { + padding: 0 10px 0 19px; + border: 0; + outline: none; + background: transparent; +} + +.view-header-title-container.web-browser-header-bar:hover { + border: var(--input-border-width) solid; + color: var(--interactive-accent-hover); + border-radius: 6px; +} +/* ==End==web-browser==== */ + +/* ====new style==== */ +body.background-settings-workplace-background-image.workspace > .workspace-leaf { + background-color: transparent; +} +body:not(.color-scheme-options-simplicity-topaz) .workspace > .workspace-split { + background-color: var(--background-secondary-alt); +} +body.background-settings-workplace-background-image:not(.is-mobile) .workspace-tab-container-before.is-before-active, +body.background-settings-workplace-background-image:not(.is-mobile) .workspace-tab-container-after.is-after-active, +body.background-settings-workplace-background-image:not(.is-mobile) .workspace-tab-header.is-before-active, +body.background-settings-workplace-background-image:not(.is-mobile) .workspace-tab-header.is-after-active, +body.background-settings-workplace-background-image:not(.is-mobile) .workspace-split.mod-right-split .workspace-tabs .workspace-leaf, +body.background-settings-workplace-background-image:not(.is-mobile) .workspace-split.mod-left-split .workspace-tabs .workspace-leaf, +body.background-settings-workplace-background-image:not(.is-mobile) .workspace-leaf-resize-handle, +body.background-settings-workplace-background-image .workspace-split.mod-horizontal:is(.mod-left-split,.mod-right-split) .workspace-tab-header.is-active { + background-color: transparent; +} + +body.toggle-header-bottom-line .workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header { + --page-border-bottom: transparent; +} +body.toggle-header-bottom-line.show-view-header .view-header { + --page-border-bottom: transparent; + border-top-left-radius:var(--radius-m); + border-top-right-radius: var(--radius-m); +} + +.workspace-split.mod-root .workspace-tab-header-container-inner .workspace-tab-header:first-child { + margin-left: 1rem; +} + +body.background-settings-workplace-background-image .workspace-split.mod-root .workspace-tab-header.is-active::before, +body.background-settings-workplace-background-image .workspace-split.mod-root .workspace-tab-header.is-active::after { + box-shadow: inset 0 0 0 var(--tab-outline-width) transparent, 0 0 0 calc(var(--tab-curve) * 4) var(--background-secondary); +} + +body.theme-dark:not(.background-settings-workplace-background-image) .workspace-split.mod-horizontal:is(.mod-left-split,.mod-right-split) .workspace-tabs .workspace-leaf-resize-handle { + --divider-color: var(--background-primary); +} +.workspace-tabs:not(.mod-top) .workspace-tab-header-container { + background-color:transparent; +} +/*** emoji toolbar**/ +.callout img.emoji { + display: inline-block!important; +} +/**emoji toolbar*****/ + +body.underline-tab-style .workspace-split:not(.mod-left-split):not(.mod-right-split) .workspace-tab-header-container-inner .workspace-tab-header { + background-color: transparent; + box-shadow: none; +} +body.underline-tab-style .workspace-split:not(.mod-left-split):not(.mod-right-split) .workspace-tab-header-container-inner .workspace-tab-header::before, +body.underline-tab-style .workspace-split:not(.mod-left-split):not(.mod-right-split) .workspace-tab-header-container-inner .workspace-tab-header::after { + display: none; +} +body.underline-tab-style .workspace-split:not(.mod-left-split):not(.mod-right-split) .workspace-tab-header-container-inner .workspace-tab-header.is-active { + border-radius: 0; + border-bottom: 2px solid var(--text-accent); + margin-bottom: 0px; + padding-bottom: 0px; +} +body.underline-tab-style .workspace-split:not(.mod-left-split):not(.mod-right-split) .workspace-tab-header-container-inner .workspace-tab-header.is-active .workspace-tab-header-inner { + border-radius: var(--tab-radius) var(--tab-radius) 0px 0px; + margin-top: 0.5px; + padding-bottom: 4px; +} +body.underline-tab-style .workspace-split:not(.mod-left-split):not(.mod-right-split) .workspace-tab-header-container-inner .workspace-tab-header ::after { + display: none; +} +body.underline-tab-style .workspace-split:not(.mod-left-split):not(.mod-right-split) .workspace-tab-header-container-inner .workspace-tab-header:hover .workspace-tab-header-inner { + background-color: var(--background-modifier-hover); +} + +body.safari-tab-style .workspace-tabs:not(.mod-stacked) .workspace-tab-header::before, +body.safari-tab-style .workspace-tabs:not(.mod-stacked) .workspace-tab-header::after, +body.safari-tab-style .workspace .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header-inner::after { + display: none; +} + +body.safari-tab-style .mod-vertical:not(.mod-left-split):not(.mod-right-split) .workspace-tabs:not(.mod-stacked) .workspace-tab-header-container-inner, +body.safari-tab-style .mod-horizontal:not(.mod-left-split):not(.mod-right-split) .workspace-tabs:not(.mod-stacked) .workspace-tab-header-container-inner { + align-items: center; + margin: 0; + width: 100%; +} + +body.safari-tab-style .mod-vertical:not(.mod-left-split):not(.mod-right-split) .workspace-tabs:not(.mod-stacked) .workspace-tab-header, +body.safari-tab-style .mod-horizontal:not(.mod-left-split):not(.mod-right-split) .workspace-tabs:not(.mod-stacked) .workspace-tab-header { + border-radius: 6px; + box-shadow: none; + height: calc(var(--header-height) * 0.7); + margin-left: 12px; + padding: 0 !important; + transition: 400ms, background-color 150ms ease-in-out; +} + +body.safari-tab-style .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header { + transition: 400ms; +} + +body.safari-tab-style .workspace-tabs:not(.mod-stacked) .workspace-tab-header:first-child { + margin-left: 0; +} + +body.safari-tab-style .mod-root:not(.mod-left-split):not(.mod-right-split) .workspace-tabs:not(.mod-stacked) .workspace-tab-header-inner { + padding: 0 4px 0 8px; + transition: 400ms; +} +body.safari-tab-style .mod-root:not(.mod-left-split):not(.mod-right-split) .workspace-tabs:not(.mod-stacked) .workspace-tab-header-inner, +body.safari-tab-style .mod-root:not(.mod-left-split):not(.mod-right-split) .workspace-tabs:not(.mod-stacked) .workspace-tab-header-inner-close-button, +body.safari-tab-style .mod-root:not(.mod-left-split):not(.mod-right-split) .workspace-tabs:not(.mod-stacked) .workspace-tab-header-inner-icon { + color: var(--text-muted); +} + +body.safari-tab-style .workspace .mod-root .workspace-tab-header-inner::after { + display: none; +} + +body.safari-tab-style .mod-root:not(.mod-left-split):not(.mod-right-split) .workspace-tabs:not(.mod-stacked) .workspace-tab-header.is-active { + flex-grow: 1.67; + max-width: 300px; +} + +body.safari-tab-style .mod-root .workspace-tabs:not(.mod-stacked).mod-active .workspace-tab-header.is-active .workspace-tab-header-inner, +body.safari-tab-style .mod-root .workspace-tabs:not(.mod-stacked).mod-active .workspace-tab-header.is-active .workspace-tab-header-inner-title, +body.safari-tab-style .mod-root .workspace-tabs:not(.mod-stacked).mod-active .workspace-tab-header.is-active .workspace-tab-header-inner-close-button, +body.safari-tab-style .mod-root .workspace-tabs:not(.mod-stacked).mod-active .workspace-tab-header.is-active .workspace-tab-header-inner-icon { + color: var(--text-noraml); + font-weight:bold; +} + +body.safari-tab-style .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header.is-active:hover { + background-color: var(--background-modifier-border); +} + +body.safari-tab-style.theme-light .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header { + border: 1px solid var(--tab-outline-color); +} +body.safari-tab-style .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header { + border: 1px solid rgba(var(--mono-rgb-0), .25) ; +} + +body.transparent-tab-style .workspace-split:not(.mod-left-split):not(.mod-right-split) .workspace-tab-header-container-inner .workspace-tab-header { + --tab-background-active: transparent; + --tab-outline-width: transparent; +} +body.transparent-tab-style.color-scheme-options-simplicity-topaz.theme-dark:not(.background-settings-workplace-background-image) .workspace-split.mod-root .workspace-tab-header.is-active.mod-active { + background-color: var(--tab-background-active); +} + +body.transparent-tab-style.theme-dark .workspace-split.mod-root .workspace-tab-header.is-active.mod-active { + background-color: var(--tab-background-active); +} + +.is-mobilebody, +.is-mobile .app-container, +.is-mobile .horizontal-main-container { + background-color: var(--background-secondary); +} + +.is-mobile.theme-light .mobile-toolbar { + background-color: var(--background-primary-alt); +} + +.is-frameless:is(.is-mobile,.is-tablet).mod-windows { + background-color: var(--background-secondary-alt) !important; +} + +.is-frameless:is(.is-mobile,.is-tablet).mod-windows::after { + content: ""; + display: block; + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; + height: calc(var(--titlebar-height) / var(--zoom-factor)); + width: 100%; + background-color: var(--background-mobile-padding-top); + --background-mobile-padding-top: var(--background-secondary-alt); +} + +body.background-settings-workplace-background-image.theme-light.is-frameless:is(.is-mobile,.is-tablet).mod-windows::after { + --background-mobile-padding-top: #f9f9f9; +} +body.background-settings-workplace-background-image.theme-dark.is-frameless:is(.is-mobile,.is-tablet).mod-windows::after { + --background-mobile-padding-top: #000000; +} + +.workspace-tab-header.mod-active .workspace-tab-header-inner-title { + font-weight: bold; +} + +.theme-dark .mod-root .workspace-tabs .workspace-leaf { + background-color: transparent; +} + +.workspace-tab-header-inner-icon img { + margin:auto; +} + +.cm-s-obsidian span.cm-hmd-escape-char { + color: var(--text-muted); +} + + +/* ================================== */ +/* ========= Canvas ========= */ +/* ================================== */ +.canvas-node-content.markdown-embed > .markdown-embed-content > .markdown-preview-view { + padding: 0 0.5em; +} + +body.canvas-workplace-background .workspace-leaf-content[data-type="canvas"], +body.canvas-workplace-background .canvas-wrapper { + --background-primary: var(--color-base-00); +} + +/* hide canvas export grid */ +body.toggle-canvas-grid .canvas-wrapper .canvas-background rect, +.canvas-wrapper.is-screenshotting .canvas-background rect { + opacity: 0; +} + + +/*=======canvas-card-focus-mode======== +=====Modified by Cuman from boninall=====*/ +/* +body.canvas-card-focus-mode .canvas:has(.is-focused.mod-canvas-color-1) .canvas-edges>:not(.mod-canvas-color-1), +body.canvas-card-focus-mode .canvas:has(.is-focused.mod-canvas-color-2) .canvas-edges>:not(.mod-canvas-color-2), +body.canvas-card-focus-mode .canvas:has(.is-focused.mod-canvas-color-3) .canvas-edges>:not(.mod-canvas-color-3), +body.canvas-card-focus-mode .canvas:has(.is-focused.mod-canvas-color-4) .canvas-edges>:not(.mod-canvas-color-4), +body.canvas-card-focus-mode .canvas:has(.is-focused.mod-canvas-color-5) .canvas-edges>:not(.mod-canvas-color-5), +body.canvas-card-focus-mode .canvas:has(.is-focused.mod-canvas-color-6) .canvas-edges>:not(.mod-canvas-color-6), +body.canvas-card-focus-mode .canvas:has(.is-focused.mod-canvas-color-custom) .canvas-edges>:not(.mod-canvas-color-custom), +body.canvas-card-focus-mode .canvas:has(.is-focused.mod-canvas-color-1) .canvas-node.is-themed:not(:is(.mod-canvas-color-1)), +body.canvas-card-focus-mode .canvas:has(.is-focused.mod-canvas-color-2) .canvas-node.is-themed:not(:is(.mod-canvas-color-2)), +body.canvas-card-focus-mode .canvas:has(.is-focused.mod-canvas-color-3) .canvas-node.is-themed:not(:is(.mod-canvas-color-3)), +body.canvas-card-focus-mode .canvas:has(.is-focused.mod-canvas-color-4) .canvas-node.is-themed:not(:is(.mod-canvas-color-4)), +body.canvas-card-focus-mode .canvas:has(.is-focused.mod-canvas-color-5) .canvas-node.is-themed:not(:is(.mod-canvas-color-5)), +body.canvas-card-focus-mode .canvas:has(.is-focused.mod-canvas-color-6) .canvas-node.is-themed:not(:is(.mod-canvas-color-6)), +body.canvas-card-focus-mode .canvas:has(.is-focused.mod-canvas-color-custom) .canvas-node.is-themed:not(.mod-canvas-color-custom) { + filter:grayscale(0.9); +} +*/ + +.canvas-node-content.markdown-embed table { + text-align: start; +} + +/* ================================== */ +.show-full-metadata :is(.metadata-container,.frontmatter-container):not(.is-collapsed) .frontmatter-section { + display: flex!important; +} + +body:not(.show-full-metadata) .markdown-preview-view .metadata-property:not(:has(:is(.multi-select-pill,.metadata-input-longtext:not(:empty)))) { + display: none; +} + +body:not(.show-full-metadata) .markdown-preview-view .metadata-property:has(.metadata-property-key-input[aria-label=""]) { + display: flex!important; +} + +.workspace-split.mod-horizontal:is(.mod-left-split,.mod-right-split) .workspace-tab-container .workspace-leaf-content:not([data-type="file-properties"]) +:is(.metadata-container,.frontmatter-container) { + display: none; +} + +.workspace-leaf-content[data-type="recent-files"] .view-content { + overflow-x: hidden; +} + +.canvas-node-container h1 { + font-size: calc(var(--h1-size) + 1em); + text-align: center; +} + +.canvas-node-placeholder::after { + background-color: rgba(var(--canvas-color), 0.3); +} +.canvas-icon-placeholder svg { + opacity: 0.5; +} +body.canvas-card-text-middle .canvas-node-container .canvas-node-content.markdown-embed:not(.is-loaded) { + text-align: center; +} + +div#popup-search { + background-color: var(--color-base-10); +} + +body:not(.is-phone) .workspace-leaf.mod-active .tree-item-self.has-focus { + --background-modifier-border-focus: color-mix(in srgb, var(--theme-color), transparent 30%); +} + +.tree-item-self { + align-items: center; +} + +body.bt-bubble-layout { + --divider-color: transparent; + --divider-color-hover: var(--backgrouund-modifier-border); +} + +body:not(.bt-bubble-layout) .setting-item[data-id="bt-bubble-settings"], +body:not(.bt-bubble-layout) .setting-item[data-id="bt-bubble-not-file-tree"], +body:not(.bt-bubble-layout) .setting-item[data-id="bt-bubble-layout-hide-borders"], +body:not(.bt-bubble-layout) .setting-item[data-id="bt-bubble-buttons"], +body:not(.bt-bubble-layout) .setting-item[data-id="bt-bubble-layout-padding"], +body:not(.bt-bubble-layout) .setting-item[data-id="bt-bubble-radius"] { + display: none; +} + +body.bt-bubble-layout .mod-vertical .workspace-tabs, +body.bt-bubble-layout .mod-left-split .workspace-tab-container, +body.bt-bubble-layout .mod-right-split .workspace-tab-container { + padding: 0 var(--bt-bubble-layout-padding); +} + +body.bt-bubble-layout .mod-left-split .workspace-tab-header.has-active-menu, +body.bt-bubble-layout .mod-right-split .workspace-tab-header.has-active-menu, +body.bt-bubble-layout .mod-left-split .workspace-tab-header.is-active, +body.bt-bubble-layout .mod-right-split .workspace-tab-header.is-active { + background-color: var(--background-primary); + border: 1px solid var(--bt-bubble-border-color); +} + +body.bt-bubble-layout.bt-bubble-buttons .mod-left-split .workspace-tab-header-container-inner, +body.bt-bubble-layout.bt-bubble-buttons .mod-right-split .workspace-tab-header-container-inner { + padding: 4px; + margin: 4px 0 4px var(--bt-bubble-layout-padding); + border-radius: var(--radius-m); + background-color: color-mix(in srgb, var(--background-primary) 80%, transparent); +} +body.bt-bubble-layout.bt-bubble-buttons .mod-left-split .workspace-tab-header.has-active-menu, +body.bt-bubble-layout.bt-bubble-buttons .mod-right-split .workspace-tab-header.has-active-menu, +body.bt-bubble-layout.bt-bubble-buttons .mod-left-split .workspace-tab-header.is-active, +body.bt-bubble-layout.bt-bubble-buttons .mod-right-split .workspace-tab-header.is-active { + background-color: color-mix(in srgb, lightgray, var(--background-secondary-alt) 75%); + border: 1px solid transparent; +} +body.bt-bubble-layout.bt-bubble-not-file-tree .workspace-leaf-content:is([data-type="file-explorer"],[data-type="mk-file-view"]), +body.bt-bubble-layout .workspace-split .workspace-leaf-content { + border-radius: var(--bt-bubble-radius, var(--radius-l)); + background-color: var(--background-primary); + border: 1px solid var(--bt-bubble-border-color); + margin-bottom: var(--bt-bubble-layout-padding); +} +body.bt-bubble-layout .workspace-split.mod-right-split .workspace-tabs .workspace-leaf, +body.bt-bubble-layout .workspace-split.mod-left-split .workspace-tabs .workspace-leaf, +body.bt-bubble-layout .mod-root .workspace-tabs .workspace-leaf { + background-color: transparent; +} +body.bt-bubble-layout .workspace-tab-header-container, +body.bt-bubble-layout .workspace-ribbon.mod-left:before { + border-bottom: none; +} +body.bt-bubble-layout:not(.background-settings-workplace-background-image) .workspace-split.mod-horizontal:is(.mod-left-split,.mod-right-split) .workspace-tabs .workspace-leaf-resize-handle { + --divider-color: transparent; +} + +body.bt-bubble-layout.bt-bubble-layout-hide-borders { + --bt-bubble-border-color: transparent; + --tab-outline-color: transparent; +} +body.bt-bubble-layout.bt-bubble-layout-hide-borders .menu { + border: 0 !important; +} + +body.bt-bubble-layout .workspace-split.mod-horizontal > * > .workspace-leaf-resize-handle, +body.bt-bubble-layout .workspace-split.mod-right-split > .workspace-leaf-resize-handle, +body.bt-bubble-layout .workspace-split.mod-vertical > * > .workspace-leaf-resize-handle, +body.bt-bubble-layout .workspace-split.mod-left-split > .workspace-leaf-resize-handle { + border: none; +} + +body.background-settings-workplace-background-image .workspace-tabs.mod-active .view-header, +body.background-settings-workplace-background-image .workspace-split.mod-root .view-content, +body.background-settings-workplace-background-image .workspace-tabs .view-header { + background-color: transparent; +} + +body.background-settings-workplace-background-image .workspace-tab-header-container-inner { + margin: 6px -5px 0; +} + +/*Inspired by the OneNote theme in Siyuan software*/ +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .nav-folder.mod-root>.nav-folder-title { + margin-left: -12px; +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .nav-files-container { + padding: 0 0 0 12px; +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder > .tree-item-children.nav-folder-children { + border-left: none; +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked:not(.default-tabs):not(.remove-arrow) .nav-folder-collapse-indicator::after { + display: none; +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder { + border: 1px solid var(--tab-divider-color); + margin: 5px 4px; + border-radius: 3px; + border-left: 2px solid var(--tab-color); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked:not(.is-grabbing) .tree-item-self.is-clickable.nav-folder-title:hover { + background-color: #cccccc29; +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder.is-collapsed>.tree-item-self.is-clickable.mod-collapsible.nav-folder-title::before { + content: ""; + width: 6px; + height: 20px; + position: absolute; + margin-left: -30px; + border-radius: 3px 0px 0px 3px; + background-color: var(--tab-color); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder>.tree-item-self.is-clickable.mod-collapsible.nav-folder-title::before { + content: ""; + width: 13px; + height: 20px; + position: absolute; + margin-left: -36px; + border-radius: 3px 0px 0px 3px; + background-color: var(--tab-color); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+2)::before, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+2) { + --tab-color: var(--Fold0); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+3)::before, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+3) { + --tab-color: var(--Fold1); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+4)::before, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+4) { + --tab-color: var(--Fold2); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+5)::before, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+5) { + --tab-color: var(--Fold3); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+6)::before, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+6) { + --tab-color: var(--Fold4); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+7)::before, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+7) { + --tab-color: var(--Fold5); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+8)::before, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+8) { + --tab-color: var(--Fold6); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+9)::before, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+9) { + --tab-color: var(--Fold7); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+10)::before, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+10) { + --tab-color: var(--Fold8); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+11)::before, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+11) { + --tab-color: var(--Fold9); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+12)::before, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+12) { + --tab-color: var(--FoldA); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+13)::before, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+13) { + --tab-color: var(--FoldB); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+14)::before, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+14) { + --tab-color: var(--FoldC); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+15)::before, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+15) { + --tab-color: var(--FoldD); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+16)::before, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+16) { + --tab-color: var(--FoldE); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+17)::before, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+17) { + --tab-color: var(--FoldF); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+18)::before, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+18) { + --tab-color: var(--FoldG); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+19)::before, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+19) { + --tab-color: var(--FoldH); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n)::before, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n) { + --tab-color: var(--FoldI); +} + +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+1)::before, +body.bt-toggle-colorful-folder.folder-style-change-options-colorful-tab-liked .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder:nth-child(20n+1) { + --tab-color: var(--FoldJ); +} + +body.remove-first-folder-icon .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder>.tree-item-self.is-clickable.mod-collapsible.nav-folder-title .nav-folder-title-content::before, +body.remove-first-folder-icon .tree-item.nav-folder.mod-root>.tree-item-children.nav-folder-children > .tree-item.nav-folder>.tree-item-self.is-clickable.mod-collapsible.nav-folder-title +.nav-folder-collapse-indicator::before{ + display: none; +} + +.obsidian-icon-folder-icon { + margin: 0 0 0 -18px !important +} + +body.background-settings-workplace-background-image .workspace-split:not(.mod-root) .workspace-tab-container { + background-color: var(--bt-background-split-container); +} + +body.nowrap-edit-codebox .HyperMD-codeblock { + white-space: nowrap; +} \ No newline at end of file diff --git a/.obsidian/themes/Minimal/manifest.json b/.obsidian/themes/Minimal/manifest.json new file mode 100644 index 0000000..100f478 --- /dev/null +++ b/.obsidian/themes/Minimal/manifest.json @@ -0,0 +1,8 @@ +{ + "name": "Minimal", + "version": "7.5.2", + "minAppVersion": "1.5.4", + "author": "@kepano", + "authorUrl": "https://twitter.com/kepano", + "fundingUrl": "https://www.buymeacoffee.com/kepano" +} diff --git a/.obsidian/themes/Minimal/theme.css b/.obsidian/themes/Minimal/theme.css new file mode 100644 index 0000000..84af282 --- /dev/null +++ b/.obsidian/themes/Minimal/theme.css @@ -0,0 +1,2150 @@ +/* --------------------------------------------------------------------------- + +Minimal Theme by @kepano + +User interface replacement for Obsidian. + +Designed to be used with the Minimal Theme Settings +plugin and the Hider plugin. + +Sponsor my work: +https://www.buymeacoffee.com/kepano + +Readme: +https://github.com/kepano/obsidian-minimal + +----------------------------------------------------------------------------- + +MIT License + +Copyright (c) 2020-2023 Stephan Ango (@kepano) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ +body{--font-editor-theme:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Inter,Ubuntu,sans-serif;--font-editor:var(--font-editor-override),var(--font-text-override),var(--font-editor-theme)}body{--blockquote-style:normal;--blockquote-color:var(--text-muted);--blockquote-border-thickness:1px;--blockquote-border-color:var(--quote-opening-modifier);--embed-block-shadow-hover:none;--font-ui-smaller:11px;--normal-weight:400;--bold-weight:600;--link-weight:inherit;--inline-title-margin-bottom:1rem;--h1-size:1.125em;--h2-size:1.05em;--h3-size:1em;--h4-size:0.90em;--h5-size:0.85em;--h6-size:0.85em;--h1-weight:600;--h2-weight:600;--h3-weight:500;--h4-weight:500;--h5-weight:500;--h6-weight:400;--h1-variant:normal;--h2-variant:normal;--h3-variant:normal;--h4-variant:normal;--h5-variant:small-caps;--h6-variant:small-caps;--h1-style:normal;--h2-style:normal;--h3-style:normal;--h4-style:normal;--h5-style:normal;--h6-style:normal;--line-width:40rem;--line-height:1.5;--line-height-normal:var(--line-height);--max-width:88%;--max-col-width:18em;--icon-muted:0.5;--nested-padding:1.1em;--folding-offset:32px;--list-edit-offset:0.5em;--list-indent:2em;--list-spacing:0.075em;--input-height:32px;--header-height:40px;--metadata-label-width:9rem;--metadata-label-font-size:var(--font-adaptive-small);--metadata-input-font-size:var(--font-adaptive-small);--mobile-left-sidebar-width:280pt;--mobile-right-sidebar-width:240pt;--top-left-padding-y:0px;--image-muted:0.7;--image-radius:4px;--heading-spacing:2em;--p-spacing:1.75rem;--border-width:1px;--table-border-width:var(--border-width);--table-selection:var(--text-selection);--table-selection-border-color:var(--text-accent);--table-selection-border-width:0px;--table-selection-border-radius:0px;--table-drag-handle-background-active:var(--text-selection);--table-drag-handle-color-active:var(--text-accent);--table-add-button-border-width:0px;--file-margins:var(--size-4-2) var(--size-4-12)}.mod-macos{--top-left-padding-y:24px}.is-phone{--metadata-label-font-size:var(--font-adaptive-smaller);--metadata-input-font-size:var(--font-adaptive-smaller)}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2){.is-phone{--border-width:0.75px}}body{--base-h:0;--base-s:0%;--base-l:96%;--accent-h:201;--accent-s:17%;--accent-l:50%}.theme-dark,.theme-light{--color-red-rgb:208,66,85;--color-orange-rgb:213,118,63;--color-yellow-rgb:229,181,103;--color-green-rgb:168,195,115;--color-cyan-rgb:115,187,178;--color-blue-rgb:108,153,187;--color-purple-rgb:158,134,200;--color-pink-rgb:176,82,121;--color-red:#d04255;--color-orange:#d5763f;--color-yellow:#e5b567;--color-green:#a8c373;--color-cyan:#73bbb2;--color-blue:#6c99bb;--color-purple:#9e86c8;--color-pink:#b05279}.theme-light,.theme-light.minimal-default-light,body .excalidraw{--bg1:white;--bg2:hsl( var(--base-h), var(--base-s), var(--base-l) );--bg3:hsla( var(--base-h), var(--base-s), calc(var(--base-l) - 50%), 0.12 );--ui1:hsl( var(--base-h), var(--base-s), calc(var(--base-l) - 6%) );--ui2:hsl( var(--base-h), var(--base-s), calc(var(--base-l) - 12%) );--ui3:hsl( var(--base-h), var(--base-s), calc(var(--base-l) - 20%) );--tx1:hsl( var(--base-h), var(--base-s), calc(var(--base-l) - 90%) );--tx2:hsl( var(--base-h), calc(var(--base-s) - 20%), calc(var(--base-l) - 50%) );--tx3:hsl( var(--base-h), calc(var(--base-s) - 10%), calc(var(--base-l) - 25%) );--tx4:hsl( var(--base-h), calc(var(--base-s) - 10%), calc(var(--base-l) - 60%) );--ax1:hsl( var(--accent-h), var(--accent-s), var(--accent-l) );--ax2:hsl( var(--accent-h), var(--accent-s), calc(var(--accent-l) - 8%) );--ax3:hsl( var(--accent-h), var(--accent-s), calc(var(--accent-l) + 6%) );--hl1:hsla( var(--accent-h), 50%, calc(var(--base-l) - 20%), 30% );--hl2:rgba(255, 225, 0, 0.5);--sp1:white}.excalidraw.theme--dark,.theme-dark,.theme-dark.minimal-default-dark,.theme-light.minimal-light-contrast .titlebar,.theme-light.minimal-light-contrast.minimal-status-off .status-bar{--accent-l:60%;--base-l:15%;--bg1:hsl( var(--base-h), var(--base-s), var(--base-l) );--bg2:hsl( var(--base-h), var(--base-s), calc(var(--base-l) - 2%) );--bg3:hsla( var(--base-h), var(--base-s), calc(var(--base-l) + 40%), 0.12 );--ui1:hsl( var(--base-h), var(--base-s), calc(var(--base-l) + 6%) );--ui2:hsl( var(--base-h), var(--base-s), calc(var(--base-l) + 12%) );--ui3:hsl( var(--base-h), var(--base-s), calc(var(--base-l) + 20%) );--tx1:hsl( var(--base-h), calc(var(--base-s) - 10%), calc(var(--base-l) + 67%) );--tx2:hsl( var(--base-h), calc(var(--base-s) - 20%), calc(var(--base-l) + 45%) );--tx3:hsl( var(--base-h), calc(var(--base-s) - 10%), calc(var(--base-l) + 20%) );--tx4:hsl( var(--base-h), calc(var(--base-s) - 10%), calc(var(--base-l) + 50%) );--ax1:hsl( var(--accent-h), var(--accent-s), var(--accent-l) );--ax2:hsl( var(--accent-h), var(--accent-s), calc(var(--accent-l) + 8%) );--ax3:hsl( var(--accent-h), var(--accent-s), calc(var(--accent-l) - 5%) );--hl1:hsla( var(--accent-h), 50%, 40%, 30% );--hl2:rgba(255, 177, 80, 0.3);--sp1:white}.theme-light.minimal-light-white{--background-primary:white;--background-secondary:white;--background-secondary-alt:white;--ribbon-background:white;--titlebar-background:white;--bg1:white}.theme-dark.minimal-dark-black{--base-d:0%;--titlebar-background:black;--background-primary:black;--background-secondary:black;--background-secondary-alt:black;--ribbon-background:black;--background-modifier-hover:hsl( var(--base-h), var(--base-s), calc(var(--base-d) + 10%));--tx1:hsl( var(--base-h), var(--base-s), calc(var(--base-d) + 75%) );--tx2:hsl( var(--base-h), var(--base-s), calc(var(--base-d) + 50%) );--tx3:hsl( var(--base-h), var(--base-s), calc(var(--base-d) + 25%) );--ui1:hsl( var(--base-h), var(--base-s), calc(var(--base-d) + 12%) );--ui2:hsl( var(--base-h), var(--base-s), calc(var(--base-d) + 20%) );--ui3:hsl( var(--base-h), var(--base-s), calc(var(--base-d) + 30%) )}.theme-light{--mono100:black;--mono0:white}.theme-dark{--mono100:white;--mono0:black}.theme-dark,.theme-light,.theme-light.minimal-light-contrast .titlebar,.theme-light.minimal-light-contrast.is-mobile .workspace-drawer.mod-left,.theme-light.minimal-light-contrast.minimal-status-off .status-bar{--background-modifier-accent:var(--ax3);--background-modifier-border-focus:var(--ui3);--background-modifier-border-hover:var(--ui2);--background-modifier-border:var(--ui1);--background-modifier-form-field-highlighted:var(--bg1);--background-modifier-form-field:var(--bg1);--background-modifier-success:var(--color-green);--background-modifier-hover:var(--bg3);--background-modifier-active-hover:var(--bg3);--background-primary:var(--bg1);--background-primary-alt:var(--bg2);--background-secondary:var(--bg2);--background-secondary-alt:var(--bg1);--background-table-rows:var(--bg2);--checkbox-color:var(--ax3);--code-normal:var(--tx1);--divider-color:var(--ui1);--frame-divider-color:var(--ui1);--icon-color-active:var(--tx1);--icon-color-focused:var(--tx1);--icon-color-hover:var(--tx2);--icon-color:var(--tx2);--icon-hex:var(--mono0);--interactive-accent-hover:var(--ax1);--interactive-accent:var(--ax3);--interactive-hover:var(--ui1);--list-marker-color:var(--tx3);--modal-border-color:var(--ui2);--nav-item-background-active:var(--bg3);--nav-item-background-hover:var(--bg3);--nav-item-color:var(--tx2);--nav-item-color-active:var(--tx1);--nav-item-color-hover:var(--tx1);--nav-collapse-icon-color:var(--tx2);--nav-collapse-icon-color-collapsed:var(--tx2);--nav-indentation-guide-color:var(--ui1);--prompt-border-color:var(--ui3);--quote-opening-modifier:var(--ui2);--ribbon-background:var(--bg2);--scrollbar-active-thumb-bg:var(--ui3);--scrollbar-bg:transparent;--scrollbar-thumb-bg:var(--ui1);--search-result-background:var(--bg1);--tab-text-color-focused-active:var(--tx1);--tab-outline-color:var(--ui1);--text-accent-hover:var(--ax2);--text-accent:var(--ax1);--text-blockquote:var(--tx2);--text-bold:var(--tx1);--text-code:var(--tx4);--text-error:var(--color-red);--text-faint:var(--tx3);--text-highlight-bg:var(--hl2);--text-italic:var(--tx1);--text-muted:var(--tx2);--text-normal:var(--tx1);--text-on-accent:var(--sp1);--text-selection:var(--hl1);--text-formatting:var(--tx3);--title-color-inactive:var(--tx2);--title-color:var(--tx1);--titlebar-background:var(--bg2);--titlebar-background-focused:var(--bg2);--titlebar-text-color-focused:var(--tx1);--workspace-background-translucent:hsla(var(--base-h),var(--base-s), var(--base-l), 0.7)}.theme-dark .view-actions,.theme-light .view-actions{--icon-color-active:var(--ax1)}.theme-light.minimal-light-contrast{--workspace-background-translucent:rgba(0,0,0,0.6)}.theme-light.minimal-light-contrast .theme-dark{--tab-container-background:var(--bg2);--ribbon-background-collapsed:var(--bg2)}.theme-light{--interactive-normal:var(--bg1);--interactive-accent-rgb:220,220,220;--active-line-bg:rgba(0,0,0,0.035);--background-modifier-cover:hsla(var(--base-h),calc(var(--base-s) - 70%),calc(var(--base-l) - 20%),0.5);--text-highlight-bg-active:rgba(0, 0, 0, 0.1);--background-modifier-error:rgba(255,0,0,0.14);--background-modifier-error-hover:rgba(255,0,0,0.08);--shadow-color:rgba(0, 0, 0, 0.1);--btn-shadow-color:rgba(0, 0, 0, 0.05)}.theme-dark{--interactive-normal:var(--bg3);--interactive-accent-rgb:66,66,66;--active-line-bg:rgba(255,255,255,0.04);--background-modifier-cover:hsla(var(--base-h),var(--base-s), calc(var(--base-l) - 12%), 0.5);--text-highlight-bg-active:rgba(255, 255, 255, 0.1);--background-modifier-error:rgba(255,20,20,0.12);--background-modifier-error-hover:rgba(255,20,20,0.18);--background-modifier-box-shadow:rgba(0, 0, 0, 0.3);--shadow-color:rgba(0, 0, 0, 0.3);--btn-shadow-color:rgba(0, 0, 0, 0.2)}.theme-light.minimal-light-white{--background-table-rows:var(--bg2)}.theme-light.minimal-light-tonal{--background-primary:var(--bg2);--background-primary-alt:var(--bg3);--background-table-rows:var(--bg3)}.theme-dark.minimal-dark-tonal{--ribbon-background:var(--bg1);--background-secondary:var(--bg1);--background-table-rows:var(--bg3)}.theme-dark.minimal-dark-black{--background-primary-alt:var(--bg3);--background-table-rows:var(--bg3);--modal-border:var(--ui2);--active-line-bg:rgba(255,255,255,0.085);--background-modifier-form-field:var(--bg3);--background-modifier-cover:hsla(var(--base-h),var(--base-s),calc(var(--base-d) + 8%),0.9);--background-modifier-box-shadow:rgba(0, 0, 0, 1)}body{--font-adaptive-normal:var(--font-text-size,var(--editor-font-size));--font-adaptive-small:calc(var(--font-ui-small) * 1.07);--font-adaptive-smaller:var(--font-ui-small);--font-adaptive-smallest:var(--font-ui-smaller);--line-width-wide:calc(var(--line-width) + 12.5%);--font-code:calc(var(--font-adaptive-normal) * 0.9);--table-text-size:calc(var(--font-adaptive-normal) * 0.875)}.minimal-dev-block-width .mod-root .workspace-leaf-content:after{display:flex;align-items:flex-end;content:" pane ";font-size:12px;color:gray;font-family:var(--font-monospace);width:100%;max-width:100%;height:100vh;top:0;z-index:999;position:fixed;pointer-events:none}.minimal-dev-block-width.minimal-readable .mod-root .view-header:after{display:flex;align-items:flex-end;color:green;font-size:12px;font-family:var(--font-monospace);content:" ";width:var(--folding-offset);height:100vh;border-left:1px solid green;border-right:1px solid green;background-color:rgba(0,128,0,.1);top:0;left:max(50% - var(--line-width)/2 - 1px,50% - var(--max-width)/2 - 1px);z-index:999;position:fixed;pointer-events:none}.minimal-dev-block-width.minimal-readable-off .mod-root .view-header:after{display:flex;align-items:flex-end;color:green;font-size:12px;font-family:var(--font-monospace);content:" ";width:var(--folding-offset);height:100vh;border-left:1px solid green;border-right:1px solid green;background-color:rgba(0,128,0,.1);top:0;left:calc(50% - var(--max-width)/ 2 - 1px);z-index:999;position:fixed;pointer-events:none}.minimal-dev-block-width .mod-root .view-content:before{display:flex;align-items:flex-end;content:" max ";font-size:12px;color:red;width:var(--max-width);height:100vh;border-left:1px solid red;border-right:1px solid red;top:0;left:50%;transform:translate(-50%,0);z-index:999;position:fixed;pointer-events:none}.minimal-dev-block-width.minimal-readable .mod-root .workspace-leaf-content:before{display:flex;align-items:flex-end;content:" wide ";font-size:12px;color:orange;font-family:var(--font-monospace);width:var(--line-width-wide);max-width:var(--max-width);height:100vh;border-left:1px solid orange;border-right:1px solid orange;background-color:rgba(255,165,0,.05);top:0;left:50%;transform:translate(-50%,0);z-index:999;position:fixed;pointer-events:none}.minimal-dev-block-width.minimal-readable .mod-root .view-content:after{display:flex;align-items:flex-end;color:#00f;font-size:12px;font-family:var(--font-monospace);content:" normal";width:var(--line-width);max-width:var(--max-width);height:100vh;border-left:1px solid #00f;border-right:1px solid #00f;background-color:rgba(0,0,255,.08);top:0;left:50%;transform:translate(-50%,0);z-index:999;position:fixed;pointer-events:none}.CodeMirror-wrap>div>textarea{opacity:0}.markdown-source-view.mod-cm6 hr{border-width:2px}.cm-editor .cm-content{padding-top:.5em}.markdown-source-view{color:var(--text-normal)}.markdown-source-view.mod-cm6 .cm-sizer{display:block}.markdown-source-view.mod-cm6 .cm-scroller{padding-left:0;padding-right:0}.cm-s-obsidian .cm-line.HyperMD-header{padding-top:calc(var(--p-spacing)/2)}.markdown-rendered .mod-header+div>*{margin-block-start:0}body :not(.canvas-node) .markdown-source-view.mod-cm6 .cm-gutters{position:absolute!important;z-index:0;margin-inline-end:0}body :not(.canvas-node) .markdown-source-view.mod-cm6.is-rtl .cm-gutters{right:0}body{--line-number-color:var(--text-faint);--line-number-color-active:var(--text-muted)}.markdown-source-view.mod-cm6 .cm-gutters{color:var(--line-number-color)!important}.markdown-source-view.mod-cm6 .cm-editor .cm-gutterElement.cm-active .cm-heading-marker,.markdown-source-view.mod-cm6 .cm-editor .cm-lineNumbers .cm-gutterElement.cm-active{color:var(--line-number-color-active)}.cm-editor .cm-lineNumbers{background-color:var(--gutter-background)}.cm-editor .cm-lineNumbers .cm-gutterElement{min-width:var(--folding-offset);padding-inline-end:.5em}.is-rtl .cm-editor .cm-lineNumbers .cm-gutterElement{text-align:left}@media(max-width:400pt){.cm-editor .cm-lineNumbers .cm-gutterElement{padding-inline-end:4px;padding-inline-start:8px}}.cm-editor .cm-gutterElement.cm-active .cm-heading-marker,.cm-editor .cm-lineNumbers .cm-gutterElement.cm-active{color:var(--text-muted)}.markdown-source-view.mod-cm6 .edit-block-button{cursor:var(--cursor);color:var(--text-faint);background-color:var(--background-primary);top:0;opacity:0;transition:opacity .2s;padding:4px 4px 4px 9px}.markdown-source-view.mod-cm6 .edit-block-button svg{margin:0!important}.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.edit-block-button{width:30px!important;padding-left:7px!important}.is-live-preview:not(.is-readable-line-width) .cm-embed-block>.edit-block-button{padding-left:0!important;margin-left:0!important;padding:4px}.markdown-source-view.mod-cm6 .edit-block-button:hover{background-color:var(--background-primary);color:var(--text-muted)}.markdown-source-view.mod-cm6 .edit-block-button svg{opacity:1}.markdown-source-view.mod-cm6 .edit-block-button:hover svg{opacity:1}.markdown-source-view.mod-cm6 .cm-embed-block{padding:0;border:0;border-radius:0}.markdown-source-view.mod-cm6 .cm-embed-block:hover{border:0}.metadata-container{--input-height:2rem}.markdown-source-view .metadata-container{transform:translateX(-4px)}body.metadata-heading-off .metadata-properties-heading{display:none}.metadata-add-property-off .mod-root .metadata-add-button{display:none}.metadata-dividers{--metadata-divider-width:1px;--metadata-gap:0px}.metadata-icons-off .workspace-leaf-content[data-type=all-properties] .tree-item-inner{margin-left:-16px}.metadata-icons-off .workspace-leaf-content[data-type=all-properties] .tree-item-icon{display:none}.metadata-icons-off .metadata-property-icon{display:none}figure{margin-inline-start:0;margin-inline-end:0}.markdown-preview-view .mod-highlighted{transition:background-color .3s ease;background-color:var(--text-selection);color:inherit}.inline-title{padding-top:16px}.minimal-status-off .status-bar{--status-bar-position:static;--status-bar-radius:0;--status-bar-border-width:1px 0 0 0;--status-bar-background:var(--background-secondary);--status-bar-border-color:var(--ui1)}body:not(.minimal-status-off) .status-bar{background-color:var(--background-primary);--status-bar-border-width:0}.status-bar{transition:color .2s linear;color:var(--text-faint);font-size:var(--font-adaptive-smallest)}.status-bar .sync-status-icon.mod-success,.status-bar .sync-status-icon.mod-working{color:var(--text-faint)}.status-bar:hover,.status-bar:hover .sync-status-icon.mod-success,.status-bar:hover .sync-status-icon.mod-working{color:var(--text-muted);transition:color .2s linear}.status-bar .plugin-sync:hover .sync-status-icon.mod-success,.status-bar .plugin-sync:hover .sync-status-icon.mod-working{color:var(--text-normal)}.status-bar .status-bar-item{cursor:var(--cursor)!important}.status-bar .status-bar-item.cMenu-statusbar-button:hover,.status-bar .status-bar-item.mod-clickable:hover,.status-bar .status-bar-item.plugin-editor-status:hover,.status-bar .status-bar-item.plugin-sync:hover{text-align:center;background-color:var(--background-modifier-hover)!important}.tab-stack-top-flipped{--tab-stacked-text-transform:rotate(180deg);--tab-stacked-text-align:right}.tab-stack-center{--tab-stacked-text-align:center}.tab-stack-center-flipped{--tab-stacked-text-transform:rotate(180deg);--tab-stacked-text-align:center}.tab-stack-bottom{--tab-stacked-text-transform:rotate(180deg)}.tab-stack-bottom-flipped{--tab-stacked-text-align:right}.view-header-title,.view-header-title-parent{text-overflow:ellipsis}.view-header-title-container:not(.mod-at-end):after{display:none}body:not(.is-mobile) .view-actions .view-action:last-child{margin-left:-1px}.minimal-focus-mode .workspace-ribbon:not(.is-collapsed)~.mod-root .view-header:hover .view-actions,.mod-right.is-collapsed~.mod-root .view-header:hover .view-actions,.view-action.is-active:hover,.workspace-ribbon.mod-left.is-collapsed~.mod-root .view-header:hover .view-actions,body:not(.minimal-focus-mode) .workspace-ribbon:not(.is-collapsed)~.mod-root .view-actions{opacity:1;transition:opacity .25s ease-in-out}.view-header-title-container{opacity:0;transition:opacity .1s ease-in-out}.view-header-title-container:focus-within{opacity:1;transition:opacity .1s ease-in-out}.view-header:hover .view-header-title-container,.workspace-tab-header-container:hover+.workspace-tab-container .view-header-title-container{opacity:1;transition:opacity .1s ease-in-out}.is-phone .view-header-title-container,.minimal-tab-title-visible .view-header-title-container{opacity:1}.minimal-tab-title-hidden .view-header-title-container{opacity:0}.minimal-tab-title-hidden .view-header-title-container:focus-within{opacity:1;transition:opacity .1s ease-in-out}.minimal-tab-title-hidden .view-header:hover .view-header-title-container,.minimal-tab-title-hidden .workspace-tab-header-container:hover+.workspace-tab-container .view-header-title-container{opacity:0}body.window-title-off .titlebar-text{display:none}.titlebar-button-container.mod-right{background-color:rgba(0,0,0,0)!important}.is-hidden-frameless.theme-dark:not(.minimal-dark-black):not(.colorful-frame),.is-hidden-frameless.theme-light:not(.minimal-light-tonal):not(.colorful-frame):not(.minimal-light-white){--titlebar-background:var(--bg1)}.is-hidden-frameless.theme-dark:not(.minimal-dark-black):not(.colorful-frame).is-focused .sidebar-toggle-button.mod-right,.is-hidden-frameless.theme-dark:not(.minimal-dark-black):not(.colorful-frame).is-focused .workspace-ribbon.mod-left.is-collapsed,.is-hidden-frameless.theme-dark:not(.minimal-dark-black):not(.colorful-frame).is-focused .workspace-tabs.mod-top,.is-hidden-frameless.theme-light:not(.minimal-light-tonal):not(.colorful-frame):not(.minimal-light-white).is-focused .sidebar-toggle-button.mod-right,.is-hidden-frameless.theme-light:not(.minimal-light-tonal):not(.colorful-frame):not(.minimal-light-white).is-focused .workspace-ribbon.mod-left.is-collapsed,.is-hidden-frameless.theme-light:not(.minimal-light-tonal):not(.colorful-frame):not(.minimal-light-white).is-focused .workspace-tabs.mod-top{--titlebar-background-focused:var(--bg1)}.is-hidden-frameless.theme-dark:not(.minimal-dark-black):not(.colorful-frame):not(.minimal-dark-tonal):not(.minimal-light-white) .workspace-ribbon.mod-left:not(.is-collapsed),.is-hidden-frameless.theme-light:not(.minimal-light-tonal):not(.colorful-frame):not(.minimal-light-white):not(.minimal-dark-tonal):not(.minimal-light-white) .workspace-ribbon.mod-left:not(.is-collapsed){--titlebar-background:var(--bg2)}.mod-macos.is-hidden-frameless:not(.is-popout-window) .sidebar-toggle-button.mod-right{right:0;padding-right:var(--size-4-2)}body.is-focused{--titlebar-background-focused:var(--background-secondary)}.is-hidden-frameless:not(.colorful-frame) .mod-left-split .mod-top .workspace-tab-header-container{--tab-container-background:var(--background-secondary)}.mod-root .workspace-tab-header-status-icon{color:var(--text-muted)}.modal button:not(.mod-warning),.modal.mod-settings button:not(.mod-cta):not(.mod-warning),.modal.mod-settings button:not(.mod-warning){white-space:nowrap;transition:background-color .2s ease-out,border-color .2s ease-out}button.mod-warning{border:1px solid var(--background-modifier-error);color:var(--text-error);box-shadow:0 1px 1px 0 var(--btn-shadow-color);transition:background-color .2s ease-out}button.mod-warning:hover{border:1px solid var(--background-modifier-error);color:var(--text-error);box-shadow:0 2px 3px 0 var(--btn-shadow-color);transition:background-color .2s ease-out}.document-replace,.document-search{max-width:100%;padding:0}.document-search-container{margin:0 auto;max-width:var(--max-width);width:var(--line-width)}.modal-button-container .mod-checkbox{--checkbox-radius:4px}.modal-container.mod-confirmation .modal{width:480px;min-width:0}body{--progress-outline:var(--background-modifier-border);--progress-complete:var(--text-accent)}.markdown-preview-view progress,.markdown-rendered progress,.markdown-source-view.is-live-preview progress{width:220px}.markdown-preview-view progress[value]::-webkit-progress-bar,.markdown-rendered progress[value]::-webkit-progress-bar,.markdown-source-view.is-live-preview progress[value]::-webkit-progress-bar{box-shadow:inset 0 0 0 var(--border-width) var(--progress-outline)}.markdown-preview-view progress[value^="1"]::-webkit-progress-value,.markdown-preview-view progress[value^="2"]::-webkit-progress-value,.markdown-preview-view progress[value^="3"]::-webkit-progress-value,.markdown-rendered progress[value^="1"]::-webkit-progress-value,.markdown-rendered progress[value^="2"]::-webkit-progress-value,.markdown-rendered progress[value^="3"]::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value^="1"]::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value^="2"]::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value^="3"]::-webkit-progress-value{background-color:var(--color-red)}.markdown-preview-view progress[value^="4"]::-webkit-progress-value,.markdown-preview-view progress[value^="5"]::-webkit-progress-value,.markdown-rendered progress[value^="4"]::-webkit-progress-value,.markdown-rendered progress[value^="5"]::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value^="4"]::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value^="5"]::-webkit-progress-value{background-color:var(--color-orange)}.markdown-preview-view progress[value^="6"]::-webkit-progress-value,.markdown-preview-view progress[value^="7"]::-webkit-progress-value,.markdown-rendered progress[value^="6"]::-webkit-progress-value,.markdown-rendered progress[value^="7"]::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value^="6"]::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value^="7"]::-webkit-progress-value{background-color:var(--color-yellow)}.markdown-preview-view progress[value^="8"]::-webkit-progress-value,.markdown-preview-view progress[value^="9"]::-webkit-progress-value,.markdown-rendered progress[value^="8"]::-webkit-progress-value,.markdown-rendered progress[value^="9"]::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value^="8"]::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value^="9"]::-webkit-progress-value{background-color:var(--color-green)}.markdown-preview-view progress[value="1"]::-webkit-progress-value,.markdown-preview-view progress[value="100"]::-webkit-progress-value,.markdown-rendered progress[value="1"]::-webkit-progress-value,.markdown-rendered progress[value="100"]::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value="1"]::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value="100"]::-webkit-progress-value{background-color:var(--progress-complete)}.markdown-preview-view progress[value="0"]::-webkit-progress-value,.markdown-preview-view progress[value="2"]::-webkit-progress-value,.markdown-preview-view progress[value="3"]::-webkit-progress-value,.markdown-preview-view progress[value="4"]::-webkit-progress-value,.markdown-preview-view progress[value="5"]::-webkit-progress-value,.markdown-preview-view progress[value="6"]::-webkit-progress-value,.markdown-preview-view progress[value="7"]::-webkit-progress-value,.markdown-preview-view progress[value="8"]::-webkit-progress-value,.markdown-preview-view progress[value="9"]::-webkit-progress-value,.markdown-rendered progress[value="0"]::-webkit-progress-value,.markdown-rendered progress[value="2"]::-webkit-progress-value,.markdown-rendered progress[value="3"]::-webkit-progress-value,.markdown-rendered progress[value="4"]::-webkit-progress-value,.markdown-rendered progress[value="5"]::-webkit-progress-value,.markdown-rendered progress[value="6"]::-webkit-progress-value,.markdown-rendered progress[value="7"]::-webkit-progress-value,.markdown-rendered progress[value="8"]::-webkit-progress-value,.markdown-rendered progress[value="9"]::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value="0"]::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value="2"]::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value="3"]::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value="4"]::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value="5"]::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value="6"]::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value="7"]::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value="8"]::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value="9"]::-webkit-progress-value{background-color:var(--color-red)}body:not(.hider-scrollbars).styled-scrollbars ::-webkit-scrollbar,body:not(.native-scrollbars) ::-webkit-scrollbar{width:11px;background-color:rgba(0,0,0,0)}body:not(.hider-scrollbars).styled-scrollbars ::-webkit-scrollbar:horizontal,body:not(.native-scrollbars) ::-webkit-scrollbar:horizontal{height:11px}body:not(.hider-scrollbars).styled-scrollbars ::-webkit-scrollbar-corner,body:not(.native-scrollbars) ::-webkit-scrollbar-corner{background-color:rgba(0,0,0,0)}body:not(.hider-scrollbars).styled-scrollbars ::-webkit-scrollbar-track,body:not(.native-scrollbars) ::-webkit-scrollbar-track{background-color:rgba(0,0,0,0)}body:not(.hider-scrollbars).styled-scrollbars ::-webkit-scrollbar-thumb,body:not(.native-scrollbars) ::-webkit-scrollbar-thumb{background-clip:padding-box;border-radius:20px;border:3px solid transparent;background-color:var(--background-modifier-border);border-width:3px 3px 3px 3px;min-height:45px}body:not(.hider-scrollbars).styled-scrollbars .mod-left-split .workspace-tabs ::-webkit-scrollbar-thumb:hover,body:not(.hider-scrollbars).styled-scrollbars .modal .vertical-tab-header::-webkit-scrollbar-thumb:hover,body:not(.hider-scrollbars).styled-scrollbars ::-webkit-scrollbar-thumb:hover,body:not(.native-scrollbars) .mod-left-split .workspace-tabs ::-webkit-scrollbar-thumb:hover,body:not(.native-scrollbars) .modal .vertical-tab-header::-webkit-scrollbar-thumb:hover,body:not(.native-scrollbars) ::-webkit-scrollbar-thumb:hover{background-color:var(--background-modifier-border-hover)}body:not(.hider-scrollbars).styled-scrollbars .mod-left-split .workspace-tabs ::-webkit-scrollbar-thumb:active,body:not(.hider-scrollbars).styled-scrollbars .modal .vertical-tab-header::-webkit-scrollbar-thumb:active,body:not(.hider-scrollbars).styled-scrollbars ::-webkit-scrollbar-thumb:active,body:not(.native-scrollbars) .mod-left-split .workspace-tabs ::-webkit-scrollbar-thumb:active,body:not(.native-scrollbars) .modal .vertical-tab-header::-webkit-scrollbar-thumb:active,body:not(.native-scrollbars) ::-webkit-scrollbar-thumb:active{background-color:var(--background-modifier-border-focus)}.tooltip{transition:none;animation:none}.tooltip.mod-left,.tooltip.mod-right{animation:none}.tooltip.mod-error{color:var(--text-error)}.markdown-preview-view blockquote{padding:0 0 0 var(--nested-padding);font-size:var(--blockquote-size)}.markdown-source-view.mod-cm6 .HyperMD-quote,.markdown-source-view.mod-cm6.is-live-preview .HyperMD-quote{font-size:var(--blockquote-size)}.is-live-preview .cm-hmd-indent-in-quote{color:var(--text-faint)}.is-live-preview.is-readable-line-width>.cm-callout .callout{max-width:var(--max-width);margin:0 auto}.callouts-outlined .callout .callout-title{background-color:var(--background-primary);margin-top:-24px;z-index:200;width:fit-content;padding:0 .5em;margin-left:-.75em;letter-spacing:.05em;font-variant-caps:all-small-caps}.callouts-outlined .callout{overflow:visible;--callout-border-width:1px;--callout-border-opacity:0.5;--callout-title-size:0.8em;--callout-blend-mode:normal;background-color:rgba(0,0,0,0)}.callouts-outlined .cm-embed-block.cm-callout{padding-top:12px}.callouts-outlined .callout-content .callout{margin-top:18px}body{--checkbox-radius:50%;--checkbox-top:2px;--checkbox-left:0px;--checkbox-margin:0px 6px 0px -2em}.checkbox-square{--checkbox-size:calc(var(--font-text-size) * 0.85);--checkbox-radius:4px;--checkbox-top:1px;--checkbox-left:0px;--checkbox-margin:0px 8px 0px -2em}body.minimal-strike-lists{--checklist-done-decoration:line-through}body:not(.minimal-strike-lists){--checklist-done-decoration:none;--checklist-done-color:var(--text-normal)}.markdown-preview-section>.contains-task-list{padding-bottom:.5em}.mod-cm6 .HyperMD-task-line[data-task] .cm-formatting-list-ol~.task-list-label .task-list-item-checkbox{margin:1px}.markdown-preview-view .task-list-item-checkbox{position:relative;top:var(--checkbox-top);left:var(--checkbox-left)}.markdown-preview-view ul>li.task-list-item{text-indent:0}.minimal-code-scroll{--code-white-space:pre}.minimal-code-scroll .HyperMD-codeblock.HyperMD-codeblock-bg{overflow-y:scroll;white-space:pre}.minimal-code-scroll .cm-hmd-codeblock{white-space:pre!important}@media print{.print{--code-background:#eee!important}}body{--embed-max-height:none;--embed-decoration-style:solid;--embed-decoration-color:var(--background-modifier-border-hover)}.embed-strict{--embed-background:transparent;--embed-border-left:0;--embed-padding:0}.embed-strict .markdown-embed-content{--folding-offset:0px}.embed-strict .internal-embed .markdown-embed,.embed-strict .markdown-preview-view .markdown-embed,.embed-strict.markdown-preview-view .markdown-embed{padding:0}.embed-strict .internal-embed .markdown-embed .markdown-embed-title,.embed-strict .markdown-embed-title{display:none}.embed-strict .internal-embed:not([src*="#^"]) .markdown-embed-link{width:24px;opacity:0}.embed-underline .internal-embed:not(.pdf-embed){text-decoration-line:underline;text-decoration-style:var(--embed-decoration-style);text-decoration-color:var(--embed-decoration-color)}.embed-hide-title .markdown-embed-title{display:none}.contextual-typography .embed-strict .internal-embed .markdown-preview-view .markdown-preview-sizer>div,.embed-strict.contextual-typography .internal-embed .markdown-preview-view .markdown-preview-sizer>div{margin:0;width:100%}.markdown-embed .markdown-preview-view .markdown-preview-sizer{padding-bottom:0!important}.markdown-preview-view.is-readable-line-width .markdown-embed .markdown-preview-sizer,.markdown-preview-view.markdown-embed .markdown-preview-sizer{max-width:100%;width:100%;min-height:0!important;padding-bottom:0!important}.markdown-embed .markdown-preview-section div:last-child p,.markdown-embed .markdown-preview-section div:last-child ul{margin-block-end:2px}.markdown-preview-view .markdown-embed{margin-top:var(--nested-padding);padding:0 calc(var(--nested-padding)/2) 0 var(--nested-padding)}.internal-embed:not([src*="#^"]) .markdown-embed-link{right:0;width:100%}.file-embed-link,.markdown-embed-link{top:0;right:0;text-align:right;justify-content:flex-end}.file-embed-link svg,.markdown-embed-link svg{width:16px;height:16px}.markdown-embed .file-embed-link,.markdown-embed .markdown-embed-link{opacity:.6;transition:opacity .1s linear}.markdown-embed .file-embed-link:hover,.markdown-embed .markdown-embed-link:hover{opacity:1}.markdown-embed .file-embed-link:hover:hover,.markdown-embed .markdown-embed-link:hover:hover{background-color:rgba(0,0,0,0);--icon-color:var(--text-accent)}.file-embed-link:hover,.markdown-embed-link:hover{color:var(--text-muted)}.markdown-embed .markdown-preview-view{padding:0}.internal-embed .markdown-embed{border:0;border-left:1px solid var(--quote-opening-modifier);border-radius:0}a[href*="obsidian://search"]{background-image:url("data:image/svg+xml,")}.theme-dark a[href*="obsidian://search"]{background-image:url("data:image/svg+xml,")}body{--adaptive-list-edit-offset:var(--list-edit-offset)}.is-rtl{--adaptive-list-edit-offset:calc(var(--list-edit-offset)*-1)}.markdown-preview-view ol>li,.markdown-preview-view ul>li,.markdown-source-view ol>li,.markdown-source-view ul>li,.mod-cm6 .HyperMD-list-line.cm-line{padding-top:var(--list-spacing);padding-bottom:var(--list-spacing)}.is-mobile ul>li:not(.task-list-item)::marker{font-size:.8em}.is-mobile .workspace-leaf-content:not([data-type=search]) .workspace-leaf-content[data-type=markdown] .nav-buttons-container{border-bottom:none;padding-top:5px}.is-mobile .mod-root .workspace-leaf-content[data-type=markdown] .search-input-container{width:calc(100% - 160px)}.embedded-backlinks .backlink-pane>.tree-item-self,.embedded-backlinks .backlink-pane>.tree-item-self:hover{text-transform:none;color:var(--text-normal);font-size:var(--font-adaptive-normal);font-weight:500;letter-spacing:unset}body{--pdf-dark-opacity:1}.theme-dark:not(.pdf-shadows-on),.theme-light:not(.pdf-shadows-on){--pdf-shadow:none;--pdf-thumbnail-shadow:none}.theme-dark:not(.pdf-shadows-on) .pdf-viewer .page,.theme-light:not(.pdf-shadows-on) .pdf-viewer .page{border:0}.theme-dark:not(.pdf-shadows-on) .pdf-sidebar-container .thumbnailSelectionRing,.theme-light:not(.pdf-shadows-on) .pdf-sidebar-container .thumbnailSelectionRing{padding:0}.theme-dark:not(.pdf-shadows-on) .pdf-sidebar-container .thumbnail::after,.theme-light:not(.pdf-shadows-on) .pdf-sidebar-container .thumbnail::after{right:var(--size-4-2);bottom:var(--size-4-2)}.theme-dark{--pdf-thumbnail-shadow:0 0 1px 0 rgba(0,0,0,0.6);--pdf-shadow:0 0 1px 0 rgba(0,0,0,0.6)}.theme-dark .pdf-viewer .canvasWrapper{opacity:var(--pdf-dark-opacity)}.theme-dark.pdf-invert-dark .workspace-leaf-content[data-type=pdf] .pdf-viewer .canvasWrapper{filter:invert(1) hue-rotate(180deg);mix-blend-mode:screen}.theme-light.pdf-blend-light .workspace-leaf-content[data-type=pdf] .pdf-viewer .canvasWrapper{mix-blend-mode:multiply}body{--table-header-border-width:0;--table-column-first-border-width:0;--table-column-last-border-width:0;--table-row-last-border-width:0;--table-edge-cell-padding-first:0;--table-edge-cell-padding-last:0;--table-cell-padding:4px 10px;--table-header-size:var(--table-text-size)}.markdown-source-view.mod-cm6 table{border-collapse:collapse}.markdown-rendered th{--table-header-size:var(--table-text-size)}.markdown-preview-view table,.markdown-source-view.mod-cm6 table{border:var(--border-width) solid var(--border-color);border-collapse:collapse}.markdown-preview-view td,.markdown-preview-view th,.markdown-source-view.mod-cm6 td,.markdown-source-view.mod-cm6 th{padding:var(--table-cell-padding)}.markdown-preview-view td:first-child,.markdown-preview-view th:first-child,.markdown-source-view.mod-cm6 td:first-child,.markdown-source-view.mod-cm6 th:first-child{padding-left:var(--table-edge-cell-padding-first)}.markdown-preview-view td:first-child .table-cell-wrapper,.markdown-preview-view th:first-child .table-cell-wrapper,.markdown-source-view.mod-cm6 td:first-child .table-cell-wrapper,.markdown-source-view.mod-cm6 th:first-child .table-cell-wrapper{padding-left:0}.markdown-preview-view td:last-child,.markdown-preview-view th:last-child,.markdown-source-view.mod-cm6 td:last-child,.markdown-source-view.mod-cm6 th:last-child{padding-right:var(--table-edge-cell-padding-last)}.markdown-preview-view td:last-child .table-cell-wrapper,.markdown-preview-view th:last-child .table-cell-wrapper,.markdown-source-view.mod-cm6 td:last-child .table-cell-wrapper,.markdown-source-view.mod-cm6 th:last-child .table-cell-wrapper{padding-right:0}.cm-embed-block.cm-table-widget.markdown-rendered{margin-top:-8px!important;padding:var(--table-drag-padding)}.markdown-source-view.mod-cm6 .cm-table-widget .table-col-drag-handle{top:0}.markdown-source-view.mod-cm6 .cm-table-widget .table-row-drag-handle{left:0}.markdown-preview-view th,.markdown-source-view.mod-cm6 .dataview.table-view-table thead.table-view-thead tr th,.table-view-table>thead>tr>th{padding:var(--table-cell-padding)}.markdown-preview-view th:first-child,.markdown-source-view.mod-cm6 .dataview.table-view-table thead.table-view-thead tr th:first-child,.table-view-table>thead>tr>th:first-child{padding-left:var(--table-edge-cell-padding-first)}.markdown-preview-view th:last-child,.markdown-source-view.mod-cm6 .dataview.table-view-table thead.table-view-thead tr th:last-child,.table-view-table>thead>tr>th:last-child{padding-right:var(--table-edge-cell-padding-last)}.cm-hmd-table-sep-dummy,.cm-s-obsidian .HyperMD-table-row span.cm-hmd-table-sep{color:var(--text-faint);font-weight:400}body.minimal-unstyled-tags{--tag-background:transparent;--tag-background-hover:transparent;--tag-border-width:0px;--tag-padding-x:0;--tag-padding-y:0;--tag-size:inherit;--tag-color-hover:var(--text-accent-hover)}body.minimal-unstyled-tags.is-mobile.theme-dark{--tag-background:transparent}body:not(.minimal-unstyled-tags){--tag-size:0.8em;--tag-padding-y:0.2em;--tag-background:transparent;--tag-background-hover:transparent;--tag-color:var(--text-muted);--tag-border-width:1px;--tag-border-color:var(--background-modifier-border);--tag-border-color-hover:var(--background-modifier-border-hover);--tag-color-hover:var(--text-normal)}body.is-mobile.theme-dark{--tag-background:transparent}h1,h2,h3,h4{letter-spacing:-.02em}body,button,input{font-family:var(--font-interface)}.cm-s-obsidian span.cm-error{color:var(--color-red)}.markdown-preview-view,.popover,.workspace-leaf-content[data-type=markdown]{font-family:var(--font-text)}.markdown-preview-view,.view-content>.cm-s-obsidian,.view-content>.markdown-source-view.mod-cm6.is-live-preview>.cm-scroller,body{font-size:var(--font-adaptive-normal);font-weight:var(--normal-weight)}.view-content>.cm-s-obsidian,.view-content>.markdown-source-view,.view-content>.markdown-source-view.mod-cm6 .cm-scroller{font-family:var(--font-editor)}.cm-formatting:not(.cm-formatting-code-block):not(.cm-formatting-hashtag){color:var(--text-formatting)}.hide-markdown .is-live-preview .cm-formatting.cm-formatting-code.cm-inline-code,.hide-markdown .is-live-preview .cm-formatting.cm-formatting-em,.hide-markdown .is-live-preview .cm-formatting.cm-formatting-highlight,.hide-markdown .is-live-preview .cm-formatting.cm-formatting-link,.hide-markdown .is-live-preview .cm-formatting.cm-formatting-strikethrough,.hide-markdown .is-live-preview .cm-formatting.cm-formatting-strong{display:none}.hide-markdown .is-live-preview .cm-formatting-quote{opacity:0}.hide-markdown .is-live-preview .cm-formatting-link,.hide-markdown .is-live-preview .cm-formatting:has(+.cm-header),.hide-markdown .is-live-preview .cm-hmd-internal-link.cm-link-has-alias,.hide-markdown .is-live-preview .cm-link-alias-pipe{display:none}.active-line-on .cm-line.cm-active,.active-line-on .markdown-source-view.mod-cm6.is-live-preview .HyperMD-quote.cm-active{background-color:var(--active-line-bg);box-shadow:-25vw 0 var(--active-line-bg),25vw 0 var(--active-line-bg)}body{--content-margin:auto;--content-margin-start:max( calc(50% - var(--line-width)/2), calc(50% - var(--max-width)/2) );--content-line-width:min(var(--line-width), var(--max-width))}.markdown-preview-view .markdown-preview-sizer.markdown-preview-sizer{max-width:100%;margin-inline:auto;width:100%}.markdown-source-view.mod-cm6.is-readable-line-width .cm-content,.markdown-source-view.mod-cm6.is-readable-line-width .cm-sizer{max-width:100%;width:100%}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>div,.markdown-source-view.mod-cm6.is-readable-line-width .cm-sizer>.embedded-backlinks,.markdown-source-view.mod-cm6.is-readable-line-width .cm-sizer>.inline-title,.markdown-source-view.mod-cm6.is-readable-line-width .cm-sizer>.metadata-container{max-width:var(--max-width);width:var(--line-width);margin-inline:var(--content-margin)!important}.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>:not(div){max-width:var(--content-line-width);margin-inline-start:var(--content-margin-start)!important}.is-readable-line-width{--file-margins:1rem 0 0 0}.is-mobile .markdown-preview-view{--folding-offset:0}.minimal-line-nums .workspace-leaf-content[data-type=markdown]{--file-margins:var(--size-4-8) var(--size-4-8) var(--size-4-8) 48px}.minimal-line-nums .workspace-leaf-content[data-type=markdown].is-rtl{--file-margins:var(--size-4-8) 48px var(--size-4-8) var(--size-4-8)}.minimal-line-nums .workspace-leaf-content[data-type=markdown] .is-readable-line-width{--file-margins:1rem 0 0 var(--folding-offset)}.minimal-line-nums .workspace-leaf-content[data-type=markdown] .is-readable-line-width.is-rtl{--file-margins:1rem var(--folding-offset) 0 0}.minimal-line-nums .mod-left-split .markdown-preview-view,.minimal-line-nums .mod-left-split .markdown-source-view.mod-cm6 .cm-scroller,.minimal-line-nums .mod-right-split .markdown-preview-view,.minimal-line-nums .mod-right-split .markdown-source-view.mod-cm6 .cm-scroller{--file-margins:var(--size-4-5) var(--size-4-5) var(--size-4-5) 48px}.view-content .reader-mode-content.is-readable-line-width .markdown-preview-sizer{max-width:var(--max-width);width:var(--line-width)}.markdown-preview-view .inline-embed{--max-width:100%}body{--container-table-max-width:var(--max-width);--table-max-width:none;--table-width:auto;--table-margin:inherit;--table-wrapper-width:fit-content;--container-dataview-table-width:var(--line-width);--container-img-width:var(--line-width);--container-img-max-width:var(--max-width);--img-max-width:100%;--img-width:auto;--img-margin-start:var(--content-margin-start);--img-line-width:var(--content-line-width);--container-chart-width:var(--line-width);--container-chart-max-width:var(--max-width);--chart-max-width:none;--chart-width:auto;--container-map-width:var(--line-width);--container-map-max-width:var(--max-width);--map-max-width:none;--map-width:auto;--container-iframe-width:var(--line-width);--container-iframe-max-width:var(--max-width);--iframe-max-width:none;--iframe-width:auto}body .wide{--line-width:var(--line-width-wide);--container-table-width:var(--line-width-wide);--container-dataview-table-width:var(--line-width-wide);--container-img-width:var(--line-width-wide);--container-iframe-width:var(--line-width-wide);--container-map-width:var(--line-width-wide);--container-chart-width:var(--line-width-wide)}body .max{--line-width:var(--max-width);--container-table-width:var(--max-width);--container-dataview-table-width:var(--max-width);--container-img-width:var(--max-width);--container-iframe-width:var(--max-width);--container-map-width:var(--max-width);--container-chart-width:var(--max-width)}table.dataview{--table-min-width:min(var(--line-width),var(--max-width))}.cards table.dataview{--table-width:100%;--table-min-width:none}body{--table-drag-space:16px;--container-table-margin:calc(var(--content-margin-start) - var(--table-drag-space));--container-table-width:calc(var(--line-width) + var(--table-drag-space)*2);--table-drag-padding:var(--table-drag-space)}body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view{--container-table-margin:var(--content-margin-start)}.maximize-tables-auto{--container-table-max-width:100%;--container-table-width:100%;--container-dataview-table-width:100%;--container-table-margin:0;--table-drag-padding:var(--table-drag-space) 0;--table-max-width:100%;--table-margin:var(--content-margin-start) auto;--table-width:auto}.maximize-tables-auto .cards{--container-table-max-width:var(--max-width)}.maximize-tables-auto .cards .block-language-dataview{--table-margin:auto}.maximize-tables{--container-table-max-width:100%;--container-table-width:100%;--container-table-margin:0;--table-drag-padding:var(--table-drag-space) 0;--table-min-width:min(var(--line-width), var(--max-width));--table-max-width:100%;--table-margin:auto;--table-width:auto;--table-edge-cell-padding-first:8px;--table-edge-cell-padding-last:8px;--table-wrapper-width:auto}.table-100,.table-max,.table-wide{--table-max-width:100%;--table-width:100%}.table-wide{--container-table-width:var(--line-width-wide);--container-dataview-table-width:var(--line-width-wide);--container-table-margin:auto;--table-edge-cell-padding-first:0px}.table-max{--container-table-width:var(--max-width);--container-table-max-width:calc(var(--max-width) + var(--table-drag-space)*2);--container-dataview-table-width:var(--max-width);--container-table-margin:auto;--table-edge-cell-padding-first:0px;--table-margin:0}.table-100{--container-table-width:100%;--container-dataview-table-width:100%;--container-table-max-width:100%;--container-table-margin:auto;--table-edge-cell-padding-first:16px;--table-edge-cell-padding-last:16px;--table-margin:0;--table-drag-padding:var(--table-drag-space) 0}.table-100 .dataview.list-view-ul{max-width:var(--max-width);width:var(--line-width);margin-inline:auto}.img-100,.img-max,.img-wide{--img-max-width:100%;--img-width:100%}.img-wide{--container-img-width:var(--line-width-wide);--img-line-width:var(--line-width-wide);--img-margin-start:calc(50% - var(--line-width-wide)/2)}.img-max{--container-img-width:var(--max-width);--img-line-width:var(--max-width);--img-margin-start:calc(50% - var(--max-width)/2)}.img-100{--container-img-width:100%;--container-img-max-width:100%;--img-line-width:100%;--img-margin-start:0}.map-100,.map-max,.map-wide{--map-max-width:100%;--map-width:100%}.map-wide{--container-map-width:var(--line-width-wide)}.map-max{--container-map-width:var(--max-width)}.map-100{--container-map-width:100%;--container-map-max-width:100%}.chart-100,.chart-max,.chart-wide{--chart-max-width:100%;--chart-width:100%}.chart-wide{--container-chart-width:var(--line-width-wide)}.chart-max{--container-chart-width:var(--max-width)}.chart-100{--container-chart-width:100%;--container-chart-max-width:100%}.iframe-100,.iframe-max,.iframe-wide{--iframe-max-width:100%;--iframe-width:100%}.iframe-wide{--container-iframe-width:var(--line-width-wide)}.iframe-max{--container-iframe-width:var(--max-width)}.iframe-100{--container-iframe-width:100%;--container-iframe-max-width:100%}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer .cm-table-widget,.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div:has(>table),.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content .cm-table-widget,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>div:has(>table){width:var(--container-table-width);max-width:var(--container-table-max-width);margin-inline:var(--container-table-margin)!important}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer .table-wrapper,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content .table-wrapper{width:var(--table-wrapper-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div:has(>.block-language-dataview>table),.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div:has(>.block-language-dataviewjs),.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>div:has(>.block-language-dataview>table),.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>div:has(>.block-language-dataviewjs){width:var(--container-dataview-table-width);max-width:var(--container-table-max-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer table,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content table{width:var(--table-width);max-width:var(--table-max-width);margin-inline:var(--table-margin);min-width:var(--table-min-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer .block-language-dataviewjs>:is(p,h1,h2,h3,h4,h5,h6),.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content .block-language-dataviewjs>:is(p,h1,h2,h3,h4,h5,h6){width:var(--line-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer .block-language-dataviewjs>.dataview-error,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content .block-language-dataviewjs>.dataview-error{margin:0 auto;width:var(--content-line-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer .dataview.dataview-error-box,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content .dataview.dataview-error-box{margin-inline:var(--table-margin)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.image-embed,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>.image-embed{padding-top:.25rem;padding-bottom:.25rem}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.image-embed,.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div:has(.image-embed),.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>.image-embed,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>div:has(.image-embed){width:var(--container-img-width);max-width:var(--container-img-max-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.image-embed img,.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div:has(.image-embed) img,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>.image-embed img,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>div:has(.image-embed) img{max-width:var(--img-max-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>img,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>img{max-width:var(--img-line-width);margin-inline-start:var(--img-margin-start)!important}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer div:has(>.block-language-chart),.markdown-preview-view.is-readable-line-width .markdown-preview-sizer div:has(>.block-language-dataviewjs canvas),.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content div:has(>.block-language-chart),.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content div:has(>.block-language-dataviewjs canvas){width:var(--container-chart-width);max-width:var(--container-chart-max-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer div:has(>.block-language-chart) canvas,.markdown-preview-view.is-readable-line-width .markdown-preview-sizer div:has(>.block-language-dataviewjs canvas) canvas,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content div:has(>.block-language-chart) canvas,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content div:has(>.block-language-dataviewjs canvas) canvas{max-width:var(--map-chart-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer div:has(>.block-language-leaflet),.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content div:has(>.block-language-leaflet){width:var(--container-map-width);max-width:var(--container-map-max-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer div:has(>.block-language-leaflet) iframe,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content div:has(>.block-language-leaflet) iframe{max-width:var(--map-max-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer div:has(>.cm-html-embed),.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div:has(>iframe),.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content div:has(>.cm-html-embed),.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>div:has(>iframe){width:var(--container-iframe-width);max-width:var(--container-iframe-max-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer div:has(>.cm-html-embed) iframe,.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div:has(>iframe) iframe,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content div:has(>.cm-html-embed) iframe,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>div:has(>iframe) iframe{max-width:var(--iframe-max-width);width:var(--iframe-width)}.borders-none{--divider-width:0px;--tab-outline-width:0px}body{--cards-min-width:180px;--cards-max-width:1fr;--cards-mobile-width:120px;--cards-image-height:400px;--cards-padding:1.2em;--cards-image-fit:contain;--cards-background:transparent;--cards-border-width:1px;--cards-aspect-ratio:auto;--cards-columns:repeat(auto-fit, minmax(var(--cards-min-width), var(--cards-max-width)))}@media(max-width:400pt){body{--cards-min-width:var(--cards-mobile-width)}}.cards.table-100 table.dataview tbody,.table-100 .cards table.dataview tbody{padding:.25rem .75rem}.cards table.dataview{--table-width:100%;--table-edge-cell-padding-first:calc(var(--cards-padding)/2);--table-edge-cell-padding-last:calc(var(--cards-padding)/2);--table-cell-padding:calc(var(--cards-padding)/3) calc(var(--cards-padding)/2);line-height:1.3}.cards table.dataview tbody{clear:both;padding:.5rem 0;display:grid;grid-template-columns:var(--cards-columns);grid-column-gap:.75rem;grid-row-gap:.75rem}.cards table.dataview>tbody>tr{background-color:var(--cards-background);border:var(--cards-border-width) solid var(--background-modifier-border);display:flex;flex-direction:column;margin:0;padding:0 0 calc(var(--cards-padding)/3) 0;border-radius:6px;overflow:hidden;transition:box-shadow .15s linear;max-width:var(--cards-max-width);height:auto}.cards table.dataview>tbody>tr:hover{border:var(--cards-border-width) solid var(--background-modifier-border-hover);box-shadow:0 4px 6px 0 rgba(0,0,0,.05),0 1px 3px 1px rgba(0,0,0,.025);transition:box-shadow .15s linear}.cards table.dataview tbody>tr>td:first-child{font-weight:var(--bold-weight);border:none}.cards table.dataview tbody>tr>td:first-child a{display:block}.cards table.dataview tbody>tr>td:last-child{border:none}.cards table.dataview tbody>tr>td:not(:first-child){font-size:calc(var(--table-text-size)*.9);color:var(--text-muted)}.cards table.dataview tbody>tr>td>*{padding:calc(var(--cards-padding)/3) 0}.cards table.dataview tbody>tr>td:not(:last-child):not(:first-child){padding:4px 0;border-bottom:1px solid var(--background-modifier-border);width:calc(100% - var(--cards-padding));margin:0 calc(var(--cards-padding)/2)}.cards table.dataview tbody>tr>td a{text-decoration:none}.cards table.dataview tbody>tr>td>button{width:100%;margin:calc(var(--cards-padding)/2) 0}.cards table.dataview tbody>tr>td:last-child>button{margin-bottom:calc(var(--cards-padding)/6)}.cards table.dataview tbody>tr>td>ul{width:100%;padding:.25em 0!important;margin:0 auto!important}.cards table.dataview tbody>tr>td:has(img){padding:0!important;background-color:var(--background-secondary);display:block;margin:0;width:100%}.cards table.dataview tbody>tr>td img{aspect-ratio:var(--cards-aspect-ratio);width:100%;object-fit:var(--cards-image-fit);max-height:var(--cards-image-height);background-color:var(--background-secondary);vertical-align:bottom}.markdown-source-view.mod-cm6.cards .dataview.table-view-table>tbody>tr>td,.trim-cols .cards table.dataview tbody>tr>td{white-space:normal}.links-int-on .cards table{--link-decoration:none}.markdown-source-view.mod-cm6.cards .edit-block-button{top:-1px;right:28px;opacity:1}.cards.table-100 table.dataview thead>tr,.table-100 .cards table.dataview thead>tr{right:.75rem}.cards.table-100 table.dataview thead:before,.table-100 .cards table.dataview thead:before{margin-right:.75rem}.cards table.dataview thead{user-select:none;width:180px;display:block;float:right;position:relative;text-align:right;height:24px;padding-bottom:0}.cards table.dataview thead:hover:after{background-color:var(--background-modifier-hover)}.cards table.dataview thead:hover:before{background-color:var(--text-muted)}.cards table.dataview thead:after,.cards table.dataview thead:before{content:"";position:absolute;right:0;top:0;width:10px;height:16px;cursor:var(--cursor);text-align:right;padding:var(--size-4-1) var(--size-4-2);margin-bottom:2px;border-radius:var(--radius-s);font-weight:500;font-size:var(--font-adaptive-small)}.cards table.dataview thead:before{background-color:var(--text-faint);-webkit-mask-repeat:no-repeat;-webkit-mask-size:16px;-webkit-mask-position:center center;-webkit-mask-image:url('data:image/svg+xml;utf8,')}.cards table.dataview thead>tr{top:-1px;position:absolute;display:none;z-index:9;border:1px solid var(--background-modifier-border-hover);background-color:var(--background-secondary);box-shadow:var(--shadow-s);padding:6px;border-radius:var(--radius-m);flex-direction:column;margin:24px 0 0 0;width:100%}.cards table.dataview thead:hover>tr{display:flex;height:auto}.cards table.dataview thead>tr>th{display:block;padding:3px 30px 3px 6px!important;border-radius:var(--radius-s);width:100%;font-weight:400;color:var(--text-normal);cursor:var(--cursor);border:none;font-size:var(--font-ui-small)}.cards table.dataview thead>tr>th[sortable-style=sortable-asc],.cards table.dataview thead>tr>th[sortable-style=sortable-desc]{color:var(--text-normal)}.cards table.dataview thead>tr>th:hover{color:var(--text-normal);background-color:var(--background-modifier-hover)}.list-cards.markdown-preview-view .list-bullet,.list-cards.markdown-preview-view .list-collapse-indicator,.list-cards.markdown-preview-view.markdown-rendered.show-indentation-guide li>ul::before{display:none}.list-cards.markdown-preview-view div>ul{display:grid;gap:.75rem;grid-template-columns:var(--cards-columns);padding:0;line-height:var(--line-height-tight)}.list-cards.markdown-preview-view div>ul .contains-task-list{padding-inline-start:calc(var(--cards-padding)*1.5)}.list-cards.markdown-preview-view div>ul>li{background-color:var(--cards-background);padding:calc(var(--cards-padding)/2);border-radius:var(--radius-s);border:var(--cards-border-width) solid var(--background-modifier-border);overflow:hidden}.list-cards.markdown-preview-view div>ul .image-embed{padding:0;display:block;background-color:var(--background-secondary);border-radius:var(--image-radius)}.list-cards.markdown-preview-view div>ul .image-embed img{aspect-ratio:var(--cards-aspect-ratio);object-fit:var(--cards-image-fit);max-height:var(--cards-image-height);background-color:var(--background-secondary);vertical-align:bottom}.list-cards.markdown-preview-view div>ul>li>a{--link-decoration:none;--link-external-decoration:none;font-weight:var(--bold-weight)}.list-cards.markdown-preview-view div ul>li:hover{border-color:var(--background-modifier-border-hover)}.list-cards.markdown-preview-view div ul ul{display:block;width:100%;color:var(--text-muted);font-size:var(--font-smallest);margin:calc(var(--cards-padding)/-4) 0;padding:calc(var(--cards-padding)/2) 0}.list-cards.markdown-preview-view div ul ul ul{padding-bottom:calc(var(--cards-padding)/4)}.list-cards.markdown-preview-view div ul ul>li{display:block}.cards.cards-16-9,.list-cards.cards-16-9{--cards-aspect-ratio:16/9}.cards.cards-1-1,.list-cards.cards-1-1{--cards-aspect-ratio:1/1}.cards.cards-2-1,.list-cards.cards-2-1{--cards-aspect-ratio:2/1}.cards.cards-2-3,.list-cards.cards-2-3{--cards-aspect-ratio:2/3}.cards.cards-cols-1,.list-cards.cards-cols-1{--cards-columns:repeat(1, minmax(0, 1fr))}.cards.cards-cols-2,.list-cards.cards-cols-2{--cards-columns:repeat(2, minmax(0, 1fr))}.cards.cards-cover,.list-cards.cards-cover{--cards-image-fit:cover}.cards.cards-align-bottom table.dataview tbody>tr>td:last-child,.list-cards.cards-align-bottom table.dataview tbody>tr>td:last-child{margin-top:auto}@media(max-width:400pt){.cards table.dataview tbody>tr>td:not(:first-child){font-size:80%}}@media(min-width:400pt){.cards-cols-3{--cards-columns:repeat(3, minmax(0, 1fr))}.cards-cols-4{--cards-columns:repeat(4, minmax(0, 1fr))}.cards-cols-5{--cards-columns:repeat(5, minmax(0, 1fr))}.cards-cols-6{--cards-columns:repeat(6, minmax(0, 1fr))}.cards-cols-7{--cards-columns:repeat(7, minmax(0, 1fr))}.cards-cols-8{--cards-columns:repeat(8, minmax(0, 1fr))}}.cm-formatting.cm-formatting-task.cm-property{font-family:var(--font-monospace);font-size:90%}input[data-task="!"]:checked,input[data-task="*"]:checked,input[data-task="-"]:checked,input[data-task="<"]:checked,input[data-task=">"]:checked,input[data-task=I]:checked,input[data-task=b]:checked,input[data-task=c]:checked,input[data-task=d]:checked,input[data-task=f]:checked,input[data-task=k]:checked,input[data-task=l]:checked,input[data-task=p]:checked,input[data-task=u]:checked,input[data-task=w]:checked,li[data-task="!"]>input:checked,li[data-task="!"]>p>input:checked,li[data-task="*"]>input:checked,li[data-task="*"]>p>input:checked,li[data-task="-"]>input:checked,li[data-task="-"]>p>input:checked,li[data-task="<"]>input:checked,li[data-task="<"]>p>input:checked,li[data-task=">"]>input:checked,li[data-task=">"]>p>input:checked,li[data-task=I]>input:checked,li[data-task=I]>p>input:checked,li[data-task=b]>input:checked,li[data-task=b]>p>input:checked,li[data-task=c]>input:checked,li[data-task=c]>p>input:checked,li[data-task=d]>input:checked,li[data-task=d]>p>input:checked,li[data-task=f]>input:checked,li[data-task=f]>p>input:checked,li[data-task=k]>input:checked,li[data-task=k]>p>input:checked,li[data-task=l]>input:checked,li[data-task=l]>p>input:checked,li[data-task=p]>input:checked,li[data-task=p]>p>input:checked,li[data-task=u]>input:checked,li[data-task=u]>p>input:checked,li[data-task=w]>input:checked,li[data-task=w]>p>input:checked{--checkbox-marker-color:transparent;border:none;border-radius:0;background-image:none;background-color:currentColor;-webkit-mask-size:var(--checkbox-icon);-webkit-mask-position:50% 50%}input[data-task=">"]:checked,li[data-task=">"]>input:checked,li[data-task=">"]>p>input:checked{color:var(--text-faint);transform:rotate(90deg);-webkit-mask-position:50% 100%;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='M10.894 2.553a1 1 0 00-1.788 0l-7 14a1 1 0 001.169 1.409l5-1.429A1 1 0 009 15.571V11a1 1 0 112 0v4.571a1 1 0 00.725.962l5 1.428a1 1 0 001.17-1.408l-7-14z' /%3E%3C/svg%3E")}input[data-task="<"]:checked,li[data-task="<"]>input:checked,li[data-task="<"]>p>input:checked{color:var(--text-faint);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M10 18a8 8 0 100-16 8 8 0 000 16zm1-12a1 1 0 10-2 0v4a1 1 0 00.293.707l2.828 2.829a1 1 0 101.415-1.415L11 9.586V6z' clip-rule='evenodd' /%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M6 2a1 1 0 00-1 1v1H4a2 2 0 00-2 2v10a2 2 0 002 2h12a2 2 0 002-2V6a2 2 0 00-2-2h-1V3a1 1 0 10-2 0v1H7V3a1 1 0 00-1-1zm0 5a1 1 0 000 2h8a1 1 0 100-2H6z' clip-rule='evenodd' /%3E%3C/svg%3E")}input[data-task="?"]:checked,li[data-task="?"]>input:checked,li[data-task="?"]>p>input:checked{--checkbox-marker-color:transparent;background-color:var(--color-yellow);border-color:var(--color-yellow);background-position:50% 50%;background-size:200% 90%;background-image:url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 16 16"%3E%3Cpath fill="white" fill-rule="evenodd" d="M4.475 5.458c-.284 0-.514-.237-.47-.517C4.28 3.24 5.576 2 7.825 2c2.25 0 3.767 1.36 3.767 3.215c0 1.344-.665 2.288-1.79 2.973c-1.1.659-1.414 1.118-1.414 2.01v.03a.5.5 0 0 1-.5.5h-.77a.5.5 0 0 1-.5-.495l-.003-.2c-.043-1.221.477-2.001 1.645-2.712c1.03-.632 1.397-1.135 1.397-2.028c0-.979-.758-1.698-1.926-1.698c-1.009 0-1.71.529-1.938 1.402c-.066.254-.278.461-.54.461h-.777ZM7.496 14c.622 0 1.095-.474 1.095-1.09c0-.618-.473-1.092-1.095-1.092c-.606 0-1.087.474-1.087 1.091S6.89 14 7.496 14Z"%2F%3E%3C%2Fsvg%3E')}.theme-dark input[data-task="?"]:checked,.theme-dark li[data-task="?"]>input:checked,.theme-dark li[data-task="?"]>p>input:checked{background-image:url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 16 16"%3E%3Cpath fill="black" fill-opacity="0.8" fill-rule="evenodd" d="M4.475 5.458c-.284 0-.514-.237-.47-.517C4.28 3.24 5.576 2 7.825 2c2.25 0 3.767 1.36 3.767 3.215c0 1.344-.665 2.288-1.79 2.973c-1.1.659-1.414 1.118-1.414 2.01v.03a.5.5 0 0 1-.5.5h-.77a.5.5 0 0 1-.5-.495l-.003-.2c-.043-1.221.477-2.001 1.645-2.712c1.03-.632 1.397-1.135 1.397-2.028c0-.979-.758-1.698-1.926-1.698c-1.009 0-1.71.529-1.938 1.402c-.066.254-.278.461-.54.461h-.777ZM7.496 14c.622 0 1.095-.474 1.095-1.09c0-.618-.473-1.092-1.095-1.092c-.606 0-1.087.474-1.087 1.091S6.89 14 7.496 14Z"%2F%3E%3C%2Fsvg%3E')}input[data-task="/"]:checked,li[data-task="/"]>input:checked,li[data-task="/"]>p>input:checked{background-image:none;background-color:rgba(0,0,0,0);position:relative;overflow:hidden}input[data-task="/"]:checked:after,li[data-task="/"]>input:checked:after,li[data-task="/"]>p>input:checked:after{top:0;left:0;content:" ";display:block;position:absolute;background-color:var(--background-modifier-accent);width:calc(50% - .5px);height:100%;-webkit-mask-image:none}input[data-task="!"]:checked,li[data-task="!"]>input:checked,li[data-task="!"]>p>input:checked{color:var(--color-orange);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z' clip-rule='evenodd' /%3E%3C/svg%3E")}input[data-task='"']:checked,input[data-task=“]:checked,li[data-task='"']>input:checked,li[data-task='"']>p>input:checked,li[data-task=“]>input:checked,li[data-task=“]>p>input:checked{--checkbox-marker-color:transparent;background-position:50% 50%;background-color:var(--color-cyan);border-color:var(--color-cyan);background-size:75%;background-repeat:no-repeat;background-image:url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"%3E%3Cpath fill="white" d="M6.5 10c-.223 0-.437.034-.65.065c.069-.232.14-.468.254-.68c.114-.308.292-.575.469-.844c.148-.291.409-.488.601-.737c.201-.242.475-.403.692-.604c.213-.21.492-.315.714-.463c.232-.133.434-.28.65-.35l.539-.222l.474-.197l-.485-1.938l-.597.144c-.191.048-.424.104-.689.171c-.271.05-.56.187-.882.312c-.318.142-.686.238-1.028.466c-.344.218-.741.4-1.091.692c-.339.301-.748.562-1.05.945c-.33.358-.656.734-.909 1.162c-.293.408-.492.856-.702 1.299c-.19.443-.343.896-.468 1.336c-.237.882-.343 1.72-.384 2.437c-.034.718-.014 1.315.028 1.747c.015.204.043.402.063.539l.025.168l.026-.006A4.5 4.5 0 1 0 6.5 10zm11 0c-.223 0-.437.034-.65.065c.069-.232.14-.468.254-.68c.114-.308.292-.575.469-.844c.148-.291.409-.488.601-.737c.201-.242.475-.403.692-.604c.213-.21.492-.315.714-.463c.232-.133.434-.28.65-.35l.539-.222l.474-.197l-.485-1.938l-.597.144c-.191.048-.424.104-.689.171c-.271.05-.56.187-.882.312c-.317.143-.686.238-1.028.467c-.344.218-.741.4-1.091.692c-.339.301-.748.562-1.05.944c-.33.358-.656.734-.909 1.162c-.293.408-.492.856-.702 1.299c-.19.443-.343.896-.468 1.336c-.237.882-.343 1.72-.384 2.437c-.034.718-.014 1.315.028 1.747c.015.204.043.402.063.539l.025.168l.026-.006A4.5 4.5 0 1 0 17.5 10z"%2F%3E%3C%2Fsvg%3E')}.theme-dark input[data-task='"']:checked,.theme-dark input[data-task=“]:checked,.theme-dark li[data-task='"']>input:checked,.theme-dark li[data-task='"']>p>input:checked,.theme-dark li[data-task=“]>input:checked,.theme-dark li[data-task=“]>p>input:checked{background-image:url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"%3E%3Cpath fill="black" fill-opacity="0.7" d="M6.5 10c-.223 0-.437.034-.65.065c.069-.232.14-.468.254-.68c.114-.308.292-.575.469-.844c.148-.291.409-.488.601-.737c.201-.242.475-.403.692-.604c.213-.21.492-.315.714-.463c.232-.133.434-.28.65-.35l.539-.222l.474-.197l-.485-1.938l-.597.144c-.191.048-.424.104-.689.171c-.271.05-.56.187-.882.312c-.318.142-.686.238-1.028.466c-.344.218-.741.4-1.091.692c-.339.301-.748.562-1.05.945c-.33.358-.656.734-.909 1.162c-.293.408-.492.856-.702 1.299c-.19.443-.343.896-.468 1.336c-.237.882-.343 1.72-.384 2.437c-.034.718-.014 1.315.028 1.747c.015.204.043.402.063.539l.025.168l.026-.006A4.5 4.5 0 1 0 6.5 10zm11 0c-.223 0-.437.034-.65.065c.069-.232.14-.468.254-.68c.114-.308.292-.575.469-.844c.148-.291.409-.488.601-.737c.201-.242.475-.403.692-.604c.213-.21.492-.315.714-.463c.232-.133.434-.28.65-.35l.539-.222l.474-.197l-.485-1.938l-.597.144c-.191.048-.424.104-.689.171c-.271.05-.56.187-.882.312c-.317.143-.686.238-1.028.467c-.344.218-.741.4-1.091.692c-.339.301-.748.562-1.05.944c-.33.358-.656.734-.909 1.162c-.293.408-.492.856-.702 1.299c-.19.443-.343.896-.468 1.336c-.237.882-.343 1.72-.384 2.437c-.034.718-.014 1.315.028 1.747c.015.204.043.402.063.539l.025.168l.026-.006A4.5 4.5 0 1 0 17.5 10z"%2F%3E%3C%2Fsvg%3E')}input[data-task="-"]:checked,li[data-task="-"]>input:checked,li[data-task="-"]>p>input:checked{color:var(--text-faint);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z' clip-rule='evenodd' /%3E%3C/svg%3E")}body:not(.tasks) .markdown-preview-view ul li[data-task="-"].task-list-item.is-checked,body:not(.tasks) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task]:is([data-task="-"]),body:not(.tasks) li[data-task="-"].task-list-item.is-checked{color:var(--text-faint);text-decoration:line-through solid var(--text-faint) 1px}input[data-task="*"]:checked,li[data-task="*"]>input:checked,li[data-task="*"]>p>input:checked{color:var(--color-yellow);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z' /%3E%3C/svg%3E")}input[data-task=l]:checked,li[data-task=l]>input:checked,li[data-task=l]>p>input:checked{color:var(--color-red);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M5.05 4.05a7 7 0 119.9 9.9L10 18.9l-4.95-4.95a7 7 0 010-9.9zM10 11a2 2 0 100-4 2 2 0 000 4z' clip-rule='evenodd' /%3E%3C/svg%3E")}input[data-task=i]:checked,li[data-task=i]>input:checked,li[data-task=i]>p>input:checked{--checkbox-marker-color:transparent;background-color:var(--color-blue);border-color:var(--color-blue);background-position:50%;background-size:100%;background-image:url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512"%3E%3Cpath fill="none" stroke="white" stroke-linecap="round" stroke-linejoin="round" stroke-width="40" d="M196 220h64v172"%2F%3E%3Cpath fill="none" stroke="white" stroke-linecap="round" stroke-miterlimit="10" stroke-width="40" d="M187 396h138"%2F%3E%3Cpath fill="white" d="M256 160a32 32 0 1 1 32-32a32 32 0 0 1-32 32Z"%2F%3E%3C%2Fsvg%3E')}.theme-dark input[data-task=i]:checked,.theme-dark li[data-task=i]>input:checked,.theme-dark li[data-task=i]>p>input:checked{background-image:url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512"%3E%3Cpath fill="none" stroke="black" stroke-opacity="0.8" stroke-linecap="round" stroke-linejoin="round" stroke-width="40" d="M196 220h64v172"%2F%3E%3Cpath fill="none" stroke="black" stroke-opacity="0.8" stroke-linecap="round" stroke-miterlimit="10" stroke-width="40" d="M187 396h138"%2F%3E%3Cpath fill="black" fill-opacity="0.8" d="M256 160a32 32 0 1 1 32-32a32 32 0 0 1-32 32Z"%2F%3E%3C%2Fsvg%3E')}input[data-task=S]:checked,li[data-task=S]>input:checked,li[data-task=S]>p>input:checked{--checkbox-marker-color:transparent;border-color:var(--color-green);background-color:var(--color-green);background-size:100%;background-image:url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 48 48"%3E%3Cpath fill="white" fill-rule="evenodd" d="M26 8a2 2 0 1 0-4 0v2a8 8 0 1 0 0 16v8a4.002 4.002 0 0 1-3.773-2.666a2 2 0 0 0-3.771 1.332A8.003 8.003 0 0 0 22 38v2a2 2 0 1 0 4 0v-2a8 8 0 1 0 0-16v-8a4.002 4.002 0 0 1 3.773 2.666a2 2 0 0 0 3.771-1.332A8.003 8.003 0 0 0 26 10V8Zm-4 6a4 4 0 0 0 0 8v-8Zm4 12v8a4 4 0 0 0 0-8Z" clip-rule="evenodd"%2F%3E%3C%2Fsvg%3E')}.theme-dark input[data-task=S]:checked,.theme-dark li[data-task=S]>input:checked,.theme-dark li[data-task=S]>p>input:checked{background-image:url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 48 48"%3E%3Cpath fill-opacity="0.8" fill="black" fill-rule="evenodd" d="M26 8a2 2 0 1 0-4 0v2a8 8 0 1 0 0 16v8a4.002 4.002 0 0 1-3.773-2.666a2 2 0 0 0-3.771 1.332A8.003 8.003 0 0 0 22 38v2a2 2 0 1 0 4 0v-2a8 8 0 1 0 0-16v-8a4.002 4.002 0 0 1 3.773 2.666a2 2 0 0 0 3.771-1.332A8.003 8.003 0 0 0 26 10V8Zm-4 6a4 4 0 0 0 0 8v-8Zm4 12v8a4 4 0 0 0 0-8Z" clip-rule="evenodd"%2F%3E%3C%2Fsvg%3E')}input[data-task=I]:checked,li[data-task=I]>input:checked,li[data-task=I]>p>input:checked{color:var(--color-yellow);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='M11 3a1 1 0 10-2 0v1a1 1 0 102 0V3zM15.657 5.757a1 1 0 00-1.414-1.414l-.707.707a1 1 0 001.414 1.414l.707-.707zM18 10a1 1 0 01-1 1h-1a1 1 0 110-2h1a1 1 0 011 1zM5.05 6.464A1 1 0 106.464 5.05l-.707-.707a1 1 0 00-1.414 1.414l.707.707zM5 10a1 1 0 01-1 1H3a1 1 0 110-2h1a1 1 0 011 1zM8 16v-1h4v1a2 2 0 11-4 0zM12 14c.015-.34.208-.646.477-.859a4 4 0 10-4.954 0c.27.213.462.519.476.859h4.002z' /%3E%3C/svg%3E")}input[data-task=f]:checked,li[data-task=f]>input:checked,li[data-task=f]>p>input:checked{color:var(--color-red);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M12.395 2.553a1 1 0 00-1.45-.385c-.345.23-.614.558-.822.88-.214.33-.403.713-.57 1.116-.334.804-.614 1.768-.84 2.734a31.365 31.365 0 00-.613 3.58 2.64 2.64 0 01-.945-1.067c-.328-.68-.398-1.534-.398-2.654A1 1 0 005.05 6.05 6.981 6.981 0 003 11a7 7 0 1011.95-4.95c-.592-.591-.98-.985-1.348-1.467-.363-.476-.724-1.063-1.207-2.03zM12.12 15.12A3 3 0 017 13s.879.5 2.5.5c0-1 .5-4 1.25-4.5.5 1 .786 1.293 1.371 1.879A2.99 2.99 0 0113 13a2.99 2.99 0 01-.879 2.121z' clip-rule='evenodd' /%3E%3C/svg%3E")}input[data-task=k]:checked,li[data-task=k]>input:checked,li[data-task=k]>p>input:checked{color:var(--color-yellow);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M18 8a6 6 0 01-7.743 5.743L10 14l-1 1-1 1H6v2H2v-4l4.257-4.257A6 6 0 1118 8zm-6-4a1 1 0 100 2 2 2 0 012 2 1 1 0 102 0 4 4 0 00-4-4z' clip-rule='evenodd' /%3E%3C/svg%3E")}input[data-task=u]:checked,li[data-task=u]>input:checked,li[data-task=u]>p>input:checked{color:var(--color-green);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M12 7a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0V8.414l-4.293 4.293a1 1 0 01-1.414 0L8 10.414l-4.293 4.293a1 1 0 01-1.414-1.414l5-5a1 1 0 011.414 0L11 10.586 14.586 7H12z' clip-rule='evenodd' /%3E%3C/svg%3E")}input[data-task=d]:checked,li[data-task=d]>input:checked,li[data-task=d]>p>input:checked{color:var(--color-red);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M12 13a1 1 0 100 2h5a1 1 0 001-1V9a1 1 0 10-2 0v2.586l-4.293-4.293a1 1 0 00-1.414 0L8 9.586 3.707 5.293a1 1 0 00-1.414 1.414l5 5a1 1 0 001.414 0L11 9.414 14.586 13H12z' clip-rule='evenodd' /%3E%3C/svg%3E")}input[data-task=w]:checked,li[data-task=w]>input:checked,li[data-task=w]>p>input:checked{color:var(--color-purple);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M6 3a1 1 0 011-1h.01a1 1 0 010 2H7a1 1 0 01-1-1zm2 3a1 1 0 00-2 0v1a2 2 0 00-2 2v1a2 2 0 00-2 2v.683a3.7 3.7 0 011.055.485 1.704 1.704 0 001.89 0 3.704 3.704 0 014.11 0 1.704 1.704 0 001.89 0 3.704 3.704 0 014.11 0 1.704 1.704 0 001.89 0A3.7 3.7 0 0118 12.683V12a2 2 0 00-2-2V9a2 2 0 00-2-2V6a1 1 0 10-2 0v1h-1V6a1 1 0 10-2 0v1H8V6zm10 8.868a3.704 3.704 0 01-4.055-.036 1.704 1.704 0 00-1.89 0 3.704 3.704 0 01-4.11 0 1.704 1.704 0 00-1.89 0A3.704 3.704 0 012 14.868V17a1 1 0 001 1h14a1 1 0 001-1v-2.132zM9 3a1 1 0 011-1h.01a1 1 0 110 2H10a1 1 0 01-1-1zm3 0a1 1 0 011-1h.01a1 1 0 110 2H13a1 1 0 01-1-1z' clip-rule='evenodd' /%3E%3C/svg%3E")}input[data-task=p]:checked,li[data-task=p]>input:checked,li[data-task=p]>p>input:checked{color:var(--color-green);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='M2 10.5a1.5 1.5 0 113 0v6a1.5 1.5 0 01-3 0v-6zM6 10.333v5.43a2 2 0 001.106 1.79l.05.025A4 4 0 008.943 18h5.416a2 2 0 001.962-1.608l1.2-6A2 2 0 0015.56 8H12V4a2 2 0 00-2-2 1 1 0 00-1 1v.667a4 4 0 01-.8 2.4L6.8 7.933a4 4 0 00-.8 2.4z' /%3E%3C/svg%3E")}input[data-task=c]:checked,li[data-task=c]>input:checked,li[data-task=c]>p>input:checked{color:var(--color-orange);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='M18 9.5a1.5 1.5 0 11-3 0v-6a1.5 1.5 0 013 0v6zM14 9.667v-5.43a2 2 0 00-1.105-1.79l-.05-.025A4 4 0 0011.055 2H5.64a2 2 0 00-1.962 1.608l-1.2 6A2 2 0 004.44 12H8v4a2 2 0 002 2 1 1 0 001-1v-.667a4 4 0 01.8-2.4l1.4-1.866a4 4 0 00.8-2.4z' /%3E%3C/svg%3E")}input[data-task=b]:checked,li[data-task=b]>input:checked,li[data-task=b]>p>input:checked{color:var(--color-orange);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='M5 4a2 2 0 012-2h6a2 2 0 012 2v14l-5-2.5L5 18V4z' /%3E%3C/svg%3E")}.colorful-active .nav-files-container{--nav-item-background-active:var(--interactive-accent);--nav-item-color-active:var(--text-on-accent)}.colorful-active #calendar-container .active,.colorful-active #calendar-container .active.today,.colorful-active #calendar-container .active:hover,.colorful-active #calendar-container .day:active{background-color:var(--interactive-accent);color:var(--text-on-accent)}.colorful-active #calendar-container .active .dot,.colorful-active #calendar-container .day:active .dot,.colorful-active #calendar-container .today.active .dot{fill:var(--text-on-accent)}body:not(.colorful-active) .horizontal-tab-nav-item.is-active,body:not(.colorful-active) .vertical-tab-nav-item.is-active{background-color:var(--background-modifier-hover);color:var(--text-normal)}body{--frame-background:hsl( var(--frame-background-h), var(--frame-background-s), var(--frame-background-l));--frame-icon-color:var(--frame-muted-color)}.theme-light{--frame-background-h:var(--accent-h);--frame-background-s:var(--accent-s);--frame-background-l:calc(var(--accent-l) + 30%);--frame-outline-color:hsla( var(--frame-background-h), var(--frame-background-s), calc(var(--frame-background-l) - 6.5%), 1 );--frame-muted-color:hsl( var(--frame-background-h), calc(var(--frame-background-s) - 10%), calc(var(--frame-background-l) - 35%))}.theme-dark{--frame-background-h:var(--accent-h);--frame-background-s:var(--accent-s);--frame-background-l:calc(var(--accent-l) - 25%);--frame-outline-color:hsla( var(--frame-background-h), calc(var(--frame-background-s) - 2%), calc(var(--frame-background-l) + 6.5%), 1 );--frame-muted-color:hsl( var(--frame-background-h), calc(var(--frame-background-s) - 10%), calc(var(--frame-background-l) + 25%))}.colorful-frame.theme-dark{--tab-outline-width:0px}.colorful-frame,.colorful-frame.is-focused{--frame-divider-color:var(--frame-outline-color);--titlebar-background:var(--frame-background);--titlebar-background-focused:var(--frame-background);--titlebar-text-color:var(--frame-muted-color);--minimal-tab-text-color:var(--frame-muted-color)}.colorful-frame .workspace-tabs:not(.mod-stacked),.colorful-frame.is-focused .workspace-tabs:not(.mod-stacked){--tab-text-color:var(--minimal-tab-text-color);--tab-text-color-focused:var(--minimal-tab-text-color)}.colorful-frame .mod-top .workspace-tab-header-container,.colorful-frame .titlebar,.colorful-frame .workspace-ribbon.mod-left:before,.colorful-frame.is-focused .mod-top .workspace-tab-header-container,.colorful-frame.is-focused .titlebar,.colorful-frame.is-focused .workspace-ribbon.mod-left:before{--tab-outline-color:var(--frame-outline-color);--tab-divider-color:var(--frame-outline-color)}.colorful-frame .mod-root .workspace-tab-header .workspace-tab-header-inner-icon,.colorful-frame.is-focused .mod-root .workspace-tab-header .workspace-tab-header-inner-icon{--icon-color:var(--minimal-tab-text-color-active);--icon-color-hover:var(--minimal-tab-text-color-active);--icon-color-active:var(--minimal-tab-text-color-active);--icon-color-focused:var(--minimal-tab-text-color-active)}.colorful-frame .mod-left-split .mod-top .workspace-tab-header,.colorful-frame .mod-right-split .mod-top .workspace-tab-header,.colorful-frame .sidebar-toggle-button,.colorful-frame .workspace-tab-header-new-tab,.colorful-frame .workspace-tab-header-tab-list,.colorful-frame .workspace-tab-header:not(.is-active),.colorful-frame.is-focused .mod-left-split .mod-top .workspace-tab-header,.colorful-frame.is-focused .mod-right-split .mod-top .workspace-tab-header,.colorful-frame.is-focused .sidebar-toggle-button,.colorful-frame.is-focused .workspace-tab-header-new-tab,.colorful-frame.is-focused .workspace-tab-header-tab-list,.colorful-frame.is-focused .workspace-tab-header:not(.is-active){--background-modifier-hover:var(--frame-outline-color);--icon-color:var(--frame-icon-color);--icon-color-hover:var(--frame-icon-color);--icon-color-active:var(--frame-icon-color);--icon-color-focused:var(--frame-icon-color);--icon-color-focus:var(--frame-icon-color)}.colorful-frame .mod-left-split .mod-top .workspace-tab-header.is-active .workspace-tab-header-inner-icon,.colorful-frame .mod-right-split .mod-top .workspace-tab-header.is-active .workspace-tab-header-inner-icon,.colorful-frame.is-focused .mod-left-split .mod-top .workspace-tab-header.is-active .workspace-tab-header-inner-icon,.colorful-frame.is-focused .mod-right-split .mod-top .workspace-tab-header.is-active .workspace-tab-header-inner-icon{color:var(--frame-icon-color)}.workspace-leaf-resize-handle{transition:none}.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-left-split>.workspace-leaf-resize-handle,.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-right-split>.workspace-leaf-resize-handle,.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-vertical>*>.workspace-leaf-resize-handle{-webkit-app-region:no-drag;border:0;z-index:15}.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-left-split>.workspace-leaf-resize-handle:after,.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-right-split>.workspace-leaf-resize-handle:after,.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-vertical>*>.workspace-leaf-resize-handle:after{content:"";height:100%;width:1px;background:linear-gradient(180deg,var(--frame-outline-color) var(--header-height),var(--divider-color) var(--header-height));top:0;position:absolute}.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-left-split>.workspace-leaf-resize-handle:hover:after,.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-right-split>.workspace-leaf-resize-handle:hover:after,.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-vertical>*>.workspace-leaf-resize-handle:hover:after{background:var(--divider-color-hover)}.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-right-split>.workspace-leaf-resize-handle:after{left:0}.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-left-split>.workspace-leaf-resize-handle:after,.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-vertical>*>.workspace-leaf-resize-handle:after{right:0}body.colorful-headings{--h1-color:var(--color-red);--h2-color:var(--color-orange);--h3-color:var(--color-yellow);--h4-color:var(--color-green);--h5-color:var(--color-blue);--h6-color:var(--color-purple)}body.colorful-headings .modal{--h1-color:var(--text-normal);--h2-color:var(--text-normal);--h3-color:var(--text-normal);--h4-color:var(--text-normal);--h5-color:var(--text-normal);--h6-color:var(--text-normal)}.is-mobile .tree-item-self .collapse-icon{width:20px}body:not(.minimal-icons-off) svg.calendar-day,body:not(.minimal-icons-off) svg.excalidraw-icon,body:not(.minimal-icons-off) svg.globe,body:not(.minimal-icons-off) svg.longform,body:not(.minimal-icons-off) svg.obsidian-leaflet-plugin-icon-map{background-color:currentColor}body:not(.minimal-icons-off) svg.excalidraw-icon path{display:none}body:not(.minimal-icons-off) svg.bar-graph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.excalidraw-icon{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.longform{-webkit-mask-image:url('data:image/svg+xml;utf8,')}.workspace-ribbon.mod-left{border-left:0;transition:none}.minimal-focus-mode.is-translucent .workspace-ribbon.mod-left.is-collapsed,.minimal-focus-mode.is-translucent .workspace-ribbon.mod-left.is-collapsed:before{background-color:var(--background-primary)!important}.minimal-focus-mode .workspace-ribbon.mod-left{transition:background-color 0s linear 0s}.minimal-focus-mode .workspace-ribbon.mod-left.is-collapsed{border-color:transparent;background-color:var(--background-primary)}.minimal-focus-mode .workspace-ribbon.mod-left.is-collapsed:before{background-color:var(--background-primary);border-color:transparent}.minimal-focus-mode .workspace-ribbon.mod-left.is-collapsed .side-dock-actions,.minimal-focus-mode .workspace-ribbon.mod-left.is-collapsed .side-dock-settings{opacity:0;transition:opacity .1s ease-in-out .1s}.minimal-focus-mode .workspace-ribbon.mod-left.is-collapsed:hover .side-dock-actions,.minimal-focus-mode .workspace-ribbon.mod-left.is-collapsed:hover .side-dock-settings{opacity:1;transition:opacity .1s ease-in-out .1s}.minimal-focus-mode.borders-title .workspace-ribbon.mod-left.is-collapsed{border-right:none}.minimal-focus-mode .mod-top-right-space .sidebar-toggle-button.mod-right{opacity:0}.minimal-focus-mode:not(.minimal-status-off) .status-bar{opacity:0;transition:opacity .2s ease-in-out}.minimal-focus-mode .status-bar:hover{opacity:1;transition:opacity .2s ease-in-out}.minimal-focus-mode .mod-root .workspace-tabs{position:relative}.minimal-focus-mode .mod-root .workspace-tabs:before:hover{background-color:#00f}.minimal-focus-mode .mod-root .workspace-tab-header-container{height:0;transition:all .1s linear .6s;--tab-outline-width:0px}.minimal-focus-mode .mod-root .workspace-tab-header-container .workspace-tab-header-container-inner,.minimal-focus-mode .mod-root .workspace-tab-header-container .workspace-tab-header-new-tab,.minimal-focus-mode .mod-root .workspace-tab-header-container .workspace-tab-header-tab-list{opacity:0;transition:opacity .1s linear .6s}.minimal-focus-mode .mod-root .workspace-tab-header-container .workspace-tab-header-spacer:before{width:100%;content:" ";background-color:rgba(0,0,0,0);height:15px;position:absolute;z-index:100;top:0;left:0}.minimal-focus-mode .mod-root .workspace-tab-header-container:hover{height:var(--header-height);--tab-outline-width:1px;transition:all .1s linear .05s}.minimal-focus-mode .mod-root .workspace-tab-header-container:hover .workspace-tab-header-container-inner,.minimal-focus-mode .mod-root .workspace-tab-header-container:hover .workspace-tab-header-new-tab,.minimal-focus-mode .mod-root .workspace-tab-header-container:hover .workspace-tab-header-tab-list{opacity:1;transition:opacity .1s linear .05s}.minimal-focus-mode.mod-macos:not(.is-fullscreen) .workspace:not(.is-left-sidedock-open) .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header-inner{padding-top:30px}body.show-view-header .app-container .workspace-split.mod-root>.workspace-leaf .view-header{transition:height .1s linear .1s}body.minimal-focus-mode.show-view-header .mod-root .workspace-leaf .view-header{height:0;transition:all .1s linear .5s}body.minimal-focus-mode.show-view-header .view-header::after{width:100%;content:" ";background-color:rgba(0,0,0,0);height:40px;position:absolute;z-index:-9;top:0}body.minimal-focus-mode.show-view-header .view-actions,body.minimal-focus-mode.show-view-header .view-header-nav-buttons,body.minimal-focus-mode.show-view-header .view-header-title-container{opacity:0;transition:all .1s linear .5s}body.minimal-focus-mode.show-view-header .mod-root .workspace-leaf .view-header:focus-within,body.minimal-focus-mode.show-view-header .mod-root .workspace-leaf .view-header:hover,body.minimal-focus-mode.show-view-header .mod-root .workspace-tab-header-container:hover~.workspace-tab-container .view-header{height:calc(var(--header-height) + 2px);transition:all .1s linear .1s}body.minimal-focus-mode.show-view-header .mod-root .workspace-tab-header-container:hover~.workspace-tab-container .view-header .view-actions,body.minimal-focus-mode.show-view-header .mod-root .workspace-tab-header-container:hover~.workspace-tab-container .view-header .view-header-nav-buttons,body.minimal-focus-mode.show-view-header .mod-root .workspace-tab-header-container:hover~.workspace-tab-container .view-header .view-header-title-container,body.minimal-focus-mode.show-view-header .view-header:focus-within .view-actions,body.minimal-focus-mode.show-view-header .view-header:focus-within .view-header-nav-buttons,body.minimal-focus-mode.show-view-header .view-header:focus-within .view-header-title-container,body.minimal-focus-mode.show-view-header .view-header:hover .view-actions,body.minimal-focus-mode.show-view-header .view-header:hover .view-header-nav-buttons,body.minimal-focus-mode.show-view-header .view-header:hover .view-header-title-container{opacity:1;transition:all .1s linear .1s}body.minimal-focus-mode.show-view-header .view-content{height:100%}.full-width-media{--iframe-width:100%}.full-width-media .markdown-preview-view .external-embed,.full-width-media .markdown-preview-view .image-embed img:not(.link-favicon):not(.emoji):not([width]),.full-width-media .markdown-preview-view audio,.full-width-media .markdown-preview-view img:not(.link-favicon):not(.emoji):not([width]),.full-width-media .markdown-preview-view p:has(.external-embed),.full-width-media .markdown-preview-view video,.full-width-media .markdown-source-view .external-embed,.full-width-media .markdown-source-view .image-embed img:not(.link-favicon):not(.emoji):not([width]),.full-width-media .markdown-source-view audio,.full-width-media .markdown-source-view img:not(.link-favicon):not(.emoji):not([width]),.full-width-media .markdown-source-view p:has(.external-embed),.full-width-media .markdown-source-view video{width:100%}.markdown-rendered img:not(.emoji),.markdown-rendered video,.markdown-source-view img:not(.emoji),.markdown-source-view video{border-radius:var(--image-radius)}.table-small table:not(.calendar){--table-text-size:85%}.table-tiny table:not(.calendar){--table-text-size:75%}.row-hover{--table-edge-cell-padding-first:8px;--table-edge-cell-padding-last:8px}.row-alt{--table-row-alt-background:var(--background-table-rows);--table-edge-cell-padding-first:8px;--table-edge-cell-padding-last:8px}.col-alt .markdown-rendered:not(.cards){--table-column-alt-background:var(--background-table-rows)}.table-tabular table:not(.calendar){font-variant-numeric:tabular-nums}.table-lines{--table-border-width:var(--border-width);--table-header-border-width:var(--border-width);--table-column-first-border-width:var(--border-width);--table-column-last-border-width:var(--border-width);--table-row-last-border-width:var(--border-width);--table-edge-cell-padding:8px;--table-edge-cell-padding-first:8px;--table-edge-cell-padding-last:8px;--table-add-button-border-width:1px}.table-nowrap{--table-white-space:nowrap}.table-nowrap .table-wrap,.trim-cols{--table-white-space:normal}.table-numbers{--table-numbers-padding-right:0.5em}.table-numbers table:not(.calendar){counter-reset:section}.table-numbers table:not(.calendar)>thead>tr>th:first-child{white-space:nowrap}.table-numbers table:not(.calendar)>thead>tr>th:first-child::before{content:" ";padding-right:var(--table-numbers-padding-right);display:inline-block;min-width:2em}.table-numbers table:not(.calendar)>thead>tr>th:first-child .cm-s-obsidian,.table-numbers table:not(.calendar)>thead>tr>th:first-child .table-cell-wrapper{display:inline-block;min-width:10px}.table-numbers table:not(.calendar).table-editor>tbody>tr>td:first-child .table-cell-wrapper,.table-numbers table:not(.calendar):not(.table-editor)>tbody>tr>td:first-child{white-space:nowrap}.table-numbers table:not(.calendar).table-editor>tbody>tr>td:first-child .table-cell-wrapper::before,.table-numbers table:not(.calendar):not(.table-editor)>tbody>tr>td:first-child::before{counter-increment:section;content:counter(section) " ";text-align:center;padding-right:var(--table-numbers-padding-right);display:inline-block;min-width:2em;color:var(--text-faint);font-variant-numeric:tabular-nums}.table-numbers table:not(.calendar).table-editor>tbody>tr>td:first-child .table-cell-wrapper .cm-s-obsidian,.table-numbers table:not(.calendar):not(.table-editor)>tbody>tr>td:first-child .cm-s-obsidian{display:inline-block;min-width:10px}.table-numbers .table-editor{--table-numbers-padding-right:0}.row-lines-off{--table-row-last-border-width:0}.row-lines-off .table-view-table>tbody>tr>td,.row-lines-off table:not(.calendar) tbody>tr:last-child>td,.row-lines-off table:not(.calendar) tbody>tr>td{border-bottom:none}.row-lines:not(.table-lines) .markdown-preview-view:not(.cards),.row-lines:not(.table-lines) .markdown-source-view:not(.cards){--table-row-last-border-width:0px}.row-lines:not(.table-lines) .markdown-preview-view:not(.cards) .table-view-table>tbody>tr:not(:last-child)>td,.row-lines:not(.table-lines) .markdown-preview-view:not(.cards) table:not(.calendar) tbody>tr:not(:last-child)>td,.row-lines:not(.table-lines) .markdown-source-view:not(.cards) .table-view-table>tbody>tr:not(:last-child)>td,.row-lines:not(.table-lines) .markdown-source-view:not(.cards) table:not(.calendar) tbody>tr:not(:last-child)>td{border-bottom:var(--table-border-width) solid var(--table-border-color)}.col-lines .table-view-table thead>tr>th:not(:last-child),.col-lines .table-view-table>tbody>tr>td:not(:last-child),.col-lines table:not(.calendar) tbody>tr>td:not(:last-child){border-right:var(--table-border-width) solid var(--background-modifier-border)}.row-hover{--table-row-background-hover:hsla( var(--accent-h), 50%, 80%, 20% )}.theme-dark .row-hover,.theme-dark.row-hover{--table-row-background-hover:hsla( var(--accent-h), 30%, 40%, 20% )}:root{--image-mix:normal}.image-blend-light{--image-mix:multiply}.theme-dark .markdown-preview-view img,.theme-dark .markdown-source-view img{opacity:var(--image-muted);transition:opacity .25s linear}@media print{body{--image-muted:1}}.theme-dark .markdown-preview-view img:hover,.theme-dark .markdown-source-view img:hover,.theme-dark .print-preview img{opacity:1;transition:opacity .25s linear}.theme-light img{mix-blend-mode:var(--image-mix)}div[src$="#invert"],div[src$="#multiply"]{background-color:var(--background-primary)}.theme-dark div[src$="#invert"] img,.theme-dark img[src$="#invert"],.theme-dark span[src$="#invert"] img{filter:invert(1) hue-rotate(180deg);mix-blend-mode:screen}.theme-dark div[src$="#multiply"] img,.theme-dark img[src$="#multiply"],.theme-dark span[src$="#multiply"] img{mix-blend-mode:screen}.theme-light div[src$="#multiply"] img,.theme-light img[src$="#multiply"],.theme-light span[src$="#multiply"] img{mix-blend-mode:multiply}.theme-light div[src$="#invertW"] img,.theme-light img[src$="#invertW"],.theme-light span[src$=invertW] img{filter:invert(1) hue-rotate(180deg)}img[src$="#circle"],span[src$="#circle"] img,span[src$="#round"] img{border-radius:50%;aspect-ratio:1/1}img[src$="#outline"],span[src$="#outline"] img{border:1px solid var(--ui1)}img[src$="#interface"],span[src$="#interface"] img{border:1px solid var(--ui1);box-shadow:0 .5px .9px rgba(0,0,0,.021),0 1.3px 2.5px rgba(0,0,0,.03),0 3px 6px rgba(0,0,0,.039),0 10px 20px rgba(0,0,0,.06);margin-top:10px;margin-bottom:15px;border-radius:var(--radius-m)}body{--image-grid-fit:cover;--image-grid-background:transparent;--img-grid-gap:0.5rem}@media(max-width:400pt){body{--img-grid-gap:0.25rem}}.img-grid-ratio{--image-grid-fit:contain}.img-grid .image-embed.is-loaded{line-height:0}.img-grid .image-embed.is-loaded img{background-color:var(--image-grid-background)}.img-grid .image-embed.is-loaded img:active{background-color:rgba(0,0,0,0)}.img-grid .markdown-preview-section>div:has(.image-embed)>p{display:grid;margin-block-start:var(--img-grid-gap);margin-block-end:var(--img-grid-gap);grid-column-gap:var(--img-grid-gap);grid-row-gap:0;grid-template-columns:repeat(auto-fit,minmax(0,1fr))}.img-grid .markdown-preview-section>div:has(.image-embed)>p>br{display:none}.img-grid .markdown-preview-section>div:has(.image-embed)>p>img{object-fit:var(--image-grid-fit);align-self:stretch}.img-grid .markdown-preview-section>div:has(.image-embed)>p>.internal-embed img{object-fit:var(--image-grid-fit);height:100%;align-self:center}body:not(.zoom-off) .workspace-leaf-content[data-type=markdown] .view-content div:not(.canvas-node-content) img{max-width:100%;cursor:zoom-in}body:not(.zoom-off) .workspace-leaf-content[data-type=markdown] .view-content img:active{cursor:zoom-out}body:not(.zoom-off) .workspace-leaf-content[data-type=markdown] .view-content .markdown-preview-view img[referrerpolicy=no-referrer]:active{background-color:var(--background-primary);padding:10px}body:not(.zoom-off) .workspace-leaf-content[data-type=markdown] .view-content .image-embed:not(.canvas-node-content):active,body:not(.zoom-off) .workspace-leaf-content[data-type=markdown] .view-content .markdown-preview-view img[referrerpolicy=no-referrer]:active{--container-img-width:100%;--container-img-max-width:100%;aspect-ratio:unset;cursor:zoom-out;display:block;z-index:200;position:fixed;max-height:calc(100% + 1px);max-width:100%;height:calc(100% + 1px);width:100%;object-fit:contain;margin:-.5px auto 0!important;text-align:center;padding:0;left:0;right:0;bottom:0}body:not(.zoom-off) .workspace-leaf-content[data-type=markdown] .view-content .image-embed:not(.canvas-node-content):active:after{background-color:var(--background-primary);opacity:.9;content:" ";height:calc(100% + 1px);width:100%;position:fixed;left:0;right:1px;z-index:0}body:not(.zoom-off) .workspace-leaf-content[data-type=markdown] .view-content .image-embed:not(.canvas-node-content):active img{aspect-ratio:unset;top:50%;z-index:99;transform:translateY(-50%);padding:0;margin:0 auto;width:calc(100% - 20px);max-height:95vh;object-fit:contain;left:0;right:0;bottom:0;position:absolute;opacity:1}body:not(.zoom-off) .workspace-leaf-content[data-type=markdown] .view-content .markdown-source-view.mod-cm6 .cm-content>[contenteditable=false]:has(.image-embed:not(.canvas-node-content):active){contain:unset!important}.labeled-nav.is-fullscreen:not(.colorful-frame),.labeled-nav.mod-windows{--labeled-nav-top-margin:0}.labeled-nav{--labeled-nav-top-margin:var(--header-height)}.labeled-nav.is-translucent .mod-left-split .mod-top .workspace-tab-header-container .workspace-tab-header-container-inner{background-color:rgba(0,0,0,0)}.labeled-nav.is-hidden-frameless:not(.is-fullscreen) .mod-left-split .workspace-tabs.mod-top-left-space .workspace-tab-header-container{padding-left:0}.labeled-nav.mod-macos .mod-left-split .mod-top .workspace-tab-header-container:before,.labeled-nav.mod-macos.is-hidden-frameless:not(.is-fullscreen) .mod-left-split .mod-top .workspace-tab-header-container:before{-webkit-app-region:drag;position:absolute;width:calc(100% - var(--divider-width));height:calc(var(--header-height) - var(--tab-outline-width));border-bottom:0 solid var(--tab-outline-color)}.labeled-nav.mod-macos.is-hidden-frameless:not(.is-fullscreen) .workspace-ribbon.mod-left:not(.is-collapsed){border:none;--tab-outline-width:0px}.labeled-nav.colorful-frame.is-hidden-frameless:not(.is-fullscreen) .mod-left-split .mod-top .workspace-tab-header-container:before,.labeled-nav.mod-macos:not(.hider-ribbon) .mod-left-split .mod-top .workspace-tab-header-container:before,.labeled-nav:not(.is-hidden-frameless) .mod-left-split .mod-top .workspace-tab-header-container:before{border-bottom:var(--tab-outline-width) solid var(--tab-outline-color)}.labeled-nav.colorful-frame.is-hidden-frameless:not(.is-fullscreen) .workspace-ribbon.mod-left:not(.is-collapsed),.labeled-nav.mod-macos:not(.hider-ribbon) .workspace-ribbon.mod-left:not(.is-collapsed),.labeled-nav:not(.is-hidden-frameless) .workspace-ribbon.mod-left:not(.is-collapsed){--tab-outline-width:1px}.labeled-nav:not(.is-hidden-frameless) .mod-left-split .mod-top .workspace-tab-header-container:before{position:absolute;top:0;content:" "}.labeled-nav.hider-ribbon.mod-macos.is-hidden-frameless:not(.is-fullscreen):not(.is-popout-window) .mod-left-split:not(.is-sidedock-collapsed) .workspace-tabs.mod-top-left-space .workspace-tab-header-container{padding-left:0}.labeled-nav .mod-left-split .mod-top .workspace-tab-header-spacer{display:none}.labeled-nav .mod-left-split .mod-top .workspace-tab-header-inner-title{display:inline-block;font-weight:500;font-size:var(--font-adaptive-smaller)}.labeled-nav .mod-left-split .mod-top .workspace-tab-header-container{position:relative;flex-direction:column-reverse!important;height:auto;width:100%}.labeled-nav .mod-left-split .mod-top .workspace-tab-header-container .sidebar-toggle-button.mod-left{position:absolute;justify-content:flex-end;padding-right:var(--size-4-2);top:0;right:0}.labeled-nav .mod-left-split .mod-top .workspace-tab-header-container .workspace-tab-header-container-inner{padding-top:var(--size-4-2);margin-top:var(--labeled-nav-top-margin);flex-direction:column!important;background-color:var(--background-secondary)}.labeled-nav .mod-left-split .mod-top .workspace-tab-header-container .workspace-tab-container-inner{flex-grow:1;gap:0;padding:var(--size-4-2) var(--size-4-3)}.labeled-nav .mod-left-split .mod-top .workspace-tab-header{--icon-color:var(--text-muted);--tab-text-color:var(--text-muted);--tab-text-color-focused:var(--text-muted);padding:0;margin-bottom:2px;border:none;height:auto}.labeled-nav .mod-left-split .mod-top .workspace-tab-header.is-active:not(:hover){background-color:rgba(0,0,0,0)}.labeled-nav .mod-left-split .mod-top .workspace-tab-header.is-active,.labeled-nav .mod-left-split .mod-top .workspace-tab-header:hover{opacity:1;--tab-text-color-active:var(--text-normal);--tab-text-color-focused:var(--text-normal);--tab-text-color-focused-active:var(--text-normal);--tab-text-color-focused-active-current:var(--text-normal);--icon-color:var(--text-normal)}.labeled-nav .mod-left-split .mod-top .workspace-tab-header .workspace-tab-header-inner{gap:var(--size-2-3);padding:var(--size-4-1) var(--size-4-2);box-shadow:none;border:none}.labeled-nav .mod-left-split .mod-top .workspace-tab-header.has-active-menu:hover,.labeled-nav .mod-left-split .mod-top .workspace-tab-header.is-active:hover{background-color:rgba(0,0,0,0)}.labeled-nav .mod-left-split .mod-top .workspace-tab-header.is-active:hover .workspace-tab-header-inner,.labeled-nav .mod-left-split .mod-top .workspace-tab-header:not(.is-active):hover .workspace-tab-header-inner{background-color:var(--nav-item-background-hover)}.labeled-nav .mod-left-split .mod-top .workspace-tab-header.is-active .workspace-tab-header-inner-icon,.labeled-nav .mod-left-split .mod-top .workspace-tab-header:hover .workspace-tab-header-inner-icon{color:var(--icon-color-active)}.labeled-nav .mod-left-split .mod-top .workspace-tab-header-container{border:none;padding:0}body:not(.links-int-on){--link-decoration:none}body:not(.links-ext-on){--link-external-decoration:none}body:not(.sidebar-color) .mod-right-split{--background-secondary:var(--background-primary)}body:not(.sidebar-color) .mod-right-split :not(.mod-top) .workspace-tab-header-container{--tab-container-background:var(--background-primary)}body{--minimal-tab-text-color:var(--text-muted);--minimal-tab-text-color-active:var(--text-normal)}.workspace-tabs:not(.mod-stacked){--tab-text-color:var(--minimal-tab-text-color);--tab-text-color-focused:var(--minimal-tab-text-color);--tab-text-color-active:var(--minimal-tab-text-color-active);--tab-text-color-focused-active:var(--minimal-tab-text-color-active);--tab-text-color-focused-active-current:var(--minimal-tab-text-color-active)}.tabs-plain-square .mod-root{--tab-curve:0;--tab-radius:0;--tab-radius-active:0}.tabs-plain-square .mod-root .workspace-tab-header-container{padding-right:0}.tabs-plain-square .mod-root .workspace-tab-header-container-inner{margin-top:-1px;margin-left:-15px}.tabs-plain-square .mod-root .workspace-tab-header{padding:0}.tabs-plain-square .mod-root .workspace-tab-header-inner{padding:0 8px}.tabs-square .mod-root{--tab-curve:0;--tab-radius:0;--tab-radius-active:0}.tabs-underline .mod-root{--tab-curve:0;--tab-radius:0;--tab-radius-active:0;--tab-outline-width:0px;--tab-background-active:transparent}.tabs-underline .mod-root .workspace-tab-header-container{border-bottom:1px solid var(--divider-color)}.tabs-underline .mod-root .workspace-tab-header{border-bottom:2px solid transparent}.tabs-underline .mod-root .workspace-tab-header:hover{border-bottom:2px solid var(--ui2)}.tabs-underline .mod-root .workspace-tab-header:hover .workspace-tab-header-inner{background-color:rgba(0,0,0,0)}.tabs-underline .mod-root .workspace-tab-header.is-active{border-bottom:2px solid var(--ax3)}.tabs-underline .mod-root .workspace-tab-header-inner:hover{background-color:rgba(0,0,0,0)}body:not(.sidebar-tabs-underline):not(.sidebar-tabs-index):not(.sidebar-tabs-square) .workspace>.workspace-split:not(.mod-root) .workspace-tabs:not(.mod-top) .workspace-tab-header-container{--tab-outline-width:0}.tabs-modern.colorful-frame .mod-root .mod-top.workspace-tabs:not(.mod-stacked){--tab-background:var(--frame-outline-color);--tab-outline-width:1px}.tabs-modern.colorful-frame .mod-root .mod-top.workspace-tabs:not(.mod-stacked) .workspace-tab-header.is-active .workspace-tab-header-inner-close-button,.tabs-modern.colorful-frame .mod-root .mod-top.workspace-tabs:not(.mod-stacked) .workspace-tab-header:hover .workspace-tab-header-inner-close-button{color:var(--minimal-tab-text-color-active)}.tabs-modern.minimal-focus-mode .mod-root .workspace-tab-header-container:hover{--tab-outline-width:0px}.tabs-modern .mod-root{--tab-container-background:var(--background-primary)}.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked){--tab-background:var(--background-modifier-hover);--tab-height:calc(var(--header-height) - 14px);--tab-outline-width:0px}.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header-inner::after,.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header::after,.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header::before{display:none}.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header-container-inner{align-items:center;margin:0;padding:2px var(--size-4-2) 0 var(--size-4-1)}.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header-inner-title{text-overflow:ellipsis;-webkit-mask-image:none}.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header{background:rgba(0,0,0,0);border-radius:5px;border:none;box-shadow:none;height:var(--tab-height);margin-left:var(--size-4-1);padding:0}.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header.is-active .workspace-tab-header-inner-title{color:var(--tab-text-color-active)}.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header.is-active.mod-active,.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header:hover{opacity:1;background-color:var(--tab-background)}.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header-new-tab{margin-right:0}.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header-inner{padding:0 var(--size-4-1) 0 var(--size-4-2);border:1px solid transparent}.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header:not(.is-active):hover .workspace-tab-header-inner{background-color:rgba(0,0,0,0)}.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header.is-active:not(.mod-active) .workspace-tab-header-inner,.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header:not(:hover):not(.mod-active) .workspace-tab-header-inner{border:1px solid var(--tab-outline-color)}.tab-names-on .workspace-tab-header-container-inner{--sidebar-tab-text-display:static}.tab-names-on .workspace-tab-header-container-inner .workspace-tab-header-inner-title{font-weight:500}.tab-names-on .workspace-tab-header-container-inner .workspace-tab-header-inner{gap:var(--size-2-3)}.tab-names-single .workspace-tab-header-container-inner .workspace-tab-header:only-child{--sidebar-tab-text-display:static;background-color:rgba(0,0,0,0)}.tab-names-single .workspace-tab-header-container-inner .workspace-tab-header:only-child .workspace-tab-header-inner-title{font-weight:500}.tab-names-single .workspace-tab-header-container-inner .workspace-tab-header:only-child .workspace-tab-header-inner{gap:var(--size-2-3)}.tabs-modern.sidebar-tabs-default .mod-right-split,.tabs-modern.sidebar-tabs-wide .mod-right-split{--tab-outline-width:0}.sidebar-tabs-underline .mod-right-split .workspace-tab-header-spacer,.sidebar-tabs-underline.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-spacer,.sidebar-tabs-underline:not(.labeled-nav) .mod-left-split .workspace-tab-header-spacer{display:none}.sidebar-tabs-underline .mod-right-split .workspace-tab-header-container,.sidebar-tabs-underline.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container,.sidebar-tabs-underline:not(.labeled-nav) .mod-left-split .workspace-tab-header-container{padding-right:0}.sidebar-tabs-underline .mod-right-split .workspace-tab-header-container-inner,.sidebar-tabs-underline.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container-inner,.sidebar-tabs-underline:not(.labeled-nav) .mod-left-split .workspace-tab-header-container-inner{padding:0;margin:0;flex-grow:1;gap:0}.sidebar-tabs-underline .mod-right-split .workspace-tab-header-container .workspace-tab-header,.sidebar-tabs-underline.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container .workspace-tab-header,.sidebar-tabs-underline:not(.labeled-nav) .mod-left-split .workspace-tab-header-container .workspace-tab-header{flex-grow:1;border-radius:0;max-width:100px}.sidebar-tabs-underline .mod-right-split .workspace-tab-header-container .workspace-tab-header.is-active,.sidebar-tabs-underline .mod-right-split .workspace-tab-header-container .workspace-tab-header:hover,.sidebar-tabs-underline.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container .workspace-tab-header.is-active,.sidebar-tabs-underline.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container .workspace-tab-header:hover,.sidebar-tabs-underline:not(.labeled-nav) .mod-left-split .workspace-tab-header-container .workspace-tab-header.is-active,.sidebar-tabs-underline:not(.labeled-nav) .mod-left-split .workspace-tab-header-container .workspace-tab-header:hover{background-color:rgba(0,0,0,0)}.sidebar-tabs-underline .mod-right-split .workspace-tab-header-container .workspace-tab-header.is-active .workspace-tab-header-inner,.sidebar-tabs-underline .mod-right-split .workspace-tab-header-container .workspace-tab-header:hover .workspace-tab-header-inner,.sidebar-tabs-underline.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container .workspace-tab-header.is-active .workspace-tab-header-inner,.sidebar-tabs-underline.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container .workspace-tab-header:hover .workspace-tab-header-inner,.sidebar-tabs-underline:not(.labeled-nav) .mod-left-split .workspace-tab-header-container .workspace-tab-header.is-active .workspace-tab-header-inner,.sidebar-tabs-underline:not(.labeled-nav) .mod-left-split .workspace-tab-header-container .workspace-tab-header:hover .workspace-tab-header-inner{background-color:rgba(0,0,0,0)}.sidebar-tabs-underline .mod-right-split .workspace-tab-header-container .workspace-tab-header .workspace-tab-header-inner,.sidebar-tabs-underline.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container .workspace-tab-header .workspace-tab-header-inner,.sidebar-tabs-underline:not(.labeled-nav) .mod-left-split .workspace-tab-header-container .workspace-tab-header .workspace-tab-header-inner{border-bottom:2px solid transparent;border-radius:0}.sidebar-tabs-underline .mod-right-split .workspace-tab-header-container .workspace-tab-header .workspace-tab-header-inner:hover,.sidebar-tabs-underline.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container .workspace-tab-header .workspace-tab-header-inner:hover,.sidebar-tabs-underline:not(.labeled-nav) .mod-left-split .workspace-tab-header-container .workspace-tab-header .workspace-tab-header-inner:hover{border-color:var(--ui2)}.sidebar-tabs-underline .mod-right-split .workspace-tab-header-container .workspace-tab-header.is-active .workspace-tab-header-inner,.sidebar-tabs-underline.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container .workspace-tab-header.is-active .workspace-tab-header-inner,.sidebar-tabs-underline:not(.labeled-nav) .mod-left-split .workspace-tab-header-container .workspace-tab-header.is-active .workspace-tab-header-inner{border-color:var(--ax3);padding-top:1px}.sidebar-tabs-square .mod-left-split,.sidebar-tabs-square .mod-right-split{--tab-radius:0px}.sidebar-tabs-index.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top),.sidebar-tabs-index:not(.labeled-nav) .mod-left-split,.sidebar-tabs-square.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top),.sidebar-tabs-square:not(.labeled-nav) .mod-left-split{--tab-background-active:var(--background-secondary)}.sidebar-tabs-index .mod-right-split .workspace-tab-header-container-inner,.sidebar-tabs-index.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container-inner,.sidebar-tabs-index:not(.labeled-nav) .mod-left-split .workspace-tab-header-container-inner,.sidebar-tabs-square .mod-right-split .workspace-tab-header-container-inner,.sidebar-tabs-square.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container-inner,.sidebar-tabs-square:not(.labeled-nav) .mod-left-split .workspace-tab-header-container-inner{padding:1px var(--size-4-2) 0;margin:6px 0 calc(var(--tab-outline-width)*-1);flex-grow:1}.sidebar-tabs-index .mod-right-split .workspace-tab-header,.sidebar-tabs-index.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header,.sidebar-tabs-index:not(.labeled-nav) .mod-left-split .workspace-tab-header,.sidebar-tabs-square .mod-right-split .workspace-tab-header,.sidebar-tabs-square.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header,.sidebar-tabs-square:not(.labeled-nav) .mod-left-split .workspace-tab-header{flex-grow:1;max-width:100px;border-radius:var(--tab-radius) var(--tab-radius) 0 0}.sidebar-tabs-index .mod-right-split .workspace-tab-header.is-active,.sidebar-tabs-index.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header.is-active,.sidebar-tabs-index:not(.labeled-nav) .mod-left-split .workspace-tab-header.is-active,.sidebar-tabs-square .mod-right-split .workspace-tab-header.is-active,.sidebar-tabs-square.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header.is-active,.sidebar-tabs-square:not(.labeled-nav) .mod-left-split .workspace-tab-header.is-active{box-shadow:0 0 0 var(--tab-outline-width) var(--tab-outline-color);color:var(--tab-text-color-active);background-color:var(--tab-background-active)}.sidebar-tabs-wide .mod-right-split .workspace-tab-header-container-inner,.sidebar-tabs-wide.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container-inner,.sidebar-tabs-wide:not(.labeled-nav) .mod-left-split .workspace-tab-header-container-inner{flex-grow:1;border:1px solid var(--tab-outline-color);padding:3px;margin:6px 8px 6px;border-radius:4px}.sidebar-tabs-wide .mod-right-split .workspace-tab-header,.sidebar-tabs-wide.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header,.sidebar-tabs-wide:not(.labeled-nav) .mod-left-split .workspace-tab-header{flex-grow:1}.sidebar-tabs-wide .mod-right-split .workspace-tab-header.is-active,.sidebar-tabs-wide.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header.is-active,.sidebar-tabs-wide:not(.labeled-nav) .mod-left-split .workspace-tab-header.is-active{border-color:transparent}.sidebar-tabs-wide .mod-right-split .workspace-tab-header-container,.sidebar-tabs-wide.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container,.sidebar-tabs-wide:not(.labeled-nav) .mod-left-split .workspace-tab-header-container{padding-right:0}.sidebar-tabs-wide .mod-right-split .workspace-tab-header-spacer,.sidebar-tabs-wide.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-spacer,.sidebar-tabs-wide:not(.labeled-nav) .mod-left-split .workspace-tab-header-spacer{display:none}.full-file-names{--nav-item-white-space:normal}body:not(.full-file-names){--nav-item-white-space:nowrap}body:not(.full-file-names) .tree-item-self{white-space:nowrap}body:not(.full-file-names) .tree-item-inner{text-overflow:ellipsis;overflow:hidden}.theme-dark,.theme-light{--h1l:var(--ui1);--h2l:var(--ui1);--h3l:var(--ui1);--h4l:var(--ui1);--h5l:var(--ui1);--h6l:var(--ui1)}.h1-l .markdown-reading-view h1:not(.embedded-note-title),.h1-l .mod-cm6 .cm-editor .HyperMD-header-1{border-bottom:1px solid var(--h1l);padding-bottom:.4em;margin-block-end:.6em}.h2-l .markdown-reading-view h2,.h2-l .mod-cm6 .cm-editor .HyperMD-header-2{border-bottom:1px solid var(--h2l);padding-bottom:.4em;margin-block-end:.6em}.h3-l .markdown-reading-view h3,.h3-l .mod-cm6 .cm-editor .HyperMD-header-3{border-bottom:1px solid var(--h3l);padding-bottom:.4em;margin-block-end:.6em}.h4-l .markdown-reading-view h4,.h4-l .mod-cm6 .cm-editor .HyperMD-header-4{border-bottom:1px solid var(--h4l);padding-bottom:.4em;margin-block-end:.6em}.h5-l .markdown-reading-view h5,.h5-l .mod-cm6 .cm-editor .HyperMD-header-5{border-bottom:1px solid var(--h5l);padding-bottom:.4em;margin-block-end:.6em}.h6-l .markdown-reading-view h6,.h6-l .mod-cm6 .cm-editor .HyperMD-header-6{border-bottom:1px solid var(--h6l);padding-bottom:.4em;margin-block-end:.6em}.is-tablet .workspace-drawer{padding-top:0}.is-tablet .workspace-drawer:not(.is-pinned){margin:30px 16px 0;height:calc(100vh - 48px);border-radius:15px;border:none}.is-tablet .workspace-drawer-ribbon{background-color:var(--background-primary);border-right:1px solid var(--background-modifier-border)}.is-tablet .workspace-drawer-header,.is-tablet .workspace-drawer.is-pinned .workspace-drawer-header{padding-top:var(--size-4-4)}.is-mobile{--font-bold:600;--font-ui-medium:var(--font-adaptive-small);--interactive-normal:var(--background-secondary);--background-modifier-form-field:var(--background-secondary);--background-modifier-form-field-highlighted:var(--background-secondary)}.is-mobile .markdown-source-view.mod-cm6 .cm-gutters{margin-left:0}.is-mobile .workspace-drawer.mod-left.is-pinned{max-width:var(--mobile-left-sidebar-width);min-width:150pt}.is-mobile .workspace-drawer.mod-right.is-pinned{max-width:var(--mobile-right-sidebar-width);min-width:150pt}.backlink-pane>.tree-item-self,.backlink-pane>.tree-item-self:hover,.outgoing-link-pane>.tree-item-self,.outgoing-link-pane>.tree-item-self:hover{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:var(--font-adaptive-smallest);font-weight:500}body{--canvas-dot-pattern:var(--background-modifier-border-hover)}.canvas-node-label{font-size:var(--font-adaptive-small)}.canvas-edges :not(.is-themed) path.canvas-display-path{stroke:var(--background-modifier-border-focus)}.canvas-edges :not(.is-themed) polyline.canvas-path-end{stroke:var(--background-modifier-border-focus);fill:var(--background-modifier-border-focus)}.canvas-node-container{border:1.5px solid var(--background-modifier-border-focus)}.node-insert-event.mod-inside-iframe{--max-width:100%;--folding-offset:0px}.node-insert-event.mod-inside-iframe .cm-editor .cm-content{padding-top:0}.is-mobile .nav-folder.mod-root>.nav-folder-title .nav-folder-title-content{display:none}body:not(.is-mobile) .nav-folder.mod-root>.nav-folder-title .nav-folder-title-content{font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:var(--font-adaptive-smallest)}.nav-buttons-container{justify-content:flex-start}.nav-file-tag{padding-top:.2em;background-color:rgba(0,0,0,0);color:var(--text-faint)}.nav-file .is-active .nav-file-tag,.nav-file:hover .nav-file-tag{color:var(--text-muted)}input.prompt-input,input.prompt-input:focus,input.prompt-input:focus-visible,input.prompt-input:hover{border-color:rgba(var(--mono-rgb-100),.05)}.is-mobile .mod-publish .modal-content{display:unset;padding:10px 10px 10px;margin-bottom:120px;overflow-x:hidden}.is-mobile .mod-publish .button-container,.is-mobile .modal.mod-publish .modal-button-container{padding:10px 15px 30px;margin-left:0;left:0}.is-mobile .modal.mod-publish .modal-title{padding:10px 20px;margin:0 -10px;border-bottom:1px solid var(--background-modifier-border)}.is-mobile .publish-site-settings-container{margin-right:0;padding:0}.is-mobile .modal.mod-publish .modal-content .publish-sections-container{margin-right:0;padding-right:0}@media(max-width:400pt){.is-mobile .publish-changes-info,.is-mobile .publish-section-header{flex-wrap:wrap;border:none}.is-mobile .publish-changes-info .publish-changes-add-linked-btn{flex-basis:100%;margin-top:10px}.is-mobile .publish-section-header-text{flex-basis:100%;margin-bottom:10px;margin-left:20px;margin-top:-8px}.is-mobile .publish-section{background:var(--background-secondary);border-radius:10px;padding:12px 12px 1px}.is-mobile .publish-changes-switch-site{flex-grow:0;margin-right:10px}}.release-notes-view .cm-scroller.is-readable-line-width{width:var(--line-width);max-width:var(--max-width);margin:0 auto}.search-results-info{border-bottom:none}.obsidian-banner.solid{border-bottom:var(--divider-width) solid var(--divider-color)}.contextual-typography .markdown-preview-view div.has-banner-icon.obsidian-banner-wrapper{overflow:visible}.theme-dark .markdown-preview-view img.emoji{opacity:1}body.theme-dark .button-default,body.theme-light .button-default{border:none;box-shadow:none;height:var(--input-height);background:var(--background-modifier-hover);color:var(--text-normal);font-size:revert;font-weight:500;transform:none;transition:all .1s linear;padding:0 20px}body.theme-dark .button-default:hover,body.theme-light .button-default:hover{border:none;background:var(--background-modifier-border-hover);box-shadow:none;transform:none;transition:all .1s linear}body.theme-dark .button-default:active,body.theme-dark .button-default:focus,body.theme-light .button-default:active,body.theme-light .button-default:focus{box-shadow:none}body .button-default.blue{background-color:var(--color-blue)!important}.button-default.red{background-color:var(--color-red)!important}.button-default.green{background-color:var(--color-green)!important}.button-default.yellow{background-color:var(--color-yellow)!important}.button-default.purple{background-color:var(--color-purple)!important}.workspace-leaf-content[data-type=calendar] .view-content{padding:5px 0 0 0}.mod-root #calendar-container{width:var(--line-width);max-width:var(--max-width);margin:0 auto;padding:0}body{--calendar-dot-active:var(--text-faint);--calendar-dot-today:var(--text-accent)}#calendar-container{padding:0 var(--size-4-4) var(--size-4-1);--color-background-day-empty:var(--background-secondary-alt);--color-background-day-active:var(--background-modifier-hover);--color-background-day-hover:var(--background-modifier-hover);--color-dot:var(--text-faint);--calendar-text-active:inherit;--color-text-title:var(--text-normal);--color-text-heading:var(--text-muted);--color-text-day:var(--text-normal);--color-text-today:var(--text-normal);--color-arrow:var(--text-faint);--color-background-day-empty:transparent}#calendar-container .table{border-collapse:separate;table-layout:fixed}#calendar-container h2{font-weight:400;font-size:var(--h2)}#calendar-container .arrow{cursor:var(--cursor);width:22px;border-radius:4px;padding:3px 7px}#calendar-container .arrow svg{width:12px;height:12px;color:var(--text-faint);opacity:.7}#calendar-container .arrow:hover{fill:var(--text-muted);color:var(--text-muted);background-color:var(--background-modifier-hover)}#calendar-container .arrow:hover svg{color:var(--text-muted);opacity:1}#calendar-container tr th{padding:2px 0 4px;font-weight:500;letter-spacing:.1em;font-size:var(--font-adaptive-smallest)}#calendar-container tr th:first-child{padding-left:0!important}#calendar-container tr td{padding:2px 0 0 0;border-radius:var(--radius-m);cursor:var(--cursor);border:1px solid transparent;transition:none}#calendar-container tr td:first-child{padding-left:0!important}#calendar-container .nav{padding:0;margin:var(--size-4-2) var(--size-4-1)}#calendar-container .dot{margin:0}#calendar-container .month,#calendar-container .title,#calendar-container .year{font-size:calc(var(--font-adaptive-small) + 2px);font-weight:400;color:var(--text-normal)}#calendar-container .today,#calendar-container .today.active{color:var(--text-accent);font-weight:600}#calendar-container .today .dot,#calendar-container .today.active .dot{fill:var(--calendar-dot-today)}#calendar-container .active .task{stroke:var(--text-faint)}#calendar-container .active{color:var(--text-normal)}#calendar-container .reset-button{text-transform:none;letter-spacing:0;font-size:var(--font-adaptive-smaller);font-weight:500;color:var(--text-muted);border-radius:4px;margin:0;padding:2px 8px}#calendar-container .reset-button:hover{color:var(--text-normal);background-color:var(--background-modifier-hover)}#calendar-container .day,#calendar-container .reset-button,#calendar-container .week-num{cursor:var(--cursor)}#calendar-container .day.adjacent-month{color:var(--text-faint);opacity:1}#calendar-container .day{padding:2px 4px 4px}#calendar-container .day,#calendar-container .week-num{font-size:calc(var(--font-adaptive-smaller) + 5%)}#calendar-container .active,#calendar-container .active.today,#calendar-container .day:hover,#calendar-container .week-num:hover{background-color:var(--color-background-day-active);color:var(--calendar-text-active)}#calendar-container .active .dot{fill:var(--calendar-dot-active)}#calendar-container .active .task{stroke:var(--text-faint)}.block-language-chart canvas,.block-language-dataviewjs canvas{margin:1em 0}.theme-dark,.theme-light{--chart-color-1:var(--color-blue);--chart-color-2:var(--color-red);--chart-color-3:var(--color-yellow);--chart-color-4:var(--color-green);--chart-color-5:var(--color-orange);--chart-color-6:var(--color-purple);--chart-color-7:var(--color-cyan);--chart-color-8:var(--color-pink)}.checklist-plugin-main .group .classic,.checklist-plugin-main .group .compact,.checklist-plugin-main .group .page,.checklist-plugin-main .group svg{cursor:var(--cursor)}.workspace .view-content .checklist-plugin-main{padding:10px 10px 15px 15px;--todoList-togglePadding--compact:2px;--todoList-listItemMargin--compact:2px}.checklist-plugin-main .title{font-weight:400;color:var(--text-muted);font-size:var(--font-adaptive-small)}.checklist-plugin-main .group svg{fill:var(--text-faint)}.checklist-plugin-main .group svg:hover{fill:var(--text-normal)}.checklist-plugin-main .group .title:hover{color:var(--text-normal)}.checklist-plugin-main .group:not(:last-child){border-bottom:1px solid var(--background-modifier-border)}.checklist-plugin-main .group{padding:0 0 2px 0}.checklist-plugin-main .group .classic:last-child,.checklist-plugin-main .group .compact:last-child{margin-bottom:10px}.checklist-plugin-main .group .classic,.checklist-plugin-main .group .compact{font-size:var(--font-adaptive-small)}.checklist-plugin-main .group .classic,.checklist-plugin-main .group .compact{background:rgba(0,0,0,0);border-radius:0;margin:1px auto;padding:0}.checklist-plugin-main .group .classic .content{padding:0}.checklist-plugin-main .group .classic:hover,.checklist-plugin-main .group .compact:hover{background:rgba(0,0,0,0)}.markdown-preview-view.checklist-plugin-main ul>li:not(.task-list-item)::before{display:none}.checklist-plugin-main .group .compact>.toggle .checked{background:var(--text-accent);top:-1px;left:-1px;height:18px;width:18px}.checklist-plugin-main .compact .toggle:hover{opacity:1!important}.checklist-plugin-main .group .count{font-size:var(--font-adaptive-smaller);padding:0;background:rgba(0,0,0,0);font-weight:400;color:var(--text-faint)}.checklist-plugin-main .group .group-header:hover .count{color:var(--text-muted)}.checklist-plugin-main .group .checkbox{border:1px solid var(--background-modifier-border-hover);min-height:18px;min-width:18px;height:18px;width:18px}.checklist-plugin-main .group .checkbox:hover{border:1px solid var(--background-modifier-border-focus)}.checklist-plugin-main button:active,.checklist-plugin-main button:focus,.checklist-plugin-main button:hover{box-shadow:none!important}.checklist-plugin-main button.collapse{padding:0}body:not(.is-mobile) .checklist-plugin-main button.collapse svg{width:18px;height:18px}.is-mobile .checklist-plugin-main .group-header .title{flex-grow:1;flex-shrink:0}.is-mobile .checklist-plugin-main button{width:auto}.is-mobile .checklist-plugin-main.markdown-preview-view ul{padding-inline-start:0}.is-mobile .workspace .view-content .checklist-plugin-main{padding-bottom:50px}body #cMenuModalBar{box-shadow:0 2px 20px var(--shadow-color)}body #cMenuModalBar .cMenuCommandItem{cursor:var(--cursor)}body #cMenuModalBar button.cMenuCommandItem:hover{background-color:var(--background-modifier-hover)}.MiniSettings-statusbar-button{padding-top:0;padding-bottom:0}.dataview-inline-lists .markdown-preview-view .dataview-ul,.dataview-inline-lists .markdown-source-view .dataview-ul{--list-spacing:0}.dataview-inline-lists .markdown-preview-view .dataview-ul li:not(:last-child):after,.dataview-inline-lists .markdown-source-view .dataview-ul li:not(:last-child):after{content:", "}.dataview-inline-lists .markdown-preview-view ul.dataview-ul>li::before,.dataview-inline-lists .markdown-source-view ul.dataview-ul>li::before{display:none}.dataview-inline-lists .markdown-preview-view .dataview-ul li,.dataview-inline-lists .markdown-source-view .dataview-ul li{display:inline-block;padding-right:.25em}.markdown-rendered table.dataview{margin-block-start:0;margin-block-end:0}.markdown-preview-view .table-view-table>thead>tr>th,body .table-view-table>thead>tr>th{font-weight:400;font-size:var(--table-text-size);color:var(--text-muted);border-bottom:var(--table-border-width) solid var(--table-border-color);cursor:var(--cursor)}table.dataview ul.dataview-ul{list-style:none;padding-inline-start:0;margin-block-start:0em!important;margin-block-end:0em!important}.markdown-preview-view:not(.cards) .table-view-table>tbody>tr>td,.markdown-source-view.mod-cm6:not(.cards) .table-view-table>tbody>tr>td{max-width:var(--max-col-width)}body .dataview.small-text{color:var(--text-faint)}body:not(.row-hover) .dataview.task-list-basic-item:hover,body:not(.row-hover) .dataview.task-list-item:hover,body:not(.row-hover) .table-view-table>tbody>tr:hover{background-color:rgba(0,0,0,0)!important;box-shadow:none}body.row-hover .dataview.task-list-basic-item:hover,body.row-hover .dataview.task-list-item:hover,body.row-hover .table-view-table>tbody>tr:hover{background-color:var(--table-row-background-hover)!important}body .dataview-error{background-color:rgba(0,0,0,0)}.dataview.dataview-error,.markdown-source-view.mod-cm6 .cm-content .dataview.dataview-error{color:var(--text-muted)}body div.dataview-error-box{min-height:0;border:none;background-color:rgba(0,0,0,0);font-size:var(--table-text-size);border-radius:var(--radius-m);padding:15px 0;justify-content:flex-start}body div.dataview-error-box p{margin-block-start:0;margin-block-end:0;color:var(--text-faint)}table.dataview:has(+.dataview-error-box){display:none}.trim-cols .markdown-preview-view .table-view-table>tbody>tr>td,.trim-cols .markdown-source-view.mod-cm6 .table-view-table>tbody>tr>td,.trim-cols .markdown-source-view.mod-cm6 .table-view-table>thead>tr>th{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}ul .dataview .task-list-basic-item:hover,ul .dataview .task-list-item:hover{background-color:rgba(0,0,0,0);box-shadow:none}body .dataview.result-group{padding-left:0}body .dataview .inline-field-standalone-value,body .dataview.inline-field-key,body .dataview.inline-field-value{font-family:var(--font-text);font-size:calc(var(--font-adaptive-normal) - 2px);background:rgba(0,0,0,0);color:var(--text-muted)}body .dataview.inline-field-key{padding:0}body .dataview .inline-field-standalone-value{padding:0}body .dataview.inline-field-key::after{margin-left:3px;content:"|";color:var(--background-modifier-border)}body .dataview.inline-field-value{padding:0 1px 0 3px}.markdown-preview-view .block-language-dataview table.calendar th{border:none;cursor:default;background-image:none}.markdown-preview-view .block-language-dataview table.calendar .day{font-size:var(--font-adaptive-small)}.database-plugin__navbar,.database-plugin__scroll-container,.database-plugin__table{width:100%}.dbfolder-table-container{--font-adaptive-normal:var(--table-text-size);--font-size-text:12px}.database-plugin__cell_size_wide .database-plugin__td{padding:.15rem}.database-plugin__table{border-spacing:0!important}.MuiAppBar-root{background-color:rgba(0,0,0,0)!important}.workspace-leaf-content .view-content.dictionary-view-content{padding:0}div[data-type=dictionary-view] .contents{padding-bottom:2rem}div[data-type=dictionary-view] .results>.container{background-color:rgba(0,0,0,0);margin-top:0;max-width:none;padding:0 10px}div[data-type=dictionary-view] .error,div[data-type=dictionary-view] .errorDescription{text-align:left;font-size:var(--font-adaptive-small);padding:10px 12px 0;margin:0}div[data-type=dictionary-view] .results>.container h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:var(--font-adaptive-smallest);font-weight:500;padding:5px 7px 0 2px;margin-bottom:6px}div[data-type=dictionary-view] .container .main{border-radius:0;background-color:rgba(0,0,0,0);font-size:var(--font-adaptive-smaller);line-height:1.3;color:var(--text-muted);padding:5px 0 0}div[data-type=dictionary-view] .main .definition{padding:10px;border:1px solid var(--background-modifier-border);border-radius:5px;margin:10px 0 5px;background-color:var(--background-primary)}div[data-type=dictionary-view] .main .definition:last-child{border:1px solid var(--background-modifier-border)}div[data-type=dictionary-view] .main .synonyms{padding:10px 0 0}div[data-type=dictionary-view] .main .synonyms p{margin:0}div[data-type=dictionary-view] .main .definition>blockquote{margin:0}div[data-type=dictionary-view] .main .label{color:var(--text-normal);margin-bottom:2px;font-size:var(--font-adaptive-smaller);font-weight:500}div[data-type=dictionary-view] .main .mark{color:var(--text-normal);background-color:var(--text-selection);box-shadow:none}div[data-type=dictionary-view] .main>.opener{font-size:var(--font-adaptive-small);color:var(--text-normal);padding-left:5px}body .excalidraw,body .excalidraw.theme--dark{--color-primary-light:var(--text-selection);--color-primary:var(--interactive-accent);--color-primary-darker:var(--interactive-accent-hover);--color-primary-darkest:var(--interactive-accent-hover);--ui-font:var(--font-interface);--island-bg-color:var(--background-secondary);--icon-fill-color:var(--text-normal);--button-hover:var(--background-modifier-hover);--button-gray-1:var(--background-modifier-hover);--button-gray-2:var(--background-modifier-hover);--focus-highlight-color:var(--background-modifier-border-focus);--default-bg-color:var(--background-primary);--default-border-color:var(--background-modifier-border);--input-border-color:var(--background-modifier-border);--link-color:var(--text-accent);--overlay-bg-color:rgba(255, 255, 255, 0.88);--text-primary-color:var(--text-normal)}.git-view-body .opener{text-transform:uppercase;letter-spacing:.05em;font-size:var(--font-adaptive-smallest);font-weight:500;padding:5px 7px 5px 10px;margin-bottom:6px}.git-view-body .file-view .opener{text-transform:none;letter-spacing:normal;font-size:var(--font-adaptive-smallest);font-weight:400;padding:initial;margin-bottom:0}.git-view-body .file-view .opener .collapse-icon{display:flex!important;margin-left:-7px}.git-view-body{margin-top:6px}.git-view-body .file-view{margin-left:4px}.git-view-body .file-view main:hover{color:var(--text-normal)}.git-view-body .file-view .tools .type{display:none!important}.git-view-body .file-view .tools{opacity:0;transition:opacity .1s}.git-view-body .file-view main:hover>.tools{opacity:1}.git-view-body .staged{margin-bottom:12px}.git-view-body .opener.open{color:var(--text-normal)}div[data-type=git-view] .search-input-container{margin-left:0;width:100%}.git-view-body .opener .collapse-icon{display:none!important}.git-view-body main{background-color:var(--background-primary)!important;width:initial!important}.git-view-body .file-view>main:not(.topLevel){margin-left:7px}div[data-type=git-view] .commit-msg{min-height:2.5em!important;height:2.5em!important;padding:6.5px 8px!important}div[data-type=git-view] .search-input-clear-button{bottom:5.5px}.mod-macos.hider-frameless .workspace-ribbon{border:none}.is-tablet.hider-ribbon{--ribbon-width:0px}.is-tablet.hider-ribbon .side-dock-ribbon{display:none}.hider-ribbon .workspace-ribbon{padding:0}:root{--hider-ribbon-display:none}.ribbon-bottom-left-hover:not(.is-mobile){--hider-ribbon-display:flex}.hider-vault .nav-folder.mod-root>.nav-folder-title{height:4px}.hider-ribbon .workspace-ribbon-collapse-btn{display:none}.hider-ribbon .workspace-ribbon.mod-right{pointer-events:none}.hider-ribbon .workspace-ribbon.mod-left{position:absolute;border-right:0px;margin:0;height:var(--header-height);overflow:visible;flex-basis:0;bottom:0;top:auto;display:var(--hider-ribbon-display)!important;flex-direction:row;z-index:17;opacity:0;transition:opacity .25s ease-in-out;filter:drop-shadow(2px 10px 30px rgba(0, 0, 0, .2));gap:0}.hider-ribbon .side-dock-actions,.hider-ribbon .side-dock-settings{flex-direction:row;display:var(--hider-ribbon-display);border-top:var(--border-width) solid var(--background-modifier-border);background:var(--background-secondary);margin:0;position:relative;gap:var(--size-2-2)}.hider-ribbon .side-dock-actions{padding-left:8px}.hider-ribbon .side-dock-settings{border-right:var(--border-width) solid var(--background-modifier-border);border-top-right-radius:var(--radius-m);padding:0 var(--size-2-2)}.hider-ribbon .workspace-ribbon.mod-left .side-dock-ribbon-action{display:var(--hider-ribbon-display);margin:7px 0 8px}.hider-ribbon .workspace-ribbon.mod-left:hover{opacity:1;transition:opacity .25s ease-in-out}.hider-ribbon .workspace-ribbon.mod-left .workspace-ribbon-collapse-btn{opacity:0}.hider-ribbon .workspace-split.mod-left-split{margin:0}.hider-ribbon .workspace-leaf-content .item-list{padding-bottom:40px}.popover.hover-editor{--folding-offset:10px}.theme-dark,.theme-light{--he-title-bar-inactive-bg:var(--background-secondary);--he-title-bar-inactive-pinned-bg:var(--background-secondary);--he-title-bar-active-pinned-bg:var(--background-secondary);--he-title-bar-active-bg:var(--background-secondary);--he-title-bar-inactive-fg:var(--text-muted);--he-title-bar-active-fg:var(--text-normal);--he-title-bar-font-size:14px}.theme-light{--popover-shadow:0px 2.7px 3.1px rgba(0, 0, 0, 0.032),0px 5.9px 8.7px rgba(0, 0, 0, 0.052),0px 10.4px 18.1px rgba(0, 0, 0, 0.071),0px 20px 40px rgba(0, 0, 0, 0.11)}.theme-dark{--popover-shadow:0px 2.7px 3.1px rgba(0, 0, 0, 0.081),0px 5.9px 8.7px rgba(0, 0, 0, 0.131),0px 10.4px 18.1px rgba(0, 0, 0, 0.18),0px 20px 40px rgba(0, 0, 0, 0.28)}.popover.hover-editor:not(.snap-to-viewport){--max-width:92%}.popover.hover-editor:not(.snap-to-viewport) .markdown-preview-view,.popover.hover-editor:not(.snap-to-viewport) .markdown-source-view .cm-content{font-size:90%}body .popover.hover-editor:not(.is-loaded){box-shadow:var(--popover-shadow)}body .popover.hover-editor:not(.is-loaded) .markdown-preview-view{padding:15px 0 0 0}body .popover.hover-editor:not(.is-loaded) .view-content{height:100%;background-color:var(--background-primary)}body .popover.hover-editor:not(.is-loaded) .view-actions{height:auto}body .popover.hover-editor:not(.is-loaded) .popover-content{border:1px solid var(--background-modifier-border-hover)}body .popover.hover-editor:not(.is-loaded) .popover-titlebar{padding:0 4px}body .popover.hover-editor:not(.is-loaded) .popover-titlebar .popover-title{padding-left:4px;letter-spacing:-.02em;font-weight:var(--title-weight)}body .popover.hover-editor:not(.is-loaded) .markdown-embed{height:auto;font-size:unset;line-height:unset}body .popover.hover-editor:not(.is-loaded) .markdown-embed .markdown-preview-view{padding:0}body .popover.hover-editor:not(.is-loaded).show-navbar .popover-titlebar{border-bottom:var(--border-width) solid var(--background-modifier-border)}body .popover.hover-editor:not(.is-loaded) .popover-action,body .popover.hover-editor:not(.is-loaded) .popover-header-icon{cursor:var(--cursor);margin:4px 0;padding:4px 3px;border-radius:var(--radius-m);color:var(--icon-color)}body .popover.hover-editor:not(.is-loaded) .popover-action.mod-pin-popover,body .popover.hover-editor:not(.is-loaded) .popover-header-icon.mod-pin-popover{padding:4px 2px}body .popover.hover-editor:not(.is-loaded) .popover-action svg,body .popover.hover-editor:not(.is-loaded) .popover-header-icon svg{opacity:var(--icon-muted)}body .popover.hover-editor:not(.is-loaded) .popover-action:hover,body .popover.hover-editor:not(.is-loaded) .popover-header-icon:hover{background-color:var(--background-modifier-hover);color:var(--icon-color-hover)}body .popover.hover-editor:not(.is-loaded) .popover-action:hover svg,body .popover.hover-editor:not(.is-loaded) .popover-header-icon:hover svg{opacity:1;transition:opacity .1s ease-in-out}body .popover.hover-editor:not(.is-loaded) .popover-action.is-active,body .popover.hover-editor:not(.is-loaded) .popover-header-icon.is-active{color:var(--icon-color)}body.minimal-dark-black.theme-dark,body.minimal-dark-tonal.theme-dark,body.minimal-light-tonal.theme-light,body.minimal-light-white.theme-light,body.theme-dark{--kanban-border:0px}body:not(.is-mobile) .kanban-plugin__grow-wrap>textarea:focus{box-shadow:none}body:not(.minimal-icons-off) .kanban-plugin svg.cross{height:14px;width:14px}body .kanban-plugin__icon>svg,body .kanban-plugin__lane-settings-button svg{width:18px;height:18px}body .kanban-plugin{--kanban-border:var(--border-width);--interactive-accent:var(--text-selection);--interactive-accent-hover:var(--background-modifier-hover);--text-on-accent:var(--text-normal);background-color:var(--background-primary)}body .kanban-plugin__markdown-preview-view{font-family:var(--font-text)}body .kanban-plugin__board>div{margin:0 auto}body .kanban-plugin__checkbox-label{color:var(--text-muted)}body .kanban-plugin__item-markdown ul{margin:0}body .kanban-plugin__item-content-wrapper{box-shadow:none}body .kanban-plugin__grow-wrap::after,body .kanban-plugin__grow-wrap>textarea{padding:0;border:0;border-radius:0}body .kanban-plugin__grow-wrap::after,body .kanban-plugin__grow-wrap>textarea,body .kanban-plugin__item-title p,body .kanban-plugin__markdown-preview-view{font-size:var(--font-ui-medium);line-height:1.3}body .kanban-plugin__item{background-color:var(--background-primary)}body .kanban-plugin__item-title-wrapper{align-items:center}body .kanban-plugin__lane-form-wrapper{border:1px solid var(--background-modifier-border)}body .kanban-plugin__lane-header-wrapper{border-bottom:0}body .kanban-plugin__lane-header-wrapper .kanban-plugin__grow-wrap>textarea,body .kanban-plugin__lane-input-wrapper .kanban-plugin__grow-wrap>textarea,body .kanban-plugin__lane-title p{background:rgba(0,0,0,0);color:var(--text-normal);font-size:var(--font-ui-medium);font-weight:500}body .kanban-plugin__item-input-wrapper .kanban-plugin__grow-wrap>textarea{padding:0;border-radius:0;height:auto}body .kanban-plugin__item-form .kanban-plugin__grow-wrap{background-color:var(--background-primary)}body .kanban-plugin__item-input-wrapper .kanban-plugin__grow-wrap>textarea::placeholder{color:var(--text-faint)}body .kanban-plugin__item .kanban-plugin__item-edit-archive-button,body .kanban-plugin__item button.kanban-plugin__item-edit-button,body .kanban-plugin__item-settings-actions>button,body .kanban-plugin__lane button.kanban-plugin__lane-settings-button,body .kanban-plugin__lane button.kanban-plugin__lane-settings-button.is-enabled,body .kanban-plugin__lane-action-wrapper>button{background:rgba(0,0,0,0);transition:color .1s ease-in-out}body .kanban-plugin__item .kanban-plugin__item-edit-archive-button:hover,body .kanban-plugin__item button.kanban-plugin__item-edit-button.is-enabled,body .kanban-plugin__item button.kanban-plugin__item-edit-button:hover,body .kanban-plugin__lane button.kanban-plugin__lane-settings-button.is-enabled,body .kanban-plugin__lane button.kanban-plugin__lane-settings-button:hover{color:var(--text-normal);transition:color .1s ease-in-out;background:rgba(0,0,0,0)}body .kanban-plugin__new-lane-button-wrapper{position:fixed;bottom:30px}body .kanban-plugin__lane-items>.kanban-plugin__placeholder:only-child{border:1px dashed var(--background-modifier-border);height:2em}body .kanban-plugin__item-postfix-button-wrapper{align-self:flex-start}body .kanban-plugin__item button.kanban-plugin__item-postfix-button.is-enabled,body .kanban-plugin__item button.kanban-plugin__item-prefix-button.is-enabled,body .kanban-plugin__lane button.kanban-plugin__lane-settings-button.is-enabled{color:var(--text-muted)}body .kanban-plugin button{box-shadow:none;cursor:var(--cursor);height:auto}body .kanban-plugin__item button.kanban-plugin__item-postfix-button:hover,body .kanban-plugin__item button.kanban-plugin__item-prefix-button:hover,body .kanban-plugin__lane button.kanban-plugin__lane-settings-button:hover{background-color:var(--background-modifier-hover)}body .kanban-plugin__item-button-wrapper>button{color:var(--text-muted);font-weight:400;background:rgba(0,0,0,0);min-height:calc(var(--input-height) + 8px)}body .kanban-plugin__item-button-wrapper>button:hover{color:var(--text-normal);background:var(--background-modifier-hover)}body .kanban-plugin__item-button-wrapper>button:focus{box-shadow:none}body .kanban-plugin__item-button-wrapper{padding:1px 6px 5px;border-top:none}body .kanban-plugin__lane-setting-wrapper>div:last-child{border:none;margin:0}body .kanban-plugin.something-is-dragging{cursor:grabbing;cursor:-webkit-grabbing}body .kanban-plugin__item.is-dragging{box-shadow:0 5px 30px rgba(0,0,0,.15),0 0 0 2px var(--text-selection)}body .kanban-plugin__lane-items{border:var(--kanban-border) solid var(--background-modifier-border);padding:0 4px;margin:0;background-color:var(--background-secondary)}body .kanban-plugin__lane{background:rgba(0,0,0,0);padding:0;border:var(--border-width) solid transparent}body .kanban-plugin__lane.is-dragging{box-shadow:0 5px 30px rgba(0,0,0,.15);border:1px solid var(--background-modifier-border)}body .kanban-plugin__lane .kanban-plugin__item-button-wrapper{border-top-left-radius:8px;border-top-right-radius:8px;border-top:1px solid var(--background-modifier-border);border-bottom-width:0;padding:4px 4px 0 4px}body .kanban-plugin__lane.will-prepend .kanban-plugin__lane-items{border-radius:8px}body .kanban-plugin__lane.will-prepend .kanban-plugin__item-form{border-top:1px solid var(--background-modifier-border);border-radius:8px 8px 0 0;padding:4px 4px 0;border-bottom-width:0}body .kanban-plugin__lane.will-prepend .kanban-plugin__item-form+.kanban-plugin__lane-items{border-top-width:0;border-radius:0 0 8px 8px}body .kanban-plugin__lane.will-prepend .kanban-plugin__item-button-wrapper+.kanban-plugin__lane-items{border-top-width:0;border-radius:0 0 8px 8px}body .kanban-plugin__lane:not(.will-prepend) .kanban-plugin__item-button-wrapper,body .kanban-plugin__lane:not(.will-prepend) .kanban-plugin__item-form{border-top:none;border-radius:0 0 8px 8px}body .kanban-plugin__lane:not(.will-prepend) .kanban-plugin__item-button-wrapper{padding:0 4px 4px 4px;border-bottom-width:1px}body .kanban-plugin__lane:not(.will-prepend) .kanban-plugin__lane-items{border-bottom:none;border-top-width:1px;border-radius:8px 8px 0 0}body .kanban-plugin__item-form .kanban-plugin__item-input-wrapper{min-height:calc(var(--input-height) + 8px);display:flex;justify-content:center}body .kanban-plugin__item-button-wrapper,body .kanban-plugin__item-form{background-color:var(--background-secondary);border:var(--kanban-border) solid var(--background-modifier-border)}body .kanban-plugin__item-form{padding:0 4px 5px}body .kanban-plugin__markdown-preview-view ol,body .kanban-plugin__markdown-preview-view ol.contains-task-list .contains-task-list,body .kanban-plugin__markdown-preview-view ul,body .kanban-plugin__markdown-preview-view ul.contains-task-list .contains-task-list{padding-inline-start:1.8em!important}@media(max-width:400pt){.kanban-plugin__board{flex-direction:column!important}.kanban-plugin__lane{width:100%!important;margin-bottom:1rem!important}}body .cm-heading-marker{cursor:var(--cursor);padding-left:10px}.theme-light{--leaflet-buttons:var(--bg1);--leaflet-borders:rgba(0,0,0,0.1)}.theme-dark{--leaflet-buttons:var(--bg2);--leaflet-borders:rgba(255,255,255,0.1)}.leaflet-top{transition:top .1s linear}body .leaflet-container{background-color:var(--background-secondary);font-family:var(--font-interface)}.leaflet-control-attribution{display:none}.leaflet-popup-content{margin:10px}.block-language-leaflet{border-radius:var(--radius-m);overflow:hidden;border:var(--border-width) solid var(--background-modifier-border)}.map-wide .block-language-leaflet{border-radius:var(--radius-l)}.map-max .block-language-leaflet{border-radius:var(--radius-xl)}.workspace-leaf-content[data-type=obsidian-leaflet-map-view] .block-language-leaflet{border-radius:0;border:none}.map-100 .block-language-leaflet{border-radius:0;border-left:none;border-right:none}.block-language-leaflet .leaflet-control-expandable-list .input-container .input-item>input{appearance:none}body .block-language-leaflet .leaflet-bar.disabled>a{background-color:rgba(0,0,0,0);opacity:.3}body .leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}body .leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}body .leaflet-control-layers-toggle{border-radius:4px}body .block-language-leaflet .leaflet-control-expandable,body .block-language-leaflet .leaflet-control-has-actions .control-actions.expanded,body .block-language-leaflet .leaflet-distance-control,body .leaflet-bar,body .leaflet-bar a,body .leaflet-control-layers-expanded,body .leaflet-control-layers-toggle{background-color:var(--leaflet-buttons);color:var(--text-muted);border:none;user-select:none}body .leaflet-bar a.leaflet-disabled,body .leaflet-bar a.leaflet-disabled:hover{background-color:var(--leaflet-buttons);color:var(--text-faint);opacity:.6;cursor:not-allowed}body .leaflet-control a{cursor:var(--cursor);color:var(--text-normal)}body .leaflet-bar a:hover{background-color:var(--background-modifier-hover);color:var(--text-normal);border:none}body .leaflet-touch .leaflet-control-layers{background-color:var(--leaflet-buttons)}body .leaflet-touch .leaflet-bar,body .leaflet-touch .leaflet-control-layers{border-radius:5px;box-shadow:2px 0 8px 0 rgba(0,0,0,.1);border:1px solid var(--ui1)}body .block-language-leaflet .leaflet-control-has-actions .control-actions{box-shadow:0;border:1px solid var(--ui1)}body .leaflet-control-expandable-list .leaflet-bar{box-shadow:none;border-radius:0}body .block-language-leaflet .leaflet-distance-control{padding:4px 10px;height:auto;cursor:var(--cursor)!important}body .block-language-leaflet .leaflet-marker-link-popup>.leaflet-popup-content-wrapper>*{font-size:var(--font-adaptive-small);font-family:var(--font-interface)}body .block-language-leaflet .leaflet-marker-link-popup>.leaflet-popup-content-wrapper{padding:4px 10px!important}.leaflet-marker-icon svg path{stroke:var(--background-primary);stroke-width:18px}.map-view-marker-name{font-weight:400}.workspace-leaf-content[data-type=map] .graph-controls{background-color:var(--background-primary)}body:not(.is-mobile):not(.plugin-sliding-panes-rotate-header) .workspace-split.mod-root .workspace-leaf-content[data-type=map] .view-header{position:fixed;background:rgba(0,0,0,0)!important;width:100%;z-index:99}body:not(.plugin-sliding-panes-rotate-header) .workspace-leaf-content[data-type=map] .view-header-title{display:none}body:not(.is-mobile):not(.plugin-sliding-panes-rotate-header) .workspace-leaf-content[data-type=map] .view-actions{background:rgba(0,0,0,0)}body:not(.is-mobile):not(.plugin-sliding-panes-rotate-header) .workspace-leaf-content[data-type=map] .view-content{height:100%}body:not(.is-mobile):not(.plugin-sliding-panes-rotate-header) .workspace-leaf-content[data-type=map] .leaflet-top.leaflet-right{top:var(--header-height)}.obsidian-metatable{--metatable-font-size:calc(var(--font-adaptive-normal) - 2px);--metatable-font-family:var(--font-interface);--metatable-background:transparent;--metatable-foreground:var(--text-faint);--metatable-key-background:transparent;--metatable-key-border-width:0;--metatable-key-border-color:transparent;--metatable-value-background:transparent;padding-bottom:.5rem}.obsidian-metatable::part(key),.obsidian-metatable::part(value){border-bottom:0 solid var(--background-modifier-border);padding:.1rem 0;text-overflow:ellipsis;overflow:hidden}.obsidian-metatable::part(key){font-weight:400;color:var(--tx3);font-size:calc(var(--font-adaptive-normal) - 2px)}.obsidian-metatable::part(value){font-size:calc(var(--font-adaptive-normal) - 2px);color:var(--tx1)}body .NLT__header-menu-header-container{font-size:85%}body .NLT__button{background:rgba(0,0,0,0);box-shadow:none;color:var(--text-muted)}body .NLT__button:active,body .NLT__button:focus,body .NLT__button:hover{background:rgba(0,0,0,0);color:var(--text-normal);box-shadow:none}.NLT__app .NLT__button{background:rgba(0,0,0,0);border:1px solid var(--background-modifier-border);box-shadow:0 .5px 1px 0 var(--btn-shadow-color);color:var(--text-muted);padding:2px 8px}.NLT__app .NLT__button:active,.NLT__app .NLT__button:focus,.NLT__app .NLT__button:hover{background:rgba(0,0,0,0);border-color:var(--background-modifier-border-hover);color:var(--text-normal);box-shadow:0 .5px 1px 0 var(--btn-shadow-color)}.NLT__td:nth-last-child(2),.NLT__th:nth-last-child(2){border-right:0}.NLT__app .NLT__td:last-child,.NLT__app .NLT__th:last-child{padding-right:0}.NLT__app .NLT__th{background-image:none!important}.NLT__app th.NLT__selectable:hover{background-color:rgba(0,0,0,0);cursor:var(--cursor)}.NLT__menu .NLT__menu-container{background-color:var(--background-secondary)}.NLT__menu .NLT__header-menu-item{font-size:var(--font-adaptive-small)}.NLT__menu .NLT__header-menu{padding:6px 4px}.NLT__menu .NLT__drag-menu{font-size:var(--font-adaptive-small);padding:6px 4px}.NLT__menu svg{color:var(--text-faint);margin-right:6px}.NLT__menu .NLT__selectable:hover,.NLT__menu .NLT__selected{background:rgba(0,0,0,0)}.NLT__menu .NLT__selected>.NLT__selectable{background-color:var(--background-modifier-hover)}.NLT__menu .NLT__selectable{cursor:var(--cursor)}.NLT__menu div.NLT__selectable{min-width:110px;border-radius:var(--radius-m);padding:3px 8px 3px 4px;margin:1px 2px 1px;cursor:var(--cursor);height:auto;line-height:20px}.NLT__menu div.NLT__selectable:hover{background-color:var(--background-modifier-hover)}.NLT__menu .NLT__textarea{font-size:var(--table-text-size)}.NLT__tfoot tr:hover td{background-color:rgba(0,0,0,0)}.modal .quickAddPrompt>h1,.modal .quickAddYesNoPrompt h1{margin-top:0;text-align:left!important;font-size:var(--h1);font-weight:600}.modal .quickAddYesNoPrompt p{text-align:left!important}.modal .quickAddYesNoPrompt button{font-size:var(--font-ui-small)}.modal .yesNoPromptButtonContainer{font-size:var(--font-ui-small);justify-content:flex-end}.quickAddModal .modal-content{padding:20px 2px 5px}div#quick-explorer{display:flex}div#quick-explorer span.explorable{align-items:center;color:var(--text-muted);display:flex;font-size:var(--font-adaptive-smaller);line-height:16px}div#quick-explorer span.explorable:last-of-type{font-size:var(--font-adaptive-smaller)}div#quick-explorer span.explorable.selected,div#quick-explorer span.explorable:hover{background-color:unset!important}div#quick-explorer span.explorable.selected .explorable-name,div#quick-explorer span.explorable:hover .explorable-name{color:var(--text-normal)}div#quick-explorer span.explorable.selected .explorable-separator,div#quick-explorer span.explorable:hover .explorable-separator{color:var(--text-normal)}div#quick-explorer .explorable-name{padding:0 4px;border-radius:4px}div#quick-explorer .explorable-separator::before{content:" ›"!important;font-size:1.3em;font-weight:400;margin:0}body:not(.colorful-active) .qe-popup-menu .menu-item:not(.is-disabled):not(.is-label).selected,body:not(.colorful-active) .qe-popup-menu .menu-item:not(.is-disabled):not(.is-label):hover{background-color:var(--background-modifier-hover);color:var(--text-normal)}body:not(.colorful-active) .qe-popup-menu .menu-item:not(.is-disabled):not(.is-label).selected .menu-item-icon,body:not(.colorful-active) .qe-popup-menu .menu-item:not(.is-disabled):not(.is-label):hover .menu-item-icon{color:var(--text-normal)}.workspace-leaf-content[data-type=recent-files] .view-content{padding-top:10px}.mod-root .workspace-leaf-content[data-type=reminder-list] main{max-width:var(--max-width);margin:0 auto;padding:0}.modal .reminder-actions .later-select{font-size:var(--font-settings-small);vertical-align:bottom;margin-left:3px}.modal .reminder-actions .icon{line-height:1}:not(.mod-root) .workspace-leaf-content[data-type=reminder-list] main{margin:0 auto;padding:15px}:not(.mod-root) .workspace-leaf-content[data-type=reminder-list] main .group-name{font-weight:500;color:var(--text-muted);font-size:var(--font-adaptive-small);padding-bottom:.5em;border-bottom:1px solid var(--background-modifier-border)}:not(.mod-root) .workspace-leaf-content[data-type=reminder-list] main .reminder-group .reminder-list-item{line-height:1.3;font-size:var(--font-adaptive-small)}:not(.mod-root) .workspace-leaf-content[data-type=reminder-list] main .reminder-group .no-reminders{color:var(--text-faint)}:not(.mod-root) .workspace-leaf-content[data-type=reminder-list] main .reminder-group .reminder-time{font-family:var(--font-text);font-size:var(--font-adaptive-small)}:not(.mod-root) .workspace-leaf-content[data-type=reminder-list] main .reminder-group .reminder-file{color:var(--text-faint)}body .modal .dtchooser{background-color:rgba(0,0,0,0)}body .modal .dtchooser .reminder-calendar .year-month{font-weight:400;font-size:var(--font-adaptive-normal);padding-bottom:10px}body .modal .dtchooser .reminder-calendar .year-month .month,body .modal .dtchooser .reminder-calendar .year-month .year{color:var(--text-normal)}body .modal .dtchooser .reminder-calendar .year-month .month-nav:first-child{background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z' clip-rule='evenodd' /%3E%3C/svg%3E")}body .modal .dtchooser .reminder-calendar .year-month .month-nav:last-child{background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z' clip-rule='evenodd' /%3E%3C/svg%3E")}body .modal .dtchooser .reminder-calendar .year-month .month-nav{-webkit-mask-size:20px 20px;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;color:var(--text-faint);cursor:var(--cursor);border-radius:var(--radius-m);padding:0;width:30px;display:inline-block}body .modal .dtchooser .reminder-calendar .year-month .month-nav:hover{color:var(--text-muted)}body .modal .dtchooser .reminder-calendar th{padding:.5em 0;font-size:var(--font-adaptive-smallest);font-weight:500;text-transform:uppercase;letter-spacing:.1em}body .modal .dtchooser .reminder-calendar .calendar-date{transition:background-color .1s ease-in;padding:.3em 0;border-radius:var(--radius-m)}body .modal .dtchooser .reminder-calendar .calendar-date.is-selected,body .modal .dtchooser .reminder-calendar .calendar-date:hover{transition:background-color .1s ease-in;background-color:var(--background-modifier-hover)!important}body .modal .dtchooser .reminder-calendar .calendar-date.is-selected{font-weight:var(--bold-weight);color:var(--text-accent)!important}body .markdown-preview-view th,body .markdown-source-view.mod-cm6 .dataview.table-view-table thead.table-view-thead tr th,body .table-view-table>thead>tr>th{cursor:var(--cursor);background-image:none}.markdown-source-view.mod-cm6 th{background-repeat:no-repeat;background-position:right}.style-settings-container[data-level="2"]{background:var(--background-secondary);border:1px solid var(--ui1);border-radius:5px;padding:10px 20px;margin:2px 0 2px -20px}.workspace-leaf-content[data-type=style-settings] div[data-id=instructions] .setting-item-name{display:none}.workspace-leaf-content[data-type=style-settings] div[data-id=instructions] .setting-item-description{color:var(--text-normal);font-size:var(--font-adaptive-smaller);padding-bottom:.5em}.workspace-leaf-content[data-type=style-settings] .view-content{padding:var(--size-4-4) 0}.workspace-leaf-content[data-type=style-settings] .view-content>div{width:var(--line-width);max-width:var(--max-width);margin:0 auto}.workspace-leaf-content[data-type=style-settings] .style-settings-heading[data-level="0"] .setting-item-name{padding-left:17px}.workspace-leaf-content[data-type=style-settings] .setting-item{max-width:100%;margin:0 auto}.workspace-leaf-content[data-type=style-settings] .setting-item-name{position:relative}.workspace-leaf-content[data-type=style-settings] .style-settings-collapse-indicator{position:absolute;left:0}.setting-item-heading.style-settings-heading,.style-settings-container .style-settings-heading{cursor:var(--cursor)}.modal.mod-settings .setting-item .pickr button.pcr-button{box-shadow:none;border-radius:40px;height:24px;width:24px}.setting-item .pickr .pcr-button:after,.setting-item .pickr .pcr-button:before{border-radius:40px;box-shadow:none;border:none}.setting-item.setting-item-heading.style-settings-heading.is-collapsed{border-bottom:1px solid var(--background-modifier-border)}.setting-item.setting-item-heading.style-settings-heading{border:0;padding:10px 0 5px;margin-bottom:0}.setting-item .style-settings-export,.setting-item .style-settings-import{text-decoration:none;font-size:var(--font-ui-small);font-weight:500;color:var(--text-muted);margin:0;padding:2px 8px;border-radius:5px;cursor:var(--cursor)}.setting-item .style-settings-export:hover,.setting-item .style-settings-import:hover{background-color:var(--background-modifier-hover);color:var(--text-normal);cursor:var(--cursor)}.mod-root .workspace-leaf-content[data-type=style-settings] .style-settings-container .setting-item:not(.setting-item-heading){flex-direction:row;align-items:center;padding:.5em 0}.workspace-split:not(.mod-root) .workspace-leaf-content[data-type=style-settings] .setting-item-name{font-size:var(--font-adaptive-smaller)}.themed-color-wrapper>div+div{margin-top:0;margin-left:6px}.theme-light .themed-color-wrapper>.theme-light{background-color:rgba(0,0,0,0)}.theme-light .themed-color-wrapper>.theme-dark{background-color:rgba(0,0,0,.8)}.theme-dark .themed-color-wrapper>.theme-dark{background-color:rgba(0,0,0,0)}@media(max-width:400pt){.workspace-leaf-content[data-type=style-settings] .setting-item-name{font-size:var(--font-adaptive-small)}.workspace-leaf-content[data-type=style-settings] .setting-item-info:has(.search-input-container){width:100%;margin-right:0}}body .todoist-query-title{display:inline;font-size:var(--h4);font-variant:var(--h4-variant);letter-spacing:.02em;color:var(--h4-color);font-weight:var(--h4-weight);font-style:var(--h4-style)}body .is-live-preview .block-language-todoist{padding-left:0}ul.todoist-task-list>li.task-list-item .task-list-item-checkbox{margin:0}body .todoist-refresh-button{display:inline;float:right;background:rgba(0,0,0,0);padding:5px 6px 0;margin-right:0}body .is-live-preview .todoist-refresh-button{margin-right:30px}body .todoist-refresh-button:hover{box-shadow:none;background-color:var(--background-modifier-hover)}.todoist-refresh-button svg{width:15px;height:15px;opacity:var(--icon-muted)}ul.todoist-task-list{margin-left:-.25em}.is-live-preview ul.todoist-task-list{padding-left:0;margin-left:.5em;margin-block-start:0;margin-block-end:0}.contains-task-list.todoist-task-list .task-metadata{font-size:var(--font-adaptive-small);display:flex;color:var(--text-muted);justify-content:space-between;margin-left:.1em;margin-bottom:.25rem}.is-live-preview .contains-task-list.todoist-task-list .task-metadata{padding-left:calc(var(--checkbox-size) + .6em)}.todoist-task-list .task-date.task-overdue{color:var(--color-orange)}body .todoist-p1>input[type=checkbox]{border:1px solid var(--color-red)}body .todoist-p1>input[type=checkbox]:hover{opacity:.8}body .todoist-p2>input[type=checkbox]{border:1px solid var(--color-yellow)}body .todoist-p2>input[type=checkbox]:hover{opacity:.8}body .todoist-p3>input[type=checkbox]{border:1px solid var(--color-blue)}body .todoist-p3>input[type=checkbox]:hover{opacity:.8}body.theme-light{--color-axis-label:var(--tx1);--color-tick-label:var(--tx2);--color-dot-fill:var(--ax1);--color-line:var(--ui1)}.tracker-axis-label{font-family:var(--font-interface)}.tracker-axis{color:var(--ui2)}.tabs-manager .chat-view{--assistant-message-color:var(--background-primary);--padding-md:var(--size-4-2) var(--size-4-3);--padding-lg:var(--size-4-3) var(--size-4-3);--chat-box-color:var(--background-primary)}.tabs-manager .chat-view .ow-dialogue-timeline{padding:var(--size-4-4) var(--size-4-3) var(--size-4-8)}.tabs-manager .chat-view .ow-dialogue-timeline .ow-message-bubble .ow-content-wrapper{box-shadow:none;border-color:var(--background-modifier-border);border-radius:var(--radius-m)}.tabs-manager .chat-view .ow-dialogue-timeline .ow-message-bubble.ow-user-bubble .ow-content-wrapper{border-width:0;background-color:var(--interactive-accent)}.tabs-manager .chat-view .input-area .input-form .chat-box{border-radius:0;box-shadow:none;grid-row:1;grid-column:1/3;height:100px;border:none;padding:var(--size-4-3) var(--size-4-4) var(--size-4-2)}.tabs-manager .chat-view .input-area .input-form .chat-box:hover{height:100px}.tabs-manager .chat-view .input-area{padding:0;gap:0}.tabs-manager .chat-view .header{border-bottom:1px solid var(--background-modifier-border)}.tabs-manager .chat-view .input-form{border-top:1px solid var(--background-modifier-border)}.tabs-manager .chat-view .input-area .input-form .chat-box .info-bar span{color:var(--text-faint)}.tabs-manager .chat-view .input-area .input-form .btn-new-chat{display:none}.zoom-plugin-header{--link-color:var(--text-normal);--link-decoration:none;font-size:var(--font-ui-small);padding:0;justify-content:center;margin:var(--size-4-2) auto;max-width:var(--max-width)}.zoom-plugin-header>.zoom-plugin-title{text-decoration:none;max-width:15em;overflow:hidden}.zoom-plugin-header>.zoom-plugin-delimiter{color:var(--text-faint);padding:0 var(--size-4-1)}.theme-dark.minimal-atom-dark{--color-red-rgb:225,109,118;--color-orange-rgb:209,154,102;--color-yellow-rgb:206,193,103;--color-green-rgb:152,195,121;--color-cyan-rgb:88,182,194;--color-blue-rgb:98,175,239;--color-purple-rgb:198,120,222;--color-pink-rgb:225,109,118;--color-red:#e16d76;--color-orange:#d19a66;--color-yellow:#cec167;--color-green:#98c379;--color-cyan:#58b6c2;--color-blue:#62afef;--color-purple:#c678de;--color-pink:#e16d76}.theme-light.minimal-atom-light{--color-red-rgb:228,87,73;--color-orange-rgb:183,107,2;--color-yellow-rgb:193,131,2;--color-green-rgb:80,161,80;--color-cyan-rgb:13,151,179;--color-blue-rgb:98,175,239;--color-purple-rgb:166,38,164;--color-pink-rgb:228,87,73;--color-red:#e45749;--color-orange:#b76b02;--color-yellow:#c18302;--color-green:#50a150;--color-cyan:#0d97b3;--color-blue:#62afef;--color-purple:#a626a4;--color-pink:#e45749}.theme-light.minimal-atom-light{--base-h:106;--base-s:0%;--base-l:98%;--accent-h:231;--accent-s:76%;--accent-l:62%;--bg1:#fafafa;--bg2:#eaeaeb;--bg3:rgba(0,0,0,.1);--ui1:#dbdbdc;--ui2:#d8d8d9;--tx1:#232324;--tx2:#8e8e90;--tx3:#a0a1a8;--hl1:rgba(180,180,183,0.3);--hl2:rgba(209,154,102,0.35)}.theme-light.minimal-atom-light.minimal-light-white{--bg3:#eaeaeb}.theme-dark.minimal-atom-dark,.theme-light.minimal-atom-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-atom-light.minimal-light-contrast .titlebar,.theme-light.minimal-atom-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-atom-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-atom-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:220;--base-s:12%;--base-l:18%;--accent-h:220;--accent-s:86%;--accent-l:65%;--bg1:#282c34;--bg2:#21252c;--bg3:#3a3f4b;--divider-color:#181a1f;--tab-outline-color:#181a1f;--tx1:#d8dae1;--tx2:#898f9d;--tx3:#5d6370;--hl1:rgba(114,123,141,0.3);--hl2:rgba(209,154,102,0.3);--sp1:#fff}.theme-dark.minimal-atom-dark.minimal-dark-black{--base-d:5%;--bg3:#282c34;--divider-color:#282c34;--tab-outline-color:#282c34}.theme-light.minimal-ayu-light{--color-red-rgb:230,80,80;--color-orange-rgb:250,141,62;--color-yellow-rgb:242,174,73;--color-green-rgb:108,191,67;--color-cyan-rgb:76,191,153;--color-blue-rgb:57,158,230;--color-purple-rgb:163,122,204;--color-pink-rgb:255,115,131;--color-red:#e65050;--color-orange:#fa8d3e;--color-yellow:#f2ae49;--color-green:#6CBF43;--color-cyan:#4cbf99;--color-blue:#399ee6;--color-purple:#a37acc;--color-pink:#ff7383}.theme-dark.minimal-ayu-dark{--color-red-rgb:255,102,102;--color-orange-rgb:250,173,102;--color-yellow-rgb:255,209,55;--color-green-rgb:135,217,108;--color-cyan-rgb:149,230,203;--color-blue-rgb:115,208,255;--color-purple-rgb:223,191,255;--color-pink-rgb:242,121,131;--color-red:#ff6666;--color-orange:#ffad66;--color-yellow:#ffd137;--color-green:#87D96C;--color-cyan:#95e6cb;--color-blue:#73d0ff;--color-purple:#dfbfff;--color-pink:#f27983}.theme-light.minimal-ayu-light{--base-h:210;--base-s:17%;--base-l:98%;--accent-h:36;--accent-s:100%;--accent-l:50%;--bg1:#fff;--bg2:#f8f9fa;--bg3:rgba(209,218,224,0.5);--ui1:#E6EAED;--tx1:#5C6165;--tx2:#8A9199;--tx3:#AAAEB0;--hl1:rgba(3,91,214,0.15)}.theme-dark.minimal-ayu-dark,.theme-light.minimal-ayu-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-ayu-light.minimal-light-contrast .titlebar,.theme-light.minimal-ayu-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-ayu-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-ayu-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:222;--base-s:22%;--base-l:15%;--accent-h:35;--accent-s:100%;--accent-l:60%;--bg1:#232937;--bg2:#1E2431;--bg3:rgba(51,61,80,0.5);--ui1:#333C4A;--ui2:#333C4A;--ui3:#333C4A;--tx1:#cccac2;--tx2:#707A8C;--tx3:#495063;--hl1:rgba(64,159,255,0.25)}.theme-dark.minimal-ayu-dark.minimal-dark-black{--accent-h:40;--accent-s:75%;--accent-l:61%;--bg3:#0E1017;--tx1:#BFBDB6;--divider-color:#11151C;--tab-outline-color:#11151C}.theme-light.minimal-catppuccin-light{--color-red-rgb:230,69,83;--color-orange-rgb:254,100,12;--color-yellow-rgb:223,142,29;--color-green-rgb:64,160,43;--color-cyan-rgb:23,146,154;--color-blue-rgb:33,102,246;--color-purple-rgb:137,56,239;--color-pink-rgb:234,119,203;--color-red:#E64553;--color-orange:#FE640C;--color-yellow:#DF8E1D;--color-green:#40A02B;--color-cyan:#17929A;--color-blue:#2166F6;--color-purple:#8938EF;--color-pink:#EA77CB}.theme-dark.minimal-catppuccin-dark{--color-red-rgb:235,153,156;--color-orange-rgb:239,160,118;--color-yellow-rgb:229,200,144;--color-green-rgb:166,209,138;--color-cyan-rgb:129,200,190;--color-blue-rgb:140,170,238;--color-purple-rgb:202,158,230;--color-pink-rgb:244,185,229;--color-red:#EB999C;--color-orange:#EFA076;--color-yellow:#E5C890;--color-green:#A6D18A;--color-cyan:#81C8BE;--color-blue:#8CAAEE;--color-purple:#CA9EE6;--color-pink:#F4B9E5}.theme-light.minimal-catppuccin-light{--base-h:228;--base-s:20%;--base-l:95%;--accent-h:11;--accent-s:59%;--accent-l:67%;--bg1:#F0F1F5;--bg2:#DCE0E8;--bg3:hsla(228,11%,65%,.25);--ui1:#CCD0DA;--ui2:#BCC0CC;--ui3:#ACB0BE;--tx1:#4D4F69;--tx2:#5D5F77;--tx3:#8D8FA2;--hl1:rgba(172,176,190,.3);--hl2:rgba(223,142,29,.3)}.theme-light.minimal-catppuccin-light.minimal-light-tonal{--bg2:#DCE0E8}.theme-light.minimal-catppuccin-light.minimal-light-white{--bg3:#F0F1F5;--ui1:#DCE0E8}.theme-dark.minimal-catppuccin-dark,.theme-light.minimal-catppuccin-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-catppuccin-light.minimal-light-contrast .titlebar,.theme-light.minimal-catppuccin-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-catppuccin-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-catppuccin-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:229;--base-s:19%;--base-l:23%;--accent-h:10;--accent-s:57%;--accent-l:88%;--bg1:#303446;--bg2:#242634;--bg3:hsla(229,13%,52%,0.25);--ui1:#41455A;--ui2:#51576D;--ui3:#626880;--tx1:#C6D0F5;--tx2:#A6ADCE;--tx3:#848BA7;--sp1:#242634;--hl1:rgba(98,104,128,.5);--hl2:rgba(223,142,29,.4)}.theme-dark.minimal-catppuccin-dark.minimal-dark-black{--ui1:#303446;--hl2:rgba(223,142,29,.5)}.theme-dark.minimal-dracula-dark{--color-red-rgb:255,85,85;--color-orange-rgb:255,184,108;--color-yellow-rgb:241,250,140;--color-green-rgb:80,250,123;--color-cyan-rgb:139,233,253;--color-blue-rgb:98,114,164;--color-purple-rgb:189,147,249;--color-pink-rgb:255,121,198;--color-red:#ff5555;--color-orange:#ffb86c;--color-yellow:#f1fa8c;--color-green:#50fa7b;--color-cyan:#8be9fd;--color-blue:#6272a4;--color-purple:#bd93f9;--color-pink:#ff79c6}.theme-dark.minimal-dracula-dark,.theme-light.minimal-dracula-light.minimal-light-contrast .titlebar,.theme-light.minimal-dracula-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-dracula-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:232;--base-s:16%;--base-l:19%;--accent-h:265;--accent-s:89%;--accent-l:78%;--bg1:#282a37;--bg2:#21222c;--ui2:#44475a;--ui3:#6272a4;--tx1:#f8f8f2;--tx2:#949FBE;--tx3:#6272a4;--hl1:rgba(134, 140, 170, 0.3);--hl2:rgba(189, 147, 249, 0.35)}.theme-dark.minimal-dracula-dark.minimal-dark-black{--ui1:#282a36}.theme-dark.minimal-eink-dark,.theme-light.minimal-eink-light{--collapse-icon-color:var(--text-normal);--icon-color-active:var(--bg1);--icon-color-hover:var(--bg1);--icon-color-focused:var(--bg1);--icon-opacity:1;--indentation-guide-color:var(--tx1);--indentation-guide-color-active:var(--tx1);--indentation-guide-width-active:3px;--interactive-normal:var(--bg1);--input-shadow:0 0 0 1px var(--tx1);--link-unresolved-opacity:1;--link-unresolved-decoration-style:dashed;--link-unresolved-decoration-color:var(--tx1);--metadata-label-background-active:var(--bg1);--metadata-input-background-active:var(--bg1);--modal-border-color:var(--tx1);--modal-border-width:2px;--nav-item-color-hover:var(--bg1);--nav-item-color-active:var(--bg1);--prompt-border-color:var(--tx1);--prompt-border-width:2px;--calendar-dot-active:var(--bg1);--calendar-dot-today:var(--bg1);--calendar-text-active:var(--bg1);--tag-border-width:1.25px;--tag-background:transparent;--tag-background-hover:transparent;--tag-border-color:var(--tx1);--tag-border-color-hover:var(--tx1);--text-on-accent:var(--bg1);--text-on-accent-inverted:var(--bg1)}.theme-dark.minimal-eink-dark.tabs-modern,.theme-light.minimal-eink-light.tabs-modern{--minimal-tab-text-color-active:var(--bg1);--tab-text-color-focused-active-current:var(--bg1)}.theme-dark.minimal-eink-dark .suggestion-container,.theme-light.minimal-eink-light .suggestion-container{border-width:3px}.theme-dark.minimal-eink-dark .cm-s-obsidian span.cm-inline-code,.theme-dark.minimal-eink-dark .markdown-rendered code,.theme-light.minimal-eink-light .cm-s-obsidian span.cm-inline-code,.theme-light.minimal-eink-light .markdown-rendered code{font-weight:600}.theme-dark.minimal-eink-dark .metadata-property-icon,.theme-light.minimal-eink-light .metadata-property-icon{--icon-color-focused:var(--tx1)}.theme-dark.minimal-eink-dark .checkbox-container,.theme-light.minimal-eink-light .checkbox-container{background-color:var(--bg1);box-shadow:0 0 0 1px var(--tx1);--toggle-thumb-color:var(--tx1)}.theme-dark.minimal-eink-dark .checkbox-container.is-enabled,.theme-light.minimal-eink-light .checkbox-container.is-enabled{background-color:var(--tx1);--toggle-thumb-color:var(--bg1)}.theme-dark.minimal-eink-dark .cm-s-obsidian span.cm-formatting-highlight,.theme-dark.minimal-eink-dark .cm-s-obsidian span.cm-highlight,.theme-dark.minimal-eink-dark .community-item .suggestion-highlight,.theme-dark.minimal-eink-dark .dropdown:hover,.theme-dark.minimal-eink-dark .horizontal-tab-nav-item:hover,.theme-dark.minimal-eink-dark .markdown-rendered mark,.theme-dark.minimal-eink-dark .status-bar .plugin-sync:hover .sync-status-icon.mod-success,.theme-dark.minimal-eink-dark .status-bar .plugin-sync:hover .sync-status-icon.mod-working,.theme-dark.minimal-eink-dark .status-bar-item.mod-clickable:hover,.theme-dark.minimal-eink-dark .suggestion-item.is-selected,.theme-dark.minimal-eink-dark .text-icon-button:hover,.theme-dark.minimal-eink-dark .vertical-tab-nav-item:hover,.theme-dark.minimal-eink-dark button,.theme-dark.minimal-eink-dark select:hover,.theme-dark.minimal-eink-dark:not(.colorful-active) .horizontal-tab-nav-item.is-active,.theme-dark.minimal-eink-dark:not(.colorful-active) .vertical-tab-nav-item.is-active,.theme-light.minimal-eink-light .cm-s-obsidian span.cm-formatting-highlight,.theme-light.minimal-eink-light .cm-s-obsidian span.cm-highlight,.theme-light.minimal-eink-light .community-item .suggestion-highlight,.theme-light.minimal-eink-light .dropdown:hover,.theme-light.minimal-eink-light .horizontal-tab-nav-item:hover,.theme-light.minimal-eink-light .markdown-rendered mark,.theme-light.minimal-eink-light .status-bar .plugin-sync:hover .sync-status-icon.mod-success,.theme-light.minimal-eink-light .status-bar .plugin-sync:hover .sync-status-icon.mod-working,.theme-light.minimal-eink-light .status-bar-item.mod-clickable:hover,.theme-light.minimal-eink-light .suggestion-item.is-selected,.theme-light.minimal-eink-light .text-icon-button:hover,.theme-light.minimal-eink-light .vertical-tab-nav-item:hover,.theme-light.minimal-eink-light button,.theme-light.minimal-eink-light select:hover,.theme-light.minimal-eink-light:not(.colorful-active) .horizontal-tab-nav-item.is-active,.theme-light.minimal-eink-light:not(.colorful-active) .vertical-tab-nav-item.is-active{color:var(--bg1)}.theme-light.minimal-eink-light{--base-h:0;--base-s:0%;--base-l:100%;--accent-h:0;--accent-s:0%;--accent-l:0%;--ax3:#000;--bg1:#fff;--bg2:#fff;--bg3:#000;--ui1:#000;--ui2:#000;--ui3:#000;--tx1:#000;--tx2:#000;--tx3:#000;--hl1:#000;--hl2:#000;--sp1:#fff;--text-on-accent:#fff;--background-modifier-cover:rgba(235,235,235,1)}.theme-light.minimal-eink-light.minimal-light-white{--bg3:#fff}.theme-dark.minimal-eink-dark,.theme-light.minimal-eink-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-eink-light.minimal-light-contrast .titlebar,.theme-light.minimal-eink-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-eink-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-eink-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:0;--base-s:0%;--base-l:0%;--accent-h:0;--accent-s:0%;--accent-l:100%;--ax3:#fff;--bg1:#000;--bg2:#000;--bg3:#fff;--ui1:#fff;--ui2:#fff;--ui3:#fff;--tx1:#fff;--tx2:#fff;--tx3:#fff;--hl1:#fff;--hl2:#fff;--sp1:#000;--background-modifier-cover:rgba(20,20,20,1)}.theme-light.minimal-eink-light.minimal-light-tonal{--bg3:#bbb;--ui1:#bbb;--modal-border-color:var(--ui1);--prompt-border-color:var(--ui1)}.theme-dark.minimal-eink-dark.minimal-dark-tonal{--bg3:#444;--ui1:#444;--modal-border-color:var(--ui1);--prompt-border-color:var(--ui1)}.theme-light.minimal-everforest-light{--color-red-rgb:248,85,82;--color-orange-rgb:245,125,38;--color-yellow-rgb:223,160,0;--color-green-rgb:141,161,1;--color-cyan-rgb:53,167,124;--color-blue-rgb:56,148,196;--color-purple-rgb:223,105,186;--color-pink-rgb:223,105,186;--color-red:#f85552;--color-orange:#f57d26;--color-yellow:#dfa000;--color-green:#8da101;--color-cyan:#35a77c;--color-blue:#3795C5;--color-purple:#df69ba;--color-pink:#df69ba}.theme-dark.minimal-everforest-dark{--color-red-rgb:230,126,128;--color-orange-rgb:230,152,117;--color-yellow-rgb:219,188,127;--color-green-rgb:167,192,128;--color-cyan-rgb:131,192,146;--color-blue-rgb:127,187,179;--color-purple-rgb:223,105,186;--color-pink-rgb:223,105,186;--color-red:#e67e80;--color-orange:#e69875;--color-yellow:#dbbc7f;--color-green:#a7c080;--color-cyan:#83c092;--color-blue:#7fbbb3;--color-purple:#d699b6;--color-pink:#d699b6}.theme-light.minimal-everforest-light{--base-h:44;--base-s:87%;--base-l:94%;--accent-h:83;--accent-s:36%;--accent-l:53%;--bg1:#fdf6e3;--bg2:#efebd4;--bg3:rgba(226,222,198,.5);--ui1:#e0dcc7;--ui2:#bec5b2;--ui3:#bec5b2;--tx1:#5C6A72;--tx2:#829181;--tx3:#a6b0a0;--hl1:rgba(198,214,152,.4);--hl2:rgba(222,179,51,.3)}.theme-light.minimal-everforest-light.minimal-light-tonal{--bg2:#fdf6e3}.theme-light.minimal-everforest-light.minimal-light-white{--bg3:#f3efda;--ui1:#edead5}.theme-dark.minimal-everforest-dark,.theme-light.minimal-everforest-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-everforest-light.minimal-light-contrast .titlebar,.theme-light.minimal-everforest-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-everforest-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-everforest-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:203;--base-s:15%;--base-l:23%;--accent-h:81;--accent-s:34%;--accent-l:63%;--bg1:#2d353b;--bg2:#232a2e;--bg3:rgba(71,82,88,0.5);--ui1:#475258;--ui2:#4f585e;--ui3:#525c62;--tx1:#d3c6aa;--tx2:#9da9a0;--tx3:#7a8478;--hl1:rgba(134,70,93,.5);--hl2:rgba(147,185,96,.3)}.theme-dark.minimal-everforest-dark.minimal-dark-black{--hl1:rgba(134,70,93,.4);--ui1:#2b3339}.theme-light.minimal-flexoki-light{--color-red-rgb:175,48,41;--color-orange-rgb:188,82,21;--color-yellow-rgb:173,131,1;--color-green-rgb:102,128,11;--color-cyan-rgb:36,131,123;--color-blue-rgb:32,94,166;--color-purple-rgb:94,64,157;--color-pink-rgb:160,47,111;--color-red:#AF3029;--color-orange:#BC5215;--color-yellow:#AD8301;--color-green:#66800B;--color-cyan:#24837B;--color-blue:#205EA6;--color-purple:#5E409D;--color-pink:#A02F6F}.theme-dark.minimal-flexoki-dark{--color-red-rgb:209,77,65;--color-orange-rgb:218,112,44;--color-yellow-rgb:208,162,21;--color-green-rgb:135,154,57;--color-cyan-rgb:58,169,159;--color-blue-rgb:67,133,190;--color-purple-rgb:139,126,200;--color-pink-rgb:206,93,151;--color-red:#D14D41;--color-orange:#DA702C;--color-yellow:#D0A215;--color-green:#879A39;--color-cyan:#3AA99F;--color-blue:#4385BE;--color-purple:#8B7EC8;--color-pink:#CE5D97}.theme-light.minimal-flexoki-light{--base-h:48;--base-s:100%;--base-l:97%;--accent-h:175;--accent-s:57%;--accent-l:33%;--bg1:#FFFCF0;--bg2:#F2F0E5;--bg3:rgba(16,15,15,0.05);--ui1:#E6E4D9;--ui2:#DAD8CE;--ui3:#CECDC3;--tx1:#100F0F;--tx2:#6F6E69;--tx3:#B7B5AC;--hl1:rgba(187,220,206,0.3);--hl2:rgba(247,209,61,0.3)}.theme-light.minimal-flexoki-light.minimal-light-tonal{--bg2:#FFFCF0}.theme-dark.minimal-flexoki-dark,.theme-light.minimal-flexoki-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-flexoki-light.minimal-light-contrast .titlebar,.theme-light.minimal-flexoki-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-flexoki-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-flexoki-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:360;--base-s:3%;--base-l:6%;--accent-h:175;--accent-s:49%;--accent-l:45%;--bg1:#100F0F;--bg2:#1C1B1A;--bg3:rgba(254,252,240,0.05);--ui1:#282726;--ui2:#343331;--ui3:#403E3C;--tx1:#CECDC3;--tx2:#878580;--tx3:#575653;--hl1:rgba(30,95,91,0.3);--hl2:rgba(213,159,17,0.3)}.theme-dark.minimal-flexoki-dark.minimal-dark-black{--ui1:#1C1B1A}.theme-dark.minimal-gruvbox-dark,.theme-light.minimal-gruvbox-light{--color-red-rgb:204,36,29;--color-orange-rgb:214,93,14;--color-yellow-rgb:215,153,33;--color-green-rgb:152,151,26;--color-cyan-rgb:104,157,106;--color-blue-rgb:69,133,136;--color-purple-rgb:177,98,134;--color-pink-rgb:177,98,134;--color-red:#cc241d;--color-orange:#d65d0e;--color-yellow:#d79921;--color-green:#98971a;--color-cyan:#689d6a;--color-blue:#458588;--color-purple:#b16286;--color-pink:#b16286}.theme-light.minimal-gruvbox-light{--base-h:49;--base-s:92%;--base-l:89%;--accent-h:24;--accent-s:88%;--accent-l:45%;--bg1:#fcf2c7;--bg2:#f2e6bd;--bg3:#ebd9b3;--ui1:#ebdbb2;--ui2:#d5c4a1;--ui3:#bdae93;--tx1:#282828;--tx2:#7c7065;--tx3:#a89a85;--hl1:rgba(192,165,125,.3);--hl2:rgba(215,153,33,.4)}.theme-light.minimal-gruvbox-light.minimal-light-tonal{--bg2:#fcf2c7}.theme-light.minimal-gruvbox-light.minimal-light-white{--bg3:#faf5d7;--ui1:#f2e6bd}.theme-dark.minimal-gruvbox-dark,.theme-light.minimal-gruvbox-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-gruvbox-light.minimal-light-contrast .titlebar,.theme-light.minimal-gruvbox-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-gruvbox-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-gruvbox-light.minimal-light-contrast.minimal-status-off .status-bar{--accent-h:24;--accent-s:88%;--accent-l:45%;--bg1:#282828;--bg2:#1e2021;--bg3:#3d3836;--bg3:rgba(62,57,55,0.5);--ui1:#3c3836;--ui2:#504945;--ui3:#665c54;--tx1:#fbf1c7;--tx2:#bdae93;--tx3:#7c6f64;--hl1:rgba(173,149,139,0.3);--hl2:rgba(215,153,33,.4)}.theme-dark.minimal-gruvbox-dark.minimal-dark-black{--hl1:rgba(173,149,139,0.4);--ui1:#282828}.theme-dark.minimal-macos-dark,.theme-light.minimal-macos-light{--color-red-rgb:255,59,49;--color-orange-rgb:255,149,2;--color-yellow-rgb:255,204,0;--color-green-rgb:42,205,65;--color-cyan-rgb:2,199,190;--color-blue-rgb:2,122,255;--color-purple-rgb:176,81,222;--color-pink-rgb:255,46,85;--color-red:#ff3b31;--color-orange:#ff9502;--color-yellow:#ffcc00;--color-green:#2acd41;--color-cyan:#02c7be;--color-blue:#027aff;--color-purple:#b051de;--color-pink:#ff2e55}.theme-light.minimal-macos-light{--base-h:106;--base-s:0%;--base-l:94%;--accent-h:212;--accent-s:100%;--accent-l:50%;--bg1:#fff;--bg2:#f0f0f0;--bg3:rgba(0,0,0,.1);--ui1:#e7e7e7;--tx1:#454545;--tx2:#808080;--tx3:#b0b0b0;--hl1:#b3d7ff}.theme-light.minimal-macos-light.minimal-light-tonal{--bg1:#f0f0f0;--bg2:#f0f0f0}.theme-dark.minimal-macos-dark,.theme-light.minimal-macos-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-macos-light.minimal-light-contrast .titlebar,.theme-light.minimal-macos-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-macos-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-macos-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:106;--base-s:0%;--base-l:12%;--accent-h:212;--accent-s:100%;--accent-l:50%;--bg1:#1e1e1e;--bg2:#282828;--bg3:rgba(255,255,255,0.11);--divider-color:#000;--tab-outline-color:#000;--ui1:#373737;--ui2:#515151;--ui3:#595959;--tx1:#dcdcdc;--tx2:#8c8c8c;--tx3:#686868;--hl1:rgba(98,169,252,0.5);--sp1:#fff}.theme-dark.minimal-macos-dark.minimal-dark-black{--divider-color:#1e1e1e;--tab-outline-color:#1e1e1e}.theme-dark.minimal-nord-dark,.theme-light.minimal-nord-light{--color-red-rgb:191,97,106;--color-orange-rgb:208,138,112;--color-yellow-rgb:235,203,139;--color-green-rgb:163,190,140;--color-cyan-rgb:136,192,208;--color-blue-rgb:129,161,193;--color-purple-rgb:180,142,173;--color-pink-rgb:180,142,173;--color-red:#BF616A;--color-orange:#D08770;--color-yellow:#EBCB8B;--color-green:#A3BE8C;--color-cyan:#88C0D0;--color-blue:#81A1C1;--color-purple:#B48EAD;--color-pink:#B48EAD}.theme-light.minimal-nord-light{--base-h:221;--base-s:27%;--base-l:94%;--accent-h:213;--accent-s:32%;--accent-l:52%;--bg1:#fff;--bg2:#eceff4;--bg3:rgba(157,174,206,0.25);--ui1:#d8dee9;--ui2:#BBCADC;--ui3:#81a1c1;--tx1:#2e3440;--tx2:#7D8697;--tx3:#ADB1B8;--hl2:rgba(208, 135, 112, 0.35)}.theme-dark.minimal-nord-dark,.theme-light.minimal-nord-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-nord-light.minimal-light-contrast .titlebar,.theme-light.minimal-nord-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-nord-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-nord-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:220;--base-s:16%;--base-l:22%;--accent-h:213;--accent-s:32%;--accent-l:52%;--bg1:#2e3440;--bg2:#3b4252;--bg3:rgba(135,152,190,0.15);--ui1:#434c5e;--ui2:#58647b;--ui3:#58647b;--tx1:#d8dee9;--tx2:#9eafcc;--tx3:#4c566a;--hl1:rgba(129,142,180,0.3);--hl2:rgba(208, 135, 112, 0.35)}.theme-dark.minimal-nord-dark.minimal-dark-black{--ui1:#2e3440}.theme-light.minimal-notion-light{--base-h:39;--base-s:18%;--base-d:96%;--accent-h:197;--accent-s:71%;--accent-l:52%;--bg2:#f7f6f4;--bg3:#e8e7e4;--ui1:#ededec;--ui2:#dbdbda;--ui3:#aaa9a5;--tx1:#37352f;--tx2:#72706c;--tx3:#aaa9a5;--hl1:rgba(131,201,229,0.3);--link-weight:500}.theme-dark.minimal-notion-dark,.theme-light.minimal-notion-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-notion-light.minimal-light-contrast .titlebar,.theme-light.minimal-notion-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-notion-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-notion-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:203;--base-s:8%;--base-d:20%;--accent-h:197;--accent-s:71%;--accent-l:52%;--bg1:#2f3437;--bg2:#373c3f;--bg3:#4b5053;--ui1:#3e4245;--ui2:#585d5f;--ui3:#585d5f;--tx1:#ebebeb;--tx2:#909295;--tx3:#585d5f;--hl1:rgba(57,134,164,0.3);--link-weight:500}.theme-dark.minimal-notion-dark.minimal-dark-black{--base-d:5%;--bg3:#232729;--ui1:#2f3437}.theme-light.minimal-rose-pine-light{--color-red-rgb:180,99,122;--color-orange-rgb:215,130,125;--color-yellow-rgb:234,157,53;--color-green-rgb:40,105,131;--color-cyan-rgb:87,147,159;--color-blue-rgb:87,147,159;--color-purple-rgb:144,122,169;--color-pink-rgb:144,122,169;--color-red:#b4637a;--color-orange:#d7827e;--color-yellow:#ea9d34;--color-green:#286983;--color-cyan:#56949f;--color-blue:#56949f;--color-purple:#907aa9;--color-pink:#907aa9}.theme-dark.minimal-rose-pine-dark{--color-red-rgb:234,111,146;--color-orange-rgb:233,155,151;--color-yellow-rgb:246,193,119;--color-green-rgb:47,116,143;--color-cyan-rgb:157,207,215;--color-blue-rgb:157,207,215;--color-purple-rgb:196,167,231;--color-pink-rgb:196,167,231;--color-red:#eb6f92;--color-orange:#ea9a97;--color-yellow:#f6c177;--color-green:#31748f;--color-cyan:#9ccfd8;--color-blue:#9ccfd8;--color-purple:#c4a7e7;--color-pink:#c4a7e7}.theme-light.minimal-rose-pine-light{--base-h:32;--base-s:57%;--base-l:95%;--accent-h:3;--accent-s:53%;--accent-l:67%;--bg1:#fffaf3;--bg2:#faf4ed;--bg3:rgba(233,223,218,0.5);--ui1:#EAE3E1;--ui2:#dfdad9;--ui3:#cecacd;--tx1:#575279;--tx2:#797593;--tx3:#9893a5;--hl1:rgba(191,180,181,0.35)}.theme-dark.minimal-rose-pine-dark,.theme-light.minimal-rose-pine-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-rose-pine-light.minimal-light-contrast .titlebar,.theme-light.minimal-rose-pine-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-rose-pine-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-rose-pine-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:247;--base-s:23%;--base-l:15%;--accent-h:2;--accent-s:55%;--accent-l:83%;--bg1:#1f1d2e;--bg2:#191724;--bg3:rgba(68,66,86,0.5);--ui1:#312F41;--ui2:#403d52;--ui3:#524f67;--tx1:#e0def4;--tx2:#908caa;--tx3:#6e6a86;--hl1:rgba(126,121,155,0.35)}.theme-dark.minimal-rose-pine-dark.minimal-dark-black{--ui1:#21202e}.theme-dark.minimal-solarized-dark,.theme-light.minimal-solarized-light{--color-red-rgb:220,50,47;--color-orange-rgb:203,77,22;--color-yellow-rgb:181,137,0;--color-green-rgb:133,153,0;--color-cyan-rgb:42,161,152;--color-blue-rgb:38,139,210;--color-purple-rgb:108,113,196;--color-pink-rgb:211,54,130;--color-red:#dc322f;--color-orange:#cb4b16;--color-yellow:#b58900;--color-green:#859900;--color-cyan:#2aa198;--color-blue:#268bd2;--color-purple:#6c71c4;--color-pink:#d33682}.theme-light.minimal-solarized-light{--base-h:44;--base-s:87%;--base-l:94%;--accent-h:205;--accent-s:70%;--accent-l:48%;--bg1:#fdf6e3;--bg2:#eee8d5;--bg3:rgba(0,0,0,0.062);--ui1:#e9e1c8;--ui2:#d0cab8;--ui3:#d0cab8;--tx1:#073642;--tx2:#586e75;--tx3:#ABB2AC;--tx4:#586e75;--hl1:rgba(202,197,182,0.3);--hl2:rgba(203,75,22,0.3)}.theme-light.minimal-solarized-light.minimal-light-tonal{--bg2:#fdf6e3}.theme-dark.minimal-solarized-dark,.theme-light.minimal-solarized-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-solarized-light.minimal-light-contrast .titlebar,.theme-light.minimal-solarized-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-solarized-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-solarized-light.minimal-light-contrast.minimal-status-off .status-bar{--accent-h:205;--accent-s:70%;--accent-l:48%;--base-h:193;--base-s:98%;--base-l:11%;--bg1:#002b36;--bg2:#073642;--bg3:rgba(255,255,255,0.062);--ui1:#19414B;--ui2:#274850;--ui3:#31535B;--tx1:#93a1a1;--tx2:#657b83;--tx3:#31535B;--tx4:#657b83;--hl1:rgba(15,81,98,0.3);--hl2:rgba(203, 75, 22, 0.35)}.theme-dark.minimal-solarized-dark.minimal-dark-black{--hl1:rgba(15,81,98,0.55);--ui1:#002b36}.theme-dark.minimal-things-dark,.theme-light.minimal-things-light{--color-red-rgb:255,48,108;--color-orange-rgb:255,149,2;--color-yellow-rgb:255,213,0;--color-green-rgb:75,191,94;--color-cyan-rgb:73,174,164;--color-purple-rgb:176,81,222;--color-pink-rgb:255,46,85;--color-red:#FF306C;--color-orange:#ff9502;--color-yellow:#FFD500;--color-green:#4BBF5E;--color-cyan:#49AEA4;--color-purple:#b051de;--color-pink:#ff2e55}.theme-light.minimal-things-light{--color-blue-rgb:27,97,194;--color-blue:#1b61c2}.theme-dark.minimal-things-dark{--color-blue-rgb:77,149,247;--color-blue:#4d95f7}.theme-light.minimal-things-light{--accent-h:215;--accent-s:76%;--accent-l:43%;--bg1:white;--bg2:#f5f6f8;--bg3:rgba(162,177,187,0.25);--ui1:#eef0f4;--ui2:#D8DADD;--ui3:#c1c3c6;--tx1:#26272b;--tx2:#7D7F84;--tx3:#a9abb0;--hl1:#cae2ff}.theme-light.minimal-things-light.minimal-light-tonal{--ui1:#e6e8ec}.theme-light.minimal-things-light.minimal-light-white{--bg3:#f5f6f8}.theme-dark.minimal-things-dark,.theme-light.minimal-things-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-things-light.minimal-light-contrast .titlebar,.theme-light.minimal-things-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-things-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-things-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:218;--base-s:9%;--base-l:15%;--accent-h:215;--accent-s:91%;--accent-l:64%;--bg1:#24262a;--bg2:#202225;--bg3:#3d3f41;--divider-color:#17191c;--tab-outline-color:#17191c;--ui1:#3A3B3F;--ui2:#45464a;--ui3:#6c6e70;--tx1:#fbfbfb;--tx2:#CBCCCD;--tx3:#6c6e70;--hl1:rgba(40,119,236,0.35);--sp1:#fff}.theme-dark.minimal-things-dark.minimal-dark-black{--base-d:5%;--bg3:#24262a;--divider-color:#24262a;--tab-outline-color:#24262a} +/* Plugin compatibility */ + +/* @plugins +core: +- backlink +- command-palette +- daily-notes +- file-explorer +- file-recovery +- global-search +- graph +- outgoing-link +- outline +- page-preview +- publish +- random-note +- starred +- switcher +- sync +- tag-pane +- word-count +community: +- buttons +- dataview +- calendar +- obsidian-charts +- obsidian-checklist-plugin +- obsidian-codemirror-options +- obsidian-dictionary-plugin +- obsidian-embedded-note-titles +- obsidian-excalidraw-plugin +- obsidian-git +- obsidian-hider +- obsidian-hover-editor +- obsidian-kanban +- obsidian-metatable +- obsidian-minimal-settings +- obsidian-outliner +- obsidian-system-dark-mode +- obsidian-style-settings +- quickadd +- sliding-panes-obsidian +- todoist-sync-plugin +*/ +/* @settings + +name: Minimal +id: minimal-style +settings: + - + id: instructions + title: Documentation + type: heading + level: 2 + collapsed: true + description: Use the Minimal Theme Settings plugin to set hotkeys, adjust features, select fonts, and choose from preset color schemes. Use the settings below for more granular customization. Go to https://minimal.guide for documentation. + - + id: interface + title: Interface colors + type: heading + level: 2 + collapsed: true + - + id: base + title: Base color + description: Defines all background and border colors unless overridden in more granular settings + type: variable-themed-color + format: hsl-split + default-light: '#' + default-dark: '#' + - + id: bg1 + title: Primary background + description: Background color for the main window + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: bg2 + title: Secondary background + description: Background color for left sidebar and menus + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: bg3 + title: Active background + description: Background color for hovered buttons and currently selected file + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: ui1 + title: Border color + type: variable-themed-color + description: For buttons, divider lines, and outlined elements + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: ui2 + title: Highlighted border color + description: Used when hovering over buttons, dividers, and outlined elements + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: ui3 + title: Active border color + description: Used when clicking buttons and outlined elements + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: accent-color + title: Accent color + type: heading + level: 2 + collapsed: true + - + id: ax1 + title: Accent color + type: variable-themed-color + description: Used primarily for links + format: hex + default-light: '#' + default-dark: '#' + - + id: ax2 + title: Accent color (hover) + type: variable-themed-color + description: Used primarily for hovered links + format: hex + default-light: '#' + default-dark: '#' + - + id: ax3 + title: Accent color interactive + type: variable-themed-color + description: Used for buttons, checklists, toggles + format: hex + default-light: '#' + default-dark: '#' + - + id: sp1 + title: Text on accent + type: variable-themed-color + description: Used primarily for text on accented buttons + format: hex + default-light: '#' + default-dark: '#' + - + id: extended-palette + title: Extended colors + type: heading + level: 2 + collapsed: true + - + id: color-red + title: Red + description: Extended palette colors are defaults used for progress bar status, syntax highlighting, colorful headings, and graph nodes + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: color-orange + title: Orange + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: color-yellow + title: Yellow + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: color-green + title: Green + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: color-cyan + title: Cyan + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: color-blue + title: Blue + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: color-purple + title: Purple + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: color-pink + title: Pink + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: blockquotes + title: Blockquotes + type: heading + level: 2 + collapsed: true + - + id: blockquote-color + title: Blockquote text color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: blockquote-background-color + title: Blockquote background color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: blockquote-border-color + title: Blockquote border color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: blockquote-border-thickness + title: Blockquote border thickness + type: variable-number-slider + format: px + default: 1 + min: 0 + max: 5 + step: 1 + - + id: blockquote-size + title: Blockquote font size + description: Accepts any CSS font-size value + type: variable-text + default: '' + - + id: blockquote-font-style + title: Blockquote font style + type: variable-select + allowEmpty: false + default: normal + options: + - + label: Normal + value: normal + - + label: Italic + value: italic + - + id: callouts + title: Callouts + type: heading + level: 2 + collapsed: true + - + id: callouts-style + title: Callout style + type: class-select + allowEmpty: false + default: callouts-default + options: + - + label: Filled + value: callouts-default + - + label: Outlined + value: callouts-outlined + - + id: callout-blend-mode + title: Color blending + description: Blend the color of nested callouts + type: variable-select + allowEmpty: false + default: var(--highlight-mix-blend-mode) + options: + - + label: On + value: var(--highlight-mix-blend-mode) + - + label: Off + value: normal + - + id: canvas + title: Canvas + type: heading + level: 2 + collapsed: true + - + id: canvas-dot-pattern + title: Canvas dot pattern + description: Color for background dot pattern + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: code-blocks + title: Code blocks + type: heading + level: 2 + collapsed: true + - + id: code-size + title: Code font size + description: Accepts any CSS font-size value + type: variable-text + default: 13px + - + id: minimal-code-scroll + title: Scroll long lines + description: Turns off line wrap for code + type: class-toggle + default: false + - + id: code-background + title: Code background color + description: Background for code blocks + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: code-normal + title: Code text color + description: Color of code when syntax highlighting is not present + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: syntax-highlighting + title: Syntax highlighting + type: heading + level: 3 + collapsed: false + - + id: code-comment + title: "Syntax: comments" + description: Syntax highlighting for comments + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: code-function + title: "Syntax: functions" + description: Syntax highlighting for functions + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: code-keyword + title: "Syntax: keywords" + description: Syntax highlighting for keywords + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: code-important + title: "Syntax: important" + description: Syntax highlighting for important text + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: code-operator + title: "Syntax: operators" + description: Syntax highlighting for operators + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: code-property + title: "Syntax: properties" + description: Syntax highlighting for properties + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: code-punctuation + title: "Syntax: punctuation" + description: Syntax highlighting for punctuation + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: code-string + title: "Syntax: strings" + description: Syntax highlighting for strings + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: code-tag + title: "Syntax: tags" + description: Syntax highlighting for tags + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: code-value + title: "Syntax: values" + description: Syntax highlighting for values + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: dataview + title: Dataview + type: heading + level: 2 + collapsed: true + - + id: trim-cols + title: Trim Dataview columns + description: Disables word wrapping in table cells, and trims long text + type: class-toggle + default: true + - + id: dataview-inline-lists + title: Force tables lists inline + description: Makes lists inside of table cells inline and comma separated + type: class-toggle + default: false + - + id: max-col-width + title: Dataview maximum column width + description: Maximum width for Dataview columns, accepts any CSS width value + type: variable-text + default: 18em + - + id: embed-blocks + title: Embeds and transclusions + type: heading + level: 2 + collapsed: true + - + id: embed-strict + title: Use strict embed style globally + description: Transclusions appear seamlessly in the flow of text. Can be enabled per file using the embed-strict helper class + type: class-toggle + default: false + - + id: embed-hide-title + title: Hide embed titles + description: Hide title of the transcluded file (if strict embed is off) + type: class-toggle + default: false + - + id: embed-underline + title: Underline embedded text + description: Transcluded text is underlined. Can be enabled per file using the embed-underline helper class + type: class-toggle + default: false + - + id: embed-max-height + title: Maximum height of embeds + type: variable-text + description: For transcluded text, accepts valid CSS units + default: '' + - + id: embed-decoration-style + title: Embedded text underline style + type: variable-select + description: Requires underlines to be enabled + allowEmpty: true + default: solid + options: + - + label: Solid + value: solid + - + label: Dashed + value: dashed + - + label: Dotted + value: dotted + - + label: Double + value: double + - + label: Wavy + value: wavy + - + id: embed-decoration-color + title: Embedded text underline color + type: variable-themed-color + description: Requires underlines to be enabled + format: hex + default-light: '#' + default-dark: '#' + - + id: embed-background + title: Embed background + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: graphs + title: Graphs + type: heading + level: 2 + collapsed: true + - + id: graph-line + title: Line color + description: Changing graph colors requires closing and reopening graph panes or restarting Obsidian + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: graph-node + title: Node color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: graph-node-focused + title: Active node color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: graph-node-tag + title: Tag node color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: graph-node-attachment + title: Attachment node color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: graph-node-unresolved + title: Unresolved node color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: headings + title: Headings + type: heading + level: 2 + collapsed: true + - + id: level-1-headings + title: Level 1 Headings + type: heading + level: 3 + collapsed: true + - + id: h1-font + title: H1 font + description: Name of the font as it appears on your system + type: variable-text + default: '' + - + id: h1-size + title: H1 font size + description: Accepts any CSS font-size value + type: variable-text + default: 1.125em + - + id: h1-weight + title: H1 font weight + type: variable-number-slider + default: 600 + min: 100 + max: 900 + step: 100 + - + id: h1-color + title: H1 text color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: h1-variant + title: H1 font variant + type: variable-select + allowEmpty: false + default: normal + options: + - + label: Normal + value: normal + - + label: Small caps + value: small-caps + - + label: All small caps + value: all-small-caps + - + id: h1-style + title: H1 font style + type: variable-select + allowEmpty: false + default: normal + options: + - + label: Normal + value: normal + - + label: Italic + value: italic + - + id: h1-l + title: H1 divider line + description: Adds a border below the heading + type: class-toggle + default: false + - + id: level-2-headings + title: Level 2 Headings + type: heading + level: 3 + collapsed: true + - + id: h2-font + title: H2 font + description: Name of the font as it appears on your system + type: variable-text + default: '' + - + id: h2-size + title: H2 font size + description: Accepts any CSS font-size value + type: variable-text + default: 1em + - + id: h2-weight + title: H2 font weight + type: variable-number-slider + default: 600 + min: 100 + max: 900 + step: 100 + - + id: h2-color + title: H2 text color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: h2-variant + title: H2 font variant + type: variable-select + allowEmpty: false + default: normal + options: + - + label: Normal + value: normal + - + label: Small caps + value: small-caps + - + label: All small caps + value: all-small-caps + - + id: h2-style + title: H2 font style + type: variable-select + allowEmpty: false + default: normal + options: + - + label: Normal + value: normal + - + label: Italic + value: italic + - + id: h2-l + title: H2 divider line + description: Adds a border below the heading + type: class-toggle + default: false + - + id: level-3-headings + title: Level 3 Headings + type: heading + level: 3 + collapsed: true + - + id: h3-font + title: H3 font + description: Name of the font as it appears on your system + type: variable-text + default: '' + - + id: h3-size + title: H3 font size + description: Accepts any CSS font-size value + type: variable-text + default: 1em + - + id: h3-weight + title: H3 font weight + type: variable-number-slider + default: 600 + min: 100 + max: 900 + step: 100 + - + id: h3-color + title: H3 text color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: h3-variant + title: H3 font variant + type: variable-select + allowEmpty: false + default: normal + options: + - + label: Normal + value: normal + - + label: Small caps + value: small-caps + - + label: All small caps + value: all-small-caps + - + id: h3-style + title: H3 font style + type: variable-select + allowEmpty: false + default: normal + options: + - + label: Normal + value: normal + - + label: Italic + value: italic + - + id: h3-l + title: H3 divider line + description: Adds a border below the heading + type: class-toggle + default: false + - + id: level-4-headings + title: Level 4 Headings + type: heading + level: 3 + collapsed: true + - + id: h4-font + title: H4 font + description: Name of the font as it appears on your system + type: variable-text + default: '' + - + id: h4-size + title: H4 font size + description: Accepts any CSS font-size value + type: variable-text + default: 0.9em + - + id: h4-weight + title: H4 font weight + type: variable-number-slider + default: 500 + min: 100 + max: 900 + step: 100 + - + id: h4-color + title: H4 text color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: h4-variant + title: H4 font variant + type: variable-select + allowEmpty: false + default: small-caps + options: + - + label: Normal + value: normal + - + label: Small caps + value: small-caps + - + label: All small caps + value: all-small-caps + - + id: h4-style + title: H4 font style + type: variable-select + allowEmpty: false + default: normal + options: + - + label: Normal + value: normal + - + label: Italic + value: italic + - + id: h4-l + title: H4 divider line + description: Adds a border below the heading + type: class-toggle + default: false + - + id: level-5-headings + title: Level 5 Headings + type: heading + level: 3 + collapsed: true + - + id: h5-font + title: H5 font + description: Name of the font as it appears on your system + type: variable-text + default: '' + - + id: h5-size + title: H5 font size + description: Accepts any CSS font-size value + type: variable-text + default: 0.85em + - + id: h5-weight + title: H5 font weight + type: variable-number-slider + default: 500 + min: 100 + max: 900 + step: 100 + - + id: h5-color + title: H5 text color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: h5-variant + title: H5 font variant + type: variable-select + allowEmpty: false + default: small-caps + options: + - + label: Normal + value: normal + - + label: Small caps + value: small-caps + - + label: All small caps + value: all-small-caps + - + id: h5-style + title: H5 font style + type: variable-select + allowEmpty: false + default: normal + options: + - + label: Normal + value: normal + - + label: Italic + value: italic + - + id: h5-l + title: H5 divider line + description: Adds a border below the heading + type: class-toggle + default: false + - + id: level-6-headings + title: Level 6 Headings + type: heading + level: 3 + collapsed: true + - + id: h6-font + title: H6 font + description: Name of the font as it appears on your system + type: variable-text + default: '' + - + id: h6-size + title: H6 font size + description: Accepts any CSS font-size value + type: variable-text + default: 0.85em + - + id: h6-weight + title: H6 font weight + type: variable-number-slider + default: 400 + min: 100 + max: 900 + step: 100 + - + id: h6-color + title: H6 text color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: h6-variant + title: H6 font variant + type: variable-select + allowEmpty: false + default: small-caps + options: + - + label: Normal + value: normal + - + label: Small caps + value: small-caps + - + label: All small caps + value: all-small-caps + - + id: h6-style + title: H6 font style + type: variable-select + allowEmpty: false + default: normal + options: + - + label: Normal + value: normal + - + label: Italic + value: italic + - + id: h6-l + title: H6 divider line + type: class-toggle + description: Adds a border below the heading + default: false + - + id: icons + title: Icons + type: heading + level: 2 + collapsed: true + - + id: icon-muted + title: Icon opacity (inactive) + type: variable-number-slider + default: 0.5 + min: 0.25 + max: 1 + step: 0.05 + - + id: icon-color + title: Icon color + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: icon-color-hover + title: Icon color (hover) + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: icon-color-active + title: Icon color (active) + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: icon-color-focused + title: Icon color (focused) + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: images + title: Images + type: heading + level: 2 + collapsed: true + - + id: image-muted + title: Image opacity in dark mode + description: Level of fading for images in dark mode. Hover over images to display at full brightness. + type: variable-number-slider + default: 0.7 + min: 0.25 + max: 1 + step: 0.05 + - + id: image-radius + title: Image radius + description: Rounded corners for images + type: variable-number-slider + default: 4 + min: 0 + max: 16 + step: 1 + format: px + - + id: image-blend-light + title: Blend images in light mode + description: Allow images to blend into the color scheme background color + type: class-toggle + default: false + - + id: zoom-off + title: Disable image zoom + description: Turns off click + hold to zoom images + type: class-toggle + - + id: image-grid-fit + title: Image grid crop + description: Sets how images get cropped in a grid + type: variable-select + default: cover + options: + - + label: Crop to fit + value: cover + - + label: Show full image + value: contain + - + id: image-grid-background + title: Image grid background + description: Background of images in cells, useful when images are not cropped to fit + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: indentation-guides + title: Indentation guides + type: heading + level: 2 + collapsed: true + - + id: indentation-guide-color + title: Indentation guide color + type: variable-themed-color + format: hex + opacity: true + default-light: '#' + default-dark: '#' + - + id: indentation-guide-color-active + title: Indentation guide color (active) + type: variable-themed-color + format: hex + opacity: true + default-light: '#' + default-dark: '#' + - + id: links + title: Links + type: heading + level: 2 + collapsed: true + - + id: links-internal + title: Internal links + type: heading + level: 3 + collapsed: true + - + id: link-color + title: Internal link color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: link-color-hover + title: Internal link color (hover) + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: link-unresolved-opacity + title: Unresolved link opacity + type: variable-number-slider + default: 0.7 + min: 0.25 + max: 1 + step: 0.05 + - + id: link-unresolved-color + title: Unresolved link color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: link-unresolved-decoration-color + title: Unresolved link underline color + type: variable-themed-color + format: hex + opacity: true + default-light: '#' + default-dark: '#' + - + id: links-external + title: External links + type: heading + level: 3 + collapsed: true + - + id: link-external-color + title: External link color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: link-external-color-hover + title: External link color (hover) + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: active-line + title: Line numbers + type: heading + level: 2 + collapsed: true + - + id: active-line-on + title: Highlight active line + description: Adds a background to current line in editor + type: class-toggle + default: false + - + id: folding-offset + title: Gutter offset + description: Width of the file margin used for gutter + type: variable-number-slider + default: 32 + min: 0 + max: 60 + step: 1 + format: px + - + id: gutter-background + title: Gutter background + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: line-number-color + title: Line number color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: line-number-color-active + title: Active line number color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: active-line-bg + title: Active line background + description: Using a low opacity color is recommended to avoid conflicting with highlights + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: lists + title: Lists and tasks + type: heading + level: 2 + collapsed: true + - + id: checkbox-color + title: Checkbox color + description: Background color for completed tasks + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: checkbox-shape + title: Checkbox shape + type: class-select + allowEmpty: false + default: checkbox-circle + options: + - + label: Circle + value: checkbox-circle + - + label: Square + value: checkbox-square + - + id: minimal-strike-lists + title: Strike completed tasks + description: Adds strikethrough line and greyed text for completed tasks + type: class-toggle + default: false + - + id: list-spacing + title: List item spacing + description: Vertical space between list items in em units + type: variable-number-slider + default: 0.075 + min: 0 + max: 0.3 + step: 0.005 + format: em + - + id: list-indent + title: Nested list indentation + description: Horizontal space from left in em units + type: variable-number-slider + default: 2 + min: 1 + max: 3.5 + step: 0.1 + format: em + - + id: pdf + title: PDFs + type: heading + level: 2 + collapsed: true + - + id: pdf-page-style + title: PDF page style + description: Borders and shadows around pages + type: class-select + allowEmpty: false + default: pdf-seamless-on + options: + - + label: Seamless + value: pdf-seamless-on + - + label: Shadows + value: pdf-shadows-on + - + id: pdf-invert-dark + title: Invert PDFs in dark mode + description: Best for working with black text on white pages + type: class-toggle + default: true + - + id: pdf-blend-light + title: Blend PDFs in light mode + description: Allow PDFs to blend into the color scheme background color + type: class-toggle + default: true + - + id: pdf-dark-opacity + title: PDF opacity in dark mode + description: Fade PDF pages in dark mode + type: variable-number-slider + default: 1 + min: 0.25 + max: 1 + step: 0.05 + - + id: progress + title: Progress bars + type: heading + level: 2 + collapsed: true + - + id: progress-complete + title: Completed progress bar color + description: Defaults to your accent color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: properties + title: Properties + type: heading + level: 2 + collapsed: true + - + id: metadata-heading-off + title: Hide properties heading + description: Hide "Properties" heading above properties + type: class-toggle + default: false + - + id: metadata-add-property-off + title: Hide "Add property" button + description: Hide "Add property" button below properties + type: class-toggle + default: false + - + id: metadata-icons-off + title: Hide property icons + description: Hide icons next to property names + type: class-toggle + default: false + - + id: metadata-dividers + title: Property row lines + description: Display borders between properties + type: class-toggle + default: false + - + id: metadata-label-width + title: Property name width + description: Width for the name of the property + type: variable-number-slider + format: rem + default: 8 + min: 4 + max: 12 + step: 0.25 + - + id: sidebars + title: Sidebars + type: heading + level: 2 + collapsed: true + - + id: sidebar-tabs-style + title: Sidebar tab style + type: class-select + allowEmpty: false + default: sidebar-tabs-default + options: + - + label: Index round + value: sidebar-tabs-index + - + label: Index square + value: sidebar-tabs-square + - + label: Modern compact + value: sidebar-tabs-default + - + label: Modern wide + value: sidebar-tabs-wide + - + label: Underline + value: sidebar-tabs-underline + - + id: sidebar-tabs-names + title: Sidebar tab names + type: class-select + allowEmpty: false + default: tab-names-off + options: + - + label: Hidden + value: tab-names-off + - + label: Visible + value: tab-names-on + - + label: Single tab only + value: tab-names-single + - + id: mobile-left-sidebar-width + title: Mobile left sidebar width + description: Maximum width for pinned left sidebar on mobile + type: variable-number + default: 280 + format: pt + - + id: mobile-right-sidebar-width + title: Mobile right sidebar width + description: Maximum width for pinned right sidebar on mobile + type: variable-number + default: 240 + format: pt + - + id: ribbon + title: Ribbon + type: heading + level: 2 + collapsed: true + - + id: ribbon-style + title: Ribbon style + description: Ribbon menu can be hidden using the Hider plugin + type: class-select + allowEmpty: false + default: ribbon-hidden + options: + - + label: Default + value: ribbon-hidden + - + label: Bottom left hover + value: ribbon-bottom-left-hover + - + id: tables + title: Tables + type: heading + level: 2 + collapsed: true + - + id: table-text-size + title: Table font size + description: All of the following settings apply to all tables globally. To turn on these features on a per-note basis use helper classes. See documentation. + type: variable-text + default: 1em + - + id: table-column-min-width + title: Minimum column width + type: variable-text + default: 6ch + - + id: table-column-max-width + title: Maximum column width + type: variable-text + default: none + - + id: maximize-tables-off + title: Maximize table width + description: Determines how wide tables should behave when they become wider than the line width + type: class-select + allowEmpty: false + default: maximize-tables-off + options: + - + label: Fit to line width + value: maximize-tables-off + - + label: Overflow line width + value: maximize-tables-auto + - + label: Always fill + value: maximize-tables + - + id: row-lines + title: Row lines + description: Display borders between table rows globally + type: class-toggle + default: false + - + id: col-lines + title: Column lines + description: Display borders between table columns globally + type: class-toggle + default: false + - + id: table-lines + title: Cell lines + description: Display borders around all table cells globally + type: class-toggle + default: false + - + id: row-alt + title: Striped rows + description: Display striped background in alternating table rows globally + type: class-toggle + default: false + - + id: col-alt + title: Striped columns + description: Display striped background in alternating table columns globally + type: class-toggle + default: false + - + id: table-tabular + title: Tabular figures + description: Use fixed width numbers in tables globally + type: class-toggle + default: false + - + id: table-numbers + title: Row numbers + description: Display row numbers in tables globally + type: class-toggle + default: false + - + id: table-nowrap + title: Disable line wrap + description: Turn off line wrapping in table cells globally + type: class-toggle + default: false + - + id: row-hover + title: Highlight active row + description: Highlight rows on hover + type: class-toggle + default: false + - + id: table-row-background-hover + title: Active row background + description: Background color for hovered tables rows + type: variable-themed-color + format: hex + opacity: true + default-light: '#' + default-dark: '#' + - + id: tabs + title: Tabs + type: heading + level: 2 + collapsed: true + - + id: header-height + title: Tab bar height + type: variable-text + default: 40px + - + id: tabs-style + title: Tab style + type: class-select + allowEmpty: false + default: tabs-default + options: + - + label: Index round + value: tabs-default + - + label: Index square + value: tabs-square + - + label: Modern + value: tabs-modern + - + label: Square + value: tabs-plain-square + - + label: Underline + value: tabs-underline + - + id: minimal-tab-text-color + title: Tab text color + type: variable-themed-color + format: hex + opacity: true + default-light: '#' + default-dark: '#' + - + id: minimal-tab-text-color-active + title: Tab text color (active) + type: variable-themed-color + format: hex + opacity: true + default-light: '#' + default-dark: '#' + - + id: tab-stacks + title: Tab stacks + type: heading + level: 2 + collapsed: true + - + id: tab-stacked-pane-width + title: Stacked width + type: variable-number + description: Width of a stacked tab in pixels + default: 700 + format: px + - + id: tab-stacked-header-width + title: Spine width + type: variable-number + description: Width of the spine in pixels + default: 40 + format: px + - + id: tab-stacked-spine-orientation + title: Spine text orientation + type: class-select + default: tab-stack-top + options: + - + label: Top + value: tab-stack-top + - + label: Top flipped + value: tab-stack-top-flipped + - + label: Bottom + value: tab-stack-bottom + - + label: Bottom flipped + value: tab-stack-bottom-flipped + - + label: Center + value: tab-stack-center + - + label: Center flipped + value: tab-stack-center-flipped + - + id: tags + title: Tags + type: heading + level: 2 + collapsed: true + - + id: minimal-unstyled-tags + title: Plain tags + description: Tags will render as normal text, overrides settings below + type: class-toggle + default: false + - + id: tag-radius + title: Tag shape + type: variable-select + default: 14px + options: + - + label: Pill + value: 14px + - + label: Rounded + value: 4px + - + label: Square + value: 0px + - + id: tag-border-width + title: Tag border width + type: variable-select + default: 1px + options: + - + label: None + value: 0 + - + label: Thin + value: 1px + - + label: Thick + value: 2px + - + id: tag-color + title: Tag text color + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: tag-background + title: Tag background color + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: tag-background-hover + title: Tag background color (hover) + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: text + title: Text + type: heading + level: 2 + collapsed: true + - + id: tx1 + title: Normal text color + type: variable-themed-color + description: Primary text color used by default across all elements + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: hl1 + title: Selected text background + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: hl2 + title: Highlighted text background + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: tx2 + title: Muted text color + description: Secondary text such as sidebar note titles and table headings + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: tx3 + title: Faint text color + description: tertiary text such as input placeholders, empty checkboxes, and disabled statuses + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: text-formatting + title: Markdown syntax color + description: Markdown formatting syntax text color + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: italic-color + title: Italic text color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: bold-color + title: Bold text color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: bold-weight + title: Bold text weight + type: variable-number-slider + default: 600 + min: 100 + max: 900 + step: 100 + - + id: p-spacing + title: Paragraph spacing + description: Space between paragraphs in reading mode (Obsidian 1.3.7+) + type: variable-text + default: 1.75rem + - + id: heading-spacing + title: Heading spacing + description: Space between paragraphs and headings in reading mode (Obsidian 1.3.7+) + type: variable-text + default: 2em + - + id: titles + title: Titles + type: heading + level: 2 + collapsed: true + - + id: tab-title-bar + title: Tab title bar + description: Tab title bar must be turned on in Appearance settings + type: heading + level: 3 + collapsed: true + - + id: file-header-visibility + title: Tab title visibility + description: Visibility of the tab title text + type: class-select + default: minimal-tab-title-hover + options: + - + label: Hover only + value: minimal-tab-title-hover + - + label: Hidden + value: minimal-tab-title-hidden + - + label: Visible + value: minimal-tab-title-visible + - + id: file-header-font-size + title: Tab title font size + description: Accepts any CSS font-size value + type: variable-text + default: 0.9em + - + id: file-header-font-weight + title: Tab title font weight + type: variable-number-slider + default: 400 + min: 100 + max: 900 + step: 100 + - + id: file-header-justify + title: Tab title alignment + type: variable-select + default: center + options: + - + label: Center + value: center + - + label: Left + value: left + - + id: title-color + title: Tab title text color (active) + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: title-color-inactive + title: Tab title text color (inactive) + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: inline-title + title: Inline title + description: Inline titles must be turned on in Appearance settings + type: heading + level: 3 + collapsed: true + - + id: inline-title-font + title: Inline title font + description: Name of the font as it appears on your system + type: variable-text + default: '' + - + id: inline-title-size + title: Inline title font size + description: Accepts any CSS font-size value + type: variable-text + default: 1.125em + - + id: inline-title-weight + title: Inline title font weight + type: variable-number-slider + default: 600 + min: 100 + max: 900 + step: 100 + - + id: inline-title-color + title: Inline title text color (active) + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: translucency + title: Translucency + type: heading + level: 2 + collapsed: true + - + id: workspace-background-translucent + title: Translucent background color + type: variable-themed-color + opacity: true + format: hex + default-light: '#' + default-dark: '#' + - + id: window-frame + title: Window frame + type: heading + level: 2 + collapsed: true + - + id: window-title-off + title: Hide window frame title + description: Hide title in the custom title bar + type: class-toggle + - + id: frame-background + title: Frame background + description: Requires colorful window frame + type: variable-themed-color + opacity: true + format: hsl-split + default-light: '#' + default-dark: '#' + - + id: frame-icon-color + title: Frame icon color + description: Requires colorful frame + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: titlebar-text-color-focused + title: Frame title color (focused) + description: Requires custom title bar + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: titlebar-text-color + title: Frame title color (inactive) + description: Requires custom title bar + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: titlebar-text-weight + title: Frame title font weight + description: Requires custom title bar + type: variable-number-slider + default: 600 + min: 100 + max: 900 + step: 100 +*/ + +/* @settings +name: Minimal Cards +id: minimal-cards-style +settings: + - + id: cards-min-width + title: Card minimum width + type: variable-text + default: 180px + - + id: cards-max-width + title: Card maximum width + description: Default fills the available width, accepts valid CSS units + type: variable-text + default: 1fr + - + id: cards-mobile-width + title: Card minimum width on mobile + type: variable-text + default: 120px + - + id: cards-padding + title: Card padding + type: variable-text + default: 1.2em + - + id: cards-image-height + title: Card maximum image height + type: variable-text + default: 400px + - + id: cards-border-width + title: Card border width + type: variable-text + default: 1px + - + id: cards-background + title: Card background color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + +*/ + +/* @settings +name: Minimal Mobile +id: minimal-mobile +settings: + - + id: mobile-toolbar-off + title: Disable toolbar + description: Turns off mobile toolbar + type: class-toggle +*/ + +/* @settings +name: Minimal Advanced Settings +id: minimal-advanced +settings: + - + id: hide-markdown + title: Hide Markdown syntax + description: (EXPERIMENTAL) Warning, this can be confusing because the characters still exist they are just hidden. + type: class-toggle + - + id: styled-scrollbars + title: Styled scrollbars + description: Use styled scrollbars (replaces native scrollbars) + type: class-toggle + - + id: cursor + title: Cursor style + description: The cursor style for UI elements + type: variable-select + default: default + options: + - + label: Default + value: default + - + label: Pointer + value: pointer + - + label: Crosshair + value: crosshair + - + id: font-ui-small + title: Small font size + description: Font size in px of smaller text + type: variable-number + default: 13 + format: px + - + id: font-ui-smaller + title: Smaller font size + description: Font size in px of smallest text + type: variable-number + default: 11 + format: px + +*/ diff --git a/.obsidian/themes/Things/manifest.json b/.obsidian/themes/Things/manifest.json new file mode 100644 index 0000000..fdbcbe4 --- /dev/null +++ b/.obsidian/themes/Things/manifest.json @@ -0,0 +1,7 @@ +{ + "name": "Things", + "version": "2.1.20", + "minAppVersion": "1.0.0", + "author": "@colineckert", + "authorUrl": "https://twitter.com/colineckert" +} diff --git a/.obsidian/themes/Things/theme.css b/.obsidian/themes/Things/theme.css new file mode 100644 index 0000000..2f055ee --- /dev/null +++ b/.obsidian/themes/Things/theme.css @@ -0,0 +1,1611 @@ +/*─────────────────────────────────────────────────────── +THINGS +Version 2.1.20 +Created by @colineckert + +Readme: +https://github.com/colineckert/obsidian-things + +Support my work: +https://www.buymeacoffee.com/colineckert +────────────────────────────────────────────────────── */ + +/* ─────────────────────────────────────────────────── */ +/* Main Theme Styling */ +/* ─────────────────────────────────────────────────── */ + +@charset "UTF-8"; +body { + /* Colors */ + --base-h: 212; /* Base hue */ + --base-s: 15%; /* Base saturation */ + --base-d: 13%; /* Base lightness Dark Mode - 0 is black */ + --base-l: 97%; /* Base lightness Light Mode - 100 is white */ + --accent-h: 215; /* Accent hue */ + --accent-s: 75%; /* Accent saturation */ + --accent-d: 70%; /* Accent lightness Dark Mode */ + --accent-l: 60%; /* Accent lightness Light Mode */ + + --blue: #2e80f2; + --pink: #ff82b2; + --green: #3eb4bf; + --yellow: #e5b567; + --orange: #e87d3e; + --red: #e83e3e; + --purple: #9e86c8; + + --h1-color: var(--text-normal); + --h2-color: var(--text-normal); + --h3-color: var(--blue); + --h4-color: var(--yellow); + --h5-color: var(--red); + --h6-color: var(--text-muted); + + --strong-color: var(--pink); + --em-color: var(--pink); + --quote-color: var(--green); + + --tag-background-color-l: #bde1d3; + --tag-font-color-l: #1d694b; + --tag-background-color-d: #1d694b; + --tag-font-color-d: #ffffff; + + --highlight-background-color--normal: hsl(50deg 100% 50% / 15%) !important; + --highlight-background-color-underline: hsl(50deg 100% 50% / 100%) !important; + --highlight-background-color--active: hsl(50deg 100% 50% / 20%) !important; + + --progress-color-1: #ad5758; + --progress-color-2: #b87f4c; + --progress-color-3: #d2b874; + --progress-color-4: #b0c07e; + --progress-color-5: #768399; + + /* Font families */ + --font-text-theme: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, + Inter, Ubuntu, sans-serif; + --font-editor-theme: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, + Inter, Ubuntu, sans-serif; + --font-monospace-theme: 'JetBrains Mono', 'Fira Code', Menlo, SFMono-Regular, + Consolas, 'Roboto Mono', monospace; + --font-interface-theme: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, + Inter, Ubuntu, sans-serif; + --font-editor: var(--font-editor-override), var(--font-text-override), + var(--font-editor-theme); + + --h1-size: 1.7rem; + --h2-size: 1.5rem; + --h3-size: 1.2rem; + --h4-size: 1.1rem; + --h5-size: 1rem; + --h6-size: 0.9rem; + + /* Misc */ + --checkbox-radius: 30%; + --link-external-decoration: underline; + --link-decoration: underline; + + /* -------- */ + --radius-s: 4px; + --radius-m: 8px; + --radius-l: 10px; + --radius-xl: 16px; + + --line-width: 40rem; + --line-height: 1.5; + --max-width: 90%; + --max-col-width: 18em; + --icon-muted: 0.5; + --nested-padding: 1.1em; + --folding-offset: 10px; + + --line-width-adaptive: var(--line-width); + --line-width-wide: calc(var(--line-width) + 12.5%); +} + +/* COLOR SCHEMES +────────────────────────────────────────────────────── */ + +.theme-light, +body.theme-light.is-mobile { + color-scheme: light; + --highlight-mix-blend-mode: darken; + --mono-rgb-0: 255, 255, 255; + --mono-rgb-100: 0, 0, 0; + --color-red-rgb: 228, 55, 75; + --color-red: #e4374b; + --color-green-rgb: 12, 181, 79; + --color-green: #0cb54f; + --color-orange: #d96c00; + --color-yellow: #bd8e37; + --color-cyan: #2db7b5; + --color-blue: #086ddd; + --color-purple: #876be0; + --color-pink: #c32b74; + --color-base-00: #ffffff; + --color-base-05: #fcfcfc; + --color-base-10: #f6f7f8; /* code blocks */ + --color-base-20: #f6f7f8; + --color-base-25: #f0f0f0; + --color-base-30: #ebedf0; /* soften dividing lines */ + --color-base-35: #d4d4d4; + --color-base-40: #bdbdbd; + --color-base-50: #ababab; + --color-base-60: #707070; + --color-base-70: #5a5a5a; + --color-base-100: #222222; + --color-accent-hsl: var(--accent-h), var(--accent-s), var(--accent-l); + --color-accent: hsl(var(--accent-h), var(--accent-s), var(--accent-l)); + --color-accent-1: hsl( + var(--accent-h), + var(--accent-s), + calc(var(--accent-l) + 2.5%) + ); + --color-accent-2: hsl( + var(--accent-h), + var(--accent-s), + calc(var(--accent-l) + 5%) + ); + --background-modifier-hover: #e2e5e9; + --background-secondary-alt: var(--color-base-05); + --background-modifier-box-shadow: rgba(0, 0, 0, 0.1); + --background-modifier-cover: rgba(220, 220, 220, 0.4); + --text-highlight-bg-l: rgba(255, 208, 0, 0.4); + --text-highlight-bg: var(--text-highlight-bg-l); + --text-highlight-bg-active: rgba(255, 128, 0, 0.4); + --input-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.12), + 0 2px 3px 0 rgba(0, 0, 0, 0.05), 0 1px 1.5px 0 rgba(0, 0, 0, 0.03), + 0 1px 2px 0 rgba(0, 0, 0, 0.04), 0 0 0 0 transparent; + --input-shadow-hover: inset 0 0 0 1px rgba(0, 0, 0, 0.17), + 0 2px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 1.5px 0 rgba(0, 0, 0, 0.03), + 0 1px 2px 0 rgba(0, 0, 0, 0.04), 0 0 0 0 transparent; + --shadow-s: 0px 1px 2px rgba(0, 0, 0, 0.028), + 0px 3.4px 6.7px rgba(0, 0, 0, 0.042), 0px 15px 30px rgba(0, 0, 0, 0.07); + --shadow-l: 0px 1.8px 7.3px rgba(0, 0, 0, 0.071), + 0px 6.3px 24.7px rgba(0, 0, 0, 0.112), 0px 30px 90px rgba(0, 0, 0, 0.2); + + --tag-background: var(--tag-background-color-l); + --tag-color: var(--tag-font-color-l); + + /* --text-normal: hsl(var(--base-h), var(--base-s), calc(var(--base-l) - 80%)); */ + --text-muted: hsl( + var(--base-h), + calc(var(--base-s) - 5%), + calc(var(--base-l) - 60%) + ); + --text-faint: hsl( + var(--base-h), + calc(var(--base-s) - 5%), + calc(var(--base-l) - 30%) + ); + --text-formatted: hsl( + var(--base-h), + calc(var(--base-s) - 5%), + calc(var(--base-l) - 35%) + ); + --text-accent: hsl(var(--accent-h), var(--accent-s), var(--accent-l)); + --text-accent-hover: hsl( + var(--accent-h), + var(--accent-s), + calc(var(--accent-l) - 10%) + ); + + --atom-gray-1: #383a42; + --atom-gray-2: #383a42; + --atom-red: #e75545; + --atom-green: #4ea24c; + --atom-blue: #3d74f6; + --atom-purple: #a625a4; + --atom-aqua: #0084bc; + --atom-yellow: #e35649; + --atom-orange: #986800; +} + +.theme-dark, +body.theme-dark.is-mobile { + color-scheme: dark; + --highlight-mix-blend-mode: lighten; + --mono-rgb-0: 0, 0, 0; + --mono-rgb-100: 255, 255, 255; + --color-red-rgb: 251, 70, 76; + --color-red: #fb464c; + --color-green-rgb: 68, 207, 110; + --color-green: #44cf6e; + --color-orange: #e9973f; + --color-yellow: #e0de71; + --color-cyan: #53dfdd; + --color-blue: #027aff; + --color-purple: #a882ff; + --color-pink: #fa99cd; + --color-base-00: #1c2127; /* main editor window */ + --color-base-10: #282c34; /* code blocks */ + --color-base-20: #181c20; /* top unselected unfocused nav */ + --color-base-25: #2c313c; + --color-base-30: #35393e; + --color-base-35: #3f3f3f; + --color-base-40: #555; + --color-base-50: #666; /* unfocused text */ + --color-base-60: #999; + --color-base-70: #bababa; + --color-base-100: #dadada; + --color-accent-hsl: var(--accent-h), var(--accent-s), var(--accent-l); + --color-accent: hsl(var(--accent-h), var(--accent-s), var(--accent-l)); + --color-accent-1: hsl( + var(--accent-h), + var(--accent-s), + calc(var(--accent-l) - 3.8%) + ); + --color-accent-2: hsl( + var(--accent-h), + var(--accent-s), + calc(var(--accent-l) + 3.8%) + ); + --titlebar-background-focused: var(--color-base-10); + --background-modifier-form-field: var(--color-base-25); + --background-secondary-alt: var(--color-base-30); + --interactive-normal: var(--color-base-30); + --interactive-hover: var(--color-base-35); + --text-highlight-bg-d: rgba(255, 208, 0, 0.4); + --text-highlight-bg: var(--text-highlight-bg-d); + --text-highlight-bg-active: rgba(255, 128, 0, 0.4); + --text-selection: hsla(var(--interactive-accent-hsl), 0.25); + --input-shadow: inset 0 0.5px 0.5px 0.5px rgba(255, 255, 255, 0.09), + 0 2px 4px 0 rgba(0, 0, 0, 0.15), 0 1px 1.5px 0 rgba(0, 0, 0, 0.1), + 0 1px 2px 0 rgba(0, 0, 0, 0.2), 0 0 0 0 transparent; + --input-shadow-hover: inset 0 0.5px 1px 0.5px rgba(255, 255, 255, 0.16), + 0 2px 3px 0 rgba(0, 0, 0, 0.3), 0 1px 1.5px 0 rgba(0, 0, 0, 0.2), + 0 1px 2px 0 rgba(0, 0, 0, 0.4), 0 0 0 0 transparent; + --shadow-s: 0px 1px 2px rgba(0, 0, 0, 0.121), + 0px 3.4px 6.7px rgba(0, 0, 0, 0.179), 0px 15px 30px rgba(0, 0, 0, 0.3); + --shadow-l: 0px 1.8px 7.3px rgba(0, 0, 0, 0.071), + 0px 6.3px 24.7px rgba(0, 0, 0, 0.112), 0px 30px 90px rgba(0, 0, 0, 0.2); + + --tag-background: var(--tag-background-color-d); + --tag-color: var(--tag-font-color-d); + + --text-muted: hsl(var(--base-h), var(--base-s), calc(var(--base-d) + 65%)); + --text-faint: hsl(var(--base-h), var(--base-s), calc(var(--base-d) + 30%)); + --text-formatted: hsl( + var(--base-h), + var(--base-s), + calc(var(--base-d) + 50%) + ); + + --text-accent: hsl(var(--accent-h), var(--accent-s), var(--accent-d)); + --text-accent-hover: hsl( + var(--accent-h), + var(--accent-s), + calc(var(--accent-d) + 12%) + ); + + --atom-gray-1: #5c6370; + --atom-gray-2: #abb2bf; + --atom-red: #e06c75; + --atom-orange: #d19a66; + --atom-green: #98c379; + --atom-aqua: #56b6c2; + --atom-purple: #c678dd; + --atom-blue: #61afef; + --atom-yellow: #e5c07b; +} + +body.is-mobile.theme-dark.mobile-black-background { + --color-base-00: black; +} + +/* Make exported PDFs render correctly */ +@media print { + .theme-dark { + --highlight-mix-blend-mode: darken; + --color-base-30: #ebedf0; + --h1-color: var(--color-base-00); + } +} + +/* H2 styling */ +body.h2-underline h2, +body.h2-underline .HyperMD-header.HyperMD-header-2.cm-line { + border-bottom: 2px solid var(--background-modifier-border); + width: 100%; + padding-bottom: 2px; +} + +/* Hashtags font */ +.markdown-source-view.mod-cm6.is-live-preview .cm-hashtag.cm-meta, +.markdown-source-view.mod-cm5 .cm-hashtag.cm-meta { + font-family: var(--font-text-theme); +} + +/* Blockquote */ +body:not(.default-font-color) .markdown-preview-view blockquote, +body:not(.default-font-color) span.cm-quote.cm-quote-1 { + font-style: italic; + color: var(--quote-color); +} + +/* Bold font */ +body:not(.default-font-color) strong, +body:not(.default-font-color) span:not(.cm-highlight).cm-strong { + color: var(--strong-color); +} + +/* Italics */ +body:not(.default-font-color) em, +body:not(.default-font-color) span:not(.cm-highlight).cm-em { + color: var(--em-color); +} + +/* Styled highlights */ +body:not(.default-font-color) mark strong, +body:not(.default-font-color) mark em { + color: var(--text-normal); +} + +/* Fancy highlight */ +body.fancy-highlight span.cm-highlight, +body.fancy-highlight .markdown-preview-view mark, +body.fancy-highlight span.search-result-file-matched-text { + background-image: linear-gradient( + 0deg, + var(--highlight-background-color-underline) 0%, + var(--highlight-background-color-underline) 2px, + var(--highlight-background-color--active) 2px, + var(--highlight-background-color--active) 100% + ) !important; + background-color: var(--highlight-text-color--active) !important; +} + +/* Markdown formatting */ +.cm-formatting-strong, +.cm-formatting-em, +.cm-formatting.cm-formatting-quote { + color: var(--text-formatted) !important; + font-weight: var(--normal-weight); + letter-spacing: -0.02em; +} + +/* Completed checkboxes */ +.markdown-preview-view ul > li.task-list-item.is-checked, +.markdown-source-view.mod-cm6 .HyperMD-task-line[data-task='x'], +.markdown-source-view.mod-cm6 .HyperMD-task-line[data-task='X'], +.markdown-source-view.mod-cm6 .HyperMD-task-line[data-task='M'] { + text-decoration: none; + color: var(--text-faint); +} + +/* Image card */ +img { + border-radius: 4px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); +} + +.theme-dark .modal-container .suggestion-item.is-selected { + background: var(--color-accent); +} + +/* Focus active line */ +body.active-line .cm-active:not(.HyperMD-header, .HyperMD-codeblock)::before, +body.active-line .cm-active.HyperMD-quote::before { + content: ''; + height: 100%; + position: absolute; + left: -1.125em; + border-left: 3px solid var(--color-accent); + border-radius: 10px 0 0 10px; + opacity: 0.85; +} + +/* Code blocks horizontal scroll */ +.markdown-reading-view .markdown-preview-view pre:not(.frontmatter) code { + white-space: pre; +} + +/* Fancy code blocks */ +.cm-inline-code, +.cm-s-obsidian .HyperMD-codeblock, +.markdown-preview-view.markdown-preview-view :is(pre, code) { + --codeblock-border: var(--color-base-30); + --codeblock-roundness: var(--radius-s); + --code-block-alt-bg: var(--color-base-30); + --slight-code-roundish: var(--radius-xs); +} + +body.fancy-code .cm-s-obsidian .HyperMD-codeblock { + line-height: 1.4em; +} + +body.fancy-code .HyperMD-codeblock-begin { + counter-reset: codeblock-line-numbers; +} + +body.fancy-code + .HyperMD-codeblock:not( + .HyperMD-codeblock-begin, + .HyperMD-codeblock-end + )::before { + counter-increment: codeblock-line-numbers; + content: counter(codeblock-line-numbers); + font-size: 0.75em; + line-height: 2; + text-align: right; + height: 100%; + width: 1.7em; + color: var(--text-muted); + /* background-color: #1e2029; */ + background-color: var(--code-background); + position: absolute; + left: 0; + padding-right: 1.4em; +} + +body.fancy-code + .HyperMD-codeblock.cm-line:not( + .HyperMD-codeblock-begin, + .HyperMD-codeblock-end + ) { + padding-left: 2.8em; +} + +body.fancy-code .cm-s-obsidian div.HyperMD-codeblock-begin-bg { + background-color: var(--code-block-alt-bg); + border: var(--codeblock-border); + border-bottom: none; + border-top-right-radius: var(--codeblock-roundness); + border-top-left-radius: var(--codeblock-roundness); +} + +body.fancy-code div.HyperMD-codeblock-bg:not(.HyperMD-codeblock-begin-bg) { + border-right: var(--codeblock-border); + border-left: var(--codeblock-border); +} + +body.fancy-code .cm-line.HyperMD-codeblock .code-block-flair { + font-size: calc(var(--code-size) * 0.9); + color: var(--text-muted); + padding: 0 1px; + top: 0; +} + +body.fancy-code .markdown-reading-view pre[class*='language-']::before { + display: block; + content: ' '; + line-height: 1.5em; + background-color: var(--code-block-alt-bg); + border-top-right-radius: calc(var(--codeblock-roundness) * 0.8); + border-top-left-radius: calc(var(--codeblock-roundness) * 0.8); +} + +body.fancy-code pre[class*='language-']::after { + content: attr(class); + font-size: 0.9rem; + text-shadow: none; + color: var(--text-muted); + position: absolute; + top: 2px; + right: 5px; +} + +body.fancy-code .markdown-preview-view pre code { + padding: var(--size-4-1) var(--size-4-2); +} + +body.fancy-code .copy-code-button.copy-code-button.copy-code-button { + background-color: var(--interactive-normal); + top: unset; + bottom: 0; + padding: 0 var(--size-2-2); +} + +body.fancy-code .markdown-preview-view.markdown-preview-view pre { + padding: 0; + margin-top: var(--size-4-2); + border: var(--codeblock-border); + border-radius: var(--codeblock-roundness); +} + +body.fancy-code .markdown-reading-view .markdown-preview-view pre code { + display: block; +} + +body.fancy-code .markdown-preview-view pre code { + padding: var(--size-4-1) var(--size-4-5); +} + +/* ------------------- */ +/* One Dark Syntax Coloring */ +/* Source: https://github.com/AGMStudio/prism-theme-one-dark */ +/* ------------------- */ +.theme-light .token.comment .theme-light .cm-comment { + color: #ababab; +} +.theme-dark .token.comment, +.theme-dark .cm-comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: var(--atom-gray-1); +} +.token.punctuation, +.token.plain-text, +.token.dom.variable, +.cm-hmd-codeblock.cm-bracket { + color: var(--atom-gray-2); +} +code[class*='language-'], +.token.selector, +.cm-tag, +.token.dom.variable, +.token.tag, +.cm-def, +.token.parameter, +.cm-property, +.cm-qualifier { + color: var(--atom-red); +} +.token.class-name, +.token.maybe-class-name, +.token.property-access, +.token.constant, +.token.builtin, +.cm-variable-2, +.cm-type, +.cm-atom, +code .cm-tag { + color: var(--atom-yellow); +} +.token.property, +.token.boolean, +.token.number, +.token.symbol, +.token.attr-name, +.token.deleted, +.cm-attribute, +.cm-number, +.cm-property.cm-string { + color: var(--atom-orange); +} +.token.string, +.token.char, +.token.attr-value, +.token.inserted, +.cm-hmd-codeblock.cm-string, +.cm-hmd-codeblock.cm-string-2 { + color: var(--atom-green); +} +.token.operator, +.cm-operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: var(--atom-aqua); +} +.token.atrule, +.token.keyword, +.cm-keyword { + color: var(--atom-purple); +} +.cm-variable, +.token.function, +.token.method, +.token.macro.property { + color: var(--atom-blue); +} +.token.regex, +.token.important, +.token.variable { + color: var(--atom-purple); +} +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} +.token.entity { + cursor: help; +} + +/* --------------------- */ +/* Mobile toolbar button */ +/* --------------------- */ + +body.is-mobile:not(.floating-button-off):not(.advanced-toolbar) + .view-action:nth-last-of-type(2), +body.is-mobile:not(.floating-button-off):not(.advanced-toolbar) + .view-action:nth-last-of-type(2) { + color: white; + background-color: var(--blue); + opacity: 1; + top: calc(90vh - 110px); + display: flex; + padding: 5px; + position: fixed; + left: 86vw; + transform: translate(-40%, 5%); + justify-content: center; + align-items: center; + width: 53px; + height: 53px; + border-radius: 50% !important; + box-shadow: 1.1px 0.3px 2.2px rgba(0, 0, 0, 0.02), + 2.7px 0.7px 5.3px rgba(0, 0, 0, 0.028), 5px 1.3px 10px rgba(0, 0, 0, 0.035), + 8.9px 2.2px 17.9px rgba(0, 0, 0, 0.042), + 16.7px 4.2px 33.4px rgba(0, 0, 0, 0.05), 40px 10px 80px rgba(0, 0, 0, 0.07); +} + +body.is-mobile:not(.floating-button-off).advanced-toolbar + .view-action:nth-last-of-type(2), +body.is-mobile:not(.floating-button-off).advanced-toolbar + .view-action:nth-last-of-type(2) { + color: white; + background-color: var(--blue); + opacity: 1; + position: fixed; + top: calc(100vh - 138px); + display: flex; + padding: 5px; + left: 86vw; + transform: translate(-40%, -115%); + justify-content: center; + align-items: center; + width: 53px; + height: 53px; + border-radius: 50% !important; + box-shadow: 1.1px 0.3px 2.2px rgba(0, 0, 0, 0.02), + 2.7px 0.7px 5.3px rgba(0, 0, 0, 0.028), 5px 1.3px 10px rgba(0, 0, 0, 0.035), + 8.9px 2.2px 17.9px rgba(0, 0, 0, 0.042), + 16.7px 4.2px 33.4px rgba(0, 0, 0, 0.05), 40px 10px 80px rgba(0, 0, 0, 0.07); +} + +/* ------------------- */ +/* Checkbox styling & icons. Credit Minimal theme: https://minimal.guide/Block+types/Checklists#Checkbox+styling */ +/* Support @kepano - https://www.buymeacoffee.com/kepano */ +/* ------------------- */ + +input[data-task='!']:checked, +input[data-task='*']:checked, +input[data-task='-']:checked, +input[data-task='<']:checked, +input[data-task='>']:checked, +input[data-task='I']:checked, +input[data-task='b']:checked, +input[data-task='c']:checked, +input[data-task='d']:checked, +input[data-task='f']:checked, +input[data-task='k']:checked, +input[data-task='l']:checked, +input[data-task='p']:checked, +input[data-task='u']:checked, +input[data-task='w']:checked, +input[data-task='P']:checked, /* Open PR */ +input[data-task='M']:checked, /* Merged PR */ +input[data-task='D']:checked, /* Draft PR */ +li[data-task='!'] > input:checked, +li[data-task='!'] > p > input:checked, +li[data-task='*'] > input:checked, +li[data-task='*'] > p > input:checked, +li[data-task='-'] > input:checked, +li[data-task='-'] > p > input:checked, +li[data-task='<'] > input:checked, +li[data-task='<'] > p > input:checked, +li[data-task='>'] > input:checked, +li[data-task='>'] > p > input:checked, +li[data-task='I'] > input:checked, +li[data-task='I'] > p > input:checked, +li[data-task='b'] > input:checked, +li[data-task='b'] > p > input:checked, +li[data-task='c'] > input:checked, +li[data-task='c'] > p > input:checked, +li[data-task='d'] > input:checked, +li[data-task='d'] > p > input:checked, +li[data-task='f'] > input:checked, +li[data-task='f'] > p > input:checked, +li[data-task='k'] > input:checked, +li[data-task='k'] > p > input:checked, +li[data-task='l'] > input:checked, +li[data-task='l'] > p > input:checked, +li[data-task='p'] > input:checked, +li[data-task='p'] > p > input:checked, +li[data-task='u'] > input:checked, +li[data-task='u'] > p > input:checked, +li[data-task='w'] > input:checked, +li[data-task='w'] > p > input:checked, +li[data-task='P'] > input:checked, +li[data-task='P'] > p > input:checked, +li[data-task='M'] > input:checked, +li[data-task='M'] > p > input:checked, +li[data-task='D'] > input:checked, +li[data-task='D'] > p > input:checked { + --checkbox-marker-color: transparent; + border: none; + border-radius: 0; + background-image: none; + background-color: currentColor; + -webkit-mask-size: var(--checkbox-icon); + -webkit-mask-position: 50% 50%; +} +input[data-task='>']:checked, +li[data-task='>'] > input:checked, +li[data-task='>'] > p > input:checked { + color: var(--text-faint); + transform: rotate(90deg); + -webkit-mask-position: 50% 100%; + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='M10.894 2.553a1 1 0 00-1.788 0l-7 14a1 1 0 001.169 1.409l5-1.429A1 1 0 009 15.571V11a1 1 0 112 0v4.571a1 1 0 00.725.962l5 1.428a1 1 0 001.17-1.408l-7-14z' /%3E%3C/svg%3E"); +} +input[data-task='<']:checked, +li[data-task='<'] > input:checked, +li[data-task='<'] > p > input:checked { + color: var(--text-faint); + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M10 18a8 8 0 100-16 8 8 0 000 16zm1-12a1 1 0 10-2 0v4a1 1 0 00.293.707l2.828 2.829a1 1 0 101.415-1.415L11 9.586V6z' clip-rule='evenodd' /%3E%3C/svg%3E"); + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M6 2a1 1 0 00-1 1v1H4a2 2 0 00-2 2v10a2 2 0 002 2h12a2 2 0 002-2V6a2 2 0 00-2-2h-1V3a1 1 0 10-2 0v1H7V3a1 1 0 00-1-1zm0 5a1 1 0 000 2h8a1 1 0 100-2H6z' clip-rule='evenodd' /%3E%3C/svg%3E"); +} +input[data-task='?']:checked, +li[data-task='?'] > input:checked, +li[data-task='?'] > p > input:checked { + --checkbox-marker-color: transparent; + background-color: var(--color-yellow); + border-color: var(--color-yellow); + background-position: 50% 50%; + background-size: 200% 90%; + background-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 16 16"%3E%3Cpath fill="white" fill-rule="evenodd" d="M4.475 5.458c-.284 0-.514-.237-.47-.517C4.28 3.24 5.576 2 7.825 2c2.25 0 3.767 1.36 3.767 3.215c0 1.344-.665 2.288-1.79 2.973c-1.1.659-1.414 1.118-1.414 2.01v.03a.5.5 0 0 1-.5.5h-.77a.5.5 0 0 1-.5-.495l-.003-.2c-.043-1.221.477-2.001 1.645-2.712c1.03-.632 1.397-1.135 1.397-2.028c0-.979-.758-1.698-1.926-1.698c-1.009 0-1.71.529-1.938 1.402c-.066.254-.278.461-.54.461h-.777ZM7.496 14c.622 0 1.095-.474 1.095-1.09c0-.618-.473-1.092-1.095-1.092c-.606 0-1.087.474-1.087 1.091S6.89 14 7.496 14Z"%2F%3E%3C%2Fsvg%3E'); +} +.theme-dark input[data-task='?']:checked, +.theme-dark li[data-task='?'] > input:checked, +.theme-dark li[data-task='?'] > p > input:checked { + background-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 16 16"%3E%3Cpath fill="black" fill-opacity="0.8" fill-rule="evenodd" d="M4.475 5.458c-.284 0-.514-.237-.47-.517C4.28 3.24 5.576 2 7.825 2c2.25 0 3.767 1.36 3.767 3.215c0 1.344-.665 2.288-1.79 2.973c-1.1.659-1.414 1.118-1.414 2.01v.03a.5.5 0 0 1-.5.5h-.77a.5.5 0 0 1-.5-.495l-.003-.2c-.043-1.221.477-2.001 1.645-2.712c1.03-.632 1.397-1.135 1.397-2.028c0-.979-.758-1.698-1.926-1.698c-1.009 0-1.71.529-1.938 1.402c-.066.254-.278.461-.54.461h-.777ZM7.496 14c.622 0 1.095-.474 1.095-1.09c0-.618-.473-1.092-1.095-1.092c-.606 0-1.087.474-1.087 1.091S6.89 14 7.496 14Z"%2F%3E%3C%2Fsvg%3E'); +} +input[data-task='/']:checked, +li[data-task='/'] > input:checked, +li[data-task='/'] > p > input:checked { + background-image: none; + background-color: transparent; + position: relative; + overflow: hidden; +} +input[data-task='/']:checked:after, +li[data-task='/'] > input:checked:after, +li[data-task='/'] > p > input:checked:after { + top: 0; + left: 0; + content: ' '; + display: block; + position: absolute; + background-color: var(--color-accent); + width: calc(50% - 0.5px); + height: 100%; + -webkit-mask-image: none; +} +input[data-task='!']:checked, +li[data-task='!'] > input:checked, +li[data-task='!'] > p > input:checked { + color: var(--color-orange); + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z' clip-rule='evenodd' /%3E%3C/svg%3E"); +} +input[data-task='"']:checked, +input[data-task='“']:checked, +li[data-task='"'] > input:checked, +li[data-task='"'] > p > input:checked, +li[data-task='“'] > input:checked, +li[data-task='“'] > p > input:checked { + --checkbox-marker-color: transparent; + background-position: 50% 50%; + background-color: var(--color-cyan); + border-color: var(--color-cyan); + background-size: 75%; + background-repeat: no-repeat; + background-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"%3E%3Cpath fill="white" d="M6.5 10c-.223 0-.437.034-.65.065c.069-.232.14-.468.254-.68c.114-.308.292-.575.469-.844c.148-.291.409-.488.601-.737c.201-.242.475-.403.692-.604c.213-.21.492-.315.714-.463c.232-.133.434-.28.65-.35l.539-.222l.474-.197l-.485-1.938l-.597.144c-.191.048-.424.104-.689.171c-.271.05-.56.187-.882.312c-.318.142-.686.238-1.028.466c-.344.218-.741.4-1.091.692c-.339.301-.748.562-1.05.945c-.33.358-.656.734-.909 1.162c-.293.408-.492.856-.702 1.299c-.19.443-.343.896-.468 1.336c-.237.882-.343 1.72-.384 2.437c-.034.718-.014 1.315.028 1.747c.015.204.043.402.063.539l.025.168l.026-.006A4.5 4.5 0 1 0 6.5 10zm11 0c-.223 0-.437.034-.65.065c.069-.232.14-.468.254-.68c.114-.308.292-.575.469-.844c.148-.291.409-.488.601-.737c.201-.242.475-.403.692-.604c.213-.21.492-.315.714-.463c.232-.133.434-.28.65-.35l.539-.222l.474-.197l-.485-1.938l-.597.144c-.191.048-.424.104-.689.171c-.271.05-.56.187-.882.312c-.317.143-.686.238-1.028.467c-.344.218-.741.4-1.091.692c-.339.301-.748.562-1.05.944c-.33.358-.656.734-.909 1.162c-.293.408-.492.856-.702 1.299c-.19.443-.343.896-.468 1.336c-.237.882-.343 1.72-.384 2.437c-.034.718-.014 1.315.028 1.747c.015.204.043.402.063.539l.025.168l.026-.006A4.5 4.5 0 1 0 17.5 10z"%2F%3E%3C%2Fsvg%3E'); +} +.theme-dark input[data-task='"']:checked, +.theme-dark input[data-task='“']:checked, +.theme-dark li[data-task='"'] > input:checked, +.theme-dark li[data-task='"'] > p > input:checked, +.theme-dark li[data-task='“'] > input:checked, +.theme-dark li[data-task='“'] > p > input:checked { + background-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"%3E%3Cpath fill="black" fill-opacity="0.7" d="M6.5 10c-.223 0-.437.034-.65.065c.069-.232.14-.468.254-.68c.114-.308.292-.575.469-.844c.148-.291.409-.488.601-.737c.201-.242.475-.403.692-.604c.213-.21.492-.315.714-.463c.232-.133.434-.28.65-.35l.539-.222l.474-.197l-.485-1.938l-.597.144c-.191.048-.424.104-.689.171c-.271.05-.56.187-.882.312c-.318.142-.686.238-1.028.466c-.344.218-.741.4-1.091.692c-.339.301-.748.562-1.05.945c-.33.358-.656.734-.909 1.162c-.293.408-.492.856-.702 1.299c-.19.443-.343.896-.468 1.336c-.237.882-.343 1.72-.384 2.437c-.034.718-.014 1.315.028 1.747c.015.204.043.402.063.539l.025.168l.026-.006A4.5 4.5 0 1 0 6.5 10zm11 0c-.223 0-.437.034-.65.065c.069-.232.14-.468.254-.68c.114-.308.292-.575.469-.844c.148-.291.409-.488.601-.737c.201-.242.475-.403.692-.604c.213-.21.492-.315.714-.463c.232-.133.434-.28.65-.35l.539-.222l.474-.197l-.485-1.938l-.597.144c-.191.048-.424.104-.689.171c-.271.05-.56.187-.882.312c-.317.143-.686.238-1.028.467c-.344.218-.741.4-1.091.692c-.339.301-.748.562-1.05.944c-.33.358-.656.734-.909 1.162c-.293.408-.492.856-.702 1.299c-.19.443-.343.896-.468 1.336c-.237.882-.343 1.72-.384 2.437c-.034.718-.014 1.315.028 1.747c.015.204.043.402.063.539l.025.168l.026-.006A4.5 4.5 0 1 0 17.5 10z"%2F%3E%3C%2Fsvg%3E'); +} +input[data-task='-']:checked, +li[data-task='-'] > input:checked, +li[data-task='-'] > p > input:checked { + color: var(--text-faint); + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z' clip-rule='evenodd' /%3E%3C/svg%3E"); +} +body:not(.tasks) + .markdown-preview-view + ul + li[data-task='-'].task-list-item.is-checked, +body:not(.tasks) + .markdown-source-view.mod-cm6 + .HyperMD-task-line[data-task]:is([data-task='-']), +body:not(.tasks) li[data-task='-'].task-list-item.is-checked { + color: var(--text-faint); + text-decoration: line-through solid var(--text-faint) 1px; +} +input[data-task='*']:checked, +li[data-task='*'] > input:checked, +li[data-task='*'] > p > input:checked { + color: var(--color-yellow); + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z' /%3E%3C/svg%3E"); +} +input[data-task='l']:checked, +li[data-task='l'] > input:checked, +li[data-task='l'] > p > input:checked { + color: var(--color-red); + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M5.05 4.05a7 7 0 119.9 9.9L10 18.9l-4.95-4.95a7 7 0 010-9.9zM10 11a2 2 0 100-4 2 2 0 000 4z' clip-rule='evenodd' /%3E%3C/svg%3E"); +} +input[data-task='i']:checked, +li[data-task='i'] > input:checked, +li[data-task='i'] > p > input:checked { + --checkbox-marker-color: transparent; + background-color: var(--color-blue); + border-color: var(--color-blue); + background-position: 50%; + background-size: 100%; + background-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512"%3E%3Cpath fill="none" stroke="white" stroke-linecap="round" stroke-linejoin="round" stroke-width="40" d="M196 220h64v172"%2F%3E%3Cpath fill="none" stroke="white" stroke-linecap="round" stroke-miterlimit="10" stroke-width="40" d="M187 396h138"%2F%3E%3Cpath fill="white" d="M256 160a32 32 0 1 1 32-32a32 32 0 0 1-32 32Z"%2F%3E%3C%2Fsvg%3E'); +} +.theme-dark input[data-task='i']:checked, +.theme-dark li[data-task='i'] > input:checked, +.theme-dark li[data-task='i'] > p > input:checked { + background-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512"%3E%3Cpath fill="none" stroke="black" stroke-opacity="0.8" stroke-linecap="round" stroke-linejoin="round" stroke-width="40" d="M196 220h64v172"%2F%3E%3Cpath fill="none" stroke="black" stroke-opacity="0.8" stroke-linecap="round" stroke-miterlimit="10" stroke-width="40" d="M187 396h138"%2F%3E%3Cpath fill="black" fill-opacity="0.8" d="M256 160a32 32 0 1 1 32-32a32 32 0 0 1-32 32Z"%2F%3E%3C%2Fsvg%3E'); +} +input[data-task='S']:checked, +li[data-task='S'] > input:checked, +li[data-task='S'] > p > input:checked { + --checkbox-marker-color: transparent; + border-color: var(--color-green); + background-color: var(--color-green); + background-size: 100%; + background-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 48 48"%3E%3Cpath fill="white" fill-rule="evenodd" d="M26 8a2 2 0 1 0-4 0v2a8 8 0 1 0 0 16v8a4.002 4.002 0 0 1-3.773-2.666a2 2 0 0 0-3.771 1.332A8.003 8.003 0 0 0 22 38v2a2 2 0 1 0 4 0v-2a8 8 0 1 0 0-16v-8a4.002 4.002 0 0 1 3.773 2.666a2 2 0 0 0 3.771-1.332A8.003 8.003 0 0 0 26 10V8Zm-4 6a4 4 0 0 0 0 8v-8Zm4 12v8a4 4 0 0 0 0-8Z" clip-rule="evenodd"%2F%3E%3C%2Fsvg%3E'); +} +.theme-dark input[data-task='S']:checked, +.theme-dark li[data-task='S'] > input:checked, +.theme-dark li[data-task='S'] > p > input:checked { + background-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 48 48"%3E%3Cpath fill-opacity="0.8" fill="black" fill-rule="evenodd" d="M26 8a2 2 0 1 0-4 0v2a8 8 0 1 0 0 16v8a4.002 4.002 0 0 1-3.773-2.666a2 2 0 0 0-3.771 1.332A8.003 8.003 0 0 0 22 38v2a2 2 0 1 0 4 0v-2a8 8 0 1 0 0-16v-8a4.002 4.002 0 0 1 3.773 2.666a2 2 0 0 0 3.771-1.332A8.003 8.003 0 0 0 26 10V8Zm-4 6a4 4 0 0 0 0 8v-8Zm4 12v8a4 4 0 0 0 0-8Z" clip-rule="evenodd"%2F%3E%3C%2Fsvg%3E'); +} +input[data-task='I']:checked, +li[data-task='I'] > input:checked, +li[data-task='I'] > p > input:checked { + color: var(--color-yellow); + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='M11 3a1 1 0 10-2 0v1a1 1 0 102 0V3zM15.657 5.757a1 1 0 00-1.414-1.414l-.707.707a1 1 0 001.414 1.414l.707-.707zM18 10a1 1 0 01-1 1h-1a1 1 0 110-2h1a1 1 0 011 1zM5.05 6.464A1 1 0 106.464 5.05l-.707-.707a1 1 0 00-1.414 1.414l.707.707zM5 10a1 1 0 01-1 1H3a1 1 0 110-2h1a1 1 0 011 1zM8 16v-1h4v1a2 2 0 11-4 0zM12 14c.015-.34.208-.646.477-.859a4 4 0 10-4.954 0c.27.213.462.519.476.859h4.002z' /%3E%3C/svg%3E"); +} +input[data-task='f']:checked, +li[data-task='f'] > input:checked, +li[data-task='f'] > p > input:checked { + color: var(--color-red); + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M12.395 2.553a1 1 0 00-1.45-.385c-.345.23-.614.558-.822.88-.214.33-.403.713-.57 1.116-.334.804-.614 1.768-.84 2.734a31.365 31.365 0 00-.613 3.58 2.64 2.64 0 01-.945-1.067c-.328-.68-.398-1.534-.398-2.654A1 1 0 005.05 6.05 6.981 6.981 0 003 11a7 7 0 1011.95-4.95c-.592-.591-.98-.985-1.348-1.467-.363-.476-.724-1.063-1.207-2.03zM12.12 15.12A3 3 0 017 13s.879.5 2.5.5c0-1 .5-4 1.25-4.5.5 1 .786 1.293 1.371 1.879A2.99 2.99 0 0113 13a2.99 2.99 0 01-.879 2.121z' clip-rule='evenodd' /%3E%3C/svg%3E"); +} +input[data-task='k']:checked, +li[data-task='k'] > input:checked, +li[data-task='k'] > p > input:checked { + color: var(--color-yellow); + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M18 8a6 6 0 01-7.743 5.743L10 14l-1 1-1 1H6v2H2v-4l4.257-4.257A6 6 0 1118 8zm-6-4a1 1 0 100 2 2 2 0 012 2 1 1 0 102 0 4 4 0 00-4-4z' clip-rule='evenodd' /%3E%3C/svg%3E"); +} +input[data-task='u']:checked, +li[data-task='u'] > input:checked, +li[data-task='u'] > p > input:checked { + color: var(--color-green); + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M12 7a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0V8.414l-4.293 4.293a1 1 0 01-1.414 0L8 10.414l-4.293 4.293a1 1 0 01-1.414-1.414l5-5a1 1 0 011.414 0L11 10.586 14.586 7H12z' clip-rule='evenodd' /%3E%3C/svg%3E"); +} +input[data-task='d']:checked, +li[data-task='d'] > input:checked, +li[data-task='d'] > p > input:checked { + color: var(--color-red); + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M12 13a1 1 0 100 2h5a1 1 0 001-1V9a1 1 0 10-2 0v2.586l-4.293-4.293a1 1 0 00-1.414 0L8 9.586 3.707 5.293a1 1 0 00-1.414 1.414l5 5a1 1 0 001.414 0L11 9.414 14.586 13H12z' clip-rule='evenodd' /%3E%3C/svg%3E"); +} +input[data-task='w']:checked, +li[data-task='w'] > input:checked, +li[data-task='w'] > p > input:checked { + color: var(--color-purple); + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M6 3a1 1 0 011-1h.01a1 1 0 010 2H7a1 1 0 01-1-1zm2 3a1 1 0 00-2 0v1a2 2 0 00-2 2v1a2 2 0 00-2 2v.683a3.7 3.7 0 011.055.485 1.704 1.704 0 001.89 0 3.704 3.704 0 014.11 0 1.704 1.704 0 001.89 0 3.704 3.704 0 014.11 0 1.704 1.704 0 001.89 0A3.7 3.7 0 0118 12.683V12a2 2 0 00-2-2V9a2 2 0 00-2-2V6a1 1 0 10-2 0v1h-1V6a1 1 0 10-2 0v1H8V6zm10 8.868a3.704 3.704 0 01-4.055-.036 1.704 1.704 0 00-1.89 0 3.704 3.704 0 01-4.11 0 1.704 1.704 0 00-1.89 0A3.704 3.704 0 012 14.868V17a1 1 0 001 1h14a1 1 0 001-1v-2.132zM9 3a1 1 0 011-1h.01a1 1 0 110 2H10a1 1 0 01-1-1zm3 0a1 1 0 011-1h.01a1 1 0 110 2H13a1 1 0 01-1-1z' clip-rule='evenodd' /%3E%3C/svg%3E"); +} +input[data-task='p']:checked, +li[data-task='p'] > input:checked, +li[data-task='p'] > p > input:checked { + color: var(--color-green); + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='M2 10.5a1.5 1.5 0 113 0v6a1.5 1.5 0 01-3 0v-6zM6 10.333v5.43a2 2 0 001.106 1.79l.05.025A4 4 0 008.943 18h5.416a2 2 0 001.962-1.608l1.2-6A2 2 0 0015.56 8H12V4a2 2 0 00-2-2 1 1 0 00-1 1v.667a4 4 0 01-.8 2.4L6.8 7.933a4 4 0 00-.8 2.4z' /%3E%3C/svg%3E"); +} +input[data-task='c']:checked, +li[data-task='c'] > input:checked, +li[data-task='c'] > p > input:checked { + color: var(--color-orange); + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='M18 9.5a1.5 1.5 0 11-3 0v-6a1.5 1.5 0 013 0v6zM14 9.667v-5.43a2 2 0 00-1.105-1.79l-.05-.025A4 4 0 0011.055 2H5.64a2 2 0 00-1.962 1.608l-1.2 6A2 2 0 004.44 12H8v4a2 2 0 002 2 1 1 0 001-1v-.667a4 4 0 01.8-2.4l1.4-1.866a4 4 0 00.8-2.4z' /%3E%3C/svg%3E"); +} +input[data-task='b']:checked, +li[data-task='b'] > input:checked, +li[data-task='b'] > p > input:checked { + color: var(--color-orange); + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='M5 4a2 2 0 012-2h6a2 2 0 012 2v14l-5-2.5L5 18V4z' /%3E%3C/svg%3E"); +} +input[data-task='P']:checked, +li[data-task='P'] > input:checked, +li[data-task='P'] > p > input:checked { + color: var(--color-green); + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3E%3Cpath d='M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z'%3E%3C/path%3E%3C/svg%3E"); +} +input[data-task='M']:checked, +li[data-task='M'] > input:checked, +li[data-task='M'] > p > input:checked { + color: var(--color-purple); + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3E%3Cpath d='M5.45 5.154A4.25 4.25 0 0 0 9.25 7.5h1.378a2.251 2.251 0 1 1 0 1.5H9.25A5.734 5.734 0 0 1 5 7.123v3.505a2.25 2.25 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.95-.218ZM4.25 13.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm8.5-4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5ZM5 3.25a.75.75 0 1 0 0 .005V3.25Z'%3E%3C/path%3E%3C/svg%3E"); +} +input[data-task='D']:checked, +li[data-task='D'] > input:checked, +li[data-task='D'] > p > input:checked { + color: var(--color-base-50); + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3E%3Cpath d='M3.25 1A2.25 2.25 0 0 1 4 5.372v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.251 2.251 0 0 1 3.25 1Zm9.5 14a2.25 2.25 0 1 1 0-4.5 2.25 2.25 0 0 1 0 4.5ZM2.5 3.25a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0ZM3.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm9.5 0a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM14 7.5a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0Zm0-4.25a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0Z'%3E%3C/path%3E%3C/svg%3E"); +} + +body:not(.tasks) li[data-task='>'].task-list-item.is-checked, +body:not(.tasks) li[data-task='<'].task-list-item.is-checked, +body:not(.tasks) li[data-task='b'].task-list-item.is-checked, +body:not(.tasks) li[data-task='i'].task-list-item.is-checked, +body:not(.tasks) li[data-task='*'].task-list-item.is-checked, +body:not(.tasks) li[data-task='!'].task-list-item.is-checked, +body:not(.tasks) li[data-task='S'].task-list-item.is-checked, +body:not(.tasks) li[data-task='?'].task-list-item.is-checked, +body:not(.tasks) li[data-task='/'].task-list-item.is-checked, +body:not(.tasks) li[data-task='"'].task-list-item.is-checked, +body:not(.tasks) li[data-task='l'].task-list-item.is-checked, +body:not(.tasks) li[data-task='I'].task-list-item.is-checked, +body:not(.tasks) li[data-task='p'].task-list-item.is-checked, +body:not(.tasks) li[data-task='c'].task-list-item.is-checked, +body:not(.tasks) li[data-task='f'].task-list-item.is-checked, +body:not(.tasks) li[data-task='k'].task-list-item.is-checked, +body:not(.tasks) li[data-task='w'].task-list-item.is-checked, +body:not(.tasks) li[data-task='u'].task-list-item.is-checked, +body:not(.tasks) li[data-task='d'].task-list-item.is-checked, +body:not(.tasks) li[data-task='P'].task-list-item.is-checked, +body:not(.tasks) li[data-task='D'].task-list-item.is-checked { + color: var(--text-normal); +} + +/* ------------------- */ +/* Progress bars styling. Credit Minimal theme: https://minimal.guide/progress-bars */ +/* Support @kepano - https://www.buymeacoffee.com/kepano */ +/* ------------------- */ +.progress-color { + .markdown-rendered progress, + .markdown-source-view.is-live-preview progress, + .markdown-preview-view progress { + &[value^='1']::-webkit-progress-value, + &[value^='2']::-webkit-progress-value, + &[value^='3']::-webkit-progress-value { + background-color: var(--progress-color-1); + } + &[value^='4']::-webkit-progress-value, + &[value^='5']::-webkit-progress-value { + background-color: var(--progress-color-2); + } + &[value^='6']::-webkit-progress-value, + &[value^='7']::-webkit-progress-value { + background-color: var(--progress-color-3); + } + &[value^='8']::-webkit-progress-value, + &[value^='9']::-webkit-progress-value { + background-color: var(--progress-color-4); + } + &[value='1']::-webkit-progress-value, + &[value='100']::-webkit-progress-value { + background-color: var(--progress-color-5); + } + + &[value='0']::-webkit-progress-value, + &[value='2']::-webkit-progress-value, + &[value='3']::-webkit-progress-value, + &[value='4']::-webkit-progress-value, + &[value='5']::-webkit-progress-value, + &[value='6']::-webkit-progress-value, + &[value='7']::-webkit-progress-value, + &[value='8']::-webkit-progress-value, + &[value='9']::-webkit-progress-value { + background-color: var(--progress-color-1); + } + } +} + +/* ─────────────────────────────────────────────────── */ +/* Plugins */ +/* ─────────────────────────────────────────────────── */ + +/* --------------- */ +/* Todoist */ +/* --------------- */ + +.todoist-p1 > input[type='checkbox'] { + border: 1px solid #ff757f !important; + background-color: rgba(255, 117, 127, 0.25) !important; +} +.todoist-p1 > input[type='checkbox']:hover { + background-color: rgba(255, 117, 127, 0.5) !important; +} +.todoist-p2 > input[type='checkbox'] { + border: 1px solid #ffc777 !important; + background-color: rgba(255, 199, 119, 0.25) !important; +} +.todoist-p2 > input[type='checkbox']:hover { + background-color: rgba(255, 199, 119, 0.5) !important; +} +.todoist-p3 > input[type='checkbox'] { + border: 1px solid #65bcff !important; + background-color: rgba(101, 188, 255, 0.25) !important; +} +.todoist-p3 > input[type='checkbox']:hover { + background-color: rgba(101, 188, 255, 0.5) !important; +} +.todoist-p4 > input[type='checkbox'] { + border: 1px solid #b4c2f0 !important; + background-color: rgba(180, 194, 240, 0.25) !important; +} +.todoist-p4 > input[type='checkbox']:hover { + background-color: rgba(180, 194, 240, 0.5) !important; +} +.task-metadata { + font-size: var(--font-todoist-metadata-size); + color: #7a88cf; + margin-left: unset; +} +.task-metadata > * { + margin-right: 30px; +} +.task-date.task-overdue { + color: rgba(255, 152, 164, 0.75) !important; +} +.task-calendar-icon, +.task-project-icon, +.task-labels-icon { + vertical-align: middle; + height: 17px; + width: 17px; +} +.todoist-project .todoist-project { + margin-left: 20px; +} +.todoist-section { + margin-left: 20px; +} +.todoist-project .todoist-project-title { + font-weight: 700; + margin-block-end: 0px; +} +.todoist-section .todoist-section-title { + font-size: var(--font-todoist-title-size); + color: #7a88cf; + font-weight: 700; + margin-block-end: 0px; +} +.todoist-error { + border: 1px solid #ff98a4; + background-color: rgba(255, 152, 164, 0.05); + padding: 1em 1em; + margin: 1em 0px; +} +.todoist-error p { + margin: 0 0 1em 0; + font-weight: 600; +} +.todoist-error code { + background-color: unset !important; + padding: unset !important; + margin: unset !important; +} +.todoist-success { + border: 1px solid #c3e88d !important; + background-color: rgba(195, 232, 141, 0.05); + padding: 1em 1em !important; + margin: 1em 0px; +} +.todoist-success p { + margin: 0; + font-weight: 600; +} +/* .priority-container .priority-1 { + color: #ff98a4; +} +.priority-container .priority-2 { + color: #ffc777; +} +.priority-container .priority-3 { + color: #65bcff; +} +.priority-container .priority-4 { + color: #b4c2f0; +} */ + +/* --------------- */ +/* Checklist */ +/* --------------- */ + +.checklist-plugin-main .title { + font-size: var(--nav-item-size); +} + +.checklist-plugin-main .container input.search { + font-size: var(--font-ui-small); +} + +.checklist-plugin-main .group-header button.collapse, +.checklist-plugin-main button.toggle { + box-shadow: none; + cursor: pointer; +} + +.checklist-plugin-main .classic .content > p { + font-size: var(--font-ui-smaller); +} + +.checklist-plugin-main .toggle .checkbox { + border-radius: var(--checkbox-radius) !important; +} + +/* --------------- */ +/* Kanban */ +/* --------------- */ + +body:not(.no-kanban-styles) .kanban-plugin { + --dot-color: hsl(0 0% 40% / 10%); + --dot-spacing: 9px; + --dot-size: 1px; +} +body:not(.no-kanban-styles) .kanban-plugin__board { + background-image: radial-gradient( + circle, + var(--dot-color) var(--dot-size), + transparent var(--dot-size) + ); + border-top: var(--thin-border); + background-size: var(--dot-spacing) var(--dot-spacing); + background-attachment: local; +} + +body:not(.no-kanban-styles) .kanban-plugin__board > div { + margin: 0 auto; +} +body:not(.no-kanban-styles) .kanban-plugin__item-form { + border-top: none; +} +body:not(.no-kanban-styles) .kanban-plugin__lane-header-wrapper { + border-bottom: 0; +} +body:not(.no-kanban-styles) .kanban-plugin button { + box-shadow: none; +} +body:not(.no-kanban-styles) .kanban-plugin__item-button-wrapper > button:hover { + color: var(--text-normal); + background: var(--background-modifier-hover); +} +body:not(.no-kanban-styles) .kanban-plugin__item-button-wrapper { + border-top: none; +} +body:not(.no-kanban-styles) .kanban-plugin__lane { + border: 1px solid transparent; +} +body:not(.no-kanban-styles) .kanban-plugin__item-content-wrapper { + box-shadow: none; +} + +body:not(.no-kanban-styles):not(.is-mobile) + .kanban-plugin__grow-wrap + > textarea:focus { + box-shadow: none; +} +body:not(.no-kanban-styles) .kanban-plugin__item-input-actions button, +body:not(.no-kanban-styles) .kanban-plugin__lane-input-actions button { + font-size: var(--font-adaptive-small); +} +body:not(.no-kanban-styles) + .kanban-plugin__lane-header-wrapper + .kanban-plugin__grow-wrap + > textarea, +body:not(.no-kanban-styles) + .kanban-plugin__lane-input-wrapper + .kanban-plugin__grow-wrap + > textarea { + background: transparent; +} + +/* ─────────────────────────────────────────────────── */ +/* Styles Settings */ +/* ─────────────────────────────────────────────────── */ + +/* @settings +name: Things Theme +id: things-style +settings: + - + id: features + title: Features + type: heading + level: 2 + collapsed: true + - + title: Black mobile background + description: Change mobile editor background to default theme black + id: mobile-black-background + type: class-toggle + default: false + - + title: Disable mobile floating-action button + description: Revert placement of edit/preview button to default in header (mobile) + id: floating-button-off + type: class-toggle + default: false + - + title: Highlight active line + description: Change background color of current working line + id: active-line + type: class-toggle + default: false + - + title: Fancy code blocks + description: Enable fancy numbered code blocks + id: fancy-code + type: class-toggle + default: false + - + title: Fancy highlighting + description: Enable fancy highlight styles with highlight underlines + id: fancy-highlight + type: class-toggle + default: false + - + title: Disable Kanban board styles + description: Remove minimalist styling to the Kanban plugin + id: no-kanban-styles + type: class-toggle + default: false + - + id: link-decoration + title: Underline internal links + description: Show underlines on internal links + type: variable-select + default: Underline + options: + - Underline + - None + - + id: link-external-decoration + title: Underline external links + description: Show underlines on external links + type: variable-select + default: Underline + options: + - Underline + - None + - + id: custom-fonts + title: Typography + type: heading + level: 2 + collapsed: true + - + id: default-font-color + title: Default font colors + description: Use the default font color styling for bold, italics, and quotes + type: class-toggle + default: false + - + id: text-highlight-bg-l + title: Highlight color (light) + type: variable-color + format: rgb + default: 'rgba(255, 208, 0, 0.4)' + - + id: text-highlight-bg-d + title: Highlight color (dark) + type: variable-color + format: rgb + default: 'rgba(255, 208, 0, 0.4)' + - + id: strong-color + title: Bold font color + type: variable-color + format: hex + default: '#FF82B2' + - + id: em-color + title: Italics font color + type: variable-color + format: hex + default: '#FF82B2' + - + id: quote-color + title: Blockquotes font color + type: variable-color + format: hex + default: '#3EB4BF' + - + id: code-normal + title: Inline code blocks font color (Light mode) + type: variable-color + format: hex + default: '#BEC6CF' + - + id: code-color-d + title: Inline code blocks font color (Dark mode) + type: variable-color + format: hex + default: '#555E68' + - + id: tag-background-color-l + title: Tag background color (Light mode) + type: variable-color + format: hex + default: '#BDE1D3' + - + id: tag-font-color-l + title: Tag font color (Light mode) + type: variable-color + format: hex + default: '#1D694B' + - + id: tag-background-color-d + title: Tag background color (Dark mode) + type: variable-color + format: hex + default: '#1D694B' + - + id: tag-font-color-d + title: Tag font color (Dark mode) + type: variable-color + format: hex + default: '#FFFFFF' + - + id: progress-color + title: Progress colorful mode switcher + description: Toggle progress color scheme + type: class-toggle + default: false + - + id: progress-color-1 + title: progress 2-39% color + type: variable-color + opacity: true + format: hex + default: '#ad5758' + - + id: progress-color-2 + title: progress 40-59% color + type: variable-color + opacity: true + format: hex + default: '#b87f4c' + - + id: progress-color-3 + title: progress 60-79% color + type: variable-color + opacity: true + format: hex + default: '#d2b874' + - + id: progress-color-4 + title: progress 80-99% color + type: variable-color + opacity: true + format: hex + default: '#b0c07e' + - + id: progress-color-5 + title: progress 1,100% color + type: variable-color + opacity: true + format: hex + default: '#768399' + - + id: headings + title: Headings + type: heading + level: 2 + collapsed: true + - + id: level-1-headings + title: Level 1 Headings + type: heading + level: 3 + collapsed: true + - + id: h1-size + title: H1 font size + description: Accepts any CSS font-size value + type: variable-text + default: 1.7em + - + id: h1-weight + title: H1 font weight + description: Accepts numbers representing the CSS font-weight + type: variable-number + default: 700 + - + id: h1-color + title: H1 color + type: variable-color + format: hex + default: '#' + - + id: level-2-headings + title: Level 2 Headings + type: heading + level: 3 + collapsed: true + - + id: h2-size + title: H2 font size + description: Accepts any CSS font-size value + type: variable-text + default: 1.5em + - + id: h2-weight + title: H2 font weight + description: Accepts numbers representing the CSS font-weight + type: variable-number + default: 700 + - + id: h2-color + title: H2 color + type: variable-color + format: hex + default: '#2E80F2' + - + id: h2-underline + title: H2 underline + description: Toggle H2 underline (border-bottom) + type: class-toggle + default: true + - + id: level-3-headings + title: Level 3 Headings + type: heading + level: 3 + collapsed: true + - + id: h3-size + title: H3 font size + description: Accepts any CSS font-size value + type: variable-text + default: 1.2em + - + id: h3-weight + title: H3 font weight + description: Accepts numbers representing the CSS font-weight + type: variable-number + default: 600 + - + id: h3-color + title: H3 color + type: variable-color + format: hex + default: '#2E80F2' + - + id: level-4-headings + title: Level 4 Headings + type: heading + level: 3 + collapsed: true + - + id: h4-size + title: H4 font size + description: Accepts any CSS font-size value + type: variable-text + default: 1.1em + - + id: h4-weight + title: H4 font weight + description: Accepts numbers representing the CSS font-weight + type: variable-number + default: 500 + - + id: h4-color + title: H4 color + type: variable-color + format: hex + default: '#E5B567' + - + id: h4-transform + title: H4 transform + description: Transform the H4 heading text + type: variable-select + default: uppercase + options: + - + label: Uppercase + value: uppercase + - + label: None + value: none + - + id: level-5-headings + title: Level 5 Headings + type: heading + level: 3 + collapsed: true + - + id: h5-size + title: H5 font size + description: Accepts any CSS font-size value + type: variable-text + default: 1em + - + id: h5-weight + title: H5 font weight + description: Accepts numbers representing the CSS font-weight + type: variable-number + default: 500 + - + id: h5-color + title: H5 color + type: variable-color + format: hex + default: '#E83E3E' + - + id: level-6-headings + title: Level 6 Headings + type: heading + level: 3 + collapsed: true + - + id: h6-size + title: H6 font size + description: Accepts any CSS font-size value + type: variable-text + default: 0.9em + - + id: h6-weight + title: H6 font weight + description: Accepts numbers representing the CSS font-weight + type: variable-number + default: 400 + - + id: h6-color + title: H6 color + type: variable-color + format: hex + default: '#' + - + id: credits + title: Credits + type: heading + description: Created with ❤︎ by @colineckert. Support @colineckert at buymeacoffee.com/colineckert + level: 2 + collapsed: true + +*/ + +/* ─────────────────────────────────────────────────── */ +/* Plugin Compatibility info for the Obsidian Hub */ +/* ─────────────────────────────────────────────────── */ + +/* @plugins +core: +- backlink +- command-palette +- file-explorer +- global-search +- graph +- outgoing-link +- outline +- page-preview +- starred +- switcher +- tag-pane +- file-recovery +- daily-notes +- random-note +- publish +- sync +- word-count +community: +- sliding-panes-obsidian +- obsidian-codemirror-options +- obsidian-kanban +- dataview +- obsidian-hider +- calendar +- mysnippets-plugin +- cmenu-plugin +- obsidian-outliner +- readwise-official +- tag-wrangler +- todoist-sync-plugin +- templater-obsidian +- obsidian-system-dark-mode +- obsidian-style-settings +*/ diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json new file mode 100644 index 0000000..d55739c --- /dev/null +++ b/.obsidian/workspace.json @@ -0,0 +1,167 @@ +{ + "main": { + "id": "318381ba6697d90a", + "type": "split", + "children": [ + { + "id": "dd2b91766b5fe0d5", + "type": "tabs", + "children": [ + { + "id": "825e481f881b6659", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "!!!INFO!!! Daggerheart Open Beta Playtest.md", + "mode": "source", + "source": false + } + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "f18fb07327a637d2", + "type": "split", + "children": [ + { + "id": "bf67d48604ac442d", + "type": "tabs", + "children": [ + { + "id": "55b37dbc4b1a4cf2", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical" + } + } + }, + { + "id": "50c4a3dfb5da8794", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + } + } + }, + { + "id": "42a85a41a7d82aeb", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {} + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "right": { + "id": "f99f6c65bb86ca98", + "type": "split", + "children": [ + { + "id": "568febb72e5ed204", + "type": "tabs", + "children": [ + { + "id": "1c2feb8cb736ca18", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "!!!INFO!!! Daggerheart Open Beta Playtest.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + } + } + }, + { + "id": "88e0040922b29902", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "!!!INFO!!! Daggerheart Open Beta Playtest.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + } + } + }, + { + "id": "ae1b117aec55e814", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true + } + } + }, + { + "id": "9464f52c95ae20cb", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "!!!INFO!!! Daggerheart Open Beta Playtest.md" + } + } + } + ] + } + ], + "direction": "horizontal", + "width": 300, + "collapsed": true + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false + } + }, + "active": "825e481f881b6659", + "lastOpenFiles": [ + "!!!INFO!!! Daggerheart Open Beta Playtest.md", + "Pasted image 20240317164536.png", + "Pasted image 20240317162625.png", + "Pasted image 20240317162230.png", + "Pasted image 20240317162016.png", + "Pasted image 20240317150930.png", + "Pasted image 20240317150924.png", + "Pasted image 20240317143057.png", + "Health.png", + "Evasion.png", + "Dodging.png", + "Das Abenteuer/Quick Start Adventure - Digital Reader - Daggerheart Nexus.md", + "1. Character Erstellung.md", + "Das Abenteuer", + "Welcome.md" + ] +} \ No newline at end of file diff --git a/1. Character Erstellung.md b/1. Character Erstellung.md new file mode 100644 index 0000000..e69de29 diff --git a/DH v1-2 Character Class - Druid 3 of 20.png b/DH v1-2 Character Class - Druid 3 of 20.png new file mode 100644 index 0000000000000000000000000000000000000000..fca704798a9db9e4f174dae5af9c9020b5c9ae26 GIT binary patch literal 337338 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
    q})>KWQ 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

    |UJVM1{N(83r3ZGB{n4^%QCYX- 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

    ;j;0l{HcXj@~mqa7gBPN3>x6;ef5Rt;h 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 literal 0 HcmV?d00001 diff --git a/Daggerheart Stats (Deutsch).png b/Daggerheart Stats (Deutsch).png new file mode 100644 index 0000000000000000000000000000000000000000..d3ef1e604ddd1c71496f0ab6c46ab57aa48f2fb7 GIT binary patch literal 176888 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 OQ|%A8 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

    U8s@Zv)BKySzB+ zQwgVTHkW5NW`TeD|09rjf;Vq?W~chj=1aP+zuE|;M{~hy;!CsQB|Lq-7n&==3|2T> zjh|gk5@$saQ<7D&31HZ7kY8aVZdOC~&~K#vph;5)Xwn^E*Z56StSNv)-nZstcMcr? zYe+k4V=?Nq2hU>4y|hgnMF;J}BljvV#qqBGk}!%Gl%k_+KDh;Wi4n6y7lO#=ZW{nBT2~SwF0=%lg0M$J?dv z_HdC#LBBq38oC7DLmk+riSX&Lw#qT<$+l)Qq&%Jf!sqdT<77oa0!TPvV#j_ahcN9y zbhNlSMJ>l0352<_=hLr3f(m+1V;N%_rbDd8#(Vc3C7`S3bbdWMp)s-wmrfieqt-t@k1db$ zn2*tU_B+BUgR3+p@%;@0_vap4N^-HcDX-AD2OvI(|B|z)G_Te8r1E0WDIoa6g)AUz zyMYjy2@!fBx?nEx85}#;{K9#xg7aQhLIKA|^b?fONkTai41=12J)r%(B-YyJ<><&I zG1-Ch-=t}M(D(T9rx8yBJtgnW9i^#?)@a$ahd*7XV+4q(rgdu!ll{%w^;QvzFXsrj zOMUrs>cvx9DtdgWI%n2y!J;pp@uU0pke=r51%(}!80lxz?J0`n773t@?@Uv)Ha6_p z8rd*sy8@x@RR_S*sgs?zrjK$iwJ$b_)Lf$NKRD@vG%nm`t(h9AZ67Jr5Z+#_O5spB zCmml#s{Cyt8c%b=S;F&Zox6K+-}_4zl6`%%7qeWZ#5O62G!st%nJ-mfpVQ86cS+@N zYR6UMegcLhz0Nqi`c!#N(zuUlx0MIlj{O>L8C!nn5f3g&zxis7dvnZ^duc!8Ro$Vh zN=Tr$O|0uninLBCc(sVqZ6Wc{J=E(F$3hr`cml|8o+X3}){-T~a9uTB&{bdVFEZus zaOl_3Ms<+=T(QE1fcb6v~cu=%R8LEYfw2=H$s%Gz^WomzI-M%&xHvx|--EfH}ttdi?WvagQY&$H%hE48QEnO~YXmIf9!4n3D7jBlF) zeEq)KFCY&Z`ioshl-uvT;U=(YK3w=E&6o8qbH>Ud=GJ1PA8GWbro=P{6+A_K*URMo^E7q+j^i4U)!UO`eXej_ z8UfUx7Igg%n0stD z{xYf8B8XE>u8^cDt{rPs4vWIdOe_77abm^f=1YC5sFkvtjy&&;F<;I8ks!l!rq=?& z9yC{ScuyRa)!|h4x+4YKqBS4&Y77TRF#%ZgICYNBChD|(WRE(=t^IGyOi3)O>xlAR z=DGCf$Zt#8FR*zYB|=RB>{}9i0t!zqK9OHPVd`9N-yQ20J}k(HcWM}(IBJ_kHy zgymNI^TbTZChx!Neg0&$_x1im3u?D9rkGE2 zczXw(st*`!qy6~VAHjJ}&k4QmPXMm_dqrHz&zhYk|4E-lIcxuJ`+B%kJ&r>n4W zi&&(%xrN`|cOC1^{o+ctwKuJl$_VI{Ae_hR!jmC=_G7xk0GD}YXK*s5$C%`BDxpAY zQW2;2jC%gn#qmlIKumM>#=j3kSVVAe9_brDn(O`)g0~CDZ$}(-_9OL(P3}eqibfcQ zRG3lV#akN8Y(xj?b)?=q3|!=M#y`rvqs{BPl9S+7XdO{sJv6;0;o0!#mQ13S@3vZ> z3sc{AZg^x7#F3v?yrP7Q8rBg4A1Ga(Mt>vFN0Jfu4iXjehdEmndabft=T4dmO&p4j z_cx`uyOXb9uAVUhp2!iW*Q~>(ML5B*G!8JYraY_HIn5(0&qr%**KFoN{dxG-`@7p% zy4kPe+BSogU&Lhiem`jo*m&w+6_w&SZ}g}P3%zvd?x&lhpK5A;FwPD5Z{-X-F6nY6 zi+uWYA$OuSL87y^XNHX*oMFxGwkUg`n>pXV!BgH;&XUmbkALlrASB(`o zi_buZ7qC9mNmDw?bH~b|+RnuSS zb}BaJsRZUNZt){O*i;pQ9a5(eSt+y;$yuU8rLjDh zL|ZFgv4979O08<vqtcV)3vs~1flk`Z)hiJ}U?y9EI4l)u``0F)FDir@EV zc1t%Z{a<|WiMOJ;_@@1)A0+;lmh4w!-%@_-?i7zW^6C9s;?ZzF3e#U4tq$4>)g% zM#v>a3QX=c=cO0~c4as42y+1#Ms;f!3_hnFG9F7r-&`MH*-c8IeDo*AO0SmqFk?In z1dJoUkcOjk^HaB0vW2GPI=8#!FJi+QHg#s~gRYLLo-)lj77;RRZEG)z=e#AW7SGvt zU^$fGr3Wo3IW;v4W$%(Y=<_P~tK-R{cl>4f?>dCfgCju99OcEy+@BcylaIa+g8YcKF+g*fD(tlYqAnZi8+1&@Ju!>4(+NtXn(MCanRW9 z8RRjw_GZtD{ABg2CHY;fCt5|k-m6}MJw8}&lbu}fT*$wu8O&De|64X3sZa?T93kxR zHb@BIKqKc|Pc~R*s~whJR=xGz_??^Io;dN>Y3{@GAjJ5zZBJ8!AN5l&#~QZ;9r@3S z=!!S8eq$xdsxz>9wB}Uk=C?OX@lKx8I^EHVW5&mIp6iVbYhIiR)O(9X4*JDFF-t$2 zuuD>in;+R)qs`^%ycbbVtzdrD-z_l$h&N1~aC<^?x?l^o@3X3QMh%n?M}JnR>;G0n z{Tj)&@C@l^MV`~xtLpri#1Bg@S@OCJ>CVxvwJGaUeNl17P zly<*r_9NuXy} z26f_6lj;xa{^=*NdeAPL`9eKD5%Akr$+qV1*mq;4ZniW3K;p7?XO9&U%FkQXD66UI z7GXZyQ|vPQAv#JmdCG<#pyfHkcIDUV5cND@H`l%`SnkZTzZ5e zv1W&?2esIAMPrc|v!+Op_r)VLaOwEN*|hg6vm^&=CfDw(f+?r7Ep{&1h7~Y!j4NUSS^zy;tUp*@$n7sG`OcO6^o@^0 zzm$Gkill+Lx3CR^g}(j#v~9kL)8yoTL4gJa5hjhL9525eyH%vM-kx&T2+BMzC;5=) z;Z4e~N~yT?MV0gvzCF(J-6(N!z&k4N-{b**{3>|8`PNIKlJu-Px=pWKq_mwEl?5qg z)Uyqy5*p2=vE<;17UVhPR%g)ZJ3ra(_DpgrAH+$1*>%bu{b*vBX7t_D#@uJ&ov(Xn zZg*Ad8pbvSO3vsOWvdYStS8T|q@G|Nq}HtbvY9=$4Jg=zlLy$iSy+pxOQ|_ZsMEuhsk)EQ2 z!=m11+%^izQhkq#j6WAqX@%V^EI(qQ+2pA%aSgSD<3s= z#59l-F~1m=&#UX(->Mfd&a&%~loqXv_NCrMV5aj36Q$A}Iq9>?q6OtGAj)Whx(#V^}cg+4oCM@dIhhvh1#O- zq1|O+fowe!ki!MzBX+O-ZokLNKnFlh`*}KG>#>2q*)lC!rD<8=8G;c`uW^@d!H!n&m4`U^;K14*#qV=#^dm2%)<_Tf}sJL4eRblRke)?77(Q zPo-2T3o~G`13)uVqa%>pwx~!91S2}#g+<}~L?leST;vbnD zZj_J-z8arvj=DPNyLRjMYlGaF`X4nXJI>Tdpho0YI1c_f6zkyFoh_S>8Y{hZiD#H2 z!PH1{uGVdE<~Mxd=2~l25RdDliPyUbcBW45@3e6o%hre<+9v-Ccf2>^LN2#$Q&&VN zlnaXL{!R58YbX}YRYdWh%%7xqF2!jgYUJP0ou~n27F;zKmaf$@ZGPErlH-795u0Kz z_M5@55d!DN&%?gIe`W_8cHkyjr^B)DN)VwLXK>+Zd$+q^EnJcq#aPToDa#3!lqdTO zCdIWl4+Dp{{@VoL&yx@{j4qRadikCsJ5jm{m$@!ntOFF#9HD$9t`S@|K`xkWRb7`>wDBkE3Yhql^vjzEUX0bi@ z3zIwRYH979`JFzCQ9S2W_1mw$mClPlxR*S_a+Dg~K*VT@C-jPI4+Yd8)W}(_1#~l- z|CX1{QZ;m{oct>6J3LBX*B<6xLNcbm;*wrH^~XT~6HuYSk2CJ7Kn;K?@i|ia4a|0WcL%#Fen$4+pNZH5*s0F z^aqo1US(rNC4`{l_Z3oSb2Jsc{V=ya*__2*Nx?h#q!fDls&!&NHR=}6J|fIPVDa?M z#m%d+n6pk_vh+3DB|UnkGU3&ZZT0GKJjzzV-d8orKVJA#0ic1TxD*l4RP}eCPdT!C zy{eQWqBo1aYYrU~p}3La8@jEr`>CMtU)kX}MW-UObx(DcYer3D+zmZwPAlxy=2chS zd?zfA7&VvjPj{{gBm3WFXxfZvuDQ7?*`B>I-A`a`Au)qm2Bx!viUm{5FuZ3IVj65! z2o2gxstnzk>worP`6)yc5;IR4iE$-Sf_f^EO9LToX|{wyV?NLmZ%kiu9}7ZuA;hM0afDRO}vZ0Vx7bK1qeePqvAD~9ldEx7MGq#2q<5SpTq z=G~>XPX`47@CQH#Qiqw1*WNHn2e8|8{!T$4V*J~CGbi`exoa0Y2IO4%LSw&R!PbtF zn?nwMgtu*7oE`nD;L&wWolB17B-`g`65zpHMcXs>jzvjBezqzwLjWp$RdJroLl5>D z3B=xW?(Rf;?_a1_W=Jh%%Cq>&ie_7*`ZgRSwO%H>oEu@L`6Bu|Sj?lzTX=p_!+M%; zWmHUVNUzP|_S##mVmSFm!w1X#S`iyxo1qnNFq{Iz8(#pZ=cR9)FB8bf${&V7q5k8! z@aQPnjKZ|R3b!W=44yU6d$U9g#PL%(h1=N#V2Is?F4P&cd}P?*nq}TtR~Fgj;+dL8 z`E)}z{qLK$I|mG+o^-)$o?0~>b-?!Tv~hVoFy$XC0!=M9o+<7x*4?vdA)oU_F@5zq zcwnu~w$__w<86@LIIA_j+ZJ)Kh_sTKx9PR2p41%fCR;xFVDJtUSE>(Aw#rt%7c#M; z-qXoqDl~{q7Iog_0hJctNYgQXe+q8yVK;uMTd2+&v(}#-X2=G`E+J|n!pF7Jh{A+N z|2ACX?bs8@%*=+vwg$Fsah<4Xz##+{s>UoO%UT27T zM0K`aFI&~M23BYEz-f%z9^Bnl4Hk~F9m~OIzfC?p`JF~C=cS3H)VoI|IX4DU$4v8} zt9Fb3f%-Y$z!d)4x2tzwE6TG^k-rDb%aHr!`#d1=Ulhyk;6YhGFOd90^L7#fTxQ!%ZNuEA^>n{)(4yohR7$e<$%Y~y^E05IAmHF^)m2w3(U+sF zjh0o(KH8GiZL-Oxd|wL)Uyq;k(#!JlOOrDJ@2CZ#-Gj_$5!tqMvPryp8mTMG>kb}| z3@^OMA~IyZ1LgH8?=!rH@aFq+%kB5_qz-9tfa&Fn$zZp=k9>k0oqqW7d%5w3>*TOORK5>P)Q>QMn z?Y2AcE;Ov7uiwirPm;6G8o^0PJSNn+b2qu-s_W&ByYH9&1GfowW{dLYiR%Qt#+O}w z1wMX`JoegqKY3~L6b*06i!W=K^oHDU&^bYA9|Tvkb**P&QRIfE!~zu-dJ z*2@LnxmF-gL%3V4*1_5nLQUyGF=lkwwz)b??`El7c2LYSo%6w0Ca4U=xGplf5S+*t z`KScF)mw-YrI?6; zEE$M$7H5rhjWiXcTgC}6C43X0`f&=`GBqulz|@3+>PSu=a~KIeSj zcQ04vch1b3RcFoYa`xG0?|t~0ef{g-AiediN2N>uUADncp7G4*^5hCWQ&)GkK|MZ> z{jB1Zp}%RL)enBi!*qLY3Z5MbtU^pIvnKr*50nTtMUPU}IiS|fE`#k2`LJz$JD=qv zWke5Tej)}iwvJyN1sJw{A5!)uK;#!HQVnFC5*L1!hq>JE-utH$KK#*i$RSVQoqzbD z?>4vDBR%{Pk4z84vosBEAK^U5fNn}xW!X#FaKiEFHLp2bw%;px6*rzK|H)I&NGF~2 ziFB_&*)QAewb$*_Z(RG@(n{%nf9E?{K2;*X>pH0~T+QsDPAbq{cG-oWjkmbPEz%WV z`$qcicfKc|%il_ufAwqWKfe6G(qkU|nEV}Z&DwSJqho-JIx69@Oy?=XI9h@Y=5ewF z+inq?U!pRF%2viM!y7Hbd0L?&;d|wjQ%~i^WPZClZ1>)CFJ1+V6X_p6uB`BIMgz|lOG)bC02d~Rs@?C1VH9rl`6^Q0t>FZY-2`lut1OebzQ zA^q8(J$zu#c?yWS>s?=STrW8uDmi{x@`?pH;>Qx?h(EQtg|Waui2TrzLJ@ZRy#sRO$6s7hLdy z27!3xA;p;02F+cH-rW>J*NovL0iyLBB1a3202RX5Ae7V8o%gJqJ_&GxOx*0^c^cd z|L>pkLBH%f_#tS_4aI?`_oK!08T!ORTg(^dtQ2|YQpP1z`s&$tecaAU^=fVBDdNY{ z(@hoki$yx#E=6LGzsi`a0{M0<-8`k>g9^VE z&?rZVz!$#Wy6)u{S6wABJZ1^1>uHJ40YN1%93bKsb7@hAeF^^68n+mYm8*Us{ooa1 zfyVU(`iQd5TU&f{$$FQoKO&Tv(O!L^kA;4sm$#OI-eQO1v4u!+U$ygiY|~$DX>YWW zTR$k2cZziSS%Kg3n~XtqK{)Pc2=ObLcRILe5Xr{p>v?Lwv#vGOG{sn@fBov z(YE%TuV@a42VUby8@xzWCVDFoqM;4MUViq|pQdAu`2erf#7UEVc!j3Mc*>zqOS|9l zRtbMpglF#^`lN$da02yvasZ6&0LXbs^{G#tmLC1*4^3}*^BdE5cwl(aX}y zUUpcqm4e(0Om2OQC(bbXuF&u)%->0 z0PRe3EI-`ywosWH4)`uOep-S?{IvslNR_S)>}sa+&Z$k;)4NM#f5= zV<|vSj#9=w?jK78c=vhx5pUx^9P~xlU911L3eZLdanM0eNCzD7V75Q=nG4ek zpa1Oi=LbH7|2+PsFMgiKW&r12Y+(1TZ(Jc?5@3uC&|-3fepdHm zqTtVzFrO$9zMtd%0^K!nvm7tCV;dCqA_Fy}9OX1d9ZZ^A!necM~#obG@B`=-Y|?$PP!qd$=UycKZ22pxyKMB&RJ!ew~9 z``zzK54it*(osjggC{_7ynBZ`+#wzLj-%3ZpYuGi7{dFUDiM{=*3Ss$$-lE#Y?kd3 z+h-~D=O@1dZrY@ALNLb1vJJ(7u@2Y4i6Xx3cHo8m%zUX`>syuBhm{+=kyPS6#JH zmYeh+LkexzgNSS&fX};Ld@nqX6`v-Q<*agVM^xh)DQ&J^sGod!zhgygn$qiMp(1_u zigZ_%)p~~Xnv#F9h(+Xh?%!tl0Kgxt;7q^UN8}h*aC;FxxPb3{|NB`U5$$7%m`6UP z$1Uyver4HXk3XvHQ6gN1+vu@D<3ZU6|J5P<^QB(FpCoDezre?KoVb=PVHSBXmb;eY-o zZ#}@ab^LK3N_V*9ZRNmr4=K0F<&IMBBr^Pw1YwiPXER;2f5aHbgUshXc2?%Ti~;S>eCE@9<{&=rejm?H5-I+b^VW7yd(ufC zNiTlM3(|$3z93zA(FN(X|MVI@XAjR21T+=`Yr#R>+u!~c{sGBzp8X8os*YzD?!W*2 z(gO~7h}y|AYZ2%6hd=y5-qub$;rMj7yWT;|z9@H0ce~pi)4syr`OddbFMs(*+pV^xBbz7{fNiSKmETyO)r)0e_z@5dgZ?Nxo7(L$tMls10KuE7r*%V z^i%t+zVL$cYuy1+m zo6}2P`jT|%rI(~rPdzm~;~7s&C!hRr`T zAN{ZMo4?6FlD+*M?#So;;sg@lpS5)v&P7C)OI2;Z4*6Wgb3AcNF!o7!9`|Ga;<0J3 zJM5kAc;`E%edK%JK6kydm3`6y4}M_!G`|B%q$U{q2_>S{T~n4*`rG=>Sn#jy_-=;V z-S2zf`;p={_fN|)q}%-9hv9qDh7-~q?!3=vdBtI`%6<_p^MZBV3!WqT=C{2q?SH@f zrf2-^vv@l_?o7Dv{`W}-Jn(_pr$vl+Wt-z&_L1$QUtXDW)P0*H#zTp48Sc`>BXWTA z&OblhQTn-qY=^z_*H8VM$yl*O^z;iA?ANAB&xb{n9rSHizVKQkyjqI0uiO!KC|+ZJ zi_)onM2%*b^4AXxfb1M`RO1&f zoD}r<4qoz~WlHhKNZ6=xyZiUP`#qUyz2X6Shqh`zr8Q#o2$zFKsHN(z_~tkGO8`D3 z_r1$qvb@j&mw)B5ukwQ)x5?ig|G?JHqZOQ8ciI9X|8=VU<$~tWDa(HG;&L?mfxop; z#c`8DA!V4S`65*<3)Da!Cv;Ls1Ml`-I~12UlsYMyw;DV-DA`hIEX8JihkT?W1uqTFTl)b>AV)WHNn5OLp=X})$@IoIyq3=?!ZS2)dehxh&sgdYh=_3@Ltd9&dU4*? zZgZR4^0`j#r}H2$IH`+Zco^oqnPqTUfhrpsitLxET5Esoc|K}Kjst2|zQ5tPDN{J# z%9W09AE1n=jY3V{j|Yt+>utjD6H*@hlZUWT^g+^F+3Na}D-tS0%7A(_j zub78=0b1H3>W_NoQR(zEPUjaczv{&S{qOv?KBDNyKh|f;La6>_z8$_@gPwNUDd}6^ z`X*17-2Z+D@V0mGkn45_J1k>(6o7~Rayjp5d8eEj6q#CTbz#=}IZSwABK&jg zyYhJgA>%p?@a2Q=h?~X!x3BwKe3q{+55DDd@^^WQYy{*wo_ZYbe&;*W>)-G?-U0M` zvK`}@xd1N20dTB}e_z*m(V0H*z(=Ns|JlQ-_c$#eM^8>2T!-ZI65n;d@>Tr~h(Bk! z)1CIAjCU=;27_d9rMjFbs8Fv5Ei_+D7}xtLnmtg}dX%zVjL~8XL6>@bqbP0uvnUEM zO3i3UwSgL#MX^4?$MCrRKJd?Mz+4_t zdiunvr@(~%m+;u_d-^?Tk3D$j0(4{jIUiBm#c>ykf;WIfsM_d#qZfZA00|t6Z3%tL}F29`oEo6JY#m(_~r#a|y4;1oT=t8h* za*bM)$_X#Jc78I=R?&ZcI><9q1*}$-O3oNhO9$ifo!`|$C8xRU=BEDphqO%5wUY|; zif>%OU$?R19&+#@e5ORSd+>uEl>X#i_u>lvy(_=Zv+k~U?0LIA)3cxXtSrZe(SeUR zkQ>que)xm*sdMySUt7P}Poyno$*1%wkY+c22*M9`>+@@i`L?oD_QQbDqmF&eMOSjwtt)6=?0}qq4MZK~LLV{S?4> z$x8+5I ztu1n+)>vdYBa?yL8g;zVJLOU`KSr%F)a&>Myb16tEdaKgU#8j`*Y_!a55g!P^dnWp zuLv#UM(#RZpIs?Zu|N!7ih3xbe0$P}c3$pwx4WmOKK)tg_kaI-{5Rz@&pch^+xWar zY=?NB?OuE1>NRXnia-A2{nGs(@W6!UZvr@a@38|j~)TzKL6+}3bK-CzCHp=CW1!#{uYW7FdvcMyFj zmxixzj>0m*43{_N8LfVMP%pszR9mRadgW5*ht$VE%Wf$Ykuz_N!fS4E`*-REpq~^U zQ(x#i-}_Ha2nTKPg$ zD&=i`GTsX?KW(==@b%|ZO^bcCT~R#cHwTp%le|$cz!-H@@=mbZ7Gw#yQ zeKzZzUU1Qcyl8Cq-FKJoUQf<);IWT+Y&z&K_1Mj~(;iAZw6^iNwQv2`H>ZDl@B7m2 zZil;HRgUcvKR`NMzIDqM=7%ew_4smIy3vhxO}k2g{sQ?fhd(1ij(`26C({c6eH?Rq zeC8u{jL97?$6bj0Zo2EPyf`m@?|sOF9+dv(ub;wpyxT6q`Ib7y^s}gAUi+PmuEx#` zJ4x;*wMjaDrWQuUZdp{Dqjao)f2oCfXk6jYz+1&;rJo;EnE>?iuU($r^S<}+wj(@q z>1j`SYC7+%bJ7XNZAhn`a%wv46|YJ+xW4}D*a;_Wpilb?0}fmdmJh+xPyJ;2@bM?6 zqvgYE_gmhQSE!wI(#PaL^z(FJUIAcZyf!Yt(LvUcSALBF`ofuQ+$!<0lRwT}aM1jQ ze|mlT*oQyLT>thN&*GIZ=8)sz&n1rj;L#lOEpL8{^p3Z@o%69l%KP8_zVw%m{fqRR zXFc0`WQOd|p>36C>U#8JGUNwdmzPn~fp(X>nnG<9GH7KUR9vX(2K|T*P&?Jvc2o#Y zw$d+$qDVDL)h_m{6b04L52KK#5~Zrj6s3(vN)xYVQN>aya-B6V^HBUb*AYh@!Sxy2 z+anKrWIE%Mr>75Z_;5Pq8)Q2@0xFA-dyMHI(}DA;cB z*6m1j5ajhg_`x8L0}Sdc7fPwWg52!U%-f$7+QUHJp09aYep1M~cd5-><48O6Y-9Ws zhyGBjKj2jL{8dHeja$cyviyp%GZ1vt@i)H~mszWUW~rmubN+bman<2&iN<3E!2+G}rK zm2&JcA4r$Vmomh}`>ao$o;GdV$bV)(@q~}34<56D^nd>2>(h;Id=m}K{$fQOb{g^q;crd|K`0_5JUCmv>>{#LB}T z{wUdoKbGF}-VgFQqv-#=?><88Kf`V9FCKqz`shbbO-CQQA${beQ_^#u^ZfM0Cmovp z^dS#}si#sQ&$saougg`V zFXx98h3l;pm8*T*A25sRdMi9OPbuDaTp#D5C~KENxhB9PC=KlV}nQPD0p`2W)D-uTwE;UlM}<7C@8cEd^OZg;eKZRp}!q9?wTt;HuB(J^w}N!ylF7TG@8~ z;pK<%kBS`3fc@6c{SwBpD!unT@8S<4yU4NU;jezJ>@QAAA3XL%IWGQWdi+68NPqLx zXQmtOazo9Fb)A@m%6Yl|gbg1`XME~3>K|~xgSg!veawk+e139z=}TXk9)Iu?(vzO_ z6y~LQXmR-d&*uSgBYZnxe{Ki46lP%NF+QO4A@9z5gp&KCLdSwv&IcU(11l~qJ{^cq`<3|8zVx$~rt{A~mlFH|%BL^7g#YM%(S;YM!(R1j{t=7A z4FPBlTJJB%ygmn+ddp# znP;3OpP%QX7rfv_>Ds?>?R3RAuSl0(@)`QP^PNXZ9v5*RaNr{znZEdiFQ@a*y&xTR zD8WiWX-p~{cS$Ol-~hwam)0Mx4whl z|27->AF^678B5bP(WGQ$R(m`*%?LpuDGuae`--%bB1$CsbBTwssKJpA-$KTT_8n|P#bXD6Nb zk#zL?{w>|*PWy1KV~z(&j;Bg)CrFNG+2YW}4`eSrI+00U}D&&R2k zRz9@TMvtP*yWY=DHQh-HgeyKF_Br#9nKFkvJw-#xq#jg>(N%IFc1-%azkh!E(wD!) z4+Q)ohf9iaq7eA%WtXMHUVRwt0QYym?|X7^hZCeXyV-8M(i6|I_~3_*NpF19KM(S7 zwDMN(=*neLRerkYDyV){dh=V~lHUEE_wWM|Cynq+%Pu$AC4FBGtdTo_2f^#|*X4eU zjP)P?=^xX#zV$8sBErk8rJ()Q%P*5Jq{qs!hu9;JPTxS4UqIyDHHK*YmPUu`FA)3d z`?YlE-VT;DZ_+?}R6n5F%e?lo_u&o*6qwg<7R9g7&w9?Y(%EO9&0oB6MY6BUI0(cx zh=*4H^S}NJeOiAs}D~fJm!NunSyN@2Ymjk z>Tt7~>hG7@nwO%5+NnaR%2lIPkt>|)l>j0)fm>vntA2Cr``F?K^*j+@`;c0YD~iB z{>UTWp8gU4>i*4d@Ggv-?shZzJiP_`!Jj9+^{sD`FMJo|yl^}FMV~&O&m=@{e|Xc~ zDF2Ck&dCzx)dm0X(iccyALF*R>y2*29CqFHM%>m;mF?`*Q$Hc|s&no0?|=-Md4DaY zdU$Wlf zPrh)K^qFUzmVWTVE7e$#<5_oSopna~#y9kK*l&LG3dTYz)Pqt}=LUG36Hh!oz3EM_ z=Qf8cz_7ib{OqSc;~y;noAK;Ud)A=)5jnn6^!`jY9*-Sy7ZRRLkCQ9-zJ=#!7HHnjdG52*t6y^%|I`RSINa)1w@$a*eRqCeyX>o9 zO|N?8EAuU{_-^^a7r#J`gU@14IQhEU&2C0pY)kk<-Vc1>-*P??kl{E8pLskE(kUeH z=Ysg7wKZ$k^5o~S#~ml%0biTH1L|X->^tCPUrk5Lcf@TnzFt3oho914Lx26~$)}vc z+ueb$UvWh`^Q`)gSkV9e*?*@Oz4#^R<0s>L(k4FQ49~*`#j)EbB*v+yoto`?X#0KJ zJC2ZT<8WR)gX2rwwTeGB!ugsj<+JWhZ+}Ws2ha-m2UD(QVyl2;|nlJCk(s7)uQ& zE^oE_t$4txza!mwpF8vUgHL$U6VpBKd5`ovzxCVlW$+igT^t+l zyqIS?N8y9%1qlPi#=Gxb@0Nb!fBcV}<3GRt4S5WI_2eh!5OIE>zrhXkm;NiR_R9KR4P5_#A}!9-yrR^*IwM$ z{QT!XOXr+@HowTprO;C@2U(d%J_+PzFsPL;+t&tB*xS)cY_YaDtS;MSGpyT(Gt*j-UWv(F`c(*-t z%*XrhCK{H9b%golyvX{$dGqG9ar4HsY2zk-(ZVg}F^q+vFXngcnzd=|I{os5KPB3A z*IoI?4C`bbaSPztXMIYH>qOcU&->izF6sLAne&tX^JCdI;M2#Q#1@}V$n&$8ULs%q zzH1tReVgB9mm8+NZ-0B<(u5x$&cEP1o`BsVW5HG8S8desVI9EOxsF)DxHvonvNmWL zg07cr<@KVV9owR?$gF{|vkiZ-_a}`qKcye&X~SHNr$9iXa=;GI6K@FywXPQ?H$;2DHBrvq zTu{-ivh8e>f*%=H@p*b{h2liSz3+3s^n1T|J(9>CCcleA$Y+Fw{^l#FiKJ?+~YhSxOJ>uaHQdg zeq7lk@v%R2xo_)E6%tuu@s?p(cG%}(KZvV>_?$#33R`CI)!jQy(7>kYjnt>;~hrT6m$;TWmGr@ zQ~2ezL~TEeK91ZM`?Ut@5E3UMZ@b4IaT(%ypXb;k%xY-vidAXvz4uNxzxgf5(dXQ= zM-$UINooK6?~{J_ck~&*@Hu;=AK;d|-!lD?qvcFh2K7R+J~R9$noo6!*{^XSFz_qn9LQ$tW367zYAh24Gv+x z8Rfd_v09gIA48$9YfHt{P*xha0PXg&9r4)h7r#j7o_8J}-Lf3uoW?G8eEDNJCOyke zzDD>A-Nnv-;Pd5@OE1ko)J4P`anchx`XA%jKFugr9sWF1+C}WB4Kk6$b>yJ&T}K|3 zZhfm;r;|T%a(eFbpJ$q-VA0VoAKIf0xH)J8vZSLM!VZ1h6k)C19)K+eh%~;OMHBj6 zDd1RV9FxjlGR!w|d3Bh3==EVjzn7sD68f2{SlD4dzdYefl$}h%Nj{Nbf#GX6Y_g9u z&_?boDph6_s#B9;+kIm_4xfRJorp$bP^5B=0Ap-X9#2>qFXw_MKQR}Z?Zl^kQNw&h zs?FkGL*=e6-Qx?17C-sv)E530*5!p-{7 zJ&Jx|HN<#rFhMkJF)$awsC{cpJI#m4a}rK`%JRUojBwjJPkdt8SR8XFbbeR!;16Zp zI#8VaT*EI}1$7eDJajP_VGU6amw+S2_O?M)%y$N!b)neDd>2KC>~um~$%y5>;Yhe}_kK zU>}GRpLo_WZkgeLBB%9jQefL6DK@z;u9x8v7hr3pUmAm zxH?XJl2;l*f2n+38ZI{D56#3B062VM39$Q+H2V?6$t z50}0E;>90+v3~kzH44^EthZ=`;x={!<8i4|3iw_@EIP?8W@WS7_$!2|G&qF$X4SV3 zqIK!^F%(X%S@U3OD8C9=-t5eQWp*&V{N`9XjmccgQ@V`3{<5zF`5Vcsf$VI0@Ui$k z{3r@(6(%;j*lv0#q}cIEzX&}4F=X9{5yep_ZLnT6zP|Rk>n9m)VdpU3x z3)n9G2ka=l9>f_Fu+sgri>?!dvb1q? zQ8u5y_vif!q=}U3Qw0W!R9@nD>;y%xk<_Z#&X=FmF??{+=Exy~D1H0vLi8b27xU@+ zR**)GW?5%CZ5CkWTeJ9B#8)OOWztjYj4YPxh)>BxLK1|V2UrXkWKVpcn zRA~6Q-{2U9S0h<+=qo6WE?f@v46KJSkVv;BRo3YPt5 zKsg?%^d^k5zJCGqV`B&Wb9wa|TurVgJM)Qo6rTLVkG$HGo|wl;Pf&|I(ZM|VO<`&J zlF-%Df5A*WQXMOToj!k~W4J~?jh#ww>s-W6m0t%dt0~K1N zfE_?*9VbW%Sy!^u0auE2;N&DwbK;k@@v7riUEGxBp%NoQ~nwP7i?HhWJ?%)8^ZmY|;eA{jB zx_ta62~a7@$eR_x_5do=^;B)MU0iwRS&@B3X-tQnF|N_vXRZiuVN7}Kyp?b>sn3HQ zdGo+qi#UO*`v{6w`;l7SdYikRSk{vhV!3r&+9Lhnmd4GJ1Fm{ly-vOm;Q5~Zj8D70 zw46NBTw*^nq200JQJg9y7T=xRQP;+5#T=H7xIV=2{L&-yg4^8jEFryRQf~#vV*#x9 z0Qpk28YSN9uD9p%R(H;wAm-~`qtT2_F)=m`R+_-5c?_<7VL4(fgInG0@e0U^KSJO| z_nNXPHJ26Mwl3)KVj}LhJovO(3Kd-DVo(-S#QqTnIpaqPZcE5j-;*dILa+`jB4hJQ zvvkCl4?rLp8C7sQ1Z7>LxHTDyvBzPrRI5$vTWY zA;+_%v@fZ(p&->;-4P16y04XOX)R7t*sbn-?w)KAT2b`RFe4i)UL0&5 zuu)F|4YqB0WVn4cHMqRZcRrL@))K;&&1bZjg8JmDnu?cz zvmE2p~jmPG?k>QxwAXpW)y)|kVU=(w&Zm`7eMT0CLY$*HqCHE@G@ zmZ!kYX1R^z1JvS)enmB*B}RugbKJk4n4T6nFgJtNE`Ry4lYd*c;iR9P2;>o{>QVIA zR4GutbT|9T43%a(p=_1P5ZY19m4sD6)C*IwEk`zdDarX3OK5q5gwOcYKQ{ucpYbV% zq@hjkDX4|^BQ@UAzdlkx@t>Tk-uAX5a&DoZVmtKD zEG0>t`vB#-rtg{1C?!@8j3~kMN+ByI^IkBgN)>TFwJzDHA5dg~x_AWi0HQXnkH@VS z1NS;Kft9;BEwK&OA96*L6ao2G+J(g@I2Yhe=n7Il@wv@TeB#P1Y)dG(4OOeR*(?W2wasDxceC?C7dioz@`jbVf#+MMR`8A7A9u?ncER{}$k zLCw6S>Yn(N{RL#u`8?~kUntfKp7>m=e-yKRJ#HmlFUxTa|3JpO^X)@g9;$#gt*{3e zVqNsMc;WL5&#d08&-cWM&&`{*@beA*%{=jGwC=r=OB<$U0>se9ikA)+)O3J%jYe!| zn4Q3-MY42gtlVMYV>_Vc0#H{tgGA zc7V!*Q5La7p^Z5R+NB##Ee1pf*W00NsSIs9mIfVB3-qk{h8#k(hK{X_FLYqdHq=VN z_YZ8x2_8ZITr$vq3bconz9?c%l`=7ew1?toP|%mo56`C`NQC;%WgfVlQq=Y(Dnp~? z*-)17W+~-Wpx(>79eR)|9Cj7^~c#dIwdd4QLMLnR> zem@8q!k-) zDMv(6EDbs$g(zH?XTLEX^{t@ZJ}$+4o&bHVO!-kWSec3^5!C}*gNcWqw=Hj`BVh&z zc4aPRIY+&>&6zCPw*Mp_G0b-wg8%{0_4Tc^Y^jRrETHwW{h^sjt#54`&??+)?3j#4 zAf4k*8Jyt8NlfJJC*twr34cVfD?L%lqm=-gZ@xRD@QLu^=*bLRpF5@U87W=6rJxt5 zEkI8m%aYLx=4DYV*Wb{FiKW7%a)8+uL(Ct2g%LY$%UtL=Zl7X%@^0A?==F;d(aZ5_ z!C+@I#Hu~^yj^Dx*AZRakO3?@k)!t2WQ+{I=R7qnGn1Rq=PZo54Emj!2r-|PVIkud zW6sTh7M+q1R+~*f!VcCLu-;Er%~-D{l?pYPGF-y)ZZQ&KDDD^rQE83@%$Q@~%fx68 zOX+&naDaK^E;CkCX(*G7_)shdseJLE)vx+g$|(5@u@*g{rig3s=-SK=0n=v_msy*! zYqXMne31^s#gf0KJ7tOJOO?C_%lUoe-71U26p zgZYSquA|xpjVNC#Yt&W@yCl$$m5$7F_IRE%z$_(6Feam#a6d)OO+iB-wq7mg z{pj2b!N_@D$&~KsVt$C>Z3E}Dv1Na37TdC%;A0IzwvdLmi&t!$6T8E_q5-PB%iU%G z3q<1iq1LxnY~YGdz3S8d(Os|h)T;)0)hDh#w<|u;)ixWD4i~X482NF;G;7n|007Lb zH5)Jm%R~Lu&~qY2d`G);jQLFn6wX@R{#D3z30HRFs&~8EQ~%W+1y{V|5iFh} z=Evqp+_66RAIR{}W7e-v>+zTZKhXpisj?3!WQz{i14+?wvtrJ;b78ant2=LX=Rdn| zrcST;1k^rLU6@5I7|%#FP}UPZ0JIz(-a1%$>D*ZrsE?x{Z(C;5>&?9vMci(+75lGy zs<>JeAPRj?q8d8k%O7xWm2k=yfXDVZ$G!sVoSyK+XK^{<8IOVJVa{bgifT5B8CtVO zzp{ua?%1BUFDA#bf&-m%5l>>6&LRmeFN2j?<9ZQFUMn$2D~36enJ3>o;#rfoy#~M3 zg%!%w^E;%tVO!tPBeoNAw&=2GWWr`M&#vB7*CPsT$O4qZ71I!zDnXz0| z!k8rbgg(mdNQ83WxmCVc;lv+rE9QwNd|7~lQw99gwO)t2YcxgbKz%mJjm6+`3_6B7 zmh0;ipH8&Ft7kA?+(yk4pE6#d<)p8`4#xTA32&z&^C${PIuJE2BuSivYfpS)zBkDi zTAb+9Tiw^nmxXKbxq3JW>VG~}qN8)<a{B_ndJ@i;WL z+Z)B4Oq}?PeY?Lt;}f^h>8*6-$`U;xN~p2-Qlk>qBXc&-Hy%6`@|=JTck;IvAnJAuq>J9>=U1*H4ij|o>;-lPkx$W07lRATH1i-V~z|_ z2f>{B_|#PU^0p(69nBoyDB$Kw)FSHL39su=}cGeT0m{)5O zV2T}6@CBh+vE?}tm4865yNEHr3FK6Wx`V<6`5*@fbj?eQkW7oe?u$B1RiDz;ItoX_84@a@;*mHo8Sf=V(}8&ol4N;KCh;h4WWtAx`ug09Mi z5(eY*=XmNfW_8~YPkN%D4__vwZE@y6F-2>};8z$i%^lnG_Qm8_R&byTEap)R(^(|J z@fQz5`i+WPgV!JCnK9B`aTyv@Mv&_Eo{gNY!-dcg8-16KX# zP1xyyYVij}f06G|JDn(e&W3q_Z7C4_vtC|VZbIrQQ9GY6T01ZBes%n4+jyizJ2C>= zv89Ol%%T>eg6k2K{h@#InupTB<0M$-VTd-0@IvbK(c+7)+K)I-JB5xPE$BgNd#7c7 z1ErpC0&%rgNs&)b>qB{`$ScZyJeDtbRTVio2b5~4b~awdvtFRKJ~D+|RjgHF)Rh7> zJ-^u$4uztCKu?P3P8poF+GlEv0OJ7X<88;C{ggDk=t-6Ls3m&vTYxejX^=wbRI0o_ zf_RZC`?(NrHnpMiXK@7cP`HzapD8Lk$YB)XI>2XtKo~3$_j9y%13!V9!+SX2(GG}u zSk!!vYAedyd`2nem7MaLC&d}9AFQ}$x)GW}xc;&wwU81IytfqD&L~RRf0#WftkuG) zZy#=6^D4v(0?Nrjt}Tv3+IhK0D$u-D80n;+m6AuHzCJTgX#q-24kLNzc&1Z()u|^M z$~&#{QUy3d`5Ky+YC~~xXt8?i5!J%Cr263S?cvC4H+)n2U;Jl#;b)epl+FAbt zS}@2XP*~P-jiGTAIWGE>Quao0EDWFM;zsMY&PD26Ea<9?Ax)4fjKPr=XHocX_dB z{%D%%DAjRx=A)%Bwldytu>&2mtEj}rYhfDVpe)>Ppgi#@P2!i2qNO!3M(ui&aXU1m zjOu^cC>zuB;sw~QR4UD9MBk%mNKuNF6k~~0QT)_FsrzBMyIe6!tpS2EbA7QY=Lue$ z<5a4Fz4Io>@&&2vsfb#xyDwl-3gm+eY0T?)4Q;6(dMP4BY1cDC82kZGE_THnPI!Xn z$Ot)H}AOraTL9_qW!#7w{X;va`Tu>+!J^9s39YcM|7p|sr++%%no|B1A5;pwAKinIP+4>uavQQR*bBNIF7*1 z%a$#m$6KI93JQCS7k?I^~!5*FJtw z^PcisHjVwYlvWe|t$n7ZSCXk?G~PAz8ag+P`>A;-T8dvsy6U!j?pe0z0kGi;q27&b zE8Zb!5)15T$^pKBD~yLE#z(ivxck}lr1M3MRuYA*RQ?Ix0W}l)MX;n=Y> zPvw1N|5DF|#&oj(6~!Er)0p%<=8IEXwLZf!PtL-QnxdT?n1<=uAD<{{Sj7lfQ1UgJ zx4rA_b(xx6Dzy`MbWm-Z#1(`v`VMX7hCp0D)Kt*2GBPS zk}nVI*~S&O$e$mS=$rjmu`Z1mz||S}@S{}Qn2FlEjut(FT$;7lm`@+sf{nc71Ue_Y z)m@ec3ZE5c|9Z~HFJSV$J8^_JZ*|8PF3g?GA-;I=R(F}Z)oa8;CLs4hpIOjZ4pmhX zq1i|5McaO`gWFa&Nx8~zb;tOG$E~8w)eBy9Q3^gn=fc(qv_n$aPdOw^kxjD$vA>?W83XB0lV*(~vF6Kn& zSc*-BRvh~fovQ0CuyQeb&LQ45pUgET>`p;cGssbCw&kT4pj#x=HrY3At!{P4bNTc( zRXu@`Z*|wsOBe>WqVGD55x{OH%t(nwF2k0FzO^m-923jLn#;nRL70Ok(tt~@fl0dd zOr4*#z7NE0qar{%h1L;rjJ;Vea3oO_hi3;^-$M4 z8HW}6Nd+&4qdx_BcQH1!G5hU_UY`q2{Z5T)EQ5h<-;wIv&c9SOo8{)z^f%FcR>dwG z`>YB!Fj+iT-L6J4rCg+&h{+D;z*76|VY#^s&`EBw#gWmv%~(Vx%et7*mo6 zuWusyg?)03U=zEUjR|W}%@eEpvDJv29ZSDpwnZQFWV#?Q+0{a;LCu7IUd$C?(Qc-u z(P9mj+k$lITyIKdY}mcpQ}S1fUfE z(nYFmw*jTQg!bs9r7Bd2id_z%jQ~@ytuna9?Nq}>rD_?q*%#?SIIN|TvB_yw7Cq8A281JkT zpQIpw^v^8C2dU)k(ct!4gW8yuh}`c05>=GYYtdY3k1=Q>TvfTgBM;PgJdWqxGveg4*S2}iBELNbsaBIDO@Uc;?tk4$djK7pZEm& z@*>sbIWmh0AfDze`!}5Uw3D8j_`?;RYpgd))04@-UwyT0O~Y7rJv6Qvm?KFnkD2Wd znSLGTR@99jgmtdHWnRE#MFXdOOh;+3fGH3ceVh*h(_~FRZB>%x-mr1xbxzhdP`|yM z`z#xzhtXxCG{@HWD0;)2vfp0l^||2G@6@QqG8owQAL(FSoPcJt+?<;JW^|v`=(c0) z*+AvnHrs41lIz4wj4BL^bQ3Wv?i7~V=NOigOBbC47h4<|t=l5&EU+3MgK)vl4}bW_ zVlvRJ(naQj9w;{I58exqd26r_X?na^fbGMVDam?kc+PX@BL}Klj1L7E=T%a8#qxMP z@GX4Z#+osvcRr$Bk({6MXWRM#hI-_vMf0_Sy^$19`m5Svsg3$uQMT~pVw;CCY$?!2 zoWA`mUa@rlao%5%kNQ%8#rP6S`Oxn-Abw_7w2@ahj~)Q>X5czw zEr0J#+dd{Zwf3cdjIl1dJ^T8IwooBlN2$`!B`+S=3xN1O7btqdN98WlqF)R+mnH+E z4d8wb>gcCDKp88g)+D@*0++eAH!HyWyh;kMn1|2H%V?{wcrK5?OC$54P2MPr2{KQv z=2@ijw!`O4+qHfcAJ-G0M_DYv%o{hhJQ0_A<6FJ*BipwXV97kU7w6;ra6_@8dgdUF zI2IIOj5qh8UK$l2in@%f-xQcmDzXBeaF?R`Fkcv-Z=WboL!OKD#tu=b-cn{`U~huV z8@Fv0mZ82(Qsw8i&LclBD)*Q2-1qpHAag1OmAA>0mSb%n2dNDPyvEdaEI^b4pe0_> zEsgiwb-4g&7k!)ug}0Z@`}nae2g_4)0J1$fq0*@MP<*|}JZV|CfH8gHrAUPW#z@e^ zzQj~r%WDDV;g#xyWIYvOJrg}obfK6nknPFM!}s!!`kLQv%b%RLJs+Xm7ia;LYC+xi z2Sh7x`jRSKALA6Cs83Jqn>2v z^F4*<)!{r&tj7XByg{`u=T(mac-wjCy+F2OmiMnAZ>yiLn*%+$UtiwA?EqBS-2SEH zrCMk_zJ6FCAN59eCLWm5??_(0ISY}3m(3pwFc&ZGexXuVZv|+1U|g>sURtz+TCd2w z<-r18P-x$u?Z$qfM}fQ9X_30(71MlwesL`kN^CnH3sCV=RlHI6Mcvbn6=0ONh965+ zJe&Gj9g6bxczV2A0`9AFKx1nGX7m1XzSVblsq%PSCIwhozFqzcY;U^yj_a{9R=i@0 zZwt`M;<5sw4!DM2E??FG!1qN(A6{~B%V&P#s-IQ(6<@C)@n?ZzB`&_QH^+Y6;yYaL zGPbQxpr;?*9>q`BjnYTa+xp1ZK`%ME4L)?#sk!g4jZ*dU(s0Vt7A@ngI3nNb zHI4=2=U%O6|LE5Qu5*3lQG9Nwmn!N2ZTIF!xyYmFe$(}}4$!ubUU~f2e6804EQ`0f z0rK*+64!@3exqIhAA46H=AOLKS^RW=3-V14u>iTP!>{%9ofx0d?aoW3ysjB8Q(kqd zuiLP%&|l+P1RWeD&Fn0PtjpJLd$!iUMg>sH)LKa zZ<9CbInK<-?6knzmcn%|yZZUK z{rUVxy%Z6{4qCURp7OvOo#J(Wugd`_I_=we*K=PbOx#~a{WL$ey!99v@O>fmz41sx z3o4a+0oXP<;JU)c`R(b4d`nyXSOJ#D>%5HXmFn?@$)!>sa#q*#>IGPcUts;JY8)5w z*d*>x6s3*zO^;R9$T8r$wQJHkd!{FfpY&WKdcH7F2je3GE73Y%;=A=V{Ep{+-2;01 z9l;|9U`)R=@F>W0XPB>Rctwwo%gFht_X6xlel_;7{ww?7muaI^I+dL$b%9bvUS7gZ zQ8h+IfxN}9OQlFdsT47%)G3MUOMFr|SbR|WckCzyrTqkTyNZtG9VvQ}w()GxU8u#W z@+K8OXl!0-82ya0Rms&p`;(EH;vtRwD5W&ephtswj8S-iG!(BKuR}F31WKZRwqrvu zPHX#dN(aOPoOa`Bv-KZRDRG`U6k%zJ{vZH#o-OaMN6{17uvhCo6kB_ z_&OBY9B2E{$?-%wXS|iB=$DB34D4plmk?OwIJKWqDE#E6UG2$#dKVd=KZzjF!&lQ# zD*pUc9&t=gNW+(>=gkI<;)j6E!55o(aHt9#Z^C0X`sE@zJRbl zHl(6~5{nmkpQqf<6qN=a6+m7oggn83u24ZpD)x{Wr4Pl37yCtp@z9Yp&#&1<3Nc!& z5g(S)pWCalr2_hcI#Ivcu4g}_XekGK@85ZOgExB+wlWWUqu}`pH0vQVUgEkvpz)z^ zsoFCSK+_5KU`#~YP$=x3Hy2hQ@)AF`NYO$Zv!_I;`Kw3JLyo+1{75a&n6K2{ zpR!A!K2B1^lQv(f&op!cfcN7&%@1wV&KF9f%zOSyiySg}dHG~c&RdPA7;GT zfO;s)IP}(jj9>LYo?q%gJ?;!DHTw&4{hR}}xKi|LT4`Iq>?h}^ekyNxqrRW4_m>jD z>?^qng53=HfJ$qY9r{JXY1BjDypK2PE6VqXUS6QEY4!6ipG^54@Hy_n@j4WZDSb<& zQ7`}cxM*Nc%6I0Y9Wk(99&Pg&=EXPGM6Ha6o)B7pKFnGl7NPQ*&@&++x?fNh4ep;n zNus^dD34zX@_G$fv%ZWkFHmW5+(M%t8rhC- z02QMASl&|C@~e?z{h7yZ9%{>hJOp9;0Cc^Q4t-u|FO>Gupx*c{UEcPV`xmCt50=xA zZr9_&s{hXR(&Wc=J@6|(+9G5O$2@r2(EEz7wq}cGAk@Ey2l*Q^xUl zLOq#6#jus57BNGxKj)P~pZifF==2lqf`69^u(FX3xf8sbi07e~2Jd#GsT@JVvEud8r@bKv>hMehIVd(r&+jk_0-iV?!Xc7vJf?uTag? z=e?zZS#hWI%nOY6)3Y0$C)Ado%JJ5CQ_F)Ce&80N^p}RP@P6*lHGw3|I&y*MqEmKcLdiwEm^a633jDEu}a^a_QkxN&}bKN9vQ43+y) zxh`+K)hh0Xh}J()$jkboa@wH*f7l7(co4_*ny2X@vvFZ8{-LY=!rAN*4=TzFpYt2Y z?FuVg@gNPq;uD{5v=kxxL%--BI`234=ko|k7H`@qm11%YuJ+WELZ-CLFRJ2CUK(*; z3w1lxp4SX}*JnErqiDwb+zv|eXmWNar$ppV0iBP+lQKSdk7xZcFXMxMO;MRY?1lLH zsd~sg9%|38mMi7kc-O;TsIc%urIdA$>y^@=&PR&=7|CdDuYAvMdr{4U0@j%aMMJ85 z90$2w`4g`^Tn^RaMQL^PL`NQ}UxA^#yk_JDd%cR)j!$j7*6mrw4_jZ(U>g4+<-6v& zeib<}>OU`CV7{gQ_DctOp0p7wO^?*a$?X8+rhG^N9~Y3fGtv=1G?|aKeLkrt<(uI4 z1)g~*@;pw^I*&*N)YlYh-!EuhHDwd_o`&aZY@R2?K|BPcoZ_7SfU*Xp9}-Y$#pTLy zkZONAK0%j?S4CTWq* zr=rn=_xW;4vQiY4&Nne(&+p-WoI<&@gkm}47WUO^*YaQ6@l4P4xY`rX_FS_@j|1Ui ze%1H;5Z~7m=a)_~pLmbZuzt1_81w7dI|X#REp*&o-jXMqb5Zdl+li-U<9=j%w6>o$ zul0U#JT5Rcf1r6Bi_oec$%o81g)y7%hg!r_d4a-CTIMGLVMhD&c@YYqY~vNNW3b`9MGK`t4u-#`M5)c{%I>&%1J`@=ZDih1Jo=UbtCk<|NFS=+JB;NV!kc;U;})~#DedEx*%p>FSS zc(N3n5bw`z>h-rbo{wu01B`J~} z?bXsFI&d<^boyptHz?-i_T+^b>>p6EWjtGo!mFP1p-n-XPu(9-@zMa#8Ni%Ko1rkz zD6(GRpMmjD`}kMjjhi;|AAxm!qow*|aN>>m#7Sd(8Ph*n(A)0TVlJVxIaX_}s(b`B zZ{v|lTRnR!GlqKYPvP^S6zdlL)qT@d8`D)XHvH=`{@EYn<`qI1mlPeJ#zp>EULMnz zx6emj{s4`vf2)u$#^e65^foZbOW%b@tLTf3u21NdGVyU8`qq<$(gqcoEJ@R=U5T%C z;T77Aj0x15GX!a>BlPBmUJL`|gb!(?;3PZ9?w&EG5K`Kk})6{`@1Su(eeo zO|D;PTLQJctq*KVi}pfji+O^#FdQp|rb;!zp8`X~^Tbw#tB8DE>kitwn2-sgw%F7y4ZBfA>L z{2eoS5hxE$)E6mQC~JQ2de?gyg=%Xq;MEv#T^yu-fMkK7*ejfOo1)hiVzmCogK!BK zJ$h^V8}{$KTIU|wsN+Rm?b>+xkRVvq{=<9<>Rqa8vpvUF>*wLyh&3#J7RQfRpxA3m z?5hwVKce)P?MWRwg7^8t+n0x9wto%qVSHizQp+X8j{;78JAXCbu0Ji`#;?MM?NL!_ zr3~W@<14S*v-`V^>s?;rYil^3cKe+*{$DkIY<>w@US0n@tz+@rARDp?>mU(0FVqyE z`Qy*}_kFk9k)=HsAF5F_JoLyPgw=3+&pKQ+u^P|HQacV%2Pr^I6!5l}7gi=S&Be zRs52Plj=ADijxE=IO(Zl6AK*_!4{WaiKhiY&^LtwZ=g4fPk4!=k(@eeZazMDB#8Rh zkD=k|DU~ljT|*&ttIC`HVPFD}=i>!e^lW)-i{JW3d-9EbxV|d5+F*TWT(iOQ?!*sX zQq0=(F<+H=r5*!);1%_J_W9ag{Y}R0RrAr!!2H?P-l4~|a~s0;!;>6qSXQr+{SlTa z3iqy<(b=GYgdCf0HvWvnO$TkJ0u&etfD3{yARspXQNW6_NQy zSpGJjYG3?0mGb$6eFDlB*mA3Pj?($i8BY-HwdMr|9z2lb*~%-tgh_ z%FE39Hx?(cG9y@p{T`q&-`6qyoUB3i}pe?Z}Y1>pnSnf@DW2j)+4|O8_RWIbb#bVr5Rv6I{$4~-1WUyXLY3lGbob&GL-U=e;r>Rx|E68uR5 zPryE+=2nK6{<7G3V9tED2d_Qq-gP*C5j8h&{DSSlxB1q5JDg|)~~w7t@q$I zOCx-ElA@_@sIkxFVSh`ZS2MMnlLF+W>gjvbzDCS#@58M8q#CzZ+Uv)E8SB~4OY69j zoiwKG7p06ZOp&A2v6n{0S5&>CeDQf-Au5f+=dY1{d#MI;siy2S-f+BgQ)$%la5yK8 zf&DTmsww@D#>2~+;!FRyoo&~dS42Kjsk-uOs8VSxeLHWKgET^$+@Go}Ujt~(32nfnrKxBw3E}3oZR91(b)R z$i2VT9<<(H+H$Z~Wyf)YS2^bsUyfzIH*Ll;*p#l?xG8PkBn8Wb%fZL5{+LHx>4cMm z>+MQUzY+zv-^FK+x!-_FV;~RxaGcVp^hRSog`(xWa$L^FV;#fza5WUhw@D~?{sDv- zVLY(Y^;6=I6o0N)XkosXmoEohO6B;-{H4_StsDic8|FnSypNl9$P;Z+k?^e+C0?)} zp{U7A<#Hc4=7H;v6eu}A5LI>xOFBRwAd8m*NTKdlO z;P$Z0ywR3-iheXc<`x-yF&tbkH9qsSxInwT4DFPkn@Z(=K-BB{1s**$enxd3b<{=fd5!zkRP3cO+pbVx z5TDDdwu@KDMfnyqWIx9fhw?eJX%qH?dc`O1M$pe!UC;639JhZa=~sN}6?yB{J^`x(#ET>|JEx$H{-`0j6o8B zy*?ux{yGozCoR0k1z(n@Z=Wi!m#@=$T##~n9IublsoDXNCzS@=$xDS3z>t^quTY;a zAm)u;n6C)){KH6~`Z=gn?l);y(cZimI1j>0rJp03zsuQ_!YjP7Pr!*yX=8tY^$F`2 z|JaCnj0&#eA%**4@is!*%R{Nx@`y6(emh}>t zZSS{e0N+a?yztR1fG`jK~MWw2EX;l0Urg5HDdih>M bK~wsFoMX{5^YMNo00000NkvXXu0mjf#XlR{ literal 0 HcmV?d00001 diff --git a/Das Abenteuer/Quick Start Adventure - Digital Reader - Daggerheart Nexus.md b/Das Abenteuer/Quick Start Adventure - Digital Reader - Daggerheart Nexus.md new file mode 100644 index 0000000..187391e --- /dev/null +++ b/Das Abenteuer/Quick Start Adventure - Digital Reader - Daggerheart Nexus.md @@ -0,0 +1,103 @@ +--- +page-title: "Quick Start Adventure - Digital Reader - Daggerheart Nexus" +url: https://app.demiplane.com/nexus/daggerheart/sources/open-beta-adventure/the-sablewood-messengers#themerchantcart +date: "2024-03-15 20:12:30" +--- +# Der Händlerwagen +## Der Anfang + +Read the following aloud to your players: + +> Heute Abend hat es eure Gruppe endlich in den Zobelwald geschafft, einen weitläufigen Wald mit kolossalen Bäumen, von denen einige sagen, dass sie sogar älter sind als die Vergessenen Götter. Es ist ein Ort, der für zwei Dinge bekannt ist: seine versunkenen Pfade, die die Handelsrouten für viele reisende Händler bieten, und seine einzigartigen Hybridtiere. Noch jetzt hört man aus dem Wagen heraus seltsame Geräusche: die Vogelstimmen der Lerchenmotten, das Quaken der Lemurenkröten, das Fiepen einer Familie von Fuchsfledermäusen im Unterholz. Einer von euch fährt die Kutsche. Wer ist das? + +Wenn ein Spieler seinen Charakter freiwillig als Kutscher anbietet, kannst du ihm eine Frage stellen wie: + +> Ihr habt etwas Einzigartiges am Aussehen der Bäume hier im Zobelwald bemerkt. Was ist es? + +Beschreiben Sie auf der Grundlage ihrer Antwort die Bäume, an denen die Spieler vorbeikommen, als solche mit diesen Merkmalen. + +> Während deine Rösser die Kutsche um eine enge Kurve ziehen und ein Rad nur für einen Moment vom Boden abhebt, siehst du einen umgestürzten Kaufmannskarren, der seitlich vor dir auf dem Weg liegt und dir den Weg versperrt. Eine Vereinzelung von Obst und Gemüse säumt den Weg. Von der Seite des Wagens tritt ein Strix-Wolf; Eine große Kreatur mit dem Körper eines Wolfes, dem Gesicht einer Eule und großen Flügeln, die ihren Rücken schmücken. Er kaut seine Mahlzeit, die Hand des toten Händlers, zu Ende, während er dich neugierig anstarrt und versucht zu beurteilen, ob du Freund oder Feind bist. Dann siehst du, unbeholfen hinter dir her, zwei kleine Welpen, die ihre Mutter vorsichtig beobachten. + +>Innerlich spürt der Rest von euch, wie eure Kutsche zum Stillstand kommt. Was möchten Sie tun? + +Allow the PCs to roleplay for a little bit if they’d like. When somebody approaches the merchant cart, that will trigger the first action roll. + +![](https://app.demiplane.com/_next/image?url=https%3A%2F%2Fimages.demiplane.com%2Fcompendium%2Fdaggerheart%2Fopen-beta-adventure%2FQjnB6MSjROOmBVS0%2F00-41-Quickstart-pg29.png&w=1920&q=90) + +## The First Action Roll + +Read the following aloud: + +> Der Strix-Wolf ist misstrauisch gegenüber deiner Bewegung. Wirf mir bitte einen Duality Dice und füge deine Presence hinzu. Du kannst auch eine Hoffnung vor dem Wurf ausgeben, um eine Erfahrung hinzuzufügen, falls dies zutrifft. Dann sag mir, wie hoch die Summe ist und welcher Würfel höher gewürfelt wurde! + +### ERFOLG +Wenn sie eine 10 oder höher gewürfelt haben, ist es ein Erfolg! +> *Beschreiben Sie die Strix-Wölfin, die ruhig versucht, ihre Welpen aus der Gefahr zu halten.* + +==Wenn der Wurf mit Hoffnung war, sag dem Spieler, dass er eine Hoffnung markieren soll.== + +==Wenn der Wurf mit Furcht war, nimm einen Furcht-Spielstein für später.== +Du hast auch die Möglichkeit, einen GM-Zug zu machen. Das ist deine Chance, eine Konsequenz in die Szene zu bringen. Es sollte den Erfolg nicht untergraben, sondern die Erzählung auf spannende Weise vorantreiben. Man könnte sagen: + +>Die Mutter heult, als ob sie einen anderen Strix-Wolf zwischen den Bäumen rufen wollte. Du weißt, dass du vielleicht nicht lange allein bist. + +### FEHLSCHLAG +Wenn sie eine 9 oder weniger gewürfelt haben, ist es ein Misserfolg. +>*Beschreiben Sie, wie der Strix-Wolf knurrt und schnappt, wütend darüber, dass sich der SC nähert.* + +==Wenn der Wurf mit Hoffnung war, sag dem Spieler, dass er eine Hoffnung markieren soll.== +Du kannst immer noch einen GM-Zug machen, aber weil es mit Hope ist, sollte es nicht so schlimm sein, wie es sein könnte. Man könnte sagen: + +Wenn der Wurf mit Angst war, laufen die Dinge schlecht. Beschreiben Sie den Strix-Wolf, der den PC anknurrt. Sagen Sie ihnen, dass sie einen Stress markieren sollen. + +> Mit einem letzten Knurren beugt sie sich herunter, damit ihre Welpen auf ihren Rücken klettern können, bevor sie in die Luft abhebt und auf einem Ast in der Nähe landet. Sie beobachtet jede deiner Bewegungen. + +### KRITISCHER ERFOLG +Wenn beide Würfel die gleiche Zahl würfeln, ist das ein kritischer Erfolg! ==Sag dem PC, dass er eine Hoffnung markieren soll.== Ebenfalls kann dieser auch einen Stress löschen, wenn er einen hat. +> *Beschreiben Sie dann den Strix-Wolf, der sich mit gesenktem Kopf und wedelndem Schwanz auf den PC zubewegt. Er schnüffelt an ihrer Hand und setzt sich vor sie.* + +## Die Folgen + +Lassen Sie die Ereignisse des vorherigen Aktes ablaufen, so dass die Spieler Rollenspiele spielen und andere Aktionen ausführen können. Verwenden Sie die folgenden Szenarien als Anleitung. + +### SCENARIOS + +**Wenn sie den Händlerwagen durchsuchen,** kann man darüber sprechen, dass der Wagen aller Wertsachen beraubt wurde, und den toten Fahrer mit einem verstümmelten Arm zeigen, welcher von der Familie Strix-Wolf als Futter angeknabbert wurde. Wenn die PCs die Leiche weiter untersuchen, könnten sie feststellen, dass dem Fahrer der Hals aufgeschlitzt wurde. + +**Wenn sie den Strixwolf angreifen**, lass sie einen Angriffswurf auf der Schwierigkeitsstufe 10 gegen ihn machen. Bei Erfolg verursachen sie mit ihrer Waffe Schaden. Die Welpen werden fliehen. + +**Wenn sie es nicht schaffen, mit dem Strixwolf zu interagieren, zieht er seine Welpen auf den Rücken und fliegt in einen nahe gelegenen Baum, wobei er die Abenteurer von oben beobachtet. + +**Wenn sie versuchen, Anzeichen für etwas Seltsames zu finden**, sehen sie die Überreste von dornigem Brombeergestrüpp, die sich um das Rad der Kutsche verheddert haben und auf der Strasse verstreut sind. + +**Wenn sie den Händlerwagen aus dem Weg räumen wollen, Schritte unternehmen, um ihre Kutsche wieder in Bewegung zu setzen, oder versuchen, die Spur zu verlassen**, gehen zu [[Quick Start Adventure - Digital Reader - Daggerheart Nexus#The Ambush]] + +## Der Hinterhalt + +Wenn sich der Moment richtig anfühlt oder eines der oben genannten Szenarien ihn auslöst, bitte einen PC, der auf seine Umgebung zu achten scheint, einen **Instinct** mit einem Schwierigkeitsgrad von 14 auszuführen. + +> *Bei einem Erfolg bemerken sie, dass Augen sie aus der Dunkelheit jenseits des Weges beobachten. Wenn es mit FEAR war, markiert der PC einen Stress. Verwenden Sie die Aufforderungen "[[Quick Start Adventure - Digital Reader - Daggerheart Nexus#Ich sehe sie!|Ich sehe Sie!]]".* + +> *Bei einem Fehlschlag geraten sie sofort in einen Hinterhalt. Wenn es mit FEAR war, markiert der PC einen Stress. Verwenden Sie die Eingabeaufforderungen "Aus dem Hinterhalt!".* + +### Ich sehe sie! +Read the following aloud: + +> Du hörst das Knacken eines Astes und drehst dich um, um vier _Thistlefolk_ zu sehen, die sich durch das Unterholz schleichen und versuchen, auf deine Gruppe zu springen. Der umgekippte Wagen war eine Ablenkung, aber ihr Plan ging nicht auf. + +### Aus dem Hinterhalt! +Lesen Sie folgendes vor: + +> In einem Wirbelsturm aus knackenden Ästen und ausgezogenen Halmen springt eine Gruppe von vier _Thistlefolk_ aus dem Gebüsch am Straßenrand. Der umgekippte Wagen war ein Hinterhalt! Sie stehen mit gezogenen Waffen vor euch und blockieren die Straße. + +# Mapaufbau + +Geb den Spielern einige Bäume und Steine, dass sie mit dir eine Map erbauen und stelle schlussendlich den Karren auf. Frage dann deine Spieler, dass sie einen Characterstein aufstellen sollen, wo sie ungefähr wären. Stelle **DANACH** die Gegner auf. + +Unten findest du die Stat-Blöcke für die Ambushers und Thief. Du wirst diese Werteblöcke verwenden, um den Rest dieser Begegnung zu spielen. Vergiss nicht, den Kampf zu deinem eigenen zu machen. Entscheide, wie das _Thistlefolk_ im Detail aussieht + +![](https://preview.redd.it/no-spoilers-daggerheart-tabletop-miniatures-sculpt-v0-522elpg6zioc1.png?width=375&format=png&auto=webp&s=f405d0f80f94175e5c9827ab733202c4333b77d6) + +> *Beschreiben Sie die Szene, als würden die Spieler einen Film sehen oder ein Buch lesen, und wenn Sie sich damit wohlfühlen, bitten Sie sie, sich auch am Aufbau der Szene zu beteiligen. + + Das kann so einfach sein, wie sie zu bitten, ihren Angriff oder ihr Ausweichen im Detail zu beschreiben, aber du könntest sie auch weiter einbeziehen – frag sie, welches einzigartige Kleidungsstück die Ambusher alle tragen oder welchen interessanten Kampfstil sie zu verwenden scheinen. \ No newline at end of file diff --git a/Dodging.png b/Dodging.png new file mode 100644 index 0000000000000000000000000000000000000000..e8cbf256c279ae8b541d71fe7c47374b8817930a GIT binary patch literal 86318 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 h(sY8VSM;7=!=-002ovPDHLkV1jGs1@Qm? literal 0 HcmV?d00001 diff --git a/Evasion.png b/Evasion.png new file mode 100644 index 0000000000000000000000000000000000000000..ba5688c24440da0f39473b005ed8cd948694a5d1 GIT binary patch literal 118965 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%0Angz!4S|=#7Cqv4j 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 i&H}#Azt)#4$NvNDk%Rf`(EZB*0000>|f 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 literal 0 HcmV?d00001 diff --git a/Pasted image 20240316102648.png b/Pasted image 20240316102648.png new file mode 100644 index 0000000000000000000000000000000000000000..8a25b7c4296ebc8b9450228ba357c22744eaf835 GIT binary patch literal 119025 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%0ARat8%W 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%0A{(xx9G`v@~P4KUxsV93X( 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 literal 0 HcmV?d00001 diff --git a/Pasted image 20240316141356.png b/Pasted image 20240316141356.png new file mode 100644 index 0000000000000000000000000000000000000000..f74ac80474a7d66f1abe6cfa8698295fab63bf66 GIT binary patch literal 1544034 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

    6QLuq}rAB<>8|6@uGs@Wc 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

    cW~txf-_G%;qiENSz|stVSlKiRq6bOp83R2 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

    Zkhp^iNV;x8^y+8+D%abSWTphJ356k)e&O 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

  1. Z?lF+oS*$1G6y>?=nDVTJ924;GxUGV+DuxI#QMv^86w zl&yW;JxUia+(StUnGpmA3YA6(Tcpy2ZK$jk

    Rkv`VlLG<CjEMbm)i*Y)s6JK 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

    4wS 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


    6ENWDjTn(jFGJ}E{=B=|xe7aSMMXT} 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