diff --git a/.obsidian/app.json b/.obsidian/app.json index 140f4102..93ac64b8 100644 --- a/.obsidian/app.json +++ b/.obsidian/app.json @@ -3,7 +3,7 @@ "livePreview": true, "showLineNumber": true, "spellcheck": false, - "spellcheckLanguages": [], + "spellcheckLanguages": null, "trashOption": "system", "promptDelete": true, "communityPluginSortOrder": "download", @@ -14,8 +14,9 @@ "templates/" ], "newFileLocation": "current", - "defaultViewMode": "source", + "defaultViewMode": "preview", "showFrontmatter": true, "vimMode": false, - "newLinkFormat": "absolute" + "newLinkFormat": "absolute", + "propertiesInDocument": "visible" } \ No newline at end of file diff --git a/.obsidian/core-plugins-migration.json b/.obsidian/core-plugins-migration.json index cae00e44..4db2aaea 100644 --- a/.obsidian/core-plugins-migration.json +++ b/.obsidian/core-plugins-migration.json @@ -26,5 +26,6 @@ "publish": false, "sync": false, "canvas": true, - "bookmarks": false + "bookmarks": false, + "properties": true } \ No newline at end of file diff --git a/.obsidian/core-plugins.json b/.obsidian/core-plugins.json index 954c4eda..290325d7 100644 --- a/.obsidian/core-plugins.json +++ b/.obsidian/core-plugins.json @@ -3,6 +3,7 @@ "global-search", "canvas", "tag-pane", + "properties", "page-preview", "command-palette", "editor-status", diff --git a/.obsidian/plugins/obsidian-git/main.js b/.obsidian/plugins/obsidian-git/main.js index 586d7f4b..dc707526 100644 --- a/.obsidian/plugins/obsidian-git/main.js +++ b/.obsidian/plugins/obsidian-git/main.js @@ -8759,15 +8759,15 @@ var require_implementation = __commonJS({ } }; keysShim = function keys(object) { - var isObject = object !== null && typeof object === "object"; - var isFunction = toStr.call(object) === "[object Function]"; + var isObject2 = object !== null && typeof object === "object"; + var isFunction2 = toStr.call(object) === "[object Function]"; var isArguments = isArgs(object); - var isString = isObject && toStr.call(object) === "[object String]"; + var isString = isObject2 && toStr.call(object) === "[object String]"; var theKeys = []; - if (!isObject && !isFunction && !isArguments) { + if (!isObject2 && !isFunction2 && !isArguments) { throw new TypeError("Object.keys called on a non-object"); } - var skipProto = hasProtoEnumBug && isFunction; + var skipProto = hasProtoEnumBug && isFunction2; if (isString && object.length > 0 && !has.call(object, 0)) { for (var i = 0; i < object.length; ++i) { theKeys.push(String(i)); @@ -9359,7 +9359,7 @@ var require_define_properties = __commonJS({ var toStr = Object.prototype.toString; var concat = Array.prototype.concat; var origDefineProperty = Object.defineProperty; - var isFunction = function(fn) { + var isFunction2 = function(fn) { return typeof fn === "function" && toStr.call(fn) === "[object Function]"; }; var hasPropertyDescriptors = require_has_property_descriptors()(); @@ -9370,7 +9370,7 @@ var require_define_properties = __commonJS({ if (object[name] === value) { return; } - } else if (!isFunction(predicate) || !predicate()) { + } else if (!isFunction2(predicate) || !predicate()) { return; } } @@ -11123,19 +11123,22 @@ var require_gopd = __commonJS({ } }); -// node_modules/.pnpm/is-typed-array@1.1.10/node_modules/is-typed-array/index.js -var require_is_typed_array = __commonJS({ - "node_modules/.pnpm/is-typed-array@1.1.10/node_modules/is-typed-array/index.js"(exports2, module2) { +// node_modules/.pnpm/which-typed-array@1.1.11/node_modules/which-typed-array/index.js +var require_which_typed_array = __commonJS({ + "node_modules/.pnpm/which-typed-array@1.1.11/node_modules/which-typed-array/index.js"(exports2, module2) { "use strict"; init_polyfill_buffer(); var forEach2 = require_for_each(); var availableTypedArrays = require_available_typed_arrays(); + var callBind = require_call_bind(); var callBound = require_callBound(); + var gOPD = require_gopd(); var $toString = callBound("Object.prototype.toString"); var hasToStringTag = require_shams2()(); - var gOPD = require_gopd(); var g = typeof globalThis === "undefined" ? global : globalThis; var typedArrays = availableTypedArrays(); + var $slice = callBound("String.prototype.slice"); + var getPrototypeOf = Object.getPrototypeOf; var $indexOf = callBound("Array.prototype.indexOf", true) || function indexOf(array, value) { for (var i = 0; i < array.length; i += 1) { if (array[i] === value) { @@ -11144,9 +11147,7 @@ var require_is_typed_array = __commonJS({ } return -1; }; - var $slice = callBound("String.prototype.slice"); - var toStrTags = {}; - var getPrototypeOf = Object.getPrototypeOf; + var cache = { __proto__: null }; if (hasToStringTag && gOPD && getPrototypeOf) { forEach2(typedArrays, function(typedArray) { var arr = new g[typedArray](); @@ -11157,38 +11158,76 @@ var require_is_typed_array = __commonJS({ var superProto = getPrototypeOf(proto); descriptor = gOPD(superProto, Symbol.toStringTag); } - toStrTags[typedArray] = descriptor.get; + cache["$" + typedArray] = callBind(descriptor.get); } }); + } else { + forEach2(typedArrays, function(typedArray) { + var arr = new g[typedArray](); + cache["$" + typedArray] = callBind(arr.slice); + }); } var tryTypedArrays = function tryAllTypedArrays(value) { - var anyTrue = false; - forEach2(toStrTags, function(getter, typedArray) { - if (!anyTrue) { + var found = false; + forEach2(cache, function(getter, typedArray) { + if (!found) { try { - anyTrue = getter.call(value) === typedArray; + if ("$" + getter(value) === typedArray) { + found = $slice(typedArray, 1); + } } catch (e) { } } }); - return anyTrue; + return found; }; - module2.exports = function isTypedArray(value) { + var trySlices = function tryAllSlices(value) { + var found = false; + forEach2(cache, function(getter, name) { + if (!found) { + try { + getter(value); + found = $slice(name, 1); + } catch (e) { + } + } + }); + return found; + }; + module2.exports = function whichTypedArray(value) { if (!value || typeof value !== "object") { return false; } - if (!hasToStringTag || !(Symbol.toStringTag in value)) { + if (!hasToStringTag) { var tag2 = $slice($toString(value), 8, -1); - return $indexOf(typedArrays, tag2) > -1; + if ($indexOf(typedArrays, tag2) > -1) { + return tag2; + } + if (tag2 !== "Object") { + return false; + } + return trySlices(value); } if (!gOPD) { - return false; + return null; } return tryTypedArrays(value); }; } }); +// node_modules/.pnpm/is-typed-array@1.1.12/node_modules/is-typed-array/index.js +var require_is_typed_array = __commonJS({ + "node_modules/.pnpm/is-typed-array@1.1.12/node_modules/is-typed-array/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var whichTypedArray = require_which_typed_array(); + module2.exports = function isTypedArray(value) { + return !!whichTypedArray(value); + }; + } +}); + // node_modules/.pnpm/is-array-buffer@3.0.2/node_modules/is-array-buffer/index.js var require_is_array_buffer = __commonJS({ "node_modules/.pnpm/is-array-buffer@3.0.2/node_modules/is-array-buffer/index.js"(exports2, module2) { @@ -11618,66 +11657,6 @@ var require_which_collection = __commonJS({ } }); -// node_modules/.pnpm/which-typed-array@1.1.9/node_modules/which-typed-array/index.js -var require_which_typed_array = __commonJS({ - "node_modules/.pnpm/which-typed-array@1.1.9/node_modules/which-typed-array/index.js"(exports2, module2) { - "use strict"; - init_polyfill_buffer(); - var forEach2 = require_for_each(); - var availableTypedArrays = require_available_typed_arrays(); - var callBound = require_callBound(); - var gOPD = require_gopd(); - var $toString = callBound("Object.prototype.toString"); - var hasToStringTag = require_shams2()(); - var g = typeof globalThis === "undefined" ? global : globalThis; - var typedArrays = availableTypedArrays(); - var $slice = callBound("String.prototype.slice"); - var toStrTags = {}; - var getPrototypeOf = Object.getPrototypeOf; - if (hasToStringTag && gOPD && getPrototypeOf) { - forEach2(typedArrays, function(typedArray) { - if (typeof g[typedArray] === "function") { - var arr = new g[typedArray](); - if (Symbol.toStringTag in arr) { - var proto = getPrototypeOf(arr); - var descriptor = gOPD(proto, Symbol.toStringTag); - if (!descriptor) { - var superProto = getPrototypeOf(proto); - descriptor = gOPD(superProto, Symbol.toStringTag); - } - toStrTags[typedArray] = descriptor.get; - } - } - }); - } - var tryTypedArrays = function tryAllTypedArrays(value) { - var foundName = false; - forEach2(toStrTags, function(getter, typedArray) { - if (!foundName) { - try { - var name = getter.call(value); - if (name === typedArray) { - foundName = name; - } - } catch (e) { - } - } - }); - return foundName; - }; - var isTypedArray = require_is_typed_array(); - module2.exports = function whichTypedArray(value) { - if (!isTypedArray(value)) { - return false; - } - if (!hasToStringTag || !(Symbol.toStringTag in value)) { - return $slice($toString(value), 8, -1); - } - return tryTypedArrays(value); - }; - } -}); - // node_modules/.pnpm/array-buffer-byte-length@1.0.0/node_modules/array-buffer-byte-length/index.js var require_array_buffer_byte_length = __commonJS({ "node_modules/.pnpm/array-buffer-byte-length@1.0.0/node_modules/array-buffer-byte-length/index.js"(exports2, module2) { @@ -11695,9 +11674,9 @@ var require_array_buffer_byte_length = __commonJS({ } }); -// node_modules/.pnpm/deep-equal@2.2.1/node_modules/deep-equal/index.js +// node_modules/.pnpm/deep-equal@2.2.2/node_modules/deep-equal/index.js var require_deep_equal = __commonJS({ - "node_modules/.pnpm/deep-equal@2.2.1/node_modules/deep-equal/index.js"(exports2, module2) { + "node_modules/.pnpm/deep-equal@2.2.2/node_modules/deep-equal/index.js"(exports2, module2) { "use strict"; init_polyfill_buffer(); var assign2 = require_object(); @@ -11980,9 +11959,20 @@ var require_deep_equal = __commonJS({ } var aWhich = whichTypedArray(a); var bWhich = whichTypedArray(b); - if ((aWhich || bWhich) && aWhich !== bWhich) { + if (aWhich !== bWhich) { return false; } + if (aWhich || bWhich) { + if (a.length !== b.length) { + return false; + } + for (i = 0; i < a.length; i++) { + if (a[i] !== b[i]) { + return false; + } + } + return true; + } var aIsBuffer = isBuffer(a); var bIsBuffer = isBuffer(b); if (aIsBuffer !== bIsBuffer) { @@ -13177,9 +13167,9 @@ var require_hogan = __commonJS({ } }); -// node_modules/.pnpm/feather-icons@4.29.0/node_modules/feather-icons/dist/feather.js +// node_modules/.pnpm/feather-icons@4.29.1/node_modules/feather-icons/dist/feather.js var require_feather = __commonJS({ - "node_modules/.pnpm/feather-icons@4.29.0/node_modules/feather-icons/dist/feather.js"(exports2, module2) { + "node_modules/.pnpm/feather-icons@4.29.1/node_modules/feather-icons/dist/feather.js"(exports2, module2) { init_polyfill_buffer(); (function webpackUniversalModuleDefinition(root2, factory) { if (typeof exports2 === "object" && typeof module2 === "object") @@ -13259,7 +13249,7 @@ var require_feather = __commonJS({ /*! exports provided: activity, airplay, alert-circle, alert-octagon, alert-triangle, align-center, align-justify, align-left, align-right, anchor, aperture, archive, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, award, bar-chart-2, bar-chart, battery-charging, battery, bell-off, bell, bluetooth, bold, book-open, book, bookmark, box, briefcase, calendar, camera-off, camera, cast, check-circle, check-square, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, chrome, circle, clipboard, clock, cloud-drizzle, cloud-lightning, cloud-off, cloud-rain, cloud-snow, cloud, code, codepen, codesandbox, coffee, columns, command, compass, copy, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, cpu, credit-card, crop, crosshair, database, delete, disc, divide-circle, divide-square, divide, dollar-sign, download-cloud, download, dribbble, droplet, edit-2, edit-3, edit, external-link, eye-off, eye, facebook, fast-forward, feather, figma, file-minus, file-plus, file-text, file, film, filter, flag, folder-minus, folder-plus, folder, framer, frown, gift, git-branch, git-commit, git-merge, git-pull-request, github, gitlab, globe, grid, hard-drive, hash, headphones, heart, help-circle, hexagon, home, image, inbox, info, instagram, italic, key, layers, layout, life-buoy, link-2, link, linkedin, list, loader, lock, log-in, log-out, mail, map-pin, map, maximize-2, maximize, meh, menu, message-circle, message-square, mic-off, mic, minimize-2, minimize, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, mouse-pointer, move, music, navigation-2, navigation, octagon, package, paperclip, pause-circle, pause, pen-tool, percent, phone-call, phone-forwarded, phone-incoming, phone-missed, phone-off, phone-outgoing, phone, pie-chart, play-circle, play, plus-circle, plus-square, plus, pocket, power, printer, radio, refresh-ccw, refresh-cw, repeat, rewind, rotate-ccw, rotate-cw, rss, save, scissors, search, send, server, settings, share-2, share, shield-off, shield, shopping-bag, shopping-cart, shuffle, sidebar, skip-back, skip-forward, slack, slash, sliders, smartphone, smile, speaker, square, star, stop-circle, sun, sunrise, sunset, table, tablet, tag, target, terminal, thermometer, thumbs-down, thumbs-up, toggle-left, toggle-right, tool, trash-2, trash, trello, trending-down, trending-up, triangle, truck, tv, twitch, twitter, type, umbrella, underline, unlock, upload-cloud, upload, user-check, user-minus, user-plus, user-x, user, users, video-off, video, voicemail, volume-1, volume-2, volume-x, volume, watch, wifi-off, wifi, wind, x-circle, x-octagon, x-square, x, youtube, zap-off, zap, zoom-in, zoom-out, default */ /***/ function(module3) { - module3.exports = { "activity": '', "airplay": '', "alert-circle": '', "alert-octagon": '', "alert-triangle": '', "align-center": '', "align-justify": '', "align-left": '', "align-right": '', "anchor": '', "aperture": '', "archive": '', "arrow-down-circle": '', "arrow-down-left": '', "arrow-down-right": '', "arrow-down": '', "arrow-left-circle": '', "arrow-left": '', "arrow-right-circle": '', "arrow-right": '', "arrow-up-circle": '', "arrow-up-left": '', "arrow-up-right": '', "arrow-up": '', "at-sign": '', "award": '', "bar-chart-2": '', "bar-chart": '', "battery-charging": '', "battery": '', "bell-off": '', "bell": '', "bluetooth": '', "bold": '', "book-open": '', "book": '', "bookmark": '', "box": '', "briefcase": '', "calendar": '', "camera-off": '', "camera": '', "cast": '', "check-circle": '', "check-square": '', "check": '', "chevron-down": '', "chevron-left": '', "chevron-right": '', "chevron-up": '', "chevrons-down": '', "chevrons-left": '', "chevrons-right": '', "chevrons-up": '', "chrome": '', "circle": '', "clipboard": '', "clock": '', "cloud-drizzle": '', "cloud-lightning": '', "cloud-off": '', "cloud-rain": '', "cloud-snow": '', "cloud": '', "code": '', "codepen": '', "codesandbox": '', "coffee": '', "columns": '', "command": '', "compass": '', "copy": '', "corner-down-left": '', "corner-down-right": '', "corner-left-down": '', "corner-left-up": '', "corner-right-down": '', "corner-right-up": '', "corner-up-left": '', "corner-up-right": '', "cpu": '', "credit-card": '', "crop": '', "crosshair": '', "database": '', "delete": '', "disc": '', "divide-circle": '', "divide-square": '', "divide": '', "dollar-sign": '', "download-cloud": '', "download": '', "dribbble": '', "droplet": '', "edit-2": '', "edit-3": '', "edit": '', "external-link": '', "eye-off": '', "eye": '', "facebook": '', "fast-forward": '', "feather": '', "figma": '', "file-minus": '', "file-plus": '', "file-text": '', "file": '', "film": '', "filter": '', "flag": '', "folder-minus": '', "folder-plus": '', "folder": '', "framer": '', "frown": '', "gift": '', "git-branch": '', "git-commit": '', "git-merge": '', "git-pull-request": '', "github": '', "gitlab": '', "globe": '', "grid": '', "hard-drive": '', "hash": '', "headphones": '', "heart": '', "help-circle": '', "hexagon": '', "home": '', "image": '', "inbox": '', "info": '', "instagram": '', "italic": '', "key": '', "layers": '', "layout": '', "life-buoy": '', "link-2": '', "link": '', "linkedin": '', "list": '', "loader": '', "lock": '', "log-in": '', "log-out": '', "mail": '', "map-pin": '', "map": '', "maximize-2": '', "maximize": '', "meh": '', "menu": '', "message-circle": '', "message-square": '', "mic-off": '', "mic": '', "minimize-2": '', "minimize": '', "minus-circle": '', "minus-square": '', "minus": '', "monitor": '', "moon": '', "more-horizontal": '', "more-vertical": '', "mouse-pointer": '', "move": '', "music": '', "navigation-2": '', "navigation": '', "octagon": '', "package": '', "paperclip": '', "pause-circle": '', "pause": '', "pen-tool": '', "percent": '', "phone-call": '', "phone-forwarded": '', "phone-incoming": '', "phone-missed": '', "phone-off": '', "phone-outgoing": '', "phone": '', "pie-chart": '', "play-circle": '', "play": '', "plus-circle": '', "plus-square": '', "plus": '', "pocket": '', "power": '', "printer": '', "radio": '', "refresh-ccw": '', "refresh-cw": '', "repeat": '', "rewind": '', "rotate-ccw": '', "rotate-cw": '', "rss": '', "save": '', "scissors": '', "search": '', "send": '', "server": '', "settings": '', "share-2": '', "share": '', "shield-off": '', "shield": '', "shopping-bag": '', "shopping-cart": '', "shuffle": '', "sidebar": '', "skip-back": '', "skip-forward": '', "slack": '', "slash": '', "sliders": '', "smartphone": '', "smile": '', "speaker": '', "square": '', "star": '', "stop-circle": '', "sun": '', "sunrise": '', "sunset": '', "table": '', "tablet": '', "tag": '', "target": '', "terminal": '', "thermometer": '', "thumbs-down": '', "thumbs-up": '', "toggle-left": '', "toggle-right": '', "tool": '', "trash-2": '', "trash": '', "trello": '', "trending-down": '', "trending-up": '', "triangle": '', "truck": '', "tv": '', "twitch": '', "twitter": '', "type": '', "umbrella": '', "underline": '', "unlock": '', "upload-cloud": '', "upload": '', "user-check": '', "user-minus": '', "user-plus": '', "user-x": '', "user": '', "users": '', "video-off": '', "video": '', "voicemail": '', "volume-1": '', "volume-2": '', "volume-x": '', "volume": '', "watch": '', "wifi-off": '', "wifi": '', "wind": '', "x-circle": '', "x-octagon": '', "x-square": '', "x": '', "youtube": '', "zap-off": '', "zap": '', "zoom-in": '', "zoom-out": '' }; + module3.exports = { "activity": '', "airplay": '', "alert-circle": '', "alert-octagon": '', "alert-triangle": '', "align-center": '', "align-justify": '', "align-left": '', "align-right": '', "anchor": '', "aperture": '', "archive": '', "arrow-down-circle": '', "arrow-down-left": '', "arrow-down-right": '', "arrow-down": '', "arrow-left-circle": '', "arrow-left": '', "arrow-right-circle": '', "arrow-right": '', "arrow-up-circle": '', "arrow-up-left": '', "arrow-up-right": '', "arrow-up": '', "at-sign": '', "award": '', "bar-chart-2": '', "bar-chart": '', "battery-charging": '', "battery": '', "bell-off": '', "bell": '', "bluetooth": '', "bold": '', "book-open": '', "book": '', "bookmark": '', "box": '', "briefcase": '', "calendar": '', "camera-off": '', "camera": '', "cast": '', "check-circle": '', "check-square": '', "check": '', "chevron-down": '', "chevron-left": '', "chevron-right": '', "chevron-up": '', "chevrons-down": '', "chevrons-left": '', "chevrons-right": '', "chevrons-up": '', "chrome": '', "circle": '', "clipboard": '', "clock": '', "cloud-drizzle": '', "cloud-lightning": '', "cloud-off": '', "cloud-rain": '', "cloud-snow": '', "cloud": '', "code": '', "codepen": '', "codesandbox": '', "coffee": '', "columns": '', "command": '', "compass": '', "copy": '', "corner-down-left": '', "corner-down-right": '', "corner-left-down": '', "corner-left-up": '', "corner-right-down": '', "corner-right-up": '', "corner-up-left": '', "corner-up-right": '', "cpu": '', "credit-card": '', "crop": '', "crosshair": '', "database": '', "delete": '', "disc": '', "divide-circle": '', "divide-square": '', "divide": '', "dollar-sign": '', "download-cloud": '', "download": '', "dribbble": '', "droplet": '', "edit-2": '', "edit-3": '', "edit": '', "external-link": '', "eye-off": '', "eye": '', "facebook": '', "fast-forward": '', "feather": '', "figma": '', "file-minus": '', "file-plus": '', "file-text": '', "file": '', "film": '', "filter": '', "flag": '', "folder-minus": '', "folder-plus": '', "folder": '', "framer": '', "frown": '', "gift": '', "git-branch": '', "git-commit": '', "git-merge": '', "git-pull-request": '', "github": '', "gitlab": '', "globe": '', "grid": '', "hard-drive": '', "hash": '', "headphones": '', "heart": '', "help-circle": '', "hexagon": '', "home": '', "image": '', "inbox": '', "info": '', "instagram": '', "italic": '', "key": '', "layers": '', "layout": '', "life-buoy": '', "link-2": '', "link": '', "linkedin": '', "list": '', "loader": '', "lock": '', "log-in": '', "log-out": '', "mail": '', "map-pin": '', "map": '', "maximize-2": '', "maximize": '', "meh": '', "menu": '', "message-circle": '', "message-square": '', "mic-off": '', "mic": '', "minimize-2": '', "minimize": '', "minus-circle": '', "minus-square": '', "minus": '', "monitor": '', "moon": '', "more-horizontal": '', "more-vertical": '', "mouse-pointer": '', "move": '', "music": '', "navigation-2": '', "navigation": '', "octagon": '', "package": '', "paperclip": '', "pause-circle": '', "pause": '', "pen-tool": '', "percent": '', "phone-call": '', "phone-forwarded": '', "phone-incoming": '', "phone-missed": '', "phone-off": '', "phone-outgoing": '', "phone": '', "pie-chart": '', "play-circle": '', "play": '', "plus-circle": '', "plus-square": '', "plus": '', "pocket": '', "power": '', "printer": '', "radio": '', "refresh-ccw": '', "refresh-cw": '', "repeat": '', "rewind": '', "rotate-ccw": '', "rotate-cw": '', "rss": '', "save": '', "scissors": '', "search": '', "send": '', "server": '', "settings": '', "share-2": '', "share": '', "shield-off": '', "shield": '', "shopping-bag": '', "shopping-cart": '', "shuffle": '', "sidebar": '', "skip-back": '', "skip-forward": '', "slack": '', "slash": '', "sliders": '', "smartphone": '', "smile": '', "speaker": '', "square": '', "star": '', "stop-circle": '', "sun": '', "sunrise": '', "sunset": '', "table": '', "tablet": '', "tag": '', "target": '', "terminal": '', "thermometer": '', "thumbs-down": '', "thumbs-up": '', "toggle-left": '', "toggle-right": '', "tool": '', "trash-2": '', "trash": '', "trello": '', "trending-down": '', "trending-up": '', "triangle": '', "truck": '', "tv": '', "twitch": '', "twitter": '', "type": '', "umbrella": '', "underline": '', "unlock": '', "upload-cloud": '', "upload": '', "user-check": '', "user-minus": '', "user-plus": '', "user-x": '', "user": '', "users": '', "video-off": '', "video": '', "voicemail": '', "volume-1": '', "volume-2": '', "volume-x": '', "volume": '', "watch": '', "wifi-off": '', "wifi": '', "wind": '', "x-circle": '', "x-octagon": '', "x-square": '', "x": '', "youtube": '', "zap-off": '', "zap": '', "zoom-in": '', "zoom-out": '' }; } ), /***/ @@ -13392,12 +13382,12 @@ var require_feather = __commonJS({ /*! no static exports found */ /***/ function(module3, exports3, __webpack_require__) { - var isObject = __webpack_require__( + var isObject2 = __webpack_require__( /*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js" ); module3.exports = function(it) { - if (!isObject(it)) { + if (!isObject2(it)) { throw TypeError(String(it) + " is not an object"); } return it; @@ -13993,12 +13983,12 @@ var require_feather = __commonJS({ /*! ../internals/global */ "./node_modules/core-js/internals/global.js" ); - var isObject = __webpack_require__( + var isObject2 = __webpack_require__( /*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js" ); var document2 = global2.document; - var exist = isObject(document2) && isObject(document2.createElement); + var exist = isObject2(document2) && isObject2(document2.createElement); module3.exports = function(it) { return exist ? document2.createElement(it) : {}; }; @@ -14312,7 +14302,7 @@ var require_feather = __commonJS({ /*! ../internals/global */ "./node_modules/core-js/internals/global.js" ); - var isObject = __webpack_require__( + var isObject2 = __webpack_require__( /*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js" ); @@ -14340,7 +14330,7 @@ var require_feather = __commonJS({ var getterFor = function(TYPE) { return function(it) { var state; - if (!isObject(it) || (state = get(it)).type !== TYPE) { + if (!isObject2(it) || (state = get(it)).type !== TYPE) { throw TypeError("Incompatible receiver, " + TYPE + " required"); } return state; @@ -15310,19 +15300,19 @@ var require_feather = __commonJS({ /*! no static exports found */ /***/ function(module3, exports3, __webpack_require__) { - var isObject = __webpack_require__( + var isObject2 = __webpack_require__( /*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js" ); module3.exports = function(it, S) { - if (!isObject(it)) + if (!isObject2(it)) return it; var fn, val; - if (S && typeof (fn = it.toString) == "function" && !isObject(val = fn.call(it))) + if (S && typeof (fn = it.toString) == "function" && !isObject2(val = fn.call(it))) return val; - if (typeof (fn = it.valueOf) == "function" && !isObject(val = fn.call(it))) + if (typeof (fn = it.valueOf) == "function" && !isObject2(val = fn.call(it))) return val; - if (!S && typeof (fn = it.toString) == "function" && !isObject(val = fn.call(it))) + if (!S && typeof (fn = it.toString) == "function" && !isObject2(val = fn.call(it))) return val; throw TypeError("Can't convert object to primitive value"); }; @@ -15351,7 +15341,7 @@ var require_feather = __commonJS({ /*! no static exports found */ /***/ function(module3, exports3, __webpack_require__) { - var isObject = __webpack_require__( + var isObject2 = __webpack_require__( /*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js" ); @@ -15361,7 +15351,7 @@ var require_feather = __commonJS({ ); module3.exports = function(O, proto) { anObject(O); - if (!isObject(proto) && proto !== null) { + if (!isObject2(proto) && proto !== null) { throw TypeError("Can't set " + String(proto) + " as a prototype"); } }; @@ -15739,10 +15729,10 @@ var require_feather = __commonJS({ /*!***********************!*\ !*** ./src/tags.json ***! \***********************/ - /*! exports provided: activity, airplay, alert-circle, alert-octagon, alert-triangle, align-center, align-justify, align-left, align-right, anchor, archive, at-sign, award, aperture, bar-chart, bar-chart-2, battery, battery-charging, bell, bell-off, bluetooth, book-open, book, bookmark, box, briefcase, calendar, camera, cast, chevron-down, chevron-up, circle, clipboard, clock, cloud-drizzle, cloud-lightning, cloud-rain, cloud-snow, cloud, codepen, codesandbox, code, coffee, columns, command, compass, copy, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, cpu, credit-card, crop, crosshair, database, delete, disc, dollar-sign, droplet, edit, edit-2, edit-3, eye, eye-off, external-link, facebook, fast-forward, figma, file-minus, file-plus, file-text, film, filter, flag, folder-minus, folder-plus, folder, framer, frown, gift, git-branch, git-commit, git-merge, git-pull-request, github, gitlab, globe, hard-drive, hash, headphones, heart, help-circle, hexagon, home, image, inbox, instagram, key, layers, layout, life-bouy, link, link-2, linkedin, list, lock, log-in, log-out, mail, map-pin, map, maximize, maximize-2, meh, menu, message-circle, message-square, mic-off, mic, minimize, minimize-2, minus, monitor, moon, more-horizontal, more-vertical, mouse-pointer, move, music, navigation, navigation-2, octagon, package, paperclip, pause, pause-circle, pen-tool, percent, phone-call, phone-forwarded, phone-incoming, phone-missed, phone-off, phone-outgoing, phone, play, pie-chart, play-circle, plus, plus-circle, plus-square, pocket, power, printer, radio, refresh-cw, refresh-ccw, repeat, rewind, rotate-ccw, rotate-cw, rss, save, scissors, search, send, settings, share-2, shield, shield-off, shopping-bag, shopping-cart, shuffle, skip-back, skip-forward, slack, slash, sliders, smartphone, smile, speaker, star, stop-circle, sun, sunrise, sunset, tablet, tag, target, terminal, thermometer, thumbs-down, thumbs-up, toggle-left, toggle-right, tool, trash, trash-2, triangle, truck, tv, twitch, twitter, type, umbrella, unlock, user-check, user-minus, user-plus, user-x, user, users, video-off, video, voicemail, volume, volume-1, volume-2, volume-x, watch, wifi-off, wifi, wind, x-circle, x-octagon, x-square, x, youtube, zap-off, zap, zoom-in, zoom-out, default */ + /*! exports provided: activity, airplay, alert-circle, alert-octagon, alert-triangle, align-center, align-justify, align-left, align-right, anchor, archive, at-sign, award, aperture, bar-chart, bar-chart-2, battery, battery-charging, bell, bell-off, bluetooth, book-open, book, bookmark, box, briefcase, calendar, camera, cast, chevron-down, chevron-up, circle, clipboard, clock, cloud-drizzle, cloud-lightning, cloud-rain, cloud-snow, cloud, codepen, codesandbox, code, coffee, columns, command, compass, copy, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, cpu, credit-card, crop, crosshair, database, delete, disc, dollar-sign, droplet, edit, edit-2, edit-3, eye, eye-off, external-link, facebook, fast-forward, figma, file-minus, file-plus, file-text, film, filter, flag, folder-minus, folder-plus, folder, framer, frown, gift, git-branch, git-commit, git-merge, git-pull-request, github, gitlab, globe, hard-drive, hash, headphones, heart, help-circle, hexagon, home, image, inbox, instagram, key, layers, layout, life-buoy, link, link-2, linkedin, list, lock, log-in, log-out, mail, map-pin, map, maximize, maximize-2, meh, menu, message-circle, message-square, mic-off, mic, minimize, minimize-2, minus, monitor, moon, more-horizontal, more-vertical, mouse-pointer, move, music, navigation, navigation-2, octagon, package, paperclip, pause, pause-circle, pen-tool, percent, phone-call, phone-forwarded, phone-incoming, phone-missed, phone-off, phone-outgoing, phone, play, pie-chart, play-circle, plus, plus-circle, plus-square, pocket, power, printer, radio, refresh-cw, refresh-ccw, repeat, rewind, rotate-ccw, rotate-cw, rss, save, scissors, search, send, settings, share-2, shield, shield-off, shopping-bag, shopping-cart, shuffle, skip-back, skip-forward, slack, slash, sliders, smartphone, smile, speaker, star, stop-circle, sun, sunrise, sunset, tablet, tag, target, terminal, thermometer, thumbs-down, thumbs-up, toggle-left, toggle-right, tool, trash, trash-2, triangle, truck, tv, twitch, twitter, type, umbrella, unlock, user-check, user-minus, user-plus, user-x, user, users, video-off, video, voicemail, volume, volume-1, volume-2, volume-x, watch, wifi-off, wifi, wind, x-circle, x-octagon, x-square, x, youtube, zap-off, zap, zoom-in, zoom-out, default */ /***/ function(module3) { - module3.exports = { "activity": ["pulse", "health", "action", "motion"], "airplay": ["stream", "cast", "mirroring"], "alert-circle": ["warning", "alert", "danger"], "alert-octagon": ["warning", "alert", "danger"], "alert-triangle": ["warning", "alert", "danger"], "align-center": ["text alignment", "center"], "align-justify": ["text alignment", "justified"], "align-left": ["text alignment", "left"], "align-right": ["text alignment", "right"], "anchor": [], "archive": ["index", "box"], "at-sign": ["mention", "at", "email", "message"], "award": ["achievement", "badge"], "aperture": ["camera", "photo"], "bar-chart": ["statistics", "diagram", "graph"], "bar-chart-2": ["statistics", "diagram", "graph"], "battery": ["power", "electricity"], "battery-charging": ["power", "electricity"], "bell": ["alarm", "notification", "sound"], "bell-off": ["alarm", "notification", "silent"], "bluetooth": ["wireless"], "book-open": ["read", "library"], "book": ["read", "dictionary", "booklet", "magazine", "library"], "bookmark": ["read", "clip", "marker", "tag"], "box": ["cube"], "briefcase": ["work", "bag", "baggage", "folder"], "calendar": ["date"], "camera": ["photo"], "cast": ["chromecast", "airplay"], "chevron-down": ["expand"], "chevron-up": ["collapse"], "circle": ["off", "zero", "record"], "clipboard": ["copy"], "clock": ["time", "watch", "alarm"], "cloud-drizzle": ["weather", "shower"], "cloud-lightning": ["weather", "bolt"], "cloud-rain": ["weather"], "cloud-snow": ["weather", "blizzard"], "cloud": ["weather"], "codepen": ["logo"], "codesandbox": ["logo"], "code": ["source", "programming"], "coffee": ["drink", "cup", "mug", "tea", "cafe", "hot", "beverage"], "columns": ["layout"], "command": ["keyboard", "cmd", "terminal", "prompt"], "compass": ["navigation", "safari", "travel", "direction"], "copy": ["clone", "duplicate"], "corner-down-left": ["arrow", "return"], "corner-down-right": ["arrow"], "corner-left-down": ["arrow"], "corner-left-up": ["arrow"], "corner-right-down": ["arrow"], "corner-right-up": ["arrow"], "corner-up-left": ["arrow"], "corner-up-right": ["arrow"], "cpu": ["processor", "technology"], "credit-card": ["purchase", "payment", "cc"], "crop": ["photo", "image"], "crosshair": ["aim", "target"], "database": ["storage", "memory"], "delete": ["remove"], "disc": ["album", "cd", "dvd", "music"], "dollar-sign": ["currency", "money", "payment"], "droplet": ["water"], "edit": ["pencil", "change"], "edit-2": ["pencil", "change"], "edit-3": ["pencil", "change"], "eye": ["view", "watch"], "eye-off": ["view", "watch", "hide", "hidden"], "external-link": ["outbound"], "facebook": ["logo", "social"], "fast-forward": ["music"], "figma": ["logo", "design", "tool"], "file-minus": ["delete", "remove", "erase"], "file-plus": ["add", "create", "new"], "file-text": ["data", "txt", "pdf"], "film": ["movie", "video"], "filter": ["funnel", "hopper"], "flag": ["report"], "folder-minus": ["directory"], "folder-plus": ["directory"], "folder": ["directory"], "framer": ["logo", "design", "tool"], "frown": ["emoji", "face", "bad", "sad", "emotion"], "gift": ["present", "box", "birthday", "party"], "git-branch": ["code", "version control"], "git-commit": ["code", "version control"], "git-merge": ["code", "version control"], "git-pull-request": ["code", "version control"], "github": ["logo", "version control"], "gitlab": ["logo", "version control"], "globe": ["world", "browser", "language", "translate"], "hard-drive": ["computer", "server", "memory", "data"], "hash": ["hashtag", "number", "pound"], "headphones": ["music", "audio", "sound"], "heart": ["like", "love", "emotion"], "help-circle": ["question mark"], "hexagon": ["shape", "node.js", "logo"], "home": ["house", "living"], "image": ["picture"], "inbox": ["email"], "instagram": ["logo", "camera"], "key": ["password", "login", "authentication", "secure"], "layers": ["stack"], "layout": ["window", "webpage"], "life-bouy": ["help", "life ring", "support"], "link": ["chain", "url"], "link-2": ["chain", "url"], "linkedin": ["logo", "social media"], "list": ["options"], "lock": ["security", "password", "secure"], "log-in": ["sign in", "arrow", "enter"], "log-out": ["sign out", "arrow", "exit"], "mail": ["email", "message"], "map-pin": ["location", "navigation", "travel", "marker"], "map": ["location", "navigation", "travel"], "maximize": ["fullscreen"], "maximize-2": ["fullscreen", "arrows", "expand"], "meh": ["emoji", "face", "neutral", "emotion"], "menu": ["bars", "navigation", "hamburger"], "message-circle": ["comment", "chat"], "message-square": ["comment", "chat"], "mic-off": ["record", "sound", "mute"], "mic": ["record", "sound", "listen"], "minimize": ["exit fullscreen", "close"], "minimize-2": ["exit fullscreen", "arrows", "close"], "minus": ["subtract"], "monitor": ["tv", "screen", "display"], "moon": ["dark", "night"], "more-horizontal": ["ellipsis"], "more-vertical": ["ellipsis"], "mouse-pointer": ["arrow", "cursor"], "move": ["arrows"], "music": ["note"], "navigation": ["location", "travel"], "navigation-2": ["location", "travel"], "octagon": ["stop"], "package": ["box", "container"], "paperclip": ["attachment"], "pause": ["music", "stop"], "pause-circle": ["music", "audio", "stop"], "pen-tool": ["vector", "drawing"], "percent": ["discount"], "phone-call": ["ring"], "phone-forwarded": ["call"], "phone-incoming": ["call"], "phone-missed": ["call"], "phone-off": ["call", "mute"], "phone-outgoing": ["call"], "phone": ["call"], "play": ["music", "start"], "pie-chart": ["statistics", "diagram"], "play-circle": ["music", "start"], "plus": ["add", "new"], "plus-circle": ["add", "new"], "plus-square": ["add", "new"], "pocket": ["logo", "save"], "power": ["on", "off"], "printer": ["fax", "office", "device"], "radio": ["signal"], "refresh-cw": ["synchronise", "arrows"], "refresh-ccw": ["arrows"], "repeat": ["loop", "arrows"], "rewind": ["music"], "rotate-ccw": ["arrow"], "rotate-cw": ["arrow"], "rss": ["feed", "subscribe"], "save": ["floppy disk"], "scissors": ["cut"], "search": ["find", "magnifier", "magnifying glass"], "send": ["message", "mail", "email", "paper airplane", "paper aeroplane"], "settings": ["cog", "edit", "gear", "preferences"], "share-2": ["network", "connections"], "shield": ["security", "secure"], "shield-off": ["security", "insecure"], "shopping-bag": ["ecommerce", "cart", "purchase", "store"], "shopping-cart": ["ecommerce", "cart", "purchase", "store"], "shuffle": ["music"], "skip-back": ["music"], "skip-forward": ["music"], "slack": ["logo"], "slash": ["ban", "no"], "sliders": ["settings", "controls"], "smartphone": ["cellphone", "device"], "smile": ["emoji", "face", "happy", "good", "emotion"], "speaker": ["audio", "music"], "star": ["bookmark", "favorite", "like"], "stop-circle": ["media", "music"], "sun": ["brightness", "weather", "light"], "sunrise": ["weather", "time", "morning", "day"], "sunset": ["weather", "time", "evening", "night"], "tablet": ["device"], "tag": ["label"], "target": ["logo", "bullseye"], "terminal": ["code", "command line", "prompt"], "thermometer": ["temperature", "celsius", "fahrenheit", "weather"], "thumbs-down": ["dislike", "bad", "emotion"], "thumbs-up": ["like", "good", "emotion"], "toggle-left": ["on", "off", "switch"], "toggle-right": ["on", "off", "switch"], "tool": ["settings", "spanner"], "trash": ["garbage", "delete", "remove", "bin"], "trash-2": ["garbage", "delete", "remove", "bin"], "triangle": ["delta"], "truck": ["delivery", "van", "shipping", "transport", "lorry"], "tv": ["television", "stream"], "twitch": ["logo"], "twitter": ["logo", "social"], "type": ["text"], "umbrella": ["rain", "weather"], "unlock": ["security"], "user-check": ["followed", "subscribed"], "user-minus": ["delete", "remove", "unfollow", "unsubscribe"], "user-plus": ["new", "add", "create", "follow", "subscribe"], "user-x": ["delete", "remove", "unfollow", "unsubscribe", "unavailable"], "user": ["person", "account"], "users": ["group"], "video-off": ["camera", "movie", "film"], "video": ["camera", "movie", "film"], "voicemail": ["phone"], "volume": ["music", "sound", "mute"], "volume-1": ["music", "sound"], "volume-2": ["music", "sound"], "volume-x": ["music", "sound", "mute"], "watch": ["clock", "time"], "wifi-off": ["disabled"], "wifi": ["connection", "signal", "wireless"], "wind": ["weather", "air"], "x-circle": ["cancel", "close", "delete", "remove", "times", "clear"], "x-octagon": ["delete", "stop", "alert", "warning", "times", "clear"], "x-square": ["cancel", "close", "delete", "remove", "times", "clear"], "x": ["cancel", "close", "delete", "remove", "times", "clear"], "youtube": ["logo", "video", "play"], "zap-off": ["flash", "camera", "lightning"], "zap": ["flash", "camera", "lightning"], "zoom-in": ["magnifying glass"], "zoom-out": ["magnifying glass"] }; + module3.exports = { "activity": ["pulse", "health", "action", "motion"], "airplay": ["stream", "cast", "mirroring"], "alert-circle": ["warning", "alert", "danger"], "alert-octagon": ["warning", "alert", "danger"], "alert-triangle": ["warning", "alert", "danger"], "align-center": ["text alignment", "center"], "align-justify": ["text alignment", "justified"], "align-left": ["text alignment", "left"], "align-right": ["text alignment", "right"], "anchor": [], "archive": ["index", "box"], "at-sign": ["mention", "at", "email", "message"], "award": ["achievement", "badge"], "aperture": ["camera", "photo"], "bar-chart": ["statistics", "diagram", "graph"], "bar-chart-2": ["statistics", "diagram", "graph"], "battery": ["power", "electricity"], "battery-charging": ["power", "electricity"], "bell": ["alarm", "notification", "sound"], "bell-off": ["alarm", "notification", "silent"], "bluetooth": ["wireless"], "book-open": ["read", "library"], "book": ["read", "dictionary", "booklet", "magazine", "library"], "bookmark": ["read", "clip", "marker", "tag"], "box": ["cube"], "briefcase": ["work", "bag", "baggage", "folder"], "calendar": ["date"], "camera": ["photo"], "cast": ["chromecast", "airplay"], "chevron-down": ["expand"], "chevron-up": ["collapse"], "circle": ["off", "zero", "record"], "clipboard": ["copy"], "clock": ["time", "watch", "alarm"], "cloud-drizzle": ["weather", "shower"], "cloud-lightning": ["weather", "bolt"], "cloud-rain": ["weather"], "cloud-snow": ["weather", "blizzard"], "cloud": ["weather"], "codepen": ["logo"], "codesandbox": ["logo"], "code": ["source", "programming"], "coffee": ["drink", "cup", "mug", "tea", "cafe", "hot", "beverage"], "columns": ["layout"], "command": ["keyboard", "cmd", "terminal", "prompt"], "compass": ["navigation", "safari", "travel", "direction"], "copy": ["clone", "duplicate"], "corner-down-left": ["arrow", "return"], "corner-down-right": ["arrow"], "corner-left-down": ["arrow"], "corner-left-up": ["arrow"], "corner-right-down": ["arrow"], "corner-right-up": ["arrow"], "corner-up-left": ["arrow"], "corner-up-right": ["arrow"], "cpu": ["processor", "technology"], "credit-card": ["purchase", "payment", "cc"], "crop": ["photo", "image"], "crosshair": ["aim", "target"], "database": ["storage", "memory"], "delete": ["remove"], "disc": ["album", "cd", "dvd", "music"], "dollar-sign": ["currency", "money", "payment"], "droplet": ["water"], "edit": ["pencil", "change"], "edit-2": ["pencil", "change"], "edit-3": ["pencil", "change"], "eye": ["view", "watch"], "eye-off": ["view", "watch", "hide", "hidden"], "external-link": ["outbound"], "facebook": ["logo", "social"], "fast-forward": ["music"], "figma": ["logo", "design", "tool"], "file-minus": ["delete", "remove", "erase"], "file-plus": ["add", "create", "new"], "file-text": ["data", "txt", "pdf"], "film": ["movie", "video"], "filter": ["funnel", "hopper"], "flag": ["report"], "folder-minus": ["directory"], "folder-plus": ["directory"], "folder": ["directory"], "framer": ["logo", "design", "tool"], "frown": ["emoji", "face", "bad", "sad", "emotion"], "gift": ["present", "box", "birthday", "party"], "git-branch": ["code", "version control"], "git-commit": ["code", "version control"], "git-merge": ["code", "version control"], "git-pull-request": ["code", "version control"], "github": ["logo", "version control"], "gitlab": ["logo", "version control"], "globe": ["world", "browser", "language", "translate"], "hard-drive": ["computer", "server", "memory", "data"], "hash": ["hashtag", "number", "pound"], "headphones": ["music", "audio", "sound"], "heart": ["like", "love", "emotion"], "help-circle": ["question mark"], "hexagon": ["shape", "node.js", "logo"], "home": ["house", "living"], "image": ["picture"], "inbox": ["email"], "instagram": ["logo", "camera"], "key": ["password", "login", "authentication", "secure"], "layers": ["stack"], "layout": ["window", "webpage"], "life-buoy": ["help", "life ring", "support"], "link": ["chain", "url"], "link-2": ["chain", "url"], "linkedin": ["logo", "social media"], "list": ["options"], "lock": ["security", "password", "secure"], "log-in": ["sign in", "arrow", "enter"], "log-out": ["sign out", "arrow", "exit"], "mail": ["email", "message"], "map-pin": ["location", "navigation", "travel", "marker"], "map": ["location", "navigation", "travel"], "maximize": ["fullscreen"], "maximize-2": ["fullscreen", "arrows", "expand"], "meh": ["emoji", "face", "neutral", "emotion"], "menu": ["bars", "navigation", "hamburger"], "message-circle": ["comment", "chat"], "message-square": ["comment", "chat"], "mic-off": ["record", "sound", "mute"], "mic": ["record", "sound", "listen"], "minimize": ["exit fullscreen", "close"], "minimize-2": ["exit fullscreen", "arrows", "close"], "minus": ["subtract"], "monitor": ["tv", "screen", "display"], "moon": ["dark", "night"], "more-horizontal": ["ellipsis"], "more-vertical": ["ellipsis"], "mouse-pointer": ["arrow", "cursor"], "move": ["arrows"], "music": ["note"], "navigation": ["location", "travel"], "navigation-2": ["location", "travel"], "octagon": ["stop"], "package": ["box", "container"], "paperclip": ["attachment"], "pause": ["music", "stop"], "pause-circle": ["music", "audio", "stop"], "pen-tool": ["vector", "drawing"], "percent": ["discount"], "phone-call": ["ring"], "phone-forwarded": ["call"], "phone-incoming": ["call"], "phone-missed": ["call"], "phone-off": ["call", "mute"], "phone-outgoing": ["call"], "phone": ["call"], "play": ["music", "start"], "pie-chart": ["statistics", "diagram"], "play-circle": ["music", "start"], "plus": ["add", "new"], "plus-circle": ["add", "new"], "plus-square": ["add", "new"], "pocket": ["logo", "save"], "power": ["on", "off"], "printer": ["fax", "office", "device"], "radio": ["signal"], "refresh-cw": ["synchronise", "arrows"], "refresh-ccw": ["arrows"], "repeat": ["loop", "arrows"], "rewind": ["music"], "rotate-ccw": ["arrow"], "rotate-cw": ["arrow"], "rss": ["feed", "subscribe"], "save": ["floppy disk"], "scissors": ["cut"], "search": ["find", "magnifier", "magnifying glass"], "send": ["message", "mail", "email", "paper airplane", "paper aeroplane"], "settings": ["cog", "edit", "gear", "preferences"], "share-2": ["network", "connections"], "shield": ["security", "secure"], "shield-off": ["security", "insecure"], "shopping-bag": ["ecommerce", "cart", "purchase", "store"], "shopping-cart": ["ecommerce", "cart", "purchase", "store"], "shuffle": ["music"], "skip-back": ["music"], "skip-forward": ["music"], "slack": ["logo"], "slash": ["ban", "no"], "sliders": ["settings", "controls"], "smartphone": ["cellphone", "device"], "smile": ["emoji", "face", "happy", "good", "emotion"], "speaker": ["audio", "music"], "star": ["bookmark", "favorite", "like"], "stop-circle": ["media", "music"], "sun": ["brightness", "weather", "light"], "sunrise": ["weather", "time", "morning", "day"], "sunset": ["weather", "time", "evening", "night"], "tablet": ["device"], "tag": ["label"], "target": ["logo", "bullseye"], "terminal": ["code", "command line", "prompt"], "thermometer": ["temperature", "celsius", "fahrenheit", "weather"], "thumbs-down": ["dislike", "bad", "emotion"], "thumbs-up": ["like", "good", "emotion"], "toggle-left": ["on", "off", "switch"], "toggle-right": ["on", "off", "switch"], "tool": ["settings", "spanner"], "trash": ["garbage", "delete", "remove", "bin"], "trash-2": ["garbage", "delete", "remove", "bin"], "triangle": ["delta"], "truck": ["delivery", "van", "shipping", "transport", "lorry"], "tv": ["television", "stream"], "twitch": ["logo"], "twitter": ["logo", "social"], "type": ["text"], "umbrella": ["rain", "weather"], "unlock": ["security"], "user-check": ["followed", "subscribed"], "user-minus": ["delete", "remove", "unfollow", "unsubscribe"], "user-plus": ["new", "add", "create", "follow", "subscribe"], "user-x": ["delete", "remove", "unfollow", "unsubscribe", "unavailable"], "user": ["person", "account"], "users": ["group"], "video-off": ["camera", "movie", "film"], "video": ["camera", "movie", "film"], "voicemail": ["phone"], "volume": ["music", "sound", "mute"], "volume-1": ["music", "sound"], "volume-2": ["music", "sound"], "volume-x": ["music", "sound", "mute"], "watch": ["clock", "time"], "wifi-off": ["disabled"], "wifi": ["connection", "signal", "wireless"], "wind": ["weather", "air"], "x-circle": ["cancel", "close", "delete", "remove", "times", "clear"], "x-octagon": ["delete", "stop", "alert", "warning", "times", "clear"], "x-square": ["cancel", "close", "delete", "remove", "times", "clear"], "x": ["cancel", "close", "delete", "remove", "times", "clear"], "youtube": ["logo", "video", "play"], "zap-off": ["flash", "camera", "lightning"], "zap": ["flash", "camera", "lightning"], "zoom-in": ["magnifying glass"], "zoom-out": ["magnifying glass"] }; } ), /***/ @@ -15812,7 +15802,7 @@ __export(main_exports, { module.exports = __toCommonJS(main_exports); init_polyfill_buffer(); -// node_modules/.pnpm/isomorphic-git@1.24.2/node_modules/isomorphic-git/index.js +// node_modules/.pnpm/isomorphic-git@1.24.5/node_modules/isomorphic-git/index.js init_polyfill_buffer(); var import_async_lock = __toESM(require_async_lock(), 1); var import_sha1 = __toESM(require_sha1(), 1); @@ -19132,6 +19122,15 @@ async function rmRecursive(fs, filepath) { await fs.rmdir(filepath); } } +function isPromiseLike(obj) { + return isObject(obj) && isFunction(obj.then) && isFunction(obj.catch); +} +function isObject(obj) { + return obj && typeof obj === "object"; +} +function isFunction(obj) { + return typeof obj === "function"; +} function isPromiseFs(fs) { const test = (targetFs) => { try { @@ -19140,7 +19139,7 @@ function isPromiseFs(fs) { return e; } }; - return test(fs).constructor.name === "Promise"; + return isPromiseLike(test(fs)); } var commands = [ "readFile", @@ -21175,8 +21174,8 @@ function filterCapabilities(server, client) { } var pkg = { name: "isomorphic-git", - version: "1.24.2", - agent: "git/isomorphic-git@1.24.2" + version: "1.24.5", + agent: "git/isomorphic-git@1.24.5" }; var FIFO = class { constructor() { @@ -22076,15 +22075,19 @@ async function expandOidPacked({ } async function _expandOid({ fs, cache, gitdir, oid: short }) { const getExternalRefDelta = (oid) => _readObject({ fs, cache, gitdir, oid }); - const results1 = await expandOidLoose({ fs, gitdir, oid: short }); - const results2 = await expandOidPacked({ + const results = await expandOidLoose({ fs, gitdir, oid: short }); + const packedOids = await expandOidPacked({ fs, cache, gitdir, oid: short, getExternalRefDelta }); - const results = results1.concat(results2); + for (const packedOid of packedOids) { + if (results.indexOf(packedOid) === -1) { + results.push(packedOid); + } + } if (results.length === 1) { return results[0]; } @@ -24622,7 +24625,13 @@ async function _renameBranch({ }); await GitRefManager.writeRef({ fs, gitdir, ref: fullnewref, value }); await GitRefManager.deleteRef({ fs, gitdir, ref: fulloldref }); - if (checkout2) { + const fullCurrentBranchRef = await _currentBranch({ + fs, + gitdir, + fullname: true + }); + const isCurrentBranch = fullCurrentBranchRef === fulloldref; + if (checkout2 || isCurrentBranch) { await GitRefManager.writeSymbolicRef({ fs, gitdir, @@ -32171,8 +32180,8 @@ var ObsidianGitSettingsTab = class extends import_obsidian8.PluginSettingTab { }) ); if (!plugin.settings.setLastSaveToLastCommit) - new import_obsidian8.Setting(containerEl).setName(`Auto Backup after file change`).setDesc( - `If turned on, do auto ${commitOrBackup} every ${plugin.settings.autoSaveInterval} minutes after last change. This also prevents auto ${commitOrBackup} while editing a file. If turned off, it's independent from the last change.` + new import_obsidian8.Setting(containerEl).setName(`Auto Backup after stop editing any file`).setDesc( + `Requires the ${commitOrBackup} interval not to be 0. If turned on, do auto ${commitOrBackup} every ${plugin.settings.autoSaveInterval} minutes after stop editing any file. This also prevents auto ${commitOrBackup} while editing a file. If turned off, it's independent from the last change.` ).addToggle( (toggle) => toggle.setValue(plugin.settings.autoBackupAfterFileChange).onChange((value) => { plugin.settings.autoBackupAfterFileChange = value; @@ -34332,13 +34341,13 @@ var LocalStorageSettings = class { // src/ui/diff/diffView.ts init_polyfill_buffer(); -// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/diff2html.js +// node_modules/.pnpm/diff2html@3.4.41/node_modules/diff2html/lib-esm/diff2html.js init_polyfill_buffer(); -// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/diff-parser.js +// node_modules/.pnpm/diff2html@3.4.41/node_modules/diff2html/lib-esm/diff-parser.js init_polyfill_buffer(); -// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/types.js +// node_modules/.pnpm/diff2html@3.4.41/node_modules/diff2html/lib-esm/types.js init_polyfill_buffer(); var LineType; (function(LineType2) { @@ -34360,7 +34369,7 @@ var DiffStyleType = { CHAR: "char" }; -// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/utils.js +// node_modules/.pnpm/diff2html@3.4.41/node_modules/diff2html/lib-esm/utils.js init_polyfill_buffer(); var specials = [ "-", @@ -34388,8 +34397,8 @@ function unifyPath(path2) { return path2 ? path2.replace(/\\/g, "/") : path2; } function hashCode(text2) { - var i, chr, len; - var hash2 = 0; + let i, chr, len; + let hash2 = 0; for (i = 0, len = text2.length; i < len; i++) { chr = text2.charCodeAt(i); hash2 = (hash2 << 5) - hash2 + chr; @@ -34398,36 +34407,21 @@ function hashCode(text2) { return hash2; } -// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/diff-parser.js -var __spreadArray = function(to, from, pack) { - if (pack || arguments.length === 2) - for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) - ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); -}; +// node_modules/.pnpm/diff2html@3.4.41/node_modules/diff2html/lib-esm/diff-parser.js function getExtension(filename, language) { - var filenameParts = filename.split("."); + const filenameParts = filename.split("."); return filenameParts.length > 1 ? filenameParts[filenameParts.length - 1] : language; } function startsWithAny(str, prefixes) { - return prefixes.reduce(function(startsWith, prefix) { - return startsWith || str.startsWith(prefix); - }, false); + return prefixes.reduce((startsWith, prefix) => startsWith || str.startsWith(prefix), false); } var baseDiffFilenamePrefixes = ["a/", "b/", "i/", "w/", "c/", "o/"]; function getFilename(line, linePrefix, extraPrefix) { - var prefixes = extraPrefix !== void 0 ? __spreadArray(__spreadArray([], baseDiffFilenamePrefixes, true), [extraPrefix], false) : baseDiffFilenamePrefixes; - var FilenameRegExp = linePrefix ? new RegExp("^".concat(escapeForRegExp(linePrefix), ' "?(.+?)"?$')) : new RegExp('^"?(.+?)"?$'); - var _a2 = FilenameRegExp.exec(line) || [], _b = _a2[1], filename = _b === void 0 ? "" : _b; - var matchingPrefix = prefixes.find(function(p) { - return filename.indexOf(p) === 0; - }); - var fnameWithoutPrefix = matchingPrefix ? filename.slice(matchingPrefix.length) : filename; + const prefixes = extraPrefix !== void 0 ? [...baseDiffFilenamePrefixes, extraPrefix] : baseDiffFilenamePrefixes; + const FilenameRegExp = linePrefix ? new RegExp(`^${escapeForRegExp(linePrefix)} "?(.+?)"?$`) : new RegExp('^"?(.+?)"?$'); + const [, filename = ""] = FilenameRegExp.exec(line) || []; + const matchingPrefix = prefixes.find((p) => filename.indexOf(p) === 0); + const fnameWithoutPrefix = matchingPrefix ? filename.slice(matchingPrefix.length) : filename; return fnameWithoutPrefix.replace(/\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)? [+-]\d{4}.*$/, ""); } function getSrcFilename(line, srcPrefix) { @@ -34436,39 +34430,36 @@ function getSrcFilename(line, srcPrefix) { function getDstFilename(line, dstPrefix) { return getFilename(line, "+++", dstPrefix); } -function parse(diffInput, config) { - if (config === void 0) { - config = {}; - } - var files = []; - var currentFile = null; - var currentBlock = null; - var oldLine = null; - var oldLine2 = null; - var newLine = null; - var possibleOldName = null; - var possibleNewName = null; - var oldFileNameHeader = "--- "; - var newFileNameHeader = "+++ "; - var hunkHeaderPrefix = "@@"; - var oldMode = /^old mode (\d{6})/; - var newMode = /^new mode (\d{6})/; - var deletedFileMode = /^deleted file mode (\d{6})/; - var newFileMode = /^new file mode (\d{6})/; - var copyFrom = /^copy from "?(.+)"?/; - var copyTo = /^copy to "?(.+)"?/; - var renameFrom = /^rename from "?(.+)"?/; - var renameTo = /^rename to "?(.+)"?/; - var similarityIndex = /^similarity index (\d+)%/; - var dissimilarityIndex = /^dissimilarity index (\d+)%/; - var index2 = /^index ([\da-z]+)\.\.([\da-z]+)\s*(\d{6})?/; - var binaryFiles = /^Binary files (.*) and (.*) differ/; - var binaryDiff = /^GIT binary patch/; - var combinedIndex = /^index ([\da-z]+),([\da-z]+)\.\.([\da-z]+)/; - var combinedMode = /^mode (\d{6}),(\d{6})\.\.(\d{6})/; - var combinedNewFile = /^new file mode (\d{6})/; - var combinedDeletedFile = /^deleted file mode (\d{6}),(\d{6})/; - var diffLines2 = diffInput.replace(/\\ No newline at end of file/g, "").replace(/\r\n?/g, "\n").split("\n"); +function parse(diffInput, config = {}) { + const files = []; + let currentFile = null; + let currentBlock = null; + let oldLine = null; + let oldLine2 = null; + let newLine = null; + let possibleOldName = null; + let possibleNewName = null; + const oldFileNameHeader = "--- "; + const newFileNameHeader = "+++ "; + const hunkHeaderPrefix = "@@"; + const oldMode = /^old mode (\d{6})/; + const newMode = /^new mode (\d{6})/; + const deletedFileMode = /^deleted file mode (\d{6})/; + const newFileMode = /^new file mode (\d{6})/; + const copyFrom = /^copy from "?(.+)"?/; + const copyTo = /^copy to "?(.+)"?/; + const renameFrom = /^rename from "?(.+)"?/; + const renameTo = /^rename to "?(.+)"?/; + const similarityIndex = /^similarity index (\d+)%/; + const dissimilarityIndex = /^dissimilarity index (\d+)%/; + const index2 = /^index ([\da-z]+)\.\.([\da-z]+)\s*(\d{6})?/; + const binaryFiles = /^Binary files (.*) and (.*) differ/; + const binaryDiff = /^GIT binary patch/; + const combinedIndex = /^index ([\da-z]+),([\da-z]+)\.\.([\da-z]+)/; + const combinedMode = /^mode (\d{6}),(\d{6})\.\.(\d{6})/; + const combinedNewFile = /^new file mode (\d{6})/; + const combinedDeletedFile = /^deleted file mode (\d{6}),(\d{6})/; + const diffLines2 = diffInput.replace(/\\ No newline at end of file/g, "").replace(/\r\n?/g, "\n").split("\n"); function saveBlock() { if (currentBlock !== null && currentFile !== null) { currentFile.blocks.push(currentBlock); @@ -34502,7 +34493,7 @@ function parse(diffInput, config) { } function startBlock(line) { saveBlock(); - var values; + let values; if (currentFile !== null) { if (values = /^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@.*/.exec(line)) { currentFile.isCombined = false; @@ -34533,11 +34524,11 @@ function parse(diffInput, config) { function createLine(line) { if (currentFile === null || currentBlock === null || oldLine === null || newLine === null) return; - var currentLine = { + const currentLine = { content: line }; - var addedPrefixes = currentFile.isCombined ? ["+ ", " +", "++"] : ["+"]; - var deletedPrefixes = currentFile.isCombined ? ["- ", " -", "--"] : ["-"]; + const addedPrefixes = currentFile.isCombined ? ["+ ", " +", "++"] : ["+"]; + const deletedPrefixes = currentFile.isCombined ? ["- ", " -", "--"] : ["-"]; if (startsWithAny(line, addedPrefixes)) { currentFile.addedLines++; currentLine.type = LineType.INSERT; @@ -34556,7 +34547,7 @@ function parse(diffInput, config) { currentBlock.lines.push(currentLine); } function existHunkHeader(line, lineIdx) { - var idx = lineIdx; + let idx = lineIdx; while (idx < diffLines2.length - 3) { if (line.startsWith("diff")) { return false; @@ -34568,17 +34559,17 @@ function parse(diffInput, config) { } return false; } - diffLines2.forEach(function(line, lineIndex) { + diffLines2.forEach((line, lineIndex) => { if (!line || line.startsWith("*")) { return; } - var values; - var prevLine = diffLines2[lineIndex - 1]; - var nxtLine = diffLines2[lineIndex + 1]; - var afterNxtLine = diffLines2[lineIndex + 2]; + let values; + const prevLine = diffLines2[lineIndex - 1]; + const nxtLine = diffLines2[lineIndex + 1]; + const afterNxtLine = diffLines2[lineIndex + 2]; if (line.startsWith("diff --git") || line.startsWith("diff --combined")) { startFile(); - var gitDiffStart = /^diff --git "?([a-ciow]\/.+)"? "?([a-ciow]\/.+)"?/; + const gitDiffStart = /^diff --git "?([a-ciow]\/.+)"? "?([a-ciow]\/.+)"?/; if (values = gitDiffStart.exec(line)) { possibleOldName = getFilename(values[1], void 0, config.dstPrefix); possibleNewName = getFilename(values[2], void 0, config.srcPrefix); @@ -34591,7 +34582,7 @@ function parse(diffInput, config) { } if (line.startsWith("Binary files") && !(currentFile === null || currentFile === void 0 ? void 0 : currentFile.isGitDiff)) { startFile(); - var unixDiffBinaryStart = /^Binary files "?([a-ciow]\/.+)"? and "?([a-ciow]\/.+)"? differ/; + const unixDiffBinaryStart = /^Binary files "?([a-ciow]\/.+)"? and "?([a-ciow]\/.+)"? differ/; if (values = unixDiffBinaryStart.exec(line)) { possibleOldName = getFilename(values[1], void 0, config.dstPrefix); possibleNewName = getFilename(values[2], void 0, config.srcPrefix); @@ -34614,7 +34605,7 @@ function parse(diffInput, config) { currentFile.deletedLines = 0; currentFile.blocks = []; currentBlock = null; - var message = typeof config.diffTooBigMessage === "function" ? config.diffTooBigMessage(files.length) : "Diff too big to be displayed"; + const message = typeof config.diffTooBigMessage === "function" ? config.diffTooBigMessage(files.length) : "Diff too big to be displayed"; startBlock(message); return; } @@ -34638,7 +34629,7 @@ function parse(diffInput, config) { createLine(line); return; } - var doesNotExistHunkHeader = !existHunkHeader(line, lineIndex); + const doesNotExistHunkHeader = !existHunkHeader(line, lineIndex); if (currentFile === null) { throw new Error("Where is my file !!!"); } @@ -34707,13 +34698,13 @@ function parse(diffInput, config) { return files; } -// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/file-list-renderer.js +// node_modules/.pnpm/diff2html@3.4.41/node_modules/diff2html/lib-esm/file-list-renderer.js init_polyfill_buffer(); -// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/render-utils.js +// node_modules/.pnpm/diff2html@3.4.41/node_modules/diff2html/lib-esm/render-utils.js init_polyfill_buffer(); -// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/rematch.js +// node_modules/.pnpm/diff2html@3.4.41/node_modules/diff2html/lib-esm/rematch.js init_polyfill_buffer(); function levenshtein(a, b) { if (a.length === 0) { @@ -34722,12 +34713,12 @@ function levenshtein(a, b) { if (b.length === 0) { return a.length; } - var matrix = []; - var i; + const matrix = []; + let i; for (i = 0; i <= b.length; i++) { matrix[i] = [i]; } - var j; + let j; for (j = 0; j <= a.length; j++) { matrix[0][j] = j; } @@ -34743,24 +34734,21 @@ function levenshtein(a, b) { return matrix[b.length][a.length]; } function newDistanceFn(str) { - return function(x, y) { - var xValue = str(x).trim(); - var yValue = str(y).trim(); - var lev = levenshtein(xValue, yValue); + return (x, y) => { + const xValue = str(x).trim(); + const yValue = str(y).trim(); + const lev = levenshtein(xValue, yValue); return lev / (xValue.length + yValue.length); }; } function newMatcherFn(distance2) { - function findBestMatch(a, b, cache) { - if (cache === void 0) { - cache = /* @__PURE__ */ new Map(); - } - var bestMatchDist = Infinity; - var bestMatch; - for (var i = 0; i < a.length; ++i) { - for (var j = 0; j < b.length; ++j) { - var cacheKey = JSON.stringify([a[i], b[j]]); - var md = void 0; + function findBestMatch(a, b, cache = /* @__PURE__ */ new Map()) { + let bestMatchDist = Infinity; + let bestMatch; + for (let i = 0; i < a.length; ++i) { + for (let j = 0; j < b.length; ++j) { + const cacheKey = JSON.stringify([a[i], b[j]]); + let md; if (!(cache.has(cacheKey) && (md = cache.get(cacheKey)))) { md = distance2(a[i], b[j]); cache.set(cacheKey, md); @@ -34773,29 +34761,23 @@ function newMatcherFn(distance2) { } return bestMatch; } - function group(a, b, level, cache) { - if (level === void 0) { - level = 0; - } - if (cache === void 0) { - cache = /* @__PURE__ */ new Map(); - } - var bm = findBestMatch(a, b, cache); + function group(a, b, level = 0, cache = /* @__PURE__ */ new Map()) { + const bm = findBestMatch(a, b, cache); if (!bm || a.length + b.length < 3) { return [[a, b]]; } - var a1 = a.slice(0, bm.indexA); - var b1 = b.slice(0, bm.indexB); - var aMatch = [a[bm.indexA]]; - var bMatch = [b[bm.indexB]]; - var tailA = bm.indexA + 1; - var tailB = bm.indexB + 1; - var a2 = a.slice(tailA); - var b2 = b.slice(tailB); - var group1 = group(a1, b1, level + 1, cache); - var groupMatch = group(aMatch, bMatch, level + 1, cache); - var group2 = group(a2, b2, level + 1, cache); - var result = groupMatch; + const a1 = a.slice(0, bm.indexA); + const b1 = b.slice(0, bm.indexB); + const aMatch = [a[bm.indexA]]; + const bMatch = [b[bm.indexB]]; + const tailA = bm.indexA + 1; + const tailB = bm.indexB + 1; + const a2 = a.slice(tailA); + const b2 = b.slice(tailB); + const group1 = group(a1, b1, level + 1, cache); + const groupMatch = group(aMatch, bMatch, level + 1, cache); + const group2 = group(a2, b2, level + 1, cache); + let result = groupMatch; if (bm.indexA > 0 || bm.indexB > 0) { result = group1.concat(result); } @@ -34807,19 +34789,7 @@ function newMatcherFn(distance2) { return group; } -// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/render-utils.js -var __assign = function() { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) - if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; +// node_modules/.pnpm/diff2html@3.4.41/node_modules/diff2html/lib-esm/render-utils.js var CSSLineClass = { INSERTS: "d2h-ins", DELETES: "d2h-del", @@ -34835,9 +34805,7 @@ var defaultRenderConfig = { diffStyle: DiffStyleType.WORD }; var separator = "/"; -var distance = newDistanceFn(function(change) { - return change.value; -}); +var distance = newDistanceFn((change) => change.value); var matcher = newMatcherFn(distance); function isDevNullName(name) { return name.indexOf("dev/null") !== -1; @@ -34864,29 +34832,26 @@ function prefixLength(isCombined) { function escapeForHtml(str) { return str.slice(0).replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'").replace(/\//g, "/"); } -function deconstructLine(line, isCombined, escape) { - if (escape === void 0) { - escape = true; - } - var indexToSplit = prefixLength(isCombined); +function deconstructLine(line, isCombined, escape = true) { + const indexToSplit = prefixLength(isCombined); return { prefix: line.substring(0, indexToSplit), content: escape ? escapeForHtml(line.substring(indexToSplit)) : line.substring(indexToSplit) }; } function filenameDiff(file) { - var oldFilename = unifyPath(file.oldName); - var newFilename = unifyPath(file.newName); + const oldFilename = unifyPath(file.oldName); + const newFilename = unifyPath(file.newName); if (oldFilename !== newFilename && !isDevNullName(oldFilename) && !isDevNullName(newFilename)) { - var prefixPaths = []; - var suffixPaths = []; - var oldFilenameParts = oldFilename.split(separator); - var newFilenameParts = newFilename.split(separator); - var oldFilenamePartsSize = oldFilenameParts.length; - var newFilenamePartsSize = newFilenameParts.length; - var i = 0; - var j = oldFilenamePartsSize - 1; - var k = newFilenamePartsSize - 1; + const prefixPaths = []; + const suffixPaths = []; + const oldFilenameParts = oldFilename.split(separator); + const newFilenameParts = newFilename.split(separator); + const oldFilenamePartsSize = oldFilenameParts.length; + const newFilenamePartsSize = newFilenameParts.length; + let i = 0; + let j = oldFilenamePartsSize - 1; + let k = newFilenamePartsSize - 1; while (i < j && i < k) { if (oldFilenameParts[i] === newFilenameParts[i]) { prefixPaths.push(newFilenameParts[i]); @@ -34904,10 +34869,10 @@ function filenameDiff(file) { break; } } - var finalPrefix = prefixPaths.join(separator); - var finalSuffix = suffixPaths.join(separator); - var oldRemainingPath = oldFilenameParts.slice(i, j + 1).join(separator); - var newRemainingPath = newFilenameParts.slice(i, k + 1).join(separator); + const finalPrefix = prefixPaths.join(separator); + const finalSuffix = suffixPaths.join(separator); + const oldRemainingPath = oldFilenameParts.slice(i, j + 1).join(separator); + const newRemainingPath = newFilenameParts.slice(i, k + 1).join(separator); if (finalPrefix.length && finalSuffix.length) { return finalPrefix + separator + "{" + oldRemainingPath + " \u2192 " + newRemainingPath + "}" + separator + finalSuffix; } else if (finalPrefix.length) { @@ -34923,10 +34888,10 @@ function filenameDiff(file) { } } function getHtmlId(file) { - return "d2h-".concat(hashCode(filenameDiff(file)).toString().slice(-6)); + return `d2h-${hashCode(filenameDiff(file)).toString().slice(-6)}`; } function getFileIcon(file) { - var templateName = "file-changed"; + let templateName = "file-changed"; if (file.isRename) { templateName = "file-renamed"; } else if (file.isCopy) { @@ -34940,13 +34905,10 @@ function getFileIcon(file) { } return templateName; } -function diffHighlight(diffLine1, diffLine2, isCombined, config) { - if (config === void 0) { - config = {}; - } - var _a2 = __assign(__assign({}, defaultRenderConfig), config), matching = _a2.matching, maxLineLengthHighlight = _a2.maxLineLengthHighlight, matchWordsThreshold = _a2.matchWordsThreshold, diffStyle = _a2.diffStyle; - var line1 = deconstructLine(diffLine1, isCombined, false); - var line2 = deconstructLine(diffLine2, isCombined, false); +function diffHighlight(diffLine1, diffLine2, isCombined, config = {}) { + const { matching, maxLineLengthHighlight, matchWordsThreshold, diffStyle } = Object.assign(Object.assign({}, defaultRenderConfig), config); + const line1 = deconstructLine(diffLine1, isCombined, false); + const line2 = deconstructLine(diffLine2, isCombined, false); if (line1.content.length > maxLineLengthHighlight || line2.content.length > maxLineLengthHighlight) { return { oldLine: { @@ -34959,19 +34921,15 @@ function diffHighlight(diffLine1, diffLine2, isCombined, config) { } }; } - var diff2 = diffStyle === "char" ? diffChars(line1.content, line2.content) : diffWordsWithSpace(line1.content, line2.content); - var changedWords = []; + const diff2 = diffStyle === "char" ? diffChars(line1.content, line2.content) : diffWordsWithSpace(line1.content, line2.content); + const changedWords = []; if (diffStyle === "word" && matching === "words") { - var removed = diff2.filter(function(element2) { - return element2.removed; - }); - var added = diff2.filter(function(element2) { - return element2.added; - }); - var chunks = matcher(added, removed); - chunks.forEach(function(chunk) { + const removed = diff2.filter((element2) => element2.removed); + const added = diff2.filter((element2) => element2.added); + const chunks = matcher(added, removed); + chunks.forEach((chunk) => { if (chunk[0].length === 1 && chunk[1].length === 1) { - var dist = distance(chunk[0][0], chunk[1][0]); + const dist = distance(chunk[0][0], chunk[1][0]); if (dist < matchWordsThreshold) { changedWords.push(chunk[0][0]); changedWords.push(chunk[1][0]); @@ -34979,11 +34937,11 @@ function diffHighlight(diffLine1, diffLine2, isCombined, config) { } }); } - var highlightedLine = diff2.reduce(function(highlightedLine2, part) { - var elemType = part.added ? "ins" : part.removed ? "del" : null; - var addClass = changedWords.indexOf(part) > -1 ? ' class="d2h-change"' : ""; - var escapedValue = escapeForHtml(part.value); - return elemType !== null ? "".concat(highlightedLine2, "<").concat(elemType).concat(addClass, ">").concat(escapedValue, "") : "".concat(highlightedLine2).concat(escapedValue); + const highlightedLine = diff2.reduce((highlightedLine2, part) => { + const elemType = part.added ? "ins" : part.removed ? "del" : null; + const addClass = changedWords.indexOf(part) > -1 ? ' class="d2h-change"' : ""; + const escapedValue = escapeForHtml(part.value); + return elemType !== null ? `${highlightedLine2}<${elemType}${addClass}>${escapedValue}` : `${highlightedLine2}${escapedValue}`; }, ""); return { oldLine: { @@ -34997,75 +34955,57 @@ function diffHighlight(diffLine1, diffLine2, isCombined, config) { }; } -// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/file-list-renderer.js +// node_modules/.pnpm/diff2html@3.4.41/node_modules/diff2html/lib-esm/file-list-renderer.js var baseTemplatesPath = "file-summary"; var iconsBaseTemplatesPath = "icon"; function render(diffFiles, hoganUtils) { - var files = diffFiles.map(function(file) { - return hoganUtils.render(baseTemplatesPath, "line", { - fileHtmlId: getHtmlId(file), - oldName: file.oldName, - newName: file.newName, - fileName: filenameDiff(file), - deletedLines: "-" + file.deletedLines, - addedLines: "+" + file.addedLines - }, { - fileIcon: hoganUtils.template(iconsBaseTemplatesPath, getFileIcon(file)) - }); - }).join("\n"); + const files = diffFiles.map((file) => hoganUtils.render(baseTemplatesPath, "line", { + fileHtmlId: getHtmlId(file), + oldName: file.oldName, + newName: file.newName, + fileName: filenameDiff(file), + deletedLines: "-" + file.deletedLines, + addedLines: "+" + file.addedLines + }, { + fileIcon: hoganUtils.template(iconsBaseTemplatesPath, getFileIcon(file)) + })).join("\n"); return hoganUtils.render(baseTemplatesPath, "wrapper", { filesNumber: diffFiles.length, files }); } -// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/line-by-line-renderer.js +// node_modules/.pnpm/diff2html@3.4.41/node_modules/diff2html/lib-esm/line-by-line-renderer.js init_polyfill_buffer(); -var __assign2 = function() { - __assign2 = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) - if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign2.apply(this, arguments); -}; -var defaultLineByLineRendererConfig = __assign2(__assign2({}, defaultRenderConfig), { renderNothingWhenEmpty: false, matchingMaxComparisons: 2500, maxLineSizeInBlockForComparison: 200 }); +var defaultLineByLineRendererConfig = Object.assign(Object.assign({}, defaultRenderConfig), { renderNothingWhenEmpty: false, matchingMaxComparisons: 2500, maxLineSizeInBlockForComparison: 200 }); var genericTemplatesPath = "generic"; var baseTemplatesPath2 = "line-by-line"; var iconsBaseTemplatesPath2 = "icon"; var tagsBaseTemplatesPath = "tag"; -var LineByLineRenderer = function() { - function LineByLineRenderer2(hoganUtils, config) { - if (config === void 0) { - config = {}; - } +var LineByLineRenderer = class { + constructor(hoganUtils, config = {}) { this.hoganUtils = hoganUtils; - this.config = __assign2(__assign2({}, defaultLineByLineRendererConfig), config); + this.config = Object.assign(Object.assign({}, defaultLineByLineRendererConfig), config); } - LineByLineRenderer2.prototype.render = function(diffFiles) { - var _this = this; - var diffsHtml = diffFiles.map(function(file) { - var diffs; + render(diffFiles) { + const diffsHtml = diffFiles.map((file) => { + let diffs; if (file.blocks.length) { - diffs = _this.generateFileHtml(file); + diffs = this.generateFileHtml(file); } else { - diffs = _this.generateEmptyDiff(); + diffs = this.generateEmptyDiff(); } - return _this.makeFileDiffHtml(file, diffs); + return this.makeFileDiffHtml(file, diffs); }).join("\n"); return this.hoganUtils.render(genericTemplatesPath, "wrapper", { content: diffsHtml }); - }; - LineByLineRenderer2.prototype.makeFileDiffHtml = function(file, diffs) { + } + makeFileDiffHtml(file, diffs) { if (this.config.renderNothingWhenEmpty && Array.isArray(file.blocks) && file.blocks.length === 0) return ""; - var fileDiffTemplate = this.hoganUtils.template(baseTemplatesPath2, "file-diff"); - var filePathTemplate = this.hoganUtils.template(genericTemplatesPath, "file-path"); - var fileIconTemplate = this.hoganUtils.template(iconsBaseTemplatesPath2, "file"); - var fileTagTemplate = this.hoganUtils.template(tagsBaseTemplatesPath, getFileIcon(file)); + const fileDiffTemplate = this.hoganUtils.template(baseTemplatesPath2, "file-diff"); + const filePathTemplate = this.hoganUtils.template(genericTemplatesPath, "file-path"); + const fileIconTemplate = this.hoganUtils.template(iconsBaseTemplatesPath2, "file"); + const fileTagTemplate = this.hoganUtils.template(tagsBaseTemplatesPath, getFileIcon(file)); return fileDiffTemplate.render({ file, fileHtmlId: getHtmlId(file), @@ -35077,38 +35017,33 @@ var LineByLineRenderer = function() { fileTag: fileTagTemplate }) }); - }; - LineByLineRenderer2.prototype.generateEmptyDiff = function() { + } + generateEmptyDiff() { return this.hoganUtils.render(genericTemplatesPath, "empty-diff", { contentClass: "d2h-code-line", CSSLineClass }); - }; - LineByLineRenderer2.prototype.generateFileHtml = function(file) { - var _this = this; - var matcher2 = newMatcherFn(newDistanceFn(function(e) { - return deconstructLine(e.content, file.isCombined).content; - })); - return file.blocks.map(function(block) { - var lines = _this.hoganUtils.render(genericTemplatesPath, "block-header", { + } + generateFileHtml(file) { + const matcher2 = newMatcherFn(newDistanceFn((e) => deconstructLine(e.content, file.isCombined).content)); + return file.blocks.map((block) => { + let lines = this.hoganUtils.render(genericTemplatesPath, "block-header", { CSSLineClass, blockHeader: file.isTooBig ? block.header : escapeForHtml(block.header), lineClass: "d2h-code-linenumber", contentClass: "d2h-code-line" }); - _this.applyLineGroupping(block).forEach(function(_a2) { - var contextLines = _a2[0], oldLines = _a2[1], newLines = _a2[2]; + this.applyLineGroupping(block).forEach(([contextLines, oldLines, newLines]) => { if (oldLines.length && newLines.length && !contextLines.length) { - _this.applyRematchMatching(oldLines, newLines, matcher2).map(function(_a3) { - var oldLines2 = _a3[0], newLines2 = _a3[1]; - var _b2 = _this.processChangedLines(file, file.isCombined, oldLines2, newLines2), left2 = _b2.left, right2 = _b2.right; - lines += left2; - lines += right2; + this.applyRematchMatching(oldLines, newLines, matcher2).map(([oldLines2, newLines2]) => { + const { left, right } = this.processChangedLines(file, file.isCombined, oldLines2, newLines2); + lines += left; + lines += right; }); } else if (contextLines.length) { - contextLines.forEach(function(line) { - var _a3 = deconstructLine(line.content, file.isCombined), prefix = _a3.prefix, content = _a3.content; - lines += _this.generateSingleLineHtml(file, { + contextLines.forEach((line) => { + const { prefix, content } = deconstructLine(line.content, file.isCombined); + lines += this.generateSingleLineHtml(file, { type: CSSLineClass.CONTEXT, prefix, content, @@ -35117,7 +35052,7 @@ var LineByLineRenderer = function() { }); }); } else if (oldLines.length || newLines.length) { - var _b = _this.processChangedLines(file, file.isCombined, oldLines, newLines), left = _b.left, right = _b.right; + const { left, right } = this.processChangedLines(file, file.isCombined, oldLines, newLines); lines += left; lines += right; } else { @@ -35126,13 +35061,13 @@ var LineByLineRenderer = function() { }); return lines; }).join("\n"); - }; - LineByLineRenderer2.prototype.applyLineGroupping = function(block) { - var blockLinesGroups = []; - var oldLines = []; - var newLines = []; - for (var i = 0; i < block.lines.length; i++) { - var diffLine = block.lines[i]; + } + applyLineGroupping(block) { + const blockLinesGroups = []; + let oldLines = []; + let newLines = []; + for (let i = 0; i < block.lines.length; i++) { + const diffLine = block.lines[i]; if (diffLine.type !== LineType.INSERT && newLines.length || diffLine.type === LineType.CONTEXT && oldLines.length > 0) { blockLinesGroups.push([[], oldLines, newLines]); oldLines = []; @@ -35154,51 +35089,49 @@ var LineByLineRenderer = function() { newLines = []; } return blockLinesGroups; - }; - LineByLineRenderer2.prototype.applyRematchMatching = function(oldLines, newLines, matcher2) { - var comparisons = oldLines.length * newLines.length; - var maxLineSizeInBlock = Math.max.apply(null, [0].concat(oldLines.concat(newLines).map(function(elem) { - return elem.content.length; - }))); - var doMatching = comparisons < this.config.matchingMaxComparisons && maxLineSizeInBlock < this.config.maxLineSizeInBlockForComparison && (this.config.matching === "lines" || this.config.matching === "words"); + } + applyRematchMatching(oldLines, newLines, matcher2) { + const comparisons = oldLines.length * newLines.length; + const maxLineSizeInBlock = Math.max.apply(null, [0].concat(oldLines.concat(newLines).map((elem) => elem.content.length))); + const doMatching = comparisons < this.config.matchingMaxComparisons && maxLineSizeInBlock < this.config.maxLineSizeInBlockForComparison && (this.config.matching === "lines" || this.config.matching === "words"); return doMatching ? matcher2(oldLines, newLines) : [[oldLines, newLines]]; - }; - LineByLineRenderer2.prototype.processChangedLines = function(file, isCombined, oldLines, newLines) { - var fileHtml = { + } + processChangedLines(file, isCombined, oldLines, newLines) { + const fileHtml = { right: "", left: "" }; - var maxLinesNumber = Math.max(oldLines.length, newLines.length); - for (var i = 0; i < maxLinesNumber; i++) { - var oldLine = oldLines[i]; - var newLine = newLines[i]; - var diff2 = oldLine !== void 0 && newLine !== void 0 ? diffHighlight(oldLine.content, newLine.content, isCombined, this.config) : void 0; - var preparedOldLine = oldLine !== void 0 && oldLine.oldNumber !== void 0 ? __assign2(__assign2({}, diff2 !== void 0 ? { + const maxLinesNumber = Math.max(oldLines.length, newLines.length); + for (let i = 0; i < maxLinesNumber; i++) { + const oldLine = oldLines[i]; + const newLine = newLines[i]; + const diff2 = oldLine !== void 0 && newLine !== void 0 ? diffHighlight(oldLine.content, newLine.content, isCombined, this.config) : void 0; + const preparedOldLine = oldLine !== void 0 && oldLine.oldNumber !== void 0 ? Object.assign(Object.assign({}, diff2 !== void 0 ? { prefix: diff2.oldLine.prefix, content: diff2.oldLine.content, type: CSSLineClass.DELETE_CHANGES - } : __assign2(__assign2({}, deconstructLine(oldLine.content, isCombined)), { type: toCSSClass(oldLine.type) })), { oldNumber: oldLine.oldNumber, newNumber: oldLine.newNumber }) : void 0; - var preparedNewLine = newLine !== void 0 && newLine.newNumber !== void 0 ? __assign2(__assign2({}, diff2 !== void 0 ? { + } : Object.assign(Object.assign({}, deconstructLine(oldLine.content, isCombined)), { type: toCSSClass(oldLine.type) })), { oldNumber: oldLine.oldNumber, newNumber: oldLine.newNumber }) : void 0; + const preparedNewLine = newLine !== void 0 && newLine.newNumber !== void 0 ? Object.assign(Object.assign({}, diff2 !== void 0 ? { prefix: diff2.newLine.prefix, content: diff2.newLine.content, type: CSSLineClass.INSERT_CHANGES - } : __assign2(__assign2({}, deconstructLine(newLine.content, isCombined)), { type: toCSSClass(newLine.type) })), { oldNumber: newLine.oldNumber, newNumber: newLine.newNumber }) : void 0; - var _a2 = this.generateLineHtml(file, preparedOldLine, preparedNewLine), left = _a2.left, right = _a2.right; + } : Object.assign(Object.assign({}, deconstructLine(newLine.content, isCombined)), { type: toCSSClass(newLine.type) })), { oldNumber: newLine.oldNumber, newNumber: newLine.newNumber }) : void 0; + const { left, right } = this.generateLineHtml(file, preparedOldLine, preparedNewLine); fileHtml.left += left; fileHtml.right += right; } return fileHtml; - }; - LineByLineRenderer2.prototype.generateLineHtml = function(file, oldLine, newLine) { + } + generateLineHtml(file, oldLine, newLine) { return { left: this.generateSingleLineHtml(file, oldLine), right: this.generateSingleLineHtml(file, newLine) }; - }; - LineByLineRenderer2.prototype.generateSingleLineHtml = function(file, line) { + } + generateSingleLineHtml(file, line) { if (line === void 0) return ""; - var lineNumberHtml = this.hoganUtils.render(baseTemplatesPath2, "numbers", { + const lineNumberHtml = this.hoganUtils.render(baseTemplatesPath2, "numbers", { oldNumber: line.oldNumber || "", newNumber: line.newNumber || "" }); @@ -35212,58 +35145,40 @@ var LineByLineRenderer = function() { line, file }); - }; - return LineByLineRenderer2; -}(); -var line_by_line_renderer_default = LineByLineRenderer; - -// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/side-by-side-renderer.js -init_polyfill_buffer(); -var __assign3 = function() { - __assign3 = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) - if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign3.apply(this, arguments); + } }; -var defaultSideBySideRendererConfig = __assign3(__assign3({}, defaultRenderConfig), { renderNothingWhenEmpty: false, matchingMaxComparisons: 2500, maxLineSizeInBlockForComparison: 200 }); + +// node_modules/.pnpm/diff2html@3.4.41/node_modules/diff2html/lib-esm/side-by-side-renderer.js +init_polyfill_buffer(); +var defaultSideBySideRendererConfig = Object.assign(Object.assign({}, defaultRenderConfig), { renderNothingWhenEmpty: false, matchingMaxComparisons: 2500, maxLineSizeInBlockForComparison: 200 }); var genericTemplatesPath2 = "generic"; var baseTemplatesPath3 = "side-by-side"; var iconsBaseTemplatesPath3 = "icon"; var tagsBaseTemplatesPath2 = "tag"; -var SideBySideRenderer = function() { - function SideBySideRenderer2(hoganUtils, config) { - if (config === void 0) { - config = {}; - } +var SideBySideRenderer = class { + constructor(hoganUtils, config = {}) { this.hoganUtils = hoganUtils; - this.config = __assign3(__assign3({}, defaultSideBySideRendererConfig), config); + this.config = Object.assign(Object.assign({}, defaultSideBySideRendererConfig), config); } - SideBySideRenderer2.prototype.render = function(diffFiles) { - var _this = this; - var diffsHtml = diffFiles.map(function(file) { - var diffs; + render(diffFiles) { + const diffsHtml = diffFiles.map((file) => { + let diffs; if (file.blocks.length) { - diffs = _this.generateFileHtml(file); + diffs = this.generateFileHtml(file); } else { - diffs = _this.generateEmptyDiff(); + diffs = this.generateEmptyDiff(); } - return _this.makeFileDiffHtml(file, diffs); + return this.makeFileDiffHtml(file, diffs); }).join("\n"); return this.hoganUtils.render(genericTemplatesPath2, "wrapper", { content: diffsHtml }); - }; - SideBySideRenderer2.prototype.makeFileDiffHtml = function(file, diffs) { + } + makeFileDiffHtml(file, diffs) { if (this.config.renderNothingWhenEmpty && Array.isArray(file.blocks) && file.blocks.length === 0) return ""; - var fileDiffTemplate = this.hoganUtils.template(baseTemplatesPath3, "file-diff"); - var filePathTemplate = this.hoganUtils.template(genericTemplatesPath2, "file-path"); - var fileIconTemplate = this.hoganUtils.template(iconsBaseTemplatesPath3, "file"); - var fileTagTemplate = this.hoganUtils.template(tagsBaseTemplatesPath2, getFileIcon(file)); + const fileDiffTemplate = this.hoganUtils.template(baseTemplatesPath3, "file-diff"); + const filePathTemplate = this.hoganUtils.template(genericTemplatesPath2, "file-path"); + const fileIconTemplate = this.hoganUtils.template(iconsBaseTemplatesPath3, "file"); + const fileTagTemplate = this.hoganUtils.template(tagsBaseTemplatesPath2, getFileIcon(file)); return fileDiffTemplate.render({ file, fileHtmlId: getHtmlId(file), @@ -35275,8 +35190,8 @@ var SideBySideRenderer = function() { fileTag: fileTagTemplate }) }); - }; - SideBySideRenderer2.prototype.generateEmptyDiff = function() { + } + generateEmptyDiff() { return { right: "", left: this.hoganUtils.render(genericTemplatesPath2, "empty-diff", { @@ -35284,30 +35199,25 @@ var SideBySideRenderer = function() { CSSLineClass }) }; - }; - SideBySideRenderer2.prototype.generateFileHtml = function(file) { - var _this = this; - var matcher2 = newMatcherFn(newDistanceFn(function(e) { - return deconstructLine(e.content, file.isCombined).content; - })); - return file.blocks.map(function(block) { - var fileHtml = { - left: _this.makeHeaderHtml(block.header, file), - right: _this.makeHeaderHtml("") + } + generateFileHtml(file) { + const matcher2 = newMatcherFn(newDistanceFn((e) => deconstructLine(e.content, file.isCombined).content)); + return file.blocks.map((block) => { + const fileHtml = { + left: this.makeHeaderHtml(block.header, file), + right: this.makeHeaderHtml("") }; - _this.applyLineGroupping(block).forEach(function(_a2) { - var contextLines = _a2[0], oldLines = _a2[1], newLines = _a2[2]; + this.applyLineGroupping(block).forEach(([contextLines, oldLines, newLines]) => { if (oldLines.length && newLines.length && !contextLines.length) { - _this.applyRematchMatching(oldLines, newLines, matcher2).map(function(_a3) { - var oldLines2 = _a3[0], newLines2 = _a3[1]; - var _b2 = _this.processChangedLines(file.isCombined, oldLines2, newLines2), left2 = _b2.left, right2 = _b2.right; - fileHtml.left += left2; - fileHtml.right += right2; + this.applyRematchMatching(oldLines, newLines, matcher2).map(([oldLines2, newLines2]) => { + const { left, right } = this.processChangedLines(file.isCombined, oldLines2, newLines2); + fileHtml.left += left; + fileHtml.right += right; }); } else if (contextLines.length) { - contextLines.forEach(function(line) { - var _a3 = deconstructLine(line.content, file.isCombined), prefix = _a3.prefix, content = _a3.content; - var _b2 = _this.generateLineHtml({ + contextLines.forEach((line) => { + const { prefix, content } = deconstructLine(line.content, file.isCombined); + const { left, right } = this.generateLineHtml({ type: CSSLineClass.CONTEXT, prefix, content, @@ -35317,12 +35227,12 @@ var SideBySideRenderer = function() { prefix, content, number: line.newNumber - }), left2 = _b2.left, right2 = _b2.right; - fileHtml.left += left2; - fileHtml.right += right2; + }); + fileHtml.left += left; + fileHtml.right += right; }); } else if (oldLines.length || newLines.length) { - var _b = _this.processChangedLines(file.isCombined, oldLines, newLines), left = _b.left, right = _b.right; + const { left, right } = this.processChangedLines(file.isCombined, oldLines, newLines); fileHtml.left += left; fileHtml.right += right; } else { @@ -35330,16 +35240,16 @@ var SideBySideRenderer = function() { } }); return fileHtml; - }).reduce(function(accomulated, html2) { + }).reduce((accomulated, html2) => { return { left: accomulated.left + html2.left, right: accomulated.right + html2.right }; }, { left: "", right: "" }); - }; - SideBySideRenderer2.prototype.applyLineGroupping = function(block) { - var blockLinesGroups = []; - var oldLines = []; - var newLines = []; - for (var i = 0; i < block.lines.length; i++) { - var diffLine = block.lines[i]; + } + applyLineGroupping(block) { + const blockLinesGroups = []; + let oldLines = []; + let newLines = []; + for (let i = 0; i < block.lines.length; i++) { + const diffLine = block.lines[i]; if (diffLine.type !== LineType.INSERT && newLines.length || diffLine.type === LineType.CONTEXT && oldLines.length > 0) { blockLinesGroups.push([[], oldLines, newLines]); oldLines = []; @@ -35361,76 +35271,72 @@ var SideBySideRenderer = function() { newLines = []; } return blockLinesGroups; - }; - SideBySideRenderer2.prototype.applyRematchMatching = function(oldLines, newLines, matcher2) { - var comparisons = oldLines.length * newLines.length; - var maxLineSizeInBlock = Math.max.apply(null, [0].concat(oldLines.concat(newLines).map(function(elem) { - return elem.content.length; - }))); - var doMatching = comparisons < this.config.matchingMaxComparisons && maxLineSizeInBlock < this.config.maxLineSizeInBlockForComparison && (this.config.matching === "lines" || this.config.matching === "words"); + } + applyRematchMatching(oldLines, newLines, matcher2) { + const comparisons = oldLines.length * newLines.length; + const maxLineSizeInBlock = Math.max.apply(null, [0].concat(oldLines.concat(newLines).map((elem) => elem.content.length))); + const doMatching = comparisons < this.config.matchingMaxComparisons && maxLineSizeInBlock < this.config.maxLineSizeInBlockForComparison && (this.config.matching === "lines" || this.config.matching === "words"); return doMatching ? matcher2(oldLines, newLines) : [[oldLines, newLines]]; - }; - SideBySideRenderer2.prototype.makeHeaderHtml = function(blockHeader, file) { + } + makeHeaderHtml(blockHeader, file) { return this.hoganUtils.render(genericTemplatesPath2, "block-header", { CSSLineClass, blockHeader: (file === null || file === void 0 ? void 0 : file.isTooBig) ? blockHeader : escapeForHtml(blockHeader), lineClass: "d2h-code-side-linenumber", contentClass: "d2h-code-side-line" }); - }; - SideBySideRenderer2.prototype.processChangedLines = function(isCombined, oldLines, newLines) { - var fileHtml = { + } + processChangedLines(isCombined, oldLines, newLines) { + const fileHtml = { right: "", left: "" }; - var maxLinesNumber = Math.max(oldLines.length, newLines.length); - for (var i = 0; i < maxLinesNumber; i++) { - var oldLine = oldLines[i]; - var newLine = newLines[i]; - var diff2 = oldLine !== void 0 && newLine !== void 0 ? diffHighlight(oldLine.content, newLine.content, isCombined, this.config) : void 0; - var preparedOldLine = oldLine !== void 0 && oldLine.oldNumber !== void 0 ? __assign3(__assign3({}, diff2 !== void 0 ? { + const maxLinesNumber = Math.max(oldLines.length, newLines.length); + for (let i = 0; i < maxLinesNumber; i++) { + const oldLine = oldLines[i]; + const newLine = newLines[i]; + const diff2 = oldLine !== void 0 && newLine !== void 0 ? diffHighlight(oldLine.content, newLine.content, isCombined, this.config) : void 0; + const preparedOldLine = oldLine !== void 0 && oldLine.oldNumber !== void 0 ? Object.assign(Object.assign({}, diff2 !== void 0 ? { prefix: diff2.oldLine.prefix, content: diff2.oldLine.content, type: CSSLineClass.DELETE_CHANGES - } : __assign3(__assign3({}, deconstructLine(oldLine.content, isCombined)), { type: toCSSClass(oldLine.type) })), { number: oldLine.oldNumber }) : void 0; - var preparedNewLine = newLine !== void 0 && newLine.newNumber !== void 0 ? __assign3(__assign3({}, diff2 !== void 0 ? { + } : Object.assign(Object.assign({}, deconstructLine(oldLine.content, isCombined)), { type: toCSSClass(oldLine.type) })), { number: oldLine.oldNumber }) : void 0; + const preparedNewLine = newLine !== void 0 && newLine.newNumber !== void 0 ? Object.assign(Object.assign({}, diff2 !== void 0 ? { prefix: diff2.newLine.prefix, content: diff2.newLine.content, type: CSSLineClass.INSERT_CHANGES - } : __assign3(__assign3({}, deconstructLine(newLine.content, isCombined)), { type: toCSSClass(newLine.type) })), { number: newLine.newNumber }) : void 0; - var _a2 = this.generateLineHtml(preparedOldLine, preparedNewLine), left = _a2.left, right = _a2.right; + } : Object.assign(Object.assign({}, deconstructLine(newLine.content, isCombined)), { type: toCSSClass(newLine.type) })), { number: newLine.newNumber }) : void 0; + const { left, right } = this.generateLineHtml(preparedOldLine, preparedNewLine); fileHtml.left += left; fileHtml.right += right; } return fileHtml; - }; - SideBySideRenderer2.prototype.generateLineHtml = function(oldLine, newLine) { + } + generateLineHtml(oldLine, newLine) { return { left: this.generateSingleHtml(oldLine), right: this.generateSingleHtml(newLine) }; - }; - SideBySideRenderer2.prototype.generateSingleHtml = function(line) { - var lineClass = "d2h-code-side-linenumber"; - var contentClass = "d2h-code-side-line"; + } + generateSingleHtml(line) { + const lineClass = "d2h-code-side-linenumber"; + const contentClass = "d2h-code-side-line"; return this.hoganUtils.render(genericTemplatesPath2, "line", { - type: (line === null || line === void 0 ? void 0 : line.type) || "".concat(CSSLineClass.CONTEXT, " d2h-emptyplaceholder"), - lineClass: line !== void 0 ? lineClass : "".concat(lineClass, " d2h-code-side-emptyplaceholder"), - contentClass: line !== void 0 ? contentClass : "".concat(contentClass, " d2h-code-side-emptyplaceholder"), + type: (line === null || line === void 0 ? void 0 : line.type) || `${CSSLineClass.CONTEXT} d2h-emptyplaceholder`, + lineClass: line !== void 0 ? lineClass : `${lineClass} d2h-code-side-emptyplaceholder`, + contentClass: line !== void 0 ? contentClass : `${contentClass} d2h-code-side-emptyplaceholder`, prefix: (line === null || line === void 0 ? void 0 : line.prefix) === " " ? " " : line === null || line === void 0 ? void 0 : line.prefix, content: line === null || line === void 0 ? void 0 : line.content, lineNumber: line === null || line === void 0 ? void 0 : line.number }); - }; - return SideBySideRenderer2; -}(); -var side_by_side_renderer_default = SideBySideRenderer; + } +}; -// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/hoganjs-utils.js +// node_modules/.pnpm/diff2html@3.4.41/node_modules/diff2html/lib-esm/hoganjs-utils.js init_polyfill_buffer(); var Hogan3 = __toESM(require_hogan()); -// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/diff2html-templates.js +// node_modules/.pnpm/diff2html@3.4.41/node_modules/diff2html/lib-esm/diff2html-templates.js init_polyfill_buffer(); var Hogan2 = __toESM(require_hogan()); var defaultTemplates = {}; @@ -35835,75 +35741,43 @@ defaultTemplates["tag-file-renamed"] = new Hogan2.Template({ code: function(c, p return t.fl(); }, partials: {}, subs: {} }); -// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/hoganjs-utils.js -var __assign4 = function() { - __assign4 = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) - if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign4.apply(this, arguments); -}; -var HoganJsUtils = function() { - function HoganJsUtils2(_a2) { - var _b = _a2.compiledTemplates, compiledTemplates = _b === void 0 ? {} : _b, _c = _a2.rawTemplates, rawTemplates = _c === void 0 ? {} : _c; - var compiledRawTemplates = Object.entries(rawTemplates).reduce(function(previousTemplates, _a3) { - var _b2; - var name = _a3[0], templateString = _a3[1]; - var compiledTemplate = Hogan3.compile(templateString, { asString: false }); - return __assign4(__assign4({}, previousTemplates), (_b2 = {}, _b2[name] = compiledTemplate, _b2)); +// node_modules/.pnpm/diff2html@3.4.41/node_modules/diff2html/lib-esm/hoganjs-utils.js +var HoganJsUtils = class { + constructor({ compiledTemplates = {}, rawTemplates = {} }) { + const compiledRawTemplates = Object.entries(rawTemplates).reduce((previousTemplates, [name, templateString]) => { + const compiledTemplate = Hogan3.compile(templateString, { asString: false }); + return Object.assign(Object.assign({}, previousTemplates), { [name]: compiledTemplate }); }, {}); - this.preCompiledTemplates = __assign4(__assign4(__assign4({}, defaultTemplates), compiledTemplates), compiledRawTemplates); + this.preCompiledTemplates = Object.assign(Object.assign(Object.assign({}, defaultTemplates), compiledTemplates), compiledRawTemplates); } - HoganJsUtils2.compile = function(templateString) { + static compile(templateString) { return Hogan3.compile(templateString, { asString: false }); - }; - HoganJsUtils2.prototype.render = function(namespace, view, params, partials, indent2) { - var templateKey = this.templateKey(namespace, view); + } + render(namespace, view, params, partials, indent2) { + const templateKey = this.templateKey(namespace, view); try { - var template = this.preCompiledTemplates[templateKey]; + const template = this.preCompiledTemplates[templateKey]; return template.render(params, partials, indent2); } catch (e) { - throw new Error("Could not find template to render '".concat(templateKey, "'")); + throw new Error(`Could not find template to render '${templateKey}'`); } - }; - HoganJsUtils2.prototype.template = function(namespace, view) { - return this.preCompiledTemplates[this.templateKey(namespace, view)]; - }; - HoganJsUtils2.prototype.templateKey = function(namespace, view) { - return "".concat(namespace, "-").concat(view); - }; - return HoganJsUtils2; -}(); -var hoganjs_utils_default = HoganJsUtils; - -// node_modules/.pnpm/diff2html@3.4.35/node_modules/diff2html/lib-esm/diff2html.js -var __assign5 = function() { - __assign5 = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) - if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign5.apply(this, arguments); -}; -var defaultDiff2HtmlConfig = __assign5(__assign5(__assign5({}, defaultLineByLineRendererConfig), defaultSideBySideRendererConfig), { outputFormat: OutputFormatType.LINE_BY_LINE, drawFileList: true }); -function html(diffInput, configuration) { - if (configuration === void 0) { - configuration = {}; } - var config = __assign5(__assign5({}, defaultDiff2HtmlConfig), configuration); - var diffJson = typeof diffInput === "string" ? parse(diffInput, config) : diffInput; - var hoganUtils = new hoganjs_utils_default(config); - var fileList = config.drawFileList ? render(diffJson, hoganUtils) : ""; - var diffOutput = config.outputFormat === "side-by-side" ? new side_by_side_renderer_default(hoganUtils, config).render(diffJson) : new line_by_line_renderer_default(hoganUtils, config).render(diffJson); + template(namespace, view) { + return this.preCompiledTemplates[this.templateKey(namespace, view)]; + } + templateKey(namespace, view) { + return `${namespace}-${view}`; + } +}; + +// node_modules/.pnpm/diff2html@3.4.41/node_modules/diff2html/lib-esm/diff2html.js +var defaultDiff2HtmlConfig = Object.assign(Object.assign(Object.assign({}, defaultLineByLineRendererConfig), defaultSideBySideRendererConfig), { outputFormat: OutputFormatType.LINE_BY_LINE, drawFileList: true }); +function html(diffInput, configuration = {}) { + const config = Object.assign(Object.assign({}, defaultDiff2HtmlConfig), configuration); + const diffJson = typeof diffInput === "string" ? parse(diffInput, config) : diffInput; + const hoganUtils = new HoganJsUtils(config); + const fileList = config.drawFileList ? render(diffJson, hoganUtils) : ""; + const diffOutput = config.outputFormat === "side-by-side" ? new SideBySideRenderer(hoganUtils, config).render(diffJson) : new LineByLineRenderer(hoganUtils, config).render(diffJson); return fileList + diffOutput; } @@ -35939,8 +35813,10 @@ var DiffView = class extends import_obsidian17.ItemView { } async setState(state, result) { this.state = state; + if (import_obsidian17.Platform.isMobile) { + this.leaf.view.titleEl.textContent = this.getDisplayText(); + } await this.refresh(); - return; } getState() { return this.state; @@ -36003,13 +35879,13 @@ var import_obsidian20 = require("obsidian"); // src/ui/history/historyView.svelte init_polyfill_buffer(); -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/index.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/index.js init_polyfill_buffer(); -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/animations.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/animations.js init_polyfill_buffer(); -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/utils.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/utils.js init_polyfill_buffer(); function noop() { } @@ -36033,13 +35909,13 @@ function is_empty(obj) { return Object.keys(obj).length === 0; } -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/environment.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/environment.js init_polyfill_buffer(); var is_client = typeof window !== "undefined"; var now = is_client ? () => window.performance.now() : () => Date.now(); var raf = is_client ? (cb) => requestAnimationFrame(cb) : noop; -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/loop.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/loop.js init_polyfill_buffer(); var tasks = /* @__PURE__ */ new Set(); function run_tasks(now2) { @@ -36066,23 +35942,23 @@ function loop(callback) { }; } -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/style_manager.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/style_manager.js init_polyfill_buffer(); -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/dom.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/dom.js init_polyfill_buffer(); -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/ResizeObserverSingleton.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/ResizeObserverSingleton.js init_polyfill_buffer(); -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/globals.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/globals.js init_polyfill_buffer(); var globals = typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : ( // @ts-ignore Node typings have this global ); -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/ResizeObserverSingleton.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/ResizeObserverSingleton.js var ResizeObserverSingleton = class _ResizeObserverSingleton { /** @param {ResizeObserverOptions} options */ constructor(options) { @@ -36130,7 +36006,7 @@ var ResizeObserverSingleton = class _ResizeObserverSingleton { }; ResizeObserverSingleton.entries = "WeakMap" in globals ? /* @__PURE__ */ new WeakMap() : void 0; -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/dom.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/dom.js var is_hydrating = false; function start_hydrating() { is_hydrating = true; @@ -36256,7 +36132,7 @@ function get_custom_elements_slots(element2) { return result; } -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/style_manager.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/style_manager.js var managed_styles = /* @__PURE__ */ new Map(); var active = 0; function hash(str) { @@ -36320,16 +36196,16 @@ function clear_rules() { }); } -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/await_block.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/await_block.js init_polyfill_buffer(); -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/transitions.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/transitions.js init_polyfill_buffer(); -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/scheduler.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/scheduler.js init_polyfill_buffer(); -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/lifecycle.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/lifecycle.js init_polyfill_buffer(); var current_component; function set_current_component(component) { @@ -36350,7 +36226,7 @@ function bubble(component, event) { } } -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/scheduler.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/scheduler.js var dirty_components = []; var binding_callbacks = []; var render_callbacks = []; @@ -36425,7 +36301,7 @@ function flush_render_callbacks(fns) { render_callbacks = filtered; } -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/transitions.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/transitions.js var promise; function wait() { if (!promise) { @@ -36606,19 +36482,19 @@ function create_bidirectional_transition(node, fn, params, intro) { }; } -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/each.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/each.js init_polyfill_buffer(); function ensure_array_like(array_like_or_iterator) { return (array_like_or_iterator == null ? void 0 : array_like_or_iterator.length) !== void 0 ? array_like_or_iterator : Array.from(array_like_or_iterator); } -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/spread.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/spread.js init_polyfill_buffer(); -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/ssr.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/ssr.js init_polyfill_buffer(); -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/shared/boolean_attributes.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/shared/boolean_attributes.js init_polyfill_buffer(); var _boolean_attributes = ( /** @type {const} */ @@ -36652,10 +36528,10 @@ var _boolean_attributes = ( ); var boolean_attributes = /* @__PURE__ */ new Set([..._boolean_attributes]); -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/shared/utils/names.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/shared/utils/names.js init_polyfill_buffer(); -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/Component.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/Component.js init_polyfill_buffer(); function create_component(block) { block && block.c(); @@ -36754,54 +36630,60 @@ if (typeof HTMLElement === "function") { SvelteElement = class extends HTMLElement { constructor($$componentCtor, $$slots, use_shadow_dom) { super(); - __publicField(this, "$$componentCtor"); - __publicField(this, "$$slots"); - __publicField(this, "$$component"); - __publicField(this, "$$connected", false); - __publicField(this, "$$data", {}); - __publicField(this, "$$reflecting", false); - /** @type {Record} */ - __publicField(this, "$$props_definition", {}); - /** @type {Record} */ - __publicField(this, "$$listeners", {}); - /** @type {Map} */ - __publicField(this, "$$listener_unsubscribe_fns", /* @__PURE__ */ new Map()); - this.$$componentCtor = $$componentCtor; - this.$$slots = $$slots; + /** The Svelte component constructor */ + __publicField(this, "$$ctor"); + /** Slots */ + __publicField(this, "$$s"); + /** The Svelte component instance */ + __publicField(this, "$$c"); + /** Whether or not the custom element is connected */ + __publicField(this, "$$cn", false); + /** Component props data */ + __publicField(this, "$$d", {}); + /** `true` if currently in the process of reflecting component props back to attributes */ + __publicField(this, "$$r", false); + /** @type {Record} Props definition (name, reflected, type etc) */ + __publicField(this, "$$p_d", {}); + /** @type {Record} Event listeners */ + __publicField(this, "$$l", {}); + /** @type {Map} Event listener unsubscribe functions */ + __publicField(this, "$$l_u", /* @__PURE__ */ new Map()); + this.$$ctor = $$componentCtor; + this.$$s = $$slots; if (use_shadow_dom) { this.attachShadow({ mode: "open" }); } } addEventListener(type, listener, options) { - this.$$listeners[type] = this.$$listeners[type] || []; - this.$$listeners[type].push(listener); - if (this.$$component) { - const unsub = this.$$component.$on(type, listener); - this.$$listener_unsubscribe_fns.set(listener, unsub); + this.$$l[type] = this.$$l[type] || []; + this.$$l[type].push(listener); + if (this.$$c) { + const unsub = this.$$c.$on(type, listener); + this.$$l_u.set(listener, unsub); } super.addEventListener(type, listener, options); } removeEventListener(type, listener, options) { super.removeEventListener(type, listener, options); - if (this.$$component) { - const unsub = this.$$listener_unsubscribe_fns.get(listener); + if (this.$$c) { + const unsub = this.$$l_u.get(listener); if (unsub) { unsub(); - this.$$listener_unsubscribe_fns.delete(listener); + this.$$l_u.delete(listener); } } } async connectedCallback() { - this.$$connected = true; - if (!this.$$component) { + this.$$cn = true; + if (!this.$$c) { let create_slot = function(name) { return () => { let node; const obj = { c: function create() { - node = document.createElement("slot"); + node = element("slot"); if (name !== "default") { - node.setAttribute("name", name); + attr(node, "name", name); } }, /** @@ -36821,73 +36703,85 @@ if (typeof HTMLElement === "function") { }; }; await Promise.resolve(); - if (!this.$$connected) { + if (!this.$$cn) { return; } const $$slots = {}; const existing_slots = get_custom_elements_slots(this); - for (const name of this.$$slots) { + for (const name of this.$$s) { if (name in existing_slots) { $$slots[name] = [create_slot(name)]; } } for (const attribute of this.attributes) { - const name = this.$$get_prop_name(attribute.name); - if (!(name in this.$$data)) { - this.$$data[name] = get_custom_element_value( - name, - attribute.value, - this.$$props_definition, - "toProp" - ); + const name = this.$$g_p(attribute.name); + if (!(name in this.$$d)) { + this.$$d[name] = get_custom_element_value(name, attribute.value, this.$$p_d, "toProp"); } } - this.$$component = new this.$$componentCtor({ + this.$$c = new this.$$ctor({ target: this.shadowRoot || this, props: { - ...this.$$data, + ...this.$$d, $$slots, $$scope: { ctx: [] } } }); - for (const type in this.$$listeners) { - for (const listener of this.$$listeners[type]) { - const unsub = this.$$component.$on(type, listener); - this.$$listener_unsubscribe_fns.set(listener, unsub); + const reflect_attributes = () => { + this.$$r = true; + for (const key2 in this.$$p_d) { + this.$$d[key2] = this.$$c.$$.ctx[this.$$c.$$.props[key2]]; + if (this.$$p_d[key2].reflect) { + const attribute_value = get_custom_element_value( + key2, + this.$$d[key2], + this.$$p_d, + "toAttribute" + ); + if (attribute_value == null) { + this.removeAttribute(key2); + } else { + this.setAttribute(this.$$p_d[key2].attribute || key2, attribute_value); + } + } + } + this.$$r = false; + }; + this.$$c.$$.after_update.push(reflect_attributes); + reflect_attributes(); + for (const type in this.$$l) { + for (const listener of this.$$l[type]) { + const unsub = this.$$c.$on(type, listener); + this.$$l_u.set(listener, unsub); } } - this.$$listeners = {}; + this.$$l = {}; } } // We don't need this when working within Svelte code, but for compatibility of people using this outside of Svelte // and setting attributes through setAttribute etc, this is helpful attributeChangedCallback(attr2, _oldValue, newValue) { var _a2; - if (this.$$reflecting) + if (this.$$r) return; - attr2 = this.$$get_prop_name(attr2); - this.$$data[attr2] = get_custom_element_value( - attr2, - newValue, - this.$$props_definition, - "toProp" - ); - (_a2 = this.$$component) == null ? void 0 : _a2.$set({ [attr2]: this.$$data[attr2] }); + attr2 = this.$$g_p(attr2); + this.$$d[attr2] = get_custom_element_value(attr2, newValue, this.$$p_d, "toProp"); + (_a2 = this.$$c) == null ? void 0 : _a2.$set({ [attr2]: this.$$d[attr2] }); } disconnectedCallback() { - this.$$connected = false; + this.$$cn = false; Promise.resolve().then(() => { - if (!this.$$connected) { - this.$$component.$destroy(); - this.$$component = void 0; + if (!this.$$cn) { + this.$$c.$destroy(); + this.$$c = void 0; } }); } - $$get_prop_name(attribute_name) { - return Object.keys(this.$$props_definition).find( - (key2) => this.$$props_definition[key2].attribute === attribute_name || !this.$$props_definition[key2].attribute && key2.toLowerCase() === attribute_name + $$g_p(attribute_name) { + return Object.keys(this.$$p_d).find( + (key2) => this.$$p_d[key2].attribute === attribute_name || !this.$$p_d[key2].attribute && key2.toLowerCase() === attribute_name ) || attribute_name; } }; @@ -36979,19 +36873,19 @@ var SvelteComponent = class { } }; -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/dev.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/dev.js init_polyfill_buffer(); -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/shared/version.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/shared/version.js init_polyfill_buffer(); var PUBLIC_VERSION = "4"; -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/internal/disclose-version/index.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/internal/disclose-version/index.js init_polyfill_buffer(); if (typeof window !== "undefined") (window.__svelte || (window.__svelte = { v: /* @__PURE__ */ new Set() })).v.add(PUBLIC_VERSION); -// node_modules/.pnpm/tslib@2.6.0/node_modules/tslib/tslib.es6.mjs +// node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs init_polyfill_buffer(); function __awaiter(thisArg, _arguments, P, generator) { function adopt(value) { @@ -37024,23 +36918,23 @@ function __awaiter(thisArg, _arguments, P, generator) { // src/ui/history/historyView.svelte var import_obsidian19 = require("obsidian"); -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/index.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/index.js init_polyfill_buffer(); // src/ui/history/components/logComponent.svelte init_polyfill_buffer(); -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/transition/index.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/transition/index.js init_polyfill_buffer(); -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/easing/index.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/easing/index.js init_polyfill_buffer(); function cubicOut(t) { const f = t - 1; return f * f * f + 1; } -// node_modules/.pnpm/svelte@4.0.0/node_modules/svelte/src/runtime/transition/index.js +// node_modules/.pnpm/svelte@4.2.0/node_modules/svelte/src/runtime/transition/index.js function slide(node, { delay: delay2 = 0, duration = 400, easing = cubicOut, axis = "y" } = {}) { const style = getComputedStyle(node); const opacity = +style.opacity; @@ -37072,7 +36966,7 @@ function slide(node, { delay: delay2 = 0, duration = 400, easing = cubicOut, axi init_polyfill_buffer(); var import_obsidian18 = require("obsidian"); function add_css(target) { - append_styles(target, "svelte-pmbo0n", "main.svelte-pmbo0n .nav-file-title-content.svelte-pmbo0n{display:flex;align-items:center}"); + append_styles(target, "svelte-1wbh8tp", "main.svelte-1wbh8tp .nav-file-title.svelte-1wbh8tp{align-items:center}"); } function create_if_block(ctx) { let div; @@ -37140,12 +37034,14 @@ function create_fragment(ctx) { ); let t3; let span_data_type_value; + let div3_data_path_value; let div3_aria_label_value; let mounted; let dispose; let if_block = show_if && create_if_block(ctx); return { c() { + var _a2, _b; main = element("main"); div3 = element("div"); div0 = element("div"); @@ -37158,13 +37054,15 @@ function create_fragment(ctx) { t2 = space(); span = element("span"); t3 = text(t3_value); - attr(div0, "class", "tree-item-inner nav-file-title-content svelte-pmbo0n"); + attr(div0, "class", "tree-item-inner nav-file-title-content"); attr(div1, "class", "buttons"); attr(span, "class", "type"); attr(span, "data-type", span_data_type_value = /*diff*/ ctx[0].status); attr(div2, "class", "git-tools"); - attr(div3, "class", "tree-item-self is-clickable nav-file-title"); + attr(div3, "class", "tree-item-self is-clickable nav-file-title svelte-1wbh8tp"); + attr(div3, "data-path", div3_data_path_value = /*diff*/ + ctx[0].vault_path); attr( div3, "aria-label-position", @@ -37173,7 +37071,15 @@ function create_fragment(ctx) { ); attr(div3, "aria-label", div3_aria_label_value = /*diff*/ ctx[0].vault_path); - attr(main, "class", "tree-item nav-file svelte-pmbo0n"); + toggle_class( + div3, + "is-active", + /*view*/ + ((_a2 = ctx[1].plugin.lastDiffViewState) == null ? void 0 : _a2.file) == /*diff*/ + ctx[0].vault_path && /*view*/ + ((_b = ctx[1].plugin.lastDiffViewState) == null ? void 0 : _b.hash) + ); + attr(main, "class", "tree-item nav-file svelte-1wbh8tp"); }, m(target, anchor) { insert(target, main, anchor); @@ -37209,6 +37115,7 @@ function create_fragment(ctx) { } }, p(ctx2, [dirty]) { + var _a2, _b; if (dirty & /*diff*/ 1 && t0_value !== (t0_value = getDisplayPath( /*diff*/ @@ -37243,6 +37150,11 @@ function create_fragment(ctx) { ctx2[0].status)) { attr(span, "data-type", span_data_type_value); } + if (dirty & /*diff*/ + 1 && div3_data_path_value !== (div3_data_path_value = /*diff*/ + ctx2[0].vault_path)) { + attr(div3, "data-path", div3_data_path_value); + } if (dirty & /*side*/ 8) { attr( @@ -37257,6 +37169,17 @@ function create_fragment(ctx) { ctx2[0].vault_path)) { attr(div3, "aria-label", div3_aria_label_value); } + if (dirty & /*view, diff*/ + 3) { + toggle_class( + div3, + "is-active", + /*view*/ + ((_a2 = ctx2[1].plugin.lastDiffViewState) == null ? void 0 : _a2.file) == /*diff*/ + ctx2[0].vault_path && /*view*/ + ((_b = ctx2[1].plugin.lastDiffViewState) == null ? void 0 : _b.hash) + ); + } }, i: noop, o: noop, @@ -37390,6 +37313,15 @@ function create_else_block(ctx) { set_style(div0, "padding-right", "5px"); set_style(div0, "display", "flex"); attr(div1, "class", "tree-item-icon nav-folder-collapse-indicator collapse-icon"); + toggle_class( + div1, + "is-collapsed", + /*closed*/ + ctx[4][ + /*entity*/ + ctx[8].title + ] + ); attr(div2, "class", "tree-item-inner nav-folder-title-content svelte-1lnl15d"); attr(div3, "class", "tree-item-self is-clickable nav-folder-title"); attr( @@ -37432,6 +37364,18 @@ function create_else_block(ctx) { }, p(new_ctx, dirty) { ctx = new_ctx; + if (!current || dirty & /*closed, hierarchy*/ + 17) { + toggle_class( + div1, + "is-collapsed", + /*closed*/ + ctx[4][ + /*entity*/ + ctx[8].title + ] + ); + } if ((!current || dirty & /*hierarchy*/ 1) && t2_value !== (t2_value = /*entity*/ ctx[8].title + "")) @@ -38219,6 +38163,12 @@ function create_fragment3(ctx) { if (if_block1) if_block1.c(); attr(div0, "class", "tree-item-icon nav-folder-collapse-indicator collapse-icon"); + toggle_class( + div0, + "is-collapsed", + /*isCollapsed*/ + ctx[4] + ); attr(div1, "class", "tree-item-inner nav-folder-title-content"); attr(div1, "aria-label", div1_aria_label_value = /*log*/ ctx[0].message); @@ -38264,6 +38214,15 @@ function create_fragment3(ctx) { } }, p(ctx2, [dirty]) { + if (!current || dirty & /*isCollapsed*/ + 16) { + toggle_class( + div0, + "is-collapsed", + /*isCollapsed*/ + ctx2[4] + ); + } if ( /*log*/ ctx2[0].refs.length > 0 @@ -38942,10 +38901,10 @@ var DiscardModal = class extends import_obsidian23.Modal { init_polyfill_buffer(); var import_obsidian25 = require("obsidian"); -// node_modules/.pnpm/obsidian-community-lib@2.0.2_@codemirror+state@6.2.1_@codemirror+view@6.14.0/node_modules/obsidian-community-lib/dist/index.js +// node_modules/.pnpm/github.com+Vinzent03+obsidian-community-lib@e663de4f95c879b40613090da78ea599ff621d24_@codemir_kbfcpig3uak7df3ohthcqq53p4/node_modules/obsidian-community-lib/dist/index.js init_polyfill_buffer(); -// node_modules/.pnpm/obsidian-community-lib@2.0.2_@codemirror+state@6.2.1_@codemirror+view@6.14.0/node_modules/obsidian-community-lib/dist/utils.js +// node_modules/.pnpm/github.com+Vinzent03+obsidian-community-lib@e663de4f95c879b40613090da78ea599ff621d24_@codemir_kbfcpig3uak7df3ohthcqq53p4/node_modules/obsidian-community-lib/dist/utils.js init_polyfill_buffer(); var feather = __toESM(require_feather()); var import_obsidian24 = require("obsidian"); @@ -38962,7 +38921,7 @@ function hoverPreview(event, view, to) { // src/ui/sourceControl/components/fileComponent.svelte function add_css4(target) { - append_styles(target, "svelte-pmbo0n", "main.svelte-pmbo0n .nav-file-title-content.svelte-pmbo0n{display:flex;align-items:center}"); + append_styles(target, "svelte-1wbh8tp", "main.svelte-1wbh8tp .nav-file-title.svelte-1wbh8tp{align-items:center}"); } function create_if_block5(ctx) { let div; @@ -39034,12 +38993,14 @@ function create_fragment5(ctx) { ); let t5; let div4_data_type_value; + let div6_data_path_value; let div6_aria_label_value; let mounted; let dispose; let if_block = show_if && create_if_block5(ctx); return { c() { + var _a2, _b, _c; main = element("main"); div6 = element("div"); div0 = element("div"); @@ -39056,7 +39017,7 @@ function create_fragment5(ctx) { t4 = space(); div4 = element("div"); t5 = text(t5_value); - attr(div0, "class", "tree-item-inner nav-file-title-content svelte-pmbo0n"); + attr(div0, "class", "tree-item-inner nav-file-title-content"); attr(div1, "data-icon", "undo"); attr(div1, "aria-label", "Discard"); attr(div1, "class", "clickable-icon"); @@ -39068,7 +39029,9 @@ function create_fragment5(ctx) { attr(div4, "data-type", div4_data_type_value = /*change*/ ctx[0].working_dir); attr(div5, "class", "git-tools"); - attr(div6, "class", "tree-item-self is-clickable nav-file-title"); + attr(div6, "class", "tree-item-self is-clickable nav-file-title svelte-1wbh8tp"); + attr(div6, "data-path", div6_data_path_value = /*change*/ + ctx[0].vault_path); attr( div6, "aria-label-position", @@ -39077,7 +39040,16 @@ function create_fragment5(ctx) { ); attr(div6, "aria-label", div6_aria_label_value = /*change*/ ctx[0].vault_path); - attr(main, "class", "tree-item nav-file svelte-pmbo0n"); + toggle_class( + div6, + "is-active", + /*view*/ + ((_a2 = ctx[1].plugin.lastDiffViewState) == null ? void 0 : _a2.file) == /*change*/ + ctx[0].vault_path && !/*view*/ + ((_b = ctx[1].plugin.lastDiffViewState) == null ? void 0 : _b.hash) && !/*view*/ + ((_c = ctx[1].plugin.lastDiffViewState) == null ? void 0 : _c.staged) + ); + attr(main, "class", "tree-item nav-file svelte-1wbh8tp"); }, m(target, anchor) { insert(target, main, anchor); @@ -39133,6 +39105,7 @@ function create_fragment5(ctx) { } }, p(ctx2, [dirty]) { + var _a2, _b, _c; if (dirty & /*change*/ 1 && t0_value !== (t0_value = getDisplayPath( /*change*/ @@ -39167,6 +39140,11 @@ function create_fragment5(ctx) { ctx2[0].working_dir)) { attr(div4, "data-type", div4_data_type_value); } + if (dirty & /*change*/ + 1 && div6_data_path_value !== (div6_data_path_value = /*change*/ + ctx2[0].vault_path)) { + attr(div6, "data-path", div6_data_path_value); + } if (dirty & /*side*/ 8) { attr( @@ -39181,6 +39159,18 @@ function create_fragment5(ctx) { ctx2[0].vault_path)) { attr(div6, "aria-label", div6_aria_label_value); } + if (dirty & /*view, change*/ + 3) { + toggle_class( + div6, + "is-active", + /*view*/ + ((_a2 = ctx2[1].plugin.lastDiffViewState) == null ? void 0 : _a2.file) == /*change*/ + ctx2[0].vault_path && !/*view*/ + ((_b = ctx2[1].plugin.lastDiffViewState) == null ? void 0 : _b.hash) && !/*view*/ + ((_c = ctx2[1].plugin.lastDiffViewState) == null ? void 0 : _c.staged) + ); + } }, i: noop, o: noop, @@ -39311,7 +39301,7 @@ var fileComponent_default = FileComponent; init_polyfill_buffer(); var import_obsidian26 = require("obsidian"); function add_css5(target) { - append_styles(target, "svelte-pmbo0n", "main.svelte-pmbo0n .nav-file-title-content.svelte-pmbo0n{display:flex;align-items:center}"); + append_styles(target, "svelte-1wbh8tp", "main.svelte-1wbh8tp .nav-file-title.svelte-1wbh8tp{align-items:center}"); } function create_fragment6(ctx) { let main; @@ -39331,6 +39321,7 @@ function create_fragment6(ctx) { ); let t2; let span_data_type_value; + let div2_data_path_value; let div2_aria_label_value; let mounted; let dispose; @@ -39344,12 +39335,14 @@ function create_fragment6(ctx) { div1 = element("div"); span = element("span"); t2 = text(t2_value); - attr(div0, "class", "tree-item-inner nav-file-title-content svelte-pmbo0n"); + attr(div0, "class", "tree-item-inner nav-file-title-content"); attr(span, "class", "type"); attr(span, "data-type", span_data_type_value = /*change*/ ctx[0].working_dir); attr(div1, "class", "git-tools"); - attr(div2, "class", "tree-item-self is-clickable nav-file-title"); + attr(div2, "class", "tree-item-self is-clickable nav-file-title svelte-1wbh8tp"); + attr(div2, "data-path", div2_data_path_value = /*change*/ + ctx[0].vault_path); attr( div2, "aria-label-position", @@ -39358,7 +39351,7 @@ function create_fragment6(ctx) { ); attr(div2, "aria-label", div2_aria_label_value = /*change*/ ctx[0].vault_path); - attr(main, "class", "tree-item nav-file svelte-pmbo0n"); + attr(main, "class", "tree-item nav-file svelte-1wbh8tp"); }, m(target, anchor) { insert(target, main, anchor); @@ -39411,6 +39404,11 @@ function create_fragment6(ctx) { ctx2[0].working_dir)) { attr(span, "data-type", span_data_type_value); } + if (dirty & /*change*/ + 1 && div2_data_path_value !== (div2_data_path_value = /*change*/ + ctx2[0].vault_path)) { + attr(div2, "data-path", div2_data_path_value); + } if (dirty & /*side*/ 2) { attr( @@ -39483,7 +39481,7 @@ var pulledFileComponent_default = PulledFileComponent; init_polyfill_buffer(); var import_obsidian27 = require("obsidian"); function add_css6(target) { - append_styles(target, "svelte-pmbo0n", "main.svelte-pmbo0n .nav-file-title-content.svelte-pmbo0n{display:flex;align-items:center}"); + append_styles(target, "svelte-1wbh8tp", "main.svelte-1wbh8tp .nav-file-title.svelte-1wbh8tp{align-items:center}"); } function create_if_block6(ctx) { let div; @@ -39547,12 +39545,14 @@ function create_fragment7(ctx) { ); let t4; let div3_data_type_value; + let div5_data_path_value; let div5_aria_label_value; let mounted; let dispose; let if_block = show_if && create_if_block6(ctx); return { c() { + var _a2, _b, _c; main = element("main"); div5 = element("div"); div0 = element("div"); @@ -39567,7 +39567,7 @@ function create_fragment7(ctx) { t3 = space(); div3 = element("div"); t4 = text(t4_value); - attr(div0, "class", "tree-item-inner nav-file-title-content svelte-pmbo0n"); + attr(div0, "class", "tree-item-inner nav-file-title-content"); attr(div1, "data-icon", "minus"); attr(div1, "aria-label", "Unstage"); attr(div1, "class", "clickable-icon"); @@ -39576,7 +39576,9 @@ function create_fragment7(ctx) { attr(div3, "data-type", div3_data_type_value = /*change*/ ctx[0].index); attr(div4, "class", "git-tools"); - attr(div5, "class", "tree-item-self is-clickable nav-file-title"); + attr(div5, "class", "tree-item-self is-clickable nav-file-title svelte-1wbh8tp"); + attr(div5, "data-path", div5_data_path_value = /*change*/ + ctx[0].vault_path); attr( div5, "aria-label-position", @@ -39585,7 +39587,16 @@ function create_fragment7(ctx) { ); attr(div5, "aria-label", div5_aria_label_value = /*change*/ ctx[0].vault_path); - attr(main, "class", "tree-item nav-file svelte-pmbo0n"); + toggle_class( + div5, + "is-active", + /*view*/ + ((_a2 = ctx[1].plugin.lastDiffViewState) == null ? void 0 : _a2.file) == /*change*/ + ctx[0].vault_path && !/*view*/ + ((_b = ctx[1].plugin.lastDiffViewState) == null ? void 0 : _b.hash) && /*view*/ + ((_c = ctx[1].plugin.lastDiffViewState) == null ? void 0 : _c.staged) + ); + attr(main, "class", "tree-item nav-file svelte-1wbh8tp"); }, m(target, anchor) { insert(target, main, anchor); @@ -39634,6 +39645,7 @@ function create_fragment7(ctx) { } }, p(ctx2, [dirty]) { + var _a2, _b, _c; if (dirty & /*change*/ 1 && t0_value !== (t0_value = getDisplayPath( /*change*/ @@ -39668,6 +39680,11 @@ function create_fragment7(ctx) { ctx2[0].index)) { attr(div3, "data-type", div3_data_type_value); } + if (dirty & /*change*/ + 1 && div5_data_path_value !== (div5_data_path_value = /*change*/ + ctx2[0].vault_path)) { + attr(div5, "data-path", div5_data_path_value); + } if (dirty & /*side*/ 8) { attr( @@ -39682,6 +39699,18 @@ function create_fragment7(ctx) { ctx2[0].vault_path)) { attr(div5, "aria-label", div5_aria_label_value); } + if (dirty & /*view, change*/ + 3) { + toggle_class( + div5, + "is-active", + /*view*/ + ((_a2 = ctx2[1].plugin.lastDiffViewState) == null ? void 0 : _a2.file) == /*change*/ + ctx2[0].vault_path && !/*view*/ + ((_b = ctx2[1].plugin.lastDiffViewState) == null ? void 0 : _b.hash) && /*view*/ + ((_c = ctx2[1].plugin.lastDiffViewState) == null ? void 0 : _c.staged) + ); + } }, i: noop, o: noop, @@ -39791,7 +39820,7 @@ var stagedFileComponent_default = StagedFileComponent; // src/ui/sourceControl/components/treeComponent.svelte init_polyfill_buffer(); function add_css7(target) { - append_styles(target, "svelte-1lnl15d", "main.svelte-1lnl15d .nav-folder-title-content.svelte-1lnl15d{display:flex;align-items:center}"); + append_styles(target, "svelte-hup5mn", "main.svelte-hup5mn .nav-folder-title.svelte-hup5mn{align-items:center}"); } function get_each_context4(ctx, list, i) { const child_ctx = ctx.slice(); @@ -39871,11 +39900,20 @@ function create_else_block3(ctx) { set_style(div0, "padding-right", "5px"); set_style(div0, "display", "flex"); attr(div1, "class", "tree-item-icon nav-folder-collapse-indicator collapse-icon"); - attr(div2, "class", "tree-item-inner nav-folder-title-content svelte-1lnl15d"); + toggle_class( + div1, + "is-collapsed", + /*closed*/ + ctx[5][ + /*entity*/ + ctx[15].title + ] + ); + attr(div2, "class", "tree-item-inner nav-folder-title-content"); set_style(div3, "width", "11px"); attr(div4, "class", "buttons"); attr(div5, "class", "git-tools"); - attr(div6, "class", "tree-item-self is-clickable nav-folder-title"); + attr(div6, "class", "tree-item-self is-clickable nav-folder-title svelte-hup5mn"); attr( div6, "aria-label-position", @@ -39922,6 +39960,18 @@ function create_else_block3(ctx) { }, p(new_ctx, dirty) { ctx = new_ctx; + if (!current || dirty & /*closed, hierarchy*/ + 33) { + toggle_class( + div1, + "is-collapsed", + /*closed*/ + ctx[5][ + /*entity*/ + ctx[15].title + ] + ); + } if ((!current || dirty & /*hierarchy*/ 1) && t2_value !== (t2_value = /*entity*/ ctx[15].title + "")) @@ -40550,7 +40600,7 @@ function create_fragment8(ctx) { for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].c(); } - attr(main, "class", "svelte-1lnl15d"); + attr(main, "class", "svelte-hup5mn"); toggle_class( main, "topLevel", @@ -40568,7 +40618,7 @@ function create_fragment8(ctx) { current = true; }, p(ctx2, [dirty]) { - if (dirty & /*hierarchy, plugin, view, fileType, FileType, closed, fold, side, unstage, stage, discard*/ + if (dirty & /*hierarchy, plugin, view, fileType, closed, fold, side, unstage, stage, discard*/ 2031) { each_value = ensure_array_like( /*hierarchy*/ @@ -40724,7 +40774,7 @@ var treeComponent_default = TreeComponent; // src/ui/sourceControl/sourceControl.svelte function add_css8(target) { - append_styles(target, "svelte-48bivb", `.commit-msg-input.svelte-48bivb.svelte-48bivb{width:100%;overflow:hidden;resize:none;padding:7px 5px;background-color:var(--background-modifier-form-field)}.git-commit-msg.svelte-48bivb.svelte-48bivb{position:relative;padding:0;width:calc(100% - var(--size-4-8));margin:4px auto}main.svelte-48bivb .git-tools .files-count.svelte-48bivb{padding-left:var(--size-2-1);width:11px;display:flex;align-items:center;justify-content:center}.git-commit-msg-clear-button.svelte-48bivb.svelte-48bivb{position:absolute;background:transparent;border-radius:50%;color:var(--search-clear-button-color);cursor:var(--cursor);top:-4px;right:2px;bottom:0px;line-height:0;height:var(--input-height);width:28px;margin:auto;padding:0 0;text-align:center;display:flex;justify-content:center;align-items:center;transition:color 0.15s ease-in-out}.git-commit-msg-clear-button.svelte-48bivb.svelte-48bivb:after{content:"";height:var(--search-clear-button-size);width:var(--search-clear-button-size);display:block;background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,");-webkit-mask-repeat:no-repeat}`); + append_styles(target, "svelte-1bvmxec", `.commit-msg-input.svelte-1bvmxec.svelte-1bvmxec{width:100%;overflow:hidden;resize:none;padding:7px 5px;background-color:var(--background-modifier-form-field)}.git-commit-msg.svelte-1bvmxec.svelte-1bvmxec{position:relative;padding:0;width:calc(100% - var(--size-4-8));margin:4px auto}main.svelte-1bvmxec .git-tools .files-count.svelte-1bvmxec{padding-left:var(--size-2-1);width:11px;display:flex;align-items:center;justify-content:center}.nav-folder-title.svelte-1bvmxec.svelte-1bvmxec{align-items:center}.git-commit-msg-clear-button.svelte-1bvmxec.svelte-1bvmxec{position:absolute;background:transparent;border-radius:50%;color:var(--search-clear-button-color);cursor:var(--cursor);top:-4px;right:2px;bottom:0px;line-height:0;height:var(--input-height);width:28px;margin:auto;padding:0 0;text-align:center;display:flex;justify-content:center;align-items:center;transition:color 0.15s ease-in-out}.git-commit-msg-clear-button.svelte-1bvmxec.svelte-1bvmxec:after{content:"";height:var(--search-clear-button-size);width:var(--search-clear-button-size);display:block;background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,");-webkit-mask-repeat:no-repeat}`); } function get_each_context5(ctx, list, i) { const child_ctx = ctx.slice(); @@ -40749,7 +40799,7 @@ function create_if_block_8(ctx) { return { c() { div = element("div"); - attr(div, "class", "git-commit-msg-clear-button svelte-48bivb"); + attr(div, "class", "git-commit-msg-clear-button svelte-1bvmxec"); attr(div, "aria-label", div_aria_label_value = "Clear"); }, m(target, anchor) { @@ -40878,18 +40928,22 @@ function create_if_block8(ctx) { if (if_block2) if_block2.c(); attr(div0, "class", "tree-item-icon nav-folder-collapse-indicator collapse-icon"); + toggle_class(div0, "is-collapsed", !/*stagedOpen*/ + ctx[13]); attr(div1, "class", "tree-item-inner nav-folder-title-content"); attr(div2, "data-icon", "minus"); attr(div2, "aria-label", "Unstage"); attr(div2, "class", "clickable-icon"); attr(div3, "class", "buttons"); - attr(div4, "class", "files-count svelte-48bivb"); + attr(div4, "class", "files-count svelte-1bvmxec"); attr(div5, "class", "git-tools"); - attr(div6, "class", "tree-item-self is-clickable nav-folder-title"); + attr(div6, "class", "tree-item-self is-clickable nav-folder-title svelte-1bvmxec"); attr(div7, "class", "staged tree-item nav-folder"); toggle_class(div7, "is-collapsed", !/*stagedOpen*/ ctx[13]); attr(div8, "class", "tree-item-icon nav-folder-collapse-indicator collapse-icon"); + toggle_class(div8, "is-collapsed", !/*changesOpen*/ + ctx[12]); attr(div9, "class", "tree-item-inner nav-folder-title-content"); attr(div10, "data-icon", "undo"); attr(div10, "aria-label", "Discard"); @@ -40898,10 +40952,10 @@ function create_if_block8(ctx) { attr(div11, "aria-label", "Stage"); attr(div11, "class", "clickable-icon"); attr(div12, "class", "buttons"); - attr(div13, "class", "files-count svelte-48bivb"); + attr(div13, "class", "files-count svelte-1bvmxec"); attr(div14, "class", "git-tools"); - attr(div15, "class", "tree-item-self is-clickable nav-folder-title"); - attr(div16, "class", "changes nav-folder"); + attr(div15, "class", "tree-item-self is-clickable nav-folder-title svelte-1bvmxec"); + attr(div16, "class", "changes tree-item nav-folder"); toggle_class(div16, "is-collapsed", !/*changesOpen*/ ctx[12]); attr(div17, "class", "tree-item-children nav-folder-children"); @@ -40980,6 +41034,11 @@ function create_if_block8(ctx) { } }, p(ctx2, dirty) { + if (!current || dirty[0] & /*stagedOpen*/ + 8192) { + toggle_class(div0, "is-collapsed", !/*stagedOpen*/ + ctx2[13]); + } if ((!current || dirty[0] & /*status*/ 64) && t4_value !== (t4_value = /*status*/ ctx2[6].staged.length + "")) @@ -41012,6 +41071,11 @@ function create_if_block8(ctx) { toggle_class(div7, "is-collapsed", !/*stagedOpen*/ ctx2[13]); } + if (!current || dirty[0] & /*changesOpen*/ + 4096) { + toggle_class(div8, "is-collapsed", !/*changesOpen*/ + ctx2[12]); + } if ((!current || dirty[0] & /*status*/ 64) && t12_value !== (t12_value = /*status*/ ctx2[6].changed.length + "")) @@ -41705,7 +41769,7 @@ function create_if_block_14(ctx) { attr(div0, "class", "tree-item-icon nav-folder-collapse-indicator collapse-icon"); attr(div1, "class", "tree-item-inner nav-folder-title-content"); attr(span, "class", "tree-item-flair"); - attr(div2, "class", "tree-item-self is-clickable nav-folder-title"); + attr(div2, "class", "tree-item-self is-clickable nav-folder-title svelte-1bvmxec"); attr(div3, "class", "pulled nav-folder"); toggle_class(div3, "is-collapsed", !/*lastPulledFilesOpen*/ ctx[14]); @@ -42089,6 +42153,7 @@ function create_fragment9(ctx) { let t8; let t9; let div11; + let main_data_type_value; let current; let mounted; let dispose; @@ -42178,13 +42243,14 @@ function create_fragment9(ctx) { /*rows*/ ctx[15] ); - attr(textarea, "class", "commit-msg-input svelte-48bivb"); + attr(textarea, "class", "commit-msg-input svelte-1bvmxec"); attr(textarea, "spellcheck", "true"); attr(textarea, "placeholder", "Commit Message"); - attr(div10, "class", "git-commit-msg svelte-48bivb"); + attr(div10, "class", "git-commit-msg svelte-1bvmxec"); attr(div11, "class", "nav-files-container"); set_style(div11, "position", "relative"); - attr(main, "class", "svelte-48bivb"); + attr(main, "data-type", main_data_type_value = SOURCE_CONTROL_VIEW_CONFIG.type); + attr(main, "class", "svelte-1bvmxec"); }, m(target, anchor) { insert(target, main, anchor); @@ -42407,8 +42473,8 @@ function instance9($$self, $$props, $$invalidate) { plugin.app.workspace.onLayoutReady(() => { window.setTimeout( () => { - buttons.forEach((btn) => (0, import_obsidian28.setIcon)(btn, btn.getAttr("data-icon"), 16)); - (0, import_obsidian28.setIcon)(layoutBtn, showTree ? "list" : "folder", 16); + buttons.forEach((btn) => (0, import_obsidian28.setIcon)(btn, btn.getAttr("data-icon"))); + (0, import_obsidian28.setIcon)(layoutBtn, showTree ? "list" : "folder"); }, 0 ); @@ -42451,6 +42517,21 @@ function instance9($$self, $$props, $$invalidate) { $$invalidate(6, status2 = void 0); return; } + const unPushedCommits = yield plugin.gitManager.getUnpushedCommits(); + buttons.forEach((btn) => { + var _a2, _b; + if (import_obsidian28.Platform.isMobile) { + btn.removeClass("button-border"); + if (btn.id == "push" && unPushedCommits > 0) { + btn.addClass("button-border"); + } + } else { + (_a2 = btn.firstElementChild) === null || _a2 === void 0 ? void 0 : _a2.removeAttribute("color"); + if (btn.id == "push" && unPushedCommits > 0) { + (_b = btn.firstElementChild) === null || _b === void 0 ? void 0 : _b.setAttr("color", "var(--text-accent)"); + } + } + }); $$invalidate(6, status2 = plugin.cachedStatus); if (plugin.lastPulledFiles && plugin.lastPulledFiles != lastPulledFiles) { $$invalidate(7, lastPulledFiles = plugin.lastPulledFiles); @@ -42603,7 +42684,7 @@ function instance9($$self, $$props, $$invalidate) { $: { if (layoutBtn) { layoutBtn.empty(); - (0, import_obsidian28.setIcon)(layoutBtn, showTree ? "list" : "folder", 16); + (0, import_obsidian28.setIcon)(layoutBtn, showTree ? "list" : "folder"); } } } @@ -42892,6 +42973,11 @@ var ObsidianGit = class extends import_obsidian30.Plugin { name: "Pull", callback: () => this.promiseQueue.addTask(() => this.pullChangesFromRemote()) }); + this.addCommand({ + id: "fetch", + name: "fetch", + callback: () => this.promiseQueue.addTask(() => this.fetch()) + }); this.addCommand({ id: "switch-to-remote-branch", name: "Switch to remote branch", @@ -43252,6 +43338,7 @@ var ObsidianGit = class extends import_obsidian30.Plugin { "git-head-update", this.refreshUpdatedHead.bind(this) ); + this.app.workspace.offref(this.openEvent); this.app.metadataCache.offref(this.modifyEvent); this.app.metadataCache.offref(this.deleteEvent); this.app.metadataCache.offref(this.createEvent); @@ -43321,6 +43408,10 @@ var ObsidianGit = class extends import_obsidian30.Plugin { case "valid": this.gitReady = true; this.setState(0 /* idle */); + this.openEvent = this.app.workspace.on( + "active-leaf-change", + (leaf) => this.handleViewActiveState(leaf) + ); this.modifyEvent = this.app.vault.on("modify", () => { this.debRefresh(); }); @@ -43660,6 +43751,7 @@ var ObsidianGit = class extends import_obsidian30.Plugin { } this.offlineMode = false; this.setState(0 /* idle */); + dispatchEvent(new CustomEvent("git-refresh")); return true; } } @@ -43679,6 +43771,15 @@ var ObsidianGit = class extends import_obsidian30.Plugin { } return pulledFiles.length != 0; } + async fetch() { + if (!await this.remotesAreSet()) { + return; + } + await this.gitManager.fetch(); + this.displayMessage(`Fetched from remote`); + this.offlineMode = false; + dispatchEvent(new CustomEvent("git-refresh")); + } async mayDeleteConflictFile() { const file = this.app.vault.getAbstractFileByPath( this.conflictOutputFile @@ -44052,6 +44153,36 @@ I strongly recommend to use "Source mode" for viewing the conflicted files. For this.app.workspace.openLinkText(this.conflictOutputFile, "/", true); } } + handleViewActiveState(leaf) { + var _a2, _b; + if (!(leaf == null ? void 0 : leaf.view.getState().file)) + return; + const sourceControlLeaf = this.app.workspace.getLeavesOfType(SOURCE_CONTROL_VIEW_CONFIG.type).first(); + const historyLeaf = this.app.workspace.getLeavesOfType(HISTORY_VIEW_CONFIG.type).first(); + (_a2 = sourceControlLeaf == null ? void 0 : sourceControlLeaf.view.containerEl.querySelector(`div.nav-file-title.is-active`)) == null ? void 0 : _a2.removeClass("is-active"); + (_b = historyLeaf == null ? void 0 : historyLeaf.view.containerEl.querySelector(`div.nav-file-title.is-active`)) == null ? void 0 : _b.removeClass("is-active"); + if ((leaf == null ? void 0 : leaf.view) instanceof DiffView) { + const path2 = leaf.view.state.file; + this.lastDiffViewState = leaf.view.getState(); + let el; + if (sourceControlLeaf && leaf.view.state.staged) { + el = sourceControlLeaf.view.containerEl.querySelector( + `div.staged div.nav-file-title[data-path='${path2}']` + ); + } else if (sourceControlLeaf && leaf.view.state.staged === false && !leaf.view.state.hash) { + el = sourceControlLeaf.view.containerEl.querySelector( + `div.changes div.nav-file-title[data-path='${path2}']` + ); + } else if (historyLeaf && leaf.view.state.hash) { + el = historyLeaf.view.containerEl.querySelector( + `div.nav-file-title[data-path='${path2}']` + ); + } + el == null ? void 0 : el.addClass("is-active"); + } else { + this.lastDiffViewState = void 0; + } + } // region: displaying / formatting messages displayMessage(message, timeout = 4 * 1e3) { var _a2; diff --git a/.obsidian/plugins/obsidian-git/manifest.json b/.obsidian/plugins/obsidian-git/manifest.json index f1797b1d..a771a543 100644 --- a/.obsidian/plugins/obsidian-git/manifest.json +++ b/.obsidian/plugins/obsidian-git/manifest.json @@ -5,5 +5,5 @@ "isDesktopOnly": false, "fundingUrl": "https://ko-fi.com/vinzent", "js": "main.js", - "version": "2.20.6" + "version": "2.22.0" } diff --git a/.obsidian/plugins/obsidian-git/styles.css b/.obsidian/plugins/obsidian-git/styles.css index 39cdb134..c1d50654 100644 --- a/.obsidian/plugins/obsidian-git/styles.css +++ b/.obsidian/plugins/obsidian-git/styles.css @@ -8,6 +8,11 @@ } } +.workspace-leaf-content[data-type='git-view'] .button-border { + border: 2px solid var(--interactive-accent); + border-radius: var(--radius-s); +} + .workspace-leaf-content[data-type='git-view'] .view-content { padding: 0; } diff --git a/.obsidian/plugins/obsidian-hider/main.js b/.obsidian/plugins/obsidian-hider/main.js index 3edafa0b..19e05697 100644 --- a/.obsidian/plugins/obsidian-hider/main.js +++ b/.obsidian/plugins/obsidian-hider/main.js @@ -47,7 +47,7 @@ class Hider extends obsidian.Plugin { document.body.classList.toggle('hider-file-nav-header', this.settings.hideFileNavButtons); document.body.classList.toggle('hider-search-counts', this.settings.hideSearchCounts); document.body.classList.toggle('hider-instructions', this.settings.hideInstructions); - document.body.classList.toggle('hider-meta', this.settings.hideMeta); + document.body.classList.toggle('hider-meta', this.settings.hidePropertiesReading); document.body.classList.toggle('hider-vault', this.settings.hideVault); }; } @@ -113,7 +113,7 @@ const DEFAULT_SETTINGS = { hideSearchSuggestions: false, hideSearchCounts: false, hideInstructions: false, - hideMeta: false, + hidePropertiesReading: false, hideVault: false }; class HiderSettingTab extends obsidian.PluginSettingTab { @@ -224,11 +224,11 @@ class HiderSettingTab extends obsidian.PluginSettingTab { this.plugin.refresh(); })); new obsidian.Setting(containerEl) - .setName('Hide metadata block in Reading view') - .setDesc('When front matter is turned off in your Editor settings this hides the metadata block') - .addToggle(toggle => toggle.setValue(this.plugin.settings.hideMeta) + .setName('Hide properties in Reading view') + .setDesc('Hides the properties section in Reading view') + .addToggle(toggle => toggle.setValue(this.plugin.settings.hidePropertiesReading) .onChange((value) => { - this.plugin.settings.hideMeta = value; + this.plugin.settings.hidePropertiesReading = value; this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); })); @@ -236,4 +236,4 @@ class HiderSettingTab extends obsidian.PluginSettingTab { } module.exports = Hider; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsIm1haW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbkFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbk9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UgKi9cclxuXHJcbnZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikge1xyXG4gICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxyXG4gICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcclxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYiwgcCkpIGRbcF0gPSBiW3BdOyB9O1xyXG4gICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19leHRlbmRzKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2Fzc2lnbiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcclxuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVzdChzLCBlKSB7XHJcbiAgICB2YXIgdCA9IHt9O1xyXG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXHJcbiAgICAgICAgdFtwXSA9IHNbcF07XHJcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXHJcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgICAgICB9XHJcbiAgICByZXR1cm4gdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcclxuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xyXG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcclxuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3BhcmFtKHBhcmFtSW5kZXgsIGRlY29yYXRvcikge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKSB7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZ2VuZXJhdG9yKHRoaXNBcmcsIGJvZHkpIHtcclxuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XHJcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xyXG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxyXG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdmFyIF9fY3JlYXRlQmluZGluZyA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcclxuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XHJcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgb1trMl0gPSBtW2tdO1xyXG59KTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4cG9ydFN0YXIobSwgbykge1xyXG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBwKSkgX19jcmVhdGVCaW5kaW5nKG8sIG0sIHApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xyXG4gICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDtcclxuICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pO1xyXG4gICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xyXG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xyXG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xyXG4gICAgaWYgKCFtKSByZXR1cm4gbztcclxuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxyXG4gICAgZmluYWxseSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWQoKSB7XHJcbiAgICBmb3IgKHZhciBhciA9IFtdLCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKylcclxuICAgICAgICBhciA9IGFyLmNvbmNhdChfX3JlYWQoYXJndW1lbnRzW2ldKSk7XHJcbiAgICByZXR1cm4gYXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5cygpIHtcclxuICAgIGZvciAodmFyIHMgPSAwLCBpID0gMCwgaWwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgaWw7IGkrKykgcyArPSBhcmd1bWVudHNbaV0ubGVuZ3RoO1xyXG4gICAgZm9yICh2YXIgciA9IEFycmF5KHMpLCBrID0gMCwgaSA9IDA7IGkgPCBpbDsgaSsrKVxyXG4gICAgICAgIGZvciAodmFyIGEgPSBhcmd1bWVudHNbaV0sIGogPSAwLCBqbCA9IGEubGVuZ3RoOyBqIDwgamw7IGorKywgaysrKVxyXG4gICAgICAgICAgICByW2tdID0gYVtqXTtcclxuICAgIHJldHVybiByO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXQodikge1xyXG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBfX2F3YWl0ID8gKHRoaXMudiA9IHYsIHRoaXMpIDogbmV3IF9fYXdhaXQodik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jR2VuZXJhdG9yKHRoaXNBcmcsIF9hcmd1bWVudHMsIGdlbmVyYXRvcikge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBnID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pLCBpLCBxID0gW107XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaWYgKGdbbl0pIGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7IHRyeSB7IHN0ZXAoZ1tuXSh2KSk7IH0gY2F0Y2ggKGUpIHsgc2V0dGxlKHFbMF1bM10sIGUpOyB9IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAocikgeyByLnZhbHVlIGluc3RhbmNlb2YgX19hd2FpdCA/IFByb21pc2UucmVzb2x2ZShyLnZhbHVlLnYpLnRoZW4oZnVsZmlsbCwgcmVqZWN0KSA6IHNldHRsZShxWzBdWzJdLCByKTsgfVxyXG4gICAgZnVuY3Rpb24gZnVsZmlsbCh2YWx1ZSkgeyByZXN1bWUoXCJuZXh0XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsgaWYgKGYodiksIHEuc2hpZnQoKSwgcS5sZW5ndGgpIHJlc3VtZShxWzBdWzBdLCBxWzBdWzFdKTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0RlbGVnYXRvcihvKSB7XHJcbiAgICB2YXIgaSwgcDtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaVtuXSA9IG9bbl0gPyBmdW5jdGlvbiAodikgeyByZXR1cm4gKHAgPSAhcCkgPyB7IHZhbHVlOiBfX2F3YWl0KG9bbl0odikpLCBkb25lOiBuID09PSBcInJldHVyblwiIH0gOiBmID8gZih2KSA6IHY7IH0gOiBmOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jVmFsdWVzKG8pIHtcclxuICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICB2YXIgbSA9IG9bU3ltYm9sLmFzeW5jSXRlcmF0b3JdLCBpO1xyXG4gICAgcmV0dXJuIG0gPyBtLmNhbGwobykgOiAobyA9IHR5cGVvZiBfX3ZhbHVlcyA9PT0gXCJmdW5jdGlvblwiID8gX192YWx1ZXMobykgOiBvW1N5bWJvbC5pdGVyYXRvcl0oKSwgaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGkpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IGlbbl0gPSBvW25dICYmIGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7IHYgPSBvW25dKHYpLCBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCB2LmRvbmUsIHYudmFsdWUpOyB9KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgZCwgdikgeyBQcm9taXNlLnJlc29sdmUodikudGhlbihmdW5jdGlvbih2KSB7IHJlc29sdmUoeyB2YWx1ZTogdiwgZG9uZTogZCB9KTsgfSwgcmVqZWN0KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19tYWtlVGVtcGxhdGVPYmplY3QoY29va2VkLCByYXcpIHtcclxuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XHJcbiAgICByZXR1cm4gY29va2VkO1xyXG59O1xyXG5cclxudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xyXG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcclxuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydFN0YXIobW9kKSB7XHJcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xyXG4gICAgdmFyIHJlc3VsdCA9IHt9O1xyXG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xyXG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydERlZmF1bHQobW9kKSB7XHJcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IGRlZmF1bHQ6IG1vZCB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEdldChyZWNlaXZlciwgcHJpdmF0ZU1hcCkge1xyXG4gICAgaWYgKCFwcml2YXRlTWFwLmhhcyhyZWNlaXZlcikpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXR0ZW1wdGVkIHRvIGdldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZVwiKTtcclxuICAgIH1cclxuICAgIHJldHVybiBwcml2YXRlTWFwLmdldChyZWNlaXZlcik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHJlY2VpdmVyLCBwcml2YXRlTWFwLCB2YWx1ZSkge1xyXG4gICAgaWYgKCFwcml2YXRlTWFwLmhhcyhyZWNlaXZlcikpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXR0ZW1wdGVkIHRvIHNldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZVwiKTtcclxuICAgIH1cclxuICAgIHByaXZhdGVNYXAuc2V0KHJlY2VpdmVyLCB2YWx1ZSk7XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbn1cclxuIiwiaW1wb3J0IHsgQXBwLCBNb2RhbCwgTm90aWNlLCBQbHVnaW4sIFBsdWdpblNldHRpbmdUYWIsIFNldHRpbmcgfSBmcm9tICdvYnNpZGlhbic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIaWRlciBleHRlbmRzIFBsdWdpbiB7XHJcbiAgc2V0dGluZ3M6IEhpZGVyU2V0dGluZ3M7XHJcblxyXG4gIGFzeW5jIG9ubG9hZCgpIHtcclxuICAgIC8vIGxvYWQgc2V0dGluZ3NcclxuICAgIGF3YWl0IHRoaXMubG9hZFNldHRpbmdzKCk7XHJcblxyXG4gICAgLy8gYWRkIHRoZSBzZXR0aW5ncyB0YWJcclxuICAgIHRoaXMuYWRkU2V0dGluZ1RhYihuZXcgSGlkZXJTZXR0aW5nVGFiKHRoaXMuYXBwLCB0aGlzKSk7XHJcbiAgICAvLyBhZGQgdGhlIHRvZ2dsZSBvbi9vZmYgY29tbWFuZFxyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLXRhYi1jb250YWluZXJzJyxcclxuICAgICAgbmFtZTogJ1RvZ2dsZSB0YWIgYmFyJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmhpZGVUYWJzID0gIXRoaXMuc2V0dGluZ3MuaGlkZVRhYnM7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1hcHAtcmliYm9uJyxcclxuICAgICAgbmFtZTogJ1RvZ2dsZSBhcHAgcmliYm9uJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmhpZGVSaWJib24gPSAhdGhpcy5zZXR0aW5ncy5oaWRlUmliYm9uO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtaGlkZXItc3RhdHVzJyxcclxuICAgICAgbmFtZTogJ1RvZ2dsZSBzdGF0dXMgYmFyJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmhpZGVTdGF0dXMgPSAhdGhpcy5zZXR0aW5ncy5oaWRlU3RhdHVzO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5yZWZyZXNoKClcclxuICB9XHJcblxyXG4gIG9udW5sb2FkKCkge1xyXG4gICAgY29uc29sZS5sb2coJ1VubG9hZGluZyBIaWRlciBwbHVnaW4nKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGxvYWRTZXR0aW5ncygpIHtcclxuICAgIHRoaXMuc2V0dGluZ3MgPSBPYmplY3QuYXNzaWduKERFRkFVTFRfU0VUVElOR1MsIGF3YWl0IHRoaXMubG9hZERhdGEoKSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBzYXZlU2V0dGluZ3MoKSB7XHJcbiAgICBhd2FpdCB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gIH1cclxuXHJcbiAgLy8gcmVmcmVzaCBmdW5jdGlvbiBmb3Igd2hlbiB3ZSBjaGFuZ2Ugc2V0dGluZ3NcclxuICByZWZyZXNoID0gKCkgPT4ge1xyXG4gICAgLy8gcmUtbG9hZCB0aGUgc3R5bGVcclxuICAgIHRoaXMudXBkYXRlU3R5bGUoKVxyXG4gIH1cclxuXHJcbiAgLy8gdXBkYXRlIHRoZSBzdHlsZXMgKGF0IHRoZSBzdGFydCwgb3IgYXMgdGhlIHJlc3VsdCBvZiBhIHNldHRpbmdzIGNoYW5nZSlcclxuICB1cGRhdGVTdHlsZSA9ICgpID0+IHtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnaGlkZXItcmliYm9uJywgdGhpcy5zZXR0aW5ncy5oaWRlUmliYm9uKTtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnaGlkZXItc3RhdHVzJywgdGhpcy5zZXR0aW5ncy5oaWRlU3RhdHVzKTtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnaGlkZXItdGFicycsIHRoaXMuc2V0dGluZ3MuaGlkZVRhYnMpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdoaWRlci1zY3JvbGwnLCB0aGlzLnNldHRpbmdzLmhpZGVTY3JvbGwpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdoaWRlci1zaWRlYmFyLWJ1dHRvbnMnLCB0aGlzLnNldHRpbmdzLmhpZGVTaWRlYmFyQnV0dG9ucyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2hpZGVyLXRvb2x0aXBzJywgdGhpcy5zZXR0aW5ncy5oaWRlVG9vbHRpcHMpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdoaWRlci1zZWFyY2gtc3VnZ2VzdGlvbnMnLCB0aGlzLnNldHRpbmdzLmhpZGVTZWFyY2hTdWdnZXN0aW9ucyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2hpZGVyLWZpbGUtbmF2LWhlYWRlcicsIHRoaXMuc2V0dGluZ3MuaGlkZUZpbGVOYXZCdXR0b25zKTtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnaGlkZXItc2VhcmNoLWNvdW50cycsIHRoaXMuc2V0dGluZ3MuaGlkZVNlYXJjaENvdW50cyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2hpZGVyLWluc3RydWN0aW9ucycsIHRoaXMuc2V0dGluZ3MuaGlkZUluc3RydWN0aW9ucyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2hpZGVyLW1ldGEnLCB0aGlzLnNldHRpbmdzLmhpZGVNZXRhKTtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnaGlkZXItdmF1bHQnLCB0aGlzLnNldHRpbmdzLmhpZGVWYXVsdCk7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuaW50ZXJmYWNlIEhpZGVyU2V0dGluZ3Mge1xyXG4gIGhpZGVSaWJib246IGJvb2xlYW47XHJcbiAgaGlkZVN0YXR1czogYm9vbGVhbjtcclxuICBoaWRlVGFiczogYm9vbGVhbjtcclxuICBoaWRlU2Nyb2xsOiBib29sZWFuO1xyXG4gIGhpZGVTaWRlYmFyQnV0dG9uczogYm9vbGVhbjtcclxuICBoaWRlVG9vbHRpcHM6IGJvb2xlYW47XHJcbiAgaGlkZUZpbGVOYXZCdXR0b25zOiBib29sZWFuO1xyXG4gIGhpZGVTZWFyY2hTdWdnZXN0aW9uczogYm9vbGVhbjtcclxuICBoaWRlU2VhcmNoQ291bnRzOiBib29sZWFuO1xyXG4gIGhpZGVJbnN0cnVjdGlvbnM6IGJvb2xlYW47XHJcbiAgaGlkZU1ldGE6IGJvb2xlYW47XHJcbiAgaGlkZVZhdWx0OiBib29sZWFuO1xyXG59XHJcbmNvbnN0IERFRkFVTFRfU0VUVElOR1M6IEhpZGVyU2V0dGluZ3MgPSB7XHJcbiAgaGlkZVJpYmJvbjogZmFsc2UsXHJcbiAgaGlkZVN0YXR1czogZmFsc2UsXHJcbiAgaGlkZVRhYnM6IGZhbHNlLFxyXG4gIGhpZGVTY3JvbGw6IGZhbHNlLFxyXG4gIGhpZGVTaWRlYmFyQnV0dG9uczogZmFsc2UsXHJcbiAgaGlkZVRvb2x0aXBzOiBmYWxzZSxcclxuICBoaWRlRmlsZU5hdkJ1dHRvbnM6IGZhbHNlLFxyXG4gIGhpZGVTZWFyY2hTdWdnZXN0aW9uczogZmFsc2UsXHJcbiAgaGlkZVNlYXJjaENvdW50czogZmFsc2UsXHJcbiAgaGlkZUluc3RydWN0aW9uczogZmFsc2UsXHJcbiAgaGlkZU1ldGE6IGZhbHNlLFxyXG4gIGhpZGVWYXVsdDogZmFsc2VcclxufVxyXG5cclxuY2xhc3MgSGlkZXJTZXR0aW5nVGFiIGV4dGVuZHMgUGx1Z2luU2V0dGluZ1RhYiB7XHJcblxyXG5cclxuICBwbHVnaW46IEhpZGVyO1xyXG4gIGNvbnN0cnVjdG9yKGFwcDogQXBwLCBwbHVnaW46IEhpZGVyKSB7XHJcbiAgICBzdXBlcihhcHAsIHBsdWdpbik7XHJcbiAgICB0aGlzLnBsdWdpbiA9IHBsdWdpbjtcclxuICB9XHJcblxyXG4gIGRpc3BsYXkoKTogdm9pZCB7XHJcbiAgICBsZXQge2NvbnRhaW5lckVsfSA9IHRoaXM7XHJcblxyXG4gICAgY29udGFpbmVyRWwuZW1wdHkoKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ0hpZGUgYXBwIHJpYmJvbicpXHJcbiAgICAgIC5zZXREZXNjKCdIaWRlcyB0aGUgT2JzaWRpYW4gbWVudS4gV2FybmluZzogdG8gb3BlbiBTZXR0aW5ncyB5b3Ugd2lsbCBuZWVkIHVzZSB0aGUgaG90a2V5IChkZWZhdWx0IGlzIENNRCArICwpJylcclxuICAgICAgLmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmhpZGVSaWJib24pXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmhpZGVSaWJib24gPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnSGlkZSB0YWIgYmFyJylcclxuICAgICAgLnNldERlc2MoJ0hpZGVzIHRoZSB0YWIgY29udGFpbmVyIGF0IHRoZSB0b3Agb2YgdGhlIHdpbmRvdycpXHJcbiAgICAgIC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5oaWRlVGFicylcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVRhYnMgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnSGlkZSBzdGF0dXMgYmFyJylcclxuICAgICAgLnNldERlc2MoJ0hpZGVzIHdvcmQgY291bnQsIGNoYXJhY3RlciBjb3VudCBhbmQgYmFja2xpbmsgY291bnQnKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVN0YXR1cylcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVN0YXR1cyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdIaWRlIHZhdWx0IG5hbWUnKVxyXG4gICAgICAuc2V0RGVzYygnSGlkZXMgdGhlIHJvb3QgZm9sZGVyIG5hbWUnKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVZhdWx0KVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5oaWRlVmF1bHQgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnSGlkZSBzY3JvbGwgYmFycycpXHJcbiAgICAgIC5zZXREZXNjKCdIaWRlcyBhbGwgc2Nyb2xsIGJhcnMnKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVNjcm9sbClcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVNjcm9sbCA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdIaWRlIHNpZGViYXIgdG9nZ2xlIGJ1dHRvbnMnKVxyXG4gICAgICAuc2V0RGVzYygnSGlkZXMgYm90aCBzaWRlYmFyIGJ1dHRvbnMnKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVNpZGViYXJCdXR0b25zKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5oaWRlU2lkZWJhckJ1dHRvbnMgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnSGlkZSB0b29sdGlwcycpXHJcbiAgICAgIC5zZXREZXNjKCdIaWRlcyBhbGwgdG9vbHRpcHMnKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVRvb2x0aXBzKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5oaWRlVG9vbHRpcHMgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnSGlkZSBmaWxlIGV4cGxvcmVyIGJ1dHRvbnMnKVxyXG4gICAgICAuc2V0RGVzYygnSGlkZXMgYnV0dG9ucyBhdCB0aGUgdG9wIG9mIGZpbGUgZXhwbG9yZXIgKG5ldyBmaWxlLCBuZXcgZm9sZGVyLCBldGMpJylcclxuICAgICAgLmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmhpZGVGaWxlTmF2QnV0dG9ucylcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZUZpbGVOYXZCdXR0b25zID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ0hpZGUgaW5zdHJ1Y3Rpb25zJylcclxuICAgICAgLnNldERlc2MoJ0hpZGVzIGluc3RydWN0aW9uYWwgdGlwcyBpbiBtb2RhbHMnKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZUluc3RydWN0aW9ucylcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZUluc3RydWN0aW9ucyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdIaWRlIHNlYXJjaCBzdWdnZXN0aW9ucycpXHJcbiAgICAgIC5zZXREZXNjKCdIaWRlcyBzdWdnZXN0aW9ucyBpbiBzZWFyY2ggcGFuZScpXHJcbiAgICAgIC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5oaWRlU2VhcmNoU3VnZ2VzdGlvbnMpXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmhpZGVTZWFyY2hTdWdnZXN0aW9ucyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdIaWRlIGNvdW50IG9mIHNlYXJjaCB0ZXJtIG1hdGNoZXMnKVxyXG4gICAgICAuc2V0RGVzYygnSGlkZXMgdGhlIG51bWJlciBvZiBtYXRjaGVzIHdpdGhpbiBlYWNoIHNlYXJjaCByZXN1bHQnKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVNlYXJjaENvdW50cylcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVNlYXJjaENvdW50cyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdIaWRlIG1ldGFkYXRhIGJsb2NrIGluIFJlYWRpbmcgdmlldycpXHJcbiAgICAgIC5zZXREZXNjKCdXaGVuIGZyb250IG1hdHRlciBpcyB0dXJuZWQgb2ZmIGluIHlvdXIgRWRpdG9yIHNldHRpbmdzIHRoaXMgaGlkZXMgdGhlIG1ldGFkYXRhIGJsb2NrJylcclxuICAgICAgLmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmhpZGVNZXRhKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5oaWRlTWV0YSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcblxyXG5cclxuXHJcbiAgfVxyXG59XHJcbiJdLCJuYW1lcyI6WyJQbHVnaW4iLCJQbHVnaW5TZXR0aW5nVGFiIiwiU2V0dGluZyJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFxREE7QUFDTyxTQUFTLFNBQVMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUU7QUFDN0QsSUFBSSxTQUFTLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLEtBQUssWUFBWSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLFVBQVUsT0FBTyxFQUFFLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7QUFDaEgsSUFBSSxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxVQUFVLE9BQU8sRUFBRSxNQUFNLEVBQUU7QUFDL0QsUUFBUSxTQUFTLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO0FBQ25HLFFBQVEsU0FBUyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO0FBQ3RHLFFBQVEsU0FBUyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDLElBQUksR0FBRyxPQUFP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 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsIm1haW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbkFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbk9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UgKi9cclxuXHJcbnZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikge1xyXG4gICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxyXG4gICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcclxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYiwgcCkpIGRbcF0gPSBiW3BdOyB9O1xyXG4gICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19leHRlbmRzKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2Fzc2lnbiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcclxuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVzdChzLCBlKSB7XHJcbiAgICB2YXIgdCA9IHt9O1xyXG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXHJcbiAgICAgICAgdFtwXSA9IHNbcF07XHJcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXHJcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgICAgICB9XHJcbiAgICByZXR1cm4gdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcclxuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xyXG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcclxuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3BhcmFtKHBhcmFtSW5kZXgsIGRlY29yYXRvcikge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKSB7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZ2VuZXJhdG9yKHRoaXNBcmcsIGJvZHkpIHtcclxuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XHJcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xyXG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxyXG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdmFyIF9fY3JlYXRlQmluZGluZyA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcclxuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XHJcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgb1trMl0gPSBtW2tdO1xyXG59KTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4cG9ydFN0YXIobSwgbykge1xyXG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBwKSkgX19jcmVhdGVCaW5kaW5nKG8sIG0sIHApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xyXG4gICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDtcclxuICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pO1xyXG4gICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xyXG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xyXG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xyXG4gICAgaWYgKCFtKSByZXR1cm4gbztcclxuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxyXG4gICAgZmluYWxseSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWQoKSB7XHJcbiAgICBmb3IgKHZhciBhciA9IFtdLCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKylcclxuICAgICAgICBhciA9IGFyLmNvbmNhdChfX3JlYWQoYXJndW1lbnRzW2ldKSk7XHJcbiAgICByZXR1cm4gYXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5cygpIHtcclxuICAgIGZvciAodmFyIHMgPSAwLCBpID0gMCwgaWwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgaWw7IGkrKykgcyArPSBhcmd1bWVudHNbaV0ubGVuZ3RoO1xyXG4gICAgZm9yICh2YXIgciA9IEFycmF5KHMpLCBrID0gMCwgaSA9IDA7IGkgPCBpbDsgaSsrKVxyXG4gICAgICAgIGZvciAodmFyIGEgPSBhcmd1bWVudHNbaV0sIGogPSAwLCBqbCA9IGEubGVuZ3RoOyBqIDwgamw7IGorKywgaysrKVxyXG4gICAgICAgICAgICByW2tdID0gYVtqXTtcclxuICAgIHJldHVybiByO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXQodikge1xyXG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBfX2F3YWl0ID8gKHRoaXMudiA9IHYsIHRoaXMpIDogbmV3IF9fYXdhaXQodik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jR2VuZXJhdG9yKHRoaXNBcmcsIF9hcmd1bWVudHMsIGdlbmVyYXRvcikge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBnID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pLCBpLCBxID0gW107XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaWYgKGdbbl0pIGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7IHRyeSB7IHN0ZXAoZ1tuXSh2KSk7IH0gY2F0Y2ggKGUpIHsgc2V0dGxlKHFbMF1bM10sIGUpOyB9IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAocikgeyByLnZhbHVlIGluc3RhbmNlb2YgX19hd2FpdCA/IFByb21pc2UucmVzb2x2ZShyLnZhbHVlLnYpLnRoZW4oZnVsZmlsbCwgcmVqZWN0KSA6IHNldHRsZShxWzBdWzJdLCByKTsgfVxyXG4gICAgZnVuY3Rpb24gZnVsZmlsbCh2YWx1ZSkgeyByZXN1bWUoXCJuZXh0XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsgaWYgKGYodiksIHEuc2hpZnQoKSwgcS5sZW5ndGgpIHJlc3VtZShxWzBdWzBdLCBxWzBdWzFdKTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0RlbGVnYXRvcihvKSB7XHJcbiAgICB2YXIgaSwgcDtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaVtuXSA9IG9bbl0gPyBmdW5jdGlvbiAodikgeyByZXR1cm4gKHAgPSAhcCkgPyB7IHZhbHVlOiBfX2F3YWl0KG9bbl0odikpLCBkb25lOiBuID09PSBcInJldHVyblwiIH0gOiBmID8gZih2KSA6IHY7IH0gOiBmOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jVmFsdWVzKG8pIHtcclxuICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICB2YXIgbSA9IG9bU3ltYm9sLmFzeW5jSXRlcmF0b3JdLCBpO1xyXG4gICAgcmV0dXJuIG0gPyBtLmNhbGwobykgOiAobyA9IHR5cGVvZiBfX3ZhbHVlcyA9PT0gXCJmdW5jdGlvblwiID8gX192YWx1ZXMobykgOiBvW1N5bWJvbC5pdGVyYXRvcl0oKSwgaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGkpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IGlbbl0gPSBvW25dICYmIGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7IHYgPSBvW25dKHYpLCBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCB2LmRvbmUsIHYudmFsdWUpOyB9KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgZCwgdikgeyBQcm9taXNlLnJlc29sdmUodikudGhlbihmdW5jdGlvbih2KSB7IHJlc29sdmUoeyB2YWx1ZTogdiwgZG9uZTogZCB9KTsgfSwgcmVqZWN0KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19tYWtlVGVtcGxhdGVPYmplY3QoY29va2VkLCByYXcpIHtcclxuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XHJcbiAgICByZXR1cm4gY29va2VkO1xyXG59O1xyXG5cclxudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xyXG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcclxuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydFN0YXIobW9kKSB7XHJcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xyXG4gICAgdmFyIHJlc3VsdCA9IHt9O1xyXG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xyXG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydERlZmF1bHQobW9kKSB7XHJcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IGRlZmF1bHQ6IG1vZCB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEdldChyZWNlaXZlciwgcHJpdmF0ZU1hcCkge1xyXG4gICAgaWYgKCFwcml2YXRlTWFwLmhhcyhyZWNlaXZlcikpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXR0ZW1wdGVkIHRvIGdldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZVwiKTtcclxuICAgIH1cclxuICAgIHJldHVybiBwcml2YXRlTWFwLmdldChyZWNlaXZlcik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHJlY2VpdmVyLCBwcml2YXRlTWFwLCB2YWx1ZSkge1xyXG4gICAgaWYgKCFwcml2YXRlTWFwLmhhcyhyZWNlaXZlcikpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXR0ZW1wdGVkIHRvIHNldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZVwiKTtcclxuICAgIH1cclxuICAgIHByaXZhdGVNYXAuc2V0KHJlY2VpdmVyLCB2YWx1ZSk7XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbn1cclxuIiwiaW1wb3J0IHsgQXBwLCBNb2RhbCwgTm90aWNlLCBQbHVnaW4sIFBsdWdpblNldHRpbmdUYWIsIFNldHRpbmcgfSBmcm9tICdvYnNpZGlhbic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIaWRlciBleHRlbmRzIFBsdWdpbiB7XHJcbiAgc2V0dGluZ3M6IEhpZGVyU2V0dGluZ3M7XHJcblxyXG4gIGFzeW5jIG9ubG9hZCgpIHtcclxuICAgIC8vIGxvYWQgc2V0dGluZ3NcclxuICAgIGF3YWl0IHRoaXMubG9hZFNldHRpbmdzKCk7XHJcblxyXG4gICAgLy8gYWRkIHRoZSBzZXR0aW5ncyB0YWJcclxuICAgIHRoaXMuYWRkU2V0dGluZ1RhYihuZXcgSGlkZXJTZXR0aW5nVGFiKHRoaXMuYXBwLCB0aGlzKSk7XHJcbiAgICAvLyBhZGQgdGhlIHRvZ2dsZSBvbi9vZmYgY29tbWFuZFxyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLXRhYi1jb250YWluZXJzJyxcclxuICAgICAgbmFtZTogJ1RvZ2dsZSB0YWIgYmFyJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmhpZGVUYWJzID0gIXRoaXMuc2V0dGluZ3MuaGlkZVRhYnM7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1hcHAtcmliYm9uJyxcclxuICAgICAgbmFtZTogJ1RvZ2dsZSBhcHAgcmliYm9uJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmhpZGVSaWJib24gPSAhdGhpcy5zZXR0aW5ncy5oaWRlUmliYm9uO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtaGlkZXItc3RhdHVzJyxcclxuICAgICAgbmFtZTogJ1RvZ2dsZSBzdGF0dXMgYmFyJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmhpZGVTdGF0dXMgPSAhdGhpcy5zZXR0aW5ncy5oaWRlU3RhdHVzO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5yZWZyZXNoKClcclxuICB9XHJcblxyXG4gIG9udW5sb2FkKCkge1xyXG4gICAgY29uc29sZS5sb2coJ1VubG9hZGluZyBIaWRlciBwbHVnaW4nKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGxvYWRTZXR0aW5ncygpIHtcclxuICAgIHRoaXMuc2V0dGluZ3MgPSBPYmplY3QuYXNzaWduKERFRkFVTFRfU0VUVElOR1MsIGF3YWl0IHRoaXMubG9hZERhdGEoKSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBzYXZlU2V0dGluZ3MoKSB7XHJcbiAgICBhd2FpdCB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gIH1cclxuXHJcbiAgLy8gcmVmcmVzaCBmdW5jdGlvbiBmb3Igd2hlbiB3ZSBjaGFuZ2Ugc2V0dGluZ3NcclxuICByZWZyZXNoID0gKCkgPT4ge1xyXG4gICAgLy8gcmUtbG9hZCB0aGUgc3R5bGVcclxuICAgIHRoaXMudXBkYXRlU3R5bGUoKVxyXG4gIH1cclxuXHJcbiAgLy8gdXBkYXRlIHRoZSBzdHlsZXMgKGF0IHRoZSBzdGFydCwgb3IgYXMgdGhlIHJlc3VsdCBvZiBhIHNldHRpbmdzIGNoYW5nZSlcclxuICB1cGRhdGVTdHlsZSA9ICgpID0+IHtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnaGlkZXItcmliYm9uJywgdGhpcy5zZXR0aW5ncy5oaWRlUmliYm9uKTtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnaGlkZXItc3RhdHVzJywgdGhpcy5zZXR0aW5ncy5oaWRlU3RhdHVzKTtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnaGlkZXItdGFicycsIHRoaXMuc2V0dGluZ3MuaGlkZVRhYnMpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdoaWRlci1zY3JvbGwnLCB0aGlzLnNldHRpbmdzLmhpZGVTY3JvbGwpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdoaWRlci1zaWRlYmFyLWJ1dHRvbnMnLCB0aGlzLnNldHRpbmdzLmhpZGVTaWRlYmFyQnV0dG9ucyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2hpZGVyLXRvb2x0aXBzJywgdGhpcy5zZXR0aW5ncy5oaWRlVG9vbHRpcHMpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdoaWRlci1zZWFyY2gtc3VnZ2VzdGlvbnMnLCB0aGlzLnNldHRpbmdzLmhpZGVTZWFyY2hTdWdnZXN0aW9ucyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2hpZGVyLWZpbGUtbmF2LWhlYWRlcicsIHRoaXMuc2V0dGluZ3MuaGlkZUZpbGVOYXZCdXR0b25zKTtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnaGlkZXItc2VhcmNoLWNvdW50cycsIHRoaXMuc2V0dGluZ3MuaGlkZVNlYXJjaENvdW50cyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2hpZGVyLWluc3RydWN0aW9ucycsIHRoaXMuc2V0dGluZ3MuaGlkZUluc3RydWN0aW9ucyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2hpZGVyLW1ldGEnLCB0aGlzLnNldHRpbmdzLmhpZGVQcm9wZXJ0aWVzUmVhZGluZyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2hpZGVyLXZhdWx0JywgdGhpcy5zZXR0aW5ncy5oaWRlVmF1bHQpO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbmludGVyZmFjZSBIaWRlclNldHRpbmdzIHtcclxuICBoaWRlUmliYm9uOiBib29sZWFuO1xyXG4gIGhpZGVTdGF0dXM6IGJvb2xlYW47XHJcbiAgaGlkZVRhYnM6IGJvb2xlYW47XHJcbiAgaGlkZVNjcm9sbDogYm9vbGVhbjtcclxuICBoaWRlU2lkZWJhckJ1dHRvbnM6IGJvb2xlYW47XHJcbiAgaGlkZVRvb2x0aXBzOiBib29sZWFuO1xyXG4gIGhpZGVGaWxlTmF2QnV0dG9uczogYm9vbGVhbjtcclxuICBoaWRlU2VhcmNoU3VnZ2VzdGlvbnM6IGJvb2xlYW47XHJcbiAgaGlkZVNlYXJjaENvdW50czogYm9vbGVhbjtcclxuICBoaWRlSW5zdHJ1Y3Rpb25zOiBib29sZWFuO1xyXG4gIGhpZGVQcm9wZXJ0aWVzUmVhZGluZzogYm9vbGVhbjtcclxuICBoaWRlVmF1bHQ6IGJvb2xlYW47XHJcbn1cclxuY29uc3QgREVGQVVMVF9TRVRUSU5HUzogSGlkZXJTZXR0aW5ncyA9IHtcclxuICBoaWRlUmliYm9uOiBmYWxzZSxcclxuICBoaWRlU3RhdHVzOiBmYWxzZSxcclxuICBoaWRlVGFiczogZmFsc2UsXHJcbiAgaGlkZVNjcm9sbDogZmFsc2UsXHJcbiAgaGlkZVNpZGViYXJCdXR0b25zOiBmYWxzZSxcclxuICBoaWRlVG9vbHRpcHM6IGZhbHNlLFxyXG4gIGhpZGVGaWxlTmF2QnV0dG9uczogZmFsc2UsXHJcbiAgaGlkZVNlYXJjaFN1Z2dlc3Rpb25zOiBmYWxzZSxcclxuICBoaWRlU2VhcmNoQ291bnRzOiBmYWxzZSxcclxuICBoaWRlSW5zdHJ1Y3Rpb25zOiBmYWxzZSxcclxuICBoaWRlUHJvcGVydGllc1JlYWRpbmc6IGZhbHNlLFxyXG4gIGhpZGVWYXVsdDogZmFsc2VcclxufVxyXG5cclxuY2xhc3MgSGlkZXJTZXR0aW5nVGFiIGV4dGVuZHMgUGx1Z2luU2V0dGluZ1RhYiB7XHJcblxyXG5cclxuICBwbHVnaW46IEhpZGVyO1xyXG4gIGNvbnN0cnVjdG9yKGFwcDogQXBwLCBwbHVnaW46IEhpZGVyKSB7XHJcbiAgICBzdXBlcihhcHAsIHBsdWdpbik7XHJcbiAgICB0aGlzLnBsdWdpbiA9IHBsdWdpbjtcclxuICB9XHJcblxyXG4gIGRpc3BsYXkoKTogdm9pZCB7XHJcbiAgICBsZXQge2NvbnRhaW5lckVsfSA9IHRoaXM7XHJcblxyXG4gICAgY29udGFpbmVyRWwuZW1wdHkoKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ0hpZGUgYXBwIHJpYmJvbicpXHJcbiAgICAgIC5zZXREZXNjKCdIaWRlcyB0aGUgT2JzaWRpYW4gbWVudS4gV2FybmluZzogdG8gb3BlbiBTZXR0aW5ncyB5b3Ugd2lsbCBuZWVkIHVzZSB0aGUgaG90a2V5IChkZWZhdWx0IGlzIENNRCArICwpJylcclxuICAgICAgLmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmhpZGVSaWJib24pXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmhpZGVSaWJib24gPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnSGlkZSB0YWIgYmFyJylcclxuICAgICAgLnNldERlc2MoJ0hpZGVzIHRoZSB0YWIgY29udGFpbmVyIGF0IHRoZSB0b3Agb2YgdGhlIHdpbmRvdycpXHJcbiAgICAgIC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5oaWRlVGFicylcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVRhYnMgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnSGlkZSBzdGF0dXMgYmFyJylcclxuICAgICAgLnNldERlc2MoJ0hpZGVzIHdvcmQgY291bnQsIGNoYXJhY3RlciBjb3VudCBhbmQgYmFja2xpbmsgY291bnQnKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVN0YXR1cylcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVN0YXR1cyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdIaWRlIHZhdWx0IG5hbWUnKVxyXG4gICAgICAuc2V0RGVzYygnSGlkZXMgdGhlIHJvb3QgZm9sZGVyIG5hbWUnKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVZhdWx0KVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5oaWRlVmF1bHQgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnSGlkZSBzY3JvbGwgYmFycycpXHJcbiAgICAgIC5zZXREZXNjKCdIaWRlcyBhbGwgc2Nyb2xsIGJhcnMnKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVNjcm9sbClcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVNjcm9sbCA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdIaWRlIHNpZGViYXIgdG9nZ2xlIGJ1dHRvbnMnKVxyXG4gICAgICAuc2V0RGVzYygnSGlkZXMgYm90aCBzaWRlYmFyIGJ1dHRvbnMnKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVNpZGViYXJCdXR0b25zKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5oaWRlU2lkZWJhckJ1dHRvbnMgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnSGlkZSB0b29sdGlwcycpXHJcbiAgICAgIC5zZXREZXNjKCdIaWRlcyBhbGwgdG9vbHRpcHMnKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVRvb2x0aXBzKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5oaWRlVG9vbHRpcHMgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnSGlkZSBmaWxlIGV4cGxvcmVyIGJ1dHRvbnMnKVxyXG4gICAgICAuc2V0RGVzYygnSGlkZXMgYnV0dG9ucyBhdCB0aGUgdG9wIG9mIGZpbGUgZXhwbG9yZXIgKG5ldyBmaWxlLCBuZXcgZm9sZGVyLCBldGMpJylcclxuICAgICAgLmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmhpZGVGaWxlTmF2QnV0dG9ucylcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZUZpbGVOYXZCdXR0b25zID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ0hpZGUgaW5zdHJ1Y3Rpb25zJylcclxuICAgICAgLnNldERlc2MoJ0hpZGVzIGluc3RydWN0aW9uYWwgdGlwcyBpbiBtb2RhbHMnKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZUluc3RydWN0aW9ucylcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZUluc3RydWN0aW9ucyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdIaWRlIHNlYXJjaCBzdWdnZXN0aW9ucycpXHJcbiAgICAgIC5zZXREZXNjKCdIaWRlcyBzdWdnZXN0aW9ucyBpbiBzZWFyY2ggcGFuZScpXHJcbiAgICAgIC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5oaWRlU2VhcmNoU3VnZ2VzdGlvbnMpXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmhpZGVTZWFyY2hTdWdnZXN0aW9ucyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdIaWRlIGNvdW50IG9mIHNlYXJjaCB0ZXJtIG1hdGNoZXMnKVxyXG4gICAgICAuc2V0RGVzYygnSGlkZXMgdGhlIG51bWJlciBvZiBtYXRjaGVzIHdpdGhpbiBlYWNoIHNlYXJjaCByZXN1bHQnKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVNlYXJjaENvdW50cylcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVNlYXJjaENvdW50cyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdIaWRlIHByb3BlcnRpZXMgaW4gUmVhZGluZyB2aWV3JylcclxuICAgICAgLnNldERlc2MoJ0hpZGVzIHRoZSBwcm9wZXJ0aWVzIHNlY3Rpb24gaW4gUmVhZGluZyB2aWV3JylcclxuICAgICAgLmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmhpZGVQcm9wZXJ0aWVzUmVhZGluZylcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVByb3BlcnRpZXNSZWFkaW5nID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKTtcclxuXHJcblxyXG5cclxuICB9XHJcbn1cclxuIl0sIm5hbWVzIjpbIlBsdWdpbiIsIlBsdWdpblNldHRpbmdUYWIiLCJTZXR0aW5nIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXFEQTtBQUNPLFNBQVMsU0FBUyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRTtBQUM3RCxJQUFJLFNBQVMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sS0FBSyxZQUFZLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsVUFBVSxPQUFPLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtBQUNoSCxJQUFJLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxFQUFFLFVBQVUsT0FBTyxFQUFFLE1BQU0sRUFBRTtBQUMvRCxRQUFRLFNBQVMsU0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7QUFDbkcsUUFBUSxTQUFTLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7QUFDdEcsUUFBUSxTQUFTLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFN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 diff --git a/.obsidian/plugins/obsidian-hider/manifest.json b/.obsidian/plugins/obsidian-hider/manifest.json index 13983eb2..583c60e4 100644 --- a/.obsidian/plugins/obsidian-hider/manifest.json +++ b/.obsidian/plugins/obsidian-hider/manifest.json @@ -1,8 +1,8 @@ { "id": "obsidian-hider", "name": "Hider", - "version": "1.2.5", - "minAppVersion": "0.16.0", + "version": "1.3.1", + "minAppVersion": "1.4.0", "description": "Hide UI elements such as tooltips, status, titlebar and more", "author": "@kepano", "authorUrl": "https://www.twitter.com/kepano", diff --git a/.obsidian/plugins/obsidian-hider/styles.css b/.obsidian/plugins/obsidian-hider/styles.css index 094973e0..1f79815a 100644 --- a/.obsidian/plugins/obsidian-hider/styles.css +++ b/.obsidian/plugins/obsidian-hider/styles.css @@ -37,7 +37,7 @@ } /* Hide meta */ -.hider-meta .frontmatter-container { +.hider-meta .markdown-reading-view .metadata-container { display:none; } diff --git a/.obsidian/plugins/obsidian-minimal-settings/main.js b/.obsidian/plugins/obsidian-minimal-settings/main.js index b94a1525..17aca9e5 100644 --- a/.obsidian/plugins/obsidian-minimal-settings/main.js +++ b/.obsidian/plugins/obsidian-minimal-settings/main.js @@ -380,6 +380,16 @@ var MinimalTheme = class extends import_obsidian.Plugin { this.updateLightStyle(); } }); + this.addCommand({ + id: "toggle-minimal-eink-light", + name: "Switch light color scheme to Eink (light)", + callback: () => { + this.settings.lightScheme = "minimal-eink-light"; + this.saveData(this.settings); + this.updateLightScheme(); + this.updateLightStyle(); + } + }); this.addCommand({ id: "toggle-minimal-everforest-light", name: "Switch light color scheme to Everforest (light)", @@ -452,7 +462,7 @@ var MinimalTheme = class extends import_obsidian.Plugin { }); this.addCommand({ id: "toggle-minimal-atom-dark", - name: "Switch color scheme to Atom (dark)", + name: "Switch dark color scheme to Atom (dark)", callback: () => { this.settings.darkScheme = "minimal-atom-dark"; this.saveData(this.settings); @@ -462,7 +472,7 @@ var MinimalTheme = class extends import_obsidian.Plugin { }); this.addCommand({ id: "toggle-minimal-ayu-dark", - name: "Switch color scheme to Ayu (dark)", + name: "Switch dark color scheme to Ayu (dark)", callback: () => { this.settings.darkScheme = "minimal-ayu-dark"; this.saveData(this.settings); @@ -482,7 +492,7 @@ var MinimalTheme = class extends import_obsidian.Plugin { }); this.addCommand({ id: "toggle-minimal-dracula-dark", - name: "Switch color scheme to Dracula (dark)", + name: "Switch dark color scheme to Dracula (dark)", callback: () => { this.settings.darkScheme = "minimal-dracula-dark"; this.saveData(this.settings); @@ -511,10 +521,10 @@ var MinimalTheme = class extends import_obsidian.Plugin { } }); this.addCommand({ - id: "toggle-minimal-everforest-dark", - name: "Switch dark color scheme to Everforest (dark)", + id: "toggle-minimal-eink-dark", + name: "Switch dark color scheme to Eink (dark)", callback: () => { - this.settings.darkScheme = "minimal-everforest-dark"; + this.settings.darkScheme = "minimal-eink-dark"; this.saveData(this.settings); this.updateDarkScheme(); this.updateDarkStyle(); @@ -522,7 +532,7 @@ var MinimalTheme = class extends import_obsidian.Plugin { }); this.addCommand({ id: "toggle-minimal-macos-dark", - name: "Switch light color scheme to macOS (dark)", + name: "Switch dark color scheme to macOS (dark)", callback: () => { this.settings.darkScheme = "minimal-macos-dark"; this.saveData(this.settings); @@ -552,7 +562,7 @@ var MinimalTheme = class extends import_obsidian.Plugin { }); this.addCommand({ id: "toggle-minimal-rose-pine-dark", - name: "Switch color scheme to Ros\xE9 Pine (dark)", + name: "Switch dark color scheme to Ros\xE9 Pine (dark)", callback: () => { this.settings.darkScheme = "minimal-rose-pine-dark"; this.saveData(this.settings); @@ -676,11 +686,11 @@ var MinimalTheme = class extends import_obsidian.Plugin { this.app.workspace.trigger("css-change"); } updateDarkScheme() { - document.body.removeClass("minimal-atom-dark", "minimal-ayu-dark", "minimal-catppuccin-dark", "minimal-default-dark", "minimal-dracula-dark", "minimal-everforest-dark", "minimal-gruvbox-dark", "minimal-macos-dark", "minimal-nord-dark", "minimal-notion-dark", "minimal-rose-pine-dark", "minimal-solarized-dark", "minimal-things-dark"); + document.body.removeClass("minimal-atom-dark", "minimal-ayu-dark", "minimal-catppuccin-dark", "minimal-default-dark", "minimal-dracula-dark", "minimal-eink-dark", "minimal-everforest-dark", "minimal-gruvbox-dark", "minimal-macos-dark", "minimal-nord-dark", "minimal-notion-dark", "minimal-rose-pine-dark", "minimal-solarized-dark", "minimal-things-dark"); document.body.addClass(this.settings.darkScheme); } updateLightScheme() { - document.body.removeClass("minimal-atom-light", "minimal-ayu-light", "minimal-catppuccin-light", "minimal-default-light", "minimal-everforest-light", "minimal-gruvbox-light", "minimal-macos-light", "minimal-nord-light", "minimal-notion-light", "minimal-rose-pine-light", "minimal-solarized-light", "minimal-things-light"); + document.body.removeClass("minimal-atom-light", "minimal-ayu-light", "minimal-catppuccin-light", "minimal-default-light", "minimal-eink-light", "minimal-everforest-light", "minimal-gruvbox-light", "minimal-macos-light", "minimal-nord-light", "minimal-notion-light", "minimal-rose-pine-light", "minimal-solarized-light", "minimal-things-light"); document.body.addClass(this.settings.lightScheme); } updateTheme() { @@ -739,48 +749,48 @@ var MinimalSettingTab = class extends import_obsidian.PluginSettingTab { containerEl.empty(); containerEl.createEl("h3", { text: "Minimal Theme Settings" }); const mainDesc = containerEl.createEl("p"); - mainDesc.appendText("Need help? Explore the "); + mainDesc.appendText("For help, "); mainDesc.appendChild(createEl("a", { - text: "Minimal documentation", + text: "see documentation", href: "https://minimal.guide" })); - mainDesc.appendText(" or visit the "); + mainDesc.appendText(" or join "); mainDesc.appendChild(createEl("strong", { text: "#minimal" })); - mainDesc.appendText(" channel in the official Obsidian Discord. You can support continued development by "); + mainDesc.appendText(" in the "); mainDesc.appendChild(createEl("a", { - text: "buying me a coffee", - href: "https://www.buymeacoffee.com/kepano" + text: "Obsidian Discord", + href: "https://obsidian.md/community" })); - mainDesc.appendText(" \u2615"); + mainDesc.appendText(" community."); containerEl.createEl("br"); containerEl.createEl("h3", { text: "Color scheme" }); const colorDesc = containerEl.createEl("p"); colorDesc.appendChild(createEl("span", { - text: "To create a completely custom color scheme use " + text: "To create a custom color scheme use the " })); colorDesc.appendChild(createEl("a", { - text: "Style Settings plugin", + text: "Style Settings", href: "obsidian://show-plugin?id=obsidian-style-settings" })); - colorDesc.appendText("."); - new import_obsidian.Setting(containerEl).setName("Light mode color scheme").setDesc("Preset color options for light mode").addDropdown((dropdown) => dropdown.addOption("minimal-default-light", "Default").addOption("minimal-atom-light", "Atom").addOption("minimal-ayu-light", "Ayu").addOption("minimal-catppuccin-light", "Catppuccin").addOption("minimal-everforest-light", "Everforest").addOption("minimal-gruvbox-light", "Gruvbox").addOption("minimal-macos-light", "macOS").addOption("minimal-nord-light", "Nord").addOption("minimal-notion-light", "Notion").addOption("minimal-rose-pine-light", "Ros\xE9 Pine").addOption("minimal-solarized-light", "Solarized").addOption("minimal-things-light", "Things").setValue(this.plugin.settings.lightScheme).onChange((value) => { + colorDesc.appendText(" plugin."); + new import_obsidian.Setting(containerEl).setName("Light mode color scheme").setDesc("Preset color options for light mode.").addDropdown((dropdown) => dropdown.addOption("minimal-default-light", "Default").addOption("minimal-atom-light", "Atom").addOption("minimal-ayu-light", "Ayu").addOption("minimal-catppuccin-light", "Catppuccin").addOption("minimal-eink-light", "Eink (beta)").addOption("minimal-everforest-light", "Everforest").addOption("minimal-gruvbox-light", "Gruvbox").addOption("minimal-macos-light", "macOS").addOption("minimal-nord-light", "Nord").addOption("minimal-notion-light", "Notion").addOption("minimal-rose-pine-light", "Ros\xE9 Pine").addOption("minimal-solarized-light", "Solarized").addOption("minimal-things-light", "Things").setValue(this.plugin.settings.lightScheme).onChange((value) => { this.plugin.settings.lightScheme = value; this.plugin.saveData(this.plugin.settings); this.plugin.updateLightScheme(); })); - new import_obsidian.Setting(containerEl).setName("Light mode background contrast").setDesc("Level of contrast between sidebar and main content").addDropdown((dropdown) => dropdown.addOption("minimal-light", "Default").addOption("minimal-light-white", "All white").addOption("minimal-light-tonal", "Low contrast").addOption("minimal-light-contrast", "High contrast").setValue(this.plugin.settings.lightStyle).onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Light mode background contrast").setDesc("Level of contrast between sidebar and main content.").addDropdown((dropdown) => dropdown.addOption("minimal-light", "Default").addOption("minimal-light-white", "All white").addOption("minimal-light-tonal", "Low contrast").addOption("minimal-light-contrast", "High contrast").setValue(this.plugin.settings.lightStyle).onChange((value) => { this.plugin.settings.lightStyle = value; this.plugin.saveData(this.plugin.settings); this.plugin.updateLightStyle(); })); - new import_obsidian.Setting(containerEl).setName("Dark mode color scheme").setDesc("Preset colors options for dark mode").addDropdown((dropdown) => dropdown.addOption("minimal-default-dark", "Default").addOption("minimal-atom-dark", "Atom").addOption("minimal-ayu-dark", "Ayu").addOption("minimal-catppuccin-dark", "Catppuccin").addOption("minimal-dracula-dark", "Dracula").addOption("minimal-everforest-dark", "Everforest").addOption("minimal-gruvbox-dark", "Gruvbox").addOption("minimal-macos-dark", "macOS").addOption("minimal-nord-dark", "Nord").addOption("minimal-notion-dark", "Notion").addOption("minimal-rose-pine-dark", "Ros\xE9 Pine").addOption("minimal-solarized-dark", "Solarized").addOption("minimal-things-dark", "Things").setValue(this.plugin.settings.darkScheme).onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Dark mode color scheme").setDesc("Preset colors options for dark mode.").addDropdown((dropdown) => dropdown.addOption("minimal-default-dark", "Default").addOption("minimal-atom-dark", "Atom").addOption("minimal-ayu-dark", "Ayu").addOption("minimal-catppuccin-dark", "Catppuccin").addOption("minimal-dracula-dark", "Dracula").addOption("minimal-eink-dark", "Eink (beta)").addOption("minimal-everforest-dark", "Everforest").addOption("minimal-gruvbox-dark", "Gruvbox").addOption("minimal-macos-dark", "macOS").addOption("minimal-nord-dark", "Nord").addOption("minimal-notion-dark", "Notion").addOption("minimal-rose-pine-dark", "Ros\xE9 Pine").addOption("minimal-solarized-dark", "Solarized").addOption("minimal-things-dark", "Things").setValue(this.plugin.settings.darkScheme).onChange((value) => { this.plugin.settings.darkScheme = value; this.plugin.saveData(this.plugin.settings); this.plugin.updateDarkScheme(); })); - new import_obsidian.Setting(containerEl).setName("Dark mode background contrast").setDesc("Level of contrast between sidebar and main content").addDropdown((dropdown) => dropdown.addOption("minimal-dark", "Default").addOption("minimal-dark-tonal", "Low contrast").addOption("minimal-dark-black", "True black").setValue(this.plugin.settings.darkStyle).onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Dark mode background contrast").setDesc("Level of contrast between sidebar and main content.").addDropdown((dropdown) => dropdown.addOption("minimal-dark", "Default").addOption("minimal-dark-tonal", "Low contrast").addOption("minimal-dark-black", "True black").setValue(this.plugin.settings.darkStyle).onChange((value) => { this.plugin.settings.darkStyle = value; this.plugin.saveData(this.plugin.settings); this.plugin.updateDarkStyle(); @@ -788,62 +798,62 @@ var MinimalSettingTab = class extends import_obsidian.PluginSettingTab { containerEl.createEl("br"); containerEl.createEl("h3"); containerEl.createEl("h3", { text: "Features" }); - new import_obsidian.Setting(containerEl).setName("Match system setting for light or dark mode").setDesc("Automatically switch based on your OS setting").addToggle((toggle) => toggle.setValue(this.plugin.settings.useSystemTheme).onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Match system setting for light or dark mode").setDesc("Automatically switch based on your OS setting.").addToggle((toggle) => toggle.setValue(this.plugin.settings.useSystemTheme).onChange((value) => { this.plugin.settings.useSystemTheme = value; this.plugin.saveData(this.plugin.settings); this.plugin.refreshSystemTheme(); })); - new import_obsidian.Setting(containerEl).setName("Text labels for primary navigation").setDesc("Navigation in left sidebar uses text labels (see documentation for localization support)").addToggle((toggle) => toggle.setValue(this.plugin.settings.labeledNav).onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Text labels for primary navigation").setDesc("Navigation items in the left sidebar uses text labels.").addToggle((toggle) => toggle.setValue(this.plugin.settings.labeledNav).onChange((value) => { this.plugin.settings.labeledNav = value; this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); })); - new import_obsidian.Setting(containerEl).setName("Colorful window frame").setDesc("The top area of the app uses your accent color").addToggle((toggle) => toggle.setValue(this.plugin.settings.colorfulFrame).onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Colorful window frame").setDesc("The top area of the app uses your accent color.").addToggle((toggle) => toggle.setValue(this.plugin.settings.colorfulFrame).onChange((value) => { this.plugin.settings.colorfulFrame = value; this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); })); - new import_obsidian.Setting(containerEl).setName("Colorful active states").setDesc("Active file and menu items use your accent color").addToggle((toggle) => toggle.setValue(this.plugin.settings.colorfulActiveStates).onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Colorful active states").setDesc("Active file and menu items use your accent color.").addToggle((toggle) => toggle.setValue(this.plugin.settings.colorfulActiveStates).onChange((value) => { this.plugin.settings.colorfulActiveStates = value; this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); })); - new import_obsidian.Setting(containerEl).setName("Colorful headings").setDesc("Headings use a different color for each size").addToggle((toggle) => toggle.setValue(this.plugin.settings.colorfulHeadings).onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Colorful headings").setDesc("Headings use a different color for each size.").addToggle((toggle) => toggle.setValue(this.plugin.settings.colorfulHeadings).onChange((value) => { this.plugin.settings.colorfulHeadings = value; this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); })); - new import_obsidian.Setting(containerEl).setName("Minimal status bar").setDesc("Use narrow status bar").addToggle((toggle) => toggle.setValue(this.plugin.settings.minimalStatus).onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Minimal status bar").setDesc("Turn off to use full-width status bar.").addToggle((toggle) => toggle.setValue(this.plugin.settings.minimalStatus).onChange((value) => { this.plugin.settings.minimalStatus = value; this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); })); - new import_obsidian.Setting(containerEl).setName("Trim file names in sidebars").setDesc("Use ellipses to fit file names on a single line").addToggle((toggle) => toggle.setValue(this.plugin.settings.trimNames).onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Trim file names in sidebars").setDesc("Use ellipses to fit file names on a single line.").addToggle((toggle) => toggle.setValue(this.plugin.settings.trimNames).onChange((value) => { this.plugin.settings.trimNames = value; this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); })); - new import_obsidian.Setting(containerEl).setName("Workspace borders").setDesc("Display divider lines between workspace elements").addToggle((toggle) => toggle.setValue(this.plugin.settings.bordersToggle).onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Workspace borders").setDesc("Display divider lines between workspace elements.").addToggle((toggle) => toggle.setValue(this.plugin.settings.bordersToggle).onChange((value) => { this.plugin.settings.bordersToggle = value; this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); })); - new import_obsidian.Setting(containerEl).setName("Focus mode").setDesc("Hide tab bar and status bar, hover to display (can be toggled with hotkey)").addToggle((toggle) => toggle.setValue(this.plugin.settings.focusMode).onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Focus mode").setDesc("Hide tab bar and status bar, hover to display. Can be toggled via hotkey.").addToggle((toggle) => toggle.setValue(this.plugin.settings.focusMode).onChange((value) => { this.plugin.settings.focusMode = value; this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); })); - new import_obsidian.Setting(containerEl).setName("Underline internal links").setDesc("Show underlines on internal links").addToggle((toggle) => toggle.setValue(this.plugin.settings.underlineInternal).onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Underline internal links").setDesc("Show underlines on internal links.").addToggle((toggle) => toggle.setValue(this.plugin.settings.underlineInternal).onChange((value) => { this.plugin.settings.underlineInternal = value; this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); })); - new import_obsidian.Setting(containerEl).setName("Underline external links").setDesc("Show underlines on external links").addToggle((toggle) => toggle.setValue(this.plugin.settings.underlineExternal).onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Underline external links").setDesc("Show underlines on external links.").addToggle((toggle) => toggle.setValue(this.plugin.settings.underlineExternal).onChange((value) => { this.plugin.settings.underlineExternal = value; this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); })); - new import_obsidian.Setting(containerEl).setName("Maximize media").setDesc("Images and videos fill the width of the line").addToggle((toggle) => toggle.setValue(this.plugin.settings.fullWidthMedia).onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Maximize media").setDesc("Images and videos fill the width of the line.").addToggle((toggle) => toggle.setValue(this.plugin.settings.fullWidthMedia).onChange((value) => { this.plugin.settings.fullWidthMedia = value; this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); @@ -860,32 +870,32 @@ var MinimalSettingTab = class extends import_obsidian.PluginSettingTab { href: "https://minimal.guide/Features/Block+width" })); layoutDesc.appendText(" for details."); - new import_obsidian.Setting(containerEl).setName("Image grids").setDesc("Turn consecutive images into columns \u2014 to make a new row, add an extra line break between images").addToggle((toggle) => toggle.setValue(this.plugin.settings.imgGrid).onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Image grids").setDesc("Turn consecutive images into columns \u2014 to make a new row, add an extra line break between images.").addToggle((toggle) => toggle.setValue(this.plugin.settings.imgGrid).onChange((value) => { this.plugin.settings.imgGrid = value; this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); })); - new import_obsidian.Setting(containerEl).setName("Chart width").setDesc("Default width for chart blocks").addDropdown((dropdown) => dropdown.addOption("chart-default-width", "Default").addOption("chart-wide", "Wide line width").addOption("chart-max", "Maximum line width").addOption("chart-100", "100% pane width").setValue(this.plugin.settings.chartWidth).onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Chart width").setDesc("Default width for chart blocks.").addDropdown((dropdown) => dropdown.addOption("chart-default-width", "Default").addOption("chart-wide", "Wide line width").addOption("chart-max", "Maximum line width").addOption("chart-100", "100% pane width").setValue(this.plugin.settings.chartWidth).onChange((value) => { this.plugin.settings.chartWidth = value; this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); })); - new import_obsidian.Setting(containerEl).setName("Iframe width").setDesc("Default width for iframe blocks").addDropdown((dropdown) => dropdown.addOption("iframe-default-width", "Default").addOption("iframe-wide", "Wide line width").addOption("iframe-max", "Maximum line width").addOption("iframe-100", "100% pane width").setValue(this.plugin.settings.iframeWidth).onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Iframe width").setDesc("Default width for iframe blocks.").addDropdown((dropdown) => dropdown.addOption("iframe-default-width", "Default").addOption("iframe-wide", "Wide line width").addOption("iframe-max", "Maximum line width").addOption("iframe-100", "100% pane width").setValue(this.plugin.settings.iframeWidth).onChange((value) => { this.plugin.settings.iframeWidth = value; this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); })); - new import_obsidian.Setting(containerEl).setName("Image width").setDesc("Default width for image blocks").addDropdown((dropdown) => dropdown.addOption("img-default-width", "Default").addOption("img-wide", "Wide line width").addOption("img-max", "Maximum line width").addOption("img-100", "100% pane width").setValue(this.plugin.settings.imgWidth).onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Image width").setDesc("Default width for image blocks.").addDropdown((dropdown) => dropdown.addOption("img-default-width", "Default").addOption("img-wide", "Wide line width").addOption("img-max", "Maximum line width").addOption("img-100", "100% pane width").setValue(this.plugin.settings.imgWidth).onChange((value) => { this.plugin.settings.imgWidth = value; this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); })); - new import_obsidian.Setting(containerEl).setName("Map width").setDesc("Default width for map blocks").addDropdown((dropdown) => dropdown.addOption("map-default-width", "Default").addOption("map-wide", "Wide line width").addOption("map-max", "Maximum line width").addOption("map-100", "100% pane width").setValue(this.plugin.settings.mapWidth).onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Map width").setDesc("Default width for map blocks.").addDropdown((dropdown) => dropdown.addOption("map-default-width", "Default").addOption("map-wide", "Wide line width").addOption("map-max", "Maximum line width").addOption("map-100", "100% pane width").setValue(this.plugin.settings.mapWidth).onChange((value) => { this.plugin.settings.mapWidth = value; this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); })); - new import_obsidian.Setting(containerEl).setName("Table width").setDesc("Default width for table and Dataview blocks").addDropdown((dropdown) => dropdown.addOption("table-default-width", "Default").addOption("table-wide", "Wide line width").addOption("table-max", "Maximum line width").addOption("table-100", "100% pane width").setValue(this.plugin.settings.tableWidth).onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Table width").setDesc("Default width for table and Dataview blocks.").addDropdown((dropdown) => dropdown.addOption("table-default-width", "Default").addOption("table-wide", "Wide line width").addOption("table-max", "Maximum line width").addOption("table-100", "100% pane width").setValue(this.plugin.settings.tableWidth).onChange((value) => { this.plugin.settings.tableWidth = value; this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); @@ -893,93 +903,41 @@ var MinimalSettingTab = class extends import_obsidian.PluginSettingTab { containerEl.createEl("br"); containerEl.createEl("h3"); containerEl.createEl("h3", { text: "Typography" }); - new import_obsidian.Setting(containerEl).setName("Text font size").setDesc("Used for the main text (default 16)").addText((text) => text.setPlaceholder("16").setValue((this.plugin.settings.textNormal || "") + "").onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Text font size").setDesc("Used for the main text (default 16).").addText((text) => text.setPlaceholder("16").setValue((this.plugin.settings.textNormal || "") + "").onChange((value) => { this.plugin.settings.textNormal = parseFloat(value); this.plugin.saveData(this.plugin.settings); this.plugin.setFontSize(); })); - new import_obsidian.Setting(containerEl).setName("Small font size").setDesc("Used for text in the sidebars and tabs (default 13)").addText((text) => text.setPlaceholder("13").setValue((this.plugin.settings.textSmall || "") + "").onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Small font size").setDesc("Used for text in the sidebars and tabs (default 13).").addText((text) => text.setPlaceholder("13").setValue((this.plugin.settings.textSmall || "") + "").onChange((value) => { this.plugin.settings.textSmall = parseFloat(value); this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); })); - new import_obsidian.Setting(containerEl).setName("Line height").setDesc("Line height of text (default 1.5)").addText((text) => text.setPlaceholder("1.5").setValue((this.plugin.settings.lineHeight || "") + "").onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Line height").setDesc("Line height of text (default 1.5).").addText((text) => text.setPlaceholder("1.5").setValue((this.plugin.settings.lineHeight || "") + "").onChange((value) => { this.plugin.settings.lineHeight = parseFloat(value); this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); })); - new import_obsidian.Setting(containerEl).setName("Normal line width").setDesc("Number of characters per line (default 40)").addText((text) => text.setPlaceholder("40").setValue((this.plugin.settings.lineWidth || "") + "").onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Normal line width").setDesc("Number of characters per line (default 40).").addText((text) => text.setPlaceholder("40").setValue((this.plugin.settings.lineWidth || "") + "").onChange((value) => { this.plugin.settings.lineWidth = parseInt(value.trim()); this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); })); - new import_obsidian.Setting(containerEl).setName("Wide line width").setDesc("Number of characters per line for wide elements (default 50)").addText((text) => text.setPlaceholder("50").setValue((this.plugin.settings.lineWidthWide || "") + "").onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Wide line width").setDesc("Number of characters per line for wide elements (default 50).").addText((text) => text.setPlaceholder("50").setValue((this.plugin.settings.lineWidthWide || "") + "").onChange((value) => { this.plugin.settings.lineWidthWide = parseInt(value.trim()); this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); })); - new import_obsidian.Setting(containerEl).setName("Maximum line width %").setDesc("Percentage of space inside a pane that a line can fill (default 88)").addText((text) => text.setPlaceholder("88").setValue((this.plugin.settings.maxWidth || "") + "").onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Maximum line width %").setDesc("Percentage of space inside a pane that a line can fill (default 88).").addText((text) => text.setPlaceholder("88").setValue((this.plugin.settings.maxWidth || "") + "").onChange((value) => { this.plugin.settings.maxWidth = parseInt(value.trim()); this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); })); - new import_obsidian.Setting(containerEl).setName("Editor font").setDesc("Overrides the text font defined in Obsidian Appearance settings when in edit mode").addText((text) => text.setPlaceholder("").setValue((this.plugin.settings.editorFont || "") + "").onChange((value) => { + new import_obsidian.Setting(containerEl).setName("Editor font").setDesc("Overrides the text font defined in Obsidian Appearance settings when in edit mode.").addText((text) => text.setPlaceholder("").setValue((this.plugin.settings.editorFont || "") + "").onChange((value) => { this.plugin.settings.editorFont = value; this.plugin.saveData(this.plugin.settings); this.plugin.refresh(); })); - containerEl.createEl("br"); - containerEl.createEl("h3", { text: "Support development" }); - const donateText = containerEl.createEl("p"); - donateText.appendChild(createEl("span", { - text: "If you enjoy Minimal, consider " - })); - donateText.appendChild(createEl("a", { - text: "buying me a coffee", - href: "https://www.buymeacoffee.com/kepano" - })); - donateText.appendChild(createEl("span", { - text: ", and following me on Twitter " - })); - donateText.appendChild(createEl("a", { - text: "@kepano", - href: "https://twitter.com/kepano" - })); - const div = containerEl.createEl("div", { - cls: "minimal-donation" - }); - const parser = new DOMParser(); - div.appendChild(createDonateButton("https://www.buymeacoffee.com/kepano", parser.parseFromString(buyMeACoffee, "text/xml").documentElement)); } }; -var createDonateButton = (link, img) => { - const a = document.createElement("a"); - a.setAttribute("href", link); - a.addClass("minimal-donate-button"); - a.appendChild(img); - return a; -}; -var buyMeACoffee = ` - - - - - - - - - - - - - - - - - - - - - -`; -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibWFpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgQXBwLCBXb3Jrc3BhY2UsIE1vZGFsLCBOb3RpY2UsIFBsdWdpbiwgUGx1Z2luU2V0dGluZ1RhYiwgU2V0dGluZyB9IGZyb20gJ29ic2lkaWFuJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1pbmltYWxUaGVtZSBleHRlbmRzIFBsdWdpbiB7XHJcblxyXG4gIHNldHRpbmdzOiBNaW5pbWFsU2V0dGluZ3M7XHJcblxyXG4gIGFzeW5jIG9ubG9hZCgpIHtcclxuXHJcbiAgICBhd2FpdCB0aGlzLmxvYWRTZXR0aW5ncygpO1xyXG5cclxuICAgIHRoaXMuYWRkU2V0dGluZ1RhYihuZXcgTWluaW1hbFNldHRpbmdUYWIodGhpcy5hcHAsIHRoaXMpKTtcclxuXHJcbiAgICB0aGlzLmFkZFN0eWxlKCk7XHJcblxyXG4gICAgLy8gV2F0Y2ggZm9yIHN5c3RlbSBjaGFuZ2VzIHRvIGNvbG9yIHRoZW1lIFxyXG5cclxuICAgIGxldCBtZWRpYSA9IHdpbmRvdy5tYXRjaE1lZGlhKCcocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspJyk7XHJcblxyXG4gICAgbGV0IHVwZGF0ZVN5c3RlbVRoZW1lID0gKCkgPT4ge1xyXG4gICAgICBpZiAobWVkaWEubWF0Y2hlcyAmJiB0aGlzLnNldHRpbmdzLnVzZVN5c3RlbVRoZW1lKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0RhcmsgbW9kZSBhY3RpdmUnKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTdHlsZSgpXHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zZXR0aW5ncy51c2VTeXN0ZW1UaGVtZSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdMaWdodCBtb2RlIGFjdGl2ZScpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTdHlsZSgpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBtZWRpYS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB1cGRhdGVTeXN0ZW1UaGVtZSk7XHJcblxyXG4gICAgLy8gUmVtb3ZlIHN5c3RlbSB0aGVtZSBsaXN0ZW5lciB3aGVuIHdlIHVubG9hZFxyXG4gICAgdGhpcy5yZWdpc3RlcigoKSA9PiBtZWRpYS5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB1cGRhdGVTeXN0ZW1UaGVtZSkpO1xyXG5cclxuICAgIHVwZGF0ZVN5c3RlbVRoZW1lKCk7XHJcblxyXG4gICAgLy8gQ2hlY2sgc3RhdGUgb2YgT2JzaWRpYW4gU2V0dGluZ3NcclxuICAgIGxldCBzZXR0aW5nc1VwZGF0ZSA9ICgpID0+IHtcclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICBjb25zdCBmb250U2l6ZSA9IHRoaXMuYXBwLnZhdWx0LmdldENvbmZpZygnYmFzZUZvbnRTaXplJyk7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MudGV4dE5vcm1hbCA9IGZvbnRTaXplO1xyXG5cclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICBpZiAodGhpcy5hcHAudmF1bHQuZ2V0Q29uZmlnKCdmb2xkSGVhZGluZycpKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5mb2xkaW5nID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdGb2xkaW5nIGlzIG9uJyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5mb2xkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICBjb25zb2xlLmxvZygnRm9sZGluZyBpcyBvZmYnKTtcclxuICAgICAgfVxyXG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ21pbmltYWwtZm9sZGluZycsIHRoaXMuc2V0dGluZ3MuZm9sZGluZyk7XHJcbiAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgaWYgKHRoaXMuYXBwLnZhdWx0LmdldENvbmZpZygnc2hvd0xpbmVOdW1iZXInKSkge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MubGluZU51bWJlcnMgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0xpbmUgbnVtYmVycyBhcmUgb24nKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmxpbmVOdW1iZXJzID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICBjb25zb2xlLmxvZygnTGluZSBudW1iZXJzIGFyZSBvZmYnKTtcclxuICAgICAgfVxyXG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ21pbmltYWwtbGluZS1udW1zJywgdGhpcy5zZXR0aW5ncy5saW5lTnVtYmVycyk7XHJcbiAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgaWYgKHRoaXMuYXBwLnZhdWx0LmdldENvbmZpZygncmVhZGFibGVMaW5lTGVuZ3RoJykpIHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLnJlYWRhYmxlTGluZUxlbmd0aCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICBjb25zb2xlLmxvZygnUmVhZGFibGUgbGluZSBsZW5ndGggaXMgb24nKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLnJlYWRhYmxlTGluZUxlbmd0aCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ1JlYWRhYmxlIGxpbmUgbGVuZ3RoIGlzIG9mZicpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ21pbmltYWwtcmVhZGFibGUnLCB0aGlzLnNldHRpbmdzLnJlYWRhYmxlTGluZUxlbmd0aCk7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnbWluaW1hbC1yZWFkYWJsZS1vZmYnLCAhdGhpcy5zZXR0aW5ncy5yZWFkYWJsZUxpbmVMZW5ndGgpO1xyXG4gIFxyXG4gICAgfVxyXG4gIFxyXG4gICAgbGV0IHNpZGViYXJVcGRhdGUgPSAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHNpZGViYXJFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ21vZC1sZWZ0LXNwbGl0JylbMF07XHJcbiAgICAgIGNvbnN0IHJpYmJvbkVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnc2lkZS1kb2NrLXJpYmJvbicpWzBdO1xyXG4gICAgICBpZiAoc2lkZWJhckVsICYmIHJpYmJvbkVsICYmIHRoaXMuYXBwLnZhdWx0LmdldENvbmZpZygndGhlbWUnKSA9PSAnbW9vbnN0b25lJyAmJiB0aGlzLnNldHRpbmdzLmxpZ2h0U3R5bGUgPT0gJ21pbmltYWwtbGlnaHQtY29udHJhc3QnKSB7XHJcbiAgICAgICAgc2lkZWJhckVsLmFkZENsYXNzKCd0aGVtZS1kYXJrJyk7XHJcbiAgICAgICAgcmliYm9uRWwuYWRkQ2xhc3MoJ3RoZW1lLWRhcmsnKTtcclxuICAgICAgfSBlbHNlIGlmIChzaWRlYmFyRWwgJiYgcmliYm9uRWwpIHtcclxuICAgICAgICBzaWRlYmFyRWwucmVtb3ZlQ2xhc3MoJ3RoZW1lLWRhcmsnKTsgXHJcbiAgICAgICAgcmliYm9uRWwucmVtb3ZlQ2xhc3MoJ3RoZW1lLWRhcmsnKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIEB0cy1pZ25vcmVcclxuICAgIHRoaXMucmVnaXN0ZXJFdmVudChhcHAudmF1bHQub24oJ2NvbmZpZy1jaGFuZ2VkJywgc2V0dGluZ3NVcGRhdGUpKTtcclxuICAgIHRoaXMucmVnaXN0ZXJFdmVudChhcHAud29ya3NwYWNlLm9uKCdjc3MtY2hhbmdlJywgc2lkZWJhclVwZGF0ZSkpO1xyXG5cclxuICAgIHNldHRpbmdzVXBkYXRlKCk7XHJcbiAgICBcclxuICAgIGFwcC53b3Jrc3BhY2Uub25MYXlvdXRSZWFkeSgoKSA9PiB7XHJcbiAgICAgIHNpZGViYXJVcGRhdGUoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGxpZ2h0U3R5bGVzID0gWydtaW5pbWFsLWxpZ2h0JywgJ21pbmltYWwtbGlnaHQtdG9uYWwnLCAnbWluaW1hbC1saWdodC1jb250cmFzdCcsICdtaW5pbWFsLWxpZ2h0LXdoaXRlJ107XHJcbiAgICBjb25zdCBkYXJrU3R5bGVzID0gWydtaW5pbWFsLWRhcmsnLCAnbWluaW1hbC1kYXJrLXRvbmFsJywgJ21pbmltYWwtZGFyay1ibGFjayddO1xyXG4gICAgY29uc3QgaW1nR3JpZFN0eWxlcyA9IFsnaW1nLWdyaWQnLCdpbWctZ3JpZC1yYXRpbycsJ2ltZy1ub2dyaWQnXTtcclxuICAgIGNvbnN0IHRhYmxlV2lkdGhTdHlsZXMgPSBbJ3RhYmxlLTEwMCcsJ3RhYmxlLWRlZmF1bHQtd2lkdGgnLCd0YWJsZS13aWRlJywndGFibGUtbWF4J107XHJcbiAgICBjb25zdCBpZnJhbWVXaWR0aFN0eWxlcyA9IFsnaWZyYW1lLTEwMCcsJ2lmcmFtZS1kZWZhdWx0LXdpZHRoJywnaWZyYW1lLXdpZGUnLCdpZnJhbWUtbWF4J107XHJcbiAgICBjb25zdCBpbWdXaWR0aFN0eWxlcyA9IFsnaW1nLTEwMCcsJ2ltZy1kZWZhdWx0LXdpZHRoJywnaW1nLXdpZGUnLCdpbWctbWF4J107XHJcbiAgICBjb25zdCBtYXBXaWR0aFN0eWxlcyA9IFsnbWFwLTEwMCcsJ21hcC1kZWZhdWx0LXdpZHRoJywnbWFwLXdpZGUnLCdtYXAtbWF4J107XHJcbiAgICBjb25zdCBjaGFydFdpZHRoU3R5bGVzID0gWydjaGFydC0xMDAnLCdjaGFydC1kZWZhdWx0LXdpZHRoJywnY2hhcnQtd2lkZScsJ2NoYXJ0LW1heCddO1xyXG4gICAgY29uc3QgdGhlbWUgPSBbJ21vb25zdG9uZScsICdvYnNpZGlhbiddO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAnaW5jcmVhc2UtYm9keS1mb250LXNpemUnLFxyXG4gICAgICBuYW1lOiAnSW5jcmVhc2UgYm9keSBmb250IHNpemUnLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MudGV4dE5vcm1hbCA9IHRoaXMuc2V0dGluZ3MudGV4dE5vcm1hbCArIDAuNTtcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMuc2V0Rm9udFNpemUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICdkZWNyZWFzZS1ib2R5LWZvbnQtc2l6ZScsXHJcbiAgICAgIG5hbWU6ICdEZWNyZWFzZSBib2R5IGZvbnQgc2l6ZScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy50ZXh0Tm9ybWFsID0gdGhpcy5zZXR0aW5ncy50ZXh0Tm9ybWFsIC0gMC41O1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5zZXRGb250U2l6ZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTsgXHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1kYXJrLWN5Y2xlJyxcclxuICAgICAgbmFtZTogJ0N5Y2xlIGJldHdlZW4gZGFyayBtb2RlIHN0eWxlcycsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5kYXJrU3R5bGUgPSBkYXJrU3R5bGVzWyhkYXJrU3R5bGVzLmluZGV4T2YodGhpcy5zZXR0aW5ncy5kYXJrU3R5bGUpICsgMSkgJSBkYXJrU3R5bGVzLmxlbmd0aF07XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTsgIFxyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtbGlnaHQtY3ljbGUnLFxyXG4gICAgICBuYW1lOiAnQ3ljbGUgYmV0d2VlbiBsaWdodCBtb2RlIHN0eWxlcycsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5saWdodFN0eWxlID0gbGlnaHRTdHlsZXNbKGxpZ2h0U3R5bGVzLmluZGV4T2YodGhpcy5zZXR0aW5ncy5saWdodFN0eWxlKSArIDEpICUgbGlnaHRTdHlsZXMubGVuZ3RoXTtcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1oaWRkZW4tYm9yZGVycycsXHJcbiAgICAgIG5hbWU6ICdUb2dnbGUgc2lkZWJhciBib3JkZXJzJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmJvcmRlcnNUb2dnbGUgPSAhdGhpcy5zZXR0aW5ncy5ib3JkZXJzVG9nZ2xlO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLWNvbG9yZnVsLWhlYWRpbmdzJyxcclxuICAgICAgbmFtZTogJ1RvZ2dsZSBjb2xvcmZ1bCBoZWFkaW5ncycsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5jb2xvcmZ1bEhlYWRpbmdzID0gIXRoaXMuc2V0dGluZ3MuY29sb3JmdWxIZWFkaW5ncztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWZvY3VzLW1vZGUnLFxyXG4gICAgICBuYW1lOiAnVG9nZ2xlIGZvY3VzIG1vZGUnLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuZm9jdXNNb2RlID0gIXRoaXMuc2V0dGluZ3MuZm9jdXNNb2RlO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtY29sb3JmdWwtZnJhbWUnLFxyXG4gICAgICBuYW1lOiAnVG9nZ2xlIGNvbG9yZnVsIHdpbmRvdyBmcmFtZScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5jb2xvcmZ1bEZyYW1lID0gIXRoaXMuc2V0dGluZ3MuY29sb3JmdWxGcmFtZTtcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ2N5Y2xlLW1pbmltYWwtdGFibGUtd2lkdGgnLFxyXG4gICAgICBuYW1lOiAnQ3ljbGUgYmV0d2VlbiB0YWJsZSB3aWR0aCBvcHRpb25zJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLnRhYmxlV2lkdGggPSB0YWJsZVdpZHRoU3R5bGVzWyh0YWJsZVdpZHRoU3R5bGVzLmluZGV4T2YodGhpcy5zZXR0aW5ncy50YWJsZVdpZHRoKSArIDEpICUgdGFibGVXaWR0aFN0eWxlcy5sZW5ndGhdO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAnY3ljbGUtbWluaW1hbC1pbWFnZS13aWR0aCcsXHJcbiAgICAgIG5hbWU6ICdDeWNsZSBiZXR3ZWVuIGltYWdlIHdpZHRoIG9wdGlvbnMnLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuaW1nV2lkdGggPSBpbWdXaWR0aFN0eWxlc1soaW1nV2lkdGhTdHlsZXMuaW5kZXhPZih0aGlzLnNldHRpbmdzLmltZ1dpZHRoKSArIDEpICUgaW1nV2lkdGhTdHlsZXMubGVuZ3RoXTtcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ2N5Y2xlLW1pbmltYWwtaWZyYW1lLXdpZHRoJyxcclxuICAgICAgbmFtZTogJ0N5Y2xlIGJldHdlZW4gaWZyYW1lIHdpZHRoIG9wdGlvbnMnLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuaWZyYW1lV2lkdGggPSBpZnJhbWVXaWR0aFN0eWxlc1soaWZyYW1lV2lkdGhTdHlsZXMuaW5kZXhPZih0aGlzLnNldHRpbmdzLmlmcmFtZVdpZHRoKSArIDEpICUgaWZyYW1lV2lkdGhTdHlsZXMubGVuZ3RoXTtcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ2N5Y2xlLW1pbmltYWwtY2hhcnQtd2lkdGgnLFxyXG4gICAgICBuYW1lOiAnQ3ljbGUgYmV0d2VlbiBjaGFydCB3aWR0aCBvcHRpb25zJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmNoYXJ0V2lkdGggPSBjaGFydFdpZHRoU3R5bGVzWyhjaGFydFdpZHRoU3R5bGVzLmluZGV4T2YodGhpcy5zZXR0aW5ncy5jaGFydFdpZHRoKSArIDEpICUgY2hhcnRXaWR0aFN0eWxlcy5sZW5ndGhdO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAnY3ljbGUtbWluaW1hbC1tYXAtd2lkdGgnLFxyXG4gICAgICBuYW1lOiAnQ3ljbGUgYmV0d2VlbiBtYXAgd2lkdGggb3B0aW9ucycsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5tYXBXaWR0aCA9IG1hcFdpZHRoU3R5bGVzWyhtYXBXaWR0aFN0eWxlcy5pbmRleE9mKHRoaXMuc2V0dGluZ3MubWFwV2lkdGgpICsgMSkgJSBtYXBXaWR0aFN0eWxlcy5sZW5ndGhdO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtaW1nLWdyaWQnLFxyXG4gICAgICBuYW1lOiAnVG9nZ2xlIGltYWdlIGdyaWRzJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmltZ0dyaWQgPSAhdGhpcy5zZXR0aW5ncy5pbWdHcmlkO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtc3dpdGNoJyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBiZXR3ZWVuIGxpZ2h0IGFuZCBkYXJrIG1vZGUnLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MudGhlbWUgPSB0aGVtZVsodGhlbWUuaW5kZXhPZih0aGlzLnNldHRpbmdzLnRoZW1lKSArIDEpICUgdGhlbWUubGVuZ3RoXTtcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlVGhlbWUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1saWdodC1kZWZhdWx0JyxcclxuICAgICAgbmFtZTogJ1VzZSBsaWdodCBtb2RlIChkZWZhdWx0KScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5saWdodFN0eWxlID0gJ21pbmltYWwtbGlnaHQnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFN0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtbGlnaHQtd2hpdGUnLFxyXG4gICAgICBuYW1lOiAnVXNlIGxpZ2h0IG1vZGUgKGFsbCB3aGl0ZSknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MubGlnaHRTdHlsZSA9ICdtaW5pbWFsLWxpZ2h0LXdoaXRlJztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWxpZ2h0LXRvbmFsJyxcclxuICAgICAgbmFtZTogJ1VzZSBsaWdodCBtb2RlIChsb3cgY29udHJhc3QpJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmxpZ2h0U3R5bGUgPSAnbWluaW1hbC1saWdodC10b25hbCc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1saWdodC1jb250cmFzdCcsXHJcbiAgICAgIG5hbWU6ICdVc2UgbGlnaHQgbW9kZSAoaGlnaCBjb250cmFzdCknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MubGlnaHRTdHlsZSA9ICdtaW5pbWFsLWxpZ2h0LWNvbnRyYXN0JztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWRhcmstZGVmYXVsdCcsXHJcbiAgICAgIG5hbWU6ICdVc2UgZGFyayBtb2RlIChkZWZhdWx0KScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5kYXJrU3R5bGUgPSAnbWluaW1hbC1kYXJrJztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1N0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtZGFyay10b25hbCcsXHJcbiAgICAgIG5hbWU6ICdVc2UgZGFyayBtb2RlIChsb3cgY29udHJhc3QpJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmRhcmtTdHlsZSA9ICdtaW5pbWFsLWRhcmstdG9uYWwnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1kYXJrLWJsYWNrJyxcclxuICAgICAgbmFtZTogJ1VzZSBkYXJrIG1vZGUgKHRydWUgYmxhY2spJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmRhcmtTdHlsZSA9ICdtaW5pbWFsLWRhcmstYmxhY2snO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1hdG9tLWxpZ2h0JyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBsaWdodCBjb2xvciBzY2hlbWUgdG8gQXRvbSAobGlnaHQpJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmxpZ2h0U2NoZW1lID0gJ21pbmltYWwtYXRvbS1saWdodCc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFN0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtYXl1LWxpZ2h0JyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBsaWdodCBjb2xvciBzY2hlbWUgdG8gQXl1IChsaWdodCknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MubGlnaHRTY2hlbWUgPSAnbWluaW1hbC1heXUtbGlnaHQnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFNjaGVtZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWNhdHBwdWNjaW4tbGlnaHQnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGxpZ2h0IGNvbG9yIHNjaGVtZSB0byBDYXRwcHVjY2luIChsaWdodCknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MubGlnaHRTY2hlbWUgPSAnbWluaW1hbC1jYXRwcHVjY2luLWxpZ2h0JztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1kZWZhdWx0LWxpZ2h0JyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBsaWdodCBjb2xvciBzY2hlbWUgdG8gZGVmYXVsdCAobGlnaHQpJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmxpZ2h0U2NoZW1lID0gJ21pbmltYWwtZGVmYXVsdC1saWdodCc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFN0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtZ3J1dmJveC1saWdodCcsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggbGlnaHQgY29sb3Igc2NoZW1lIHRvIEdydXZib3ggKGxpZ2h0KScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5saWdodFNjaGVtZSA9ICdtaW5pbWFsLWdydXZib3gtbGlnaHQnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFNjaGVtZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWV2ZXJmb3Jlc3QtbGlnaHQnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGxpZ2h0IGNvbG9yIHNjaGVtZSB0byBFdmVyZm9yZXN0IChsaWdodCknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MubGlnaHRTY2hlbWUgPSAnbWluaW1hbC1ldmVyZm9yZXN0LWxpZ2h0JztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1tYWNvcy1saWdodCcsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggbGlnaHQgY29sb3Igc2NoZW1lIHRvIG1hY09TIChsaWdodCknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MubGlnaHRTY2hlbWUgPSAnbWluaW1hbC1tYWNvcy1saWdodCc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFN0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtbm90aW9uLWxpZ2h0JyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBsaWdodCBjb2xvciBzY2hlbWUgdG8gTm90aW9uIChsaWdodCknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MubGlnaHRTY2hlbWUgPSAnbWluaW1hbC1ub3Rpb24tbGlnaHQnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFNjaGVtZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLW5vcmQtbGlnaHQnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGxpZ2h0IGNvbG9yIHNjaGVtZSB0byBOb3JkIChsaWdodCknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MubGlnaHRTY2hlbWUgPSAnbWluaW1hbC1ub3JkLWxpZ2h0JztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1yb3NlLXBpbmUtbGlnaHQnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGxpZ2h0IGNvbG9yIHNjaGVtZSB0byBSb3NcdTAwRTkgUGluZSAobGlnaHQpJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmxpZ2h0U2NoZW1lID0gJ21pbmltYWwtcm9zZS1waW5lLWxpZ2h0JztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1zb2xhcml6ZWQtbGlnaHQnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGxpZ2h0IGNvbG9yIHNjaGVtZSB0byBTb2xhcml6ZWQgKGxpZ2h0KScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5saWdodFNjaGVtZSA9ICdtaW5pbWFsLXNvbGFyaXplZC1saWdodCc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFN0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtdGhpbmdzLWxpZ2h0JyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBsaWdodCBjb2xvciBzY2hlbWUgdG8gVGhpbmdzIChsaWdodCknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MubGlnaHRTY2hlbWUgPSAnbWluaW1hbC10aGluZ3MtbGlnaHQnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFNjaGVtZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWF0b20tZGFyaycsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggY29sb3Igc2NoZW1lIHRvIEF0b20gKGRhcmspJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmRhcmtTY2hlbWUgPSAnbWluaW1hbC1hdG9tLWRhcmsnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1heXUtZGFyaycsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggY29sb3Igc2NoZW1lIHRvIEF5dSAoZGFyayknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuZGFya1NjaGVtZSA9ICdtaW5pbWFsLWF5dS1kYXJrJztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1NjaGVtZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1N0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtY2F0cHB1Y2Npbi1kYXJrJyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBkYXJrIGNvbG9yIHNjaGVtZSB0byBDYXRwcHVjY2luIChkYXJrKScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5kYXJrU2NoZW1lID0gJ21pbmltYWwtY2F0cHB1Y2Npbi1kYXJrJztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1NjaGVtZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1N0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtZHJhY3VsYS1kYXJrJyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBjb2xvciBzY2hlbWUgdG8gRHJhY3VsYSAoZGFyayknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuZGFya1NjaGVtZSA9ICdtaW5pbWFsLWRyYWN1bGEtZGFyayc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWRlZmF1bHQtZGFyaycsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggZGFyayBjb2xvciBzY2hlbWUgdG8gZGVmYXVsdCAoZGFyayknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuZGFya1NjaGVtZSA9ICdtaW5pbWFsLWRlZmF1bHQtZGFyayc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWdydXZib3gtZGFyaycsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggZGFyayBjb2xvciBzY2hlbWUgdG8gR3J1dmJveCAoZGFyayknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuZGFya1NjaGVtZSA9ICdtaW5pbWFsLWdydXZib3gtZGFyayc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWV2ZXJmb3Jlc3QtZGFyaycsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggZGFyayBjb2xvciBzY2hlbWUgdG8gRXZlcmZvcmVzdCAoZGFyayknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuZGFya1NjaGVtZSA9ICdtaW5pbWFsLWV2ZXJmb3Jlc3QtZGFyayc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLW1hY29zLWRhcmsnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGxpZ2h0IGNvbG9yIHNjaGVtZSB0byBtYWNPUyAoZGFyayknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuZGFya1NjaGVtZSA9ICdtaW5pbWFsLW1hY29zLWRhcmsnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1ub3JkLWRhcmsnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGRhcmsgY29sb3Igc2NoZW1lIHRvIE5vcmQgKGRhcmspJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmRhcmtTY2hlbWUgPSAnbWluaW1hbC1ub3JkLWRhcmsnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1ub3Rpb24tZGFyaycsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggZGFyayBjb2xvciBzY2hlbWUgdG8gTm90aW9uIChkYXJrKScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5kYXJrU2NoZW1lID0gJ21pbmltYWwtbm90aW9uLWRhcmsnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1yb3NlLXBpbmUtZGFyaycsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggY29sb3Igc2NoZW1lIHRvIFJvc1x1MDBFOSBQaW5lIChkYXJrKScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5kYXJrU2NoZW1lID0gJ21pbmltYWwtcm9zZS1waW5lLWRhcmsnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1zb2xhcml6ZWQtZGFyaycsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggZGFyayBjb2xvciBzY2hlbWUgdG8gU29sYXJpemVkIChkYXJrKScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5kYXJrU2NoZW1lID0gJ21pbmltYWwtc29sYXJpemVkLWRhcmsnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC10aGluZ3MtZGFyaycsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggZGFyayBjb2xvciBzY2hlbWUgdG8gVGhpbmdzIChkYXJrKScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5kYXJrU2NoZW1lID0gJ21pbmltYWwtdGhpbmdzLWRhcmsnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1kZXYtYmxvY2std2lkdGgnLFxyXG4gICAgICBuYW1lOiAnRGV2IFx1MjAxNCBTaG93IGJsb2NrIHdpZHRocycsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5kZXZCbG9ja1dpZHRoID0gIXRoaXMuc2V0dGluZ3MuZGV2QmxvY2tXaWR0aDtcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnJlZnJlc2goKVxyXG4gIH1cclxuXHJcbiAgb251bmxvYWQoKSB7XHJcbiAgICBjb25zb2xlLmxvZygnVW5sb2FkaW5nIE1pbmltYWwgVGhlbWUgU2V0dGluZ3MgcGx1Z2luJyk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBsb2FkU2V0dGluZ3MoKSB7XHJcbiAgICB0aGlzLnNldHRpbmdzID0gT2JqZWN0LmFzc2lnbihERUZBVUxUX1NFVFRJTkdTLCBhd2FpdCB0aGlzLmxvYWREYXRhKCkpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgc2F2ZVNldHRpbmdzKCkge1xyXG4gICAgYXdhaXQgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICB9XHJcblxyXG4gIC8vIHJlZnJlc2ggZnVuY3Rpb24gZm9yIHdoZW4gd2UgY2hhbmdlIHNldHRpbmdzXHJcbiAgcmVmcmVzaCgpIHtcclxuICAgIC8vIHJlLWxvYWQgdGhlIHN0eWxlXHJcbiAgICB0aGlzLnVwZGF0ZVN0eWxlKClcclxuICB9XHJcblxyXG4gIC8vIGFkZCB0aGUgc3R5bGluZyBlbGVtZW50cyB3ZSBuZWVkXHJcbiAgYWRkU3R5bGUoKSB7XHJcbiAgICAvLyBhZGQgYSBjc3MgYmxvY2sgZm9yIG91ciBzZXR0aW5ncy1kZXBlbmRlbnQgc3R5bGVzXHJcbiAgICBjb25zdCBjc3MgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xyXG4gICAgY3NzLmlkID0gJ21pbmltYWwtdGhlbWUnO1xyXG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJoZWFkXCIpWzBdLmFwcGVuZENoaWxkKGNzcyk7XHJcblxyXG4gICAgLy8gYWRkIHRoZSBtYWluIGNsYXNzXHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ21pbmltYWwtdGhlbWUnKTtcclxuXHJcbiAgICAvLyB1cGRhdGUgdGhlIHN0eWxlIHdpdGggdGhlIHNldHRpbmdzLWRlcGVuZGVudCBzdHlsZXNcclxuICAgIHRoaXMudXBkYXRlU3R5bGUoKTtcclxuICB9XHJcblxyXG4gIHNldEZvbnRTaXplKCkge1xyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgdGhpcy5hcHAudmF1bHQuc2V0Q29uZmlnKCdiYXNlRm9udFNpemUnLCB0aGlzLnNldHRpbmdzLnRleHROb3JtYWwpO1xyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgdGhpcy5hcHAudXBkYXRlRm9udFNpemUoKTtcclxuICB9XHJcblxyXG4gIC8vIHVwZGF0ZSB0aGUgc3R5bGVzIChhdCB0aGUgc3RhcnQsIG9yIGFzIHRoZSByZXN1bHQgb2YgYSBzZXR0aW5ncyBjaGFuZ2UpXHJcbiAgdXBkYXRlU3R5bGUoKSB7XHJcbiAgICB0aGlzLnJlbW92ZVN0eWxlKCk7XHJcblxyXG4gICAgZG9jdW1lbnQuYm9keS5hZGRDbGFzcyh0aGlzLnNldHRpbmdzLmRhcmtTY2hlbWUpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hZGRDbGFzcyh0aGlzLnNldHRpbmdzLmxpZ2h0U2NoZW1lKTtcclxuXHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2JvcmRlcnMtbm9uZScsICF0aGlzLnNldHRpbmdzLmJvcmRlcnNUb2dnbGUpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdjb2xvcmZ1bC1oZWFkaW5ncycsIHRoaXMuc2V0dGluZ3MuY29sb3JmdWxIZWFkaW5ncyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2NvbG9yZnVsLWZyYW1lJywgdGhpcy5zZXR0aW5ncy5jb2xvcmZ1bEZyYW1lKTtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnY29sb3JmdWwtYWN0aXZlJywgdGhpcy5zZXR0aW5ncy5jb2xvcmZ1bEFjdGl2ZVN0YXRlcyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ21pbmltYWwtZm9jdXMtbW9kZScsIHRoaXMuc2V0dGluZ3MuZm9jdXNNb2RlKTtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnbGlua3MtaW50LW9uJywgdGhpcy5zZXR0aW5ncy51bmRlcmxpbmVJbnRlcm5hbCk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2xpbmtzLWV4dC1vbicsIHRoaXMuc2V0dGluZ3MudW5kZXJsaW5lRXh0ZXJuYWwpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdzeXN0ZW0tc2hhZGUnLCB0aGlzLnNldHRpbmdzLnVzZVN5c3RlbVRoZW1lKTtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnZnVsbC13aWR0aC1tZWRpYScsIHRoaXMuc2V0dGluZ3MuZnVsbFdpZHRoTWVkaWEpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdpbWctZ3JpZCcsIHRoaXMuc2V0dGluZ3MuaW1nR3JpZCk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ21pbmltYWwtZGV2LWJsb2NrLXdpZHRoJywgdGhpcy5zZXR0aW5ncy5kZXZCbG9ja1dpZHRoKTtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnbWluaW1hbC1zdGF0dXMtb2ZmJywgIXRoaXMuc2V0dGluZ3MubWluaW1hbFN0YXR1cyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2Z1bGwtZmlsZS1uYW1lcycsICF0aGlzLnNldHRpbmdzLnRyaW1OYW1lcyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2xhYmVsZWQtbmF2JywgdGhpcy5zZXR0aW5ncy5sYWJlbGVkTmF2KTtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnbWluaW1hbC1mb2xkaW5nJywgdGhpcy5zZXR0aW5ncy5mb2xkaW5nKTtcclxuXHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNsYXNzKCd0YWJsZS13aWRlJywndGFibGUtbWF4JywndGFibGUtMTAwJywndGFibGUtZGVmYXVsdC13aWR0aCcsXHJcbiAgICAgICdpZnJhbWUtd2lkZScsJ2lmcmFtZS1tYXgnLCdpZnJhbWUtMTAwJywnaWZyYW1lLWRlZmF1bHQtd2lkdGgnLFxyXG4gICAgICAnaW1nLXdpZGUnLCdpbWctbWF4JywnaW1nLTEwMCcsJ2ltZy1kZWZhdWx0LXdpZHRoJyxcclxuICAgICAgJ2NoYXJ0LXdpZGUnLCdjaGFydC1tYXgnLCdjaGFydC0xMDAnLCdjaGFydC1kZWZhdWx0LXdpZHRoJyxcclxuICAgICAgJ21hcC13aWRlJywnbWFwLW1heCcsJ21hcC0xMDAnLCdtYXAtZGVmYXVsdC13aWR0aCcpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hZGRDbGFzcyh0aGlzLnNldHRpbmdzLmNoYXJ0V2lkdGgpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hZGRDbGFzcyh0aGlzLnNldHRpbmdzLnRhYmxlV2lkdGgpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hZGRDbGFzcyh0aGlzLnNldHRpbmdzLmltZ1dpZHRoKTtcclxuICAgIGRvY3VtZW50LmJvZHkuYWRkQ2xhc3ModGhpcy5zZXR0aW5ncy5pZnJhbWVXaWR0aCk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFkZENsYXNzKHRoaXMuc2V0dGluZ3MubWFwV2lkdGgpO1xyXG5cclxuICAgIC8vIGdldCB0aGUgY3VzdG9tIGNzcyBlbGVtZW50XHJcbiAgICBjb25zdCBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtaW5pbWFsLXRoZW1lJyk7XHJcbiAgICBpZiAoIWVsKSB0aHJvdyBcIm1pbmltYWwtdGhlbWUgZWxlbWVudCBub3QgZm91bmQhXCI7XHJcbiAgICBlbHNlIHtcclxuICAgICAgLy8gc2V0IHRoZSBzZXR0aW5ncy1kZXBlbmRlbnQgY3NzXHJcbiAgICAgIGVsLmlubmVyVGV4dCA9IFxyXG4gICAgICAgICdib2R5Lm1pbmltYWwtdGhlbWV7J1xyXG4gICAgICAgICsgJy0tZm9udC11aS1zbWFsbDonICsgdGhpcy5zZXR0aW5ncy50ZXh0U21hbGwgKyAncHg7J1xyXG4gICAgICAgICsgJy0tbGluZS1oZWlnaHQ6JyArIHRoaXMuc2V0dGluZ3MubGluZUhlaWdodCArICc7J1xyXG4gICAgICAgICsgJy0tbGluZS13aWR0aDonICsgdGhpcy5zZXR0aW5ncy5saW5lV2lkdGggKyAncmVtOydcclxuICAgICAgICArICctLWxpbmUtd2lkdGgtd2lkZTonICsgdGhpcy5zZXR0aW5ncy5saW5lV2lkdGhXaWRlICsgJ3JlbTsnXHJcbiAgICAgICAgKyAnLS1tYXgtd2lkdGg6JyArIHRoaXMuc2V0dGluZ3MubWF4V2lkdGggKyAnJTsnXHJcbiAgICAgICAgKyAnLS1mb250LWVkaXRvci1vdmVycmlkZTonICsgdGhpcy5zZXR0aW5ncy5lZGl0b3JGb250ICsgJzsnO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHJlZnJlc2hTeXN0ZW1UaGVtZSgpIHtcclxuICAgIGNvbnN0IGlzRGFya01vZGUgPSB3aW5kb3cubWF0Y2hNZWRpYSAmJiB3aW5kb3cubWF0Y2hNZWRpYSgnKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKScpLm1hdGNoZXNcclxuXHJcbiAgICBpZiAoaXNEYXJrTW9kZSAmJiB0aGlzLnNldHRpbmdzLnVzZVN5c3RlbVRoZW1lKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0RhcmsgbW9kZSBhY3RpdmUnKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTdHlsZSgpXHJcblxyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc2V0dGluZ3MudXNlU3lzdGVtVGhlbWUpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnTGlnaHQgbW9kZSBhY3RpdmUnKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U3R5bGUoKVxyXG4gICAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVEYXJrU3R5bGUoKSB7XHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNsYXNzKFxyXG4gICAgICAndGhlbWUtbGlnaHQnLFxyXG4gICAgICAnbWluaW1hbC1kYXJrJyxcclxuICAgICAgJ21pbmltYWwtZGFyay10b25hbCcsXHJcbiAgICAgICdtaW5pbWFsLWRhcmstYmxhY2snXHJcbiAgICApO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hZGRDbGFzcyh0aGlzLnNldHRpbmdzLmRhcmtTdHlsZSk7XHJcblxyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgdGhpcy5hcHAuc2V0VGhlbWUoJ29ic2lkaWFuJyk7XHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICB0aGlzLmFwcC52YXVsdC5zZXRDb25maWcoJ3RoZW1lJywgJ29ic2lkaWFuJyk7XHJcbiAgICB0aGlzLmFwcC53b3Jrc3BhY2UudHJpZ2dlcignY3NzLWNoYW5nZScpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlTGlnaHRTdHlsZSgpIHtcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2xhc3MoXHJcbiAgICAgICd0aGVtZS1kYXJrJyxcclxuICAgICAgJ21pbmltYWwtbGlnaHQnLFxyXG4gICAgICAnbWluaW1hbC1saWdodC10b25hbCcsXHJcbiAgICAgICdtaW5pbWFsLWxpZ2h0LWNvbnRyYXN0JyxcclxuICAgICAgJ21pbmltYWwtbGlnaHQtd2hpdGUnXHJcbiAgICApO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hZGRDbGFzcyh0aGlzLnNldHRpbmdzLmxpZ2h0U3R5bGUpO1xyXG5cclxuICAgIC8vIEB0cy1pZ25vcmVcclxuICAgIHRoaXMuYXBwLnNldFRoZW1lKCdtb29uc3RvbmUnKTtcclxuICAgIC8vIEB0cy1pZ25vcmVcclxuICAgIHRoaXMuYXBwLnZhdWx0LnNldENvbmZpZygndGhlbWUnLCAnbW9vbnN0b25lJyk7XHJcbiAgICB0aGlzLmFwcC53b3Jrc3BhY2UudHJpZ2dlcignY3NzLWNoYW5nZScpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRGFya1NjaGVtZSgpIHtcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2xhc3MoXHJcbiAgICAgICdtaW5pbWFsLWF0b20tZGFyaycsXHJcbiAgICAgICdtaW5pbWFsLWF5dS1kYXJrJyxcclxuICAgICAgJ21pbmltYWwtY2F0cHB1Y2Npbi1kYXJrJyxcclxuICAgICAgJ21pbmltYWwtZGVmYXVsdC1kYXJrJyxcclxuICAgICAgJ21pbmltYWwtZHJhY3VsYS1kYXJrJyxcclxuICAgICAgJ21pbmltYWwtZXZlcmZvcmVzdC1kYXJrJyxcclxuICAgICAgJ21pbmltYWwtZ3J1dmJveC1kYXJrJyxcclxuICAgICAgJ21pbmltYWwtbWFjb3MtZGFyaycsXHJcbiAgICAgICdtaW5pbWFsLW5vcmQtZGFyaycsXHJcbiAgICAgICdtaW5pbWFsLW5vdGlvbi1kYXJrJyxcclxuICAgICAgJ21pbmltYWwtcm9zZS1waW5lLWRhcmsnLFxyXG4gICAgICAnbWluaW1hbC1zb2xhcml6ZWQtZGFyaycsXHJcbiAgICAgICdtaW5pbWFsLXRoaW5ncy1kYXJrJ1xyXG4gICAgKTtcclxuICAgIGRvY3VtZW50LmJvZHkuYWRkQ2xhc3ModGhpcy5zZXR0aW5ncy5kYXJrU2NoZW1lKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUxpZ2h0U2NoZW1lKCkge1xyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDbGFzcyhcclxuICAgICAgJ21pbmltYWwtYXRvbS1saWdodCcsXHJcbiAgICAgICdtaW5pbWFsLWF5dS1saWdodCcsXHJcbiAgICAgICdtaW5pbWFsLWNhdHBwdWNjaW4tbGlnaHQnLFxyXG4gICAgICAnbWluaW1hbC1kZWZhdWx0LWxpZ2h0JyxcclxuICAgICAgJ21pbmltYWwtZXZlcmZvcmVzdC1saWdodCcsXHJcbiAgICAgICdtaW5pbWFsLWdydXZib3gtbGlnaHQnLFxyXG4gICAgICAnbWluaW1hbC1tYWNvcy1saWdodCcsXHJcbiAgICAgICdtaW5pbWFsLW5vcmQtbGlnaHQnLFxyXG4gICAgICAnbWluaW1hbC1ub3Rpb24tbGlnaHQnLFxyXG4gICAgICAnbWluaW1hbC1yb3NlLXBpbmUtbGlnaHQnLFxyXG4gICAgICAnbWluaW1hbC1zb2xhcml6ZWQtbGlnaHQnLFxyXG4gICAgICAnbWluaW1hbC10aGluZ3MtbGlnaHQnXHJcbiAgICApO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hZGRDbGFzcyh0aGlzLnNldHRpbmdzLmxpZ2h0U2NoZW1lKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVRoZW1lKCkge1xyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgdGhpcy5hcHAuc2V0VGhlbWUodGhpcy5zZXR0aW5ncy50aGVtZSk7XHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICB0aGlzLmFwcC52YXVsdC5zZXRDb25maWcoJ3RoZW1lJywgdGhpcy5zZXR0aW5ncy50aGVtZSk7XHJcbiAgICB0aGlzLmFwcC53b3Jrc3BhY2UudHJpZ2dlcignY3NzLWNoYW5nZScpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlU3R5bGUoKSB7XHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNsYXNzKCdtaW5pbWFsLWxpZ2h0JywnbWluaW1hbC1saWdodC10b25hbCcsJ21pbmltYWwtbGlnaHQtY29udHJhc3QnLCdtaW5pbWFsLWxpZ2h0LXdoaXRlJywnbWluaW1hbC1kYXJrJywnbWluaW1hbC1kYXJrLXRvbmFsJywnbWluaW1hbC1kYXJrLWJsYWNrJyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFkZENsYXNzKHRoaXMuc2V0dGluZ3MubGlnaHRTdHlsZSx0aGlzLnNldHRpbmdzLmRhcmtTdHlsZSk7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuaW50ZXJmYWNlIE1pbmltYWxTZXR0aW5ncyB7XHJcbiAgdGhlbWU6IHN0cmluZztcclxuICBsaWdodFN0eWxlOiBzdHJpbmc7XHJcbiAgZGFya1N0eWxlOiBzdHJpbmc7XHJcbiAgbGlnaHRTY2hlbWU6IHN0cmluZztcclxuICBkYXJrU2NoZW1lOiBzdHJpbmc7XHJcbiAgZWRpdG9yRm9udDogc3RyaW5nO1xyXG4gIGNvbG9yZnVsSGVhZGluZ3M6IGJvb2xlYW47XHJcbiAgY29sb3JmdWxGcmFtZTogYm9vbGVhbjtcclxuICBjb2xvcmZ1bEFjdGl2ZVN0YXRlczogYm9vbGVhbixcclxuICB0cmltTmFtZXM6IGJvb2xlYW47XHJcbiAgbGFiZWxlZE5hdjogYm9vbGVhbjtcclxuICBib3JkZXJzVG9nZ2xlOiBib29sZWFuO1xyXG4gIGZvY3VzTW9kZTogYm9vbGVhbjtcclxuICBsaW5lSGVpZ2h0OiBudW1iZXI7XHJcbiAgbGluZVdpZHRoOiBudW1iZXI7XHJcbiAgbGluZVdpZHRoV2lkZTogbnVtYmVyO1xyXG4gIG1heFdpZHRoOiBudW1iZXI7XHJcbiAgaW1nR3JpZDogYm9vbGVhbjtcclxuICBkZXZCbG9ja1dpZHRoOiBib29sZWFuO1xyXG4gIHRhYmxlV2lkdGg6IHN0cmluZztcclxuICBpZnJhbWVXaWR0aDogc3RyaW5nO1xyXG4gIGltZ1dpZHRoOiBzdHJpbmc7XHJcbiAgY2hhcnRXaWR0aDogc3RyaW5nO1xyXG4gIG1hcFdpZHRoOiBzdHJpbmc7XHJcbiAgZnVsbFdpZHRoTWVkaWE6IGJvb2xlYW4sXHJcbiAgbWluaW1hbFN0YXR1czogYm9vbGVhbixcclxuICB0ZXh0Tm9ybWFsOiBudW1iZXI7XHJcbiAgdGV4dFNtYWxsOiBudW1iZXI7XHJcbiAgdW5kZXJsaW5lSW50ZXJuYWw6IGJvb2xlYW47XHJcbiAgdW5kZXJsaW5lRXh0ZXJuYWw6IGJvb2xlYW47XHJcbiAgdXNlU3lzdGVtVGhlbWU6IGJvb2xlYW47XHJcbiAgZm9sZGluZzogYm9vbGVhbjtcclxuICBsaW5lTnVtYmVyczogYm9vbGVhbjtcclxuICByZWFkYWJsZUxpbmVMZW5ndGg6IGJvb2xlYW47XHJcbn1cclxuXHJcbmNvbnN0IERFRkFVTFRfU0VUVElOR1M6IE1pbmltYWxTZXR0aW5ncyA9IHtcclxuICB0aGVtZTogJ21vb25zdG9uZScsXHJcbiAgbGlnaHRTdHlsZTogJ21pbmltYWwtbGlnaHQnLFxyXG4gIGRhcmtTdHlsZTogJ21pbmltYWwtZGFyaycsXHJcbiAgbGlnaHRTY2hlbWU6ICdtaW5pbWFsLWRlZmF1bHQtbGlnaHQnLFxyXG4gIGRhcmtTY2hlbWU6ICdtaW5pbWFsLWRlZmF1bHQtZGFyaycsXHJcbiAgZWRpdG9yRm9udDogJycsXHJcbiAgbGluZUhlaWdodDogMS41LFxyXG4gIGxpbmVXaWR0aDogNDAsXHJcbiAgbGluZVdpZHRoV2lkZTogNTAsXHJcbiAgbWF4V2lkdGg6IDg4LFxyXG4gIHRleHROb3JtYWw6IDE2LFxyXG4gIHRleHRTbWFsbDogMTMsXHJcbiAgaW1nR3JpZDogZmFsc2UsXHJcbiAgaW1nV2lkdGg6ICdpbWctZGVmYXVsdC13aWR0aCcsXHJcbiAgdGFibGVXaWR0aDogJ3RhYmxlLWRlZmF1bHQtd2lkdGgnLFxyXG4gIGlmcmFtZVdpZHRoOiAnaWZyYW1lLWRlZmF1bHQtd2lkdGgnLFxyXG4gIG1hcFdpZHRoOiAnbWFwLWRlZmF1bHQtd2lkdGgnLFxyXG4gIGNoYXJ0V2lkdGg6ICdjaGFydC1kZWZhdWx0LXdpZHRoJyxcclxuICBjb2xvcmZ1bEhlYWRpbmdzOiBmYWxzZSxcclxuICBjb2xvcmZ1bEZyYW1lOiBmYWxzZSxcclxuICBjb2xvcmZ1bEFjdGl2ZVN0YXRlczogZmFsc2UsXHJcbiAgdHJpbU5hbWVzOiB0cnVlLFxyXG4gIGxhYmVsZWROYXY6IGZhbHNlLFxyXG4gIGZ1bGxXaWR0aE1lZGlhOiB0cnVlLFxyXG4gIGJvcmRlcnNUb2dnbGU6IHRydWUsXHJcbiAgbWluaW1hbFN0YXR1czogdHJ1ZSxcclxuICBmb2N1c01vZGU6IGZhbHNlLFxyXG4gIHVuZGVybGluZUludGVybmFsOiB0cnVlLFxyXG4gIHVuZGVybGluZUV4dGVybmFsOiB0cnVlLFxyXG4gIHVzZVN5c3RlbVRoZW1lOiBmYWxzZSxcclxuICBmb2xkaW5nOiB0cnVlLFxyXG4gIGxpbmVOdW1iZXJzOiBmYWxzZSxcclxuICByZWFkYWJsZUxpbmVMZW5ndGg6IGZhbHNlLFxyXG4gIGRldkJsb2NrV2lkdGg6IGZhbHNlLFxyXG59XHJcblxyXG5jbGFzcyBNaW5pbWFsU2V0dGluZ1RhYiBleHRlbmRzIFBsdWdpblNldHRpbmdUYWIge1xyXG5cclxuXHJcbiAgcGx1Z2luOiBNaW5pbWFsVGhlbWU7XHJcbiAgY29uc3RydWN0b3IoYXBwOiBBcHAsIHBsdWdpbjogTWluaW1hbFRoZW1lKSB7XHJcbiAgICBzdXBlcihhcHAsIHBsdWdpbik7XHJcbiAgICB0aGlzLnBsdWdpbiA9IHBsdWdpbjtcclxuICB9XHJcblxyXG4gIGRpc3BsYXkoKTogdm9pZCB7XHJcbiAgICBsZXQge2NvbnRhaW5lckVsfSA9IHRoaXM7XHJcblxyXG4gICAgY29udGFpbmVyRWwuZW1wdHkoKTtcclxuICAgIGNvbnRhaW5lckVsLmNyZWF0ZUVsKCdoMycsIHt0ZXh0OiAnTWluaW1hbCBUaGVtZSBTZXR0aW5ncyd9KTtcclxuXHJcbiAgICBjb25zdCBtYWluRGVzYyA9IGNvbnRhaW5lckVsLmNyZWF0ZUVsKCdwJyk7XHJcblxyXG4gICAgICBtYWluRGVzYy5hcHBlbmRUZXh0KCdOZWVkIGhlbHA/IEV4cGxvcmUgdGhlICcpO1xyXG4gICAgICBtYWluRGVzYy5hcHBlbmRDaGlsZChcclxuICAgICAgICBjcmVhdGVFbCgnYScsIHtcclxuICAgICAgICAgIHRleHQ6IFwiTWluaW1hbCBkb2N1bWVudGF0aW9uXCIsXHJcbiAgICAgICAgICBocmVmOiBcImh0dHBzOi8vbWluaW1hbC5ndWlkZVwiLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICAgIG1haW5EZXNjLmFwcGVuZFRleHQoJyBvciB2aXNpdCB0aGUgJyk7XHJcbiAgICAgIG1haW5EZXNjLmFwcGVuZENoaWxkKFxyXG4gICAgICAgIGNyZWF0ZUVsKCdzdHJvbmcnLCB7XHJcbiAgICAgICAgICB0ZXh0OiBcIiNtaW5pbWFsXCIsXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgICAgbWFpbkRlc2MuYXBwZW5kVGV4dCgnIGNoYW5uZWwgaW4gdGhlIG9mZmljaWFsIE9ic2lkaWFuIERpc2NvcmQuIFlvdSBjYW4gc3VwcG9ydCBjb250aW51ZWQgZGV2ZWxvcG1lbnQgYnkgJyk7XHJcbiAgICAgIG1haW5EZXNjLmFwcGVuZENoaWxkKFxyXG4gICAgICAgIGNyZWF0ZUVsKCdhJywge1xyXG4gICAgICAgICAgdGV4dDogXCJidXlpbmcgbWUgYSBjb2ZmZWVcIixcclxuICAgICAgICAgIGhyZWY6IFwiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9rZXBhbm9cIixcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgICBtYWluRGVzYy5hcHBlbmRUZXh0KCcgXHUyNjE1Jyk7XHJcblxyXG4gICAgY29udGFpbmVyRWwuY3JlYXRlRWwoJ2JyJyk7XHJcbiAgICBjb250YWluZXJFbC5jcmVhdGVFbCgnaDMnLCB7dGV4dDogJ0NvbG9yIHNjaGVtZSd9KTtcclxuXHJcbiAgICBjb25zdCBjb2xvckRlc2MgPSBjb250YWluZXJFbC5jcmVhdGVFbCgncCcpO1xyXG5cclxuICAgICAgY29sb3JEZXNjLmFwcGVuZENoaWxkKFxyXG4gICAgICAgIGNyZWF0ZUVsKCdzcGFuJywge1xyXG4gICAgICAgICAgdGV4dDogJ1RvIGNyZWF0ZSBhIGNvbXBsZXRlbHkgY3VzdG9tIGNvbG9yIHNjaGVtZSB1c2UgJ1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgICBjb2xvckRlc2MuYXBwZW5kQ2hpbGQoXHJcbiAgICAgICAgY3JlYXRlRWwoJ2EnLCB7XHJcbiAgICAgICAgICB0ZXh0OiBcIlN0eWxlIFNldHRpbmdzIHBsdWdpblwiLFxyXG4gICAgICAgICAgaHJlZjogXCJvYnNpZGlhbjovL3Nob3ctcGx1Z2luP2lkPW9ic2lkaWFuLXN0eWxlLXNldHRpbmdzXCIsXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgICAgY29sb3JEZXNjLmFwcGVuZFRleHQoJy4nKTtcclxuXHJcbiAgICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAgIC5zZXROYW1lKCdMaWdodCBtb2RlIGNvbG9yIHNjaGVtZScpXHJcbiAgICAgICAgLnNldERlc2MoJ1ByZXNldCBjb2xvciBvcHRpb25zIGZvciBsaWdodCBtb2RlJylcclxuICAgICAgICAuYWRkRHJvcGRvd24oZHJvcGRvd24gPT4gZHJvcGRvd25cclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtZGVmYXVsdC1saWdodCcsJ0RlZmF1bHQnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1hdG9tLWxpZ2h0JywnQXRvbScpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLWF5dS1saWdodCcsJ0F5dScpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLWNhdHBwdWNjaW4tbGlnaHQnLCdDYXRwcHVjY2luJylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtZXZlcmZvcmVzdC1saWdodCcsJ0V2ZXJmb3Jlc3QnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1ncnV2Ym94LWxpZ2h0JywnR3J1dmJveCcpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLW1hY29zLWxpZ2h0JywnbWFjT1MnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1ub3JkLWxpZ2h0JywnTm9yZCcpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLW5vdGlvbi1saWdodCcsJ05vdGlvbicpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLXJvc2UtcGluZS1saWdodCcsJ1Jvc1x1MDBFOSBQaW5lJylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtc29sYXJpemVkLWxpZ2h0JywnU29sYXJpemVkJylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtdGhpbmdzLWxpZ2h0JywnVGhpbmdzJylcclxuICAgICAgICAgIC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5saWdodFNjaGVtZSlcclxuICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5saWdodFNjaGVtZSA9IHZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4udXBkYXRlTGlnaHRTY2hlbWUoKTtcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgICAuc2V0TmFtZSgnTGlnaHQgbW9kZSBiYWNrZ3JvdW5kIGNvbnRyYXN0JylcclxuICAgICAgICAuc2V0RGVzYygnTGV2ZWwgb2YgY29udHJhc3QgYmV0d2VlbiBzaWRlYmFyIGFuZCBtYWluIGNvbnRlbnQnKVxyXG4gICAgICAgIC5hZGREcm9wZG93bihkcm9wZG93biA9PiBkcm9wZG93blxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1saWdodCcsJ0RlZmF1bHQnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1saWdodC13aGl0ZScsJ0FsbCB3aGl0ZScpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLWxpZ2h0LXRvbmFsJywnTG93IGNvbnRyYXN0JylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtbGlnaHQtY29udHJhc3QnLCdIaWdoIGNvbnRyYXN0JylcclxuICAgICAgICAgIC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5saWdodFN0eWxlKVxyXG4gICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmxpZ2h0U3R5bGUgPSB2YWx1ZTtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnVwZGF0ZUxpZ2h0U3R5bGUoKTtcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgICAuc2V0TmFtZSgnRGFyayBtb2RlIGNvbG9yIHNjaGVtZScpXHJcbiAgICAgICAgLnNldERlc2MoJ1ByZXNldCBjb2xvcnMgb3B0aW9ucyBmb3IgZGFyayBtb2RlJylcclxuICAgICAgICAuYWRkRHJvcGRvd24oZHJvcGRvd24gPT4gZHJvcGRvd25cclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtZGVmYXVsdC1kYXJrJywnRGVmYXVsdCcpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLWF0b20tZGFyaycsJ0F0b20nKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1heXUtZGFyaycsJ0F5dScpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLWNhdHBwdWNjaW4tZGFyaycsJ0NhdHBwdWNjaW4nKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1kcmFjdWxhLWRhcmsnLCdEcmFjdWxhJylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtZXZlcmZvcmVzdC1kYXJrJywnRXZlcmZvcmVzdCcpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLWdydXZib3gtZGFyaycsJ0dydXZib3gnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1tYWNvcy1kYXJrJywnbWFjT1MnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1ub3JkLWRhcmsnLCdOb3JkJylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtbm90aW9uLWRhcmsnLCdOb3Rpb24nKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1yb3NlLXBpbmUtZGFyaycsJ1Jvc1x1MDBFOSBQaW5lJylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtc29sYXJpemVkLWRhcmsnLCdTb2xhcml6ZWQnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC10aGluZ3MtZGFyaycsJ1RoaW5ncycpXHJcbiAgICAgICAgICAuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZGFya1NjaGVtZSlcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuZGFya1NjaGVtZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnVwZGF0ZURhcmtTY2hlbWUoKTtcclxuICAgICAgICAgIH0pKTtcclxuXHJcbiAgICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAgIC5zZXROYW1lKCdEYXJrIG1vZGUgYmFja2dyb3VuZCBjb250cmFzdCcpXHJcbiAgICAgICAgLnNldERlc2MoJ0xldmVsIG9mIGNvbnRyYXN0IGJldHdlZW4gc2lkZWJhciBhbmQgbWFpbiBjb250ZW50JylcclxuICAgICAgICAuYWRkRHJvcGRvd24oZHJvcGRvd24gPT4gZHJvcGRvd25cclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtZGFyaycsJ0RlZmF1bHQnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1kYXJrLXRvbmFsJywnTG93IGNvbnRyYXN0JylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtZGFyay1ibGFjaycsJ1RydWUgYmxhY2snKVxyXG4gICAgICAgICAgLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmRhcmtTdHlsZSlcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuZGFya1N0eWxlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4udXBkYXRlRGFya1N0eWxlKCk7XHJcbiAgICAgICAgICB9KSk7XHJcblxyXG4gICAgY29udGFpbmVyRWwuY3JlYXRlRWwoJ2JyJyk7XHJcbiAgICBjb250YWluZXJFbC5jcmVhdGVFbCgnaDMnKTtcclxuICAgIGNvbnRhaW5lckVsLmNyZWF0ZUVsKCdoMycsIHt0ZXh0OiAnRmVhdHVyZXMnfSk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdNYXRjaCBzeXN0ZW0gc2V0dGluZyBmb3IgbGlnaHQgb3IgZGFyayBtb2RlJylcclxuICAgICAgLnNldERlc2MoJ0F1dG9tYXRpY2FsbHkgc3dpdGNoIGJhc2VkIG9uIHlvdXIgT1Mgc2V0dGluZycpXHJcbiAgICAgIC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy51c2VTeXN0ZW1UaGVtZSlcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MudXNlU3lzdGVtVGhlbWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoU3lzdGVtVGhlbWUoKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdUZXh0IGxhYmVscyBmb3IgcHJpbWFyeSBuYXZpZ2F0aW9uJylcclxuICAgICAgLnNldERlc2MoJ05hdmlnYXRpb24gaW4gbGVmdCBzaWRlYmFyIHVzZXMgdGV4dCBsYWJlbHMgKHNlZSBkb2N1bWVudGF0aW9uIGZvciBsb2NhbGl6YXRpb24gc3VwcG9ydCknKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MubGFiZWxlZE5hdilcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MubGFiZWxlZE5hdiA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgIH0pKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ0NvbG9yZnVsIHdpbmRvdyBmcmFtZScpXHJcbiAgICAgIC5zZXREZXNjKCdUaGUgdG9wIGFyZWEgb2YgdGhlIGFwcCB1c2VzIHlvdXIgYWNjZW50IGNvbG9yJylcclxuICAgICAgLmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmNvbG9yZnVsRnJhbWUpXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmNvbG9yZnVsRnJhbWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnQ29sb3JmdWwgYWN0aXZlIHN0YXRlcycpXHJcbiAgICAgIC5zZXREZXNjKCdBY3RpdmUgZmlsZSBhbmQgbWVudSBpdGVtcyB1c2UgeW91ciBhY2NlbnQgY29sb3InKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY29sb3JmdWxBY3RpdmVTdGF0ZXMpXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmNvbG9yZnVsQWN0aXZlU3RhdGVzID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ0NvbG9yZnVsIGhlYWRpbmdzJylcclxuICAgICAgLnNldERlc2MoJ0hlYWRpbmdzIHVzZSBhIGRpZmZlcmVudCBjb2xvciBmb3IgZWFjaCBzaXplJylcclxuICAgICAgLmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmNvbG9yZnVsSGVhZGluZ3MpXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmNvbG9yZnVsSGVhZGluZ3MgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnTWluaW1hbCBzdGF0dXMgYmFyJylcclxuICAgICAgLnNldERlc2MoJ1VzZSBuYXJyb3cgc3RhdHVzIGJhcicpXHJcbiAgICAgIC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5taW5pbWFsU3RhdHVzKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5taW5pbWFsU3RhdHVzID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgICAgfSkpO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnVHJpbSBmaWxlIG5hbWVzIGluIHNpZGViYXJzJylcclxuICAgICAgLnNldERlc2MoJ1VzZSBlbGxpcHNlcyB0byBmaXQgZmlsZSBuYW1lcyBvbiBhIHNpbmdsZSBsaW5lJylcclxuICAgICAgLmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLnRyaW1OYW1lcylcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MudHJpbU5hbWVzID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgICAgfSkpO1xyXG5cclxuICAgICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgICAgLnNldE5hbWUoJ1dvcmtzcGFjZSBib3JkZXJzJylcclxuICAgICAgICAuc2V0RGVzYygnRGlzcGxheSBkaXZpZGVyIGxpbmVzIGJldHdlZW4gd29ya3NwYWNlIGVsZW1lbnRzJylcclxuICAgICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuYm9yZGVyc1RvZ2dsZSlcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuYm9yZGVyc1RvZ2dsZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgIH0pKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ0ZvY3VzIG1vZGUnKVxyXG4gICAgICAuc2V0RGVzYygnSGlkZSB0YWIgYmFyIGFuZCBzdGF0dXMgYmFyLCBob3ZlciB0byBkaXNwbGF5IChjYW4gYmUgdG9nZ2xlZCB3aXRoIGhvdGtleSknKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZm9jdXNNb2RlKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5mb2N1c01vZGUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnVW5kZXJsaW5lIGludGVybmFsIGxpbmtzJylcclxuICAgICAgLnNldERlc2MoJ1Nob3cgdW5kZXJsaW5lcyBvbiBpbnRlcm5hbCBsaW5rcycpXHJcbiAgICAgIC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy51bmRlcmxpbmVJbnRlcm5hbClcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MudW5kZXJsaW5lSW50ZXJuYWwgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnVW5kZXJsaW5lIGV4dGVybmFsIGxpbmtzJylcclxuICAgICAgLnNldERlc2MoJ1Nob3cgdW5kZXJsaW5lcyBvbiBleHRlcm5hbCBsaW5rcycpXHJcbiAgICAgIC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy51bmRlcmxpbmVFeHRlcm5hbClcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MudW5kZXJsaW5lRXh0ZXJuYWwgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnTWF4aW1pemUgbWVkaWEnKVxyXG4gICAgICAuc2V0RGVzYygnSW1hZ2VzIGFuZCB2aWRlb3MgZmlsbCB0aGUgd2lkdGggb2YgdGhlIGxpbmUnKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZnVsbFdpZHRoTWVkaWEpXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmZ1bGxXaWR0aE1lZGlhID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgICAgfSkpO1xyXG5cclxuICAgIGNvbnRhaW5lckVsLmNyZWF0ZUVsKCdicicpO1xyXG4gICAgY29udGFpbmVyRWwuY3JlYXRlRWwoJ2gzJyk7XHJcbiAgICBjb250YWluZXJFbC5jcmVhdGVFbCgnaDMnLCB7dGV4dDogJ0xheW91dCd9KTtcclxuXHJcbiAgICBjb25zdCBsYXlvdXREZXNjID0gY29udGFpbmVyRWwuY3JlYXRlRWwoJ3AnKTtcclxuXHJcbiAgICAgIGxheW91dERlc2MuYXBwZW5kQ2hpbGQoXHJcbiAgICAgICAgY3JlYXRlRWwoJ3NwYW4nLCB7XHJcbiAgICAgICAgICB0ZXh0OiAnVGhlc2Ugb3B0aW9ucyBjYW4gYWxzbyBiZSBkZWZpbmVkIG9uIGEgcGVyLWZpbGUgYmFzaXMsICdcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgbGF5b3V0RGVzYy5hcHBlbmRDaGlsZChcclxuICAgICAgICBjcmVhdGVFbCgnYScsIHtcclxuICAgICAgICAgIHRleHQ6IFwic2VlIGRvY3VtZW50YXRpb25cIixcclxuICAgICAgICAgIGhyZWY6IFwiaHR0cHM6Ly9taW5pbWFsLmd1aWRlL0ZlYXR1cmVzL0Jsb2NrK3dpZHRoXCIsXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgICAgbGF5b3V0RGVzYy5hcHBlbmRUZXh0KCcgZm9yIGRldGFpbHMuJyk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdJbWFnZSBncmlkcycpXHJcbiAgICAgIC5zZXREZXNjKCdUdXJuIGNvbnNlY3V0aXZlIGltYWdlcyBpbnRvIGNvbHVtbnMgXHUyMDE0IHRvIG1ha2UgYSBuZXcgcm93LCBhZGQgYW4gZXh0cmEgbGluZSBicmVhayBiZXR3ZWVuIGltYWdlcycpXHJcbiAgICAgIC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5pbWdHcmlkKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5pbWdHcmlkID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgICAgfSkpO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnQ2hhcnQgd2lkdGgnKVxyXG4gICAgICAuc2V0RGVzYygnRGVmYXVsdCB3aWR0aCBmb3IgY2hhcnQgYmxvY2tzJylcclxuICAgICAgLmFkZERyb3Bkb3duKGRyb3Bkb3duID0+IGRyb3Bkb3duXHJcbiAgICAgICAgLmFkZE9wdGlvbignY2hhcnQtZGVmYXVsdC13aWR0aCcsJ0RlZmF1bHQnKVxyXG4gICAgICAgIC5hZGRPcHRpb24oJ2NoYXJ0LXdpZGUnLCdXaWRlIGxpbmUgd2lkdGgnKVxyXG4gICAgICAgIC5hZGRPcHRpb24oJ2NoYXJ0LW1heCcsJ01heGltdW0gbGluZSB3aWR0aCcpXHJcbiAgICAgICAgLmFkZE9wdGlvbignY2hhcnQtMTAwJywnMTAwJSBwYW5lIHdpZHRoJylcclxuICAgICAgICAuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY2hhcnRXaWR0aClcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuY2hhcnRXaWR0aCA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ0lmcmFtZSB3aWR0aCcpXHJcbiAgICAgIC5zZXREZXNjKCdEZWZhdWx0IHdpZHRoIGZvciBpZnJhbWUgYmxvY2tzJylcclxuICAgICAgLmFkZERyb3Bkb3duKGRyb3Bkb3duID0+IGRyb3Bkb3duXHJcbiAgICAgICAgLmFkZE9wdGlvbignaWZyYW1lLWRlZmF1bHQtd2lkdGgnLCdEZWZhdWx0JylcclxuICAgICAgICAuYWRkT3B0aW9uKCdpZnJhbWUtd2lkZScsJ1dpZGUgbGluZSB3aWR0aCcpXHJcbiAgICAgICAgLmFkZE9wdGlvbignaWZyYW1lLW1heCcsJ01heGltdW0gbGluZSB3aWR0aCcpXHJcbiAgICAgICAgLmFkZE9wdGlvbignaWZyYW1lLTEwMCcsJzEwMCUgcGFuZSB3aWR0aCcpXHJcbiAgICAgICAgLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmlmcmFtZVdpZHRoKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5pZnJhbWVXaWR0aCA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ0ltYWdlIHdpZHRoJylcclxuICAgICAgLnNldERlc2MoJ0RlZmF1bHQgd2lkdGggZm9yIGltYWdlIGJsb2NrcycpXHJcbiAgICAgIC5hZGREcm9wZG93bihkcm9wZG93biA9PiBkcm9wZG93blxyXG4gICAgICAgIC5hZGRPcHRpb24oJ2ltZy1kZWZhdWx0LXdpZHRoJywnRGVmYXVsdCcpXHJcbiAgICAgICAgLmFkZE9wdGlvbignaW1nLXdpZGUnLCdXaWRlIGxpbmUgd2lkdGgnKVxyXG4gICAgICAgIC5hZGRPcHRpb24oJ2ltZy1tYXgnLCdNYXhpbXVtIGxpbmUgd2lkdGgnKVxyXG4gICAgICAgIC5hZGRPcHRpb24oJ2ltZy0xMDAnLCcxMDAlIHBhbmUgd2lkdGgnKVxyXG4gICAgICAgIC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5pbWdXaWR0aClcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuaW1nV2lkdGggPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdNYXAgd2lkdGgnKVxyXG4gICAgICAuc2V0RGVzYygnRGVmYXVsdCB3aWR0aCBmb3IgbWFwIGJsb2NrcycpXHJcbiAgICAgIC5hZGREcm9wZG93bihkcm9wZG93biA9PiBkcm9wZG93blxyXG4gICAgICAgIC5hZGRPcHRpb24oJ21hcC1kZWZhdWx0LXdpZHRoJywnRGVmYXVsdCcpXHJcbiAgICAgICAgLmFkZE9wdGlvbignbWFwLXdpZGUnLCdXaWRlIGxpbmUgd2lkdGgnKVxyXG4gICAgICAgIC5hZGRPcHRpb24oJ21hcC1tYXgnLCdNYXhpbXVtIGxpbmUgd2lkdGgnKVxyXG4gICAgICAgIC5hZGRPcHRpb24oJ21hcC0xMDAnLCcxMDAlIHBhbmUgd2lkdGgnKVxyXG4gICAgICAgIC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5tYXBXaWR0aClcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MubWFwV2lkdGggPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdUYWJsZSB3aWR0aCcpXHJcbiAgICAgIC5zZXREZXNjKCdEZWZhdWx0IHdpZHRoIGZvciB0YWJsZSBhbmQgRGF0YXZpZXcgYmxvY2tzJylcclxuICAgICAgLmFkZERyb3Bkb3duKGRyb3Bkb3duID0+IGRyb3Bkb3duXHJcbiAgICAgICAgLmFkZE9wdGlvbigndGFibGUtZGVmYXVsdC13aWR0aCcsJ0RlZmF1bHQnKVxyXG4gICAgICAgIC5hZGRPcHRpb24oJ3RhYmxlLXdpZGUnLCdXaWRlIGxpbmUgd2lkdGgnKVxyXG4gICAgICAgIC5hZGRPcHRpb24oJ3RhYmxlLW1heCcsJ01heGltdW0gbGluZSB3aWR0aCcpXHJcbiAgICAgICAgLmFkZE9wdGlvbigndGFibGUtMTAwJywnMTAwJSBwYW5lIHdpZHRoJylcclxuICAgICAgICAuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MudGFibGVXaWR0aClcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MudGFibGVXaWR0aCA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICBjb250YWluZXJFbC5jcmVhdGVFbCgnYnInKTtcclxuICAgIGNvbnRhaW5lckVsLmNyZWF0ZUVsKCdoMycpO1xyXG4gICAgY29udGFpbmVyRWwuY3JlYXRlRWwoJ2gzJywge3RleHQ6ICdUeXBvZ3JhcGh5J30pO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnVGV4dCBmb250IHNpemUnKVxyXG4gICAgICAuc2V0RGVzYygnVXNlZCBmb3IgdGhlIG1haW4gdGV4dCAoZGVmYXVsdCAxNiknKVxyXG4gICAgICAuYWRkVGV4dCh0ZXh0ID0+IHRleHQuc2V0UGxhY2Vob2xkZXIoJzE2JylcclxuICAgICAgICAuc2V0VmFsdWUoKHRoaXMucGx1Z2luLnNldHRpbmdzLnRleHROb3JtYWwgfHwgJycpICsgJycpXHJcbiAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MudGV4dE5vcm1hbCA9IHBhcnNlRmxvYXQodmFsdWUpO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2V0Rm9udFNpemUoKTtcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdTbWFsbCBmb250IHNpemUnKVxyXG4gICAgICAuc2V0RGVzYygnVXNlZCBmb3IgdGV4dCBpbiB0aGUgc2lkZWJhcnMgYW5kIHRhYnMgKGRlZmF1bHQgMTMpJylcclxuICAgICAgLmFkZFRleHQodGV4dCA9PiB0ZXh0LnNldFBsYWNlaG9sZGVyKCcxMycpXHJcbiAgICAgICAgLnNldFZhbHVlKCh0aGlzLnBsdWdpbi5zZXR0aW5ncy50ZXh0U21hbGwgfHwgJycpICsgJycpXHJcbiAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MudGV4dFNtYWxsID0gcGFyc2VGbG9hdCh2YWx1ZSk7XHJcbiAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgfSkpO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnTGluZSBoZWlnaHQnKVxyXG4gICAgICAuc2V0RGVzYygnTGluZSBoZWlnaHQgb2YgdGV4dCAoZGVmYXVsdCAxLjUpJylcclxuICAgICAgLmFkZFRleHQodGV4dCA9PiB0ZXh0LnNldFBsYWNlaG9sZGVyKCcxLjUnKVxyXG4gICAgICAgIC5zZXRWYWx1ZSgodGhpcy5wbHVnaW4uc2V0dGluZ3MubGluZUhlaWdodCB8fCAnJykgKyAnJylcclxuICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5saW5lSGVpZ2h0ID0gcGFyc2VGbG9hdCh2YWx1ZSk7XHJcbiAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgfSkpO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnTm9ybWFsIGxpbmUgd2lkdGgnKVxyXG4gICAgICAuc2V0RGVzYygnTnVtYmVyIG9mIGNoYXJhY3RlcnMgcGVyIGxpbmUgKGRlZmF1bHQgNDApJylcclxuICAgICAgLmFkZFRleHQodGV4dCA9PiB0ZXh0LnNldFBsYWNlaG9sZGVyKCc0MCcpXHJcbiAgICAgICAgLnNldFZhbHVlKCh0aGlzLnBsdWdpbi5zZXR0aW5ncy5saW5lV2lkdGggfHwgJycpICsgJycpXHJcbiAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MubGluZVdpZHRoID0gcGFyc2VJbnQodmFsdWUudHJpbSgpKTtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdXaWRlIGxpbmUgd2lkdGgnKVxyXG4gICAgICAuc2V0RGVzYygnTnVtYmVyIG9mIGNoYXJhY3RlcnMgcGVyIGxpbmUgZm9yIHdpZGUgZWxlbWVudHMgKGRlZmF1bHQgNTApJylcclxuICAgICAgLmFkZFRleHQodGV4dCA9PiB0ZXh0LnNldFBsYWNlaG9sZGVyKCc1MCcpXHJcbiAgICAgICAgLnNldFZhbHVlKCh0aGlzLnBsdWdpbi5zZXR0aW5ncy5saW5lV2lkdGhXaWRlIHx8ICcnKSArICcnKVxyXG4gICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmxpbmVXaWR0aFdpZGUgPSBwYXJzZUludCh2YWx1ZS50cmltKCkpO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgIH0pKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ01heGltdW0gbGluZSB3aWR0aCAlJylcclxuICAgICAgLnNldERlc2MoJ1BlcmNlbnRhZ2Ugb2Ygc3BhY2UgaW5zaWRlIGEgcGFuZSB0aGF0IGEgbGluZSBjYW4gZmlsbCAoZGVmYXVsdCA4OCknKVxyXG4gICAgICAuYWRkVGV4dCh0ZXh0ID0+IHRleHQuc2V0UGxhY2Vob2xkZXIoJzg4JylcclxuICAgICAgICAuc2V0VmFsdWUoKHRoaXMucGx1Z2luLnNldHRpbmdzLm1heFdpZHRoIHx8ICcnKSArICcnKVxyXG4gICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLm1heFdpZHRoID0gcGFyc2VJbnQodmFsdWUudHJpbSgpKTtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICB9KSk7XHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ0VkaXRvciBmb250JylcclxuICAgICAgLnNldERlc2MoJ092ZXJyaWRlcyB0aGUgdGV4dCBmb250IGRlZmluZWQgaW4gT2JzaWRpYW4gQXBwZWFyYW5jZSBzZXR0aW5ncyB3aGVuIGluIGVkaXQgbW9kZScpXHJcbiAgICAgIC5hZGRUZXh0KHRleHQgPT4gdGV4dC5zZXRQbGFjZWhvbGRlcignJylcclxuICAgICAgICAuc2V0VmFsdWUoKHRoaXMucGx1Z2luLnNldHRpbmdzLmVkaXRvckZvbnQgfHwgJycpICsgJycpXHJcbiAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuZWRpdG9yRm9udCA9IHZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgIH0pKTtcclxuXHJcbiAgICBjb250YWluZXJFbC5jcmVhdGVFbCgnYnInKTtcclxuICAgIGNvbnRhaW5lckVsLmNyZWF0ZUVsKCdoMycsIHt0ZXh0OiAnU3VwcG9ydCBkZXZlbG9wbWVudCd9KTtcclxuXHJcbiAgICBjb25zdCBkb25hdGVUZXh0ID0gY29udGFpbmVyRWwuY3JlYXRlRWwoJ3AnKTtcclxuXHJcbiAgICAgIGRvbmF0ZVRleHQuYXBwZW5kQ2hpbGQoXHJcbiAgICAgICAgY3JlYXRlRWwoJ3NwYW4nLCB7XHJcbiAgICAgICAgICB0ZXh0OiAnSWYgeW91IGVuam95IE1pbmltYWwsIGNvbnNpZGVyICdcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgZG9uYXRlVGV4dC5hcHBlbmRDaGlsZChcclxuICAgICAgICBjcmVhdGVFbCgnYScsIHtcclxuICAgICAgICAgIHRleHQ6IFwiYnV5aW5nIG1lIGEgY29mZmVlXCIsXHJcbiAgICAgICAgICBocmVmOiBcImh0dHBzOi8vd3d3LmJ1eW1lYWNvZmZlZS5jb20va2VwYW5vXCIsXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgICAgZG9uYXRlVGV4dC5hcHBlbmRDaGlsZChcclxuICAgICAgICBjcmVhdGVFbCgnc3BhbicsIHtcclxuICAgICAgICAgIHRleHQ6ICcsIGFuZCBmb2xsb3dpbmcgbWUgb24gVHdpdHRlciAnXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgIGRvbmF0ZVRleHQuYXBwZW5kQ2hpbGQoXHJcbiAgICAgICAgY3JlYXRlRWwoJ2EnLCB7XHJcbiAgICAgICAgICB0ZXh0OiBcIkBrZXBhbm9cIixcclxuICAgICAgICAgIGhyZWY6IFwiaHR0cHM6Ly90d2l0dGVyLmNvbS9rZXBhbm9cIixcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG5cclxuICAgIGNvbnN0IGRpdiA9IGNvbnRhaW5lckVsLmNyZWF0ZUVsKCdkaXYnLCB7XHJcbiAgICAgIGNsczogJ21pbmltYWwtZG9uYXRpb24nLFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgcGFyc2VyID0gbmV3IERPTVBhcnNlcigpO1xyXG4gICAgZGl2LmFwcGVuZENoaWxkKFxyXG4gICAgICBjcmVhdGVEb25hdGVCdXR0b24oXHJcbiAgICAgICAgJ2h0dHBzOi8vd3d3LmJ1eW1lYWNvZmZlZS5jb20va2VwYW5vJyxcclxuICAgICAgICBwYXJzZXIucGFyc2VGcm9tU3RyaW5nKGJ1eU1lQUNvZmZlZSwgJ3RleHQveG1sJykuZG9jdW1lbnRFbGVtZW50LFxyXG4gICAgICApLFxyXG4gICAgKTtcclxuXHJcblxyXG4gIH1cclxufVxyXG5cclxuY29uc3QgY3JlYXRlRG9uYXRlQnV0dG9uID0gKGxpbms6IHN0cmluZywgaW1nOiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50ID0+IHtcclxuICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gIGEuc2V0QXR0cmlidXRlKCdocmVmJywgbGluayk7XHJcbiAgYS5hZGRDbGFzcygnbWluaW1hbC1kb25hdGUtYnV0dG9uJyk7XHJcbiAgYS5hcHBlbmRDaGlsZChpbWcpO1xyXG4gIHJldHVybiBhO1xyXG59O1xyXG5cclxuY29uc3QgYnV5TWVBQ29mZmVlID0gYFxyXG48c3ZnIHdpZHRoPVwiMTUwXCIgaGVpZ2h0PVwiNDJcIiB2aWV3Qm94PVwiMCAwIDI2MCA3M1wiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OjEwcHhcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuPHBhdGggZD1cIk0wIDExLjY4QzAgNS4yMjkzMiA1LjIyOTMxIDAgMTEuNjggMEgyNDguMkMyNTQuNjUxIDAgMjU5Ljg4IDUuMjI5MzEgMjU5Ljg4IDExLjY4VjYxLjMyQzI1OS44OCA2Ny43NzA3IDI1NC42NTEgNzMgMjQ4LjIgNzNIMTEuNjhDNS4yMjkzMSA3MyAwIDY3Ljc3MDcgMCA2MS4zMlYxMS42OFpcIiBmaWxsPVwiI0ZGREQwMFwiLz5cclxuPHBhdGggZD1cIk01Mi4yNTY2IDI0LjAwNzhMNTIuMjI0NiAyMy45ODg5TDUyLjE1MDQgMjMuOTY2M0M1Mi4xODAyIDIzLjk5MTUgNTIuMjE3NiAyNC4wMDYxIDUyLjI1NjYgMjQuMDA3OFpcIiBmaWxsPVwiIzBEMEMyMlwiLz5cclxuPHBhdGggZD1cIk01Mi43MjQ4IDI3LjM0NTdMNTIuNjg5NSAyNy4zNTU2TDUyLjcyNDggMjcuMzQ1N1pcIiBmaWxsPVwiIzBEMEMyMlwiLz5cclxuPHBhdGggZD1cIk01Mi4yNzAxIDI0LjAwMjRDNTIuMjY2IDI0LjAwMTkgNTIuMjYxOSAyNC4wMDA5IDUyLjI1OCAyMy45OTk1QzUyLjI1NzggMjQuMDAyMiA1Mi4yNTc4IDI0LjAwNDkgNTIuMjU4IDI0LjAwNzZDNTIuMjYyNCAyNC4wMDcgNTIuMjY2NiAyNC4wMDUyIDUyLjI3MDEgMjQuMDAyNFpcIiBmaWxsPVwiIzBEMEMyMlwiLz5cclxuPHBhdGggZD1cIk01Mi4yNTc4IDI0LjAwOTRINTIuMjY0M1YyNC4wMDU0TDUyLjI1NzggMjQuMDA5NFpcIiBmaWxsPVwiIzBEMEMyMlwiLz5cclxuPHBhdGggZD1cIk01Mi42OTczIDI3LjMzOTRMNTIuNzUxMyAyNy4zMDg2TDUyLjc3MTQgMjcuMjk3M0w1Mi43ODk3IDI3LjI3NzhDNTIuNzU1NCAyNy4yOTI2IDUyLjcyNDEgMjcuMzEzNSA1Mi42OTczIDI3LjMzOTRaXCIgZmlsbD1cIiMwRDBDMjJcIi8+XHJcbjxwYXRoIGQ9XCJNNTIuMzQ4NCAyNC4wODEyTDUyLjI5NTYgMjQuMDMxTDUyLjI1OTggMjQuMDExNUM1Mi4yNzkgMjQuMDQ1NCA1Mi4zMTA4IDI0LjA3MDUgNTIuMzQ4NCAyNC4wODEyWlwiIGZpbGw9XCIjMEQwQzIyXCIvPlxyXG48cGF0aCBkPVwiTTM5LjA2ODQgNTYuNDY5QzM5LjAyNjIgNTYuNDg3MiAzOC45ODkzIDU2LjUxNTggMzguOTYwOSA1Ni41NTJMMzguOTk0MyA1Ni41MzA2QzM5LjAxNjkgNTYuNTA5OCAzOS4wNDg5IDU2LjQ4NTMgMzkuMDY4NCA1Ni40NjlaXCIgZmlsbD1cIiMwRDBDMjJcIi8+XHJcbjxwYXRoIGQ9XCJNNDYuNzgwMiA1NC45NTE4QzQ2Ljc4MDIgNTQuOTA0MSA0Ni43NTY5IDU0LjkxMjkgNDYuNzYyNiA1NS4wODI2QzQ2Ljc2MjYgNTUuMDY4NyA0Ni43NjgzIDU1LjA1NDkgNDYuNzcwOCA1NS4wNDE3QzQ2Ljc3MzkgNTUuMDExNSA0Ni43NzY0IDU0Ljk4MiA0Ni43ODAyIDU0Ljk1MThaXCIgZmlsbD1cIiMwRDBDMjJcIi8+XHJcbjxwYXRoIGQ9XCJNNDUuOTg0NCA1Ni40NjlDNDUuOTQyMiA1Ni40ODcyIDQ1LjkwNTMgNTYuNTE1OCA0NS44NzcgNTYuNTUyTDQ1LjkxMDMgNTYuNTMwNkM0NS45MzI5IDU2LjUwOTggNDUuOTY0OSA1Ni40ODUzIDQ1Ljk4NDQgNTYuNDY5WlwiIGZpbGw9XCIjMEQwQzIyXCIvPlxyXG48cGF0aCBkPVwiTTMzLjYzMDcgNTYuODMwMUMzMy41OTg3IDU2LjgwMjMgMzMuNTU5NSA1Ni43ODQgMzMuNTE3NiA1Ni43NzczQzMzLjU1MTUgNTYuNzkzNyAzMy41ODU1IDU2LjgxIDMzLjYwODEgNTYuODIyNkwzMy42MzA3IDU2LjgzMDFaXCIgZmlsbD1cIiMwRDBDMjJcIi8+XHJcbjxwYXRoIGQ9XCJNMzIuNDExOCA1NS42NTk4QzMyLjQwNjggNTUuNjEwMyAzMi4zOTE2IDU1LjU2MjQgMzIuMzY3MiA1NS41MTlDMzIuMzg0NSA1NS41NjQyIDMyLjM5OSA1NS42MTA0IDMyLjQxMDYgNTUuNjU3M0wzMi40MTE4IDU1LjY1OThaXCIgZmlsbD1cIiMwRDBDMjJcIi8+XHJcbjxwYXRoIGQ9XCJNNDAuNjIzIDM0LjcyMjFDMzguOTQ0OSAzNS40NDA1IDM3LjA0MDQgMzYuMjU1MSAzNC41NzIyIDM2LjI1NTFDMzMuNTM5NyAzNi4yNTMxIDMyLjUxMjIgMzYuMTExNCAzMS41MTc2IDM1LjgzNEwzMy4yMjQ3IDUzLjM2MDVDMzMuMjg1MSA1NC4wOTMgMzMuNjE4OCA1NC43NzYxIDM0LjE1OTUgNTUuMjczOUMzNC43MDAzIDU1Ljc3MTggMzUuNDA4NSA1Ni4wNDgyIDM2LjE0MzUgNTYuMDQ4QzM2LjE0MzUgNTYuMDQ4IDM4LjU2NCA1Ni4xNzM3IDM5LjM3MTYgNTYuMTczN0M0MC4yNDA5IDU2LjE3MzcgNDIuODQ3NCA1Ni4wNDggNDIuODQ3NCA1Ni4wNDhDNDMuNTgyMyA1Ni4wNDggNDQuMjkwNCA1NS43NzE2IDQ0LjgzMSA1NS4yNzM3QzQ1LjM3MTYgNTQuNzc1OSA0NS43MDUyIDU0LjA5MjkgNDUuNzY1NiA1My4zNjA1TDQ3LjU5NCAzMy45OTNDNDYuNzc2OSAzMy43MTQgNDUuOTUyMyAzMy41Mjg2IDQ1LjAyMjcgMzMuNTI4NkM0My40MTUgMzMuNTI3OSA0Mi4xMTk2IDM0LjA4MTcgNDAuNjIzIDM0LjcyMjFaXCIgZmlsbD1cIndoaXRlXCIvPlxyXG48cGF0aCBkPVwiTTI2LjIzNDQgMjcuMjQ0OUwyNi4yNjMzIDI3LjI3MTlMMjYuMjgyMSAyNy4yODMyQzI2LjI2NzYgMjcuMjY4OCAyNi4yNTE2IDI3LjI1NTkgMjYuMjM0NCAyNy4yNDQ5WlwiIGZpbGw9XCIjMEQwQzIyXCIvPlxyXG48cGF0aCBkPVwiTTU1LjQ5MDYgMjUuNjI3NEw1NS4yMzM2IDI0LjMzMDdDNTUuMDAyOSAyMy4xNjczIDU0LjQ3OTMgMjIuMDY4IDUzLjI4NTEgMjEuNjQ3NUM1Mi45MDI0IDIxLjUxMyA1Mi40NjggMjEuNDU1MiA1Mi4xNzQ1IDIxLjE3NjhDNTEuODgxIDIwLjg5ODMgNTEuNzk0MyAyMC40NjU5IDUxLjcyNjQgMjAuMDY0OUM1MS42MDA3IDE5LjMyODkgNTEuNDgyNSAxOC41OTIzIDUxLjM1MzcgMTcuODU3NUM1MS4yNDI0IDE3LjIyNTkgNTEuMTU0NCAxNi41MTYzIDUwLjg2NDcgMTUuOTM2OEM1MC40ODc2IDE1LjE1ODYgNDkuNzA1IDE0LjcwMzYgNDguOTI2OSAxNC40MDI1QzQ4LjUyODIgMTQuMjUzNyA0OC4xMjEzIDE0LjEyNzggNDcuNzA4MiAxNC4wMjU0QzQ1Ljc2NDIgMTMuNTEyNSA0My43MjAyIDEzLjMyNCA0MS43MjAyIDEzLjIxNjVDMzkuMzE5NyAxMy4wODQgMzYuOTEyOCAxMy4xMjM5IDM0LjUxOCAxMy4zMzU5QzMyLjczNTUgMTMuNDk4MSAzMC44NTgxIDEzLjY5NDIgMjkuMTY0MiAxNC4zMTA4QzI4LjU0NTEgMTQuNTM2NCAyNy45MDcxIDE0LjgwNzMgMjcuNDM2NCAxNS4yODU2QzI2Ljg1ODcgMTUuODczMyAyNi42NzAyIDE2Ljc4MjEgMjcuMDkxOSAxNy41MTVDMjcuMzkxNyAxOC4wMzU0IDI3Ljg5OTYgMTguNDAzMSAyOC40MzgyIDE4LjY0NjNDMjkuMTM5OCAxOC45NTk3IDI5Ljg3MjYgMTkuMTk4MiAzMC42MjQyIDE5LjM1NzhDMzIuNzE3MiAxOS44MjA0IDM0Ljg4NSAyMC4wMDIxIDM3LjAyMzMgMjAuMDc5NEMzOS4zOTMyIDIwLjE3NSA0MS43NjcgMjAuMDk3NSA0NC4xMjU2IDE5Ljg0NzRDNDQuNzA4OSAxOS43ODMzIDQ1LjI5MTEgMTkuNzA2NCA0NS44NzIzIDE5LjYxNjhDNDYuNTU2OCAxOS41MTE4IDQ2Ljk5NjEgMTguNjE2OCA0Ni43OTQzIDE3Ljk5MzNDNDYuNTUzIDE3LjI0NzkgNDUuOTA0NCAxNi45NTg3IDQ1LjE3MDkgMTcuMDcxMkM0NS4wNjI4IDE3LjA4ODIgNDQuOTU1MyAxNy4xMDM5IDQ0Ljg0NzIgMTcuMTE5Nkw0NC43NjkyIDE3LjEzMUM0NC41MjA4IDE3LjE2MjQgNDQuMjcyMyAxNy4xOTE3IDQ0LjAyMzggMTcuMjE5QzQzLjUxMDUgMTcuMjc0MyA0Mi45OTU5IDE3LjMxOTUgNDIuNDgwMSAxNy4zNTQ3QzQxLjMyNDkgMTcuNDM1MiA0MC4xNjY1IDE3LjQ3MjIgMzkuMDA4OCAxNy40NzQxQzM3Ljg3MTIgMTcuNDc0MSAzNi43MzI5IDE3LjQ0MjEgMzUuNTk3OCAxNy4zNjczQzM1LjA3OTkgMTcuMzMzMyAzNC41NjMyIDE3LjI5MDIgMzQuMDQ3OCAxNy4yMzc4QzMzLjgxMzQgMTcuMjEzMyAzMy41Nzk2IDE3LjE4NzUgMzMuMzQ1OCAxNy4xNTg2TDMzLjEyMzMgMTcuMTMwM0wzMy4wNzQ5IDE3LjEyMzRMMzIuODQ0MiAxNy4wOTAxQzMyLjM3MjggMTcuMDE5MSAzMS45MDE0IDE2LjkzNzQgMzEuNDM1IDE2LjgzODdDMzEuMzg4IDE2LjgyODMgMzEuMzQ1OSAxNi44MDIxIDMxLjMxNTcgMTYuNzY0NUMzMS4yODU2IDE2LjcyNjkgMzEuMjY5MSAxNi42ODAxIDMxLjI2OTEgMTYuNjMxOUMzMS4yNjkxIDE2LjU4MzcgMzEuMjg1NiAxNi41MzY5IDMxLjMxNTcgMTYuNDk5M0MzMS4zNDU5IDE2LjQ2MTcgMzEuMzg4IDE2LjQzNTYgMzEuNDM1IDE2LjQyNTFIMzEuNDQzOEMzMS44NDggMTYuMzM5IDMyLjI1NTMgMTYuMjY1NSAzMi42NjM4IDE2LjIwMTRDMzIuOCAxNi4xOCAzMi45MzY2IDE2LjE1OSAzMy4wNzM2IDE2LjEzODVIMzMuMDc3NEMzMy4zMzMyIDE2LjEyMTUgMzMuNTkwMyAxNi4wNzU3IDMzLjg0NDggMTYuMDQ1NUMzNi4wNTk1IDE1LjgxNTEgMzguMjg3NCAxNS43MzY2IDQwLjUxMjggMTUuODEwNEM0MS41OTMzIDE1Ljg0MTkgNDIuNjczMSAxNS45MDUzIDQzLjc0ODUgMTYuMDE0N0M0My45Nzk4IDE2LjAzODYgNDQuMjA5OCAxNi4wNjM3IDQ0LjQzOTkgMTYuMDkyQzQ0LjUyNzkgMTYuMTAyNyA0NC42MTY1IDE2LjExNTMgNDQuNzA1MSAxNi4xMjU5TDQ0Ljg4MzYgMTYuMTUxN0M0NS40MDQgMTYuMjI5MiA0NS45MjE3IDE2LjMyMzMgNDYuNDM2NyAxNi40MzM5QzQ3LjE5OTcgMTYuNTk5OSA0OC4xNzk2IDE2LjY1MzkgNDguNTE5IDE3LjQ4OThDNDguNjI3MSAxNy43NTUxIDQ4LjY3NjEgMTguMDQ5OSA0OC43MzU5IDE4LjMyODNMNDguODExOSAxOC42ODM0QzQ4LjgxMzkgMTguNjg5OCA0OC44MTU0IDE4LjY5NjMgNDguODE2MyAxOC43MDI5QzQ4Ljk5NjEgMTkuNTQwOSA0OS4xNzYgMjAuMzc5IDQ5LjM1NjIgMjEuMjE3QzQ5LjM2OTQgMjEuMjc4OSA0OS4zNjk3IDIxLjM0MjkgNDkuMzU3MSAyMS40MDQ5QzQ5LjM0NDUgMjEuNDY2OSA0OS4zMTkzIDIxLjUyNTcgNDkuMjgyOSAyMS41Nzc2QzQ5LjI0NjYgMjEuNjI5NCA0OS4yIDIxLjY3MzIgNDkuMTQ2IDIxLjcwNjJDNDkuMDkyIDIxLjczOTIgNDkuMDMxNyAyMS43NjA4IDQ4Ljk2OSAyMS43Njk1SDQ4Ljk2NEw0OC44NTQgMjEuNzg0Nkw0OC43NDUzIDIxLjc5OUM0OC40MDA5IDIxLjg0MzkgNDguMDU2IDIxLjg4NTggNDcuNzEwNyAyMS45MjQ3QzQ3LjAzMDcgMjIuMDAyMiA0Ni4zNDk2IDIyLjA2OTMgNDUuNjY3NCAyMi4xMjU5QzQ0LjMxMTkgMjIuMjM4NiA0Mi45NTM2IDIyLjMxMjUgNDEuNTkyNyAyMi4zNDc3QzQwLjg5OTIgMjIuMzY2MiA0MC4yMDU5IDIyLjM3NDggMzkuNTEyOSAyMi4zNzM1QzM2Ljc1NDMgMjIuMzcxMyAzMy45OTgxIDIyLjIxMSAzMS4yNTc4IDIxLjg5MzNDMzAuOTYxMSAyMS44NTgxIDMwLjY2NDUgMjEuODIwNCAzMC4zNjc4IDIxLjc4MjFDMzAuNTk3OCAyMS44MTE2IDMwLjIwMDYgMjEuNzU5NCAzMC4xMjAyIDIxLjc0ODFDMjkuOTMxNiAyMS43MjE3IDI5Ljc0MzEgMjEuNjk0MyAyOS41NTQ1IDIxLjY2NThDMjguOTIxNiAyMS41NzA5IDI4LjI5MjQgMjEuNDU0IDI3LjY2MDcgMjEuMzUxNUMyNi44OTcxIDIxLjIyNTggMjYuMTY2NyAyMS4yODg3IDI1LjQ3NiAyMS42NjU4QzI0LjkwOSAyMS45NzYgMjQuNDUwMSAyMi40NTE4IDI0LjE2MDUgMjMuMDI5N0MyMy44NjI2IDIzLjY0NTYgMjMuNzczOSAyNC4zMTYzIDIzLjY0MDcgMjQuOTc4MUMyMy41MDc0IDI1LjYzOTkgMjMuMyAyNi4zNTIxIDIzLjM3ODYgMjcuMDMxNUMyMy41NDc3IDI4LjQ5NzkgMjQuNTcyOCAyOS42ODk1IDI2LjA0NzMgMjkuOTU2QzI3LjQzNDUgMzAuMjA3NCAyOC44MjkyIDMwLjQxMTEgMzAuMjI3NiAzMC41ODQ2QzM1LjcyMTIgMzEuMjU3NCA0MS4yNzExIDMxLjMzNzkgNDYuNzgxOCAzMC44MjQ3QzQ3LjIzMDUgMzAuNzgyOCA0Ny42Nzg3IDMwLjczNzEgNDguMTI2MiAzMC42ODc2QzQ4LjI2NiAzMC42NzIzIDQ4LjQwNzQgMzAuNjg4NCA0OC41NDAxIDMwLjczNDhDNDguNjcyOSAzMC43ODEyIDQ4Ljc5MzYgMzAuODU2NiA0OC44OTM0IDMwLjk1NTdDNDguOTkzMiAzMS4wNTQ4IDQ5LjA2OTUgMzEuMTc0OSA0OS4xMTY5IDMxLjMwNzNDNDkuMTY0MiAzMS40Mzk3IDQ5LjE4MTQgMzEuNTgxMSA0OS4xNjcgMzEuNzIwOUw0OS4wMjc1IDMzLjA3NzNDNDguNzQ2MyAzNS44MTgxIDQ4LjQ2NTIgMzguNTU4NyA0OC4xODQgNDEuMjk5QzQ3Ljg5MDcgNDQuMTc2OSA0Ny41OTU1IDQ3LjA1NDUgNDcuMjk4NCA0OS45MzE5QzQ3LjIxNDYgNTAuNzQyMiA0Ny4xMzA4IDUxLjU1MjQgNDcuMDQ3IDUyLjM2MjRDNDYuOTY2NiA1My4xNiA0Ni45NTUyIDUzLjk4MjcgNDYuODAzOCA1NC43NzA5QzQ2LjU2NDkgNTYuMDEwMyA0NS43MjU4IDU2Ljc3MTUgNDQuNTAxNSA1Ny4wNDk5QzQzLjM3OTggNTcuMzA1MiA0Mi4yMzM5IDU3LjQzOTIgNDEuMDgzNiA1Ny40NDk3QzM5LjgwODMgNTcuNDU2NiAzOC41MzM2IDU3LjQgMzcuMjU4MyA1Ny40MDY5QzM1Ljg5NyA1Ny40MTQ1IDM0LjIyOTUgNTcuMjg4NyAzMy4xNzg2IDU2LjI3NTZDMzIuMjU1MyA1NS4zODU2IDMyLjEyNzcgNTMuOTkyMSAzMi4wMDIgNTIuNzg3MkMzMS44MzQ0IDUxLjE5MiAzMS42NjgyIDQ5LjU5NzEgMzEuNTAzNiA0OC4wMDIzTDMwLjU3OTYgMzkuMTM0NEwyOS45ODE5IDMzLjM5NjZDMjkuOTcxOCAzMy4zMDE3IDI5Ljk2MTggMzMuMjA4IDI5Ljk1MjQgMzMuMTEyNUMyOS44ODA3IDMyLjQyOCAyOS4zOTYxIDMxLjc1OCAyOC42MzI0IDMxLjc5MjZDMjcuOTc4OCAzMS44MjE1IDI3LjIzNTkgMzIuMzc3MSAyNy4zMTI1IDMzLjExMjVMMjcuNzU1NyAzNy4zNjY0TDI4LjY3MiA0Ni4xNjU3QzI4LjkzMzEgNDguNjY1MiAyOS4xOTM1IDUxLjE2NSAyOS40NTMzIDUzLjY2NTNDMjkuNTAzNiA1NC4xNDQyIDI5LjU1MDcgNTQuNjI0NCAyOS42MDM1IDU1LjEwMzRDMjkuODkwOCA1Ny43MjA1IDMxLjg4OTUgNTkuMTMxIDM0LjM2NDYgNTkuNTI4MkMzNS44MTAyIDU5Ljc2MDcgMzcuMjkxIDU5LjgwODUgMzguNzU4IDU5LjgzMjRDNDAuNjM4NiA1OS44NjI2IDQyLjUzOCA1OS45MzQ4IDQ0LjM4NzcgNTkuNTk0MkM0Ny4xMjg3IDU5LjA5MTQgNDkuMTg1MyA1Ny4yNjExIDQ5LjQ3ODggNTQuNDIyQzQ5LjU2MjYgNTMuNjAyNCA0OS42NDY0IDUyLjc4MjYgNDkuNzMwMiA1MS45NjI2QzUwLjAwODggNDkuMjUwNyA1MC4yODcxIDQ2LjUzODYgNTAuNTY0OSA0My44MjYzTDUxLjQ3MzcgMzQuOTY0MUw1MS44OTA0IDMwLjkwMjZDNTEuOTExMiAzMC43MDEyIDUxLjk5NjIgMzAuNTExOCA1Mi4xMzMgMzAuMzYyNUM1Mi4yNjk3IDMwLjIxMzIgNTIuNDUwOSAzMC4xMTE5IDUyLjY0OTcgMzAuMDczNkM1My40MzM1IDI5LjkyMDggNTQuMTgyNyAyOS42NiA1NC43NDAyIDI5LjA2MzVDNTUuNjI3NyAyOC4xMTM4IDU1LjgwNDMgMjYuODc1NiA1NS40OTA2IDI1LjYyNzRaTTI2LjAwNzEgMjYuNTAzNUMyNi4wMTkgMjYuNDk3OSAyNS45OTcgMjYuNjAwMyAyNS45ODc2IDI2LjY0ODFDMjUuOTg1NyAyNi41NzU4IDI1Ljk4OTUgMjYuNTExNyAyNi4wMDcxIDI2LjUwMzVaTTI2LjA4MzEgMjcuMDkxOEMyNi4wODk0IDI3LjA4NzQgMjYuMTA4MyAyNy4xMTI2IDI2LjEyNzggMjcuMTQyOEMyNi4wOTgyIDI3LjExNTEgMjYuMDc5NCAyNy4wOTQ0IDI2LjA4MjUgMjcuMDkxOEgyNi4wODMxWk0yNi4xNTc5IDI3LjE5MDVDMjYuMTg1IDI3LjIzNjQgMjYuMTk5NCAyNy4yNjUzIDI2LjE1NzkgMjcuMTkwNVYyNy4xOTA1Wk0yNi4zMDgyIDI3LjMxMjVIMjYuMzExOUMyNi4zMTE5IDI3LjMxNjkgMjYuMzE4OCAyNy4zMjEzIDI2LjMyMTQgMjcuMzI1N0MyNi4zMTcyIDI3LjMyMDggMjYuMzEyNiAyNy4zMTY0IDI2LjMwNzUgMjcuMzEyNUgyNi4zMDgyWk01Mi42MTMyIDI3LjEzMDJDNTIuMzMxNyAyNy4zOTc5IDUxLjkwNzQgMjcuNTIyNCA1MS40ODgyIDI3LjU4NDZDNDYuNzg2OCAyOC4yODIzIDQyLjAxNjkgMjguNjM1NSAzNy4yNjQgMjguNDc5NkMzMy44NjI0IDI4LjM2MzMgMzAuNDk2NyAyNy45ODU2IDI3LjEyOSAyNy41MDk4QzI2Ljc5OSAyNy40NjMzIDI2LjQ0MTQgMjcuNDAzIDI2LjIxNDUgMjcuMTU5N0MyNS43ODcxIDI2LjcwMDkgMjUuOTk3IDI1Ljc3NyAyNi4xMDgzIDI1LjIyMjZDMjYuMjEwMSAyNC43MTQ4IDI2LjQwNSAyNC4wMzc4IDI3LjAwOSAyMy45NjU2QzI3Ljk1MTggMjMuODU0OSAyOS4wNDY2IDI0LjI1MjggMjkuOTc5NCAyNC4zOTQyQzMxLjEwMjMgMjQuNTY1NiAzMi4yMjk1IDI0LjcwMjggMzMuMzYwOSAyNC44MDU5QzM4LjE4OTIgMjUuMjQ1OSA0My4wOTg2IDI1LjE3NzQgNDcuOTA1NiAyNC41MzM3QzQ4Ljc4MTcgMjQuNDE2IDQ5LjY1NDggMjQuMjc5MiA1MC41MjQ2IDI0LjEyMzNDNTEuMjk5NiAyMy45ODQ0IDUyLjE1ODggMjMuNzIzNiA1Mi42MjcxIDI0LjUyNjJDNTIuOTQ4MiAyNS4wNzMgNTIuOTkxIDI1LjgwNDYgNTIuOTQxMyAyNi40MjI1QzUyLjkyNiAyNi42OTE3IDUyLjgwODQgMjYuOTQ0OCA1Mi42MTI2IDI3LjEzMDJINTIuNjEzMlpcIiBmaWxsPVwiIzBEMEMyMlwiLz5cclxuPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTgxLjEzMDIgNDAuMTkyOUM4MC44NTU2IDQwLjcxNjkgODAuNDc4MSA0MS4xNzMyIDc5Ljk5NzggNDEuNTYwNEM3OS41MTc1IDQxLjk0NzkgNzguOTU3MSA0Mi4yNjMzIDc4LjMxNjYgNDIuNTA2MkM3Ny42NzYxIDQyLjc0OTcgNzcuMDMxNSA0Mi45MTMxIDc2LjM4MzUgNDIuOTk2NEM3NS43MzUyIDQzLjA3OTkgNzUuMTA2IDQzLjA3MjcgNzQuNDk2MyA0Mi45NzM1QzczLjg4NjMgNDIuODc0OSA3My4zNjc0IDQyLjY3MzcgNzIuOTQwOCA0Mi4zNjk1TDczLjQyMTQgMzcuMzc3OUM3My44NjMzIDM3LjIyNjEgNzQuNDE5NyAzNy4wNzAzIDc1LjA5MDkgMzYuOTEwN0M3NS43NjE5IDM2Ljc1MTMgNzYuNDUyIDM2LjYzNzEgNzcuMTYxMyAzNi41Njg5Qzc3Ljg3MDUgMzYuNTAwMyA3OC41NDEyIDM2LjUwODQgNzkuMTc0NCAzNi41OTE3Qzc5LjgwNjggMzYuNjc1MyA4MC4zMDY1IDM2Ljg3NjUgODAuNjcyNSAzNy4xOTU4QzgwLjg3MDcgMzcuMzc4IDgxLjAzODcgMzcuNTc1NCA4MS4xNzYgMzcuNzg4M0M4MS4zMTMgMzguMDAxMSA4MS4zOTY5IDM4LjIyMTQgODEuNDI3NiAzOC40NDkzQzgxLjUwMzcgMzkuMDg3NSA4MS40MDQ3IDM5LjY2ODcgODEuMTMwMiA0MC4xOTI5Wk03NC4xNTMgMjkuNTYwMkM3NC40NzM0IDI5LjM2MjcgNzQuODU4NSAyOS4xODc3IDc1LjMwODMgMjkuMDM1NkM3NS43NTgxIDI4Ljg4NDEgNzYuMjE5NSAyOC43Nzc0IDc2LjY5MjMgMjguNzE2N0M3Ny4xNjQ4IDI4LjY1NjIgNzcuNjI2MiAyOC42NDgxIDc4LjA3NjMgMjguNjkzOEM3OC41MjU4IDI4LjczOTUgNzguOTIyOCAyOC44NjQ3IDc5LjI2NTkgMjkuMDY5N0M3OS42MDg5IDI5LjI3NTEgNzkuODY0MyAyOS41NzE0IDgwLjAzMiAyOS45NTg2QzgwLjE5OTcgMzAuMzQ2NCA4MC4yNDU2IDMwLjgzNjUgODAuMTY5MyAzMS40MjlDODAuMTA4MyAzMS45MDAxIDc5LjkyMTEgMzIuMjk5MSA3OS42MDg5IDMyLjYyNTZDNzkuMjk2MyAzMi45NTI2IDc4LjkxNDcgMzMuMjI1OSA3OC40NjUyIDMzLjQ0NjJDNzguMDE1NCAzMy42NjY4IDc3LjUzODggMzMuODQxNSA3Ny4wMzU2IDMzLjk3MDJDNzYuNTMyMSAzNC4wOTk3IDc2LjA0NzcgMzQuMTk0OSA3NS41ODI4IDM0LjI1NTNDNzUuMTE3NiAzNC4zMTYzIDc0LjcxMzcgMzQuMzU0NSA3NC4zNzA2IDM0LjM2OTJDNzQuMDI3MyAzNC4zODQ1IDczLjgwMjEgMzQuMzkyMSA3My42OTU2IDM0LjM5MjFMNzQuMTUzIDI5LjU2MDJaTTgzLjYwMDcgMzYuOTY3NkM4My4zNTY2IDM2LjQzNjEgODMuMDI4NyAzNS45Njg5IDgyLjYxNzIgMzUuNTY1OEM4Mi4yMDU0IDM1LjE2MzMgODEuNzE3IDM0Ljg3MDkgODEuMTUzMSAzNC42ODg1QzgxLjM5NjkgMzQuNDkxIDgxLjYzNzEgMzQuMTc5NSA4MS44NzM3IDMzLjc1MzlDODIuMTA5OSAzMy4zMjg4IDgyLjMxMTkgMzIuODY1IDgyLjQ3OTYgMzIuMzYzNkM4Mi42NDc0IDMxLjg2MTkgODIuNzYyIDMxLjM1NyA4Mi44MjI5IDMwLjg0NzhDODIuODgzNiAzMC4zMzg5IDgyLjg2MDcgMjkuOTAyIDgyLjc1NDQgMjkuNTM3QzgyLjQ5NDcgMjguNjI1NiA4Mi4wODcgMjcuOTExNCA4MS41MzAzIDI3LjM5NDZDODAuOTczNCAyNi44NzgyIDgwLjMyNTcgMjYuNTIxMSA3OS41ODYgMjYuMzIzM0M3OC44NDYyIDI2LjEyNjQgNzguMDMwNCAyNi4wODQyIDc3LjEzODMgMjYuMTk4MUM3Ni4yNDYyIDI2LjMxMiA3NS4zMzQ3IDI2LjUzNjEgNzQuNDA0OSAyNi44NzA0Qzc0LjQwNDkgMjYuNzk0NiA3NC40MTI0IDI2LjcxNDggNzQuNDI3OCAyNi42MzEyQzc0LjQ0MjYgMjYuNTQ4IDc0LjQ1MDQgMjYuNDYwNCA3NC40NTA0IDI2LjM2OUM3NC40NTA0IDI2LjE0MTEgNzQuMzM2MSAyNS45NDM5IDc0LjEwNzQgMjUuNzc2NUM3My44Nzg3IDI1LjYwOTMgNzMuNjE1NSAyNS41MTA3IDczLjMxODMgMjUuNDgwMUM3My4wMjA5IDI1LjQ1IDcyLjczMSAyNS41MTQyIDcyLjQ0ODkgMjUuNjczOEM3Mi4xNjY1IDI1LjgzMzQgNzEuOTcyMSAyNi4xMjY0IDcxLjg2NTYgMjYuNTUxMUM3MS43NDM0IDI3LjkxODkgNzEuNjIxNSAyOS4zMzk4IDcxLjQ5OTYgMzAuODEzNEM3MS4zNzc0IDMyLjI4NzUgNzEuMjQ4IDMzLjc3NjcgNzEuMTEwNyAzNS4yODEyQzcwLjk3MzUgMzYuNzg1NSA3MC44MzYyIDM4LjI3ODQgNzAuNjk4OSAzOS43NTk4QzcwLjU2MTYgNDEuMjQxNCA3MC40MjQ0IDQyLjY2NTkgNzAuMjg3MSA0NC4wMzMzQzcwLjMzMyA0NC40NDM2IDcwLjQ0NzMgNDQuNzYyOSA3MC42MzA0IDQ0Ljk5MDdDNzAuODEzMyA0NS4yMTg5IDcxLjAyNjggNDUuMzU1NiA3MS4yNzA5IDQ1LjQwMUM3MS41MTQ3IDQ1LjQ0NjcgNzEuNzcwNCA0NS40MDQ1IDcyLjAzNzEgNDUuMjc1NUM3Mi4zMDM4IDQ1LjE0NjkgNzIuNTM2NSA0NC45MjIyIDcyLjczNSA0NC42MDMyQzczLjM0NDcgNDQuOTM3NSA3NC4wMzExIDQ1LjE1NDEgNzQuNzkzOCA0NS4yNTNDNzUuNTU2MSA0NS4zNTE2IDc2LjMyOTggNDUuMzUxNiA3Ny4xMTU3IDQ1LjI1M0M3Ny45MDA3IDQ1LjE1NDEgNzguNjc0NyA0NC45NjgyIDc5LjQzNzQgNDQuNjk0M0M4MC4xOTk3IDQ0LjQyMTEgODAuODkzNiA0NC4wNzkgODEuNTE5IDQzLjY2OUM4Mi4xNDQxIDQzLjI1ODYgODIuNjcwMyA0Mi43OTExIDgzLjA5NzUgNDIuMjY3MUM4My41MjQ0IDQxLjc0MjYgODMuODA2NSA0MS4xNzY3IDgzLjk0MzcgNDAuNTY5MUM4NC4wODEgMzkuOTQ2IDg0LjExOSAzOS4zMjMxIDg0LjA1ODEgMzguN0M4My45OTcxIDM4LjA3NzEgODMuODQ0NSAzNy41IDgzLjYwMDcgMzYuOTY3NlpcIiBmaWxsPVwiIzBEMEMyM1wiLz5cclxuPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEwNS45MTUgNDkuMDAxN0MxMDUuODMyIDQ5LjUwMzEgMTA1LjcxMyA1MC4wMzExIDEwNS41NjEgNTAuNTg2QzEwNS40MDggNTEuMTQwMyAxMDUuMjI5IDUxLjY0NTggMTA1LjAyMyA1Mi4xMDE4QzEwNC44MTggNTIuNTU3NSAxMDQuNTg5IDUyLjkyNTYgMTA0LjMzNyA1My4yMDdDMTA0LjA4NSA1My40ODggMTAzLjgxNSA1My42MDYgMTAzLjUyNSA1My41NjA2QzEwMy4yOTYgNTMuNTI5NyAxMDMuMTUxIDUzLjM4NTQgMTAzLjA5MSA1My4xMjc0QzEwMy4wMjkgNTIuODY4NiAxMDMuMDI5IDUyLjU0OTcgMTAzLjA5MSA1Mi4xN0MxMDMuMTUxIDUxLjc5MDEgMTAzLjI2OSA1MS4zNjA3IDEwMy40NDUgNTAuODgyMUMxMDMuNjIgNTAuNDAzNSAxMDMuODM0IDQ5LjkyODQgMTA0LjA4NSA0OS40NTc3QzEwNC4zMzcgNDguOTg2NCAxMDQuNjIzIDQ4LjUzNDcgMTA0Ljk0MyA0OC4xMDE1QzEwNS4yNjQgNDcuNjY4NiAxMDUuNTk5IDQ3LjMwNzUgMTA1Ljk1IDQ3LjAxODlDMTA2LjAyNiA0Ny4xMSAxMDYuMDYgNDcuMzM3OCAxMDYuMDUzIDQ3LjcwMjhDMTA2LjA0NSA0OC4wNjc0IDEwNS45OTkgNDguNTAwNiAxMDUuOTE1IDQ5LjAwMTdaTTExMy42NyAzOS4xMDk3QzExMy40NjQgMzguODgxOSAxMTMuMjEzIDM4Ljc1MjkgMTEyLjkxNSAzOC43MjIzQzExMi42MTggMzguNjkxOSAxMTIuMzE3IDM4Ljg1OSAxMTIuMDEyIDM5LjIyMzdDMTExLjgxMyAzOS41ODgzIDExMS41NjIgMzkuOTM3OSAxMTEuMjU3IDQwLjI3MjJDMTEwLjk1MiA0MC42MDY3IDExMC42MzUgNDAuOTEwMyAxMTAuMzA3IDQxLjE4MzlDMTA5Ljk4IDQxLjQ1NzIgMTA5LjY2NyA0MS42OTMxIDEwOS4zNyA0MS44OTAzQzEwOS4wNzIgNDIuMDg4MSAxMDguODQgNDIuMjMyNCAxMDguNjcyIDQyLjMyMzVDMTA4LjYxMSA0MS44Mzc0IDEwOC41NzYgNDEuMzEzMiAxMDguNTY5IDQwLjc1MDdDMTA4LjU2MSA0MC4xODg2IDEwOC41NzMgMzkuNjE5IDEwOC42MDMgMzkuMDQxNUMxMDguNjQ5IDM4LjIyMDkgMTA4Ljc0NCAzNy4zOTMgMTA4Ljg4OSAzNi41NTdDMTA5LjAzNCAzNS43MjEzIDEwOS4yNDQgMzQuOTAwNyAxMDkuNTE4IDM0LjA5NTFDMTA5LjUxOCAzMy42NyAxMDkuNDE5IDMzLjMyNDIgMTA5LjIyMSAzMy4wNTgyQzEwOS4wMjIgMzIuNzkyNCAxMDguNzgyIDMyLjYyNSAxMDguNSAzMi41NTY3QzEwOC4yMTggMzIuNDg4NSAxMDcuOTI5IDMyLjUyNjQgMTA3LjYzMSAzMi42NzA3QzEwNy4zMzQgMzIuODE1MyAxMDcuMDc4IDMzLjA3NzUgMTA2Ljg2NSAzMy40NTY5QzEwNi42ODIgMzMuOTU4NiAxMDYuNDcyIDM0LjUyMDcgMTA2LjIzNiAzNS4xNDM2QzEwNS45OTkgMzUuNzY2NyAxMDUuNzMyIDM2LjQwMTIgMTA1LjQzNSAzNy4wNDY5QzEwNS4xMzggMzcuNjkzMSAxMDQuODA2IDM4LjMxOTcgMTA0LjQ0IDM4LjkyNzNDMTA0LjA3NCAzOS41MzU0IDEwMy42NzQgNDAuMDc1IDEwMy4yMzkgNDAuNTQ1N0MxMDIuODA0IDQxLjAxNjggMTAyLjMzMSA0MS4zODU0IDEwMS44MjEgNDEuNjUxMkMxMDEuMzEgNDEuOTE3MiAxMDAuNzU3IDQyLjAzNDkgMTAwLjE2MiA0Mi4wMDQ1Qzk5Ljg4NzYgNDEuOTI4NSA5OS42ODkzIDQxLjcyMzUgOTkuNTY3NSA0MS4zODg5Qzk5LjQ0NTMgNDEuMDU0OSA5OS4zNzMgNDAuNjM2OCA5OS4zNTA0IDQwLjEzNTRDOTkuMzI3NSAzOS42MzQgOTkuMzUwNCAzOS4wODMxIDk5LjQxODkgMzguNDgyOEM5OS40ODc3IDM3Ljg4MjggOTkuNTc5MSAzNy4yODYzIDk5LjY5MzQgMzYuNjkzOEM5OS44MDc4IDM2LjEwMSA5OS45MzM3IDM1LjUzODkgMTAwLjA3MSAzNS4wMDcxQzEwMC4yMDggMzQuNDc1MyAxMDAuMzM3IDM0LjAyNjggMTAwLjQ2IDMzLjY2MjJDMTAwLjY0MyAzMy4yMjE4IDEwMC42NDMgMzIuODUyOSAxMDAuNDYgMzIuNTU2N0MxMDAuMjc3IDMyLjI2MDQgMTAwLjAyNSAzMi4wNjMxIDk5LjcwNSAzMS45NjRDOTkuMzg0NiAzMS44NjU0IDk5LjA0ODkgMzEuODY5NCA5OC42OTgzIDMxLjk3NTVDOTguMzQ3NCAzMi4wODE5IDk4LjA5NTggMzIuMzE3MyA5Ny45NDM1IDMyLjY4MkM5Ny42ODQgMzMuMzA1NCA5Ny40NDc1IDM0LjAwNCA5Ny4yMzQyIDM0Ljc3OUM5Ny4wMjA2IDM1LjU1MzkgOTYuODQ5MSAzNi4zNTU4IDk2LjcxOTcgMzcuMTgzNkM5Ni41ODk2IDM4LjAxMjEgOTYuNTE3MSAzOC44MzI3IDk2LjUwMiAzOS42NDU2Qzk2LjUwMTEgMzkuNjk4NSA5Ni41MDM3IDM5Ljc0ODggOTYuNTAzNCAzOS44MDE0Qzk2LjE3MDkgNDAuNjg0OCA5NS44NTQgNDEuMzUyNSA5NS41NTMgNDEuNzk5MkM5NS4xNjQxIDQyLjM3NyA5NC43MjUzIDQyLjYyNzcgOTQuMjM3NSA0Mi41NTEzQzk0LjAyMzYgNDIuNDYwMyA5My44ODMyIDQyLjI0NzcgOTMuODE0NyA0MS45MTMyQzkzLjc0NTMgNDEuNTc5MiA5My43MjI3IDQxLjE2ODkgOTMuNzQ1MyA0MC42ODIyQzkzLjc2ODggNDAuMTk2NCA5My44MjYgMzkuNjQ1NiA5My45MTcxIDM5LjAyOTlDOTQuMDA5MSAzOC40MTQ2IDk0LjEyMjkgMzcuNzc2NCA5NC4yNjAxIDM3LjExNTRDOTQuMzk3NyAzNi40NTQxIDk0LjU0MjUgMzUuNzg5OSA5NC42OTQ5IDM1LjEyMUM5NC44NDcyIDM0LjQ1MjUgOTQuOTg0NSAzMy44MjE4IDk1LjEwNyAzMy4yMjkxQzk1LjA5MTYgMzIuNjk3MyA5NC45MzUyIDMyLjI5MSA5NC42Mzc3IDMyLjAwOTdDOTQuMzQwNSAzMS43Mjg5IDkzLjkyNDcgMzEuNjE4NyA5My4zOTEzIDMxLjY3OTFDOTMuMDI1MyAzMS44MzEyIDkyLjc1NDIgMzIuMDI5IDkyLjU3OSAzMi4yNzE5QzkyLjQwMzQgMzIuNTE0OCA5Mi4yNjIzIDMyLjgyNjUgOTIuMTU1OCAzMy4yMDYyQzkyLjA5NDYgMzMuNDA0IDkyLjAwMzIgMzMuNzk5IDkxLjg4MTMgMzQuMzkxOEM5MS43NTkxIDM0Ljk4NCA5MS42MDMgMzUuNjY0NCA5MS40MTIzIDM2LjQzMTVDOTEuMjIxNyAzNy4xOTkyIDkwLjk5NjcgMzguMDAwNSA5MC43Mzc2IDM4LjgzNjJDOTAuNDc4MSAzOS42NzE5IDkwLjE4ODUgNDAuNDI4MyA4OS44Njg0IDQxLjEwNDFDODkuNTQ4IDQxLjc4MDEgODkuMTk3MiA0Mi4zMjM1IDg4LjgxNjEgNDIuNzMzOEM4OC40MzQ4IDQzLjE0MzggODguMDIzIDQzLjMxMTMgODcuNTgwNyA0My4yMzUyQzg3LjMzNjYgNDMuMTg5NSA4Ny4xODA1IDQyLjkzODggODcuMTEyIDQyLjQ4MzFDODcuMDQzMiA0Mi4wMjcxIDg3LjAzMTkgNDEuNDY1MyA4Ny4wNzc1IDQwLjc5NjRDODcuMTIzMyA0MC4xMjc5IDg3LjIxNDggMzkuMzk0NiA4Ny4zNTIgMzguNTk3MUM4Ny40ODkzIDM3Ljc5OTMgODcuNjMgMzcuMDQzNCA4Ny43NzUyIDM2LjMyODlDODcuOTIgMzUuNjE0OSA4OC4wNTM1IDM0Ljk4NCA4OC4xNzU2IDM0LjQzNzJDODguMjk3NSAzMy44OTAxIDg4LjM4MTQgMzMuNTI1NCA4OC40MjcyIDMzLjM0MzNDODguNDI3MiAzMi45MDI2IDg4LjMyNzcgMzIuNTQ5NSA4OC4xMjk4IDMyLjI4MzJDODcuOTMxMyAzMi4wMTc4IDg3LjY5MTMgMzEuODUwMyA4Ny40MDkyIDMxLjc4MThDODcuMTI2OCAzMS43MTM2IDg2LjgzNzIgMzEuNzUxNCA4Ni41NCAzMS44OTU3Qzg2LjI0MjYgMzIuMDQwMyA4NS45ODcyIDMyLjMwMjYgODUuNzczNiAzMi42ODJDODUuNjk3MyAzMy4wOTIzIDg1LjU5OCAzMy41Njc0IDg1LjQ3NjEgMzQuMTA2N0M4NS4zNTM5IDM0LjY0NTkgODUuMjM2MSAzNS4yMDA2IDg1LjEyMTggMzUuNzcwNUM4NS4wMDc0IDM2LjM0MDQgODQuOTAwMyAzNi44OTg4IDg0LjgwMTQgMzcuNDQ1OUM4NC43MDIxIDM3Ljk5MyA4NC42Mjk5IDM4LjQ3MTYgODQuNTg0IDM4Ljg4MTlDODQuNTUzNiAzOS4yMDA4IDg0LjUxOSAzOS41OTIzIDg0LjQ4MTMgNDAuMDU1NkM4NC40NDMgNDAuNTE5NCA4NC40MjM4IDQxLjAwOTIgODQuNDIzOCA0MS41MjU3Qzg0LjQyMzggNDIuMDQyNyA4NC40NjE4IDQyLjU1NTQgODQuNTM4NSA0My4wNjQzQzg0LjYxNDUgNDMuNTczNSA4NC43NTE4IDQ0LjA0MDggODQuOTUgNDQuNDY1OUM4NS4xNDgyIDQ0Ljg5MTUgODUuNDI2NSA0NS4yNDA4IDg1Ljc4NTIgNDUuNTE0NEM4Ni4xNDMzIDQ1Ljc4NzkgODYuNTk3MiA0NS45Mzk3IDg3LjE0NjMgNDUuOTcwNEM4Ny43MTAxIDQ2LjAwMDUgODguMjAyIDQ1Ljk1OTEgODguNjIxNyA0NS44NDQ5Qzg5LjA0MSA0NS43MzEgODkuNDIyMSA0NS41NTIzIDg5Ljc2NTQgNDUuMzA5MUM5MC4xMDg0IDQ1LjA2NjUgOTAuNDIxIDQ0Ljc3NzYgOTAuNzAzMyA0NC40NDNDOTAuOTg1MSA0NC4xMDkxIDkxLjI2MzcgNDMuNzQ0NCA5MS41MzgzIDQzLjM0OTFDOTEuNzk3NCA0My45MjY5IDkyLjEzMjkgNDQuMzc0OCA5Mi41NDQ3IDQ0LjY5NEM5Mi45NTY1IDQ1LjAxMyA5My4zOTEzIDQ1LjIwMzIgOTMuODQ4NiA0NS4yNjM3Qzk0LjMwNiA0NS4zMjQxIDk0Ljc3MTUgNDUuMjYwMiA5NS4yNDQyIDQ1LjA2OTlDOTUuNzE2NyA0NC44ODAzIDk2LjE0MzYgNDQuNTU3MyA5Ni41MjUyIDQ0LjEwMTJDOTYuNzc2MiA0My44MjE2IDk3LjAxMzEgNDMuNTAzOCA5Ny4yMzU0IDQzLjE1MjVDOTcuMzI5NyA0My4zMTcgOTcuNDMwMSA0My40NzU4IDk3LjU0MyA0My42MjI0Qzk3LjkxNjggNDQuMTA5MSA5OC40MjQgNDQuNDQzIDk5LjA2NDUgNDQuNjI1NUM5OS43NTA2IDQ0LjgwOCAxMDAuNDIxIDQ0LjgzODYgMTAxLjA3NyA0NC43MTY5QzEwMS43MzMgNDQuNTk1NCAxMDIuMzU4IDQ0LjM3NDggMTAyLjk1MyA0NC4wNTU5QzEwMy41NDggNDMuNzM2NiAxMDQuMTAxIDQzLjM1MzIgMTA0LjYxMiA0Mi45MDQ3QzEwNS4xMjIgNDIuNDU2NSAxMDUuNTY4IDQxLjk4OTUgMTA1Ljk1IDQxLjUwMjhDMTA1LjkzNCA0MS44NTI0IDEwNS45MjcgNDIuMTgzMiAxMDUuOTI3IDQyLjQ5NDRDMTA1LjkyNyA0Mi44MDYxIDEwNS45MTkgNDMuMTQzOCAxMDUuOTA0IDQzLjUwODhDMTA1LjE0MSA0NC4wNDA4IDEwNC40MjEgNDQuNjc5IDEwMy43NDIgNDUuNDIzM0MxMDMuMDY0IDQ2LjE2NzYgMTAyLjQ2OSA0Ni45NjE2IDEwMS45NTggNDcuODA1MUMxMDEuNDQ3IDQ4LjY0ODMgMTAxLjA0NyA0OS41MDMxIDEwMC43NTcgNTAuMzY5MUMxMDAuNDY3IDUxLjIzNTcgMTAwLjMyNiA1Mi4wNDQ1IDEwMC4zMzQgNTIuNzk2OUMxMDAuMzQxIDUzLjU0OSAxMDAuNTIxIDU0LjIwNiAxMDAuODcxIDU0Ljc2ODFDMTAxLjIyMiA1NS4zMzA2IDEwMS43OTQgNTUuNzMzMSAxMDIuNTg3IDU1Ljk3NjNDMTAzLjQxMSA1Ni4yMzQ4IDEwNC4xMzUgNTYuMjQyIDEwNC43NiA1NS45OTkxQzEwNS4zODYgNTUuNzU1OSAxMDUuOTMxIDU1LjM1MzEgMTA2LjM5NiA1NC43OTFDMTA2Ljg2MSA1NC4yMjg5IDEwNy4yNDIgNTMuNTQ5IDEwNy41NCA1Mi43NTEyQzEwNy44MzcgNTEuOTUzNCAxMDguMDczIDUxLjEyMTUgMTA4LjI0OSA1MC4yNTU1QzEwOC40MjQgNDkuMzg5NCAxMDguNTM1IDQ4LjUzNzkgMTA4LjU4IDQ3LjcwMjhDMTA4LjYyNiA0Ni44NjY4IDEwOC42MjYgNDYuMTIxOSAxMDguNTggNDUuNDY4N0MxMDkuODkyIDQ0LjkyMTkgMTEwLjk2NyA0NC4yMzA1IDExMS44MDYgNDMuMzk0NUMxMTIuNjQ1IDQyLjU1OTQgMTEzLjMzOCA0MS42Nzc4IDExMy44ODcgNDAuNzUwN0MxMTQuMDU1IDQwLjUyMjkgMTE0LjExMiA0MC4yNDkzIDExNC4wNTkgMzkuOTMwNEMxMTQuMDA2IDM5LjYxMTEgMTEzLjg3NiAzOS4zMzc2IDExMy42NyAzOS4xMDk3WlwiIGZpbGw9XCIjMEQwQzIzXCIvPlxyXG48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTQyLjUzIDM3LjY1MTVDMTQyLjU3NSAzNy4zMDIyIDE0Mi42NDQgMzYuOTMzNSAxNDIuNzM1IDM2LjU0NkMxNDIuODI3IDM2LjE1ODUgMTQyLjk0MSAzNS43ODIzIDE0My4wNzkgMzUuNDE3N0MxNDMuMjE2IDM1LjA1MzEgMTQzLjM3NiAzNC43Mzc5IDE0My41NTkgMzQuNDcxOEMxNDMuNzQyIDM0LjIwNjEgMTQzLjkzNyAzNC4wMTYxIDE0NC4xNDIgMzMuOTAxOUMxNDQuMzQ4IDMzLjc4ODMgMTQ0LjU1OCAzMy43OTk1IDE0NC43NzEgMzMuOTM2QzE0NSAzNC4wNzMxIDE0NS4xNDEgMzQuMzYxNyAxNDUuMTk1IDM0LjgwMjFDMTQ1LjI0OCAzNS4yNDMzIDE0NS4xOTUgMzUuNzE0MSAxNDUuMDM0IDM2LjIxNTVDMTQ0Ljg3NCAzNi43MTcyIDE0NC41ODggMzcuMTg3OSAxNDQuMTc3IDM3LjYyODZDMTQzLjc2NSAzOC4wNjk2IDE0My4yMDggMzguMzU3OSAxNDIuNTA3IDM4LjQ5NDdDMTQyLjQ3NiAzOC4yODI0IDE0Mi40ODQgMzguMDAxMSAxNDIuNTMgMzcuNjUxNVpNMTUwLjQ1NiAzOC41ODU3QzE1MC4yMDQgMzguNTEwMyAxNDkuOTY0IDM4LjUwMjUgMTQ5LjczNSAzOC41NjMyQzE0OS41MDYgMzguNjIzOSAxNDkuMzYxIDM4Ljc4MzUgMTQ5LjMwMSAzOS4wNDJDMTQ5LjE3OCAzOS41MjgxIDE0OC45ODQgNDAuMDI1OCAxNDguNzE3IDQwLjUzNDdDMTQ4LjQ1IDQxLjA0MzkgMTQ4LjEyMiA0MS41MjYyIDE0Ny43MzQgNDEuOTgyMkMxNDcuMzQ1IDQyLjQzOCAxNDYuOTA2IDQyLjg0MDggMTQ2LjQxOCA0My4xOTAxQzE0NS45MyA0My41Mzk3IDE0NS40MTkgNDMuNzkwNCAxNDQuODg2IDQzLjk0MjJDMTQ0LjM1MSA0NC4xMDk2IDE0My45MSA0NC4xMjg0IDE0My41NTkgNDMuOTk5MUMxNDMuMjA4IDQzLjg3MDUgMTQyLjkzIDQzLjY0OTggMTQyLjcyNCA0My4zMzg0QzE0Mi41MTggNDMuMDI3IDE0Mi4zNjkgNDIuNjUwOCAxNDIuMjc4IDQyLjIxMDFDMTQyLjE4NiA0MS43Njk0IDE0Mi4xMzMgNDEuMzEzNyAxNDIuMTE4IDQwLjg0MjRDMTQyLjk4NyA0MC45MDM0IDE0My43NjEgNDAuNzQ3OCAxNDQuNDQgNDAuMzc1MUMxNDUuMTE4IDQwLjAwMzIgMTQ1LjY5NCAzOS41MDkgMTQ2LjE2NyAzOC44OTM3QzE0Ni42MzkgMzguMjc4NCAxNDYuOTk4IDM3LjU4NyAxNDcuMjQyIDM2LjgxOTVDMTQ3LjQ4NSAzNi4wNTI0IDE0Ny42MjMgMzUuMjg4NyAxNDcuNjUzIDM0LjUyODhDMTQ3LjY2OSAzMy44MTQ2IDE0Ny41NjIgMzMuMjEwOCAxNDcuMzMzIDMyLjcxNjlDMTQ3LjEwNSAzMi4yMjMzIDE0Ni43OTYgMzEuODM5IDE0Ni40MDcgMzEuNTY1OEMxNDYuMDE4IDMxLjI5MjIgMTQ1LjU3MiAzMS4xMzI2IDE0NS4wNjkgMzEuMDg3MkMxNDQuNTY2IDMxLjA0MTUgMTQ0LjA1NCAzMS4xMSAxNDMuNTM2IDMxLjI5MjJDMTQyLjkxIDMxLjUwNSAxNDIuMzgxIDMxLjg1MDYgMTQxLjk0NiAzMi4zMjk0QzE0MS41MTIgMzIuODA4IDE0MS4xNDkgMzMuMzYyOSAxNDAuODYgMzMuOTkzM0MxNDAuNTcgMzQuNjIzOSAxNDAuMzQxIDM1LjMwMzggMTQwLjE3MyAzNi4wMzNDMTQwLjAwNSAzNi43NjI2IDEzOS44ODMgMzcuNDgwNiAxMzkuODA3IDM4LjE4NzNDMTM5LjczOSAzOC44MjE0IDEzOS43MDIgMzkuNDI3OCAxMzkuNjg5IDQwLjAxM0MxMzkuNjU3IDQwLjA4NzQgMTM5LjYyNSA0MC4xNTg4IDEzOS41OSA0MC4yMzgzQzEzOS4zNTQgNDAuNzc4MiAxMzkuMDc5IDQxLjMwNjIgMTM4Ljc2NiA0MS44MjI2QzEzOC40NTQgNDIuMzM5NCAxMzguMTA3IDQyLjc3MjUgMTM3LjcyNiA0My4xMjE4QzEzNy4zNDQgNDMuNDcxNCAxMzYuOTQ4IDQzLjU5MjkgMTM2LjUzNiA0My40ODY1QzEzNi4yOTIgNDMuNDI2IDEzNi4xNTkgNDMuMTQ0NCAxMzYuMTM2IDQyLjY0MzNDMTM2LjExMyA0Mi4xNDE2IDEzNi4xMzkgNDEuNTE4NyAxMzYuMjE2IDQwLjc3NDFDMTM2LjI5MiA0MC4wMjk4IDEzNi4zOCAzOS4yMjM5IDEzNi40NzkgMzguMzU3OUMxMzYuNTc4IDM3LjQ5MTggMTM2LjYyOCAzNi42NjQgMTM2LjYyOCAzNS44NzM3QzEzNi42MjggMzUuMTg5OCAxMzYuNDk4IDM0LjUzMjkgMTM2LjIzOSAzMy45MDE5QzEzNS45NzkgMzMuMjcxOCAxMzUuNjI1IDMyLjc0NzMgMTM1LjE3NSAzMi4zMjk0QzEzNC43MjUgMzEuOTExMyAxMzQuMjAzIDMxLjYzNCAxMzMuNjA4IDMxLjQ5NzVDMTMzLjAxMyAzMS4zNjA1IDEzMi4zNzMgMzEuNDUxOCAxMzEuNjg3IDMxLjc3MDhDMTMxIDMyLjA5IDEzMC40NTUgMzIuNTM4MiAxMzAuMDUxIDMzLjExNTdDMTI5LjY0NyAzMy42OTM0IDEyOS4yNzcgMzQuMzAwOSAxMjguOTQyIDM0LjkzOTFDMTI4LjgxOSAzNC40NTI4IDEyOC42NDEgMzQuMDAxMSAxMjguNDA0IDMzLjU4M0MxMjguMTY3IDMzLjE2NTEgMTI3Ljg3OCAzMi44MDA1IDEyNy41MzUgMzIuNDg4OEMxMjcuMTkxIDMyLjE3NzYgMTI2LjgwNiAzMS45MzQ0IDEyNi4zOCAzMS43NTk1QzEyNS45NTMgMzEuNTg1MSAxMjUuNTAyIDMxLjQ5NzUgMTI1LjAzIDMxLjQ5NzVDMTI0LjU3MiAzMS40OTc1IDEyNC4xNDkgMzEuNTg1MSAxMjMuNzYgMzEuNzU5NUMxMjMuMzcxIDMxLjkzNDQgMTIzLjAxNyAzMi4xNTgzIDEyMi42OTYgMzIuNDMxOEMxMjIuMzc2IDMyLjcwNTYgMTIyLjA4NyAzMy4wMTMgMTIxLjgyNyAzMy4zNTUxQzEyMS41NjggMzMuNjk2OSAxMjEuMzM5IDM0LjAzNTIgMTIxLjE0MSAzNC4zNjkyQzEyMS4xMSAzMy45NzQyIDEyMS4wNzYgMzMuNjI4NiAxMjEuMDM4IDMzLjMzMkMxMjEgMzMuMDM1OSAxMjAuOTMxIDMyLjc4NTIgMTIwLjgzMiAzMi41ODAxQzEyMC43MzMgMzIuMzc0OCAxMjAuNTkyIDMyLjIxOTMgMTIwLjQwOSAzMi4xMTI5QzEyMC4yMjYgMzIuMDA2NyAxMTkuOTY3IDMxLjk1MzIgMTE5LjYzMiAzMS45NTMyQzExOS40NjQgMzEuOTUzMiAxMTkuMjk2IDMxLjk4NzQgMTE5LjEyOCAzMi4wNTU2QzExOC45NiAzMi4xMjQxIDExOC44MTEgMzIuMjE5MyAxMTguNjgyIDMyLjM0MDdDMTE4LjU1MiAzMi40NjI3IDExOC40NTMgMzIuNjEwNSAxMTguMzg1IDMyLjc4NTJDMTE4LjMxNiAzMi45NTk4IDExOC4yOTcgMzMuMTYxNCAxMTguMzI3IDMzLjM4OTJDMTE4LjM0MiAzMy41NTY2IDExOC4zODUgMzMuNzU3NiAxMTguNDUzIDMzLjk5MzNDMTE4LjUyMiAzNC4yMjg5IDExOC41ODcgMzQuNTM2OSAxMTguNjQ4IDM0LjkxNjNDMTE4LjcwOCAzNS4yOTYyIDExOC43NTggMzUuNzU2IDExOC43OTYgMzYuMjk1M0MxMTguODM0IDM2LjgzNDkgMTE4Ljg0NiAzNy40OTU5IDExOC44MzEgMzguMjc4NEMxMTguODE1IDM5LjA2MTEgMTE4Ljc1OCAzOS45NzYzIDExOC42NTkgNDEuMDI0OEMxMTguNTYgNDIuMDczMyAxMTguNDAzIDQzLjI4OSAxMTguMTkgNDQuNjcxNEMxMTguMTYgNDQuOTkwNyAxMTguMjgyIDQ1LjI0OTIgMTE4LjU1NiA0NS40NDY3QzExOC44MzEgNDUuNjQzOSAxMTkuMTQzIDQ1Ljc1NzggMTE5LjQ5NCA0NS43ODg1QzExOS44NDUgNDUuODE4OCAxMjAuMTc3IDQ1Ljc1NzggMTIwLjQ4OSA0NS42MDYzQzEyMC44MDIgNDUuNDUzOSAxMjAuOTgxIDQ1LjE4ODIgMTIxLjAyNyA0NC44MDg1QzEyMS4wNzIgNDQuMDk0MyAxMjEuMTYgNDMuMzM0NyAxMjEuMjkgNDIuNTI5QzEyMS40MTkgNDEuNzI0IDEyMS41NzkgNDAuOTI2MiAxMjEuNzcgNDAuMTM1OUMxMjEuOTYxIDM5LjM0NiAxMjIuMTc4IDM4LjU5MzggMTIyLjQyMiAzNy44NzkzQzEyMi42NjYgMzcuMTY1MSAxMjIuOTM3IDM2LjUzNDcgMTIzLjIzNCAzNS45ODc2QzEyMy41MzIgMzUuNDQwNSAxMjMuODQgMzUuMDAzOSAxMjQuMTYxIDM0LjY3NzFDMTI0LjQ4MSAzNC4zNTA0IDEyNC44MTYgMzQuMTg3IDEyNS4xNjcgMzQuMTg3QzEyNS41OTQgMzQuMTg3IDEyNS45MjYgMzQuMzgwNSAxMjYuMTYyIDM0Ljc2NzlDMTI2LjM5OCAzNS4xNTU3IDEyNi41NjYgMzUuNjUzNiAxMjYuNjY2IDM2LjI2MDlDMTI2Ljc2NSAzNi44NjkgMTI2LjgxIDM3LjUzNDEgMTI2LjgwMyAzOC4yNTU1QzEyNi43OTUgMzguOTc3MyAxMjYuNzY1IDM5LjY3MjQgMTI2LjcxMSA0MC4zNDFDMTI2LjY1OCA0MS4wMDk4IDEyNi41OTcgNDEuNjA2IDEyNi41MjggNDIuMTMwM0MxMjYuNDYgNDIuNjU0NSAxMjYuNDEgNDMuMDE1NyAxMjYuMzggNDMuMjEyOUMxMjYuMzggNDMuNTYyNSAxMjYuNTEzIDQzLjgzOTUgMTI2Ljc4IDQ0LjA0NDhDMTI3LjA0NiA0NC4yNDk4IDEyNy4zNDQgNDQuMzcxNiAxMjcuNjcyIDQ0LjQwOTVDMTI4IDQ0LjQ0NzYgMTI4LjMwOSA0NC4zODY2IDEyOC41OTggNDQuMjI3QzEyOC44ODggNDQuMDY3NCAxMjkuMDU2IDQzLjc5ODIgMTI5LjEwMiA0My40MTc5QzEyOS4yNTQgNDIuMzI0IDEyOS40NjQgNDEuMjI2NCAxMjkuNzMxIDQwLjEyNDdDMTI5Ljk5NyAzOS4wMjMgMTMwLjMwMyAzOC4wMzU1IDEzMC42NDYgMzcuMTYxNkMxMzAuOTg5IDM2LjI4NzggMTMxLjM3IDM1LjU3MzUgMTMxLjc5IDM1LjAxODlDMTMyLjIwOSAzNC40NjQ2IDEzMi42NTUgMzQuMTg3IDEzMy4xMjggMzQuMTg3QzEzMy4zNzEgMzQuMTg3IDEzMy41NTkgMzQuMzU0NCAxMzMuNjg4IDM0LjY4ODRDMTMzLjgxOCAzNS4wMjI3IDEzMy44ODMgMzUuNDc4NCAxMzMuODgzIDM2LjA1NTlDMTMzLjg4MyAzNi40ODE1IDEzMy44NDggMzYuOTE4NCAxMzMuNzggMzcuMzY2NkMxMzMuNzExIDM3LjgxNDggMTMzLjYzMSAzOC4yNzg0IDEzMy41NCAzOC43NTY5QzEzMy40NDggMzkuMjM1OCAxMzMuMzY4IDM5LjcyNTYgMTMzLjI5OSA0MC4yMjdDMTMzLjIzMSA0MC43Mjg3IDEzMy4xOTYgNDEuMjUyNyAxMzMuMTk2IDQxLjc5OThDMTMzLjE5NiA0Mi4xNzk3IDEzMy4yMzUgNDIuNjIwNCAxMzMuMzExIDQzLjEyMThDMTMzLjM4NyA0My42MjI5IDEzMy41MzIgNDQuMDk4MyAxMzMuNzQ1IDQ0LjU0NjJDMTMzLjk1OSA0NC45OTQ3IDEzNC4yNTIgNDUuMzc0NCAxMzQuNjI2IDQ1LjY4NThDMTM1IDQ1Ljk5NzMgMTM1LjQ3NiA0Ni4xNTMxIDEzNi4wNTYgNDYuMTUzMUMxMzYuOTI1IDQ2LjE1MzEgMTM3LjY5NSA0NS45NjY5IDEzOC4zNjYgNDUuNTk0N0MxMzkuMDM3IDQ1LjIyMjYgMTM5LjYxMyA0NC43MzY1IDE0MC4wOTMgNDQuMTM2MkMxNDAuMTE4IDQ0LjEwNDcgMTQwLjE0MSA0NC4wNzExIDE0MC4xNjUgNDQuMDM5OUMxNDAuMjAyIDQ0LjEyODcgMTQwLjIzNSA0NC4yMjI3IDE0MC4yNzYgNDQuMzA3MUMxNDAuNjA0IDQ0Ljk3NTYgMTQxLjA1IDQ1LjQ5MjEgMTQxLjYxNSA0NS44NTdDMTQyLjE3OCA0Ni4yMjE2IDE0Mi44NDIgNDYuNDIyOSAxNDMuNjA1IDQ2LjQ2MTFDMTQ0LjM2NyA0Ni40OTg3IDE0NS4xOTggNDYuMzU4MSAxNDYuMDk4IDQ2LjAzOTJDMTQ2Ljc2OSA0NS43OTYgMTQ3LjM1MiA0NS40OTIxIDE0Ny44NDggNDUuMTI3NUMxNDguMzQzIDQ0Ljc2MjggMTQ4Ljc4OSA0NC4zMTg0IDE0OS4xODYgNDMuNzk0MUMxNDkuNTgzIDQzLjI2OTkgMTQ5Ljk0NSA0Mi42NjU4IDE1MC4yNzMgNDEuOTgyMkMxNTAuNjAxIDQxLjI5ODEgMTUwLjkzMiA0MC41MTU5IDE1MS4yNjggMzkuNjM0MkMxNTEuMzI5IDM5LjM5MTYgMTUxLjI3MiAzOS4xNzUxIDE1MS4wOTcgMzguOTg0OEMxNTAuOTIxIDM4Ljc5NTEgMTUwLjcwOCAzOC42NjIxIDE1MC40NTYgMzguNTg1N1pcIiBmaWxsPVwiIzBEMEMyM1wiLz5cclxuPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTE2Mi44ODcgMzYuMDQzNEMxNjIuODEgMzYuNDkxOCAxNjIuNzA3IDM2Ljk4NiAxNjIuNTc4IDM3LjUyNUMxNjIuNDQ4IDM4LjA2NDYgMTYyLjI4NCAzOC42MjMgMTYyLjA4NiAzOS4yMDA0QzE2MS44ODggMzkuNzc3OSAxNjEuNjQ0IDQwLjI5ODQgMTYxLjM1NCA0MC43NjE2QzE2MS4wNjQgNDEuMjI1NCAxNjAuNzMzIDQxLjU5MzUgMTYwLjM1OSA0MS44NjcxQzE1OS45ODUgNDIuMTQwNiAxNTkuNTU1IDQyLjI1NDYgMTU5LjA2NiA0Mi4yMDg5QzE1OC44MjIgNDIuMTc4OCAxNTguNjM1IDQyLjAxMTcgMTU4LjUwNiA0MS43MDc1QzE1OC4zNzYgNDEuNDAzOCAxNTguMzA4IDQxLjAxNjEgMTU4LjMgNDAuNTQ1QzE1OC4yOTIgNDAuMDc0MyAxNTguMzM0IDM5LjU1NzUgMTU4LjQyNiAzOC45OTUxQzE1OC41MTcgMzguNDMzMyAxNTguNjU4IDM3Ljg4MjEgMTU4Ljg0OSAzNy4zNDI2QzE1OS4wNCAzNi44MDM2IDE1OS4yNzIgMzYuMzA1NiAxNTkuNTQ3IDM1Ljg0OTZDMTU5LjgyMSAzNS4zOTM5IDE2MC4xMzggMzUuMDQwNSAxNjAuNDk2IDM0Ljc4OThDMTYwLjg1NCAzNC41MzkxIDE2MS4yNDcgMzQuNDIxNyAxNjEuNjc0IDM0LjQzNjVDMTYyLjEwMSAzNC40NTE4IDE2Mi41NTkgMzQuNjY0MyAxNjMuMDQ3IDM1LjA3NDdDMTYzLjAxNiAzNS4yNzI1IDE2Mi45NjMgMzUuNTk1NCAxNjIuODg3IDM2LjA0MzRaTTE3MS4wMTkgMzcuNzg3QzE3MC43ODIgMzcuNjY1NiAxNzAuNTM4IDM3LjYzOTIgMTcwLjI4NyAzNy43MDc1QzE3MC4wMzUgMzcuNzc1NyAxNjkuODU2IDM4LjAwNzYgMTY5Ljc0OSAzOC40MDI2QzE2OS42ODggMzguODI4MyAxNjkuNTUxIDM5LjMyOTQgMTY5LjMzOCAzOS45MDY5QzE2OS4xMjQgNDAuNDg0MyAxNjguODYxIDQxLjAzMTcgMTY4LjU0OCA0MS41NDc4QzE2OC4yMzYgNDIuMDY0NiAxNjcuODc3IDQyLjQ5NCAxNjcuNDczIDQyLjgzNThDMTY3LjA2OSA0My4xNzc4IDE2Ni42MzggNDMuMzMzNyAxNjYuMTgxIDQzLjMwMjhDMTY1Ljc5OSA0My4yNzI3IDE2NS41MzIgNDMuMDc5IDE2NS4zOCA0Mi43MjE4QzE2NS4yMjcgNDIuMzY0NyAxNjUuMTQ3IDQxLjkxNjggMTY1LjE0IDQxLjM3NjlDMTY1LjEzMiA0MC44MzggMTY1LjE4NiA0MC4yMzAxIDE2NS4zIDM5LjU1MzhDMTY1LjQxNCAzOC44Nzc3IDE2NS41NTIgMzguMjA1NCAxNjUuNzEyIDM3LjUzNjNDMTY1Ljg3MiAzNi44NjggMTY2LjAzNiAzNi4yMjU4IDE2Ni4yMDQgMzUuNjEwNUMxNjYuMzcxIDM0Ljk5NTEgMTY2LjUwOCAzNC40NzQ3IDE2Ni42MTYgMzQuMDQ5M0MxNjYuNzM4IDMzLjY2OTMgMTY2LjY5OSAzMy4zNDY2IDE2Ni41MDEgMzMuMDgwM0MxNjYuMzAzIDMyLjgxNDkgMTY2LjA1NSAzMi42MjQ2IDE2NS43NTggMzIuNTEwN0MxNjUuNDYgMzIuMzk2NyAxNjUuMTU5IDMyLjM2NjQgMTY0Ljg1NCAzMi40MTk2QzE2NC41NDkgMzIuNDcyOCAxNjQuMzUxIDMyLjYzNjIgMTY0LjI1OSAzMi45MDk0QzE2My4zNTkgMzIuMTM0NSAxNjIuNDk0IDMxLjcxNjYgMTYxLjY2MyAzMS42NTU5QzE2MC44MzEgMzEuNTk1MiAxNjAuMDY1IDMxLjc3NzYgMTU5LjM2NCAzMi4yMDNDMTU4LjY2MiAzMi42Mjg0IDE1OC4wNDEgMzMuMjQzNyAxNTcuNSAzNC4wNDkzQzE1Ni45NTggMzQuODU0OSAxNTYuNTIgMzUuNzMyMiAxNTYuMTg0IDM2LjY4MThDMTU1Ljg0OSAzNy42MzE0IDE1NS42MzkgMzguNjAwNCAxNTUuNTU1IDM5LjU4NzlDMTU1LjQ3MSA0MC41NzU3IDE1NS41MzYgNDEuNDc2MSAxNTUuNzUgNDIuMjg5QzE1NS45NjMgNDMuMTAxOCAxNTYuMzQgNDMuNzY2OSAxNTYuODgyIDQ0LjI4M0MxNTcuNDIzIDQ0Ljc5OTggMTU4LjE1OSA0NS4wNTgzIDE1OS4wODkgNDUuMDU4M0MxNTkuNTAxIDQ1LjA1ODMgMTU5Ljg5OCA0NC45NzQ3IDE2MC4yNzkgNDQuODA3NkMxNjAuNjYgNDQuNjQwMSAxNjEuMDExIDQ0LjQ0MjYgMTYxLjMzMSA0NC4yMTQ4QzE2MS42NTEgNDMuOTg2OSAxNjEuOTMzIDQzLjc0NzUgMTYyLjE3OCA0My40OTY4QzE2Mi40MjEgNDMuMjQ2MSAxNjIuNjEyIDQzLjAzNzMgMTYyLjc0OSA0Mi44Njk5QzE2Mi44NTYgNDMuNDE3IDE2My4wMzIgNDMuODgwOCAxNjMuMjc2IDQ0LjI2MDVDMTYzLjUxOSA0NC42NDAxIDE2My43OTggNDQuOTUyMSAxNjQuMTExIDQ1LjE5NDhDMTY0LjQyMyA0NS40Mzc2IDE2NC43NTEgNDUuNjE2NCAxNjUuMDk0IDQ1LjczMDZDMTY1LjQzNyA0NS44NDQ1IDE2NS43NjkgNDUuOTAxNSAxNjYuMDg5IDQ1LjkwMTVDMTY2LjgwNiA0NS45MDE1IDE2Ny40NzcgNDUuNjU4MyAxNjguMTAyIDQ1LjE3MTlDMTY4LjcyNyA0NC42ODYxIDE2OS4yODggNDQuMDg5MyAxNjkuNzg0IDQzLjM4MjlDMTcwLjI3OSA0Mi42NzYyIDE3MC42ODcgNDEuOTMxOSAxNzEuMDA3IDQxLjE0OTFDMTcxLjMyOCA0MC4zNjY2IDE3MS41NDEgMzkuNjcxNSAxNzEuNjQ4IDM5LjA2MzRDMTcxLjc1NSAzOC44MzU1IDE3MS43MzUgMzguNTk2NCAxNzEuNTkxIDM4LjM0NTdDMTcxLjQ0NiAzOC4wOTUgMTcxLjI1NSAzNy45MDkgMTcxLjAxOSAzNy43ODdaXCIgZmlsbD1cIiMwRDBDMjNcIi8+XHJcbjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yMTIuMTk0IDUwLjM3MDFDMjEyLjA2NCA1MC44ODY2IDIxMS44NjIgNTEuMzIzOCAyMTEuNTg3IDUxLjY4MDZDMjExLjMxMyA1Mi4wMzc3IDIxMC45NyA1Mi4yMjM5IDIxMC41NTggNTIuMjM5M0MyMTAuMjk5IDUyLjI1NDMgMjEwLjEwMSA1Mi4xMTc1IDIwOS45NjMgNTEuODI4OUMyMDkuODI2IDUxLjU0MDEgMjA5LjczMSA1MS4xNjc5IDIwOS42NzggNTAuNzEyMkMyMDkuNjI0IDUwLjI1NjIgMjA5LjYwMSA0OS43NDcgMjA5LjYwOSA0OS4xODQ5QzIwOS42MTYgNDguNjIyNyAyMDkuNjM5IDQ4LjA2ODEgMjA5LjY3OCA0Ny41MjFDMjA5LjcxNSA0Ni45NzQyIDIwOS43NjEgNDYuNDY0NyAyMDkuODE1IDQ1Ljk5MzlDMjA5Ljg2OCA0NS41MjI2IDIwOS45MSA0NS4xNTg2IDIwOS45NCA0NC45QzIxMC40NTkgNDQuOTYwOCAyMTAuODkgNDUuMTg0NiAyMTEuMjMzIDQ1LjU3MjNDMjExLjU3NiA0NS45NTk4IDIxMS44MzkgNDYuNDE5MyAyMTIuMDIyIDQ2Ljk1MTRDMjEyLjIwNSA0Ny40ODMxIDIxMi4zMTIgNDguMDU2OCAyMTIuMzQzIDQ4LjY3MjJDMjEyLjM3MyA0OS4yODc1IDIxMi4zMjMgNDkuODUzNCAyMTIuMTk0IDUwLjM3MDFaTTIwMy45MTMgNTAuMzcwMUMyMDMuNzgzIDUwLjg4NjYgMjAzLjU4MSA1MS4zMjM4IDIwMy4zMDcgNTEuNjgwNkMyMDMuMDMyIDUyLjAzNzcgMjAyLjY4OSA1Mi4yMjM5IDIwMi4yNzcgNTIuMjM5M0MyMDIuMDE4IDUyLjI1NDMgMjAxLjgyIDUyLjExNzUgMjAxLjY4MyA1MS44Mjg5QzIwMS41NDUgNTEuNTQwMSAyMDEuNDUgNTEuMTY3OSAyMDEuMzk3IDUwLjcxMjJDMjAxLjM0MyA1MC4yNTYyIDIwMS4zMiA0OS43NDcgMjAxLjMyOCA0OS4xODQ5QzIwMS4zMzYgNDguNjIyNyAyMDEuMzU4IDQ4LjA2ODEgMjAxLjM5NyA0Ny41MjFDMjAxLjQzNCA0Ni45NzQyIDIwMS40OCA0Ni40NjQ3IDIwMS41MzQgNDUuOTkzOUMyMDEuNTg3IDQ1LjUyMjYgMjAxLjYyOSA0NS4xNTg2IDIwMS42NiA0NC45QzIwMi4xNzggNDQuOTYwOCAyMDIuNjA5IDQ1LjE4NDYgMjAyLjk1MiA0NS41NzIzQzIwMy4yOTUgNDUuOTU5OCAyMDMuNTU4IDQ2LjQxOTMgMjAzLjc0MSA0Ni45NTE0QzIwMy45MjQgNDcuNDgzMSAyMDQuMDMxIDQ4LjA1NjggMjA0LjA2MiA0OC42NzIyQzIwNC4wOTIgNDkuMjg3NSAyMDQuMDQyIDQ5Ljg1MzQgMjAzLjkxMyA1MC4zNzAxWk0xOTUuNDE1IDM3LjQyNDFDMTk1LjM5OSAzNy43ODg0IDE5NS4zNjUgMzguMTExNCAxOTUuMzEyIDM4LjM5MjVDMTk1LjI1OCAzOC42NzQxIDE5NS4xODYgMzguODUyMiAxOTUuMDk1IDM4LjkyODNDMTk0LjkyNyAzOC44MzY5IDE5NC43MjEgMzguNjAxOCAxOTQuNDc3IDM4LjIyMTZDMTk0LjIzMyAzNy44NDE5IDE5NC4wNDIgMzcuNDEyMiAxOTMuOTA1IDM2LjkzMzZDMTkzLjc2OCAzNi40NTUxIDE5My43MjUgMzUuOTg0MyAxOTMuNzc5IDM1LjUyMDVDMTkzLjgzMiAzNS4wNTczIDE5NC4wNzMgMzQuNjk2NyAxOTQuNSAzNC40Mzc5QzE5NC42NjcgMzQuMzQ2OCAxOTQuODEyIDM0LjM4MDkgMTk0LjkzNCAzNC41NDA1QzE5NS4wNTYgMzQuNzAwMSAxOTUuMTU1IDM0LjkzMTggMTk1LjIzMiAzNS4yMzU3QzE5NS4zMDggMzUuNTM5OSAxOTUuMzYxIDM1Ljg4OTIgMTk1LjM5MiAzNi4yODQyQzE5NS40MjIgMzYuNjc5NSAxOTUuNDMgMzcuMDU5MSAxOTUuNDE1IDM3LjQyNDFaTTE5My4zOSA0MS45NzExQzE5My4xNTQgNDIuMjIxNSAxOTIuODkgNDIuNDM4MSAxOTIuNjAxIDQyLjYyMDZDMTkyLjMxMSA0Mi44MDMgMTkyLjAxNCA0Mi45Mzk4IDE5MS43MDkgNDMuMDMwOUMxOTEuNDA0IDQzLjEyMjMgMTkxLjEyOSA0My4xNDQ4IDE5MC44ODUgNDMuMDk5MUMxOTAuMTk5IDQyLjk2MjcgMTg5LjY3MyA0Mi42NjYgMTg5LjMwNyA0Mi4yMTAzQzE4OC45NDEgNDEuNzU0NSAxODguNzA4IDQxLjIxOSAxODguNjA5IDQwLjYwMzdDMTg4LjUxIDM5Ljk4ODEgMTg4LjUyMSAzOS4zMzA4IDE4OC42NDQgMzguNjMxOUMxODguNzY1IDM3LjkzMyAxODguOTcxIDM3LjI4MzUgMTg5LjI2MSAzNi42ODMyQzE4OS41NTEgMzYuMDgyOSAxODkuOTAyIDM1LjU2NjIgMTkwLjMxMyAzNS4xMzMzQzE5MC43MjUgMzQuNzAwMSAxOTEuMTc1IDM0LjQzMDYgMTkxLjY2MyAzNC4zMjM5QzE5MS40OCAzNS4wOTg5IDE5MS40MTkgMzUuOTAwNyAxOTEuNDggMzYuNzI4NkMxOTEuNTQxIDM3LjU1NjggMTkxLjczOSAzOC4zMzU1IDE5Mi4wNzUgMzkuMDY0OEMxOTIuMjg4IDM5LjUwNiAxOTIuNTQ0IDM5LjkwODIgMTkyLjg0MSA0MC4yNzI5QzE5My4xMzkgNDAuNjM3OCAxOTMuNTAxIDQwLjk0OTIgMTkzLjkyOCA0MS4yMDc1QzE5My44MDYgNDEuNDY2IDE5My42MjYgNDEuNzIwNCAxOTMuMzkgNDEuOTcxMVpNMjE4LjcwMiAzNy42NTE5QzIxOC43NDcgMzcuMzAyNiAyMTguODE2IDM2LjkzMzYgMjE4LjkwOCAzNi41NDYyQzIxOC45OTkgMzYuMTU5IDIxOS4xMTQgMzUuNzgyOCAyMTkuMjUxIDM1LjQxODFDMjE5LjM4OCAzNS4wNTMyIDIxOS41NDggMzQuNzM4IDIxOS43MzEgMzQuNDcyM0MyMTkuOTE0IDM0LjIwNjUgMjIwLjEwOCAzNC4wMTYzIDIyMC4zMTQgMzMuOTAyNEMyMjAuNTIgMzMuNzg4NCAyMjAuNzMgMzMuNzk5NyAyMjAuOTQzIDMzLjkzNjVDMjIxLjE3MiAzNC4wNzM1IDIyMS4zMTMgMzQuMzYyMSAyMjEuMzY3IDM0LjgwMjVDMjIxLjQyIDM1LjI0MzUgMjIxLjM2NyAzNS43MTQyIDIyMS4yMDcgMzYuMjE1OUMyMjEuMDQ2IDM2LjcxNzMgMjIwLjc2MSAzNy4xODg0IDIyMC4zNDkgMzcuNjI4OEMyMTkuOTM3IDM4LjA3IDIxOS4zOCAzOC4zNTgzIDIxOC42NzkgMzguNDk1MUMyMTguNjQ4IDM4LjI4MjYgMjE4LjY1NiAzOC4wMDE1IDIxOC43MDIgMzcuNjUxOVpNMjI3LjkyMSAzNy42NTE5QzIyNy45NjYgMzcuMzAyNiAyMjguMDM1IDM2LjkzMzYgMjI4LjEyNiAzNi41NDYyQzIyOC4yMTggMzYuMTU5IDIyOC4zMzIgMzUuNzgyOCAyMjguNDcgMzUuNDE4MUMyMjguNjA3IDM1LjA1MzIgMjI4Ljc2NyAzNC43MzggMjI4Ljk1IDM0LjQ3MjNDMjI5LjEzMyAzNC4yMDY1IDIyOS4zMjggMzQuMDE2MyAyMjkuNTMzIDMzLjkwMjRDMjI5LjczOSAzMy43ODg0IDIyOS45NDkgMzMuNzk5NyAyMzAuMTYyIDMzLjkzNjVDMjMwLjM5MSAzNC4wNzM1IDIzMC41MzIgMzQuMzYyMSAyMzAuNTg2IDM0LjgwMjVDMjMwLjYzOSAzNS4yNDM1IDIzMC41ODYgMzUuNzE0MiAyMzAuNDI1IDM2LjIxNTlDMjMwLjI2NSAzNi43MTczIDIyOS45NzkgMzcuMTg4NCAyMjkuNTY4IDM3LjYyODhDMjI5LjE1NiAzOC4wNyAyMjguNTk5IDM4LjM1ODMgMjI3Ljg5OCAzOC40OTUxQzIyNy44NjcgMzguMjgyNiAyMjcuODc1IDM4LjAwMTUgMjI3LjkyMSAzNy42NTE5Wk0yMzYuNDg4IDM4Ljk4NTJDMjM2LjMxMiAzOC43OTU1IDIzNi4wOTkgMzguNjYyNSAyMzUuODQ3IDM4LjU4NjJDMjM1LjU5NSAzOC41MTA0IDIzNS4zNTUgMzguNTAyOSAyMzUuMTI2IDM4LjU2MzZDMjM0Ljg5NyAzOC42MjQ0IDIzNC43NTIgMzguNzg0IDIzNC42OTIgMzkuMDQyMkMyMzQuNTcgMzkuNTI4NiAyMzQuMzc1IDQwLjAyNjIgMjM0LjEwOCA0MC41MzQ5QzIzMy44NDEgNDEuMDQ0NCAyMzMuNTE0IDQxLjUyNjcgMjMzLjEyNSA0MS45ODI0QzIzMi43MzYgNDIuNDM4MSAyMzIuMjk3IDQyLjg0MTIgMjMxLjgxIDQzLjE5MDVDMjMxLjMyMSA0My41NDAxIDIzMC44MSA0My43OTA4IDIzMC4yNzcgNDMuOTQyM0MyMjkuNzQzIDQ0LjExMDEgMjI5LjMwMSA0NC4xMjg5IDIyOC45NSA0My45OTk2QzIyOC41OTkgNDMuODcwNiAyMjguMzIxIDQzLjY1MDMgMjI4LjExNSA0My4zMzg5QzIyNy45MDkgNDMuMDI3MSAyMjcuNzYxIDQyLjY1MTIgMjI3LjY2OSA0Mi4yMTAzQzIyNy41NzggNDEuNzY5OSAyMjcuNTI0IDQxLjMxNDIgMjI3LjUwOSA0MC44NDI4QzIyOC4zNzggNDAuOTAzOCAyMjkuMTUyIDQwLjc0ODMgMjI5LjgzMSA0MC4zNzU1QzIzMC41MDkgNDAuMDAzNCAyMzEuMDg1IDM5LjUwOTIgMjMxLjU1OCAzOC44OTM5QzIzMi4wMzEgMzguMjc4OCAyMzIuMzg5IDM3LjU4NzQgMjMyLjYzMyAzNi44MkMyMzIuODc3IDM2LjA1MjYgMjMzLjAxNCAzNS4yODkyIDIzMy4wNDUgMzQuNTI5M0MyMzMuMDYgMzMuODE1IDIzMi45NTMgMzMuMjExIDIzMi43MjQgMzIuNzE3MUMyMzIuNDk2IDMyLjIyMzUgMjMyLjE4NyAzMS44Mzk1IDIzMS43OTggMzEuNTY2MkMyMzEuNDA5IDMxLjI5MjQgMjMwLjk2MyAzMS4xMzMgMjMwLjQ2IDMxLjA4NzRDMjI5Ljk1NyAzMS4wNDE3IDIyOS40NDUgMzEuMTEwNSAyMjguOTI3IDMxLjI5MjRDMjI4LjMwMiAzMS41MDU1IDIyNy43NzIgMzEuODUxIDIyNy4zMzggMzIuMzI5NkMyMjYuOTAzIDMyLjgwODUgMjI2LjU0IDMzLjM2MzQgMjI2LjI1MSAzMy45OTM0QzIyNS45NjEgMzQuNjI0NCAyMjUuNzMyIDM1LjMwMzkgMjI1LjU2NCAzNi4wMzM1QzIyNS4zOTYgMzYuNzYyNyAyMjUuMjc0IDM3LjQ4MSAyMjUuMTk5IDM4LjE4NzRDMjI1LjEyNCAzOC44NzMgMjI1LjA4NCAzOS41MjkyIDIyNS4wNzUgNDAuMTU3MkMyMjUuMDE3IDQwLjI4MjQgMjI0Ljk1NiA0MC40MDgyIDIyNC44ODkgNDAuNTM0OUMyMjQuNjIyIDQxLjA0NDQgMjI0LjI5NSA0MS41MjY3IDIyMy45MDYgNDEuOTgyNEMyMjMuNTE3IDQyLjQzODEgMjIzLjA3OCA0Mi44NDEyIDIyMi41OTEgNDMuMTkwNUMyMjIuMTAyIDQzLjU0MDEgMjIxLjU5MiA0My43OTA4IDIyMS4wNTggNDMuOTQyM0MyMjAuNTI0IDQ0LjExMDEgMjIwLjA4MiA0NC4xMjg5IDIxOS43MzEgNDMuOTk5NkMyMTkuMzggNDMuODcwNiAyMTkuMTAyIDQzLjY1MDMgMjE4Ljg5NiA0My4zMzg5QzIxOC42OTEgNDMuMDI3MSAyMTguNTQyIDQyLjY1MTIgMjE4LjQ1IDQyLjIxMDNDMjE4LjM1OSA0MS43Njk5IDIxOC4zMDUgNDEuMzE0MiAyMTguMjkgNDAuODQyOEMyMTkuMTU5IDQwLjkwMzggMjE5LjkzMyA0MC43NDgzIDIyMC42MTIgNDAuMzc1NUMyMjEuMjkgNDAuMDAzNCAyMjEuODY2IDM5LjUwOTIgMjIyLjMzOSAzOC44OTM5QzIyMi44MTEgMzguMjc4OCAyMjMuMTcgMzcuNTg3NCAyMjMuNDE0IDM2LjgyQzIyMy42NTggMzYuMDUyNiAyMjMuNzk1IDM1LjI4OTIgMjIzLjgyNiAzNC41MjkzQzIyMy44NDEgMzMuODE1IDIyMy43MzQgMzMuMjExIDIyMy41MDYgMzIuNzE3MUMyMjMuMjc3IDMyLjIyMzUgMjIyLjk2OCAzMS44Mzk1IDIyMi41NzkgMzEuNTY2MkMyMjIuMTkgMzEuMjkyNCAyMjEuNzQ0IDMxLjEzMyAyMjEuMjQxIDMxLjA4NzRDMjIwLjczOCAzMS4wNDE3IDIyMC4yMjcgMzEuMTEwNSAyMTkuNzA4IDMxLjI5MjRDMjE5LjA4MyAzMS41MDU1IDIxOC41NTMgMzEuODUxIDIxOC4xMTkgMzIuMzI5NkMyMTcuNjg0IDMyLjgwODUgMjE3LjMyMSAzMy4zNjM0IDIxNy4wMzIgMzMuOTkzNEMyMTYuNzQyIDM0LjYyNDQgMjE2LjUxMyAzNS4zMDM5IDIxNi4zNDYgMzYuMDMzNUMyMTYuMTc4IDM2Ljc2MjcgMjE2LjA1NiAzNy40ODEgMjE1Ljk4IDM4LjE4NzRDMjE1LjkzNiAzOC41ODU5IDIxNS45MDcgMzguOTcyMiAyMTUuODg2IDM5LjM1MTZDMjE1LjczOSAzOS40NzY1IDIxNS41OTUgMzkuNjAyMyAyMTUuNDQyIDM5LjcyNThDMjE0LjkxNiA0MC4xNTE0IDIxNC4zNjMgNDAuNTM0OSAyMTMuNzg0IDQwLjg3NjlDMjEzLjIwNCA0MS4yMTkgMjEyLjYwMSA0MS41MDAxIDIxMS45NzcgNDEuNzIwNEMyMTEuMzUxIDQxLjk0MDggMjEwLjcxIDQyLjA3MzggMjEwLjA1NSA0Mi4xMTkyTDIxMS40NzMgMjYuOTg0N0MyMTEuNTY1IDI2LjY2NTUgMjExLjUxOSAyNi4zODQ3IDIxMS4zMzYgMjYuMTQxNUMyMTEuMTUzIDI1Ljg5ODMgMjEwLjkxNiAyNS43MzEyIDIxMC42MjcgMjUuNjQwMUMyMTAuMzM3IDI1LjU0ODggMjEwLjAyOCAyNS41NTY2IDIwOS43IDI1LjY2MjdDMjA5LjM3MiAyNS43Njk0IDIwOS4xMDIgMjYuMDEyNiAyMDguODg4IDI2LjM5MTlDMjA4Ljc4MSAyNi45Njk3IDIwOC42NzEgMjcuNzU5NyAyMDguNTU3IDI4Ljc2MjVDMjA4LjQ0MiAyOS43NjUzIDIwOC4zMjggMzAuODU5NSAyMDguMjEzIDMyLjA0NDhDMjA4LjA5OSAzMy4yMyAyMDcuOTg1IDM0LjQ1MzIgMjA3Ljg3IDM1LjcxNDJDMjA3Ljc1NiAzNi45NzU5IDIwNy42NTcgMzguMTUzMyAyMDcuNTczIDM5LjI0NzJDMjA3LjU2OSAzOS4yOTU4IDIwNy41NjYgMzkuMzM5OCAyMDcuNTYyIDM5LjM4NzhDMjA3LjQyOSAzOS41MDA1IDIwNy4yOTkgMzkuNjE0MiAyMDcuMTYxIDM5LjcyNThDMjA2LjYzNSA0MC4xNTE0IDIwNi4wODIgNDAuNTM0OSAyMDUuNTAzIDQwLjg3NjlDMjA0LjkyMyA0MS4yMTkgMjA0LjMyMSA0MS41MDAxIDIwMy42OTYgNDEuNzIwNEMyMDMuMDcgNDEuOTQwOCAyMDIuNDI5IDQyLjA3MzggMjAxLjc3NCA0Mi4xMTkyTDIwMy4xOTIgMjYuOTg0N0MyMDMuMjg0IDI2LjY2NTUgMjAzLjIzOCAyNi4zODQ3IDIwMy4wNTUgMjYuMTQxNUMyMDIuODcyIDI1Ljg5ODMgMjAyLjYzNSAyNS43MzEyIDIwMi4zNDYgMjUuNjQwMUMyMDIuMDU2IDI1LjU0ODggMjAxLjc0NyAyNS41NTY2IDIwMS40MTkgMjUuNjYyN0MyMDEuMDkxIDI1Ljc2OTQgMjAwLjgyMSAyNi4wMTI2IDIwMC42MDcgMjYuMzkxOUMyMDAuNTAxIDI2Ljk2OTcgMjAwLjM5IDI3Ljc1OTcgMjAwLjI3NiAyOC43NjI1QzIwMC4xNjEgMjkuNzY1MyAyMDAuMDQ3IDMwLjg1OTUgMTk5LjkzMyAzMi4wNDQ4QzE5OS44MTggMzMuMjMgMTk5LjcwNCAzNC40NTMyIDE5OS41ODkgMzUuNzE0MkMxOTkuNDc1IDM2Ljk3NTkgMTk5LjM3NiAzOC4xNTMzIDE5OS4yOTIgMzkuMjQ3MkMxOTkuMjkgMzkuMjY5MiAxOTkuMjg5IDM5LjI4OTEgMTk5LjI4NyAzOS4zMTExQzE5OS4wNDggMzkuNDIxOSAxOTguNzg2IDM5LjUxOSAxOTguNTAzIDM5LjYwMDZDMTk4LjIxMyAzOS42ODQ0IDE5Ny44ODUgMzkuNzMzOSAxOTcuNTE5IDM5Ljc0ODlDMTk3LjU4IDM5LjQ3NTEgMTk3LjYzIDM5LjE3MTIgMTk3LjY2OCAzOC44MzY5QzE5Ny43MDYgMzguNTAyOSAxOTcuNzM3IDM4LjE1MzMgMTk3Ljc2IDM3Ljc4ODRDMTk3Ljc4MiAzNy40MjQxIDE5Ny43OSAzNy4wNTkxIDE5Ny43ODIgMzYuNjk0NUMxOTcuNzc0IDM2LjMyOTYgMTk3Ljc1NSAzNS45OTU2IDE5Ny43MjUgMzUuNjkxNEMxOTcuNjQ5IDM1LjAzODUgMTk3LjUwOCAzNC40MTkxIDE5Ny4zMDIgMzMuODMzOEMxOTcuMDk2IDMzLjI0OTEgMTk2LjgxOCAzMi43NTkzIDE5Ni40NjcgMzIuMzYzN0MxOTYuMTE2IDMxLjk2ODcgMTk1LjY3OCAzMS43MDI3IDE5NS4xNTEgMzEuNTY2MkMxOTQuNjI2IDMxLjQyOTQgMTk0LjAxMiAzMS40NzQ4IDE5My4zMSAzMS43MDI3QzE5Mi4yNzMgMzEuNTY2MiAxOTEuMzM5IDMxLjY2MTMgMTkwLjUwOCAzMS45ODc4QzE4OS42NzcgMzIuMzE0OSAxODguOTU2IDMyLjc4OTQgMTg4LjM0NiAzMy40MTIyQzE4Ny43MzYgMzQuMDM1NyAxODcuMjM3IDM0Ljc2ODQgMTg2Ljg0OCAzNS42MTE5QzE4Ni40NTkgMzYuNDU1MSAxODYuMiAzNy4zMjE0IDE4Ni4wNyAzOC4yMUMxODYuMDE1IDM4LjU4NjggMTg1Ljk4OCAzOC45NjE4IDE4NS45OCAzOS4zMzZDMTg1Ljc0NCAzOS44MTc3IDE4NS40ODYgNDAuMjM4OCAxODUuMjAxIDQwLjU5MjFDMTg0Ljc5NyA0MS4wOTM1IDE4NC4zNzcgNDEuNTAzOCAxODMuOTQzIDQxLjgyMjhDMTgzLjUwOCA0Mi4xNDIgMTgzLjA3NyA0Mi4zODUyIDE4Mi42NSA0Mi41NTIzQzE4Mi4yMjMgNDIuNzE5OCAxODEuODQyIDQyLjgzMzcgMTgxLjUwNyA0Mi44OTQxQzE4MS4xMSA0Mi45NzAyIDE4MC43MjkgNDIuOTc4IDE4MC4zNjMgNDIuOTE3QzE3OS45OTcgNDIuODU2NSAxNzkuNjYxIDQyLjY4MTYgMTc5LjM1NyA0Mi4zOTI3QzE3OS4xMTIgNDIuMTgwMiAxNzguOTI1IDQxLjgzODEgMTc4Ljc5NiA0MS4zNjcxQzE3OC42NjYgNDAuODk2IDE3OC41OSA0MC4zNjA4IDE3OC41NjcgMzkuNzYwMkMxNzguNTQ0IDM5LjE1OTkgMTc4LjU2NyAzOC41MzMgMTc4LjYzNiAzNy44Nzk4QzE3OC43MDUgMzcuMjI2NiAxNzguODIyIDM2LjYwNzIgMTc4Ljk5IDM2LjAyMjJDMTc5LjE1OCAzNS40MzcyIDE3OS4zNzEgMzQuOTEzIDE3OS42MzEgMzQuNDQ5MkMxNzkuODkgMzMuOTg2MiAxODAuMTk1IDMzLjY1NTQgMTgwLjU0NiAzMy40NTc5QzE4MC43NDQgMzMuNDg4NiAxODAuODY2IDMzLjYwNiAxODAuOTEyIDMzLjgxMUMxODAuOTU4IDM0LjAxNjMgMTgwLjk2OSAzNC4yNTk1IDE4MC45NDYgMzQuNTQwNUMxODAuOTIzIDM0LjgyMTkgMTgwLjg4OSAzNS4xMTA1IDE4MC44NDMgMzUuNDA2NkMxODAuNzk3IDM1LjcwMyAxODAuNzc1IDM1Ljk1MDIgMTgwLjc3NSAzNi4xNDc0QzE4MC44NTEgMzYuNTU3NyAxODAuOTk5IDM2Ljg3NyAxODEuMjIxIDM3LjEwNDhDMTgxLjQ0MSAzNy4zMzI3IDE4MS42OSAzNy40NjYgMTgxLjk2NCAzNy41MDM2QzE4Mi4yMzkgMzcuNTQxNyAxODIuNTA5IDM3LjQ3NzMgMTgyLjc3NiAzNy4zMDk4QzE4My4wNDMgMzcuMTQzIDE4My4yNiAzNi44NzcgMTgzLjQyOCAzNi41MTJDMTgzLjQ0MyAzNi41Mjc0IDE4My40NjYgMzYuNTM0OSAxODMuNDk3IDM2LjUzNDlMMTgzLjgxNyAzMy42NDA0QzE4My45MDkgMzMuMjQ1MSAxODMuODQ3IDMyLjg5NTggMTgzLjYzNCAzMi41OTE5QzE4My40MiAzMi4yODggMTgzLjEzOCAzMi4xMTMgMTgyLjc4OCAzMi4wNjc2QzE4Mi4zNDUgMzEuNDI5NCAxODEuNzQ3IDMxLjA5MTQgMTgwLjk5MiAzMS4wNTMyQzE4MC4yMzcgMzEuMDE1NCAxNzkuNDYzIDMxLjI2MjMgMTc4LjY3IDMxLjc5NDFDMTc4LjE4MiAzMi4xNDQgMTc3Ljc1MSAzMi42MjYgMTc3LjM3OCAzMy4yNDEzQzE3Ny4wMDQgMzMuODU3IDE3Ni42OTkgMzQuNTQwNSAxNzYuNDYzIDM1LjI5MjZDMTc2LjIyNiAzNi4wNDQ4IDE3Ni4wNTggMzYuODM5MSAxNzUuOTU5IDM3LjY3NDhDMTc1Ljg2IDM4LjUxMDQgMTc1Ljg0MSAzOS4zMjM2IDE3NS45MDIgNDAuMTEzM0MxNzUuOTYzIDQwLjkwMzggMTc2LjEwNCA0MS42NDg0IDE3Ni4zMjUgNDIuMzQ3QzE3Ni41NDYgNDMuMDQ2MiAxNzYuODU1IDQzLjYzMTIgMTc3LjI1MiA0NC4xMDJDMTc3LjU4NyA0NC41MTIzIDE3Ny45NjggNDQuODEyNyAxNzguMzk1IDQ1LjAwMjdDMTc4LjgyMiA0NS4xOTI3IDE3OS4yNjggNDUuMzEwMSAxNzkuNzM0IDQ1LjM1NThDMTgwLjE5OSA0NS40MDEyIDE4MC42NiA0NS4zODIxIDE4MS4xMTggNDUuMjk4OEMxODEuNTc1IDQ1LjIxNTUgMTgyLjAxIDQ1LjA5NzggMTgyLjQyMSA0NC45NDU0QzE4Mi45NTUgNDQuNzQ4MiAxODMuNTA1IDQ0LjQ5NzIgMTg0LjA2OSA0NC4xOTMzQzE4NC42MzMgNDMuODg5NyAxODUuMTc0IDQzLjUyNDggMTg1LjY5MyA0My4wOTkxQzE4NS45NjYgNDIuODc1MyAxODYuMjI4IDQyLjYzMTMgMTg2LjQ4MiA0Mi4zNjk2QzE4Ni41OTggNDIuNjU1MyAxODYuNzI3IDQyLjkzMTcgMTg2Ljg4MiA0My4xOTA1QzE4Ny4yOTQgNDMuODc0MSAxODcuODUgNDQuNDI5IDE4OC41NTIgNDQuODU0NEMxODkuMjUzIDQ1LjI3OTcgMTkwLjExNSA0NS40ODQ0IDE5MS4xMzcgNDUuNDY5N0MxOTIuMjM1IDQ1LjQ1NDQgMTkzLjI0OSA0NS4xNzc0IDE5NC4xOCA0NC42Mzc4QzE5NS4xMSA0NC4wOTg4IDE5NS44NzIgNDMuMzA0MiAxOTYuNDY3IDQyLjI1NkMxOTcuMzU4IDQyLjI1NiAxOTguMjM0IDQyLjEwOTYgMTk5LjA5NiA0MS44MTlDMTk5LjA4OSA0MS45MTEgMTk5LjA4MSA0Mi4wMDc5IDE5OS4wNzUgNDIuMDk2NkMxOTkuMDE0IDQyLjkwMTkgMTk4Ljk4MyA0My40NDg3IDE5OC45ODMgNDMuNzM3NkMxOTguOTY4IDQ0LjIzOSAxOTguOTM0IDQ0Ljg1ODEgMTk4Ljg4IDQ1LjU5NDlDMTk4LjgyNyA0Ni4zMzIgMTk4Ljc5MyA0Ny4xMDY5IDE5OC43NzggNDcuOTE5OEMxOTguNzYzIDQ4LjczMjYgMTk4Ljc5MyA0OS41NTMyIDE5OC44NjkgNTAuMzgxN0MxOTguOTQ1IDUxLjIwOTYgMTk5LjEwNSA1MS45NjIgMTk5LjM0OSA1Mi42MzgzQzE5OS41OTMgNTMuMzE0MSAxOTkuOTQgNTMuODg3OCAyMDAuMzkgNTQuMzU5MUMyMDAuODQgNTQuODI5OSAyMDEuNDMxIDU1LjExMTIgMjAyLjE2MyA1NS4yMDIzQzIwMi45NDEgNTUuMzA4NCAyMDMuNjEyIDU1LjE3MTcgMjA0LjE3NiA1NC43OTJDMjA0Ljc0IDU0LjQxMiAyMDUuMTk4IDUzLjg5MTggMjA1LjU0OSA1My4yMzA4QzIwNS44OTkgNTIuNTY5NSAyMDYuMTQ3IDUxLjgwNjEgMjA2LjI5MiA1MC45NDAxQzIwNi40MzcgNTAuMDc0IDIwNi40NzkgNDkuMjAzOSAyMDYuNDE4IDQ4LjMzMDFDMjA2LjM1NyA0Ny40NTYyIDIwNi4xOTYgNDYuNjMyMSAyMDUuOTM3IDQ1Ljg1NzVDMjA1LjY3OCA0NS4wODIyIDIwNS4zMTkgNDQuNDQ0IDIwNC44NjIgNDMuOTQyM0MyMDUuMTM3IDQzLjg2NjkgMjA1LjQ2NSA0My43MjI2IDIwNS44NDYgNDMuNTA5NUMyMDYuMjI3IDQzLjI5NjkgMjA2LjYyIDQzLjA1NzUgMjA3LjAyNCA0Mi43OTE1QzIwNy4xMjMgNDIuNzI2MSAyMDcuMjIxIDQyLjY1NzMgMjA3LjMyIDQyLjU5MDJDMjA3LjI4MyA0My4xMjg2IDIwNy4yNjQgNDMuNTEyNiAyMDcuMjY0IDQzLjczNzZDMjA3LjI0OSA0NC4yMzkgMjA3LjIxNSA0NC44NTgxIDIwNy4xNjEgNDUuNTk0OUMyMDcuMTA4IDQ2LjMzMiAyMDcuMDczIDQ3LjEwNjkgMjA3LjA1OCA0Ny45MTk4QzIwNy4wNDMgNDguNzMyNiAyMDcuMDczIDQ5LjU1MzIgMjA3LjE1IDUwLjM4MTdDMjA3LjIyNiA1MS4yMDk2IDIwNy4zODYgNTEuOTYyIDIwNy42MyA1Mi42MzgzQzIwNy44NzQgNTMuMzE0MSAyMDguMjIxIDUzLjg4NzggMjA4LjY3MSA1NC4zNTkxQzIwOS4xMjEgNTQuODI5OSAyMDkuNzEyIDU1LjExMTIgMjEwLjQ0NCA1NS4yMDIzQzIxMS4yMjEgNTUuMzA4NCAyMTEuODkyIDU1LjE3MTcgMjEyLjQ1NyA1NC43OTJDMjEzLjAyMSA1NC40MTIgMjEzLjQ3OCA1My44OTE4IDIxMy44MyA1My4yMzA4QzIxNC4xOCA1Mi41Njk1IDIxNC40MjggNTEuODA2MSAyMTQuNTczIDUwLjk0MDFDMjE0LjcxOCA1MC4wNzQgMjE0Ljc1OSA0OS4yMDM5IDIxNC42OTkgNDguMzMwMUMyMTQuNjM3IDQ3LjQ1NjIgMjE0LjQ3NyA0Ni42MzIxIDIxNC4yMTggNDUuODU3NUMyMTMuOTU5IDQ1LjA4MjIgMjEzLjYwMSA0NC40NDQgMjEzLjE0MyA0My45NDIzQzIxMy40MTggNDMuODY2OSAyMTMuNzQ1IDQzLjcyMjYgMjE0LjEyNyA0My41MDk1QzIxNC41MDggNDMuMjk2OSAyMTQuOSA0My4wNTc1IDIxNS4zMDUgNDIuNzkxNUMyMTUuNTE1IDQyLjY1MzMgMjE1LjcyNCA0Mi41MTA3IDIxNS45MzIgNDIuMzY0MUMyMTYuMDEgNDMuMTA3MiAyMTYuMTc5IDQzLjc1OSAyMTYuNDQ4IDQ0LjMwNzNDMjE2Ljc3NiA0NC45NzYxIDIxNy4yMjIgNDUuNDkyNSAyMTcuNzg3IDQ1Ljg1NzVDMjE4LjM1MSA0Ni4yMjE4IDIxOS4wMTQgNDYuNDIzNCAyMTkuNzc3IDQ2LjQ2MTJDMjIwLjUzOSA0Ni40OTg4IDIyMS4zNyA0Ni4zNTg2IDIyMi4yNzEgNDYuMDM5M0MyMjIuOTQxIDQ1Ljc5NjUgMjIzLjUyNSA0NS40OTI1IDIyNC4wMiA0NS4xMjc5QzIyNC41MTYgNDQuNzYzIDIyNC45NjIgNDQuMzE4NSAyMjUuMzU4IDQzLjc5NDZDMjI1LjM4MSA0My43NjQyIDIyNS40MDMgNDMuNzMxMyAyMjUuNDI1IDQzLjcwMDZDMjI1LjQ5NiA0My45MTM0IDIyNS41NzQgNDQuMTE3OSAyMjUuNjY3IDQ0LjMwNzNDMjI1Ljk5NSA0NC45NzYxIDIyNi40NDEgNDUuNDkyNSAyMjcuMDA2IDQ1Ljg1NzVDMjI3LjU2OSA0Ni4yMjE4IDIyOC4yMzMgNDYuNDIzNCAyMjguOTk2IDQ2LjQ2MTJDMjI5Ljc1OCA0Ni40OTg4IDIzMC41ODkgNDYuMzU4NiAyMzEuNDg5IDQ2LjAzOTNDMjMyLjE2IDQ1Ljc5NjUgMjMyLjc0NCA0NS40OTI1IDIzMy4yMzkgNDUuMTI3OUMyMzMuNzM1IDQ0Ljc2MyAyMzQuMTgxIDQ0LjMxODUgMjM0LjU3NyA0My43OTQ2QzIzNC45NzQgNDMuMjcgMjM1LjMzNiA0Mi42NjYgMjM1LjY2NCA0MS45ODI0QzIzNS45OTIgNDEuMjk4NSAyMzYuMzIzIDQwLjUxNjQgMjM2LjY1OSAzOS42MzQ3QzIzNi43MiAzOS4zOTE4IDIzNi42NjMgMzkuMTc1MiAyMzYuNDg4IDM4Ljk4NTJaXCIgZmlsbD1cIiMwRDBDMjNcIi8+XHJcbjwvc3ZnPmA7Il0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQSxzQkFBaUY7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 +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibWFpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgQXBwLCBXb3Jrc3BhY2UsIE1vZGFsLCBOb3RpY2UsIFBsdWdpbiwgUGx1Z2luU2V0dGluZ1RhYiwgU2V0dGluZyB9IGZyb20gJ29ic2lkaWFuJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1pbmltYWxUaGVtZSBleHRlbmRzIFBsdWdpbiB7XHJcblxyXG4gIHNldHRpbmdzOiBNaW5pbWFsU2V0dGluZ3M7XHJcblxyXG4gIGFzeW5jIG9ubG9hZCgpIHtcclxuXHJcbiAgICBhd2FpdCB0aGlzLmxvYWRTZXR0aW5ncygpO1xyXG5cclxuICAgIHRoaXMuYWRkU2V0dGluZ1RhYihuZXcgTWluaW1hbFNldHRpbmdUYWIodGhpcy5hcHAsIHRoaXMpKTtcclxuXHJcbiAgICB0aGlzLmFkZFN0eWxlKCk7XHJcblxyXG4gICAgLy8gV2F0Y2ggZm9yIHN5c3RlbSBjaGFuZ2VzIHRvIGNvbG9yIHRoZW1lIFxyXG5cclxuICAgIGxldCBtZWRpYSA9IHdpbmRvdy5tYXRjaE1lZGlhKCcocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspJyk7XHJcblxyXG4gICAgbGV0IHVwZGF0ZVN5c3RlbVRoZW1lID0gKCkgPT4ge1xyXG4gICAgICBpZiAobWVkaWEubWF0Y2hlcyAmJiB0aGlzLnNldHRpbmdzLnVzZVN5c3RlbVRoZW1lKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0RhcmsgbW9kZSBhY3RpdmUnKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTdHlsZSgpXHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zZXR0aW5ncy51c2VTeXN0ZW1UaGVtZSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdMaWdodCBtb2RlIGFjdGl2ZScpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTdHlsZSgpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBtZWRpYS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB1cGRhdGVTeXN0ZW1UaGVtZSk7XHJcblxyXG4gICAgLy8gUmVtb3ZlIHN5c3RlbSB0aGVtZSBsaXN0ZW5lciB3aGVuIHdlIHVubG9hZFxyXG4gICAgdGhpcy5yZWdpc3RlcigoKSA9PiBtZWRpYS5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB1cGRhdGVTeXN0ZW1UaGVtZSkpO1xyXG5cclxuICAgIHVwZGF0ZVN5c3RlbVRoZW1lKCk7XHJcblxyXG4gICAgLy8gQ2hlY2sgc3RhdGUgb2YgT2JzaWRpYW4gU2V0dGluZ3NcclxuICAgIGxldCBzZXR0aW5nc1VwZGF0ZSA9ICgpID0+IHtcclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICBjb25zdCBmb250U2l6ZSA9IHRoaXMuYXBwLnZhdWx0LmdldENvbmZpZygnYmFzZUZvbnRTaXplJyk7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MudGV4dE5vcm1hbCA9IGZvbnRTaXplO1xyXG5cclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICBpZiAodGhpcy5hcHAudmF1bHQuZ2V0Q29uZmlnKCdmb2xkSGVhZGluZycpKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5mb2xkaW5nID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdGb2xkaW5nIGlzIG9uJyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5mb2xkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICBjb25zb2xlLmxvZygnRm9sZGluZyBpcyBvZmYnKTtcclxuICAgICAgfVxyXG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ21pbmltYWwtZm9sZGluZycsIHRoaXMuc2V0dGluZ3MuZm9sZGluZyk7XHJcbiAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgaWYgKHRoaXMuYXBwLnZhdWx0LmdldENvbmZpZygnc2hvd0xpbmVOdW1iZXInKSkge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MubGluZU51bWJlcnMgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0xpbmUgbnVtYmVycyBhcmUgb24nKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmxpbmVOdW1iZXJzID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICBjb25zb2xlLmxvZygnTGluZSBudW1iZXJzIGFyZSBvZmYnKTtcclxuICAgICAgfVxyXG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ21pbmltYWwtbGluZS1udW1zJywgdGhpcy5zZXR0aW5ncy5saW5lTnVtYmVycyk7XHJcbiAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgaWYgKHRoaXMuYXBwLnZhdWx0LmdldENvbmZpZygncmVhZGFibGVMaW5lTGVuZ3RoJykpIHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLnJlYWRhYmxlTGluZUxlbmd0aCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICBjb25zb2xlLmxvZygnUmVhZGFibGUgbGluZSBsZW5ndGggaXMgb24nKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLnJlYWRhYmxlTGluZUxlbmd0aCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ1JlYWRhYmxlIGxpbmUgbGVuZ3RoIGlzIG9mZicpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ21pbmltYWwtcmVhZGFibGUnLCB0aGlzLnNldHRpbmdzLnJlYWRhYmxlTGluZUxlbmd0aCk7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnbWluaW1hbC1yZWFkYWJsZS1vZmYnLCAhdGhpcy5zZXR0aW5ncy5yZWFkYWJsZUxpbmVMZW5ndGgpO1xyXG4gIFxyXG4gICAgfVxyXG4gIFxyXG4gICAgbGV0IHNpZGViYXJVcGRhdGUgPSAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHNpZGViYXJFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ21vZC1sZWZ0LXNwbGl0JylbMF07XHJcbiAgICAgIGNvbnN0IHJpYmJvbkVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnc2lkZS1kb2NrLXJpYmJvbicpWzBdO1xyXG4gICAgICBpZiAoc2lkZWJhckVsICYmIHJpYmJvbkVsICYmIHRoaXMuYXBwLnZhdWx0LmdldENvbmZpZygndGhlbWUnKSA9PSAnbW9vbnN0b25lJyAmJiB0aGlzLnNldHRpbmdzLmxpZ2h0U3R5bGUgPT0gJ21pbmltYWwtbGlnaHQtY29udHJhc3QnKSB7XHJcbiAgICAgICAgc2lkZWJhckVsLmFkZENsYXNzKCd0aGVtZS1kYXJrJyk7XHJcbiAgICAgICAgcmliYm9uRWwuYWRkQ2xhc3MoJ3RoZW1lLWRhcmsnKTtcclxuICAgICAgfSBlbHNlIGlmIChzaWRlYmFyRWwgJiYgcmliYm9uRWwpIHtcclxuICAgICAgICBzaWRlYmFyRWwucmVtb3ZlQ2xhc3MoJ3RoZW1lLWRhcmsnKTsgXHJcbiAgICAgICAgcmliYm9uRWwucmVtb3ZlQ2xhc3MoJ3RoZW1lLWRhcmsnKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIEB0cy1pZ25vcmVcclxuICAgIHRoaXMucmVnaXN0ZXJFdmVudChhcHAudmF1bHQub24oJ2NvbmZpZy1jaGFuZ2VkJywgc2V0dGluZ3NVcGRhdGUpKTtcclxuICAgIHRoaXMucmVnaXN0ZXJFdmVudChhcHAud29ya3NwYWNlLm9uKCdjc3MtY2hhbmdlJywgc2lkZWJhclVwZGF0ZSkpO1xyXG5cclxuICAgIHNldHRpbmdzVXBkYXRlKCk7XHJcbiAgICBcclxuICAgIGFwcC53b3Jrc3BhY2Uub25MYXlvdXRSZWFkeSgoKSA9PiB7XHJcbiAgICAgIHNpZGViYXJVcGRhdGUoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGxpZ2h0U3R5bGVzID0gWydtaW5pbWFsLWxpZ2h0JywgJ21pbmltYWwtbGlnaHQtdG9uYWwnLCAnbWluaW1hbC1saWdodC1jb250cmFzdCcsICdtaW5pbWFsLWxpZ2h0LXdoaXRlJ107XHJcbiAgICBjb25zdCBkYXJrU3R5bGVzID0gWydtaW5pbWFsLWRhcmsnLCAnbWluaW1hbC1kYXJrLXRvbmFsJywgJ21pbmltYWwtZGFyay1ibGFjayddO1xyXG4gICAgY29uc3QgaW1nR3JpZFN0eWxlcyA9IFsnaW1nLWdyaWQnLCdpbWctZ3JpZC1yYXRpbycsJ2ltZy1ub2dyaWQnXTtcclxuICAgIGNvbnN0IHRhYmxlV2lkdGhTdHlsZXMgPSBbJ3RhYmxlLTEwMCcsJ3RhYmxlLWRlZmF1bHQtd2lkdGgnLCd0YWJsZS13aWRlJywndGFibGUtbWF4J107XHJcbiAgICBjb25zdCBpZnJhbWVXaWR0aFN0eWxlcyA9IFsnaWZyYW1lLTEwMCcsJ2lmcmFtZS1kZWZhdWx0LXdpZHRoJywnaWZyYW1lLXdpZGUnLCdpZnJhbWUtbWF4J107XHJcbiAgICBjb25zdCBpbWdXaWR0aFN0eWxlcyA9IFsnaW1nLTEwMCcsJ2ltZy1kZWZhdWx0LXdpZHRoJywnaW1nLXdpZGUnLCdpbWctbWF4J107XHJcbiAgICBjb25zdCBtYXBXaWR0aFN0eWxlcyA9IFsnbWFwLTEwMCcsJ21hcC1kZWZhdWx0LXdpZHRoJywnbWFwLXdpZGUnLCdtYXAtbWF4J107XHJcbiAgICBjb25zdCBjaGFydFdpZHRoU3R5bGVzID0gWydjaGFydC0xMDAnLCdjaGFydC1kZWZhdWx0LXdpZHRoJywnY2hhcnQtd2lkZScsJ2NoYXJ0LW1heCddO1xyXG4gICAgY29uc3QgdGhlbWUgPSBbJ21vb25zdG9uZScsICdvYnNpZGlhbiddO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAnaW5jcmVhc2UtYm9keS1mb250LXNpemUnLFxyXG4gICAgICBuYW1lOiAnSW5jcmVhc2UgYm9keSBmb250IHNpemUnLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MudGV4dE5vcm1hbCA9IHRoaXMuc2V0dGluZ3MudGV4dE5vcm1hbCArIDAuNTtcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMuc2V0Rm9udFNpemUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICdkZWNyZWFzZS1ib2R5LWZvbnQtc2l6ZScsXHJcbiAgICAgIG5hbWU6ICdEZWNyZWFzZSBib2R5IGZvbnQgc2l6ZScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy50ZXh0Tm9ybWFsID0gdGhpcy5zZXR0aW5ncy50ZXh0Tm9ybWFsIC0gMC41O1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5zZXRGb250U2l6ZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTsgXHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1kYXJrLWN5Y2xlJyxcclxuICAgICAgbmFtZTogJ0N5Y2xlIGJldHdlZW4gZGFyayBtb2RlIHN0eWxlcycsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5kYXJrU3R5bGUgPSBkYXJrU3R5bGVzWyhkYXJrU3R5bGVzLmluZGV4T2YodGhpcy5zZXR0aW5ncy5kYXJrU3R5bGUpICsgMSkgJSBkYXJrU3R5bGVzLmxlbmd0aF07XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTsgIFxyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtbGlnaHQtY3ljbGUnLFxyXG4gICAgICBuYW1lOiAnQ3ljbGUgYmV0d2VlbiBsaWdodCBtb2RlIHN0eWxlcycsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5saWdodFN0eWxlID0gbGlnaHRTdHlsZXNbKGxpZ2h0U3R5bGVzLmluZGV4T2YodGhpcy5zZXR0aW5ncy5saWdodFN0eWxlKSArIDEpICUgbGlnaHRTdHlsZXMubGVuZ3RoXTtcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1oaWRkZW4tYm9yZGVycycsXHJcbiAgICAgIG5hbWU6ICdUb2dnbGUgc2lkZWJhciBib3JkZXJzJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmJvcmRlcnNUb2dnbGUgPSAhdGhpcy5zZXR0aW5ncy5ib3JkZXJzVG9nZ2xlO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLWNvbG9yZnVsLWhlYWRpbmdzJyxcclxuICAgICAgbmFtZTogJ1RvZ2dsZSBjb2xvcmZ1bCBoZWFkaW5ncycsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5jb2xvcmZ1bEhlYWRpbmdzID0gIXRoaXMuc2V0dGluZ3MuY29sb3JmdWxIZWFkaW5ncztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWZvY3VzLW1vZGUnLFxyXG4gICAgICBuYW1lOiAnVG9nZ2xlIGZvY3VzIG1vZGUnLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuZm9jdXNNb2RlID0gIXRoaXMuc2V0dGluZ3MuZm9jdXNNb2RlO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtY29sb3JmdWwtZnJhbWUnLFxyXG4gICAgICBuYW1lOiAnVG9nZ2xlIGNvbG9yZnVsIHdpbmRvdyBmcmFtZScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5jb2xvcmZ1bEZyYW1lID0gIXRoaXMuc2V0dGluZ3MuY29sb3JmdWxGcmFtZTtcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ2N5Y2xlLW1pbmltYWwtdGFibGUtd2lkdGgnLFxyXG4gICAgICBuYW1lOiAnQ3ljbGUgYmV0d2VlbiB0YWJsZSB3aWR0aCBvcHRpb25zJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLnRhYmxlV2lkdGggPSB0YWJsZVdpZHRoU3R5bGVzWyh0YWJsZVdpZHRoU3R5bGVzLmluZGV4T2YodGhpcy5zZXR0aW5ncy50YWJsZVdpZHRoKSArIDEpICUgdGFibGVXaWR0aFN0eWxlcy5sZW5ndGhdO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAnY3ljbGUtbWluaW1hbC1pbWFnZS13aWR0aCcsXHJcbiAgICAgIG5hbWU6ICdDeWNsZSBiZXR3ZWVuIGltYWdlIHdpZHRoIG9wdGlvbnMnLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuaW1nV2lkdGggPSBpbWdXaWR0aFN0eWxlc1soaW1nV2lkdGhTdHlsZXMuaW5kZXhPZih0aGlzLnNldHRpbmdzLmltZ1dpZHRoKSArIDEpICUgaW1nV2lkdGhTdHlsZXMubGVuZ3RoXTtcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ2N5Y2xlLW1pbmltYWwtaWZyYW1lLXdpZHRoJyxcclxuICAgICAgbmFtZTogJ0N5Y2xlIGJldHdlZW4gaWZyYW1lIHdpZHRoIG9wdGlvbnMnLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuaWZyYW1lV2lkdGggPSBpZnJhbWVXaWR0aFN0eWxlc1soaWZyYW1lV2lkdGhTdHlsZXMuaW5kZXhPZih0aGlzLnNldHRpbmdzLmlmcmFtZVdpZHRoKSArIDEpICUgaWZyYW1lV2lkdGhTdHlsZXMubGVuZ3RoXTtcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ2N5Y2xlLW1pbmltYWwtY2hhcnQtd2lkdGgnLFxyXG4gICAgICBuYW1lOiAnQ3ljbGUgYmV0d2VlbiBjaGFydCB3aWR0aCBvcHRpb25zJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmNoYXJ0V2lkdGggPSBjaGFydFdpZHRoU3R5bGVzWyhjaGFydFdpZHRoU3R5bGVzLmluZGV4T2YodGhpcy5zZXR0aW5ncy5jaGFydFdpZHRoKSArIDEpICUgY2hhcnRXaWR0aFN0eWxlcy5sZW5ndGhdO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAnY3ljbGUtbWluaW1hbC1tYXAtd2lkdGgnLFxyXG4gICAgICBuYW1lOiAnQ3ljbGUgYmV0d2VlbiBtYXAgd2lkdGggb3B0aW9ucycsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5tYXBXaWR0aCA9IG1hcFdpZHRoU3R5bGVzWyhtYXBXaWR0aFN0eWxlcy5pbmRleE9mKHRoaXMuc2V0dGluZ3MubWFwV2lkdGgpICsgMSkgJSBtYXBXaWR0aFN0eWxlcy5sZW5ndGhdO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtaW1nLWdyaWQnLFxyXG4gICAgICBuYW1lOiAnVG9nZ2xlIGltYWdlIGdyaWRzJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmltZ0dyaWQgPSAhdGhpcy5zZXR0aW5ncy5pbWdHcmlkO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtc3dpdGNoJyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBiZXR3ZWVuIGxpZ2h0IGFuZCBkYXJrIG1vZGUnLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MudGhlbWUgPSB0aGVtZVsodGhlbWUuaW5kZXhPZih0aGlzLnNldHRpbmdzLnRoZW1lKSArIDEpICUgdGhlbWUubGVuZ3RoXTtcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlVGhlbWUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1saWdodC1kZWZhdWx0JyxcclxuICAgICAgbmFtZTogJ1VzZSBsaWdodCBtb2RlIChkZWZhdWx0KScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5saWdodFN0eWxlID0gJ21pbmltYWwtbGlnaHQnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFN0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtbGlnaHQtd2hpdGUnLFxyXG4gICAgICBuYW1lOiAnVXNlIGxpZ2h0IG1vZGUgKGFsbCB3aGl0ZSknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MubGlnaHRTdHlsZSA9ICdtaW5pbWFsLWxpZ2h0LXdoaXRlJztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWxpZ2h0LXRvbmFsJyxcclxuICAgICAgbmFtZTogJ1VzZSBsaWdodCBtb2RlIChsb3cgY29udHJhc3QpJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmxpZ2h0U3R5bGUgPSAnbWluaW1hbC1saWdodC10b25hbCc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1saWdodC1jb250cmFzdCcsXHJcbiAgICAgIG5hbWU6ICdVc2UgbGlnaHQgbW9kZSAoaGlnaCBjb250cmFzdCknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MubGlnaHRTdHlsZSA9ICdtaW5pbWFsLWxpZ2h0LWNvbnRyYXN0JztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWRhcmstZGVmYXVsdCcsXHJcbiAgICAgIG5hbWU6ICdVc2UgZGFyayBtb2RlIChkZWZhdWx0KScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5kYXJrU3R5bGUgPSAnbWluaW1hbC1kYXJrJztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1N0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtZGFyay10b25hbCcsXHJcbiAgICAgIG5hbWU6ICdVc2UgZGFyayBtb2RlIChsb3cgY29udHJhc3QpJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmRhcmtTdHlsZSA9ICdtaW5pbWFsLWRhcmstdG9uYWwnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1kYXJrLWJsYWNrJyxcclxuICAgICAgbmFtZTogJ1VzZSBkYXJrIG1vZGUgKHRydWUgYmxhY2spJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmRhcmtTdHlsZSA9ICdtaW5pbWFsLWRhcmstYmxhY2snO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1hdG9tLWxpZ2h0JyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBsaWdodCBjb2xvciBzY2hlbWUgdG8gQXRvbSAobGlnaHQpJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmxpZ2h0U2NoZW1lID0gJ21pbmltYWwtYXRvbS1saWdodCc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFN0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtYXl1LWxpZ2h0JyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBsaWdodCBjb2xvciBzY2hlbWUgdG8gQXl1IChsaWdodCknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MubGlnaHRTY2hlbWUgPSAnbWluaW1hbC1heXUtbGlnaHQnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFNjaGVtZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWNhdHBwdWNjaW4tbGlnaHQnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGxpZ2h0IGNvbG9yIHNjaGVtZSB0byBDYXRwcHVjY2luIChsaWdodCknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MubGlnaHRTY2hlbWUgPSAnbWluaW1hbC1jYXRwcHVjY2luLWxpZ2h0JztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1kZWZhdWx0LWxpZ2h0JyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBsaWdodCBjb2xvciBzY2hlbWUgdG8gZGVmYXVsdCAobGlnaHQpJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmxpZ2h0U2NoZW1lID0gJ21pbmltYWwtZGVmYXVsdC1saWdodCc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFN0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtZ3J1dmJveC1saWdodCcsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggbGlnaHQgY29sb3Igc2NoZW1lIHRvIEdydXZib3ggKGxpZ2h0KScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5saWdodFNjaGVtZSA9ICdtaW5pbWFsLWdydXZib3gtbGlnaHQnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFNjaGVtZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWVpbmstbGlnaHQnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGxpZ2h0IGNvbG9yIHNjaGVtZSB0byBFaW5rIChsaWdodCknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MubGlnaHRTY2hlbWUgPSAnbWluaW1hbC1laW5rLWxpZ2h0JztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1ldmVyZm9yZXN0LWxpZ2h0JyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBsaWdodCBjb2xvciBzY2hlbWUgdG8gRXZlcmZvcmVzdCAobGlnaHQpJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmxpZ2h0U2NoZW1lID0gJ21pbmltYWwtZXZlcmZvcmVzdC1saWdodCc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFN0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtbWFjb3MtbGlnaHQnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGxpZ2h0IGNvbG9yIHNjaGVtZSB0byBtYWNPUyAobGlnaHQpJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmxpZ2h0U2NoZW1lID0gJ21pbmltYWwtbWFjb3MtbGlnaHQnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFNjaGVtZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLW5vdGlvbi1saWdodCcsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggbGlnaHQgY29sb3Igc2NoZW1lIHRvIE5vdGlvbiAobGlnaHQpJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmxpZ2h0U2NoZW1lID0gJ21pbmltYWwtbm90aW9uLWxpZ2h0JztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1ub3JkLWxpZ2h0JyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBsaWdodCBjb2xvciBzY2hlbWUgdG8gTm9yZCAobGlnaHQpJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmxpZ2h0U2NoZW1lID0gJ21pbmltYWwtbm9yZC1saWdodCc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFN0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtcm9zZS1waW5lLWxpZ2h0JyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBsaWdodCBjb2xvciBzY2hlbWUgdG8gUm9zXHUwMEU5IFBpbmUgKGxpZ2h0KScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5saWdodFNjaGVtZSA9ICdtaW5pbWFsLXJvc2UtcGluZS1saWdodCc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFN0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtc29sYXJpemVkLWxpZ2h0JyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBsaWdodCBjb2xvciBzY2hlbWUgdG8gU29sYXJpemVkIChsaWdodCknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MubGlnaHRTY2hlbWUgPSAnbWluaW1hbC1zb2xhcml6ZWQtbGlnaHQnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFNjaGVtZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLXRoaW5ncy1saWdodCcsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggbGlnaHQgY29sb3Igc2NoZW1lIHRvIFRoaW5ncyAobGlnaHQpJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmxpZ2h0U2NoZW1lID0gJ21pbmltYWwtdGhpbmdzLWxpZ2h0JztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1hdG9tLWRhcmsnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGRhcmsgY29sb3Igc2NoZW1lIHRvIEF0b20gKGRhcmspJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmRhcmtTY2hlbWUgPSAnbWluaW1hbC1hdG9tLWRhcmsnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1heXUtZGFyaycsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggZGFyayBjb2xvciBzY2hlbWUgdG8gQXl1IChkYXJrKScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5kYXJrU2NoZW1lID0gJ21pbmltYWwtYXl1LWRhcmsnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1jYXRwcHVjY2luLWRhcmsnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGRhcmsgY29sb3Igc2NoZW1lIHRvIENhdHBwdWNjaW4gKGRhcmspJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmRhcmtTY2hlbWUgPSAnbWluaW1hbC1jYXRwcHVjY2luLWRhcmsnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1kcmFjdWxhLWRhcmsnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGRhcmsgY29sb3Igc2NoZW1lIHRvIERyYWN1bGEgKGRhcmspJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmRhcmtTY2hlbWUgPSAnbWluaW1hbC1kcmFjdWxhLWRhcmsnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1kZWZhdWx0LWRhcmsnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGRhcmsgY29sb3Igc2NoZW1lIHRvIGRlZmF1bHQgKGRhcmspJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmRhcmtTY2hlbWUgPSAnbWluaW1hbC1kZWZhdWx0LWRhcmsnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1ncnV2Ym94LWRhcmsnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGRhcmsgY29sb3Igc2NoZW1lIHRvIEdydXZib3ggKGRhcmspJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmRhcmtTY2hlbWUgPSAnbWluaW1hbC1ncnV2Ym94LWRhcmsnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1laW5rLWRhcmsnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGRhcmsgY29sb3Igc2NoZW1lIHRvIEVpbmsgKGRhcmspJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmRhcmtTY2hlbWUgPSAnbWluaW1hbC1laW5rLWRhcmsnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1tYWNvcy1kYXJrJyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBkYXJrIGNvbG9yIHNjaGVtZSB0byBtYWNPUyAoZGFyayknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuZGFya1NjaGVtZSA9ICdtaW5pbWFsLW1hY29zLWRhcmsnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1ub3JkLWRhcmsnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGRhcmsgY29sb3Igc2NoZW1lIHRvIE5vcmQgKGRhcmspJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmRhcmtTY2hlbWUgPSAnbWluaW1hbC1ub3JkLWRhcmsnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1ub3Rpb24tZGFyaycsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggZGFyayBjb2xvciBzY2hlbWUgdG8gTm90aW9uIChkYXJrKScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5kYXJrU2NoZW1lID0gJ21pbmltYWwtbm90aW9uLWRhcmsnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1yb3NlLXBpbmUtZGFyaycsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggZGFyayBjb2xvciBzY2hlbWUgdG8gUm9zXHUwMEU5IFBpbmUgKGRhcmspJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmRhcmtTY2hlbWUgPSAnbWluaW1hbC1yb3NlLXBpbmUtZGFyayc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLXNvbGFyaXplZC1kYXJrJyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBkYXJrIGNvbG9yIHNjaGVtZSB0byBTb2xhcml6ZWQgKGRhcmspJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmRhcmtTY2hlbWUgPSAnbWluaW1hbC1zb2xhcml6ZWQtZGFyayc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLXRoaW5ncy1kYXJrJyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBkYXJrIGNvbG9yIHNjaGVtZSB0byBUaGluZ3MgKGRhcmspJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmRhcmtTY2hlbWUgPSAnbWluaW1hbC10aGluZ3MtZGFyayc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWRldi1ibG9jay13aWR0aCcsXHJcbiAgICAgIG5hbWU6ICdEZXYgXHUyMDE0IFNob3cgYmxvY2sgd2lkdGhzJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmRldkJsb2NrV2lkdGggPSAhdGhpcy5zZXR0aW5ncy5kZXZCbG9ja1dpZHRoO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucmVmcmVzaCgpXHJcbiAgfVxyXG5cclxuICBvbnVubG9hZCgpIHtcclxuICAgIGNvbnNvbGUubG9nKCdVbmxvYWRpbmcgTWluaW1hbCBUaGVtZSBTZXR0aW5ncyBwbHVnaW4nKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGxvYWRTZXR0aW5ncygpIHtcclxuICAgIHRoaXMuc2V0dGluZ3MgPSBPYmplY3QuYXNzaWduKERFRkFVTFRfU0VUVElOR1MsIGF3YWl0IHRoaXMubG9hZERhdGEoKSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBzYXZlU2V0dGluZ3MoKSB7XHJcbiAgICBhd2FpdCB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gIH1cclxuXHJcbiAgLy8gcmVmcmVzaCBmdW5jdGlvbiBmb3Igd2hlbiB3ZSBjaGFuZ2Ugc2V0dGluZ3NcclxuICByZWZyZXNoKCkge1xyXG4gICAgLy8gcmUtbG9hZCB0aGUgc3R5bGVcclxuICAgIHRoaXMudXBkYXRlU3R5bGUoKVxyXG4gIH1cclxuXHJcbiAgLy8gYWRkIHRoZSBzdHlsaW5nIGVsZW1lbnRzIHdlIG5lZWRcclxuICBhZGRTdHlsZSgpIHtcclxuICAgIC8vIGFkZCBhIGNzcyBibG9jayBmb3Igb3VyIHNldHRpbmdzLWRlcGVuZGVudCBzdHlsZXNcclxuICAgIGNvbnN0IGNzcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XHJcbiAgICBjc3MuaWQgPSAnbWluaW1hbC10aGVtZSc7XHJcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImhlYWRcIilbMF0uYXBwZW5kQ2hpbGQoY3NzKTtcclxuXHJcbiAgICAvLyBhZGQgdGhlIG1haW4gY2xhc3NcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnbWluaW1hbC10aGVtZScpO1xyXG5cclxuICAgIC8vIHVwZGF0ZSB0aGUgc3R5bGUgd2l0aCB0aGUgc2V0dGluZ3MtZGVwZW5kZW50IHN0eWxlc1xyXG4gICAgdGhpcy51cGRhdGVTdHlsZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0Rm9udFNpemUoKSB7XHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICB0aGlzLmFwcC52YXVsdC5zZXRDb25maWcoJ2Jhc2VGb250U2l6ZScsIHRoaXMuc2V0dGluZ3MudGV4dE5vcm1hbCk7XHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICB0aGlzLmFwcC51cGRhdGVGb250U2l6ZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gdXBkYXRlIHRoZSBzdHlsZXMgKGF0IHRoZSBzdGFydCwgb3IgYXMgdGhlIHJlc3VsdCBvZiBhIHNldHRpbmdzIGNoYW5nZSlcclxuICB1cGRhdGVTdHlsZSgpIHtcclxuICAgIHRoaXMucmVtb3ZlU3R5bGUoKTtcclxuXHJcbiAgICBkb2N1bWVudC5ib2R5LmFkZENsYXNzKHRoaXMuc2V0dGluZ3MuZGFya1NjaGVtZSk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFkZENsYXNzKHRoaXMuc2V0dGluZ3MubGlnaHRTY2hlbWUpO1xyXG5cclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnYm9yZGVycy1ub25lJywgIXRoaXMuc2V0dGluZ3MuYm9yZGVyc1RvZ2dsZSk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2NvbG9yZnVsLWhlYWRpbmdzJywgdGhpcy5zZXR0aW5ncy5jb2xvcmZ1bEhlYWRpbmdzKTtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnY29sb3JmdWwtZnJhbWUnLCB0aGlzLnNldHRpbmdzLmNvbG9yZnVsRnJhbWUpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdjb2xvcmZ1bC1hY3RpdmUnLCB0aGlzLnNldHRpbmdzLmNvbG9yZnVsQWN0aXZlU3RhdGVzKTtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnbWluaW1hbC1mb2N1cy1tb2RlJywgdGhpcy5zZXR0aW5ncy5mb2N1c01vZGUpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdsaW5rcy1pbnQtb24nLCB0aGlzLnNldHRpbmdzLnVuZGVybGluZUludGVybmFsKTtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnbGlua3MtZXh0LW9uJywgdGhpcy5zZXR0aW5ncy51bmRlcmxpbmVFeHRlcm5hbCk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ3N5c3RlbS1zaGFkZScsIHRoaXMuc2V0dGluZ3MudXNlU3lzdGVtVGhlbWUpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdmdWxsLXdpZHRoLW1lZGlhJywgdGhpcy5zZXR0aW5ncy5mdWxsV2lkdGhNZWRpYSk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2ltZy1ncmlkJywgdGhpcy5zZXR0aW5ncy5pbWdHcmlkKTtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnbWluaW1hbC1kZXYtYmxvY2std2lkdGgnLCB0aGlzLnNldHRpbmdzLmRldkJsb2NrV2lkdGgpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdtaW5pbWFsLXN0YXR1cy1vZmYnLCAhdGhpcy5zZXR0aW5ncy5taW5pbWFsU3RhdHVzKTtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnZnVsbC1maWxlLW5hbWVzJywgIXRoaXMuc2V0dGluZ3MudHJpbU5hbWVzKTtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnbGFiZWxlZC1uYXYnLCB0aGlzLnNldHRpbmdzLmxhYmVsZWROYXYpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdtaW5pbWFsLWZvbGRpbmcnLCB0aGlzLnNldHRpbmdzLmZvbGRpbmcpO1xyXG5cclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2xhc3MoJ3RhYmxlLXdpZGUnLCd0YWJsZS1tYXgnLCd0YWJsZS0xMDAnLCd0YWJsZS1kZWZhdWx0LXdpZHRoJyxcclxuICAgICAgJ2lmcmFtZS13aWRlJywnaWZyYW1lLW1heCcsJ2lmcmFtZS0xMDAnLCdpZnJhbWUtZGVmYXVsdC13aWR0aCcsXHJcbiAgICAgICdpbWctd2lkZScsJ2ltZy1tYXgnLCdpbWctMTAwJywnaW1nLWRlZmF1bHQtd2lkdGgnLFxyXG4gICAgICAnY2hhcnQtd2lkZScsJ2NoYXJ0LW1heCcsJ2NoYXJ0LTEwMCcsJ2NoYXJ0LWRlZmF1bHQtd2lkdGgnLFxyXG4gICAgICAnbWFwLXdpZGUnLCdtYXAtbWF4JywnbWFwLTEwMCcsJ21hcC1kZWZhdWx0LXdpZHRoJyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFkZENsYXNzKHRoaXMuc2V0dGluZ3MuY2hhcnRXaWR0aCk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFkZENsYXNzKHRoaXMuc2V0dGluZ3MudGFibGVXaWR0aCk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFkZENsYXNzKHRoaXMuc2V0dGluZ3MuaW1nV2lkdGgpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hZGRDbGFzcyh0aGlzLnNldHRpbmdzLmlmcmFtZVdpZHRoKTtcclxuICAgIGRvY3VtZW50LmJvZHkuYWRkQ2xhc3ModGhpcy5zZXR0aW5ncy5tYXBXaWR0aCk7XHJcblxyXG4gICAgLy8gZ2V0IHRoZSBjdXN0b20gY3NzIGVsZW1lbnRcclxuICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21pbmltYWwtdGhlbWUnKTtcclxuICAgIGlmICghZWwpIHRocm93IFwibWluaW1hbC10aGVtZSBlbGVtZW50IG5vdCBmb3VuZCFcIjtcclxuICAgIGVsc2Uge1xyXG4gICAgICAvLyBzZXQgdGhlIHNldHRpbmdzLWRlcGVuZGVudCBjc3NcclxuICAgICAgZWwuaW5uZXJUZXh0ID0gXHJcbiAgICAgICAgJ2JvZHkubWluaW1hbC10aGVtZXsnXHJcbiAgICAgICAgKyAnLS1mb250LXVpLXNtYWxsOicgKyB0aGlzLnNldHRpbmdzLnRleHRTbWFsbCArICdweDsnXHJcbiAgICAgICAgKyAnLS1saW5lLWhlaWdodDonICsgdGhpcy5zZXR0aW5ncy5saW5lSGVpZ2h0ICsgJzsnXHJcbiAgICAgICAgKyAnLS1saW5lLXdpZHRoOicgKyB0aGlzLnNldHRpbmdzLmxpbmVXaWR0aCArICdyZW07J1xyXG4gICAgICAgICsgJy0tbGluZS13aWR0aC13aWRlOicgKyB0aGlzLnNldHRpbmdzLmxpbmVXaWR0aFdpZGUgKyAncmVtOydcclxuICAgICAgICArICctLW1heC13aWR0aDonICsgdGhpcy5zZXR0aW5ncy5tYXhXaWR0aCArICclOydcclxuICAgICAgICArICctLWZvbnQtZWRpdG9yLW92ZXJyaWRlOicgKyB0aGlzLnNldHRpbmdzLmVkaXRvckZvbnQgKyAnOyc7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcmVmcmVzaFN5c3RlbVRoZW1lKCkge1xyXG4gICAgY29uc3QgaXNEYXJrTW9kZSA9IHdpbmRvdy5tYXRjaE1lZGlhICYmIHdpbmRvdy5tYXRjaE1lZGlhKCcocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspJykubWF0Y2hlc1xyXG5cclxuICAgIGlmIChpc0RhcmtNb2RlICYmIHRoaXMuc2V0dGluZ3MudXNlU3lzdGVtVGhlbWUpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnRGFyayBtb2RlIGFjdGl2ZScpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1N0eWxlKClcclxuXHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zZXR0aW5ncy51c2VTeXN0ZW1UaGVtZSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdMaWdodCBtb2RlIGFjdGl2ZScpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTdHlsZSgpXHJcbiAgICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZURhcmtTdHlsZSgpIHtcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2xhc3MoXHJcbiAgICAgICd0aGVtZS1saWdodCcsXHJcbiAgICAgICdtaW5pbWFsLWRhcmsnLFxyXG4gICAgICAnbWluaW1hbC1kYXJrLXRvbmFsJyxcclxuICAgICAgJ21pbmltYWwtZGFyay1ibGFjaydcclxuICAgICk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFkZENsYXNzKHRoaXMuc2V0dGluZ3MuZGFya1N0eWxlKTtcclxuXHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICB0aGlzLmFwcC5zZXRUaGVtZSgnb2JzaWRpYW4nKTtcclxuICAgIC8vIEB0cy1pZ25vcmVcclxuICAgIHRoaXMuYXBwLnZhdWx0LnNldENvbmZpZygndGhlbWUnLCAnb2JzaWRpYW4nKTtcclxuICAgIHRoaXMuYXBwLndvcmtzcGFjZS50cmlnZ2VyKCdjc3MtY2hhbmdlJyk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVMaWdodFN0eWxlKCkge1xyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDbGFzcyhcclxuICAgICAgJ3RoZW1lLWRhcmsnLFxyXG4gICAgICAnbWluaW1hbC1saWdodCcsXHJcbiAgICAgICdtaW5pbWFsLWxpZ2h0LXRvbmFsJyxcclxuICAgICAgJ21pbmltYWwtbGlnaHQtY29udHJhc3QnLFxyXG4gICAgICAnbWluaW1hbC1saWdodC13aGl0ZSdcclxuICAgICk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFkZENsYXNzKHRoaXMuc2V0dGluZ3MubGlnaHRTdHlsZSk7XHJcblxyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgdGhpcy5hcHAuc2V0VGhlbWUoJ21vb25zdG9uZScpO1xyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgdGhpcy5hcHAudmF1bHQuc2V0Q29uZmlnKCd0aGVtZScsICdtb29uc3RvbmUnKTtcclxuICAgIHRoaXMuYXBwLndvcmtzcGFjZS50cmlnZ2VyKCdjc3MtY2hhbmdlJyk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVEYXJrU2NoZW1lKCkge1xyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDbGFzcyhcclxuICAgICAgJ21pbmltYWwtYXRvbS1kYXJrJyxcclxuICAgICAgJ21pbmltYWwtYXl1LWRhcmsnLFxyXG4gICAgICAnbWluaW1hbC1jYXRwcHVjY2luLWRhcmsnLFxyXG4gICAgICAnbWluaW1hbC1kZWZhdWx0LWRhcmsnLFxyXG4gICAgICAnbWluaW1hbC1kcmFjdWxhLWRhcmsnLFxyXG4gICAgICAnbWluaW1hbC1laW5rLWRhcmsnLFxyXG4gICAgICAnbWluaW1hbC1ldmVyZm9yZXN0LWRhcmsnLFxyXG4gICAgICAnbWluaW1hbC1ncnV2Ym94LWRhcmsnLFxyXG4gICAgICAnbWluaW1hbC1tYWNvcy1kYXJrJyxcclxuICAgICAgJ21pbmltYWwtbm9yZC1kYXJrJyxcclxuICAgICAgJ21pbmltYWwtbm90aW9uLWRhcmsnLFxyXG4gICAgICAnbWluaW1hbC1yb3NlLXBpbmUtZGFyaycsXHJcbiAgICAgICdtaW5pbWFsLXNvbGFyaXplZC1kYXJrJyxcclxuICAgICAgJ21pbmltYWwtdGhpbmdzLWRhcmsnXHJcbiAgICApO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hZGRDbGFzcyh0aGlzLnNldHRpbmdzLmRhcmtTY2hlbWUpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlTGlnaHRTY2hlbWUoKSB7XHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNsYXNzKFxyXG4gICAgICAnbWluaW1hbC1hdG9tLWxpZ2h0JyxcclxuICAgICAgJ21pbmltYWwtYXl1LWxpZ2h0JyxcclxuICAgICAgJ21pbmltYWwtY2F0cHB1Y2Npbi1saWdodCcsXHJcbiAgICAgICdtaW5pbWFsLWRlZmF1bHQtbGlnaHQnLFxyXG4gICAgICAnbWluaW1hbC1laW5rLWxpZ2h0JyxcclxuICAgICAgJ21pbmltYWwtZXZlcmZvcmVzdC1saWdodCcsXHJcbiAgICAgICdtaW5pbWFsLWdydXZib3gtbGlnaHQnLFxyXG4gICAgICAnbWluaW1hbC1tYWNvcy1saWdodCcsXHJcbiAgICAgICdtaW5pbWFsLW5vcmQtbGlnaHQnLFxyXG4gICAgICAnbWluaW1hbC1ub3Rpb24tbGlnaHQnLFxyXG4gICAgICAnbWluaW1hbC1yb3NlLXBpbmUtbGlnaHQnLFxyXG4gICAgICAnbWluaW1hbC1zb2xhcml6ZWQtbGlnaHQnLFxyXG4gICAgICAnbWluaW1hbC10aGluZ3MtbGlnaHQnXHJcbiAgICApO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hZGRDbGFzcyh0aGlzLnNldHRpbmdzLmxpZ2h0U2NoZW1lKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVRoZW1lKCkge1xyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgdGhpcy5hcHAuc2V0VGhlbWUodGhpcy5zZXR0aW5ncy50aGVtZSk7XHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICB0aGlzLmFwcC52YXVsdC5zZXRDb25maWcoJ3RoZW1lJywgdGhpcy5zZXR0aW5ncy50aGVtZSk7XHJcbiAgICB0aGlzLmFwcC53b3Jrc3BhY2UudHJpZ2dlcignY3NzLWNoYW5nZScpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlU3R5bGUoKSB7XHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNsYXNzKCdtaW5pbWFsLWxpZ2h0JywnbWluaW1hbC1saWdodC10b25hbCcsJ21pbmltYWwtbGlnaHQtY29udHJhc3QnLCdtaW5pbWFsLWxpZ2h0LXdoaXRlJywnbWluaW1hbC1kYXJrJywnbWluaW1hbC1kYXJrLXRvbmFsJywnbWluaW1hbC1kYXJrLWJsYWNrJyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFkZENsYXNzKHRoaXMuc2V0dGluZ3MubGlnaHRTdHlsZSx0aGlzLnNldHRpbmdzLmRhcmtTdHlsZSk7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuaW50ZXJmYWNlIE1pbmltYWxTZXR0aW5ncyB7XHJcbiAgdGhlbWU6IHN0cmluZztcclxuICBsaWdodFN0eWxlOiBzdHJpbmc7XHJcbiAgZGFya1N0eWxlOiBzdHJpbmc7XHJcbiAgbGlnaHRTY2hlbWU6IHN0cmluZztcclxuICBkYXJrU2NoZW1lOiBzdHJpbmc7XHJcbiAgZWRpdG9yRm9udDogc3RyaW5nO1xyXG4gIGNvbG9yZnVsSGVhZGluZ3M6IGJvb2xlYW47XHJcbiAgY29sb3JmdWxGcmFtZTogYm9vbGVhbjtcclxuICBjb2xvcmZ1bEFjdGl2ZVN0YXRlczogYm9vbGVhbixcclxuICB0cmltTmFtZXM6IGJvb2xlYW47XHJcbiAgbGFiZWxlZE5hdjogYm9vbGVhbjtcclxuICBib3JkZXJzVG9nZ2xlOiBib29sZWFuO1xyXG4gIGZvY3VzTW9kZTogYm9vbGVhbjtcclxuICBsaW5lSGVpZ2h0OiBudW1iZXI7XHJcbiAgbGluZVdpZHRoOiBudW1iZXI7XHJcbiAgbGluZVdpZHRoV2lkZTogbnVtYmVyO1xyXG4gIG1heFdpZHRoOiBudW1iZXI7XHJcbiAgaW1nR3JpZDogYm9vbGVhbjtcclxuICBkZXZCbG9ja1dpZHRoOiBib29sZWFuO1xyXG4gIHRhYmxlV2lkdGg6IHN0cmluZztcclxuICBpZnJhbWVXaWR0aDogc3RyaW5nO1xyXG4gIGltZ1dpZHRoOiBzdHJpbmc7XHJcbiAgY2hhcnRXaWR0aDogc3RyaW5nO1xyXG4gIG1hcFdpZHRoOiBzdHJpbmc7XHJcbiAgZnVsbFdpZHRoTWVkaWE6IGJvb2xlYW4sXHJcbiAgbWluaW1hbFN0YXR1czogYm9vbGVhbixcclxuICB0ZXh0Tm9ybWFsOiBudW1iZXI7XHJcbiAgdGV4dFNtYWxsOiBudW1iZXI7XHJcbiAgdW5kZXJsaW5lSW50ZXJuYWw6IGJvb2xlYW47XHJcbiAgdW5kZXJsaW5lRXh0ZXJuYWw6IGJvb2xlYW47XHJcbiAgdXNlU3lzdGVtVGhlbWU6IGJvb2xlYW47XHJcbiAgZm9sZGluZzogYm9vbGVhbjtcclxuICBsaW5lTnVtYmVyczogYm9vbGVhbjtcclxuICByZWFkYWJsZUxpbmVMZW5ndGg6IGJvb2xlYW47XHJcbn1cclxuXHJcbmNvbnN0IERFRkFVTFRfU0VUVElOR1M6IE1pbmltYWxTZXR0aW5ncyA9IHtcclxuICB0aGVtZTogJ21vb25zdG9uZScsXHJcbiAgbGlnaHRTdHlsZTogJ21pbmltYWwtbGlnaHQnLFxyXG4gIGRhcmtTdHlsZTogJ21pbmltYWwtZGFyaycsXHJcbiAgbGlnaHRTY2hlbWU6ICdtaW5pbWFsLWRlZmF1bHQtbGlnaHQnLFxyXG4gIGRhcmtTY2hlbWU6ICdtaW5pbWFsLWRlZmF1bHQtZGFyaycsXHJcbiAgZWRpdG9yRm9udDogJycsXHJcbiAgbGluZUhlaWdodDogMS41LFxyXG4gIGxpbmVXaWR0aDogNDAsXHJcbiAgbGluZVdpZHRoV2lkZTogNTAsXHJcbiAgbWF4V2lkdGg6IDg4LFxyXG4gIHRleHROb3JtYWw6IDE2LFxyXG4gIHRleHRTbWFsbDogMTMsXHJcbiAgaW1nR3JpZDogZmFsc2UsXHJcbiAgaW1nV2lkdGg6ICdpbWctZGVmYXVsdC13aWR0aCcsXHJcbiAgdGFibGVXaWR0aDogJ3RhYmxlLWRlZmF1bHQtd2lkdGgnLFxyXG4gIGlmcmFtZVdpZHRoOiAnaWZyYW1lLWRlZmF1bHQtd2lkdGgnLFxyXG4gIG1hcFdpZHRoOiAnbWFwLWRlZmF1bHQtd2lkdGgnLFxyXG4gIGNoYXJ0V2lkdGg6ICdjaGFydC1kZWZhdWx0LXdpZHRoJyxcclxuICBjb2xvcmZ1bEhlYWRpbmdzOiBmYWxzZSxcclxuICBjb2xvcmZ1bEZyYW1lOiBmYWxzZSxcclxuICBjb2xvcmZ1bEFjdGl2ZVN0YXRlczogZmFsc2UsXHJcbiAgdHJpbU5hbWVzOiB0cnVlLFxyXG4gIGxhYmVsZWROYXY6IGZhbHNlLFxyXG4gIGZ1bGxXaWR0aE1lZGlhOiB0cnVlLFxyXG4gIGJvcmRlcnNUb2dnbGU6IHRydWUsXHJcbiAgbWluaW1hbFN0YXR1czogdHJ1ZSxcclxuICBmb2N1c01vZGU6IGZhbHNlLFxyXG4gIHVuZGVybGluZUludGVybmFsOiB0cnVlLFxyXG4gIHVuZGVybGluZUV4dGVybmFsOiB0cnVlLFxyXG4gIHVzZVN5c3RlbVRoZW1lOiBmYWxzZSxcclxuICBmb2xkaW5nOiB0cnVlLFxyXG4gIGxpbmVOdW1iZXJzOiBmYWxzZSxcclxuICByZWFkYWJsZUxpbmVMZW5ndGg6IGZhbHNlLFxyXG4gIGRldkJsb2NrV2lkdGg6IGZhbHNlLFxyXG59XHJcblxyXG5jbGFzcyBNaW5pbWFsU2V0dGluZ1RhYiBleHRlbmRzIFBsdWdpblNldHRpbmdUYWIge1xyXG5cclxuXHJcbiAgcGx1Z2luOiBNaW5pbWFsVGhlbWU7XHJcbiAgY29uc3RydWN0b3IoYXBwOiBBcHAsIHBsdWdpbjogTWluaW1hbFRoZW1lKSB7XHJcbiAgICBzdXBlcihhcHAsIHBsdWdpbik7XHJcbiAgICB0aGlzLnBsdWdpbiA9IHBsdWdpbjtcclxuICB9XHJcblxyXG4gIGRpc3BsYXkoKTogdm9pZCB7XHJcbiAgICBsZXQge2NvbnRhaW5lckVsfSA9IHRoaXM7XHJcblxyXG4gICAgY29udGFpbmVyRWwuZW1wdHkoKTtcclxuICAgIGNvbnRhaW5lckVsLmNyZWF0ZUVsKCdoMycsIHt0ZXh0OiAnTWluaW1hbCBUaGVtZSBTZXR0aW5ncyd9KTtcclxuXHJcbiAgICBjb25zdCBtYWluRGVzYyA9IGNvbnRhaW5lckVsLmNyZWF0ZUVsKCdwJyk7XHJcblxyXG4gICAgICBtYWluRGVzYy5hcHBlbmRUZXh0KCdGb3IgaGVscCwgJyk7XHJcbiAgICAgIG1haW5EZXNjLmFwcGVuZENoaWxkKFxyXG4gICAgICAgIGNyZWF0ZUVsKCdhJywge1xyXG4gICAgICAgICAgdGV4dDogXCJzZWUgZG9jdW1lbnRhdGlvblwiLFxyXG4gICAgICAgICAgaHJlZjogXCJodHRwczovL21pbmltYWwuZ3VpZGVcIixcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgICBtYWluRGVzYy5hcHBlbmRUZXh0KCcgb3Igam9pbiAnKTtcclxuICAgICAgbWFpbkRlc2MuYXBwZW5kQ2hpbGQoXHJcbiAgICAgICAgY3JlYXRlRWwoJ3N0cm9uZycsIHtcclxuICAgICAgICAgIHRleHQ6IFwiI21pbmltYWxcIixcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgICBtYWluRGVzYy5hcHBlbmRUZXh0KCcgaW4gdGhlICcpO1xyXG4gICAgICBtYWluRGVzYy5hcHBlbmRDaGlsZChcclxuICAgICAgICBjcmVhdGVFbCgnYScsIHtcclxuICAgICAgICAgIHRleHQ6IFwiT2JzaWRpYW4gRGlzY29yZFwiLFxyXG4gICAgICAgICAgaHJlZjogXCJodHRwczovL29ic2lkaWFuLm1kL2NvbW11bml0eVwiLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICAgIG1haW5EZXNjLmFwcGVuZFRleHQoJyBjb21tdW5pdHkuJyk7XHJcblxyXG4gICAgY29udGFpbmVyRWwuY3JlYXRlRWwoJ2JyJyk7XHJcbiAgICBjb250YWluZXJFbC5jcmVhdGVFbCgnaDMnLCB7dGV4dDogJ0NvbG9yIHNjaGVtZSd9KTtcclxuXHJcbiAgICBjb25zdCBjb2xvckRlc2MgPSBjb250YWluZXJFbC5jcmVhdGVFbCgncCcpO1xyXG5cclxuICAgICAgY29sb3JEZXNjLmFwcGVuZENoaWxkKFxyXG4gICAgICAgIGNyZWF0ZUVsKCdzcGFuJywge1xyXG4gICAgICAgICAgdGV4dDogJ1RvIGNyZWF0ZSBhIGN1c3RvbSBjb2xvciBzY2hlbWUgdXNlIHRoZSAnXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgIGNvbG9yRGVzYy5hcHBlbmRDaGlsZChcclxuICAgICAgICBjcmVhdGVFbCgnYScsIHtcclxuICAgICAgICAgIHRleHQ6IFwiU3R5bGUgU2V0dGluZ3NcIixcclxuICAgICAgICAgIGhyZWY6IFwib2JzaWRpYW46Ly9zaG93LXBsdWdpbj9pZD1vYnNpZGlhbi1zdHlsZS1zZXR0aW5nc1wiLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICAgIGNvbG9yRGVzYy5hcHBlbmRUZXh0KCcgcGx1Z2luLicpO1xyXG5cclxuICAgICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgICAgLnNldE5hbWUoJ0xpZ2h0IG1vZGUgY29sb3Igc2NoZW1lJylcclxuICAgICAgICAuc2V0RGVzYygnUHJlc2V0IGNvbG9yIG9wdGlvbnMgZm9yIGxpZ2h0IG1vZGUuJylcclxuICAgICAgICAuYWRkRHJvcGRvd24oZHJvcGRvd24gPT4gZHJvcGRvd25cclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtZGVmYXVsdC1saWdodCcsJ0RlZmF1bHQnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1hdG9tLWxpZ2h0JywnQXRvbScpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLWF5dS1saWdodCcsJ0F5dScpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLWNhdHBwdWNjaW4tbGlnaHQnLCdDYXRwcHVjY2luJylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtZWluay1saWdodCcsJ0VpbmsgKGJldGEpJylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtZXZlcmZvcmVzdC1saWdodCcsJ0V2ZXJmb3Jlc3QnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1ncnV2Ym94LWxpZ2h0JywnR3J1dmJveCcpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLW1hY29zLWxpZ2h0JywnbWFjT1MnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1ub3JkLWxpZ2h0JywnTm9yZCcpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLW5vdGlvbi1saWdodCcsJ05vdGlvbicpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLXJvc2UtcGluZS1saWdodCcsJ1Jvc1x1MDBFOSBQaW5lJylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtc29sYXJpemVkLWxpZ2h0JywnU29sYXJpemVkJylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtdGhpbmdzLWxpZ2h0JywnVGhpbmdzJylcclxuICAgICAgICAgIC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5saWdodFNjaGVtZSlcclxuICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5saWdodFNjaGVtZSA9IHZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4udXBkYXRlTGlnaHRTY2hlbWUoKTtcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgICAuc2V0TmFtZSgnTGlnaHQgbW9kZSBiYWNrZ3JvdW5kIGNvbnRyYXN0JylcclxuICAgICAgICAuc2V0RGVzYygnTGV2ZWwgb2YgY29udHJhc3QgYmV0d2VlbiBzaWRlYmFyIGFuZCBtYWluIGNvbnRlbnQuJylcclxuICAgICAgICAuYWRkRHJvcGRvd24oZHJvcGRvd24gPT4gZHJvcGRvd25cclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtbGlnaHQnLCdEZWZhdWx0JylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtbGlnaHQtd2hpdGUnLCdBbGwgd2hpdGUnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1saWdodC10b25hbCcsJ0xvdyBjb250cmFzdCcpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLWxpZ2h0LWNvbnRyYXN0JywnSGlnaCBjb250cmFzdCcpXHJcbiAgICAgICAgICAuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MubGlnaHRTdHlsZSlcclxuICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5saWdodFN0eWxlID0gdmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICB0aGlzLnBsdWdpbi51cGRhdGVMaWdodFN0eWxlKCk7XHJcbiAgICAgICAgfSkpO1xyXG5cclxuICAgICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgICAgLnNldE5hbWUoJ0RhcmsgbW9kZSBjb2xvciBzY2hlbWUnKVxyXG4gICAgICAgIC5zZXREZXNjKCdQcmVzZXQgY29sb3JzIG9wdGlvbnMgZm9yIGRhcmsgbW9kZS4nKVxyXG4gICAgICAgIC5hZGREcm9wZG93bihkcm9wZG93biA9PiBkcm9wZG93blxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1kZWZhdWx0LWRhcmsnLCdEZWZhdWx0JylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtYXRvbS1kYXJrJywnQXRvbScpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLWF5dS1kYXJrJywnQXl1JylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtY2F0cHB1Y2Npbi1kYXJrJywnQ2F0cHB1Y2NpbicpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLWRyYWN1bGEtZGFyaycsJ0RyYWN1bGEnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1laW5rLWRhcmsnLCdFaW5rIChiZXRhKScpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLWV2ZXJmb3Jlc3QtZGFyaycsJ0V2ZXJmb3Jlc3QnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1ncnV2Ym94LWRhcmsnLCdHcnV2Ym94JylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtbWFjb3MtZGFyaycsJ21hY09TJylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtbm9yZC1kYXJrJywnTm9yZCcpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLW5vdGlvbi1kYXJrJywnTm90aW9uJylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtcm9zZS1waW5lLWRhcmsnLCdSb3NcdTAwRTkgUGluZScpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLXNvbGFyaXplZC1kYXJrJywnU29sYXJpemVkJylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtdGhpbmdzLWRhcmsnLCdUaGluZ3MnKVxyXG4gICAgICAgICAgLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmRhcmtTY2hlbWUpXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmRhcmtTY2hlbWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi51cGRhdGVEYXJrU2NoZW1lKCk7XHJcbiAgICAgICAgICB9KSk7XHJcblxyXG4gICAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgICAuc2V0TmFtZSgnRGFyayBtb2RlIGJhY2tncm91bmQgY29udHJhc3QnKVxyXG4gICAgICAgIC5zZXREZXNjKCdMZXZlbCBvZiBjb250cmFzdCBiZXR3ZWVuIHNpZGViYXIgYW5kIG1haW4gY29udGVudC4nKVxyXG4gICAgICAgIC5hZGREcm9wZG93bihkcm9wZG93biA9PiBkcm9wZG93blxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1kYXJrJywnRGVmYXVsdCcpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLWRhcmstdG9uYWwnLCdMb3cgY29udHJhc3QnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1kYXJrLWJsYWNrJywnVHJ1ZSBibGFjaycpXHJcbiAgICAgICAgICAuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZGFya1N0eWxlKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5kYXJrU3R5bGUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi51cGRhdGVEYXJrU3R5bGUoKTtcclxuICAgICAgICAgIH0pKTtcclxuXHJcbiAgICBjb250YWluZXJFbC5jcmVhdGVFbCgnYnInKTtcclxuICAgIGNvbnRhaW5lckVsLmNyZWF0ZUVsKCdoMycpO1xyXG4gICAgY29udGFpbmVyRWwuY3JlYXRlRWwoJ2gzJywge3RleHQ6ICdGZWF0dXJlcyd9KTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ01hdGNoIHN5c3RlbSBzZXR0aW5nIGZvciBsaWdodCBvciBkYXJrIG1vZGUnKVxyXG4gICAgICAuc2V0RGVzYygnQXV0b21hdGljYWxseSBzd2l0Y2ggYmFzZWQgb24geW91ciBPUyBzZXR0aW5nLicpXHJcbiAgICAgIC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy51c2VTeXN0ZW1UaGVtZSlcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MudXNlU3lzdGVtVGhlbWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoU3lzdGVtVGhlbWUoKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdUZXh0IGxhYmVscyBmb3IgcHJpbWFyeSBuYXZpZ2F0aW9uJylcclxuICAgICAgLnNldERlc2MoJ05hdmlnYXRpb24gaXRlbXMgaW4gdGhlIGxlZnQgc2lkZWJhciB1c2VzIHRleHQgbGFiZWxzLicpXHJcbiAgICAgIC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5sYWJlbGVkTmF2KVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5sYWJlbGVkTmF2ID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgICAgfSkpO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnQ29sb3JmdWwgd2luZG93IGZyYW1lJylcclxuICAgICAgLnNldERlc2MoJ1RoZSB0b3AgYXJlYSBvZiB0aGUgYXBwIHVzZXMgeW91ciBhY2NlbnQgY29sb3IuJylcclxuICAgICAgLmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmNvbG9yZnVsRnJhbWUpXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmNvbG9yZnVsRnJhbWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnQ29sb3JmdWwgYWN0aXZlIHN0YXRlcycpXHJcbiAgICAgIC5zZXREZXNjKCdBY3RpdmUgZmlsZSBhbmQgbWVudSBpdGVtcyB1c2UgeW91ciBhY2NlbnQgY29sb3IuJylcclxuICAgICAgLmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmNvbG9yZnVsQWN0aXZlU3RhdGVzKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5jb2xvcmZ1bEFjdGl2ZVN0YXRlcyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdDb2xvcmZ1bCBoZWFkaW5ncycpXHJcbiAgICAgIC5zZXREZXNjKCdIZWFkaW5ncyB1c2UgYSBkaWZmZXJlbnQgY29sb3IgZm9yIGVhY2ggc2l6ZS4nKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY29sb3JmdWxIZWFkaW5ncylcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuY29sb3JmdWxIZWFkaW5ncyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdNaW5pbWFsIHN0YXR1cyBiYXInKVxyXG4gICAgICAuc2V0RGVzYygnVHVybiBvZmYgdG8gdXNlIGZ1bGwtd2lkdGggc3RhdHVzIGJhci4nKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MubWluaW1hbFN0YXR1cylcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MubWluaW1hbFN0YXR1cyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgIH0pKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ1RyaW0gZmlsZSBuYW1lcyBpbiBzaWRlYmFycycpXHJcbiAgICAgIC5zZXREZXNjKCdVc2UgZWxsaXBzZXMgdG8gZml0IGZpbGUgbmFtZXMgb24gYSBzaW5nbGUgbGluZS4nKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MudHJpbU5hbWVzKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy50cmltTmFtZXMgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICB9KSk7XHJcblxyXG4gICAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgICAuc2V0TmFtZSgnV29ya3NwYWNlIGJvcmRlcnMnKVxyXG4gICAgICAgIC5zZXREZXNjKCdEaXNwbGF5IGRpdmlkZXIgbGluZXMgYmV0d2VlbiB3b3Jrc3BhY2UgZWxlbWVudHMuJylcclxuICAgICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuYm9yZGVyc1RvZ2dsZSlcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuYm9yZGVyc1RvZ2dsZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgIH0pKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ0ZvY3VzIG1vZGUnKVxyXG4gICAgICAuc2V0RGVzYygnSGlkZSB0YWIgYmFyIGFuZCBzdGF0dXMgYmFyLCBob3ZlciB0byBkaXNwbGF5LiBDYW4gYmUgdG9nZ2xlZCB2aWEgaG90a2V5LicpXHJcbiAgICAgIC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5mb2N1c01vZGUpXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmZvY3VzTW9kZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdVbmRlcmxpbmUgaW50ZXJuYWwgbGlua3MnKVxyXG4gICAgICAuc2V0RGVzYygnU2hvdyB1bmRlcmxpbmVzIG9uIGludGVybmFsIGxpbmtzLicpXHJcbiAgICAgIC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy51bmRlcmxpbmVJbnRlcm5hbClcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MudW5kZXJsaW5lSW50ZXJuYWwgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnVW5kZXJsaW5lIGV4dGVybmFsIGxpbmtzJylcclxuICAgICAgLnNldERlc2MoJ1Nob3cgdW5kZXJsaW5lcyBvbiBleHRlcm5hbCBsaW5rcy4nKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MudW5kZXJsaW5lRXh0ZXJuYWwpXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLnVuZGVybGluZUV4dGVybmFsID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ01heGltaXplIG1lZGlhJylcclxuICAgICAgLnNldERlc2MoJ0ltYWdlcyBhbmQgdmlkZW9zIGZpbGwgdGhlIHdpZHRoIG9mIHRoZSBsaW5lLicpXHJcbiAgICAgIC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5mdWxsV2lkdGhNZWRpYSlcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuZnVsbFdpZHRoTWVkaWEgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICB9KSk7XHJcblxyXG4gICAgY29udGFpbmVyRWwuY3JlYXRlRWwoJ2JyJyk7XHJcbiAgICBjb250YWluZXJFbC5jcmVhdGVFbCgnaDMnKTtcclxuICAgIGNvbnRhaW5lckVsLmNyZWF0ZUVsKCdoMycsIHt0ZXh0OiAnTGF5b3V0J30pO1xyXG5cclxuICAgIGNvbnN0IGxheW91dERlc2MgPSBjb250YWluZXJFbC5jcmVhdGVFbCgncCcpO1xyXG5cclxuICAgICAgbGF5b3V0RGVzYy5hcHBlbmRDaGlsZChcclxuICAgICAgICBjcmVhdGVFbCgnc3BhbicsIHtcclxuICAgICAgICAgIHRleHQ6ICdUaGVzZSBvcHRpb25zIGNhbiBhbHNvIGJlIGRlZmluZWQgb24gYSBwZXItZmlsZSBiYXNpcywgJ1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgICBsYXlvdXREZXNjLmFwcGVuZENoaWxkKFxyXG4gICAgICAgIGNyZWF0ZUVsKCdhJywge1xyXG4gICAgICAgICAgdGV4dDogXCJzZWUgZG9jdW1lbnRhdGlvblwiLFxyXG4gICAgICAgICAgaHJlZjogXCJodHRwczovL21pbmltYWwuZ3VpZGUvRmVhdHVyZXMvQmxvY2srd2lkdGhcIixcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgICBsYXlvdXREZXNjLmFwcGVuZFRleHQoJyBmb3IgZGV0YWlscy4nKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ0ltYWdlIGdyaWRzJylcclxuICAgICAgLnNldERlc2MoJ1R1cm4gY29uc2VjdXRpdmUgaW1hZ2VzIGludG8gY29sdW1ucyBcdTIwMTQgdG8gbWFrZSBhIG5ldyByb3csIGFkZCBhbiBleHRyYSBsaW5lIGJyZWFrIGJldHdlZW4gaW1hZ2VzLicpXHJcbiAgICAgIC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5pbWdHcmlkKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5pbWdHcmlkID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgICAgfSkpO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnQ2hhcnQgd2lkdGgnKVxyXG4gICAgICAuc2V0RGVzYygnRGVmYXVsdCB3aWR0aCBmb3IgY2hhcnQgYmxvY2tzLicpXHJcbiAgICAgIC5hZGREcm9wZG93bihkcm9wZG93biA9PiBkcm9wZG93blxyXG4gICAgICAgIC5hZGRPcHRpb24oJ2NoYXJ0LWRlZmF1bHQtd2lkdGgnLCdEZWZhdWx0JylcclxuICAgICAgICAuYWRkT3B0aW9uKCdjaGFydC13aWRlJywnV2lkZSBsaW5lIHdpZHRoJylcclxuICAgICAgICAuYWRkT3B0aW9uKCdjaGFydC1tYXgnLCdNYXhpbXVtIGxpbmUgd2lkdGgnKVxyXG4gICAgICAgIC5hZGRPcHRpb24oJ2NoYXJ0LTEwMCcsJzEwMCUgcGFuZSB3aWR0aCcpXHJcbiAgICAgICAgLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmNoYXJ0V2lkdGgpXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmNoYXJ0V2lkdGggPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdJZnJhbWUgd2lkdGgnKVxyXG4gICAgICAuc2V0RGVzYygnRGVmYXVsdCB3aWR0aCBmb3IgaWZyYW1lIGJsb2Nrcy4nKVxyXG4gICAgICAuYWRkRHJvcGRvd24oZHJvcGRvd24gPT4gZHJvcGRvd25cclxuICAgICAgICAuYWRkT3B0aW9uKCdpZnJhbWUtZGVmYXVsdC13aWR0aCcsJ0RlZmF1bHQnKVxyXG4gICAgICAgIC5hZGRPcHRpb24oJ2lmcmFtZS13aWRlJywnV2lkZSBsaW5lIHdpZHRoJylcclxuICAgICAgICAuYWRkT3B0aW9uKCdpZnJhbWUtbWF4JywnTWF4aW11bSBsaW5lIHdpZHRoJylcclxuICAgICAgICAuYWRkT3B0aW9uKCdpZnJhbWUtMTAwJywnMTAwJSBwYW5lIHdpZHRoJylcclxuICAgICAgICAuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuaWZyYW1lV2lkdGgpXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmlmcmFtZVdpZHRoID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnSW1hZ2Ugd2lkdGgnKVxyXG4gICAgICAuc2V0RGVzYygnRGVmYXVsdCB3aWR0aCBmb3IgaW1hZ2UgYmxvY2tzLicpXHJcbiAgICAgIC5hZGREcm9wZG93bihkcm9wZG93biA9PiBkcm9wZG93blxyXG4gICAgICAgIC5hZGRPcHRpb24oJ2ltZy1kZWZhdWx0LXdpZHRoJywnRGVmYXVsdCcpXHJcbiAgICAgICAgLmFkZE9wdGlvbignaW1nLXdpZGUnLCdXaWRlIGxpbmUgd2lkdGgnKVxyXG4gICAgICAgIC5hZGRPcHRpb24oJ2ltZy1tYXgnLCdNYXhpbXVtIGxpbmUgd2lkdGgnKVxyXG4gICAgICAgIC5hZGRPcHRpb24oJ2ltZy0xMDAnLCcxMDAlIHBhbmUgd2lkdGgnKVxyXG4gICAgICAgIC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5pbWdXaWR0aClcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuaW1nV2lkdGggPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdNYXAgd2lkdGgnKVxyXG4gICAgICAuc2V0RGVzYygnRGVmYXVsdCB3aWR0aCBmb3IgbWFwIGJsb2Nrcy4nKVxyXG4gICAgICAuYWRkRHJvcGRvd24oZHJvcGRvd24gPT4gZHJvcGRvd25cclxuICAgICAgICAuYWRkT3B0aW9uKCdtYXAtZGVmYXVsdC13aWR0aCcsJ0RlZmF1bHQnKVxyXG4gICAgICAgIC5hZGRPcHRpb24oJ21hcC13aWRlJywnV2lkZSBsaW5lIHdpZHRoJylcclxuICAgICAgICAuYWRkT3B0aW9uKCdtYXAtbWF4JywnTWF4aW11bSBsaW5lIHdpZHRoJylcclxuICAgICAgICAuYWRkT3B0aW9uKCdtYXAtMTAwJywnMTAwJSBwYW5lIHdpZHRoJylcclxuICAgICAgICAuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MubWFwV2lkdGgpXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLm1hcFdpZHRoID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnVGFibGUgd2lkdGgnKVxyXG4gICAgICAuc2V0RGVzYygnRGVmYXVsdCB3aWR0aCBmb3IgdGFibGUgYW5kIERhdGF2aWV3IGJsb2Nrcy4nKVxyXG4gICAgICAuYWRkRHJvcGRvd24oZHJvcGRvd24gPT4gZHJvcGRvd25cclxuICAgICAgICAuYWRkT3B0aW9uKCd0YWJsZS1kZWZhdWx0LXdpZHRoJywnRGVmYXVsdCcpXHJcbiAgICAgICAgLmFkZE9wdGlvbigndGFibGUtd2lkZScsJ1dpZGUgbGluZSB3aWR0aCcpXHJcbiAgICAgICAgLmFkZE9wdGlvbigndGFibGUtbWF4JywnTWF4aW11bSBsaW5lIHdpZHRoJylcclxuICAgICAgICAuYWRkT3B0aW9uKCd0YWJsZS0xMDAnLCcxMDAlIHBhbmUgd2lkdGgnKVxyXG4gICAgICAgIC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy50YWJsZVdpZHRoKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy50YWJsZVdpZHRoID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG5cclxuICAgIGNvbnRhaW5lckVsLmNyZWF0ZUVsKCdicicpO1xyXG4gICAgY29udGFpbmVyRWwuY3JlYXRlRWwoJ2gzJyk7XHJcbiAgICBjb250YWluZXJFbC5jcmVhdGVFbCgnaDMnLCB7dGV4dDogJ1R5cG9ncmFwaHknfSk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdUZXh0IGZvbnQgc2l6ZScpXHJcbiAgICAgIC5zZXREZXNjKCdVc2VkIGZvciB0aGUgbWFpbiB0ZXh0IChkZWZhdWx0IDE2KS4nKVxyXG4gICAgICAuYWRkVGV4dCh0ZXh0ID0+IHRleHQuc2V0UGxhY2Vob2xkZXIoJzE2JylcclxuICAgICAgICAuc2V0VmFsdWUoKHRoaXMucGx1Z2luLnNldHRpbmdzLnRleHROb3JtYWwgfHwgJycpICsgJycpXHJcbiAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MudGV4dE5vcm1hbCA9IHBhcnNlRmxvYXQodmFsdWUpO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2V0Rm9udFNpemUoKTtcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdTbWFsbCBmb250IHNpemUnKVxyXG4gICAgICAuc2V0RGVzYygnVXNlZCBmb3IgdGV4dCBpbiB0aGUgc2lkZWJhcnMgYW5kIHRhYnMgKGRlZmF1bHQgMTMpLicpXHJcbiAgICAgIC5hZGRUZXh0KHRleHQgPT4gdGV4dC5zZXRQbGFjZWhvbGRlcignMTMnKVxyXG4gICAgICAgIC5zZXRWYWx1ZSgodGhpcy5wbHVnaW4uc2V0dGluZ3MudGV4dFNtYWxsIHx8ICcnKSArICcnKVxyXG4gICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLnRleHRTbWFsbCA9IHBhcnNlRmxvYXQodmFsdWUpO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgIH0pKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ0xpbmUgaGVpZ2h0JylcclxuICAgICAgLnNldERlc2MoJ0xpbmUgaGVpZ2h0IG9mIHRleHQgKGRlZmF1bHQgMS41KS4nKVxyXG4gICAgICAuYWRkVGV4dCh0ZXh0ID0+IHRleHQuc2V0UGxhY2Vob2xkZXIoJzEuNScpXHJcbiAgICAgICAgLnNldFZhbHVlKCh0aGlzLnBsdWdpbi5zZXR0aW5ncy5saW5lSGVpZ2h0IHx8ICcnKSArICcnKVxyXG4gICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmxpbmVIZWlnaHQgPSBwYXJzZUZsb2F0KHZhbHVlKTtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdOb3JtYWwgbGluZSB3aWR0aCcpXHJcbiAgICAgIC5zZXREZXNjKCdOdW1iZXIgb2YgY2hhcmFjdGVycyBwZXIgbGluZSAoZGVmYXVsdCA0MCkuJylcclxuICAgICAgLmFkZFRleHQodGV4dCA9PiB0ZXh0LnNldFBsYWNlaG9sZGVyKCc0MCcpXHJcbiAgICAgICAgLnNldFZhbHVlKCh0aGlzLnBsdWdpbi5zZXR0aW5ncy5saW5lV2lkdGggfHwgJycpICsgJycpXHJcbiAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MubGluZVdpZHRoID0gcGFyc2VJbnQodmFsdWUudHJpbSgpKTtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdXaWRlIGxpbmUgd2lkdGgnKVxyXG4gICAgICAuc2V0RGVzYygnTnVtYmVyIG9mIGNoYXJhY3RlcnMgcGVyIGxpbmUgZm9yIHdpZGUgZWxlbWVudHMgKGRlZmF1bHQgNTApLicpXHJcbiAgICAgIC5hZGRUZXh0KHRleHQgPT4gdGV4dC5zZXRQbGFjZWhvbGRlcignNTAnKVxyXG4gICAgICAgIC5zZXRWYWx1ZSgodGhpcy5wbHVnaW4uc2V0dGluZ3MubGluZVdpZHRoV2lkZSB8fCAnJykgKyAnJylcclxuICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5saW5lV2lkdGhXaWRlID0gcGFyc2VJbnQodmFsdWUudHJpbSgpKTtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdNYXhpbXVtIGxpbmUgd2lkdGggJScpXHJcbiAgICAgIC5zZXREZXNjKCdQZXJjZW50YWdlIG9mIHNwYWNlIGluc2lkZSBhIHBhbmUgdGhhdCBhIGxpbmUgY2FuIGZpbGwgKGRlZmF1bHQgODgpLicpXHJcbiAgICAgIC5hZGRUZXh0KHRleHQgPT4gdGV4dC5zZXRQbGFjZWhvbGRlcignODgnKVxyXG4gICAgICAgIC5zZXRWYWx1ZSgodGhpcy5wbHVnaW4uc2V0dGluZ3MubWF4V2lkdGggfHwgJycpICsgJycpXHJcbiAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MubWF4V2lkdGggPSBwYXJzZUludCh2YWx1ZS50cmltKCkpO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgIH0pKTtcclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnRWRpdG9yIGZvbnQnKVxyXG4gICAgICAuc2V0RGVzYygnT3ZlcnJpZGVzIHRoZSB0ZXh0IGZvbnQgZGVmaW5lZCBpbiBPYnNpZGlhbiBBcHBlYXJhbmNlIHNldHRpbmdzIHdoZW4gaW4gZWRpdCBtb2RlLicpXHJcbiAgICAgIC5hZGRUZXh0KHRleHQgPT4gdGV4dC5zZXRQbGFjZWhvbGRlcignJylcclxuICAgICAgICAuc2V0VmFsdWUoKHRoaXMucGx1Z2luLnNldHRpbmdzLmVkaXRvckZvbnQgfHwgJycpICsgJycpXHJcbiAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuZWRpdG9yRm9udCA9IHZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgIH0pKTtcclxuXHJcbiAgfVxyXG59XHJcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUEsc0JBQWlGO0FBRWpGLGlDQUEwQyx1QkFBTztBQUFBLEVBSXpDLFNBQVM7QUFBQTtBQUViLFlBQU0sS0FBSztBQUVYLFdBQUssY0FBYyxJQUFJLGtCQUFrQixLQUFLLEtBQUs7QUFFbkQsV0FBSztBQUlMLFVBQUksUUFBUSxPQUFPLFdBQVc7QUFFOUIsVUFBSSxvQkFBb0IsTUFBTTtB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 diff --git a/.obsidian/plugins/obsidian-minimal-settings/manifest.json b/.obsidian/plugins/obsidian-minimal-settings/manifest.json index 2905836f..0fe1cd99 100644 --- a/.obsidian/plugins/obsidian-minimal-settings/manifest.json +++ b/.obsidian/plugins/obsidian-minimal-settings/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-minimal-settings", "name": "Minimal Theme Settings", - "version": "6.3.2", + "version": "7.2.2", "minAppVersion": "1.1.9", "description": "Change the colors, fonts and features of Minimal Theme.", "author": "@kepano", diff --git a/.obsidian/plugins/obsidian-weread-plugin/data.json b/.obsidian/plugins/obsidian-weread-plugin/data.json index 53d5a771..659d0e79 100644 --- a/.obsidian/plugins/obsidian-weread-plugin/data.json +++ b/.obsidian/plugins/obsidian-weread-plugin/data.json @@ -1,16 +1,56 @@ { "cookies": [ + { + "name": "wr_fp", + "value": "3610854600" + }, + { + "name": "wr_gid", + "value": "238733667" + }, + { + "name": "wr_vid", + "value": "389106381" + }, + { + "name": "wr_pf", + "value": "0" + }, + { + "name": "wr_rt", + "value": "web@IewbrecPwPFRuK_KzTh_AL" + }, + { + "name": "wr_localvid", + "value": "5e932210817314acd5e938d" + }, + { + "name": "wr_name", + "value": "仲平" + }, + { + "name": "wr_avatar", + "value": "https://thirdwx.qlogo.cn/mmopen/vi_32/Ws8ibkHcBXXw09Fpz2FpJJgHWdN6Em7FNxjPTU1C1icGR8CYC67TUicEWzaXDq1YDcpGDrMkQeyNYHWk8S94icJcyQ/132" + }, + { + "name": "wr_gender", + "value": "1" + }, + { + "name": "wr_skey", + "value": "fDWPt3Vp" + } ], "noteLocation": "book", "dailyNotesLocation": "/", "insertAfter": "", "insertBefore": "", "dailyNotesFormat": "YYYY-MM-DD", - "lastCookieTime": 1689517284425, + "lastCookieTime": 1691330638006, "isCookieValid": true, "user": "仲平", "userVid": "389106381", - "template": "---\n---\n\n## 简介\n\n- **书名**:《{{metaData.title}}》\n- **作者**: {{metaData.author}}\n- **分类**: {{metaData.category}}\n- **ISBN**:{{metaData.isbn}}\n- **出版社**:{{metaData.publisher}}\n\n## 概述\n\n{{metaData.intro}}\n\n## 划线 \n{% for chapter in chapterHighlights %}{% for highlight in chapter.highlights %}{% if not highlight.reviewContent %} \n\n> {{ highlight.markText | trim }}{% endif %}{% endfor %}{% endfor %}\n\n## 笔记\n{% for chapter in bookReview.chapterReviews %}{% if chapter.reviews or chapter.chapterReview %}{% if chapter.chapterReviews %}{% for chapterReview in chapter.chapterReviews %}\n\n> 💭{{ chapterReview.content }}{% endfor %}{% endif %}{% if chapter.reviews %}{% for review in chapter.reviews %}\n\n> {{ review.abstract | trim }}\n> 💭 {{review.content}}{% endfor %}{% endif %}{% endif %}{% endfor %}\n\n## 书评\n{% if bookReview.bookReviews %}{% for bookReview in bookReview.bookReviews %}\n> ✨{{ bookReview.mdContent }}{% endfor %}{% endif %}\n\n## 点评\n", + "template": "---\n---\n\n## 简介\n\n- **书名**:《{{metaData.title}}》\n- **作者**: {{metaData.author}}\n- **分类**: {{metaData.category}}\n- **ISBN**:{{metaData.isbn}}\n- **出版社**:{{metaData.publisher}}\n\n## 概述\n\n{{metaData.intro}}\n\n## 划线 \n{% for chapter in chapterHighlights %}{% for highlight in chapter.highlights %}{% if not highlight.reviewContent %} \n\n> {{ highlight.markText | trim }}{% endif %}{% endfor %}{% endfor %}\n\n## 笔记\n{% for chapter in bookReview.chapterReviews %}{% if chapter.reviews or chapter.chapterReview %}{% if chapter.chapterReviews %}{% for chapterReview in chapter.chapterReviews %}\n\n💭{{ chapterReview.content }}{% endfor %}{% endif %}{% if chapter.reviews %}{% for review in chapter.reviews %}\n\n> {{ review.abstract | trim }}\n\n💭 {{review.content}}{% endfor %}{% endif %}{% endif %}{% endfor %}\n\n## 书评\n{% if bookReview.bookReviews %}{% for bookReview in bookReview.bookReviews %}\n> ✨{{ bookReview.mdContent }}{% endfor %}{% endif %}\n\n## 点评\n", "noteCountLimit": -1, "subFolderType": "category", "fileNameType": "BOOK_NAME", diff --git a/.obsidian/plugins/obsidian-weread-plugin/main.js b/.obsidian/plugins/obsidian-weread-plugin/main.js index ef181f00..dbfbd37f 100644 --- a/.obsidian/plugins/obsidian-weread-plugin/main.js +++ b/.obsidian/plugins/obsidian-weread-plugin/main.js @@ -1,18245 +1,2 @@ /*! For license information please see main.js.LICENSE.txt */ -(() => { - var e = { - 1073: (e) => { - e.exports = { - trueFunc: function () { - return !0; - }, - falseFunc: function () { - return !1; - }, - }; - }, - 996: (e, t, r) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.attributeRules = void 0); - var n = r(1073), - i = /[-[\]{}()*+?.,\\^$|#\s]/g; - function o(e) { - return e.replace(i, "\\$&"); - } - var a = new Set([ - "accept", - "accept-charset", - "align", - "alink", - "axis", - "bgcolor", - "charset", - "checked", - "clear", - "codetype", - "color", - "compact", - "declare", - "defer", - "dir", - "direction", - "disabled", - "enctype", - "face", - "frame", - "hreflang", - "http-equiv", - "lang", - "language", - "link", - "media", - "method", - "multiple", - "nohref", - "noresize", - "noshade", - "nowrap", - "readonly", - "rel", - "rev", - "rules", - "scope", - "scrolling", - "selected", - "shape", - "target", - "text", - "type", - "valign", - "valuetype", - "vlink", - ]); - function s(e, t) { - return "boolean" == typeof e.ignoreCase - ? e.ignoreCase - : "quirks" === e.ignoreCase - ? !!t.quirksMode - : !t.xmlMode && a.has(e.name); - } - t.attributeRules = { - equals: function (e, t, r) { - var n = r.adapter, - i = t.name, - o = t.value; - return s(t, r) - ? ((o = o.toLowerCase()), - function (t) { - var r = n.getAttributeValue(t, i); - return ( - null != r && - r.length === o.length && - r.toLowerCase() === o && - e(t) - ); - }) - : function (t) { - return n.getAttributeValue(t, i) === o && e(t); - }; - }, - hyphen: function (e, t, r) { - var n = r.adapter, - i = t.name, - o = t.value, - a = o.length; - return s(t, r) - ? ((o = o.toLowerCase()), - function (t) { - var r = n.getAttributeValue(t, i); - return ( - null != r && - (r.length === a || "-" === r.charAt(a)) && - r.substr(0, a).toLowerCase() === o && - e(t) - ); - }) - : function (t) { - var r = n.getAttributeValue(t, i); - return ( - null != r && - (r.length === a || "-" === r.charAt(a)) && - r.substr(0, a) === o && - e(t) - ); - }; - }, - element: function (e, t, r) { - var i = r.adapter, - a = t.name, - l = t.value; - if (/\s/.test(l)) return n.falseFunc; - var c = new RegExp( - "(?:^|\\s)".concat(o(l), "(?:$|\\s)"), - s(t, r) ? "i" : "" - ); - return function (t) { - var r = i.getAttributeValue(t, a); - return null != r && r.length >= l.length && c.test(r) && e(t); - }; - }, - exists: function (e, t, r) { - var n = t.name, - i = r.adapter; - return function (t) { - return i.hasAttrib(t, n) && e(t); - }; - }, - start: function (e, t, r) { - var i = r.adapter, - o = t.name, - a = t.value, - l = a.length; - return 0 === l - ? n.falseFunc - : s(t, r) - ? ((a = a.toLowerCase()), - function (t) { - var r = i.getAttributeValue(t, o); - return ( - null != r && - r.length >= l && - r.substr(0, l).toLowerCase() === a && - e(t) - ); - }) - : function (t) { - var r; - return ( - !!(null === (r = i.getAttributeValue(t, o)) || void 0 === r - ? void 0 - : r.startsWith(a)) && e(t) - ); - }; - }, - end: function (e, t, r) { - var i = r.adapter, - o = t.name, - a = t.value, - l = -a.length; - return 0 === l - ? n.falseFunc - : s(t, r) - ? ((a = a.toLowerCase()), - function (t) { - var r; - return ( - (null === (r = i.getAttributeValue(t, o)) || void 0 === r - ? void 0 - : r.substr(l).toLowerCase()) === a && e(t) - ); - }) - : function (t) { - var r; - return ( - !!(null === (r = i.getAttributeValue(t, o)) || void 0 === r - ? void 0 - : r.endsWith(a)) && e(t) - ); - }; - }, - any: function (e, t, r) { - var i = r.adapter, - a = t.name, - l = t.value; - if ("" === l) return n.falseFunc; - if (s(t, r)) { - var c = new RegExp(o(l), "i"); - return function (t) { - var r = i.getAttributeValue(t, a); - return null != r && r.length >= l.length && c.test(r) && e(t); - }; - } - return function (t) { - var r; - return ( - !!(null === (r = i.getAttributeValue(t, a)) || void 0 === r - ? void 0 - : r.includes(l)) && e(t) - ); - }; - }, - not: function (e, t, r) { - var n = r.adapter, - i = t.name, - o = t.value; - return "" === o - ? function (t) { - return !!n.getAttributeValue(t, i) && e(t); - } - : s(t, r) - ? ((o = o.toLowerCase()), - function (t) { - var r = n.getAttributeValue(t, i); - return ( - (null == r || - r.length !== o.length || - r.toLowerCase() !== o) && - e(t) - ); - }) - : function (t) { - return n.getAttributeValue(t, i) !== o && e(t); - }; - }, - }; - }, - 8866: function (e, t, r) { - "use strict"; - var n = - (this && this.__importDefault) || - function (e) { - return e && e.__esModule ? e : { default: e }; - }; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.compileToken = t.compileUnsafe = t.compile = void 0); - var i = r(7763), - o = r(1073), - a = n(r(7353)), - s = r(7177), - l = r(3621), - c = r(1768); - function u(e, t, r) { - return m("string" == typeof e ? (0, i.parse)(e) : e, t, r); - } - function p(e) { - return ( - "pseudo" === e.type && - ("scope" === e.name || - (Array.isArray(e.data) && - e.data.some(function (e) { - return e.some(p); - }))) - ); - } - (t.compile = function (e, t, r) { - var n = u(e, t, r); - return (0, c.ensureIsTag)(n, t.adapter); - }), - (t.compileUnsafe = u); - var d = { type: i.SelectorType.Descendant }, - f = { type: "_flexibleDescendant" }, - h = { type: i.SelectorType.Pseudo, name: "scope", data: null }; - function m(e, t, r) { - var n; - (e = e.filter(function (e) { - return e.length > 0; - })).forEach(a.default), - (r = null !== (n = t.context) && void 0 !== n ? n : r); - var i = Array.isArray(r), - u = r && (Array.isArray(r) ? r : [r]); - !(function (e, t, r) { - for ( - var n = t.adapter, - i = !!(null == r - ? void 0 - : r.every(function (e) { - var t = n.isTag(e) && n.getParent(e); - return e === c.PLACEHOLDER_ELEMENT || (t && n.isTag(t)); - })), - o = 0, - a = e; - o < a.length; - o++ - ) { - var l = a[o]; - if ( - l.length > 0 && - (0, s.isTraversal)(l[0]) && - "descendant" !== l[0].type - ); - else { - if (!i || l.some(p)) continue; - l.unshift(d); - } - l.unshift(h); - } - })(e, t, u); - var v = !1, - b = e - .map(function (e) { - if (e.length >= 2) { - var r = e[0], - n = e[1]; - "pseudo" !== r.type || - "scope" !== r.name || - (i && "descendant" === n.type - ? (e[1] = f) - : ("adjacent" !== n.type && "sibling" !== n.type) || - (v = !0)); - } - return (function (e, t, r) { - var n; - return e.reduce( - function (e, n) { - return e === o.falseFunc - ? o.falseFunc - : (0, l.compileGeneralSelector)(e, n, t, r, m); - }, - null !== (n = t.rootFunc) && void 0 !== n ? n : o.trueFunc - ); - })(e, t, u); - }) - .reduce(g, o.falseFunc); - return (b.shouldTestNextSiblings = v), b; - } - function g(e, t) { - return t === o.falseFunc || e === o.trueFunc - ? e - : e === o.falseFunc || t === o.trueFunc - ? t - : function (r) { - return e(r) || t(r); - }; - } - t.compileToken = m; - }, - 3621: (e, t, r) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.compileGeneralSelector = void 0); - var n = r(996), - i = r(8677), - o = r(7763); - t.compileGeneralSelector = function (e, t, r, a, s) { - var l = r.adapter, - c = r.equals; - switch (t.type) { - case o.SelectorType.PseudoElement: - throw new Error( - "Pseudo-elements are not supported by css-select" - ); - case o.SelectorType.ColumnCombinator: - throw new Error( - "Column combinators are not yet supported by css-select" - ); - case o.SelectorType.Attribute: - if (null != t.namespace) - throw new Error( - "Namespaced attributes are not yet supported by css-select" - ); - return ( - (r.xmlMode && !r.lowerCaseAttributeNames) || - (t.name = t.name.toLowerCase()), - n.attributeRules[t.action](e, t, r) - ); - case o.SelectorType.Pseudo: - return (0, i.compilePseudoSelector)(e, t, r, a, s); - case o.SelectorType.Tag: - if (null != t.namespace) - throw new Error( - "Namespaced tag names are not yet supported by css-select" - ); - var u = t.name; - return ( - (r.xmlMode && !r.lowerCaseTags) || (u = u.toLowerCase()), - function (t) { - return l.getName(t) === u && e(t); - } - ); - case o.SelectorType.Descendant: - if (!1 === r.cacheResults || "undefined" == typeof WeakSet) - return function (t) { - for (var r = t; (r = l.getParent(r)); ) - if (l.isTag(r) && e(r)) return !0; - return !1; - }; - var p = new WeakSet(); - return function (t) { - for (var r = t; (r = l.getParent(r)); ) - if (!p.has(r)) { - if (l.isTag(r) && e(r)) return !0; - p.add(r); - } - return !1; - }; - case "_flexibleDescendant": - return function (t) { - var r = t; - do { - if (l.isTag(r) && e(r)) return !0; - } while ((r = l.getParent(r))); - return !1; - }; - case o.SelectorType.Parent: - return function (t) { - return l.getChildren(t).some(function (t) { - return l.isTag(t) && e(t); - }); - }; - case o.SelectorType.Child: - return function (t) { - var r = l.getParent(t); - return null != r && l.isTag(r) && e(r); - }; - case o.SelectorType.Sibling: - return function (t) { - for (var r = l.getSiblings(t), n = 0; n < r.length; n++) { - var i = r[n]; - if (c(t, i)) break; - if (l.isTag(i) && e(i)) return !0; - } - return !1; - }; - case o.SelectorType.Adjacent: - return l.prevElementSibling - ? function (t) { - var r = l.prevElementSibling(t); - return null != r && e(r); - } - : function (t) { - for ( - var r, n = l.getSiblings(t), i = 0; - i < n.length; - i++ - ) { - var o = n[i]; - if (c(t, o)) break; - l.isTag(o) && (r = o); - } - return !!r && e(r); - }; - case o.SelectorType.Universal: - if (null != t.namespace && "*" !== t.namespace) - throw new Error( - "Namespaced universal selectors are not yet supported by css-select" - ); - return e; - } - }; - }, - 5366: function (e, t, r) { - "use strict"; - var n = - (this && this.__createBinding) || - (Object.create - ? function (e, t, r, n) { - void 0 === n && (n = r); - var i = Object.getOwnPropertyDescriptor(t, r); - (i && - !("get" in i - ? !t.__esModule - : i.writable || i.configurable)) || - (i = { - enumerable: !0, - get: function () { - return t[r]; - }, - }), - Object.defineProperty(e, n, i); - } - : function (e, t, r, n) { - void 0 === n && (n = r), (e[n] = t[r]); - }), - i = - (this && this.__setModuleDefault) || - (Object.create - ? function (e, t) { - Object.defineProperty(e, "default", { - enumerable: !0, - value: t, - }); - } - : function (e, t) { - e.default = t; - }), - o = - (this && this.__importStar) || - function (e) { - if (e && e.__esModule) return e; - var t = {}; - if (null != e) - for (var r in e) - "default" !== r && - Object.prototype.hasOwnProperty.call(e, r) && - n(t, e, r); - return i(t, e), t; - }; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.aliases = - t.pseudos = - t.filters = - t.is = - t.selectOne = - t.selectAll = - t.prepareContext = - t._compileToken = - t._compileUnsafe = - t.compile = - void 0); - var a = o(r(9432)), - s = r(1073), - l = r(8866), - c = r(1768), - u = function (e, t) { - return e === t; - }, - p = { adapter: a, equals: u }; - function d(e) { - var t, - r, - n, - i, - o = null != e ? e : p; - return ( - (null !== (t = o.adapter) && void 0 !== t) || (o.adapter = a), - (null !== (r = o.equals) && void 0 !== r) || - (o.equals = - null !== - (i = - null === (n = o.adapter) || void 0 === n - ? void 0 - : n.equals) && void 0 !== i - ? i - : u), - o - ); - } - function f(e) { - return function (t, r, n) { - var i = d(r); - return e(t, i, n); - }; - } - function h(e) { - return function (t, r, n) { - var i = d(n); - "function" != typeof t && (t = (0, l.compileUnsafe)(t, i, r)); - var o = m(r, i.adapter, t.shouldTestNextSiblings); - return e(t, o, i); - }; - } - function m(e, t, r) { - return ( - void 0 === r && (r = !1), - r && - (e = (function (e, t) { - for ( - var r = Array.isArray(e) ? e.slice(0) : [e], - n = r.length, - i = 0; - i < n; - i++ - ) { - var o = (0, c.getNextSiblings)(r[i], t); - r.push.apply(r, o); - } - return r; - })(e, t)), - Array.isArray(e) ? t.removeSubsets(e) : t.getChildren(e) - ); - } - (t.compile = f(l.compile)), - (t._compileUnsafe = f(l.compileUnsafe)), - (t._compileToken = f(l.compileToken)), - (t.prepareContext = m), - (t.selectAll = h(function (e, t, r) { - return e !== s.falseFunc && t && 0 !== t.length - ? r.adapter.findAll(e, t) - : []; - })), - (t.selectOne = h(function (e, t, r) { - return e !== s.falseFunc && t && 0 !== t.length - ? r.adapter.findOne(e, t) - : null; - })), - (t.is = function (e, t, r) { - var n = d(r); - return ("function" == typeof t ? t : (0, l.compile)(t, n))(e); - }), - (t.default = t.selectAll); - var g = r(8677); - Object.defineProperty(t, "filters", { - enumerable: !0, - get: function () { - return g.filters; - }, - }), - Object.defineProperty(t, "pseudos", { - enumerable: !0, - get: function () { - return g.pseudos; - }, - }), - Object.defineProperty(t, "aliases", { - enumerable: !0, - get: function () { - return g.aliases; - }, - }); - }, - 7177: (e, t) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.isTraversal = t.procedure = void 0), - (t.procedure = { - universal: 50, - tag: 30, - attribute: 1, - pseudo: 0, - "pseudo-element": 0, - "column-combinator": -1, - descendant: -1, - child: -1, - parent: -1, - sibling: -1, - adjacent: -1, - _flexibleDescendant: -1, - }), - (t.isTraversal = function (e) { - return t.procedure[e.type] < 0; - }); - }, - 2968: (e, t) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.aliases = void 0), - (t.aliases = { - "any-link": ":is(a, area, link)[href]", - link: ":any-link:not(:visited)", - disabled: - ":is(\n :is(button, input, select, textarea, optgroup, option)[disabled],\n optgroup[disabled] > option,\n fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)\n )", - enabled: ":not(:disabled)", - checked: - ":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)", - required: ":is(input, select, textarea)[required]", - optional: ":is(input, select, textarea):not([required])", - selected: - "option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)", - checkbox: "[type=checkbox]", - file: "[type=file]", - password: "[type=password]", - radio: "[type=radio]", - reset: "[type=reset]", - image: "[type=image]", - submit: "[type=submit]", - parent: ":not(:empty)", - header: ":is(h1, h2, h3, h4, h5, h6)", - button: ":is(button, input[type=button])", - input: ":is(input, textarea, select, button)", - text: "input:is(:not([type!='']), [type=text])", - }); - }, - 7689: function (e, t, r) { - "use strict"; - var n = - (this && this.__importDefault) || - function (e) { - return e && e.__esModule ? e : { default: e }; - }; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.filters = void 0); - var i = n(r(7540)), - o = r(1073); - function a(e, t) { - return function (r) { - var n = t.getParent(r); - return null != n && t.isTag(n) && e(r); - }; - } - function s(e) { - return function (t, r, n) { - var i = n.adapter[e]; - return "function" != typeof i - ? o.falseFunc - : function (e) { - return i(e) && t(e); - }; - }; - } - t.filters = { - contains: function (e, t, r) { - var n = r.adapter; - return function (r) { - return e(r) && n.getText(r).includes(t); - }; - }, - icontains: function (e, t, r) { - var n = r.adapter, - i = t.toLowerCase(); - return function (t) { - return e(t) && n.getText(t).toLowerCase().includes(i); - }; - }, - "nth-child": function (e, t, r) { - var n = r.adapter, - s = r.equals, - l = (0, i.default)(t); - return l === o.falseFunc - ? o.falseFunc - : l === o.trueFunc - ? a(e, n) - : function (t) { - for ( - var r = n.getSiblings(t), i = 0, o = 0; - o < r.length && !s(t, r[o]); - o++ - ) - n.isTag(r[o]) && i++; - return l(i) && e(t); - }; - }, - "nth-last-child": function (e, t, r) { - var n = r.adapter, - s = r.equals, - l = (0, i.default)(t); - return l === o.falseFunc - ? o.falseFunc - : l === o.trueFunc - ? a(e, n) - : function (t) { - for ( - var r = n.getSiblings(t), i = 0, o = r.length - 1; - o >= 0 && !s(t, r[o]); - o-- - ) - n.isTag(r[o]) && i++; - return l(i) && e(t); - }; - }, - "nth-of-type": function (e, t, r) { - var n = r.adapter, - s = r.equals, - l = (0, i.default)(t); - return l === o.falseFunc - ? o.falseFunc - : l === o.trueFunc - ? a(e, n) - : function (t) { - for ( - var r = n.getSiblings(t), i = 0, o = 0; - o < r.length; - o++ - ) { - var a = r[o]; - if (s(t, a)) break; - n.isTag(a) && n.getName(a) === n.getName(t) && i++; - } - return l(i) && e(t); - }; - }, - "nth-last-of-type": function (e, t, r) { - var n = r.adapter, - s = r.equals, - l = (0, i.default)(t); - return l === o.falseFunc - ? o.falseFunc - : l === o.trueFunc - ? a(e, n) - : function (t) { - for ( - var r = n.getSiblings(t), i = 0, o = r.length - 1; - o >= 0; - o-- - ) { - var a = r[o]; - if (s(t, a)) break; - n.isTag(a) && n.getName(a) === n.getName(t) && i++; - } - return l(i) && e(t); - }; - }, - root: function (e, t, r) { - var n = r.adapter; - return function (t) { - var r = n.getParent(t); - return (null == r || !n.isTag(r)) && e(t); - }; - }, - scope: function (e, r, n, i) { - var o = n.equals; - return i && 0 !== i.length - ? 1 === i.length - ? function (t) { - return o(i[0], t) && e(t); - } - : function (t) { - return i.includes(t) && e(t); - } - : t.filters.root(e, r, n); - }, - hover: s("isHovered"), - visited: s("isVisited"), - active: s("isActive"), - }; - }, - 8677: (e, t, r) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.compilePseudoSelector = - t.aliases = - t.pseudos = - t.filters = - void 0); - var n = r(1073), - i = r(7763), - o = r(7689); - Object.defineProperty(t, "filters", { - enumerable: !0, - get: function () { - return o.filters; - }, - }); - var a = r(7221); - Object.defineProperty(t, "pseudos", { - enumerable: !0, - get: function () { - return a.pseudos; - }, - }); - var s = r(2968); - Object.defineProperty(t, "aliases", { - enumerable: !0, - get: function () { - return s.aliases; - }, - }); - var l = r(1768); - t.compilePseudoSelector = function (e, t, r, c, u) { - var p = t.name, - d = t.data; - if (Array.isArray(d)) return l.subselects[p](e, d, r, c, u); - if (p in s.aliases) { - if (null != d) - throw new Error( - "Pseudo ".concat(p, " doesn't have any arguments") - ); - var f = (0, i.parse)(s.aliases[p]); - return l.subselects.is(e, f, r, c, u); - } - if (p in o.filters) return o.filters[p](e, d, r, c); - if (p in a.pseudos) { - var h = a.pseudos[p]; - return ( - (0, a.verifyPseudoArgs)(h, p, d), - h === n.falseFunc - ? n.falseFunc - : e === n.trueFunc - ? function (e) { - return h(e, r, d); - } - : function (t) { - return h(t, r, d) && e(t); - } - ); - } - throw new Error("unmatched pseudo-class :".concat(p)); - }; - }, - 7221: (e, t) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.verifyPseudoArgs = t.pseudos = void 0), - (t.pseudos = { - empty: function (e, t) { - var r = t.adapter; - return !r.getChildren(e).some(function (e) { - return r.isTag(e) || "" !== r.getText(e); - }); - }, - "first-child": function (e, t) { - var r = t.adapter, - n = t.equals, - i = r.getSiblings(e).find(function (e) { - return r.isTag(e); - }); - return null != i && n(e, i); - }, - "last-child": function (e, t) { - for ( - var r = t.adapter, - n = t.equals, - i = r.getSiblings(e), - o = i.length - 1; - o >= 0; - o-- - ) { - if (n(e, i[o])) return !0; - if (r.isTag(i[o])) break; - } - return !1; - }, - "first-of-type": function (e, t) { - for ( - var r = t.adapter, - n = t.equals, - i = r.getSiblings(e), - o = r.getName(e), - a = 0; - a < i.length; - a++ - ) { - var s = i[a]; - if (n(e, s)) return !0; - if (r.isTag(s) && r.getName(s) === o) break; - } - return !1; - }, - "last-of-type": function (e, t) { - for ( - var r = t.adapter, - n = t.equals, - i = r.getSiblings(e), - o = r.getName(e), - a = i.length - 1; - a >= 0; - a-- - ) { - var s = i[a]; - if (n(e, s)) return !0; - if (r.isTag(s) && r.getName(s) === o) break; - } - return !1; - }, - "only-of-type": function (e, t) { - var r = t.adapter, - n = t.equals, - i = r.getName(e); - return r.getSiblings(e).every(function (t) { - return n(e, t) || !r.isTag(t) || r.getName(t) !== i; - }); - }, - "only-child": function (e, t) { - var r = t.adapter, - n = t.equals; - return r.getSiblings(e).every(function (t) { - return n(e, t) || !r.isTag(t); - }); - }, - }), - (t.verifyPseudoArgs = function (e, t, r) { - if (null === r) { - if (e.length > 2) - throw new Error( - "pseudo-selector :".concat(t, " requires an argument") - ); - } else if (2 === e.length) - throw new Error( - "pseudo-selector :".concat(t, " doesn't have any arguments") - ); - }); - }, - 1768: function (e, t, r) { - "use strict"; - var n = - (this && this.__spreadArray) || - function (e, t, r) { - if (r || 2 === arguments.length) - for (var n, i = 0, o = t.length; i < o; i++) - (!n && i in t) || - (n || (n = Array.prototype.slice.call(t, 0, i)), - (n[i] = t[i])); - return e.concat(n || Array.prototype.slice.call(t)); - }; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.subselects = - t.getNextSiblings = - t.ensureIsTag = - t.PLACEHOLDER_ELEMENT = - void 0); - var i = r(1073), - o = r(7177); - function a(e, t) { - return e === i.falseFunc - ? i.falseFunc - : function (r) { - return t.isTag(r) && e(r); - }; - } - function s(e, t) { - var r = t.getSiblings(e); - if (r.length <= 1) return []; - var n = r.indexOf(e); - return n < 0 || n === r.length - 1 - ? [] - : r.slice(n + 1).filter(t.isTag); - } - (t.PLACEHOLDER_ELEMENT = {}), - (t.ensureIsTag = a), - (t.getNextSiblings = s); - var l = function (e, t, r, n, i) { - var o = i( - t, - { xmlMode: !!r.xmlMode, adapter: r.adapter, equals: r.equals }, - n - ); - return function (t) { - return o(t) && e(t); - }; - }; - t.subselects = { - is: l, - matches: l, - where: l, - not: function (e, t, r, n, o) { - var a = o( - t, - { xmlMode: !!r.xmlMode, adapter: r.adapter, equals: r.equals }, - n - ); - return a === i.falseFunc - ? e - : a === i.trueFunc - ? i.falseFunc - : function (t) { - return !a(t) && e(t); - }; - }, - has: function (e, r, l, c, u) { - var p = l.adapter, - d = { xmlMode: !!l.xmlMode, adapter: p, equals: l.equals }, - f = r.some(function (e) { - return e.some(o.isTraversal); - }) - ? [t.PLACEHOLDER_ELEMENT] - : void 0, - h = u(r, d, f); - if (h === i.falseFunc) return i.falseFunc; - if (h === i.trueFunc) - return function (t) { - return p.getChildren(t).some(p.isTag) && e(t); - }; - var m = a(h, p), - g = h.shouldTestNextSiblings, - v = void 0 !== g && g; - return f - ? function (t) { - f[0] = t; - var r = p.getChildren(t), - i = v ? n(n([], r, !0), s(t, p), !0) : r; - return e(t) && p.existsOne(m, i); - } - : function (t) { - return e(t) && p.existsOne(m, p.getChildren(t)); - }; - }, - }; - }, - 7353: (e, t, r) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }); - var n = r(7763), - i = r(7177), - o = { - exists: 10, - equals: 8, - not: 7, - start: 6, - end: 6, - any: 5, - hyphen: 4, - element: 4, - }; - function a(e) { - var t = i.procedure[e.type]; - if (e.type === n.SelectorType.Attribute) - (t = o[e.action]) === o.equals && "id" === e.name && (t = 9), - e.ignoreCase && (t >>= 1); - else if (e.type === n.SelectorType.Pseudo) - if (e.data) - if ("has" === e.name || "contains" === e.name) t = 0; - else if (Array.isArray(e.data)) { - t = 0; - for (var r = 0; r < e.data.length; r++) - if (1 === e.data[r].length) { - var s = a(e.data[r][0]); - if (0 === s) { - t = 0; - break; - } - s > t && (t = s); - } - e.data.length > 1 && t > 0 && (t -= 1); - } else t = 1; - else t = 3; - return t; - } - t.default = function (e) { - for (var t = e.map(a), r = 1; r < e.length; r++) { - var n = t[r]; - if (!(n < 0)) - for (var i = r - 1; i >= 0 && n < t[i]; i--) { - var o = e[i + 1]; - (e[i + 1] = e[i]), (e[i] = o), (t[i + 1] = t[i]), (t[i] = n); - } - } - }; - }, - 7763: (e, t, r) => { - "use strict"; - var n; - r.r(t), - r.d(t, { - AttributeAction: () => o, - IgnoreCaseMode: () => i, - SelectorType: () => n, - isTraversal: () => u, - parse: () => g, - stringify: () => T, - }), - (function (e) { - (e.Attribute = "attribute"), - (e.Pseudo = "pseudo"), - (e.PseudoElement = "pseudo-element"), - (e.Tag = "tag"), - (e.Universal = "universal"), - (e.Adjacent = "adjacent"), - (e.Child = "child"), - (e.Descendant = "descendant"), - (e.Parent = "parent"), - (e.Sibling = "sibling"), - (e.ColumnCombinator = "column-combinator"); - })(n || (n = {})); - const i = { - Unknown: null, - QuirksMode: "quirks", - IgnoreCase: !0, - CaseSensitive: !1, - }; - var o; - !(function (e) { - (e.Any = "any"), - (e.Element = "element"), - (e.End = "end"), - (e.Equals = "equals"), - (e.Exists = "exists"), - (e.Hyphen = "hyphen"), - (e.Not = "not"), - (e.Start = "start"); - })(o || (o = {})); - const a = /^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/, - s = /\\([\da-f]{1,6}\s?|(\s)|.)/gi, - l = new Map([ - [126, o.Element], - [94, o.Start], - [36, o.End], - [42, o.Any], - [33, o.Not], - [124, o.Hyphen], - ]), - c = new Set([ - "has", - "not", - "matches", - "is", - "where", - "host", - "host-context", - ]); - function u(e) { - switch (e.type) { - case n.Adjacent: - case n.Child: - case n.Descendant: - case n.Parent: - case n.Sibling: - case n.ColumnCombinator: - return !0; - default: - return !1; - } - } - const p = new Set(["contains", "icontains"]); - function d(e, t, r) { - const n = parseInt(t, 16) - 65536; - return n != n || r - ? t - : n < 0 - ? String.fromCharCode(n + 65536) - : String.fromCharCode((n >> 10) | 55296, (1023 & n) | 56320); - } - function f(e) { - return e.replace(s, d); - } - function h(e) { - return 39 === e || 34 === e; - } - function m(e) { - return 32 === e || 9 === e || 10 === e || 12 === e || 13 === e; - } - function g(e) { - const t = [], - r = v(t, `${e}`, 0); - if (r < e.length) - throw new Error(`Unmatched selector: ${e.slice(r)}`); - return t; - } - function v(e, t, r) { - let i = []; - function s(e) { - const n = t.slice(r + e).match(a); - if (!n) throw new Error(`Expected name, found ${t.slice(r)}`); - const [i] = n; - return (r += e + i.length), f(i); - } - function d(e) { - for (r += e; r < t.length && m(t.charCodeAt(r)); ) r++; - } - function g() { - const e = (r += 1); - let n = 1; - for (; n > 0 && r < t.length; r++) - 40 !== t.charCodeAt(r) || b(r) - ? 41 !== t.charCodeAt(r) || b(r) || n-- - : n++; - if (n) throw new Error("Parenthesis not matched"); - return f(t.slice(e, r - 1)); - } - function b(e) { - let r = 0; - for (; 92 === t.charCodeAt(--e); ) r++; - return 1 == (1 & r); - } - function y() { - if (i.length > 0 && u(i[i.length - 1])) - throw new Error("Did not expect successive traversals."); - } - function w(e) { - i.length > 0 && i[i.length - 1].type === n.Descendant - ? (i[i.length - 1].type = e) - : (y(), i.push({ type: e })); - } - function E(e, t) { - i.push({ - type: n.Attribute, - name: e, - action: t, - value: s(1), - namespace: null, - ignoreCase: "quirks", - }); - } - function x() { - if ( - (i.length && i[i.length - 1].type === n.Descendant && i.pop(), - 0 === i.length) - ) - throw new Error("Empty sub-selector"); - e.push(i); - } - if ((d(0), t.length === r)) return r; - e: for (; r < t.length; ) { - const e = t.charCodeAt(r); - switch (e) { - case 32: - case 9: - case 10: - case 12: - case 13: - (0 !== i.length && i[0].type === n.Descendant) || - (y(), i.push({ type: n.Descendant })), - d(1); - break; - case 62: - w(n.Child), d(1); - break; - case 60: - w(n.Parent), d(1); - break; - case 126: - w(n.Sibling), d(1); - break; - case 43: - w(n.Adjacent), d(1); - break; - case 46: - E("class", o.Element); - break; - case 35: - E("id", o.Equals); - break; - case 91: { - let e; - d(1); - let a = null; - 124 === t.charCodeAt(r) - ? (e = s(1)) - : t.startsWith("*|", r) - ? ((a = "*"), (e = s(2))) - : ((e = s(0)), - 124 === t.charCodeAt(r) && - 61 !== t.charCodeAt(r + 1) && - ((a = e), (e = s(1)))), - d(0); - let c = o.Exists; - const u = l.get(t.charCodeAt(r)); - if (u) { - if (((c = u), 61 !== t.charCodeAt(r + 1))) - throw new Error("Expected `=`"); - d(2); - } else 61 === t.charCodeAt(r) && ((c = o.Equals), d(1)); - let p = "", - g = null; - if ("exists" !== c) { - if (h(t.charCodeAt(r))) { - const e = t.charCodeAt(r); - let n = r + 1; - for (; n < t.length && (t.charCodeAt(n) !== e || b(n)); ) - n += 1; - if (t.charCodeAt(n) !== e) - throw new Error("Attribute value didn't end"); - (p = f(t.slice(r + 1, n))), (r = n + 1); - } else { - const e = r; - for ( - ; - r < t.length && - ((!m(t.charCodeAt(r)) && 93 !== t.charCodeAt(r)) || b(r)); - - ) - r += 1; - p = f(t.slice(e, r)); - } - d(0); - const e = 32 | t.charCodeAt(r); - 115 === e ? ((g = !1), d(1)) : 105 === e && ((g = !0), d(1)); - } - if (93 !== t.charCodeAt(r)) - throw new Error("Attribute selector didn't terminate"); - r += 1; - const v = { - type: n.Attribute, - name: e, - action: c, - value: p, - namespace: a, - ignoreCase: g, - }; - i.push(v); - break; - } - case 58: { - if (58 === t.charCodeAt(r + 1)) { - i.push({ - type: n.PseudoElement, - name: s(2).toLowerCase(), - data: 40 === t.charCodeAt(r) ? g() : null, - }); - continue; - } - const e = s(1).toLowerCase(); - let o = null; - if (40 === t.charCodeAt(r)) - if (c.has(e)) { - if (h(t.charCodeAt(r + 1))) - throw new Error(`Pseudo-selector ${e} cannot be quoted`); - if ( - ((o = []), (r = v(o, t, r + 1)), 41 !== t.charCodeAt(r)) - ) - throw new Error( - `Missing closing parenthesis in :${e} (${t})` - ); - r += 1; - } else { - if (((o = g()), p.has(e))) { - const e = o.charCodeAt(0); - e === o.charCodeAt(o.length - 1) && - h(e) && - (o = o.slice(1, -1)); - } - o = f(o); - } - i.push({ type: n.Pseudo, name: e, data: o }); - break; - } - case 44: - x(), (i = []), d(1); - break; - default: { - if (t.startsWith("/*", r)) { - const e = t.indexOf("*/", r + 2); - if (e < 0) throw new Error("Comment was not terminated"); - (r = e + 2), 0 === i.length && d(0); - break; - } - let o, - l = null; - if (42 === e) (r += 1), (o = "*"); - else if (124 === e) { - if (((o = ""), 124 === t.charCodeAt(r + 1))) { - w(n.ColumnCombinator), d(2); - break; - } - } else { - if (!a.test(t.slice(r))) break e; - o = s(0); - } - 124 === t.charCodeAt(r) && - 124 !== t.charCodeAt(r + 1) && - ((l = o), - 42 === t.charCodeAt(r + 1) - ? ((o = "*"), (r += 2)) - : (o = s(1))), - i.push( - "*" === o - ? { type: n.Universal, namespace: l } - : { type: n.Tag, name: o, namespace: l } - ); - } - } - } - return x(), r; - } - const b = ["\\", '"'], - y = [...b, "(", ")"], - w = new Set(b.map((e) => e.charCodeAt(0))), - E = new Set(y.map((e) => e.charCodeAt(0))), - x = new Set( - [ - ...y, - "~", - "^", - "$", - "*", - "+", - "!", - "|", - ":", - "[", - "]", - " ", - ".", - ].map((e) => e.charCodeAt(0)) - ); - function T(e) { - return e.map((e) => e.map(k).join("")).join(", "); - } - function k(e, t, r) { - switch (e.type) { - case n.Child: - return 0 === t ? "> " : " > "; - case n.Parent: - return 0 === t ? "< " : " < "; - case n.Sibling: - return 0 === t ? "~ " : " ~ "; - case n.Adjacent: - return 0 === t ? "+ " : " + "; - case n.Descendant: - return " "; - case n.ColumnCombinator: - return 0 === t ? "|| " : " || "; - case n.Universal: - return "*" === e.namespace && - t + 1 < r.length && - "name" in r[t + 1] - ? "" - : `${A(e.namespace)}*`; - case n.Tag: - return _(e); - case n.PseudoElement: - return `::${N(e.name, x)}${ - null === e.data ? "" : `(${N(e.data, E)})` - }`; - case n.Pseudo: - return `:${N(e.name, x)}${ - null === e.data - ? "" - : `(${"string" == typeof e.data ? N(e.data, E) : T(e.data)})` - }`; - case n.Attribute: { - if ( - "id" === e.name && - e.action === o.Equals && - "quirks" === e.ignoreCase && - !e.namespace - ) - return `#${N(e.value, x)}`; - if ( - "class" === e.name && - e.action === o.Element && - "quirks" === e.ignoreCase && - !e.namespace - ) - return `.${N(e.value, x)}`; - const t = _(e); - return e.action === o.Exists - ? `[${t}]` - : `[${t}${(function (e) { - switch (e) { - case o.Equals: - return ""; - case o.Element: - return "~"; - case o.Start: - return "^"; - case o.End: - return "$"; - case o.Any: - return "*"; - case o.Not: - return "!"; - case o.Hyphen: - return "|"; - case o.Exists: - throw new Error("Shouldn't be here"); - } - })(e.action)}="${N(e.value, w)}"${ - null === e.ignoreCase ? "" : e.ignoreCase ? " i" : " s" - }]`; - } - } - } - function _(e) { - return `${A(e.namespace)}${N(e.name, x)}`; - } - function A(e) { - return null !== e ? `${"*" === e ? "*" : N(e, x)}|` : ""; - } - function N(e, t) { - let r = 0, - n = ""; - for (let i = 0; i < e.length; i++) - t.has(e.charCodeAt(i)) && - ((n += `${e.slice(r, i)}\\${e.charAt(i)}`), (r = i + 1)); - return n.length > 0 ? n + e.slice(r) : e; - } - }, - 7837: (e, t) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.attributeNames = t.elementNames = void 0), - (t.elementNames = new Map([ - ["altglyph", "altGlyph"], - ["altglyphdef", "altGlyphDef"], - ["altglyphitem", "altGlyphItem"], - ["animatecolor", "animateColor"], - ["animatemotion", "animateMotion"], - ["animatetransform", "animateTransform"], - ["clippath", "clipPath"], - ["feblend", "feBlend"], - ["fecolormatrix", "feColorMatrix"], - ["fecomponenttransfer", "feComponentTransfer"], - ["fecomposite", "feComposite"], - ["feconvolvematrix", "feConvolveMatrix"], - ["fediffuselighting", "feDiffuseLighting"], - ["fedisplacementmap", "feDisplacementMap"], - ["fedistantlight", "feDistantLight"], - ["fedropshadow", "feDropShadow"], - ["feflood", "feFlood"], - ["fefunca", "feFuncA"], - ["fefuncb", "feFuncB"], - ["fefuncg", "feFuncG"], - ["fefuncr", "feFuncR"], - ["fegaussianblur", "feGaussianBlur"], - ["feimage", "feImage"], - ["femerge", "feMerge"], - ["femergenode", "feMergeNode"], - ["femorphology", "feMorphology"], - ["feoffset", "feOffset"], - ["fepointlight", "fePointLight"], - ["fespecularlighting", "feSpecularLighting"], - ["fespotlight", "feSpotLight"], - ["fetile", "feTile"], - ["feturbulence", "feTurbulence"], - ["foreignobject", "foreignObject"], - ["glyphref", "glyphRef"], - ["lineargradient", "linearGradient"], - ["radialgradient", "radialGradient"], - ["textpath", "textPath"], - ])), - (t.attributeNames = new Map([ - ["definitionurl", "definitionURL"], - ["attributename", "attributeName"], - ["attributetype", "attributeType"], - ["basefrequency", "baseFrequency"], - ["baseprofile", "baseProfile"], - ["calcmode", "calcMode"], - ["clippathunits", "clipPathUnits"], - ["diffuseconstant", "diffuseConstant"], - ["edgemode", "edgeMode"], - ["filterunits", "filterUnits"], - ["glyphref", "glyphRef"], - ["gradienttransform", "gradientTransform"], - ["gradientunits", "gradientUnits"], - ["kernelmatrix", "kernelMatrix"], - ["kernelunitlength", "kernelUnitLength"], - ["keypoints", "keyPoints"], - ["keysplines", "keySplines"], - ["keytimes", "keyTimes"], - ["lengthadjust", "lengthAdjust"], - ["limitingconeangle", "limitingConeAngle"], - ["markerheight", "markerHeight"], - ["markerunits", "markerUnits"], - ["markerwidth", "markerWidth"], - ["maskcontentunits", "maskContentUnits"], - ["maskunits", "maskUnits"], - ["numoctaves", "numOctaves"], - ["pathlength", "pathLength"], - ["patterncontentunits", "patternContentUnits"], - ["patterntransform", "patternTransform"], - ["patternunits", "patternUnits"], - ["pointsatx", "pointsAtX"], - ["pointsaty", "pointsAtY"], - ["pointsatz", "pointsAtZ"], - ["preservealpha", "preserveAlpha"], - ["preserveaspectratio", "preserveAspectRatio"], - ["primitiveunits", "primitiveUnits"], - ["refx", "refX"], - ["refy", "refY"], - ["repeatcount", "repeatCount"], - ["repeatdur", "repeatDur"], - ["requiredextensions", "requiredExtensions"], - ["requiredfeatures", "requiredFeatures"], - ["specularconstant", "specularConstant"], - ["specularexponent", "specularExponent"], - ["spreadmethod", "spreadMethod"], - ["startoffset", "startOffset"], - ["stddeviation", "stdDeviation"], - ["stitchtiles", "stitchTiles"], - ["surfacescale", "surfaceScale"], - ["systemlanguage", "systemLanguage"], - ["tablevalues", "tableValues"], - ["targetx", "targetX"], - ["targety", "targetY"], - ["textlength", "textLength"], - ["viewbox", "viewBox"], - ["viewtarget", "viewTarget"], - ["xchannelselector", "xChannelSelector"], - ["ychannelselector", "yChannelSelector"], - ["zoomandpan", "zoomAndPan"], - ])); - }, - 7220: function (e, t, r) { - "use strict"; - var n = - (this && this.__assign) || - function () { - return ( - (n = - Object.assign || - function (e) { - for (var t, r = 1, n = arguments.length; r < n; r++) - for (var i in (t = arguments[r])) - Object.prototype.hasOwnProperty.call(t, i) && - (e[i] = t[i]); - return e; - }), - n.apply(this, arguments) - ); - }, - i = - (this && this.__createBinding) || - (Object.create - ? function (e, t, r, n) { - void 0 === n && (n = r), - Object.defineProperty(e, n, { - enumerable: !0, - get: function () { - return t[r]; - }, - }); - } - : function (e, t, r, n) { - void 0 === n && (n = r), (e[n] = t[r]); - }), - o = - (this && this.__setModuleDefault) || - (Object.create - ? function (e, t) { - Object.defineProperty(e, "default", { - enumerable: !0, - value: t, - }); - } - : function (e, t) { - e.default = t; - }), - a = - (this && this.__importStar) || - function (e) { - if (e && e.__esModule) return e; - var t = {}; - if (null != e) - for (var r in e) - "default" !== r && - Object.prototype.hasOwnProperty.call(e, r) && - i(t, e, r); - return o(t, e), t; - }; - Object.defineProperty(t, "__esModule", { value: !0 }); - var s = a(r(9960)), - l = r(5863), - c = r(7837), - u = new Set([ - "style", - "script", - "xmp", - "iframe", - "noembed", - "noframes", - "plaintext", - "noscript", - ]), - p = new Set([ - "area", - "base", - "basefont", - "br", - "col", - "command", - "embed", - "frame", - "hr", - "img", - "input", - "isindex", - "keygen", - "link", - "meta", - "param", - "source", - "track", - "wbr", - ]); - function d(e, t) { - void 0 === t && (t = {}); - for ( - var r = ("length" in e) ? e : [e], n = "", i = 0; - i < r.length; - i++ - ) - n += f(r[i], t); - return n; - } - function f(e, t) { - switch (e.type) { - case s.Root: - return d(e.children, t); - case s.Directive: - case s.Doctype: - return "<" + e.data + ">"; - case s.Comment: - return "\x3c!--" + e.data + "--\x3e"; - case s.CDATA: - return (function (e) { - return ""; - })(e); - case s.Script: - case s.Style: - case s.Tag: - return (function (e, t) { - var r; - "foreign" === t.xmlMode && - ((e.name = - null !== (r = c.elementNames.get(e.name)) && void 0 !== r - ? r - : e.name), - e.parent && - h.has(e.parent.name) && - (t = n(n({}, t), { xmlMode: !1 }))), - !t.xmlMode && - m.has(e.name) && - (t = n(n({}, t), { xmlMode: "foreign" })); - var i = "<" + e.name, - o = (function (e, t) { - if (e) - return Object.keys(e) - .map(function (r) { - var n, - i, - o = null !== (n = e[r]) && void 0 !== n ? n : ""; - return ( - "foreign" === t.xmlMode && - (r = - null !== (i = c.attributeNames.get(r)) && - void 0 !== i - ? i - : r), - t.emptyAttrs || t.xmlMode || "" !== o - ? r + - '="' + - (!1 !== t.decodeEntities - ? l.encodeXML(o) - : o.replace(/"/g, """)) + - '"' - : r - ); - }) - .join(" "); - })(e.attribs, t); - return ( - o && (i += " " + o), - 0 === e.children.length && - (t.xmlMode - ? !1 !== t.selfClosingTags - : t.selfClosingTags && p.has(e.name)) - ? (t.xmlMode || (i += " "), (i += "/>")) - : ((i += ">"), - e.children.length > 0 && (i += d(e.children, t)), - (!t.xmlMode && p.has(e.name)) || - (i += "")), - i - ); - })(e, t); - case s.Text: - return (function (e, t) { - var r = e.data || ""; - return ( - !1 === t.decodeEntities || - (!t.xmlMode && e.parent && u.has(e.parent.name)) || - (r = l.encodeXML(r)), - r - ); - })(e, t); - } - } - t.default = d; - var h = new Set([ - "mi", - "mo", - "mn", - "ms", - "mtext", - "annotation-xml", - "foreignObject", - "desc", - "title", - ]), - m = new Set(["svg", "math"]); - }, - 9960: (e, t) => { - "use strict"; - var r; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.Doctype = - t.CDATA = - t.Tag = - t.Style = - t.Script = - t.Comment = - t.Directive = - t.Text = - t.Root = - t.isTag = - t.ElementType = - void 0), - (function (e) { - (e.Root = "root"), - (e.Text = "text"), - (e.Directive = "directive"), - (e.Comment = "comment"), - (e.Script = "script"), - (e.Style = "style"), - (e.Tag = "tag"), - (e.CDATA = "cdata"), - (e.Doctype = "doctype"); - })((r = t.ElementType || (t.ElementType = {}))), - (t.isTag = function (e) { - return ( - e.type === r.Tag || e.type === r.Script || e.type === r.Style - ); - }), - (t.Root = r.Root), - (t.Text = r.Text), - (t.Directive = r.Directive), - (t.Comment = r.Comment), - (t.Script = r.Script), - (t.Style = r.Style), - (t.Tag = r.Tag), - (t.CDATA = r.CDATA), - (t.Doctype = r.Doctype); - }, - 7915: function (e, t, r) { - "use strict"; - var n = - (this && this.__createBinding) || - (Object.create - ? function (e, t, r, n) { - void 0 === n && (n = r); - var i = Object.getOwnPropertyDescriptor(t, r); - (i && - !("get" in i - ? !t.__esModule - : i.writable || i.configurable)) || - (i = { - enumerable: !0, - get: function () { - return t[r]; - }, - }), - Object.defineProperty(e, n, i); - } - : function (e, t, r, n) { - void 0 === n && (n = r), (e[n] = t[r]); - }), - i = - (this && this.__exportStar) || - function (e, t) { - for (var r in e) - "default" === r || - Object.prototype.hasOwnProperty.call(t, r) || - n(t, e, r); - }; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.DomHandler = void 0); - var o = r(9960), - a = r(7790); - i(r(7790), t); - var s = /\s+/g, - l = { - normalizeWhitespace: !1, - withStartIndices: !1, - withEndIndices: !1, - xmlMode: !1, - }, - c = (function () { - function e(e, t, r) { - (this.dom = []), - (this.root = new a.Document(this.dom)), - (this.done = !1), - (this.tagStack = [this.root]), - (this.lastNode = null), - (this.parser = null), - "function" == typeof t && ((r = t), (t = l)), - "object" == typeof e && ((t = e), (e = void 0)), - (this.callback = null != e ? e : null), - (this.options = null != t ? t : l), - (this.elementCB = null != r ? r : null); - } - return ( - (e.prototype.onparserinit = function (e) { - this.parser = e; - }), - (e.prototype.onreset = function () { - (this.dom = []), - (this.root = new a.Document(this.dom)), - (this.done = !1), - (this.tagStack = [this.root]), - (this.lastNode = null), - (this.parser = null); - }), - (e.prototype.onend = function () { - this.done || - ((this.done = !0), - (this.parser = null), - this.handleCallback(null)); - }), - (e.prototype.onerror = function (e) { - this.handleCallback(e); - }), - (e.prototype.onclosetag = function () { - this.lastNode = null; - var e = this.tagStack.pop(); - this.options.withEndIndices && - (e.endIndex = this.parser.endIndex), - this.elementCB && this.elementCB(e); - }), - (e.prototype.onopentag = function (e, t) { - var r = this.options.xmlMode ? o.ElementType.Tag : void 0, - n = new a.Element(e, t, void 0, r); - this.addNode(n), this.tagStack.push(n); - }), - (e.prototype.ontext = function (e) { - var t = this.options.normalizeWhitespace, - r = this.lastNode; - if (r && r.type === o.ElementType.Text) - t ? (r.data = (r.data + e).replace(s, " ")) : (r.data += e), - this.options.withEndIndices && - (r.endIndex = this.parser.endIndex); - else { - t && (e = e.replace(s, " ")); - var n = new a.Text(e); - this.addNode(n), (this.lastNode = n); - } - }), - (e.prototype.oncomment = function (e) { - if ( - this.lastNode && - this.lastNode.type === o.ElementType.Comment - ) - this.lastNode.data += e; - else { - var t = new a.Comment(e); - this.addNode(t), (this.lastNode = t); - } - }), - (e.prototype.oncommentend = function () { - this.lastNode = null; - }), - (e.prototype.oncdatastart = function () { - var e = new a.Text(""), - t = new a.NodeWithChildren(o.ElementType.CDATA, [e]); - this.addNode(t), (e.parent = t), (this.lastNode = e); - }), - (e.prototype.oncdataend = function () { - this.lastNode = null; - }), - (e.prototype.onprocessinginstruction = function (e, t) { - var r = new a.ProcessingInstruction(e, t); - this.addNode(r); - }), - (e.prototype.handleCallback = function (e) { - if ("function" == typeof this.callback) - this.callback(e, this.dom); - else if (e) throw e; - }), - (e.prototype.addNode = function (e) { - var t = this.tagStack[this.tagStack.length - 1], - r = t.children[t.children.length - 1]; - this.options.withStartIndices && - (e.startIndex = this.parser.startIndex), - this.options.withEndIndices && - (e.endIndex = this.parser.endIndex), - t.children.push(e), - r && ((e.prev = r), (r.next = e)), - (e.parent = t), - (this.lastNode = null); - }), - e - ); - })(); - (t.DomHandler = c), (t.default = c); - }, - 7790: function (e, t, r) { - "use strict"; - var n, - i = - (this && this.__extends) || - ((n = function (e, t) { - return ( - (n = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (e, t) { - e.__proto__ = t; - }) || - function (e, t) { - for (var r in t) - Object.prototype.hasOwnProperty.call(t, r) && - (e[r] = t[r]); - }), - n(e, t) - ); - }), - function (e, t) { - if ("function" != typeof t && null !== t) - throw new TypeError( - "Class extends value " + - String(t) + - " is not a constructor or null" - ); - function r() { - this.constructor = e; - } - n(e, t), - (e.prototype = - null === t - ? Object.create(t) - : ((r.prototype = t.prototype), new r())); - }), - o = - (this && this.__assign) || - function () { - return ( - (o = - Object.assign || - function (e) { - for (var t, r = 1, n = arguments.length; r < n; r++) - for (var i in (t = arguments[r])) - Object.prototype.hasOwnProperty.call(t, i) && - (e[i] = t[i]); - return e; - }), - o.apply(this, arguments) - ); - }; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.cloneNode = - t.hasChildren = - t.isDocument = - t.isDirective = - t.isComment = - t.isText = - t.isCDATA = - t.isTag = - t.Element = - t.Document = - t.NodeWithChildren = - t.ProcessingInstruction = - t.Comment = - t.Text = - t.DataNode = - t.Node = - void 0); - var a = r(9960), - s = new Map([ - [a.ElementType.Tag, 1], - [a.ElementType.Script, 1], - [a.ElementType.Style, 1], - [a.ElementType.Directive, 1], - [a.ElementType.Text, 3], - [a.ElementType.CDATA, 4], - [a.ElementType.Comment, 8], - [a.ElementType.Root, 9], - ]), - l = (function () { - function e(e) { - (this.type = e), - (this.parent = null), - (this.prev = null), - (this.next = null), - (this.startIndex = null), - (this.endIndex = null); - } - return ( - Object.defineProperty(e.prototype, "nodeType", { - get: function () { - var e; - return null !== (e = s.get(this.type)) && void 0 !== e - ? e - : 1; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, "parentNode", { - get: function () { - return this.parent; - }, - set: function (e) { - this.parent = e; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, "previousSibling", { - get: function () { - return this.prev; - }, - set: function (e) { - this.prev = e; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, "nextSibling", { - get: function () { - return this.next; - }, - set: function (e) { - this.next = e; - }, - enumerable: !1, - configurable: !0, - }), - (e.prototype.cloneNode = function (e) { - return void 0 === e && (e = !1), x(this, e); - }), - e - ); - })(); - t.Node = l; - var c = (function (e) { - function t(t, r) { - var n = e.call(this, t) || this; - return (n.data = r), n; - } - return ( - i(t, e), - Object.defineProperty(t.prototype, "nodeValue", { - get: function () { - return this.data; - }, - set: function (e) { - this.data = e; - }, - enumerable: !1, - configurable: !0, - }), - t - ); - })(l); - t.DataNode = c; - var u = (function (e) { - function t(t) { - return e.call(this, a.ElementType.Text, t) || this; - } - return i(t, e), t; - })(c); - t.Text = u; - var p = (function (e) { - function t(t) { - return e.call(this, a.ElementType.Comment, t) || this; - } - return i(t, e), t; - })(c); - t.Comment = p; - var d = (function (e) { - function t(t, r) { - var n = e.call(this, a.ElementType.Directive, r) || this; - return (n.name = t), n; - } - return i(t, e), t; - })(c); - t.ProcessingInstruction = d; - var f = (function (e) { - function t(t, r) { - var n = e.call(this, t) || this; - return (n.children = r), n; - } - return ( - i(t, e), - Object.defineProperty(t.prototype, "firstChild", { - get: function () { - var e; - return null !== (e = this.children[0]) && void 0 !== e - ? e - : null; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t.prototype, "lastChild", { - get: function () { - return this.children.length > 0 - ? this.children[this.children.length - 1] - : null; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t.prototype, "childNodes", { - get: function () { - return this.children; - }, - set: function (e) { - this.children = e; - }, - enumerable: !1, - configurable: !0, - }), - t - ); - })(l); - t.NodeWithChildren = f; - var h = (function (e) { - function t(t) { - return e.call(this, a.ElementType.Root, t) || this; - } - return i(t, e), t; - })(f); - t.Document = h; - var m = (function (e) { - function t(t, r, n, i) { - void 0 === n && (n = []), - void 0 === i && - (i = - "script" === t - ? a.ElementType.Script - : "style" === t - ? a.ElementType.Style - : a.ElementType.Tag); - var o = e.call(this, i, n) || this; - return (o.name = t), (o.attribs = r), o; - } - return ( - i(t, e), - Object.defineProperty(t.prototype, "tagName", { - get: function () { - return this.name; - }, - set: function (e) { - this.name = e; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t.prototype, "attributes", { - get: function () { - var e = this; - return Object.keys(this.attribs).map(function (t) { - var r, n; - return { - name: t, - value: e.attribs[t], - namespace: - null === (r = e["x-attribsNamespace"]) || void 0 === r - ? void 0 - : r[t], - prefix: - null === (n = e["x-attribsPrefix"]) || void 0 === n - ? void 0 - : n[t], - }; - }); - }, - enumerable: !1, - configurable: !0, - }), - t - ); - })(f); - function g(e) { - return (0, a.isTag)(e); - } - function v(e) { - return e.type === a.ElementType.CDATA; - } - function b(e) { - return e.type === a.ElementType.Text; - } - function y(e) { - return e.type === a.ElementType.Comment; - } - function w(e) { - return e.type === a.ElementType.Directive; - } - function E(e) { - return e.type === a.ElementType.Root; - } - function x(e, t) { - var r; - if ((void 0 === t && (t = !1), b(e))) r = new u(e.data); - else if (y(e)) r = new p(e.data); - else if (g(e)) { - var n = t ? T(e.children) : [], - i = new m(e.name, o({}, e.attribs), n); - n.forEach(function (e) { - return (e.parent = i); - }), - null != e.namespace && (i.namespace = e.namespace), - e["x-attribsNamespace"] && - (i["x-attribsNamespace"] = o({}, e["x-attribsNamespace"])), - e["x-attribsPrefix"] && - (i["x-attribsPrefix"] = o({}, e["x-attribsPrefix"])), - (r = i); - } else if (v(e)) { - n = t ? T(e.children) : []; - var s = new f(a.ElementType.CDATA, n); - n.forEach(function (e) { - return (e.parent = s); - }), - (r = s); - } else if (E(e)) { - n = t ? T(e.children) : []; - var l = new h(n); - n.forEach(function (e) { - return (e.parent = l); - }), - e["x-mode"] && (l["x-mode"] = e["x-mode"]), - (r = l); - } else { - if (!w(e)) throw new Error("Not implemented yet: ".concat(e.type)); - var c = new d(e.name, e.data); - null != e["x-name"] && - ((c["x-name"] = e["x-name"]), - (c["x-publicId"] = e["x-publicId"]), - (c["x-systemId"] = e["x-systemId"])), - (r = c); - } - return ( - (r.startIndex = e.startIndex), - (r.endIndex = e.endIndex), - null != e.sourceCodeLocation && - (r.sourceCodeLocation = e.sourceCodeLocation), - r - ); - } - function T(e) { - for ( - var t = e.map(function (e) { - return x(e, !0); - }), - r = 1; - r < t.length; - r++ - ) - (t[r].prev = t[r - 1]), (t[r - 1].next = t[r]); - return t; - } - (t.Element = m), - (t.isTag = g), - (t.isCDATA = v), - (t.isText = b), - (t.isComment = y), - (t.isDirective = w), - (t.isDocument = E), - (t.hasChildren = function (e) { - return Object.prototype.hasOwnProperty.call(e, "children"); - }), - (t.cloneNode = x); - }, - 6996: (e, t, r) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.getFeed = void 0); - var n = r(3346), - i = r(3905); - t.getFeed = function (e) { - var t = l(p, e); - return t - ? "feed" === t.name - ? (function (e) { - var t, - r = e.children, - n = { - type: "atom", - items: (0, i.getElementsByTagName)("entry", r).map( - function (e) { - var t, - r = e.children, - n = { media: s(r) }; - u(n, "id", "id", r), u(n, "title", "title", r); - var i = - null === (t = l("link", r)) || void 0 === t - ? void 0 - : t.attribs.href; - i && (n.link = i); - var o = c("summary", r) || c("content", r); - o && (n.description = o); - var a = c("updated", r); - return a && (n.pubDate = new Date(a)), n; - } - ), - }; - u(n, "id", "id", r), u(n, "title", "title", r); - var o = - null === (t = l("link", r)) || void 0 === t - ? void 0 - : t.attribs.href; - o && (n.link = o), u(n, "description", "subtitle", r); - var a = c("updated", r); - return ( - a && (n.updated = new Date(a)), - u(n, "author", "email", r, !0), - n - ); - })(t) - : (function (e) { - var t, - r, - n = - null !== - (r = - null === (t = l("channel", e.children)) || - void 0 === t - ? void 0 - : t.children) && void 0 !== r - ? r - : [], - o = { - type: e.name.substr(0, 3), - id: "", - items: (0, i.getElementsByTagName)( - "item", - e.children - ).map(function (e) { - var t = e.children, - r = { media: s(t) }; - u(r, "id", "guid", t), - u(r, "title", "title", t), - u(r, "link", "link", t), - u(r, "description", "description", t); - var n = c("pubDate", t); - return n && (r.pubDate = new Date(n)), r; - }), - }; - u(o, "title", "title", n), - u(o, "link", "link", n), - u(o, "description", "description", n); - var a = c("lastBuildDate", n); - return ( - a && (o.updated = new Date(a)), - u(o, "author", "managingEditor", n, !0), - o - ); - })(t) - : null; - }; - var o = ["url", "type", "lang"], - a = [ - "fileSize", - "bitrate", - "framerate", - "samplingrate", - "channels", - "duration", - "height", - "width", - ]; - function s(e) { - return (0, i.getElementsByTagName)("media:content", e).map(function ( - e - ) { - for ( - var t = e.attribs, - r = { medium: t.medium, isDefault: !!t.isDefault }, - n = 0, - i = o; - n < i.length; - n++ - ) - t[(c = i[n])] && (r[c] = t[c]); - for (var s = 0, l = a; s < l.length; s++) { - var c; - t[(c = l[s])] && (r[c] = parseInt(t[c], 10)); - } - return t.expression && (r.expression = t.expression), r; - }); - } - function l(e, t) { - return (0, i.getElementsByTagName)(e, t, !0, 1)[0]; - } - function c(e, t, r) { - return ( - void 0 === r && (r = !1), - (0, n.textContent)((0, i.getElementsByTagName)(e, t, r, 1)).trim() - ); - } - function u(e, t, r, n, i) { - void 0 === i && (i = !1); - var o = c(r, n, i); - o && (e[t] = o); - } - function p(e) { - return "rss" === e || "feed" === e || "rdf:RDF" === e; - } - }, - 4975: (e, t, r) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.uniqueSort = t.compareDocumentPosition = t.removeSubsets = void 0); - var n = r(7915); - function i(e, t) { - var r = [], - i = []; - if (e === t) return 0; - for (var o = (0, n.hasChildren)(e) ? e : e.parent; o; ) - r.unshift(o), (o = o.parent); - for (o = (0, n.hasChildren)(t) ? t : t.parent; o; ) - i.unshift(o), (o = o.parent); - for ( - var a = Math.min(r.length, i.length), s = 0; - s < a && r[s] === i[s]; - - ) - s++; - if (0 === s) return 1; - var l = r[s - 1], - c = l.children, - u = r[s], - p = i[s]; - return c.indexOf(u) > c.indexOf(p) - ? l === t - ? 20 - : 4 - : l === e - ? 10 - : 2; - } - (t.removeSubsets = function (e) { - for (var t = e.length; --t >= 0; ) { - var r = e[t]; - if (t > 0 && e.lastIndexOf(r, t - 1) >= 0) e.splice(t, 1); - else - for (var n = r.parent; n; n = n.parent) - if (e.includes(n)) { - e.splice(t, 1); - break; - } - } - return e; - }), - (t.compareDocumentPosition = i), - (t.uniqueSort = function (e) { - return ( - (e = e.filter(function (e, t, r) { - return !r.includes(e, t + 1); - })), - e.sort(function (e, t) { - var r = i(e, t); - return 2 & r ? -1 : 4 & r ? 1 : 0; - }), - e - ); - }); - }, - 9432: function (e, t, r) { - "use strict"; - var n = - (this && this.__createBinding) || - (Object.create - ? function (e, t, r, n) { - void 0 === n && (n = r), - Object.defineProperty(e, n, { - enumerable: !0, - get: function () { - return t[r]; - }, - }); - } - : function (e, t, r, n) { - void 0 === n && (n = r), (e[n] = t[r]); - }), - i = - (this && this.__exportStar) || - function (e, t) { - for (var r in e) - "default" === r || - Object.prototype.hasOwnProperty.call(t, r) || - n(t, e, r); - }; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.hasChildren = - t.isDocument = - t.isComment = - t.isText = - t.isCDATA = - t.isTag = - void 0), - i(r(3346), t), - i(r(5010), t), - i(r(6765), t), - i(r(8043), t), - i(r(3905), t), - i(r(4975), t), - i(r(6996), t); - var o = r(7915); - Object.defineProperty(t, "isTag", { - enumerable: !0, - get: function () { - return o.isTag; - }, - }), - Object.defineProperty(t, "isCDATA", { - enumerable: !0, - get: function () { - return o.isCDATA; - }, - }), - Object.defineProperty(t, "isText", { - enumerable: !0, - get: function () { - return o.isText; - }, - }), - Object.defineProperty(t, "isComment", { - enumerable: !0, - get: function () { - return o.isComment; - }, - }), - Object.defineProperty(t, "isDocument", { - enumerable: !0, - get: function () { - return o.isDocument; - }, - }), - Object.defineProperty(t, "hasChildren", { - enumerable: !0, - get: function () { - return o.hasChildren; - }, - }); - }, - 3905: (e, t, r) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.getElementsByTagType = - t.getElementsByTagName = - t.getElementById = - t.getElements = - t.testElement = - void 0); - var n = r(7915), - i = r(8043), - o = { - tag_name: function (e) { - return "function" == typeof e - ? function (t) { - return (0, n.isTag)(t) && e(t.name); - } - : "*" === e - ? n.isTag - : function (t) { - return (0, n.isTag)(t) && t.name === e; - }; - }, - tag_type: function (e) { - return "function" == typeof e - ? function (t) { - return e(t.type); - } - : function (t) { - return t.type === e; - }; - }, - tag_contains: function (e) { - return "function" == typeof e - ? function (t) { - return (0, n.isText)(t) && e(t.data); - } - : function (t) { - return (0, n.isText)(t) && t.data === e; - }; - }, - }; - function a(e, t) { - return "function" == typeof t - ? function (r) { - return (0, n.isTag)(r) && t(r.attribs[e]); - } - : function (r) { - return (0, n.isTag)(r) && r.attribs[e] === t; - }; - } - function s(e, t) { - return function (r) { - return e(r) || t(r); - }; - } - function l(e) { - var t = Object.keys(e).map(function (t) { - var r = e[t]; - return Object.prototype.hasOwnProperty.call(o, t) - ? o[t](r) - : a(t, r); - }); - return 0 === t.length ? null : t.reduce(s); - } - (t.testElement = function (e, t) { - var r = l(e); - return !r || r(t); - }), - (t.getElements = function (e, t, r, n) { - void 0 === n && (n = 1 / 0); - var o = l(e); - return o ? (0, i.filter)(o, t, r, n) : []; - }), - (t.getElementById = function (e, t, r) { - return ( - void 0 === r && (r = !0), - Array.isArray(t) || (t = [t]), - (0, i.findOne)(a("id", e), t, r) - ); - }), - (t.getElementsByTagName = function (e, t, r, n) { - return ( - void 0 === r && (r = !0), - void 0 === n && (n = 1 / 0), - (0, i.filter)(o.tag_name(e), t, r, n) - ); - }), - (t.getElementsByTagType = function (e, t, r, n) { - return ( - void 0 === r && (r = !0), - void 0 === n && (n = 1 / 0), - (0, i.filter)(o.tag_type(e), t, r, n) - ); - }); - }, - 6765: (e, t) => { - "use strict"; - function r(e) { - if ( - (e.prev && (e.prev.next = e.next), - e.next && (e.next.prev = e.prev), - e.parent) - ) { - var t = e.parent.children; - t.splice(t.lastIndexOf(e), 1); - } - } - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.prepend = - t.prependChild = - t.append = - t.appendChild = - t.replaceElement = - t.removeElement = - void 0), - (t.removeElement = r), - (t.replaceElement = function (e, t) { - var r = (t.prev = e.prev); - r && (r.next = t); - var n = (t.next = e.next); - n && (n.prev = t); - var i = (t.parent = e.parent); - if (i) { - var o = i.children; - o[o.lastIndexOf(e)] = t; - } - }), - (t.appendChild = function (e, t) { - if ( - (r(t), (t.next = null), (t.parent = e), e.children.push(t) > 1) - ) { - var n = e.children[e.children.length - 2]; - (n.next = t), (t.prev = n); - } else t.prev = null; - }), - (t.append = function (e, t) { - r(t); - var n = e.parent, - i = e.next; - if (((t.next = i), (t.prev = e), (e.next = t), (t.parent = n), i)) { - if (((i.prev = t), n)) { - var o = n.children; - o.splice(o.lastIndexOf(i), 0, t); - } - } else n && n.children.push(t); - }), - (t.prependChild = function (e, t) { - if ( - (r(t), - (t.parent = e), - (t.prev = null), - 1 !== e.children.unshift(t)) - ) { - var n = e.children[1]; - (n.prev = t), (t.next = n); - } else t.next = null; - }), - (t.prepend = function (e, t) { - r(t); - var n = e.parent; - if (n) { - var i = n.children; - i.splice(i.indexOf(e), 0, t); - } - e.prev && (e.prev.next = t), - (t.parent = n), - (t.prev = e.prev), - (t.next = e), - (e.prev = t); - }); - }, - 8043: (e, t, r) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.findAll = - t.existsOne = - t.findOne = - t.findOneChild = - t.find = - t.filter = - void 0); - var n = r(7915); - function i(e, t, r, o) { - for (var a = [], s = 0, l = t; s < l.length; s++) { - var c = l[s]; - if (e(c) && (a.push(c), --o <= 0)) break; - if (r && (0, n.hasChildren)(c) && c.children.length > 0) { - var u = i(e, c.children, r, o); - if ((a.push.apply(a, u), (o -= u.length) <= 0)) break; - } - } - return a; - } - (t.filter = function (e, t, r, n) { - return ( - void 0 === r && (r = !0), - void 0 === n && (n = 1 / 0), - Array.isArray(t) || (t = [t]), - i(e, t, r, n) - ); - }), - (t.find = i), - (t.findOneChild = function (e, t) { - return t.find(e); - }), - (t.findOne = function e(t, r, i) { - void 0 === i && (i = !0); - for (var o = null, a = 0; a < r.length && !o; a++) { - var s = r[a]; - (0, n.isTag)(s) && - (t(s) - ? (o = s) - : i && s.children.length > 0 && (o = e(t, s.children))); - } - return o; - }), - (t.existsOne = function e(t, r) { - return r.some(function (r) { - return ( - (0, n.isTag)(r) && - (t(r) || (r.children.length > 0 && e(t, r.children))) - ); - }); - }), - (t.findAll = function (e, t) { - for (var r, i, o = [], a = t.filter(n.isTag); (i = a.shift()); ) { - var s = - null === (r = i.children) || void 0 === r - ? void 0 - : r.filter(n.isTag); - s && s.length > 0 && a.unshift.apply(a, s), e(i) && o.push(i); - } - return o; - }); - }, - 3346: function (e, t, r) { - "use strict"; - var n = - (this && this.__importDefault) || - function (e) { - return e && e.__esModule ? e : { default: e }; - }; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.innerText = - t.textContent = - t.getText = - t.getInnerHTML = - t.getOuterHTML = - void 0); - var i = r(7915), - o = n(r(7220)), - a = r(9960); - function s(e, t) { - return (0, o.default)(e, t); - } - (t.getOuterHTML = s), - (t.getInnerHTML = function (e, t) { - return (0, i.hasChildren)(e) - ? e.children - .map(function (e) { - return s(e, t); - }) - .join("") - : ""; - }), - (t.getText = function e(t) { - return Array.isArray(t) - ? t.map(e).join("") - : (0, i.isTag)(t) - ? "br" === t.name - ? "\n" - : e(t.children) - : (0, i.isCDATA)(t) - ? e(t.children) - : (0, i.isText)(t) - ? t.data - : ""; - }), - (t.textContent = function e(t) { - return Array.isArray(t) - ? t.map(e).join("") - : (0, i.hasChildren)(t) && !(0, i.isComment)(t) - ? e(t.children) - : (0, i.isText)(t) - ? t.data - : ""; - }), - (t.innerText = function e(t) { - return Array.isArray(t) - ? t.map(e).join("") - : (0, i.hasChildren)(t) && - (t.type === a.ElementType.Tag || (0, i.isCDATA)(t)) - ? e(t.children) - : (0, i.isText)(t) - ? t.data - : ""; - }); - }, - 5010: (e, t, r) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.prevElementSibling = - t.nextElementSibling = - t.getName = - t.hasAttrib = - t.getAttributeValue = - t.getSiblings = - t.getParent = - t.getChildren = - void 0); - var n = r(7915), - i = []; - function o(e) { - var t; - return null !== (t = e.children) && void 0 !== t ? t : i; - } - function a(e) { - return e.parent || null; - } - (t.getChildren = o), - (t.getParent = a), - (t.getSiblings = function (e) { - var t = a(e); - if (null != t) return o(t); - for (var r = [e], n = e.prev, i = e.next; null != n; ) - r.unshift(n), (n = n.prev); - for (; null != i; ) r.push(i), (i = i.next); - return r; - }), - (t.getAttributeValue = function (e, t) { - var r; - return null === (r = e.attribs) || void 0 === r ? void 0 : r[t]; - }), - (t.hasAttrib = function (e, t) { - return ( - null != e.attribs && - Object.prototype.hasOwnProperty.call(e.attribs, t) && - null != e.attribs[t] - ); - }), - (t.getName = function (e) { - return e.name; - }), - (t.nextElementSibling = function (e) { - for (var t = e.next; null !== t && !(0, n.isTag)(t); ) t = t.next; - return t; - }), - (t.prevElementSibling = function (e) { - for (var t = e.prev; null !== t && !(0, n.isTag)(t); ) t = t.prev; - return t; - }); - }, - 4076: function (e, t, r) { - "use strict"; - var n = - (this && this.__importDefault) || - function (e) { - return e && e.__esModule ? e : { default: e }; - }; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.decodeHTML = t.decodeHTMLStrict = t.decodeXML = void 0); - var i = n(r(9323)), - o = n(r(9591)), - a = n(r(2586)), - s = n(r(26)), - l = /&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g; - function c(e) { - var t = p(e); - return function (e) { - return String(e).replace(l, t); - }; - } - (t.decodeXML = c(a.default)), (t.decodeHTMLStrict = c(i.default)); - var u = function (e, t) { - return e < t ? 1 : -1; - }; - function p(e) { - return function (t) { - if ("#" === t.charAt(1)) { - var r = t.charAt(2); - return "X" === r || "x" === r - ? s.default(parseInt(t.substr(3), 16)) - : s.default(parseInt(t.substr(2), 10)); - } - return e[t.slice(1, -1)] || t; - }; - } - t.decodeHTML = (function () { - for ( - var e = Object.keys(o.default).sort(u), - t = Object.keys(i.default).sort(u), - r = 0, - n = 0; - r < t.length; - r++ - ) - e[n] === t[r] ? ((t[r] += ";?"), n++) : (t[r] += ";"); - var a = new RegExp( - "&(?:" + t.join("|") + "|#[xX][\\da-fA-F]+;?|#\\d+;?)", - "g" - ), - s = p(i.default); - function l(e) { - return ";" !== e.substr(-1) && (e += ";"), s(e); - } - return function (e) { - return String(e).replace(a, l); - }; - })(); - }, - 26: function (e, t, r) { - "use strict"; - var n = - (this && this.__importDefault) || - function (e) { - return e && e.__esModule ? e : { default: e }; - }; - Object.defineProperty(t, "__esModule", { value: !0 }); - var i = n(r(3600)), - o = - String.fromCodePoint || - function (e) { - var t = ""; - return ( - e > 65535 && - ((e -= 65536), - (t += String.fromCharCode(((e >>> 10) & 1023) | 55296)), - (e = 56320 | (1023 & e))), - t + String.fromCharCode(e) - ); - }; - t.default = function (e) { - return (e >= 55296 && e <= 57343) || e > 1114111 - ? "�" - : (e in i.default && (e = i.default[e]), o(e)); - }; - }, - 7322: function (e, t, r) { - "use strict"; - var n = - (this && this.__importDefault) || - function (e) { - return e && e.__esModule ? e : { default: e }; - }; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.escapeUTF8 = - t.escape = - t.encodeNonAsciiHTML = - t.encodeHTML = - t.encodeXML = - void 0); - var i = u(n(r(2586)).default), - o = p(i); - t.encodeXML = g(i); - var a, - s, - l = u(n(r(9323)).default), - c = p(l); - function u(e) { - return Object.keys(e) - .sort() - .reduce(function (t, r) { - return (t[e[r]] = "&" + r + ";"), t; - }, {}); - } - function p(e) { - for ( - var t = [], r = [], n = 0, i = Object.keys(e); - n < i.length; - n++ - ) { - var o = i[n]; - 1 === o.length ? t.push("\\" + o) : r.push(o); - } - t.sort(); - for (var a = 0; a < t.length - 1; a++) { - for ( - var s = a; - s < t.length - 1 && - t[s].charCodeAt(1) + 1 === t[s + 1].charCodeAt(1); - - ) - s += 1; - var l = 1 + s - a; - l < 3 || t.splice(a, l, t[a] + "-" + t[s]); - } - return ( - r.unshift("[" + t.join("") + "]"), new RegExp(r.join("|"), "g") - ); - } - (t.encodeHTML = - ((a = l), - (s = c), - function (e) { - return e - .replace(s, function (e) { - return a[e]; - }) - .replace(d, h); - })), - (t.encodeNonAsciiHTML = g(l)); - var d = - /(?:[\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g, - f = - null != String.prototype.codePointAt - ? function (e) { - return e.codePointAt(0); - } - : function (e) { - return ( - 1024 * (e.charCodeAt(0) - 55296) + - e.charCodeAt(1) - - 56320 + - 65536 - ); - }; - function h(e) { - return ( - "&#x" + - (e.length > 1 ? f(e) : e.charCodeAt(0)).toString(16).toUpperCase() + - ";" - ); - } - var m = new RegExp(o.source + "|" + d.source, "g"); - function g(e) { - return function (t) { - return t.replace(m, function (t) { - return e[t] || h(t); - }); - }; - } - (t.escape = function (e) { - return e.replace(m, h); - }), - (t.escapeUTF8 = function (e) { - return e.replace(o, h); - }); - }, - 5863: (e, t, r) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.decodeXMLStrict = - t.decodeHTML5Strict = - t.decodeHTML4Strict = - t.decodeHTML5 = - t.decodeHTML4 = - t.decodeHTMLStrict = - t.decodeHTML = - t.decodeXML = - t.encodeHTML5 = - t.encodeHTML4 = - t.escapeUTF8 = - t.escape = - t.encodeNonAsciiHTML = - t.encodeHTML = - t.encodeXML = - t.encode = - t.decodeStrict = - t.decode = - void 0); - var n = r(4076), - i = r(7322); - (t.decode = function (e, t) { - return (!t || t <= 0 ? n.decodeXML : n.decodeHTML)(e); - }), - (t.decodeStrict = function (e, t) { - return (!t || t <= 0 ? n.decodeXML : n.decodeHTMLStrict)(e); - }), - (t.encode = function (e, t) { - return (!t || t <= 0 ? i.encodeXML : i.encodeHTML)(e); - }); - var o = r(7322); - Object.defineProperty(t, "encodeXML", { - enumerable: !0, - get: function () { - return o.encodeXML; - }, - }), - Object.defineProperty(t, "encodeHTML", { - enumerable: !0, - get: function () { - return o.encodeHTML; - }, - }), - Object.defineProperty(t, "encodeNonAsciiHTML", { - enumerable: !0, - get: function () { - return o.encodeNonAsciiHTML; - }, - }), - Object.defineProperty(t, "escape", { - enumerable: !0, - get: function () { - return o.escape; - }, - }), - Object.defineProperty(t, "escapeUTF8", { - enumerable: !0, - get: function () { - return o.escapeUTF8; - }, - }), - Object.defineProperty(t, "encodeHTML4", { - enumerable: !0, - get: function () { - return o.encodeHTML; - }, - }), - Object.defineProperty(t, "encodeHTML5", { - enumerable: !0, - get: function () { - return o.encodeHTML; - }, - }); - var a = r(4076); - Object.defineProperty(t, "decodeXML", { - enumerable: !0, - get: function () { - return a.decodeXML; - }, - }), - Object.defineProperty(t, "decodeHTML", { - enumerable: !0, - get: function () { - return a.decodeHTML; - }, - }), - Object.defineProperty(t, "decodeHTMLStrict", { - enumerable: !0, - get: function () { - return a.decodeHTMLStrict; - }, - }), - Object.defineProperty(t, "decodeHTML4", { - enumerable: !0, - get: function () { - return a.decodeHTML; - }, - }), - Object.defineProperty(t, "decodeHTML5", { - enumerable: !0, - get: function () { - return a.decodeHTML; - }, - }), - Object.defineProperty(t, "decodeHTML4Strict", { - enumerable: !0, - get: function () { - return a.decodeHTMLStrict; - }, - }), - Object.defineProperty(t, "decodeHTML5Strict", { - enumerable: !0, - get: function () { - return a.decodeHTMLStrict; - }, - }), - Object.defineProperty(t, "decodeXMLStrict", { - enumerable: !0, - get: function () { - return a.decodeXML; - }, - }); - }, - 6492: function (e, t, r) { - var n; - (e = r.nmd(e)), - (function (i) { - var o = (e && e.exports, "object" == typeof global && global); - o.global !== o && o.window; - var a = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g, - s = /[\x01-\x7F]/g, - l = - /[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g, - c = - /<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g, - u = { - "­": "shy", - "‌": "zwnj", - "‍": "zwj", - "‎": "lrm", - "⁣": "ic", - "⁢": "it", - "⁡": "af", - "‏": "rlm", - "​": "ZeroWidthSpace", - "⁠": "NoBreak", - "̑": "DownBreve", - "⃛": "tdot", - "⃜": "DotDot", - "\t": "Tab", - "\n": "NewLine", - " ": "puncsp", - " ": "MediumSpace", - " ": "thinsp", - " ": "hairsp", - " ": "emsp13", - " ": "ensp", - " ": "emsp14", - " ": "emsp", - " ": "numsp", - " ": "nbsp", - "  ": "ThickSpace", - "‾": "oline", - _: "lowbar", - "‐": "dash", - "–": "ndash", - "—": "mdash", - "―": "horbar", - ",": "comma", - ";": "semi", - "⁏": "bsemi", - ":": "colon", - "⩴": "Colone", - "!": "excl", - "¡": "iexcl", - "?": "quest", - "¿": "iquest", - ".": "period", - "‥": "nldr", - "…": "mldr", - "·": "middot", - "'": "apos", - "‘": "lsquo", - "’": "rsquo", - "‚": "sbquo", - "‹": "lsaquo", - "›": "rsaquo", - '"': "quot", - "“": "ldquo", - "”": "rdquo", - "„": "bdquo", - "«": "laquo", - "»": "raquo", - "(": "lpar", - ")": "rpar", - "[": "lsqb", - "]": "rsqb", - "{": "lcub", - "}": "rcub", - "⌈": "lceil", - "⌉": "rceil", - "⌊": "lfloor", - "⌋": "rfloor", - "⦅": "lopar", - "⦆": "ropar", - "⦋": "lbrke", - "⦌": "rbrke", - "⦍": "lbrkslu", - "⦎": "rbrksld", - "⦏": "lbrksld", - "⦐": "rbrkslu", - "⦑": "langd", - "⦒": "rangd", - "⦓": "lparlt", - "⦔": "rpargt", - "⦕": "gtlPar", - "⦖": "ltrPar", - "⟦": "lobrk", - "⟧": "robrk", - "⟨": "lang", - "⟩": "rang", - "⟪": "Lang", - "⟫": "Rang", - "⟬": "loang", - "⟭": "roang", - "❲": "lbbrk", - "❳": "rbbrk", - "‖": "Vert", - "§": "sect", - "¶": "para", - "@": "commat", - "*": "ast", - "/": "sol", - undefined: null, - "&": "amp", - "#": "num", - "%": "percnt", - "‰": "permil", - "‱": "pertenk", - "†": "dagger", - "‡": "Dagger", - "•": "bull", - "⁃": "hybull", - "′": "prime", - "″": "Prime", - "‴": "tprime", - "⁗": "qprime", - "‵": "bprime", - "⁁": "caret", - "`": "grave", - "´": "acute", - "˜": "tilde", - "^": "Hat", - "¯": "macr", - "˘": "breve", - "˙": "dot", - "¨": "die", - "˚": "ring", - "˝": "dblac", - "¸": "cedil", - "˛": "ogon", - ˆ: "circ", - ˇ: "caron", - "°": "deg", - "©": "copy", - "®": "reg", - "℗": "copysr", - ℘: "wp", - "℞": "rx", - "℧": "mho", - "℩": "iiota", - "←": "larr", - "↚": "nlarr", - "→": "rarr", - "↛": "nrarr", - "↑": "uarr", - "↓": "darr", - "↔": "harr", - "↮": "nharr", - "↕": "varr", - "↖": "nwarr", - "↗": "nearr", - "↘": "searr", - "↙": "swarr", - "↝": "rarrw", - "↝̸": "nrarrw", - "↞": "Larr", - "↟": "Uarr", - "↠": "Rarr", - "↡": "Darr", - "↢": "larrtl", - "↣": "rarrtl", - "↤": "mapstoleft", - "↥": "mapstoup", - "↦": "map", - "↧": "mapstodown", - "↩": "larrhk", - "↪": "rarrhk", - "↫": "larrlp", - "↬": "rarrlp", - "↭": "harrw", - "↰": "lsh", - "↱": "rsh", - "↲": "ldsh", - "↳": "rdsh", - "↵": "crarr", - "↶": "cularr", - "↷": "curarr", - "↺": "olarr", - "↻": "orarr", - "↼": "lharu", - "↽": "lhard", - "↾": "uharr", - "↿": "uharl", - "⇀": "rharu", - "⇁": "rhard", - "⇂": "dharr", - "⇃": "dharl", - "⇄": "rlarr", - "⇅": "udarr", - "⇆": "lrarr", - "⇇": "llarr", - "⇈": "uuarr", - "⇉": "rrarr", - "⇊": "ddarr", - "⇋": "lrhar", - "⇌": "rlhar", - "⇐": "lArr", - "⇍": "nlArr", - "⇑": "uArr", - "⇒": "rArr", - "⇏": "nrArr", - "⇓": "dArr", - "⇔": "iff", - "⇎": "nhArr", - "⇕": "vArr", - "⇖": "nwArr", - "⇗": "neArr", - "⇘": "seArr", - "⇙": "swArr", - "⇚": "lAarr", - "⇛": "rAarr", - "⇝": "zigrarr", - "⇤": "larrb", - "⇥": "rarrb", - "⇵": "duarr", - "⇽": "loarr", - "⇾": "roarr", - "⇿": "hoarr", - "∀": "forall", - "∁": "comp", - "∂": "part", - "∂̸": "npart", - "∃": "exist", - "∄": "nexist", - "∅": "empty", - "∇": "Del", - "∈": "in", - "∉": "notin", - "∋": "ni", - "∌": "notni", - "϶": "bepsi", - "∏": "prod", - "∐": "coprod", - "∑": "sum", - "+": "plus", - "±": "pm", - "÷": "div", - "×": "times", - "<": "lt", - "≮": "nlt", - "<⃒": "nvlt", - "=": "equals", - "≠": "ne", - "=⃥": "bne", - "⩵": "Equal", - ">": "gt", - "≯": "ngt", - ">⃒": "nvgt", - "¬": "not", - "|": "vert", - "¦": "brvbar", - "−": "minus", - "∓": "mp", - "∔": "plusdo", - "⁄": "frasl", - "∖": "setmn", - "∗": "lowast", - "∘": "compfn", - "√": "Sqrt", - "∝": "prop", - "∞": "infin", - "∟": "angrt", - "∠": "ang", - "∠⃒": "nang", - "∡": "angmsd", - "∢": "angsph", - "∣": "mid", - "∤": "nmid", - "∥": "par", - "∦": "npar", - "∧": "and", - "∨": "or", - "∩": "cap", - "∩︀": "caps", - "∪": "cup", - "∪︀": "cups", - "∫": "int", - "∬": "Int", - "∭": "tint", - "⨌": "qint", - "∮": "oint", - "∯": "Conint", - "∰": "Cconint", - "∱": "cwint", - "∲": "cwconint", - "∳": "awconint", - "∴": "there4", - "∵": "becaus", - "∶": "ratio", - "∷": "Colon", - "∸": "minusd", - "∺": "mDDot", - "∻": "homtht", - "∼": "sim", - "≁": "nsim", - "∼⃒": "nvsim", - "∽": "bsim", - "∽̱": "race", - "∾": "ac", - "∾̳": "acE", - "∿": "acd", - "≀": "wr", - "≂": "esim", - "≂̸": "nesim", - "≃": "sime", - "≄": "nsime", - "≅": "cong", - "≇": "ncong", - "≆": "simne", - "≈": "ap", - "≉": "nap", - "≊": "ape", - "≋": "apid", - "≋̸": "napid", - "≌": "bcong", - "≍": "CupCap", - "≭": "NotCupCap", - "≍⃒": "nvap", - "≎": "bump", - "≎̸": "nbump", - "≏": "bumpe", - "≏̸": "nbumpe", - "≐": "doteq", - "≐̸": "nedot", - "≑": "eDot", - "≒": "efDot", - "≓": "erDot", - "≔": "colone", - "≕": "ecolon", - "≖": "ecir", - "≗": "cire", - "≙": "wedgeq", - "≚": "veeeq", - "≜": "trie", - "≟": "equest", - "≡": "equiv", - "≢": "nequiv", - "≡⃥": "bnequiv", - "≤": "le", - "≰": "nle", - "≤⃒": "nvle", - "≥": "ge", - "≱": "nge", - "≥⃒": "nvge", - "≦": "lE", - "≦̸": "nlE", - "≧": "gE", - "≧̸": "ngE", - "≨︀": "lvnE", - "≨": "lnE", - "≩": "gnE", - "≩︀": "gvnE", - "≪": "ll", - "≪̸": "nLtv", - "≪⃒": "nLt", - "≫": "gg", - "≫̸": "nGtv", - "≫⃒": "nGt", - "≬": "twixt", - "≲": "lsim", - "≴": "nlsim", - "≳": "gsim", - "≵": "ngsim", - "≶": "lg", - "≸": "ntlg", - "≷": "gl", - "≹": "ntgl", - "≺": "pr", - "⊀": "npr", - "≻": "sc", - "⊁": "nsc", - "≼": "prcue", - "⋠": "nprcue", - "≽": "sccue", - "⋡": "nsccue", - "≾": "prsim", - "≿": "scsim", - "≿̸": "NotSucceedsTilde", - "⊂": "sub", - "⊄": "nsub", - "⊂⃒": "vnsub", - "⊃": "sup", - "⊅": "nsup", - "⊃⃒": "vnsup", - "⊆": "sube", - "⊈": "nsube", - "⊇": "supe", - "⊉": "nsupe", - "⊊︀": "vsubne", - "⊊": "subne", - "⊋︀": "vsupne", - "⊋": "supne", - "⊍": "cupdot", - "⊎": "uplus", - "⊏": "sqsub", - "⊏̸": "NotSquareSubset", - "⊐": "sqsup", - "⊐̸": "NotSquareSuperset", - "⊑": "sqsube", - "⋢": "nsqsube", - "⊒": "sqsupe", - "⋣": "nsqsupe", - "⊓": "sqcap", - "⊓︀": "sqcaps", - "⊔": "sqcup", - "⊔︀": "sqcups", - "⊕": "oplus", - "⊖": "ominus", - "⊗": "otimes", - "⊘": "osol", - "⊙": "odot", - "⊚": "ocir", - "⊛": "oast", - "⊝": "odash", - "⊞": "plusb", - "⊟": "minusb", - "⊠": "timesb", - "⊡": "sdotb", - "⊢": "vdash", - "⊬": "nvdash", - "⊣": "dashv", - "⊤": "top", - "⊥": "bot", - "⊧": "models", - "⊨": "vDash", - "⊭": "nvDash", - "⊩": "Vdash", - "⊮": "nVdash", - "⊪": "Vvdash", - "⊫": "VDash", - "⊯": "nVDash", - "⊰": "prurel", - "⊲": "vltri", - "⋪": "nltri", - "⊳": "vrtri", - "⋫": "nrtri", - "⊴": "ltrie", - "⋬": "nltrie", - "⊴⃒": "nvltrie", - "⊵": "rtrie", - "⋭": "nrtrie", - "⊵⃒": "nvrtrie", - "⊶": "origof", - "⊷": "imof", - "⊸": "mumap", - "⊹": "hercon", - "⊺": "intcal", - "⊻": "veebar", - "⊽": "barvee", - "⊾": "angrtvb", - "⊿": "lrtri", - "⋀": "Wedge", - "⋁": "Vee", - "⋂": "xcap", - "⋃": "xcup", - "⋄": "diam", - "⋅": "sdot", - "⋆": "Star", - "⋇": "divonx", - "⋈": "bowtie", - "⋉": "ltimes", - "⋊": "rtimes", - "⋋": "lthree", - "⋌": "rthree", - "⋍": "bsime", - "⋎": "cuvee", - "⋏": "cuwed", - "⋐": "Sub", - "⋑": "Sup", - "⋒": "Cap", - "⋓": "Cup", - "⋔": "fork", - "⋕": "epar", - "⋖": "ltdot", - "⋗": "gtdot", - "⋘": "Ll", - "⋘̸": "nLl", - "⋙": "Gg", - "⋙̸": "nGg", - "⋚︀": "lesg", - "⋚": "leg", - "⋛": "gel", - "⋛︀": "gesl", - "⋞": "cuepr", - "⋟": "cuesc", - "⋦": "lnsim", - "⋧": "gnsim", - "⋨": "prnsim", - "⋩": "scnsim", - "⋮": "vellip", - "⋯": "ctdot", - "⋰": "utdot", - "⋱": "dtdot", - "⋲": "disin", - "⋳": "isinsv", - "⋴": "isins", - "⋵": "isindot", - "⋵̸": "notindot", - "⋶": "notinvc", - "⋷": "notinvb", - "⋹": "isinE", - "⋹̸": "notinE", - "⋺": "nisd", - "⋻": "xnis", - "⋼": "nis", - "⋽": "notnivc", - "⋾": "notnivb", - "⌅": "barwed", - "⌆": "Barwed", - "⌌": "drcrop", - "⌍": "dlcrop", - "⌎": "urcrop", - "⌏": "ulcrop", - "⌐": "bnot", - "⌒": "profline", - "⌓": "profsurf", - "⌕": "telrec", - "⌖": "target", - "⌜": "ulcorn", - "⌝": "urcorn", - "⌞": "dlcorn", - "⌟": "drcorn", - "⌢": "frown", - "⌣": "smile", - "⌭": "cylcty", - "⌮": "profalar", - "⌶": "topbot", - "⌽": "ovbar", - "⌿": "solbar", - "⍼": "angzarr", - "⎰": "lmoust", - "⎱": "rmoust", - "⎴": "tbrk", - "⎵": "bbrk", - "⎶": "bbrktbrk", - "⏜": "OverParenthesis", - "⏝": "UnderParenthesis", - "⏞": "OverBrace", - "⏟": "UnderBrace", - "⏢": "trpezium", - "⏧": "elinters", - "␣": "blank", - "─": "boxh", - "│": "boxv", - "┌": "boxdr", - "┐": "boxdl", - "└": "boxur", - "┘": "boxul", - "├": "boxvr", - "┤": "boxvl", - "┬": "boxhd", - "┴": "boxhu", - "┼": "boxvh", - "═": "boxH", - "║": "boxV", - "╒": "boxdR", - "╓": "boxDr", - "╔": "boxDR", - "╕": "boxdL", - "╖": "boxDl", - "╗": "boxDL", - "╘": "boxuR", - "╙": "boxUr", - "╚": "boxUR", - "╛": "boxuL", - "╜": "boxUl", - "╝": "boxUL", - "╞": "boxvR", - "╟": "boxVr", - "╠": "boxVR", - "╡": "boxvL", - "╢": "boxVl", - "╣": "boxVL", - "╤": "boxHd", - "╥": "boxhD", - "╦": "boxHD", - "╧": "boxHu", - "╨": "boxhU", - "╩": "boxHU", - "╪": "boxvH", - "╫": "boxVh", - "╬": "boxVH", - "▀": "uhblk", - "▄": "lhblk", - "█": "block", - "░": "blk14", - "▒": "blk12", - "▓": "blk34", - "□": "squ", - "▪": "squf", - "▫": "EmptyVerySmallSquare", - "▭": "rect", - "▮": "marker", - "▱": "fltns", - "△": "xutri", - "▴": "utrif", - "▵": "utri", - "▸": "rtrif", - "▹": "rtri", - "▽": "xdtri", - "▾": "dtrif", - "▿": "dtri", - "◂": "ltrif", - "◃": "ltri", - "◊": "loz", - "○": "cir", - "◬": "tridot", - "◯": "xcirc", - "◸": "ultri", - "◹": "urtri", - "◺": "lltri", - "◻": "EmptySmallSquare", - "◼": "FilledSmallSquare", - "★": "starf", - "☆": "star", - "☎": "phone", - "♀": "female", - "♂": "male", - "♠": "spades", - "♣": "clubs", - "♥": "hearts", - "♦": "diams", - "♪": "sung", - "✓": "check", - "✗": "cross", - "✠": "malt", - "✶": "sext", - "❘": "VerticalSeparator", - "⟈": "bsolhsub", - "⟉": "suphsol", - "⟵": "xlarr", - "⟶": "xrarr", - "⟷": "xharr", - "⟸": "xlArr", - "⟹": "xrArr", - "⟺": "xhArr", - "⟼": "xmap", - "⟿": "dzigrarr", - "⤂": "nvlArr", - "⤃": "nvrArr", - "⤄": "nvHarr", - "⤅": "Map", - "⤌": "lbarr", - "⤍": "rbarr", - "⤎": "lBarr", - "⤏": "rBarr", - "⤐": "RBarr", - "⤑": "DDotrahd", - "⤒": "UpArrowBar", - "⤓": "DownArrowBar", - "⤖": "Rarrtl", - "⤙": "latail", - "⤚": "ratail", - "⤛": "lAtail", - "⤜": "rAtail", - "⤝": "larrfs", - "⤞": "rarrfs", - "⤟": "larrbfs", - "⤠": "rarrbfs", - "⤣": "nwarhk", - "⤤": "nearhk", - "⤥": "searhk", - "⤦": "swarhk", - "⤧": "nwnear", - "⤨": "toea", - "⤩": "tosa", - "⤪": "swnwar", - "⤳": "rarrc", - "⤳̸": "nrarrc", - "⤵": "cudarrr", - "⤶": "ldca", - "⤷": "rdca", - "⤸": "cudarrl", - "⤹": "larrpl", - "⤼": "curarrm", - "⤽": "cularrp", - "⥅": "rarrpl", - "⥈": "harrcir", - "⥉": "Uarrocir", - "⥊": "lurdshar", - "⥋": "ldrushar", - "⥎": "LeftRightVector", - "⥏": "RightUpDownVector", - "⥐": "DownLeftRightVector", - "⥑": "LeftUpDownVector", - "⥒": "LeftVectorBar", - "⥓": "RightVectorBar", - "⥔": "RightUpVectorBar", - "⥕": "RightDownVectorBar", - "⥖": "DownLeftVectorBar", - "⥗": "DownRightVectorBar", - "⥘": "LeftUpVectorBar", - "⥙": "LeftDownVectorBar", - "⥚": "LeftTeeVector", - "⥛": "RightTeeVector", - "⥜": "RightUpTeeVector", - "⥝": "RightDownTeeVector", - "⥞": "DownLeftTeeVector", - "⥟": "DownRightTeeVector", - "⥠": "LeftUpTeeVector", - "⥡": "LeftDownTeeVector", - "⥢": "lHar", - "⥣": "uHar", - "⥤": "rHar", - "⥥": "dHar", - "⥦": "luruhar", - "⥧": "ldrdhar", - "⥨": "ruluhar", - "⥩": "rdldhar", - "⥪": "lharul", - "⥫": "llhard", - "⥬": "rharul", - "⥭": "lrhard", - "⥮": "udhar", - "⥯": "duhar", - "⥰": "RoundImplies", - "⥱": "erarr", - "⥲": "simrarr", - "⥳": "larrsim", - "⥴": "rarrsim", - "⥵": "rarrap", - "⥶": "ltlarr", - "⥸": "gtrarr", - "⥹": "subrarr", - "⥻": "suplarr", - "⥼": "lfisht", - "⥽": "rfisht", - "⥾": "ufisht", - "⥿": "dfisht", - "⦚": "vzigzag", - "⦜": "vangrt", - "⦝": "angrtvbd", - "⦤": "ange", - "⦥": "range", - "⦦": "dwangle", - "⦧": "uwangle", - "⦨": "angmsdaa", - "⦩": "angmsdab", - "⦪": "angmsdac", - "⦫": "angmsdad", - "⦬": "angmsdae", - "⦭": "angmsdaf", - "⦮": "angmsdag", - "⦯": "angmsdah", - "⦰": "bemptyv", - "⦱": "demptyv", - "⦲": "cemptyv", - "⦳": "raemptyv", - "⦴": "laemptyv", - "⦵": "ohbar", - "⦶": "omid", - "⦷": "opar", - "⦹": "operp", - "⦻": "olcross", - "⦼": "odsold", - "⦾": "olcir", - "⦿": "ofcir", - "⧀": "olt", - "⧁": "ogt", - "⧂": "cirscir", - "⧃": "cirE", - "⧄": "solb", - "⧅": "bsolb", - "⧉": "boxbox", - "⧍": "trisb", - "⧎": "rtriltri", - "⧏": "LeftTriangleBar", - "⧏̸": "NotLeftTriangleBar", - "⧐": "RightTriangleBar", - "⧐̸": "NotRightTriangleBar", - "⧜": "iinfin", - "⧝": "infintie", - "⧞": "nvinfin", - "⧣": "eparsl", - "⧤": "smeparsl", - "⧥": "eqvparsl", - "⧫": "lozf", - "⧴": "RuleDelayed", - "⧶": "dsol", - "⨀": "xodot", - "⨁": "xoplus", - "⨂": "xotime", - "⨄": "xuplus", - "⨆": "xsqcup", - "⨍": "fpartint", - "⨐": "cirfnint", - "⨑": "awint", - "⨒": "rppolint", - "⨓": "scpolint", - "⨔": "npolint", - "⨕": "pointint", - "⨖": "quatint", - "⨗": "intlarhk", - "⨢": "pluscir", - "⨣": "plusacir", - "⨤": "simplus", - "⨥": "plusdu", - "⨦": "plussim", - "⨧": "plustwo", - "⨩": "mcomma", - "⨪": "minusdu", - "⨭": "loplus", - "⨮": "roplus", - "⨯": "Cross", - "⨰": "timesd", - "⨱": "timesbar", - "⨳": "smashp", - "⨴": "lotimes", - "⨵": "rotimes", - "⨶": "otimesas", - "⨷": "Otimes", - "⨸": "odiv", - "⨹": "triplus", - "⨺": "triminus", - "⨻": "tritime", - "⨼": "iprod", - "⨿": "amalg", - "⩀": "capdot", - "⩂": "ncup", - "⩃": "ncap", - "⩄": "capand", - "⩅": "cupor", - "⩆": "cupcap", - "⩇": "capcup", - "⩈": "cupbrcap", - "⩉": "capbrcup", - "⩊": "cupcup", - "⩋": "capcap", - "⩌": "ccups", - "⩍": "ccaps", - "⩐": "ccupssm", - "⩓": "And", - "⩔": "Or", - "⩕": "andand", - "⩖": "oror", - "⩗": "orslope", - "⩘": "andslope", - "⩚": "andv", - "⩛": "orv", - "⩜": "andd", - "⩝": "ord", - "⩟": "wedbar", - "⩦": "sdote", - "⩪": "simdot", - "⩭": "congdot", - "⩭̸": "ncongdot", - "⩮": "easter", - "⩯": "apacir", - "⩰": "apE", - "⩰̸": "napE", - "⩱": "eplus", - "⩲": "pluse", - "⩳": "Esim", - "⩷": "eDDot", - "⩸": "equivDD", - "⩹": "ltcir", - "⩺": "gtcir", - "⩻": "ltquest", - "⩼": "gtquest", - "⩽": "les", - "⩽̸": "nles", - "⩾": "ges", - "⩾̸": "nges", - "⩿": "lesdot", - "⪀": "gesdot", - "⪁": "lesdoto", - "⪂": "gesdoto", - "⪃": "lesdotor", - "⪄": "gesdotol", - "⪅": "lap", - "⪆": "gap", - "⪇": "lne", - "⪈": "gne", - "⪉": "lnap", - "⪊": "gnap", - "⪋": "lEg", - "⪌": "gEl", - "⪍": "lsime", - "⪎": "gsime", - "⪏": "lsimg", - "⪐": "gsiml", - "⪑": "lgE", - "⪒": "glE", - "⪓": "lesges", - "⪔": "gesles", - "⪕": "els", - "⪖": "egs", - "⪗": "elsdot", - "⪘": "egsdot", - "⪙": "el", - "⪚": "eg", - "⪝": "siml", - "⪞": "simg", - "⪟": "simlE", - "⪠": "simgE", - "⪡": "LessLess", - "⪡̸": "NotNestedLessLess", - "⪢": "GreaterGreater", - "⪢̸": "NotNestedGreaterGreater", - "⪤": "glj", - "⪥": "gla", - "⪦": "ltcc", - "⪧": "gtcc", - "⪨": "lescc", - "⪩": "gescc", - "⪪": "smt", - "⪫": "lat", - "⪬": "smte", - "⪬︀": "smtes", - "⪭": "late", - "⪭︀": "lates", - "⪮": "bumpE", - "⪯": "pre", - "⪯̸": "npre", - "⪰": "sce", - "⪰̸": "nsce", - "⪳": "prE", - "⪴": "scE", - "⪵": "prnE", - "⪶": "scnE", - "⪷": "prap", - "⪸": "scap", - "⪹": "prnap", - "⪺": "scnap", - "⪻": "Pr", - "⪼": "Sc", - "⪽": "subdot", - "⪾": "supdot", - "⪿": "subplus", - "⫀": "supplus", - "⫁": "submult", - "⫂": "supmult", - "⫃": "subedot", - "⫄": "supedot", - "⫅": "subE", - "⫅̸": "nsubE", - "⫆": "supE", - "⫆̸": "nsupE", - "⫇": "subsim", - "⫈": "supsim", - "⫋︀": "vsubnE", - "⫋": "subnE", - "⫌︀": "vsupnE", - "⫌": "supnE", - "⫏": "csub", - "⫐": "csup", - "⫑": "csube", - "⫒": "csupe", - "⫓": "subsup", - "⫔": "supsub", - "⫕": "subsub", - "⫖": "supsup", - "⫗": "suphsub", - "⫘": "supdsub", - "⫙": "forkv", - "⫚": "topfork", - "⫛": "mlcp", - "⫤": "Dashv", - "⫦": "Vdashl", - "⫧": "Barv", - "⫨": "vBar", - "⫩": "vBarv", - "⫫": "Vbar", - "⫬": "Not", - "⫭": "bNot", - "⫮": "rnmid", - "⫯": "cirmid", - "⫰": "midcir", - "⫱": "topcir", - "⫲": "nhpar", - "⫳": "parsim", - "⫽": "parsl", - "⫽⃥": "nparsl", - "♭": "flat", - "♮": "natur", - "♯": "sharp", - "¤": "curren", - "¢": "cent", - $: "dollar", - "£": "pound", - "¥": "yen", - "€": "euro", - "¹": "sup1", - "½": "half", - "⅓": "frac13", - "¼": "frac14", - "⅕": "frac15", - "⅙": "frac16", - "⅛": "frac18", - "²": "sup2", - "⅔": "frac23", - "⅖": "frac25", - "³": "sup3", - "¾": "frac34", - "⅗": "frac35", - "⅜": "frac38", - "⅘": "frac45", - "⅚": "frac56", - "⅝": "frac58", - "⅞": "frac78", - 𝒶: "ascr", - 𝕒: "aopf", - 𝔞: "afr", - 𝔸: "Aopf", - 𝔄: "Afr", - 𝒜: "Ascr", - ª: "ordf", - á: "aacute", - Á: "Aacute", - à: "agrave", - À: "Agrave", - ă: "abreve", - Ă: "Abreve", - â: "acirc", - Â: "Acirc", - å: "aring", - Å: "angst", - ä: "auml", - Ä: "Auml", - ã: "atilde", - Ã: "Atilde", - ą: "aogon", - Ą: "Aogon", - ā: "amacr", - Ā: "Amacr", - æ: "aelig", - Æ: "AElig", - 𝒷: "bscr", - 𝕓: "bopf", - 𝔟: "bfr", - 𝔹: "Bopf", - ℬ: "Bscr", - 𝔅: "Bfr", - 𝔠: "cfr", - 𝒸: "cscr", - 𝕔: "copf", - ℭ: "Cfr", - 𝒞: "Cscr", - ℂ: "Copf", - ć: "cacute", - Ć: "Cacute", - ĉ: "ccirc", - Ĉ: "Ccirc", - č: "ccaron", - Č: "Ccaron", - ċ: "cdot", - Ċ: "Cdot", - ç: "ccedil", - Ç: "Ccedil", - "℅": "incare", - 𝔡: "dfr", - ⅆ: "dd", - 𝕕: "dopf", - 𝒹: "dscr", - 𝒟: "Dscr", - 𝔇: "Dfr", - ⅅ: "DD", - 𝔻: "Dopf", - ď: "dcaron", - Ď: "Dcaron", - đ: "dstrok", - Đ: "Dstrok", - ð: "eth", - Ð: "ETH", - ⅇ: "ee", - ℯ: "escr", - 𝔢: "efr", - 𝕖: "eopf", - ℰ: "Escr", - 𝔈: "Efr", - 𝔼: "Eopf", - é: "eacute", - É: "Eacute", - è: "egrave", - È: "Egrave", - ê: "ecirc", - Ê: "Ecirc", - ě: "ecaron", - Ě: "Ecaron", - ë: "euml", - Ë: "Euml", - ė: "edot", - Ė: "Edot", - ę: "eogon", - Ę: "Eogon", - ē: "emacr", - Ē: "Emacr", - 𝔣: "ffr", - 𝕗: "fopf", - 𝒻: "fscr", - 𝔉: "Ffr", - 𝔽: "Fopf", - ℱ: "Fscr", - ff: "fflig", - ffi: "ffilig", - ffl: "ffllig", - fi: "filig", - fj: "fjlig", - fl: "fllig", - ƒ: "fnof", - ℊ: "gscr", - 𝕘: "gopf", - 𝔤: "gfr", - 𝒢: "Gscr", - 𝔾: "Gopf", - 𝔊: "Gfr", - ǵ: "gacute", - ğ: "gbreve", - Ğ: "Gbreve", - ĝ: "gcirc", - Ĝ: "Gcirc", - ġ: "gdot", - Ġ: "Gdot", - Ģ: "Gcedil", - 𝔥: "hfr", - ℎ: "planckh", - 𝒽: "hscr", - 𝕙: "hopf", - ℋ: "Hscr", - ℌ: "Hfr", - ℍ: "Hopf", - ĥ: "hcirc", - Ĥ: "Hcirc", - ℏ: "hbar", - ħ: "hstrok", - Ħ: "Hstrok", - 𝕚: "iopf", - 𝔦: "ifr", - 𝒾: "iscr", - ⅈ: "ii", - 𝕀: "Iopf", - ℐ: "Iscr", - ℑ: "Im", - í: "iacute", - Í: "Iacute", - ì: "igrave", - Ì: "Igrave", - î: "icirc", - Î: "Icirc", - ï: "iuml", - Ï: "Iuml", - ĩ: "itilde", - Ĩ: "Itilde", - İ: "Idot", - į: "iogon", - Į: "Iogon", - ī: "imacr", - Ī: "Imacr", - ij: "ijlig", - IJ: "IJlig", - ı: "imath", - 𝒿: "jscr", - 𝕛: "jopf", - 𝔧: "jfr", - 𝒥: "Jscr", - 𝔍: "Jfr", - 𝕁: "Jopf", - ĵ: "jcirc", - Ĵ: "Jcirc", - ȷ: "jmath", - 𝕜: "kopf", - 𝓀: "kscr", - 𝔨: "kfr", - 𝒦: "Kscr", - 𝕂: "Kopf", - 𝔎: "Kfr", - ķ: "kcedil", - Ķ: "Kcedil", - 𝔩: "lfr", - 𝓁: "lscr", - ℓ: "ell", - 𝕝: "lopf", - ℒ: "Lscr", - 𝔏: "Lfr", - 𝕃: "Lopf", - ĺ: "lacute", - Ĺ: "Lacute", - ľ: "lcaron", - Ľ: "Lcaron", - ļ: "lcedil", - Ļ: "Lcedil", - ł: "lstrok", - Ł: "Lstrok", - ŀ: "lmidot", - Ŀ: "Lmidot", - 𝔪: "mfr", - 𝕞: "mopf", - 𝓂: "mscr", - 𝔐: "Mfr", - 𝕄: "Mopf", - ℳ: "Mscr", - 𝔫: "nfr", - 𝕟: "nopf", - 𝓃: "nscr", - ℕ: "Nopf", - 𝒩: "Nscr", - 𝔑: "Nfr", - ń: "nacute", - Ń: "Nacute", - ň: "ncaron", - Ň: "Ncaron", - ñ: "ntilde", - Ñ: "Ntilde", - ņ: "ncedil", - Ņ: "Ncedil", - "№": "numero", - ŋ: "eng", - Ŋ: "ENG", - 𝕠: "oopf", - 𝔬: "ofr", - ℴ: "oscr", - 𝒪: "Oscr", - 𝔒: "Ofr", - 𝕆: "Oopf", - º: "ordm", - ó: "oacute", - Ó: "Oacute", - ò: "ograve", - Ò: "Ograve", - ô: "ocirc", - Ô: "Ocirc", - ö: "ouml", - Ö: "Ouml", - ő: "odblac", - Ő: "Odblac", - õ: "otilde", - Õ: "Otilde", - ø: "oslash", - Ø: "Oslash", - ō: "omacr", - Ō: "Omacr", - œ: "oelig", - Œ: "OElig", - 𝔭: "pfr", - 𝓅: "pscr", - 𝕡: "popf", - ℙ: "Popf", - 𝔓: "Pfr", - 𝒫: "Pscr", - 𝕢: "qopf", - 𝔮: "qfr", - 𝓆: "qscr", - 𝒬: "Qscr", - 𝔔: "Qfr", - ℚ: "Qopf", - ĸ: "kgreen", - 𝔯: "rfr", - 𝕣: "ropf", - 𝓇: "rscr", - ℛ: "Rscr", - ℜ: "Re", - ℝ: "Ropf", - ŕ: "racute", - Ŕ: "Racute", - ř: "rcaron", - Ř: "Rcaron", - ŗ: "rcedil", - Ŗ: "Rcedil", - 𝕤: "sopf", - 𝓈: "sscr", - 𝔰: "sfr", - 𝕊: "Sopf", - 𝔖: "Sfr", - 𝒮: "Sscr", - "Ⓢ": "oS", - ś: "sacute", - Ś: "Sacute", - ŝ: "scirc", - Ŝ: "Scirc", - š: "scaron", - Š: "Scaron", - ş: "scedil", - Ş: "Scedil", - ß: "szlig", - 𝔱: "tfr", - 𝓉: "tscr", - 𝕥: "topf", - 𝒯: "Tscr", - 𝔗: "Tfr", - 𝕋: "Topf", - ť: "tcaron", - Ť: "Tcaron", - ţ: "tcedil", - Ţ: "Tcedil", - "™": "trade", - ŧ: "tstrok", - Ŧ: "Tstrok", - 𝓊: "uscr", - 𝕦: "uopf", - 𝔲: "ufr", - 𝕌: "Uopf", - 𝔘: "Ufr", - 𝒰: "Uscr", - ú: "uacute", - Ú: "Uacute", - ù: "ugrave", - Ù: "Ugrave", - ŭ: "ubreve", - Ŭ: "Ubreve", - û: "ucirc", - Û: "Ucirc", - ů: "uring", - Ů: "Uring", - ü: "uuml", - Ü: "Uuml", - ű: "udblac", - Ű: "Udblac", - ũ: "utilde", - Ũ: "Utilde", - ų: "uogon", - Ų: "Uogon", - ū: "umacr", - Ū: "Umacr", - 𝔳: "vfr", - 𝕧: "vopf", - 𝓋: "vscr", - 𝔙: "Vfr", - 𝕍: "Vopf", - 𝒱: "Vscr", - 𝕨: "wopf", - 𝓌: "wscr", - 𝔴: "wfr", - 𝒲: "Wscr", - 𝕎: "Wopf", - 𝔚: "Wfr", - ŵ: "wcirc", - Ŵ: "Wcirc", - 𝔵: "xfr", - 𝓍: "xscr", - 𝕩: "xopf", - 𝕏: "Xopf", - 𝔛: "Xfr", - 𝒳: "Xscr", - 𝔶: "yfr", - 𝓎: "yscr", - 𝕪: "yopf", - 𝒴: "Yscr", - 𝔜: "Yfr", - 𝕐: "Yopf", - ý: "yacute", - Ý: "Yacute", - ŷ: "ycirc", - Ŷ: "Ycirc", - ÿ: "yuml", - Ÿ: "Yuml", - 𝓏: "zscr", - 𝔷: "zfr", - 𝕫: "zopf", - ℨ: "Zfr", - ℤ: "Zopf", - 𝒵: "Zscr", - ź: "zacute", - Ź: "Zacute", - ž: "zcaron", - Ž: "Zcaron", - ż: "zdot", - Ż: "Zdot", - Ƶ: "imped", - þ: "thorn", - Þ: "THORN", - ʼn: "napos", - α: "alpha", - Α: "Alpha", - β: "beta", - Β: "Beta", - γ: "gamma", - Γ: "Gamma", - δ: "delta", - Δ: "Delta", - ε: "epsi", - ϵ: "epsiv", - Ε: "Epsilon", - ϝ: "gammad", - Ϝ: "Gammad", - ζ: "zeta", - Ζ: "Zeta", - η: "eta", - Η: "Eta", - θ: "theta", - ϑ: "thetav", - Θ: "Theta", - ι: "iota", - Ι: "Iota", - κ: "kappa", - ϰ: "kappav", - Κ: "Kappa", - λ: "lambda", - Λ: "Lambda", - μ: "mu", - µ: "micro", - Μ: "Mu", - ν: "nu", - Ν: "Nu", - ξ: "xi", - Ξ: "Xi", - ο: "omicron", - Ο: "Omicron", - π: "pi", - ϖ: "piv", - Π: "Pi", - ρ: "rho", - ϱ: "rhov", - Ρ: "Rho", - σ: "sigma", - Σ: "Sigma", - ς: "sigmaf", - τ: "tau", - Τ: "Tau", - υ: "upsi", - Υ: "Upsilon", - ϒ: "Upsi", - φ: "phi", - ϕ: "phiv", - Φ: "Phi", - χ: "chi", - Χ: "Chi", - ψ: "psi", - Ψ: "Psi", - ω: "omega", - Ω: "ohm", - а: "acy", - А: "Acy", - б: "bcy", - Б: "Bcy", - в: "vcy", - В: "Vcy", - г: "gcy", - Г: "Gcy", - ѓ: "gjcy", - Ѓ: "GJcy", - д: "dcy", - Д: "Dcy", - ђ: "djcy", - Ђ: "DJcy", - е: "iecy", - Е: "IEcy", - ё: "iocy", - Ё: "IOcy", - є: "jukcy", - Є: "Jukcy", - ж: "zhcy", - Ж: "ZHcy", - з: "zcy", - З: "Zcy", - ѕ: "dscy", - Ѕ: "DScy", - и: "icy", - И: "Icy", - і: "iukcy", - І: "Iukcy", - ї: "yicy", - Ї: "YIcy", - й: "jcy", - Й: "Jcy", - ј: "jsercy", - Ј: "Jsercy", - к: "kcy", - К: "Kcy", - ќ: "kjcy", - Ќ: "KJcy", - л: "lcy", - Л: "Lcy", - љ: "ljcy", - Љ: "LJcy", - м: "mcy", - М: "Mcy", - н: "ncy", - Н: "Ncy", - њ: "njcy", - Њ: "NJcy", - о: "ocy", - О: "Ocy", - п: "pcy", - П: "Pcy", - р: "rcy", - Р: "Rcy", - с: "scy", - С: "Scy", - т: "tcy", - Т: "Tcy", - ћ: "tshcy", - Ћ: "TSHcy", - у: "ucy", - У: "Ucy", - ў: "ubrcy", - Ў: "Ubrcy", - ф: "fcy", - Ф: "Fcy", - х: "khcy", - Х: "KHcy", - ц: "tscy", - Ц: "TScy", - ч: "chcy", - Ч: "CHcy", - џ: "dzcy", - Џ: "DZcy", - ш: "shcy", - Ш: "SHcy", - щ: "shchcy", - Щ: "SHCHcy", - ъ: "hardcy", - Ъ: "HARDcy", - ы: "ycy", - Ы: "Ycy", - ь: "softcy", - Ь: "SOFTcy", - э: "ecy", - Э: "Ecy", - ю: "yucy", - Ю: "YUcy", - я: "yacy", - Я: "YAcy", - ℵ: "aleph", - ℶ: "beth", - ℷ: "gimel", - ℸ: "daleth", - }, - p = /["&'<>`]/g, - d = { - '"': """, - "&": "&", - "'": "'", - "<": "<", - ">": ">", - "`": "`", - }, - f = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/, - h = - /[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/, - m = - /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g, - g = { - aacute: "á", - Aacute: "Á", - abreve: "ă", - Abreve: "Ă", - ac: "∾", - acd: "∿", - acE: "∾̳", - acirc: "â", - Acirc: "Â", - acute: "´", - acy: "а", - Acy: "А", - aelig: "æ", - AElig: "Æ", - af: "⁡", - afr: "𝔞", - Afr: "𝔄", - agrave: "à", - Agrave: "À", - alefsym: "ℵ", - aleph: "ℵ", - alpha: "α", - Alpha: "Α", - amacr: "ā", - Amacr: "Ā", - amalg: "⨿", - amp: "&", - AMP: "&", - and: "∧", - And: "⩓", - andand: "⩕", - andd: "⩜", - andslope: "⩘", - andv: "⩚", - ang: "∠", - ange: "⦤", - angle: "∠", - angmsd: "∡", - angmsdaa: "⦨", - angmsdab: "⦩", - angmsdac: "⦪", - angmsdad: "⦫", - angmsdae: "⦬", - angmsdaf: "⦭", - angmsdag: "⦮", - angmsdah: "⦯", - angrt: "∟", - angrtvb: "⊾", - angrtvbd: "⦝", - angsph: "∢", - angst: "Å", - angzarr: "⍼", - aogon: "ą", - Aogon: "Ą", - aopf: "𝕒", - Aopf: "𝔸", - ap: "≈", - apacir: "⩯", - ape: "≊", - apE: "⩰", - apid: "≋", - apos: "'", - ApplyFunction: "⁡", - approx: "≈", - approxeq: "≊", - aring: "å", - Aring: "Å", - ascr: "𝒶", - Ascr: "𝒜", - Assign: "≔", - ast: "*", - asymp: "≈", - asympeq: "≍", - atilde: "ã", - Atilde: "Ã", - auml: "ä", - Auml: "Ä", - awconint: "∳", - awint: "⨑", - backcong: "≌", - backepsilon: "϶", - backprime: "‵", - backsim: "∽", - backsimeq: "⋍", - Backslash: "∖", - Barv: "⫧", - barvee: "⊽", - barwed: "⌅", - Barwed: "⌆", - barwedge: "⌅", - bbrk: "⎵", - bbrktbrk: "⎶", - bcong: "≌", - bcy: "б", - Bcy: "Б", - bdquo: "„", - becaus: "∵", - because: "∵", - Because: "∵", - bemptyv: "⦰", - bepsi: "϶", - bernou: "ℬ", - Bernoullis: "ℬ", - beta: "β", - Beta: "Β", - beth: "ℶ", - between: "≬", - bfr: "𝔟", - Bfr: "𝔅", - bigcap: "⋂", - bigcirc: "◯", - bigcup: "⋃", - bigodot: "⨀", - bigoplus: "⨁", - bigotimes: "⨂", - bigsqcup: "⨆", - bigstar: "★", - bigtriangledown: "▽", - bigtriangleup: "△", - biguplus: "⨄", - bigvee: "⋁", - bigwedge: "⋀", - bkarow: "⤍", - blacklozenge: "⧫", - blacksquare: "▪", - blacktriangle: "▴", - blacktriangledown: "▾", - blacktriangleleft: "◂", - blacktriangleright: "▸", - blank: "␣", - blk12: "▒", - blk14: "░", - blk34: "▓", - block: "█", - bne: "=⃥", - bnequiv: "≡⃥", - bnot: "⌐", - bNot: "⫭", - bopf: "𝕓", - Bopf: "𝔹", - bot: "⊥", - bottom: "⊥", - bowtie: "⋈", - boxbox: "⧉", - boxdl: "┐", - boxdL: "╕", - boxDl: "╖", - boxDL: "╗", - boxdr: "┌", - boxdR: "╒", - boxDr: "╓", - boxDR: "╔", - boxh: "─", - boxH: "═", - boxhd: "┬", - boxhD: "╥", - boxHd: "╤", - boxHD: "╦", - boxhu: "┴", - boxhU: "╨", - boxHu: "╧", - boxHU: "╩", - boxminus: "⊟", - boxplus: "⊞", - boxtimes: "⊠", - boxul: "┘", - boxuL: "╛", - boxUl: "╜", - boxUL: "╝", - boxur: "└", - boxuR: "╘", - boxUr: "╙", - boxUR: "╚", - boxv: "│", - boxV: "║", - boxvh: "┼", - boxvH: "╪", - boxVh: "╫", - boxVH: "╬", - boxvl: "┤", - boxvL: "╡", - boxVl: "╢", - boxVL: "╣", - boxvr: "├", - boxvR: "╞", - boxVr: "╟", - boxVR: "╠", - bprime: "‵", - breve: "˘", - Breve: "˘", - brvbar: "¦", - bscr: "𝒷", - Bscr: "ℬ", - bsemi: "⁏", - bsim: "∽", - bsime: "⋍", - bsol: "\\", - bsolb: "⧅", - bsolhsub: "⟈", - bull: "•", - bullet: "•", - bump: "≎", - bumpe: "≏", - bumpE: "⪮", - bumpeq: "≏", - Bumpeq: "≎", - cacute: "ć", - Cacute: "Ć", - cap: "∩", - Cap: "⋒", - capand: "⩄", - capbrcup: "⩉", - capcap: "⩋", - capcup: "⩇", - capdot: "⩀", - CapitalDifferentialD: "ⅅ", - caps: "∩︀", - caret: "⁁", - caron: "ˇ", - Cayleys: "ℭ", - ccaps: "⩍", - ccaron: "č", - Ccaron: "Č", - ccedil: "ç", - Ccedil: "Ç", - ccirc: "ĉ", - Ccirc: "Ĉ", - Cconint: "∰", - ccups: "⩌", - ccupssm: "⩐", - cdot: "ċ", - Cdot: "Ċ", - cedil: "¸", - Cedilla: "¸", - cemptyv: "⦲", - cent: "¢", - centerdot: "·", - CenterDot: "·", - cfr: "𝔠", - Cfr: "ℭ", - chcy: "ч", - CHcy: "Ч", - check: "✓", - checkmark: "✓", - chi: "χ", - Chi: "Χ", - cir: "○", - circ: "ˆ", - circeq: "≗", - circlearrowleft: "↺", - circlearrowright: "↻", - circledast: "⊛", - circledcirc: "⊚", - circleddash: "⊝", - CircleDot: "⊙", - circledR: "®", - circledS: "Ⓢ", - CircleMinus: "⊖", - CirclePlus: "⊕", - CircleTimes: "⊗", - cire: "≗", - cirE: "⧃", - cirfnint: "⨐", - cirmid: "⫯", - cirscir: "⧂", - ClockwiseContourIntegral: "∲", - CloseCurlyDoubleQuote: "”", - CloseCurlyQuote: "’", - clubs: "♣", - clubsuit: "♣", - colon: ":", - Colon: "∷", - colone: "≔", - Colone: "⩴", - coloneq: "≔", - comma: ",", - commat: "@", - comp: "∁", - compfn: "∘", - complement: "∁", - complexes: "ℂ", - cong: "≅", - congdot: "⩭", - Congruent: "≡", - conint: "∮", - Conint: "∯", - ContourIntegral: "∮", - copf: "𝕔", - Copf: "ℂ", - coprod: "∐", - Coproduct: "∐", - copy: "©", - COPY: "©", - copysr: "℗", - CounterClockwiseContourIntegral: "∳", - crarr: "↵", - cross: "✗", - Cross: "⨯", - cscr: "𝒸", - Cscr: "𝒞", - csub: "⫏", - csube: "⫑", - csup: "⫐", - csupe: "⫒", - ctdot: "⋯", - cudarrl: "⤸", - cudarrr: "⤵", - cuepr: "⋞", - cuesc: "⋟", - cularr: "↶", - cularrp: "⤽", - cup: "∪", - Cup: "⋓", - cupbrcap: "⩈", - cupcap: "⩆", - CupCap: "≍", - cupcup: "⩊", - cupdot: "⊍", - cupor: "⩅", - cups: "∪︀", - curarr: "↷", - curarrm: "⤼", - curlyeqprec: "⋞", - curlyeqsucc: "⋟", - curlyvee: "⋎", - curlywedge: "⋏", - curren: "¤", - curvearrowleft: "↶", - curvearrowright: "↷", - cuvee: "⋎", - cuwed: "⋏", - cwconint: "∲", - cwint: "∱", - cylcty: "⌭", - dagger: "†", - Dagger: "‡", - daleth: "ℸ", - darr: "↓", - dArr: "⇓", - Darr: "↡", - dash: "‐", - dashv: "⊣", - Dashv: "⫤", - dbkarow: "⤏", - dblac: "˝", - dcaron: "ď", - Dcaron: "Ď", - dcy: "д", - Dcy: "Д", - dd: "ⅆ", - DD: "ⅅ", - ddagger: "‡", - ddarr: "⇊", - DDotrahd: "⤑", - ddotseq: "⩷", - deg: "°", - Del: "∇", - delta: "δ", - Delta: "Δ", - demptyv: "⦱", - dfisht: "⥿", - dfr: "𝔡", - Dfr: "𝔇", - dHar: "⥥", - dharl: "⇃", - dharr: "⇂", - DiacriticalAcute: "´", - DiacriticalDot: "˙", - DiacriticalDoubleAcute: "˝", - DiacriticalGrave: "`", - DiacriticalTilde: "˜", - diam: "⋄", - diamond: "⋄", - Diamond: "⋄", - diamondsuit: "♦", - diams: "♦", - die: "¨", - DifferentialD: "ⅆ", - digamma: "ϝ", - disin: "⋲", - div: "÷", - divide: "÷", - divideontimes: "⋇", - divonx: "⋇", - djcy: "ђ", - DJcy: "Ђ", - dlcorn: "⌞", - dlcrop: "⌍", - dollar: "$", - dopf: "𝕕", - Dopf: "𝔻", - dot: "˙", - Dot: "¨", - DotDot: "⃜", - doteq: "≐", - doteqdot: "≑", - DotEqual: "≐", - dotminus: "∸", - dotplus: "∔", - dotsquare: "⊡", - doublebarwedge: "⌆", - DoubleContourIntegral: "∯", - DoubleDot: "¨", - DoubleDownArrow: "⇓", - DoubleLeftArrow: "⇐", - DoubleLeftRightArrow: "⇔", - DoubleLeftTee: "⫤", - DoubleLongLeftArrow: "⟸", - DoubleLongLeftRightArrow: "⟺", - DoubleLongRightArrow: "⟹", - DoubleRightArrow: "⇒", - DoubleRightTee: "⊨", - DoubleUpArrow: "⇑", - DoubleUpDownArrow: "⇕", - DoubleVerticalBar: "∥", - downarrow: "↓", - Downarrow: "⇓", - DownArrow: "↓", - DownArrowBar: "⤓", - DownArrowUpArrow: "⇵", - DownBreve: "̑", - downdownarrows: "⇊", - downharpoonleft: "⇃", - downharpoonright: "⇂", - DownLeftRightVector: "⥐", - DownLeftTeeVector: "⥞", - DownLeftVector: "↽", - DownLeftVectorBar: "⥖", - DownRightTeeVector: "⥟", - DownRightVector: "⇁", - DownRightVectorBar: "⥗", - DownTee: "⊤", - DownTeeArrow: "↧", - drbkarow: "⤐", - drcorn: "⌟", - drcrop: "⌌", - dscr: "𝒹", - Dscr: "𝒟", - dscy: "ѕ", - DScy: "Ѕ", - dsol: "⧶", - dstrok: "đ", - Dstrok: "Đ", - dtdot: "⋱", - dtri: "▿", - dtrif: "▾", - duarr: "⇵", - duhar: "⥯", - dwangle: "⦦", - dzcy: "џ", - DZcy: "Џ", - dzigrarr: "⟿", - eacute: "é", - Eacute: "É", - easter: "⩮", - ecaron: "ě", - Ecaron: "Ě", - ecir: "≖", - ecirc: "ê", - Ecirc: "Ê", - ecolon: "≕", - ecy: "э", - Ecy: "Э", - eDDot: "⩷", - edot: "ė", - eDot: "≑", - Edot: "Ė", - ee: "ⅇ", - efDot: "≒", - efr: "𝔢", - Efr: "𝔈", - eg: "⪚", - egrave: "è", - Egrave: "È", - egs: "⪖", - egsdot: "⪘", - el: "⪙", - Element: "∈", - elinters: "⏧", - ell: "ℓ", - els: "⪕", - elsdot: "⪗", - emacr: "ē", - Emacr: "Ē", - empty: "∅", - emptyset: "∅", - EmptySmallSquare: "◻", - emptyv: "∅", - EmptyVerySmallSquare: "▫", - emsp: " ", - emsp13: " ", - emsp14: " ", - eng: "ŋ", - ENG: "Ŋ", - ensp: " ", - eogon: "ę", - Eogon: "Ę", - eopf: "𝕖", - Eopf: "𝔼", - epar: "⋕", - eparsl: "⧣", - eplus: "⩱", - epsi: "ε", - epsilon: "ε", - Epsilon: "Ε", - epsiv: "ϵ", - eqcirc: "≖", - eqcolon: "≕", - eqsim: "≂", - eqslantgtr: "⪖", - eqslantless: "⪕", - Equal: "⩵", - equals: "=", - EqualTilde: "≂", - equest: "≟", - Equilibrium: "⇌", - equiv: "≡", - equivDD: "⩸", - eqvparsl: "⧥", - erarr: "⥱", - erDot: "≓", - escr: "ℯ", - Escr: "ℰ", - esdot: "≐", - esim: "≂", - Esim: "⩳", - eta: "η", - Eta: "Η", - eth: "ð", - ETH: "Ð", - euml: "ë", - Euml: "Ë", - euro: "€", - excl: "!", - exist: "∃", - Exists: "∃", - expectation: "ℰ", - exponentiale: "ⅇ", - ExponentialE: "ⅇ", - fallingdotseq: "≒", - fcy: "ф", - Fcy: "Ф", - female: "♀", - ffilig: "ffi", - fflig: "ff", - ffllig: "ffl", - ffr: "𝔣", - Ffr: "𝔉", - filig: "fi", - FilledSmallSquare: "◼", - FilledVerySmallSquare: "▪", - fjlig: "fj", - flat: "♭", - fllig: "fl", - fltns: "▱", - fnof: "ƒ", - fopf: "𝕗", - Fopf: "𝔽", - forall: "∀", - ForAll: "∀", - fork: "⋔", - forkv: "⫙", - Fouriertrf: "ℱ", - fpartint: "⨍", - frac12: "½", - frac13: "⅓", - frac14: "¼", - frac15: "⅕", - frac16: "⅙", - frac18: "⅛", - frac23: "⅔", - frac25: "⅖", - frac34: "¾", - frac35: "⅗", - frac38: "⅜", - frac45: "⅘", - frac56: "⅚", - frac58: "⅝", - frac78: "⅞", - frasl: "⁄", - frown: "⌢", - fscr: "𝒻", - Fscr: "ℱ", - gacute: "ǵ", - gamma: "γ", - Gamma: "Γ", - gammad: "ϝ", - Gammad: "Ϝ", - gap: "⪆", - gbreve: "ğ", - Gbreve: "Ğ", - Gcedil: "Ģ", - gcirc: "ĝ", - Gcirc: "Ĝ", - gcy: "г", - Gcy: "Г", - gdot: "ġ", - Gdot: "Ġ", - ge: "≥", - gE: "≧", - gel: "⋛", - gEl: "⪌", - geq: "≥", - geqq: "≧", - geqslant: "⩾", - ges: "⩾", - gescc: "⪩", - gesdot: "⪀", - gesdoto: "⪂", - gesdotol: "⪄", - gesl: "⋛︀", - gesles: "⪔", - gfr: "𝔤", - Gfr: "𝔊", - gg: "≫", - Gg: "⋙", - ggg: "⋙", - gimel: "ℷ", - gjcy: "ѓ", - GJcy: "Ѓ", - gl: "≷", - gla: "⪥", - glE: "⪒", - glj: "⪤", - gnap: "⪊", - gnapprox: "⪊", - gne: "⪈", - gnE: "≩", - gneq: "⪈", - gneqq: "≩", - gnsim: "⋧", - gopf: "𝕘", - Gopf: "𝔾", - grave: "`", - GreaterEqual: "≥", - GreaterEqualLess: "⋛", - GreaterFullEqual: "≧", - GreaterGreater: "⪢", - GreaterLess: "≷", - GreaterSlantEqual: "⩾", - GreaterTilde: "≳", - gscr: "ℊ", - Gscr: "𝒢", - gsim: "≳", - gsime: "⪎", - gsiml: "⪐", - gt: ">", - Gt: "≫", - GT: ">", - gtcc: "⪧", - gtcir: "⩺", - gtdot: "⋗", - gtlPar: "⦕", - gtquest: "⩼", - gtrapprox: "⪆", - gtrarr: "⥸", - gtrdot: "⋗", - gtreqless: "⋛", - gtreqqless: "⪌", - gtrless: "≷", - gtrsim: "≳", - gvertneqq: "≩︀", - gvnE: "≩︀", - Hacek: "ˇ", - hairsp: " ", - half: "½", - hamilt: "ℋ", - hardcy: "ъ", - HARDcy: "Ъ", - harr: "↔", - hArr: "⇔", - harrcir: "⥈", - harrw: "↭", - Hat: "^", - hbar: "ℏ", - hcirc: "ĥ", - Hcirc: "Ĥ", - hearts: "♥", - heartsuit: "♥", - hellip: "…", - hercon: "⊹", - hfr: "𝔥", - Hfr: "ℌ", - HilbertSpace: "ℋ", - hksearow: "⤥", - hkswarow: "⤦", - hoarr: "⇿", - homtht: "∻", - hookleftarrow: "↩", - hookrightarrow: "↪", - hopf: "𝕙", - Hopf: "ℍ", - horbar: "―", - HorizontalLine: "─", - hscr: "𝒽", - Hscr: "ℋ", - hslash: "ℏ", - hstrok: "ħ", - Hstrok: "Ħ", - HumpDownHump: "≎", - HumpEqual: "≏", - hybull: "⁃", - hyphen: "‐", - iacute: "í", - Iacute: "Í", - ic: "⁣", - icirc: "î", - Icirc: "Î", - icy: "и", - Icy: "И", - Idot: "İ", - iecy: "е", - IEcy: "Е", - iexcl: "¡", - iff: "⇔", - ifr: "𝔦", - Ifr: "ℑ", - igrave: "ì", - Igrave: "Ì", - ii: "ⅈ", - iiiint: "⨌", - iiint: "∭", - iinfin: "⧜", - iiota: "℩", - ijlig: "ij", - IJlig: "IJ", - Im: "ℑ", - imacr: "ī", - Imacr: "Ī", - image: "ℑ", - ImaginaryI: "ⅈ", - imagline: "ℐ", - imagpart: "ℑ", - imath: "ı", - imof: "⊷", - imped: "Ƶ", - Implies: "⇒", - in: "∈", - incare: "℅", - infin: "∞", - infintie: "⧝", - inodot: "ı", - int: "∫", - Int: "∬", - intcal: "⊺", - integers: "ℤ", - Integral: "∫", - intercal: "⊺", - Intersection: "⋂", - intlarhk: "⨗", - intprod: "⨼", - InvisibleComma: "⁣", - InvisibleTimes: "⁢", - iocy: "ё", - IOcy: "Ё", - iogon: "į", - Iogon: "Į", - iopf: "𝕚", - Iopf: "𝕀", - iota: "ι", - Iota: "Ι", - iprod: "⨼", - iquest: "¿", - iscr: "𝒾", - Iscr: "ℐ", - isin: "∈", - isindot: "⋵", - isinE: "⋹", - isins: "⋴", - isinsv: "⋳", - isinv: "∈", - it: "⁢", - itilde: "ĩ", - Itilde: "Ĩ", - iukcy: "і", - Iukcy: "І", - iuml: "ï", - Iuml: "Ï", - jcirc: "ĵ", - Jcirc: "Ĵ", - jcy: "й", - Jcy: "Й", - jfr: "𝔧", - Jfr: "𝔍", - jmath: "ȷ", - jopf: "𝕛", - Jopf: "𝕁", - jscr: "𝒿", - Jscr: "𝒥", - jsercy: "ј", - Jsercy: "Ј", - jukcy: "є", - Jukcy: "Є", - kappa: "κ", - Kappa: "Κ", - kappav: "ϰ", - kcedil: "ķ", - Kcedil: "Ķ", - kcy: "к", - Kcy: "К", - kfr: "𝔨", - Kfr: "𝔎", - kgreen: "ĸ", - khcy: "х", - KHcy: "Х", - kjcy: "ќ", - KJcy: "Ќ", - kopf: "𝕜", - Kopf: "𝕂", - kscr: "𝓀", - Kscr: "𝒦", - lAarr: "⇚", - lacute: "ĺ", - Lacute: "Ĺ", - laemptyv: "⦴", - lagran: "ℒ", - lambda: "λ", - Lambda: "Λ", - lang: "⟨", - Lang: "⟪", - langd: "⦑", - langle: "⟨", - lap: "⪅", - Laplacetrf: "ℒ", - laquo: "«", - larr: "←", - lArr: "⇐", - Larr: "↞", - larrb: "⇤", - larrbfs: "⤟", - larrfs: "⤝", - larrhk: "↩", - larrlp: "↫", - larrpl: "⤹", - larrsim: "⥳", - larrtl: "↢", - lat: "⪫", - latail: "⤙", - lAtail: "⤛", - late: "⪭", - lates: "⪭︀", - lbarr: "⤌", - lBarr: "⤎", - lbbrk: "❲", - lbrace: "{", - lbrack: "[", - lbrke: "⦋", - lbrksld: "⦏", - lbrkslu: "⦍", - lcaron: "ľ", - Lcaron: "Ľ", - lcedil: "ļ", - Lcedil: "Ļ", - lceil: "⌈", - lcub: "{", - lcy: "л", - Lcy: "Л", - ldca: "⤶", - ldquo: "“", - ldquor: "„", - ldrdhar: "⥧", - ldrushar: "⥋", - ldsh: "↲", - le: "≤", - lE: "≦", - LeftAngleBracket: "⟨", - leftarrow: "←", - Leftarrow: "⇐", - LeftArrow: "←", - LeftArrowBar: "⇤", - LeftArrowRightArrow: "⇆", - leftarrowtail: "↢", - LeftCeiling: "⌈", - LeftDoubleBracket: "⟦", - LeftDownTeeVector: "⥡", - LeftDownVector: "⇃", - LeftDownVectorBar: "⥙", - LeftFloor: "⌊", - leftharpoondown: "↽", - leftharpoonup: "↼", - leftleftarrows: "⇇", - leftrightarrow: "↔", - Leftrightarrow: "⇔", - LeftRightArrow: "↔", - leftrightarrows: "⇆", - leftrightharpoons: "⇋", - leftrightsquigarrow: "↭", - LeftRightVector: "⥎", - LeftTee: "⊣", - LeftTeeArrow: "↤", - LeftTeeVector: "⥚", - leftthreetimes: "⋋", - LeftTriangle: "⊲", - LeftTriangleBar: "⧏", - LeftTriangleEqual: "⊴", - LeftUpDownVector: "⥑", - LeftUpTeeVector: "⥠", - LeftUpVector: "↿", - LeftUpVectorBar: "⥘", - LeftVector: "↼", - LeftVectorBar: "⥒", - leg: "⋚", - lEg: "⪋", - leq: "≤", - leqq: "≦", - leqslant: "⩽", - les: "⩽", - lescc: "⪨", - lesdot: "⩿", - lesdoto: "⪁", - lesdotor: "⪃", - lesg: "⋚︀", - lesges: "⪓", - lessapprox: "⪅", - lessdot: "⋖", - lesseqgtr: "⋚", - lesseqqgtr: "⪋", - LessEqualGreater: "⋚", - LessFullEqual: "≦", - LessGreater: "≶", - lessgtr: "≶", - LessLess: "⪡", - lesssim: "≲", - LessSlantEqual: "⩽", - LessTilde: "≲", - lfisht: "⥼", - lfloor: "⌊", - lfr: "𝔩", - Lfr: "𝔏", - lg: "≶", - lgE: "⪑", - lHar: "⥢", - lhard: "↽", - lharu: "↼", - lharul: "⥪", - lhblk: "▄", - ljcy: "љ", - LJcy: "Љ", - ll: "≪", - Ll: "⋘", - llarr: "⇇", - llcorner: "⌞", - Lleftarrow: "⇚", - llhard: "⥫", - lltri: "◺", - lmidot: "ŀ", - Lmidot: "Ŀ", - lmoust: "⎰", - lmoustache: "⎰", - lnap: "⪉", - lnapprox: "⪉", - lne: "⪇", - lnE: "≨", - lneq: "⪇", - lneqq: "≨", - lnsim: "⋦", - loang: "⟬", - loarr: "⇽", - lobrk: "⟦", - longleftarrow: "⟵", - Longleftarrow: "⟸", - LongLeftArrow: "⟵", - longleftrightarrow: "⟷", - Longleftrightarrow: "⟺", - LongLeftRightArrow: "⟷", - longmapsto: "⟼", - longrightarrow: "⟶", - Longrightarrow: "⟹", - LongRightArrow: "⟶", - looparrowleft: "↫", - looparrowright: "↬", - lopar: "⦅", - lopf: "𝕝", - Lopf: "𝕃", - loplus: "⨭", - lotimes: "⨴", - lowast: "∗", - lowbar: "_", - LowerLeftArrow: "↙", - LowerRightArrow: "↘", - loz: "◊", - lozenge: "◊", - lozf: "⧫", - lpar: "(", - lparlt: "⦓", - lrarr: "⇆", - lrcorner: "⌟", - lrhar: "⇋", - lrhard: "⥭", - lrm: "‎", - lrtri: "⊿", - lsaquo: "‹", - lscr: "𝓁", - Lscr: "ℒ", - lsh: "↰", - Lsh: "↰", - lsim: "≲", - lsime: "⪍", - lsimg: "⪏", - lsqb: "[", - lsquo: "‘", - lsquor: "‚", - lstrok: "ł", - Lstrok: "Ł", - lt: "<", - Lt: "≪", - LT: "<", - ltcc: "⪦", - ltcir: "⩹", - ltdot: "⋖", - lthree: "⋋", - ltimes: "⋉", - ltlarr: "⥶", - ltquest: "⩻", - ltri: "◃", - ltrie: "⊴", - ltrif: "◂", - ltrPar: "⦖", - lurdshar: "⥊", - luruhar: "⥦", - lvertneqq: "≨︀", - lvnE: "≨︀", - macr: "¯", - male: "♂", - malt: "✠", - maltese: "✠", - map: "↦", - Map: "⤅", - mapsto: "↦", - mapstodown: "↧", - mapstoleft: "↤", - mapstoup: "↥", - marker: "▮", - mcomma: "⨩", - mcy: "м", - Mcy: "М", - mdash: "—", - mDDot: "∺", - measuredangle: "∡", - MediumSpace: " ", - Mellintrf: "ℳ", - mfr: "𝔪", - Mfr: "𝔐", - mho: "℧", - micro: "µ", - mid: "∣", - midast: "*", - midcir: "⫰", - middot: "·", - minus: "−", - minusb: "⊟", - minusd: "∸", - minusdu: "⨪", - MinusPlus: "∓", - mlcp: "⫛", - mldr: "…", - mnplus: "∓", - models: "⊧", - mopf: "𝕞", - Mopf: "𝕄", - mp: "∓", - mscr: "𝓂", - Mscr: "ℳ", - mstpos: "∾", - mu: "μ", - Mu: "Μ", - multimap: "⊸", - mumap: "⊸", - nabla: "∇", - nacute: "ń", - Nacute: "Ń", - nang: "∠⃒", - nap: "≉", - napE: "⩰̸", - napid: "≋̸", - napos: "ʼn", - napprox: "≉", - natur: "♮", - natural: "♮", - naturals: "ℕ", - nbsp: " ", - nbump: "≎̸", - nbumpe: "≏̸", - ncap: "⩃", - ncaron: "ň", - Ncaron: "Ň", - ncedil: "ņ", - Ncedil: "Ņ", - ncong: "≇", - ncongdot: "⩭̸", - ncup: "⩂", - ncy: "н", - Ncy: "Н", - ndash: "–", - ne: "≠", - nearhk: "⤤", - nearr: "↗", - neArr: "⇗", - nearrow: "↗", - nedot: "≐̸", - NegativeMediumSpace: "​", - NegativeThickSpace: "​", - NegativeThinSpace: "​", - NegativeVeryThinSpace: "​", - nequiv: "≢", - nesear: "⤨", - nesim: "≂̸", - NestedGreaterGreater: "≫", - NestedLessLess: "≪", - NewLine: "\n", - nexist: "∄", - nexists: "∄", - nfr: "𝔫", - Nfr: "𝔑", - nge: "≱", - ngE: "≧̸", - ngeq: "≱", - ngeqq: "≧̸", - ngeqslant: "⩾̸", - nges: "⩾̸", - nGg: "⋙̸", - ngsim: "≵", - ngt: "≯", - nGt: "≫⃒", - ngtr: "≯", - nGtv: "≫̸", - nharr: "↮", - nhArr: "⇎", - nhpar: "⫲", - ni: "∋", - nis: "⋼", - nisd: "⋺", - niv: "∋", - njcy: "њ", - NJcy: "Њ", - nlarr: "↚", - nlArr: "⇍", - nldr: "‥", - nle: "≰", - nlE: "≦̸", - nleftarrow: "↚", - nLeftarrow: "⇍", - nleftrightarrow: "↮", - nLeftrightarrow: "⇎", - nleq: "≰", - nleqq: "≦̸", - nleqslant: "⩽̸", - nles: "⩽̸", - nless: "≮", - nLl: "⋘̸", - nlsim: "≴", - nlt: "≮", - nLt: "≪⃒", - nltri: "⋪", - nltrie: "⋬", - nLtv: "≪̸", - nmid: "∤", - NoBreak: "⁠", - NonBreakingSpace: " ", - nopf: "𝕟", - Nopf: "ℕ", - not: "¬", - Not: "⫬", - NotCongruent: "≢", - NotCupCap: "≭", - NotDoubleVerticalBar: "∦", - NotElement: "∉", - NotEqual: "≠", - NotEqualTilde: "≂̸", - NotExists: "∄", - NotGreater: "≯", - NotGreaterEqual: "≱", - NotGreaterFullEqual: "≧̸", - NotGreaterGreater: "≫̸", - NotGreaterLess: "≹", - NotGreaterSlantEqual: "⩾̸", - NotGreaterTilde: "≵", - NotHumpDownHump: "≎̸", - NotHumpEqual: "≏̸", - notin: "∉", - notindot: "⋵̸", - notinE: "⋹̸", - notinva: "∉", - notinvb: "⋷", - notinvc: "⋶", - NotLeftTriangle: "⋪", - NotLeftTriangleBar: "⧏̸", - NotLeftTriangleEqual: "⋬", - NotLess: "≮", - NotLessEqual: "≰", - NotLessGreater: "≸", - NotLessLess: "≪̸", - NotLessSlantEqual: "⩽̸", - NotLessTilde: "≴", - NotNestedGreaterGreater: "⪢̸", - NotNestedLessLess: "⪡̸", - notni: "∌", - notniva: "∌", - notnivb: "⋾", - notnivc: "⋽", - NotPrecedes: "⊀", - NotPrecedesEqual: "⪯̸", - NotPrecedesSlantEqual: "⋠", - NotReverseElement: "∌", - NotRightTriangle: "⋫", - NotRightTriangleBar: "⧐̸", - NotRightTriangleEqual: "⋭", - NotSquareSubset: "⊏̸", - NotSquareSubsetEqual: "⋢", - NotSquareSuperset: "⊐̸", - NotSquareSupersetEqual: "⋣", - NotSubset: "⊂⃒", - NotSubsetEqual: "⊈", - NotSucceeds: "⊁", - NotSucceedsEqual: "⪰̸", - NotSucceedsSlantEqual: "⋡", - NotSucceedsTilde: "≿̸", - NotSuperset: "⊃⃒", - NotSupersetEqual: "⊉", - NotTilde: "≁", - NotTildeEqual: "≄", - NotTildeFullEqual: "≇", - NotTildeTilde: "≉", - NotVerticalBar: "∤", - npar: "∦", - nparallel: "∦", - nparsl: "⫽⃥", - npart: "∂̸", - npolint: "⨔", - npr: "⊀", - nprcue: "⋠", - npre: "⪯̸", - nprec: "⊀", - npreceq: "⪯̸", - nrarr: "↛", - nrArr: "⇏", - nrarrc: "⤳̸", - nrarrw: "↝̸", - nrightarrow: "↛", - nRightarrow: "⇏", - nrtri: "⋫", - nrtrie: "⋭", - nsc: "⊁", - nsccue: "⋡", - nsce: "⪰̸", - nscr: "𝓃", - Nscr: "𝒩", - nshortmid: "∤", - nshortparallel: "∦", - nsim: "≁", - nsime: "≄", - nsimeq: "≄", - nsmid: "∤", - nspar: "∦", - nsqsube: "⋢", - nsqsupe: "⋣", - nsub: "⊄", - nsube: "⊈", - nsubE: "⫅̸", - nsubset: "⊂⃒", - nsubseteq: "⊈", - nsubseteqq: "⫅̸", - nsucc: "⊁", - nsucceq: "⪰̸", - nsup: "⊅", - nsupe: "⊉", - nsupE: "⫆̸", - nsupset: "⊃⃒", - nsupseteq: "⊉", - nsupseteqq: "⫆̸", - ntgl: "≹", - ntilde: "ñ", - Ntilde: "Ñ", - ntlg: "≸", - ntriangleleft: "⋪", - ntrianglelefteq: "⋬", - ntriangleright: "⋫", - ntrianglerighteq: "⋭", - nu: "ν", - Nu: "Ν", - num: "#", - numero: "№", - numsp: " ", - nvap: "≍⃒", - nvdash: "⊬", - nvDash: "⊭", - nVdash: "⊮", - nVDash: "⊯", - nvge: "≥⃒", - nvgt: ">⃒", - nvHarr: "⤄", - nvinfin: "⧞", - nvlArr: "⤂", - nvle: "≤⃒", - nvlt: "<⃒", - nvltrie: "⊴⃒", - nvrArr: "⤃", - nvrtrie: "⊵⃒", - nvsim: "∼⃒", - nwarhk: "⤣", - nwarr: "↖", - nwArr: "⇖", - nwarrow: "↖", - nwnear: "⤧", - oacute: "ó", - Oacute: "Ó", - oast: "⊛", - ocir: "⊚", - ocirc: "ô", - Ocirc: "Ô", - ocy: "о", - Ocy: "О", - odash: "⊝", - odblac: "ő", - Odblac: "Ő", - odiv: "⨸", - odot: "⊙", - odsold: "⦼", - oelig: "œ", - OElig: "Œ", - ofcir: "⦿", - ofr: "𝔬", - Ofr: "𝔒", - ogon: "˛", - ograve: "ò", - Ograve: "Ò", - ogt: "⧁", - ohbar: "⦵", - ohm: "Ω", - oint: "∮", - olarr: "↺", - olcir: "⦾", - olcross: "⦻", - oline: "‾", - olt: "⧀", - omacr: "ō", - Omacr: "Ō", - omega: "ω", - Omega: "Ω", - omicron: "ο", - Omicron: "Ο", - omid: "⦶", - ominus: "⊖", - oopf: "𝕠", - Oopf: "𝕆", - opar: "⦷", - OpenCurlyDoubleQuote: "“", - OpenCurlyQuote: "‘", - operp: "⦹", - oplus: "⊕", - or: "∨", - Or: "⩔", - orarr: "↻", - ord: "⩝", - order: "ℴ", - orderof: "ℴ", - ordf: "ª", - ordm: "º", - origof: "⊶", - oror: "⩖", - orslope: "⩗", - orv: "⩛", - oS: "Ⓢ", - oscr: "ℴ", - Oscr: "𝒪", - oslash: "ø", - Oslash: "Ø", - osol: "⊘", - otilde: "õ", - Otilde: "Õ", - otimes: "⊗", - Otimes: "⨷", - otimesas: "⨶", - ouml: "ö", - Ouml: "Ö", - ovbar: "⌽", - OverBar: "‾", - OverBrace: "⏞", - OverBracket: "⎴", - OverParenthesis: "⏜", - par: "∥", - para: "¶", - parallel: "∥", - parsim: "⫳", - parsl: "⫽", - part: "∂", - PartialD: "∂", - pcy: "п", - Pcy: "П", - percnt: "%", - period: ".", - permil: "‰", - perp: "⊥", - pertenk: "‱", - pfr: "𝔭", - Pfr: "𝔓", - phi: "φ", - Phi: "Φ", - phiv: "ϕ", - phmmat: "ℳ", - phone: "☎", - pi: "π", - Pi: "Π", - pitchfork: "⋔", - piv: "ϖ", - planck: "ℏ", - planckh: "ℎ", - plankv: "ℏ", - plus: "+", - plusacir: "⨣", - plusb: "⊞", - pluscir: "⨢", - plusdo: "∔", - plusdu: "⨥", - pluse: "⩲", - PlusMinus: "±", - plusmn: "±", - plussim: "⨦", - plustwo: "⨧", - pm: "±", - Poincareplane: "ℌ", - pointint: "⨕", - popf: "𝕡", - Popf: "ℙ", - pound: "£", - pr: "≺", - Pr: "⪻", - prap: "⪷", - prcue: "≼", - pre: "⪯", - prE: "⪳", - prec: "≺", - precapprox: "⪷", - preccurlyeq: "≼", - Precedes: "≺", - PrecedesEqual: "⪯", - PrecedesSlantEqual: "≼", - PrecedesTilde: "≾", - preceq: "⪯", - precnapprox: "⪹", - precneqq: "⪵", - precnsim: "⋨", - precsim: "≾", - prime: "′", - Prime: "″", - primes: "ℙ", - prnap: "⪹", - prnE: "⪵", - prnsim: "⋨", - prod: "∏", - Product: "∏", - profalar: "⌮", - profline: "⌒", - profsurf: "⌓", - prop: "∝", - Proportion: "∷", - Proportional: "∝", - propto: "∝", - prsim: "≾", - prurel: "⊰", - pscr: "𝓅", - Pscr: "𝒫", - psi: "ψ", - Psi: "Ψ", - puncsp: " ", - qfr: "𝔮", - Qfr: "𝔔", - qint: "⨌", - qopf: "𝕢", - Qopf: "ℚ", - qprime: "⁗", - qscr: "𝓆", - Qscr: "𝒬", - quaternions: "ℍ", - quatint: "⨖", - quest: "?", - questeq: "≟", - quot: '"', - QUOT: '"', - rAarr: "⇛", - race: "∽̱", - racute: "ŕ", - Racute: "Ŕ", - radic: "√", - raemptyv: "⦳", - rang: "⟩", - Rang: "⟫", - rangd: "⦒", - range: "⦥", - rangle: "⟩", - raquo: "»", - rarr: "→", - rArr: "⇒", - Rarr: "↠", - rarrap: "⥵", - rarrb: "⇥", - rarrbfs: "⤠", - rarrc: "⤳", - rarrfs: "⤞", - rarrhk: "↪", - rarrlp: "↬", - rarrpl: "⥅", - rarrsim: "⥴", - rarrtl: "↣", - Rarrtl: "⤖", - rarrw: "↝", - ratail: "⤚", - rAtail: "⤜", - ratio: "∶", - rationals: "ℚ", - rbarr: "⤍", - rBarr: "⤏", - RBarr: "⤐", - rbbrk: "❳", - rbrace: "}", - rbrack: "]", - rbrke: "⦌", - rbrksld: "⦎", - rbrkslu: "⦐", - rcaron: "ř", - Rcaron: "Ř", - rcedil: "ŗ", - Rcedil: "Ŗ", - rceil: "⌉", - rcub: "}", - rcy: "р", - Rcy: "Р", - rdca: "⤷", - rdldhar: "⥩", - rdquo: "”", - rdquor: "”", - rdsh: "↳", - Re: "ℜ", - real: "ℜ", - realine: "ℛ", - realpart: "ℜ", - reals: "ℝ", - rect: "▭", - reg: "®", - REG: "®", - ReverseElement: "∋", - ReverseEquilibrium: "⇋", - ReverseUpEquilibrium: "⥯", - rfisht: "⥽", - rfloor: "⌋", - rfr: "𝔯", - Rfr: "ℜ", - rHar: "⥤", - rhard: "⇁", - rharu: "⇀", - rharul: "⥬", - rho: "ρ", - Rho: "Ρ", - rhov: "ϱ", - RightAngleBracket: "⟩", - rightarrow: "→", - Rightarrow: "⇒", - RightArrow: "→", - RightArrowBar: "⇥", - RightArrowLeftArrow: "⇄", - rightarrowtail: "↣", - RightCeiling: "⌉", - RightDoubleBracket: "⟧", - RightDownTeeVector: "⥝", - RightDownVector: "⇂", - RightDownVectorBar: "⥕", - RightFloor: "⌋", - rightharpoondown: "⇁", - rightharpoonup: "⇀", - rightleftarrows: "⇄", - rightleftharpoons: "⇌", - rightrightarrows: "⇉", - rightsquigarrow: "↝", - RightTee: "⊢", - RightTeeArrow: "↦", - RightTeeVector: "⥛", - rightthreetimes: "⋌", - RightTriangle: "⊳", - RightTriangleBar: "⧐", - RightTriangleEqual: "⊵", - RightUpDownVector: "⥏", - RightUpTeeVector: "⥜", - RightUpVector: "↾", - RightUpVectorBar: "⥔", - RightVector: "⇀", - RightVectorBar: "⥓", - ring: "˚", - risingdotseq: "≓", - rlarr: "⇄", - rlhar: "⇌", - rlm: "‏", - rmoust: "⎱", - rmoustache: "⎱", - rnmid: "⫮", - roang: "⟭", - roarr: "⇾", - robrk: "⟧", - ropar: "⦆", - ropf: "𝕣", - Ropf: "ℝ", - roplus: "⨮", - rotimes: "⨵", - RoundImplies: "⥰", - rpar: ")", - rpargt: "⦔", - rppolint: "⨒", - rrarr: "⇉", - Rrightarrow: "⇛", - rsaquo: "›", - rscr: "𝓇", - Rscr: "ℛ", - rsh: "↱", - Rsh: "↱", - rsqb: "]", - rsquo: "’", - rsquor: "’", - rthree: "⋌", - rtimes: "⋊", - rtri: "▹", - rtrie: "⊵", - rtrif: "▸", - rtriltri: "⧎", - RuleDelayed: "⧴", - ruluhar: "⥨", - rx: "℞", - sacute: "ś", - Sacute: "Ś", - sbquo: "‚", - sc: "≻", - Sc: "⪼", - scap: "⪸", - scaron: "š", - Scaron: "Š", - sccue: "≽", - sce: "⪰", - scE: "⪴", - scedil: "ş", - Scedil: "Ş", - scirc: "ŝ", - Scirc: "Ŝ", - scnap: "⪺", - scnE: "⪶", - scnsim: "⋩", - scpolint: "⨓", - scsim: "≿", - scy: "с", - Scy: "С", - sdot: "⋅", - sdotb: "⊡", - sdote: "⩦", - searhk: "⤥", - searr: "↘", - seArr: "⇘", - searrow: "↘", - sect: "§", - semi: ";", - seswar: "⤩", - setminus: "∖", - setmn: "∖", - sext: "✶", - sfr: "𝔰", - Sfr: "𝔖", - sfrown: "⌢", - sharp: "♯", - shchcy: "щ", - SHCHcy: "Щ", - shcy: "ш", - SHcy: "Ш", - ShortDownArrow: "↓", - ShortLeftArrow: "←", - shortmid: "∣", - shortparallel: "∥", - ShortRightArrow: "→", - ShortUpArrow: "↑", - shy: "­", - sigma: "σ", - Sigma: "Σ", - sigmaf: "ς", - sigmav: "ς", - sim: "∼", - simdot: "⩪", - sime: "≃", - simeq: "≃", - simg: "⪞", - simgE: "⪠", - siml: "⪝", - simlE: "⪟", - simne: "≆", - simplus: "⨤", - simrarr: "⥲", - slarr: "←", - SmallCircle: "∘", - smallsetminus: "∖", - smashp: "⨳", - smeparsl: "⧤", - smid: "∣", - smile: "⌣", - smt: "⪪", - smte: "⪬", - smtes: "⪬︀", - softcy: "ь", - SOFTcy: "Ь", - sol: "/", - solb: "⧄", - solbar: "⌿", - sopf: "𝕤", - Sopf: "𝕊", - spades: "♠", - spadesuit: "♠", - spar: "∥", - sqcap: "⊓", - sqcaps: "⊓︀", - sqcup: "⊔", - sqcups: "⊔︀", - Sqrt: "√", - sqsub: "⊏", - sqsube: "⊑", - sqsubset: "⊏", - sqsubseteq: "⊑", - sqsup: "⊐", - sqsupe: "⊒", - sqsupset: "⊐", - sqsupseteq: "⊒", - squ: "□", - square: "□", - Square: "□", - SquareIntersection: "⊓", - SquareSubset: "⊏", - SquareSubsetEqual: "⊑", - SquareSuperset: "⊐", - SquareSupersetEqual: "⊒", - SquareUnion: "⊔", - squarf: "▪", - squf: "▪", - srarr: "→", - sscr: "𝓈", - Sscr: "𝒮", - ssetmn: "∖", - ssmile: "⌣", - sstarf: "⋆", - star: "☆", - Star: "⋆", - starf: "★", - straightepsilon: "ϵ", - straightphi: "ϕ", - strns: "¯", - sub: "⊂", - Sub: "⋐", - subdot: "⪽", - sube: "⊆", - subE: "⫅", - subedot: "⫃", - submult: "⫁", - subne: "⊊", - subnE: "⫋", - subplus: "⪿", - subrarr: "⥹", - subset: "⊂", - Subset: "⋐", - subseteq: "⊆", - subseteqq: "⫅", - SubsetEqual: "⊆", - subsetneq: "⊊", - subsetneqq: "⫋", - subsim: "⫇", - subsub: "⫕", - subsup: "⫓", - succ: "≻", - succapprox: "⪸", - succcurlyeq: "≽", - Succeeds: "≻", - SucceedsEqual: "⪰", - SucceedsSlantEqual: "≽", - SucceedsTilde: "≿", - succeq: "⪰", - succnapprox: "⪺", - succneqq: "⪶", - succnsim: "⋩", - succsim: "≿", - SuchThat: "∋", - sum: "∑", - Sum: "∑", - sung: "♪", - sup: "⊃", - Sup: "⋑", - sup1: "¹", - sup2: "²", - sup3: "³", - supdot: "⪾", - supdsub: "⫘", - supe: "⊇", - supE: "⫆", - supedot: "⫄", - Superset: "⊃", - SupersetEqual: "⊇", - suphsol: "⟉", - suphsub: "⫗", - suplarr: "⥻", - supmult: "⫂", - supne: "⊋", - supnE: "⫌", - supplus: "⫀", - supset: "⊃", - Supset: "⋑", - supseteq: "⊇", - supseteqq: "⫆", - supsetneq: "⊋", - supsetneqq: "⫌", - supsim: "⫈", - supsub: "⫔", - supsup: "⫖", - swarhk: "⤦", - swarr: "↙", - swArr: "⇙", - swarrow: "↙", - swnwar: "⤪", - szlig: "ß", - Tab: "\t", - target: "⌖", - tau: "τ", - Tau: "Τ", - tbrk: "⎴", - tcaron: "ť", - Tcaron: "Ť", - tcedil: "ţ", - Tcedil: "Ţ", - tcy: "т", - Tcy: "Т", - tdot: "⃛", - telrec: "⌕", - tfr: "𝔱", - Tfr: "𝔗", - there4: "∴", - therefore: "∴", - Therefore: "∴", - theta: "θ", - Theta: "Θ", - thetasym: "ϑ", - thetav: "ϑ", - thickapprox: "≈", - thicksim: "∼", - ThickSpace: "  ", - thinsp: " ", - ThinSpace: " ", - thkap: "≈", - thksim: "∼", - thorn: "þ", - THORN: "Þ", - tilde: "˜", - Tilde: "∼", - TildeEqual: "≃", - TildeFullEqual: "≅", - TildeTilde: "≈", - times: "×", - timesb: "⊠", - timesbar: "⨱", - timesd: "⨰", - tint: "∭", - toea: "⤨", - top: "⊤", - topbot: "⌶", - topcir: "⫱", - topf: "𝕥", - Topf: "𝕋", - topfork: "⫚", - tosa: "⤩", - tprime: "‴", - trade: "™", - TRADE: "™", - triangle: "▵", - triangledown: "▿", - triangleleft: "◃", - trianglelefteq: "⊴", - triangleq: "≜", - triangleright: "▹", - trianglerighteq: "⊵", - tridot: "◬", - trie: "≜", - triminus: "⨺", - TripleDot: "⃛", - triplus: "⨹", - trisb: "⧍", - tritime: "⨻", - trpezium: "⏢", - tscr: "𝓉", - Tscr: "𝒯", - tscy: "ц", - TScy: "Ц", - tshcy: "ћ", - TSHcy: "Ћ", - tstrok: "ŧ", - Tstrok: "Ŧ", - twixt: "≬", - twoheadleftarrow: "↞", - twoheadrightarrow: "↠", - uacute: "ú", - Uacute: "Ú", - uarr: "↑", - uArr: "⇑", - Uarr: "↟", - Uarrocir: "⥉", - ubrcy: "ў", - Ubrcy: "Ў", - ubreve: "ŭ", - Ubreve: "Ŭ", - ucirc: "û", - Ucirc: "Û", - ucy: "у", - Ucy: "У", - udarr: "⇅", - udblac: "ű", - Udblac: "Ű", - udhar: "⥮", - ufisht: "⥾", - ufr: "𝔲", - Ufr: "𝔘", - ugrave: "ù", - Ugrave: "Ù", - uHar: "⥣", - uharl: "↿", - uharr: "↾", - uhblk: "▀", - ulcorn: "⌜", - ulcorner: "⌜", - ulcrop: "⌏", - ultri: "◸", - umacr: "ū", - Umacr: "Ū", - uml: "¨", - UnderBar: "_", - UnderBrace: "⏟", - UnderBracket: "⎵", - UnderParenthesis: "⏝", - Union: "⋃", - UnionPlus: "⊎", - uogon: "ų", - Uogon: "Ų", - uopf: "𝕦", - Uopf: "𝕌", - uparrow: "↑", - Uparrow: "⇑", - UpArrow: "↑", - UpArrowBar: "⤒", - UpArrowDownArrow: "⇅", - updownarrow: "↕", - Updownarrow: "⇕", - UpDownArrow: "↕", - UpEquilibrium: "⥮", - upharpoonleft: "↿", - upharpoonright: "↾", - uplus: "⊎", - UpperLeftArrow: "↖", - UpperRightArrow: "↗", - upsi: "υ", - Upsi: "ϒ", - upsih: "ϒ", - upsilon: "υ", - Upsilon: "Υ", - UpTee: "⊥", - UpTeeArrow: "↥", - upuparrows: "⇈", - urcorn: "⌝", - urcorner: "⌝", - urcrop: "⌎", - uring: "ů", - Uring: "Ů", - urtri: "◹", - uscr: "𝓊", - Uscr: "𝒰", - utdot: "⋰", - utilde: "ũ", - Utilde: "Ũ", - utri: "▵", - utrif: "▴", - uuarr: "⇈", - uuml: "ü", - Uuml: "Ü", - uwangle: "⦧", - vangrt: "⦜", - varepsilon: "ϵ", - varkappa: "ϰ", - varnothing: "∅", - varphi: "ϕ", - varpi: "ϖ", - varpropto: "∝", - varr: "↕", - vArr: "⇕", - varrho: "ϱ", - varsigma: "ς", - varsubsetneq: "⊊︀", - varsubsetneqq: "⫋︀", - varsupsetneq: "⊋︀", - varsupsetneqq: "⫌︀", - vartheta: "ϑ", - vartriangleleft: "⊲", - vartriangleright: "⊳", - vBar: "⫨", - Vbar: "⫫", - vBarv: "⫩", - vcy: "в", - Vcy: "В", - vdash: "⊢", - vDash: "⊨", - Vdash: "⊩", - VDash: "⊫", - Vdashl: "⫦", - vee: "∨", - Vee: "⋁", - veebar: "⊻", - veeeq: "≚", - vellip: "⋮", - verbar: "|", - Verbar: "‖", - vert: "|", - Vert: "‖", - VerticalBar: "∣", - VerticalLine: "|", - VerticalSeparator: "❘", - VerticalTilde: "≀", - VeryThinSpace: " ", - vfr: "𝔳", - Vfr: "𝔙", - vltri: "⊲", - vnsub: "⊂⃒", - vnsup: "⊃⃒", - vopf: "𝕧", - Vopf: "𝕍", - vprop: "∝", - vrtri: "⊳", - vscr: "𝓋", - Vscr: "𝒱", - vsubne: "⊊︀", - vsubnE: "⫋︀", - vsupne: "⊋︀", - vsupnE: "⫌︀", - Vvdash: "⊪", - vzigzag: "⦚", - wcirc: "ŵ", - Wcirc: "Ŵ", - wedbar: "⩟", - wedge: "∧", - Wedge: "⋀", - wedgeq: "≙", - weierp: "℘", - wfr: "𝔴", - Wfr: "𝔚", - wopf: "𝕨", - Wopf: "𝕎", - wp: "℘", - wr: "≀", - wreath: "≀", - wscr: "𝓌", - Wscr: "𝒲", - xcap: "⋂", - xcirc: "◯", - xcup: "⋃", - xdtri: "▽", - xfr: "𝔵", - Xfr: "𝔛", - xharr: "⟷", - xhArr: "⟺", - xi: "ξ", - Xi: "Ξ", - xlarr: "⟵", - xlArr: "⟸", - xmap: "⟼", - xnis: "⋻", - xodot: "⨀", - xopf: "𝕩", - Xopf: "𝕏", - xoplus: "⨁", - xotime: "⨂", - xrarr: "⟶", - xrArr: "⟹", - xscr: "𝓍", - Xscr: "𝒳", - xsqcup: "⨆", - xuplus: "⨄", - xutri: "△", - xvee: "⋁", - xwedge: "⋀", - yacute: "ý", - Yacute: "Ý", - yacy: "я", - YAcy: "Я", - ycirc: "ŷ", - Ycirc: "Ŷ", - ycy: "ы", - Ycy: "Ы", - yen: "¥", - yfr: "𝔶", - Yfr: "𝔜", - yicy: "ї", - YIcy: "Ї", - yopf: "𝕪", - Yopf: "𝕐", - yscr: "𝓎", - Yscr: "𝒴", - yucy: "ю", - YUcy: "Ю", - yuml: "ÿ", - Yuml: "Ÿ", - zacute: "ź", - Zacute: "Ź", - zcaron: "ž", - Zcaron: "Ž", - zcy: "з", - Zcy: "З", - zdot: "ż", - Zdot: "Ż", - zeetrf: "ℨ", - ZeroWidthSpace: "​", - zeta: "ζ", - Zeta: "Ζ", - zfr: "𝔷", - Zfr: "ℨ", - zhcy: "ж", - ZHcy: "Ж", - zigrarr: "⇝", - zopf: "𝕫", - Zopf: "ℤ", - zscr: "𝓏", - Zscr: "𝒵", - zwj: "‍", - zwnj: "‌", - }, - v = { - aacute: "á", - Aacute: "Á", - acirc: "â", - Acirc: "Â", - acute: "´", - aelig: "æ", - AElig: "Æ", - agrave: "à", - Agrave: "À", - amp: "&", - AMP: "&", - aring: "å", - Aring: "Å", - atilde: "ã", - Atilde: "Ã", - auml: "ä", - Auml: "Ä", - brvbar: "¦", - ccedil: "ç", - Ccedil: "Ç", - cedil: "¸", - cent: "¢", - copy: "©", - COPY: "©", - curren: "¤", - deg: "°", - divide: "÷", - eacute: "é", - Eacute: "É", - ecirc: "ê", - Ecirc: "Ê", - egrave: "è", - Egrave: "È", - eth: "ð", - ETH: "Ð", - euml: "ë", - Euml: "Ë", - frac12: "½", - frac14: "¼", - frac34: "¾", - gt: ">", - GT: ">", - iacute: "í", - Iacute: "Í", - icirc: "î", - Icirc: "Î", - iexcl: "¡", - igrave: "ì", - Igrave: "Ì", - iquest: "¿", - iuml: "ï", - Iuml: "Ï", - laquo: "«", - lt: "<", - LT: "<", - macr: "¯", - micro: "µ", - middot: "·", - nbsp: " ", - not: "¬", - ntilde: "ñ", - Ntilde: "Ñ", - oacute: "ó", - Oacute: "Ó", - ocirc: "ô", - Ocirc: "Ô", - ograve: "ò", - Ograve: "Ò", - ordf: "ª", - ordm: "º", - oslash: "ø", - Oslash: "Ø", - otilde: "õ", - Otilde: "Õ", - ouml: "ö", - Ouml: "Ö", - para: "¶", - plusmn: "±", - pound: "£", - quot: '"', - QUOT: '"', - raquo: "»", - reg: "®", - REG: "®", - sect: "§", - shy: "­", - sup1: "¹", - sup2: "²", - sup3: "³", - szlig: "ß", - thorn: "þ", - THORN: "Þ", - times: "×", - uacute: "ú", - Uacute: "Ú", - ucirc: "û", - Ucirc: "Û", - ugrave: "ù", - Ugrave: "Ù", - uml: "¨", - uuml: "ü", - Uuml: "Ü", - yacute: "ý", - Yacute: "Ý", - yen: "¥", - yuml: "ÿ", - }, - b = { - 0: "�", - 128: "€", - 130: "‚", - 131: "ƒ", - 132: "„", - 133: "…", - 134: "†", - 135: "‡", - 136: "ˆ", - 137: "‰", - 138: "Š", - 139: "‹", - 140: "Œ", - 142: "Ž", - 145: "‘", - 146: "’", - 147: "“", - 148: "”", - 149: "•", - 150: "–", - 151: "—", - 152: "˜", - 153: "™", - 154: "š", - 155: "›", - 156: "œ", - 158: "ž", - 159: "Ÿ", - }, - y = [ - 1, 2, 3, 4, 5, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 64976, 64977, 64978, 64979, 64980, 64981, 64982, - 64983, 64984, 64985, 64986, 64987, 64988, 64989, 64990, 64991, - 64992, 64993, 64994, 64995, 64996, 64997, 64998, 64999, 65e3, - 65001, 65002, 65003, 65004, 65005, 65006, 65007, 65534, 65535, - 131070, 131071, 196606, 196607, 262142, 262143, 327678, 327679, - 393214, 393215, 458750, 458751, 524286, 524287, 589822, 589823, - 655358, 655359, 720894, 720895, 786430, 786431, 851966, 851967, - 917502, 917503, 983038, 983039, 1048574, 1048575, 1114110, - 1114111, - ], - w = String.fromCharCode, - E = {}.hasOwnProperty, - x = function (e, t) { - return E.call(e, t); - }, - T = function (e, t) { - if (!e) return t; - var r, - n = {}; - for (r in t) n[r] = x(e, r) ? e[r] : t[r]; - return n; - }, - k = function (e, t) { - var r = ""; - return (e >= 55296 && e <= 57343) || e > 1114111 - ? (t && - N( - "character reference outside the permissible Unicode range" - ), - "�") - : x(b, e) - ? (t && N("disallowed character reference"), b[e]) - : (t && - (function (e, t) { - for (var r = -1, n = e.length; ++r < n; ) - if (e[r] == t) return !0; - return !1; - })(y, e) && - N("disallowed character reference"), - e > 65535 && - ((r += w((((e -= 65536) >>> 10) & 1023) | 55296)), - (e = 56320 | (1023 & e))), - (r += w(e))); - }, - _ = function (e) { - return "&#x" + e.toString(16).toUpperCase() + ";"; - }, - A = function (e) { - return "&#" + e + ";"; - }, - N = function (e) { - throw Error("Parse error: " + e); - }, - L = function (e, t) { - (t = T(t, L.options)).strict && - h.test(e) && - N("forbidden code point"); - var r = t.encodeEverything, - n = t.useNamedReferences, - i = t.allowUnsafeSymbols, - o = t.decimal ? A : _, - d = function (e) { - return o(e.charCodeAt(0)); - }; - return ( - r - ? ((e = e.replace(s, function (e) { - return n && x(u, e) ? "&" + u[e] + ";" : d(e); - })), - n && - (e = e - .replace(/>\u20D2/g, ">⃒") - .replace(/<\u20D2/g, "<⃒") - .replace(/fj/g, "fj")), - n && - (e = e.replace(c, function (e) { - return "&" + u[e] + ";"; - }))) - : n - ? (i || - (e = e.replace(p, function (e) { - return "&" + u[e] + ";"; - })), - (e = (e = e - .replace(/>\u20D2/g, ">⃒") - .replace(/<\u20D2/g, "<⃒")).replace( - c, - function (e) { - return "&" + u[e] + ";"; - } - ))) - : i || (e = e.replace(p, d)), - e - .replace(a, function (e) { - var t = e.charCodeAt(0), - r = e.charCodeAt(1); - return o(1024 * (t - 55296) + r - 56320 + 65536); - }) - .replace(l, d) - ); - }; - L.options = { - allowUnsafeSymbols: !1, - encodeEverything: !1, - strict: !1, - useNamedReferences: !1, - decimal: !1, - }; - var O = function (e, t) { - var r = (t = T(t, O.options)).strict; - return ( - r && f.test(e) && N("malformed character reference"), - e.replace(m, function (e, n, i, o, a, s, l, c, u) { - var p, d, f, h, m, b; - return n - ? g[(m = n)] - : i - ? ((m = i), - (b = o) && t.isAttributeValue - ? (r && - "=" == b && - N("`&` did not start a character reference"), - e) - : (r && - N( - "named character reference was not terminated by a semicolon" - ), - v[m] + (b || ""))) - : a - ? ((f = a), - (d = s), - r && - !d && - N( - "character reference was not terminated by a semicolon" - ), - (p = parseInt(f, 10)), - k(p, r)) - : l - ? ((h = l), - (d = c), - r && - !d && - N( - "character reference was not terminated by a semicolon" - ), - (p = parseInt(h, 16)), - k(p, r)) - : (r && - N( - "named character reference was not terminated by a semicolon" - ), - e); - }) - ); - }; - O.options = { isAttributeValue: !1, strict: !1 }; - var S = { - version: "1.2.0", - encode: L, - decode: O, - escape: function (e) { - return e.replace(p, function (e) { - return d[e]; - }); - }, - unescape: O, - }; - void 0 === - (n = function () { - return S; - }.call(t, r, t, e)) || (e.exports = n); - })(); - }, - 6040: (e, t, r) => { - e = r.nmd(e); - var n = "__lodash_hash_undefined__", - i = 1, - o = 2, - a = 1 / 0, - s = 9007199254740991, - l = "[object Arguments]", - c = "[object Array]", - u = "[object Boolean]", - p = "[object Date]", - d = "[object Error]", - f = "[object Function]", - h = "[object GeneratorFunction]", - m = "[object Map]", - g = "[object Number]", - v = "[object Object]", - b = "[object Promise]", - y = "[object RegExp]", - w = "[object Set]", - E = "[object String]", - x = "[object Symbol]", - T = "[object WeakMap]", - k = "[object ArrayBuffer]", - _ = "[object DataView]", - A = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, - N = /^\w*$/, - L = /^\./, - O = - /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, - S = /\\(\\)?/g, - C = /^\[object .+?Constructor\]$/, - D = /^(?:0|[1-9]\d*)$/, - q = {}; - (q["[object Float32Array]"] = - q["[object Float64Array]"] = - q["[object Int8Array]"] = - q["[object Int16Array]"] = - q["[object Int32Array]"] = - q["[object Uint8Array]"] = - q["[object Uint8ClampedArray]"] = - q["[object Uint16Array]"] = - q["[object Uint32Array]"] = - !0), - (q[l] = - q[c] = - q[k] = - q[u] = - q[_] = - q[p] = - q[d] = - q[f] = - q[m] = - q[g] = - q[v] = - q[y] = - q[w] = - q[E] = - q[T] = - !1); - var R = - "object" == typeof global && - global && - global.Object === Object && - global, - j = "object" == typeof self && self && self.Object === Object && self, - P = R || j || Function("return this")(), - B = t && !t.nodeType && t, - F = B && e && !e.nodeType && e, - M = F && F.exports === B && R.process, - I = (function () { - try { - return M && M.binding("util"); - } catch (e) {} - })(), - U = I && I.isTypedArray; - function V(e, t) { - for (var r = -1, n = t.length, i = e.length; ++r < n; ) - e[i + r] = t[r]; - return e; - } - function H(e, t) { - for (var r = -1, n = e ? e.length : 0; ++r < n; ) - if (t(e[r], r, e)) return !0; - return !1; - } - function G(e) { - var t = !1; - if (null != e && "function" != typeof e.toString) - try { - t = !!(e + ""); - } catch (e) {} - return t; - } - function K(e) { - var t = -1, - r = Array(e.size); - return ( - e.forEach(function (e, n) { - r[++t] = [n, e]; - }), - r - ); - } - function $(e, t) { - return function (r) { - return e(t(r)); - }; - } - function z(e) { - var t = -1, - r = Array(e.size); - return ( - e.forEach(function (e) { - r[++t] = e; - }), - r - ); - } - var Y, - W = Array.prototype, - J = Function.prototype, - X = Object.prototype, - Z = P["__core-js_shared__"], - Q = (Y = /[^.]+$/.exec((Z && Z.keys && Z.keys.IE_PROTO) || "")) - ? "Symbol(src)_1." + Y - : "", - ee = J.toString, - te = X.hasOwnProperty, - re = X.toString, - ne = RegExp( - "^" + - ee - .call(te) - .replace(/[\\^$.*+?()[\]{}|]/g, "\\$&") - .replace( - /hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, - "$1.*?" - ) + - "$" - ), - ie = P.Symbol, - oe = P.Uint8Array, - ae = $(Object.getPrototypeOf, Object), - se = X.propertyIsEnumerable, - le = W.splice, - ce = Object.getOwnPropertySymbols, - ue = $(Object.keys, Object), - pe = Fe(P, "DataView"), - de = Fe(P, "Map"), - fe = Fe(P, "Promise"), - he = Fe(P, "Set"), - me = Fe(P, "WeakMap"), - ge = Fe(Object, "create"), - ve = We(pe), - be = We(de), - ye = We(fe), - we = We(he), - Ee = We(me), - xe = ie ? ie.prototype : void 0, - Te = xe ? xe.valueOf : void 0, - ke = xe ? xe.toString : void 0; - function _e(e) { - var t = -1, - r = e ? e.length : 0; - for (this.clear(); ++t < r; ) { - var n = e[t]; - this.set(n[0], n[1]); - } - } - function Ae(e) { - var t = -1, - r = e ? e.length : 0; - for (this.clear(); ++t < r; ) { - var n = e[t]; - this.set(n[0], n[1]); - } - } - function Ne(e) { - var t = -1, - r = e ? e.length : 0; - for (this.clear(); ++t < r; ) { - var n = e[t]; - this.set(n[0], n[1]); - } - } - function Le(e) { - var t = -1, - r = e ? e.length : 0; - for (this.__data__ = new Ne(); ++t < r; ) this.add(e[t]); - } - function Oe(e) { - this.__data__ = new Ae(e); - } - function Se(e, t) { - var r = - Qe(e) || Ze(e) - ? (function (e, t) { - for (var r = -1, n = Array(e); ++r < e; ) n[r] = t(r); - return n; - })(e.length, String) - : [], - n = r.length, - i = !!n; - for (var o in e) - (!t && !te.call(e, o)) || - (i && ("length" == o || Ve(o, n))) || - r.push(o); - return r; - } - function Ce(e, t) { - for (var r = e.length; r--; ) if (Xe(e[r][0], t)) return r; - return -1; - } - function De(e, t) { - for ( - var r = 0, n = (t = He(t, e) ? [t] : je(t)).length; - null != e && r < n; - - ) - e = e[Ye(t[r++])]; - return r && r == n ? e : void 0; - } - function qe(e, t) { - return null != e && t in Object(e); - } - function Re(e, t, r, n, a) { - return ( - e === t || - (null == e || null == t || (!nt(e) && !it(t)) - ? e != e && t != t - : (function (e, t, r, n, a, s) { - var f = Qe(e), - h = Qe(t), - b = c, - T = c; - f || (b = (b = Ue(e)) == l ? v : b), - h || (T = (T = Ue(t)) == l ? v : T); - var A = b == v && !G(e), - N = T == v && !G(t), - L = b == T; - if (L && !A) - return ( - s || (s = new Oe()), - f || st(e) - ? Pe(e, t, r, n, a, s) - : (function (e, t, r, n, a, s, l) { - switch (r) { - case _: - if ( - e.byteLength != t.byteLength || - e.byteOffset != t.byteOffset - ) - return !1; - (e = e.buffer), (t = t.buffer); - case k: - return !( - e.byteLength != t.byteLength || - !n(new oe(e), new oe(t)) - ); - case u: - case p: - case g: - return Xe(+e, +t); - case d: - return ( - e.name == t.name && e.message == t.message - ); - case y: - case E: - return e == t + ""; - case m: - var c = K; - case w: - var f = s & o; - if ((c || (c = z), e.size != t.size && !f)) - return !1; - var h = l.get(e); - if (h) return h == t; - (s |= i), l.set(e, t); - var v = Pe(c(e), c(t), n, a, s, l); - return l.delete(e), v; - case x: - if (Te) return Te.call(e) == Te.call(t); - } - return !1; - })(e, t, b, r, n, a, s) - ); - if (!(a & o)) { - var O = A && te.call(e, "__wrapped__"), - S = N && te.call(t, "__wrapped__"); - if (O || S) { - var C = O ? e.value() : e, - D = S ? t.value() : t; - return s || (s = new Oe()), r(C, D, n, a, s); - } - } - return ( - !!L && - (s || (s = new Oe()), - (function (e, t, r, n, i, a) { - var s = i & o, - l = lt(e), - c = l.length; - if (c != lt(t).length && !s) return !1; - for (var u = c; u--; ) { - var p = l[u]; - if (!(s ? p in t : te.call(t, p))) return !1; - } - var d = a.get(e); - if (d && a.get(t)) return d == t; - var f = !0; - a.set(e, t), a.set(t, e); - for (var h = s; ++u < c; ) { - var m = e[(p = l[u])], - g = t[p]; - if (n) - var v = s ? n(g, m, p, t, e, a) : n(m, g, p, e, t, a); - if (!(void 0 === v ? m === g || r(m, g, n, i, a) : v)) { - f = !1; - break; - } - h || (h = "constructor" == p); - } - if (f && !h) { - var b = e.constructor, - y = t.constructor; - b == y || - !("constructor" in e) || - !("constructor" in t) || - ("function" == typeof b && - b instanceof b && - "function" == typeof y && - y instanceof y) || - (f = !1); - } - return a.delete(e), a.delete(t), f; - })(e, t, r, n, a, s)) - ); - })(e, t, Re, r, n, a)) - ); - } - function je(e) { - return Qe(e) ? e : ze(e); - } - function Pe(e, t, r, n, a, s) { - var l = a & o, - c = e.length, - u = t.length; - if (c != u && !(l && u > c)) return !1; - var p = s.get(e); - if (p && s.get(t)) return p == t; - var d = -1, - f = !0, - h = a & i ? new Le() : void 0; - for (s.set(e, t), s.set(t, e); ++d < c; ) { - var m = e[d], - g = t[d]; - if (n) var v = l ? n(g, m, d, t, e, s) : n(m, g, d, e, t, s); - if (void 0 !== v) { - if (v) continue; - f = !1; - break; - } - if (h) { - if ( - !H(t, function (e, t) { - if (!h.has(t) && (m === e || r(m, e, n, a, s))) - return h.add(t); - }) - ) { - f = !1; - break; - } - } else if (m !== g && !r(m, g, n, a, s)) { - f = !1; - break; - } - } - return s.delete(e), s.delete(t), f; - } - function Be(e, t) { - var r, - n, - i = e.__data__; - return ( - "string" == (n = typeof (r = t)) || - "number" == n || - "symbol" == n || - "boolean" == n - ? "__proto__" !== r - : null === r - ) - ? i["string" == typeof t ? "string" : "hash"] - : i.map; - } - function Fe(e, t) { - var r = (function (e, t) { - return null == e ? void 0 : e[t]; - })(e, t); - return (function (e) { - return ( - !(!nt(e) || ((t = e), Q && Q in t)) && - (tt(e) || G(e) ? ne : C).test(We(e)) - ); - var t; - })(r) - ? r - : void 0; - } - (_e.prototype.clear = function () { - this.__data__ = ge ? ge(null) : {}; - }), - (_e.prototype.delete = function (e) { - return this.has(e) && delete this.__data__[e]; - }), - (_e.prototype.get = function (e) { - var t = this.__data__; - if (ge) { - var r = t[e]; - return r === n ? void 0 : r; - } - return te.call(t, e) ? t[e] : void 0; - }), - (_e.prototype.has = function (e) { - var t = this.__data__; - return ge ? void 0 !== t[e] : te.call(t, e); - }), - (_e.prototype.set = function (e, t) { - return (this.__data__[e] = ge && void 0 === t ? n : t), this; - }), - (Ae.prototype.clear = function () { - this.__data__ = []; - }), - (Ae.prototype.delete = function (e) { - var t = this.__data__, - r = Ce(t, e); - return !( - r < 0 || (r == t.length - 1 ? t.pop() : le.call(t, r, 1), 0) - ); - }), - (Ae.prototype.get = function (e) { - var t = this.__data__, - r = Ce(t, e); - return r < 0 ? void 0 : t[r][1]; - }), - (Ae.prototype.has = function (e) { - return Ce(this.__data__, e) > -1; - }), - (Ae.prototype.set = function (e, t) { - var r = this.__data__, - n = Ce(r, e); - return n < 0 ? r.push([e, t]) : (r[n][1] = t), this; - }), - (Ne.prototype.clear = function () { - this.__data__ = { - hash: new _e(), - map: new (de || Ae)(), - string: new _e(), - }; - }), - (Ne.prototype.delete = function (e) { - return Be(this, e).delete(e); - }), - (Ne.prototype.get = function (e) { - return Be(this, e).get(e); - }), - (Ne.prototype.has = function (e) { - return Be(this, e).has(e); - }), - (Ne.prototype.set = function (e, t) { - return Be(this, e).set(e, t), this; - }), - (Le.prototype.add = Le.prototype.push = - function (e) { - return this.__data__.set(e, n), this; - }), - (Le.prototype.has = function (e) { - return this.__data__.has(e); - }), - (Oe.prototype.clear = function () { - this.__data__ = new Ae(); - }), - (Oe.prototype.delete = function (e) { - return this.__data__.delete(e); - }), - (Oe.prototype.get = function (e) { - return this.__data__.get(e); - }), - (Oe.prototype.has = function (e) { - return this.__data__.has(e); - }), - (Oe.prototype.set = function (e, t) { - var r = this.__data__; - if (r instanceof Ae) { - var n = r.__data__; - if (!de || n.length < 199) return n.push([e, t]), this; - r = this.__data__ = new Ne(n); - } - return r.set(e, t), this; - }); - var Me = ce ? $(ce, Object) : pt, - Ie = ce - ? function (e) { - for (var t = []; e; ) V(t, Me(e)), (e = ae(e)); - return t; - } - : pt, - Ue = function (e) { - return re.call(e); - }; - function Ve(e, t) { - return ( - !!(t = null == t ? s : t) && - ("number" == typeof e || D.test(e)) && - e > -1 && - e % 1 == 0 && - e < t - ); - } - function He(e, t) { - if (Qe(e)) return !1; - var r = typeof e; - return ( - !( - "number" != r && - "symbol" != r && - "boolean" != r && - null != e && - !ot(e) - ) || - N.test(e) || - !A.test(e) || - (null != t && e in Object(t)) - ); - } - function Ge(e) { - var t = e && e.constructor; - return e === (("function" == typeof t && t.prototype) || X); - } - function Ke(e) { - return e == e && !nt(e); - } - function $e(e, t) { - return function (r) { - return null != r && r[e] === t && (void 0 !== t || e in Object(r)); - }; - } - ((pe && Ue(new pe(new ArrayBuffer(1))) != _) || - (de && Ue(new de()) != m) || - (fe && Ue(fe.resolve()) != b) || - (he && Ue(new he()) != w) || - (me && Ue(new me()) != T)) && - (Ue = function (e) { - var t = re.call(e), - r = t == v ? e.constructor : void 0, - n = r ? We(r) : void 0; - if (n) - switch (n) { - case ve: - return _; - case be: - return m; - case ye: - return b; - case we: - return w; - case Ee: - return T; - } - return t; - }); - var ze = Je(function (e) { - var t; - e = - null == (t = e) - ? "" - : (function (e) { - if ("string" == typeof e) return e; - if (ot(e)) return ke ? ke.call(e) : ""; - var t = e + ""; - return "0" == t && 1 / e == -a ? "-0" : t; - })(t); - var r = []; - return ( - L.test(e) && r.push(""), - e.replace(O, function (e, t, n, i) { - r.push(n ? i.replace(S, "$1") : t || e); - }), - r - ); - }); - function Ye(e) { - if ("string" == typeof e || ot(e)) return e; - var t = e + ""; - return "0" == t && 1 / e == -a ? "-0" : t; - } - function We(e) { - if (null != e) { - try { - return ee.call(e); - } catch (e) {} - try { - return e + ""; - } catch (e) {} - } - return ""; - } - function Je(e, t) { - if ("function" != typeof e || (t && "function" != typeof t)) - throw new TypeError("Expected a function"); - var r = function () { - var n = arguments, - i = t ? t.apply(this, n) : n[0], - o = r.cache; - if (o.has(i)) return o.get(i); - var a = e.apply(this, n); - return (r.cache = o.set(i, a)), a; - }; - return (r.cache = new (Je.Cache || Ne)()), r; - } - function Xe(e, t) { - return e === t || (e != e && t != t); - } - function Ze(e) { - return ( - (function (e) { - return it(e) && et(e); - })(e) && - te.call(e, "callee") && - (!se.call(e, "callee") || re.call(e) == l) - ); - } - Je.Cache = Ne; - var Qe = Array.isArray; - function et(e) { - return null != e && rt(e.length) && !tt(e); - } - function tt(e) { - var t = nt(e) ? re.call(e) : ""; - return t == f || t == h; - } - function rt(e) { - return "number" == typeof e && e > -1 && e % 1 == 0 && e <= s; - } - function nt(e) { - var t = typeof e; - return !!e && ("object" == t || "function" == t); - } - function it(e) { - return !!e && "object" == typeof e; - } - function ot(e) { - return "symbol" == typeof e || (it(e) && re.call(e) == x); - } - var at, - st = U - ? ((at = U), - function (e) { - return at(e); - }) - : function (e) { - return it(e) && rt(e.length) && !!q[re.call(e)]; - }; - function lt(e) { - return et(e) - ? Se(e) - : (function (e) { - if (!Ge(e)) return ue(e); - var t = []; - for (var r in Object(e)) - te.call(e, r) && "constructor" != r && t.push(r); - return t; - })(e); - } - function ct(e) { - return et(e) - ? Se(e, !0) - : (function (e) { - if (!nt(e)) - return (function (e) { - var t = []; - if (null != e) for (var r in Object(e)) t.push(r); - return t; - })(e); - var t = Ge(e), - r = []; - for (var n in e) - ("constructor" != n || (!t && te.call(e, n))) && r.push(n); - return r; - })(e); - } - function ut(e) { - return e; - } - function pt() { - return []; - } - e.exports = function (e, t) { - return null == e - ? {} - : (function (e, t, r) { - for (var n = -1, i = t.length, o = {}; ++n < i; ) { - var a = t[n], - s = e[a]; - r(s, a) && (o[a] = s); - } - return o; - })( - e, - (function (e) { - return (function (e, t, r) { - var n = t(e); - return Qe(e) ? n : V(n, r(e)); - })(e, ct, Ie); - })(e), - "function" == typeof (r = t) - ? r - : null == r - ? ut - : "object" == typeof r - ? Qe(r) - ? (function (e, t) { - return He(e) && Ke(t) - ? $e(Ye(e), t) - : function (r) { - var n = (function (e, t, r) { - var n = null == e ? void 0 : De(e, t); - return void 0 === n ? void 0 : n; - })(r, e); - return void 0 === n && n === t - ? (function (e, t) { - return ( - null != e && - (function (e, t, r) { - for ( - var n, - i = -1, - o = (t = He(t, e) ? [t] : je(t)) - .length; - ++i < o; - - ) { - var a = Ye(t[i]); - if (!(n = null != e && r(e, a))) - break; - e = e[a]; - } - return ( - n || - (!!(o = e ? e.length : 0) && - rt(o) && - Ve(a, o) && - (Qe(e) || Ze(e))) - ); - })(e, t, qe) - ); - })(r, e) - : Re(t, n, void 0, i | o); - }; - })(r[0], r[1]) - : ((a = (function (e) { - for (var t = lt(e), r = t.length; r--; ) { - var n = t[r], - i = e[n]; - t[r] = [n, i, Ke(i)]; - } - return t; - })((n = r))), - 1 == a.length && a[0][2] - ? $e(a[0][0], a[0][1]) - : function (e) { - return ( - e === n || - (function (e, t, r, n) { - var a = r.length, - s = a; - if (null == e) return !s; - for (e = Object(e); a--; ) { - var l = r[a]; - if (l[2] ? l[1] !== e[l[0]] : !(l[0] in e)) - return !1; - } - for (; ++a < s; ) { - var c = (l = r[a])[0], - u = e[c], - p = l[1]; - if (l[2]) { - if (void 0 === u && !(c in e)) return !1; - } else { - var d, - f = new Oe(); - if ( - !(void 0 === d - ? Re(p, u, n, i | o, f) - : d) - ) - return !1; - } - } - return !0; - })(e, 0, a) - ); - }) - : He((s = r)) - ? ((l = Ye(s)), - function (e) { - return null == e ? void 0 : e[l]; - }) - : (function (e) { - return function (t) { - return De(t, e); - }; - })(s) - ); - var r, n, a, s, l; - }; - }, - 7690: (e, t, r) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.nodeHtmlParserConfig = - t.aTagTranslatorConfig = - t.defaultCodeBlockTranslators = - t.tableCellTranslatorConfig = - t.tableRowTranslatorConfig = - t.tableTranslatorConfig = - t.defaultTranslators = - t.defaultOptions = - t.contentlessElements = - t.defaultIgnoreElements = - t.defaultBlockElements = - void 0); - const n = r(998), - i = r(4923); - (t.defaultBlockElements = [ - "ADDRESS", - "ARTICLE", - "ASIDE", - "AUDIO", - "BLOCKQUOTE", - "BODY", - "CANVAS", - "CENTER", - "DD", - "DIR", - "DIV", - "DL", - "DT", - "FIELDSET", - "FIGCAPTION", - "FIGURE", - "FOOTER", - "FORM", - "FRAMESET", - "H1", - "H2", - "H3", - "H4", - "H5", - "H6", - "HEADER", - "HGROUP", - "HR", - "HTML", - "ISINDEX", - "LI", - "MAIN", - "MENU", - "NAV", - "NOFRAMES", - "NOSCRIPT", - "OL", - "OUTPUT", - "P", - "PRE", - "SECTION", - "TABLE", - "TBODY", - "TD", - "TFOOT", - "TH", - "THEAD", - "TR", - "UL", - ]), - (t.defaultIgnoreElements = [ - "AREA", - "BASE", - "COL", - "COMMAND", - "EMBED", - "HEAD", - "INPUT", - "KEYGEN", - "LINK", - "META", - "PARAM", - "SCRIPT", - "SOURCE", - "STYLE", - "TRACK", - "WBR", - ]), - (t.contentlessElements = ["BR", "HR", "IMG"]), - (t.defaultOptions = Object.freeze({ - preferNativeParser: !1, - codeFence: "```", - bulletMarker: "*", - indent: " ", - codeBlockStyle: "fenced", - emDelimiter: "_", - strongDelimiter: "**", - maxConsecutiveNewlines: 3, - globalEscape: [/[\\`*_~\[\]]/gm, "\\$&"], - lineStartEscape: [ - /^(\s*?)((?:\+\s)|(?:[=>-])|(?:#{1,6}\s))|(?:(\d+)(\.\s))/gm, - "$1$3\\$2$4", - ], - })), - (t.defaultTranslators = { - pre: { noEscape: !0, preserveWhitespace: !0 }, - br: { content: " \n", recurse: !1 }, - hr: { content: "---", recurse: !1 }, - "h1,h2,h3,h4,h5,h6": ({ node: e }) => ({ - prefix: "#".repeat(+e.tagName.charAt(1)) + " ", - }), - "strong,b": { - spaceIfRepeatingChar: !0, - postprocess: ({ content: e, options: { strongDelimiter: t } }) => - (0, n.isWhiteSpaceOnly)(e) - ? i.PostProcessResult.RemoveNode - : (0, n.tagSurround)(e, t), - }, - "del,s,strike": { - spaceIfRepeatingChar: !0, - postprocess: ({ content: e }) => - (0, n.isWhiteSpaceOnly)(e) - ? i.PostProcessResult.RemoveNode - : (0, n.tagSurround)(e, "~~"), - }, - "em,i": { - spaceIfRepeatingChar: !0, - postprocess: ({ content: e, options: { emDelimiter: t } }) => - (0, n.isWhiteSpaceOnly)(e) - ? i.PostProcessResult.RemoveNode - : (0, n.tagSurround)(e, t), - }, - "ol,ul": ({ listKind: e }) => ({ surroundingNewlines: e ? 1 : 2 }), - li: ({ - options: { bulletMarker: e }, - indentLevel: t, - listKind: r, - listItemNumber: o, - }) => { - const a = +(t || 0); - return { - prefix: - " ".repeat(+(t || 0)) + - ("OL" === r && void 0 !== o ? `${o}. ` : `${e} `), - surroundingNewlines: 1, - postprocess: ({ content: e }) => - (0, n.isWhiteSpaceOnly)(e) - ? i.PostProcessResult.RemoveNode - : e - .trim() - .replace( - /([^\r\n])(?:\r?\n)+/g, - `$1 \n${" ".repeat(a)}` - ) - .replace(/(\S+?)[^\S\r\n]+$/gm, "$1 "), - }; - }, - blockquote: { - postprocess: ({ content: e }) => - (0, n.trimNewLines)(e).replace(/^(>*)[^\S\r\n]?/gm, ">$1 "), - }, - code: ({ - node: e, - parent: t, - options: { codeFence: r, codeBlockStyle: i }, - visitor: o, - }) => { - var a, s; - return ["PRE", "WRAPPED-PRE"].includes( - null == t ? void 0 : t.tagName - ) && t.childNodes.length < 2 - ? "fenced" === i - ? { - noEscape: !0, - prefix: - r + - ((null === - (s = - null === (a = e.getAttribute("class")) || - void 0 === a - ? void 0 - : a.match(/language-(\S+)/)) || void 0 === s - ? void 0 - : s[1]) || "") + - "\n", - postfix: "\n" + r, - childTranslators: o.instance.codeBlockTranslators, - } - : { - noEscape: !0, - postprocess: ({ content: e }) => e.replace(/^/gm, " "), - childTranslators: o.instance.codeBlockTranslators, - } - : { - spaceIfRepeatingChar: !0, - noEscape: !0, - postprocess: ({ content: e }) => { - var t, r; - const i = - "`" + - ((null === - (r = - null === (t = e.match(/`+/g)) || void 0 === t - ? void 0 - : t.sort((e, t) => t.length - e.length)) || - void 0 === r - ? void 0 - : r[0]) || ""), - o = i.length > 1 ? " " : ""; - return (0, n.surround)((0, n.surround)(e, o), i); - }, - }; - }, - table: ({ visitor: e }) => ({ - surroundingNewlines: 2, - childTranslators: e.instance.tableTranslators, - postprocess: ({ content: e, nodeMetadata: t, node: r }) => { - const o = (0, n.splitSpecial)(e).map(({ text: e }) => - e.replace(/^(?:\|\s+)?(.+)\s*\|\s*$/, "$1") - ), - a = []; - let s = []; - for (const e of o) { - if (!e) continue; - const t = e - .split(" |") - .map( - (e, t) => ( - (e = e.trim()), - (s.length < t + 1 || s[t] < e.length) && - (s[t] = e.length), - e - ) - ); - a.push(t); - } - if (a.length < 1) return i.PostProcessResult.RemoveNode; - const l = s.length; - let c = ""; - const u = t.get(r).tableMeta.caption; - return ( - u && (c += u + "\n"), - a.forEach((e, t) => { - var r; - c += "| "; - for (let t = 0; t < l; t++) { - let n = null !== (r = e[t]) && void 0 !== r ? r : ""; - (n += " ".repeat(Math.max(0, s[t] - n.length))), - (c += n + " |" + (t < l - 1 ? " " : "")); - } - (c += "\n"), - 0 === t && - (c += - "|" + - s.map((e) => " " + "-".repeat(e) + " |").join("") + - "\n"); - }), - c - ); - }, - }), - a: ({ node: e, options: t, visitor: r }) => { - const n = e.getAttribute("href"); - if (!n) return {}; - let i = ""; - for (const e of n) - switch (e) { - case "(": - i += "%28"; - break; - case ")": - i += "%29"; - break; - case "_": - i += "%5F"; - break; - case "*": - i += "%2A"; - break; - default: - i += e; - } - const o = e.getAttribute("title"); - return e.textContent === n - ? { content: `<${i}>` } - : { - postprocess: ({ content: e }) => - e.replace(/(?:\r?\n)+/g, " "), - childTranslators: r.instance.aTagTranslators, - prefix: "[", - postfix: - "]" + - (t.useLinkReferenceDefinitions - ? `[${r.addOrGetUrlDefinition(i)}]` - : `(${i}${o ? ` "${o}"` : ""})`), - }; - }, - img: ({ node: e, options: t }) => { - const r = e.getAttribute("src") || ""; - if (!r || (!t.keepDataImages && /^data:/i.test(r))) - return { ignore: !0 }; - const n = e.getAttribute("alt") || "", - i = e.getAttribute("title") || ""; - return { content: `![${n}](${r}${i && ` "${i}"`})`, recurse: !1 }; - }, - }), - (t.tableTranslatorConfig = { - caption: ({ visitor: e }) => ({ - surroundingNewlines: !1, - childTranslators: e.instance.tableCellTranslators, - postprocess: ({ content: e, nodeMetadata: t, node: r }) => { - const n = e.replace(/(?:\r?\n)+/g, " ").trim(); - return ( - n && (t.get(r).tableMeta.caption = "__" + n + "__"), - i.PostProcessResult.RemoveNode - ); - }, - }), - tr: ({ visitor: e }) => ({ - surroundingNewlines: !1, - childTranslators: e.instance.tableRowTranslators, - postfix: "\n", - prefix: "| ", - postprocess: ({ content: e }) => - / \|\s*$/.test(e) ? e : i.PostProcessResult.RemoveNode, - }), - "th,td": ({ visitor: e }) => ({ - surroundingNewlines: !1, - childTranslators: e.instance.tableCellTranslators, - prefix: " ", - postfix: " |", - postprocess: ({ content: e }) => - (0, n.trimNewLines)(e) - .replace("|", "\\|") - .replace(/(?:\r?\n)+/g, " ") - .trim(), - }), - }), - (t.tableRowTranslatorConfig = { - "th,td": t.tableTranslatorConfig["th,td"], - }), - (t.tableCellTranslatorConfig = { - a: t.defaultTranslators.a, - "strong,b": t.defaultTranslators["strong,b"], - "del,s,strike": t.defaultTranslators["del,s,strike"], - "em,i": t.defaultTranslators["em,i"], - img: t.defaultTranslators.img, - }), - (t.defaultCodeBlockTranslators = { - br: { content: "\n", recurse: !1 }, - hr: { content: "---", recurse: !1 }, - "h1,h2,h3,h4,h5,h6": { prefix: "[", postfix: "]" }, - "ol,ul": t.defaultTranslators["ol,ul"], - li: t.defaultTranslators.li, - tr: { surroundingNewlines: !0 }, - img: { recurse: !1 }, - }), - (t.aTagTranslatorConfig = { - br: { content: "\n", recurse: !1 }, - hr: { content: "\n", recurse: !1 }, - pre: t.defaultTranslators.pre, - "strong,b": t.defaultTranslators["strong,b"], - "del,s,strike": t.defaultTranslators["del,s,strike"], - "em,i": t.defaultTranslators["em,i"], - img: t.defaultTranslators.img, - }), - (t.nodeHtmlParserConfig = { - lowerCaseTagName: !1, - comment: !1, - blockTextElements: { script: !1, noscript: !1, style: !1 }, - }); - }, - 2245: (e, t, r) => { - "use strict"; - t.dx = void 0; - var n = r(7352); - Object.defineProperty(t, "dx", { - enumerable: !0, - get: function () { - return n.NodeHtmlMarkdown; - }, - }); - r(4923); - }, - 7352: (e, t, r) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.NodeHtmlMarkdown = void 0); - const n = r(4923), - i = r(7690), - o = r(998), - a = r(390); - class s { - constructor(e, t, r) { - var o, a, s, l; - (this.translators = new n.TranslatorCollection()), - (this.aTagTranslators = new n.TranslatorCollection()), - (this.codeBlockTranslators = new n.TranslatorCollection()), - (this.tableTranslators = new n.TranslatorCollection()), - (this.tableRowTranslators = new n.TranslatorCollection()), - (this.tableCellTranslators = new n.TranslatorCollection()), - (this.options = Object.assign( - Object.assign({}, i.defaultOptions), - e - )); - const c = - null !== - (a = - null === (o = this.options.ignore) || void 0 === o - ? void 0 - : o.concat(i.defaultIgnoreElements)) && void 0 !== a - ? a - : i.defaultIgnoreElements, - u = - null !== - (l = - null === (s = this.options.blockElements) || void 0 === s - ? void 0 - : s.concat(i.defaultBlockElements)) && void 0 !== l - ? l - : i.defaultBlockElements; - null == c || - c.forEach((e) => { - this.translators.set(e, { ignore: !0, recurse: !1 }), - this.codeBlockTranslators.set(e, { ignore: !0, recurse: !1 }); - }), - null == u || - u.forEach((e) => { - this.translators.set(e, { surroundingNewlines: 2 }), - this.codeBlockTranslators.set(e, { - surroundingNewlines: 2, - }); - }); - for (const [e, r] of Object.entries( - Object.assign(Object.assign({}, i.defaultTranslators), t) - )) - this.translators.set(e, r, !0); - for (const [e, t] of Object.entries( - Object.assign(Object.assign({}, i.defaultCodeBlockTranslators), r) - )) - this.codeBlockTranslators.set(e, t, !0); - for (const [e, t] of Object.entries(i.aTagTranslatorConfig)) - this.aTagTranslators.set(e, t, !0); - for (const [e, t] of Object.entries(i.tableTranslatorConfig)) - this.tableTranslators.set(e, t, !0); - for (const [e, t] of Object.entries(i.tableRowTranslatorConfig)) - this.tableRowTranslators.set(e, t, !0); - for (const [e, t] of Object.entries(i.tableCellTranslatorConfig)) - this.tableCellTranslators.set(e, t, !0); - this.options.textReplace || (this.options.textReplace = []), - this.options.textReplace.push([/^/gim, ""]); - } - static translate(e, t, r, n) { - return s.prototype.translateWorker.call(new s(t, r, n), e); - } - translate(e) { - return this.translateWorker(e); - } - translateWorker(e) { - const t = "string" != typeof e, - r = t ? e : { default: e }, - n = {}; - for (const [e, t] of Object.entries(r)) { - const r = (0, o.parseHTML)(t, this.options); - n[e] = (0, a.getMarkdownForHtmlNodes)( - this, - r, - "default" !== e ? e : void 0 - ); - } - return t ? n : n.default; - } - } - t.NodeHtmlMarkdown = s; - }, - 5089: (e, t, r) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.isElementNode = - t.isCommentNode = - t.isTextNode = - t.CommentNode = - t.NodeType = - void 0); - const n = r(698); - Object.defineProperty(t, "CommentNode", { - enumerable: !0, - get: function () { - return n.CommentNode; - }, - }), - Object.defineProperty(t, "NodeType", { - enumerable: !0, - get: function () { - return n.NodeType; - }, - }), - (t.isTextNode = (e) => e.nodeType === n.NodeType.TEXT_NODE), - (t.isCommentNode = (e) => e.nodeType === n.NodeType.COMMENT_NODE), - (t.isElementNode = (e) => e.nodeType === n.NodeType.ELEMENT_NODE); - }, - 4923: (e, t) => { - "use strict"; - var r; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.createTranslatorContext = - t.isTranslatorConfig = - t.TranslatorCollection = - t.PostProcessResult = - void 0), - ((r = t.PostProcessResult || (t.PostProcessResult = {}))[ - (r.NoChange = 0) - ] = "NoChange"), - (r[(r.RemoveNode = 1)] = "RemoveNode"), - (t.TranslatorCollection = class { - get size() { - return Object.keys(this).length; - } - set(e, r, n) { - e.split(",").forEach((e) => { - e = e.toUpperCase(); - let i = r; - if (n) { - const n = this[e]; - (0, t.isTranslatorConfig)(n) && - (i = (0, t.isTranslatorConfig)(r) - ? Object.assign(Object.assign({}, n), r) - : Object.assign((...e) => r.apply(void 0, e), { - base: n, - })); - } - this[e] = i; - }); - } - get(e) { - return this[e.toUpperCase()]; - } - entries() { - return Object.entries(this); - } - remove(e) { - e.split(",").forEach((e) => delete this[e.toUpperCase()]); - } - }), - (t.isTranslatorConfig = (e) => "object" == typeof e), - (t.createTranslatorContext = function (e, t, r, n) { - const { instance: i, nodeMetadata: o } = e; - return Object.assign( - { - node: t, - options: i.options, - parent: t.parentNode, - nodeMetadata: o, - visitor: e, - base: n, - }, - r - ); - }); - }, - 998: (e, t, r) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.perfStop = - t.perfStart = - t.getChildNodes = - t.parseHTML = - t.truthyStr = - t.getTrailingWhitespaceInfo = - t.tagSurround = - t.splitSpecial = - t.isWhiteSpaceOnly = - t.surround = - t.trimNewLines = - void 0); - const n = r(7690); - function i(e) { - const t = [], - r = e.length; - for (let n = 0, i = 0; n < r; ++n) { - let o = e.charAt(n), - a = ""; - "\r" === o - ? (a = "\n" === e.charAt(n + 1) ? "\r\n" : o) - : "\n" === o && (a = o); - const s = a ? n : n === r - 1 ? n + 1 : void 0; - void 0 !== s && - (t.push({ text: e.slice(i, s), newLineChar: a }), - (i = s + a.length), - a.length > 1 && ++n); - } - return t; - } - (t.trimNewLines = (e) => e.replace(/^\n+|\n+$/g, "")), - (t.surround = (e, t) => `${t}${e}${t}`), - (t.isWhiteSpaceOnly = (e) => !/\S/.test(e)), - (t.splitSpecial = i), - (t.tagSurround = function (e, t) { - e.indexOf(t) >= 0 && - (e = e.replace( - new RegExp(`([^\\\\])\\${t.split("").join("\\")}`, "gm"), - "$1" - )); - const r = i(e); - let n = ""; - for (const { text: e, newLineChar: i } of r) { - let r, - o, - a = 0; - for (; a >= 0 && a < e.length; ) - /[\S]/.test(e[a]) && - (void 0 === r - ? ((r = a), (a = e.length)) - : ((o = a), (a = NaN))), - void 0 === r ? ++a : --a; - if (void 0 === r) { - n += e + i; - continue; - } - void 0 === o && (o = e.length - 1); - const s = r > 0 ? e[r - 1] : "", - l = o < e.length - 1 ? e[o + 1] : ""; - n += s + t + e.slice(r, o + 1) + t + l + i; - } - return n; - }), - (t.getTrailingWhitespaceInfo = (e) => { - const t = { whitespace: 0, newLines: 0 }, - r = Math.max(e.length - 10, 0); - for (let n = e.length - 1; n >= r; --n) { - const r = e.slice(n, n + 1); - if (!/\s/.test(r)) break; - ++t.whitespace, ["\r", "\n"].includes(r) && ++t.newLines; - } - return t; - }), - (t.truthyStr = (e, t) => (e ? (void 0 !== t ? t : String(e)) : "")); - const o = () => { - try { - return r(698).parse; - } catch (e) { - return; - } - }; - function a(e) { - process.env.LOG_PERF && console.time(e); - } - function s(e) { - process.env.LOG_PERF && console.timeEnd(e); - } - (t.parseHTML = function (e, t) { - let r, i; - if ((a("parse"), t.preferNativeParser)) - try { - i = (function (e) { - try { - if ( - !(null === window || void 0 === window - ? void 0 - : window.DOMParser) || - !new window.DOMParser().parseFromString("", "text/html") - ) - return; - } catch (e) { - return; - } - let t; - try { - t = document.implementation.createHTMLDocument("").open(); - } catch (e) { - const { ActiveXObject: t } = window; - if (t) { - const e = t("htmlfile"); - return (e.designMode = "on"), e.open(); - } - throw e; - } - return ( - t.write("" + e + ""), - t.close(), - t.documentElement - ); - })(e); - } catch (e) { - if (((r = o()), !r)) throw e; - console.warn( - "Native DOM parser encountered an error during parse", - e - ); - } - else r = o(); - return i || (i = r(e, n.nodeHtmlParserConfig)), s("parse"), i; - }), - (t.getChildNodes = function (e) { - if ( - null == (t = e.childNodes) && - "function" != typeof t[Symbol.iterator] - ) - return e.childNodes; - var t; - const r = []; - return e.childNodes.forEach((e) => r.push(e)), r; - }), - (t.perfStart = a), - (t.perfStop = s); - }, - 390: (e, t, r) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.getMarkdownForHtmlNodes = t.Visitor = void 0); - const n = r(5089), - i = r(998), - o = r(4923), - a = r(7690); - class s { - constructor(e, t, r) { - (this.instance = e), - (this.rootNode = t), - (this.fileName = r), - (this.nodeMetadata = new Map()), - (this.urlDefinitions = []), - (this.result = { - text: "", - trailingNewlineStats: { whitespace: 0, newLines: 0 }, - }), - (this.options = e.options), - this.optimizeTree(t), - this.visitNode(t); - } - addOrGetUrlDefinition(e) { - let t = this.urlDefinitions.findIndex((t) => t === e); - return t < 0 && (t = this.urlDefinitions.push(e) - 1), t + 1; - } - appendResult(e, t, r) { - if (!e && void 0 === t) return; - const { result: n } = this; - void 0 !== t && (n.text = n.text.substr(0, t)), - (n.text += (r && n.text.slice(-1) === e[0] ? " " : "") + e), - (n.trailingNewlineStats = (0, i.getTrailingWhitespaceInfo)( - n.text - )); - } - appendNewlines(e) { - const { newLines: t } = this.result.trailingNewlineStats; - this.appendResult("\n".repeat(Math.max(0, +e - t))); - } - optimizeTree(e) { - (0, i.perfStart)("Optimize tree"); - const { translators: t } = this.instance; - !(function e(r) { - let o = !1; - if ( - (0, n.isTextNode)(r) || - ((0, n.isElementNode)(r) && - a.contentlessElements.includes(r.tagName)) - ) - o = !0; - else { - const n = (0, i.getChildNodes)(r); - if (n.length) for (const t of n) o ? e(t) : (o = e(t)); - else { - const e = t[r.tagName]; - ((null == e ? void 0 : e.preserveIfEmpty) || - "function" == typeof e) && - (o = !0); - } - } - return (r.preserve = o); - })(e), - (0, i.perfStop)("Optimize tree"); - } - processText(e, t) { - let r = e; - if ( - ((null == t ? void 0 : t.preserveWhitespace) || - (r = r.replace(/\s+/g, " ")), - null == t ? void 0 : t.noEscape) - ) - return r; - const { - lineStartEscape: n, - globalEscape: i, - textReplace: o, - } = this.options; - if (((r = r.replace(i[0], i[1]).replace(n[0], n[1])), o)) - for (const [e, t] of o) r = r.replace(e, t); - return r; - } - visitNode(e, t, r) { - var a, s; - const { result: l } = this; - if (!e.preserve) return; - if ((0, n.isTextNode)(e)) - return e.isWhitespace && - !(null == r ? void 0 : r.preserveWhitespace) - ? !l.text.length || l.trailingNewlineStats.whitespace > 0 - ? void 0 - : this.appendResult(" ") - : this.appendResult( - this.processText( - (null == r ? void 0 : r.preserveWhitespace) - ? e.text - : e.trimmedText, - r - ) - ); - if (t || !(0, n.isElementNode)(e)) return; - const c = (null == r ? void 0 : r.translators) - ? r.translators[e.tagName] - : this.instance.translators[e.tagName]; - switch (e.tagName) { - case "UL": - case "OL": - r = Object.assign(Object.assign({}, r), { - listItemNumber: 0, - listKind: e.tagName, - indentLevel: - (null !== (a = null == r ? void 0 : r.indentLevel) && - void 0 !== a - ? a - : -1) + 1, - }); - break; - case "LI": - "OL" === (null == r ? void 0 : r.listKind) && - (r.listItemNumber = - (null !== (s = r.listItemNumber) && void 0 !== s ? s : 0) + - 1); - break; - case "PRE": - r = Object.assign(Object.assign({}, r), { - preserveWhitespace: !0, - }); - break; - case "TABLE": - r = Object.assign(Object.assign({}, r), { - tableMeta: { node: e }, - }); - } - if ((r && this.nodeMetadata.set(e, r), !c)) { - for (const n of (0, i.getChildNodes)(e)) this.visitNode(n, t, r); - return; - } - let u, p; - if ( - ((0, o.isTranslatorConfig)(c) - ? (u = c) - : ((p = (0, o.createTranslatorContext)(this, e, r, c.base)), - (u = Object.assign(Object.assign({}, c.base), c(p)))), - u.ignore) - ) - return; - u.noEscape && - !(null == r ? void 0 : r.noEscape) && - ((r = Object.assign(Object.assign({}, r), { - noEscape: u.noEscape, - })), - this.nodeMetadata.set(e, r)), - u.childTranslators && - u.childTranslators !== (null == r ? void 0 : r.translators) && - ((r = Object.assign(Object.assign({}, r), { - translators: u.childTranslators, - })), - this.nodeMetadata.set(e, r)); - const d = l.text.length; - if ( - (u.surroundingNewlines && - this.appendNewlines(+u.surroundingNewlines), - u.prefix && this.appendResult(u.prefix), - "string" == typeof u.content) - ) - this.appendResult(u.content, void 0, u.spaceIfRepeatingChar); - else { - const t = l.text.length; - for (const t of (0, i.getChildNodes)(e)) - this.visitNode(t, !1 === u.recurse, r); - if (u.postprocess) { - const n = u.postprocess( - Object.assign( - Object.assign( - {}, - p || (0, o.createTranslatorContext)(this, e, r) - ), - { content: l.text.substr(t) } - ) - ); - if (n === o.PostProcessResult.RemoveNode) - return ( - "LI" === e.tagName && - (null == r ? void 0 : r.listItemNumber) && - --r.listItemNumber, - this.appendResult("", d) - ); - "string" == typeof n && - this.appendResult(n, t, u.spaceIfRepeatingChar); - } - } - u.postfix && this.appendResult(u.postfix), - u.surroundingNewlines && - this.appendNewlines(+u.surroundingNewlines); - } - } - (t.Visitor = s), - (t.getMarkdownForHtmlNodes = function (e, t, r) { - (0, i.perfStart)("walk"); - const n = new s(e, t, r); - let o = n.result.text; - (0, i.perfStop)("walk"), - e.options.useLinkReferenceDefinitions && - (/[^\r\n]/.test(o.slice(-1)) && (o += "\n"), - n.urlDefinitions.forEach((e, t) => { - o += `\n[${t + 1}]: ${e}`; - })); - const { maxConsecutiveNewlines: a } = e.options; - return ( - a && - (o = o.replace( - new RegExp( - String.raw`(?:\r?\n\s*)+((?:\r?\n\s*){${a}})`, - "g" - ), - "$1" - )), - (0, i.trimNewLines)(o) - ); - }); - }, - 8701: (e, t) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.default = function (e) { - return e[e.length - 1]; - }); - }, - 698: function (e, t, r) { - "use strict"; - var n = - (this && this.__importDefault) || - function (e) { - return e && e.__esModule ? e : { default: e }; - }; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.NodeType = - t.TextNode = - t.Node = - t.valid = - t.default = - t.parse = - t.HTMLElement = - t.CommentNode = - void 0); - var i = r(1271); - Object.defineProperty(t, "CommentNode", { - enumerable: !0, - get: function () { - return n(i).default; - }, - }); - var o = r(4382); - Object.defineProperty(t, "HTMLElement", { - enumerable: !0, - get: function () { - return n(o).default; - }, - }); - var a = r(8821); - Object.defineProperty(t, "parse", { - enumerable: !0, - get: function () { - return n(a).default; - }, - }), - Object.defineProperty(t, "default", { - enumerable: !0, - get: function () { - return n(a).default; - }, - }); - var s = r(6389); - Object.defineProperty(t, "valid", { - enumerable: !0, - get: function () { - return n(s).default; - }, - }); - var l = r(4936); - Object.defineProperty(t, "Node", { - enumerable: !0, - get: function () { - return n(l).default; - }, - }); - var c = r(7923); - Object.defineProperty(t, "TextNode", { - enumerable: !0, - get: function () { - return n(c).default; - }, - }); - var u = r(9979); - Object.defineProperty(t, "NodeType", { - enumerable: !0, - get: function () { - return n(u).default; - }, - }); - }, - 80: function (e, t, r) { - "use strict"; - var n = - (this && this.__importDefault) || - function (e) { - return e && e.__esModule ? e : { default: e }; - }; - Object.defineProperty(t, "__esModule", { value: !0 }); - var i = n(r(9979)); - function o(e) { - return e && e.nodeType === i.default.ELEMENT_NODE; - } - function a(e, t) { - return o(e) ? e.getAttribute(t) : void 0; - } - function s(e) { - return e && e.childNodes; - } - function l(e) { - return e ? e.parentNode : null; - } - t.default = { - isTag: o, - getAttributeValue: a, - getName: function (e) { - return ((e && e.rawTagName) || "").toLowerCase(); - }, - getChildren: s, - getParent: l, - getText: function (e) { - return e.text; - }, - removeSubsets: function (e) { - for (var t, r, n, i = e.length; --i > -1; ) { - for (t = r = e[i], e[i] = null, n = !0; r; ) { - if (e.indexOf(r) > -1) { - (n = !1), e.splice(i, 1); - break; - } - r = l(r); - } - n && (e[i] = t); - } - return e; - }, - existsOne: function e(t, r) { - return r.some(function (r) { - return !!o(r) && (t(r) || e(t, s(r))); - }); - }, - getSiblings: function (e) { - var t = l(e); - return t && s(t); - }, - hasAttrib: function (e, t) { - return void 0 !== a(e, t); - }, - findOne: function e(t, r) { - for (var n = null, i = 0, o = r.length; i < o && !n; i++) { - var a = r[i]; - if (t(a)) n = a; - else { - var l = s(a); - l && l.length > 0 && (n = e(t, l)); - } - } - return n; - }, - findAll: function e(t, r) { - for (var n = [], i = 0, a = r.length; i < a; i++) - if (o(r[i])) { - t(r[i]) && n.push(r[i]); - var l = s(r[i]); - l && (n = n.concat(e(t, l))); - } - return n; - }, - }; - }, - 1271: function (e, t, r) { - "use strict"; - var n, - i = - (this && this.__extends) || - ((n = function (e, t) { - return ( - (n = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (e, t) { - e.__proto__ = t; - }) || - function (e, t) { - for (var r in t) - Object.prototype.hasOwnProperty.call(t, r) && - (e[r] = t[r]); - }), - n(e, t) - ); - }), - function (e, t) { - if ("function" != typeof t && null !== t) - throw new TypeError( - "Class extends value " + - String(t) + - " is not a constructor or null" - ); - function r() { - this.constructor = e; - } - n(e, t), - (e.prototype = - null === t - ? Object.create(t) - : ((r.prototype = t.prototype), new r())); - }), - o = - (this && this.__importDefault) || - function (e) { - return e && e.__esModule ? e : { default: e }; - }; - Object.defineProperty(t, "__esModule", { value: !0 }); - var a = o(r(4936)), - s = o(r(9979)), - l = (function (e) { - function t(t, r, n) { - var i = e.call(this, r, n) || this; - return (i.rawText = t), (i.nodeType = s.default.COMMENT_NODE), i; - } - return ( - i(t, e), - (t.prototype.clone = function () { - return new t(this.rawText, null); - }), - Object.defineProperty(t.prototype, "text", { - get: function () { - return this.rawText; - }, - enumerable: !1, - configurable: !0, - }), - (t.prototype.toString = function () { - return "\x3c!--".concat(this.rawText, "--\x3e"); - }), - t - ); - })(a.default); - t.default = l; - }, - 4382: function (e, t, r) { - "use strict"; - var n, - i = - (this && this.__extends) || - ((n = function (e, t) { - return ( - (n = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (e, t) { - e.__proto__ = t; - }) || - function (e, t) { - for (var r in t) - Object.prototype.hasOwnProperty.call(t, r) && - (e[r] = t[r]); - }), - n(e, t) - ); - }), - function (e, t) { - if ("function" != typeof t && null !== t) - throw new TypeError( - "Class extends value " + - String(t) + - " is not a constructor or null" - ); - function r() { - this.constructor = e; - } - n(e, t), - (e.prototype = - null === t - ? Object.create(t) - : ((r.prototype = t.prototype), new r())); - }), - o = - (this && this.__assign) || - function () { - return ( - (o = - Object.assign || - function (e) { - for (var t, r = 1, n = arguments.length; r < n; r++) - for (var i in (t = arguments[r])) - Object.prototype.hasOwnProperty.call(t, i) && - (e[i] = t[i]); - return e; - }), - o.apply(this, arguments) - ); - }, - a = - (this && this.__spreadArray) || - function (e, t, r) { - if (r || 2 === arguments.length) - for (var n, i = 0, o = t.length; i < o; i++) - (!n && i in t) || - (n || (n = Array.prototype.slice.call(t, 0, i)), - (n[i] = t[i])); - return e.concat(n || Array.prototype.slice.call(t)); - }, - s = - (this && this.__importDefault) || - function (e) { - return e && e.__esModule ? e : { default: e }; - }; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.parse = t.base_parse = void 0); - var l = r(5366), - c = s(r(6492)), - u = s(r(8701)), - p = s(r(80)), - d = s(r(1271)), - f = s(r(4936)), - h = s(r(7923)), - m = s(r(9979)), - g = new Set([ - "area", - "base", - "br", - "col", - "embed", - "hr", - "img", - "input", - "link", - "meta", - "param", - "source", - "track", - "wbr", - ]); - function v(e) { - return JSON.parse(JSON.stringify(c.default.decode(e))); - } - var b = new Set(); - !(function () { - for (var e = [], t = 0; t < arguments.length; t++) - e[t] = arguments[t]; - for ( - var r = function (e) { - for (var t = 0; t < e.length; t++) { - var r = e[t]; - b.add(r), b.add(r.toUpperCase()); - } - }, - n = 0, - i = e; - n < i.length; - n++ - ) - r(i[n]); - })( - ["h1", "h2", "h3", "h4", "h5", "h6", "header", "hgroup"], - ["details", "dialog", "dd", "div", "dt"], - ["fieldset", "figcaption", "figure", "footer", "form"], - ["table", "td", "tr"], - [ - "address", - "article", - "aside", - "blockquote", - "br", - "hr", - "li", - "main", - "nav", - "ol", - "p", - "pre", - "section", - "ul", - ] - ); - var y = (function () { - function e(e, t) { - void 0 === e && (e = []), - void 0 === t && - (t = function () { - return null; - }), - (this._set = new Set(e)), - (this._afterUpdate = t); - } - return ( - (e.prototype._validate = function (e) { - if (/\s/.test(e)) - throw new Error( - "DOMException in DOMTokenList.add: The token '".concat( - e, - "' contains HTML space characters, which are not valid in tokens." - ) - ); - }), - (e.prototype.add = function (e) { - this._validate(e), this._set.add(e), this._afterUpdate(this); - }), - (e.prototype.replace = function (e, t) { - this._validate(t), - this._set.delete(e), - this._set.add(t), - this._afterUpdate(this); - }), - (e.prototype.remove = function (e) { - this._set.delete(e) && this._afterUpdate(this); - }), - (e.prototype.toggle = function (e) { - this._validate(e), - this._set.has(e) ? this._set.delete(e) : this._set.add(e), - this._afterUpdate(this); - }), - (e.prototype.contains = function (e) { - return this._set.has(e); - }), - Object.defineProperty(e.prototype, "length", { - get: function () { - return this._set.size; - }, - enumerable: !1, - configurable: !0, - }), - (e.prototype.values = function () { - return this._set.values(); - }), - Object.defineProperty(e.prototype, "value", { - get: function () { - return Array.from(this._set.values()); - }, - enumerable: !1, - configurable: !0, - }), - (e.prototype.toString = function () { - return Array.from(this._set.values()).join(" "); - }), - e - ); - })(), - w = (function (e) { - function t(t, r, n, i, o) { - void 0 === n && (n = ""); - var a = e.call(this, i, o) || this; - if ( - ((a.rawAttrs = n), - (a.nodeType = m.default.ELEMENT_NODE), - (a.rawTagName = t), - (a.rawAttrs = n || ""), - (a.id = r.id || ""), - (a.childNodes = []), - (a.classList = new y( - r.class ? r.class.split(/\s+/) : [], - function (e) { - return a.setAttribute("class", e.toString()); - } - )), - r.id && (n || (a.rawAttrs = 'id="'.concat(r.id, '"'))), - r.class && !n) - ) { - var s = 'class="'.concat(a.classList.toString(), '"'); - a.rawAttrs ? (a.rawAttrs += " ".concat(s)) : (a.rawAttrs = s); - } - return a; - } - return ( - i(t, e), - (t.prototype.quoteAttribute = function (e) { - return null == e - ? "null" - : JSON.stringify(e.replace(/"/g, """)); - }), - (t.prototype.removeChild = function (e) { - return ( - (this.childNodes = this.childNodes.filter(function (t) { - return t !== e; - })), - this - ); - }), - (t.prototype.exchangeChild = function (e, t) { - var r = this.childNodes; - return ( - (this.childNodes = r.map(function (r) { - return r === e ? t : r; - })), - this - ); - }), - Object.defineProperty(t.prototype, "tagName", { - get: function () { - return this.rawTagName - ? this.rawTagName.toUpperCase() - : this.rawTagName; - }, - set: function (e) { - this.rawTagName = e.toLowerCase(); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t.prototype, "localName", { - get: function () { - return this.rawTagName.toLowerCase(); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t.prototype, "isVoidElement", { - get: function () { - return g.has(this.localName); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t.prototype, "rawText", { - get: function () { - return this.childNodes.reduce(function (e, t) { - return e + t.rawText; - }, ""); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t.prototype, "textContent", { - get: function () { - return v(this.rawText); - }, - set: function (e) { - var t = [new h.default(e, this)]; - this.childNodes = t; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t.prototype, "text", { - get: function () { - return v(this.rawText); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t.prototype, "structuredText", { - get: function () { - var e = [], - t = [e]; - return ( - (function r(n) { - if (n.nodeType === m.default.ELEMENT_NODE) - b.has(n.rawTagName) - ? (e.length > 0 && t.push((e = [])), - n.childNodes.forEach(r), - e.length > 0 && t.push((e = []))) - : n.childNodes.forEach(r); - else if (n.nodeType === m.default.TEXT_NODE) - if (n.isWhitespace) e.prependWhitespace = !0; - else { - var i = n.trimmedText; - e.prependWhitespace && - ((i = " ".concat(i)), (e.prependWhitespace = !1)), - e.push(i); - } - })(this), - t - .map(function (e) { - return e.join("").replace(/\s{2,}/g, " "); - }) - .join("\n") - .replace(/\s+$/, "") - ); - }, - enumerable: !1, - configurable: !0, - }), - (t.prototype.toString = function () { - var e = this.rawTagName; - if (e) { - var t = this.rawAttrs ? " ".concat(this.rawAttrs) : ""; - return this.isVoidElement - ? "<".concat(e).concat(t, ">") - : "<" - .concat(e) - .concat(t, ">") - .concat(this.innerHTML, ""); - } - return this.innerHTML; - }), - Object.defineProperty(t.prototype, "innerHTML", { - get: function () { - return this.childNodes - .map(function (e) { - return e.toString(); - }) - .join(""); - }, - set: function (e) { - var t = L(e), - r = t.childNodes.length - ? t.childNodes - : [new h.default(e, this)]; - O(r, this), O(this.childNodes, null), (this.childNodes = r); - }, - enumerable: !1, - configurable: !0, - }), - (t.prototype.set_content = function (e, t) { - if ((void 0 === t && (t = {}), e instanceof f.default)) e = [e]; - else if ("string" == typeof e) { - var r = L(e, t); - e = r.childNodes.length - ? r.childNodes - : [new h.default(e, this)]; - } - return ( - O(this.childNodes, null), - O(e, this), - (this.childNodes = e), - this - ); - }), - (t.prototype.replaceWith = function () { - for (var e = this, t = [], r = 0; r < arguments.length; r++) - t[r] = arguments[r]; - var n = this.parentNode, - i = t - .map(function (t) { - if (t instanceof f.default) return [t]; - if ("string" == typeof t) { - var r = L(t); - return r.childNodes.length - ? r.childNodes - : [new h.default(t, e)]; - } - return []; - }) - .flat(), - o = n.childNodes.findIndex(function (t) { - return t === e; - }); - O([this], null), - (n.childNodes = a( - a(a([], n.childNodes.slice(0, o), !0), O(i, n), !0), - n.childNodes.slice(o + 1), - !0 - )); - }), - Object.defineProperty(t.prototype, "outerHTML", { - get: function () { - return this.toString(); - }, - enumerable: !1, - configurable: !0, - }), - (t.prototype.trimRight = function (e) { - for (var t = 0; t < this.childNodes.length; t++) { - var r = this.childNodes[t]; - if (r.nodeType === m.default.ELEMENT_NODE) r.trimRight(e); - else { - var n = r.rawText.search(e); - n > -1 && - ((r.rawText = r.rawText.substr(0, n)), - (this.childNodes.length = t + 1)); - } - } - return this; - }), - Object.defineProperty(t.prototype, "structure", { - get: function () { - var e = [], - t = 0; - function r(r) { - e.push(" ".repeat(t) + r); - } - return ( - (function e(n) { - var i = n.id ? "#".concat(n.id) : "", - o = n.classList.length - ? ".".concat(n.classList.value.join(".")) - : ""; - r("".concat(n.rawTagName).concat(i).concat(o)), - t++, - n.childNodes.forEach(function (t) { - t.nodeType === m.default.ELEMENT_NODE - ? e(t) - : t.nodeType === m.default.TEXT_NODE && - (t.isWhitespace || r("#text")); - }), - t--; - })(this), - e.join("\n") - ); - }, - enumerable: !1, - configurable: !0, - }), - (t.prototype.removeWhitespace = function () { - var e = this, - t = 0; - return ( - this.childNodes.forEach(function (r) { - if (r.nodeType === m.default.TEXT_NODE) { - if (r.isWhitespace) return; - r.rawText = r.trimmedRawText; - } else r.nodeType === m.default.ELEMENT_NODE && r.removeWhitespace(); - e.childNodes[t++] = r; - }), - (this.childNodes.length = t), - this - ); - }), - (t.prototype.querySelectorAll = function (e) { - return (0, l.selectAll)(e, this, { - xmlMode: !0, - adapter: p.default, - }); - }), - (t.prototype.querySelector = function (e) { - return (0, l.selectOne)(e, this, { - xmlMode: !0, - adapter: p.default, - }); - }), - (t.prototype.getElementsByTagName = function (e) { - for ( - var t = e.toUpperCase(), r = [], n = [], i = this, o = 0; - void 0 !== o; - - ) { - var a = void 0; - do { - a = i.childNodes[o++]; - } while (o < i.childNodes.length && void 0 === a); - void 0 !== a - ? a.nodeType === m.default.ELEMENT_NODE && - (("*" !== e && a.tagName !== t) || r.push(a), - a.childNodes.length > 0 && (n.push(o), (i = a), (o = 0))) - : ((i = i.parentNode), (o = n.pop())); - } - return r; - }), - (t.prototype.getElementById = function (e) { - for (var t = [], r = this, n = 0; void 0 !== n; ) { - var i = void 0; - do { - i = r.childNodes[n++]; - } while (n < r.childNodes.length && void 0 === i); - if (void 0 !== i) { - if (i.nodeType === m.default.ELEMENT_NODE) { - if (i.id === e) return i; - i.childNodes.length > 0 && (t.push(n), (r = i), (n = 0)); - } - } else (r = r.parentNode), (n = t.pop()); - } - return null; - }), - (t.prototype.closest = function (e) { - var t = new Map(), - r = this, - n = null; - function i(e, r) { - for (var n = null, o = 0, a = r.length; o < a && !n; o++) { - var s = r[o]; - if (e(s)) n = s; - else { - var l = t.get(s); - l && (n = i(e, [l])); - } - } - return n; - } - for (; r; ) t.set(r, n), (n = r), (r = r.parentNode); - for (r = this; r; ) { - var a = (0, l.selectOne)(e, r, { - xmlMode: !0, - adapter: o(o({}, p.default), { - getChildren: function (e) { - var r = t.get(e); - return r && [r]; - }, - getSiblings: function (e) { - return [e]; - }, - findOne: i, - findAll: function () { - return []; - }, - }), - }); - if (a) return a; - r = r.parentNode; - } - return null; - }), - (t.prototype.appendChild = function (e) { - return ( - e.remove(), this.childNodes.push(e), (e.parentNode = this), e - ); - }), - Object.defineProperty(t.prototype, "firstChild", { - get: function () { - return this.childNodes[0]; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t.prototype, "lastChild", { - get: function () { - return (0, u.default)(this.childNodes); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t.prototype, "attrs", { - get: function () { - if (this._attrs) return this._attrs; - this._attrs = {}; - var e = this.rawAttributes; - for (var t in e) { - var r = e[t] || ""; - this._attrs[t.toLowerCase()] = v(r); - } - return this._attrs; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t.prototype, "attributes", { - get: function () { - var e = {}, - t = this.rawAttributes; - for (var r in t) { - var n = t[r] || ""; - e[r] = v(n); - } - return e; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t.prototype, "rawAttributes", { - get: function () { - if (this._rawAttrs) return this._rawAttrs; - var e = {}; - if (this.rawAttrs) - for ( - var t = - /([a-zA-Z()#][a-zA-Z0-9-_:()#]*)(?:\s*=\s*((?:'[^']*')|(?:"[^"]*")|\S+))?/g, - r = void 0; - (r = t.exec(this.rawAttrs)); - - ) { - var n = r[1], - i = r[2] || null; - !i || - ("'" !== i[0] && '"' !== i[0]) || - (i = i.slice(1, i.length - 1)), - (e[n] = i); - } - return (this._rawAttrs = e), e; - }, - enumerable: !1, - configurable: !0, - }), - (t.prototype.removeAttribute = function (e) { - var t = this.rawAttributes; - return ( - delete t[e], - this._attrs && delete this._attrs[e], - (this.rawAttrs = Object.keys(t) - .map(function (e) { - var r = JSON.stringify(t[e]); - return void 0 === r || "null" === r - ? e - : "".concat(e, "=").concat(r); - }) - .join(" ")), - "id" === e && (this.id = ""), - this - ); - }), - (t.prototype.hasAttribute = function (e) { - return e.toLowerCase() in this.attrs; - }), - (t.prototype.getAttribute = function (e) { - return this.attrs[e.toLowerCase()]; - }), - (t.prototype.setAttribute = function (e, t) { - var r = this; - if (arguments.length < 2) - throw new Error( - "Failed to execute 'setAttribute' on 'Element'" - ); - var n = e.toLowerCase(), - i = this.rawAttributes; - for (var o in i) - if (o.toLowerCase() === n) { - e = o; - break; - } - (i[e] = String(t)), - this._attrs && (this._attrs[n] = v(i[e])), - (this.rawAttrs = Object.keys(i) - .map(function (e) { - var t = r.quoteAttribute(i[e]); - return "null" === t || '""' === t - ? e - : "".concat(e, "=").concat(t); - }) - .join(" ")), - "id" === e && (this.id = t); - }), - (t.prototype.setAttributes = function (e) { - var t = this; - return ( - this._attrs && delete this._attrs, - this._rawAttrs && delete this._rawAttrs, - (this.rawAttrs = Object.keys(e) - .map(function (r) { - var n = e[r]; - return "null" === n || '""' === n - ? r - : "".concat(r, "=").concat(t.quoteAttribute(String(n))); - }) - .join(" ")), - this - ); - }), - (t.prototype.insertAdjacentHTML = function (e, t) { - var r, - n, - i, - o = this; - if (arguments.length < 2) - throw new Error("2 arguments required"); - var s = L(t); - if ("afterend" === e) { - var l = this.parentNode.childNodes.findIndex(function (e) { - return e === o; - }); - O(s.childNodes, this.parentNode), - (r = this.parentNode.childNodes).splice.apply( - r, - a([l + 1, 0], s.childNodes, !1) - ); - } else if ("afterbegin" === e) - O(s.childNodes, this), - (n = this.childNodes).unshift.apply(n, s.childNodes); - else if ("beforeend" === e) - s.childNodes.forEach(function (e) { - o.appendChild(e); - }); - else { - if ("beforebegin" !== e) - throw new Error( - "The value provided ('".concat( - e, - "') is not one of 'beforebegin', 'afterbegin', 'beforeend', or 'afterend'" - ) - ); - (l = this.parentNode.childNodes.findIndex(function (e) { - return e === o; - })), - O(s.childNodes, this.parentNode), - (i = this.parentNode.childNodes).splice.apply( - i, - a([l, 0], s.childNodes, !1) - ); - } - return this; - }), - Object.defineProperty(t.prototype, "nextSibling", { - get: function () { - if (this.parentNode) { - for ( - var e = this.parentNode.childNodes, t = 0; - t < e.length; - - ) - if (this === e[t++]) return e[t] || null; - return null; - } - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t.prototype, "nextElementSibling", { - get: function () { - if (this.parentNode) { - for ( - var e = this.parentNode.childNodes, r = 0, n = !1; - r < e.length; - - ) { - var i = e[r++]; - if (n) { - if (i instanceof t) return i || null; - } else this === i && (n = !0); - } - return null; - } - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t.prototype, "previousSibling", { - get: function () { - if (this.parentNode) { - for ( - var e = this.parentNode.childNodes, t = e.length; - t > 0; - - ) - if (this === e[--t]) return e[t - 1] || null; - return null; - } - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t.prototype, "previousElementSibling", { - get: function () { - if (this.parentNode) { - for ( - var e = this.parentNode.childNodes, r = e.length, n = !1; - r > 0; - - ) { - var i = e[--r]; - if (n) { - if (i instanceof t) return i || null; - } else this === i && (n = !0); - } - return null; - } - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t.prototype, "classNames", { - get: function () { - return this.classList.toString(); - }, - enumerable: !1, - configurable: !0, - }), - (t.prototype.clone = function () { - return L(this.toString()).firstChild; - }), - t - ); - })(f.default); - t.default = w; - var E = - /|<(\/?)([a-zA-Z][-.:0-9_a-zA-Z]*)((?:\s+[^>]*?(?:(?:'[^']*')|(?:"[^"]*"))?)*)\s*(\/?)>/g, - x = /(?:^|\s)(id|class)\s*=\s*((?:'[^']*')|(?:"[^"]*")|\S+)/gi, - T = { - area: !0, - AREA: !0, - base: !0, - BASE: !0, - br: !0, - BR: !0, - col: !0, - COL: !0, - hr: !0, - HR: !0, - img: !0, - IMG: !0, - input: !0, - INPUT: !0, - link: !0, - LINK: !0, - meta: !0, - META: !0, - source: !0, - SOURCE: !0, - embed: !0, - EMBED: !0, - param: !0, - PARAM: !0, - track: !0, - TRACK: !0, - wbr: !0, - WBR: !0, - }, - k = { - li: { li: !0, LI: !0 }, - LI: { li: !0, LI: !0 }, - p: { p: !0, div: !0, P: !0, DIV: !0 }, - P: { p: !0, div: !0, P: !0, DIV: !0 }, - b: { div: !0, DIV: !0 }, - B: { div: !0, DIV: !0 }, - td: { td: !0, th: !0, TD: !0, TH: !0 }, - TD: { td: !0, th: !0, TD: !0, TH: !0 }, - th: { td: !0, th: !0, TD: !0, TH: !0 }, - TH: { td: !0, th: !0, TD: !0, TH: !0 }, - h1: { h1: !0, H1: !0 }, - H1: { h1: !0, H1: !0 }, - h2: { h2: !0, H2: !0 }, - H2: { h2: !0, H2: !0 }, - h3: { h3: !0, H3: !0 }, - H3: { h3: !0, H3: !0 }, - h4: { h4: !0, H4: !0 }, - H4: { h4: !0, H4: !0 }, - h5: { h5: !0, H5: !0 }, - H5: { h5: !0, H5: !0 }, - h6: { h6: !0, H6: !0 }, - H6: { h6: !0, H6: !0 }, - }, - _ = { - li: { ul: !0, ol: !0, UL: !0, OL: !0 }, - LI: { ul: !0, ol: !0, UL: !0, OL: !0 }, - a: { div: !0, DIV: !0 }, - A: { div: !0, DIV: !0 }, - b: { div: !0, DIV: !0 }, - B: { div: !0, DIV: !0 }, - i: { div: !0, DIV: !0 }, - I: { div: !0, DIV: !0 }, - p: { div: !0, DIV: !0 }, - P: { div: !0, DIV: !0 }, - td: { tr: !0, table: !0, TR: !0, TABLE: !0 }, - TD: { tr: !0, table: !0, TR: !0, TABLE: !0 }, - th: { tr: !0, table: !0, TR: !0, TABLE: !0 }, - TH: { tr: !0, table: !0, TR: !0, TABLE: !0 }, - }, - A = "documentfragmentcontainer"; - function N(e, t) { - void 0 === t && (t = { lowerCaseTagName: !1, comment: !1 }); - var r = t.blockTextElements || { - script: !0, - noscript: !0, - style: !0, - pre: !0, - }, - n = Object.keys(r), - i = n.map(function (e) { - return new RegExp("^".concat(e, "$"), "i"); - }), - o = n - .filter(function (e) { - return r[e]; - }) - .map(function (e) { - return new RegExp("^".concat(e, "$"), "i"); - }); - function a(e) { - return o.some(function (t) { - return t.test(e); - }); - } - function s(e) { - return i.some(function (t) { - return t.test(e); - }); - } - var l, - c = function (e, t) { - return [e - N, t - N]; - }, - p = new w(null, {}, "", null, [0, e.length]), - f = p, - m = [p], - g = -1, - v = void 0; - e = "<".concat(A, ">").concat(e, ""); - for ( - var b = t.lowerCaseTagName, - y = e.length - (A.length + 2), - N = A.length + 2; - (l = E.exec(e)); - - ) { - var L = l[0], - O = l[1], - S = l[2], - C = l[3], - D = l[4], - q = L.length, - R = E.lastIndex - q, - j = E.lastIndex; - if (g > -1 && g + q < j) { - var P = e.substring(g, R); - f.appendChild(new h.default(P, f, c(g, R))); - } - if (((g = E.lastIndex), S !== A)) - if ("!" !== L[1]) { - if ((b && (S = S.toLowerCase()), !O)) { - for (var B = {}, F = void 0; (F = x.exec(C)); ) { - var M = F[1], - I = F[2], - U = "'" === I[0] || '"' === I[0]; - B[M.toLowerCase()] = U ? I.slice(1, I.length - 1) : I; - } - var V = f.rawTagName; - !D && k[V] && k[V][S] && (m.pop(), (f = (0, u.default)(m))), - ("a" !== S && "A" !== S) || - (void 0 !== v && (m.splice(v), (f = (0, u.default)(m))), - (v = m.length)); - var H = E.lastIndex, - G = H - q; - if ( - ((f = f.appendChild( - new w(S, B, C.slice(1), null, c(G, H)) - )), - m.push(f), - s(S)) - ) { - var K = ""), - $ = b - ? e.toLocaleLowerCase().indexOf(K, E.lastIndex) - : e.indexOf(K, E.lastIndex), - z = -1 === $ ? y : $; - a(S) && - (P = e.substring(H, z)).length > 0 && - /\S/.test(P) && - f.appendChild(new h.default(P, f, c(H, z))), - -1 === $ - ? (g = E.lastIndex = e.length + 1) - : ((g = E.lastIndex = $ + K.length), (O = "/")); - } - } - if (O || D || T[S]) - for (;;) { - if ( - (("a" !== S && "A" !== S) || (v = void 0), - f.rawTagName === S) - ) { - (f.range[1] = c(-1, Math.max(g, j))[1]), - m.pop(), - (f = (0, u.default)(m)); - break; - } - if (((V = f.tagName), !_[V] || !_[V][S])) break; - m.pop(), (f = (0, u.default)(m)); - } - } else if (t.comment) { - P = e.substring(R + 4, j - 3); - f.appendChild(new d.default(P, f, c(R, j))); - } - } - return m; - } - function L(e, t) { - void 0 === t && (t = { lowerCaseTagName: !1, comment: !1 }); - for ( - var r = N(e, t), - n = r[0], - i = function () { - var e = r.pop(), - n = (0, u.default)(r); - e.parentNode && - e.parentNode.parentNode && - (e.parentNode === n && e.tagName === n.tagName - ? !0 !== t.parseNoneClosedTags && - (n.removeChild(e), - e.childNodes.forEach(function (e) { - n.parentNode.appendChild(e); - }), - r.pop()) - : !0 !== t.parseNoneClosedTags && - (n.removeChild(e), - e.childNodes.forEach(function (e) { - n.appendChild(e); - }))); - }; - r.length > 1; - - ) - i(); - return n; - } - function O(e, t) { - return e.map(function (e) { - return (e.parentNode = t), e; - }); - } - (t.base_parse = N), (t.parse = L); - }, - 4936: (e, t, r) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }); - var n = r(6492), - i = (function () { - function e(e, t) { - void 0 === e && (e = null), - (this.parentNode = e), - (this.childNodes = []), - Object.defineProperty(this, "range", { - enumerable: !1, - writable: !0, - configurable: !0, - value: null != t ? t : [-1, -1], - }); - } - return ( - (e.prototype.remove = function () { - var e = this; - if (this.parentNode) { - var t = this.parentNode.childNodes; - (this.parentNode.childNodes = t.filter(function (t) { - return e !== t; - })), - (this.parentNode = null); - } - return this; - }), - Object.defineProperty(e.prototype, "innerText", { - get: function () { - return this.rawText; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, "textContent", { - get: function () { - return (0, n.decode)(this.rawText); - }, - set: function (e) { - this.rawText = (0, n.encode)(e); - }, - enumerable: !1, - configurable: !0, - }), - e - ); - })(); - t.default = i; - }, - 7923: function (e, t, r) { - "use strict"; - var n, - i = - (this && this.__extends) || - ((n = function (e, t) { - return ( - (n = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (e, t) { - e.__proto__ = t; - }) || - function (e, t) { - for (var r in t) - Object.prototype.hasOwnProperty.call(t, r) && - (e[r] = t[r]); - }), - n(e, t) - ); - }), - function (e, t) { - if ("function" != typeof t && null !== t) - throw new TypeError( - "Class extends value " + - String(t) + - " is not a constructor or null" - ); - function r() { - this.constructor = e; - } - n(e, t), - (e.prototype = - null === t - ? Object.create(t) - : ((r.prototype = t.prototype), new r())); - }), - o = - (this && this.__importDefault) || - function (e) { - return e && e.__esModule ? e : { default: e }; - }; - Object.defineProperty(t, "__esModule", { value: !0 }); - var a = r(6492), - s = o(r(4936)), - l = o(r(9979)), - c = (function (e) { - function t(t, r, n) { - var i = e.call(this, r, n) || this; - return (i.nodeType = l.default.TEXT_NODE), (i._rawText = t), i; - } - return ( - i(t, e), - (t.prototype.clone = function () { - return new t(this._rawText, null); - }), - Object.defineProperty(t.prototype, "rawText", { - get: function () { - return this._rawText; - }, - set: function (e) { - (this._rawText = e), - (this._trimmedRawText = void 0), - (this._trimmedText = void 0); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t.prototype, "trimmedRawText", { - get: function () { - return ( - void 0 !== this._trimmedRawText || - (this._trimmedRawText = u(this.rawText)), - this._trimmedRawText - ); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t.prototype, "trimmedText", { - get: function () { - return ( - void 0 !== this._trimmedText || - (this._trimmedText = u(this.text)), - this._trimmedText - ); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t.prototype, "text", { - get: function () { - return (0, a.decode)(this.rawText); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t.prototype, "isWhitespace", { - get: function () { - return /^(\s| )*$/.test(this.rawText); - }, - enumerable: !1, - configurable: !0, - }), - (t.prototype.toString = function () { - return this.rawText; - }), - t - ); - })(s.default); - function u(e) { - for (var t, r, n = 0; n >= 0 && n < e.length; ) - /\S/.test(e[n]) && - (void 0 === t - ? ((t = n), (n = e.length)) - : ((r = n), (n = void 0))), - void 0 === t ? n++ : n--; - void 0 === t && (t = 0), void 0 === r && (r = e.length - 1); - var i = t > 0 && /[^\S\r\n]/.test(e[t - 1]), - o = r < e.length - 1 && /[^\S\r\n]/.test(e[r + 1]); - return (i ? " " : "") + e.slice(t, r + 1) + (o ? " " : ""); - } - t.default = c; - }, - 9979: (e, t) => { - "use strict"; - var r; - Object.defineProperty(t, "__esModule", { value: !0 }), - (function (e) { - (e[(e.ELEMENT_NODE = 1)] = "ELEMENT_NODE"), - (e[(e.TEXT_NODE = 3)] = "TEXT_NODE"), - (e[(e.COMMENT_NODE = 8)] = "COMMENT_NODE"); - })(r || (r = {})), - (t.default = r); - }, - 8821: (e, t, r) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.default = void 0); - var n = r(4382); - Object.defineProperty(t, "default", { - enumerable: !0, - get: function () { - return n.parse; - }, - }); - }, - 6389: (e, t, r) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }); - var n = r(4382); - t.default = function (e, t) { - void 0 === t && (t = { lowerCaseTagName: !1, comment: !1 }); - var r = (0, n.base_parse)(e, t); - return Boolean(1 === r.length); - }; - }, - 9769: (e, t, r) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.compile = void 0); - var n = r(1073); - t.compile = function (e) { - var t = e[0], - r = e[1] - 1; - if (r < 0 && t <= 0) return n.falseFunc; - if (-1 === t) - return function (e) { - return e <= r; - }; - if (0 === t) - return function (e) { - return e === r; - }; - if (1 === t) - return r < 0 - ? n.trueFunc - : function (e) { - return e >= r; - }; - var i = Math.abs(t), - o = ((r % i) + i) % i; - return t > 1 - ? function (e) { - return e >= r && e % i === o; - } - : function (e) { - return e <= r && e % i === o; - }; - }; - }, - 7540: (e, t, r) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.compile = t.parse = void 0); - var n = r(7766); - Object.defineProperty(t, "parse", { - enumerable: !0, - get: function () { - return n.parse; - }, - }); - var i = r(9769); - Object.defineProperty(t, "compile", { - enumerable: !0, - get: function () { - return i.compile; - }, - }), - (t.default = function (e) { - return (0, i.compile)((0, n.parse)(e)); - }); - }, - 7766: (e, t) => { - "use strict"; - Object.defineProperty(t, "__esModule", { value: !0 }), - (t.parse = void 0); - var r = new Set([9, 10, 12, 13, 32]), - n = "0".charCodeAt(0), - i = "9".charCodeAt(0); - t.parse = function (e) { - if ("even" === (e = e.trim().toLowerCase())) return [2, 0]; - if ("odd" === e) return [2, 1]; - var t = 0, - o = 0, - a = l(), - s = c(); - if ( - (t < e.length && - "n" === e.charAt(t) && - (t++, - (o = a * (null != s ? s : 1)), - u(), - t < e.length ? ((a = l()), u(), (s = c())) : (a = s = 0)), - null === s || t < e.length) - ) - throw new Error("n-th rule couldn't be parsed ('" + e + "')"); - return [o, a * s]; - function l() { - return "-" === e.charAt(t) - ? (t++, -1) - : ("+" === e.charAt(t) && t++, 1); - } - function c() { - for ( - var r = t, o = 0; - t < e.length && e.charCodeAt(t) >= n && e.charCodeAt(t) <= i; - - ) - (o = 10 * o + (e.charCodeAt(t) - n)), t++; - return t === r ? null : o; - } - function u() { - for (; t < e.length && r.has(e.charCodeAt(t)); ) t++; - } - }; - }, - 2985: function (e) { - var t; - "undefined" != typeof self && self, - (t = function () { - return (function (e) { - var t = {}; - function r(n) { - if (t[n]) return t[n].exports; - var i = (t[n] = { i: n, l: !1, exports: {} }); - return ( - e[n].call(i.exports, i, i.exports, r), (i.l = !0), i.exports - ); - } - return ( - (r.m = e), - (r.c = t), - (r.d = function (e, t, n) { - r.o(e, t) || - Object.defineProperty(e, t, { - configurable: !1, - enumerable: !0, - get: n, - }); - }), - (r.n = function (e) { - var t = - e && e.__esModule - ? function () { - return e.default; - } - : function () { - return e; - }; - return r.d(t, "a", t), t; - }), - (r.o = function (e, t) { - return Object.prototype.hasOwnProperty.call(e, t); - }), - (r.p = ""), - r((r.s = 11)) - ); - })([ - function (e, t, r) { - "use strict"; - var n = Array.prototype, - i = Object.prototype, - o = { - "&": "&", - '"': """, - "'": "'", - "<": "<", - ">": ">", - }, - a = /[&"'<>]/g; - function s(e, t) { - return i.hasOwnProperty.call(e, t); - } - function l(e) { - return o[e]; - } - function c(e, t, r) { - var n, i, o; - if ( - (e instanceof Error && - (e = (i = e).name + ": " + i.message), - Object.setPrototypeOf - ? ((n = new Error(e)), - Object.setPrototypeOf(n, c.prototype)) - : ((n = this), - Object.defineProperty(n, "message", { - enumerable: !1, - writable: !0, - value: e, - })), - Object.defineProperty(n, "name", { - value: "Template render error", - }), - Error.captureStackTrace && - Error.captureStackTrace(n, this.constructor), - i) - ) { - var a = Object.getOwnPropertyDescriptor(i, "stack"); - (o = - a && - (a.get || - function () { - return a.value; - })) || - (o = function () { - return i.stack; - }); - } else { - var s = new Error(e).stack; - o = function () { - return s; - }; - } - return ( - Object.defineProperty(n, "stack", { - get: function () { - return o.call(n); - }, - }), - Object.defineProperty(n, "cause", { value: i }), - (n.lineno = t), - (n.colno = r), - (n.firstUpdate = !0), - (n.Update = function (e) { - var t = "(" + (e || "unknown path") + ")"; - return ( - this.firstUpdate && - (this.lineno && this.colno - ? (t += - " [Line " + - this.lineno + - ", Column " + - this.colno + - "]") - : this.lineno && - (t += " [Line " + this.lineno + "]")), - (t += "\n "), - this.firstUpdate && (t += " "), - (this.message = t + (this.message || "")), - (this.firstUpdate = !1), - this - ); - }), - n - ); - } - function u(e) { - return "[object Function]" === i.toString.call(e); - } - function p(e) { - return "[object Array]" === i.toString.call(e); - } - function d(e) { - return "[object String]" === i.toString.call(e); - } - function f(e) { - return "[object Object]" === i.toString.call(e); - } - function h(e) { - var t, - r = (t = e) - ? "string" == typeof t - ? t.split(".") - : [t] - : []; - return function (e) { - for (var t = e, n = 0; n < r.length; n++) { - var i = r[n]; - if (!s(t, i)) return; - t = t[i]; - } - return t; - }; - } - function m(e) { - return Array.prototype.slice.call(e); - } - function g(e, t, r) { - return Array.prototype.indexOf.call(e || [], t, r); - } - function v(e) { - var t = []; - for (var r in e) s(e, r) && t.push(r); - return t; - } - ((t = e.exports = {}).hasOwnProp = s), - (t._prettifyError = function (e, r, n) { - if ( - (n.Update || (n = new t.TemplateError(n)), - n.Update(e), - !r) - ) { - var i = n; - (n = new Error(i.message)).name = i.name; - } - return n; - }), - Object.setPrototypeOf - ? Object.setPrototypeOf(c.prototype, Error.prototype) - : (c.prototype = Object.create(Error.prototype, { - constructor: { value: c }, - })), - (t.TemplateError = c), - (t.escape = function (e) { - return e.replace(a, l); - }), - (t.isFunction = u), - (t.isArray = p), - (t.isString = d), - (t.isObject = f), - (t.getAttrGetter = h), - (t.groupBy = function (e, t, r) { - for ( - var n = {}, i = u(t) ? t : h(t), o = 0; - o < e.length; - o++ - ) { - var a = e[o], - s = i(a, o); - if (void 0 === s && !0 === r) - throw new TypeError( - 'groupby: attribute "' + t + '" resolved to undefined' - ); - (n[s] || (n[s] = [])).push(a); - } - return n; - }), - (t.toArray = m), - (t.without = function (e) { - var t = []; - if (!e) return t; - for ( - var r = e.length, n = m(arguments).slice(1), i = -1; - ++i < r; - - ) - -1 === g(n, e[i]) && t.push(e[i]); - return t; - }), - (t.repeat = function (e, t) { - for (var r = "", n = 0; n < t; n++) r += e; - return r; - }), - (t.each = function (e, t, r) { - if (null != e) - if (n.forEach && e.forEach === n.forEach) e.forEach(t, r); - else if (e.length === +e.length) - for (var i = 0, o = e.length; i < o; i++) - t.call(r, e[i], i, e); - }), - (t.map = function (e, t) { - var r = []; - if (null == e) return r; - if (n.map && e.map === n.map) return e.map(t); - for (var i = 0; i < e.length; i++) r[r.length] = t(e[i], i); - return e.length === +e.length && (r.length = e.length), r; - }), - (t.asyncIter = function (e, t, r) { - var n = -1; - !(function i() { - ++n < e.length ? t(e[n], n, i, r) : r(); - })(); - }), - (t.asyncFor = function (e, t, r) { - var n = v(e || {}), - i = n.length, - o = -1; - !(function a() { - o++; - var s = n[o]; - o < i ? t(s, e[s], o, i, a) : r(); - })(); - }), - (t.indexOf = g), - (t.keys = v), - (t._entries = function (e) { - return v(e).map(function (t) { - return [t, e[t]]; - }); - }), - (t._values = function (e) { - return v(e).map(function (t) { - return e[t]; - }); - }), - (t._assign = t.extend = - function (e, t) { - return ( - (e = e || {}), - v(t).forEach(function (r) { - e[r] = t[r]; - }), - e - ); - }), - (t.inOperator = function (e, t) { - if (p(t) || d(t)) return -1 !== t.indexOf(e); - if (f(t)) return e in t; - throw new Error( - 'Cannot use "in" operator to search for "' + - e + - '" in unexpected types.' - ); - }); - }, - function (e, t, r) { - "use strict"; - function n(e, t) { - for (var r = 0; r < t.length; r++) { - var n = t[r]; - (n.enumerable = n.enumerable || !1), - (n.configurable = !0), - "value" in n && (n.writable = !0), - Object.defineProperty(e, n.key, n); - } - } - function i(e, t, r) { - return t && n(e.prototype, t), r && n(e, r), e; - } - function o(e, t) { - (e.prototype = Object.create(t.prototype)), - (e.prototype.constructor = e), - a(e, t); - } - function a(e, t) { - return ( - (a = - Object.setPrototypeOf || - function (e, t) { - return (e.__proto__ = t), e; - }), - a(e, t) - ); - } - var s = r(16), - l = r(0); - function c(e, t, r) { - (r = r || {}), - l.keys(r).forEach(function (t) { - var n, i; - r[t] = - ((n = e.prototype[t]), - (i = r[t]), - "function" != typeof n || "function" != typeof i - ? i - : function () { - var e = this.parent; - this.parent = n; - var t = i.apply(this, arguments); - return (this.parent = e), t; - }); - }); - var n = (function (e) { - function r() { - return e.apply(this, arguments) || this; - } - return ( - o(r, e), - i(r, [ - { - key: "typename", - get: function () { - return t; - }, - }, - ]), - r - ); - })(e); - return l._assign(n.prototype, r), n; - } - var u = (function () { - function e() { - this.init.apply(this, arguments); - } - return ( - (e.prototype.init = function () {}), - (e.extend = function (e, t) { - return ( - "object" == typeof e && ((t = e), (e = "anonymous")), - c(this, e, t) - ); - }), - i(e, [ - { - key: "typename", - get: function () { - return this.constructor.name; - }, - }, - ]), - e - ); - })(), - p = (function (e) { - function t() { - var t, r; - return ( - (t = r = e.call(this) || this).init.apply(t, arguments), - r - ); - } - return ( - o(t, e), - (t.prototype.init = function () {}), - (t.extend = function (e, t) { - return ( - "object" == typeof e && ((t = e), (e = "anonymous")), - c(this, e, t) - ); - }), - i(t, [ - { - key: "typename", - get: function () { - return this.constructor.name; - }, - }, - ]), - t - ); - })(s); - e.exports = { Obj: u, EmitterObj: p }; - }, - function (e, t, r) { - "use strict"; - var n = r(0), - i = Array.from, - o = - "function" == typeof Symbol && - Symbol.iterator && - "function" == typeof i, - a = (function () { - function e(e, t) { - (this.variables = Object.create(null)), - (this.parent = e), - (this.topLevel = !1), - (this.isolateWrites = t); - } - var t = e.prototype; - return ( - (t.set = function (e, t, r) { - var n = e.split("."), - i = this.variables, - o = this; - if (r && (o = this.resolve(n[0], !0))) o.set(e, t); - else { - for (var a = 0; a < n.length - 1; a++) { - var s = n[a]; - i[s] || (i[s] = {}), (i = i[s]); - } - i[n[n.length - 1]] = t; - } - }), - (t.get = function (e) { - var t = this.variables[e]; - return void 0 !== t ? t : null; - }), - (t.lookup = function (e) { - var t = this.parent, - r = this.variables[e]; - return void 0 !== r ? r : t && t.lookup(e); - }), - (t.resolve = function (e, t) { - var r = t && this.isolateWrites ? void 0 : this.parent; - return void 0 !== this.variables[e] - ? this - : r && r.resolve(e); - }), - (t.push = function (t) { - return new e(this, t); - }), - (t.pop = function () { - return this.parent; - }), - e - ); - })(); - function s(e) { - return ( - e && Object.prototype.hasOwnProperty.call(e, "__keywords") - ); - } - function l(e) { - var t = e.length; - return 0 === t ? 0 : s(e[t - 1]) ? t - 1 : t; - } - function c(e) { - if ("string" != typeof e) return e; - (this.val = e), (this.length = e.length); - } - (c.prototype = Object.create(String.prototype, { - length: { writable: !0, configurable: !0, value: 0 }, - })), - (c.prototype.valueOf = function () { - return this.val; - }), - (c.prototype.toString = function () { - return this.val; - }), - (e.exports = { - Frame: a, - makeMacro: function (e, t, r) { - return function () { - for ( - var n = arguments.length, i = new Array(n), o = 0; - o < n; - o++ - ) - i[o] = arguments[o]; - var a, - c = l(i), - u = (function (e) { - var t = e.length; - if (t) { - var r = e[t - 1]; - if (s(r)) return r; - } - return {}; - })(i); - if (c > e.length) - (a = i.slice(0, e.length)), - i.slice(a.length, c).forEach(function (e, r) { - r < t.length && (u[t[r]] = e); - }), - a.push(u); - else if (c < e.length) { - a = i.slice(0, c); - for (var p = c; p < e.length; p++) { - var d = e[p]; - a.push(u[d]), delete u[d]; - } - a.push(u); - } else a = i; - return r.apply(this, a); - }; - }, - makeKeywordArgs: function (e) { - return (e.__keywords = !0), e; - }, - numArgs: l, - suppressValue: function (e, t) { - return ( - (e = null != e ? e : ""), - !t || e instanceof c || (e = n.escape(e.toString())), - e - ); - }, - ensureDefined: function (e, t, r) { - if (null == e) - throw new n.TemplateError( - "attempted to output null or undefined value", - t + 1, - r + 1 - ); - return e; - }, - memberLookup: function (e, t) { - if (null != e) - return "function" == typeof e[t] - ? function () { - for ( - var r = arguments.length, - n = new Array(r), - i = 0; - i < r; - i++ - ) - n[i] = arguments[i]; - return e[t].apply(e, n); - } - : e[t]; - }, - contextOrFrameLookup: function (e, t, r) { - var n = t.lookup(r); - return void 0 !== n ? n : e.lookup(r); - }, - callWrap: function (e, t, r, n) { - if (!e) - throw new Error( - "Unable to call `" + - t + - "`, which is undefined or falsey" - ); - if ("function" != typeof e) - throw new Error( - "Unable to call `" + t + "`, which is not a function" - ); - return e.apply(r, n); - }, - handleError: function (e, t, r) { - return e.lineno ? e : new n.TemplateError(e, t, r); - }, - isArray: n.isArray, - keys: n.keys, - SafeString: c, - copySafeness: function (e, t) { - return e instanceof c ? new c(t) : t.toString(); - }, - markSafe: function (e) { - var t = typeof e; - return "string" === t - ? new c(e) - : "function" !== t - ? e - : function (t) { - var r = e.apply(this, arguments); - return "string" == typeof r ? new c(r) : r; - }; - }, - asyncEach: function (e, t, r, i) { - if (n.isArray(e)) { - var o = e.length; - n.asyncIter( - e, - function (e, n, i) { - switch (t) { - case 1: - r(e, n, o, i); - break; - case 2: - r(e[0], e[1], n, o, i); - break; - case 3: - r(e[0], e[1], e[2], n, o, i); - break; - default: - e.push(n, o, i), r.apply(this, e); - } - }, - i - ); - } else - n.asyncFor( - e, - function (e, t, n, i, o) { - r(e, t, n, i, o); - }, - i - ); - }, - asyncAll: function (e, t, r, i) { - var o, - a, - s = 0; - function l(e, t) { - s++, (a[e] = t), s === o && i(null, a.join("")); - } - if (n.isArray(e)) - if (((o = e.length), (a = new Array(o)), 0 === o)) - i(null, ""); - else - for (var c = 0; c < e.length; c++) { - var u = e[c]; - switch (t) { - case 1: - r(u, c, o, l); - break; - case 2: - r(u[0], u[1], c, o, l); - break; - case 3: - r(u[0], u[1], u[2], c, o, l); - break; - default: - u.push(c, o, l), r.apply(this, u); - } - } - else { - var p = n.keys(e || {}); - if (((o = p.length), (a = new Array(o)), 0 === o)) - i(null, ""); - else - for (var d = 0; d < p.length; d++) { - var f = p[d]; - r(f, e[f], d, o, l); - } - } - }, - inOperator: n.inOperator, - fromIterator: function (e) { - return "object" != typeof e || null === e || n.isArray(e) - ? e - : o && Symbol.iterator in e - ? i(e) - : e; - }, - }); - }, - function (e, t, r) { - "use strict"; - function n(e, t) { - for (var r = 0; r < t.length; r++) { - var n = t[r]; - (n.enumerable = n.enumerable || !1), - (n.configurable = !0), - "value" in n && (n.writable = !0), - Object.defineProperty(e, n.key, n); - } - } - function i(e, t, r) { - return t && n(e.prototype, t), r && n(e, r), e; - } - function o(e, t) { - (e.prototype = Object.create(t.prototype)), - (e.prototype.constructor = e), - a(e, t); - } - function a(e, t) { - return ( - (a = - Object.setPrototypeOf || - function (e, t) { - return (e.__proto__ = t), e; - }), - a(e, t) - ); - } - function s(e, t, r) { - e instanceof t && r.push(e), - e instanceof l && e.findAll(t, r); - } - var l = (function (e) { - function t() { - return e.apply(this, arguments) || this; - } - o(t, e); - var r = t.prototype; - return ( - (r.init = function (e, t) { - for ( - var r = arguments, - n = this, - i = arguments.length, - o = new Array(i > 2 ? i - 2 : 0), - a = 2; - a < i; - a++ - ) - o[a - 2] = arguments[a]; - (this.lineno = e), - (this.colno = t), - this.fields.forEach(function (e, t) { - var i = r[t + 2]; - void 0 === i && (i = null), (n[e] = i); - }); - }), - (r.findAll = function (e, t) { - var r = this; - return ( - (t = t || []), - this instanceof u - ? this.children.forEach(function (r) { - return s(r, e, t); - }) - : this.fields.forEach(function (n) { - return s(r[n], e, t); - }), - t - ); - }), - (r.iterFields = function (e) { - var t = this; - this.fields.forEach(function (r) { - e(t[r], r); - }); - }), - t - ); - })(r(1).Obj), - c = (function (e) { - function t() { - return e.apply(this, arguments) || this; - } - return ( - o(t, e), - i(t, [ - { - key: "typename", - get: function () { - return "Value"; - }, - }, - { - key: "fields", - get: function () { - return ["value"]; - }, - }, - ]), - t - ); - })(l), - u = (function (e) { - function t() { - return e.apply(this, arguments) || this; - } - o(t, e); - var r = t.prototype; - return ( - (r.init = function (t, r, n) { - e.prototype.init.call(this, t, r, n || []); - }), - (r.addChild = function (e) { - this.children.push(e); - }), - i(t, [ - { - key: "typename", - get: function () { - return "NodeList"; - }, - }, - { - key: "fields", - get: function () { - return ["children"]; - }, - }, - ]), - t - ); - })(l), - p = u.extend("Root"), - d = c.extend("Literal"), - f = c.extend("Symbol"), - h = u.extend("Group"), - m = u.extend("Array"), - g = l.extend("Pair", { fields: ["key", "value"] }), - v = u.extend("Dict"), - b = l.extend("LookupVal", { fields: ["target", "val"] }), - y = l.extend("If", { fields: ["cond", "body", "else_"] }), - w = y.extend("IfAsync"), - E = l.extend("InlineIf", { - fields: ["cond", "body", "else_"], - }), - x = l.extend("For", { - fields: ["arr", "name", "body", "else_"], - }), - T = x.extend("AsyncEach"), - k = x.extend("AsyncAll"), - _ = l.extend("Macro", { fields: ["name", "args", "body"] }), - A = _.extend("Caller"), - N = l.extend("Import", { - fields: ["template", "target", "withContext"], - }), - L = (function (e) { - function t() { - return e.apply(this, arguments) || this; - } - return ( - o(t, e), - (t.prototype.init = function (t, r, n, i, o) { - e.prototype.init.call(this, t, r, n, i || new u(), o); - }), - i(t, [ - { - key: "typename", - get: function () { - return "FromImport"; - }, - }, - { - key: "fields", - get: function () { - return ["template", "names", "withContext"]; - }, - }, - ]), - t - ); - })(l), - O = l.extend("FunCall", { fields: ["name", "args"] }), - S = O.extend("Filter"), - C = S.extend("FilterAsync", { - fields: ["name", "args", "symbol"], - }), - D = v.extend("KeywordArgs"), - q = l.extend("Block", { fields: ["name", "body"] }), - R = l.extend("Super", { fields: ["blockName", "symbol"] }), - j = l - .extend("TemplateRef", { fields: ["template"] }) - .extend("Extends"), - P = l.extend("Include", { - fields: ["template", "ignoreMissing"], - }), - B = l.extend("Set", { fields: ["targets", "value"] }), - F = l.extend("Switch", { - fields: ["expr", "cases", "default"], - }), - M = l.extend("Case", { fields: ["cond", "body"] }), - I = u.extend("Output"), - U = l.extend("Capture", { fields: ["body"] }), - V = d.extend("TemplateData"), - H = l.extend("UnaryOp", { fields: ["target"] }), - G = l.extend("BinOp", { fields: ["left", "right"] }), - K = G.extend("In"), - $ = G.extend("Is"), - z = G.extend("Or"), - Y = G.extend("And"), - W = H.extend("Not"), - J = G.extend("Add"), - X = G.extend("Concat"), - Z = G.extend("Sub"), - Q = G.extend("Mul"), - ee = G.extend("Div"), - te = G.extend("FloorDiv"), - re = G.extend("Mod"), - ne = G.extend("Pow"), - ie = H.extend("Neg"), - oe = H.extend("Pos"), - ae = l.extend("Compare", { fields: ["expr", "ops"] }), - se = l.extend("CompareOperand", { fields: ["expr", "type"] }), - le = l.extend("CallExtension", { - init: function (e, t, r, n) { - this.parent(), - (this.extName = e.__name || e), - (this.prop = t), - (this.args = r || new u()), - (this.contentArgs = n || []), - (this.autoescape = e.autoescape); - }, - fields: ["extName", "prop", "args", "contentArgs"], - }), - ce = le.extend("CallExtensionAsync"); - function ue(e, t, r) { - var n = e.split("\n"); - n.forEach(function (e, i) { - e && - ((r && i > 0) || !r) && - process.stdout.write(" ".repeat(t)); - var o = i === n.length - 1 ? "" : "\n"; - process.stdout.write("" + e + o); - }); - } - e.exports = { - Node: l, - Root: p, - NodeList: u, - Value: c, - Literal: d, - Symbol: f, - Group: h, - Array: m, - Pair: g, - Dict: v, - Output: I, - Capture: U, - TemplateData: V, - If: y, - IfAsync: w, - InlineIf: E, - For: x, - AsyncEach: T, - AsyncAll: k, - Macro: _, - Caller: A, - Import: N, - FromImport: L, - FunCall: O, - Filter: S, - FilterAsync: C, - KeywordArgs: D, - Block: q, - Super: R, - Extends: j, - Include: P, - Set: B, - Switch: F, - Case: M, - LookupVal: b, - BinOp: G, - In: K, - Is: $, - Or: z, - And: Y, - Not: W, - Add: J, - Concat: X, - Sub: Z, - Mul: Q, - Div: ee, - FloorDiv: te, - Mod: re, - Pow: ne, - Neg: ie, - Pos: oe, - Compare: ae, - CompareOperand: se, - CallExtension: le, - CallExtensionAsync: ce, - printNodes: function e(t, r) { - if ( - ((r = r || 0), ue(t.typename + ": ", r), t instanceof u) - ) - ue("\n"), - t.children.forEach(function (t) { - e(t, r + 2); - }); - else if (t instanceof le) - ue(t.extName + "." + t.prop + "\n"), - t.args && e(t.args, r + 2), - t.contentArgs && - t.contentArgs.forEach(function (t) { - e(t, r + 2); - }); - else { - var n = [], - i = null; - t.iterFields(function (e, t) { - e instanceof l - ? n.push([t, e]) - : ((i = i || {})[t] = e); - }), - i - ? ue(JSON.stringify(i, null, 2) + "\n", null, !0) - : ue("\n"), - n.forEach(function (t) { - var n = t[0], - i = t[1]; - ue("[" + n + "] =>", r + 2), e(i, r + 4); - }); - } - }, - }; - }, - function (e, t) {}, - function (e, t, r) { - "use strict"; - function n(e, t) { - return ( - (n = - Object.setPrototypeOf || - function (e, t) { - return (e.__proto__ = t), e; - }), - n(e, t) - ); - } - var i = r(8), - o = r(17), - a = r(3), - s = r(0).TemplateError, - l = r(2).Frame, - c = r(1).Obj, - u = { - "==": "==", - "===": "===", - "!=": "!=", - "!==": "!==", - "<": "<", - ">": ">", - "<=": "<=", - ">=": ">=", - }, - p = (function (e) { - var t, r; - function i() { - return e.apply(this, arguments) || this; - } - (r = e), - ((t = i).prototype = Object.create(r.prototype)), - (t.prototype.constructor = t), - n(t, r); - var o = i.prototype; - return ( - (o.init = function (e, t) { - (this.templateName = e), - (this.codebuf = []), - (this.lastId = 0), - (this.buffer = null), - (this.bufferStack = []), - (this._scopeClosers = ""), - (this.inBlock = !1), - (this.throwOnUndefined = t); - }), - (o.fail = function (e, t, r) { - throw ( - (void 0 !== t && (t += 1), - void 0 !== r && (r += 1), - new s(e, t, r)) - ); - }), - (o._pushBuffer = function () { - var e = this._tmpid(); - return ( - this.bufferStack.push(this.buffer), - (this.buffer = e), - this._emit("var " + this.buffer + ' = "";'), - e - ); - }), - (o._popBuffer = function () { - this.buffer = this.bufferStack.pop(); - }), - (o._emit = function (e) { - this.codebuf.push(e); - }), - (o._emitLine = function (e) { - this._emit(e + "\n"); - }), - (o._emitLines = function () { - for ( - var e = this, - t = arguments.length, - r = new Array(t), - n = 0; - n < t; - n++ - ) - r[n] = arguments[n]; - r.forEach(function (t) { - return e._emitLine(t); - }); - }), - (o._emitFuncBegin = function (e, t) { - (this.buffer = "output"), - (this._scopeClosers = ""), - this._emitLine( - "function " + - t + - "(env, context, frame, runtime, cb) {" - ), - this._emitLine("var lineno = " + e.lineno + ";"), - this._emitLine("var colno = " + e.colno + ";"), - this._emitLine("var " + this.buffer + ' = "";'), - this._emitLine("try {"); - }), - (o._emitFuncEnd = function (e) { - e || this._emitLine("cb(null, " + this.buffer + ");"), - this._closeScopeLevels(), - this._emitLine("} catch (e) {"), - this._emitLine( - " cb(runtime.handleError(e, lineno, colno));" - ), - this._emitLine("}"), - this._emitLine("}"), - (this.buffer = null); - }), - (o._addScopeLevel = function () { - this._scopeClosers += "})"; - }), - (o._closeScopeLevels = function () { - this._emitLine(this._scopeClosers + ";"), - (this._scopeClosers = ""); - }), - (o._withScopedSyntax = function (e) { - var t = this._scopeClosers; - (this._scopeClosers = ""), - e.call(this), - this._closeScopeLevels(), - (this._scopeClosers = t); - }), - (o._makeCallback = function (e) { - var t = this._tmpid(); - return ( - "function(" + - t + - (e ? "," + e : "") + - ") {\nif(" + - t + - ") { cb(" + - t + - "); return; }" - ); - }), - (o._tmpid = function () { - return this.lastId++, "t_" + this.lastId; - }), - (o._templateName = function () { - return null == this.templateName - ? "undefined" - : JSON.stringify(this.templateName); - }), - (o._compileChildren = function (e, t) { - var r = this; - e.children.forEach(function (e) { - r.compile(e, t); - }); - }), - (o._compileAggregate = function (e, t, r, n) { - var i = this; - r && this._emit(r), - e.children.forEach(function (e, r) { - r > 0 && i._emit(","), i.compile(e, t); - }), - n && this._emit(n); - }), - (o._compileExpression = function (e, t) { - this.assertType( - e, - a.Literal, - a.Symbol, - a.Group, - a.Array, - a.Dict, - a.FunCall, - a.Caller, - a.Filter, - a.LookupVal, - a.Compare, - a.InlineIf, - a.In, - a.Is, - a.And, - a.Or, - a.Not, - a.Add, - a.Concat, - a.Sub, - a.Mul, - a.Div, - a.FloorDiv, - a.Mod, - a.Pow, - a.Neg, - a.Pos, - a.Compare, - a.NodeList - ), - this.compile(e, t); - }), - (o.assertType = function (e) { - for ( - var t = arguments.length, - r = new Array(t > 1 ? t - 1 : 0), - n = 1; - n < t; - n++ - ) - r[n - 1] = arguments[n]; - r.some(function (t) { - return e instanceof t; - }) || - this.fail( - "assertType: invalid type: " + e.typename, - e.lineno, - e.colno - ); - }), - (o.compileCallExtension = function (e, t, r) { - var n = this, - i = e.args, - o = e.contentArgs, - s = "boolean" != typeof e.autoescape || e.autoescape; - if ( - (r || - this._emit( - this.buffer + " += runtime.suppressValue(" - ), - this._emit( - 'env.getExtension("' + - e.extName + - '")["' + - e.prop + - '"](' - ), - this._emit("context"), - (i || o) && this._emit(","), - i && - (i instanceof a.NodeList || - this.fail( - "compileCallExtension: arguments must be a NodeList, use `parser.parseSignature`" - ), - i.children.forEach(function (e, r) { - n._compileExpression(e, t), - (r !== i.children.length - 1 || o.length) && - n._emit(","); - })), - o.length && - o.forEach(function (e, r) { - if ((r > 0 && n._emit(","), e)) { - n._emitLine("function(cb) {"), - n._emitLine( - "if(!cb) { cb = function(err) { if(err) { throw err; }}}" - ); - var i = n._pushBuffer(); - n._withScopedSyntax(function () { - n.compile(e, t), - n._emitLine("cb(null, " + i + ");"); - }), - n._popBuffer(), - n._emitLine("return " + i + ";"), - n._emitLine("}"); - } else n._emit("null"); - }), - r) - ) { - var l = this._tmpid(); - this._emitLine(", " + this._makeCallback(l)), - this._emitLine( - this.buffer + - " += runtime.suppressValue(" + - l + - ", " + - s + - " && env.opts.autoescape);" - ), - this._addScopeLevel(); - } else - this._emit(")"), - this._emit( - ", " + s + " && env.opts.autoescape);\n" - ); - }), - (o.compileCallExtensionAsync = function (e, t) { - this.compileCallExtension(e, t, !0); - }), - (o.compileNodeList = function (e, t) { - this._compileChildren(e, t); - }), - (o.compileLiteral = function (e) { - if ("string" == typeof e.value) { - var t = e.value.replace(/\\/g, "\\\\"); - (t = (t = (t = (t = (t = t.replace( - /"/g, - '\\"' - )).replace(/\n/g, "\\n")).replace( - /\r/g, - "\\r" - )).replace(/\t/g, "\\t")).replace( - /\u2028/g, - "\\u2028" - )), - this._emit('"' + t + '"'); - } else - null === e.value - ? this._emit("null") - : this._emit(e.value.toString()); - }), - (o.compileSymbol = function (e, t) { - var r = e.value, - n = t.lookup(r); - n - ? this._emit(n) - : this._emit( - 'runtime.contextOrFrameLookup(context, frame, "' + - r + - '")' - ); - }), - (o.compileGroup = function (e, t) { - this._compileAggregate(e, t, "(", ")"); - }), - (o.compileArray = function (e, t) { - this._compileAggregate(e, t, "[", "]"); - }), - (o.compileDict = function (e, t) { - this._compileAggregate(e, t, "{", "}"); - }), - (o.compilePair = function (e, t) { - var r = e.key, - n = e.value; - r instanceof a.Symbol - ? (r = new a.Literal(r.lineno, r.colno, r.value)) - : (r instanceof a.Literal && - "string" == typeof r.value) || - this.fail( - "compilePair: Dict keys must be strings or names", - r.lineno, - r.colno - ), - this.compile(r, t), - this._emit(": "), - this._compileExpression(n, t); - }), - (o.compileInlineIf = function (e, t) { - this._emit("("), - this.compile(e.cond, t), - this._emit("?"), - this.compile(e.body, t), - this._emit(":"), - null !== e.else_ - ? this.compile(e.else_, t) - : this._emit('""'), - this._emit(")"); - }), - (o.compileIn = function (e, t) { - this._emit("runtime.inOperator("), - this.compile(e.left, t), - this._emit(","), - this.compile(e.right, t), - this._emit(")"); - }), - (o.compileIs = function (e, t) { - var r = e.right.name - ? e.right.name.value - : e.right.value; - this._emit('env.getTest("' + r + '").call(context, '), - this.compile(e.left, t), - e.right.args && - (this._emit(","), this.compile(e.right.args, t)), - this._emit(") === true"); - }), - (o._binOpEmitter = function (e, t, r) { - this.compile(e.left, t), - this._emit(r), - this.compile(e.right, t); - }), - (o.compileOr = function (e, t) { - return this._binOpEmitter(e, t, " || "); - }), - (o.compileAnd = function (e, t) { - return this._binOpEmitter(e, t, " && "); - }), - (o.compileAdd = function (e, t) { - return this._binOpEmitter(e, t, " + "); - }), - (o.compileConcat = function (e, t) { - return this._binOpEmitter(e, t, ' + "" + '); - }), - (o.compileSub = function (e, t) { - return this._binOpEmitter(e, t, " - "); - }), - (o.compileMul = function (e, t) { - return this._binOpEmitter(e, t, " * "); - }), - (o.compileDiv = function (e, t) { - return this._binOpEmitter(e, t, " / "); - }), - (o.compileMod = function (e, t) { - return this._binOpEmitter(e, t, " % "); - }), - (o.compileNot = function (e, t) { - this._emit("!"), this.compile(e.target, t); - }), - (o.compileFloorDiv = function (e, t) { - this._emit("Math.floor("), - this.compile(e.left, t), - this._emit(" / "), - this.compile(e.right, t), - this._emit(")"); - }), - (o.compilePow = function (e, t) { - this._emit("Math.pow("), - this.compile(e.left, t), - this._emit(", "), - this.compile(e.right, t), - this._emit(")"); - }), - (o.compileNeg = function (e, t) { - this._emit("-"), this.compile(e.target, t); - }), - (o.compilePos = function (e, t) { - this._emit("+"), this.compile(e.target, t); - }), - (o.compileCompare = function (e, t) { - var r = this; - this.compile(e.expr, t), - e.ops.forEach(function (e) { - r._emit(" " + u[e.type] + " "), - r.compile(e.expr, t); - }); - }), - (o.compileLookupVal = function (e, t) { - this._emit("runtime.memberLookup(("), - this._compileExpression(e.target, t), - this._emit("),"), - this._compileExpression(e.val, t), - this._emit(")"); - }), - (o._getNodeName = function (e) { - switch (e.typename) { - case "Symbol": - return e.value; - case "FunCall": - return ( - "the return value of (" + - this._getNodeName(e.name) + - ")" - ); - case "LookupVal": - return ( - this._getNodeName(e.target) + - '["' + - this._getNodeName(e.val) + - '"]' - ); - case "Literal": - return e.value.toString(); - default: - return "--expression--"; - } - }), - (o.compileFunCall = function (e, t) { - this._emit( - "(lineno = " + - e.lineno + - ", colno = " + - e.colno + - ", " - ), - this._emit("runtime.callWrap("), - this._compileExpression(e.name, t), - this._emit( - ', "' + - this._getNodeName(e.name).replace(/"/g, '\\"') + - '", context, ' - ), - this._compileAggregate(e.args, t, "[", "])"), - this._emit(")"); - }), - (o.compileFilter = function (e, t) { - var r = e.name; - this.assertType(r, a.Symbol), - this._emit( - 'env.getFilter("' + r.value + '").call(context, ' - ), - this._compileAggregate(e.args, t), - this._emit(")"); - }), - (o.compileFilterAsync = function (e, t) { - var r = e.name, - n = e.symbol.value; - this.assertType(r, a.Symbol), - t.set(n, n), - this._emit( - 'env.getFilter("' + r.value + '").call(context, ' - ), - this._compileAggregate(e.args, t), - this._emitLine(", " + this._makeCallback(n)), - this._addScopeLevel(); - }), - (o.compileKeywordArgs = function (e, t) { - this._emit("runtime.makeKeywordArgs("), - this.compileDict(e, t), - this._emit(")"); - }), - (o.compileSet = function (e, t) { - var r = this, - n = []; - e.targets.forEach(function (e) { - var i = e.value, - o = t.lookup(i); - null == o && - ((o = r._tmpid()), r._emitLine("var " + o + ";")), - n.push(o); - }), - e.value - ? (this._emit(n.join(" = ") + " = "), - this._compileExpression(e.value, t), - this._emitLine(";")) - : (this._emit(n.join(" = ") + " = "), - this.compile(e.body, t), - this._emitLine(";")), - e.targets.forEach(function (e, t) { - var i = n[t], - o = e.value; - r._emitLine( - 'frame.set("' + o + '", ' + i + ", true);" - ), - r._emitLine("if(frame.topLevel) {"), - r._emitLine( - 'context.setVariable("' + o + '", ' + i + ");" - ), - r._emitLine("}"), - "_" !== o.charAt(0) && - (r._emitLine("if(frame.topLevel) {"), - r._emitLine( - 'context.addExport("' + o + '", ' + i + ");" - ), - r._emitLine("}")); - }); - }), - (o.compileSwitch = function (e, t) { - var r = this; - this._emit("switch ("), - this.compile(e.expr, t), - this._emit(") {"), - e.cases.forEach(function (e, n) { - r._emit("case "), - r.compile(e.cond, t), - r._emit(": "), - r.compile(e.body, t), - e.body.children.length && r._emitLine("break;"); - }), - e.default && - (this._emit("default:"), - this.compile(e.default, t)), - this._emit("}"); - }), - (o.compileIf = function (e, t, r) { - var n = this; - this._emit("if("), - this._compileExpression(e.cond, t), - this._emitLine(") {"), - this._withScopedSyntax(function () { - n.compile(e.body, t), r && n._emit("cb()"); - }), - e.else_ - ? (this._emitLine("}\nelse {"), - this._withScopedSyntax(function () { - n.compile(e.else_, t), r && n._emit("cb()"); - })) - : r && - (this._emitLine("}\nelse {"), this._emit("cb()")), - this._emitLine("}"); - }), - (o.compileIfAsync = function (e, t) { - this._emit("(function(cb) {"), - this.compileIf(e, t, !0), - this._emit("})(" + this._makeCallback()), - this._addScopeLevel(); - }), - (o._emitLoopBindings = function (e, t, r, n) { - var i = this; - [ - { name: "index", val: r + " + 1" }, - { name: "index0", val: r }, - { name: "revindex", val: n + " - " + r }, - { name: "revindex0", val: n + " - " + r + " - 1" }, - { name: "first", val: r + " === 0" }, - { name: "last", val: r + " === " + n + " - 1" }, - { name: "length", val: n }, - ].forEach(function (e) { - i._emitLine( - 'frame.set("loop.' + e.name + '", ' + e.val + ");" - ); - }); - }), - (o.compileFor = function (e, t) { - var r = this, - n = this._tmpid(), - i = this._tmpid(), - o = this._tmpid(); - if ( - ((t = t.push()), - this._emitLine("frame = frame.push();"), - this._emit("var " + o + " = "), - this._compileExpression(e.arr, t), - this._emitLine(";"), - this._emit("if(" + o + ") {"), - this._emitLine( - o + " = runtime.fromIterator(" + o + ");" - ), - e.name instanceof a.Array) - ) { - this._emitLine("var " + n + ";"), - this._emitLine("if(runtime.isArray(" + o + ")) {"), - this._emitLine("var " + i + " = " + o + ".length;"), - this._emitLine( - "for(" + - n + - "=0; " + - n + - " < " + - o + - ".length; " + - n + - "++) {" - ), - e.name.children.forEach(function (i, a) { - var s = r._tmpid(); - r._emitLine( - "var " + - s + - " = " + - o + - "[" + - n + - "][" + - a + - "];" - ), - r._emitLine( - 'frame.set("' + - i + - '", ' + - o + - "[" + - n + - "][" + - a + - "]);" - ), - t.set(e.name.children[a].value, s); - }), - this._emitLoopBindings(e, o, n, i), - this._withScopedSyntax(function () { - r.compile(e.body, t); - }), - this._emitLine("}"), - this._emitLine("} else {"); - var s = e.name.children, - l = s[0], - c = s[1], - u = this._tmpid(), - p = this._tmpid(); - t.set(l.value, u), - t.set(c.value, p), - this._emitLine(n + " = -1;"), - this._emitLine( - "var " + i + " = runtime.keys(" + o + ").length;" - ), - this._emitLine("for(var " + u + " in " + o + ") {"), - this._emitLine(n + "++;"), - this._emitLine( - "var " + p + " = " + o + "[" + u + "];" - ), - this._emitLine( - 'frame.set("' + l.value + '", ' + u + ");" - ), - this._emitLine( - 'frame.set("' + c.value + '", ' + p + ");" - ), - this._emitLoopBindings(e, o, n, i), - this._withScopedSyntax(function () { - r.compile(e.body, t); - }), - this._emitLine("}"), - this._emitLine("}"); - } else { - var d = this._tmpid(); - t.set(e.name.value, d), - this._emitLine("var " + i + " = " + o + ".length;"), - this._emitLine( - "for(var " + - n + - "=0; " + - n + - " < " + - o + - ".length; " + - n + - "++) {" - ), - this._emitLine( - "var " + d + " = " + o + "[" + n + "];" - ), - this._emitLine( - 'frame.set("' + e.name.value + '", ' + d + ");" - ), - this._emitLoopBindings(e, o, n, i), - this._withScopedSyntax(function () { - r.compile(e.body, t); - }), - this._emitLine("}"); - } - this._emitLine("}"), - e.else_ && - (this._emitLine("if (!" + i + ") {"), - this.compile(e.else_, t), - this._emitLine("}")), - this._emitLine("frame = frame.pop();"); - }), - (o._compileAsyncLoop = function (e, t, r) { - var n = this, - i = this._tmpid(), - o = this._tmpid(), - s = this._tmpid(), - l = r ? "asyncAll" : "asyncEach"; - if ( - ((t = t.push()), - this._emitLine("frame = frame.push();"), - this._emit("var " + s + " = runtime.fromIterator("), - this._compileExpression(e.arr, t), - this._emitLine(");"), - e.name instanceof a.Array) - ) { - var c = e.name.children.length; - this._emit( - "runtime." + l + "(" + s + ", " + c + ", function(" - ), - e.name.children.forEach(function (e) { - n._emit(e.value + ","); - }), - this._emit(i + "," + o + ",next) {"), - e.name.children.forEach(function (e) { - var r = e.value; - t.set(r, r), - n._emitLine( - 'frame.set("' + r + '", ' + r + ");" - ); - }); - } else { - var u = e.name.value; - this._emitLine( - "runtime." + - l + - "(" + - s + - ", 1, function(" + - u + - ", " + - i + - ", " + - o + - ",next) {" - ), - this._emitLine( - 'frame.set("' + u + '", ' + u + ");" - ), - t.set(u, u); - } - this._emitLoopBindings(e, s, i, o), - this._withScopedSyntax(function () { - var o; - r && (o = n._pushBuffer()), - n.compile(e.body, t), - n._emitLine( - "next(" + i + (o ? "," + o : "") + ");" - ), - r && n._popBuffer(); - }); - var p = this._tmpid(); - this._emitLine("}, " + this._makeCallback(p)), - this._addScopeLevel(), - r && this._emitLine(this.buffer + " += " + p + ";"), - e.else_ && - (this._emitLine("if (!" + s + ".length) {"), - this.compile(e.else_, t), - this._emitLine("}")), - this._emitLine("frame = frame.pop();"); - }), - (o.compileAsyncEach = function (e, t) { - this._compileAsyncLoop(e, t); - }), - (o.compileAsyncAll = function (e, t) { - this._compileAsyncLoop(e, t, !0); - }), - (o._compileMacro = function (e, t) { - var r = this, - n = [], - i = null, - o = "macro_" + this._tmpid(), - s = void 0 !== t; - e.args.children.forEach(function (t, o) { - o === e.args.children.length - 1 && - t instanceof a.Dict - ? (i = t) - : (r.assertType(t, a.Symbol), n.push(t)); - }); - var c, - u = [].concat( - n.map(function (e) { - return "l_" + e.value; - }), - ["kwargs"] - ), - p = n.map(function (e) { - return '"' + e.value + '"'; - }), - d = ((i && i.children) || []).map(function (e) { - return '"' + e.key.value + '"'; - }); - (c = s ? t.push(!0) : new l()), - this._emitLines( - "var " + o + " = runtime.makeMacro(", - "[" + p.join(", ") + "], ", - "[" + d.join(", ") + "], ", - "function (" + u.join(", ") + ") {", - "var callerFrame = frame;", - "frame = " + - (s - ? "frame.push(true);" - : "new runtime.Frame();"), - "kwargs = kwargs || {};", - 'if (Object.prototype.hasOwnProperty.call(kwargs, "caller")) {', - 'frame.set("caller", kwargs.caller); }' - ), - n.forEach(function (e) { - r._emitLine( - 'frame.set("' + e.value + '", l_' + e.value + ");" - ), - c.set(e.value, "l_" + e.value); - }), - i && - i.children.forEach(function (e) { - var t = e.key.value; - r._emit('frame.set("' + t + '", '), - r._emit( - 'Object.prototype.hasOwnProperty.call(kwargs, "' + - t + - '")' - ), - r._emit(' ? kwargs["' + t + '"] : '), - r._compileExpression(e.value, c), - r._emit(");"); - }); - var f = this._pushBuffer(); - return ( - this._withScopedSyntax(function () { - r.compile(e.body, c); - }), - this._emitLine( - "frame = " + (s ? "frame.pop();" : "callerFrame;") - ), - this._emitLine( - "return new runtime.SafeString(" + f + ");" - ), - this._emitLine("});"), - this._popBuffer(), - o - ); - }), - (o.compileMacro = function (e, t) { - var r = this._compileMacro(e), - n = e.name.value; - t.set(n, r), - t.parent - ? this._emitLine( - 'frame.set("' + n + '", ' + r + ");" - ) - : ("_" !== e.name.value.charAt(0) && - this._emitLine( - 'context.addExport("' + n + '");' - ), - this._emitLine( - 'context.setVariable("' + n + '", ' + r + ");" - )); - }), - (o.compileCaller = function (e, t) { - this._emit("(function (){"); - var r = this._compileMacro(e, t); - this._emit("return " + r + ";})()"); - }), - (o._compileGetTemplate = function (e, t, r, n) { - var i = this._tmpid(), - o = this._templateName(), - a = this._makeCallback(i), - s = r ? "true" : "false", - l = n ? "true" : "false"; - return ( - this._emit("env.getTemplate("), - this._compileExpression(e.template, t), - this._emitLine( - ", " + s + ", " + o + ", " + l + ", " + a - ), - i - ); - }), - (o.compileImport = function (e, t) { - var r = e.target.value, - n = this._compileGetTemplate(e, t, !1, !1); - this._addScopeLevel(), - this._emitLine( - n + - ".getExported(" + - (e.withContext - ? "context.getVariables(), frame, " - : "") + - this._makeCallback(n) - ), - this._addScopeLevel(), - t.set(r, n), - t.parent - ? this._emitLine( - 'frame.set("' + r + '", ' + n + ");" - ) - : this._emitLine( - 'context.setVariable("' + r + '", ' + n + ");" - ); - }), - (o.compileFromImport = function (e, t) { - var r = this, - n = this._compileGetTemplate(e, t, !1, !1); - this._addScopeLevel(), - this._emitLine( - n + - ".getExported(" + - (e.withContext - ? "context.getVariables(), frame, " - : "") + - this._makeCallback(n) - ), - this._addScopeLevel(), - e.names.children.forEach(function (e) { - var i, - o, - s = r._tmpid(); - e instanceof a.Pair - ? ((i = e.key.value), (o = e.value.value)) - : (o = i = e.value), - r._emitLine( - "if(Object.prototype.hasOwnProperty.call(" + - n + - ', "' + - i + - '")) {' - ), - r._emitLine( - "var " + s + " = " + n + "." + i + ";" - ), - r._emitLine("} else {"), - r._emitLine( - "cb(new Error(\"cannot import '" + - i + - "'\")); return;" - ), - r._emitLine("}"), - t.set(o, s), - t.parent - ? r._emitLine( - 'frame.set("' + o + '", ' + s + ");" - ) - : r._emitLine( - 'context.setVariable("' + - o + - '", ' + - s + - ");" - ); - }); - }), - (o.compileBlock = function (e) { - var t = this._tmpid(); - this.inBlock || - this._emit( - '(parentTemplate ? function(e, c, f, r, cb) { cb(""); } : ' - ), - this._emit( - 'context.getBlock("' + e.name.value + '")' - ), - this.inBlock || this._emit(")"), - this._emitLine( - "(env, context, frame, runtime, " + - this._makeCallback(t) - ), - this._emitLine(this.buffer + " += " + t + ";"), - this._addScopeLevel(); - }), - (o.compileSuper = function (e, t) { - var r = e.blockName.value, - n = e.symbol.value, - i = this._makeCallback(n); - this._emitLine( - 'context.getSuper(env, "' + - r + - '", b_' + - r + - ", frame, runtime, " + - i - ), - this._emitLine(n + " = runtime.markSafe(" + n + ");"), - this._addScopeLevel(), - t.set(n, n); - }), - (o.compileExtends = function (e, t) { - var r = this._tmpid(), - n = this._compileGetTemplate(e, t, !0, !1); - this._emitLine("parentTemplate = " + n), - this._emitLine( - "for(var " + r + " in parentTemplate.blocks) {" - ), - this._emitLine( - "context.addBlock(" + - r + - ", parentTemplate.blocks[" + - r + - "]);" - ), - this._emitLine("}"), - this._addScopeLevel(); - }), - (o.compileInclude = function (e, t) { - this._emitLine("var tasks = [];"), - this._emitLine("tasks.push("), - this._emitLine("function(callback) {"); - var r = this._compileGetTemplate( - e, - t, - !1, - e.ignoreMissing - ); - this._emitLine("callback(null," + r + ");});"), - this._emitLine("});"); - var n = this._tmpid(); - this._emitLine("tasks.push("), - this._emitLine("function(template, callback){"), - this._emitLine( - "template.render(context.getVariables(), frame, " + - this._makeCallback(n) - ), - this._emitLine("callback(null," + n + ");});"), - this._emitLine("});"), - this._emitLine("tasks.push("), - this._emitLine("function(result, callback){"), - this._emitLine(this.buffer + " += result;"), - this._emitLine("callback(null);"), - this._emitLine("});"), - this._emitLine("env.waterfall(tasks, function(){"), - this._addScopeLevel(); - }), - (o.compileTemplateData = function (e, t) { - this.compileLiteral(e, t); - }), - (o.compileCapture = function (e, t) { - var r = this, - n = this.buffer; - (this.buffer = "output"), - this._emitLine("(function() {"), - this._emitLine('var output = "";'), - this._withScopedSyntax(function () { - r.compile(e.body, t); - }), - this._emitLine("return output;"), - this._emitLine("})()"), - (this.buffer = n); - }), - (o.compileOutput = function (e, t) { - var r = this; - e.children.forEach(function (n) { - n instanceof a.TemplateData - ? n.value && - (r._emit(r.buffer + " += "), - r.compileLiteral(n, t), - r._emitLine(";")) - : (r._emit(r.buffer + " += runtime.suppressValue("), - r.throwOnUndefined && - r._emit("runtime.ensureDefined("), - r.compile(n, t), - r.throwOnUndefined && - r._emit("," + e.lineno + "," + e.colno + ")"), - r._emit(", env.opts.autoescape);\n")); - }); - }), - (o.compileRoot = function (e, t) { - var r = this; - t && - this.fail("compileRoot: root node can't have frame"), - (t = new l()), - this._emitFuncBegin(e, "root"), - this._emitLine("var parentTemplate = null;"), - this._compileChildren(e, t), - this._emitLine("if(parentTemplate) {"), - this._emitLine( - "parentTemplate.rootRenderFunc(env, context, frame, runtime, cb);" - ), - this._emitLine("} else {"), - this._emitLine("cb(null, " + this.buffer + ");"), - this._emitLine("}"), - this._emitFuncEnd(!0), - (this.inBlock = !0); - var n = [], - i = e.findAll(a.Block); - i.forEach(function (e, t) { - var i = e.name.value; - if (-1 !== n.indexOf(i)) - throw new Error( - 'Block "' + i + '" defined more than once.' - ); - n.push(i), r._emitFuncBegin(e, "b_" + i); - var o = new l(); - r._emitLine("var frame = frame.push(true);"), - r.compile(e.body, o), - r._emitFuncEnd(); - }), - this._emitLine("return {"), - i.forEach(function (e, t) { - var n = "b_" + e.name.value; - r._emitLine(n + ": " + n + ","); - }), - this._emitLine("root: root\n};"); - }), - (o.compile = function (e, t) { - var r = this["compile" + e.typename]; - r - ? r.call(this, e, t) - : this.fail( - "compile: Cannot compile node: " + e.typename, - e.lineno, - e.colno - ); - }), - (o.getCode = function () { - return this.codebuf.join(""); - }), - i - ); - })(c); - e.exports = { - compile: function (e, t, r, n, a) { - void 0 === a && (a = {}); - var s = new p(n, a.throwOnUndefined), - l = (r || []) - .map(function (e) { - return e.preprocess; - }) - .filter(function (e) { - return !!e; - }) - .reduce(function (e, t) { - return t(e); - }, e); - return ( - s.compile(o.transform(i.parse(l, r, a), t, n)), - s.getCode() - ); - }, - Compiler: p, - }; - }, - function (e, t, r) { - "use strict"; - function n(e, t) { - return ( - (n = - Object.setPrototypeOf || - function (e, t) { - return (e.__proto__ = t), e; - }), - n(e, t) - ); - } - var i = r(4), - o = r(1).EmitterObj; - e.exports = (function (e) { - var t, r; - function o() { - return e.apply(this, arguments) || this; - } - (r = e), - ((t = o).prototype = Object.create(r.prototype)), - (t.prototype.constructor = t), - n(t, r); - var a = o.prototype; - return ( - (a.resolve = function (e, t) { - return i.resolve(i.dirname(e), t); - }), - (a.isRelative = function (e) { - return 0 === e.indexOf("./") || 0 === e.indexOf("../"); - }), - o - ); - })(o); - }, - function (e, t, r) { - "use strict"; - function n(e, t) { - (e.prototype = Object.create(t.prototype)), - (e.prototype.constructor = e), - i(e, t); - } - function i(e, t) { - return ( - (i = - Object.setPrototypeOf || - function (e, t) { - return (e.__proto__ = t), e; - }), - i(e, t) - ); - } - var o = r(12), - a = r(15), - s = r(0), - l = r(5), - c = r(18), - u = r(10), - p = u.FileSystemLoader, - d = u.WebLoader, - f = u.PrecompiledLoader, - h = r(20), - m = r(21), - g = r(1), - v = g.Obj, - b = g.EmitterObj, - y = r(2), - w = y.handleError, - E = y.Frame, - x = r(22); - function T(e, t, r) { - o(function () { - e(t, r); - }); - } - var k = { - type: "code", - obj: { - root: function (e, t, r, n, i) { - try { - i(null, ""); - } catch (e) { - i(w(e, null, null)); - } - }, - }, - }, - _ = (function (e) { - function t() { - return e.apply(this, arguments) || this; - } - n(t, e); - var r = t.prototype; - return ( - (r.init = function (e, t) { - var r = this; - (t = this.opts = t || {}), - (this.opts.dev = !!t.dev), - (this.opts.autoescape = - null == t.autoescape || t.autoescape), - (this.opts.throwOnUndefined = !!t.throwOnUndefined), - (this.opts.trimBlocks = !!t.trimBlocks), - (this.opts.lstripBlocks = !!t.lstripBlocks), - (this.loaders = []), - e - ? (this.loaders = s.isArray(e) ? e : [e]) - : p - ? (this.loaders = [new p("views")]) - : d && (this.loaders = [new d("/views")]), - "undefined" != typeof window && - window.nunjucksPrecompiled && - this.loaders.unshift( - new f(window.nunjucksPrecompiled) - ), - this._initLoaders(), - (this.globals = m()), - (this.filters = {}), - (this.tests = {}), - (this.asyncFilters = []), - (this.extensions = {}), - (this.extensionsList = []), - s._entries(c).forEach(function (e) { - var t = e[0], - n = e[1]; - return r.addFilter(t, n); - }), - s._entries(h).forEach(function (e) { - var t = e[0], - n = e[1]; - return r.addTest(t, n); - }); - }), - (r._initLoaders = function () { - var e = this; - this.loaders.forEach(function (t) { - (t.cache = {}), - "function" == typeof t.on && - (t.on("update", function (r, n) { - (t.cache[r] = null), e.emit("update", r, n, t); - }), - t.on("load", function (r, n) { - e.emit("load", r, n, t); - })); - }); - }), - (r.invalidateCache = function () { - this.loaders.forEach(function (e) { - e.cache = {}; - }); - }), - (r.addExtension = function (e, t) { - return ( - (t.__name = e), - (this.extensions[e] = t), - this.extensionsList.push(t), - this - ); - }), - (r.removeExtension = function (e) { - var t = this.getExtension(e); - t && - ((this.extensionsList = s.without( - this.extensionsList, - t - )), - delete this.extensions[e]); - }), - (r.getExtension = function (e) { - return this.extensions[e]; - }), - (r.hasExtension = function (e) { - return !!this.extensions[e]; - }), - (r.addGlobal = function (e, t) { - return (this.globals[e] = t), this; - }), - (r.getGlobal = function (e) { - if (void 0 === this.globals[e]) - throw new Error("global not found: " + e); - return this.globals[e]; - }), - (r.addFilter = function (e, t, r) { - var n = t; - return ( - r && this.asyncFilters.push(e), - (this.filters[e] = n), - this - ); - }), - (r.getFilter = function (e) { - if (!this.filters[e]) - throw new Error("filter not found: " + e); - return this.filters[e]; - }), - (r.addTest = function (e, t) { - return (this.tests[e] = t), this; - }), - (r.getTest = function (e) { - if (!this.tests[e]) - throw new Error("test not found: " + e); - return this.tests[e]; - }), - (r.resolveTemplate = function (e, t, r) { - return e.isRelative && t && e.isRelative(r) && e.resolve - ? e.resolve(t, r) - : r; - }), - (r.getTemplate = function (e, t, r, n, i) { - var o, - a = this, - l = this, - c = null; - if ( - (e && e.raw && (e = e.raw), - s.isFunction(r) && - ((i = r), (r = null), (t = t || !1)), - s.isFunction(t) && ((i = t), (t = !1)), - e instanceof N) - ) - c = e; - else { - if ("string" != typeof e) - throw new Error( - "template names must be a string: " + e - ); - for (var u = 0; u < this.loaders.length; u++) { - var p = this.loaders[u]; - if ((c = p.cache[this.resolveTemplate(p, r, e)])) - break; - } - } - return c - ? (t && c.compile(), i ? void i(null, c) : c) - : (s.asyncIter( - this.loaders, - function (t, n, i, o) { - function a(e, r) { - e - ? o(e) - : r - ? ((r.loader = t), o(null, r)) - : i(); - } - (e = l.resolveTemplate(t, r, e)), - t.async - ? t.getSource(e, a) - : a(null, t.getSource(e)); - }, - function (r, s) { - if ( - (s || - r || - n || - (r = new Error("template not found: " + e)), - r) - ) { - if (i) return void i(r); - throw r; - } - var l; - s - ? ((l = new N(s.src, a, s.path, t)), - s.noCache || (s.loader.cache[e] = l)) - : (l = new N(k, a, "", t)), - i ? i(null, l) : (o = l); - } - ), - o); - }), - (r.express = function (e) { - return x(this, e); - }), - (r.render = function (e, t, r) { - s.isFunction(t) && ((r = t), (t = null)); - var n = null; - return ( - this.getTemplate(e, function (e, i) { - if (e && r) T(r, e); - else { - if (e) throw e; - n = i.render(t, r); - } - }), - n - ); - }), - (r.renderString = function (e, t, r, n) { - return ( - s.isFunction(r) && ((n = r), (r = {})), - new N(e, this, (r = r || {}).path).render(t, n) - ); - }), - (r.waterfall = function (e, t, r) { - return a(e, t, r); - }), - t - ); - })(b), - A = (function (e) { - function t() { - return e.apply(this, arguments) || this; - } - n(t, e); - var r = t.prototype; - return ( - (r.init = function (e, t, r) { - var n = this; - (this.env = r || new _()), - (this.ctx = s.extend({}, e)), - (this.blocks = {}), - (this.exported = []), - s.keys(t).forEach(function (e) { - n.addBlock(e, t[e]); - }); - }), - (r.lookup = function (e) { - return e in this.env.globals && !(e in this.ctx) - ? this.env.globals[e] - : this.ctx[e]; - }), - (r.setVariable = function (e, t) { - this.ctx[e] = t; - }), - (r.getVariables = function () { - return this.ctx; - }), - (r.addBlock = function (e, t) { - return ( - (this.blocks[e] = this.blocks[e] || []), - this.blocks[e].push(t), - this - ); - }), - (r.getBlock = function (e) { - if (!this.blocks[e]) - throw new Error('unknown block "' + e + '"'); - return this.blocks[e][0]; - }), - (r.getSuper = function (e, t, r, n, i, o) { - var a = s.indexOf(this.blocks[t] || [], r), - l = this.blocks[t][a + 1]; - if (-1 === a || !l) - throw new Error( - 'no super block available for "' + t + '"' - ); - l(e, this, n, i, o); - }), - (r.addExport = function (e) { - this.exported.push(e); - }), - (r.getExported = function () { - var e = this, - t = {}; - return ( - this.exported.forEach(function (r) { - t[r] = e.ctx[r]; - }), - t - ); - }), - t - ); - })(v), - N = (function (e) { - function t() { - return e.apply(this, arguments) || this; - } - n(t, e); - var r = t.prototype; - return ( - (r.init = function (e, t, r, n) { - if (((this.env = t || new _()), s.isObject(e))) - switch (e.type) { - case "code": - this.tmplProps = e.obj; - break; - case "string": - this.tmplStr = e.obj; - break; - default: - throw new Error( - "Unexpected template object type " + - e.type + - "; expected 'code', or 'string'" - ); - } - else { - if (!s.isString(e)) - throw new Error( - "src must be a string or an object describing the source" - ); - this.tmplStr = e; - } - if (((this.path = r), n)) - try { - this._compile(); - } catch (e) { - throw s._prettifyError( - this.path, - this.env.opts.dev, - e - ); - } - else this.compiled = !1; - }), - (r.render = function (e, t, r) { - var n = this; - "function" == typeof e - ? ((r = e), (e = {})) - : "function" == typeof t && ((r = t), (t = null)); - var i = !t; - try { - this.compile(); - } catch (e) { - var o = s._prettifyError( - this.path, - this.env.opts.dev, - e - ); - if (r) return T(r, o); - throw o; - } - var a = new A(e || {}, this.blocks, this.env), - l = t ? t.push(!0) : new E(); - l.topLevel = !0; - var c = null, - u = !1; - return ( - this.rootRenderFunc( - this.env, - a, - l, - y, - function (e, t) { - if (!u || !r || void 0 === t) - if ( - (e && - ((e = s._prettifyError( - n.path, - n.env.opts.dev, - e - )), - (u = !0)), - r) - ) - i ? T(r, e, t) : r(e, t); - else { - if (e) throw e; - c = t; - } - } - ), - c - ); - }), - (r.getExported = function (e, t, r) { - "function" == typeof e && ((r = e), (e = {})), - "function" == typeof t && ((r = t), (t = null)); - try { - this.compile(); - } catch (e) { - if (r) return r(e); - throw e; - } - var n = t ? t.push() : new E(); - n.topLevel = !0; - var i = new A(e || {}, this.blocks, this.env); - this.rootRenderFunc(this.env, i, n, y, function (e) { - e ? r(e, null) : r(null, i.getExported()); - }); - }), - (r.compile = function () { - this.compiled || this._compile(); - }), - (r._compile = function () { - var e; - if (this.tmplProps) e = this.tmplProps; - else { - var t = l.compile( - this.tmplStr, - this.env.asyncFilters, - this.env.extensionsList, - this.path, - this.env.opts - ); - e = new Function(t)(); - } - (this.blocks = this._getBlocks(e)), - (this.rootRenderFunc = e.root), - (this.compiled = !0); - }), - (r._getBlocks = function (e) { - var t = {}; - return ( - s.keys(e).forEach(function (r) { - "b_" === r.slice(0, 2) && (t[r.slice(2)] = e[r]); - }), - t - ); - }), - t - ); - })(v); - e.exports = { Environment: _, Template: N }; - }, - function (e, t, r) { - "use strict"; - function n(e, t) { - return ( - (n = - Object.setPrototypeOf || - function (e, t) { - return (e.__proto__ = t), e; - }), - n(e, t) - ); - } - var i = r(9), - o = r(3), - a = r(1).Obj, - s = r(0), - l = (function (e) { - var t, r; - function a() { - return e.apply(this, arguments) || this; - } - (r = e), - ((t = a).prototype = Object.create(r.prototype)), - (t.prototype.constructor = t), - n(t, r); - var l = a.prototype; - return ( - (l.init = function (e) { - (this.tokens = e), - (this.peeked = null), - (this.breakOnBlocks = null), - (this.dropLeadingWhitespace = !1), - (this.extensions = []); - }), - (l.nextToken = function (e) { - var t; - if (this.peeked) { - if (e || this.peeked.type !== i.TOKEN_WHITESPACE) - return (t = this.peeked), (this.peeked = null), t; - this.peeked = null; - } - if (((t = this.tokens.nextToken()), !e)) - for (; t && t.type === i.TOKEN_WHITESPACE; ) - t = this.tokens.nextToken(); - return t; - }), - (l.peekToken = function () { - return ( - (this.peeked = this.peeked || this.nextToken()), - this.peeked - ); - }), - (l.pushToken = function (e) { - if (this.peeked) - throw new Error( - "pushToken: can only push one token on between reads" - ); - this.peeked = e; - }), - (l.error = function (e, t, r) { - if (void 0 === t || void 0 === r) { - var n = this.peekToken() || {}; - (t = n.lineno), (r = n.colno); - } - return ( - void 0 !== t && (t += 1), - void 0 !== r && (r += 1), - new s.TemplateError(e, t, r) - ); - }), - (l.fail = function (e, t, r) { - throw this.error(e, t, r); - }), - (l.skip = function (e) { - var t = this.nextToken(); - return !(!t || t.type !== e) || (this.pushToken(t), !1); - }), - (l.expect = function (e) { - var t = this.nextToken(); - return ( - t.type !== e && - this.fail( - "expected " + e + ", got " + t.type, - t.lineno, - t.colno - ), - t - ); - }), - (l.skipValue = function (e, t) { - var r = this.nextToken(); - return ( - !(!r || r.type !== e || r.value !== t) || - (this.pushToken(r), !1) - ); - }), - (l.skipSymbol = function (e) { - return this.skipValue(i.TOKEN_SYMBOL, e); - }), - (l.advanceAfterBlockEnd = function (e) { - var t; - return ( - e || - ((t = this.peekToken()) || - this.fail("unexpected end of file"), - t.type !== i.TOKEN_SYMBOL && - this.fail( - "advanceAfterBlockEnd: expected symbol token or explicit name to be passed" - ), - (e = this.nextToken().value)), - (t = this.nextToken()) && t.type === i.TOKEN_BLOCK_END - ? "-" === t.value.charAt(0) && - (this.dropLeadingWhitespace = !0) - : this.fail( - "expected block end in " + e + " statement" - ), - t - ); - }), - (l.advanceAfterVariableEnd = function () { - var e = this.nextToken(); - e && e.type === i.TOKEN_VARIABLE_END - ? (this.dropLeadingWhitespace = - "-" === - e.value.charAt( - e.value.length - - this.tokens.tags.VARIABLE_END.length - - 1 - )) - : (this.pushToken(e), - this.fail("expected variable end")); - }), - (l.parseFor = function () { - var e, - t, - r = this.peekToken(); - if ( - (this.skipSymbol("for") - ? ((e = new o.For(r.lineno, r.colno)), - (t = "endfor")) - : this.skipSymbol("asyncEach") - ? ((e = new o.AsyncEach(r.lineno, r.colno)), - (t = "endeach")) - : this.skipSymbol("asyncAll") - ? ((e = new o.AsyncAll(r.lineno, r.colno)), - (t = "endall")) - : this.fail( - "parseFor: expected for{Async}", - r.lineno, - r.colno - ), - (e.name = this.parsePrimary()), - e.name instanceof o.Symbol || - this.fail( - "parseFor: variable name expected for loop" - ), - this.peekToken().type === i.TOKEN_COMMA) - ) { - var n = e.name; - for ( - e.name = new o.Array(n.lineno, n.colno), - e.name.addChild(n); - this.skip(i.TOKEN_COMMA); - - ) { - var a = this.parsePrimary(); - e.name.addChild(a); - } - } - return ( - this.skipSymbol("in") || - this.fail( - 'parseFor: expected "in" keyword for loop', - r.lineno, - r.colno - ), - (e.arr = this.parseExpression()), - this.advanceAfterBlockEnd(r.value), - (e.body = this.parseUntilBlocks(t, "else")), - this.skipSymbol("else") && - (this.advanceAfterBlockEnd("else"), - (e.else_ = this.parseUntilBlocks(t))), - this.advanceAfterBlockEnd(), - e - ); - }), - (l.parseMacro = function () { - var e = this.peekToken(); - this.skipSymbol("macro") || this.fail("expected macro"); - var t = this.parsePrimary(!0), - r = this.parseSignature(), - n = new o.Macro(e.lineno, e.colno, t, r); - return ( - this.advanceAfterBlockEnd(e.value), - (n.body = this.parseUntilBlocks("endmacro")), - this.advanceAfterBlockEnd(), - n - ); - }), - (l.parseCall = function () { - var e = this.peekToken(); - this.skipSymbol("call") || this.fail("expected call"); - var t = this.parseSignature(!0) || new o.NodeList(), - r = this.parsePrimary(); - this.advanceAfterBlockEnd(e.value); - var n = this.parseUntilBlocks("endcall"); - this.advanceAfterBlockEnd(); - var i = new o.Symbol(e.lineno, e.colno, "caller"), - a = new o.Caller(e.lineno, e.colno, i, t, n), - s = r.args.children; - return ( - s[s.length - 1] instanceof o.KeywordArgs || - s.push(new o.KeywordArgs()), - s[s.length - 1].addChild( - new o.Pair(e.lineno, e.colno, i, a) - ), - new o.Output(e.lineno, e.colno, [r]) - ); - }), - (l.parseWithContext = function () { - var e = this.peekToken(), - t = null; - return ( - this.skipSymbol("with") - ? (t = !0) - : this.skipSymbol("without") && (t = !1), - null !== t && - (this.skipSymbol("context") || - this.fail( - "parseFrom: expected context after with/without", - e.lineno, - e.colno - )), - t - ); - }), - (l.parseImport = function () { - var e = this.peekToken(); - this.skipSymbol("import") || - this.fail( - "parseImport: expected import", - e.lineno, - e.colno - ); - var t = this.parseExpression(); - this.skipSymbol("as") || - this.fail( - 'parseImport: expected "as" keyword', - e.lineno, - e.colno - ); - var r = this.parseExpression(), - n = this.parseWithContext(), - i = new o.Import(e.lineno, e.colno, t, r, n); - return this.advanceAfterBlockEnd(e.value), i; - }), - (l.parseFrom = function () { - var e = this.peekToken(); - this.skipSymbol("from") || - this.fail("parseFrom: expected from"); - var t = this.parseExpression(); - this.skipSymbol("import") || - this.fail( - "parseFrom: expected import", - e.lineno, - e.colno - ); - for (var r, n = new o.NodeList(); ; ) { - var a = this.peekToken(); - if (a.type === i.TOKEN_BLOCK_END) { - n.children.length || - this.fail( - "parseFrom: Expected at least one import name", - e.lineno, - e.colno - ), - "-" === a.value.charAt(0) && - (this.dropLeadingWhitespace = !0), - this.nextToken(); - break; - } - n.children.length > 0 && - !this.skip(i.TOKEN_COMMA) && - this.fail( - "parseFrom: expected comma", - e.lineno, - e.colno - ); - var s = this.parsePrimary(); - if ( - ("_" === s.value.charAt(0) && - this.fail( - "parseFrom: names starting with an underscore cannot be imported", - s.lineno, - s.colno - ), - this.skipSymbol("as")) - ) { - var l = this.parsePrimary(); - n.addChild(new o.Pair(s.lineno, s.colno, s, l)); - } else n.addChild(s); - r = this.parseWithContext(); - } - return new o.FromImport(e.lineno, e.colno, t, n, r); - }), - (l.parseBlock = function () { - var e = this.peekToken(); - this.skipSymbol("block") || - this.fail( - "parseBlock: expected block", - e.lineno, - e.colno - ); - var t = new o.Block(e.lineno, e.colno); - (t.name = this.parsePrimary()), - t.name instanceof o.Symbol || - this.fail( - "parseBlock: variable name expected", - e.lineno, - e.colno - ), - this.advanceAfterBlockEnd(e.value), - (t.body = this.parseUntilBlocks("endblock")), - this.skipSymbol("endblock"), - this.skipSymbol(t.name.value); - var r = this.peekToken(); - return ( - r || - this.fail( - "parseBlock: expected endblock, got end of file" - ), - this.advanceAfterBlockEnd(r.value), - t - ); - }), - (l.parseExtends = function () { - var e = "extends", - t = this.peekToken(); - this.skipSymbol(e) || - this.fail("parseTemplateRef: expected " + e); - var r = new o.Extends(t.lineno, t.colno); - return ( - (r.template = this.parseExpression()), - this.advanceAfterBlockEnd(t.value), - r - ); - }), - (l.parseInclude = function () { - var e = "include", - t = this.peekToken(); - this.skipSymbol(e) || - this.fail("parseInclude: expected " + e); - var r = new o.Include(t.lineno, t.colno); - return ( - (r.template = this.parseExpression()), - this.skipSymbol("ignore") && - this.skipSymbol("missing") && - (r.ignoreMissing = !0), - this.advanceAfterBlockEnd(t.value), - r - ); - }), - (l.parseIf = function () { - var e, - t = this.peekToken(); - this.skipSymbol("if") || - this.skipSymbol("elif") || - this.skipSymbol("elseif") - ? (e = new o.If(t.lineno, t.colno)) - : this.skipSymbol("ifAsync") - ? (e = new o.IfAsync(t.lineno, t.colno)) - : this.fail( - "parseIf: expected if, elif, or elseif", - t.lineno, - t.colno - ), - (e.cond = this.parseExpression()), - this.advanceAfterBlockEnd(t.value), - (e.body = this.parseUntilBlocks( - "elif", - "elseif", - "else", - "endif" - )); - var r = this.peekToken(); - switch (r && r.value) { - case "elseif": - case "elif": - e.else_ = this.parseIf(); - break; - case "else": - this.advanceAfterBlockEnd(), - (e.else_ = this.parseUntilBlocks("endif")), - this.advanceAfterBlockEnd(); - break; - case "endif": - (e.else_ = null), this.advanceAfterBlockEnd(); - break; - default: - this.fail( - "parseIf: expected elif, else, or endif, got end of file" - ); - } - return e; - }), - (l.parseSet = function () { - var e = this.peekToken(); - this.skipSymbol("set") || - this.fail( - "parseSet: expected set", - e.lineno, - e.colno - ); - for ( - var t, r = new o.Set(e.lineno, e.colno, []); - (t = this.parsePrimary()) && - (r.targets.push(t), this.skip(i.TOKEN_COMMA)); - - ); - return ( - this.skipValue(i.TOKEN_OPERATOR, "=") - ? ((r.value = this.parseExpression()), - this.advanceAfterBlockEnd(e.value)) - : this.skip(i.TOKEN_BLOCK_END) - ? ((r.body = new o.Capture( - e.lineno, - e.colno, - this.parseUntilBlocks("endset") - )), - (r.value = null), - this.advanceAfterBlockEnd()) - : this.fail( - "parseSet: expected = or block end in set tag", - e.lineno, - e.colno - ), - r - ); - }), - (l.parseSwitch = function () { - var e = "switch", - t = "endswitch", - r = "case", - n = "default", - i = this.peekToken(); - this.skipSymbol(e) || - this.skipSymbol(r) || - this.skipSymbol(n) || - this.fail( - 'parseSwitch: expected "switch," "case" or "default"', - i.lineno, - i.colno - ); - var a = this.parseExpression(); - this.advanceAfterBlockEnd(e), - this.parseUntilBlocks(r, n, t); - var s, - l = this.peekToken(), - c = []; - do { - this.skipSymbol(r); - var u = this.parseExpression(); - this.advanceAfterBlockEnd(e); - var p = this.parseUntilBlocks(r, n, t); - c.push(new o.Case(l.line, l.col, u, p)), - (l = this.peekToken()); - } while (l && l.value === r); - switch (l.value) { - case n: - this.advanceAfterBlockEnd(), - (s = this.parseUntilBlocks(t)), - this.advanceAfterBlockEnd(); - break; - case t: - this.advanceAfterBlockEnd(); - break; - default: - this.fail( - 'parseSwitch: expected "case," "default" or "endswitch," got EOF.' - ); - } - return new o.Switch(i.lineno, i.colno, a, c, s); - }), - (l.parseStatement = function () { - var e = this.peekToken(); - if ( - (e.type !== i.TOKEN_SYMBOL && - this.fail("tag name expected", e.lineno, e.colno), - this.breakOnBlocks && - -1 !== s.indexOf(this.breakOnBlocks, e.value)) - ) - return null; - switch (e.value) { - case "raw": - return this.parseRaw(); - case "verbatim": - return this.parseRaw("verbatim"); - case "if": - case "ifAsync": - return this.parseIf(); - case "for": - case "asyncEach": - case "asyncAll": - return this.parseFor(); - case "block": - return this.parseBlock(); - case "extends": - return this.parseExtends(); - case "include": - return this.parseInclude(); - case "set": - return this.parseSet(); - case "macro": - return this.parseMacro(); - case "call": - return this.parseCall(); - case "import": - return this.parseImport(); - case "from": - return this.parseFrom(); - case "filter": - return this.parseFilterStatement(); - case "switch": - return this.parseSwitch(); - default: - if (this.extensions.length) - for (var t = 0; t < this.extensions.length; t++) { - var r = this.extensions[t]; - if (-1 !== s.indexOf(r.tags || [], e.value)) - return r.parse(this, o, i); - } - this.fail( - "unknown block tag: " + e.value, - e.lineno, - e.colno - ); - } - }), - (l.parseRaw = function (e) { - for ( - var t = "end" + (e = e || "raw"), - r = new RegExp( - "([\\s\\S]*?){%\\s*(" + - e + - "|" + - t + - ")\\s*(?=%})%}" - ), - n = 1, - i = "", - a = null, - s = this.advanceAfterBlockEnd(); - (a = this.tokens._extractRegex(r)) && n > 0; - - ) { - var l = a[0], - c = a[1], - u = a[2]; - u === e ? (n += 1) : u === t && (n -= 1), - 0 === n - ? ((i += c), - this.tokens.backN(l.length - c.length)) - : (i += l); - } - return new o.Output(s.lineno, s.colno, [ - new o.TemplateData(s.lineno, s.colno, i), - ]); - }), - (l.parsePostfix = function (e) { - for (var t, r = this.peekToken(); r; ) { - if (r.type === i.TOKEN_LEFT_PAREN) - e = new o.FunCall( - r.lineno, - r.colno, - e, - this.parseSignature() - ); - else if (r.type === i.TOKEN_LEFT_BRACKET) - (t = this.parseAggregate()).children.length > 1 && - this.fail("invalid index"), - (e = new o.LookupVal( - r.lineno, - r.colno, - e, - t.children[0] - )); - else { - if (r.type !== i.TOKEN_OPERATOR || "." !== r.value) - break; - this.nextToken(); - var n = this.nextToken(); - n.type !== i.TOKEN_SYMBOL && - this.fail( - "expected name as lookup value, got " + n.value, - n.lineno, - n.colno - ), - (t = new o.Literal(n.lineno, n.colno, n.value)), - (e = new o.LookupVal(r.lineno, r.colno, e, t)); - } - r = this.peekToken(); - } - return e; - }), - (l.parseExpression = function () { - return this.parseInlineIf(); - }), - (l.parseInlineIf = function () { - var e = this.parseOr(); - if (this.skipSymbol("if")) { - var t = this.parseOr(), - r = e; - ((e = new o.InlineIf(e.lineno, e.colno)).body = r), - (e.cond = t), - this.skipSymbol("else") - ? (e.else_ = this.parseOr()) - : (e.else_ = null); - } - return e; - }), - (l.parseOr = function () { - for (var e = this.parseAnd(); this.skipSymbol("or"); ) { - var t = this.parseAnd(); - e = new o.Or(e.lineno, e.colno, e, t); - } - return e; - }), - (l.parseAnd = function () { - for ( - var e = this.parseNot(); - this.skipSymbol("and"); - - ) { - var t = this.parseNot(); - e = new o.And(e.lineno, e.colno, e, t); - } - return e; - }), - (l.parseNot = function () { - var e = this.peekToken(); - return this.skipSymbol("not") - ? new o.Not(e.lineno, e.colno, this.parseNot()) - : this.parseIn(); - }), - (l.parseIn = function () { - for (var e = this.parseIs(); ; ) { - var t = this.nextToken(); - if (!t) break; - var r = - t.type === i.TOKEN_SYMBOL && "not" === t.value; - if ( - (r || this.pushToken(t), !this.skipSymbol("in")) - ) { - r && this.pushToken(t); - break; - } - var n = this.parseIs(); - (e = new o.In(e.lineno, e.colno, e, n)), - r && (e = new o.Not(e.lineno, e.colno, e)); - } - return e; - }), - (l.parseIs = function () { - var e = this.parseCompare(); - if (this.skipSymbol("is")) { - var t = this.skipSymbol("not"), - r = this.parseCompare(); - (e = new o.Is(e.lineno, e.colno, e, r)), - t && (e = new o.Not(e.lineno, e.colno, e)); - } - return e; - }), - (l.parseCompare = function () { - for ( - var e = [ - "==", - "===", - "!=", - "!==", - "<", - ">", - "<=", - ">=", - ], - t = this.parseConcat(), - r = []; - ; - - ) { - var n = this.nextToken(); - if (!n) break; - if (-1 === e.indexOf(n.value)) { - this.pushToken(n); - break; - } - r.push( - new o.CompareOperand( - n.lineno, - n.colno, - this.parseConcat(), - n.value - ) - ); - } - return r.length - ? new o.Compare(r[0].lineno, r[0].colno, t, r) - : t; - }), - (l.parseConcat = function () { - for ( - var e = this.parseAdd(); - this.skipValue(i.TOKEN_TILDE, "~"); - - ) { - var t = this.parseAdd(); - e = new o.Concat(e.lineno, e.colno, e, t); - } - return e; - }), - (l.parseAdd = function () { - for ( - var e = this.parseSub(); - this.skipValue(i.TOKEN_OPERATOR, "+"); - - ) { - var t = this.parseSub(); - e = new o.Add(e.lineno, e.colno, e, t); - } - return e; - }), - (l.parseSub = function () { - for ( - var e = this.parseMul(); - this.skipValue(i.TOKEN_OPERATOR, "-"); - - ) { - var t = this.parseMul(); - e = new o.Sub(e.lineno, e.colno, e, t); - } - return e; - }), - (l.parseMul = function () { - for ( - var e = this.parseDiv(); - this.skipValue(i.TOKEN_OPERATOR, "*"); - - ) { - var t = this.parseDiv(); - e = new o.Mul(e.lineno, e.colno, e, t); - } - return e; - }), - (l.parseDiv = function () { - for ( - var e = this.parseFloorDiv(); - this.skipValue(i.TOKEN_OPERATOR, "/"); - - ) { - var t = this.parseFloorDiv(); - e = new o.Div(e.lineno, e.colno, e, t); - } - return e; - }), - (l.parseFloorDiv = function () { - for ( - var e = this.parseMod(); - this.skipValue(i.TOKEN_OPERATOR, "//"); - - ) { - var t = this.parseMod(); - e = new o.FloorDiv(e.lineno, e.colno, e, t); - } - return e; - }), - (l.parseMod = function () { - for ( - var e = this.parsePow(); - this.skipValue(i.TOKEN_OPERATOR, "%"); - - ) { - var t = this.parsePow(); - e = new o.Mod(e.lineno, e.colno, e, t); - } - return e; - }), - (l.parsePow = function () { - for ( - var e = this.parseUnary(); - this.skipValue(i.TOKEN_OPERATOR, "**"); - - ) { - var t = this.parseUnary(); - e = new o.Pow(e.lineno, e.colno, e, t); - } - return e; - }), - (l.parseUnary = function (e) { - var t, - r = this.peekToken(); - return ( - (t = this.skipValue(i.TOKEN_OPERATOR, "-") - ? new o.Neg(r.lineno, r.colno, this.parseUnary(!0)) - : this.skipValue(i.TOKEN_OPERATOR, "+") - ? new o.Pos(r.lineno, r.colno, this.parseUnary(!0)) - : this.parsePrimary()), - e || (t = this.parseFilter(t)), - t - ); - }), - (l.parsePrimary = function (e) { - var t, - r = this.nextToken(), - n = null; - if ( - (r - ? r.type === i.TOKEN_STRING - ? (t = r.value) - : r.type === i.TOKEN_INT - ? (t = parseInt(r.value, 10)) - : r.type === i.TOKEN_FLOAT - ? (t = parseFloat(r.value)) - : r.type === i.TOKEN_BOOLEAN - ? "true" === r.value - ? (t = !0) - : "false" === r.value - ? (t = !1) - : this.fail( - "invalid boolean: " + r.value, - r.lineno, - r.colno - ) - : r.type === i.TOKEN_NONE - ? (t = null) - : r.type === i.TOKEN_REGEX && - (t = new RegExp(r.value.body, r.value.flags)) - : this.fail("expected expression, got end of file"), - void 0 !== t - ? (n = new o.Literal(r.lineno, r.colno, t)) - : r.type === i.TOKEN_SYMBOL - ? (n = new o.Symbol(r.lineno, r.colno, r.value)) - : (this.pushToken(r), (n = this.parseAggregate())), - e || (n = this.parsePostfix(n)), - n) - ) - return n; - throw this.error( - "unexpected token: " + r.value, - r.lineno, - r.colno - ); - }), - (l.parseFilterName = function () { - for ( - var e = this.expect(i.TOKEN_SYMBOL), t = e.value; - this.skipValue(i.TOKEN_OPERATOR, "."); - - ) - t += "." + this.expect(i.TOKEN_SYMBOL).value; - return new o.Symbol(e.lineno, e.colno, t); - }), - (l.parseFilterArgs = function (e) { - return this.peekToken().type === i.TOKEN_LEFT_PAREN - ? this.parsePostfix(e).args.children - : []; - }), - (l.parseFilter = function (e) { - for (; this.skip(i.TOKEN_PIPE); ) { - var t = this.parseFilterName(); - e = new o.Filter( - t.lineno, - t.colno, - t, - new o.NodeList( - t.lineno, - t.colno, - [e].concat(this.parseFilterArgs(e)) - ) - ); - } - return e; - }), - (l.parseFilterStatement = function () { - var e = this.peekToken(); - this.skipSymbol("filter") || - this.fail("parseFilterStatement: expected filter"); - var t = this.parseFilterName(), - r = this.parseFilterArgs(t); - this.advanceAfterBlockEnd(e.value); - var n = new o.Capture( - t.lineno, - t.colno, - this.parseUntilBlocks("endfilter") - ); - this.advanceAfterBlockEnd(); - var i = new o.Filter( - t.lineno, - t.colno, - t, - new o.NodeList(t.lineno, t.colno, [n].concat(r)) - ); - return new o.Output(t.lineno, t.colno, [i]); - }), - (l.parseAggregate = function () { - var e, - t = this.nextToken(); - switch (t.type) { - case i.TOKEN_LEFT_PAREN: - e = new o.Group(t.lineno, t.colno); - break; - case i.TOKEN_LEFT_BRACKET: - e = new o.Array(t.lineno, t.colno); - break; - case i.TOKEN_LEFT_CURLY: - e = new o.Dict(t.lineno, t.colno); - break; - default: - return null; - } - for (;;) { - var r = this.peekToken().type; - if ( - r === i.TOKEN_RIGHT_PAREN || - r === i.TOKEN_RIGHT_BRACKET || - r === i.TOKEN_RIGHT_CURLY - ) { - this.nextToken(); - break; - } - if ( - (e.children.length > 0 && - (this.skip(i.TOKEN_COMMA) || - this.fail( - "parseAggregate: expected comma after expression", - t.lineno, - t.colno - )), - e instanceof o.Dict) - ) { - var n = this.parsePrimary(); - this.skip(i.TOKEN_COLON) || - this.fail( - "parseAggregate: expected colon after dict key", - t.lineno, - t.colno - ); - var a = this.parseExpression(); - e.addChild(new o.Pair(n.lineno, n.colno, n, a)); - } else { - var s = this.parseExpression(); - e.addChild(s); - } - } - return e; - }), - (l.parseSignature = function (e, t) { - var r = this.peekToken(); - if (!t && r.type !== i.TOKEN_LEFT_PAREN) { - if (e) return null; - this.fail("expected arguments", r.lineno, r.colno); - } - r.type === i.TOKEN_LEFT_PAREN && (r = this.nextToken()); - for ( - var n = new o.NodeList(r.lineno, r.colno), - a = new o.KeywordArgs(r.lineno, r.colno), - s = !1; - ; - - ) { - if ( - ((r = this.peekToken()), - !t && r.type === i.TOKEN_RIGHT_PAREN) - ) { - this.nextToken(); - break; - } - if (t && r.type === i.TOKEN_BLOCK_END) break; - if (s && !this.skip(i.TOKEN_COMMA)) - this.fail( - "parseSignature: expected comma after expression", - r.lineno, - r.colno - ); - else { - var l = this.parseExpression(); - this.skipValue(i.TOKEN_OPERATOR, "=") - ? a.addChild( - new o.Pair( - l.lineno, - l.colno, - l, - this.parseExpression() - ) - ) - : n.addChild(l); - } - s = !0; - } - return a.children.length && n.addChild(a), n; - }), - (l.parseUntilBlocks = function () { - for ( - var e = this.breakOnBlocks, - t = arguments.length, - r = new Array(t), - n = 0; - n < t; - n++ - ) - r[n] = arguments[n]; - this.breakOnBlocks = r; - var i = this.parse(); - return (this.breakOnBlocks = e), i; - }), - (l.parseNodes = function () { - for (var e, t = []; (e = this.nextToken()); ) - if (e.type === i.TOKEN_DATA) { - var r = e.value, - n = this.peekToken(), - a = n && n.value; - this.dropLeadingWhitespace && - ((r = r.replace(/^\s*/, "")), - (this.dropLeadingWhitespace = !1)), - n && - ((n.type === i.TOKEN_BLOCK_START && - "-" === a.charAt(a.length - 1)) || - (n.type === i.TOKEN_VARIABLE_START && - "-" === - a.charAt( - this.tokens.tags.VARIABLE_START.length - )) || - (n.type === i.TOKEN_COMMENT && - "-" === - a.charAt( - this.tokens.tags.COMMENT_START.length - ))) && - (r = r.replace(/\s*$/, "")), - t.push( - new o.Output(e.lineno, e.colno, [ - new o.TemplateData(e.lineno, e.colno, r), - ]) - ); - } else if (e.type === i.TOKEN_BLOCK_START) { - this.dropLeadingWhitespace = !1; - var s = this.parseStatement(); - if (!s) break; - t.push(s); - } else if (e.type === i.TOKEN_VARIABLE_START) { - var l = this.parseExpression(); - (this.dropLeadingWhitespace = !1), - this.advanceAfterVariableEnd(), - t.push(new o.Output(e.lineno, e.colno, [l])); - } else - e.type === i.TOKEN_COMMENT - ? (this.dropLeadingWhitespace = - "-" === - e.value.charAt( - e.value.length - - this.tokens.tags.COMMENT_END.length - - 1 - )) - : this.fail( - "Unexpected token at top-level: " + e.type, - e.lineno, - e.colno - ); - return t; - }), - (l.parse = function () { - return new o.NodeList(0, 0, this.parseNodes()); - }), - (l.parseAsRoot = function () { - return new o.Root(0, 0, this.parseNodes()); - }), - a - ); - })(a); - e.exports = { - parse: function (e, t, r) { - var n = new l(i.lex(e, r)); - return void 0 !== t && (n.extensions = t), n.parseAsRoot(); - }, - Parser: l, - }; - }, - function (e, t, r) { - "use strict"; - var n = r(0), - i = " \n\t\r ", - o = "()[]{}%*-+~/#,:|.<>=!", - a = "string", - s = "whitespace", - l = "data", - c = "block-start", - u = "block-end", - p = "variable-start", - d = "variable-end", - f = "comment", - h = "left-paren", - m = "right-paren", - g = "left-bracket", - v = "right-bracket", - b = "left-curly", - y = "right-curly", - w = "operator", - E = "comma", - x = "colon", - T = "tilde", - k = "pipe", - _ = "float", - A = "boolean", - N = "none", - L = "symbol", - O = "regex"; - function S(e, t, r, n) { - return { type: e, value: t, lineno: r, colno: n }; - } - var C = (function () { - function e(e, t) { - (this.str = e), - (this.index = 0), - (this.len = e.length), - (this.lineno = 0), - (this.colno = 0), - (this.in_code = !1); - var r = (t = t || {}).tags || {}; - (this.tags = { - BLOCK_START: r.blockStart || "{%", - BLOCK_END: r.blockEnd || "%}", - VARIABLE_START: r.variableStart || "{{", - VARIABLE_END: r.variableEnd || "}}", - COMMENT_START: r.commentStart || "{#", - COMMENT_END: r.commentEnd || "#}", - }), - (this.trimBlocks = !!t.trimBlocks), - (this.lstripBlocks = !!t.lstripBlocks); - } - var t = e.prototype; - return ( - (t.nextToken = function () { - var e, - t = this.lineno, - r = this.colno; - if (this.in_code) { - var C = this.current(); - if (this.isFinished()) return null; - if ('"' === C || "'" === C) - return S(a, this._parseString(C), t, r); - if ((e = this._extract(i))) return S(s, e, t, r); - if ( - (e = this._extractString(this.tags.BLOCK_END)) || - (e = this._extractString("-" + this.tags.BLOCK_END)) - ) - return ( - (this.in_code = !1), - this.trimBlocks && - ("\n" === (C = this.current()) - ? this.forward() - : "\r" === C && - (this.forward(), - "\n" === (C = this.current()) - ? this.forward() - : this.back())), - S(u, e, t, r) - ); - if ( - (e = this._extractString(this.tags.VARIABLE_END)) || - (e = this._extractString( - "-" + this.tags.VARIABLE_END - )) - ) - return (this.in_code = !1), S(d, e, t, r); - if ( - "r" === C && - "/" === this.str.charAt(this.index + 1) - ) { - this.forwardN(2); - for (var D = ""; !this.isFinished(); ) { - if ( - "/" === this.current() && - "\\" !== this.previous() - ) { - this.forward(); - break; - } - (D += this.current()), this.forward(); - } - for ( - var q = ["g", "i", "m", "y"], R = ""; - !this.isFinished() && - -1 !== q.indexOf(this.current()); - - ) - (R += this.current()), this.forward(); - return S(O, { body: D, flags: R }, t, r); - } - if (-1 !== o.indexOf(C)) { - this.forward(); - var j, - P = [ - "==", - "===", - "!=", - "!==", - "<=", - ">=", - "//", - "**", - ], - B = C + this.current(); - switch ( - (-1 !== n.indexOf(P, B) && - (this.forward(), - (C = B), - -1 !== n.indexOf(P, B + this.current()) && - ((C = B + this.current()), this.forward())), - C) - ) { - case "(": - j = h; - break; - case ")": - j = m; - break; - case "[": - j = g; - break; - case "]": - j = v; - break; - case "{": - j = b; - break; - case "}": - j = y; - break; - case ",": - j = E; - break; - case ":": - j = x; - break; - case "~": - j = T; - break; - case "|": - j = k; - break; - default: - j = w; - } - return S(j, C, t, r); - } - if ( - (e = this._extractUntil(i + o)).match(/^[-+]?[0-9]+$/) - ) { - if ("." === this.current()) { - this.forward(); - var F = this._extract("0123456789"); - return S(_, e + "." + F, t, r); - } - return S("int", e, t, r); - } - if (e.match(/^(true|false)$/)) return S(A, e, t, r); - if ("none" === e) return S(N, e, t, r); - if ("null" === e) return S(N, e, t, r); - if (e) return S(L, e, t, r); - throw new Error("Unexpected value while parsing: " + e); - } - var M, - I = - this.tags.BLOCK_START.charAt(0) + - this.tags.VARIABLE_START.charAt(0) + - this.tags.COMMENT_START.charAt(0) + - this.tags.COMMENT_END.charAt(0); - if (this.isFinished()) return null; - if ( - (e = this._extractString( - this.tags.BLOCK_START + "-" - )) || - (e = this._extractString(this.tags.BLOCK_START)) - ) - return (this.in_code = !0), S(c, e, t, r); - if ( - (e = this._extractString( - this.tags.VARIABLE_START + "-" - )) || - (e = this._extractString(this.tags.VARIABLE_START)) - ) - return (this.in_code = !0), S(p, e, t, r); - e = ""; - var U = !1; - for ( - this._matches(this.tags.COMMENT_START) && - ((U = !0), - (e = this._extractString(this.tags.COMMENT_START))); - null !== (M = this._extractUntil(I)); - - ) { - if ( - ((e += M), - (this._matches(this.tags.BLOCK_START) || - this._matches(this.tags.VARIABLE_START) || - this._matches(this.tags.COMMENT_START)) && - !U) - ) { - if ( - this.lstripBlocks && - this._matches(this.tags.BLOCK_START) && - this.colno > 0 && - this.colno <= e.length - ) { - var V = e.slice(-this.colno); - if ( - /^\s+$/.test(V) && - !(e = e.slice(0, -this.colno)).length - ) - return this.nextToken(); - } - break; - } - if (this._matches(this.tags.COMMENT_END)) { - if (!U) throw new Error("unexpected end of comment"); - e += this._extractString(this.tags.COMMENT_END); - break; - } - (e += this.current()), this.forward(); - } - if (null === M && U) - throw new Error( - "expected end of comment, got end of file" - ); - return S(U ? f : l, e, t, r); - }), - (t._parseString = function (e) { - this.forward(); - for ( - var t = ""; - !this.isFinished() && this.current() !== e; - - ) { - var r = this.current(); - if ("\\" === r) { - switch ((this.forward(), this.current())) { - case "n": - t += "\n"; - break; - case "t": - t += "\t"; - break; - case "r": - t += "\r"; - break; - default: - t += this.current(); - } - this.forward(); - } else (t += r), this.forward(); - } - return this.forward(), t; - }), - (t._matches = function (e) { - return this.index + e.length > this.len - ? null - : this.str.slice(this.index, this.index + e.length) === - e; - }), - (t._extractString = function (e) { - return this._matches(e) - ? (this.forwardN(e.length), e) - : null; - }), - (t._extractUntil = function (e) { - return this._extractMatching(!0, e || ""); - }), - (t._extract = function (e) { - return this._extractMatching(!1, e); - }), - (t._extractMatching = function (e, t) { - if (this.isFinished()) return null; - var r = t.indexOf(this.current()); - if ((e && -1 === r) || (!e && -1 !== r)) { - var n = this.current(); - this.forward(); - for ( - var i = t.indexOf(this.current()); - ((e && -1 === i) || (!e && -1 !== i)) && - !this.isFinished(); - - ) - (n += this.current()), - this.forward(), - (i = t.indexOf(this.current())); - return n; - } - return ""; - }), - (t._extractRegex = function (e) { - var t = this.currentStr().match(e); - return t ? (this.forwardN(t[0].length), t) : null; - }), - (t.isFinished = function () { - return this.index >= this.len; - }), - (t.forwardN = function (e) { - for (var t = 0; t < e; t++) this.forward(); - }), - (t.forward = function () { - this.index++, - "\n" === this.previous() - ? (this.lineno++, (this.colno = 0)) - : this.colno++; - }), - (t.backN = function (e) { - for (var t = 0; t < e; t++) this.back(); - }), - (t.back = function () { - if ((this.index--, "\n" === this.current())) { - this.lineno--; - var e = this.src.lastIndexOf("\n", this.index - 1); - this.colno = -1 === e ? this.index : this.index - e; - } else this.colno--; - }), - (t.current = function () { - return this.isFinished() - ? "" - : this.str.charAt(this.index); - }), - (t.currentStr = function () { - return this.isFinished() - ? "" - : this.str.substr(this.index); - }), - (t.previous = function () { - return this.str.charAt(this.index - 1); - }), - e - ); - })(); - e.exports = { - lex: function (e, t) { - return new C(e, t); - }, - TOKEN_STRING: a, - TOKEN_WHITESPACE: s, - TOKEN_DATA: l, - TOKEN_BLOCK_START: c, - TOKEN_BLOCK_END: u, - TOKEN_VARIABLE_START: p, - TOKEN_VARIABLE_END: d, - TOKEN_COMMENT: f, - TOKEN_LEFT_PAREN: h, - TOKEN_RIGHT_PAREN: m, - TOKEN_LEFT_BRACKET: g, - TOKEN_RIGHT_BRACKET: v, - TOKEN_LEFT_CURLY: b, - TOKEN_RIGHT_CURLY: y, - TOKEN_OPERATOR: w, - TOKEN_COMMA: E, - TOKEN_COLON: x, - TOKEN_TILDE: T, - TOKEN_PIPE: k, - TOKEN_INT: "int", - TOKEN_FLOAT: _, - TOKEN_BOOLEAN: A, - TOKEN_NONE: N, - TOKEN_SYMBOL: L, - TOKEN_SPECIAL: "special", - TOKEN_REGEX: O, - }; - }, - function (e, t, r) { - "use strict"; - function n(e, t) { - return ( - (n = - Object.setPrototypeOf || - function (e, t) { - return (e.__proto__ = t), e; - }), - n(e, t) - ); - } - var i = r(6), - o = r(19).PrecompiledLoader, - a = (function (e) { - var t, r; - function i(t, r) { - var n; - return ( - ((n = e.call(this) || this).baseURL = t || "."), - (r = r || {}), - (n.useCache = !!r.useCache), - (n.async = !!r.async), - n - ); - } - (r = e), - ((t = i).prototype = Object.create(r.prototype)), - (t.prototype.constructor = t), - n(t, r); - var o = i.prototype; - return ( - (o.resolve = function (e, t) { - throw new Error( - "relative templates not support in the browser yet" - ); - }), - (o.getSource = function (e, t) { - var r, - n = this, - i = this.useCache; - return ( - this.fetch(this.baseURL + "/" + e, function (o, a) { - if (o) - if (t) t(o.content); - else { - if (404 !== o.status) throw o.content; - r = null; - } - else - (r = { src: a, path: e, noCache: !i }), - n.emit("load", e, r), - t && t(null, r); - }), - r - ); - }), - (o.fetch = function (e, t) { - if ("undefined" == typeof window) - throw new Error( - "WebLoader can only by used in a browser" - ); - var r = new XMLHttpRequest(), - n = !0; - (r.onreadystatechange = function () { - 4 === r.readyState && - n && - ((n = !1), - 0 === r.status || 200 === r.status - ? t(null, r.responseText) - : t({ - status: r.status, - content: r.responseText, - })); - }), - (e += - (-1 === e.indexOf("?") ? "?" : "&") + - "s=" + - new Date().getTime()), - r.open("GET", e, this.async), - r.send(); - }), - i - ); - })(i); - e.exports = { WebLoader: a, PrecompiledLoader: o }; - }, - function (e, t, r) { - "use strict"; - var n, - i = r(0), - o = r(7), - a = o.Environment, - s = o.Template, - l = r(6), - c = r(10), - u = r(23), - p = r(5), - d = r(8), - f = r(9), - h = r(2), - m = r(3), - g = r(25); - function v(e, t) { - var r; - return ( - (t = t || {}), - i.isObject(e) && ((t = e), (e = null)), - c.FileSystemLoader - ? (r = new c.FileSystemLoader(e, { - watch: t.watch, - noCache: t.noCache, - })) - : c.WebLoader && - (r = new c.WebLoader(e, { - useCache: t.web && t.web.useCache, - async: t.web && t.web.async, - })), - (n = new a(r, t)), - t && t.express && n.express(t.express), - n - ); - } - e.exports = { - Environment: a, - Template: s, - Loader: l, - FileSystemLoader: c.FileSystemLoader, - NodeResolveLoader: c.NodeResolveLoader, - PrecompiledLoader: c.PrecompiledLoader, - WebLoader: c.WebLoader, - compiler: p, - parser: d, - lexer: f, - runtime: h, - lib: i, - nodes: m, - installJinjaCompat: g, - configure: v, - reset: function () { - n = void 0; - }, - compile: function (e, t, r, i) { - return n || v(), new s(e, t, r, i); - }, - render: function (e, t, r) { - return n || v(), n.render(e, t, r); - }, - renderString: function (e, t, r) { - return n || v(), n.renderString(e, t, r); - }, - precompile: u ? u.precompile : void 0, - precompileString: u ? u.precompileString : void 0, - }; - }, - function (e, t, r) { - "use strict"; - var n = r(13), - i = [], - o = [], - a = n.makeRequestCallFromTimer(function () { - if (o.length) throw o.shift(); - }); - function s(e) { - var t; - ((t = i.length ? i.pop() : new l()).task = e), n(t); - } - function l() { - this.task = null; - } - (e.exports = s), - (l.prototype.call = function () { - try { - this.task.call(); - } catch (e) { - s.onerror ? s.onerror(e) : (o.push(e), a()); - } finally { - (this.task = null), (i[i.length] = this); - } - }); - }, - function (e, t, r) { - "use strict"; - (function (t) { - function r(e) { - i.length || n(), (i[i.length] = e); - } - e.exports = r; - var n, - i = [], - o = 0; - function a() { - for (; o < i.length; ) { - var e = o; - if (((o += 1), i[e].call(), o > 1024)) { - for (var t = 0, r = i.length - o; t < r; t++) - i[t] = i[t + o]; - (i.length -= o), (o = 0); - } - } - (i.length = 0), (o = 0); - } - var s, - l, - c, - u = void 0 !== t ? t : self, - p = u.MutationObserver || u.WebKitMutationObserver; - function d(e) { - return function () { - var t = setTimeout(n, 0), - r = setInterval(n, 50); - function n() { - clearTimeout(t), clearInterval(r), e(); - } - }; - } - "function" == typeof p - ? ((s = 1), - (l = new p(a)), - (c = document.createTextNode("")), - l.observe(c, { characterData: !0 }), - (n = function () { - (s = -s), (c.data = s); - })) - : (n = d(a)), - (r.requestFlush = n), - (r.makeRequestCallFromTimer = d); - }).call(t, r(14)); - }, - function (e, t) { - var r; - r = (function () { - return this; - })(); - try { - r = r || Function("return this")() || (0, eval)("this"); - } catch (e) { - "object" == typeof window && (r = window); - } - e.exports = r; - }, - function (e, t, r) { - var n; - !(function (r) { - "use strict"; - var i = function () { - var e = Array.prototype.slice.call(arguments); - "function" == typeof e[0] && - e[0].apply(null, e.splice(1)); - }, - o = function (e) { - "function" == typeof setImmediate - ? setImmediate(e) - : "undefined" != typeof process && process.nextTick - ? process.nextTick(e) - : setTimeout(e, 0); - }, - a = - Array.isArray || - function (e) { - return ( - "[object Array]" === Object.prototype.toString.call(e) - ); - }, - s = function (e, t, r) { - var n = r ? o : i; - if (((t = t || function () {}), !a(e))) { - var s = new Error( - "First argument to waterfall must be an array of functions" - ); - return t(s); - } - if (!e.length) return t(); - var l = function (e) { - return function (r) { - if (r) t.apply(null, arguments), (t = function () {}); - else { - var i = Array.prototype.slice.call(arguments, 1), - o = e.next(); - o ? i.push(l(o)) : i.push(t), - n(function () { - e.apply(null, i); - }); - } - }; - }; - l( - (function (e) { - var t = function (r) { - var n = function () { - return ( - e.length && e[r].apply(null, arguments), - n.next() - ); - }; - return ( - (n.next = function () { - return r < e.length - 1 ? t(r + 1) : null; - }), - n - ); - }; - return t(0); - })(e) - )(); - }; - void 0 === - (n = function () { - return s; - }.apply(t, [])) || (e.exports = n); - })(); - }, - function (e, t, r) { - "use strict"; - var n, - i = "object" == typeof Reflect ? Reflect : null, - o = - i && "function" == typeof i.apply - ? i.apply - : function (e, t, r) { - return Function.prototype.apply.call(e, t, r); - }; - n = - i && "function" == typeof i.ownKeys - ? i.ownKeys - : Object.getOwnPropertySymbols - ? function (e) { - return Object.getOwnPropertyNames(e).concat( - Object.getOwnPropertySymbols(e) - ); - } - : function (e) { - return Object.getOwnPropertyNames(e); - }; - var a = - Number.isNaN || - function (e) { - return e != e; - }; - function s() { - s.init.call(this); - } - (e.exports = s), - (e.exports.once = function (e, t) { - return new Promise(function (r, n) { - function i() { - void 0 !== o && e.removeListener("error", o), - r([].slice.call(arguments)); - } - var o; - "error" !== t && - ((o = function (r) { - e.removeListener(t, i), n(r); - }), - e.once("error", o)), - e.once(t, i); - }); - }), - (s.EventEmitter = s), - (s.prototype._events = void 0), - (s.prototype._eventsCount = 0), - (s.prototype._maxListeners = void 0); - var l = 10; - function c(e) { - if ("function" != typeof e) - throw new TypeError( - 'The "listener" argument must be of type Function. Received type ' + - typeof e - ); - } - function u(e) { - return void 0 === e._maxListeners - ? s.defaultMaxListeners - : e._maxListeners; - } - function p(e, t, r, n) { - var i, o, a, s; - if ( - (c(r), - void 0 === (o = e._events) - ? ((o = e._events = Object.create(null)), - (e._eventsCount = 0)) - : (void 0 !== o.newListener && - (e.emit( - "newListener", - t, - r.listener ? r.listener : r - ), - (o = e._events)), - (a = o[t])), - void 0 === a) - ) - (a = o[t] = r), ++e._eventsCount; - else if ( - ("function" == typeof a - ? (a = o[t] = n ? [r, a] : [a, r]) - : n - ? a.unshift(r) - : a.push(r), - (i = u(e)) > 0 && a.length > i && !a.warned) - ) { - a.warned = !0; - var l = new Error( - "Possible EventEmitter memory leak detected. " + - a.length + - " " + - String(t) + - " listeners added. Use emitter.setMaxListeners() to increase limit" - ); - (l.name = "MaxListenersExceededWarning"), - (l.emitter = e), - (l.type = t), - (l.count = a.length), - (s = l), - console && console.warn && console.warn(s); - } - return e; - } - function d() { - if (!this.fired) - return ( - this.target.removeListener(this.type, this.wrapFn), - (this.fired = !0), - 0 === arguments.length - ? this.listener.call(this.target) - : this.listener.apply(this.target, arguments) - ); - } - function f(e, t, r) { - var n = { - fired: !1, - wrapFn: void 0, - target: e, - type: t, - listener: r, - }, - i = d.bind(n); - return (i.listener = r), (n.wrapFn = i), i; - } - function h(e, t, r) { - var n = e._events; - if (void 0 === n) return []; - var i = n[t]; - return void 0 === i - ? [] - : "function" == typeof i - ? r - ? [i.listener || i] - : [i] - : r - ? (function (e) { - for ( - var t = new Array(e.length), r = 0; - r < t.length; - ++r - ) - t[r] = e[r].listener || e[r]; - return t; - })(i) - : g(i, i.length); - } - function m(e) { - var t = this._events; - if (void 0 !== t) { - var r = t[e]; - if ("function" == typeof r) return 1; - if (void 0 !== r) return r.length; - } - return 0; - } - function g(e, t) { - for (var r = new Array(t), n = 0; n < t; ++n) r[n] = e[n]; - return r; - } - Object.defineProperty(s, "defaultMaxListeners", { - enumerable: !0, - get: function () { - return l; - }, - set: function (e) { - if ("number" != typeof e || e < 0 || a(e)) - throw new RangeError( - 'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + - e + - "." - ); - l = e; - }, - }), - (s.init = function () { - (void 0 !== this._events && - this._events !== Object.getPrototypeOf(this)._events) || - ((this._events = Object.create(null)), - (this._eventsCount = 0)), - (this._maxListeners = this._maxListeners || void 0); - }), - (s.prototype.setMaxListeners = function (e) { - if ("number" != typeof e || e < 0 || a(e)) - throw new RangeError( - 'The value of "n" is out of range. It must be a non-negative number. Received ' + - e + - "." - ); - return (this._maxListeners = e), this; - }), - (s.prototype.getMaxListeners = function () { - return u(this); - }), - (s.prototype.emit = function (e) { - for (var t = [], r = 1; r < arguments.length; r++) - t.push(arguments[r]); - var n = "error" === e, - i = this._events; - if (void 0 !== i) n = n && void 0 === i.error; - else if (!n) return !1; - if (n) { - var a; - if ((t.length > 0 && (a = t[0]), a instanceof Error)) - throw a; - var s = new Error( - "Unhandled error." + (a ? " (" + a.message + ")" : "") - ); - throw ((s.context = a), s); - } - var l = i[e]; - if (void 0 === l) return !1; - if ("function" == typeof l) o(l, this, t); - else { - var c = l.length, - u = g(l, c); - for (r = 0; r < c; ++r) o(u[r], this, t); - } - return !0; - }), - (s.prototype.addListener = function (e, t) { - return p(this, e, t, !1); - }), - (s.prototype.on = s.prototype.addListener), - (s.prototype.prependListener = function (e, t) { - return p(this, e, t, !0); - }), - (s.prototype.once = function (e, t) { - return c(t), this.on(e, f(this, e, t)), this; - }), - (s.prototype.prependOnceListener = function (e, t) { - return c(t), this.prependListener(e, f(this, e, t)), this; - }), - (s.prototype.removeListener = function (e, t) { - var r, n, i, o, a; - if ((c(t), void 0 === (n = this._events))) return this; - if (void 0 === (r = n[e])) return this; - if (r === t || r.listener === t) - 0 == --this._eventsCount - ? (this._events = Object.create(null)) - : (delete n[e], - n.removeListener && - this.emit("removeListener", e, r.listener || t)); - else if ("function" != typeof r) { - for (i = -1, o = r.length - 1; o >= 0; o--) - if (r[o] === t || r[o].listener === t) { - (a = r[o].listener), (i = o); - break; - } - if (i < 0) return this; - 0 === i - ? r.shift() - : (function (e, t) { - for (; t + 1 < e.length; t++) e[t] = e[t + 1]; - e.pop(); - })(r, i), - 1 === r.length && (n[e] = r[0]), - void 0 !== n.removeListener && - this.emit("removeListener", e, a || t); - } - return this; - }), - (s.prototype.off = s.prototype.removeListener), - (s.prototype.removeAllListeners = function (e) { - var t, r, n; - if (void 0 === (r = this._events)) return this; - if (void 0 === r.removeListener) - return ( - 0 === arguments.length - ? ((this._events = Object.create(null)), - (this._eventsCount = 0)) - : void 0 !== r[e] && - (0 == --this._eventsCount - ? (this._events = Object.create(null)) - : delete r[e]), - this - ); - if (0 === arguments.length) { - var i, - o = Object.keys(r); - for (n = 0; n < o.length; ++n) - "removeListener" !== (i = o[n]) && - this.removeAllListeners(i); - return ( - this.removeAllListeners("removeListener"), - (this._events = Object.create(null)), - (this._eventsCount = 0), - this - ); - } - if ("function" == typeof (t = r[e])) - this.removeListener(e, t); - else if (void 0 !== t) - for (n = t.length - 1; n >= 0; n--) - this.removeListener(e, t[n]); - return this; - }), - (s.prototype.listeners = function (e) { - return h(this, e, !0); - }), - (s.prototype.rawListeners = function (e) { - return h(this, e, !1); - }), - (s.listenerCount = function (e, t) { - return "function" == typeof e.listenerCount - ? e.listenerCount(t) - : m.call(e, t); - }), - (s.prototype.listenerCount = m), - (s.prototype.eventNames = function () { - return this._eventsCount > 0 ? n(this._events) : []; - }); - }, - function (e, t, r) { - "use strict"; - var n = r(3), - i = r(0), - o = 0; - function a() { - return "hole_" + o++; - } - function s(e, t) { - for (var r = null, n = 0; n < e.length; n++) { - var i = t(e[n]); - i !== e[n] && (r || (r = e.slice()), (r[n] = i)); - } - return r || e; - } - function l(e, t, r) { - if (!(e instanceof n.Node)) return e; - if (!r) { - var i = t(e); - if (i && i !== e) return i; - } - if (e instanceof n.NodeList) { - var o = s(e.children, function (e) { - return l(e, t, r); - }); - o !== e.children && - (e = new n[e.typename](e.lineno, e.colno, o)); - } else if (e instanceof n.CallExtension) { - var a = l(e.args, t, r), - c = s(e.contentArgs, function (e) { - return l(e, t, r); - }); - (a === e.args && c === e.contentArgs) || - (e = new n[e.typename](e.extName, e.prop, a, c)); - } else { - var u = e.fields.map(function (t) { - return e[t]; - }), - p = s(u, function (e) { - return l(e, t, r); - }); - p !== u && - ((e = new n[e.typename](e.lineno, e.colno)), - p.forEach(function (t, r) { - e[e.fields[r]] = t; - })); - } - return (r && t(e)) || e; - } - function c(e, t) { - return l(e, t, !0); - } - function u(e, t, r) { - var o = [], - s = c(r ? e[r] : e, function (e) { - var r; - return e instanceof n.Block - ? e - : (((e instanceof n.Filter && - -1 !== i.indexOf(t, e.name.value)) || - e instanceof n.CallExtensionAsync) && - ((r = new n.Symbol(e.lineno, e.colno, a())), - o.push( - new n.FilterAsync( - e.lineno, - e.colno, - e.name, - e.args, - r - ) - )), - r); - }); - return ( - r ? (e[r] = s) : (e = s), - o.length - ? (o.push(e), new n.NodeList(e.lineno, e.colno, o)) - : e - ); - } - e.exports = { - transform: function (e, t) { - return (function (e, t) { - return (function (e) { - return c(e, function (e) { - if (e instanceof n.If || e instanceof n.For) { - var t = !1; - if ( - (l(e, function (e) { - if ( - e instanceof n.FilterAsync || - e instanceof n.IfAsync || - e instanceof n.AsyncEach || - e instanceof n.AsyncAll || - e instanceof n.CallExtensionAsync - ) - return (t = !0), e; - }), - t) - ) { - if (e instanceof n.If) - return new n.IfAsync( - e.lineno, - e.colno, - e.cond, - e.body, - e.else_ - ); - if ( - e instanceof n.For && - !(e instanceof n.AsyncAll) - ) - return new n.AsyncEach( - e.lineno, - e.colno, - e.arr, - e.name, - e.body, - e.else_ - ); - } - } - }); - })( - (function (e) { - return l(e, function (e) { - if (e instanceof n.Block) { - var t = !1, - r = a(); - (e.body = l(e.body, function (e) { - if ( - e instanceof n.FunCall && - "super" === e.name.value - ) - return ( - (t = !0), new n.Symbol(e.lineno, e.colno, r) - ); - })), - t && - e.body.children.unshift( - new n.Super( - 0, - 0, - e.name, - new n.Symbol(0, 0, r) - ) - ); - } - }); - })( - (function (e, t) { - return c(e, function (e) { - return e instanceof n.Output - ? u(e, t) - : e instanceof n.Set - ? u(e, t, "value") - : e instanceof n.For - ? u(e, t, "arr") - : e instanceof n.If - ? u(e, t, "cond") - : e instanceof n.CallExtension - ? u(e, t, "args") - : void 0; - }); - })(e, t) - ) - ); - })(e, t || []); - }, - }; - }, - function (e, t, r) { - "use strict"; - var n = r(0), - i = r(2); - function o(e, t) { - return null == e || !1 === e ? t : e; - } - function a(e) { - return e != e; - } - function s(e) { - var t = (e = o(e, "")).toLowerCase(); - return i.copySafeness( - e, - t.charAt(0).toUpperCase() + t.slice(1) - ); - } - function l(e) { - if (n.isString(e)) return e.split(""); - if (n.isObject(e)) - return n._entries(e || {}).map(function (e) { - return { key: e[0], value: e[1] }; - }); - if (n.isArray(e)) return e; - throw new n.TemplateError("list filter: type not iterable"); - } - function c(e) { - return function (t, r, i) { - void 0 === r && (r = "truthy"); - var o = this, - a = o.env.getTest(r); - return n.toArray(t).filter(function (t) { - return a.call(o, t, i) === e; - }); - }; - } - function u(e) { - return i.copySafeness(e, e.replace(/^\s*|\s*$/g, "")); - } - ((t = e.exports = {}).abs = Math.abs), - (t.batch = function (e, t, r) { - var n, - i = [], - o = []; - for (n = 0; n < e.length; n++) - n % t == 0 && o.length && (i.push(o), (o = [])), - o.push(e[n]); - if (o.length) { - if (r) for (n = o.length; n < t; n++) o.push(r); - i.push(o); - } - return i; - }), - (t.capitalize = s), - (t.center = function (e, t) { - if (((t = t || 80), (e = o(e, "")).length >= t)) return e; - var r = t - e.length, - a = n.repeat(" ", r / 2 - (r % 2)), - s = n.repeat(" ", r / 2); - return i.copySafeness(e, a + e + s); - }), - (t.default = function (e, t, r) { - return r ? e || t : void 0 !== e ? e : t; - }), - (t.dictsort = function (e, t, r) { - if (!n.isObject(e)) - throw new n.TemplateError( - "dictsort filter: val must be an object" - ); - var i, - o = []; - for (var a in e) o.push([a, e[a]]); - if (void 0 === r || "key" === r) i = 0; - else { - if ("value" !== r) - throw new n.TemplateError( - "dictsort filter: You can only sort by either key or value" - ); - i = 1; - } - return ( - o.sort(function (e, r) { - var o = e[i], - a = r[i]; - return ( - t || - (n.isString(o) && (o = o.toUpperCase()), - n.isString(a) && (a = a.toUpperCase())), - o > a ? 1 : o === a ? 0 : -1 - ); - }), - o - ); - }), - (t.dump = function (e, t) { - return JSON.stringify(e, null, t); - }), - (t.escape = function (e) { - return e instanceof i.SafeString - ? e - : ((e = null == e ? "" : e), - i.markSafe(n.escape(e.toString()))); - }), - (t.safe = function (e) { - return e instanceof i.SafeString - ? e - : ((e = null == e ? "" : e), i.markSafe(e.toString())); - }), - (t.first = function (e) { - return e[0]; - }), - (t.forceescape = function (e) { - return ( - (e = null == e ? "" : e), - i.markSafe(n.escape(e.toString())) - ); - }), - (t.groupby = function (e, t) { - return n.groupBy(e, t, this.env.opts.throwOnUndefined); - }), - (t.indent = function (e, t, r) { - if ("" === (e = o(e, ""))) return ""; - t = t || 4; - var a = e.split("\n"), - s = n.repeat(" ", t), - l = a - .map(function (e, t) { - return 0 !== t || r ? "" + s + e : e; - }) - .join("\n"); - return i.copySafeness(e, l); - }), - (t.join = function (e, t, r) { - return ( - (t = t || ""), - r && - (e = n.map(e, function (e) { - return e[r]; - })), - e.join(t) - ); - }), - (t.last = function (e) { - return e[e.length - 1]; - }), - (t.length = function (e) { - var t = o(e, ""); - return void 0 !== t - ? ("function" == typeof Map && t instanceof Map) || - ("function" == typeof Set && t instanceof Set) - ? t.size - : !n.isObject(t) || t instanceof i.SafeString - ? t.length - : n.keys(t).length - : 0; - }), - (t.list = l), - (t.lower = function (e) { - return (e = o(e, "")).toLowerCase(); - }), - (t.nl2br = function (e) { - return null == e - ? "" - : i.copySafeness(e, e.replace(/\r\n|\n/g, "
\n")); - }), - (t.random = function (e) { - return e[Math.floor(Math.random() * e.length)]; - }), - (t.reject = c(!1)), - (t.rejectattr = function (e, t) { - return e.filter(function (e) { - return !e[t]; - }); - }), - (t.select = c(!0)), - (t.selectattr = function (e, t) { - return e.filter(function (e) { - return !!e[t]; - }); - }), - (t.replace = function (e, t, r, n) { - var o = e; - if (t instanceof RegExp) return e.replace(t, r); - void 0 === n && (n = -1); - var a = ""; - if ("number" == typeof t) t = "" + t; - else if ("string" != typeof t) return e; - if ( - ("number" == typeof e && (e = "" + e), - "string" != typeof e && !(e instanceof i.SafeString)) - ) - return e; - if ("" === t) - return ( - (a = r + e.split("").join(r) + r), i.copySafeness(e, a) - ); - var s = e.indexOf(t); - if (0 === n || -1 === s) return e; - for (var l = 0, c = 0; s > -1 && (-1 === n || c < n); ) - (a += e.substring(l, s) + r), - (l = s + t.length), - c++, - (s = e.indexOf(t, l)); - return ( - l < e.length && (a += e.substring(l)), - i.copySafeness(o, a) - ); - }), - (t.reverse = function (e) { - var t; - return ( - (t = n.isString(e) - ? l(e) - : n.map(e, function (e) { - return e; - })).reverse(), - n.isString(e) ? i.copySafeness(e, t.join("")) : t - ); - }), - (t.round = function (e, t, r) { - t = t || 0; - var n = Math.pow(10, t); - return ( - ("ceil" === r - ? Math.ceil - : "floor" === r - ? Math.floor - : Math.round)(e * n) / n - ); - }), - (t.slice = function (e, t, r) { - for ( - var n = Math.floor(e.length / t), - i = e.length % t, - o = [], - a = 0, - s = 0; - s < t; - s++ - ) { - var l = a + s * n; - s < i && a++; - var c = a + (s + 1) * n, - u = e.slice(l, c); - r && s >= i && u.push(r), o.push(u); - } - return o; - }), - (t.sum = function (e, t, r) { - return ( - void 0 === r && (r = 0), - t && - (e = n.map(e, function (e) { - return e[t]; - })), - r + - e.reduce(function (e, t) { - return e + t; - }, 0) - ); - }), - (t.sort = i.makeMacro( - ["value", "reverse", "case_sensitive", "attribute"], - [], - function (e, t, r, i) { - var o = this, - a = n.map(e, function (e) { - return e; - }), - s = n.getAttrGetter(i); - return ( - a.sort(function (e, a) { - var l = i ? s(e) : e, - c = i ? s(a) : a; - if ( - o.env.opts.throwOnUndefined && - i && - (void 0 === l || void 0 === c) - ) - throw new TypeError( - 'sort: attribute "' + - i + - '" resolved to undefined' - ); - return ( - !r && - n.isString(l) && - n.isString(c) && - ((l = l.toLowerCase()), (c = c.toLowerCase())), - l < c ? (t ? 1 : -1) : l > c ? (t ? -1 : 1) : 0 - ); - }), - a - ); - } - )), - (t.string = function (e) { - return i.copySafeness(e, e); - }), - (t.striptags = function (e, t) { - var r, - n = u( - (e = o(e, "")).replace( - /<\/?([a-z][a-z0-9]*)\b[^>]*>|/gi, - "" - ) - ); - return ( - (r = t - ? n - .replace(/^ +| +$/gm, "") - .replace(/ +/g, " ") - .replace(/(\r\n)/g, "\n") - .replace(/\n\n\n+/g, "\n\n") - : n.replace(/\s+/gi, " ")), - i.copySafeness(e, r) - ); - }), - (t.title = function (e) { - var t = (e = o(e, "")).split(" ").map(function (e) { - return s(e); - }); - return i.copySafeness(e, t.join(" ")); - }), - (t.trim = u), - (t.truncate = function (e, t, r, n) { - var a = e; - if (((t = t || 255), (e = o(e, "")).length <= t)) return e; - if (r) e = e.substring(0, t); - else { - var s = e.lastIndexOf(" ", t); - -1 === s && (s = t), (e = e.substring(0, s)); - } - return (e += null != n ? n : "..."), i.copySafeness(a, e); - }), - (t.upper = function (e) { - return (e = o(e, "")).toUpperCase(); - }), - (t.urlencode = function (e) { - var t = encodeURIComponent; - return n.isString(e) - ? t(e) - : (n.isArray(e) ? e : n._entries(e)) - .map(function (e) { - var r = e[0], - n = e[1]; - return t(r) + "=" + t(n); - }) - .join("&"); - }); - var p = /^(?:\(|<|<)?(.*?)(?:\.|,|\)|\n|>)?$/, - d = - /^[\w.!#$%&'*+\-\/=?\^`{|}~]+@[a-z\d\-]+(\.[a-z\d\-]+)+$/i, - f = /^https?:\/\/.*$/, - h = /^www\./, - m = /\.(?:org|net|com)(?:\:|\/|$)/; - (t.urlize = function (e, t, r) { - a(t) && (t = 1 / 0); - var n = !0 === r ? ' rel="nofollow"' : ""; - return e - .split(/(\s+)/) - .filter(function (e) { - return e && e.length; - }) - .map(function (e) { - var r = e.match(p), - i = r ? r[1] : e, - o = i.substr(0, t); - return f.test(i) - ? '" + o + "" - : h.test(i) - ? '" + o + "" - : d.test(i) - ? '' + i + "" - : m.test(i) - ? '" + o + "" - : e; - }) - .join(""); - }), - (t.wordcount = function (e) { - var t = (e = o(e, "")) ? e.match(/\w+/g) : null; - return t ? t.length : null; - }), - (t.float = function (e, t) { - var r = parseFloat(e); - return a(r) ? t : r; - }); - var g = i.makeMacro( - ["value", "default", "base"], - [], - function (e, t, r) { - void 0 === r && (r = 10); - var n = parseInt(e, r); - return a(n) ? t : n; - } - ); - (t.int = g), (t.d = t.default), (t.e = t.escape); - }, - function (e, t, r) { - "use strict"; - function n(e, t) { - return ( - (n = - Object.setPrototypeOf || - function (e, t) { - return (e.__proto__ = t), e; - }), - n(e, t) - ); - } - var i = (function (e) { - var t, r; - function i(t) { - var r; - return ( - ((r = e.call(this) || this).precompiled = t || {}), r - ); - } - return ( - (r = e), - ((t = i).prototype = Object.create(r.prototype)), - (t.prototype.constructor = t), - n(t, r), - (i.prototype.getSource = function (e) { - return this.precompiled[e] - ? { - src: { type: "code", obj: this.precompiled[e] }, - path: e, - } - : null; - }), - i - ); - })(r(6)); - e.exports = { PrecompiledLoader: i }; - }, - function (e, t, r) { - "use strict"; - var n = r(2).SafeString; - (t.callable = function (e) { - return "function" == typeof e; - }), - (t.defined = function (e) { - return void 0 !== e; - }), - (t.divisibleby = function (e, t) { - return e % t == 0; - }), - (t.escaped = function (e) { - return e instanceof n; - }), - (t.equalto = function (e, t) { - return e === t; - }), - (t.eq = t.equalto), - (t.sameas = t.equalto), - (t.even = function (e) { - return e % 2 == 0; - }), - (t.falsy = function (e) { - return !e; - }), - (t.ge = function (e, t) { - return e >= t; - }), - (t.greaterthan = function (e, t) { - return e > t; - }), - (t.gt = t.greaterthan), - (t.le = function (e, t) { - return e <= t; - }), - (t.lessthan = function (e, t) { - return e < t; - }), - (t.lt = t.lessthan), - (t.lower = function (e) { - return e.toLowerCase() === e; - }), - (t.ne = function (e, t) { - return e !== t; - }), - (t.null = function (e) { - return null === e; - }), - (t.number = function (e) { - return "number" == typeof e; - }), - (t.odd = function (e) { - return e % 2 == 1; - }), - (t.string = function (e) { - return "string" == typeof e; - }), - (t.truthy = function (e) { - return !!e; - }), - (t.undefined = function (e) { - return void 0 === e; - }), - (t.upper = function (e) { - return e.toUpperCase() === e; - }), - (t.iterable = function (e) { - return "undefined" != typeof Symbol - ? !!e[Symbol.iterator] - : Array.isArray(e) || "string" == typeof e; - }), - (t.mapping = function (e) { - var t = - null != e && "object" == typeof e && !Array.isArray(e); - return Set ? t && !(e instanceof Set) : t; - }); - }, - function (e, t, r) { - "use strict"; - e.exports = function () { - return { - range: function (e, t, r) { - void 0 === t ? ((t = e), (e = 0), (r = 1)) : r || (r = 1); - var n = []; - if (r > 0) for (var i = e; i < t; i += r) n.push(i); - else for (var o = e; o > t; o += r) n.push(o); - return n; - }, - cycler: function () { - return ( - (e = Array.prototype.slice.call(arguments)), - (t = -1), - { - current: null, - reset: function () { - (t = -1), (this.current = null); - }, - next: function () { - return ( - ++t >= e.length && (t = 0), - (this.current = e[t]), - this.current - ); - }, - } - ); - var e, t; - }, - joiner: function (e) { - return (function (e) { - e = e || ","; - var t = !0; - return function () { - var r = t ? "" : e; - return (t = !1), r; - }; - })(e); - }, - }; - }; - }, - function (e, t, r) { - var n = r(4); - e.exports = function (e, t) { - function r(e, t) { - if ( - ((this.name = e), - (this.path = e), - (this.defaultEngine = t.defaultEngine), - (this.ext = n.extname(e)), - !this.ext && !this.defaultEngine) - ) - throw new Error( - "No default engine was specified and no extension was provided." - ); - this.ext || - (this.name += this.ext = - ("." !== this.defaultEngine[0] ? "." : "") + - this.defaultEngine); - } - return ( - (r.prototype.render = function (t, r) { - e.render(this.name, t, r); - }), - t.set("view", r), - t.set("nunjucksEnv", e), - e - ); - }; - }, - function (e, t, r) { - "use strict"; - var n = r(4), - i = r(4), - o = r(0)._prettifyError, - a = r(5), - s = r(7).Environment, - l = r(24); - function c(e, t) { - return ( - !!Array.isArray(t) && - t.some(function (t) { - return e.match(t); - }) - ); - } - function u(e, t) { - (t = t || {}).isString = !0; - var r = t.env || new s([]), - n = t.wrapper || l; - if (!t.name) - throw new Error( - 'the "name" option is required when compiling a string' - ); - return n([p(e, t.name, r)], t); - } - function p(e, t, r) { - var n, - i = (r = r || new s([])).asyncFilters, - l = r.extensionsList; - t = t.replace(/\\/g, "/"); - try { - n = a.compile(e, i, l, t, r.opts); - } catch (e) { - throw o(t, !1, e); - } - return { name: t, template: n }; - } - e.exports = { - precompile: function (e, t) { - var r = (t = t || {}).env || new s([]), - o = t.wrapper || l; - if (t.isString) return u(e, t); - var a = n.existsSync(e) && n.statSync(e), - d = [], - f = []; - if (a.isFile()) - d.push(p(n.readFileSync(e, "utf-8"), t.name || e, r)); - else if (a.isDirectory()) { - !(function r(o) { - n.readdirSync(o).forEach(function (a) { - var s = i.join(o, a), - l = s.substr(i.join(e, "/").length), - u = n.statSync(s); - u && u.isDirectory() - ? c((l += "/"), t.exclude) || r(s) - : c(l, t.include) && f.push(s); - }); - })(e); - for (var h = 0; h < f.length; h++) { - var m = f[h].replace(i.join(e, "/"), ""); - try { - d.push(p(n.readFileSync(f[h], "utf-8"), m, r)); - } catch (e) { - if (!t.force) throw e; - console.error(e); - } - } - } - return o(d, t); - }, - precompileString: u, - }; - }, - function (e, t, r) { - "use strict"; - e.exports = function (e, t) { - var r = ""; - t = t || {}; - for (var n = 0; n < e.length; n++) { - var i = JSON.stringify(e[n].name); - (r += - "(function() {(window.nunjucksPrecompiled = window.nunjucksPrecompiled || {})[" + - i + - "] = (function() {\n" + - e[n].template + - "\n})();\n"), - t.asFunction && - (r += - "return function(ctx, cb) { return nunjucks.render(" + - i + - ", ctx, cb); }\n"), - (r += "})();\n"); - } - return r; - }; - }, - function (e, t, r) { - e.exports = function () { - "use strict"; - var e, - t, - r = this.runtime, - n = this.lib, - i = this.compiler.Compiler, - o = this.parser.Parser, - a = this.nodes, - s = this.lexer, - l = r.contextOrFrameLookup, - c = r.memberLookup; - function u(e) { - return { index: e.index, lineno: e.lineno, colno: e.colno }; - } - if ( - (i && (e = i.prototype.assertType), - o && (t = o.prototype.parseAggregate), - (r.contextOrFrameLookup = function (e, t, r) { - var n = l.apply(this, arguments); - if (void 0 !== n) return n; - switch (r) { - case "True": - return !0; - case "False": - return !1; - case "None": - return null; - default: - return; - } - }), - a && i && o) - ) { - var p = a.Node.extend("Slice", { - fields: ["start", "stop", "step"], - init: function (e, t, r, n, i) { - (r = r || new a.Literal(e, t, null)), - (n = n || new a.Literal(e, t, null)), - (i = i || new a.Literal(e, t, 1)), - this.parent(e, t, r, n, i); - }, - }); - (i.prototype.assertType = function (t) { - t instanceof p || e.apply(this, arguments); - }), - (i.prototype.compileSlice = function (e, t) { - this._emit("("), - this._compileExpression(e.start, t), - this._emit("),("), - this._compileExpression(e.stop, t), - this._emit("),("), - this._compileExpression(e.step, t), - this._emit(")"); - }), - (o.prototype.parseAggregate = function () { - var e = this, - r = u(this.tokens); - r.colno--, r.index--; - try { - return t.apply(this); - } catch (t) { - var i = u(this.tokens), - o = function () { - return n._assign(e.tokens, i), t; - }; - n._assign(this.tokens, r), (this.peeked = !1); - var l = this.peekToken(); - if (l.type !== s.TOKEN_LEFT_BRACKET) throw o(); - this.nextToken(); - for ( - var c = new p(l.lineno, l.colno), d = !1, f = 0; - f <= c.fields.length && - !this.skip(s.TOKEN_RIGHT_BRACKET); - f++ - ) { - if (f === c.fields.length) { - if (!d) break; - this.fail( - "parseSlice: too many slice components", - l.lineno, - l.colno - ); - } - this.skip(s.TOKEN_COLON) - ? (d = !0) - : ((c[c.fields[f]] = this.parseExpression()), - (d = this.skip(s.TOKEN_COLON) || d)); - } - if (!d) throw o(); - return new a.Array(l.lineno, l.colno, [c]); - } - }); - } - function d(e, t, n, i) { - (e = e || []), - null === t && (t = i < 0 ? e.length - 1 : 0), - null === n - ? (n = i < 0 ? -1 : e.length) - : n < 0 && (n += e.length), - t < 0 && (t += e.length); - for ( - var o = [], a = t; - !( - a < 0 || - a > e.length || - (i > 0 && a >= n) || - (i < 0 && a <= n) - ); - a += i - ) - o.push(r.memberLookup(e, a)); - return o; - } - function f(e, t) { - return Object.prototype.hasOwnProperty.call(e, t); - } - var h = { - pop: function (e) { - if (void 0 === e) return this.pop(); - if (e >= this.length || e < 0) - throw new Error("KeyError"); - return this.splice(e, 1); - }, - append: function (e) { - return this.push(e); - }, - remove: function (e) { - for (var t = 0; t < this.length; t++) - if (this[t] === e) return this.splice(t, 1); - throw new Error("ValueError"); - }, - count: function (e) { - for (var t = 0, r = 0; r < this.length; r++) - this[r] === e && t++; - return t; - }, - index: function (e) { - var t; - if (-1 === (t = this.indexOf(e))) - throw new Error("ValueError"); - return t; - }, - find: function (e) { - return this.indexOf(e); - }, - insert: function (e, t) { - return this.splice(e, 0, t); - }, - }, - m = { - items: function () { - return n._entries(this); - }, - values: function () { - return n._values(this); - }, - keys: function () { - return n.keys(this); - }, - get: function (e, t) { - var r = this[e]; - return void 0 === r && (r = t), r; - }, - has_key: function (e) { - return f(this, e); - }, - pop: function (e, t) { - var r = this[e]; - if (void 0 === r && void 0 !== t) r = t; - else { - if (void 0 === r) throw new Error("KeyError"); - delete this[e]; - } - return r; - }, - popitem: function () { - var e = n.keys(this); - if (!e.length) throw new Error("KeyError"); - var t = e[0], - r = this[t]; - return delete this[t], [t, r]; - }, - setdefault: function (e, t) { - return ( - void 0 === t && (t = null), - e in this || (this[e] = t), - this[e] - ); - }, - update: function (e) { - return n._assign(this, e), null; - }, - }; - return ( - (m.iteritems = m.items), - (m.itervalues = m.values), - (m.iterkeys = m.keys), - (r.memberLookup = function (e, t, r) { - return 4 === arguments.length - ? d.apply(this, arguments) - : ((e = e || {}), - n.isArray(e) && f(h, t) - ? h[t].bind(e) - : n.isObject(e) && f(m, t) - ? m[t].bind(e) - : c.apply(this, arguments)); - }), - function () { - (r.contextOrFrameLookup = l), - (r.memberLookup = c), - i && (i.prototype.assertType = e), - o && (o.prototype.parseAggregate = t); - } - ); - }; - }, - ]); - }), - (e.exports = t()); - }, - 202: (e, t, r) => { - "use strict"; - var n = r(3700), - i = /[\/\?<>\\:\*\|"]/g, - o = /[\x00-\x1f\x80-\x9f]/g, - a = /^\.+$/, - s = /^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i, - l = /[\. ]+$/; - function c(e, t) { - if ("string" != typeof e) throw new Error("Input must be string"); - var r = e - .replace(i, t) - .replace(o, t) - .replace(a, t) - .replace(s, t) - .replace(l, t); - return n(r, 255); - } - e.exports = function (e, t) { - var r = (t && t.replacement) || "", - n = c(e, r); - return "" === r ? n : c(n, ""); - }; - }, - 9328: (e) => { - "use strict"; - var t = { decodeValues: !0, map: !1, silent: !1 }; - function r(e) { - return "string" == typeof e && !!e.trim(); - } - function n(e, n) { - var i = e.split(";").filter(r), - o = i.shift().split("="), - a = o.shift(), - s = o.join("="); - n = n ? Object.assign({}, t, n) : t; - try { - s = n.decodeValues ? decodeURIComponent(s) : s; - } catch (e) { - console.error( - "set-cookie-parser encountered an error while decoding a cookie with value '" + - s + - "'. Set options.decodeValues to false to disable this feature.", - e - ); - } - var l = { name: a, value: s }; - return ( - i.forEach(function (e) { - var t = e.split("="), - r = t.shift().trimLeft().toLowerCase(), - n = t.join("="); - "expires" === r - ? (l.expires = new Date(n)) - : "max-age" === r - ? (l.maxAge = parseInt(n, 10)) - : "secure" === r - ? (l.secure = !0) - : "httponly" === r - ? (l.httpOnly = !0) - : "samesite" === r - ? (l.sameSite = n) - : (l[r] = n); - }), - l - ); - } - function i(e, i) { - if (((i = i ? Object.assign({}, t, i) : t), !e)) - return i.map ? {} : []; - if (e.headers && e.headers["set-cookie"]) e = e.headers["set-cookie"]; - else if (e.headers) { - var o = - e.headers[ - Object.keys(e.headers).find(function (e) { - return "set-cookie" === e.toLowerCase(); - }) - ]; - o || - !e.headers.cookie || - i.silent || - console.warn( - "Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning." - ), - (e = o); - } - return ( - Array.isArray(e) || (e = [e]), - (i = i ? Object.assign({}, t, i) : t).map - ? e.filter(r).reduce(function (e, t) { - var r = n(t, i); - return (e[r.name] = r), e; - }, {}) - : e.filter(r).map(function (e) { - return n(e, i); - }) - ); - } - (e.exports = i), - (e.exports.parse = i), - (e.exports.parseString = n), - (e.exports.splitCookiesString = function (e) { - if (Array.isArray(e)) return e; - if ("string" != typeof e) return []; - var t, - r, - n, - i, - o, - a = [], - s = 0; - function l() { - for (; s < e.length && /\s/.test(e.charAt(s)); ) s += 1; - return s < e.length; - } - for (; s < e.length; ) { - for (t = s, o = !1; l(); ) - if ("," === (r = e.charAt(s))) { - for ( - n = s, s += 1, l(), i = s; - s < e.length && - "=" !== (r = e.charAt(s)) && - ";" !== r && - "," !== r; - - ) - s += 1; - s < e.length && "=" === e.charAt(s) - ? ((o = !0), (s = i), a.push(e.substring(t, n)), (t = s)) - : (s = n + 1); - } else s += 1; - (!o || s >= e.length) && a.push(e.substring(t, e.length)); - } - return a; - }); - }, - 3700: (e, t, r) => { - "use strict"; - var n = r(1156), - i = r(793); - e.exports = n.bind(null, i); - }, - 1156: (e) => { - "use strict"; - function t(e) { - return e >= 55296 && e <= 56319; - } - function r(e) { - return e >= 56320 && e <= 57343; - } - e.exports = function (e, n, i) { - if ("string" != typeof n) throw new Error("Input must be string"); - for (var o, a, s = n.length, l = 0, c = 0; c < s; c += 1) { - if ( - ((o = n.charCodeAt(c)), - (a = n[c]), - t(o) && r(n.charCodeAt(c + 1)) && (a += n[(c += 1)]), - (l += e(a)) === i) - ) - return n.slice(0, c + 1); - if (l > i) return n.slice(0, c - a.length + 1); - } - return n; - }; - }, - 793: (e) => { - "use strict"; - function t(e) { - return e >= 55296 && e <= 56319; - } - function r(e) { - return e >= 56320 && e <= 57343; - } - e.exports = function (e) { - if ("string" != typeof e) throw new Error("Input must be string"); - for (var n = e.length, i = 0, o = null, a = null, s = 0; s < n; s++) - r((o = e.charCodeAt(s))) - ? null != a && t(a) - ? (i += 1) - : (i += 3) - : o <= 127 - ? (i += 1) - : o >= 128 && o <= 2047 - ? (i += 2) - : o >= 2048 && o <= 65535 && (i += 3), - (a = o); - return i; - }; - }, - 5840: (e) => { - "use strict"; - e.exports = require("electron"); - }, - 3600: (e) => { - "use strict"; - e.exports = JSON.parse( - '{"0":65533,"128":8364,"130":8218,"131":402,"132":8222,"133":8230,"134":8224,"135":8225,"136":710,"137":8240,"138":352,"139":8249,"140":338,"142":381,"145":8216,"146":8217,"147":8220,"148":8221,"149":8226,"150":8211,"151":8212,"152":732,"153":8482,"154":353,"155":8250,"156":339,"158":382,"159":376}' - ); - }, - 9323: (e) => { - "use strict"; - e.exports = JSON.parse( - '{"Aacute":"Á","aacute":"á","Abreve":"Ă","abreve":"ă","ac":"∾","acd":"∿","acE":"∾̳","Acirc":"Â","acirc":"â","acute":"´","Acy":"А","acy":"а","AElig":"Æ","aelig":"æ","af":"⁡","Afr":"𝔄","afr":"𝔞","Agrave":"À","agrave":"à","alefsym":"ℵ","aleph":"ℵ","Alpha":"Α","alpha":"α","Amacr":"Ā","amacr":"ā","amalg":"⨿","amp":"&","AMP":"&","andand":"⩕","And":"⩓","and":"∧","andd":"⩜","andslope":"⩘","andv":"⩚","ang":"∠","ange":"⦤","angle":"∠","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"⦭","angmsdag":"⦮","angmsdah":"⦯","angmsd":"∡","angrt":"∟","angrtvb":"⊾","angrtvbd":"⦝","angsph":"∢","angst":"Å","angzarr":"⍼","Aogon":"Ą","aogon":"ą","Aopf":"𝔸","aopf":"𝕒","apacir":"⩯","ap":"≈","apE":"⩰","ape":"≊","apid":"≋","apos":"\'","ApplyFunction":"⁡","approx":"≈","approxeq":"≊","Aring":"Å","aring":"å","Ascr":"𝒜","ascr":"𝒶","Assign":"≔","ast":"*","asymp":"≈","asympeq":"≍","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","awconint":"∳","awint":"⨑","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"⋍","Backslash":"∖","Barv":"⫧","barvee":"⊽","barwed":"⌅","Barwed":"⌆","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","Bcy":"Б","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","Because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","Bernoullis":"ℬ","Beta":"Β","beta":"β","beth":"ℶ","between":"≬","Bfr":"𝔅","bfr":"𝔟","bigcap":"⋂","bigcirc":"◯","bigcup":"⋃","bigodot":"⨀","bigoplus":"⨁","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"▽","bigtriangleup":"△","biguplus":"⨄","bigvee":"⋁","bigwedge":"⋀","bkarow":"⤍","blacklozenge":"⧫","blacksquare":"▪","blacktriangle":"▴","blacktriangledown":"▾","blacktriangleleft":"◂","blacktriangleright":"▸","blank":"␣","blk12":"▒","blk14":"░","blk34":"▓","block":"█","bne":"=⃥","bnequiv":"≡⃥","bNot":"⫭","bnot":"⌐","Bopf":"𝔹","bopf":"𝕓","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxbox":"⧉","boxdl":"┐","boxdL":"╕","boxDl":"╖","boxDL":"╗","boxdr":"┌","boxdR":"╒","boxDr":"╓","boxDR":"╔","boxh":"─","boxH":"═","boxhd":"┬","boxHd":"╤","boxhD":"╥","boxHD":"╦","boxhu":"┴","boxHu":"╧","boxhU":"╨","boxHU":"╩","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxul":"┘","boxuL":"╛","boxUl":"╜","boxUL":"╝","boxur":"└","boxuR":"╘","boxUr":"╙","boxUR":"╚","boxv":"│","boxV":"║","boxvh":"┼","boxvH":"╪","boxVh":"╫","boxVH":"╬","boxvl":"┤","boxvL":"╡","boxVl":"╢","boxVL":"╣","boxvr":"├","boxvR":"╞","boxVr":"╟","boxVR":"╠","bprime":"‵","breve":"˘","Breve":"˘","brvbar":"¦","bscr":"𝒷","Bscr":"ℬ","bsemi":"⁏","bsim":"∽","bsime":"⋍","bsolb":"⧅","bsol":"\\\\","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"≏","Bumpeq":"≎","bumpeq":"≏","Cacute":"Ć","cacute":"ć","capand":"⩄","capbrcup":"⩉","capcap":"⩋","cap":"∩","Cap":"⋒","capcup":"⩇","capdot":"⩀","CapitalDifferentialD":"ⅅ","caps":"∩︀","caret":"⁁","caron":"ˇ","Cayleys":"ℭ","ccaps":"⩍","Ccaron":"Č","ccaron":"č","Ccedil":"Ç","ccedil":"ç","Ccirc":"Ĉ","ccirc":"ĉ","Cconint":"∰","ccups":"⩌","ccupssm":"⩐","Cdot":"Ċ","cdot":"ċ","cedil":"¸","Cedilla":"¸","cemptyv":"⦲","cent":"¢","centerdot":"·","CenterDot":"·","cfr":"𝔠","Cfr":"ℭ","CHcy":"Ч","chcy":"ч","check":"✓","checkmark":"✓","Chi":"Χ","chi":"χ","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledast":"⊛","circledcirc":"⊚","circleddash":"⊝","CircleDot":"⊙","circledR":"®","circledS":"Ⓢ","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","cir":"○","cirE":"⧃","cire":"≗","cirfnint":"⨐","cirmid":"⫯","cirscir":"⧂","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":"”","CloseCurlyQuote":"’","clubs":"♣","clubsuit":"♣","colon":":","Colon":"∷","Colone":"⩴","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"∁","compfn":"∘","complement":"∁","complexes":"ℂ","cong":"≅","congdot":"⩭","Congruent":"≡","conint":"∮","Conint":"∯","ContourIntegral":"∮","copf":"𝕔","Copf":"ℂ","coprod":"∐","Coproduct":"∐","copy":"©","COPY":"©","copysr":"℗","CounterClockwiseContourIntegral":"∳","crarr":"↵","cross":"✗","Cross":"⨯","Cscr":"𝒞","cscr":"𝒸","csub":"⫏","csube":"⫑","csup":"⫐","csupe":"⫒","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"⋞","cuesc":"⋟","cularr":"↶","cularrp":"⤽","cupbrcap":"⩈","cupcap":"⩆","CupCap":"≍","cup":"∪","Cup":"⋓","cupcup":"⩊","cupdot":"⊍","cupor":"⩅","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"⋞","curlyeqsucc":"⋟","curlyvee":"⋎","curlywedge":"⋏","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"⋎","cuwed":"⋏","cwconint":"∲","cwint":"∱","cylcty":"⌭","dagger":"†","Dagger":"‡","daleth":"ℸ","darr":"↓","Darr":"↡","dArr":"⇓","dash":"‐","Dashv":"⫤","dashv":"⊣","dbkarow":"⤏","dblac":"˝","Dcaron":"Ď","dcaron":"ď","Dcy":"Д","dcy":"д","ddagger":"‡","ddarr":"⇊","DD":"ⅅ","dd":"ⅆ","DDotrahd":"⤑","ddotseq":"⩷","deg":"°","Del":"∇","Delta":"Δ","delta":"δ","demptyv":"⦱","dfisht":"⥿","Dfr":"𝔇","dfr":"𝔡","dHar":"⥥","dharl":"⇃","dharr":"⇂","DiacriticalAcute":"´","DiacriticalDot":"˙","DiacriticalDoubleAcute":"˝","DiacriticalGrave":"`","DiacriticalTilde":"˜","diam":"⋄","diamond":"⋄","Diamond":"⋄","diamondsuit":"♦","diams":"♦","die":"¨","DifferentialD":"ⅆ","digamma":"ϝ","disin":"⋲","div":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","DJcy":"Ђ","djcy":"ђ","dlcorn":"⌞","dlcrop":"⌍","dollar":"$","Dopf":"𝔻","dopf":"𝕕","Dot":"¨","dot":"˙","DotDot":"⃜","doteq":"≐","doteqdot":"≑","DotEqual":"≐","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"⇐","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrowBar":"⤓","downarrow":"↓","DownArrow":"↓","Downarrow":"⇓","DownArrowUpArrow":"⇵","DownBreve":"̑","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","DownLeftRightVector":"⥐","DownLeftTeeVector":"⥞","DownLeftVectorBar":"⥖","DownLeftVector":"↽","DownRightTeeVector":"⥟","DownRightVectorBar":"⥗","DownRightVector":"⇁","DownTeeArrow":"↧","DownTee":"⊤","drbkarow":"⤐","drcorn":"⌟","drcrop":"⌌","Dscr":"𝒟","dscr":"𝒹","DScy":"Ѕ","dscy":"ѕ","dsol":"⧶","Dstrok":"Đ","dstrok":"đ","dtdot":"⋱","dtri":"▿","dtrif":"▾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","DZcy":"Џ","dzcy":"џ","dzigrarr":"⟿","Eacute":"É","eacute":"é","easter":"⩮","Ecaron":"Ě","ecaron":"ě","Ecirc":"Ê","ecirc":"ê","ecir":"≖","ecolon":"≕","Ecy":"Э","ecy":"э","eDDot":"⩷","Edot":"Ė","edot":"ė","eDot":"≑","ee":"ⅇ","efDot":"≒","Efr":"𝔈","efr":"𝔢","eg":"⪚","Egrave":"È","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","Element":"∈","elinters":"⏧","ell":"ℓ","els":"⪕","elsdot":"⪗","Emacr":"Ē","emacr":"ē","empty":"∅","emptyset":"∅","EmptySmallSquare":"◻","emptyv":"∅","EmptyVerySmallSquare":"▫","emsp13":" ","emsp14":" ","emsp":" ","ENG":"Ŋ","eng":"ŋ","ensp":" ","Eogon":"Ę","eogon":"ę","Eopf":"𝔼","eopf":"𝕖","epar":"⋕","eparsl":"⧣","eplus":"⩱","epsi":"ε","Epsilon":"Ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","Equal":"⩵","equals":"=","EqualTilde":"≂","equest":"≟","Equilibrium":"⇌","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erarr":"⥱","erDot":"≓","escr":"ℯ","Escr":"ℰ","esdot":"≐","Esim":"⩳","esim":"≂","Eta":"Η","eta":"η","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","euro":"€","excl":"!","exist":"∃","Exists":"∃","expectation":"ℰ","exponentiale":"ⅇ","ExponentialE":"ⅇ","fallingdotseq":"≒","Fcy":"Ф","fcy":"ф","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","Ffr":"𝔉","ffr":"𝔣","filig":"fi","FilledSmallSquare":"◼","FilledVerySmallSquare":"▪","fjlig":"fj","flat":"♭","fllig":"fl","fltns":"▱","fnof":"ƒ","Fopf":"𝔽","fopf":"𝕗","forall":"∀","ForAll":"∀","fork":"⋔","forkv":"⫙","Fouriertrf":"ℱ","fpartint":"⨍","frac12":"½","frac13":"⅓","frac14":"¼","frac15":"⅕","frac16":"⅙","frac18":"⅛","frac23":"⅔","frac25":"⅖","frac34":"¾","frac35":"⅗","frac38":"⅜","frac45":"⅘","frac56":"⅚","frac58":"⅝","frac78":"⅞","frasl":"⁄","frown":"⌢","fscr":"𝒻","Fscr":"ℱ","gacute":"ǵ","Gamma":"Γ","gamma":"γ","Gammad":"Ϝ","gammad":"ϝ","gap":"⪆","Gbreve":"Ğ","gbreve":"ğ","Gcedil":"Ģ","Gcirc":"Ĝ","gcirc":"ĝ","Gcy":"Г","gcy":"г","Gdot":"Ġ","gdot":"ġ","ge":"≥","gE":"≧","gEl":"⪌","gel":"⋛","geq":"≥","geqq":"≧","geqslant":"⩾","gescc":"⪩","ges":"⩾","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","Gfr":"𝔊","gfr":"𝔤","gg":"≫","Gg":"⋙","ggg":"⋙","gimel":"ℷ","GJcy":"Ѓ","gjcy":"ѓ","gla":"⪥","gl":"≷","glE":"⪒","glj":"⪤","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gnE":"≩","gneq":"⪈","gneqq":"≩","gnsim":"⋧","Gopf":"𝔾","gopf":"𝕘","grave":"`","GreaterEqual":"≥","GreaterEqualLess":"⋛","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"𝒢","gscr":"ℊ","gsim":"≳","gsime":"⪎","gsiml":"⪐","gtcc":"⪧","gtcir":"⩺","gt":">","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"⁣","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"⁣","InvisibleTimes":"⁢","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"⁢","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltri":"◃","ltrie":"⊴","ltrif":"◂","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","Mcy":"М","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","mfr":"𝔪","mho":"℧","micro":"µ","midast":"*","midcir":"⫰","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"𝕄","mopf":"𝕞","mp":"∓","mscr":"𝓂","Mscr":"ℳ","mstpos":"∾","Mu":"Μ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"♮","naturals":"ℕ","natur":"♮","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Ņ","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","Ncy":"Н","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"≐̸","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\\n","nexist":"∄","nexists":"∄","Nfr":"𝔑","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"њ","nlarr":"↚","nlArr":"⇍","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"⇍","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"⁠","NonBreakingSpace":" ","nopf":"𝕟","Nopf":"ℕ","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","NotLeftTriangleBar":"⧏̸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangleBar":"⧐̸","NotRightTriangle":"⋫","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"⇏","nrarrw":"↝̸","nrightarrow":"↛","nRightarrow":"⇏","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","Nscr":"𝒩","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","Nu":"Ν","nu":"ν","num":"#","numero":"№","numsp":" ","nvap":"≍⃒","nvdash":"⊬","nvDash":"⊭","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"⊝","Odblac":"Ő","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Œ","oelig":"œ","ofcir":"⦿","Ofr":"𝔒","ofr":"𝔬","ogon":"˛","Ograve":"Ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"Ō","omacr":"ō","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"𝕆","oopf":"𝕠","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"⩔","or":"∨","ord":"⩝","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oS":"Ⓢ","Oscr":"𝒪","oscr":"ℴ","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"𝔓","pfr":"𝔭","Phi":"Φ","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","Pi":"Π","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"ℌ","pointint":"⨕","popf":"𝕡","Popf":"ℙ","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"ℙ","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"∏","Product":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","Proportional":"∝","Proportion":"∷","propto":"∝","prsim":"≾","prurel":"⊰","Pscr":"𝒫","pscr":"𝓅","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"𝔔","qfr":"𝔮","qint":"⨌","qopf":"𝕢","Qopf":"ℚ","qprime":"⁗","Qscr":"𝒬","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quot":"\\"","QUOT":"\\"","rAarr":"⇛","race":"∽̱","Racute":"Ŕ","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"↝","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rBarr":"⤏","RBarr":"⤐","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","Rcaron":"Ř","rcaron":"ř","Rcedil":"Ŗ","rcedil":"ŗ","rceil":"⌉","rcub":"}","Rcy":"Р","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","Re":"ℜ","rect":"▭","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","Rfr":"ℜ","rHar":"⥤","rhard":"⇁","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"ρ","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"⋌","RightTriangleBar":"⧐","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"‏","rmoustache":"⎱","rmoust":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","Ropf":"ℝ","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"𝓇","Rscr":"ℛ","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"℞","Sacute":"Ś","sacute":"ś","sbquo":"‚","scap":"⪸","Scaron":"Š","scaron":"š","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Ş","scedil":"ş","Scirc":"Ŝ","scirc":"ŝ","scnap":"⪺","scnE":"⪶","scnsim":"⋩","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"с","sdotb":"⊡","sdot":"⋅","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"𝔖","sfr":"𝔰","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"←","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"­","Sigma":"Σ","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ь","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"𝕊","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","square":"□","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"▪","squ":"□","squf":"▪","srarr":"→","Sscr":"𝒮","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","Sub":"⋐","subdot":"⪽","subE":"⫅","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"⋐","subseteq":"⊆","subseteqq":"⫅","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"⋑","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"⫄","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","Supset":"⋑","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\\t","target":"⌖","Tau":"Τ","tau":"τ","tbrk":"⎴","Tcaron":"Ť","tcaron":"ť","Tcedil":"Ţ","tcedil":"ţ","Tcy":"Т","tcy":"т","tdot":"⃛","telrec":"⌕","Tfr":"𝔗","tfr":"𝔱","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","ThickSpace":"  ","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"˜","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"∭","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"𝕋","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","TRADE":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","Tscr":"𝒯","tscr":"𝓉","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"ћ","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"Ў","ubrcy":"ў","Ubreve":"Ŭ","ubreve":"ŭ","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Ű","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"𝔘","ufr":"𝔲","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","Umacr":"Ū","umacr":"ū","uml":"¨","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"𝕌","uopf":"𝕦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"υ","Upsi":"ϒ","upsih":"ϒ","Upsilon":"Υ","upsilon":"υ","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","Uring":"Ů","uring":"ů","urtri":"◹","Uscr":"𝒰","uscr":"𝓊","utdot":"⋰","Utilde":"Ũ","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","Uuml":"Ü","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"⫫","vBarv":"⫩","Vcy":"В","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"⋁","veeeq":"≚","vellip":"⋮","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"𝕍","vopf":"𝕧","vprop":"∝","vrtri":"⊳","Vscr":"𝒱","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Ŵ","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","Wedge":"⋀","wedgeq":"≙","weierp":"℘","Wfr":"𝔚","wfr":"𝔴","Wopf":"𝕎","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"𝒲","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","Xfr":"𝔛","xfr":"𝔵","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"⋻","xodot":"⨀","Xopf":"𝕏","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"𝒳","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","Yacute":"Ý","yacute":"ý","YAcy":"Я","yacy":"я","Ycirc":"Ŷ","ycirc":"ŷ","Ycy":"Ы","ycy":"ы","yen":"¥","Yfr":"𝔜","yfr":"𝔶","YIcy":"Ї","yicy":"ї","Yopf":"𝕐","yopf":"𝕪","Yscr":"𝒴","yscr":"𝓎","YUcy":"Ю","yucy":"ю","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Ż","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"​","Zeta":"Ζ","zeta":"ζ","zfr":"𝔷","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","Zopf":"ℤ","Zscr":"𝒵","zscr":"𝓏","zwj":"‍","zwnj":"‌"}' - ); - }, - 9591: (e) => { - "use strict"; - e.exports = JSON.parse( - '{"Aacute":"Á","aacute":"á","Acirc":"Â","acirc":"â","acute":"´","AElig":"Æ","aelig":"æ","Agrave":"À","agrave":"à","amp":"&","AMP":"&","Aring":"Å","aring":"å","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","brvbar":"¦","Ccedil":"Ç","ccedil":"ç","cedil":"¸","cent":"¢","copy":"©","COPY":"©","curren":"¤","deg":"°","divide":"÷","Eacute":"É","eacute":"é","Ecirc":"Ê","ecirc":"ê","Egrave":"È","egrave":"è","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","frac12":"½","frac14":"¼","frac34":"¾","gt":">","GT":">","Iacute":"Í","iacute":"í","Icirc":"Î","icirc":"î","iexcl":"¡","Igrave":"Ì","igrave":"ì","iquest":"¿","Iuml":"Ï","iuml":"ï","laquo":"«","lt":"<","LT":"<","macr":"¯","micro":"µ","middot":"·","nbsp":" ","not":"¬","Ntilde":"Ñ","ntilde":"ñ","Oacute":"Ó","oacute":"ó","Ocirc":"Ô","ocirc":"ô","Ograve":"Ò","ograve":"ò","ordf":"ª","ordm":"º","Oslash":"Ø","oslash":"ø","Otilde":"Õ","otilde":"õ","Ouml":"Ö","ouml":"ö","para":"¶","plusmn":"±","pound":"£","quot":"\\"","QUOT":"\\"","raquo":"»","reg":"®","REG":"®","sect":"§","shy":"­","sup1":"¹","sup2":"²","sup3":"³","szlig":"ß","THORN":"Þ","thorn":"þ","times":"×","Uacute":"Ú","uacute":"ú","Ucirc":"Û","ucirc":"û","Ugrave":"Ù","ugrave":"ù","uml":"¨","Uuml":"Ü","uuml":"ü","Yacute":"Ý","yacute":"ý","yen":"¥","yuml":"ÿ"}' - ); - }, - 2586: (e) => { - "use strict"; - e.exports = JSON.parse( - '{"amp":"&","apos":"\'","gt":">","lt":"<","quot":"\\""}' - ); - }, - }, - t = {}; - function r(n) { - var i = t[n]; - if (void 0 !== i) return i.exports; - var o = (t[n] = { id: n, loaded: !1, exports: {} }); - return e[n].call(o.exports, o, o.exports, r), (o.loaded = !0), o.exports; - } - (r.n = (e) => { - var t = e && e.__esModule ? () => e.default : () => e; - return r.d(t, { a: t }), t; - }), - (r.d = (e, t) => { - for (var n in t) - r.o(t, n) && - !r.o(e, n) && - Object.defineProperty(e, n, { enumerable: !0, get: t[n] }); - }), - (r.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)), - (r.r = (e) => { - "undefined" != typeof Symbol && - Symbol.toStringTag && - Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), - Object.defineProperty(e, "__esModule", { value: !0 }); - }), - (r.nmd = (e) => ((e.paths = []), e.children || (e.children = []), e)); - var n = {}; - (() => { - "use strict"; - function e(e, t, r, n) { - return new (r || (r = Promise))(function (i, o) { - function a(e) { - try { - l(n.next(e)); - } catch (e) { - o(e); - } - } - function s(e) { - try { - l(n.throw(e)); - } catch (e) { - o(e); - } - } - function l(e) { - var t; - e.done - ? i(e.value) - : ((t = e.value), - t instanceof r - ? t - : new r(function (e) { - e(t); - })).then(a, s); - } - l((n = n.apply(e, t || [])).next()); - }); - } - r.r(n), r.d(n, { default: () => D }), Object.create, Object.create; - const t = require("obsidian"); - var i = r(2985); - function o() {} - function a(e) { - return e(); - } - function s(e) { - e.forEach(a); - } - function l(e) { - return "function" == typeof e; - } - function c(e) { - let t; - return ( - (function (e, ...t) { - if (null == e) return o; - const r = e.subscribe(...t); - return r.unsubscribe ? () => r.unsubscribe() : r; - })(e, (e) => (t = e))(), - t - ); - } - new Set(), new Map(); - let u, - p = []; - new Set(), - new Set(), - "undefined" != typeof window - ? window - : "undefined" != typeof globalThis - ? globalThis - : global, - new Set([ - "allowfullscreen", - "allowpaymentrequest", - "async", - "autofocus", - "autoplay", - "checked", - "controls", - "default", - "defer", - "disabled", - "formnovalidate", - "hidden", - "inert", - "ismap", - "loop", - "multiple", - "muted", - "nomodule", - "novalidate", - "open", - "playsinline", - "readonly", - "required", - "reversed", - "selected", - ]), - "function" == typeof HTMLElement && - (u = class extends HTMLElement { - constructor() { - super(), this.attachShadow({ mode: "open" }); - } - connectedCallback() { - const { on_mount: e } = this.$$; - this.$$.on_disconnect = e.map(a).filter(l); - for (const e in this.$$.slotted) - this.appendChild(this.$$.slotted[e]); - } - attributeChangedCallback(e, t, r) { - this[e] = r; - } - disconnectedCallback() { - s(this.$$.on_disconnect); - } - $destroy() { - (function (e, t) { - const r = e.$$; - null !== r.fragment && - ((function (e) { - const t = [], - r = []; - p.forEach((n) => - -1 === e.indexOf(n) ? t.push(n) : r.push(n) - ), - r.forEach((e) => e()), - (p = t); - })(r.after_update), - s(r.on_destroy), - r.fragment && r.fragment.d(t), - (r.on_destroy = r.fragment = null), - (r.ctx = [])); - })(this, 1), - (this.$destroy = o); - } - $on(e, t) { - if (!l(t)) return o; - const r = this.$$.callbacks[e] || (this.$$.callbacks[e] = []); - return ( - r.push(t), - () => { - const e = r.indexOf(t); - -1 !== e && r.splice(e, 1); - } - ); - } - $set(e) { - var t; - this.$$set && - ((t = e), 0 !== Object.keys(t).length) && - ((this.$$.skip_bound = !0), - this.$$set(e), - (this.$$.skip_bound = !1)); - } - }); - const d = []; - const f = { - cookies: [], - noteLocation: "/", - dailyNotesLocation: "/", - insertAfter: "\x3c!-- start of weread --\x3e", - insertBefore: "\x3c!-- end of weread --\x3e", - dailyNotesFormat: "YYYY-MM-DD", - lastCookieTime: -1, - isCookieValid: !1, - user: "", - userVid: "", - template: - "---\nisbn: {{metaData.isbn}}\ncategory: {{metaData.category}}\nlastReadDate: {{metaData.lastReadDate}}\n---\n# 元数据\n> [!abstract] {{metaData.title}}\n> - ![ {{metaData.title}}|200]({{metaData.cover}})\n> - 书名: {{metaData.title}}\n> - 作者: {{metaData.author}}\n> - 简介: {{metaData.intro}}\n> - 出版时间 {{metaData.publishTime}}\n> - ISBN: {{metaData.isbn}}\n> - 分类: {{metaData.category}}\n> - 出版社: {{metaData.publisher}}\n\n# 高亮划线\n{% for chapter in chapterHighlights %}\n## {{chapter.chapterTitle}}\n{% for highlight in chapter.highlights %}\n{% if highlight.reviewContent %}{% else %}\n- 📌 {{ highlight.markText |trim }} ^{{highlight.bookmarkId}}\n - ⏱ {{highlight.createTime}}{% endif %} {% endfor %}{% endfor %}\n# 读书笔记\n{% for chapter in bookReview.chapterReviews %}{% if chapter.reviews or chapter.chapterReview %}\n## {{chapter.chapterTitle}}\n{% if chapter.chapterReviews %}{% for chapterReview in chapter.chapterReviews %}\n### 章节评论 No.{{loop.index}}\n- {{chapterReview.content}} ^{{chapterReview.reviewId}}\n - ⏱ {{chapterReview.createTime}} {% endfor%}{%endif %}{% if chapter.reviews %}{%for review in chapter.reviews %}\n### 划线评论\n- 📌 {{review.abstract |trim }} ^{{review.reviewId}}\n - 💭 {{review.content}}\n - ⏱ {{review.createTime}}\n{% endfor %} {%endif %} {% endif %} {% endfor %}\n# 本书评论\n{% if bookReview.bookReviews %}{% for bookReview in bookReview.bookReviews %}\n## 书评 No.{{loop.index}} \n{{bookReview.mdContent}} ^{{bookReview.reviewId}}\n⏱ {{bookReview.createTime}}\n{% endfor%}{% endif %}", - noteCountLimit: -1, - subFolderType: "-1", - fileNameType: "BOOK_NAME", - dailyNotesToggle: !1, - notesBlacklist: "", - }, - h = (() => { - const t = (function (e, t = o) { - let r; - const n = new Set(); - function i(t) { - if ( - ((o = t), - ((i = e) != i - ? o == o - : i !== o || - (i && "object" == typeof i) || - "function" == typeof i) && ((e = t), r)) - ) { - const t = !d.length; - for (const t of n) t[1](), d.push(t, e); - if (t) { - for (let e = 0; e < d.length; e += 2) d[e][0](d[e + 1]); - d.length = 0; - } - } - var i, o; - } - return { - set: i, - update: function (t) { - i(t(e)); - }, - subscribe: function (a, s = o) { - const l = [a, s]; - return ( - n.add(l), - 1 === n.size && (r = t(i) || o), - a(e), - () => { - n.delete(l), 0 === n.size && r && (r(), (r = null)); - } - ); - }, - }; - })(f); - let r; - t.subscribe((t) => - e(void 0, void 0, void 0, function* () { - if (r) { - const e = Object.assign({}, t); - yield r.saveData(e); - } - }) - ); - const n = (e) => { - for (const r of e) - "wr_name" == r.name && - "" !== r.value && - (console.log("[weread plugin] setting user name=>", r.value), - t.update((e) => ((e.user = r.value), e))), - "wr_vid" == r.name && - "" !== r.value && - (console.log("[weread plugin] setting user vid=>", r.value), - t.update((e) => ((e.userVid = r.value), e))); - }; - return { - subscribe: t.subscribe, - initialise: (i) => - e(void 0, void 0, void 0, function* () { - const e = Object.assign({}, f, yield i.loadData()), - o = Object.assign({}, e); - console.log("--------init cookie------", o.cookies), - o.cookies.length > 1 && n(o.cookies); - const a = o.cookies.find((e) => "wr_vid" === e.name); - (void 0 !== a && "" !== a.value) || - ((o.userVid = ""), (o.isCookieValid = !1)), - t.set(o), - (r = i); - }), - actions: { - setNoteLocationFolder: (e) => { - t.update((t) => ((t.noteLocation = e), t)); - }, - setCookies: (e) => { - t.update( - (t) => ( - (t.cookies = e), - (t.lastCookieTime = new Date().getTime()), - (t.isCookieValid = !0), - n(e), - t - ) - ); - }, - clearCookies: () => { - console.log("[weread plugin] cookie已失效,清理cookie..."), - t.update( - (e) => ( - (e.cookies = []), - (e.lastCookieTime = new Date().getTime()), - (e.user = ""), - (e.userVid = ""), - (e.isCookieValid = !1), - e - ) - ); - }, - setTemplate: (e) => { - t.update((t) => ((t.template = e), t)); - }, - setNoteCountLimit: (e) => { - t.update((t) => ((t.noteCountLimit = e), t)); - }, - setSubFolderType: (e) => { - t.update((t) => ((t.subFolderType = e), t)); - }, - setFileNameType: (e) => { - t.update((t) => ((t.fileNameType = e), t)); - }, - setDailyNotesToggle: (e) => { - t.update((t) => ((t.dailyNotesToggle = e), t)); - }, - setDailyNotesFolder: (e) => { - t.update((t) => ((t.dailyNotesLocation = e), t)); - }, - setDailyNotesFormat: (e) => { - t.update((t) => ((t.dailyNotesFormat = e), t)); - }, - setInsertAfter: (e) => { - t.update((t) => ((t.insertAfter = e), t)); - }, - setInsertBefore: (e) => { - t.update((t) => ((t.insertBefore = e), t)); - }, - setNoteBlacklist: (e) => { - t.update((t) => ((t.notesBlacklist = e), t)); - }, - }, - }; - })(); - class m { - constructor() { - i.configure({ autoescape: !1 }); - } - validate(e) { - try { - return i.renderString(e, {}), !0; - } catch (e) { - return !1; - } - } - render(e) { - const { metaData: t, chapterHighlights: r, bookReview: n } = e, - o = { metaData: t, chapterHighlights: r, bookReview: n }, - a = c(h).template; - return i.renderString(a, o); - } - } - var g = r(202), - v = r.n(g); - const b = "weread-highlights-reviews", - y = (e, r, n) => { - const date = new Date().toISOString().substring(0, 10); - const description = r.metaData.intro.length > 128 ? r.metaData.intro.substring(0, 128) : r.metaData.intro; - const category = r.metaData.category.split(/[-~,:;. ]/)[0]; - const i = { - title: r.metaData.title, - description: description, - keywords: [r.metaData.title, category], - tags: ['阅读'], - author: '7Wate', - date: date - }; - let o = Object(); - if (n) { - if ( - ((o = app.metadataCache.getFileCache(n).frontmatter), void 0 === o) - ) - throw ( - (new t.Notice("weread front matter invalid"), - Error("weread front matter invalid")) - ); - delete o.position; - } - const a = e.indexOf("---"); - let s = Object(); - if (-1 !== a) { - const r = e.indexOf("---") + 4, - n = e.substring(r).indexOf("---") - 1, - i = e.substring(r, r + n); - s = (0, t.parseYaml)(i); - } - const l = e.substring(e.lastIndexOf("---") + 4), - c = Object.assign(Object.assign(Object.assign({}, o), i), s); - return "---\n" + (0, t.stringifyYaml)(c) + "---\n" + l; - }; - class w { - constructor(e, t) { - (this.vault = e), (this.metadataCache = t), (this.renderer = new m()); - } - saveDailyNotes(r, n) { - return e(this, void 0, void 0, function* () { - const e = yield this.fileExists(r), - i = this.buildAppendContent(n); - if (e) { - const e = yield this.getFileByPath(r), - t = yield this.vault.cachedRead(e), - n = yield this.insertAfter(t, i); - this.vault.modify(e, n); - } else new t.Notice("没有找到Daily Note,请先创建" + r); - }); - } - buildAppendContent(e) { - return e - .map( - (e) => - "\n### ".concat(e.metaData.title).concat("\n") + - e.refBlocks - .map( - (t) => `![[${this.getFileName(e.metaData)}#^${t.refBlockId}]]` - ) - .join("\n") - ) - .join("\n"); - } - getDailyNotePath(e) { - let r; - const n = c(h).dailyNotesFormat; - try { - r = e.format(n); - } catch (e) { - throw (new t.Notice("Daily Notes 日期格式不正确" + n), e); - } - return c(h).dailyNotesLocation + "/" + r + ".md"; - } - fileExists(t) { - return e(this, void 0, void 0, function* () { - return yield this.vault.adapter.exists(t); - }); - } - getFileByPath(r) { - return e(this, void 0, void 0, function* () { - const e = yield this.vault.getAbstractFileByPath(r); - return e - ? e instanceof t.TFolder - ? (console.error(`${r} found but it's a folder`), null) - : e instanceof t.TFile - ? e - : void 0 - : (console.error(`${r} not found`), null); - }); - } - insertAfter(r, n) { - return e(this, void 0, void 0, function* () { - const e = c(h).insertAfter, - i = new RegExp(`s*${e}s*`), - o = ((e) => { - const t = []; - let r = e; - for (; r.contains("\n"); ) { - const e = r.indexOf("\n"); - t.push(r.slice(0, e)), (r = r.slice(e + 1)); - } - return t.push(r), t; - })(r).findIndex((e) => i.test(e)); - if (-1 === o) - throw ( - (new t.Notice( - `没有在Daily Note中找到区间开始:${e}!请检查Daily Notes设置` - ), - new Error("cannot find " + e)) - ); - return this.insertTextAfterPosition(n, r, o); - }); - } - insertTextAfterPosition(e, r, n) { - const i = r.split("\n"), - o = i.slice(0, n + 1).join("\n"), - a = i.slice(n + 1), - s = c(h).insertBefore, - l = a.findIndex((e) => new RegExp(`s*${s}s*`).test(e)); - if (-1 === l) - throw ( - (new t.Notice( - `没有在Daily Note中找到区间结束:${s}!请检查Daily Notes设置` - ), - new Error("cannot find " + s)) - ); - return `${o}\n${e}\n${a.slice(l - 1).join("\n")}`; - } - saveNotebook(t) { - return e(this, void 0, void 0, function* () { - const e = t.metaData.file; - if (e) { - if (e.new) { - const r = e.file; - console.log(`Updating ${r.path}`); - const n = this.renderer.render(t), - i = y(n, t, r); - yield this.vault.modify(r, i); - } - } else { - const e = yield this.getNewNotebookFilePath(t); - console.log(`Creating ${e}`); - const r = this.renderer.render(t), - n = y(r, t); - yield this.vault.create(e, n); - } - }); - } - getNotebookFiles() { - return e(this, void 0, void 0, function* () { - return this.vault - .getMarkdownFiles() - .map((e) => { - const t = this.metadataCache.getFileCache(e); - return { - file: e, - frontmatter: null == t ? void 0 : t.frontmatter, - }; - }) - .filter( - ({ frontmatter: e }) => (null == e ? void 0 : e.doc_type) === b - ) - .map(({ file: e, frontmatter: t }) => ({ - file: e, - bookId: t.bookId, - reviewCount: t.reviewCount, - noteCount: t.noteCount, - new: !1, - })); - }); - } - getNewNotebookFilePath(t) { - return e(this, void 0, void 0, function* () { - const e = `${c(h).noteLocation}/${this.getSubFolderPath(t.metaData)}`; - return ( - (yield this.vault.adapter.exists(e)) || - (console.info(`Folder ${e} not found. Will be created`), - yield this.vault.createFolder(e)), - `${e}/${this.getFileName(t.metaData)}.md` - ); - }); - } - getFileName(e) { - const t = c(h).fileNameType, - r = ((e) => { - const t = e.replace(/[':#|]/g, "").trim(); - return v()(t); - })(e.title); - return "BOOK_NAME-AUTHOR" == t - ? e.duplicate - ? `${r}-${e.author}-${e.bookId}` - : `${r}-${e.author}` - : e.duplicate || "BOOK_NAME-BOOKID" == t - ? `${r}-${e.bookId}` - : r; - } - getSubFolderPath(e) { - const t = c(h).subFolderType; - return "title" == t - ? e.title - : "category" == t - ? e.category - ? e.category.split("-")[0] - : "公众号" === e.author - ? "公众号" - : "未分类" - : ""; - } - } - var E = r(2245); - class x { - constructor(e, t) { - (this.fileManager = e), (this.apiManager = t); - } - syncNotebooks(r = !1, n) { - return e(this, void 0, void 0, function* () { - const e = yield this.getALlMetadata(), - i = yield this.filterNoteMetas(r, e), - o = []; - for (const e of i) { - const t = yield this.convertToNotebook(e); - o.push(t); - } - for (const e of o) yield this.syncNotebook(e); - this.saveToJounal(n, e), - new t.Notice(`微信读书笔记同步完成!, 本次更新 ${o.length} 本书`); - }); - } - syncNotesToJounal(t) { - return e(this, void 0, void 0, function* () { - const e = yield this.getALlMetadata(); - this.saveToJounal(t, e); - }); - } - convertToNotebook(t) { - return e(this, void 0, void 0, function* () { - const e = yield this.apiManager.getBook(t.bookId); - e && - ((t.category = e.category), - (t.publisher = e.publisher), - (t.isbn = e.isbn), - (t.intro = e.intro)); - const r = yield this.apiManager.getNotebookHighlights(t.bookId), - n = yield this.apiManager.getNotebookReviews(t.bookId), - i = ((e) => { - const t = []; - for (const r of e) { - const e = r.chapterUid, - n = r.chapterTitle, - i = t.find((e) => e.chapterUid == r.chapterUid), - o = r.reviewContent ? 1 : 0; - if (null == i) { - const i = { - chapterUid: e, - chapterTitle: n, - chapterReviewCount: o, - highlights: [r], - }; - t.push(i); - } else (i.chapterReviewCount += o), i.highlights.push(r); - } - return ( - t.forEach((e) => - e.highlights.sort( - (e, t) => - parseInt(e.range.split("-")[0]) - - parseInt(t.range.split("-")[0]) - ) - ), - t.sort((e, t) => e.chapterUid - t.chapterUid) - ); - })( - ((e, t) => { - const r = - 0 === e.chapters.length ? e.refMpInfos || [] : e.chapters, - n = new Map( - r.map((e) => [e.chapterUid || e.reviewId, e.title]) - ), - i = e.updated, - o = t.reviews; - return i.map((e) => { - const t = e.chapterUid || e.refMpReviewId, - r = e.createTime, - i = window.moment(1e3 * r).format("YYYY-MM-DD HH:mm:ss"), - a = e.range; - let s; - if (o) { - const e = o - .map((e) => e.review) - .filter((e) => e.range === a) - .first(); - e && (s = e.content); - } - let l = e.bookmarkId; - l.startsWith("MP_WXS") && (l = e.range); - const c = e.markText; - return { - bookmarkId: l.replace(/_/gi, "-"), - created: r, - createTime: i, - chapterUid: t, - range: e.range, - style: e.style, - chapterTitle: n.get(t), - markText: c.replace(/\n/gi, ""), - reviewContent: s, - }; - }); - })(r, n) - ), - o = ((e) => { - const t = e.reviews.map((e) => { - var t, r; - const n = e.review, - i = n.createTime, - o = window.moment(1e3 * i).format("YYYY-MM-DD HH:mm:ss"), - a = n.htmlContent, - s = a ? E.dx.translate(a) : null, - l = n.reviewId; - return { - bookId: n.bookId, - created: i, - createTime: o, - chapterUid: - n.chapterUid || - (null === (t = n.refMpInfo) || void 0 === t - ? void 0 - : t.reviewId), - chapterTitle: - n.chapterTitle || - (null === (r = n.refMpInfo) || void 0 === r - ? void 0 - : r.title), - content: n.content, - reviewId: l.replace(/_/gi, "-"), - mdContent: s || n.content, - range: n.range, - abstract: n.abstract, - type: n.type, - }; - }), - r = t - .filter((e) => 1 == e.type) - .sort((e, t) => t.created - e.created), - n = t.filter((e) => 4 == e.type), - i = new Map(); - for (const e of r) { - const t = e.chapterUid, - r = e.chapterTitle; - if (null == i.get(e.chapterUid)) { - const n = { - chapterUid: t, - chapterTitle: r, - reviews: [], - chapterReviews: [], - }; - e.range ? n.reviews.push(e) : n.chapterReviews.push(e), - i.set(e.chapterUid, n); - } else { - const t = i.get(e.chapterUid); - e.range ? t.reviews.push(e) : t.chapterReviews.push(e); - } - } - return { - bookReviews: n, - chapterReviews: Array.from(i.values()).sort( - (e, t) => e.chapterUid - t.chapterUid - ), - }; - })(n); - return { metaData: t, bookReview: o, chapterHighlights: i }; - }); - } - filterNoteMetas(r = !1, n) { - return e(this, void 0, void 0, function* () { - const e = yield this.fileManager.getNotebookFiles(); - let i = 0; - const o = this.getDuplicateBooks(n), - a = []; - for (const t of n) { - if (t.noteCount < +c(h).noteCountLimit) { - console.debug( - `[weread plugin] skip book ${t.title} note count: ${t.noteCount}` - ), - i++; - continue; - } - const n = yield this.getLocalNotebookFile(t, e); - !n || n.new || r - ? c(h).notesBlacklist.includes(t.bookId) - ? (console.info( - `[weread plugin] skip book ${t.title},id:${t.bookId}for blacklist` - ), - i++) - : ((t.file = n), - o.has(t.title) && (t.duplicate = !0), - a.push(t)) - : i++; - } - return new t.Notice("跳过更新" + i + "本没有更新的书"), a; - }); - } - getALlMetadata() { - return e(this, void 0, void 0, function* () { - return (yield this.apiManager.getNotebooksWithRetry()).map((e) => - ((e) => { - const t = e.book, - r = t.cover.replace("/s_", "/t7_"), - n = window.moment(1e3 * e.sort).format("YYYY-MM-DD"); - return { - bookId: t.bookId, - author: t.author, - title: t.title, - url: t.url, - cover: r, - publishTime: t.publishTime, - noteCount: e.noteCount, - reviewCount: e.reviewCount, - bookType: t.type, - lastReadDate: n, - }; - })(e) - ); - }); - } - saveToJounal(t, r) { - return e(this, void 0, void 0, function* () { - const e = yield this.getBookReadInDate(t), - n = r.filter((t) => e.contains(t.bookId)), - i = []; - for (const e of n) { - const t = yield this.convertToNotebook(e); - i.push(t); - } - if (c(h).dailyNotesToggle) { - const e = ((e) => { - const t = window.moment().format("YYYYMMDD"), - r = []; - for (const n of e) { - const e = n.chapterHighlights - .flatMap((e) => e.highlights) - .filter((e) => { - const r = window - .moment(1e3 * e.created) - .format("YYYYMMDD"); - return t === r; - }), - i = []; - if (e) - for (const t of e) - i.push({ - refBlockId: t.bookmarkId, - createTime: t.created, - }); - i.length > 0 && - r.push({ metaData: n.metaData, refBlocks: i }); - } - return r; - })(i), - t = this.fileManager.getDailyNotePath(window.moment()); - console.log("get daily note path", t, " size:", e.length), - this.fileManager.saveDailyNotes(t, e); - } - }); - } - getBookReadInDate(t) { - return e(this, void 0, void 0, function* () { - return (yield this.apiManager.getRecentBooks()) - .map((e) => ({ - bookId: e.bookId, - title: e.title, - recentTime: e.readUpdateTime, - })) - .filter( - (e) => - window.moment(1e3 * e.recentTime).format("YYYY-MM-DD") === t - ) - .map((e) => e.bookId); - }); - } - getDuplicateBooks(e) { - const t = e.map((e) => e.title), - r = new Set(t), - n = t.filter((e) => { - if (!r.has(e)) return e; - r.delete(e); - }); - return new Set(n); - } - getLocalNotebookFile(t, r) { - return e(this, void 0, void 0, function* () { - const e = r.find((e) => e.bookId === t.bookId) || null; - return e - ? (e.noteCount == t.noteCount && e.reviewCount == t.reviewCount - ? (e.new = !1) - : (e.new = !0), - e) - : null; - }); - } - syncNotebook(t) { - return e(this, void 0, void 0, function* () { - try { - yield this.fileManager.saveNotebook(t); - } catch (e) { - console.log( - "[weread plugin] sync note book error", - t.metaData.title, - e - ); - } - }); - } - } - const T = (e) => - e - .map((e) => { - const t = e.name, - r = e.value; - return t + "=" + (-1 !== r.indexOf("%") ? decodeURIComponent(r) : r); - }) - .join(";"); - var k = r(9328); - class _ { - constructor() { - this.baseUrl = "https://i.weread.qq.com"; - } - getHeaders() { - return { - "User-Agent": - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", - Cookie: T(c(h).cookies), - }; - } - refreshCookie() { - return e(this, void 0, void 0, function* () { - const e = { - url: "https://weread.qq.com", - method: "HEAD", - headers: this.getHeaders(), - }, - r = yield (0, t.requestUrl)(e), - n = r.headers["set-cookie"] || r.headers["Set-Cookie"]; - void 0 === n - ? new t.Notice("尝试刷新Cookie失败") - : (new t.Notice("cookie已过期,尝试刷新Cookie成功"), - this.updateCookies(n)); - }); - } - getNotebooksWithRetry() { - return e(this, void 0, void 0, function* () { - let e = yield this.getNotebooks(); - if ( - ((void 0 !== e && 0 !== e.length) || - (e = yield this.getNotebooks()), - void 0 === e || 0 === e.length) - ) - throw ( - (new t.Notice("长时间未登录,Cookie已失效,请重新扫码登录!"), - h.actions.clearCookies(), - Error("get weread note book error after retry")) - ); - return e; - }); - } - getRecentBooks() { - return e(this, void 0, void 0, function* () { - const e = c(h).userVid; - console.debug("get userVid settings", e); - const r = { - url: this.baseUrl + "/shelf/friendCommon?userVid=" + e, - method: "GET", - headers: this.getHeaders(), - }; - try { - return (yield (0, t.requestUrl)(r)).json.recentBooks; - } catch (t) { - console.error("get recent books error: vid" + e, t); - } - }); - } - getNotebooks() { - return e(this, void 0, void 0, function* () { - let e = []; - const r = { - url: this.baseUrl + "/user/notebooks", - method: "GET", - headers: this.getHeaders(), - }; - try { - const n = yield (0, t.requestUrl)(r); - 401 === n.status && - (-2012 == n.json.errcode - ? (console.log("weread cookie expire retry refresh cookie... "), - yield this.refreshCookie()) - : (t.Platform.isDesktopApp - ? new t.Notice( - "微信读书未登录或者用户异常,请在设置中重新登录!" - ) - : new t.Notice( - "微信读书未登录或者用户异常,请在电脑端重新登录!" - ), - console.log( - "微信读书未登录或者用户异常,请重新登录, http status code:", - n.json.errcode - ), - h.actions.clearCookies())), - (e = n.json.books); - } catch (e) { - 401 == e.status && - (console.log( - `parse request to cURL for debug: ${this.parseToCurl(r)}` - ), - yield this.refreshCookie()); - } - return e; - }); - } - parseToCurl(e) { - const t = ["curl"]; - t.push(e.url); - const r = e.headers; - return ( - Object.keys(r).forEach((e) => { - t.push("-H"), - t.push(this.escapeStringPosix(e.replace(/^:/, "") + ": " + r[e])); - }), - t.push(" --compressed"), - t.join(" ") - ); - } - escapeStringPosix(e) { - return /[^\x20-\x7E]|'/.test(e) - ? "$'" + - e - .replace(/\\/g, "\\\\") - .replace(/'/g, "\\'") - .replace(/\n/g, "\\n") - .replace(/\r/g, "\\r") - .replace(/[^\x20-\x7E]/g, function (e) { - let t = e.charCodeAt(0); - return t < 256 - ? t < 16 - ? "\\x0" + t.toString(16) - : "\\x" + t.toString(16) - : ((t = t.toString(16)), - "\\u" + ("0000" + t).substr(t.length, 4)); - }) + - "'" - : "'" + e + "'"; - } - getBook(r) { - return e(this, void 0, void 0, function* () { - try { - const e = { - url: `${this.baseUrl}/book/info?bookId=${r}`, - method: "GET", - headers: this.getHeaders(), - }; - return (yield (0, t.requestUrl)(e)).json; - } catch (e) { - console.error("get book detail error", e); - } - }); - } - getNotebookHighlights(r) { - return e(this, void 0, void 0, function* () { - try { - const e = { - url: `${this.baseUrl}/book/bookmarklist?bookId=${r}`, - method: "GET", - headers: this.getHeaders(), - }; - return (yield (0, t.requestUrl)(e)).json; - } catch (e) { - console.error("get book highlight error" + r, e); - } - }); - } - getNotebookReviews(r) { - return e(this, void 0, void 0, function* () { - try { - const e = { - url: `${this.baseUrl}/review/list?bookId=${r}&listType=11&mine=1&synckey=0`, - method: "GET", - headers: this.getHeaders(), - }; - return (yield (0, t.requestUrl)(e)).json; - } catch (e) { - new t.Notice( - "Failed to fetch weread notebook reviews . Please check your Cookies and try again." - ), - console.error("get book review error" + r, e); - } - }); - } - updateCookies(e) { - let t; - if (Array.isArray(e)) t = (0, k.parse)(e); - else { - const r = (0, k.splitCookiesString)(e); - t = (0, k.parse)(r); - } - const r = c(h).cookies; - r.forEach((e) => { - const r = t.find((t) => t.name == e.name); - r && (e.value = r.value); - }), - h.actions.setCookies(r); - } - } - class A { - constructor(e) { - this.settingTab = e; - const { remote: t } = r(5840), - { BrowserWindow: n } = t; - (this.modal = new n({ - parent: t.getCurrentWindow(), - width: 960, - height: 540, - show: !1, - })), - this.modal.once("ready-to-show", () => { - this.modal.setTitle("登录微信读书~"), this.modal.show(); - }), - this.modal.webContents.session.webRequest.onSendHeaders( - { urls: ["https://weread.qq.com/web/user?userVid=*"] }, - (t) => { - const r = - "" === (n = t.requestHeaders.Cookie) - ? [] - : n - .split(";") - .map((e) => e.split("=")) - .map((e) => ({ - name: decodeURIComponent(e[0].trim()), - value: decodeURIComponent(e[1].trim()), - })); - var n; - "" !== r.find((e) => "wr_name" == e.name).value - ? (h.actions.setCookies(r), e.display(), this.modal.close()) - : this.modal.reload(); - } - ); - } - doLogin() { - return e(this, void 0, void 0, function* () { - try { - yield this.modal.loadURL("https://weread.qq.com/#login"); - } catch (e) { - console.log(e), new t.Notice("加载微信读书登录页面失败"); - } - }); - } - onClose() { - this.modal.close(); - } - } - class N { - constructor(e) { - this.settingTab = e; - const { remote: t } = r(5840), - { BrowserWindow: n } = t; - (this.modal = new n({ - parent: t.getCurrentWindow(), - width: 960, - height: 540, - show: !1, - })), - this.modal.once("ready-to-show", () => { - this.modal.setTitle("注销微信读书,右上角头像点击退出登录~"), - this.modal.show(); - }), - this.modal.webContents.session.webRequest.onCompleted( - { urls: ["https://weread.qq.com/web/logout"] }, - (e) => { - 200 == e.statusCode && - (console.log("weread logout success, clear cookies..."), - h.actions.clearCookies(), - this.settingTab.display(), - this.modal.close()); - } - ); - } - doLogout() { - return e(this, void 0, void 0, function* () { - yield this.modal.loadURL("https://weread.qq.com/web/shelf/#logout"); - }); - } - onClose() { - this.modal.close(); - } - } - var L = r(6040), - O = r.n(L); - class S extends t.Modal { - constructor(e) { - super(e); - } - onOpen() { - const { contentEl: e } = this, - t = c(h).cookies, - r = T(t); - e - .createDiv() - .createEl("h1", { - text: "🚨Cookie 是敏感信息,仅用于Debug,请不要泄露", - }), - e.createDiv().createEl("kbd", { text: r }); - } - onClose() { - const { contentEl: e } = this; - e.empty(); - } - } - class C extends t.PluginSettingTab { - constructor(e, t) { - super(e, t), (this.plugin = t), (this.renderer = new m()); - } - display() { - const { containerEl: e } = this; - e.empty(), e.createEl("h2", { text: "设置微信读书插件" }); - const r = c(h).isCookieValid; - t.Platform.isDesktopApp - ? r - ? this.showLogout() - : this.showLogin() - : r - ? this.showMobileLogout() - : this.showMobileLogin(), - this.notebookFolder(), - this.notebookBlacklist(), - this.noteCountLimit(), - this.fileNameType(), - this.subFolderType(), - this.dailyNotes(), - c(h).dailyNotesToggle && - (this.dailyNotesFolder(), - this.dailyNoteFormat(), - this.insertAfter()), - this.template(), - t.Platform.isDesktopApp && this.showDebugHelp(); - } - showMobileLogin() { - this.containerEl - .createDiv() - .setText("微信读书未登录,请先在电脑端登录!"); - } - showMobileLogout() { - this.containerEl - .createDiv() - .setText(`微信读书已登录,用户名:${c(h).user}`); - } - notebookFolder() { - new t.Setting(this.containerEl) - .setName("笔记保存位置") - .setDesc("请选择Obsidian Vault中微信读书笔记存放的位置") - .addDropdown((t) => { - const r = this.app.vault.adapter.files, - n = O()(r, (e) => "folder" === e.type); - return ( - Object.keys(n).forEach((e) => { - t.addOption(e, e); - }), - t.setValue(c(h).noteLocation).onChange((t) => - e(this, void 0, void 0, function* () { - h.actions.setNoteLocationFolder(t); - }) - ) - ); - }); - } - notebookBlacklist() { - new t.Setting(this.containerEl) - .setName("书籍黑名单") - .setDesc( - "请填写不同步的bookId,bookId可在meta信息中找到,多本书使用逗号「,」隔开" - ) - .addText((e) => { - e.setValue(c(h).notesBlacklist).onChange((e) => { - h.actions.setNoteBlacklist(e); - }); - }); - } - showLogin() { - new t.Setting(this.containerEl).setName("登录微信读书").addButton((t) => - t - .setButtonText("登录") - .setCta() - .onClick(() => - e(this, void 0, void 0, function* () { - t.setDisabled(!0); - const e = new A(this); - yield e.doLogin(), this.display(); - }) - ) - ); - } - dailyNotes() { - new t.Setting(this.containerEl) - .setName("是否保存笔记到 DailyNotes?") - .setHeading() - .addToggle((e) => - e.setValue(c(h).dailyNotesToggle).onChange((e) => { - console.debug("set daily notes toggle to", e), - h.actions.setDailyNotesToggle(e), - this.display(); - }) - ); - } - dailyNotesFolder() { - new t.Setting(this.containerEl) - .setName("Daily Notes文件夹") - .setDesc("请选择Daily Notes文件夹") - .addDropdown((t) => { - const r = this.app.vault.adapter.files, - n = O()(r, (e) => "folder" === e.type); - return ( - Object.keys(n).forEach((e) => { - t.addOption(e, e); - }), - t.setValue(c(h).dailyNotesLocation).onChange((t) => - e(this, void 0, void 0, function* () { - h.actions.setDailyNotesFolder(t); - }) - ) - ); - }); - } - dailyNoteFormat() { - new t.Setting(this.containerEl) - .setName("Daily Notes Format") - .setDesc( - "请填写Daily Notes文件名格式,支持官方Daily Notes插件的格式,比如:YYYY-MM-DD \t\t\t\t 和 Periodic Notes的嵌套格式,比如 YYYY/[W]ww/YYYY-MM-DD" - ) - .addText((e) => { - e.setValue(c(h).dailyNotesFormat).onChange((e) => { - h.actions.setDailyNotesFormat(e); - }); - }); - } - insertAfter() { - new t.Setting(this.containerEl) - .setName("在特定区间之内插入") - .setDesc( - "请填写Daily Notes中希望读书笔记插入的区间,使用前记得修改Daily Notes模板🫡, 💥注意: 区间之内的内容会被覆盖,请不要在区间内修改内容," - ) - .addText((e) => { - e.setValue(c(h).insertAfter).onChange((e) => { - h.actions.setInsertAfter(e); - }); - }) - .addButton( - (e) => (e.setButtonText("至").buttonEl.style.borderStyle = "none") - ) - .addText((e) => { - e.setValue(c(h).insertBefore).onChange((e) => { - h.actions.setInsertBefore(e); - }); - }); - } - subFolderType() { - new t.Setting(this.containerEl) - .setName("文件夹分类") - .setDesc("请选择按照哪个维度对笔记文件进行分类") - .addDropdown( - (t) => ( - t.addOptions({ - "-1": "无分类", - title: "书名", - category: "图书分类", - }), - t.setValue(c(h).subFolderType).onChange((t) => - e(this, void 0, void 0, function* () { - h.actions.setSubFolderType(t); - }) - ) - ) - ); - } - fileNameType() { - new t.Setting(this.containerEl) - .setName("文件名模板") - .setDesc("你选择你喜欢的文件名模板,重复的书会在文件名后加上ID") - .addDropdown( - (t) => ( - t.addOptions({ - BOOK_NAME: "书名", - "BOOK_NAME-AUTHOR": "书名-作者名", - "BOOK_NAME-ID": "书名-bookId", - }), - t.setValue(c(h).fileNameType).onChange((t) => - e(this, void 0, void 0, function* () { - h.actions.setFileNameType(t); - }) - ) - ) - ); - } - showLogout() { - document.createRange().createContextualFragment; - const r = document - .createRange() - .createContextualFragment( - "1. 登录:点击登录按钮,在弹出页面【扫码登录】。\n 2. 注销:点击注销,在弹出书架页面右上角点击头像,下拉菜单选择【退出登录】" - ); - new t.Setting(this.containerEl) - .setName(`微信读书已登录,用户名: ${c(h).user}`) - .setDesc(r) - .addButton((t) => - t - .setButtonText("注销") - .setCta() - .onClick(() => - e(this, void 0, void 0, function* () { - t.setDisabled(!0); - const e = new N(this); - yield e.doLogout(), this.display(); - }) - ) - ) - .addButton((t) => - t - .setButtonText("Show Cookie") - .setCta() - .onClick(() => - e(this, void 0, void 0, function* () { - new S(this.app).open(); - }) - ) - ); - } - template() { - const r = document - .createRange() - .createContextualFragment( - '模板使用说明\n

\n

可用变量

\n

\n元数据变量(metaData)\n
    \n
  • {{title}} - 书名
  • \n
  • {{author}} - 作者
  • \n
  • {{cover}} - 封面
  • \n
  • {{intro}} - 书籍简介
  • \n
  • {{bookId}} - 微信图书ID
  • \n
  • {{publishTime}} - 出版时间
  • \n
  • {{noteCount}} - 划线数量
  • \n
  • {{reviewCount}} - 笔记数量
  • \n
  • {{isbn}} - ISBN
  • \n
  • {{category}} - 分类
  • \n
  • {{publisher}} - 出版社
  • \n
  • {{finish}} - 是否读完(还未支持)
  • \n
\n划线变量(chapterHighlights)\n
    \n
  • {{chapterUid}} - 章节ID
  • \n
  • {{chapterTitle}} - 章节标题
  • \n
  • {{createTime}} - 创建时间
  • \n
  • {{range}} - 划线范围
  • \n
  • {{markText}} - 划线文本
  • \n
\n笔记笔记(bookReview)\n
    \n
  • {{reviewId}} - reviewId
  • \n
  • {{chapterUid}} - 章节ID
  • \n
  • {{chapterTitle}} - 章节标题
  • \n
  • {{createTime}} - 创建时间
  • \n
  • {{abstract}} - 摘录内容
  • \n
  • {{content}} - 笔记内容
  • \n
  • {{mdContent}} - markdown笔记格式
  • \n
  • {{type}} - 类型
  • \n
  • {{range}} - 范围
  • \n
\n' - ); - new t.Setting(this.containerEl) - .setName("笔记模板") - .setDesc(r) - .addTextArea( - (t) => ( - (t.inputEl.style.width = "100%"), - (t.inputEl.style.height = "540px"), - (t.inputEl.style.fontSize = "0.8em"), - t.setValue(c(h).template).onChange((r) => - e(this, void 0, void 0, function* () { - const e = this.renderer.validate(r); - e && h.actions.setTemplate(r), - (t.inputEl.style.border = e ? "" : "2px solid red"); - }) - ), - t - ) - ); - } - noteCountLimit() { - new t.Setting(this.containerEl) - .setName("笔记划线数量最小值") - .setDesc("划线数量小于该值的笔记将不会被同步") - .addDropdown((t) => { - t.addOptions({ - "-1": "无限制", - 3: "3条", - 5: "5条", - 10: "10条", - 15: "15条", - 30: "30条", - }) - .setValue(c(h).noteCountLimit.toString()) - .onChange((t) => - e(this, void 0, void 0, function* () { - console.log("[weread plugin] new note count limit", t), - h.actions.setNoteCountLimit(+t); - }) - ); - }); - } - showDebugHelp() { - const e = this.containerEl.createDiv(); - e.setAttr("align", "center"), - e.setText( - "查看控制台日志: 使用以下快捷键快速打开控制台,查看本插件以及其他插件的运行日志" - ); - const r = this.containerEl.createDiv(); - r.setAttr("align", "center"), - (r.style.margin = "10px"), - !0 === t.Platform.isMacOS - ? r.createEl("kbd", { text: "CMD (⌘) + OPTION (⌥) + I" }) - : r.createEl("kbd", { text: "CTRL + SHIFT + I" }); - } - } - class D extends t.Plugin { - onload() { - return e(this, void 0, void 0, function* () { - console.log("load weread plugin"), h.initialise(this); - const e = new w(this.app.vault, this.app.metadataCache), - r = new _(); - (this.syncNotebooks = new x(e, r)), - this.addRibbonIcon("book-open", "Weread", (e) => { - this.startSync(); - }), - this.addCommand({ - id: "sync-weread-notes-command", - name: "Sync Weread Notes", - callback: () => { - this.startSync(); - }, - }), - this.addCommand({ - id: "Force-sync-weread-notes-command", - name: "Force Sync Weread Notes", - callback: () => { - this.startSync(!0); - }, - }), - this.addCommand({ - id: "sync-weread-notes-to-daily-note", - name: "Sync Weread Notes To Daily Note", - callback: () => { - const e = window.moment().format("YYYY-MM-DD"); - new t.Notice("开始同步微信读书笔记到DailyNotes!" + e), - this.syncNotebooks.syncNotesToJounal(e); - }, - }), - this.addSettingTab(new C(this.app, this)); - }); - } - startSync(r = !1) { - return e(this, void 0, void 0, function* () { - console.log("syncing Weread note start"), - r - ? new t.Notice("强制同步微信读书笔记开始!") - : new t.Notice("同步微信读书笔记开始!"); - try { - yield this.syncNotebooks.syncNotebooks( - r, - window.moment().format("YYYY-MM-DD") - ), - console.log("syncing Weread note finish"); - } catch (e) { - t.Platform.isDesktopApp - ? new t.Notice("同步微信读书笔记异常,请打开控制台查看详情") - : new t.Notice( - "同步微信读书笔记异常,请使用电脑端打开控制台查看详情" + e - ), - console.error("同步微信读书笔记异常", e); - } - }); - } - onunload() { - console.log("unloading weread plugin", new Date().toLocaleString()); - } - } - })(); - var i = exports; - for (var o in n) i[o] = n[o]; - n.__esModule && Object.defineProperty(i, "__esModule", { value: !0 }); -})(); +(()=>{var e={1073:e=>{e.exports={trueFunc:function(){return!0},falseFunc:function(){return!1}}},996:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.attributeRules=void 0;var n=r(1073),i=/[-[\]{}()*+?.,\\^$|#\s]/g;function o(e){return e.replace(i,"\\$&")}var a=new Set(["accept","accept-charset","align","alink","axis","bgcolor","charset","checked","clear","codetype","color","compact","declare","defer","dir","direction","disabled","enctype","face","frame","hreflang","http-equiv","lang","language","link","media","method","multiple","nohref","noresize","noshade","nowrap","readonly","rel","rev","rules","scope","scrolling","selected","shape","target","text","type","valign","valuetype","vlink"]);function s(e,t){return"boolean"==typeof e.ignoreCase?e.ignoreCase:"quirks"===e.ignoreCase?!!t.quirksMode:!t.xmlMode&&a.has(e.name)}t.attributeRules={equals:function(e,t,r){var n=r.adapter,i=t.name,o=t.value;return s(t,r)?(o=o.toLowerCase(),function(t){var r=n.getAttributeValue(t,i);return null!=r&&r.length===o.length&&r.toLowerCase()===o&&e(t)}):function(t){return n.getAttributeValue(t,i)===o&&e(t)}},hyphen:function(e,t,r){var n=r.adapter,i=t.name,o=t.value,a=o.length;return s(t,r)?(o=o.toLowerCase(),function(t){var r=n.getAttributeValue(t,i);return null!=r&&(r.length===a||"-"===r.charAt(a))&&r.substr(0,a).toLowerCase()===o&&e(t)}):function(t){var r=n.getAttributeValue(t,i);return null!=r&&(r.length===a||"-"===r.charAt(a))&&r.substr(0,a)===o&&e(t)}},element:function(e,t,r){var i=r.adapter,a=t.name,l=t.value;if(/\s/.test(l))return n.falseFunc;var c=new RegExp("(?:^|\\s)".concat(o(l),"(?:$|\\s)"),s(t,r)?"i":"");return function(t){var r=i.getAttributeValue(t,a);return null!=r&&r.length>=l.length&&c.test(r)&&e(t)}},exists:function(e,t,r){var n=t.name,i=r.adapter;return function(t){return i.hasAttrib(t,n)&&e(t)}},start:function(e,t,r){var i=r.adapter,o=t.name,a=t.value,l=a.length;return 0===l?n.falseFunc:s(t,r)?(a=a.toLowerCase(),function(t){var r=i.getAttributeValue(t,o);return null!=r&&r.length>=l&&r.substr(0,l).toLowerCase()===a&&e(t)}):function(t){var r;return!!(null===(r=i.getAttributeValue(t,o))||void 0===r?void 0:r.startsWith(a))&&e(t)}},end:function(e,t,r){var i=r.adapter,o=t.name,a=t.value,l=-a.length;return 0===l?n.falseFunc:s(t,r)?(a=a.toLowerCase(),function(t){var r;return(null===(r=i.getAttributeValue(t,o))||void 0===r?void 0:r.substr(l).toLowerCase())===a&&e(t)}):function(t){var r;return!!(null===(r=i.getAttributeValue(t,o))||void 0===r?void 0:r.endsWith(a))&&e(t)}},any:function(e,t,r){var i=r.adapter,a=t.name,l=t.value;if(""===l)return n.falseFunc;if(s(t,r)){var c=new RegExp(o(l),"i");return function(t){var r=i.getAttributeValue(t,a);return null!=r&&r.length>=l.length&&c.test(r)&&e(t)}}return function(t){var r;return!!(null===(r=i.getAttributeValue(t,a))||void 0===r?void 0:r.includes(l))&&e(t)}},not:function(e,t,r){var n=r.adapter,i=t.name,o=t.value;return""===o?function(t){return!!n.getAttributeValue(t,i)&&e(t)}:s(t,r)?(o=o.toLowerCase(),function(t){var r=n.getAttributeValue(t,i);return(null==r||r.length!==o.length||r.toLowerCase()!==o)&&e(t)}):function(t){return n.getAttributeValue(t,i)!==o&&e(t)}}}},8866:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.compileToken=t.compileUnsafe=t.compile=void 0;var i=r(7763),o=r(1073),a=n(r(7353)),s=r(7177),l=r(3621),c=r(1768);function u(e,t,r){return m("string"==typeof e?(0,i.parse)(e):e,t,r)}function p(e){return"pseudo"===e.type&&("scope"===e.name||Array.isArray(e.data)&&e.data.some((function(e){return e.some(p)})))}t.compile=function(e,t,r){var n=u(e,t,r);return(0,c.ensureIsTag)(n,t.adapter)},t.compileUnsafe=u;var d={type:i.SelectorType.Descendant},f={type:"_flexibleDescendant"},h={type:i.SelectorType.Pseudo,name:"scope",data:null};function m(e,t,r){var n;(e=e.filter((function(e){return e.length>0}))).forEach(a.default),r=null!==(n=t.context)&&void 0!==n?n:r;var i=Array.isArray(r),u=r&&(Array.isArray(r)?r:[r]);!function(e,t,r){for(var n=t.adapter,i=!!(null==r?void 0:r.every((function(e){var t=n.isTag(e)&&n.getParent(e);return e===c.PLACEHOLDER_ELEMENT||t&&n.isTag(t)}))),o=0,a=e;o0&&(0,s.isTraversal)(l[0])&&"descendant"!==l[0].type);else{if(!i||l.some(p))continue;l.unshift(d)}l.unshift(h)}}(e,t,u);var v=!1,b=e.map((function(e){if(e.length>=2){var r=e[0],n=e[1];"pseudo"!==r.type||"scope"!==r.name||(i&&"descendant"===n.type?e[1]=f:"adjacent"!==n.type&&"sibling"!==n.type||(v=!0))}return function(e,t,r){var n;return e.reduce((function(e,n){return e===o.falseFunc?o.falseFunc:(0,l.compileGeneralSelector)(e,n,t,r,m)}),null!==(n=t.rootFunc)&&void 0!==n?n:o.trueFunc)}(e,t,u)})).reduce(g,o.falseFunc);return b.shouldTestNextSiblings=v,b}function g(e,t){return t===o.falseFunc||e===o.trueFunc?e:e===o.falseFunc||t===o.trueFunc?t:function(r){return e(r)||t(r)}}t.compileToken=m},3621:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.compileGeneralSelector=void 0;var n=r(996),i=r(8677),o=r(7763);t.compileGeneralSelector=function(e,t,r,a,s){var l=r.adapter,c=r.equals;switch(t.type){case o.SelectorType.PseudoElement:throw new Error("Pseudo-elements are not supported by css-select");case o.SelectorType.ColumnCombinator:throw new Error("Column combinators are not yet supported by css-select");case o.SelectorType.Attribute:if(null!=t.namespace)throw new Error("Namespaced attributes are not yet supported by css-select");return r.xmlMode&&!r.lowerCaseAttributeNames||(t.name=t.name.toLowerCase()),n.attributeRules[t.action](e,t,r);case o.SelectorType.Pseudo:return(0,i.compilePseudoSelector)(e,t,r,a,s);case o.SelectorType.Tag:if(null!=t.namespace)throw new Error("Namespaced tag names are not yet supported by css-select");var u=t.name;return r.xmlMode&&!r.lowerCaseTags||(u=u.toLowerCase()),function(t){return l.getName(t)===u&&e(t)};case o.SelectorType.Descendant:if(!1===r.cacheResults||"undefined"==typeof WeakSet)return function(t){for(var r=t;r=l.getParent(r);)if(l.isTag(r)&&e(r))return!0;return!1};var p=new WeakSet;return function(t){for(var r=t;r=l.getParent(r);)if(!p.has(r)){if(l.isTag(r)&&e(r))return!0;p.add(r)}return!1};case"_flexibleDescendant":return function(t){var r=t;do{if(l.isTag(r)&&e(r))return!0}while(r=l.getParent(r));return!1};case o.SelectorType.Parent:return function(t){return l.getChildren(t).some((function(t){return l.isTag(t)&&e(t)}))};case o.SelectorType.Child:return function(t){var r=l.getParent(t);return null!=r&&l.isTag(r)&&e(r)};case o.SelectorType.Sibling:return function(t){for(var r=l.getSiblings(t),n=0;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isTraversal=t.procedure=void 0,t.procedure={universal:50,tag:30,attribute:1,pseudo:0,"pseudo-element":0,"column-combinator":-1,descendant:-1,child:-1,parent:-1,sibling:-1,adjacent:-1,_flexibleDescendant:-1},t.isTraversal=function(e){return t.procedure[e.type]<0}},2968:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.aliases=void 0,t.aliases={"any-link":":is(a, area, link)[href]",link:":any-link:not(:visited)",disabled:":is(\n :is(button, input, select, textarea, optgroup, option)[disabled],\n optgroup[disabled] > option,\n fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)\n )",enabled:":not(:disabled)",checked:":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)",required:":is(input, select, textarea)[required]",optional:":is(input, select, textarea):not([required])",selected:"option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)",checkbox:"[type=checkbox]",file:"[type=file]",password:"[type=password]",radio:"[type=radio]",reset:"[type=reset]",image:"[type=image]",submit:"[type=submit]",parent:":not(:empty)",header:":is(h1, h2, h3, h4, h5, h6)",button:":is(button, input[type=button])",input:":is(input, textarea, select, button)",text:"input:is(:not([type!='']), [type=text])"}},7689:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.filters=void 0;var i=n(r(7540)),o=r(1073);function a(e,t){return function(r){var n=t.getParent(r);return null!=n&&t.isTag(n)&&e(r)}}function s(e){return function(t,r,n){var i=n.adapter[e];return"function"!=typeof i?o.falseFunc:function(e){return i(e)&&t(e)}}}t.filters={contains:function(e,t,r){var n=r.adapter;return function(r){return e(r)&&n.getText(r).includes(t)}},icontains:function(e,t,r){var n=r.adapter,i=t.toLowerCase();return function(t){return e(t)&&n.getText(t).toLowerCase().includes(i)}},"nth-child":function(e,t,r){var n=r.adapter,s=r.equals,l=(0,i.default)(t);return l===o.falseFunc?o.falseFunc:l===o.trueFunc?a(e,n):function(t){for(var r=n.getSiblings(t),i=0,o=0;o=0&&!s(t,r[o]);o--)n.isTag(r[o])&&i++;return l(i)&&e(t)}},"nth-of-type":function(e,t,r){var n=r.adapter,s=r.equals,l=(0,i.default)(t);return l===o.falseFunc?o.falseFunc:l===o.trueFunc?a(e,n):function(t){for(var r=n.getSiblings(t),i=0,o=0;o=0;o--){var a=r[o];if(s(t,a))break;n.isTag(a)&&n.getName(a)===n.getName(t)&&i++}return l(i)&&e(t)}},root:function(e,t,r){var n=r.adapter;return function(t){var r=n.getParent(t);return(null==r||!n.isTag(r))&&e(t)}},scope:function(e,r,n,i){var o=n.equals;return i&&0!==i.length?1===i.length?function(t){return o(i[0],t)&&e(t)}:function(t){return i.includes(t)&&e(t)}:t.filters.root(e,r,n)},hover:s("isHovered"),visited:s("isVisited"),active:s("isActive")}},8677:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.compilePseudoSelector=t.aliases=t.pseudos=t.filters=void 0;var n=r(1073),i=r(7763),o=r(7689);Object.defineProperty(t,"filters",{enumerable:!0,get:function(){return o.filters}});var a=r(7221);Object.defineProperty(t,"pseudos",{enumerable:!0,get:function(){return a.pseudos}});var s=r(2968);Object.defineProperty(t,"aliases",{enumerable:!0,get:function(){return s.aliases}});var l=r(1768);t.compilePseudoSelector=function(e,t,r,c,u){var p=t.name,d=t.data;if(Array.isArray(d))return l.subselects[p](e,d,r,c,u);if(p in s.aliases){if(null!=d)throw new Error("Pseudo ".concat(p," doesn't have any arguments"));var f=(0,i.parse)(s.aliases[p]);return l.subselects.is(e,f,r,c,u)}if(p in o.filters)return o.filters[p](e,d,r,c);if(p in a.pseudos){var h=a.pseudos[p];return(0,a.verifyPseudoArgs)(h,p,d),h===n.falseFunc?n.falseFunc:e===n.trueFunc?function(e){return h(e,r,d)}:function(t){return h(t,r,d)&&e(t)}}throw new Error("unmatched pseudo-class :".concat(p))}},7221:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.verifyPseudoArgs=t.pseudos=void 0,t.pseudos={empty:function(e,t){var r=t.adapter;return!r.getChildren(e).some((function(e){return r.isTag(e)||""!==r.getText(e)}))},"first-child":function(e,t){var r=t.adapter,n=t.equals,i=r.getSiblings(e).find((function(e){return r.isTag(e)}));return null!=i&&n(e,i)},"last-child":function(e,t){for(var r=t.adapter,n=t.equals,i=r.getSiblings(e),o=i.length-1;o>=0;o--){if(n(e,i[o]))return!0;if(r.isTag(i[o]))break}return!1},"first-of-type":function(e,t){for(var r=t.adapter,n=t.equals,i=r.getSiblings(e),o=r.getName(e),a=0;a=0;a--){var s=i[a];if(n(e,s))return!0;if(r.isTag(s)&&r.getName(s)===o)break}return!1},"only-of-type":function(e,t){var r=t.adapter,n=t.equals,i=r.getName(e);return r.getSiblings(e).every((function(t){return n(e,t)||!r.isTag(t)||r.getName(t)!==i}))},"only-child":function(e,t){var r=t.adapter,n=t.equals;return r.getSiblings(e).every((function(t){return n(e,t)||!r.isTag(t)}))}},t.verifyPseudoArgs=function(e,t,r){if(null===r){if(e.length>2)throw new Error("pseudo-selector :".concat(t," requires an argument"))}else if(2===e.length)throw new Error("pseudo-selector :".concat(t," doesn't have any arguments"))}},1768:function(e,t,r){"use strict";var n=this&&this.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var n,i=0,o=t.length;i{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(7763),i=r(7177),o={exists:10,equals:8,not:7,start:6,end:6,any:5,hyphen:4,element:4};function a(e){var t=i.procedure[e.type];if(e.type===n.SelectorType.Attribute)(t=o[e.action])===o.equals&&"id"===e.name&&(t=9),e.ignoreCase&&(t>>=1);else if(e.type===n.SelectorType.Pseudo)if(e.data)if("has"===e.name||"contains"===e.name)t=0;else if(Array.isArray(e.data)){t=0;for(var r=0;rt&&(t=s)}e.data.length>1&&t>0&&(t-=1)}else t=1;else t=3;return t}t.default=function(e){for(var t=e.map(a),r=1;r=0&&n{"use strict";var n;r.r(t),r.d(t,{AttributeAction:()=>o,IgnoreCaseMode:()=>i,SelectorType:()=>n,isTraversal:()=>u,parse:()=>g,stringify:()=>T}),function(e){e.Attribute="attribute",e.Pseudo="pseudo",e.PseudoElement="pseudo-element",e.Tag="tag",e.Universal="universal",e.Adjacent="adjacent",e.Child="child",e.Descendant="descendant",e.Parent="parent",e.Sibling="sibling",e.ColumnCombinator="column-combinator"}(n||(n={}));const i={Unknown:null,QuirksMode:"quirks",IgnoreCase:!0,CaseSensitive:!1};var o;!function(e){e.Any="any",e.Element="element",e.End="end",e.Equals="equals",e.Exists="exists",e.Hyphen="hyphen",e.Not="not",e.Start="start"}(o||(o={}));const a=/^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/,s=/\\([\da-f]{1,6}\s?|(\s)|.)/gi,l=new Map([[126,o.Element],[94,o.Start],[36,o.End],[42,o.Any],[33,o.Not],[124,o.Hyphen]]),c=new Set(["has","not","matches","is","where","host","host-context"]);function u(e){switch(e.type){case n.Adjacent:case n.Child:case n.Descendant:case n.Parent:case n.Sibling:case n.ColumnCombinator:return!0;default:return!1}}const p=new Set(["contains","icontains"]);function d(e,t,r){const n=parseInt(t,16)-65536;return n!=n||r?t:n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320)}function f(e){return e.replace(s,d)}function h(e){return 39===e||34===e}function m(e){return 32===e||9===e||10===e||12===e||13===e}function g(e){const t=[],r=v(t,`${e}`,0);if(r0&&r0&&u(i[i.length-1]))throw new Error("Did not expect successive traversals.")}function w(e){i.length>0&&i[i.length-1].type===n.Descendant?i[i.length-1].type=e:(y(),i.push({type:e}))}function E(e,t){i.push({type:n.Attribute,name:e,action:t,value:s(1),namespace:null,ignoreCase:"quirks"})}function x(){if(i.length&&i[i.length-1].type===n.Descendant&&i.pop(),0===i.length)throw new Error("Empty sub-selector");e.push(i)}if(d(0),t.length===r)return r;e:for(;re.charCodeAt(0)))),E=new Set(y.map((e=>e.charCodeAt(0)))),x=new Set([...y,"~","^","$","*","+","!","|",":","[","]"," ","."].map((e=>e.charCodeAt(0))));function T(e){return e.map((e=>e.map(k).join(""))).join(", ")}function k(e,t,r){switch(e.type){case n.Child:return 0===t?"> ":" > ";case n.Parent:return 0===t?"< ":" < ";case n.Sibling:return 0===t?"~ ":" ~ ";case n.Adjacent:return 0===t?"+ ":" + ";case n.Descendant:return" ";case n.ColumnCombinator:return 0===t?"|| ":" || ";case n.Universal:return"*"===e.namespace&&t+10?n+e.slice(r):e}},7837:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.attributeNames=t.elementNames=void 0,t.elementNames=new Map([["altglyph","altGlyph"],["altglyphdef","altGlyphDef"],["altglyphitem","altGlyphItem"],["animatecolor","animateColor"],["animatemotion","animateMotion"],["animatetransform","animateTransform"],["clippath","clipPath"],["feblend","feBlend"],["fecolormatrix","feColorMatrix"],["fecomponenttransfer","feComponentTransfer"],["fecomposite","feComposite"],["feconvolvematrix","feConvolveMatrix"],["fediffuselighting","feDiffuseLighting"],["fedisplacementmap","feDisplacementMap"],["fedistantlight","feDistantLight"],["fedropshadow","feDropShadow"],["feflood","feFlood"],["fefunca","feFuncA"],["fefuncb","feFuncB"],["fefuncg","feFuncG"],["fefuncr","feFuncR"],["fegaussianblur","feGaussianBlur"],["feimage","feImage"],["femerge","feMerge"],["femergenode","feMergeNode"],["femorphology","feMorphology"],["feoffset","feOffset"],["fepointlight","fePointLight"],["fespecularlighting","feSpecularLighting"],["fespotlight","feSpotLight"],["fetile","feTile"],["feturbulence","feTurbulence"],["foreignobject","foreignObject"],["glyphref","glyphRef"],["lineargradient","linearGradient"],["radialgradient","radialGradient"],["textpath","textPath"]]),t.attributeNames=new Map([["definitionurl","definitionURL"],["attributename","attributeName"],["attributetype","attributeType"],["basefrequency","baseFrequency"],["baseprofile","baseProfile"],["calcmode","calcMode"],["clippathunits","clipPathUnits"],["diffuseconstant","diffuseConstant"],["edgemode","edgeMode"],["filterunits","filterUnits"],["glyphref","glyphRef"],["gradienttransform","gradientTransform"],["gradientunits","gradientUnits"],["kernelmatrix","kernelMatrix"],["kernelunitlength","kernelUnitLength"],["keypoints","keyPoints"],["keysplines","keySplines"],["keytimes","keyTimes"],["lengthadjust","lengthAdjust"],["limitingconeangle","limitingConeAngle"],["markerheight","markerHeight"],["markerunits","markerUnits"],["markerwidth","markerWidth"],["maskcontentunits","maskContentUnits"],["maskunits","maskUnits"],["numoctaves","numOctaves"],["pathlength","pathLength"],["patterncontentunits","patternContentUnits"],["patterntransform","patternTransform"],["patternunits","patternUnits"],["pointsatx","pointsAtX"],["pointsaty","pointsAtY"],["pointsatz","pointsAtZ"],["preservealpha","preserveAlpha"],["preserveaspectratio","preserveAspectRatio"],["primitiveunits","primitiveUnits"],["refx","refX"],["refy","refY"],["repeatcount","repeatCount"],["repeatdur","repeatDur"],["requiredextensions","requiredExtensions"],["requiredfeatures","requiredFeatures"],["specularconstant","specularConstant"],["specularexponent","specularExponent"],["spreadmethod","spreadMethod"],["startoffset","startOffset"],["stddeviation","stdDeviation"],["stitchtiles","stitchTiles"],["surfacescale","surfaceScale"],["systemlanguage","systemLanguage"],["tablevalues","tableValues"],["targetx","targetX"],["targety","targetY"],["textlength","textLength"],["viewbox","viewBox"],["viewtarget","viewTarget"],["xchannelselector","xChannelSelector"],["ychannelselector","yChannelSelector"],["zoomandpan","zoomAndPan"]])},7220:function(e,t,r){"use strict";var n=this&&this.__assign||function(){return n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r";case s.Comment:return"\x3c!--"+e.data+"--\x3e";case s.CDATA:return function(e){return""}(e);case s.Script:case s.Style:case s.Tag:return function(e,t){var r;"foreign"===t.xmlMode&&(e.name=null!==(r=c.elementNames.get(e.name))&&void 0!==r?r:e.name,e.parent&&h.has(e.parent.name)&&(t=n(n({},t),{xmlMode:!1}))),!t.xmlMode&&m.has(e.name)&&(t=n(n({},t),{xmlMode:"foreign"}));var i="<"+e.name,o=function(e,t){if(e)return Object.keys(e).map((function(r){var n,i,o=null!==(n=e[r])&&void 0!==n?n:"";return"foreign"===t.xmlMode&&(r=null!==(i=c.attributeNames.get(r))&&void 0!==i?i:r),t.emptyAttrs||t.xmlMode||""!==o?r+'="'+(!1!==t.decodeEntities?l.encodeXML(o):o.replace(/"/g,"""))+'"':r})).join(" ")}(e.attribs,t);return o&&(i+=" "+o),0===e.children.length&&(t.xmlMode?!1!==t.selfClosingTags:t.selfClosingTags&&p.has(e.name))?(t.xmlMode||(i+=" "),i+="/>"):(i+=">",e.children.length>0&&(i+=d(e.children,t)),!t.xmlMode&&p.has(e.name)||(i+="")),i}(e,t);case s.Text:return function(e,t){var r=e.data||"";return!1===t.decodeEntities||!t.xmlMode&&e.parent&&u.has(e.parent.name)||(r=l.encodeXML(r)),r}(e,t)}}t.default=d;var h=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),m=new Set(["svg","math"])},9960:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.Doctype=t.CDATA=t.Tag=t.Style=t.Script=t.Comment=t.Directive=t.Text=t.Root=t.isTag=t.ElementType=void 0,function(e){e.Root="root",e.Text="text",e.Directive="directive",e.Comment="comment",e.Script="script",e.Style="style",e.Tag="tag",e.CDATA="cdata",e.Doctype="doctype"}(r=t.ElementType||(t.ElementType={})),t.isTag=function(e){return e.type===r.Tag||e.type===r.Script||e.type===r.Style},t.Root=r.Root,t.Text=r.Text,t.Directive=r.Directive,t.Comment=r.Comment,t.Script=r.Script,t.Style=r.Style,t.Tag=r.Tag,t.CDATA=r.CDATA,t.Doctype=r.Doctype},7915:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.DomHandler=void 0;var o=r(9960),a=r(7790);i(r(7790),t);var s=/\s+/g,l={normalizeWhitespace:!1,withStartIndices:!1,withEndIndices:!1,xmlMode:!1},c=function(){function e(e,t,r){this.dom=[],this.root=new a.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,"function"==typeof t&&(r=t,t=l),"object"==typeof e&&(t=e,e=void 0),this.callback=null!=e?e:null,this.options=null!=t?t:l,this.elementCB=null!=r?r:null}return e.prototype.onparserinit=function(e){this.parser=e},e.prototype.onreset=function(){this.dom=[],this.root=new a.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null},e.prototype.onend=function(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))},e.prototype.onerror=function(e){this.handleCallback(e)},e.prototype.onclosetag=function(){this.lastNode=null;var e=this.tagStack.pop();this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(e)},e.prototype.onopentag=function(e,t){var r=this.options.xmlMode?o.ElementType.Tag:void 0,n=new a.Element(e,t,void 0,r);this.addNode(n),this.tagStack.push(n)},e.prototype.ontext=function(e){var t=this.options.normalizeWhitespace,r=this.lastNode;if(r&&r.type===o.ElementType.Text)t?r.data=(r.data+e).replace(s," "):r.data+=e,this.options.withEndIndices&&(r.endIndex=this.parser.endIndex);else{t&&(e=e.replace(s," "));var n=new a.Text(e);this.addNode(n),this.lastNode=n}},e.prototype.oncomment=function(e){if(this.lastNode&&this.lastNode.type===o.ElementType.Comment)this.lastNode.data+=e;else{var t=new a.Comment(e);this.addNode(t),this.lastNode=t}},e.prototype.oncommentend=function(){this.lastNode=null},e.prototype.oncdatastart=function(){var e=new a.Text(""),t=new a.NodeWithChildren(o.ElementType.CDATA,[e]);this.addNode(t),e.parent=t,this.lastNode=e},e.prototype.oncdataend=function(){this.lastNode=null},e.prototype.onprocessinginstruction=function(e,t){var r=new a.ProcessingInstruction(e,t);this.addNode(r)},e.prototype.handleCallback=function(e){if("function"==typeof this.callback)this.callback(e,this.dom);else if(e)throw e},e.prototype.addNode=function(e){var t=this.tagStack[this.tagStack.length-1],r=t.children[t.children.length-1];this.options.withStartIndices&&(e.startIndex=this.parser.startIndex),this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),t.children.push(e),r&&(e.prev=r,r.next=e),e.parent=t,this.lastNode=null},e}();t.DomHandler=c,t.default=c},7790:function(e,t,r){"use strict";var n,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),o=this&&this.__assign||function(){return o=Object.assign||function(e){for(var t,r=1,n=arguments.length;r0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:!1,configurable:!0}),t}(l);t.NodeWithChildren=f;var h=function(e){function t(t){return e.call(this,a.ElementType.Root,t)||this}return i(t,e),t}(f);t.Document=h;var m=function(e){function t(t,r,n,i){void 0===n&&(n=[]),void 0===i&&(i="script"===t?a.ElementType.Script:"style"===t?a.ElementType.Style:a.ElementType.Tag);var o=e.call(this,i,n)||this;return o.name=t,o.attribs=r,o}return i(t,e),Object.defineProperty(t.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attributes",{get:function(){var e=this;return Object.keys(this.attribs).map((function(t){var r,n;return{name:t,value:e.attribs[t],namespace:null===(r=e["x-attribsNamespace"])||void 0===r?void 0:r[t],prefix:null===(n=e["x-attribsPrefix"])||void 0===n?void 0:n[t]}}))},enumerable:!1,configurable:!0}),t}(f);function g(e){return(0,a.isTag)(e)}function v(e){return e.type===a.ElementType.CDATA}function b(e){return e.type===a.ElementType.Text}function y(e){return e.type===a.ElementType.Comment}function w(e){return e.type===a.ElementType.Directive}function E(e){return e.type===a.ElementType.Root}function x(e,t){var r;if(void 0===t&&(t=!1),b(e))r=new u(e.data);else if(y(e))r=new p(e.data);else if(g(e)){var n=t?T(e.children):[],i=new m(e.name,o({},e.attribs),n);n.forEach((function(e){return e.parent=i})),null!=e.namespace&&(i.namespace=e.namespace),e["x-attribsNamespace"]&&(i["x-attribsNamespace"]=o({},e["x-attribsNamespace"])),e["x-attribsPrefix"]&&(i["x-attribsPrefix"]=o({},e["x-attribsPrefix"])),r=i}else if(v(e)){n=t?T(e.children):[];var s=new f(a.ElementType.CDATA,n);n.forEach((function(e){return e.parent=s})),r=s}else if(E(e)){n=t?T(e.children):[];var l=new h(n);n.forEach((function(e){return e.parent=l})),e["x-mode"]&&(l["x-mode"]=e["x-mode"]),r=l}else{if(!w(e))throw new Error("Not implemented yet: ".concat(e.type));var c=new d(e.name,e.data);null!=e["x-name"]&&(c["x-name"]=e["x-name"],c["x-publicId"]=e["x-publicId"],c["x-systemId"]=e["x-systemId"]),r=c}return r.startIndex=e.startIndex,r.endIndex=e.endIndex,null!=e.sourceCodeLocation&&(r.sourceCodeLocation=e.sourceCodeLocation),r}function T(e){for(var t=e.map((function(e){return x(e,!0)})),r=1;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getFeed=void 0;var n=r(3346),i=r(3905);t.getFeed=function(e){var t=l(p,e);return t?"feed"===t.name?function(e){var t,r=e.children,n={type:"atom",items:(0,i.getElementsByTagName)("entry",r).map((function(e){var t,r=e.children,n={media:s(r)};u(n,"id","id",r),u(n,"title","title",r);var i=null===(t=l("link",r))||void 0===t?void 0:t.attribs.href;i&&(n.link=i);var o=c("summary",r)||c("content",r);o&&(n.description=o);var a=c("updated",r);return a&&(n.pubDate=new Date(a)),n}))};u(n,"id","id",r),u(n,"title","title",r);var o=null===(t=l("link",r))||void 0===t?void 0:t.attribs.href;o&&(n.link=o),u(n,"description","subtitle",r);var a=c("updated",r);return a&&(n.updated=new Date(a)),u(n,"author","email",r,!0),n}(t):function(e){var t,r,n=null!==(r=null===(t=l("channel",e.children))||void 0===t?void 0:t.children)&&void 0!==r?r:[],o={type:e.name.substr(0,3),id:"",items:(0,i.getElementsByTagName)("item",e.children).map((function(e){var t=e.children,r={media:s(t)};u(r,"id","guid",t),u(r,"title","title",t),u(r,"link","link",t),u(r,"description","description",t);var n=c("pubDate",t);return n&&(r.pubDate=new Date(n)),r}))};u(o,"title","title",n),u(o,"link","link",n),u(o,"description","description",n);var a=c("lastBuildDate",n);return a&&(o.updated=new Date(a)),u(o,"author","managingEditor",n,!0),o}(t):null};var o=["url","type","lang"],a=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"];function s(e){return(0,i.getElementsByTagName)("media:content",e).map((function(e){for(var t=e.attribs,r={medium:t.medium,isDefault:!!t.isDefault},n=0,i=o;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.uniqueSort=t.compareDocumentPosition=t.removeSubsets=void 0;var n=r(7915);function i(e,t){var r=[],i=[];if(e===t)return 0;for(var o=(0,n.hasChildren)(e)?e:e.parent;o;)r.unshift(o),o=o.parent;for(o=(0,n.hasChildren)(t)?t:t.parent;o;)i.unshift(o),o=o.parent;for(var a=Math.min(r.length,i.length),s=0;sc.indexOf(p)?l===t?20:4:l===e?10:2}t.removeSubsets=function(e){for(var t=e.length;--t>=0;){var r=e[t];if(t>0&&e.lastIndexOf(r,t-1)>=0)e.splice(t,1);else for(var n=r.parent;n;n=n.parent)if(e.includes(n)){e.splice(t,1);break}}return e},t.compareDocumentPosition=i,t.uniqueSort=function(e){return e=e.filter((function(e,t,r){return!r.includes(e,t+1)})),e.sort((function(e,t){var r=i(e,t);return 2&r?-1:4&r?1:0})),e}},9432:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.hasChildren=t.isDocument=t.isComment=t.isText=t.isCDATA=t.isTag=void 0,i(r(3346),t),i(r(5010),t),i(r(6765),t),i(r(8043),t),i(r(3905),t),i(r(4975),t),i(r(6996),t);var o=r(7915);Object.defineProperty(t,"isTag",{enumerable:!0,get:function(){return o.isTag}}),Object.defineProperty(t,"isCDATA",{enumerable:!0,get:function(){return o.isCDATA}}),Object.defineProperty(t,"isText",{enumerable:!0,get:function(){return o.isText}}),Object.defineProperty(t,"isComment",{enumerable:!0,get:function(){return o.isComment}}),Object.defineProperty(t,"isDocument",{enumerable:!0,get:function(){return o.isDocument}}),Object.defineProperty(t,"hasChildren",{enumerable:!0,get:function(){return o.hasChildren}})},3905:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getElementsByTagType=t.getElementsByTagName=t.getElementById=t.getElements=t.testElement=void 0;var n=r(7915),i=r(8043),o={tag_name:function(e){return"function"==typeof e?function(t){return(0,n.isTag)(t)&&e(t.name)}:"*"===e?n.isTag:function(t){return(0,n.isTag)(t)&&t.name===e}},tag_type:function(e){return"function"==typeof e?function(t){return e(t.type)}:function(t){return t.type===e}},tag_contains:function(e){return"function"==typeof e?function(t){return(0,n.isText)(t)&&e(t.data)}:function(t){return(0,n.isText)(t)&&t.data===e}}};function a(e,t){return"function"==typeof t?function(r){return(0,n.isTag)(r)&&t(r.attribs[e])}:function(r){return(0,n.isTag)(r)&&r.attribs[e]===t}}function s(e,t){return function(r){return e(r)||t(r)}}function l(e){var t=Object.keys(e).map((function(t){var r=e[t];return Object.prototype.hasOwnProperty.call(o,t)?o[t](r):a(t,r)}));return 0===t.length?null:t.reduce(s)}t.testElement=function(e,t){var r=l(e);return!r||r(t)},t.getElements=function(e,t,r,n){void 0===n&&(n=1/0);var o=l(e);return o?(0,i.filter)(o,t,r,n):[]},t.getElementById=function(e,t,r){return void 0===r&&(r=!0),Array.isArray(t)||(t=[t]),(0,i.findOne)(a("id",e),t,r)},t.getElementsByTagName=function(e,t,r,n){return void 0===r&&(r=!0),void 0===n&&(n=1/0),(0,i.filter)(o.tag_name(e),t,r,n)},t.getElementsByTagType=function(e,t,r,n){return void 0===r&&(r=!0),void 0===n&&(n=1/0),(0,i.filter)(o.tag_type(e),t,r,n)}},6765:(e,t)=>{"use strict";function r(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){var t=e.parent.children;t.splice(t.lastIndexOf(e),1)}}Object.defineProperty(t,"__esModule",{value:!0}),t.prepend=t.prependChild=t.append=t.appendChild=t.replaceElement=t.removeElement=void 0,t.removeElement=r,t.replaceElement=function(e,t){var r=t.prev=e.prev;r&&(r.next=t);var n=t.next=e.next;n&&(n.prev=t);var i=t.parent=e.parent;if(i){var o=i.children;o[o.lastIndexOf(e)]=t}},t.appendChild=function(e,t){if(r(t),t.next=null,t.parent=e,e.children.push(t)>1){var n=e.children[e.children.length-2];n.next=t,t.prev=n}else t.prev=null},t.append=function(e,t){r(t);var n=e.parent,i=e.next;if(t.next=i,t.prev=e,e.next=t,t.parent=n,i){if(i.prev=t,n){var o=n.children;o.splice(o.lastIndexOf(i),0,t)}}else n&&n.children.push(t)},t.prependChild=function(e,t){if(r(t),t.parent=e,t.prev=null,1!==e.children.unshift(t)){var n=e.children[1];n.prev=t,t.next=n}else t.next=null},t.prepend=function(e,t){r(t);var n=e.parent;if(n){var i=n.children;i.splice(i.indexOf(e),0,t)}e.prev&&(e.prev.next=t),t.parent=n,t.prev=e.prev,t.next=e,e.prev=t}},8043:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.findAll=t.existsOne=t.findOne=t.findOneChild=t.find=t.filter=void 0;var n=r(7915);function i(e,t,r,o){for(var a=[],s=0,l=t;s0){var u=i(e,c.children,r,o);if(a.push.apply(a,u),(o-=u.length)<=0)break}}return a}t.filter=function(e,t,r,n){return void 0===r&&(r=!0),void 0===n&&(n=1/0),Array.isArray(t)||(t=[t]),i(e,t,r,n)},t.find=i,t.findOneChild=function(e,t){return t.find(e)},t.findOne=function e(t,r,i){void 0===i&&(i=!0);for(var o=null,a=0;a0&&(o=e(t,s.children)))}return o},t.existsOne=function e(t,r){return r.some((function(r){return(0,n.isTag)(r)&&(t(r)||r.children.length>0&&e(t,r.children))}))},t.findAll=function(e,t){for(var r,i,o=[],a=t.filter(n.isTag);i=a.shift();){var s=null===(r=i.children)||void 0===r?void 0:r.filter(n.isTag);s&&s.length>0&&a.unshift.apply(a,s),e(i)&&o.push(i)}return o}},3346:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.innerText=t.textContent=t.getText=t.getInnerHTML=t.getOuterHTML=void 0;var i=r(7915),o=n(r(7220)),a=r(9960);function s(e,t){return(0,o.default)(e,t)}t.getOuterHTML=s,t.getInnerHTML=function(e,t){return(0,i.hasChildren)(e)?e.children.map((function(e){return s(e,t)})).join(""):""},t.getText=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,i.isTag)(t)?"br"===t.name?"\n":e(t.children):(0,i.isCDATA)(t)?e(t.children):(0,i.isText)(t)?t.data:""},t.textContent=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,i.hasChildren)(t)&&!(0,i.isComment)(t)?e(t.children):(0,i.isText)(t)?t.data:""},t.innerText=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,i.hasChildren)(t)&&(t.type===a.ElementType.Tag||(0,i.isCDATA)(t))?e(t.children):(0,i.isText)(t)?t.data:""}},5010:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.prevElementSibling=t.nextElementSibling=t.getName=t.hasAttrib=t.getAttributeValue=t.getSiblings=t.getParent=t.getChildren=void 0;var n=r(7915),i=[];function o(e){var t;return null!==(t=e.children)&&void 0!==t?t:i}function a(e){return e.parent||null}t.getChildren=o,t.getParent=a,t.getSiblings=function(e){var t=a(e);if(null!=t)return o(t);for(var r=[e],n=e.prev,i=e.next;null!=n;)r.unshift(n),n=n.prev;for(;null!=i;)r.push(i),i=i.next;return r},t.getAttributeValue=function(e,t){var r;return null===(r=e.attribs)||void 0===r?void 0:r[t]},t.hasAttrib=function(e,t){return null!=e.attribs&&Object.prototype.hasOwnProperty.call(e.attribs,t)&&null!=e.attribs[t]},t.getName=function(e){return e.name},t.nextElementSibling=function(e){for(var t=e.next;null!==t&&!(0,n.isTag)(t);)t=t.next;return t},t.prevElementSibling=function(e){for(var t=e.prev;null!==t&&!(0,n.isTag)(t);)t=t.prev;return t}},4076:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decodeHTML=t.decodeHTMLStrict=t.decodeXML=void 0;var i=n(r(9323)),o=n(r(9591)),a=n(r(2586)),s=n(r(26)),l=/&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g;function c(e){var t=p(e);return function(e){return String(e).replace(l,t)}}t.decodeXML=c(a.default),t.decodeHTMLStrict=c(i.default);var u=function(e,t){return e65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+String.fromCharCode(e)};t.default=function(e){return e>=55296&&e<=57343||e>1114111?"�":(e in i.default&&(e=i.default[e]),o(e))}},7322:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.escapeUTF8=t.escape=t.encodeNonAsciiHTML=t.encodeHTML=t.encodeXML=void 0;var i=u(n(r(2586)).default),o=p(i);t.encodeXML=g(i);var a,s,l=u(n(r(9323)).default),c=p(l);function u(e){return Object.keys(e).sort().reduce((function(t,r){return t[e[r]]="&"+r+";",t}),{})}function p(e){for(var t=[],r=[],n=0,i=Object.keys(e);n1?f(e):e.charCodeAt(0)).toString(16).toUpperCase()+";"}var m=new RegExp(o.source+"|"+d.source,"g");function g(e){return function(t){return t.replace(m,(function(t){return e[t]||h(t)}))}}t.escape=function(e){return e.replace(m,h)},t.escapeUTF8=function(e){return e.replace(o,h)}},5863:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodeXMLStrict=t.decodeHTML5Strict=t.decodeHTML4Strict=t.decodeHTML5=t.decodeHTML4=t.decodeHTMLStrict=t.decodeHTML=t.decodeXML=t.encodeHTML5=t.encodeHTML4=t.escapeUTF8=t.escape=t.encodeNonAsciiHTML=t.encodeHTML=t.encodeXML=t.encode=t.decodeStrict=t.decode=void 0;var n=r(4076),i=r(7322);t.decode=function(e,t){return(!t||t<=0?n.decodeXML:n.decodeHTML)(e)},t.decodeStrict=function(e,t){return(!t||t<=0?n.decodeXML:n.decodeHTMLStrict)(e)},t.encode=function(e,t){return(!t||t<=0?i.encodeXML:i.encodeHTML)(e)};var o=r(7322);Object.defineProperty(t,"encodeXML",{enumerable:!0,get:function(){return o.encodeXML}}),Object.defineProperty(t,"encodeHTML",{enumerable:!0,get:function(){return o.encodeHTML}}),Object.defineProperty(t,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return o.encodeNonAsciiHTML}}),Object.defineProperty(t,"escape",{enumerable:!0,get:function(){return o.escape}}),Object.defineProperty(t,"escapeUTF8",{enumerable:!0,get:function(){return o.escapeUTF8}}),Object.defineProperty(t,"encodeHTML4",{enumerable:!0,get:function(){return o.encodeHTML}}),Object.defineProperty(t,"encodeHTML5",{enumerable:!0,get:function(){return o.encodeHTML}});var a=r(4076);Object.defineProperty(t,"decodeXML",{enumerable:!0,get:function(){return a.decodeXML}}),Object.defineProperty(t,"decodeHTML",{enumerable:!0,get:function(){return a.decodeHTML}}),Object.defineProperty(t,"decodeHTMLStrict",{enumerable:!0,get:function(){return a.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTML4",{enumerable:!0,get:function(){return a.decodeHTML}}),Object.defineProperty(t,"decodeHTML5",{enumerable:!0,get:function(){return a.decodeHTML}}),Object.defineProperty(t,"decodeHTML4Strict",{enumerable:!0,get:function(){return a.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTML5Strict",{enumerable:!0,get:function(){return a.decodeHTMLStrict}}),Object.defineProperty(t,"decodeXMLStrict",{enumerable:!0,get:function(){return a.decodeXML}})},6492:function(e,t,r){var n;e=r.nmd(e),function(i){var o=(e&&e.exports,"object"==typeof global&&global);o.global!==o&&o.window;var a=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,s=/[\x01-\x7F]/g,l=/[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,c=/<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g,u={"­":"shy","‌":"zwnj","‍":"zwj","‎":"lrm","⁣":"ic","⁢":"it","⁡":"af","‏":"rlm","​":"ZeroWidthSpace","⁠":"NoBreak","̑":"DownBreve","⃛":"tdot","⃜":"DotDot","\t":"Tab","\n":"NewLine"," ":"puncsp"," ":"MediumSpace"," ":"thinsp"," ":"hairsp"," ":"emsp13"," ":"ensp"," ":"emsp14"," ":"emsp"," ":"numsp"," ":"nbsp","  ":"ThickSpace","‾":"oline",_:"lowbar","‐":"dash","–":"ndash","—":"mdash","―":"horbar",",":"comma",";":"semi","⁏":"bsemi",":":"colon","⩴":"Colone","!":"excl","¡":"iexcl","?":"quest","¿":"iquest",".":"period","‥":"nldr","…":"mldr","·":"middot","'":"apos","‘":"lsquo","’":"rsquo","‚":"sbquo","‹":"lsaquo","›":"rsaquo",'"':"quot","“":"ldquo","”":"rdquo","„":"bdquo","«":"laquo","»":"raquo","(":"lpar",")":"rpar","[":"lsqb","]":"rsqb","{":"lcub","}":"rcub","⌈":"lceil","⌉":"rceil","⌊":"lfloor","⌋":"rfloor","⦅":"lopar","⦆":"ropar","⦋":"lbrke","⦌":"rbrke","⦍":"lbrkslu","⦎":"rbrksld","⦏":"lbrksld","⦐":"rbrkslu","⦑":"langd","⦒":"rangd","⦓":"lparlt","⦔":"rpargt","⦕":"gtlPar","⦖":"ltrPar","⟦":"lobrk","⟧":"robrk","⟨":"lang","⟩":"rang","⟪":"Lang","⟫":"Rang","⟬":"loang","⟭":"roang","❲":"lbbrk","❳":"rbbrk","‖":"Vert","§":"sect","¶":"para","@":"commat","*":"ast","/":"sol",undefined:null,"&":"amp","#":"num","%":"percnt","‰":"permil","‱":"pertenk","†":"dagger","‡":"Dagger","•":"bull","⁃":"hybull","′":"prime","″":"Prime","‴":"tprime","⁗":"qprime","‵":"bprime","⁁":"caret","`":"grave","´":"acute","˜":"tilde","^":"Hat","¯":"macr","˘":"breve","˙":"dot","¨":"die","˚":"ring","˝":"dblac","¸":"cedil","˛":"ogon",ˆ:"circ",ˇ:"caron","°":"deg","©":"copy","®":"reg","℗":"copysr",℘:"wp","℞":"rx","℧":"mho","℩":"iiota","←":"larr","↚":"nlarr","→":"rarr","↛":"nrarr","↑":"uarr","↓":"darr","↔":"harr","↮":"nharr","↕":"varr","↖":"nwarr","↗":"nearr","↘":"searr","↙":"swarr","↝":"rarrw","↝̸":"nrarrw","↞":"Larr","↟":"Uarr","↠":"Rarr","↡":"Darr","↢":"larrtl","↣":"rarrtl","↤":"mapstoleft","↥":"mapstoup","↦":"map","↧":"mapstodown","↩":"larrhk","↪":"rarrhk","↫":"larrlp","↬":"rarrlp","↭":"harrw","↰":"lsh","↱":"rsh","↲":"ldsh","↳":"rdsh","↵":"crarr","↶":"cularr","↷":"curarr","↺":"olarr","↻":"orarr","↼":"lharu","↽":"lhard","↾":"uharr","↿":"uharl","⇀":"rharu","⇁":"rhard","⇂":"dharr","⇃":"dharl","⇄":"rlarr","⇅":"udarr","⇆":"lrarr","⇇":"llarr","⇈":"uuarr","⇉":"rrarr","⇊":"ddarr","⇋":"lrhar","⇌":"rlhar","⇐":"lArr","⇍":"nlArr","⇑":"uArr","⇒":"rArr","⇏":"nrArr","⇓":"dArr","⇔":"iff","⇎":"nhArr","⇕":"vArr","⇖":"nwArr","⇗":"neArr","⇘":"seArr","⇙":"swArr","⇚":"lAarr","⇛":"rAarr","⇝":"zigrarr","⇤":"larrb","⇥":"rarrb","⇵":"duarr","⇽":"loarr","⇾":"roarr","⇿":"hoarr","∀":"forall","∁":"comp","∂":"part","∂̸":"npart","∃":"exist","∄":"nexist","∅":"empty","∇":"Del","∈":"in","∉":"notin","∋":"ni","∌":"notni","϶":"bepsi","∏":"prod","∐":"coprod","∑":"sum","+":"plus","±":"pm","÷":"div","×":"times","<":"lt","≮":"nlt","<⃒":"nvlt","=":"equals","≠":"ne","=⃥":"bne","⩵":"Equal",">":"gt","≯":"ngt",">⃒":"nvgt","¬":"not","|":"vert","¦":"brvbar","−":"minus","∓":"mp","∔":"plusdo","⁄":"frasl","∖":"setmn","∗":"lowast","∘":"compfn","√":"Sqrt","∝":"prop","∞":"infin","∟":"angrt","∠":"ang","∠⃒":"nang","∡":"angmsd","∢":"angsph","∣":"mid","∤":"nmid","∥":"par","∦":"npar","∧":"and","∨":"or","∩":"cap","∩︀":"caps","∪":"cup","∪︀":"cups","∫":"int","∬":"Int","∭":"tint","⨌":"qint","∮":"oint","∯":"Conint","∰":"Cconint","∱":"cwint","∲":"cwconint","∳":"awconint","∴":"there4","∵":"becaus","∶":"ratio","∷":"Colon","∸":"minusd","∺":"mDDot","∻":"homtht","∼":"sim","≁":"nsim","∼⃒":"nvsim","∽":"bsim","∽̱":"race","∾":"ac","∾̳":"acE","∿":"acd","≀":"wr","≂":"esim","≂̸":"nesim","≃":"sime","≄":"nsime","≅":"cong","≇":"ncong","≆":"simne","≈":"ap","≉":"nap","≊":"ape","≋":"apid","≋̸":"napid","≌":"bcong","≍":"CupCap","≭":"NotCupCap","≍⃒":"nvap","≎":"bump","≎̸":"nbump","≏":"bumpe","≏̸":"nbumpe","≐":"doteq","≐̸":"nedot","≑":"eDot","≒":"efDot","≓":"erDot","≔":"colone","≕":"ecolon","≖":"ecir","≗":"cire","≙":"wedgeq","≚":"veeeq","≜":"trie","≟":"equest","≡":"equiv","≢":"nequiv","≡⃥":"bnequiv","≤":"le","≰":"nle","≤⃒":"nvle","≥":"ge","≱":"nge","≥⃒":"nvge","≦":"lE","≦̸":"nlE","≧":"gE","≧̸":"ngE","≨︀":"lvnE","≨":"lnE","≩":"gnE","≩︀":"gvnE","≪":"ll","≪̸":"nLtv","≪⃒":"nLt","≫":"gg","≫̸":"nGtv","≫⃒":"nGt","≬":"twixt","≲":"lsim","≴":"nlsim","≳":"gsim","≵":"ngsim","≶":"lg","≸":"ntlg","≷":"gl","≹":"ntgl","≺":"pr","⊀":"npr","≻":"sc","⊁":"nsc","≼":"prcue","⋠":"nprcue","≽":"sccue","⋡":"nsccue","≾":"prsim","≿":"scsim","≿̸":"NotSucceedsTilde","⊂":"sub","⊄":"nsub","⊂⃒":"vnsub","⊃":"sup","⊅":"nsup","⊃⃒":"vnsup","⊆":"sube","⊈":"nsube","⊇":"supe","⊉":"nsupe","⊊︀":"vsubne","⊊":"subne","⊋︀":"vsupne","⊋":"supne","⊍":"cupdot","⊎":"uplus","⊏":"sqsub","⊏̸":"NotSquareSubset","⊐":"sqsup","⊐̸":"NotSquareSuperset","⊑":"sqsube","⋢":"nsqsube","⊒":"sqsupe","⋣":"nsqsupe","⊓":"sqcap","⊓︀":"sqcaps","⊔":"sqcup","⊔︀":"sqcups","⊕":"oplus","⊖":"ominus","⊗":"otimes","⊘":"osol","⊙":"odot","⊚":"ocir","⊛":"oast","⊝":"odash","⊞":"plusb","⊟":"minusb","⊠":"timesb","⊡":"sdotb","⊢":"vdash","⊬":"nvdash","⊣":"dashv","⊤":"top","⊥":"bot","⊧":"models","⊨":"vDash","⊭":"nvDash","⊩":"Vdash","⊮":"nVdash","⊪":"Vvdash","⊫":"VDash","⊯":"nVDash","⊰":"prurel","⊲":"vltri","⋪":"nltri","⊳":"vrtri","⋫":"nrtri","⊴":"ltrie","⋬":"nltrie","⊴⃒":"nvltrie","⊵":"rtrie","⋭":"nrtrie","⊵⃒":"nvrtrie","⊶":"origof","⊷":"imof","⊸":"mumap","⊹":"hercon","⊺":"intcal","⊻":"veebar","⊽":"barvee","⊾":"angrtvb","⊿":"lrtri","⋀":"Wedge","⋁":"Vee","⋂":"xcap","⋃":"xcup","⋄":"diam","⋅":"sdot","⋆":"Star","⋇":"divonx","⋈":"bowtie","⋉":"ltimes","⋊":"rtimes","⋋":"lthree","⋌":"rthree","⋍":"bsime","⋎":"cuvee","⋏":"cuwed","⋐":"Sub","⋑":"Sup","⋒":"Cap","⋓":"Cup","⋔":"fork","⋕":"epar","⋖":"ltdot","⋗":"gtdot","⋘":"Ll","⋘̸":"nLl","⋙":"Gg","⋙̸":"nGg","⋚︀":"lesg","⋚":"leg","⋛":"gel","⋛︀":"gesl","⋞":"cuepr","⋟":"cuesc","⋦":"lnsim","⋧":"gnsim","⋨":"prnsim","⋩":"scnsim","⋮":"vellip","⋯":"ctdot","⋰":"utdot","⋱":"dtdot","⋲":"disin","⋳":"isinsv","⋴":"isins","⋵":"isindot","⋵̸":"notindot","⋶":"notinvc","⋷":"notinvb","⋹":"isinE","⋹̸":"notinE","⋺":"nisd","⋻":"xnis","⋼":"nis","⋽":"notnivc","⋾":"notnivb","⌅":"barwed","⌆":"Barwed","⌌":"drcrop","⌍":"dlcrop","⌎":"urcrop","⌏":"ulcrop","⌐":"bnot","⌒":"profline","⌓":"profsurf","⌕":"telrec","⌖":"target","⌜":"ulcorn","⌝":"urcorn","⌞":"dlcorn","⌟":"drcorn","⌢":"frown","⌣":"smile","⌭":"cylcty","⌮":"profalar","⌶":"topbot","⌽":"ovbar","⌿":"solbar","⍼":"angzarr","⎰":"lmoust","⎱":"rmoust","⎴":"tbrk","⎵":"bbrk","⎶":"bbrktbrk","⏜":"OverParenthesis","⏝":"UnderParenthesis","⏞":"OverBrace","⏟":"UnderBrace","⏢":"trpezium","⏧":"elinters","␣":"blank","─":"boxh","│":"boxv","┌":"boxdr","┐":"boxdl","└":"boxur","┘":"boxul","├":"boxvr","┤":"boxvl","┬":"boxhd","┴":"boxhu","┼":"boxvh","═":"boxH","║":"boxV","╒":"boxdR","╓":"boxDr","╔":"boxDR","╕":"boxdL","╖":"boxDl","╗":"boxDL","╘":"boxuR","╙":"boxUr","╚":"boxUR","╛":"boxuL","╜":"boxUl","╝":"boxUL","╞":"boxvR","╟":"boxVr","╠":"boxVR","╡":"boxvL","╢":"boxVl","╣":"boxVL","╤":"boxHd","╥":"boxhD","╦":"boxHD","╧":"boxHu","╨":"boxhU","╩":"boxHU","╪":"boxvH","╫":"boxVh","╬":"boxVH","▀":"uhblk","▄":"lhblk","█":"block","░":"blk14","▒":"blk12","▓":"blk34","□":"squ","▪":"squf","▫":"EmptyVerySmallSquare","▭":"rect","▮":"marker","▱":"fltns","△":"xutri","▴":"utrif","▵":"utri","▸":"rtrif","▹":"rtri","▽":"xdtri","▾":"dtrif","▿":"dtri","◂":"ltrif","◃":"ltri","◊":"loz","○":"cir","◬":"tridot","◯":"xcirc","◸":"ultri","◹":"urtri","◺":"lltri","◻":"EmptySmallSquare","◼":"FilledSmallSquare","★":"starf","☆":"star","☎":"phone","♀":"female","♂":"male","♠":"spades","♣":"clubs","♥":"hearts","♦":"diams","♪":"sung","✓":"check","✗":"cross","✠":"malt","✶":"sext","❘":"VerticalSeparator","⟈":"bsolhsub","⟉":"suphsol","⟵":"xlarr","⟶":"xrarr","⟷":"xharr","⟸":"xlArr","⟹":"xrArr","⟺":"xhArr","⟼":"xmap","⟿":"dzigrarr","⤂":"nvlArr","⤃":"nvrArr","⤄":"nvHarr","⤅":"Map","⤌":"lbarr","⤍":"rbarr","⤎":"lBarr","⤏":"rBarr","⤐":"RBarr","⤑":"DDotrahd","⤒":"UpArrowBar","⤓":"DownArrowBar","⤖":"Rarrtl","⤙":"latail","⤚":"ratail","⤛":"lAtail","⤜":"rAtail","⤝":"larrfs","⤞":"rarrfs","⤟":"larrbfs","⤠":"rarrbfs","⤣":"nwarhk","⤤":"nearhk","⤥":"searhk","⤦":"swarhk","⤧":"nwnear","⤨":"toea","⤩":"tosa","⤪":"swnwar","⤳":"rarrc","⤳̸":"nrarrc","⤵":"cudarrr","⤶":"ldca","⤷":"rdca","⤸":"cudarrl","⤹":"larrpl","⤼":"curarrm","⤽":"cularrp","⥅":"rarrpl","⥈":"harrcir","⥉":"Uarrocir","⥊":"lurdshar","⥋":"ldrushar","⥎":"LeftRightVector","⥏":"RightUpDownVector","⥐":"DownLeftRightVector","⥑":"LeftUpDownVector","⥒":"LeftVectorBar","⥓":"RightVectorBar","⥔":"RightUpVectorBar","⥕":"RightDownVectorBar","⥖":"DownLeftVectorBar","⥗":"DownRightVectorBar","⥘":"LeftUpVectorBar","⥙":"LeftDownVectorBar","⥚":"LeftTeeVector","⥛":"RightTeeVector","⥜":"RightUpTeeVector","⥝":"RightDownTeeVector","⥞":"DownLeftTeeVector","⥟":"DownRightTeeVector","⥠":"LeftUpTeeVector","⥡":"LeftDownTeeVector","⥢":"lHar","⥣":"uHar","⥤":"rHar","⥥":"dHar","⥦":"luruhar","⥧":"ldrdhar","⥨":"ruluhar","⥩":"rdldhar","⥪":"lharul","⥫":"llhard","⥬":"rharul","⥭":"lrhard","⥮":"udhar","⥯":"duhar","⥰":"RoundImplies","⥱":"erarr","⥲":"simrarr","⥳":"larrsim","⥴":"rarrsim","⥵":"rarrap","⥶":"ltlarr","⥸":"gtrarr","⥹":"subrarr","⥻":"suplarr","⥼":"lfisht","⥽":"rfisht","⥾":"ufisht","⥿":"dfisht","⦚":"vzigzag","⦜":"vangrt","⦝":"angrtvbd","⦤":"ange","⦥":"range","⦦":"dwangle","⦧":"uwangle","⦨":"angmsdaa","⦩":"angmsdab","⦪":"angmsdac","⦫":"angmsdad","⦬":"angmsdae","⦭":"angmsdaf","⦮":"angmsdag","⦯":"angmsdah","⦰":"bemptyv","⦱":"demptyv","⦲":"cemptyv","⦳":"raemptyv","⦴":"laemptyv","⦵":"ohbar","⦶":"omid","⦷":"opar","⦹":"operp","⦻":"olcross","⦼":"odsold","⦾":"olcir","⦿":"ofcir","⧀":"olt","⧁":"ogt","⧂":"cirscir","⧃":"cirE","⧄":"solb","⧅":"bsolb","⧉":"boxbox","⧍":"trisb","⧎":"rtriltri","⧏":"LeftTriangleBar","⧏̸":"NotLeftTriangleBar","⧐":"RightTriangleBar","⧐̸":"NotRightTriangleBar","⧜":"iinfin","⧝":"infintie","⧞":"nvinfin","⧣":"eparsl","⧤":"smeparsl","⧥":"eqvparsl","⧫":"lozf","⧴":"RuleDelayed","⧶":"dsol","⨀":"xodot","⨁":"xoplus","⨂":"xotime","⨄":"xuplus","⨆":"xsqcup","⨍":"fpartint","⨐":"cirfnint","⨑":"awint","⨒":"rppolint","⨓":"scpolint","⨔":"npolint","⨕":"pointint","⨖":"quatint","⨗":"intlarhk","⨢":"pluscir","⨣":"plusacir","⨤":"simplus","⨥":"plusdu","⨦":"plussim","⨧":"plustwo","⨩":"mcomma","⨪":"minusdu","⨭":"loplus","⨮":"roplus","⨯":"Cross","⨰":"timesd","⨱":"timesbar","⨳":"smashp","⨴":"lotimes","⨵":"rotimes","⨶":"otimesas","⨷":"Otimes","⨸":"odiv","⨹":"triplus","⨺":"triminus","⨻":"tritime","⨼":"iprod","⨿":"amalg","⩀":"capdot","⩂":"ncup","⩃":"ncap","⩄":"capand","⩅":"cupor","⩆":"cupcap","⩇":"capcup","⩈":"cupbrcap","⩉":"capbrcup","⩊":"cupcup","⩋":"capcap","⩌":"ccups","⩍":"ccaps","⩐":"ccupssm","⩓":"And","⩔":"Or","⩕":"andand","⩖":"oror","⩗":"orslope","⩘":"andslope","⩚":"andv","⩛":"orv","⩜":"andd","⩝":"ord","⩟":"wedbar","⩦":"sdote","⩪":"simdot","⩭":"congdot","⩭̸":"ncongdot","⩮":"easter","⩯":"apacir","⩰":"apE","⩰̸":"napE","⩱":"eplus","⩲":"pluse","⩳":"Esim","⩷":"eDDot","⩸":"equivDD","⩹":"ltcir","⩺":"gtcir","⩻":"ltquest","⩼":"gtquest","⩽":"les","⩽̸":"nles","⩾":"ges","⩾̸":"nges","⩿":"lesdot","⪀":"gesdot","⪁":"lesdoto","⪂":"gesdoto","⪃":"lesdotor","⪄":"gesdotol","⪅":"lap","⪆":"gap","⪇":"lne","⪈":"gne","⪉":"lnap","⪊":"gnap","⪋":"lEg","⪌":"gEl","⪍":"lsime","⪎":"gsime","⪏":"lsimg","⪐":"gsiml","⪑":"lgE","⪒":"glE","⪓":"lesges","⪔":"gesles","⪕":"els","⪖":"egs","⪗":"elsdot","⪘":"egsdot","⪙":"el","⪚":"eg","⪝":"siml","⪞":"simg","⪟":"simlE","⪠":"simgE","⪡":"LessLess","⪡̸":"NotNestedLessLess","⪢":"GreaterGreater","⪢̸":"NotNestedGreaterGreater","⪤":"glj","⪥":"gla","⪦":"ltcc","⪧":"gtcc","⪨":"lescc","⪩":"gescc","⪪":"smt","⪫":"lat","⪬":"smte","⪬︀":"smtes","⪭":"late","⪭︀":"lates","⪮":"bumpE","⪯":"pre","⪯̸":"npre","⪰":"sce","⪰̸":"nsce","⪳":"prE","⪴":"scE","⪵":"prnE","⪶":"scnE","⪷":"prap","⪸":"scap","⪹":"prnap","⪺":"scnap","⪻":"Pr","⪼":"Sc","⪽":"subdot","⪾":"supdot","⪿":"subplus","⫀":"supplus","⫁":"submult","⫂":"supmult","⫃":"subedot","⫄":"supedot","⫅":"subE","⫅̸":"nsubE","⫆":"supE","⫆̸":"nsupE","⫇":"subsim","⫈":"supsim","⫋︀":"vsubnE","⫋":"subnE","⫌︀":"vsupnE","⫌":"supnE","⫏":"csub","⫐":"csup","⫑":"csube","⫒":"csupe","⫓":"subsup","⫔":"supsub","⫕":"subsub","⫖":"supsup","⫗":"suphsub","⫘":"supdsub","⫙":"forkv","⫚":"topfork","⫛":"mlcp","⫤":"Dashv","⫦":"Vdashl","⫧":"Barv","⫨":"vBar","⫩":"vBarv","⫫":"Vbar","⫬":"Not","⫭":"bNot","⫮":"rnmid","⫯":"cirmid","⫰":"midcir","⫱":"topcir","⫲":"nhpar","⫳":"parsim","⫽":"parsl","⫽⃥":"nparsl","♭":"flat","♮":"natur","♯":"sharp","¤":"curren","¢":"cent",$:"dollar","£":"pound","¥":"yen","€":"euro","¹":"sup1","½":"half","⅓":"frac13","¼":"frac14","⅕":"frac15","⅙":"frac16","⅛":"frac18","²":"sup2","⅔":"frac23","⅖":"frac25","³":"sup3","¾":"frac34","⅗":"frac35","⅜":"frac38","⅘":"frac45","⅚":"frac56","⅝":"frac58","⅞":"frac78",𝒶:"ascr",𝕒:"aopf",𝔞:"afr",𝔸:"Aopf",𝔄:"Afr",𝒜:"Ascr",ª:"ordf",á:"aacute",Á:"Aacute",à:"agrave",À:"Agrave",ă:"abreve",Ă:"Abreve",â:"acirc",Â:"Acirc",å:"aring",Å:"angst",ä:"auml",Ä:"Auml",ã:"atilde",Ã:"Atilde",ą:"aogon",Ą:"Aogon",ā:"amacr",Ā:"Amacr",æ:"aelig",Æ:"AElig",𝒷:"bscr",𝕓:"bopf",𝔟:"bfr",𝔹:"Bopf",ℬ:"Bscr",𝔅:"Bfr",𝔠:"cfr",𝒸:"cscr",𝕔:"copf",ℭ:"Cfr",𝒞:"Cscr",ℂ:"Copf",ć:"cacute",Ć:"Cacute",ĉ:"ccirc",Ĉ:"Ccirc",č:"ccaron",Č:"Ccaron",ċ:"cdot",Ċ:"Cdot",ç:"ccedil",Ç:"Ccedil","℅":"incare",𝔡:"dfr",ⅆ:"dd",𝕕:"dopf",𝒹:"dscr",𝒟:"Dscr",𝔇:"Dfr",ⅅ:"DD",𝔻:"Dopf",ď:"dcaron",Ď:"Dcaron",đ:"dstrok",Đ:"Dstrok",ð:"eth",Ð:"ETH",ⅇ:"ee",ℯ:"escr",𝔢:"efr",𝕖:"eopf",ℰ:"Escr",𝔈:"Efr",𝔼:"Eopf",é:"eacute",É:"Eacute",è:"egrave",È:"Egrave",ê:"ecirc",Ê:"Ecirc",ě:"ecaron",Ě:"Ecaron",ë:"euml",Ë:"Euml",ė:"edot",Ė:"Edot",ę:"eogon",Ę:"Eogon",ē:"emacr",Ē:"Emacr",𝔣:"ffr",𝕗:"fopf",𝒻:"fscr",𝔉:"Ffr",𝔽:"Fopf",ℱ:"Fscr",ff:"fflig",ffi:"ffilig",ffl:"ffllig",fi:"filig",fj:"fjlig",fl:"fllig",ƒ:"fnof",ℊ:"gscr",𝕘:"gopf",𝔤:"gfr",𝒢:"Gscr",𝔾:"Gopf",𝔊:"Gfr",ǵ:"gacute",ğ:"gbreve",Ğ:"Gbreve",ĝ:"gcirc",Ĝ:"Gcirc",ġ:"gdot",Ġ:"Gdot",Ģ:"Gcedil",𝔥:"hfr",ℎ:"planckh",𝒽:"hscr",𝕙:"hopf",ℋ:"Hscr",ℌ:"Hfr",ℍ:"Hopf",ĥ:"hcirc",Ĥ:"Hcirc",ℏ:"hbar",ħ:"hstrok",Ħ:"Hstrok",𝕚:"iopf",𝔦:"ifr",𝒾:"iscr",ⅈ:"ii",𝕀:"Iopf",ℐ:"Iscr",ℑ:"Im",í:"iacute",Í:"Iacute",ì:"igrave",Ì:"Igrave",î:"icirc",Î:"Icirc",ï:"iuml",Ï:"Iuml",ĩ:"itilde",Ĩ:"Itilde",İ:"Idot",į:"iogon",Į:"Iogon",ī:"imacr",Ī:"Imacr",ij:"ijlig",IJ:"IJlig",ı:"imath",𝒿:"jscr",𝕛:"jopf",𝔧:"jfr",𝒥:"Jscr",𝔍:"Jfr",𝕁:"Jopf",ĵ:"jcirc",Ĵ:"Jcirc",ȷ:"jmath",𝕜:"kopf",𝓀:"kscr",𝔨:"kfr",𝒦:"Kscr",𝕂:"Kopf",𝔎:"Kfr",ķ:"kcedil",Ķ:"Kcedil",𝔩:"lfr",𝓁:"lscr",ℓ:"ell",𝕝:"lopf",ℒ:"Lscr",𝔏:"Lfr",𝕃:"Lopf",ĺ:"lacute",Ĺ:"Lacute",ľ:"lcaron",Ľ:"Lcaron",ļ:"lcedil",Ļ:"Lcedil",ł:"lstrok",Ł:"Lstrok",ŀ:"lmidot",Ŀ:"Lmidot",𝔪:"mfr",𝕞:"mopf",𝓂:"mscr",𝔐:"Mfr",𝕄:"Mopf",ℳ:"Mscr",𝔫:"nfr",𝕟:"nopf",𝓃:"nscr",ℕ:"Nopf",𝒩:"Nscr",𝔑:"Nfr",ń:"nacute",Ń:"Nacute",ň:"ncaron",Ň:"Ncaron",ñ:"ntilde",Ñ:"Ntilde",ņ:"ncedil",Ņ:"Ncedil","№":"numero",ŋ:"eng",Ŋ:"ENG",𝕠:"oopf",𝔬:"ofr",ℴ:"oscr",𝒪:"Oscr",𝔒:"Ofr",𝕆:"Oopf",º:"ordm",ó:"oacute",Ó:"Oacute",ò:"ograve",Ò:"Ograve",ô:"ocirc",Ô:"Ocirc",ö:"ouml",Ö:"Ouml",ő:"odblac",Ő:"Odblac",õ:"otilde",Õ:"Otilde",ø:"oslash",Ø:"Oslash",ō:"omacr",Ō:"Omacr",œ:"oelig",Œ:"OElig",𝔭:"pfr",𝓅:"pscr",𝕡:"popf",ℙ:"Popf",𝔓:"Pfr",𝒫:"Pscr",𝕢:"qopf",𝔮:"qfr",𝓆:"qscr",𝒬:"Qscr",𝔔:"Qfr",ℚ:"Qopf",ĸ:"kgreen",𝔯:"rfr",𝕣:"ropf",𝓇:"rscr",ℛ:"Rscr",ℜ:"Re",ℝ:"Ropf",ŕ:"racute",Ŕ:"Racute",ř:"rcaron",Ř:"Rcaron",ŗ:"rcedil",Ŗ:"Rcedil",𝕤:"sopf",𝓈:"sscr",𝔰:"sfr",𝕊:"Sopf",𝔖:"Sfr",𝒮:"Sscr","Ⓢ":"oS",ś:"sacute",Ś:"Sacute",ŝ:"scirc",Ŝ:"Scirc",š:"scaron",Š:"Scaron",ş:"scedil",Ş:"Scedil",ß:"szlig",𝔱:"tfr",𝓉:"tscr",𝕥:"topf",𝒯:"Tscr",𝔗:"Tfr",𝕋:"Topf",ť:"tcaron",Ť:"Tcaron",ţ:"tcedil",Ţ:"Tcedil","™":"trade",ŧ:"tstrok",Ŧ:"Tstrok",𝓊:"uscr",𝕦:"uopf",𝔲:"ufr",𝕌:"Uopf",𝔘:"Ufr",𝒰:"Uscr",ú:"uacute",Ú:"Uacute",ù:"ugrave",Ù:"Ugrave",ŭ:"ubreve",Ŭ:"Ubreve",û:"ucirc",Û:"Ucirc",ů:"uring",Ů:"Uring",ü:"uuml",Ü:"Uuml",ű:"udblac",Ű:"Udblac",ũ:"utilde",Ũ:"Utilde",ų:"uogon",Ų:"Uogon",ū:"umacr",Ū:"Umacr",𝔳:"vfr",𝕧:"vopf",𝓋:"vscr",𝔙:"Vfr",𝕍:"Vopf",𝒱:"Vscr",𝕨:"wopf",𝓌:"wscr",𝔴:"wfr",𝒲:"Wscr",𝕎:"Wopf",𝔚:"Wfr",ŵ:"wcirc",Ŵ:"Wcirc",𝔵:"xfr",𝓍:"xscr",𝕩:"xopf",𝕏:"Xopf",𝔛:"Xfr",𝒳:"Xscr",𝔶:"yfr",𝓎:"yscr",𝕪:"yopf",𝒴:"Yscr",𝔜:"Yfr",𝕐:"Yopf",ý:"yacute",Ý:"Yacute",ŷ:"ycirc",Ŷ:"Ycirc",ÿ:"yuml",Ÿ:"Yuml",𝓏:"zscr",𝔷:"zfr",𝕫:"zopf",ℨ:"Zfr",ℤ:"Zopf",𝒵:"Zscr",ź:"zacute",Ź:"Zacute",ž:"zcaron",Ž:"Zcaron",ż:"zdot",Ż:"Zdot",Ƶ:"imped",þ:"thorn",Þ:"THORN",ʼn:"napos",α:"alpha",Α:"Alpha",β:"beta",Β:"Beta",γ:"gamma",Γ:"Gamma",δ:"delta",Δ:"Delta",ε:"epsi",ϵ:"epsiv",Ε:"Epsilon",ϝ:"gammad",Ϝ:"Gammad",ζ:"zeta",Ζ:"Zeta",η:"eta",Η:"Eta",θ:"theta",ϑ:"thetav",Θ:"Theta",ι:"iota",Ι:"Iota",κ:"kappa",ϰ:"kappav",Κ:"Kappa",λ:"lambda",Λ:"Lambda",μ:"mu",µ:"micro",Μ:"Mu",ν:"nu",Ν:"Nu",ξ:"xi",Ξ:"Xi",ο:"omicron",Ο:"Omicron",π:"pi",ϖ:"piv",Π:"Pi",ρ:"rho",ϱ:"rhov",Ρ:"Rho",σ:"sigma",Σ:"Sigma",ς:"sigmaf",τ:"tau",Τ:"Tau",υ:"upsi",Υ:"Upsilon",ϒ:"Upsi",φ:"phi",ϕ:"phiv",Φ:"Phi",χ:"chi",Χ:"Chi",ψ:"psi",Ψ:"Psi",ω:"omega",Ω:"ohm",а:"acy",А:"Acy",б:"bcy",Б:"Bcy",в:"vcy",В:"Vcy",г:"gcy",Г:"Gcy",ѓ:"gjcy",Ѓ:"GJcy",д:"dcy",Д:"Dcy",ђ:"djcy",Ђ:"DJcy",е:"iecy",Е:"IEcy",ё:"iocy",Ё:"IOcy",є:"jukcy",Є:"Jukcy",ж:"zhcy",Ж:"ZHcy",з:"zcy",З:"Zcy",ѕ:"dscy",Ѕ:"DScy",и:"icy",И:"Icy",і:"iukcy",І:"Iukcy",ї:"yicy",Ї:"YIcy",й:"jcy",Й:"Jcy",ј:"jsercy",Ј:"Jsercy",к:"kcy",К:"Kcy",ќ:"kjcy",Ќ:"KJcy",л:"lcy",Л:"Lcy",љ:"ljcy",Љ:"LJcy",м:"mcy",М:"Mcy",н:"ncy",Н:"Ncy",њ:"njcy",Њ:"NJcy",о:"ocy",О:"Ocy",п:"pcy",П:"Pcy",р:"rcy",Р:"Rcy",с:"scy",С:"Scy",т:"tcy",Т:"Tcy",ћ:"tshcy",Ћ:"TSHcy",у:"ucy",У:"Ucy",ў:"ubrcy",Ў:"Ubrcy",ф:"fcy",Ф:"Fcy",х:"khcy",Х:"KHcy",ц:"tscy",Ц:"TScy",ч:"chcy",Ч:"CHcy",џ:"dzcy",Џ:"DZcy",ш:"shcy",Ш:"SHcy",щ:"shchcy",Щ:"SHCHcy",ъ:"hardcy",Ъ:"HARDcy",ы:"ycy",Ы:"Ycy",ь:"softcy",Ь:"SOFTcy",э:"ecy",Э:"Ecy",ю:"yucy",Ю:"YUcy",я:"yacy",Я:"YAcy",ℵ:"aleph",ℶ:"beth",ℷ:"gimel",ℸ:"daleth"},p=/["&'<>`]/g,d={'"':""","&":"&","'":"'","<":"<",">":">","`":"`"},f=/&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/,h=/[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,m=/&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g,g={aacute:"á",Aacute:"Á",abreve:"ă",Abreve:"Ă",ac:"∾",acd:"∿",acE:"∾̳",acirc:"â",Acirc:"Â",acute:"´",acy:"а",Acy:"А",aelig:"æ",AElig:"Æ",af:"⁡",afr:"𝔞",Afr:"𝔄",agrave:"à",Agrave:"À",alefsym:"ℵ",aleph:"ℵ",alpha:"α",Alpha:"Α",amacr:"ā",Amacr:"Ā",amalg:"⨿",amp:"&",AMP:"&",and:"∧",And:"⩓",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",Aogon:"Ą",aopf:"𝕒",Aopf:"𝔸",ap:"≈",apacir:"⩯",ape:"≊",apE:"⩰",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",aring:"å",Aring:"Å",ascr:"𝒶",Ascr:"𝒜",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",Bcy:"Б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",beta:"β",Beta:"Β",beth:"ℶ",between:"≬",bfr:"𝔟",Bfr:"𝔅",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bNot:"⫭",bopf:"𝕓",Bopf:"𝔹",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxhD:"╥",boxHd:"╤",boxHD:"╦",boxhu:"┴",boxhU:"╨",boxHu:"╧",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpe:"≏",bumpE:"⪮",bumpeq:"≏",Bumpeq:"≎",cacute:"ć",Cacute:"Ć",cap:"∩",Cap:"⋒",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",ccaron:"č",Ccaron:"Č",ccedil:"ç",Ccedil:"Ç",ccirc:"ĉ",Ccirc:"Ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",Cdot:"Ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",chcy:"ч",CHcy:"Ч",check:"✓",checkmark:"✓",chi:"χ",Chi:"Χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cire:"≗",cirE:"⧃",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",colone:"≔",Colone:"⩴",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",cscr:"𝒸",Cscr:"𝒞",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",Cup:"⋓",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",dArr:"⇓",Darr:"↡",dash:"‐",dashv:"⊣",Dashv:"⫤",dbkarow:"⤏",dblac:"˝",dcaron:"ď",Dcaron:"Ď",dcy:"д",Dcy:"Д",dd:"ⅆ",DD:"ⅅ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",delta:"δ",Delta:"Δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",Dfr:"𝔇",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",DJcy:"Ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",Dopf:"𝔻",dot:"˙",Dot:"¨",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",downarrow:"↓",Downarrow:"⇓",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",Dscr:"𝒟",dscy:"ѕ",DScy:"Ѕ",dsol:"⧶",dstrok:"đ",Dstrok:"Đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",DZcy:"Џ",dzigrarr:"⟿",eacute:"é",Eacute:"É",easter:"⩮",ecaron:"ě",Ecaron:"Ě",ecir:"≖",ecirc:"ê",Ecirc:"Ê",ecolon:"≕",ecy:"э",Ecy:"Э",eDDot:"⩷",edot:"ė",eDot:"≑",Edot:"Ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",Efr:"𝔈",eg:"⪚",egrave:"è",Egrave:"È",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",Emacr:"Ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",eng:"ŋ",ENG:"Ŋ",ensp:" ",eogon:"ę",Eogon:"Ę",eopf:"𝕖",Eopf:"𝔼",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",Epsilon:"Ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",esim:"≂",Esim:"⩳",eta:"η",Eta:"Η",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",fcy:"ф",Fcy:"Ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",Ffr:"𝔉",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",Fopf:"𝔽",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",gamma:"γ",Gamma:"Γ",gammad:"ϝ",Gammad:"Ϝ",gap:"⪆",gbreve:"ğ",Gbreve:"Ğ",Gcedil:"Ģ",gcirc:"ĝ",Gcirc:"Ĝ",gcy:"г",Gcy:"Г",gdot:"ġ",Gdot:"Ġ",ge:"≥",gE:"≧",gel:"⋛",gEl:"⪌",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",Gfr:"𝔊",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",GJcy:"Ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",Gopf:"𝔾",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",gscr:"ℊ",Gscr:"𝒢",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",Gt:"≫",GT:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",HARDcy:"Ъ",harr:"↔",hArr:"⇔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",hcirc:"ĥ",Hcirc:"Ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",hstrok:"ħ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",iacute:"í",Iacute:"Í",ic:"⁣",icirc:"î",Icirc:"Î",icy:"и",Icy:"И",Idot:"İ",iecy:"е",IEcy:"Е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",igrave:"ì",Igrave:"Ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",IJlig:"IJ",Im:"ℑ",imacr:"ī",Imacr:"Ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",Int:"∬",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",iocy:"ё",IOcy:"Ё",iogon:"į",Iogon:"Į",iopf:"𝕚",Iopf:"𝕀",iota:"ι",Iota:"Ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",Itilde:"Ĩ",iukcy:"і",Iukcy:"І",iuml:"ï",Iuml:"Ï",jcirc:"ĵ",Jcirc:"Ĵ",jcy:"й",Jcy:"Й",jfr:"𝔧",Jfr:"𝔍",jmath:"ȷ",jopf:"𝕛",Jopf:"𝕁",jscr:"𝒿",Jscr:"𝒥",jsercy:"ј",Jsercy:"Ј",jukcy:"є",Jukcy:"Є",kappa:"κ",Kappa:"Κ",kappav:"ϰ",kcedil:"ķ",Kcedil:"Ķ",kcy:"к",Kcy:"К",kfr:"𝔨",Kfr:"𝔎",kgreen:"ĸ",khcy:"х",KHcy:"Х",kjcy:"ќ",KJcy:"Ќ",kopf:"𝕜",Kopf:"𝕂",kscr:"𝓀",Kscr:"𝒦",lAarr:"⇚",lacute:"ĺ",Lacute:"Ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",Lambda:"Λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larr:"←",lArr:"⇐",Larr:"↞",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",lAtail:"⤛",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",Lcaron:"Ľ",lcedil:"ļ",Lcedil:"Ļ",lceil:"⌈",lcub:"{",lcy:"л",Lcy:"Л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",leftarrow:"←",Leftarrow:"⇐",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",Leftrightarrow:"⇔",LeftRightArrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",leg:"⋚",lEg:"⪋",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",Lfr:"𝔏",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",LJcy:"Љ",ll:"≪",Ll:"⋘",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",lmidot:"ŀ",Lmidot:"Ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",Longleftarrow:"⟸",LongLeftArrow:"⟵",longleftrightarrow:"⟷",Longleftrightarrow:"⟺",LongLeftRightArrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",Longrightarrow:"⟹",LongRightArrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",Lopf:"𝕃",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",Lstrok:"Ł",lt:"<",Lt:"≪",LT:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",Map:"⤅",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",Mcy:"М",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",mfr:"𝔪",Mfr:"𝔐",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",Mopf:"𝕄",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",mu:"μ",Mu:"Μ",multimap:"⊸",mumap:"⊸",nabla:"∇",nacute:"ń",Nacute:"Ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",Ncaron:"Ň",ncedil:"ņ",Ncedil:"Ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",Ncy:"Н",ndash:"–",ne:"≠",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",nfr:"𝔫",Nfr:"𝔑",nge:"≱",ngE:"≧̸",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",ngt:"≯",nGt:"≫⃒",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",NJcy:"Њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nle:"≰",nlE:"≦̸",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nlt:"≮",nLt:"≪⃒",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",not:"¬",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrarr:"↛",nrArr:"⇏",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",Nscr:"𝒩",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsube:"⊈",nsubE:"⫅̸",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupe:"⊉",nsupE:"⫆̸",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",Ntilde:"Ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",Nu:"Ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",oacute:"ó",Oacute:"Ó",oast:"⊛",ocir:"⊚",ocirc:"ô",Ocirc:"Ô",ocy:"о",Ocy:"О",odash:"⊝",odblac:"ő",Odblac:"Ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",OElig:"Œ",ofcir:"⦿",ofr:"𝔬",Ofr:"𝔒",ogon:"˛",ograve:"ò",Ograve:"Ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",Omacr:"Ō",omega:"ω",Omega:"Ω",omicron:"ο",Omicron:"Ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",Oopf:"𝕆",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",or:"∨",Or:"⩔",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",oscr:"ℴ",Oscr:"𝒪",oslash:"ø",Oslash:"Ø",osol:"⊘",otilde:"õ",Otilde:"Õ",otimes:"⊗",Otimes:"⨷",otimesas:"⨶",ouml:"ö",Ouml:"Ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",pcy:"п",Pcy:"П",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",Pfr:"𝔓",phi:"φ",Phi:"Φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",Pi:"Π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",pr:"≺",Pr:"⪻",prap:"⪷",prcue:"≼",pre:"⪯",prE:"⪳",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",Pscr:"𝒫",psi:"ψ",Psi:"Ψ",puncsp:" ",qfr:"𝔮",Qfr:"𝔔",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",qscr:"𝓆",Qscr:"𝒬",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",racute:"ŕ",Racute:"Ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rArr:"⇒",Rarr:"↠",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",Rarrtl:"⤖",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",Rcaron:"Ř",rcedil:"ŗ",Rcedil:"Ŗ",rceil:"⌉",rcub:"}",rcy:"р",Rcy:"Р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",Rho:"Ρ",rhov:"ϱ",RightAngleBracket:"⟩",rightarrow:"→",Rightarrow:"⇒",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",sacute:"ś",Sacute:"Ś",sbquo:"‚",sc:"≻",Sc:"⪼",scap:"⪸",scaron:"š",Scaron:"Š",sccue:"≽",sce:"⪰",scE:"⪴",scedil:"ş",Scedil:"Ş",scirc:"ŝ",Scirc:"Ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",Scy:"С",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",Sfr:"𝔖",sfrown:"⌢",sharp:"♯",shchcy:"щ",SHCHcy:"Щ",shcy:"ш",SHcy:"Ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",sigma:"σ",Sigma:"Σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",SOFTcy:"Ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",Sopf:"𝕊",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",Sscr:"𝒮",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",Star:"⋆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",sube:"⊆",subE:"⫅",subedot:"⫃",submult:"⫁",subne:"⊊",subnE:"⫋",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup:"⊃",Sup:"⋑",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supe:"⊇",supE:"⫆",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supne:"⊋",supnE:"⫌",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",tau:"τ",Tau:"Τ",tbrk:"⎴",tcaron:"ť",Tcaron:"Ť",tcedil:"ţ",Tcedil:"Ţ",tcy:"т",Tcy:"Т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",Tfr:"𝔗",there4:"∴",therefore:"∴",Therefore:"∴",theta:"θ",Theta:"Θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",thorn:"þ",THORN:"Þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",Topf:"𝕋",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",Tscr:"𝒯",tscy:"ц",TScy:"Ц",tshcy:"ћ",TSHcy:"Ћ",tstrok:"ŧ",Tstrok:"Ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uacute:"ú",Uacute:"Ú",uarr:"↑",uArr:"⇑",Uarr:"↟",Uarrocir:"⥉",ubrcy:"ў",Ubrcy:"Ў",ubreve:"ŭ",Ubreve:"Ŭ",ucirc:"û",Ucirc:"Û",ucy:"у",Ucy:"У",udarr:"⇅",udblac:"ű",Udblac:"Ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",Ufr:"𝔘",ugrave:"ù",Ugrave:"Ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",Umacr:"Ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",uogon:"ų",Uogon:"Ų",uopf:"𝕦",Uopf:"𝕌",uparrow:"↑",Uparrow:"⇑",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",updownarrow:"↕",Updownarrow:"⇕",UpDownArrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",upsilon:"υ",Upsilon:"Υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",Uring:"Ů",urtri:"◹",uscr:"𝓊",Uscr:"𝒰",utdot:"⋰",utilde:"ũ",Utilde:"Ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",Uuml:"Ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",vcy:"в",Vcy:"В",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",vee:"∨",Vee:"⋁",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",vfr:"𝔳",Vfr:"𝔙",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",Vopf:"𝕍",vprop:"∝",vrtri:"⊳",vscr:"𝓋",Vscr:"𝒱",vsubne:"⊊︀",vsubnE:"⫋︀",vsupne:"⊋︀",vsupnE:"⫌︀",Vvdash:"⊪",vzigzag:"⦚",wcirc:"ŵ",Wcirc:"Ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",wfr:"𝔴",Wfr:"𝔚",wopf:"𝕨",Wopf:"𝕎",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",Wscr:"𝒲",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",Xfr:"𝔛",xharr:"⟷",xhArr:"⟺",xi:"ξ",Xi:"Ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",Xopf:"𝕏",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",xscr:"𝓍",Xscr:"𝒳",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",Yacute:"Ý",yacy:"я",YAcy:"Я",ycirc:"ŷ",Ycirc:"Ŷ",ycy:"ы",Ycy:"Ы",yen:"¥",yfr:"𝔶",Yfr:"𝔜",yicy:"ї",YIcy:"Ї",yopf:"𝕪",Yopf:"𝕐",yscr:"𝓎",Yscr:"𝒴",yucy:"ю",YUcy:"Ю",yuml:"ÿ",Yuml:"Ÿ",zacute:"ź",Zacute:"Ź",zcaron:"ž",Zcaron:"Ž",zcy:"з",Zcy:"З",zdot:"ż",Zdot:"Ż",zeetrf:"ℨ",ZeroWidthSpace:"​",zeta:"ζ",Zeta:"Ζ",zfr:"𝔷",Zfr:"ℨ",zhcy:"ж",ZHcy:"Ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",zscr:"𝓏",Zscr:"𝒵",zwj:"‍",zwnj:"‌"},v={aacute:"á",Aacute:"Á",acirc:"â",Acirc:"Â",acute:"´",aelig:"æ",AElig:"Æ",agrave:"à",Agrave:"À",amp:"&",AMP:"&",aring:"å",Aring:"Å",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",brvbar:"¦",ccedil:"ç",Ccedil:"Ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",Eacute:"É",ecirc:"ê",Ecirc:"Ê",egrave:"è",Egrave:"È",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",iacute:"í",Iacute:"Í",icirc:"î",Icirc:"Î",iexcl:"¡",igrave:"ì",Igrave:"Ì",iquest:"¿",iuml:"ï",Iuml:"Ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",Ntilde:"Ñ",oacute:"ó",Oacute:"Ó",ocirc:"ô",Ocirc:"Ô",ograve:"ò",Ograve:"Ò",ordf:"ª",ordm:"º",oslash:"ø",Oslash:"Ø",otilde:"õ",Otilde:"Õ",ouml:"ö",Ouml:"Ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",THORN:"Þ",times:"×",uacute:"ú",Uacute:"Ú",ucirc:"û",Ucirc:"Û",ugrave:"ù",Ugrave:"Ù",uml:"¨",uuml:"ü",Uuml:"Ü",yacute:"ý",Yacute:"Ý",yen:"¥",yuml:"ÿ"},b={0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"},y=[1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65e3,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111],w=String.fromCharCode,E={}.hasOwnProperty,x=function(e,t){return E.call(e,t)},T=function(e,t){if(!e)return t;var r,n={};for(r in t)n[r]=x(e,r)?e[r]:t[r];return n},k=function(e,t){var r="";return e>=55296&&e<=57343||e>1114111?(t&&N("character reference outside the permissible Unicode range"),"�"):x(b,e)?(t&&N("disallowed character reference"),b[e]):(t&&function(e,t){for(var r=-1,n=e.length;++r65535&&(r+=w((e-=65536)>>>10&1023|55296),e=56320|1023&e),r+=w(e))},_=function(e){return"&#x"+e.toString(16).toUpperCase()+";"},A=function(e){return"&#"+e+";"},N=function(e){throw Error("Parse error: "+e)},L=function(e,t){(t=T(t,L.options)).strict&&h.test(e)&&N("forbidden code point");var r=t.encodeEverything,n=t.useNamedReferences,i=t.allowUnsafeSymbols,o=t.decimal?A:_,d=function(e){return o(e.charCodeAt(0))};return r?(e=e.replace(s,(function(e){return n&&x(u,e)?"&"+u[e]+";":d(e)})),n&&(e=e.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒").replace(/fj/g,"fj")),n&&(e=e.replace(c,(function(e){return"&"+u[e]+";"})))):n?(i||(e=e.replace(p,(function(e){return"&"+u[e]+";"}))),e=(e=e.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒")).replace(c,(function(e){return"&"+u[e]+";"}))):i||(e=e.replace(p,d)),e.replace(a,(function(e){var t=e.charCodeAt(0),r=e.charCodeAt(1);return o(1024*(t-55296)+r-56320+65536)})).replace(l,d)};L.options={allowUnsafeSymbols:!1,encodeEverything:!1,strict:!1,useNamedReferences:!1,decimal:!1};var O=function(e,t){var r=(t=T(t,O.options)).strict;return r&&f.test(e)&&N("malformed character reference"),e.replace(m,(function(e,n,i,o,a,s,l,c,u){var p,d,f,h,m,b;return n?g[m=n]:i?(m=i,(b=o)&&t.isAttributeValue?(r&&"="==b&&N("`&` did not start a character reference"),e):(r&&N("named character reference was not terminated by a semicolon"),v[m]+(b||""))):a?(f=a,d=s,r&&!d&&N("character reference was not terminated by a semicolon"),p=parseInt(f,10),k(p,r)):l?(h=l,d=c,r&&!d&&N("character reference was not terminated by a semicolon"),p=parseInt(h,16),k(p,r)):(r&&N("named character reference was not terminated by a semicolon"),e)}))};O.options={isAttributeValue:!1,strict:!1};var S={version:"1.2.0",encode:L,decode:O,escape:function(e){return e.replace(p,(function(e){return d[e]}))},unescape:O};void 0===(n=function(){return S}.call(t,r,t,e))||(e.exports=n)}()},6040:(e,t,r)=>{e=r.nmd(e);var n="__lodash_hash_undefined__",i=1,o=2,a=1/0,s=9007199254740991,l="[object Arguments]",c="[object Array]",u="[object Boolean]",p="[object Date]",d="[object Error]",f="[object Function]",h="[object GeneratorFunction]",m="[object Map]",g="[object Number]",v="[object Object]",b="[object Promise]",y="[object RegExp]",w="[object Set]",E="[object String]",x="[object Symbol]",T="[object WeakMap]",k="[object ArrayBuffer]",_="[object DataView]",A=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,N=/^\w*$/,L=/^\./,O=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,S=/\\(\\)?/g,C=/^\[object .+?Constructor\]$/,D=/^(?:0|[1-9]\d*)$/,q={};q["[object Float32Array]"]=q["[object Float64Array]"]=q["[object Int8Array]"]=q["[object Int16Array]"]=q["[object Int32Array]"]=q["[object Uint8Array]"]=q["[object Uint8ClampedArray]"]=q["[object Uint16Array]"]=q["[object Uint32Array]"]=!0,q[l]=q[c]=q[k]=q[u]=q[_]=q[p]=q[d]=q[f]=q[m]=q[g]=q[v]=q[y]=q[w]=q[E]=q[T]=!1;var R="object"==typeof global&&global&&global.Object===Object&&global,j="object"==typeof self&&self&&self.Object===Object&&self,P=R||j||Function("return this")(),B=t&&!t.nodeType&&t,F=B&&e&&!e.nodeType&&e,M=F&&F.exports===B&&R.process,I=function(){try{return M&&M.binding("util")}catch(e){}}(),U=I&&I.isTypedArray;function V(e,t){for(var r=-1,n=t.length,i=e.length;++rc))return!1;var p=s.get(e);if(p&&s.get(t))return p==t;var d=-1,f=!0,h=a&i?new Le:void 0;for(s.set(e,t),s.set(t,e);++d-1},Ae.prototype.set=function(e,t){var r=this.__data__,n=Ce(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},Ne.prototype.clear=function(){this.__data__={hash:new _e,map:new(de||Ae),string:new _e}},Ne.prototype.delete=function(e){return Be(this,e).delete(e)},Ne.prototype.get=function(e){return Be(this,e).get(e)},Ne.prototype.has=function(e){return Be(this,e).has(e)},Ne.prototype.set=function(e,t){return Be(this,e).set(e,t),this},Le.prototype.add=Le.prototype.push=function(e){return this.__data__.set(e,n),this},Le.prototype.has=function(e){return this.__data__.has(e)},Oe.prototype.clear=function(){this.__data__=new Ae},Oe.prototype.delete=function(e){return this.__data__.delete(e)},Oe.prototype.get=function(e){return this.__data__.get(e)},Oe.prototype.has=function(e){return this.__data__.has(e)},Oe.prototype.set=function(e,t){var r=this.__data__;if(r instanceof Ae){var n=r.__data__;if(!de||n.length<199)return n.push([e,t]),this;r=this.__data__=new Ne(n)}return r.set(e,t),this};var Me=ce?$(ce,Object):pt,Ie=ce?function(e){for(var t=[];e;)V(t,Me(e)),e=ae(e);return t}:pt,Ue=function(e){return re.call(e)};function Ve(e,t){return!!(t=null==t?s:t)&&("number"==typeof e||D.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=s}function nt(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function it(e){return!!e&&"object"==typeof e}function ot(e){return"symbol"==typeof e||it(e)&&re.call(e)==x}var at,st=U?(at=U,function(e){return at(e)}):function(e){return it(e)&&rt(e.length)&&!!q[re.call(e)]};function lt(e){return et(e)?Se(e):function(e){if(!Ge(e))return ue(e);var t=[];for(var r in Object(e))te.call(e,r)&&"constructor"!=r&&t.push(r);return t}(e)}function ct(e){return et(e)?Se(e,!0):function(e){if(!nt(e))return function(e){var t=[];if(null!=e)for(var r in Object(e))t.push(r);return t}(e);var t=Ge(e),r=[];for(var n in e)("constructor"!=n||!t&&te.call(e,n))&&r.push(n);return r}(e)}function ut(e){return e}function pt(){return[]}e.exports=function(e,t){return null==e?{}:function(e,t,r){for(var n=-1,i=t.length,o={};++n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nodeHtmlParserConfig=t.aTagTranslatorConfig=t.defaultCodeBlockTranslators=t.tableCellTranslatorConfig=t.tableRowTranslatorConfig=t.tableTranslatorConfig=t.defaultTranslators=t.defaultOptions=t.contentlessElements=t.defaultIgnoreElements=t.defaultBlockElements=void 0;const n=r(998),i=r(4923);t.defaultBlockElements=["ADDRESS","ARTICLE","ASIDE","AUDIO","BLOCKQUOTE","BODY","CANVAS","CENTER","DD","DIR","DIV","DL","DT","FIELDSET","FIGCAPTION","FIGURE","FOOTER","FORM","FRAMESET","H1","H2","H3","H4","H5","H6","HEADER","HGROUP","HR","HTML","ISINDEX","LI","MAIN","MENU","NAV","NOFRAMES","NOSCRIPT","OL","OUTPUT","P","PRE","SECTION","TABLE","TBODY","TD","TFOOT","TH","THEAD","TR","UL"],t.defaultIgnoreElements=["AREA","BASE","COL","COMMAND","EMBED","HEAD","INPUT","KEYGEN","LINK","META","PARAM","SCRIPT","SOURCE","STYLE","TRACK","WBR"],t.contentlessElements=["BR","HR","IMG"],t.defaultOptions=Object.freeze({preferNativeParser:!1,codeFence:"```",bulletMarker:"*",indent:" ",codeBlockStyle:"fenced",emDelimiter:"_",strongDelimiter:"**",maxConsecutiveNewlines:3,globalEscape:[/[\\`*_~\[\]]/gm,"\\$&"],lineStartEscape:[/^(\s*?)((?:\+\s)|(?:[=>-])|(?:#{1,6}\s))|(?:(\d+)(\.\s))/gm,"$1$3\\$2$4"]}),t.defaultTranslators={pre:{noEscape:!0,preserveWhitespace:!0},br:{content:" \n",recurse:!1},hr:{content:"---",recurse:!1},"h1,h2,h3,h4,h5,h6":({node:e})=>({prefix:"#".repeat(+e.tagName.charAt(1))+" "}),"strong,b":{spaceIfRepeatingChar:!0,postprocess:({content:e,options:{strongDelimiter:t}})=>(0,n.isWhiteSpaceOnly)(e)?i.PostProcessResult.RemoveNode:(0,n.tagSurround)(e,t)},"del,s,strike":{spaceIfRepeatingChar:!0,postprocess:({content:e})=>(0,n.isWhiteSpaceOnly)(e)?i.PostProcessResult.RemoveNode:(0,n.tagSurround)(e,"~~")},"em,i":{spaceIfRepeatingChar:!0,postprocess:({content:e,options:{emDelimiter:t}})=>(0,n.isWhiteSpaceOnly)(e)?i.PostProcessResult.RemoveNode:(0,n.tagSurround)(e,t)},"ol,ul":({listKind:e})=>({surroundingNewlines:e?1:2}),li:({options:{bulletMarker:e},indentLevel:t,listKind:r,listItemNumber:o})=>{const a=+(t||0);return{prefix:" ".repeat(+(t||0))+("OL"===r&&void 0!==o?`${o}. `:`${e} `),surroundingNewlines:1,postprocess:({content:e})=>(0,n.isWhiteSpaceOnly)(e)?i.PostProcessResult.RemoveNode:e.trim().replace(/([^\r\n])(?:\r?\n)+/g,`$1 \n${" ".repeat(a)}`).replace(/(\S+?)[^\S\r\n]+$/gm,"$1 ")}},blockquote:{postprocess:({content:e})=>(0,n.trimNewLines)(e).replace(/^(>*)[^\S\r\n]?/gm,">$1 ")},code:({node:e,parent:t,options:{codeFence:r,codeBlockStyle:i},visitor:o})=>{var a,s;return["PRE","WRAPPED-PRE"].includes(null==t?void 0:t.tagName)&&t.childNodes.length<2?"fenced"===i?{noEscape:!0,prefix:r+((null===(s=null===(a=e.getAttribute("class"))||void 0===a?void 0:a.match(/language-(\S+)/))||void 0===s?void 0:s[1])||"")+"\n",postfix:"\n"+r,childTranslators:o.instance.codeBlockTranslators}:{noEscape:!0,postprocess:({content:e})=>e.replace(/^/gm," "),childTranslators:o.instance.codeBlockTranslators}:{spaceIfRepeatingChar:!0,noEscape:!0,postprocess:({content:e})=>{var t,r;const i="`"+((null===(r=null===(t=e.match(/`+/g))||void 0===t?void 0:t.sort(((e,t)=>t.length-e.length)))||void 0===r?void 0:r[0])||""),o=i.length>1?" ":"";return(0,n.surround)((0,n.surround)(e,o),i)}}},table:({visitor:e})=>({surroundingNewlines:2,childTranslators:e.instance.tableTranslators,postprocess:({content:e,nodeMetadata:t,node:r})=>{const o=(0,n.splitSpecial)(e).map((({text:e})=>e.replace(/^(?:\|\s+)?(.+)\s*\|\s*$/,"$1"))),a=[];let s=[];for(const e of o){if(!e)continue;const t=e.split(" |").map(((e,t)=>(e=e.trim(),(s.length{var r;c+="| ";for(let t=0;t" "+"-".repeat(e)+" |")).join("")+"\n")})),c}}),a:({node:e,options:t,visitor:r})=>{const n=e.getAttribute("href");if(!n)return{};let i="";for(const e of n)switch(e){case"(":i+="%28";break;case")":i+="%29";break;case"_":i+="%5F";break;case"*":i+="%2A";break;default:i+=e}const o=e.getAttribute("title");return e.textContent===n?{content:`<${i}>`}:{postprocess:({content:e})=>e.replace(/(?:\r?\n)+/g," "),childTranslators:r.instance.aTagTranslators,prefix:"[",postfix:"]"+(t.useLinkReferenceDefinitions?`[${r.addOrGetUrlDefinition(i)}]`:`(${i}${o?` "${o}"`:""})`)}},img:({node:e,options:t})=>{const r=e.getAttribute("src")||"";if(!r||!t.keepDataImages&&/^data:/i.test(r))return{ignore:!0};const n=e.getAttribute("alt")||"",i=e.getAttribute("title")||"";return{content:`![${n}](${r}${i&&` "${i}"`})`,recurse:!1}}},t.tableTranslatorConfig={caption:({visitor:e})=>({surroundingNewlines:!1,childTranslators:e.instance.tableCellTranslators,postprocess:({content:e,nodeMetadata:t,node:r})=>{const n=e.replace(/(?:\r?\n)+/g," ").trim();return n&&(t.get(r).tableMeta.caption="__"+n+"__"),i.PostProcessResult.RemoveNode}}),tr:({visitor:e})=>({surroundingNewlines:!1,childTranslators:e.instance.tableRowTranslators,postfix:"\n",prefix:"| ",postprocess:({content:e})=>/ \|\s*$/.test(e)?e:i.PostProcessResult.RemoveNode}),"th,td":({visitor:e})=>({surroundingNewlines:!1,childTranslators:e.instance.tableCellTranslators,prefix:" ",postfix:" |",postprocess:({content:e})=>(0,n.trimNewLines)(e).replace("|","\\|").replace(/(?:\r?\n)+/g," ").trim()})},t.tableRowTranslatorConfig={"th,td":t.tableTranslatorConfig["th,td"]},t.tableCellTranslatorConfig={a:t.defaultTranslators.a,"strong,b":t.defaultTranslators["strong,b"],"del,s,strike":t.defaultTranslators["del,s,strike"],"em,i":t.defaultTranslators["em,i"],img:t.defaultTranslators.img},t.defaultCodeBlockTranslators={br:{content:"\n",recurse:!1},hr:{content:"---",recurse:!1},"h1,h2,h3,h4,h5,h6":{prefix:"[",postfix:"]"},"ol,ul":t.defaultTranslators["ol,ul"],li:t.defaultTranslators.li,tr:{surroundingNewlines:!0},img:{recurse:!1}},t.aTagTranslatorConfig={br:{content:"\n",recurse:!1},hr:{content:"\n",recurse:!1},pre:t.defaultTranslators.pre,"strong,b":t.defaultTranslators["strong,b"],"del,s,strike":t.defaultTranslators["del,s,strike"],"em,i":t.defaultTranslators["em,i"],img:t.defaultTranslators.img},t.nodeHtmlParserConfig={lowerCaseTagName:!1,comment:!1,blockTextElements:{script:!1,noscript:!1,style:!1}}},2245:(e,t,r)=>{"use strict";t.dx=void 0;var n=r(7352);Object.defineProperty(t,"dx",{enumerable:!0,get:function(){return n.NodeHtmlMarkdown}});r(4923)},7352:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeHtmlMarkdown=void 0;const n=r(4923),i=r(7690),o=r(998),a=r(390);class s{constructor(e,t,r){var o,a,s,l;this.translators=new n.TranslatorCollection,this.aTagTranslators=new n.TranslatorCollection,this.codeBlockTranslators=new n.TranslatorCollection,this.tableTranslators=new n.TranslatorCollection,this.tableRowTranslators=new n.TranslatorCollection,this.tableCellTranslators=new n.TranslatorCollection,this.options=Object.assign(Object.assign({},i.defaultOptions),e);const c=null!==(a=null===(o=this.options.ignore)||void 0===o?void 0:o.concat(i.defaultIgnoreElements))&&void 0!==a?a:i.defaultIgnoreElements,u=null!==(l=null===(s=this.options.blockElements)||void 0===s?void 0:s.concat(i.defaultBlockElements))&&void 0!==l?l:i.defaultBlockElements;null==c||c.forEach((e=>{this.translators.set(e,{ignore:!0,recurse:!1}),this.codeBlockTranslators.set(e,{ignore:!0,recurse:!1})})),null==u||u.forEach((e=>{this.translators.set(e,{surroundingNewlines:2}),this.codeBlockTranslators.set(e,{surroundingNewlines:2})}));for(const[e,r]of Object.entries(Object.assign(Object.assign({},i.defaultTranslators),t)))this.translators.set(e,r,!0);for(const[e,t]of Object.entries(Object.assign(Object.assign({},i.defaultCodeBlockTranslators),r)))this.codeBlockTranslators.set(e,t,!0);for(const[e,t]of Object.entries(i.aTagTranslatorConfig))this.aTagTranslators.set(e,t,!0);for(const[e,t]of Object.entries(i.tableTranslatorConfig))this.tableTranslators.set(e,t,!0);for(const[e,t]of Object.entries(i.tableRowTranslatorConfig))this.tableRowTranslators.set(e,t,!0);for(const[e,t]of Object.entries(i.tableCellTranslatorConfig))this.tableCellTranslators.set(e,t,!0);this.options.textReplace||(this.options.textReplace=[]),this.options.textReplace.push([/^/gim,""])}static translate(e,t,r,n){return s.prototype.translateWorker.call(new s(t,r,n),e)}translate(e){return this.translateWorker(e)}translateWorker(e){const t="string"!=typeof e,r=t?e:{default:e},n={};for(const[e,t]of Object.entries(r)){const r=(0,o.parseHTML)(t,this.options);n[e]=(0,a.getMarkdownForHtmlNodes)(this,r,"default"!==e?e:void 0)}return t?n:n.default}}t.NodeHtmlMarkdown=s},5089:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isElementNode=t.isCommentNode=t.isTextNode=t.CommentNode=t.NodeType=void 0;const n=r(698);Object.defineProperty(t,"CommentNode",{enumerable:!0,get:function(){return n.CommentNode}}),Object.defineProperty(t,"NodeType",{enumerable:!0,get:function(){return n.NodeType}}),t.isTextNode=e=>e.nodeType===n.NodeType.TEXT_NODE,t.isCommentNode=e=>e.nodeType===n.NodeType.COMMENT_NODE,t.isElementNode=e=>e.nodeType===n.NodeType.ELEMENT_NODE},4923:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.createTranslatorContext=t.isTranslatorConfig=t.TranslatorCollection=t.PostProcessResult=void 0,(r=t.PostProcessResult||(t.PostProcessResult={}))[r.NoChange=0]="NoChange",r[r.RemoveNode=1]="RemoveNode",t.TranslatorCollection=class{get size(){return Object.keys(this).length}set(e,r,n){e.split(",").forEach((e=>{e=e.toUpperCase();let i=r;if(n){const n=this[e];(0,t.isTranslatorConfig)(n)&&(i=(0,t.isTranslatorConfig)(r)?Object.assign(Object.assign({},n),r):Object.assign(((...e)=>r.apply(void 0,e)),{base:n}))}this[e]=i}))}get(e){return this[e.toUpperCase()]}entries(){return Object.entries(this)}remove(e){e.split(",").forEach((e=>delete this[e.toUpperCase()]))}},t.isTranslatorConfig=e=>"object"==typeof e,t.createTranslatorContext=function(e,t,r,n){const{instance:i,nodeMetadata:o}=e;return Object.assign({node:t,options:i.options,parent:t.parentNode,nodeMetadata:o,visitor:e,base:n},r)}},998:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.perfStop=t.perfStart=t.getChildNodes=t.parseHTML=t.truthyStr=t.getTrailingWhitespaceInfo=t.tagSurround=t.splitSpecial=t.isWhiteSpaceOnly=t.surround=t.trimNewLines=void 0;const n=r(7690);function i(e){const t=[],r=e.length;for(let n=0,i=0;n1&&++n)}return t}t.trimNewLines=e=>e.replace(/^\n+|\n+$/g,""),t.surround=(e,t)=>`${t}${e}${t}`,t.isWhiteSpaceOnly=e=>!/\S/.test(e),t.splitSpecial=i,t.tagSurround=function(e,t){e.indexOf(t)>=0&&(e=e.replace(new RegExp(`([^\\\\])\\${t.split("").join("\\")}`,"gm"),"$1"));const r=i(e);let n="";for(const{text:e,newLineChar:i}of r){let r,o,a=0;for(;a>=0&&a0?e[r-1]:"",l=o{const t={whitespace:0,newLines:0},r=Math.max(e.length-10,0);for(let n=e.length-1;n>=r;--n){const r=e.slice(n,n+1);if(!/\s/.test(r))break;++t.whitespace,["\r","\n"].includes(r)&&++t.newLines}return t},t.truthyStr=(e,t)=>e?void 0!==t?t:String(e):"";const o=()=>{try{return r(698).parse}catch(e){return}};function a(e){process.env.LOG_PERF&&console.time(e)}function s(e){process.env.LOG_PERF&&console.timeEnd(e)}t.parseHTML=function(e,t){let r,i;if(a("parse"),t.preferNativeParser)try{i=function(e){try{if(!(null===window||void 0===window?void 0:window.DOMParser)||!(new window.DOMParser).parseFromString("","text/html"))return}catch(e){return}let t;try{t=document.implementation.createHTMLDocument("").open()}catch(e){const{ActiveXObject:t}=window;if(t){const e=t("htmlfile");return e.designMode="on",e.open()}throw e}return t.write(""+e+""),t.close(),t.documentElement}(e)}catch(e){if(r=o(),!r)throw e;console.warn("Native DOM parser encountered an error during parse",e)}else r=o();return i||(i=r(e,n.nodeHtmlParserConfig)),s("parse"),i},t.getChildNodes=function(e){if(null==(t=e.childNodes)&&"function"!=typeof t[Symbol.iterator])return e.childNodes;var t;const r=[];return e.childNodes.forEach((e=>r.push(e))),r},t.perfStart=a,t.perfStop=s},390:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getMarkdownForHtmlNodes=t.Visitor=void 0;const n=r(5089),i=r(998),o=r(4923),a=r(7690);class s{constructor(e,t,r){this.instance=e,this.rootNode=t,this.fileName=r,this.nodeMetadata=new Map,this.urlDefinitions=[],this.result={text:"",trailingNewlineStats:{whitespace:0,newLines:0}},this.options=e.options,this.optimizeTree(t),this.visitNode(t)}addOrGetUrlDefinition(e){let t=this.urlDefinitions.findIndex((t=>t===e));return t<0&&(t=this.urlDefinitions.push(e)-1),t+1}appendResult(e,t,r){if(!e&&void 0===t)return;const{result:n}=this;void 0!==t&&(n.text=n.text.substr(0,t)),n.text+=(r&&n.text.slice(-1)===e[0]?" ":"")+e,n.trailingNewlineStats=(0,i.getTrailingWhitespaceInfo)(n.text)}appendNewlines(e){const{newLines:t}=this.result.trailingNewlineStats;this.appendResult("\n".repeat(Math.max(0,+e-t)))}optimizeTree(e){(0,i.perfStart)("Optimize tree");const{translators:t}=this.instance;!function e(r){let o=!1;if((0,n.isTextNode)(r)||(0,n.isElementNode)(r)&&a.contentlessElements.includes(r.tagName))o=!0;else{const n=(0,i.getChildNodes)(r);if(n.length)for(const t of n)o?e(t):o=e(t);else{const e=t[r.tagName];((null==e?void 0:e.preserveIfEmpty)||"function"==typeof e)&&(o=!0)}}return r.preserve=o}(e),(0,i.perfStop)("Optimize tree")}processText(e,t){let r=e;if((null==t?void 0:t.preserveWhitespace)||(r=r.replace(/\s+/g," ")),null==t?void 0:t.noEscape)return r;const{lineStartEscape:n,globalEscape:i,textReplace:o}=this.options;if(r=r.replace(i[0],i[1]).replace(n[0],n[1]),o)for(const[e,t]of o)r=r.replace(e,t);return r}visitNode(e,t,r){var a,s;const{result:l}=this;if(!e.preserve)return;if((0,n.isTextNode)(e))return e.isWhitespace&&!(null==r?void 0:r.preserveWhitespace)?!l.text.length||l.trailingNewlineStats.whitespace>0?void 0:this.appendResult(" "):this.appendResult(this.processText((null==r?void 0:r.preserveWhitespace)?e.text:e.trimmedText,r));if(t||!(0,n.isElementNode)(e))return;const c=(null==r?void 0:r.translators)?r.translators[e.tagName]:this.instance.translators[e.tagName];switch(e.tagName){case"UL":case"OL":r=Object.assign(Object.assign({},r),{listItemNumber:0,listKind:e.tagName,indentLevel:(null!==(a=null==r?void 0:r.indentLevel)&&void 0!==a?a:-1)+1});break;case"LI":"OL"===(null==r?void 0:r.listKind)&&(r.listItemNumber=(null!==(s=r.listItemNumber)&&void 0!==s?s:0)+1);break;case"PRE":r=Object.assign(Object.assign({},r),{preserveWhitespace:!0});break;case"TABLE":r=Object.assign(Object.assign({},r),{tableMeta:{node:e}})}if(r&&this.nodeMetadata.set(e,r),!c){for(const n of(0,i.getChildNodes)(e))this.visitNode(n,t,r);return}let u,p;if((0,o.isTranslatorConfig)(c)?u=c:(p=(0,o.createTranslatorContext)(this,e,r,c.base),u=Object.assign(Object.assign({},c.base),c(p))),u.ignore)return;u.noEscape&&!(null==r?void 0:r.noEscape)&&(r=Object.assign(Object.assign({},r),{noEscape:u.noEscape}),this.nodeMetadata.set(e,r)),u.childTranslators&&u.childTranslators!==(null==r?void 0:r.translators)&&(r=Object.assign(Object.assign({},r),{translators:u.childTranslators}),this.nodeMetadata.set(e,r));const d=l.text.length;if(u.surroundingNewlines&&this.appendNewlines(+u.surroundingNewlines),u.prefix&&this.appendResult(u.prefix),"string"==typeof u.content)this.appendResult(u.content,void 0,u.spaceIfRepeatingChar);else{const t=l.text.length;for(const t of(0,i.getChildNodes)(e))this.visitNode(t,!1===u.recurse,r);if(u.postprocess){const n=u.postprocess(Object.assign(Object.assign({},p||(0,o.createTranslatorContext)(this,e,r)),{content:l.text.substr(t)}));if(n===o.PostProcessResult.RemoveNode)return"LI"===e.tagName&&(null==r?void 0:r.listItemNumber)&&--r.listItemNumber,this.appendResult("",d);"string"==typeof n&&this.appendResult(n,t,u.spaceIfRepeatingChar)}}u.postfix&&this.appendResult(u.postfix),u.surroundingNewlines&&this.appendNewlines(+u.surroundingNewlines)}}t.Visitor=s,t.getMarkdownForHtmlNodes=function(e,t,r){(0,i.perfStart)("walk");const n=new s(e,t,r);let o=n.result.text;(0,i.perfStop)("walk"),e.options.useLinkReferenceDefinitions&&(/[^\r\n]/.test(o.slice(-1))&&(o+="\n"),n.urlDefinitions.forEach(((e,t)=>{o+=`\n[${t+1}]: ${e}`})));const{maxConsecutiveNewlines:a}=e.options;return a&&(o=o.replace(new RegExp(String.raw`(?:\r?\n\s*)+((?:\r?\n\s*){${a}})`,"g"),"$1")),(0,i.trimNewLines)(o)}},8701:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e[e.length-1]}},698:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeType=t.TextNode=t.Node=t.valid=t.default=t.parse=t.HTMLElement=t.CommentNode=void 0;var i=r(1271);Object.defineProperty(t,"CommentNode",{enumerable:!0,get:function(){return n(i).default}});var o=r(4382);Object.defineProperty(t,"HTMLElement",{enumerable:!0,get:function(){return n(o).default}});var a=r(8821);Object.defineProperty(t,"parse",{enumerable:!0,get:function(){return n(a).default}}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n(a).default}});var s=r(6389);Object.defineProperty(t,"valid",{enumerable:!0,get:function(){return n(s).default}});var l=r(4936);Object.defineProperty(t,"Node",{enumerable:!0,get:function(){return n(l).default}});var c=r(7923);Object.defineProperty(t,"TextNode",{enumerable:!0,get:function(){return n(c).default}});var u=r(9979);Object.defineProperty(t,"NodeType",{enumerable:!0,get:function(){return n(u).default}})},80:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=n(r(9979));function o(e){return e&&e.nodeType===i.default.ELEMENT_NODE}function a(e,t){return o(e)?e.getAttribute(t):void 0}function s(e){return e&&e.childNodes}function l(e){return e?e.parentNode:null}t.default={isTag:o,getAttributeValue:a,getName:function(e){return(e&&e.rawTagName||"").toLowerCase()},getChildren:s,getParent:l,getText:function(e){return e.text},removeSubsets:function(e){for(var t,r,n,i=e.length;--i>-1;){for(t=r=e[i],e[i]=null,n=!0;r;){if(e.indexOf(r)>-1){n=!1,e.splice(i,1);break}r=l(r)}n&&(e[i]=t)}return e},existsOne:function e(t,r){return r.some((function(r){return!!o(r)&&(t(r)||e(t,s(r)))}))},getSiblings:function(e){var t=l(e);return t&&s(t)},hasAttrib:function(e,t){return void 0!==a(e,t)},findOne:function e(t,r){for(var n=null,i=0,o=r.length;i0&&(n=e(t,l))}}return n},findAll:function e(t,r){for(var n=[],i=0,a=r.length;i0&&t.push(e=[]),n.childNodes.forEach(r),e.length>0&&t.push(e=[])):n.childNodes.forEach(r);else if(n.nodeType===m.default.TEXT_NODE)if(n.isWhitespace)e.prependWhitespace=!0;else{var i=n.trimmedText;e.prependWhitespace&&(i=" ".concat(i),e.prependWhitespace=!1),e.push(i)}}(this),t.map((function(e){return e.join("").replace(/\s{2,}/g," ")})).join("\n").replace(/\s+$/,"")},enumerable:!1,configurable:!0}),t.prototype.toString=function(){var e=this.rawTagName;if(e){var t=this.rawAttrs?" ".concat(this.rawAttrs):"";return this.isVoidElement?"<".concat(e).concat(t,">"):"<".concat(e).concat(t,">").concat(this.innerHTML,"")}return this.innerHTML},Object.defineProperty(t.prototype,"innerHTML",{get:function(){return this.childNodes.map((function(e){return e.toString()})).join("")},set:function(e){var t=L(e),r=t.childNodes.length?t.childNodes:[new h.default(e,this)];O(r,this),O(this.childNodes,null),this.childNodes=r},enumerable:!1,configurable:!0}),t.prototype.set_content=function(e,t){if(void 0===t&&(t={}),e instanceof f.default)e=[e];else if("string"==typeof e){var r=L(e,t);e=r.childNodes.length?r.childNodes:[new h.default(e,this)]}return O(this.childNodes,null),O(e,this),this.childNodes=e,this},t.prototype.replaceWith=function(){for(var e=this,t=[],r=0;r-1&&(r.rawText=r.rawText.substr(0,n),this.childNodes.length=t+1)}}return this},Object.defineProperty(t.prototype,"structure",{get:function(){var e=[],t=0;function r(r){e.push(" ".repeat(t)+r)}return function e(n){var i=n.id?"#".concat(n.id):"",o=n.classList.length?".".concat(n.classList.value.join(".")):"";r("".concat(n.rawTagName).concat(i).concat(o)),t++,n.childNodes.forEach((function(t){t.nodeType===m.default.ELEMENT_NODE?e(t):t.nodeType===m.default.TEXT_NODE&&(t.isWhitespace||r("#text"))})),t--}(this),e.join("\n")},enumerable:!1,configurable:!0}),t.prototype.removeWhitespace=function(){var e=this,t=0;return this.childNodes.forEach((function(r){if(r.nodeType===m.default.TEXT_NODE){if(r.isWhitespace)return;r.rawText=r.trimmedRawText}else r.nodeType===m.default.ELEMENT_NODE&&r.removeWhitespace();e.childNodes[t++]=r})),this.childNodes.length=t,this},t.prototype.querySelectorAll=function(e){return(0,l.selectAll)(e,this,{xmlMode:!0,adapter:p.default})},t.prototype.querySelector=function(e){return(0,l.selectOne)(e,this,{xmlMode:!0,adapter:p.default})},t.prototype.getElementsByTagName=function(e){for(var t=e.toUpperCase(),r=[],n=[],i=this,o=0;void 0!==o;){var a=void 0;do{a=i.childNodes[o++]}while(o0&&(n.push(o),i=a,o=0)):(i=i.parentNode,o=n.pop())}return r},t.prototype.getElementById=function(e){for(var t=[],r=this,n=0;void 0!==n;){var i=void 0;do{i=r.childNodes[n++]}while(n0&&(t.push(n),r=i,n=0)}}else r=r.parentNode,n=t.pop()}return null},t.prototype.closest=function(e){var t=new Map,r=this,n=null;function i(e,r){for(var n=null,o=0,a=r.length;o0;)if(this===e[--t])return e[t-1]||null;return null}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"previousElementSibling",{get:function(){if(this.parentNode){for(var e=this.parentNode.childNodes,r=e.length,n=!1;r>0;){var i=e[--r];if(n){if(i instanceof t)return i||null}else this===i&&(n=!0)}return null}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"classNames",{get:function(){return this.classList.toString()},enumerable:!1,configurable:!0}),t.prototype.clone=function(){return L(this.toString()).firstChild},t}(f.default);t.default=w;var E=/|<(\/?)([a-zA-Z][-.:0-9_a-zA-Z]*)((?:\s+[^>]*?(?:(?:'[^']*')|(?:"[^"]*"))?)*)\s*(\/?)>/g,x=/(?:^|\s)(id|class)\s*=\s*((?:'[^']*')|(?:"[^"]*")|\S+)/gi,T={area:!0,AREA:!0,base:!0,BASE:!0,br:!0,BR:!0,col:!0,COL:!0,hr:!0,HR:!0,img:!0,IMG:!0,input:!0,INPUT:!0,link:!0,LINK:!0,meta:!0,META:!0,source:!0,SOURCE:!0,embed:!0,EMBED:!0,param:!0,PARAM:!0,track:!0,TRACK:!0,wbr:!0,WBR:!0},k={li:{li:!0,LI:!0},LI:{li:!0,LI:!0},p:{p:!0,div:!0,P:!0,DIV:!0},P:{p:!0,div:!0,P:!0,DIV:!0},b:{div:!0,DIV:!0},B:{div:!0,DIV:!0},td:{td:!0,th:!0,TD:!0,TH:!0},TD:{td:!0,th:!0,TD:!0,TH:!0},th:{td:!0,th:!0,TD:!0,TH:!0},TH:{td:!0,th:!0,TD:!0,TH:!0},h1:{h1:!0,H1:!0},H1:{h1:!0,H1:!0},h2:{h2:!0,H2:!0},H2:{h2:!0,H2:!0},h3:{h3:!0,H3:!0},H3:{h3:!0,H3:!0},h4:{h4:!0,H4:!0},H4:{h4:!0,H4:!0},h5:{h5:!0,H5:!0},H5:{h5:!0,H5:!0},h6:{h6:!0,H6:!0},H6:{h6:!0,H6:!0}},_={li:{ul:!0,ol:!0,UL:!0,OL:!0},LI:{ul:!0,ol:!0,UL:!0,OL:!0},a:{div:!0,DIV:!0},A:{div:!0,DIV:!0},b:{div:!0,DIV:!0},B:{div:!0,DIV:!0},i:{div:!0,DIV:!0},I:{div:!0,DIV:!0},p:{div:!0,DIV:!0},P:{div:!0,DIV:!0},td:{tr:!0,table:!0,TR:!0,TABLE:!0},TD:{tr:!0,table:!0,TR:!0,TABLE:!0},th:{tr:!0,table:!0,TR:!0,TABLE:!0},TH:{tr:!0,table:!0,TR:!0,TABLE:!0}},A="documentfragmentcontainer";function N(e,t){void 0===t&&(t={lowerCaseTagName:!1,comment:!1});var r=t.blockTextElements||{script:!0,noscript:!0,style:!0,pre:!0},n=Object.keys(r),i=n.map((function(e){return new RegExp("^".concat(e,"$"),"i")})),o=n.filter((function(e){return r[e]})).map((function(e){return new RegExp("^".concat(e,"$"),"i")}));function a(e){return o.some((function(t){return t.test(e)}))}function s(e){return i.some((function(t){return t.test(e)}))}var l,c=function(e,t){return[e-N,t-N]},p=new w(null,{},"",null,[0,e.length]),f=p,m=[p],g=-1,v=void 0;e="<".concat(A,">").concat(e,"");for(var b=t.lowerCaseTagName,y=e.length-(A.length+2),N=A.length+2;l=E.exec(e);){var L=l[0],O=l[1],S=l[2],C=l[3],D=l[4],q=L.length,R=E.lastIndex-q,j=E.lastIndex;if(g>-1&&g+q"),$=b?e.toLocaleLowerCase().indexOf(K,E.lastIndex):e.indexOf(K,E.lastIndex),z=-1===$?y:$;a(S)&&(P=e.substring(H,z)).length>0&&/\S/.test(P)&&f.appendChild(new h.default(P,f,c(H,z))),-1===$?g=E.lastIndex=e.length+1:(g=E.lastIndex=$+K.length,O="/")}}if(O||D||T[S])for(;;){if("a"!==S&&"A"!==S||(v=void 0),f.rawTagName===S){f.range[1]=c(-1,Math.max(g,j))[1],m.pop(),f=(0,u.default)(m);break}if(V=f.tagName,!_[V]||!_[V][S])break;m.pop(),f=(0,u.default)(m)}}else if(t.comment){P=e.substring(R+4,j-3);f.appendChild(new d.default(P,f,c(R,j)))}}return m}function L(e,t){void 0===t&&(t={lowerCaseTagName:!1,comment:!1});for(var r=N(e,t),n=r[0],i=function(){var e=r.pop(),n=(0,u.default)(r);e.parentNode&&e.parentNode.parentNode&&(e.parentNode===n&&e.tagName===n.tagName?!0!==t.parseNoneClosedTags&&(n.removeChild(e),e.childNodes.forEach((function(e){n.parentNode.appendChild(e)})),r.pop()):!0!==t.parseNoneClosedTags&&(n.removeChild(e),e.childNodes.forEach((function(e){n.appendChild(e)}))))};r.length>1;)i();return n}function O(e,t){return e.map((function(e){return e.parentNode=t,e}))}t.base_parse=N,t.parse=L},4936:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6492),i=function(){function e(e,t){void 0===e&&(e=null),this.parentNode=e,this.childNodes=[],Object.defineProperty(this,"range",{enumerable:!1,writable:!0,configurable:!0,value:null!=t?t:[-1,-1]})}return e.prototype.remove=function(){var e=this;if(this.parentNode){var t=this.parentNode.childNodes;this.parentNode.childNodes=t.filter((function(t){return e!==t})),this.parentNode=null}return this},Object.defineProperty(e.prototype,"innerText",{get:function(){return this.rawText},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"textContent",{get:function(){return(0,n.decode)(this.rawText)},set:function(e){this.rawText=(0,n.encode)(e)},enumerable:!1,configurable:!0}),e}();t.default=i},7923:function(e,t,r){"use strict";var n,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(6492),s=o(r(4936)),l=o(r(9979)),c=function(e){function t(t,r,n){var i=e.call(this,r,n)||this;return i.nodeType=l.default.TEXT_NODE,i._rawText=t,i}return i(t,e),t.prototype.clone=function(){return new t(this._rawText,null)},Object.defineProperty(t.prototype,"rawText",{get:function(){return this._rawText},set:function(e){this._rawText=e,this._trimmedRawText=void 0,this._trimmedText=void 0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"trimmedRawText",{get:function(){return void 0!==this._trimmedRawText||(this._trimmedRawText=u(this.rawText)),this._trimmedRawText},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"trimmedText",{get:function(){return void 0!==this._trimmedText||(this._trimmedText=u(this.text)),this._trimmedText},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"text",{get:function(){return(0,a.decode)(this.rawText)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isWhitespace",{get:function(){return/^(\s| )*$/.test(this.rawText)},enumerable:!1,configurable:!0}),t.prototype.toString=function(){return this.rawText},t}(s.default);function u(e){for(var t,r,n=0;n>=0&&n0&&/[^\S\r\n]/.test(e[t-1]),o=r{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.ELEMENT_NODE=1]="ELEMENT_NODE",e[e.TEXT_NODE=3]="TEXT_NODE",e[e.COMMENT_NODE=8]="COMMENT_NODE"}(r||(r={})),t.default=r},8821:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=r(4382);Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n.parse}})},6389:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(4382);t.default=function(e,t){void 0===t&&(t={lowerCaseTagName:!1,comment:!1});var r=(0,n.base_parse)(e,t);return Boolean(1===r.length)}},9769:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.compile=void 0;var n=r(1073);t.compile=function(e){var t=e[0],r=e[1]-1;if(r<0&&t<=0)return n.falseFunc;if(-1===t)return function(e){return e<=r};if(0===t)return function(e){return e===r};if(1===t)return r<0?n.trueFunc:function(e){return e>=r};var i=Math.abs(t),o=(r%i+i)%i;return t>1?function(e){return e>=r&&e%i===o}:function(e){return e<=r&&e%i===o}}},7540:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.compile=t.parse=void 0;var n=r(7766);Object.defineProperty(t,"parse",{enumerable:!0,get:function(){return n.parse}});var i=r(9769);Object.defineProperty(t,"compile",{enumerable:!0,get:function(){return i.compile}}),t.default=function(e){return(0,i.compile)((0,n.parse)(e))}},7766:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parse=void 0;var r=new Set([9,10,12,13,32]),n="0".charCodeAt(0),i="9".charCodeAt(0);t.parse=function(e){if("even"===(e=e.trim().toLowerCase()))return[2,0];if("odd"===e)return[2,1];var t=0,o=0,a=l(),s=c();if(t=n&&e.charCodeAt(t)<=i;)o=10*o+(e.charCodeAt(t)-n),t++;return t===r?null:o}function u(){for(;t":">"},a=/[&"'<>]/g;function s(e,t){return i.hasOwnProperty.call(e,t)}function l(e){return o[e]}function c(e,t,r){var n,i,o;if(e instanceof Error&&(e=(i=e).name+": "+i.message),Object.setPrototypeOf?(n=new Error(e),Object.setPrototypeOf(n,c.prototype)):(n=this,Object.defineProperty(n,"message",{enumerable:!1,writable:!0,value:e})),Object.defineProperty(n,"name",{value:"Template render error"}),Error.captureStackTrace&&Error.captureStackTrace(n,this.constructor),i){var a=Object.getOwnPropertyDescriptor(i,"stack");(o=a&&(a.get||function(){return a.value}))||(o=function(){return i.stack})}else{var s=new Error(e).stack;o=function(){return s}}return Object.defineProperty(n,"stack",{get:function(){return o.call(n)}}),Object.defineProperty(n,"cause",{value:i}),n.lineno=t,n.colno=r,n.firstUpdate=!0,n.Update=function(e){var t="("+(e||"unknown path")+")";return this.firstUpdate&&(this.lineno&&this.colno?t+=" [Line "+this.lineno+", Column "+this.colno+"]":this.lineno&&(t+=" [Line "+this.lineno+"]")),t+="\n ",this.firstUpdate&&(t+=" "),this.message=t+(this.message||""),this.firstUpdate=!1,this},n}function u(e){return"[object Function]"===i.toString.call(e)}function p(e){return"[object Array]"===i.toString.call(e)}function d(e){return"[object String]"===i.toString.call(e)}function f(e){return"[object Object]"===i.toString.call(e)}function h(e){var t,r=(t=e)?"string"==typeof t?t.split("."):[t]:[];return function(e){for(var t=e,n=0;ne.length)a=i.slice(0,e.length),i.slice(a.length,c).forEach((function(e,r){r2?i-2:0),a=2;a0||!r)&&process.stdout.write(" ".repeat(t));var o=i===n.length-1?"":"\n";process.stdout.write(""+e+o)}))}e.exports={Node:l,Root:p,NodeList:u,Value:c,Literal:d,Symbol:f,Group:h,Array:m,Pair:g,Dict:v,Output:I,Capture:U,TemplateData:V,If:y,IfAsync:w,InlineIf:E,For:x,AsyncEach:T,AsyncAll:k,Macro:_,Caller:A,Import:N,FromImport:L,FunCall:O,Filter:S,FilterAsync:C,KeywordArgs:D,Block:q,Super:R,Extends:j,Include:P,Set:B,Switch:F,Case:M,LookupVal:b,BinOp:G,In:K,Is:$,Or:z,And:Y,Not:W,Add:J,Concat:X,Sub:Z,Mul:Q,Div:ee,FloorDiv:te,Mod:re,Pow:ne,Neg:ie,Pos:oe,Compare:ae,CompareOperand:se,CallExtension:le,CallExtensionAsync:ce,printNodes:function e(t,r){if(r=r||0,ue(t.typename+": ",r),t instanceof u)ue("\n"),t.children.forEach((function(t){e(t,r+2)}));else if(t instanceof le)ue(t.extName+"."+t.prop+"\n"),t.args&&e(t.args,r+2),t.contentArgs&&t.contentArgs.forEach((function(t){e(t,r+2)}));else{var n=[],i=null;t.iterFields((function(e,t){e instanceof l?n.push([t,e]):(i=i||{})[t]=e})),i?ue(JSON.stringify(i,null,2)+"\n",null,!0):ue("\n"),n.forEach((function(t){var n=t[0],i=t[1];ue("["+n+"] =>",r+2),e(i,r+4)}))}}}},function(e,t){},function(e,t,r){"use strict";function n(e,t){return n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},n(e,t)}var i=r(8),o=r(17),a=r(3),s=r(0).TemplateError,l=r(2).Frame,c=r(1).Obj,u={"==":"==","===":"===","!=":"!=","!==":"!==","<":"<",">":">","<=":"<=",">=":">="},p=function(e){var t,r;function i(){return e.apply(this,arguments)||this}r=e,(t=i).prototype=Object.create(r.prototype),t.prototype.constructor=t,n(t,r);var o=i.prototype;return o.init=function(e,t){this.templateName=e,this.codebuf=[],this.lastId=0,this.buffer=null,this.bufferStack=[],this._scopeClosers="",this.inBlock=!1,this.throwOnUndefined=t},o.fail=function(e,t,r){throw void 0!==t&&(t+=1),void 0!==r&&(r+=1),new s(e,t,r)},o._pushBuffer=function(){var e=this._tmpid();return this.bufferStack.push(this.buffer),this.buffer=e,this._emit("var "+this.buffer+' = "";'),e},o._popBuffer=function(){this.buffer=this.bufferStack.pop()},o._emit=function(e){this.codebuf.push(e)},o._emitLine=function(e){this._emit(e+"\n")},o._emitLines=function(){for(var e=this,t=arguments.length,r=new Array(t),n=0;n0&&i._emit(","),i.compile(e,t)})),n&&this._emit(n)},o._compileExpression=function(e,t){this.assertType(e,a.Literal,a.Symbol,a.Group,a.Array,a.Dict,a.FunCall,a.Caller,a.Filter,a.LookupVal,a.Compare,a.InlineIf,a.In,a.Is,a.And,a.Or,a.Not,a.Add,a.Concat,a.Sub,a.Mul,a.Div,a.FloorDiv,a.Mod,a.Pow,a.Neg,a.Pos,a.Compare,a.NodeList),this.compile(e,t)},o.assertType=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n0&&n._emit(","),e){n._emitLine("function(cb) {"),n._emitLine("if(!cb) { cb = function(err) { if(err) { throw err; }}}");var i=n._pushBuffer();n._withScopedSyntax((function(){n.compile(e,t),n._emitLine("cb(null, "+i+");")})),n._popBuffer(),n._emitLine("return "+i+";"),n._emitLine("}")}else n._emit("null")})),r){var l=this._tmpid();this._emitLine(", "+this._makeCallback(l)),this._emitLine(this.buffer+" += runtime.suppressValue("+l+", "+s+" && env.opts.autoescape);"),this._addScopeLevel()}else this._emit(")"),this._emit(", "+s+" && env.opts.autoescape);\n")},o.compileCallExtensionAsync=function(e,t){this.compileCallExtension(e,t,!0)},o.compileNodeList=function(e,t){this._compileChildren(e,t)},o.compileLiteral=function(e){if("string"==typeof e.value){var t=e.value.replace(/\\/g,"\\\\");t=(t=(t=(t=(t=t.replace(/"/g,'\\"')).replace(/\n/g,"\\n")).replace(/\r/g,"\\r")).replace(/\t/g,"\\t")).replace(/\u2028/g,"\\u2028"),this._emit('"'+t+'"')}else null===e.value?this._emit("null"):this._emit(e.value.toString())},o.compileSymbol=function(e,t){var r=e.value,n=t.lookup(r);n?this._emit(n):this._emit('runtime.contextOrFrameLookup(context, frame, "'+r+'")')},o.compileGroup=function(e,t){this._compileAggregate(e,t,"(",")")},o.compileArray=function(e,t){this._compileAggregate(e,t,"[","]")},o.compileDict=function(e,t){this._compileAggregate(e,t,"{","}")},o.compilePair=function(e,t){var r=e.key,n=e.value;r instanceof a.Symbol?r=new a.Literal(r.lineno,r.colno,r.value):r instanceof a.Literal&&"string"==typeof r.value||this.fail("compilePair: Dict keys must be strings or names",r.lineno,r.colno),this.compile(r,t),this._emit(": "),this._compileExpression(n,t)},o.compileInlineIf=function(e,t){this._emit("("),this.compile(e.cond,t),this._emit("?"),this.compile(e.body,t),this._emit(":"),null!==e.else_?this.compile(e.else_,t):this._emit('""'),this._emit(")")},o.compileIn=function(e,t){this._emit("runtime.inOperator("),this.compile(e.left,t),this._emit(","),this.compile(e.right,t),this._emit(")")},o.compileIs=function(e,t){var r=e.right.name?e.right.name.value:e.right.value;this._emit('env.getTest("'+r+'").call(context, '),this.compile(e.left,t),e.right.args&&(this._emit(","),this.compile(e.right.args,t)),this._emit(") === true")},o._binOpEmitter=function(e,t,r){this.compile(e.left,t),this._emit(r),this.compile(e.right,t)},o.compileOr=function(e,t){return this._binOpEmitter(e,t," || ")},o.compileAnd=function(e,t){return this._binOpEmitter(e,t," && ")},o.compileAdd=function(e,t){return this._binOpEmitter(e,t," + ")},o.compileConcat=function(e,t){return this._binOpEmitter(e,t,' + "" + ')},o.compileSub=function(e,t){return this._binOpEmitter(e,t," - ")},o.compileMul=function(e,t){return this._binOpEmitter(e,t," * ")},o.compileDiv=function(e,t){return this._binOpEmitter(e,t," / ")},o.compileMod=function(e,t){return this._binOpEmitter(e,t," % ")},o.compileNot=function(e,t){this._emit("!"),this.compile(e.target,t)},o.compileFloorDiv=function(e,t){this._emit("Math.floor("),this.compile(e.left,t),this._emit(" / "),this.compile(e.right,t),this._emit(")")},o.compilePow=function(e,t){this._emit("Math.pow("),this.compile(e.left,t),this._emit(", "),this.compile(e.right,t),this._emit(")")},o.compileNeg=function(e,t){this._emit("-"),this.compile(e.target,t)},o.compilePos=function(e,t){this._emit("+"),this.compile(e.target,t)},o.compileCompare=function(e,t){var r=this;this.compile(e.expr,t),e.ops.forEach((function(e){r._emit(" "+u[e.type]+" "),r.compile(e.expr,t)}))},o.compileLookupVal=function(e,t){this._emit("runtime.memberLookup(("),this._compileExpression(e.target,t),this._emit("),"),this._compileExpression(e.val,t),this._emit(")")},o._getNodeName=function(e){switch(e.typename){case"Symbol":return e.value;case"FunCall":return"the return value of ("+this._getNodeName(e.name)+")";case"LookupVal":return this._getNodeName(e.target)+'["'+this._getNodeName(e.val)+'"]';case"Literal":return e.value.toString();default:return"--expression--"}},o.compileFunCall=function(e,t){this._emit("(lineno = "+e.lineno+", colno = "+e.colno+", "),this._emit("runtime.callWrap("),this._compileExpression(e.name,t),this._emit(', "'+this._getNodeName(e.name).replace(/"/g,'\\"')+'", context, '),this._compileAggregate(e.args,t,"[","])"),this._emit(")")},o.compileFilter=function(e,t){var r=e.name;this.assertType(r,a.Symbol),this._emit('env.getFilter("'+r.value+'").call(context, '),this._compileAggregate(e.args,t),this._emit(")")},o.compileFilterAsync=function(e,t){var r=e.name,n=e.symbol.value;this.assertType(r,a.Symbol),t.set(n,n),this._emit('env.getFilter("'+r.value+'").call(context, '),this._compileAggregate(e.args,t),this._emitLine(", "+this._makeCallback(n)),this._addScopeLevel()},o.compileKeywordArgs=function(e,t){this._emit("runtime.makeKeywordArgs("),this.compileDict(e,t),this._emit(")")},o.compileSet=function(e,t){var r=this,n=[];e.targets.forEach((function(e){var i=e.value,o=t.lookup(i);null==o&&(o=r._tmpid(),r._emitLine("var "+o+";")),n.push(o)})),e.value?(this._emit(n.join(" = ")+" = "),this._compileExpression(e.value,t),this._emitLine(";")):(this._emit(n.join(" = ")+" = "),this.compile(e.body,t),this._emitLine(";")),e.targets.forEach((function(e,t){var i=n[t],o=e.value;r._emitLine('frame.set("'+o+'", '+i+", true);"),r._emitLine("if(frame.topLevel) {"),r._emitLine('context.setVariable("'+o+'", '+i+");"),r._emitLine("}"),"_"!==o.charAt(0)&&(r._emitLine("if(frame.topLevel) {"),r._emitLine('context.addExport("'+o+'", '+i+");"),r._emitLine("}"))}))},o.compileSwitch=function(e,t){var r=this;this._emit("switch ("),this.compile(e.expr,t),this._emit(") {"),e.cases.forEach((function(e,n){r._emit("case "),r.compile(e.cond,t),r._emit(": "),r.compile(e.body,t),e.body.children.length&&r._emitLine("break;")})),e.default&&(this._emit("default:"),this.compile(e.default,t)),this._emit("}")},o.compileIf=function(e,t,r){var n=this;this._emit("if("),this._compileExpression(e.cond,t),this._emitLine(") {"),this._withScopedSyntax((function(){n.compile(e.body,t),r&&n._emit("cb()")})),e.else_?(this._emitLine("}\nelse {"),this._withScopedSyntax((function(){n.compile(e.else_,t),r&&n._emit("cb()")}))):r&&(this._emitLine("}\nelse {"),this._emit("cb()")),this._emitLine("}")},o.compileIfAsync=function(e,t){this._emit("(function(cb) {"),this.compileIf(e,t,!0),this._emit("})("+this._makeCallback()),this._addScopeLevel()},o._emitLoopBindings=function(e,t,r,n){var i=this;[{name:"index",val:r+" + 1"},{name:"index0",val:r},{name:"revindex",val:n+" - "+r},{name:"revindex0",val:n+" - "+r+" - 1"},{name:"first",val:r+" === 0"},{name:"last",val:r+" === "+n+" - 1"},{name:"length",val:n}].forEach((function(e){i._emitLine('frame.set("loop.'+e.name+'", '+e.val+");")}))},o.compileFor=function(e,t){var r=this,n=this._tmpid(),i=this._tmpid(),o=this._tmpid();if(t=t.push(),this._emitLine("frame = frame.push();"),this._emit("var "+o+" = "),this._compileExpression(e.arr,t),this._emitLine(";"),this._emit("if("+o+") {"),this._emitLine(o+" = runtime.fromIterator("+o+");"),e.name instanceof a.Array){this._emitLine("var "+n+";"),this._emitLine("if(runtime.isArray("+o+")) {"),this._emitLine("var "+i+" = "+o+".length;"),this._emitLine("for("+n+"=0; "+n+" < "+o+".length; "+n+"++) {"),e.name.children.forEach((function(i,a){var s=r._tmpid();r._emitLine("var "+s+" = "+o+"["+n+"]["+a+"];"),r._emitLine('frame.set("'+i+'", '+o+"["+n+"]["+a+"]);"),t.set(e.name.children[a].value,s)})),this._emitLoopBindings(e,o,n,i),this._withScopedSyntax((function(){r.compile(e.body,t)})),this._emitLine("}"),this._emitLine("} else {");var s=e.name.children,l=s[0],c=s[1],u=this._tmpid(),p=this._tmpid();t.set(l.value,u),t.set(c.value,p),this._emitLine(n+" = -1;"),this._emitLine("var "+i+" = runtime.keys("+o+").length;"),this._emitLine("for(var "+u+" in "+o+") {"),this._emitLine(n+"++;"),this._emitLine("var "+p+" = "+o+"["+u+"];"),this._emitLine('frame.set("'+l.value+'", '+u+");"),this._emitLine('frame.set("'+c.value+'", '+p+");"),this._emitLoopBindings(e,o,n,i),this._withScopedSyntax((function(){r.compile(e.body,t)})),this._emitLine("}"),this._emitLine("}")}else{var d=this._tmpid();t.set(e.name.value,d),this._emitLine("var "+i+" = "+o+".length;"),this._emitLine("for(var "+n+"=0; "+n+" < "+o+".length; "+n+"++) {"),this._emitLine("var "+d+" = "+o+"["+n+"];"),this._emitLine('frame.set("'+e.name.value+'", '+d+");"),this._emitLoopBindings(e,o,n,i),this._withScopedSyntax((function(){r.compile(e.body,t)})),this._emitLine("}")}this._emitLine("}"),e.else_&&(this._emitLine("if (!"+i+") {"),this.compile(e.else_,t),this._emitLine("}")),this._emitLine("frame = frame.pop();")},o._compileAsyncLoop=function(e,t,r){var n=this,i=this._tmpid(),o=this._tmpid(),s=this._tmpid(),l=r?"asyncAll":"asyncEach";if(t=t.push(),this._emitLine("frame = frame.push();"),this._emit("var "+s+" = runtime.fromIterator("),this._compileExpression(e.arr,t),this._emitLine(");"),e.name instanceof a.Array){var c=e.name.children.length;this._emit("runtime."+l+"("+s+", "+c+", function("),e.name.children.forEach((function(e){n._emit(e.value+",")})),this._emit(i+","+o+",next) {"),e.name.children.forEach((function(e){var r=e.value;t.set(r,r),n._emitLine('frame.set("'+r+'", '+r+");")}))}else{var u=e.name.value;this._emitLine("runtime."+l+"("+s+", 1, function("+u+", "+i+", "+o+",next) {"),this._emitLine('frame.set("'+u+'", '+u+");"),t.set(u,u)}this._emitLoopBindings(e,s,i,o),this._withScopedSyntax((function(){var o;r&&(o=n._pushBuffer()),n.compile(e.body,t),n._emitLine("next("+i+(o?","+o:"")+");"),r&&n._popBuffer()}));var p=this._tmpid();this._emitLine("}, "+this._makeCallback(p)),this._addScopeLevel(),r&&this._emitLine(this.buffer+" += "+p+";"),e.else_&&(this._emitLine("if (!"+s+".length) {"),this.compile(e.else_,t),this._emitLine("}")),this._emitLine("frame = frame.pop();")},o.compileAsyncEach=function(e,t){this._compileAsyncLoop(e,t)},o.compileAsyncAll=function(e,t){this._compileAsyncLoop(e,t,!0)},o._compileMacro=function(e,t){var r=this,n=[],i=null,o="macro_"+this._tmpid(),s=void 0!==t;e.args.children.forEach((function(t,o){o===e.args.children.length-1&&t instanceof a.Dict?i=t:(r.assertType(t,a.Symbol),n.push(t))}));var c,u=[].concat(n.map((function(e){return"l_"+e.value})),["kwargs"]),p=n.map((function(e){return'"'+e.value+'"'})),d=(i&&i.children||[]).map((function(e){return'"'+e.key.value+'"'}));c=s?t.push(!0):new l,this._emitLines("var "+o+" = runtime.makeMacro(","["+p.join(", ")+"], ","["+d.join(", ")+"], ","function ("+u.join(", ")+") {","var callerFrame = frame;","frame = "+(s?"frame.push(true);":"new runtime.Frame();"),"kwargs = kwargs || {};",'if (Object.prototype.hasOwnProperty.call(kwargs, "caller")) {','frame.set("caller", kwargs.caller); }'),n.forEach((function(e){r._emitLine('frame.set("'+e.value+'", l_'+e.value+");"),c.set(e.value,"l_"+e.value)})),i&&i.children.forEach((function(e){var t=e.key.value;r._emit('frame.set("'+t+'", '),r._emit('Object.prototype.hasOwnProperty.call(kwargs, "'+t+'")'),r._emit(' ? kwargs["'+t+'"] : '),r._compileExpression(e.value,c),r._emit(");")}));var f=this._pushBuffer();return this._withScopedSyntax((function(){r.compile(e.body,c)})),this._emitLine("frame = "+(s?"frame.pop();":"callerFrame;")),this._emitLine("return new runtime.SafeString("+f+");"),this._emitLine("});"),this._popBuffer(),o},o.compileMacro=function(e,t){var r=this._compileMacro(e),n=e.name.value;t.set(n,r),t.parent?this._emitLine('frame.set("'+n+'", '+r+");"):("_"!==e.name.value.charAt(0)&&this._emitLine('context.addExport("'+n+'");'),this._emitLine('context.setVariable("'+n+'", '+r+");"))},o.compileCaller=function(e,t){this._emit("(function (){");var r=this._compileMacro(e,t);this._emit("return "+r+";})()")},o._compileGetTemplate=function(e,t,r,n){var i=this._tmpid(),o=this._templateName(),a=this._makeCallback(i),s=r?"true":"false",l=n?"true":"false";return this._emit("env.getTemplate("),this._compileExpression(e.template,t),this._emitLine(", "+s+", "+o+", "+l+", "+a),i},o.compileImport=function(e,t){var r=e.target.value,n=this._compileGetTemplate(e,t,!1,!1);this._addScopeLevel(),this._emitLine(n+".getExported("+(e.withContext?"context.getVariables(), frame, ":"")+this._makeCallback(n)),this._addScopeLevel(),t.set(r,n),t.parent?this._emitLine('frame.set("'+r+'", '+n+");"):this._emitLine('context.setVariable("'+r+'", '+n+");")},o.compileFromImport=function(e,t){var r=this,n=this._compileGetTemplate(e,t,!1,!1);this._addScopeLevel(),this._emitLine(n+".getExported("+(e.withContext?"context.getVariables(), frame, ":"")+this._makeCallback(n)),this._addScopeLevel(),e.names.children.forEach((function(e){var i,o,s=r._tmpid();e instanceof a.Pair?(i=e.key.value,o=e.value.value):o=i=e.value,r._emitLine("if(Object.prototype.hasOwnProperty.call("+n+', "'+i+'")) {'),r._emitLine("var "+s+" = "+n+"."+i+";"),r._emitLine("} else {"),r._emitLine("cb(new Error(\"cannot import '"+i+"'\")); return;"),r._emitLine("}"),t.set(o,s),t.parent?r._emitLine('frame.set("'+o+'", '+s+");"):r._emitLine('context.setVariable("'+o+'", '+s+");")}))},o.compileBlock=function(e){var t=this._tmpid();this.inBlock||this._emit('(parentTemplate ? function(e, c, f, r, cb) { cb(""); } : '),this._emit('context.getBlock("'+e.name.value+'")'),this.inBlock||this._emit(")"),this._emitLine("(env, context, frame, runtime, "+this._makeCallback(t)),this._emitLine(this.buffer+" += "+t+";"),this._addScopeLevel()},o.compileSuper=function(e,t){var r=e.blockName.value,n=e.symbol.value,i=this._makeCallback(n);this._emitLine('context.getSuper(env, "'+r+'", b_'+r+", frame, runtime, "+i),this._emitLine(n+" = runtime.markSafe("+n+");"),this._addScopeLevel(),t.set(n,n)},o.compileExtends=function(e,t){var r=this._tmpid(),n=this._compileGetTemplate(e,t,!0,!1);this._emitLine("parentTemplate = "+n),this._emitLine("for(var "+r+" in parentTemplate.blocks) {"),this._emitLine("context.addBlock("+r+", parentTemplate.blocks["+r+"]);"),this._emitLine("}"),this._addScopeLevel()},o.compileInclude=function(e,t){this._emitLine("var tasks = [];"),this._emitLine("tasks.push("),this._emitLine("function(callback) {");var r=this._compileGetTemplate(e,t,!1,e.ignoreMissing);this._emitLine("callback(null,"+r+");});"),this._emitLine("});");var n=this._tmpid();this._emitLine("tasks.push("),this._emitLine("function(template, callback){"),this._emitLine("template.render(context.getVariables(), frame, "+this._makeCallback(n)),this._emitLine("callback(null,"+n+");});"),this._emitLine("});"),this._emitLine("tasks.push("),this._emitLine("function(result, callback){"),this._emitLine(this.buffer+" += result;"),this._emitLine("callback(null);"),this._emitLine("});"),this._emitLine("env.waterfall(tasks, function(){"),this._addScopeLevel()},o.compileTemplateData=function(e,t){this.compileLiteral(e,t)},o.compileCapture=function(e,t){var r=this,n=this.buffer;this.buffer="output",this._emitLine("(function() {"),this._emitLine('var output = "";'),this._withScopedSyntax((function(){r.compile(e.body,t)})),this._emitLine("return output;"),this._emitLine("})()"),this.buffer=n},o.compileOutput=function(e,t){var r=this;e.children.forEach((function(n){n instanceof a.TemplateData?n.value&&(r._emit(r.buffer+" += "),r.compileLiteral(n,t),r._emitLine(";")):(r._emit(r.buffer+" += runtime.suppressValue("),r.throwOnUndefined&&r._emit("runtime.ensureDefined("),r.compile(n,t),r.throwOnUndefined&&r._emit(","+e.lineno+","+e.colno+")"),r._emit(", env.opts.autoescape);\n"))}))},o.compileRoot=function(e,t){var r=this;t&&this.fail("compileRoot: root node can't have frame"),t=new l,this._emitFuncBegin(e,"root"),this._emitLine("var parentTemplate = null;"),this._compileChildren(e,t),this._emitLine("if(parentTemplate) {"),this._emitLine("parentTemplate.rootRenderFunc(env, context, frame, runtime, cb);"),this._emitLine("} else {"),this._emitLine("cb(null, "+this.buffer+");"),this._emitLine("}"),this._emitFuncEnd(!0),this.inBlock=!0;var n=[],i=e.findAll(a.Block);i.forEach((function(e,t){var i=e.name.value;if(-1!==n.indexOf(i))throw new Error('Block "'+i+'" defined more than once.');n.push(i),r._emitFuncBegin(e,"b_"+i);var o=new l;r._emitLine("var frame = frame.push(true);"),r.compile(e.body,o),r._emitFuncEnd()})),this._emitLine("return {"),i.forEach((function(e,t){var n="b_"+e.name.value;r._emitLine(n+": "+n+",")})),this._emitLine("root: root\n};")},o.compile=function(e,t){var r=this["compile"+e.typename];r?r.call(this,e,t):this.fail("compile: Cannot compile node: "+e.typename,e.lineno,e.colno)},o.getCode=function(){return this.codebuf.join("")},i}(c);e.exports={compile:function(e,t,r,n,a){void 0===a&&(a={});var s=new p(n,a.throwOnUndefined),l=(r||[]).map((function(e){return e.preprocess})).filter((function(e){return!!e})).reduce((function(e,t){return t(e)}),e);return s.compile(o.transform(i.parse(l,r,a),t,n)),s.getCode()},Compiler:p}},function(e,t,r){"use strict";function n(e,t){return n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},n(e,t)}var i=r(4),o=r(1).EmitterObj;e.exports=function(e){var t,r;function o(){return e.apply(this,arguments)||this}r=e,(t=o).prototype=Object.create(r.prototype),t.prototype.constructor=t,n(t,r);var a=o.prototype;return a.resolve=function(e,t){return i.resolve(i.dirname(e),t)},a.isRelative=function(e){return 0===e.indexOf("./")||0===e.indexOf("../")},o}(o)},function(e,t,r){"use strict";function n(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,i(e,t)}function i(e,t){return i=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},i(e,t)}var o=r(12),a=r(15),s=r(0),l=r(5),c=r(18),u=r(10),p=u.FileSystemLoader,d=u.WebLoader,f=u.PrecompiledLoader,h=r(20),m=r(21),g=r(1),v=g.Obj,b=g.EmitterObj,y=r(2),w=y.handleError,E=y.Frame,x=r(22);function T(e,t,r){o((function(){e(t,r)}))}var k={type:"code",obj:{root:function(e,t,r,n,i){try{i(null,"")}catch(e){i(w(e,null,null))}}}},_=function(e){function t(){return e.apply(this,arguments)||this}n(t,e);var r=t.prototype;return r.init=function(e,t){var r=this;t=this.opts=t||{},this.opts.dev=!!t.dev,this.opts.autoescape=null==t.autoescape||t.autoescape,this.opts.throwOnUndefined=!!t.throwOnUndefined,this.opts.trimBlocks=!!t.trimBlocks,this.opts.lstripBlocks=!!t.lstripBlocks,this.loaders=[],e?this.loaders=s.isArray(e)?e:[e]:p?this.loaders=[new p("views")]:d&&(this.loaders=[new d("/views")]),"undefined"!=typeof window&&window.nunjucksPrecompiled&&this.loaders.unshift(new f(window.nunjucksPrecompiled)),this._initLoaders(),this.globals=m(),this.filters={},this.tests={},this.asyncFilters=[],this.extensions={},this.extensionsList=[],s._entries(c).forEach((function(e){var t=e[0],n=e[1];return r.addFilter(t,n)})),s._entries(h).forEach((function(e){var t=e[0],n=e[1];return r.addTest(t,n)}))},r._initLoaders=function(){var e=this;this.loaders.forEach((function(t){t.cache={},"function"==typeof t.on&&(t.on("update",(function(r,n){t.cache[r]=null,e.emit("update",r,n,t)})),t.on("load",(function(r,n){e.emit("load",r,n,t)})))}))},r.invalidateCache=function(){this.loaders.forEach((function(e){e.cache={}}))},r.addExtension=function(e,t){return t.__name=e,this.extensions[e]=t,this.extensionsList.push(t),this},r.removeExtension=function(e){var t=this.getExtension(e);t&&(this.extensionsList=s.without(this.extensionsList,t),delete this.extensions[e])},r.getExtension=function(e){return this.extensions[e]},r.hasExtension=function(e){return!!this.extensions[e]},r.addGlobal=function(e,t){return this.globals[e]=t,this},r.getGlobal=function(e){if(void 0===this.globals[e])throw new Error("global not found: "+e);return this.globals[e]},r.addFilter=function(e,t,r){var n=t;return r&&this.asyncFilters.push(e),this.filters[e]=n,this},r.getFilter=function(e){if(!this.filters[e])throw new Error("filter not found: "+e);return this.filters[e]},r.addTest=function(e,t){return this.tests[e]=t,this},r.getTest=function(e){if(!this.tests[e])throw new Error("test not found: "+e);return this.tests[e]},r.resolveTemplate=function(e,t,r){return e.isRelative&&t&&e.isRelative(r)&&e.resolve?e.resolve(t,r):r},r.getTemplate=function(e,t,r,n,i){var o,a=this,l=this,c=null;if(e&&e.raw&&(e=e.raw),s.isFunction(r)&&(i=r,r=null,t=t||!1),s.isFunction(t)&&(i=t,t=!1),e instanceof N)c=e;else{if("string"!=typeof e)throw new Error("template names must be a string: "+e);for(var u=0;u0&&!this.skip(i.TOKEN_COMMA)&&this.fail("parseFrom: expected comma",e.lineno,e.colno);var s=this.parsePrimary();if("_"===s.value.charAt(0)&&this.fail("parseFrom: names starting with an underscore cannot be imported",s.lineno,s.colno),this.skipSymbol("as")){var l=this.parsePrimary();n.addChild(new o.Pair(s.lineno,s.colno,s,l))}else n.addChild(s);r=this.parseWithContext()}return new o.FromImport(e.lineno,e.colno,t,n,r)},l.parseBlock=function(){var e=this.peekToken();this.skipSymbol("block")||this.fail("parseBlock: expected block",e.lineno,e.colno);var t=new o.Block(e.lineno,e.colno);t.name=this.parsePrimary(),t.name instanceof o.Symbol||this.fail("parseBlock: variable name expected",e.lineno,e.colno),this.advanceAfterBlockEnd(e.value),t.body=this.parseUntilBlocks("endblock"),this.skipSymbol("endblock"),this.skipSymbol(t.name.value);var r=this.peekToken();return r||this.fail("parseBlock: expected endblock, got end of file"),this.advanceAfterBlockEnd(r.value),t},l.parseExtends=function(){var e="extends",t=this.peekToken();this.skipSymbol(e)||this.fail("parseTemplateRef: expected "+e);var r=new o.Extends(t.lineno,t.colno);return r.template=this.parseExpression(),this.advanceAfterBlockEnd(t.value),r},l.parseInclude=function(){var e="include",t=this.peekToken();this.skipSymbol(e)||this.fail("parseInclude: expected "+e);var r=new o.Include(t.lineno,t.colno);return r.template=this.parseExpression(),this.skipSymbol("ignore")&&this.skipSymbol("missing")&&(r.ignoreMissing=!0),this.advanceAfterBlockEnd(t.value),r},l.parseIf=function(){var e,t=this.peekToken();this.skipSymbol("if")||this.skipSymbol("elif")||this.skipSymbol("elseif")?e=new o.If(t.lineno,t.colno):this.skipSymbol("ifAsync")?e=new o.IfAsync(t.lineno,t.colno):this.fail("parseIf: expected if, elif, or elseif",t.lineno,t.colno),e.cond=this.parseExpression(),this.advanceAfterBlockEnd(t.value),e.body=this.parseUntilBlocks("elif","elseif","else","endif");var r=this.peekToken();switch(r&&r.value){case"elseif":case"elif":e.else_=this.parseIf();break;case"else":this.advanceAfterBlockEnd(),e.else_=this.parseUntilBlocks("endif"),this.advanceAfterBlockEnd();break;case"endif":e.else_=null,this.advanceAfterBlockEnd();break;default:this.fail("parseIf: expected elif, else, or endif, got end of file")}return e},l.parseSet=function(){var e=this.peekToken();this.skipSymbol("set")||this.fail("parseSet: expected set",e.lineno,e.colno);for(var t,r=new o.Set(e.lineno,e.colno,[]);(t=this.parsePrimary())&&(r.targets.push(t),this.skip(i.TOKEN_COMMA)););return this.skipValue(i.TOKEN_OPERATOR,"=")?(r.value=this.parseExpression(),this.advanceAfterBlockEnd(e.value)):this.skip(i.TOKEN_BLOCK_END)?(r.body=new o.Capture(e.lineno,e.colno,this.parseUntilBlocks("endset")),r.value=null,this.advanceAfterBlockEnd()):this.fail("parseSet: expected = or block end in set tag",e.lineno,e.colno),r},l.parseSwitch=function(){var e="switch",t="endswitch",r="case",n="default",i=this.peekToken();this.skipSymbol(e)||this.skipSymbol(r)||this.skipSymbol(n)||this.fail('parseSwitch: expected "switch," "case" or "default"',i.lineno,i.colno);var a=this.parseExpression();this.advanceAfterBlockEnd(e),this.parseUntilBlocks(r,n,t);var s,l=this.peekToken(),c=[];do{this.skipSymbol(r);var u=this.parseExpression();this.advanceAfterBlockEnd(e);var p=this.parseUntilBlocks(r,n,t);c.push(new o.Case(l.line,l.col,u,p)),l=this.peekToken()}while(l&&l.value===r);switch(l.value){case n:this.advanceAfterBlockEnd(),s=this.parseUntilBlocks(t),this.advanceAfterBlockEnd();break;case t:this.advanceAfterBlockEnd();break;default:this.fail('parseSwitch: expected "case," "default" or "endswitch," got EOF.')}return new o.Switch(i.lineno,i.colno,a,c,s)},l.parseStatement=function(){var e=this.peekToken();if(e.type!==i.TOKEN_SYMBOL&&this.fail("tag name expected",e.lineno,e.colno),this.breakOnBlocks&&-1!==s.indexOf(this.breakOnBlocks,e.value))return null;switch(e.value){case"raw":return this.parseRaw();case"verbatim":return this.parseRaw("verbatim");case"if":case"ifAsync":return this.parseIf();case"for":case"asyncEach":case"asyncAll":return this.parseFor();case"block":return this.parseBlock();case"extends":return this.parseExtends();case"include":return this.parseInclude();case"set":return this.parseSet();case"macro":return this.parseMacro();case"call":return this.parseCall();case"import":return this.parseImport();case"from":return this.parseFrom();case"filter":return this.parseFilterStatement();case"switch":return this.parseSwitch();default:if(this.extensions.length)for(var t=0;t0;){var l=a[0],c=a[1],u=a[2];u===e?n+=1:u===t&&(n-=1),0===n?(i+=c,this.tokens.backN(l.length-c.length)):i+=l}return new o.Output(s.lineno,s.colno,[new o.TemplateData(s.lineno,s.colno,i)])},l.parsePostfix=function(e){for(var t,r=this.peekToken();r;){if(r.type===i.TOKEN_LEFT_PAREN)e=new o.FunCall(r.lineno,r.colno,e,this.parseSignature());else if(r.type===i.TOKEN_LEFT_BRACKET)(t=this.parseAggregate()).children.length>1&&this.fail("invalid index"),e=new o.LookupVal(r.lineno,r.colno,e,t.children[0]);else{if(r.type!==i.TOKEN_OPERATOR||"."!==r.value)break;this.nextToken();var n=this.nextToken();n.type!==i.TOKEN_SYMBOL&&this.fail("expected name as lookup value, got "+n.value,n.lineno,n.colno),t=new o.Literal(n.lineno,n.colno,n.value),e=new o.LookupVal(r.lineno,r.colno,e,t)}r=this.peekToken()}return e},l.parseExpression=function(){return this.parseInlineIf()},l.parseInlineIf=function(){var e=this.parseOr();if(this.skipSymbol("if")){var t=this.parseOr(),r=e;(e=new o.InlineIf(e.lineno,e.colno)).body=r,e.cond=t,this.skipSymbol("else")?e.else_=this.parseOr():e.else_=null}return e},l.parseOr=function(){for(var e=this.parseAnd();this.skipSymbol("or");){var t=this.parseAnd();e=new o.Or(e.lineno,e.colno,e,t)}return e},l.parseAnd=function(){for(var e=this.parseNot();this.skipSymbol("and");){var t=this.parseNot();e=new o.And(e.lineno,e.colno,e,t)}return e},l.parseNot=function(){var e=this.peekToken();return this.skipSymbol("not")?new o.Not(e.lineno,e.colno,this.parseNot()):this.parseIn()},l.parseIn=function(){for(var e=this.parseIs();;){var t=this.nextToken();if(!t)break;var r=t.type===i.TOKEN_SYMBOL&&"not"===t.value;if(r||this.pushToken(t),!this.skipSymbol("in")){r&&this.pushToken(t);break}var n=this.parseIs();e=new o.In(e.lineno,e.colno,e,n),r&&(e=new o.Not(e.lineno,e.colno,e))}return e},l.parseIs=function(){var e=this.parseCompare();if(this.skipSymbol("is")){var t=this.skipSymbol("not"),r=this.parseCompare();e=new o.Is(e.lineno,e.colno,e,r),t&&(e=new o.Not(e.lineno,e.colno,e))}return e},l.parseCompare=function(){for(var e=["==","===","!=","!==","<",">","<=",">="],t=this.parseConcat(),r=[];;){var n=this.nextToken();if(!n)break;if(-1===e.indexOf(n.value)){this.pushToken(n);break}r.push(new o.CompareOperand(n.lineno,n.colno,this.parseConcat(),n.value))}return r.length?new o.Compare(r[0].lineno,r[0].colno,t,r):t},l.parseConcat=function(){for(var e=this.parseAdd();this.skipValue(i.TOKEN_TILDE,"~");){var t=this.parseAdd();e=new o.Concat(e.lineno,e.colno,e,t)}return e},l.parseAdd=function(){for(var e=this.parseSub();this.skipValue(i.TOKEN_OPERATOR,"+");){var t=this.parseSub();e=new o.Add(e.lineno,e.colno,e,t)}return e},l.parseSub=function(){for(var e=this.parseMul();this.skipValue(i.TOKEN_OPERATOR,"-");){var t=this.parseMul();e=new o.Sub(e.lineno,e.colno,e,t)}return e},l.parseMul=function(){for(var e=this.parseDiv();this.skipValue(i.TOKEN_OPERATOR,"*");){var t=this.parseDiv();e=new o.Mul(e.lineno,e.colno,e,t)}return e},l.parseDiv=function(){for(var e=this.parseFloorDiv();this.skipValue(i.TOKEN_OPERATOR,"/");){var t=this.parseFloorDiv();e=new o.Div(e.lineno,e.colno,e,t)}return e},l.parseFloorDiv=function(){for(var e=this.parseMod();this.skipValue(i.TOKEN_OPERATOR,"//");){var t=this.parseMod();e=new o.FloorDiv(e.lineno,e.colno,e,t)}return e},l.parseMod=function(){for(var e=this.parsePow();this.skipValue(i.TOKEN_OPERATOR,"%");){var t=this.parsePow();e=new o.Mod(e.lineno,e.colno,e,t)}return e},l.parsePow=function(){for(var e=this.parseUnary();this.skipValue(i.TOKEN_OPERATOR,"**");){var t=this.parseUnary();e=new o.Pow(e.lineno,e.colno,e,t)}return e},l.parseUnary=function(e){var t,r=this.peekToken();return t=this.skipValue(i.TOKEN_OPERATOR,"-")?new o.Neg(r.lineno,r.colno,this.parseUnary(!0)):this.skipValue(i.TOKEN_OPERATOR,"+")?new o.Pos(r.lineno,r.colno,this.parseUnary(!0)):this.parsePrimary(),e||(t=this.parseFilter(t)),t},l.parsePrimary=function(e){var t,r=this.nextToken(),n=null;if(r?r.type===i.TOKEN_STRING?t=r.value:r.type===i.TOKEN_INT?t=parseInt(r.value,10):r.type===i.TOKEN_FLOAT?t=parseFloat(r.value):r.type===i.TOKEN_BOOLEAN?"true"===r.value?t=!0:"false"===r.value?t=!1:this.fail("invalid boolean: "+r.value,r.lineno,r.colno):r.type===i.TOKEN_NONE?t=null:r.type===i.TOKEN_REGEX&&(t=new RegExp(r.value.body,r.value.flags)):this.fail("expected expression, got end of file"),void 0!==t?n=new o.Literal(r.lineno,r.colno,t):r.type===i.TOKEN_SYMBOL?n=new o.Symbol(r.lineno,r.colno,r.value):(this.pushToken(r),n=this.parseAggregate()),e||(n=this.parsePostfix(n)),n)return n;throw this.error("unexpected token: "+r.value,r.lineno,r.colno)},l.parseFilterName=function(){for(var e=this.expect(i.TOKEN_SYMBOL),t=e.value;this.skipValue(i.TOKEN_OPERATOR,".");)t+="."+this.expect(i.TOKEN_SYMBOL).value;return new o.Symbol(e.lineno,e.colno,t)},l.parseFilterArgs=function(e){return this.peekToken().type===i.TOKEN_LEFT_PAREN?this.parsePostfix(e).args.children:[]},l.parseFilter=function(e){for(;this.skip(i.TOKEN_PIPE);){var t=this.parseFilterName();e=new o.Filter(t.lineno,t.colno,t,new o.NodeList(t.lineno,t.colno,[e].concat(this.parseFilterArgs(e))))}return e},l.parseFilterStatement=function(){var e=this.peekToken();this.skipSymbol("filter")||this.fail("parseFilterStatement: expected filter");var t=this.parseFilterName(),r=this.parseFilterArgs(t);this.advanceAfterBlockEnd(e.value);var n=new o.Capture(t.lineno,t.colno,this.parseUntilBlocks("endfilter"));this.advanceAfterBlockEnd();var i=new o.Filter(t.lineno,t.colno,t,new o.NodeList(t.lineno,t.colno,[n].concat(r)));return new o.Output(t.lineno,t.colno,[i])},l.parseAggregate=function(){var e,t=this.nextToken();switch(t.type){case i.TOKEN_LEFT_PAREN:e=new o.Group(t.lineno,t.colno);break;case i.TOKEN_LEFT_BRACKET:e=new o.Array(t.lineno,t.colno);break;case i.TOKEN_LEFT_CURLY:e=new o.Dict(t.lineno,t.colno);break;default:return null}for(;;){var r=this.peekToken().type;if(r===i.TOKEN_RIGHT_PAREN||r===i.TOKEN_RIGHT_BRACKET||r===i.TOKEN_RIGHT_CURLY){this.nextToken();break}if(e.children.length>0&&(this.skip(i.TOKEN_COMMA)||this.fail("parseAggregate: expected comma after expression",t.lineno,t.colno)),e instanceof o.Dict){var n=this.parsePrimary();this.skip(i.TOKEN_COLON)||this.fail("parseAggregate: expected colon after dict key",t.lineno,t.colno);var a=this.parseExpression();e.addChild(new o.Pair(n.lineno,n.colno,n,a))}else{var s=this.parseExpression();e.addChild(s)}}return e},l.parseSignature=function(e,t){var r=this.peekToken();if(!t&&r.type!==i.TOKEN_LEFT_PAREN){if(e)return null;this.fail("expected arguments",r.lineno,r.colno)}r.type===i.TOKEN_LEFT_PAREN&&(r=this.nextToken());for(var n=new o.NodeList(r.lineno,r.colno),a=new o.KeywordArgs(r.lineno,r.colno),s=!1;;){if(r=this.peekToken(),!t&&r.type===i.TOKEN_RIGHT_PAREN){this.nextToken();break}if(t&&r.type===i.TOKEN_BLOCK_END)break;if(s&&!this.skip(i.TOKEN_COMMA))this.fail("parseSignature: expected comma after expression",r.lineno,r.colno);else{var l=this.parseExpression();this.skipValue(i.TOKEN_OPERATOR,"=")?a.addChild(new o.Pair(l.lineno,l.colno,l,this.parseExpression())):n.addChild(l)}s=!0}return a.children.length&&n.addChild(a),n},l.parseUntilBlocks=function(){for(var e=this.breakOnBlocks,t=arguments.length,r=new Array(t),n=0;n=","//","**"],B=C+this.current();switch(-1!==n.indexOf(P,B)&&(this.forward(),C=B,-1!==n.indexOf(P,B+this.current())&&(C=B+this.current(),this.forward())),C){case"(":j=h;break;case")":j=m;break;case"[":j=g;break;case"]":j=v;break;case"{":j=b;break;case"}":j=y;break;case",":j=E;break;case":":j=x;break;case"~":j=T;break;case"|":j=k;break;default:j=w}return S(j,C,t,r)}if((e=this._extractUntil(i+o)).match(/^[-+]?[0-9]+$/)){if("."===this.current()){this.forward();var F=this._extract("0123456789");return S(_,e+"."+F,t,r)}return S("int",e,t,r)}if(e.match(/^(true|false)$/))return S(A,e,t,r);if("none"===e)return S(N,e,t,r);if("null"===e)return S(N,e,t,r);if(e)return S(L,e,t,r);throw new Error("Unexpected value while parsing: "+e)}var M,I=this.tags.BLOCK_START.charAt(0)+this.tags.VARIABLE_START.charAt(0)+this.tags.COMMENT_START.charAt(0)+this.tags.COMMENT_END.charAt(0);if(this.isFinished())return null;if((e=this._extractString(this.tags.BLOCK_START+"-"))||(e=this._extractString(this.tags.BLOCK_START)))return this.in_code=!0,S(c,e,t,r);if((e=this._extractString(this.tags.VARIABLE_START+"-"))||(e=this._extractString(this.tags.VARIABLE_START)))return this.in_code=!0,S(p,e,t,r);e="";var U=!1;for(this._matches(this.tags.COMMENT_START)&&(U=!0,e=this._extractString(this.tags.COMMENT_START));null!==(M=this._extractUntil(I));){if(e+=M,(this._matches(this.tags.BLOCK_START)||this._matches(this.tags.VARIABLE_START)||this._matches(this.tags.COMMENT_START))&&!U){if(this.lstripBlocks&&this._matches(this.tags.BLOCK_START)&&this.colno>0&&this.colno<=e.length){var V=e.slice(-this.colno);if(/^\s+$/.test(V)&&!(e=e.slice(0,-this.colno)).length)return this.nextToken()}break}if(this._matches(this.tags.COMMENT_END)){if(!U)throw new Error("unexpected end of comment");e+=this._extractString(this.tags.COMMENT_END);break}e+=this.current(),this.forward()}if(null===M&&U)throw new Error("expected end of comment, got end of file");return S(U?f:l,e,t,r)},t._parseString=function(e){this.forward();for(var t="";!this.isFinished()&&this.current()!==e;){var r=this.current();if("\\"===r){switch(this.forward(),this.current()){case"n":t+="\n";break;case"t":t+="\t";break;case"r":t+="\r";break;default:t+=this.current()}this.forward()}else t+=r,this.forward()}return this.forward(),t},t._matches=function(e){return this.index+e.length>this.len?null:this.str.slice(this.index,this.index+e.length)===e},t._extractString=function(e){return this._matches(e)?(this.forwardN(e.length),e):null},t._extractUntil=function(e){return this._extractMatching(!0,e||"")},t._extract=function(e){return this._extractMatching(!1,e)},t._extractMatching=function(e,t){if(this.isFinished())return null;var r=t.indexOf(this.current());if(e&&-1===r||!e&&-1!==r){var n=this.current();this.forward();for(var i=t.indexOf(this.current());(e&&-1===i||!e&&-1!==i)&&!this.isFinished();)n+=this.current(),this.forward(),i=t.indexOf(this.current());return n}return""},t._extractRegex=function(e){var t=this.currentStr().match(e);return t?(this.forwardN(t[0].length),t):null},t.isFinished=function(){return this.index>=this.len},t.forwardN=function(e){for(var t=0;t1024){for(var t=0,r=i.length-o;t0&&a.length>i&&!a.warned){a.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=a.length,s=l,console&&console.warn&&console.warn(s)}return e}function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},i=d.bind(n);return i.listener=r,n.wrapFn=i,i}function h(e,t,r){var n=e._events;if(void 0===n)return[];var i=n[t];return void 0===i?[]:"function"==typeof i?r?[i.listener||i]:[i]:r?function(e){for(var t=new Array(e.length),r=0;r0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var l=i[e];if(void 0===l)return!1;if("function"==typeof l)o(l,this,t);else{var c=l.length,u=g(l,c);for(r=0;r=0;o--)if(r[o]===t||r[o].listener===t){a=r[o].listener,i=o;break}if(i<0)return this;0===i?r.shift():function(e,t){for(;t+1=0;n--)this.removeListener(e,t[n]);return this},s.prototype.listeners=function(e){return h(this,e,!0)},s.prototype.rawListeners=function(e){return h(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},s.prototype.listenerCount=m,s.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},function(e,t,r){"use strict";var n=r(3),i=r(0),o=0;function a(){return"hole_"+o++}function s(e,t){for(var r=null,n=0;n=t)return e;var r=t-e.length,a=n.repeat(" ",r/2-r%2),s=n.repeat(" ",r/2);return i.copySafeness(e,a+e+s)},t.default=function(e,t,r){return r?e||t:void 0!==e?e:t},t.dictsort=function(e,t,r){if(!n.isObject(e))throw new n.TemplateError("dictsort filter: val must be an object");var i,o=[];for(var a in e)o.push([a,e[a]]);if(void 0===r||"key"===r)i=0;else{if("value"!==r)throw new n.TemplateError("dictsort filter: You can only sort by either key or value");i=1}return o.sort((function(e,r){var o=e[i],a=r[i];return t||(n.isString(o)&&(o=o.toUpperCase()),n.isString(a)&&(a=a.toUpperCase())),o>a?1:o===a?0:-1})),o},t.dump=function(e,t){return JSON.stringify(e,null,t)},t.escape=function(e){return e instanceof i.SafeString?e:(e=null==e?"":e,i.markSafe(n.escape(e.toString())))},t.safe=function(e){return e instanceof i.SafeString?e:(e=null==e?"":e,i.markSafe(e.toString()))},t.first=function(e){return e[0]},t.forceescape=function(e){return e=null==e?"":e,i.markSafe(n.escape(e.toString()))},t.groupby=function(e,t){return n.groupBy(e,t,this.env.opts.throwOnUndefined)},t.indent=function(e,t,r){if(""===(e=o(e,"")))return"";t=t||4;var a=e.split("\n"),s=n.repeat(" ",t),l=a.map((function(e,t){return 0!==t||r?""+s+e:e})).join("\n");return i.copySafeness(e,l)},t.join=function(e,t,r){return t=t||"",r&&(e=n.map(e,(function(e){return e[r]}))),e.join(t)},t.last=function(e){return e[e.length-1]},t.length=function(e){var t=o(e,"");return void 0!==t?"function"==typeof Map&&t instanceof Map||"function"==typeof Set&&t instanceof Set?t.size:!n.isObject(t)||t instanceof i.SafeString?t.length:n.keys(t).length:0},t.list=l,t.lower=function(e){return(e=o(e,"")).toLowerCase()},t.nl2br=function(e){return null==e?"":i.copySafeness(e,e.replace(/\r\n|\n/g,"
\n"))},t.random=function(e){return e[Math.floor(Math.random()*e.length)]},t.reject=c(!1),t.rejectattr=function(e,t){return e.filter((function(e){return!e[t]}))},t.select=c(!0),t.selectattr=function(e,t){return e.filter((function(e){return!!e[t]}))},t.replace=function(e,t,r,n){var o=e;if(t instanceof RegExp)return e.replace(t,r);void 0===n&&(n=-1);var a="";if("number"==typeof t)t=""+t;else if("string"!=typeof t)return e;if("number"==typeof e&&(e=""+e),"string"!=typeof e&&!(e instanceof i.SafeString))return e;if(""===t)return a=r+e.split("").join(r)+r,i.copySafeness(e,a);var s=e.indexOf(t);if(0===n||-1===s)return e;for(var l=0,c=0;s>-1&&(-1===n||c=i&&u.push(r),o.push(u)}return o},t.sum=function(e,t,r){return void 0===r&&(r=0),t&&(e=n.map(e,(function(e){return e[t]}))),r+e.reduce((function(e,t){return e+t}),0)},t.sort=i.makeMacro(["value","reverse","case_sensitive","attribute"],[],(function(e,t,r,i){var o=this,a=n.map(e,(function(e){return e})),s=n.getAttrGetter(i);return a.sort((function(e,a){var l=i?s(e):e,c=i?s(a):a;if(o.env.opts.throwOnUndefined&&i&&(void 0===l||void 0===c))throw new TypeError('sort: attribute "'+i+'" resolved to undefined');return!r&&n.isString(l)&&n.isString(c)&&(l=l.toLowerCase(),c=c.toLowerCase()),lc?t?-1:1:0})),a})),t.string=function(e){return i.copySafeness(e,e)},t.striptags=function(e,t){var r,n=u((e=o(e,"")).replace(/<\/?([a-z][a-z0-9]*)\b[^>]*>|/gi,""));return r=t?n.replace(/^ +| +$/gm,"").replace(/ +/g," ").replace(/(\r\n)/g,"\n").replace(/\n\n\n+/g,"\n\n"):n.replace(/\s+/gi," "),i.copySafeness(e,r)},t.title=function(e){var t=(e=o(e,"")).split(" ").map((function(e){return s(e)}));return i.copySafeness(e,t.join(" "))},t.trim=u,t.truncate=function(e,t,r,n){var a=e;if(t=t||255,(e=o(e,"")).length<=t)return e;if(r)e=e.substring(0,t);else{var s=e.lastIndexOf(" ",t);-1===s&&(s=t),e=e.substring(0,s)}return e+=null!=n?n:"...",i.copySafeness(a,e)},t.upper=function(e){return(e=o(e,"")).toUpperCase()},t.urlencode=function(e){var t=encodeURIComponent;return n.isString(e)?t(e):(n.isArray(e)?e:n._entries(e)).map((function(e){var r=e[0],n=e[1];return t(r)+"="+t(n)})).join("&")};var p=/^(?:\(|<|<)?(.*?)(?:\.|,|\)|\n|>)?$/,d=/^[\w.!#$%&'*+\-\/=?\^`{|}~]+@[a-z\d\-]+(\.[a-z\d\-]+)+$/i,f=/^https?:\/\/.*$/,h=/^www\./,m=/\.(?:org|net|com)(?:\:|\/|$)/;t.urlize=function(e,t,r){a(t)&&(t=1/0);var n=!0===r?' rel="nofollow"':"";return e.split(/(\s+)/).filter((function(e){return e&&e.length})).map((function(e){var r=e.match(p),i=r?r[1]:e,o=i.substr(0,t);return f.test(i)?'"+o+"":h.test(i)?'"+o+"":d.test(i)?''+i+"":m.test(i)?'"+o+"":e})).join("")},t.wordcount=function(e){var t=(e=o(e,""))?e.match(/\w+/g):null;return t?t.length:null},t.float=function(e,t){var r=parseFloat(e);return a(r)?t:r};var g=i.makeMacro(["value","default","base"],[],(function(e,t,r){void 0===r&&(r=10);var n=parseInt(e,r);return a(n)?t:n}));t.int=g,t.d=t.default,t.e=t.escape},function(e,t,r){"use strict";function n(e,t){return n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},n(e,t)}var i=function(e){var t,r;function i(t){var r;return(r=e.call(this)||this).precompiled=t||{},r}return r=e,(t=i).prototype=Object.create(r.prototype),t.prototype.constructor=t,n(t,r),i.prototype.getSource=function(e){return this.precompiled[e]?{src:{type:"code",obj:this.precompiled[e]},path:e}:null},i}(r(6));e.exports={PrecompiledLoader:i}},function(e,t,r){"use strict";var n=r(2).SafeString;t.callable=function(e){return"function"==typeof e},t.defined=function(e){return void 0!==e},t.divisibleby=function(e,t){return e%t==0},t.escaped=function(e){return e instanceof n},t.equalto=function(e,t){return e===t},t.eq=t.equalto,t.sameas=t.equalto,t.even=function(e){return e%2==0},t.falsy=function(e){return!e},t.ge=function(e,t){return e>=t},t.greaterthan=function(e,t){return e>t},t.gt=t.greaterthan,t.le=function(e,t){return e<=t},t.lessthan=function(e,t){return e0)for(var i=e;it;o+=r)n.push(o);return n},cycler:function(){return e=Array.prototype.slice.call(arguments),t=-1,{current:null,reset:function(){t=-1,this.current=null},next:function(){return++t>=e.length&&(t=0),this.current=e[t],this.current}};var e,t},joiner:function(e){return function(e){e=e||",";var t=!0;return function(){var r=t?"":e;return t=!1,r}}(e)}}}},function(e,t,r){var n=r(4);e.exports=function(e,t){function r(e,t){if(this.name=e,this.path=e,this.defaultEngine=t.defaultEngine,this.ext=n.extname(e),!this.ext&&!this.defaultEngine)throw new Error("No default engine was specified and no extension was provided.");this.ext||(this.name+=this.ext=("."!==this.defaultEngine[0]?".":"")+this.defaultEngine)}return r.prototype.render=function(t,r){e.render(this.name,t,r)},t.set("view",r),t.set("nunjucksEnv",e),e}},function(e,t,r){"use strict";var n=r(4),i=r(4),o=r(0)._prettifyError,a=r(5),s=r(7).Environment,l=r(24);function c(e,t){return!!Array.isArray(t)&&t.some((function(t){return e.match(t)}))}function u(e,t){(t=t||{}).isString=!0;var r=t.env||new s([]),n=t.wrapper||l;if(!t.name)throw new Error('the "name" option is required when compiling a string');return n([p(e,t.name,r)],t)}function p(e,t,r){var n,i=(r=r||new s([])).asyncFilters,l=r.extensionsList;t=t.replace(/\\/g,"/");try{n=a.compile(e,i,l,t,r.opts)}catch(e){throw o(t,!1,e)}return{name:t,template:n}}e.exports={precompile:function(e,t){var r=(t=t||{}).env||new s([]),o=t.wrapper||l;if(t.isString)return u(e,t);var a=n.existsSync(e)&&n.statSync(e),d=[],f=[];if(a.isFile())d.push(p(n.readFileSync(e,"utf-8"),t.name||e,r));else if(a.isDirectory()){!function r(o){n.readdirSync(o).forEach((function(a){var s=i.join(o,a),l=s.substr(i.join(e,"/").length),u=n.statSync(s);u&&u.isDirectory()?c(l+="/",t.exclude)||r(s):c(l,t.include)&&f.push(s)}))}(e);for(var h=0;he.length||i>0&&a>=n||i<0&&a<=n);a+=i)o.push(r.memberLookup(e,a));return o}function f(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var h={pop:function(e){if(void 0===e)return this.pop();if(e>=this.length||e<0)throw new Error("KeyError");return this.splice(e,1)},append:function(e){return this.push(e)},remove:function(e){for(var t=0;t{"use strict";var n=r(3700),i=/[\/\?<>\\:\*\|"]/g,o=/[\x00-\x1f\x80-\x9f]/g,a=/^\.+$/,s=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,l=/[\. ]+$/;function c(e,t){if("string"!=typeof e)throw new Error("Input must be string");var r=e.replace(i,t).replace(o,t).replace(a,t).replace(s,t).replace(l,t);return n(r,255)}e.exports=function(e,t){var r=t&&t.replacement||"",n=c(e,r);return""===r?n:c(n,"")}},9328:e=>{"use strict";var t={decodeValues:!0,map:!1,silent:!1};function r(e){return"string"==typeof e&&!!e.trim()}function n(e,n){var i=e.split(";").filter(r),o=i.shift().split("="),a=o.shift(),s=o.join("=");n=n?Object.assign({},t,n):t;try{s=n.decodeValues?decodeURIComponent(s):s}catch(e){console.error("set-cookie-parser encountered an error while decoding a cookie with value '"+s+"'. Set options.decodeValues to false to disable this feature.",e)}var l={name:a,value:s};return i.forEach((function(e){var t=e.split("="),r=t.shift().trimLeft().toLowerCase(),n=t.join("=");"expires"===r?l.expires=new Date(n):"max-age"===r?l.maxAge=parseInt(n,10):"secure"===r?l.secure=!0:"httponly"===r?l.httpOnly=!0:"samesite"===r?l.sameSite=n:l[r]=n})),l}function i(e,i){if(i=i?Object.assign({},t,i):t,!e)return i.map?{}:[];if(e.headers&&e.headers["set-cookie"])e=e.headers["set-cookie"];else if(e.headers){var o=e.headers[Object.keys(e.headers).find((function(e){return"set-cookie"===e.toLowerCase()}))];o||!e.headers.cookie||i.silent||console.warn("Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning."),e=o}return Array.isArray(e)||(e=[e]),(i=i?Object.assign({},t,i):t).map?e.filter(r).reduce((function(e,t){var r=n(t,i);return e[r.name]=r,e}),{}):e.filter(r).map((function(e){return n(e,i)}))}e.exports=i,e.exports.parse=i,e.exports.parseString=n,e.exports.splitCookiesString=function(e){if(Array.isArray(e))return e;if("string"!=typeof e)return[];var t,r,n,i,o,a=[],s=0;function l(){for(;s=e.length)&&a.push(e.substring(t,e.length))}return a}},3700:(e,t,r)=>{"use strict";var n=r(1156),i=r(793);e.exports=n.bind(null,i)},1156:e=>{"use strict";function t(e){return e>=55296&&e<=56319}function r(e){return e>=56320&&e<=57343}e.exports=function(e,n,i){if("string"!=typeof n)throw new Error("Input must be string");for(var o,a,s=n.length,l=0,c=0;ci)return n.slice(0,c-a.length+1)}return n}},793:e=>{"use strict";function t(e){return e>=55296&&e<=56319}function r(e){return e>=56320&&e<=57343}e.exports=function(e){if("string"!=typeof e)throw new Error("Input must be string");for(var n=e.length,i=0,o=null,a=null,s=0;s=128&&o<=2047?i+=2:o>=2048&&o<=65535&&(i+=3),a=o;return i}},5840:e=>{"use strict";e.exports=require("electron")},3600:e=>{"use strict";e.exports=JSON.parse('{"0":65533,"128":8364,"130":8218,"131":402,"132":8222,"133":8230,"134":8224,"135":8225,"136":710,"137":8240,"138":352,"139":8249,"140":338,"142":381,"145":8216,"146":8217,"147":8220,"148":8221,"149":8226,"150":8211,"151":8212,"152":732,"153":8482,"154":353,"155":8250,"156":339,"158":382,"159":376}')},9323:e=>{"use strict";e.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Abreve":"Ă","abreve":"ă","ac":"∾","acd":"∿","acE":"∾̳","Acirc":"Â","acirc":"â","acute":"´","Acy":"А","acy":"а","AElig":"Æ","aelig":"æ","af":"⁡","Afr":"𝔄","afr":"𝔞","Agrave":"À","agrave":"à","alefsym":"ℵ","aleph":"ℵ","Alpha":"Α","alpha":"α","Amacr":"Ā","amacr":"ā","amalg":"⨿","amp":"&","AMP":"&","andand":"⩕","And":"⩓","and":"∧","andd":"⩜","andslope":"⩘","andv":"⩚","ang":"∠","ange":"⦤","angle":"∠","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"⦭","angmsdag":"⦮","angmsdah":"⦯","angmsd":"∡","angrt":"∟","angrtvb":"⊾","angrtvbd":"⦝","angsph":"∢","angst":"Å","angzarr":"⍼","Aogon":"Ą","aogon":"ą","Aopf":"𝔸","aopf":"𝕒","apacir":"⩯","ap":"≈","apE":"⩰","ape":"≊","apid":"≋","apos":"\'","ApplyFunction":"⁡","approx":"≈","approxeq":"≊","Aring":"Å","aring":"å","Ascr":"𝒜","ascr":"𝒶","Assign":"≔","ast":"*","asymp":"≈","asympeq":"≍","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","awconint":"∳","awint":"⨑","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"⋍","Backslash":"∖","Barv":"⫧","barvee":"⊽","barwed":"⌅","Barwed":"⌆","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","Bcy":"Б","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","Because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","Bernoullis":"ℬ","Beta":"Β","beta":"β","beth":"ℶ","between":"≬","Bfr":"𝔅","bfr":"𝔟","bigcap":"⋂","bigcirc":"◯","bigcup":"⋃","bigodot":"⨀","bigoplus":"⨁","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"▽","bigtriangleup":"△","biguplus":"⨄","bigvee":"⋁","bigwedge":"⋀","bkarow":"⤍","blacklozenge":"⧫","blacksquare":"▪","blacktriangle":"▴","blacktriangledown":"▾","blacktriangleleft":"◂","blacktriangleright":"▸","blank":"␣","blk12":"▒","blk14":"░","blk34":"▓","block":"█","bne":"=⃥","bnequiv":"≡⃥","bNot":"⫭","bnot":"⌐","Bopf":"𝔹","bopf":"𝕓","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxbox":"⧉","boxdl":"┐","boxdL":"╕","boxDl":"╖","boxDL":"╗","boxdr":"┌","boxdR":"╒","boxDr":"╓","boxDR":"╔","boxh":"─","boxH":"═","boxhd":"┬","boxHd":"╤","boxhD":"╥","boxHD":"╦","boxhu":"┴","boxHu":"╧","boxhU":"╨","boxHU":"╩","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxul":"┘","boxuL":"╛","boxUl":"╜","boxUL":"╝","boxur":"└","boxuR":"╘","boxUr":"╙","boxUR":"╚","boxv":"│","boxV":"║","boxvh":"┼","boxvH":"╪","boxVh":"╫","boxVH":"╬","boxvl":"┤","boxvL":"╡","boxVl":"╢","boxVL":"╣","boxvr":"├","boxvR":"╞","boxVr":"╟","boxVR":"╠","bprime":"‵","breve":"˘","Breve":"˘","brvbar":"¦","bscr":"𝒷","Bscr":"ℬ","bsemi":"⁏","bsim":"∽","bsime":"⋍","bsolb":"⧅","bsol":"\\\\","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"≏","Bumpeq":"≎","bumpeq":"≏","Cacute":"Ć","cacute":"ć","capand":"⩄","capbrcup":"⩉","capcap":"⩋","cap":"∩","Cap":"⋒","capcup":"⩇","capdot":"⩀","CapitalDifferentialD":"ⅅ","caps":"∩︀","caret":"⁁","caron":"ˇ","Cayleys":"ℭ","ccaps":"⩍","Ccaron":"Č","ccaron":"č","Ccedil":"Ç","ccedil":"ç","Ccirc":"Ĉ","ccirc":"ĉ","Cconint":"∰","ccups":"⩌","ccupssm":"⩐","Cdot":"Ċ","cdot":"ċ","cedil":"¸","Cedilla":"¸","cemptyv":"⦲","cent":"¢","centerdot":"·","CenterDot":"·","cfr":"𝔠","Cfr":"ℭ","CHcy":"Ч","chcy":"ч","check":"✓","checkmark":"✓","Chi":"Χ","chi":"χ","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledast":"⊛","circledcirc":"⊚","circleddash":"⊝","CircleDot":"⊙","circledR":"®","circledS":"Ⓢ","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","cir":"○","cirE":"⧃","cire":"≗","cirfnint":"⨐","cirmid":"⫯","cirscir":"⧂","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":"”","CloseCurlyQuote":"’","clubs":"♣","clubsuit":"♣","colon":":","Colon":"∷","Colone":"⩴","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"∁","compfn":"∘","complement":"∁","complexes":"ℂ","cong":"≅","congdot":"⩭","Congruent":"≡","conint":"∮","Conint":"∯","ContourIntegral":"∮","copf":"𝕔","Copf":"ℂ","coprod":"∐","Coproduct":"∐","copy":"©","COPY":"©","copysr":"℗","CounterClockwiseContourIntegral":"∳","crarr":"↵","cross":"✗","Cross":"⨯","Cscr":"𝒞","cscr":"𝒸","csub":"⫏","csube":"⫑","csup":"⫐","csupe":"⫒","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"⋞","cuesc":"⋟","cularr":"↶","cularrp":"⤽","cupbrcap":"⩈","cupcap":"⩆","CupCap":"≍","cup":"∪","Cup":"⋓","cupcup":"⩊","cupdot":"⊍","cupor":"⩅","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"⋞","curlyeqsucc":"⋟","curlyvee":"⋎","curlywedge":"⋏","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"⋎","cuwed":"⋏","cwconint":"∲","cwint":"∱","cylcty":"⌭","dagger":"†","Dagger":"‡","daleth":"ℸ","darr":"↓","Darr":"↡","dArr":"⇓","dash":"‐","Dashv":"⫤","dashv":"⊣","dbkarow":"⤏","dblac":"˝","Dcaron":"Ď","dcaron":"ď","Dcy":"Д","dcy":"д","ddagger":"‡","ddarr":"⇊","DD":"ⅅ","dd":"ⅆ","DDotrahd":"⤑","ddotseq":"⩷","deg":"°","Del":"∇","Delta":"Δ","delta":"δ","demptyv":"⦱","dfisht":"⥿","Dfr":"𝔇","dfr":"𝔡","dHar":"⥥","dharl":"⇃","dharr":"⇂","DiacriticalAcute":"´","DiacriticalDot":"˙","DiacriticalDoubleAcute":"˝","DiacriticalGrave":"`","DiacriticalTilde":"˜","diam":"⋄","diamond":"⋄","Diamond":"⋄","diamondsuit":"♦","diams":"♦","die":"¨","DifferentialD":"ⅆ","digamma":"ϝ","disin":"⋲","div":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","DJcy":"Ђ","djcy":"ђ","dlcorn":"⌞","dlcrop":"⌍","dollar":"$","Dopf":"𝔻","dopf":"𝕕","Dot":"¨","dot":"˙","DotDot":"⃜","doteq":"≐","doteqdot":"≑","DotEqual":"≐","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"⇐","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrowBar":"⤓","downarrow":"↓","DownArrow":"↓","Downarrow":"⇓","DownArrowUpArrow":"⇵","DownBreve":"̑","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","DownLeftRightVector":"⥐","DownLeftTeeVector":"⥞","DownLeftVectorBar":"⥖","DownLeftVector":"↽","DownRightTeeVector":"⥟","DownRightVectorBar":"⥗","DownRightVector":"⇁","DownTeeArrow":"↧","DownTee":"⊤","drbkarow":"⤐","drcorn":"⌟","drcrop":"⌌","Dscr":"𝒟","dscr":"𝒹","DScy":"Ѕ","dscy":"ѕ","dsol":"⧶","Dstrok":"Đ","dstrok":"đ","dtdot":"⋱","dtri":"▿","dtrif":"▾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","DZcy":"Џ","dzcy":"џ","dzigrarr":"⟿","Eacute":"É","eacute":"é","easter":"⩮","Ecaron":"Ě","ecaron":"ě","Ecirc":"Ê","ecirc":"ê","ecir":"≖","ecolon":"≕","Ecy":"Э","ecy":"э","eDDot":"⩷","Edot":"Ė","edot":"ė","eDot":"≑","ee":"ⅇ","efDot":"≒","Efr":"𝔈","efr":"𝔢","eg":"⪚","Egrave":"È","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","Element":"∈","elinters":"⏧","ell":"ℓ","els":"⪕","elsdot":"⪗","Emacr":"Ē","emacr":"ē","empty":"∅","emptyset":"∅","EmptySmallSquare":"◻","emptyv":"∅","EmptyVerySmallSquare":"▫","emsp13":" ","emsp14":" ","emsp":" ","ENG":"Ŋ","eng":"ŋ","ensp":" ","Eogon":"Ę","eogon":"ę","Eopf":"𝔼","eopf":"𝕖","epar":"⋕","eparsl":"⧣","eplus":"⩱","epsi":"ε","Epsilon":"Ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","Equal":"⩵","equals":"=","EqualTilde":"≂","equest":"≟","Equilibrium":"⇌","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erarr":"⥱","erDot":"≓","escr":"ℯ","Escr":"ℰ","esdot":"≐","Esim":"⩳","esim":"≂","Eta":"Η","eta":"η","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","euro":"€","excl":"!","exist":"∃","Exists":"∃","expectation":"ℰ","exponentiale":"ⅇ","ExponentialE":"ⅇ","fallingdotseq":"≒","Fcy":"Ф","fcy":"ф","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","Ffr":"𝔉","ffr":"𝔣","filig":"fi","FilledSmallSquare":"◼","FilledVerySmallSquare":"▪","fjlig":"fj","flat":"♭","fllig":"fl","fltns":"▱","fnof":"ƒ","Fopf":"𝔽","fopf":"𝕗","forall":"∀","ForAll":"∀","fork":"⋔","forkv":"⫙","Fouriertrf":"ℱ","fpartint":"⨍","frac12":"½","frac13":"⅓","frac14":"¼","frac15":"⅕","frac16":"⅙","frac18":"⅛","frac23":"⅔","frac25":"⅖","frac34":"¾","frac35":"⅗","frac38":"⅜","frac45":"⅘","frac56":"⅚","frac58":"⅝","frac78":"⅞","frasl":"⁄","frown":"⌢","fscr":"𝒻","Fscr":"ℱ","gacute":"ǵ","Gamma":"Γ","gamma":"γ","Gammad":"Ϝ","gammad":"ϝ","gap":"⪆","Gbreve":"Ğ","gbreve":"ğ","Gcedil":"Ģ","Gcirc":"Ĝ","gcirc":"ĝ","Gcy":"Г","gcy":"г","Gdot":"Ġ","gdot":"ġ","ge":"≥","gE":"≧","gEl":"⪌","gel":"⋛","geq":"≥","geqq":"≧","geqslant":"⩾","gescc":"⪩","ges":"⩾","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","Gfr":"𝔊","gfr":"𝔤","gg":"≫","Gg":"⋙","ggg":"⋙","gimel":"ℷ","GJcy":"Ѓ","gjcy":"ѓ","gla":"⪥","gl":"≷","glE":"⪒","glj":"⪤","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gnE":"≩","gneq":"⪈","gneqq":"≩","gnsim":"⋧","Gopf":"𝔾","gopf":"𝕘","grave":"`","GreaterEqual":"≥","GreaterEqualLess":"⋛","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"𝒢","gscr":"ℊ","gsim":"≳","gsime":"⪎","gsiml":"⪐","gtcc":"⪧","gtcir":"⩺","gt":">","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"⁣","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"⁣","InvisibleTimes":"⁢","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"⁢","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltri":"◃","ltrie":"⊴","ltrif":"◂","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","Mcy":"М","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","mfr":"𝔪","mho":"℧","micro":"µ","midast":"*","midcir":"⫰","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"𝕄","mopf":"𝕞","mp":"∓","mscr":"𝓂","Mscr":"ℳ","mstpos":"∾","Mu":"Μ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"♮","naturals":"ℕ","natur":"♮","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Ņ","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","Ncy":"Н","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"≐̸","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\\n","nexist":"∄","nexists":"∄","Nfr":"𝔑","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"њ","nlarr":"↚","nlArr":"⇍","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"⇍","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"⁠","NonBreakingSpace":" ","nopf":"𝕟","Nopf":"ℕ","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","NotLeftTriangleBar":"⧏̸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangleBar":"⧐̸","NotRightTriangle":"⋫","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"⇏","nrarrw":"↝̸","nrightarrow":"↛","nRightarrow":"⇏","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","Nscr":"𝒩","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","Nu":"Ν","nu":"ν","num":"#","numero":"№","numsp":" ","nvap":"≍⃒","nvdash":"⊬","nvDash":"⊭","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"⊝","Odblac":"Ő","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Œ","oelig":"œ","ofcir":"⦿","Ofr":"𝔒","ofr":"𝔬","ogon":"˛","Ograve":"Ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"Ō","omacr":"ō","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"𝕆","oopf":"𝕠","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"⩔","or":"∨","ord":"⩝","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oS":"Ⓢ","Oscr":"𝒪","oscr":"ℴ","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"𝔓","pfr":"𝔭","Phi":"Φ","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","Pi":"Π","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"ℌ","pointint":"⨕","popf":"𝕡","Popf":"ℙ","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"ℙ","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"∏","Product":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","Proportional":"∝","Proportion":"∷","propto":"∝","prsim":"≾","prurel":"⊰","Pscr":"𝒫","pscr":"𝓅","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"𝔔","qfr":"𝔮","qint":"⨌","qopf":"𝕢","Qopf":"ℚ","qprime":"⁗","Qscr":"𝒬","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quot":"\\"","QUOT":"\\"","rAarr":"⇛","race":"∽̱","Racute":"Ŕ","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"↝","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rBarr":"⤏","RBarr":"⤐","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","Rcaron":"Ř","rcaron":"ř","Rcedil":"Ŗ","rcedil":"ŗ","rceil":"⌉","rcub":"}","Rcy":"Р","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","Re":"ℜ","rect":"▭","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","Rfr":"ℜ","rHar":"⥤","rhard":"⇁","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"ρ","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"⋌","RightTriangleBar":"⧐","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"‏","rmoustache":"⎱","rmoust":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","Ropf":"ℝ","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"𝓇","Rscr":"ℛ","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"℞","Sacute":"Ś","sacute":"ś","sbquo":"‚","scap":"⪸","Scaron":"Š","scaron":"š","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Ş","scedil":"ş","Scirc":"Ŝ","scirc":"ŝ","scnap":"⪺","scnE":"⪶","scnsim":"⋩","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"с","sdotb":"⊡","sdot":"⋅","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"𝔖","sfr":"𝔰","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"←","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"­","Sigma":"Σ","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ь","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"𝕊","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","square":"□","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"▪","squ":"□","squf":"▪","srarr":"→","Sscr":"𝒮","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","Sub":"⋐","subdot":"⪽","subE":"⫅","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"⋐","subseteq":"⊆","subseteqq":"⫅","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"⋑","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"⫄","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","Supset":"⋑","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\\t","target":"⌖","Tau":"Τ","tau":"τ","tbrk":"⎴","Tcaron":"Ť","tcaron":"ť","Tcedil":"Ţ","tcedil":"ţ","Tcy":"Т","tcy":"т","tdot":"⃛","telrec":"⌕","Tfr":"𝔗","tfr":"𝔱","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","ThickSpace":"  ","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"˜","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"∭","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"𝕋","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","TRADE":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","Tscr":"𝒯","tscr":"𝓉","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"ћ","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"Ў","ubrcy":"ў","Ubreve":"Ŭ","ubreve":"ŭ","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Ű","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"𝔘","ufr":"𝔲","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","Umacr":"Ū","umacr":"ū","uml":"¨","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"𝕌","uopf":"𝕦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"υ","Upsi":"ϒ","upsih":"ϒ","Upsilon":"Υ","upsilon":"υ","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","Uring":"Ů","uring":"ů","urtri":"◹","Uscr":"𝒰","uscr":"𝓊","utdot":"⋰","Utilde":"Ũ","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","Uuml":"Ü","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"⫫","vBarv":"⫩","Vcy":"В","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"⋁","veeeq":"≚","vellip":"⋮","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"𝕍","vopf":"𝕧","vprop":"∝","vrtri":"⊳","Vscr":"𝒱","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Ŵ","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","Wedge":"⋀","wedgeq":"≙","weierp":"℘","Wfr":"𝔚","wfr":"𝔴","Wopf":"𝕎","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"𝒲","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","Xfr":"𝔛","xfr":"𝔵","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"⋻","xodot":"⨀","Xopf":"𝕏","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"𝒳","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","Yacute":"Ý","yacute":"ý","YAcy":"Я","yacy":"я","Ycirc":"Ŷ","ycirc":"ŷ","Ycy":"Ы","ycy":"ы","yen":"¥","Yfr":"𝔜","yfr":"𝔶","YIcy":"Ї","yicy":"ї","Yopf":"𝕐","yopf":"𝕪","Yscr":"𝒴","yscr":"𝓎","YUcy":"Ю","yucy":"ю","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Ż","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"​","Zeta":"Ζ","zeta":"ζ","zfr":"𝔷","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","Zopf":"ℤ","Zscr":"𝒵","zscr":"𝓏","zwj":"‍","zwnj":"‌"}')},9591:e=>{"use strict";e.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Acirc":"Â","acirc":"â","acute":"´","AElig":"Æ","aelig":"æ","Agrave":"À","agrave":"à","amp":"&","AMP":"&","Aring":"Å","aring":"å","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","brvbar":"¦","Ccedil":"Ç","ccedil":"ç","cedil":"¸","cent":"¢","copy":"©","COPY":"©","curren":"¤","deg":"°","divide":"÷","Eacute":"É","eacute":"é","Ecirc":"Ê","ecirc":"ê","Egrave":"È","egrave":"è","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","frac12":"½","frac14":"¼","frac34":"¾","gt":">","GT":">","Iacute":"Í","iacute":"í","Icirc":"Î","icirc":"î","iexcl":"¡","Igrave":"Ì","igrave":"ì","iquest":"¿","Iuml":"Ï","iuml":"ï","laquo":"«","lt":"<","LT":"<","macr":"¯","micro":"µ","middot":"·","nbsp":" ","not":"¬","Ntilde":"Ñ","ntilde":"ñ","Oacute":"Ó","oacute":"ó","Ocirc":"Ô","ocirc":"ô","Ograve":"Ò","ograve":"ò","ordf":"ª","ordm":"º","Oslash":"Ø","oslash":"ø","Otilde":"Õ","otilde":"õ","Ouml":"Ö","ouml":"ö","para":"¶","plusmn":"±","pound":"£","quot":"\\"","QUOT":"\\"","raquo":"»","reg":"®","REG":"®","sect":"§","shy":"­","sup1":"¹","sup2":"²","sup3":"³","szlig":"ß","THORN":"Þ","thorn":"þ","times":"×","Uacute":"Ú","uacute":"ú","Ucirc":"Û","ucirc":"û","Ugrave":"Ù","ugrave":"ù","uml":"¨","Uuml":"Ü","uuml":"ü","Yacute":"Ý","yacute":"ý","yen":"¥","yuml":"ÿ"}')},2586:e=>{"use strict";e.exports=JSON.parse('{"amp":"&","apos":"\'","gt":">","lt":"<","quot":"\\""}')}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={id:n,loaded:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.loaded=!0,o.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e);var n={};(()=>{"use strict";function e(e,t,r,n){return new(r||(r=Promise))((function(i,o){function a(e){try{l(n.next(e))}catch(e){o(e)}}function s(e){try{l(n.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}l((n=n.apply(e,t||[])).next())}))}r.r(n),r.d(n,{default:()=>D}),Object.create,Object.create;const t=require("obsidian");var i=r(2985);function o(){}function a(e){return e()}function s(e){e.forEach(a)}function l(e){return"function"==typeof e}function c(e){let t;return function(e,...t){if(null==e)return o;const r=e.subscribe(...t);return r.unsubscribe?()=>r.unsubscribe():r}(e,(e=>t=e))(),t}new Set,new Map;let u,p=[];new Set,new Set,"undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:global,new Set(["allowfullscreen","allowpaymentrequest","async","autofocus","autoplay","checked","controls","default","defer","disabled","formnovalidate","hidden","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected"]),"function"==typeof HTMLElement&&(u=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){const{on_mount:e}=this.$$;this.$$.on_disconnect=e.map(a).filter(l);for(const e in this.$$.slotted)this.appendChild(this.$$.slotted[e])}attributeChangedCallback(e,t,r){this[e]=r}disconnectedCallback(){s(this.$$.on_disconnect)}$destroy(){(function(e,t){const r=e.$$;null!==r.fragment&&(function(e){const t=[],r=[];p.forEach((n=>-1===e.indexOf(n)?t.push(n):r.push(n))),r.forEach((e=>e())),p=t}(r.after_update),s(r.on_destroy),r.fragment&&r.fragment.d(t),r.on_destroy=r.fragment=null,r.ctx=[])})(this,1),this.$destroy=o}$on(e,t){if(!l(t))return o;const r=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return r.push(t),()=>{const e=r.indexOf(t);-1!==e&&r.splice(e,1)}}$set(e){var t;this.$$set&&(t=e,0!==Object.keys(t).length)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}});const d=[];const f={cookies:[],noteLocation:"/",dailyNotesLocation:"/",insertAfter:"\x3c!-- start of weread --\x3e",insertBefore:"\x3c!-- end of weread --\x3e",dailyNotesFormat:"YYYY-MM-DD",lastCookieTime:-1,isCookieValid:!1,user:"",userVid:"",template:"---\nisbn: {{metaData.isbn}}\ncategory: {{metaData.category}}\nlastReadDate: {{metaData.lastReadDate}}\n---\n# 元数据\n> [!abstract] {{metaData.title}}\n> - ![ {{metaData.title}}|200]({{metaData.cover}})\n> - 书名: {{metaData.title}}\n> - 作者: {{metaData.author}}\n> - 简介: {{metaData.intro}}\n> - 出版时间 {{metaData.publishTime}}\n> - ISBN: {{metaData.isbn}}\n> - 分类: {{metaData.category}}\n> - 出版社: {{metaData.publisher}}\n\n# 高亮划线\n{% for chapter in chapterHighlights %}\n## {{chapter.chapterTitle}}\n{% for highlight in chapter.highlights %}\n{% if highlight.reviewContent %}{% else %}\n- 📌 {{ highlight.markText |trim }} ^{{highlight.bookmarkId}}\n - ⏱ {{highlight.createTime}}{% endif %} {% endfor %}{% endfor %}\n# 读书笔记\n{% for chapter in bookReview.chapterReviews %}{% if chapter.reviews or chapter.chapterReview %}\n## {{chapter.chapterTitle}}\n{% if chapter.chapterReviews %}{% for chapterReview in chapter.chapterReviews %}\n### 章节评论 No.{{loop.index}}\n- {{chapterReview.content}} ^{{chapterReview.reviewId}}\n - ⏱ {{chapterReview.createTime}} {% endfor%}{%endif %}{% if chapter.reviews %}{%for review in chapter.reviews %}\n### 划线评论\n- 📌 {{review.abstract |trim }} ^{{review.reviewId}}\n - 💭 {{review.content}}\n - ⏱ {{review.createTime}}\n{% endfor %} {%endif %} {% endif %} {% endfor %}\n# 本书评论\n{% if bookReview.bookReviews %}{% for bookReview in bookReview.bookReviews %}\n## 书评 No.{{loop.index}} \n{{bookReview.mdContent}} ^{{bookReview.reviewId}}\n⏱ {{bookReview.createTime}}\n{% endfor%}{% endif %}",noteCountLimit:-1,subFolderType:"-1",fileNameType:"BOOK_NAME",dailyNotesToggle:!1,notesBlacklist:""},h=(()=>{const t=function(e,t=o){let r;const n=new Set;function i(t){if(o=t,((i=e)!=i?o==o:i!==o||i&&"object"==typeof i||"function"==typeof i)&&(e=t,r)){const t=!d.length;for(const t of n)t[1](),d.push(t,e);if(t){for(let e=0;e{n.delete(l),0===n.size&&r&&(r(),r=null)}}}}(f);let r;t.subscribe((t=>e(void 0,void 0,void 0,(function*(){if(r){const e=Object.assign({},t);yield r.saveData(e)}}))));const n=e=>{for(const r of e)"wr_name"==r.name&&""!==r.value&&(console.log("[weread plugin] setting user name=>",r.value),t.update((e=>(e.user=r.value,e)))),"wr_vid"==r.name&&""!==r.value&&(console.log("[weread plugin] setting user vid=>",r.value),t.update((e=>(e.userVid=r.value,e))))};return{subscribe:t.subscribe,initialise:i=>e(void 0,void 0,void 0,(function*(){const e=Object.assign({},f,yield i.loadData()),o=Object.assign({},e);console.log("--------init cookie------",o.cookies),o.cookies.length>1&&n(o.cookies);const a=o.cookies.find((e=>"wr_vid"===e.name));void 0!==a&&""!==a.value||(o.userVid="",o.isCookieValid=!1),t.set(o),r=i})),actions:{setNoteLocationFolder:e=>{t.update((t=>(t.noteLocation=e,t)))},setCookies:e=>{t.update((t=>(t.cookies=e,t.lastCookieTime=(new Date).getTime(),t.isCookieValid=!0,n(e),t)))},clearCookies:()=>{console.log("[weread plugin] cookie已失效,清理cookie..."),t.update((e=>(e.cookies=[],e.lastCookieTime=(new Date).getTime(),e.user="",e.userVid="",e.isCookieValid=!1,e)))},setTemplate:e=>{t.update((t=>(t.template=e,t)))},setNoteCountLimit:e=>{t.update((t=>(t.noteCountLimit=e,t)))},setSubFolderType:e=>{t.update((t=>(t.subFolderType=e,t)))},setFileNameType:e=>{t.update((t=>(t.fileNameType=e,t)))},setDailyNotesToggle:e=>{t.update((t=>(t.dailyNotesToggle=e,t)))},setDailyNotesFolder:e=>{t.update((t=>(t.dailyNotesLocation=e,t)))},setDailyNotesFormat:e=>{t.update((t=>(t.dailyNotesFormat=e,t)))},setInsertAfter:e=>{t.update((t=>(t.insertAfter=e,t)))},setInsertBefore:e=>{t.update((t=>(t.insertBefore=e,t)))},setNoteBlacklist:e=>{t.update((t=>(t.notesBlacklist=e,t)))}}}})();class m{constructor(){i.configure({autoescape:!1})}validate(e){try{return i.renderString(e,{}),!0}catch(e){return console.error("validate weread template error,please check",e),!1}}render(e){const{metaData:t,chapterHighlights:r,bookReview:n}=e,o={metaData:t,chapterHighlights:r,bookReview:n},a=c(h).template;return i.renderString(a,o)}}var g=r(202),v=r.n(g);const b="weread-highlights-reviews",y=(e,r,n)=>{const i={doc_type:b,bookId:r.metaData.bookId,author:r.metaData.author,cover:r.metaData.cover,reviewCount:r.metaData.reviewCount,noteCount:r.metaData.noteCount};let o=Object();if(n){if(o=app.metadataCache.getFileCache(n).frontmatter,void 0===o)throw new t.Notice("weread front matter invalid"),Error("weread front matter invalid");delete o.position}const a=e.indexOf("---");let s=Object();if(-1!==a){const r=e.indexOf("---")+4,n=e.substring(r).indexOf("---")-1,i=e.substring(r,r+n);s=(0,t.parseYaml)(i)}const l=e.substring(e.lastIndexOf("---")+4),c=Object.assign(Object.assign(Object.assign({},o),i),s);return"---\n"+(0,t.stringifyYaml)(c)+"---\n"+l};class w{constructor(e,t){this.vault=e,this.metadataCache=t,this.renderer=new m}saveDailyNotes(r,n){return e(this,void 0,void 0,(function*(){const e=yield this.fileExists(r),i=this.buildAppendContent(n);if(e){const e=yield this.getFileByPath(r),t=yield this.vault.cachedRead(e),n=yield this.insertAfter(t,i);this.vault.modify(e,n)}else new t.Notice("没有找到Daily Note,请先创建"+r)}))}buildAppendContent(e){return e.map((e=>"\n### ".concat(e.metaData.title).concat("\n")+e.refBlocks.map((t=>`![[${this.getFileName(e.metaData)}#^${t.refBlockId}]]`)).join("\n"))).join("\n")}getDailyNotePath(e){let r;const n=c(h).dailyNotesFormat;try{r=e.format(n)}catch(e){throw new t.Notice("Daily Notes 日期格式不正确"+n),e}return c(h).dailyNotesLocation+"/"+r+".md"}fileExists(t){return e(this,void 0,void 0,(function*(){return yield this.vault.adapter.exists(t)}))}getFileByPath(r){return e(this,void 0,void 0,(function*(){const e=yield this.vault.getAbstractFileByPath(r);return e?e instanceof t.TFolder?(console.error(`${r} found but it's a folder`),null):e instanceof t.TFile?e:void 0:(console.error(`${r} not found`),null)}))}insertAfter(r,n){return e(this,void 0,void 0,(function*(){const e=c(h).insertAfter,i=new RegExp(`s*${e}s*`),o=(e=>{const t=[];let r=e;for(;r.contains("\n");){const e=r.indexOf("\n");t.push(r.slice(0,e)),r=r.slice(e+1)}return t.push(r),t})(r).findIndex((e=>i.test(e)));if(-1===o)throw new t.Notice(`没有在Daily Note中找到区间开始:${e}!请检查Daily Notes设置`),new Error("cannot find "+e);return this.insertTextAfterPosition(n,r,o)}))}insertTextAfterPosition(e,r,n){const i=r.split("\n"),o=i.slice(0,n+1).join("\n"),a=i.slice(n+1),s=c(h).insertBefore,l=a.findIndex((e=>new RegExp(`s*${s}s*`).test(e)));if(-1===l)throw new t.Notice(`没有在Daily Note中找到区间结束:${s}!请检查Daily Notes设置`),new Error("cannot find "+s);return`${o}\n${e}\n${a.slice(l-1).join("\n")}`}saveNotebook(t){return e(this,void 0,void 0,(function*(){const e=t.metaData.file;if(e){if(e.new){const r=e.file;console.log(`Updating ${r.path}`);const n=this.renderer.render(t),i=y(n,t,r);yield this.vault.modify(r,i)}}else{const e=yield this.getNewNotebookFilePath(t);console.log(`Creating ${e}`);const r=this.renderer.render(t),n=y(r,t);yield this.vault.create(e,n)}}))}getNotebookFiles(){return e(this,void 0,void 0,(function*(){return this.vault.getMarkdownFiles().map((e=>{const t=this.metadataCache.getFileCache(e);return{file:e,frontmatter:null==t?void 0:t.frontmatter}})).filter((({frontmatter:e})=>(null==e?void 0:e.doc_type)===b)).map((({file:e,frontmatter:t})=>({file:e,bookId:t.bookId,reviewCount:t.reviewCount,noteCount:t.noteCount,new:!1})))}))}getNewNotebookFilePath(t){return e(this,void 0,void 0,(function*(){const e=`${c(h).noteLocation}/${this.getSubFolderPath(t.metaData)}`;return(yield this.vault.adapter.exists(e))||(console.info(`Folder ${e} not found. Will be created`),yield this.vault.createFolder(e)),`${e}/${this.getFileName(t.metaData)}.md`}))}getFileName(e){const t=c(h).fileNameType,r=(e=>{const t=e.replace(/[':#|]/g,"").trim();return v()(t)})(e.title);return"BOOK_NAME-AUTHOR"==t?e.duplicate?`${r}-${e.author}-${e.bookId}`:`${r}-${e.author}`:e.duplicate||"BOOK_NAME-BOOKID"==t?`${r}-${e.bookId}`:r}getSubFolderPath(e){const t=c(h).subFolderType;return"title"==t?e.title:"category"==t?e.category?e.category.split("-")[0]:"公众号"===e.author?"公众号":"未分类":""}}var E=r(2245);class x{constructor(e,t){this.fileManager=e,this.apiManager=t}syncNotebooks(r=!1,n){return e(this,void 0,void 0,(function*(){const e=yield this.getALlMetadata(),i=yield this.filterNoteMetas(r,e),o=[];for(const e of i){const t=yield this.convertToNotebook(e);o.push(t)}for(const e of o)yield this.syncNotebook(e);this.saveToJounal(n,e),new t.Notice(`微信读书笔记同步完成!, 本次更新 ${o.length} 本书`)}))}syncNotesToJounal(t){return e(this,void 0,void 0,(function*(){const e=yield this.getALlMetadata();this.saveToJounal(t,e)}))}convertToNotebook(t){return e(this,void 0,void 0,(function*(){const e=yield this.apiManager.getBook(t.bookId);if(e){t.category=e.category,t.publisher=e.publisher,t.isbn=e.isbn,t.intro=e.intro,t.totalWords=e.totalWords;const r=parseInt(e.newRating);t.rating=r/10+"%"}const r=yield this.apiManager.getNotebookHighlights(t.bookId),n=yield this.apiManager.getNotebookReviews(t.bookId),i=(e=>{const t=[];for(const r of e){const e=r.chapterUid,n=r.chapterTitle,i=t.find((e=>e.chapterUid==r.chapterUid)),o=r.reviewContent?1:0;if(null==i){const i={chapterUid:e,chapterTitle:n,chapterReviewCount:o,highlights:[r]};t.push(i)}else i.chapterReviewCount+=o,i.highlights.push(r)}return t.forEach((e=>e.highlights.sort(((e,t)=>parseInt(e.range.split("-")[0])-parseInt(t.range.split("-")[0]))))),t.sort(((e,t)=>e.chapterUid-t.chapterUid))})(((e,t)=>{const r=0===e.chapters.length?e.refMpInfos||[]:e.chapters,n=new Map(r.map((e=>[e.chapterUid||e.reviewId,e.title]))),i=e.updated,o=t.reviews;return i.map((e=>{const t=e.chapterUid||e.refMpReviewId,r=e.createTime,i=window.moment(1e3*r).format("YYYY-MM-DD HH:mm:ss"),a=e.range;let s;if(o){const e=o.map((e=>e.review)).filter((e=>e.range===a)).first();e&&(s=e.content)}let l=e.bookmarkId;l.startsWith("MP_WXS")&&(l=e.range);const c=e.markText;return{bookmarkId:null==l?void 0:l.replace(/_/gi,"-"),created:r,createTime:i,chapterUid:t,range:e.range,style:e.style,chapterTitle:n.get(t),markText:null==c?void 0:c.replace(/\n/gi,""),reviewContent:s}}))})(r,n)),o=(e=>{const t=e.reviews.map((e=>{var t,r;const n=e.review,i=n.createTime,o=window.moment(1e3*i).format("YYYY-MM-DD HH:mm:ss"),a=n.htmlContent,s=a?E.dx.translate(a):null,l=n.reviewId;return{bookId:n.bookId,created:i,createTime:o,chapterUid:n.chapterUid||(null===(t=n.refMpInfo)||void 0===t?void 0:t.reviewId),chapterTitle:n.chapterTitle||(null===(r=n.refMpInfo)||void 0===r?void 0:r.title),content:n.content,reviewId:null==l?void 0:l.replace(/_/gi,"-"),mdContent:s||n.content,range:n.range,abstract:n.abstract,type:n.type}})),r=t.filter((e=>1==e.type));r.sort(((e,t)=>void 0===e.range&&void 0===t.range?0:void 0===e.range?1:void 0===t.range?-1:parseInt(e.range.split("-")[0])-parseInt(t.range.split("-")[0])));const n=t.filter((e=>4==e.type)),i=new Map;for(const e of r){const t=e.chapterUid,r=e.chapterTitle;if(null==i.get(e.chapterUid)){const n={chapterUid:t,chapterTitle:r,reviews:[],chapterReviews:[]};e.range?n.reviews.push(e):n.chapterReviews.push(e),i.set(e.chapterUid,n)}else{const t=i.get(e.chapterUid);e.range?t.reviews.push(e):t.chapterReviews.push(e)}}return{bookReviews:n,chapterReviews:Array.from(i.values()).sort(((e,t)=>e.chapterUid-t.chapterUid))}})(n);return{metaData:t,bookReview:o,chapterHighlights:i}}))}filterNoteMetas(r=!1,n){return e(this,void 0,void 0,(function*(){const e=yield this.fileManager.getNotebookFiles();let i=0;const o=this.getDuplicateBooks(n),a=[];for(const t of n){if(t.noteCount<+c(h).noteCountLimit){console.debug(`[weread plugin] skip book ${t.title} note count: ${t.noteCount}`),i++;continue}const n=yield this.getLocalNotebookFile(t,e);!n||n.new||r?c(h).notesBlacklist.includes(t.bookId)?(console.info(`[weread plugin] skip book ${t.title},id:${t.bookId}for blacklist`),i++):(t.file=n,o.has(t.title)&&(t.duplicate=!0),a.push(t)):i++}return new t.Notice("跳过更新"+i+"本没有更新的书"),a}))}getALlMetadata(){return e(this,void 0,void 0,(function*(){return(yield this.apiManager.getNotebooksWithRetry()).map((e=>(e=>{const t=e.book,r=t.cover.replace("/s_","/t7_"),n=window.moment(1e3*e.sort).format("YYYY-MM-DD");return{bookId:t.bookId,author:t.author,title:t.title,url:t.url,cover:r,publishTime:t.publishTime,noteCount:e.noteCount,reviewCount:e.reviewCount,bookType:t.type,lastReadDate:n}})(e)))}))}saveToJounal(t,r){return e(this,void 0,void 0,(function*(){const e=yield this.getBookReadInDate(t),n=r.filter((t=>e.contains(t.bookId))),i=[];for(const e of n){const t=yield this.convertToNotebook(e);i.push(t)}if(c(h).dailyNotesToggle){const e=(e=>{const t=window.moment().format("YYYYMMDD"),r=[];for(const n of e){const e=n.chapterHighlights.flatMap((e=>e.highlights)).filter((e=>{const r=window.moment(1e3*e.created).format("YYYYMMDD");return t===r})),i=[];if(e)for(const t of e)i.push({refBlockId:t.bookmarkId,createTime:t.created});i.length>0&&r.push({metaData:n.metaData,refBlocks:i})}return r})(i),t=this.fileManager.getDailyNotePath(window.moment());console.log("get daily note path",t," size:",e.length),this.fileManager.saveDailyNotes(t,e)}}))}getBookReadInDate(t){return e(this,void 0,void 0,(function*(){return(yield this.apiManager.getRecentBooks()).map((e=>({bookId:e.bookId,title:e.title,recentTime:e.readUpdateTime}))).filter((e=>window.moment(1e3*e.recentTime).format("YYYY-MM-DD")===t)).map((e=>e.bookId))}))}getDuplicateBooks(e){const t=e.map((e=>e.title)),r=new Set(t),n=t.filter((e=>{if(!r.has(e))return e;r.delete(e)}));return new Set(n)}getLocalNotebookFile(t,r){return e(this,void 0,void 0,(function*(){const e=r.find((e=>e.bookId===t.bookId))||null;return e?(e.noteCount==t.noteCount&&e.reviewCount==t.reviewCount?e.new=!1:e.new=!0,e):null}))}syncNotebook(t){return e(this,void 0,void 0,(function*(){try{yield this.fileManager.saveNotebook(t)}catch(e){console.log("[weread plugin] sync note book error",t.metaData.title,e)}}))}}const T=e=>e.map((e=>{const t=e.name,r=e.value;return t+"="+(-1!==r.indexOf("%")?decodeURIComponent(r):r)})).join(";");var k=r(9328);class _{constructor(){this.baseUrl="https://i.weread.qq.com"}getHeaders(){return{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36","Accept-Encoding":"gzip, deflate, br","Accept-Language":"zh-CN,zh;q=0.9,en;q=0.8",Cookie:T(c(h).cookies)}}refreshCookie(){return e(this,void 0,void 0,(function*(){const e={url:"https://weread.qq.com",method:"HEAD",headers:this.getHeaders()},r=yield(0,t.requestUrl)(e),n=r.headers["set-cookie"]||r.headers["Set-Cookie"];void 0===n?new t.Notice("尝试刷新Cookie失败"):(new t.Notice("cookie已过期,尝试刷新Cookie成功"),this.updateCookies(n))}))}getNotebooksWithRetry(){return e(this,void 0,void 0,(function*(){let e=yield this.getNotebooks();if(void 0!==e&&0!==e.length||(e=yield this.getNotebooks()),void 0===e||0===e.length)throw new t.Notice("长时间未登录,Cookie已失效,请重新扫码登录!"),h.actions.clearCookies(),Error("get weread note book error after retry");return e}))}getRecentBooks(){return e(this,void 0,void 0,(function*(){const e=c(h).userVid;console.debug("get userVid settings",e);const r={url:this.baseUrl+"/shelf/friendCommon?userVid="+e,method:"GET",headers:this.getHeaders()};try{return(yield(0,t.requestUrl)(r)).json.recentBooks}catch(t){console.error("get recent books error: vid"+e,t)}}))}getNotebooks(){return e(this,void 0,void 0,(function*(){let e=[];const r={url:this.baseUrl+"/user/notebooks",method:"GET",headers:this.getHeaders()};try{const n=yield(0,t.requestUrl)(r);401===n.status&&(-2012==n.json.errcode?(console.log("weread cookie expire retry refresh cookie... "),yield this.refreshCookie()):(t.Platform.isDesktopApp?new t.Notice("微信读书未登录或者用户异常,请在设置中重新登录!"):new t.Notice("微信读书未登录或者用户异常,请在电脑端重新登录!"),console.log("微信读书未登录或者用户异常,请重新登录, http status code:",n.json.errcode),h.actions.clearCookies())),e=n.json.books}catch(e){401==e.status&&(console.log(`parse request to cURL for debug: ${this.parseToCurl(r)}`),yield this.refreshCookie())}return e}))}parseToCurl(e){const t=["curl"];t.push(e.url);const r=e.headers;return Object.keys(r).forEach((e=>{t.push("-H"),t.push(this.escapeStringPosix(e.replace(/^:/,"")+": "+r[e]))})),t.push(" --compressed"),t.join(" ")}escapeStringPosix(e){return/[^\x20-\x7E]|'/.test(e)?"$'"+e.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[^\x20-\x7E]/g,(function(e){let t=e.charCodeAt(0);return t<256?t<16?"\\x0"+t.toString(16):"\\x"+t.toString(16):(t=t.toString(16),"\\u"+("0000"+t).substr(t.length,4))}))+"'":"'"+e+"'"}getBook(r){return e(this,void 0,void 0,(function*(){try{const e={url:`${this.baseUrl}/book/info?bookId=${r}`,method:"GET",headers:this.getHeaders()};return(yield(0,t.requestUrl)(e)).json}catch(e){console.error("get book detail error",e)}}))}getNotebookHighlights(r){return e(this,void 0,void 0,(function*(){try{const e={url:`${this.baseUrl}/book/bookmarklist?bookId=${r}`,method:"GET",headers:this.getHeaders()};return(yield(0,t.requestUrl)(e)).json}catch(e){console.error("get book highlight error"+r,e)}}))}getNotebookReviews(r){return e(this,void 0,void 0,(function*(){try{const e={url:`${this.baseUrl}/review/list?bookId=${r}&listType=11&mine=1&synckey=0`,method:"GET",headers:this.getHeaders()};return(yield(0,t.requestUrl)(e)).json}catch(e){new t.Notice("Failed to fetch weread notebook reviews . Please check your Cookies and try again."),console.error("get book review error"+r,e)}}))}updateCookies(e){let t;if(Array.isArray(e))t=(0,k.parse)(e);else{const r=(0,k.splitCookiesString)(e);t=(0,k.parse)(r)}const r=c(h).cookies;r.forEach((e=>{const r=t.find((t=>t.name==e.name));r&&(e.value=r.value)})),h.actions.setCookies(r)}}class A{constructor(e){this.settingTab=e;const{remote:t}=r(5840),{BrowserWindow:n}=t;this.modal=new n({parent:t.getCurrentWindow(),width:960,height:540,show:!1}),this.modal.once("ready-to-show",(()=>{this.modal.setTitle("登录微信读书~"),this.modal.show()})),this.modal.webContents.session.webRequest.onSendHeaders({urls:["https://weread.qq.com/web/user?userVid=*"]},(t=>{const r=""===(n=t.requestHeaders.Cookie)?[]:n.split(";").map((e=>e.split("="))).map((e=>({name:decodeURIComponent(e[0].trim()),value:decodeURIComponent(e[1].trim())})));var n;""!==r.find((e=>"wr_name"==e.name)).value?(h.actions.setCookies(r),e.display(),this.modal.close()):this.modal.reload()}))}doLogin(){return e(this,void 0,void 0,(function*(){try{yield this.modal.loadURL("https://weread.qq.com/#login")}catch(e){console.log(e),new t.Notice("加载微信读书登录页面失败")}}))}onClose(){this.modal.close()}}class N{constructor(e){this.settingTab=e;const{remote:t}=r(5840),{BrowserWindow:n}=t;this.modal=new n({parent:t.getCurrentWindow(),width:960,height:540,show:!1}),this.modal.once("ready-to-show",(()=>{this.modal.setTitle("注销微信读书,右上角头像点击退出登录~"),this.modal.show()})),this.modal.webContents.session.webRequest.onCompleted({urls:["https://weread.qq.com/web/logout"]},(e=>{200==e.statusCode&&(console.log("weread logout success, clear cookies..."),h.actions.clearCookies(),this.settingTab.display(),this.modal.close())}))}doLogout(){return e(this,void 0,void 0,(function*(){yield this.modal.loadURL("https://weread.qq.com/web/shelf/#logout")}))}onClose(){this.modal.close()}}var L=r(6040),O=r.n(L);class S extends t.Modal{constructor(e){super(e)}onOpen(){const{contentEl:e}=this,t=c(h).cookies,r=T(t);e.createDiv().createEl("h1",{text:"🚨Cookie 是敏感信息,仅用于Debug,请不要泄露"}),e.createDiv().createEl("kbd",{text:r})}onClose(){const{contentEl:e}=this;e.empty()}}class C extends t.PluginSettingTab{constructor(e,t){super(e,t),this.plugin=t,this.renderer=new m}display(){const{containerEl:e}=this;e.empty(),e.createEl("h2",{text:"设置微信读书插件"});const r=c(h).isCookieValid;t.Platform.isDesktopApp?r?this.showLogout():this.showLogin():r?this.showMobileLogout():this.showMobileLogin(),this.notebookFolder(),this.notebookBlacklist(),this.noteCountLimit(),this.fileNameType(),this.subFolderType(),this.dailyNotes(),c(h).dailyNotesToggle&&(this.dailyNotesFolder(),this.dailyNoteFormat(),this.insertAfter()),this.template(),t.Platform.isDesktopApp&&this.showDebugHelp()}showMobileLogin(){this.containerEl.createDiv().setText("微信读书未登录,请先在电脑端登录!")}showMobileLogout(){this.containerEl.createDiv().setText(`微信读书已登录,用户名:${c(h).user}`)}notebookFolder(){new t.Setting(this.containerEl).setName("笔记保存位置").setDesc("请选择Obsidian Vault中微信读书笔记存放的位置").addDropdown((t=>{const r=this.app.vault.adapter.files,n=O()(r,(e=>"folder"===e.type));return Object.keys(n).forEach((e=>{t.addOption(e,e)})),t.setValue(c(h).noteLocation).onChange((t=>e(this,void 0,void 0,(function*(){h.actions.setNoteLocationFolder(t)}))))}))}notebookBlacklist(){new t.Setting(this.containerEl).setName("书籍黑名单").setDesc("请填写不同步的bookId,bookId可在meta信息中找到,多本书使用逗号「,」隔开").addText((e=>{e.setValue(c(h).notesBlacklist).onChange((e=>{h.actions.setNoteBlacklist(e)}))}))}showLogin(){new t.Setting(this.containerEl).setName("登录微信读书").addButton((t=>t.setButtonText("登录").setCta().onClick((()=>e(this,void 0,void 0,(function*(){t.setDisabled(!0);const e=new A(this);yield e.doLogin(),this.display()}))))))}dailyNotes(){new t.Setting(this.containerEl).setName("是否保存笔记到 DailyNotes?").setHeading().addToggle((e=>e.setValue(c(h).dailyNotesToggle).onChange((e=>{console.debug("set daily notes toggle to",e),h.actions.setDailyNotesToggle(e),this.display()}))))}dailyNotesFolder(){new t.Setting(this.containerEl).setName("Daily Notes文件夹").setDesc("请选择Daily Notes文件夹").addDropdown((t=>{const r=this.app.vault.adapter.files,n=O()(r,(e=>"folder"===e.type));return Object.keys(n).forEach((e=>{t.addOption(e,e)})),t.setValue(c(h).dailyNotesLocation).onChange((t=>e(this,void 0,void 0,(function*(){h.actions.setDailyNotesFolder(t)}))))}))}dailyNoteFormat(){new t.Setting(this.containerEl).setName("Daily Notes Format").setDesc("请填写Daily Notes文件名格式,支持官方Daily Notes插件的格式,比如:YYYY-MM-DD \t\t\t\t 和 Periodic Notes的嵌套格式,比如 YYYY/[W]ww/YYYY-MM-DD").addText((e=>{e.setValue(c(h).dailyNotesFormat).onChange((e=>{h.actions.setDailyNotesFormat(e)}))}))}insertAfter(){new t.Setting(this.containerEl).setName("在特定区间之内插入").setDesc("请填写Daily Notes中希望读书笔记插入的区间,使用前记得修改Daily Notes模板🫡, 💥注意: 区间之内的内容会被覆盖,请不要在区间内修改内容,").addText((e=>{e.setValue(c(h).insertAfter).onChange((e=>{h.actions.setInsertAfter(e)}))})).addButton((e=>e.setButtonText("至").buttonEl.style.borderStyle="none")).addText((e=>{e.setValue(c(h).insertBefore).onChange((e=>{h.actions.setInsertBefore(e)}))}))}subFolderType(){new t.Setting(this.containerEl).setName("文件夹分类").setDesc("请选择按照哪个维度对笔记文件进行分类").addDropdown((t=>(t.addOptions({"-1":"无分类",title:"书名",category:"图书分类"}),t.setValue(c(h).subFolderType).onChange((t=>e(this,void 0,void 0,(function*(){h.actions.setSubFolderType(t)})))))))}fileNameType(){new t.Setting(this.containerEl).setName("文件名模板").setDesc("你选择你喜欢的文件名模板,重复的书会在文件名后加上ID").addDropdown((t=>(t.addOptions({BOOK_NAME:"书名","BOOK_NAME-AUTHOR":"书名-作者名","BOOK_NAME-ID":"书名-bookId"}),t.setValue(c(h).fileNameType).onChange((t=>e(this,void 0,void 0,(function*(){h.actions.setFileNameType(t)})))))))}showLogout(){document.createRange().createContextualFragment;const r=document.createRange().createContextualFragment("1. 登录:点击登录按钮,在弹出页面【扫码登录】。\n 2. 注销:点击注销,在弹出书架页面右上角点击头像,下拉菜单选择【退出登录】");new t.Setting(this.containerEl).setName(`微信读书已登录,用户名: ${c(h).user}`).setDesc(r).addButton((t=>t.setButtonText("注销").setCta().onClick((()=>e(this,void 0,void 0,(function*(){t.setDisabled(!0);const e=new N(this);yield e.doLogout(),this.display()})))))).addButton((t=>t.setButtonText("Show Cookie").setCta().onClick((()=>e(this,void 0,void 0,(function*(){new S(this.app).open()}))))))}template(){const r=document.createRange().createContextualFragment('模板使用说明\n

\n

可用变量

\n

\n元数据变量(metaData)\n
    \n
  • {{title}} - 书名
  • \n
  • {{author}} - 作者
  • \n
  • {{cover}} - 封面
  • \n
  • {{intro}} - 书籍简介
  • \n
  • {{bookId}} - 微信图书ID
  • \n
  • {{publishTime}} - 出版时间
  • \n
  • {{noteCount}} - 划线数量
  • \n
  • {{reviewCount}} - 笔记数量
  • \n
  • {{isbn}} - ISBN
  • \n
  • {{category}} - 分类
  • \n
  • {{publisher}} - 出版社
  • \n
  • {{finish}} - 是否读完(还未支持)
  • \n
\n划线变量(chapterHighlights)\n
    \n
  • {{chapterUid}} - 章节ID
  • \n
  • {{chapterTitle}} - 章节标题
  • \n
  • {{createTime}} - 创建时间
  • \n
  • {{range}} - 划线范围
  • \n
  • {{markText}} - 划线文本
  • \n
\n笔记笔记(bookReview)\n
    \n
  • {{reviewId}} - reviewId
  • \n
  • {{chapterUid}} - 章节ID
  • \n
  • {{chapterTitle}} - 章节标题
  • \n
  • {{createTime}} - 创建时间
  • \n
  • {{abstract}} - 摘录内容
  • \n
  • {{content}} - 笔记内容
  • \n
  • {{mdContent}} - markdown笔记格式
  • \n
  • {{type}} - 类型
  • \n
  • {{range}} - 范围
  • \n
\n');new t.Setting(this.containerEl).setName("笔记模板").setDesc(r).addTextArea((t=>(t.inputEl.style.width="100%",t.inputEl.style.height="540px",t.inputEl.style.fontSize="0.8em",t.setValue(c(h).template).onChange((r=>e(this,void 0,void 0,(function*(){const e=this.renderer.validate(r);e&&h.actions.setTemplate(r),t.inputEl.style.border=e?"":"2px solid red"})))),t)))}noteCountLimit(){new t.Setting(this.containerEl).setName("笔记划线数量最小值").setDesc("划线数量小于该值的笔记将不会被同步").addDropdown((t=>{t.addOptions({"-1":"无限制",3:"3条",5:"5条",10:"10条",15:"15条",30:"30条"}).setValue(c(h).noteCountLimit.toString()).onChange((t=>e(this,void 0,void 0,(function*(){console.log("[weread plugin] new note count limit",t),h.actions.setNoteCountLimit(+t)}))))}))}showDebugHelp(){const e=this.containerEl.createDiv();e.setAttr("align","center"),e.setText("查看控制台日志: 使用以下快捷键快速打开控制台,查看本插件以及其他插件的运行日志");const r=this.containerEl.createDiv();r.setAttr("align","center"),r.style.margin="10px",!0===t.Platform.isMacOS?r.createEl("kbd",{text:"CMD (⌘) + OPTION (⌥) + I"}):r.createEl("kbd",{text:"CTRL + SHIFT + I"})}}class D extends t.Plugin{onload(){return e(this,void 0,void 0,(function*(){console.log("load weread plugin"),h.initialise(this);const e=new w(this.app.vault,this.app.metadataCache),r=new _;this.syncNotebooks=new x(e,r),this.addRibbonIcon("book-open","Weread",(()=>{this.startSync()})),this.addCommand({id:"sync-weread-notes-command",name:"Sync Weread Notes",callback:()=>{this.startSync()}}),this.addCommand({id:"Force-sync-weread-notes-command",name:"Force Sync Weread Notes",callback:()=>{this.startSync(!0)}}),this.addCommand({id:"sync-weread-notes-to-daily-note",name:"Sync Weread Notes To Daily Note",callback:()=>{const e=window.moment().format("YYYY-MM-DD");new t.Notice("开始同步微信读书笔记到DailyNotes!"+e),this.syncNotebooks.syncNotesToJounal(e)}}),this.addSettingTab(new C(this.app,this))}))}startSync(r=!1){return e(this,void 0,void 0,(function*(){console.log("syncing Weread note start"),r?new t.Notice("强制同步微信读书笔记开始!"):new t.Notice("同步微信读书笔记开始!");try{yield this.syncNotebooks.syncNotebooks(r,window.moment().format("YYYY-MM-DD")),console.log("syncing Weread note finish")}catch(e){t.Platform.isDesktopApp?new t.Notice("同步微信读书笔记异常,请打开控制台查看详情"):new t.Notice("同步微信读书笔记异常,请使用电脑端打开控制台查看详情"+e),console.error("同步微信读书笔记异常",e)}}))}onunload(){console.log("unloading weread plugin",(new Date).toLocaleString())}}})();var i=exports;for(var o in n)i[o]=n[o];n.__esModule&&Object.defineProperty(i,"__esModule",{value:!0})})(); \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-weread-plugin/manifest.json b/.obsidian/plugins/obsidian-weread-plugin/manifest.json index 81f5c238..b523e987 100644 --- a/.obsidian/plugins/obsidian-weread-plugin/manifest.json +++ b/.obsidian/plugins/obsidian-weread-plugin/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-weread-plugin", "name": "Weread Plugin", - "version": "0.5.1", + "version": "0.5.3", "minAppVersion": "0.12.0", "description": "This is obsidian plugin for Tencent weread.", "author": "hankzhao", diff --git a/.obsidian/plugins/templater-obsidian/data.json b/.obsidian/plugins/templater-obsidian/data.json index ba1246f2..467387f2 100644 --- a/.obsidian/plugins/templater-obsidian/data.json +++ b/.obsidian/plugins/templater-obsidian/data.json @@ -19,7 +19,7 @@ "auto_jump_to_cursor": false, "enable_system_commands": false, "shell_path": "", - "user_scripts_folder": "", + "user_scripts_folder": "src/js", "enable_folder_templates": true, "folder_templates": [ { @@ -33,5 +33,6 @@ ], "startup_templates": [ "" - ] + ], + "enable_ribbon_icon": true } \ No newline at end of file diff --git a/.obsidian/plugins/templater-obsidian/main.js b/.obsidian/plugins/templater-obsidian/main.js index f31f7c58..32262538 100644 --- a/.obsidian/plugins/templater-obsidian/main.js +++ b/.obsidian/plugins/templater-obsidian/main.js @@ -5,27 +5,10 @@ if you want to view the source, please visit the github repository of this plugi 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 __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 __export = (target, all) => { __markAsModule(target); @@ -43,32 +26,28 @@ var __reExport = (target, module2, desc) => { 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((resolve2, 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 ? resolve2(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); - step((generator = generator.apply(__this, __arguments)).next()); - }); -}; +var __toBinary = /* @__PURE__ */ (() => { + var table = new Uint8Array(128); + for (var i = 0; i < 64; i++) + table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i; + return (base64) => { + var n = base64.length, bytes = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0); + for (var i2 = 0, j = 0; i2 < n; ) { + var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)]; + var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)]; + bytes[j++] = c0 << 2 | c1 >> 4; + bytes[j++] = c1 << 4 | c2 >> 2; + bytes[j++] = c2 << 6 | c3; + } + return bytes; + }; +})(); // src/main.ts __export(exports, { default: () => TemplaterPlugin }); -var import_obsidian19 = __toModule(require("obsidian")); +var import_obsidian18 = __toModule(require("obsidian")); // src/settings/Settings.ts var import_obsidian6 = __toModule(require("obsidian")); @@ -94,19 +73,17 @@ var TemplaterError = class extends Error { Error.captureStackTrace(this, this.constructor); } }; -function errorWrapper(fn2, msg) { - return __async(this, null, function* () { - try { - return yield fn2(); - } catch (e) { - if (!(e instanceof TemplaterError)) { - log_error(new TemplaterError(msg, e.message)); - } else { - log_error(e); - } - return null; +async function errorWrapper(fn2, msg) { + try { + return await fn2(); + } catch (e) { + if (!(e instanceof TemplaterError)) { + log_error(new TemplaterError(msg, e.message)); + } else { + log_error(e); } - }); + return null; + } } function errorWrapperSync(fn2, msg) { try { @@ -123,7 +100,7 @@ var import_obsidian3 = __toModule(require("obsidian")); // src/settings/suggesters/suggest.ts var import_obsidian2 = __toModule(require("obsidian")); -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/enums.js +// node_modules/@popperjs/core/lib/enums.js var top = "top"; var bottom = "bottom"; var right = "right"; @@ -153,12 +130,12 @@ var write = "write"; var afterWrite = "afterWrite"; var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite]; -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js +// node_modules/@popperjs/core/lib/dom-utils/getNodeName.js function getNodeName(element) { return element ? (element.nodeName || "").toLowerCase() : null; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getWindow.js +// node_modules/@popperjs/core/lib/dom-utils/getWindow.js function getWindow(node) { if (node == null) { return window; @@ -170,7 +147,7 @@ function getWindow(node) { return node; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js +// node_modules/@popperjs/core/lib/dom-utils/instanceOf.js function isElement(node) { var OwnElement = getWindow(node).Element; return node instanceof OwnElement || node instanceof Element; @@ -187,7 +164,7 @@ function isShadowRoot(node) { return node instanceof OwnElement || node instanceof ShadowRoot; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/modifiers/applyStyles.js +// node_modules/@popperjs/core/lib/modifiers/applyStyles.js function applyStyles(_ref) { var state = _ref.state; Object.keys(state.elements).forEach(function(name) { @@ -255,47 +232,66 @@ var applyStyles_default = { requires: ["computeStyles"] }; -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/getBasePlacement.js +// node_modules/@popperjs/core/lib/utils/getBasePlacement.js function getBasePlacement(placement) { return placement.split("-")[0]; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/math.js +// node_modules/@popperjs/core/lib/utils/math.js var max = Math.max; var min = Math.min; var round = Math.round; -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js -function getBoundingClientRect(element, includeScale) { +// node_modules/@popperjs/core/lib/utils/userAgent.js +function getUAString() { + var uaData = navigator.userAgentData; + if (uaData != null && uaData.brands) { + return uaData.brands.map(function(item) { + return item.brand + "/" + item.version; + }).join(" "); + } + return navigator.userAgent; +} + +// node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js +function isLayoutViewport() { + return !/^((?!chrome|android).)*safari/i.test(getUAString()); +} + +// node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js +function getBoundingClientRect(element, includeScale, isFixedStrategy) { if (includeScale === void 0) { includeScale = false; } - var rect = element.getBoundingClientRect(); + if (isFixedStrategy === void 0) { + isFixedStrategy = false; + } + var clientRect = element.getBoundingClientRect(); var scaleX = 1; var scaleY = 1; - if (isHTMLElement(element) && includeScale) { - var offsetHeight = element.offsetHeight; - var offsetWidth = element.offsetWidth; - if (offsetWidth > 0) { - scaleX = round(rect.width) / offsetWidth || 1; - } - if (offsetHeight > 0) { - scaleY = round(rect.height) / offsetHeight || 1; - } + if (includeScale && isHTMLElement(element)) { + scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1; + scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1; } + var _ref = isElement(element) ? getWindow(element) : window, visualViewport = _ref.visualViewport; + var addVisualOffsets = !isLayoutViewport() && isFixedStrategy; + var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX; + var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY; + var width = clientRect.width / scaleX; + var height = clientRect.height / scaleY; return { - width: rect.width / scaleX, - height: rect.height / scaleY, - top: rect.top / scaleY, - right: rect.right / scaleX, - bottom: rect.bottom / scaleY, - left: rect.left / scaleX, - x: rect.left / scaleX, - y: rect.top / scaleY + width, + height, + top: y, + right: x + width, + bottom: y + height, + left: x, + x, + y }; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js +// node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js function getLayoutRect(element) { var clientRect = getBoundingClientRect(element); var width = element.offsetWidth; @@ -314,7 +310,7 @@ function getLayoutRect(element) { }; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/contains.js +// node_modules/@popperjs/core/lib/dom-utils/contains.js function contains(parent, child) { var rootNode = child.getRootNode && child.getRootNode(); if (parent.contains(child)) { @@ -331,22 +327,22 @@ function contains(parent, child) { return false; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js +// node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js function getComputedStyle(element) { return getWindow(element).getComputedStyle(element); } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js +// node_modules/@popperjs/core/lib/dom-utils/isTableElement.js function isTableElement(element) { return ["table", "td", "th"].indexOf(getNodeName(element)) >= 0; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js +// node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js function getDocumentElement(element) { return ((isElement(element) ? element.ownerDocument : element.document) || window.document).documentElement; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js +// node_modules/@popperjs/core/lib/dom-utils/getParentNode.js function getParentNode(element) { if (getNodeName(element) === "html") { return element; @@ -354,7 +350,7 @@ function getParentNode(element) { return element.assignedSlot || element.parentNode || (isShadowRoot(element) ? element.host : null) || getDocumentElement(element); } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js +// node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js function getTrueOffsetParent(element) { if (!isHTMLElement(element) || getComputedStyle(element).position === "fixed") { return null; @@ -362,8 +358,8 @@ function getTrueOffsetParent(element) { return element.offsetParent; } function getContainingBlock(element) { - var isFirefox = navigator.userAgent.toLowerCase().indexOf("firefox") !== -1; - var isIE = navigator.userAgent.indexOf("Trident") !== -1; + var isFirefox = /firefox/i.test(getUAString()); + var isIE = /Trident/i.test(getUAString()); if (isIE && isHTMLElement(element)) { var elementCss = getComputedStyle(element); if (elementCss.position === "fixed") { @@ -371,6 +367,9 @@ function getContainingBlock(element) { } } var currentNode = getParentNode(element); + if (isShadowRoot(currentNode)) { + currentNode = currentNode.host; + } while (isHTMLElement(currentNode) && ["html", "body"].indexOf(getNodeName(currentNode)) < 0) { var css = getComputedStyle(currentNode); if (css.transform !== "none" || css.perspective !== "none" || css.contain === "paint" || ["transform", "perspective"].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === "filter" || isFirefox && css.filter && css.filter !== "none") { @@ -393,12 +392,12 @@ function getOffsetParent(element) { return offsetParent || getContainingBlock(element) || window2; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js +// node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js function getMainAxisFromPlacement(placement) { return ["top", "bottom"].indexOf(placement) >= 0 ? "x" : "y"; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/within.js +// node_modules/@popperjs/core/lib/utils/within.js function within(min2, value, max2) { return max(min2, min(value, max2)); } @@ -407,7 +406,7 @@ function withinMaxClamp(min2, value, max2) { return v > max2 ? max2 : v; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js +// node_modules/@popperjs/core/lib/utils/getFreshSideObject.js function getFreshSideObject() { return { top: 0, @@ -417,12 +416,12 @@ function getFreshSideObject() { }; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js +// node_modules/@popperjs/core/lib/utils/mergePaddingObject.js function mergePaddingObject(paddingObject) { return Object.assign({}, getFreshSideObject(), paddingObject); } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/expandToHashMap.js +// node_modules/@popperjs/core/lib/utils/expandToHashMap.js function expandToHashMap(value, keys) { return keys.reduce(function(hashMap, key) { hashMap[key] = value; @@ -430,7 +429,7 @@ function expandToHashMap(value, keys) { }, {}); } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/modifiers/arrow.js +// node_modules/@popperjs/core/lib/modifiers/arrow.js var toPaddingObject = function toPaddingObject2(padding, state) { padding = typeof padding === "function" ? padding(Object.assign({}, state.rects, { placement: state.placement @@ -500,12 +499,12 @@ var arrow_default = { requiresIfExists: ["preventOverflow"] }; -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/getVariation.js +// node_modules/@popperjs/core/lib/utils/getVariation.js function getVariation(placement) { return placement.split("-")[1]; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/modifiers/computeStyles.js +// node_modules/@popperjs/core/lib/modifiers/computeStyles.js var unsetSides = { top: "auto", right: "auto", @@ -553,13 +552,13 @@ function mapToStyles(_ref2) { offsetParent = offsetParent; if (placement === top || (placement === left || placement === right) && variation === end) { sideY = bottom; - var offsetY = isFixed && win.visualViewport ? win.visualViewport.height : offsetParent[heightProp]; + var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : offsetParent[heightProp]; y -= offsetY - popperRect.height; y *= gpuAcceleration ? 1 : -1; } if (placement === left || (placement === top || placement === bottom) && variation === end) { sideX = right; - var offsetX = isFixed && win.visualViewport ? win.visualViewport.width : offsetParent[widthProp]; + var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : offsetParent[widthProp]; x -= offsetX - popperRect.width; x *= gpuAcceleration ? 1 : -1; } @@ -629,7 +628,7 @@ var computeStyles_default = { data: {} }; -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/modifiers/eventListeners.js +// node_modules/@popperjs/core/lib/modifiers/eventListeners.js var passive = { passive: true }; @@ -667,7 +666,7 @@ var eventListeners_default = { data: {} }; -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js +// node_modules/@popperjs/core/lib/utils/getOppositePlacement.js var hash = { left: "right", right: "left", @@ -680,7 +679,7 @@ function getOppositePlacement(placement) { }); } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js +// node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js var hash2 = { start: "end", end: "start" @@ -691,7 +690,7 @@ function getOppositeVariationPlacement(placement) { }); } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js +// node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js function getWindowScroll(node) { var win = getWindow(node); var scrollLeft = win.pageXOffset; @@ -702,13 +701,13 @@ function getWindowScroll(node) { }; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js +// node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js function getWindowScrollBarX(element) { return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js -function getViewportRect(element) { +// node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js +function getViewportRect(element, strategy) { var win = getWindow(element); var html = getDocumentElement(element); var visualViewport = win.visualViewport; @@ -719,7 +718,8 @@ function getViewportRect(element) { if (visualViewport) { width = visualViewport.width; height = visualViewport.height; - if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) { + var layoutViewport = isLayoutViewport(); + if (layoutViewport || !layoutViewport && strategy === "fixed") { x = visualViewport.offsetLeft; y = visualViewport.offsetTop; } @@ -732,7 +732,7 @@ function getViewportRect(element) { }; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js +// node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js function getDocumentRect(element) { var _element$ownerDocumen; var html = getDocumentElement(element); @@ -753,13 +753,13 @@ function getDocumentRect(element) { }; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js +// node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js function isScrollParent(element) { var _getComputedStyle = getComputedStyle(element), overflow = _getComputedStyle.overflow, overflowX = _getComputedStyle.overflowX, overflowY = _getComputedStyle.overflowY; return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX); } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js +// node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js function getScrollParent(node) { if (["html", "body", "#document"].indexOf(getNodeName(node)) >= 0) { return node.ownerDocument.body; @@ -770,7 +770,7 @@ function getScrollParent(node) { return getScrollParent(getParentNode(node)); } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js +// node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js function listScrollParents(element, list) { var _element$ownerDocumen; if (list === void 0) { @@ -784,7 +784,7 @@ function listScrollParents(element, list) { return isBody ? updatedList : updatedList.concat(listScrollParents(getParentNode(target))); } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/rectToClientRect.js +// node_modules/@popperjs/core/lib/utils/rectToClientRect.js function rectToClientRect(rect) { return Object.assign({}, rect, { left: rect.x, @@ -794,9 +794,9 @@ function rectToClientRect(rect) { }); } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js -function getInnerBoundingClientRect(element) { - var rect = getBoundingClientRect(element); +// node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js +function getInnerBoundingClientRect(element, strategy) { + var rect = getBoundingClientRect(element, false, strategy === "fixed"); rect.top = rect.top + element.clientTop; rect.left = rect.left + element.clientLeft; rect.bottom = rect.top + element.clientHeight; @@ -807,8 +807,8 @@ function getInnerBoundingClientRect(element) { rect.y = rect.top; return rect; } -function getClientRectFromMixedType(element, clippingParent) { - return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element))); +function getClientRectFromMixedType(element, clippingParent, strategy) { + return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element))); } function getClippingParents(element) { var clippingParents2 = listScrollParents(getParentNode(element)); @@ -821,18 +821,18 @@ function getClippingParents(element) { return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== "body"; }); } -function getClippingRect(element, boundary, rootBoundary) { +function getClippingRect(element, boundary, rootBoundary, strategy) { var mainClippingParents = boundary === "clippingParents" ? getClippingParents(element) : [].concat(boundary); var clippingParents2 = [].concat(mainClippingParents, [rootBoundary]); var firstClippingParent = clippingParents2[0]; var clippingRect = clippingParents2.reduce(function(accRect, clippingParent) { - var rect = getClientRectFromMixedType(element, clippingParent); + var rect = getClientRectFromMixedType(element, clippingParent, strategy); accRect.top = max(rect.top, accRect.top); accRect.right = min(rect.right, accRect.right); accRect.bottom = min(rect.bottom, accRect.bottom); accRect.left = max(rect.left, accRect.left); return accRect; - }, getClientRectFromMixedType(element, firstClippingParent)); + }, getClientRectFromMixedType(element, firstClippingParent, strategy)); clippingRect.width = clippingRect.right - clippingRect.left; clippingRect.height = clippingRect.bottom - clippingRect.top; clippingRect.x = clippingRect.left; @@ -840,7 +840,7 @@ function getClippingRect(element, boundary, rootBoundary) { return clippingRect; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/computeOffsets.js +// node_modules/@popperjs/core/lib/utils/computeOffsets.js function computeOffsets(_ref) { var reference2 = _ref.reference, element = _ref.element, placement = _ref.placement; var basePlacement = placement ? getBasePlacement(placement) : null; @@ -895,17 +895,17 @@ function computeOffsets(_ref) { return offsets; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/detectOverflow.js +// node_modules/@popperjs/core/lib/utils/detectOverflow.js function detectOverflow(state, options) { if (options === void 0) { options = {}; } - var _options = options, _options$placement = _options.placement, placement = _options$placement === void 0 ? state.placement : _options$placement, _options$boundary = _options.boundary, boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, _options$rootBoundary = _options.rootBoundary, rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, _options$elementConte = _options.elementContext, elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, _options$altBoundary = _options.altBoundary, altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, _options$padding = _options.padding, padding = _options$padding === void 0 ? 0 : _options$padding; + var _options = options, _options$placement = _options.placement, placement = _options$placement === void 0 ? state.placement : _options$placement, _options$strategy = _options.strategy, strategy = _options$strategy === void 0 ? state.strategy : _options$strategy, _options$boundary = _options.boundary, boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, _options$rootBoundary = _options.rootBoundary, rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, _options$elementConte = _options.elementContext, elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, _options$altBoundary = _options.altBoundary, altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, _options$padding = _options.padding, padding = _options$padding === void 0 ? 0 : _options$padding; var paddingObject = mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements)); var altContext = elementContext === popper ? reference : popper; var popperRect = state.rects.popper; var element = state.elements[altBoundary ? altContext : elementContext]; - var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary); + var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy); var referenceClientRect = getBoundingClientRect(state.elements.reference); var popperOffsets2 = computeOffsets({ reference: referenceClientRect, @@ -933,7 +933,7 @@ function detectOverflow(state, options) { return overflowOffsets; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js +// node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js function computeAutoPlacement(state, options) { if (options === void 0) { options = {}; @@ -966,7 +966,7 @@ function computeAutoPlacement(state, options) { }); } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/modifiers/flip.js +// node_modules/@popperjs/core/lib/modifiers/flip.js function getExpandedFallbackPlacements(placement) { if (getBasePlacement(placement) === auto) { return []; @@ -1072,7 +1072,7 @@ var flip_default = { } }; -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/modifiers/hide.js +// node_modules/@popperjs/core/lib/modifiers/hide.js function getSideOffsets(overflow, rect, preventedOffsets) { if (preventedOffsets === void 0) { preventedOffsets = { @@ -1126,7 +1126,7 @@ var hide_default = { fn: hide }; -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/modifiers/offset.js +// node_modules/@popperjs/core/lib/modifiers/offset.js function distanceAndSkiddingToXY(placement, rects, offset2) { var basePlacement = getBasePlacement(placement); var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1; @@ -1165,7 +1165,7 @@ var offset_default = { fn: offset }; -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js +// node_modules/@popperjs/core/lib/modifiers/popperOffsets.js function popperOffsets(_ref) { var state = _ref.state, name = _ref.name; state.modifiersData[name] = computeOffsets({ @@ -1183,12 +1183,12 @@ var popperOffsets_default = { data: {} }; -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/getAltAxis.js +// node_modules/@popperjs/core/lib/utils/getAltAxis.js function getAltAxis(axis) { return axis === "x" ? "y" : "x"; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js +// node_modules/@popperjs/core/lib/modifiers/preventOverflow.js function preventOverflow(_ref) { var state = _ref.state, options = _ref.options, name = _ref.name; var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, padding = options.padding, _options$tether = options.tether, tether = _options$tether === void 0 ? true : _options$tether, _options$tetherOffset = options.tetherOffset, tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset; @@ -1281,7 +1281,7 @@ var preventOverflow_default = { requiresIfExists: ["offset"] }; -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js +// node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js function getHTMLElementScroll(element) { return { scrollLeft: element.scrollLeft, @@ -1289,7 +1289,7 @@ function getHTMLElementScroll(element) { }; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js +// node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js function getNodeScroll(node) { if (node === getWindow(node) || !isHTMLElement(node)) { return getWindowScroll(node); @@ -1298,7 +1298,7 @@ function getNodeScroll(node) { } } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js +// node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js function isElementScaled(element) { var rect = element.getBoundingClientRect(); var scaleX = round(rect.width) / element.offsetWidth || 1; @@ -1312,7 +1312,7 @@ function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { var isOffsetParentAnElement = isHTMLElement(offsetParent); var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent); var documentElement = getDocumentElement(offsetParent); - var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled); + var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed); var scroll = { scrollLeft: 0, scrollTop: 0 @@ -1341,7 +1341,7 @@ function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { }; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/orderModifiers.js +// node_modules/@popperjs/core/lib/utils/orderModifiers.js function order(modifiers) { var map = new Map(); var visited = new Set(); @@ -1378,15 +1378,15 @@ function orderModifiers(modifiers) { }, []); } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/debounce.js +// node_modules/@popperjs/core/lib/utils/debounce.js function debounce(fn2) { var pending; return function() { if (!pending) { - pending = new Promise(function(resolve2) { + pending = new Promise(function(resolve) { Promise.resolve().then(function() { pending = void 0; - resolve2(fn2()); + resolve(fn2()); }); }); } @@ -1394,7 +1394,7 @@ function debounce(fn2) { }; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/format.js +// node_modules/@popperjs/core/lib/utils/format.js function format(str) { for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; @@ -1404,7 +1404,7 @@ function format(str) { }, str); } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/validateModifiers.js +// node_modules/@popperjs/core/lib/utils/validateModifiers.js var INVALID_MODIFIER_ERROR = 'Popper: modifier "%s" provided an invalid %s property, expected %s but got %s'; var MISSING_DEPENDENCY_ERROR = 'Popper: modifier "%s" requires "%s", but "%s" modifier is not available'; var VALID_PROPERTIES = ["name", "enabled", "phase", "fn", "effect", "requires", "options"]; @@ -1468,7 +1468,7 @@ function validateModifiers(modifiers) { }); } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/uniqueBy.js +// node_modules/@popperjs/core/lib/utils/uniqueBy.js function uniqueBy(arr, fn2) { var identifiers = new Set(); return arr.filter(function(item) { @@ -1480,7 +1480,7 @@ function uniqueBy(arr, fn2) { }); } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/mergeByName.js +// node_modules/@popperjs/core/lib/utils/mergeByName.js function mergeByName(modifiers) { var merged = modifiers.reduce(function(merged2, current) { var existing = merged2[current.name]; @@ -1495,7 +1495,7 @@ function mergeByName(modifiers) { }); } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/createPopper.js +// node_modules/@popperjs/core/lib/createPopper.js var INVALID_ELEMENT_ERROR = "Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element."; var INFINITE_LOOP_ERROR = "Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash."; var DEFAULT_OPTIONS = { @@ -1619,9 +1619,9 @@ function popperGenerator(generatorOptions) { } }, update: debounce(function() { - return new Promise(function(resolve2) { + return new Promise(function(resolve) { instance.forceUpdate(); - resolve2(state); + resolve(state); }); }), destroy: function destroy() { @@ -1666,7 +1666,7 @@ function popperGenerator(generatorOptions) { }; } -// node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/popper.js +// node_modules/@popperjs/core/lib/popper.js var defaultModifiers = [eventListeners_default, popperOffsets_default, computeStyles_default, applyStyles_default, offset_default, flip_default, preventOverflow_default, arrow_default, hide_default]; var createPopper = /* @__PURE__ */ popperGenerator({ defaultModifiers @@ -1733,8 +1733,8 @@ var Suggest = class { const normalizedIndex = wrapAround(selectedIndex, this.suggestions.length); const prevSelectedSuggestion = this.suggestions[this.selectedItem]; const selectedSuggestion = this.suggestions[normalizedIndex]; - prevSelectedSuggestion == null ? void 0 : prevSelectedSuggestion.removeClass("is-selected"); - selectedSuggestion == null ? void 0 : selectedSuggestion.addClass("is-selected"); + prevSelectedSuggestion?.removeClass("is-selected"); + selectedSuggestion?.addClass("is-selected"); this.selectedItem = normalizedIndex; if (scrollIntoView) { selectedSuggestion.scrollIntoView(false); @@ -1742,8 +1742,7 @@ var Suggest = class { } }; var TextInputSuggest = class { - constructor(app, inputEl) { - this.app = app; + constructor(inputEl) { this.inputEl = inputEl; this.scope = new import_obsidian2.Scope(); this.suggestEl = createDiv("suggestion-container"); @@ -1766,13 +1765,13 @@ var TextInputSuggest = class { } if (suggestions.length > 0) { this.suggest.setSuggestions(suggestions); - this.open(this.app.dom.appContainerEl, this.inputEl); + this.open(app.dom.appContainerEl, this.inputEl); } else { this.close(); } } open(container, inputEl) { - this.app.keymap.pushScope(this.scope); + app.keymap.pushScope(this.scope); container.appendChild(this.suggestEl); this.popper = createPopper(inputEl, this.suggestEl, { placement: "bottom-start", @@ -1795,7 +1794,7 @@ var TextInputSuggest = class { }); } close() { - this.app.keymap.popScope(this.scope); + app.keymap.popScope(this.scope); this.suggest.setSuggestions([]); if (this.popper) this.popper.destroy(); @@ -1806,7 +1805,7 @@ var TextInputSuggest = class { // src/settings/suggesters/FolderSuggester.ts var FolderSuggest = class extends TextInputSuggest { getSuggestions(inputStr) { - const abstractFiles = this.app.vault.getAllLoadedFiles(); + const abstractFiles = app.vault.getAllLoadedFiles(); const folders = []; const lowerCaseInputStr = inputStr.toLowerCase(); abstractFiles.forEach((folder) => { @@ -1832,7 +1831,7 @@ var import_obsidian5 = __toModule(require("obsidian")); // src/utils/Utils.ts var import_obsidian4 = __toModule(require("obsidian")); function delay(ms) { - return new Promise((resolve2) => setTimeout(resolve2, ms)); + return new Promise((resolve) => setTimeout(resolve, ms)); } function escape_RegExp(str) { return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); @@ -1840,7 +1839,7 @@ function escape_RegExp(str) { function generate_dynamic_command_regex() { return /(<%(?:-|_)?\s*[*~]{0,1})\+((?:.|\s)*?%>)/g; } -function resolve_tfolder(app, folder_str) { +function resolve_tfolder(folder_str) { folder_str = (0, import_obsidian4.normalizePath)(folder_str); const folder = app.vault.getAbstractFileByPath(folder_str); if (!folder) { @@ -1851,7 +1850,7 @@ function resolve_tfolder(app, folder_str) { } return folder; } -function resolve_tfile(app, file_str) { +function resolve_tfile(file_str) { file_str = (0, import_obsidian4.normalizePath)(file_str); const file = app.vault.getAbstractFileByPath(file_str); if (!file) { @@ -1862,8 +1861,8 @@ function resolve_tfile(app, file_str) { } return file; } -function get_tfiles_from_folder(app, folder_str) { - const folder = resolve_tfolder(app, folder_str); +function get_tfiles_from_folder(folder_str) { + const folder = resolve_tfolder(folder_str); const files = []; import_obsidian4.Vault.recurseChildren(folder, (file) => { if (file instanceof import_obsidian4.TFile) { @@ -1891,9 +1890,8 @@ var FileSuggestMode; FileSuggestMode2[FileSuggestMode2["ScriptFiles"] = 1] = "ScriptFiles"; })(FileSuggestMode || (FileSuggestMode = {})); var FileSuggest = class extends TextInputSuggest { - constructor(app, inputEl, plugin, mode) { - super(app, inputEl); - this.app = app; + constructor(inputEl, plugin, mode) { + super(inputEl); this.inputEl = inputEl; this.plugin = plugin; this.mode = mode; @@ -1915,7 +1913,7 @@ var FileSuggest = class extends TextInputSuggest { } } getSuggestions(input_str) { - const all_files = errorWrapperSync(() => get_tfiles_from_folder(this.app, this.get_folder(this.mode)), this.get_error_msg(this.mode)); + const all_files = errorWrapperSync(() => get_tfiles_from_folder(this.get_folder(this.mode)), this.get_error_msg(this.mode)); if (!all_files) { return []; } @@ -1952,12 +1950,12 @@ var DEFAULT_SETTINGS = { folder_templates: [{ folder: "", template: "" }], syntax_highlighting: true, enabled_templates_hotkeys: [""], - startup_templates: [""] + startup_templates: [""], + enable_ribbon_icon: true }; var TemplaterSettingTab = class extends import_obsidian6.PluginSettingTab { - constructor(app, plugin) { + constructor(plugin) { super(app, plugin); - this.app = app; this.plugin = plugin; } display() { @@ -1968,6 +1966,7 @@ var TemplaterSettingTab = class extends import_obsidian6.PluginSettingTab { this.add_syntax_highlighting_setting(); this.add_auto_jump_to_cursor(); this.add_trigger_on_new_file_creation_setting(); + this.add_ribbon_icon_setting(); this.add_templates_hotkeys_setting(); if (this.plugin.settings.trigger_on_file_creation) { this.add_folder_templates_setting(); @@ -1975,13 +1974,14 @@ var TemplaterSettingTab = class extends import_obsidian6.PluginSettingTab { this.add_startup_templates_setting(); this.add_user_script_functions_setting(); this.add_user_system_command_functions_setting(); + this.add_donating_setting(); } add_general_setting_header() { this.containerEl.createEl("h2", { text: "General Settings" }); } add_template_folder_setting() { new import_obsidian6.Setting(this.containerEl).setName("Template folder location").setDesc("Files in this folder will be available as templates.").addSearch((cb) => { - new FolderSuggest(this.app, cb.inputEl); + new FolderSuggest(cb.inputEl); cb.setPlaceholder("Example: folder1/folder2").setValue(this.plugin.settings.templates_folder).onChange((new_folder) => { this.plugin.settings.templates_folder = new_folder; this.plugin.save_settings(); @@ -2032,6 +2032,23 @@ var TemplaterSettingTab = class extends import_obsidian6.PluginSettingTab { }); }); } + add_ribbon_icon_setting() { + const desc = document.createDocumentFragment(); + desc.append("Show Templater icon in sidebar ribbon, allowing you to quickly use templates anywhere."); + new import_obsidian6.Setting(this.containerEl).setName("Show icon in sidebar").setDesc(desc).addToggle((toggle) => { + toggle.setValue(this.plugin.settings.enable_ribbon_icon).onChange((enable_ribbon_icon) => { + this.plugin.settings.enable_ribbon_icon = enable_ribbon_icon; + this.plugin.save_settings(); + if (this.plugin.settings.enable_ribbon_icon) { + this.plugin.addRibbonIcon("templater-icon", "Templater", async () => { + this.plugin.fuzzy_suggester.insert_template(); + }).setAttribute("id", "rb-templater-icon"); + } else { + document.getElementById("rb-templater-icon")?.remove(); + } + }); + }); + } add_templates_hotkeys_setting() { this.containerEl.createEl("h2", { text: "Template Hotkeys" }); const desc = document.createDocumentFragment(); @@ -2039,7 +2056,7 @@ var TemplaterSettingTab = class extends import_obsidian6.PluginSettingTab { new import_obsidian6.Setting(this.containerEl).setDesc(desc); this.plugin.settings.enabled_templates_hotkeys.forEach((template, index) => { const s = new import_obsidian6.Setting(this.containerEl).addSearch((cb) => { - new FileSuggest(this.app, cb.inputEl, this.plugin, FileSuggestMode.TemplateFiles); + new FileSuggest(cb.inputEl, this.plugin, FileSuggestMode.TemplateFiles); cb.setPlaceholder("Example: folder1/template_file").setValue(template).onChange((new_template) => { if (new_template && this.plugin.settings.enabled_templates_hotkeys.contains(new_template)) { log_error(new TemplaterError("This template is already bound to a hotkey")); @@ -2052,8 +2069,8 @@ var TemplaterSettingTab = class extends import_obsidian6.PluginSettingTab { cb.containerEl.addClass("templater_search"); }).addExtraButton((cb) => { cb.setIcon("any-key").setTooltip("Configure Hotkey").onClick(() => { - this.app.setting.openTabById("hotkeys"); - const tab = this.app.setting.activeTab; + app.setting.openTabById("hotkeys"); + const tab = app.setting.activeTab; tab.searchInputEl.value = "Templater: Insert"; tab.updateHotkeyVisibility(); }); @@ -2116,7 +2133,7 @@ var TemplaterSettingTab = class extends import_obsidian6.PluginSettingTab { }); this.plugin.settings.folder_templates.forEach((folder_template, index) => { const s = new import_obsidian6.Setting(this.containerEl).addSearch((cb) => { - new FolderSuggest(this.app, cb.inputEl); + new FolderSuggest(cb.inputEl); cb.setPlaceholder("Folder").setValue(folder_template.folder).onChange((new_folder) => { if (new_folder && this.plugin.settings.folder_templates.some((e) => e.folder == new_folder)) { log_error(new TemplaterError("This folder already has a template associated with it")); @@ -2127,7 +2144,7 @@ var TemplaterSettingTab = class extends import_obsidian6.PluginSettingTab { }); cb.containerEl.addClass("templater_search"); }).addSearch((cb) => { - new FileSuggest(this.app, cb.inputEl, this.plugin, FileSuggestMode.TemplateFiles); + new FileSuggest(cb.inputEl, this.plugin, FileSuggestMode.TemplateFiles); cb.setPlaceholder("Template").setValue(folder_template.template).onChange((new_template) => { this.plugin.settings.folder_templates[index].template = new_template; this.plugin.save_settings(); @@ -2162,7 +2179,7 @@ var TemplaterSettingTab = class extends import_obsidian6.PluginSettingTab { new import_obsidian6.Setting(this.containerEl).setDesc(desc); this.plugin.settings.startup_templates.forEach((template, index) => { const s = new import_obsidian6.Setting(this.containerEl).addSearch((cb) => { - new FileSuggest(this.app, cb.inputEl, this.plugin, FileSuggestMode.TemplateFiles); + new FileSuggest(cb.inputEl, this.plugin, FileSuggestMode.TemplateFiles); cb.setPlaceholder("Example: folder1/template_file").setValue(template).onChange((new_template) => { if (new_template && this.plugin.settings.startup_templates.contains(new_template)) { log_error(new TemplaterError("This startup template already exist")); @@ -2197,7 +2214,7 @@ var TemplaterSettingTab = class extends import_obsidian6.PluginSettingTab { text: "documentation" }), " for more information."); new import_obsidian6.Setting(this.containerEl).setName("Script files folder location").setDesc(desc).addSearch((cb) => { - new FolderSuggest(this.app, cb.inputEl); + new FolderSuggest(cb.inputEl); cb.setPlaceholder("Example: folder1/folder2").setValue(this.plugin.settings.user_scripts_folder).onChange((new_folder) => { this.plugin.settings.user_scripts_folder = new_folder; this.plugin.save_settings(); @@ -2209,7 +2226,7 @@ var TemplaterSettingTab = class extends import_obsidian6.PluginSettingTab { if (!this.plugin.settings.user_scripts_folder) { name = "No User Scripts folder set"; } else { - const files = errorWrapperSync(() => get_tfiles_from_folder(this.app, this.plugin.settings.user_scripts_folder), `User Scripts folder doesn't exist`); + const files = errorWrapperSync(() => get_tfiles_from_folder(this.plugin.settings.user_scripts_folder), `User Scripts folder doesn't exist`); if (!files || files.length === 0) { name = "No User Scripts detected"; } else { @@ -2323,6 +2340,23 @@ var TemplaterSettingTab = class extends import_obsidian6.PluginSettingTab { div.appendChild(this.containerEl.lastChild); } } + add_donating_setting() { + const s = new import_obsidian6.Setting(this.containerEl).setName("Donate").setDesc("If you like this Plugin, consider donating to support continued development."); + const a1 = document.createElement("a"); + a1.setAttribute("href", "https://github.com/sponsors/silentvoid13"); + a1.addClass("templater_donating"); + const img1 = document.createElement("img"); + img1.src = "https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86"; + a1.appendChild(img1); + const a2 = document.createElement("a"); + a2.setAttribute("href", "https://www.paypal.com/donate?hosted_button_id=U2SRGAFYXT32Q"); + a2.addClass("templater_donating"); + const img2 = document.createElement("img"); + img2.src = "https://img.shields.io/badge/paypal-silentvoid13-yellow?style=social&logo=paypal"; + a2.appendChild(img2); + s.settingEl.appendChild(a1); + s.settingEl.appendChild(a2); + } }; // src/handlers/FuzzySuggester.ts @@ -2333,17 +2367,16 @@ var OpenMode; OpenMode2[OpenMode2["CreateNoteTemplate"] = 1] = "CreateNoteTemplate"; })(OpenMode || (OpenMode = {})); var FuzzySuggester = class extends import_obsidian7.FuzzySuggestModal { - constructor(app, plugin) { + constructor(plugin) { super(app); - this.app = app; this.plugin = plugin; this.setPlaceholder("Type name of a template..."); } getItems() { if (!this.plugin.settings.templates_folder) { - return this.app.vault.getMarkdownFiles(); + return app.vault.getMarkdownFiles(); } - const files = errorWrapperSync(() => get_tfiles_from_folder(this.app, this.plugin.settings.templates_folder), `Couldn't retrieve template files from templates folder ${this.plugin.settings.templates_folder}`); + const files = errorWrapperSync(() => get_tfiles_from_folder(this.plugin.settings.templates_folder), `Couldn't retrieve template files from templates folder ${this.plugin.settings.templates_folder}`); if (!files) { return []; } @@ -2385,12 +2418,11 @@ var UNSUPPORTED_MOBILE_TEMPLATE = "Error_MobileUnsupportedTemplate"; var ICON_DATA = ``; // src/core/Templater.ts -var import_obsidian14 = __toModule(require("obsidian")); +var import_obsidian13 = __toModule(require("obsidian")); // src/core/functions/internal_functions/InternalModule.ts var InternalModule = class { - constructor(app, plugin) { - this.app = app; + constructor(plugin) { this.plugin = plugin; this.static_functions = new Map(); this.dynamic_functions = new Map(); @@ -2398,18 +2430,17 @@ var InternalModule = class { getName() { return this.name; } - init() { - return __async(this, null, function* () { - yield this.create_static_templates(); - this.static_object = Object.fromEntries(this.static_functions); - }); + async init() { + await this.create_static_templates(); + this.static_object = Object.fromEntries(this.static_functions); } - generate_object(new_config) { - return __async(this, null, function* () { - this.config = new_config; - yield this.create_dynamic_templates(); - return __spreadValues(__spreadValues({}, this.static_object), Object.fromEntries(this.dynamic_functions)); - }); + async generate_object(new_config) { + this.config = new_config; + await this.create_dynamic_templates(); + return { + ...this.static_object, + ...Object.fromEntries(this.dynamic_functions) + }; } }; @@ -2419,17 +2450,13 @@ var InternalModuleDate = class extends InternalModule { super(...arguments); this.name = "date"; } - create_static_templates() { - return __async(this, null, function* () { - this.static_functions.set("now", this.generate_now()); - this.static_functions.set("tomorrow", this.generate_tomorrow()); - this.static_functions.set("weekday", this.generate_weekday()); - this.static_functions.set("yesterday", this.generate_yesterday()); - }); + async create_static_templates() { + this.static_functions.set("now", this.generate_now()); + this.static_functions.set("tomorrow", this.generate_tomorrow()); + this.static_functions.set("weekday", this.generate_weekday()); + this.static_functions.set("yesterday", this.generate_yesterday()); } - create_dynamic_templates() { - return __async(this, null, function* () { - }); + async create_dynamic_templates() { } generate_now() { return (format2 = "YYYY-MM-DD", offset2, reference2, reference_format) => { @@ -2476,46 +2503,40 @@ var InternalModuleFile = class extends InternalModule { this.create_new_depth = 0; this.linkpath_regex = new RegExp("^\\[\\[(.*)\\]\\]$"); } - create_static_templates() { - return __async(this, null, function* () { - this.static_functions.set("creation_date", this.generate_creation_date()); - this.static_functions.set("create_new", this.generate_create_new()); - this.static_functions.set("cursor", this.generate_cursor()); - this.static_functions.set("cursor_append", this.generate_cursor_append()); - this.static_functions.set("exists", this.generate_exists()); - this.static_functions.set("find_tfile", this.generate_find_tfile()); - this.static_functions.set("folder", this.generate_folder()); - this.static_functions.set("include", this.generate_include()); - this.static_functions.set("last_modified_date", this.generate_last_modified_date()); - this.static_functions.set("move", this.generate_move()); - this.static_functions.set("path", this.generate_path()); - this.static_functions.set("rename", this.generate_rename()); - this.static_functions.set("selection", this.generate_selection()); - }); + async create_static_templates() { + this.static_functions.set("creation_date", this.generate_creation_date()); + this.static_functions.set("create_new", this.generate_create_new()); + this.static_functions.set("cursor", this.generate_cursor()); + this.static_functions.set("cursor_append", this.generate_cursor_append()); + this.static_functions.set("exists", this.generate_exists()); + this.static_functions.set("find_tfile", this.generate_find_tfile()); + this.static_functions.set("folder", this.generate_folder()); + this.static_functions.set("include", this.generate_include()); + this.static_functions.set("last_modified_date", this.generate_last_modified_date()); + this.static_functions.set("move", this.generate_move()); + this.static_functions.set("path", this.generate_path()); + this.static_functions.set("rename", this.generate_rename()); + this.static_functions.set("selection", this.generate_selection()); } - create_dynamic_templates() { - return __async(this, null, function* () { - this.dynamic_functions.set("content", yield this.generate_content()); - this.dynamic_functions.set("tags", this.generate_tags()); - this.dynamic_functions.set("title", this.generate_title()); - }); + async create_dynamic_templates() { + this.dynamic_functions.set("content", await this.generate_content()); + this.dynamic_functions.set("tags", this.generate_tags()); + this.dynamic_functions.set("title", this.generate_title()); } - generate_content() { - return __async(this, null, function* () { - return yield this.app.vault.read(this.config.target_file); - }); + async generate_content() { + return await app.vault.read(this.config.target_file); } generate_create_new() { - return (template, filename, open_new = false, folder) => __async(this, null, function* () { + return async (template, filename, open_new = false, folder) => { this.create_new_depth += 1; if (this.create_new_depth > DEPTH_LIMIT) { this.create_new_depth = 0; throw new TemplaterError("Reached create_new depth limit (max = 10)"); } - const new_file = yield this.plugin.templater.create_new_note_from_template(template, folder, filename, open_new); + const new_file = await this.plugin.templater.create_new_note_from_template(template, folder, filename, open_new); this.create_new_depth -= 1; return new_file; - }); + }; } generate_creation_date() { return (format2 = "YYYY-MM-DD HH:mm") => { @@ -2524,12 +2545,12 @@ var InternalModuleFile = class extends InternalModule { } generate_cursor() { return (order2) => { - return `<% tp.file.cursor(${order2 != null ? order2 : ""}) %>`; + return `<% tp.file.cursor(${order2 ?? ""}) %>`; }; } generate_cursor_append() { return (content) => { - const active_view = this.app.workspace.getActiveViewOfType(import_obsidian8.MarkdownView); + const active_view = app.workspace.getActiveViewOfType(import_obsidian8.MarkdownView); if (active_view === null) { log_error(new TemplaterError("No active view, can't append to cursor.")); return; @@ -2541,19 +2562,15 @@ var InternalModuleFile = class extends InternalModule { }; } generate_exists() { - return (filename) => { - let match; - if ((match = this.linkpath_regex.exec(filename)) !== null) { - filename = match[1]; - } - const file = this.app.metadataCache.getFirstLinkpathDest(filename, ""); - return file != null; + return async (filename) => { + const path = (0, import_obsidian8.normalizePath)(filename); + return await app.vault.exists(path); }; } generate_find_tfile() { return (filename) => { const path = (0, import_obsidian8.normalizePath)(filename); - return this.app.metadataCache.getFirstLinkpathDest(path, ""); + return app.metadataCache.getFirstLinkpathDest(path, ""); }; } generate_folder() { @@ -2569,8 +2586,7 @@ var InternalModuleFile = class extends InternalModule { }; } generate_include() { - return (include_link) => __async(this, null, function* () { - var _a; + return async (include_link) => { this.include_depth += 1; if (this.include_depth > DEPTH_LIMIT) { this.include_depth -= 1; @@ -2578,7 +2594,7 @@ var InternalModuleFile = class extends InternalModule { } let inc_file_content; if (include_link instanceof import_obsidian8.TFile) { - inc_file_content = yield this.app.vault.read(include_link); + inc_file_content = await app.vault.read(include_link); } else { let match; if ((match = this.linkpath_regex.exec(include_link)) === null) { @@ -2586,31 +2602,31 @@ var InternalModuleFile = class extends InternalModule { throw new TemplaterError("Invalid file format, provide an obsidian link between quotes."); } const { path, subpath } = (0, import_obsidian8.parseLinktext)(match[1]); - const inc_file = this.app.metadataCache.getFirstLinkpathDest(path, ""); + const inc_file = app.metadataCache.getFirstLinkpathDest(path, ""); if (!inc_file) { this.include_depth -= 1; throw new TemplaterError(`File ${include_link} doesn't exist`); } - inc_file_content = yield this.app.vault.read(inc_file); + inc_file_content = await app.vault.read(inc_file); if (subpath) { - const cache = this.app.metadataCache.getFileCache(inc_file); + const cache = app.metadataCache.getFileCache(inc_file); if (cache) { const result = (0, import_obsidian8.resolveSubpath)(cache, subpath); if (result) { - inc_file_content = inc_file_content.slice(result.start.offset, (_a = result.end) == null ? void 0 : _a.offset); + inc_file_content = inc_file_content.slice(result.start.offset, result.end?.offset); } } } } try { - const parsed_content = yield this.plugin.templater.parser.parse_commands(inc_file_content, this.plugin.templater.current_functions_object); + const parsed_content = await this.plugin.templater.parser.parse_commands(inc_file_content, this.plugin.templater.current_functions_object); this.include_depth -= 1; return parsed_content; } catch (e) { this.include_depth -= 1; throw e; } - }); + }; } generate_last_modified_date() { return (format2 = "YYYY-MM-DD HH:mm") => { @@ -2618,21 +2634,35 @@ var InternalModuleFile = class extends InternalModule { }; } generate_move() { - return (path) => __async(this, null, function* () { - const new_path = (0, import_obsidian8.normalizePath)(`${path}.${this.config.target_file.extension}`); - yield this.app.fileManager.renameFile(this.config.target_file, new_path); + return async (path, file_to_move) => { + const file = file_to_move || this.config.target_file; + const new_path = (0, import_obsidian8.normalizePath)(`${path}.${file.extension}`); + const dirs = new_path.replace(/\\/g, "/").split("/"); + dirs.pop(); + if (dirs.length) { + const dir = dirs.join("/"); + if (!window.app.vault.getAbstractFileByPath(dir)) { + await window.app.vault.createFolder(dir); + } + } + await app.fileManager.renameFile(file, new_path); return ""; - }); + }; } generate_path() { return (relative = false) => { + let vault_path = ""; if (import_obsidian8.Platform.isMobileApp) { - return UNSUPPORTED_MOBILE_TEMPLATE; + const vault_adapter = app.vault.adapter.fs.uri; + const vault_base = app.vault.adapter.basePath; + vault_path = `${vault_adapter}/${vault_base}`; + } else { + if (app.vault.adapter instanceof import_obsidian8.FileSystemAdapter) { + vault_path = app.vault.adapter.getBasePath(); + } else { + throw new TemplaterError("app.vault is not a FileSystemAdapter instance"); + } } - if (!(this.app.vault.adapter instanceof import_obsidian8.FileSystemAdapter)) { - throw new TemplaterError("app.vault is not a FileSystemAdapter instance"); - } - const vault_path = this.app.vault.adapter.getBasePath(); if (relative) { return this.config.target_file.path; } else { @@ -2641,18 +2671,18 @@ var InternalModuleFile = class extends InternalModule { }; } generate_rename() { - return (new_title) => __async(this, null, function* () { + return async (new_title) => { if (new_title.match(/[\\/:]+/g)) { throw new TemplaterError("File name cannot contain any of these characters: \\ / :"); } const new_path = (0, import_obsidian8.normalizePath)(`${this.config.target_file.parent.path}/${new_title}.${this.config.target_file.extension}`); - yield this.app.fileManager.renameFile(this.config.target_file, new_path); + await app.fileManager.renameFile(this.config.target_file, new_path); return ""; - }); + }; } generate_selection() { return () => { - const active_view = this.app.workspace.getActiveViewOfType(import_obsidian8.MarkdownView); + const active_view = app.workspace.getActiveViewOfType(import_obsidian8.MarkdownView); if (active_view == null) { throw new TemplaterError("Active view is null, can't read selection."); } @@ -2661,8 +2691,11 @@ var InternalModuleFile = class extends InternalModule { }; } generate_tags() { - const cache = this.app.metadataCache.getFileCache(this.config.target_file); - return (0, import_obsidian8.getAllTags)(cache); + const cache = app.metadataCache.getFileCache(this.config.target_file); + if (cache) { + return (0, import_obsidian8.getAllTags)(cache); + } + return null; } generate_title() { return this.config.target_file.basename; @@ -2675,79 +2708,61 @@ var InternalModuleWeb = class extends InternalModule { super(...arguments); this.name = "web"; } - create_static_templates() { - return __async(this, null, function* () { - this.static_functions.set("daily_quote", this.generate_daily_quote()); - this.static_functions.set("daily_picture", this.generate_daily_picture()); - this.static_functions.set("daily_yiyan", this.generate_daily_yiyan()); - this.static_functions.set("daily_weather", this.generate_daily_weather()); - this.static_functions.set("daily_poetry", this.generate_daily_poetry()); - }); + async create_static_templates() { + this.static_functions.set("daily_quote", this.generate_daily_quote()); + this.static_functions.set("random_picture", this.generate_random_picture()); } - create_dynamic_templates() { - return __async(this, null, function* () { - }); + async create_dynamic_templates() { } - getRequest(url, data) { - return __async(this, null, function* () { - const response = yield fetch(url, data); + async getRequest(url) { + try { + const response = await fetch(url); if (!response.ok) { throw new TemplaterError("Error performing GET request"); } return response; - }); + } catch (error) { + throw new TemplaterError("Error performing GET request"); + } } generate_daily_quote() { - return () => __async(this, null, function* () { - const response = yield this.getRequest("https://api.quotable.io/random"); - const json = yield response.json(); - const author = json.author; - const quote = json.content; - const new_content = `> ${quote} -> \u2014 *${author}*`; - return new_content; - }); + return async () => { + try { + const response = await this.getRequest("https://api.quotable.io/random"); + const json = await response.json(); + const author = json.author; + const quote = json.content; + const new_content = `> ${quote} +> \u2014 ${author}`; + return new_content; + } catch (error) { + new TemplaterError("Error generating daily quote"); + return "Error generating daily quote"; + } + }; } - generate_daily_picture() { - return (size, query) => __async(this, null, function* () { - const response = yield this.getRequest(`https://source.unsplash.com/random/${size != null ? size : ""}?${query != null ? query : ""}`); - const url = response.url; - return `![daily_random_picture](${url})`; - }); - } - generate_daily_yiyan() { - return (query) => __async(this, null, function* () { - const response = yield this.getRequest(`https://v1.hitokoto.cn/${query != null ? query : ""}`); - const json = yield response.json(); - const author = json.from; - const quote = json.hitokoto; - const new_content = `> ${quote} -> \u2014 *${author}*`; - return new_content; - }); - } - generate_daily_weather() { - return (city, language, tformat) => __async(this, null, function* () { - const response = yield this.getRequest(`https://wttr.in/${city != null ? city : ""}${tformat != null ? tformat : "?format=%l+%t+%c"}`, { - headers: { - "Accept-Language": language != null ? language : "zh" + generate_random_picture() { + return async (size, query, include_size = false) => { + try { + const response = await this.getRequest(`https://templater-unsplash.fly.dev/${query ? "?q=" + query : ""}`).then((res) => res.json()); + let url = response.full; + if (size && !include_size) { + if (size.includes("x")) { + const [width, height] = size.split("x"); + url = url.concat(`&w=${width}&h=${height}`); + } else { + url = url.concat(`&w=${size}`); + } } - }); - return response.text(); - }); - } - generate_daily_poetry() { - return () => __async(this, null, function* () { - const response = yield this.getRequest("https://v2.jinrishici.com/one.json"); - const json = yield response.json(); - const title = json.data.origin.title; - const author = json.data.origin.author; - const dynasty = json.data.origin.dynasty; - const content = json.data.content; - const new_content = `> ${content} -> \u2014 *${title}\xB7${author}\uFF08${dynasty}\uFF09*`; - return new_content; - }); + if (include_size) { + return `![photo by ${response.photog} on Unsplash|${size}](${url})`; + } + return `![photo by ${response.photog} on Unsplash](${url})`; + } catch (error) { + new TemplaterError("Error generating random picture"); + return "Error generating random picture"; + } + }; } }; @@ -2757,15 +2772,11 @@ var InternalModuleFrontmatter = class extends InternalModule { super(...arguments); this.name = "frontmatter"; } - create_static_templates() { - return __async(this, null, function* () { - }); + async create_static_templates() { } - create_dynamic_templates() { - return __async(this, null, function* () { - const cache = this.app.metadataCache.getFileCache(this.config.target_file); - this.dynamic_functions = new Map(Object.entries((cache == null ? void 0 : cache.frontmatter) || {})); - }); + async create_dynamic_templates() { + const cache = app.metadataCache.getFileCache(this.config.target_file); + this.dynamic_functions = new Map(Object.entries(cache?.frontmatter || {})); } }; @@ -2775,10 +2786,11 @@ var import_obsidian11 = __toModule(require("obsidian")); // src/core/functions/internal_functions/system/PromptModal.ts var import_obsidian9 = __toModule(require("obsidian")); var PromptModal = class extends import_obsidian9.Modal { - constructor(app, prompt_text, default_value) { + constructor(prompt_text, default_value, multi_line) { super(app); this.prompt_text = prompt_text; this.default_value = default_value; + this.multi_line = multi_line; this.submitted = false; } onOpen() { @@ -2788,48 +2800,73 @@ var PromptModal = class extends import_obsidian9.Modal { onClose() { this.contentEl.empty(); if (!this.submitted) { - this.reject(new TemplaterError("Cancelled prompt")); + this.reject(); } } createForm() { - var _a; const div = this.contentEl.createDiv(); div.addClass("templater-prompt-div"); - const form = div.createEl("form"); - form.addClass("templater-prompt-form"); - form.type = "submit"; - form.onsubmit = (e) => { - this.submitted = true; - e.preventDefault(); - this.resolve(this.promptEl.value); - this.close(); - }; - this.promptEl = form.createEl("input"); - this.promptEl.type = "text"; - this.promptEl.placeholder = "Type text here..."; - this.promptEl.value = (_a = this.default_value) != null ? _a : ""; - this.promptEl.addClass("templater-prompt-input"); - this.promptEl.select(); + let textInput; + if (this.multi_line) { + textInput = new import_obsidian9.TextAreaComponent(div); + const buttonDiv = this.contentEl.createDiv(); + buttonDiv.addClass("templater-button-div"); + const submitButton = new import_obsidian9.ButtonComponent(buttonDiv); + submitButton.buttonEl.addClass("mod-cta"); + submitButton.setButtonText("Submit").onClick((evt) => { + this.resolveAndClose(evt); + }); + } else { + textInput = new import_obsidian9.TextComponent(div); + } + this.value = this.default_value ?? ""; + textInput.inputEl.addClass("templater-prompt-input"); + textInput.setPlaceholder("Type text here"); + textInput.setValue(this.value); + textInput.onChange((value) => this.value = value); + textInput.inputEl.addEventListener("keydown", (evt) => this.enterCallback(evt)); } - openAndGetValue(resolve2, reject) { - return __async(this, null, function* () { - this.resolve = resolve2; - this.reject = reject; - this.open(); - }); + enterCallback(evt) { + if (this.multi_line) { + if (import_obsidian9.Platform.isDesktop) { + if (evt.shiftKey && evt.key === "Enter") { + } else if (evt.key === "Enter") { + this.resolveAndClose(evt); + } + } else { + if (evt.key === "Enter") { + evt.preventDefault(); + } + } + } else { + if (evt.key === "Enter") { + this.resolveAndClose(evt); + } + } + } + resolveAndClose(evt) { + this.submitted = true; + evt.preventDefault(); + this.resolve(this.value); + this.close(); + } + async openAndGetValue(resolve, reject) { + this.resolve = resolve; + this.reject = reject; + this.open(); } }; // src/core/functions/internal_functions/system/SuggesterModal.ts var import_obsidian10 = __toModule(require("obsidian")); var SuggesterModal = class extends import_obsidian10.FuzzySuggestModal { - constructor(app, text_items, items, placeholder, limit) { + constructor(text_items, items, placeholder, limit) { super(app); this.text_items = text_items; this.items = items; this.submitted = false; this.setPlaceholder(placeholder); - this.limit = limit; + limit && (this.limit = limit); } getItems() { return this.items; @@ -2853,12 +2890,10 @@ var SuggesterModal = class extends import_obsidian10.FuzzySuggestModal { onChooseItem(item) { this.resolve(item); } - openAndGetValue(resolve2, reject) { - return __async(this, null, function* () { - this.resolve = resolve2; - this.reject = reject; - this.open(); - }); + async openAndGetValue(resolve, reject) { + this.resolve = resolve; + this.reject = reject; + this.open(); } }; @@ -2868,52 +2903,48 @@ var InternalModuleSystem = class extends InternalModule { super(...arguments); this.name = "system"; } - create_static_templates() { - return __async(this, null, function* () { - this.static_functions.set("clipboard", this.generate_clipboard()); - this.static_functions.set("prompt", this.generate_prompt()); - this.static_functions.set("suggester", this.generate_suggester()); - }); + async create_static_templates() { + this.static_functions.set("clipboard", this.generate_clipboard()); + this.static_functions.set("prompt", this.generate_prompt()); + this.static_functions.set("suggester", this.generate_suggester()); } - create_dynamic_templates() { - return __async(this, null, function* () { - }); + async create_dynamic_templates() { } generate_clipboard() { - return () => __async(this, null, function* () { + return async () => { if (import_obsidian11.Platform.isMobileApp) { return UNSUPPORTED_MOBILE_TEMPLATE; } - return yield navigator.clipboard.readText(); - }); + return await navigator.clipboard.readText(); + }; } generate_prompt() { - return (prompt_text, default_value, throw_on_cancel = false) => __async(this, null, function* () { - const prompt = new PromptModal(this.app, prompt_text, default_value); - const promise = new Promise((resolve2, reject) => prompt.openAndGetValue(resolve2, reject)); + return async (prompt_text, default_value, throw_on_cancel = false, multi_line = false) => { + const prompt = new PromptModal(prompt_text, default_value, multi_line); + const promise = new Promise((resolve, reject) => prompt.openAndGetValue(resolve, reject)); try { - return yield promise; + return await promise; } catch (error) { if (throw_on_cancel) { throw error; } return null; } - }); + }; } generate_suggester() { - return (text_items, items, throw_on_cancel = false, placeholder = "", limit) => __async(this, null, function* () { - const suggester = new SuggesterModal(this.app, text_items, items, placeholder, limit); - const promise = new Promise((resolve2, reject) => suggester.openAndGetValue(resolve2, reject)); + return async (text_items, items, throw_on_cancel = false, placeholder = "", limit) => { + const suggester = new SuggesterModal(text_items, items, placeholder, limit); + const promise = new Promise((resolve, reject) => suggester.openAndGetValue(resolve, reject)); try { - return yield promise; + return await promise; } catch (error) { if (throw_on_cancel) { throw error; } return null; } - }); + }; } }; @@ -2923,61 +2954,47 @@ var InternalModuleConfig = class extends InternalModule { super(...arguments); this.name = "config"; } - create_static_templates() { - return __async(this, null, function* () { - }); + async create_static_templates() { } - create_dynamic_templates() { - return __async(this, null, function* () { - }); + async create_dynamic_templates() { } - generate_object(config2) { - return __async(this, null, function* () { - return config2; - }); + async generate_object(config) { + return config; } }; // src/core/functions/internal_functions/InternalFunctions.ts var InternalFunctions = class { - constructor(app, plugin) { - this.app = app; + constructor(plugin) { this.plugin = plugin; this.modules_array = []; - this.modules_array.push(new InternalModuleDate(this.app, this.plugin)); - this.modules_array.push(new InternalModuleFile(this.app, this.plugin)); - this.modules_array.push(new InternalModuleWeb(this.app, this.plugin)); - this.modules_array.push(new InternalModuleFrontmatter(this.app, this.plugin)); - this.modules_array.push(new InternalModuleSystem(this.app, this.plugin)); - this.modules_array.push(new InternalModuleConfig(this.app, this.plugin)); + this.modules_array.push(new InternalModuleDate(this.plugin)); + this.modules_array.push(new InternalModuleFile(this.plugin)); + this.modules_array.push(new InternalModuleWeb(this.plugin)); + this.modules_array.push(new InternalModuleFrontmatter(this.plugin)); + this.modules_array.push(new InternalModuleSystem(this.plugin)); + this.modules_array.push(new InternalModuleConfig(this.plugin)); } - init() { - return __async(this, null, function* () { - for (const mod of this.modules_array) { - yield mod.init(); - } - }); + async init() { + for (const mod of this.modules_array) { + await mod.init(); + } } - generate_object(config2) { - return __async(this, null, function* () { - const internal_functions_object = {}; - for (const mod of this.modules_array) { - internal_functions_object[mod.getName()] = yield mod.generate_object(config2); - } - return internal_functions_object; - }); + async generate_object(config) { + const internal_functions_object = {}; + for (const mod of this.modules_array) { + internal_functions_object[mod.getName()] = await mod.generate_object(config); + } + return internal_functions_object; } }; -// src/core/functions/user_functions/UserFunctions.ts -var import_obsidian13 = __toModule(require("obsidian")); - // src/core/functions/user_functions/UserSystemFunctions.ts var import_child_process = __toModule(require("child_process")); var import_util = __toModule(require("util")); var import_obsidian12 = __toModule(require("obsidian")); var UserSystemFunctions = class { - constructor(app, plugin) { + constructor(plugin) { this.plugin = plugin; if (import_obsidian12.Platform.isMobileApp || !(app.vault.adapter instanceof import_obsidian12.FileSystemAdapter)) { this.cwd = ""; @@ -2986,121 +3003,115 @@ var UserSystemFunctions = class { this.exec_promise = (0, import_util.promisify)(import_child_process.exec); } } - generate_system_functions(config2) { - return __async(this, null, function* () { - const user_system_functions = new Map(); - const internal_functions_object = yield this.plugin.templater.functions_generator.generate_object(config2, FunctionsMode.INTERNAL); - for (const template_pair of this.plugin.settings.templates_pairs) { - const template = template_pair[0]; - let cmd = template_pair[1]; - if (!template || !cmd) { - continue; - } - if (import_obsidian12.Platform.isMobileApp) { - user_system_functions.set(template, () => { - return new Promise((resolve2) => resolve2(UNSUPPORTED_MOBILE_TEMPLATE)); - }); - } else { - cmd = yield this.plugin.templater.parser.parse_commands(cmd, internal_functions_object); - user_system_functions.set(template, (user_args) => __async(this, null, function* () { - const process_env = __spreadValues(__spreadValues({}, process.env), user_args); - const cmd_options = __spreadValues({ - timeout: this.plugin.settings.command_timeout * 1e3, - cwd: this.cwd, - env: process_env - }, this.plugin.settings.shell_path && { - shell: this.plugin.settings.shell_path - }); - try { - const { stdout } = yield this.exec_promise(cmd, cmd_options); - return stdout.trimRight(); - } catch (error) { - throw new TemplaterError(`Error with User Template ${template}`, error); - } - })); - } + async generate_system_functions(config) { + const user_system_functions = new Map(); + const internal_functions_object = await this.plugin.templater.functions_generator.generate_object(config, FunctionsMode.INTERNAL); + for (const template_pair of this.plugin.settings.templates_pairs) { + const template = template_pair[0]; + let cmd = template_pair[1]; + if (!template || !cmd) { + continue; } - return user_system_functions; - }); + if (import_obsidian12.Platform.isMobileApp) { + user_system_functions.set(template, () => { + return new Promise((resolve) => resolve(UNSUPPORTED_MOBILE_TEMPLATE)); + }); + } else { + cmd = await this.plugin.templater.parser.parse_commands(cmd, internal_functions_object); + user_system_functions.set(template, async (user_args) => { + const process_env = { + ...process.env, + ...user_args + }; + const cmd_options = { + timeout: this.plugin.settings.command_timeout * 1e3, + cwd: this.cwd, + env: process_env, + ...this.plugin.settings.shell_path && { + shell: this.plugin.settings.shell_path + } + }; + try { + const { stdout } = await this.exec_promise(cmd, cmd_options); + return stdout.trimRight(); + } catch (error) { + throw new TemplaterError(`Error with User Template ${template}`, error); + } + }); + } + } + return user_system_functions; } - generate_object(config2) { - return __async(this, null, function* () { - const user_system_functions = yield this.generate_system_functions(config2); - return Object.fromEntries(user_system_functions); - }); + async generate_object(config) { + const user_system_functions = await this.generate_system_functions(config); + return Object.fromEntries(user_system_functions); } }; // src/core/functions/user_functions/UserScriptFunctions.ts var UserScriptFunctions = class { - constructor(app, plugin) { - this.app = app; + constructor(plugin) { this.plugin = plugin; } - generate_user_script_functions() { - return __async(this, null, function* () { - const user_script_functions = new Map(); - const files = errorWrapperSync(() => get_tfiles_from_folder(this.app, this.plugin.settings.user_scripts_folder), `Couldn't find user script folder "${this.plugin.settings.user_scripts_folder}"`); - if (!files) { - return new Map(); + async generate_user_script_functions() { + const user_script_functions = new Map(); + const files = errorWrapperSync(() => get_tfiles_from_folder(this.plugin.settings.user_scripts_folder), `Couldn't find user script folder "${this.plugin.settings.user_scripts_folder}"`); + if (!files) { + return new Map(); + } + for (const file of files) { + if (file.extension.toLowerCase() === "js") { + await this.load_user_script_function(file, user_script_functions); } - for (const file of files) { - if (file.extension.toLowerCase() === "js") { - yield this.load_user_script_function(file, user_script_functions); - } - } - return user_script_functions; - }); + } + return user_script_functions; } - load_user_script_function(file, user_script_functions) { - return __async(this, null, function* () { - let req = (s) => { - return window.require && window.require(s); - }; - let exp = {}; - let mod = { - exports: exp - }; - const file_content = yield this.app.vault.read(file); - const wrapping_fn = window.eval("(function anonymous(require, module, exports){" + file_content + "\n})"); - wrapping_fn(req, mod, exp); - const user_function = exp["default"] || mod.exports; - if (!user_function) { - throw new TemplaterError(`Failed to load user script ${file.path}. No exports detected.`); - } - if (!(user_function instanceof Function)) { - throw new TemplaterError(`Failed to load user script ${file.path}. Default export is not a function.`); - } - user_script_functions.set(`${file.basename}`, user_function); - }); + async load_user_script_function(file, user_script_functions) { + const req = (s) => { + return window.require && window.require(s); + }; + const exp = {}; + const mod = { + exports: exp + }; + const file_content = await app.vault.read(file); + const wrapping_fn = window.eval("(function anonymous(require, module, exports){" + file_content + "\n})"); + wrapping_fn(req, mod, exp); + const user_function = exp["default"] || mod.exports; + if (!user_function) { + throw new TemplaterError(`Failed to load user script ${file.path}. No exports detected.`); + } + if (!(user_function instanceof Function)) { + throw new TemplaterError(`Failed to load user script ${file.path}. Default export is not a function.`); + } + user_script_functions.set(`${file.basename}`, user_function); } - generate_object() { - return __async(this, null, function* () { - const user_script_functions = yield this.generate_user_script_functions(); - return Object.fromEntries(user_script_functions); - }); + async generate_object() { + const user_script_functions = await this.generate_user_script_functions(); + return Object.fromEntries(user_script_functions); } }; // src/core/functions/user_functions/UserFunctions.ts var UserFunctions = class { - constructor(app, plugin) { + constructor(plugin) { this.plugin = plugin; - this.user_system_functions = new UserSystemFunctions(app, plugin); - this.user_script_functions = new UserScriptFunctions(app, plugin); + this.user_system_functions = new UserSystemFunctions(plugin); + this.user_script_functions = new UserScriptFunctions(plugin); } - generate_object(config2) { - return __async(this, null, function* () { - let user_system_functions = {}; - let user_script_functions = {}; - if (this.plugin.settings.enable_system_commands) { - user_system_functions = yield this.user_system_functions.generate_object(config2); - } - if (import_obsidian13.Platform.isDesktopApp && this.plugin.settings.user_scripts_folder) { - user_script_functions = yield this.user_script_functions.generate_object(config2); - } - return __spreadValues(__spreadValues({}, user_system_functions), user_script_functions); - }); + async generate_object(config) { + let user_system_functions = {}; + let user_script_functions = {}; + if (this.plugin.settings.enable_system_commands) { + user_system_functions = await this.user_system_functions.generate_object(config); + } + if (this.plugin.settings.user_scripts_folder) { + user_script_functions = await this.user_script_functions.generate_object(); + } + return { + ...user_system_functions, + ...user_script_functions + }; } }; @@ -3112,572 +3123,474 @@ var FunctionsMode; FunctionsMode2[FunctionsMode2["USER_INTERNAL"] = 1] = "USER_INTERNAL"; })(FunctionsMode || (FunctionsMode = {})); var FunctionsGenerator = class { - constructor(app, plugin) { - this.app = app; + constructor(plugin) { this.plugin = plugin; - this.internal_functions = new InternalFunctions(this.app, this.plugin); - this.user_functions = new UserFunctions(this.app, this.plugin); + this.internal_functions = new InternalFunctions(this.plugin); + this.user_functions = new UserFunctions(this.plugin); } - init() { - return __async(this, null, function* () { - yield this.internal_functions.init(); - }); + async init() { + await this.internal_functions.init(); } additional_functions() { return { obsidian: obsidian_module }; } - generate_object(config2, functions_mode = 1) { - return __async(this, null, function* () { - const final_object = {}; - const additional_functions_object = this.additional_functions(); - const internal_functions_object = yield this.internal_functions.generate_object(config2); - let user_functions_object = {}; - Object.assign(final_object, additional_functions_object); - switch (functions_mode) { - case 0: - Object.assign(final_object, internal_functions_object); - break; - case 1: - user_functions_object = yield this.user_functions.generate_object(config2); - Object.assign(final_object, __spreadProps(__spreadValues({}, internal_functions_object), { - user: user_functions_object - })); - break; - } - return final_object; - }); + async generate_object(config, functions_mode = 1) { + const final_object = {}; + const additional_functions_object = this.additional_functions(); + const internal_functions_object = await this.internal_functions.generate_object(config); + let user_functions_object = {}; + Object.assign(final_object, additional_functions_object); + switch (functions_mode) { + case 0: + Object.assign(final_object, internal_functions_object); + break; + case 1: + user_functions_object = await this.user_functions.generate_object(config); + Object.assign(final_object, { + ...internal_functions_object, + user: user_functions_object + }); + break; + } + return final_object; } }; -// node_modules/.pnpm/github.com+SilentVoid13+eta@73c499b027f0ccd2441b63_fofg7upxhiphestysdqrke3jh4/node_modules/eta/dist/eta.es.js -var import_fs = __toModule(require("fs")); -var import_path = __toModule(require("path")); -function setPrototypeOf(obj, proto) { - if (Object.setPrototypeOf) { - Object.setPrototypeOf(obj, proto); - } else { - obj.__proto__ = proto; - } +// node_modules/@silentvoid13/rusty_engine/rusty_engine.js +var import_meta = {}; +var wasm; +var heap = new Array(32).fill(void 0); +heap.push(void 0, null, true, false); +function getObject(idx) { + return heap[idx]; } -function EtaErr(message) { - var err = new Error(message); - setPrototypeOf(err, EtaErr.prototype); - return err; +var heap_next = heap.length; +function dropObject(idx) { + if (idx < 36) + return; + heap[idx] = heap_next; + heap_next = idx; } -EtaErr.prototype = Object.create(Error.prototype, { - name: { value: "Eta Error", enumerable: false } -}); -function ParseErr(message, str, indx) { - var whitespace = str.slice(0, indx).split(/\n/); - var lineNo = whitespace.length; - var colNo = whitespace[lineNo - 1].length + 1; - message += " at line " + lineNo + " col " + colNo + ":\n\n " + str.split(/\n/)[lineNo - 1] + "\n " + Array(colNo).join(" ") + "^"; - throw EtaErr(message); +function takeObject(idx) { + const ret = getObject(idx); + dropObject(idx); + return ret; } -var promiseImpl = new Function("return this")().Promise; -function getAsyncFunctionConstructor() { - try { - return new Function("return (async function(){}).constructor")(); - } catch (e) { - if (e instanceof SyntaxError) { - throw EtaErr("This environment doesn't support async/await"); - } else { - throw e; - } +var cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true }); +cachedTextDecoder.decode(); +var cachedUint8Memory0 = new Uint8Array(); +function getUint8Memory0() { + if (cachedUint8Memory0.byteLength === 0) { + cachedUint8Memory0 = new Uint8Array(wasm.memory.buffer); } + return cachedUint8Memory0; } -function trimLeft(str) { - if (!!String.prototype.trimLeft) { - return str.trimLeft(); - } else { - return str.replace(/^\s+/, ""); - } +function getStringFromWasm0(ptr, len) { + return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len)); } -function trimRight(str) { - if (!!String.prototype.trimRight) { - return str.trimRight(); - } else { - return str.replace(/\s+$/, ""); - } +function addHeapObject(obj) { + if (heap_next === heap.length) + heap.push(heap.length + 1); + const idx = heap_next; + heap_next = heap[idx]; + heap[idx] = obj; + return idx; } -function hasOwnProp(obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop); -} -function copyProps(toObj, fromObj) { - for (var key in fromObj) { - if (hasOwnProp(fromObj, key)) { - toObj[key] = fromObj[key]; - } - } - return toObj; -} -function trimWS(str, config2, wsLeft, wsRight) { - var leftTrim; - var rightTrim; - if (Array.isArray(config2.autoTrim)) { - leftTrim = config2.autoTrim[1]; - rightTrim = config2.autoTrim[0]; - } else { - leftTrim = rightTrim = config2.autoTrim; - } - if (wsLeft || wsLeft === false) { - leftTrim = wsLeft; - } - if (wsRight || wsRight === false) { - rightTrim = wsRight; - } - if (!rightTrim && !leftTrim) { - return str; - } - if (leftTrim === "slurp" && rightTrim === "slurp") { - return str.trim(); - } - if (leftTrim === "_" || leftTrim === "slurp") { - str = trimLeft(str); - } else if (leftTrim === "-" || leftTrim === "nl") { - str = str.replace(/^(?:\r\n|\n|\r)/, ""); - } - if (rightTrim === "_" || rightTrim === "slurp") { - str = trimRight(str); - } else if (rightTrim === "-" || rightTrim === "nl") { - str = str.replace(/(?:\r\n|\n|\r)$/, ""); - } - return str; -} -var escMap = { - "&": "&", - "<": "<", - ">": ">", - '"': """, - "'": "'" +var WASM_VECTOR_LEN = 0; +var cachedTextEncoder = new TextEncoder("utf-8"); +var encodeString = typeof cachedTextEncoder.encodeInto === "function" ? function(arg, view) { + return cachedTextEncoder.encodeInto(arg, view); +} : function(arg, view) { + const buf = cachedTextEncoder.encode(arg); + view.set(buf); + return { + read: arg.length, + written: buf.length + }; }; -function replaceChar(s) { - return escMap[s]; +function passStringToWasm0(arg, malloc, realloc) { + if (realloc === void 0) { + const buf = cachedTextEncoder.encode(arg); + const ptr2 = malloc(buf.length); + getUint8Memory0().subarray(ptr2, ptr2 + buf.length).set(buf); + WASM_VECTOR_LEN = buf.length; + return ptr2; + } + let len = arg.length; + let ptr = malloc(len); + const mem = getUint8Memory0(); + let offset2 = 0; + for (; offset2 < len; offset2++) { + const code = arg.charCodeAt(offset2); + if (code > 127) + break; + mem[ptr + offset2] = code; + } + if (offset2 !== len) { + if (offset2 !== 0) { + arg = arg.slice(offset2); + } + ptr = realloc(ptr, len, len = offset2 + arg.length * 3); + const view = getUint8Memory0().subarray(ptr + offset2, ptr + len); + const ret = encodeString(arg, view); + offset2 += ret.written; + } + WASM_VECTOR_LEN = offset2; + return ptr; } -function XMLEscape(str) { - var newStr = String(str); - if (/[&<>"']/.test(newStr)) { - return newStr.replace(/[&<>"']/g, replaceChar); +function isLikeNone(x) { + return x === void 0 || x === null; +} +var cachedInt32Memory0 = new Int32Array(); +function getInt32Memory0() { + if (cachedInt32Memory0.byteLength === 0) { + cachedInt32Memory0 = new Int32Array(wasm.memory.buffer); + } + return cachedInt32Memory0; +} +function debugString(val) { + const type = typeof val; + if (type == "number" || type == "boolean" || val == null) { + return `${val}`; + } + if (type == "string") { + return `"${val}"`; + } + if (type == "symbol") { + const description = val.description; + if (description == null) { + return "Symbol"; + } else { + return `Symbol(${description})`; + } + } + if (type == "function") { + const name = val.name; + if (typeof name == "string" && name.length > 0) { + return `Function(${name})`; + } else { + return "Function"; + } + } + if (Array.isArray(val)) { + const length = val.length; + let debug = "["; + if (length > 0) { + debug += debugString(val[0]); + } + for (let i = 1; i < length; i++) { + debug += ", " + debugString(val[i]); + } + debug += "]"; + return debug; + } + const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val)); + let className; + if (builtInMatches.length > 1) { + className = builtInMatches[1]; } else { - return newStr; + return toString.call(val); + } + if (className == "Object") { + try { + return "Object(" + JSON.stringify(val) + ")"; + } catch (_) { + return "Object"; + } + } + if (val instanceof Error) { + return `${val.name}: ${val.message} +${val.stack}`; + } + return className; +} +function _assertClass(instance, klass) { + if (!(instance instanceof klass)) { + throw new Error(`expected instance of ${klass.name}`); + } + return instance.ptr; +} +var stack_pointer = 32; +function addBorrowedObject(obj) { + if (stack_pointer == 1) + throw new Error("out of js stack"); + heap[--stack_pointer] = obj; + return stack_pointer; +} +function handleError(f, args) { + try { + return f.apply(this, args); + } catch (e) { + wasm.__wbindgen_exn_store(addHeapObject(e)); } } -var templateLitReg = /`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g; -var singleQuoteReg = /'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g; -var doubleQuoteReg = /"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g; -function escapeRegExp(string) { - return string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); -} -function parse(str, config2) { - var buffer = []; - var trimLeftOfNextStr = false; - var lastIndex = 0; - var parseOptions = config2.parse; - if (config2.plugins) { - for (var i = 0; i < config2.plugins.length; i++) { - var plugin = config2.plugins[i]; - if (plugin.processTemplate) { - str = plugin.processTemplate(str, config2); - } +var ParserConfig = class { + static __wrap(ptr) { + const obj = Object.create(ParserConfig.prototype); + obj.ptr = ptr; + return obj; + } + __destroy_into_raw() { + const ptr = this.ptr; + this.ptr = 0; + return ptr; + } + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_parserconfig_free(ptr); + } + get interpolate() { + const ret = wasm.__wbg_get_parserconfig_interpolate(this.ptr); + return String.fromCodePoint(ret); + } + set interpolate(arg0) { + wasm.__wbg_set_parserconfig_interpolate(this.ptr, arg0.codePointAt(0)); + } + get execution() { + const ret = wasm.__wbg_get_parserconfig_execution(this.ptr); + return String.fromCodePoint(ret); + } + set execution(arg0) { + wasm.__wbg_set_parserconfig_execution(this.ptr, arg0.codePointAt(0)); + } + get single_whitespace() { + const ret = wasm.__wbg_get_parserconfig_single_whitespace(this.ptr); + return String.fromCodePoint(ret); + } + set single_whitespace(arg0) { + wasm.__wbg_set_parserconfig_single_whitespace(this.ptr, arg0.codePointAt(0)); + } + get multiple_whitespace() { + const ret = wasm.__wbg_get_parserconfig_multiple_whitespace(this.ptr); + return String.fromCodePoint(ret); + } + set multiple_whitespace(arg0) { + wasm.__wbg_set_parserconfig_multiple_whitespace(this.ptr, arg0.codePointAt(0)); + } + constructor(opt, clt, inte, ex, sw, mw, gv) { + const ptr0 = passStringToWasm0(opt, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(clt, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ptr2 = passStringToWasm0(gv, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len2 = WASM_VECTOR_LEN; + const ret = wasm.parserconfig_new(ptr0, len0, ptr1, len1, inte.codePointAt(0), ex.codePointAt(0), sw.codePointAt(0), mw.codePointAt(0), ptr2, len2); + return ParserConfig.__wrap(ret); + } + get opening_tag() { + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.parserconfig_opening_tag(retptr, this.ptr); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + return getStringFromWasm0(r0, r1); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(r0, r1); } } - if (config2.rmWhitespace) { - str = str.replace(/[\r\n]+/g, "\n").replace(/^\s+|\s+$/gm, ""); + set opening_tag(val) { + const ptr0 = passStringToWasm0(val, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + wasm.parserconfig_set_opening_tag(this.ptr, ptr0, len0); } - templateLitReg.lastIndex = 0; - singleQuoteReg.lastIndex = 0; - doubleQuoteReg.lastIndex = 0; - function pushString(strng, shouldTrimRightOfString) { - if (strng) { - strng = trimWS(strng, config2, trimLeftOfNextStr, shouldTrimRightOfString); - if (strng) { - strng = strng.replace(/\\|'/g, "\\$&").replace(/\r\n|\n|\r/g, "\\n"); - buffer.push(strng); - } + get closing_tag() { + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.parserconfig_closing_tag(retptr, this.ptr); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + return getStringFromWasm0(r0, r1); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(r0, r1); } } - var prefixes = [parseOptions.exec, parseOptions.interpolate, parseOptions.raw].reduce(function(accumulator, prefix2) { - if (accumulator && prefix2) { - return accumulator + "|" + escapeRegExp(prefix2); - } else if (prefix2) { - return escapeRegExp(prefix2); - } else { - return accumulator; - } - }, ""); - var parseOpenReg = new RegExp("([^]*?)" + escapeRegExp(config2.tags[0]) + "(-|_)?\\s*(" + prefixes + ")?\\s*(?![\\s+\\-_" + prefixes + "])", "g"); - var parseCloseReg = new RegExp("'|\"|`|\\/\\*|(\\s*(-|_)?" + escapeRegExp(config2.tags[1]) + ")", "g"); - var m; - while (m = parseOpenReg.exec(str)) { - lastIndex = m[0].length + m.index; - var precedingString = m[1]; - var wsLeft = m[2]; - var prefix = m[3] || ""; - pushString(precedingString, wsLeft); - parseCloseReg.lastIndex = lastIndex; - var closeTag = void 0; - var currentObj = false; - while (closeTag = parseCloseReg.exec(str)) { - if (closeTag[1]) { - var content = str.slice(lastIndex, closeTag.index); - parseOpenReg.lastIndex = lastIndex = parseCloseReg.lastIndex; - trimLeftOfNextStr = closeTag[2]; - var currentType = prefix === parseOptions.exec ? "e" : prefix === parseOptions.raw ? "r" : prefix === parseOptions.interpolate ? "i" : ""; - currentObj = { t: currentType, val: content }; - break; - } else { - var char = closeTag[0]; - if (char === "/*") { - var commentCloseInd = str.indexOf("*/", parseCloseReg.lastIndex); - if (commentCloseInd === -1) { - ParseErr("unclosed comment", str, closeTag.index); - } - parseCloseReg.lastIndex = commentCloseInd; - } else if (char === "'") { - singleQuoteReg.lastIndex = closeTag.index; - var singleQuoteMatch = singleQuoteReg.exec(str); - if (singleQuoteMatch) { - parseCloseReg.lastIndex = singleQuoteReg.lastIndex; - } else { - ParseErr("unclosed string", str, closeTag.index); - } - } else if (char === '"') { - doubleQuoteReg.lastIndex = closeTag.index; - var doubleQuoteMatch = doubleQuoteReg.exec(str); - if (doubleQuoteMatch) { - parseCloseReg.lastIndex = doubleQuoteReg.lastIndex; - } else { - ParseErr("unclosed string", str, closeTag.index); - } - } else if (char === "`") { - templateLitReg.lastIndex = closeTag.index; - var templateLitMatch = templateLitReg.exec(str); - if (templateLitMatch) { - parseCloseReg.lastIndex = templateLitReg.lastIndex; - } else { - ParseErr("unclosed string", str, closeTag.index); - } - } - } - } - if (currentObj) { - buffer.push(currentObj); - } else { - ParseErr("unclosed tag", str, m.index + precedingString.length); + set closing_tag(val) { + const ptr0 = passStringToWasm0(val, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + wasm.parserconfig_set_closing_tag(this.ptr, ptr0, len0); + } + get global_var() { + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.parserconfig_global_var(retptr, this.ptr); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + return getStringFromWasm0(r0, r1); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(r0, r1); } } - pushString(str.slice(lastIndex, str.length), false); - if (config2.plugins) { - for (var i = 0; i < config2.plugins.length; i++) { - var plugin = config2.plugins[i]; - if (plugin.processAST) { - buffer = plugin.processAST(buffer, config2); - } - } + set global_var(val) { + const ptr0 = passStringToWasm0(val, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + wasm.parserconfig_set_global_var(this.ptr, ptr0, len0); } - return buffer; -} -function compileToString(str, config2) { - var buffer = parse(str, config2); - var res = "var tR='',__l,__lP" + (config2.include ? ",include=E.include.bind(E)" : "") + (config2.includeFile ? ",includeFile=E.includeFile.bind(E)" : "") + "\nfunction layout(p,d){__l=p;__lP=d}\n" + (config2.globalAwait ? "const _prs = [];\n" : "") + (config2.useWith ? "with(" + config2.varName + "||{}){" : "") + compileScope(buffer, config2) + (config2.includeFile ? "if(__l)tR=" + (config2.async ? "await " : "") + ("includeFile(__l,Object.assign(" + config2.varName + ",{body:tR},__lP))\n") : config2.include ? "if(__l)tR=" + (config2.async ? "await " : "") + ("include(__l,Object.assign(" + config2.varName + ",{body:tR},__lP))\n") : "") + "if(cb){cb(null,tR)} return tR" + (config2.useWith ? "}" : ""); - if (config2.plugins) { - for (var i = 0; i < config2.plugins.length; i++) { - var plugin = config2.plugins[i]; - if (plugin.processFnString) { - res = plugin.processFnString(res, config2); - } - } - } - return res; -} -function compileScope(buff, config2) { - var i; - var buffLength = buff.length; - var returnStr = ""; - var REPLACEMENT_STR = "rJ2KqXzxQg"; - for (i = 0; i < buffLength; i++) { - var currentBlock = buff[i]; - if (typeof currentBlock === "string") { - var str = currentBlock; - returnStr += "tR+='" + str + "'\n"; - } else { - var type = currentBlock.t; - var content = currentBlock.val || ""; - if (type === "r") { - if (config2.globalAwait) { - returnStr += "_prs.push(" + content + ");\n"; - returnStr += "tR+='" + REPLACEMENT_STR + "'\n"; - } else { - if (config2.filter) { - content = "E.filter(" + content + ")"; - } - returnStr += "tR+=" + content + "\n"; - } - } else if (type === "i") { - if (config2.globalAwait) { - returnStr += "_prs.push(" + content + ");\n"; - returnStr += "tR+='" + REPLACEMENT_STR + "'\n"; - } else { - if (config2.filter) { - content = "E.filter(" + content + ")"; - } - returnStr += "tR+=" + content + "\n"; - if (config2.autoEscape) { - content = "E.e(" + content + ")"; - } - returnStr += "tR+=" + content + "\n"; - } - } else if (type === "e") { - returnStr += content + "\n"; - } - } - } - if (config2.globalAwait) { - returnStr += "const _rst = await Promise.all(_prs);\ntR = tR.replace(/" + REPLACEMENT_STR + "/g, () => _rst.shift());\n"; - } - return returnStr; -} -var Cacher = function() { - function Cacher2(cache) { - this.cache = cache; - } - Cacher2.prototype.define = function(key, val) { - this.cache[key] = val; - }; - Cacher2.prototype.get = function(key) { - return this.cache[key]; - }; - Cacher2.prototype.remove = function(key) { - delete this.cache[key]; - }; - Cacher2.prototype.reset = function() { - this.cache = {}; - }; - Cacher2.prototype.load = function(cacheObj) { - copyProps(this.cache, cacheObj); - }; - return Cacher2; -}(); -var templates = new Cacher({}); -function includeHelper(templateNameOrPath, data) { - var template = this.templates.get(templateNameOrPath); - if (!template) { - throw EtaErr('Could not fetch template "' + templateNameOrPath + '"'); - } - return template(data, this); -} -var config = { - async: false, - autoEscape: true, - autoTrim: [false, "nl"], - cache: false, - e: XMLEscape, - include: includeHelper, - parse: { - exec: "", - interpolate: "=", - raw: "~" - }, - plugins: [], - rmWhitespace: false, - tags: ["<%", "%>"], - templates, - useWith: false, - varName: "it" }; -function getConfig(override, baseConfig) { - var res = {}; - copyProps(res, config); - if (baseConfig) { - copyProps(res, baseConfig); +var Renderer = class { + static __wrap(ptr) { + const obj = Object.create(Renderer.prototype); + obj.ptr = ptr; + return obj; } - if (override) { - copyProps(res, override); + __destroy_into_raw() { + const ptr = this.ptr; + this.ptr = 0; + return ptr; } - return res; -} -function compile(str, config2) { - var options = getConfig(config2 || {}); - var ctor = options.async ? getAsyncFunctionConstructor() : Function; - try { - return new ctor(options.varName, "E", "cb", compileToString(str, options)); - } catch (e) { - if (e instanceof SyntaxError) { - throw EtaErr("Bad template syntax\n\n" + e.message + "\n" + Array(e.message.length + 1).join("=") + "\n" + compileToString(str, options) + "\n"); - } else { - throw e; - } + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_renderer_free(ptr); } -} -var _BOM = /^\uFEFF/; -function getWholeFilePath(name, parentfile, isDirectory) { - var includePath = (0, import_path.resolve)(isDirectory ? parentfile : (0, import_path.dirname)(parentfile), name) + ((0, import_path.extname)(name) ? "" : ".eta"); - return includePath; -} -function getPath(path, options) { - var includePath = false; - var views = options.views; - var searchedPaths = []; - var pathOptions = JSON.stringify({ - filename: options.filename, - path, - root: options.root, - views: options.views - }); - if (options.cache && options.filepathCache && options.filepathCache[pathOptions]) { - return options.filepathCache[pathOptions]; + constructor(config) { + _assertClass(config, ParserConfig); + var ptr0 = config.ptr; + config.ptr = 0; + const ret = wasm.renderer_new(ptr0); + return Renderer.__wrap(ret); } - function addPathToSearched(pathSearched) { - if (!searchedPaths.includes(pathSearched)) { - searchedPaths.push(pathSearched); - } - } - function searchViews(views2, path2) { - var filePath2; - if (Array.isArray(views2) && views2.some(function(v) { - filePath2 = getWholeFilePath(path2, v, true); - addPathToSearched(filePath2); - return (0, import_fs.existsSync)(filePath2); - })) { - return filePath2; - } else if (typeof views2 === "string") { - filePath2 = getWholeFilePath(path2, views2, true); - addPathToSearched(filePath2); - if ((0, import_fs.existsSync)(filePath2)) { - return filePath2; + render_content(content, context) { + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + const ptr0 = passStringToWasm0(content, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + wasm.renderer_render_content(retptr, this.ptr, ptr0, len0, addBorrowedObject(context)); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + var r2 = getInt32Memory0()[retptr / 4 + 2]; + if (r2) { + throw takeObject(r1); } - } - return false; - } - var match = /^[A-Za-z]+:\\|^\//.exec(path); - if (match && match.length) { - var formattedPath = path.replace(/^\/*/, ""); - includePath = searchViews(views, formattedPath); - if (!includePath) { - var pathFromRoot = getWholeFilePath(formattedPath, options.root || "/", true); - addPathToSearched(pathFromRoot); - includePath = pathFromRoot; - } - } else { - if (options.filename) { - var filePath = getWholeFilePath(path, options.filename); - addPathToSearched(filePath); - if ((0, import_fs.existsSync)(filePath)) { - includePath = filePath; - } - } - if (!includePath) { - includePath = searchViews(views, path); - } - if (!includePath) { - throw EtaErr('Could not find the template "' + path + '". Paths tried: ' + searchedPaths); + return takeObject(r0); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + heap[stack_pointer++] = void 0; } } - if (options.cache && options.filepathCache) { - options.filepathCache[pathOptions] = includePath; - } - return includePath; -} -function readFile(filePath) { - try { - return (0, import_fs.readFileSync)(filePath).toString().replace(_BOM, ""); - } catch (_a) { - throw EtaErr("Failed to read template at '" + filePath + "'"); - } -} -function loadFile(filePath, options, noCache) { - var config2 = getConfig(options); - var template = readFile(filePath); - try { - var compiledTemplate = compile(template, config2); - if (!noCache) { - config2.templates.define(config2.filename, compiledTemplate); - } - return compiledTemplate; - } catch (e) { - throw EtaErr("Loading file: " + filePath + " failed:\n\n" + e.message); - } -} -function handleCache(options) { - var filename = options.filename; - if (options.cache) { - var func = options.templates.get(filename); - if (func) { - return func; - } - return loadFile(filename, options); - } - return loadFile(filename, options, true); -} -function includeFile(path, options) { - var newFileOptions = getConfig({ filename: getPath(path, options) }, options); - return [handleCache(newFileOptions), newFileOptions]; -} -function includeFileHelper(path, data) { - var templateAndConfig = includeFile(path, this); - return templateAndConfig[0](data, templateAndConfig[1]); -} -function handleCache$1(template, options) { - if (options.cache && options.name && options.templates.get(options.name)) { - return options.templates.get(options.name); - } - var templateFunc = typeof template === "function" ? template : compile(template, options); - if (options.cache && options.name) { - options.templates.define(options.name, templateFunc); - } - return templateFunc; -} -function render(template, data, config2, cb) { - var options = getConfig(config2 || {}); - if (options.async) { - if (cb) { +}; +async function load(module2, imports) { + if (typeof Response === "function" && module2 instanceof Response) { + if (typeof WebAssembly.instantiateStreaming === "function") { try { - var templateFn = handleCache$1(template, options); - templateFn(data, options, cb); - } catch (err) { - return cb(err); - } - } else { - if (typeof promiseImpl === "function") { - return new promiseImpl(function(resolve2, reject) { - try { - resolve2(handleCache$1(template, options)(data, options)); - } catch (err) { - reject(err); - } - }); - } else { - throw EtaErr("Please provide a callback function, this env doesn't support Promises"); + return await WebAssembly.instantiateStreaming(module2, imports); + } catch (e) { + if (module2.headers.get("Content-Type") != "application/wasm") { + console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e); + } else { + throw e; + } } } + const bytes = await module2.arrayBuffer(); + return await WebAssembly.instantiate(bytes, imports); } else { - return handleCache$1(template, options)(data, options); + const instance = await WebAssembly.instantiate(module2, imports); + if (instance instanceof WebAssembly.Instance) { + return { instance, module: module2 }; + } else { + return instance; + } } } -function renderAsync(template, data, config2, cb) { - return render(template, data, Object.assign({}, config2, { async: true }), cb); +function getImports() { + const imports = {}; + imports.wbg = {}; + imports.wbg.__wbindgen_object_drop_ref = function(arg0) { + takeObject(arg0); + }; + imports.wbg.__wbindgen_string_new = function(arg0, arg1) { + const ret = getStringFromWasm0(arg0, arg1); + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_string_get = function(arg0, arg1) { + const obj = getObject(arg1); + const ret = typeof obj === "string" ? obj : void 0; + var ptr0 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len0 = WASM_VECTOR_LEN; + getInt32Memory0()[arg0 / 4 + 1] = len0; + getInt32Memory0()[arg0 / 4 + 0] = ptr0; + }; + imports.wbg.__wbg_call_97ae9d8645dc388b = function() { + return handleError(function(arg0, arg1) { + const ret = getObject(arg0).call(getObject(arg1)); + return addHeapObject(ret); + }, arguments); + }; + imports.wbg.__wbg_new_8d2af00bc1e329ee = function(arg0, arg1) { + const ret = new Error(getStringFromWasm0(arg0, arg1)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_message_fe2af63ccc8985bc = function(arg0) { + const ret = getObject(arg0).message; + return addHeapObject(ret); + }; + imports.wbg.__wbg_newwithargs_8fe23e3842840c8e = function(arg0, arg1, arg2, arg3) { + const ret = new Function(getStringFromWasm0(arg0, arg1), getStringFromWasm0(arg2, arg3)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_call_168da88779e35f61 = function() { + return handleError(function(arg0, arg1, arg2) { + const ret = getObject(arg0).call(getObject(arg1), getObject(arg2)); + return addHeapObject(ret); + }, arguments); + }; + imports.wbg.__wbg_call_3999bee59e9f7719 = function() { + return handleError(function(arg0, arg1, arg2, arg3) { + const ret = getObject(arg0).call(getObject(arg1), getObject(arg2), getObject(arg3)); + return addHeapObject(ret); + }, arguments); + }; + imports.wbg.__wbindgen_debug_string = function(arg0, arg1) { + const ret = debugString(getObject(arg1)); + const ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + getInt32Memory0()[arg0 / 4 + 1] = len0; + getInt32Memory0()[arg0 / 4 + 0] = ptr0; + }; + imports.wbg.__wbindgen_throw = function(arg0, arg1) { + throw new Error(getStringFromWasm0(arg0, arg1)); + }; + return imports; } -config.includeFile = includeFileHelper; -config.filepathCache = {}; +function initMemory(imports, maybe_memory) { +} +function finalizeInit(instance, module2) { + wasm = instance.exports; + init.__wbindgen_wasm_module = module2; + cachedInt32Memory0 = new Int32Array(); + cachedUint8Memory0 = new Uint8Array(); + return wasm; +} +async function init(input) { + if (typeof input === "undefined") { + input = new URL("rusty_engine_bg.wasm", import_meta.url); + } + const imports = getImports(); + if (typeof input === "string" || typeof Request === "function" && input instanceof Request || typeof URL === "function" && input instanceof URL) { + input = fetch(input); + } + initMemory(imports); + const { instance, module: module2 } = await load(await input, imports); + return finalizeInit(instance, module2); +} +var rusty_engine_default = init; + +// wasm-embed:/home/runner/work/Templater/Templater/node_modules/@silentvoid13/rusty_engine/rusty_engine_bg.wasm +var rusty_engine_bg_default = __toBinary("AGFzbQEAAAABvwEaYAJ/fwBgAn9/AX9gAX8Bf2ADf39/AX9gA39/fwBgAX8AYAV/f39/fwBgBH9/f38AYAR/f39/AX9gAABgBX9/f39/AX9gAX8BfmAAAX9gBn9/f39/fwBgB39/f39/f38AYAV/f35/fwBgBX9/fX9/AGAFf398f38AYAR/fn9/AGAFf35/f38AYAR/fX9/AGAEf3x/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gCn9/f39/f39/f38Bf2ACfn8BfwLkAgsDd2JnGl9fd2JpbmRnZW5fb2JqZWN0X2Ryb3BfcmVmAAUDd2JnFV9fd2JpbmRnZW5fc3RyaW5nX25ldwABA3diZxVfX3diaW5kZ2VuX3N0cmluZ19nZXQAAAN3YmcbX193YmdfY2FsbF85N2FlOWQ4NjQ1ZGMzODhiAAEDd2JnGl9fd2JnX25ld184ZDJhZjAwYmMxZTMyOWVlAAEDd2JnHl9fd2JnX21lc3NhZ2VfZmUyYWY2M2NjYzg5ODViYwACA3diZyJfX3diZ19uZXd3aXRoYXJnc184ZmUyM2UzODQyODQwYzhlAAgDd2JnG19fd2JnX2NhbGxfMTY4ZGE4ODc3OWUzNWY2MQADA3diZxtfX3diZ19jYWxsXzM5OTliZWU1OWU5Zjc3MTkACAN3YmcXX193YmluZGdlbl9kZWJ1Z19zdHJpbmcAAAN3YmcQX193YmluZGdlbl90aHJvdwAAA7kBtwECBwAGAgYEBAcBBQMKCAAEBgYAAwcCAAEADgETAQQXAQICAQAAAwcZAQAFAQwABgACAgAAAgAEBAAGAQAAAAAEBw0CAQUEBQYCDBgAAQAAAAQBAQEAAQABBAQEBgMDBwMJAwQIAAAABQkAAgEAAAAABwAAAgICAgAFBQMEFgoGEQ8QAAUHAwIBAgABBQEBCAACAQEBBQEAAgECAgACAQEBAgAJCQICAgIAAAAAAwMDAQECAgsLCwUEBQFwATs7BQMBABEGCQF/AUGAgMAACwfcBRkGbWVtb3J5AgAXX193YmdfcGFyc2VyY29uZmlnX2ZyZWUAUSJfX3diZ19nZXRfcGFyc2VyY29uZmlnX2ludGVycG9sYXRlAH4iX193Ymdfc2V0X3BhcnNlcmNvbmZpZ19pbnRlcnBvbGF0ZQB3IF9fd2JnX2dldF9wYXJzZXJjb25maWdfZXhlY3V0aW9uAH8gX193Ymdfc2V0X3BhcnNlcmNvbmZpZ19leGVjdXRpb24AeChfX3diZ19nZXRfcGFyc2VyY29uZmlnX3NpbmdsZV93aGl0ZXNwYWNlAIABKF9fd2JnX3NldF9wYXJzZXJjb25maWdfc2luZ2xlX3doaXRlc3BhY2UAeSpfX3diZ19nZXRfcGFyc2VyY29uZmlnX211bHRpcGxlX3doaXRlc3BhY2UAgQEqX193Ymdfc2V0X3BhcnNlcmNvbmZpZ19tdWx0aXBsZV93aGl0ZXNwYWNlAHoQcGFyc2VyY29uZmlnX25ldwBVGHBhcnNlcmNvbmZpZ19vcGVuaW5nX3RhZwBGHHBhcnNlcmNvbmZpZ19zZXRfb3BlbmluZ190YWcAYxhwYXJzZXJjb25maWdfY2xvc2luZ190YWcARxxwYXJzZXJjb25maWdfc2V0X2Nsb3NpbmdfdGFnAGQXcGFyc2VyY29uZmlnX2dsb2JhbF92YXIASBtwYXJzZXJjb25maWdfc2V0X2dsb2JhbF92YXIAZRNfX3diZ19yZW5kZXJlcl9mcmVlAE8McmVuZGVyZXJfbmV3ACAXcmVuZGVyZXJfcmVuZGVyX2NvbnRlbnQAORFfX3diaW5kZ2VuX21hbGxvYwB1El9fd2JpbmRnZW5fcmVhbGxvYwCFAR9fX3diaW5kZ2VuX2FkZF90b19zdGFja19wb2ludGVyAKsBD19fd2JpbmRnZW5fZnJlZQCaARRfX3diaW5kZ2VuX2V4bl9zdG9yZQCfAQllAQBBAQs6mAGdAaoBPzzBAZUBlgFOkgGOAWotYsEBwQFnKl3BAXaIAUyJAYgBhwGQAY8BiQGJAYwBigGLAZgBX8EBaKABXo4BvwG+AYQBOElwoQHBAWioAWCjAVclqQGcAcEBwAEK2dYCtwG8IAIPfwF+IwBBEGsiCyQAAkACQCAAQfUBTwRAQYCAfEEIQQgQlwFBFEEIEJcBakEQQQgQlwFqa0F3cUF9aiICQQBBEEEIEJcBQQJ0ayIBIAEgAksbIABNDQIgAEEEakEIEJcBIQRBrK7AACgCAEUNAUEAIARrIQMCQAJAAn9BACAEQYACSQ0AGkEfIARB////B0sNABogBEEGIARBCHZnIgBrdkEBcSAAQQF0a0E+agsiBkECdEG4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EBBBIAQoAgAiBSAAKAIAaiIGQdSDwAApAAA3AAAgBCAFQRBqNgIAIAZBCGpB3IPAACkAADcAACADQQE2AiwgAyABKAIIQShqIgU2AiggAyAANgIYIANB3ABqQQE2AgAgA0ICNwJMIANB8IPAADYCSCADIANBKGo2AlgCQAJAAkACQAJAAkAgA0EYakGYisAAIANByABqEB5FBEAgAigCACEIAkAgAigCCCIBRQ0AIAFBBHQhCkGQhMAAIQZBACEBQQAhBANAAn8gASAIaiIHQQRqIgkgBygCAEUNABoCQCAERQ0AIANBEGogBCgCACAEKAIEQQAgBiAGLQAAQQJGG0EBEBAgA0EIaiADKAIQIAMoAhRBACAHQQ1qIgQgBC0AAEECRhtBABAQIANBGGogAygCCCADKAIMEBIgA0EBNgI0IANBATYCLCADIAU2AiggAyADQRhqNgIwIAMgADYCRCADQQI2AlwgA0IDNwJMIANBmITAADYCSCADIANBKGo2AlggA0HEAGpBmIrAACADQcgAahAeDQUgAygCHEUNACADKAIYEBULIAdBDmohBgJAIAdBDGotAABFBEAgA0ECNgIsIAMgCTYCKCADIAA2AhggA0EBNgJcIANCAjcCTCADQfSEwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQcgA0ECNgI0IANBoIXAADYCMCADQQE2AiwgAyAFNgIoIAMgADYCGCADQQI2AlwgA0IDNwJMIANBmITAADYCSCADIANBKGo2AlggA0EYakGYisAAIANByABqEB5FDQFBq4HAAEErIANByABqQdiBwABBqIXAABBSAAsgA0ECNgIsIAMgCTYCKCADIAA2AhggA0EBNgJcIANCAjcCTCADQcSEwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQcLQQALIQQgCiABQRBqIgFHDQALIARFDQAgAyAEKAIAIAQoAgRBACAGIAYtAABBAkYbQQEQECADQRhqIAMoAgAgAygCBBASIANBNGpBATYCACADQQE2AiwgAyAFNgIoIAMgA0EYajYCMCADIAA2AkQgA0HcAGpBAjYCACADQgM3AkwgA0GYhMAANgJIIAMgA0EoajYCWCADQcQAakGYisAAIANByABqEB4NBSADKAIcRQ0AIAMoAhgQFQsgAEEEaigCACAAQQhqIgQoAgAiAWtBJ00EQCAAIAFBKBBBIAQoAgAhAQsgBCABQShqNgIAIAAoAgAgAWoiAUHIhcAAKQAANwAAIAFBCGpB0IXAACkAADcAACABQRBqQdiFwAApAAA3AAAgAUEYakHghcAAKQAANwAAIAFBIGpB6IXAACkAADcAACADQTxqQQI2AgAgA0E0akEBNgIAIANBoIXAADYCOCADIAU2AjAgA0EBNgIsIAMgBTYCKCADIAA2AhggA0HcAGoiAUEDNgIAIANCBDcCTCADQZiGwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQUgA0EBNgIsIAMgBTYCKCADIAA2AhggAUEBNgIAIANCAjcCTCADQdCGwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQYgAkEEaigCAARAIAgQFQsgA0HgAGokAA8LQauBwABBKyADQcgAakHYgcAAQYCEwAAQUgALQauBwABBKyADQcgAakHYgcAAQbCEwAAQUgALQauBwABBKyADQcgAakHYgcAAQYSFwAAQUgALQauBwABBKyADQcgAakHYgcAAQdSEwAAQUgALQauBwABBKyADQcgAakHYgcAAQbiFwAAQUgALQauBwABBKyADQcgAakHYgcAAQbiGwAAQUgALQauBwABBKyADQcgAakHYgcAAQeCGwAAQUgAL7QkCCH8GfiMAQdAAayIDJAACQAJAAkAQVCIEBEAgA0EgakIANwMAIANBHGpBkIrAADYCACAEIAQpAwAiC0IBfDcDACADQQA2AhggAyALNwMIIAMgBEEIaikDADcDECADQqeAgIDwBDcDSCADQo2AgICgDjcDQCADQoqAgIDgDTcDOCADQtyAgIDACzcDMCADQQhqIANBMGoQGSADQQA2AjggA0IENwMwIAJFBEAgAEEANgIIIABCATcCAEEEIQRBBCEBDAQLIAEgAmohCEEAIQIDQAJ/IAEsAAAiBEF/SgRAIARB/wFxIQQgAUEBagwBCyABLQABQT9xIQUgBEEfcSEGIARBX00EQCAGQQZ0IAVyIQQgAUECagwBCyABLQACQT9xIAVBBnRyIQUgBEFwSQRAIAUgBkEMdHIhBCABQQNqDAELIAZBEnRBgIDwAHEgAS0AA0E/cSAFQQZ0cnIiBEGAgMQA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ASACIANqQQFqIgM2AhAgAyAHT0EAIAMgDE0bRQRAIAYgA08NAQwDCwsgB0EEELUBAAsgASAGNgIQCyABLQAkIAEoAgAiAiABKAIEIgRHckUNASABQQE6ACUgBCACawshAyAIRQ0AIAIgCGohCyADRQRAQQAhAgwBCyADQX9qIgEgAyABIAtqLQAAQQ1GGyECCyAAIAI2AgQgACALNgIAIAVBEGokAAv+BAEKfyMAQTBrIgMkACADQSRqIAE2AgAgA0EDOgAoIANCgICAgIAENwMIIAMgADYCICADQQA2AhggA0EANgIQAkACQAJAIAIoAggiCkUEQCACQRRqKAIAIgRFDQEgAigCACEBIAIoAhAhACAEQX9qQf////8BcUEBaiIHIQQDQCABQQRqKAIAIgUEQCADKAIgIAEoAgAgBSADKAIkKAIMEQMADQQLIAAoAgAgA0EIaiAAQQRqKAIAEQEADQMgAEEIaiEAIAFBCGohASAEQX9qIgQNAAsMAQsgAkEMaigCACIARQ0AIABBBXQhCyAAQX9qQf///z9xQQFqIQcgAigCACEBA0AgAUEEaigCACIABEAgAygCICABKAIAIAAgAygCJCgCDBEDAA0DCyADIAQgCmoiBUEcai0AADoAKCADIAVBBGopAgBCIIk3AwggBUEYaigCACEGIAIoAhAhCEEAIQlBACEAAkACQAJAIAVBFGooAgBBAWsOAgACAQsgBkEDdCAIaiIMKAIEQTdHDQEgDCgCACgCACEGC0EBIQALIAMgBjYCFCADIAA2AhAgBUEQaigCACEAAkACQAJAIAVBDGooAgBBAWsOAgACAQsgAEEDdCAIaiIGKAIEQTdHDQEgBigCACgCACEAC0EBIQkLIAMgADYCHCADIAk2AhggCCAFKAIAQQN0aiIAKAIAIANBCGogACgCBBEBAA0CIAFBCGohASALIARBIGoiBEcNAAsLQQAhACAHIAIoAgRJIgFFDQEgAygCICACKAIAIAdBA3RqQQAgARsiASgCACABKAIEIAMoAiQoAgwRAwBFDQELQQEhAAsgA0EwaiQAIAALwgQBCH8jAEHQAGsiBCQAIARBEGogASACIAMoAgAgA0EIaigCABAOAkACQAJAAkACQAJAIAQoAhBFBEAgBEEeai0AAA0EIARBxABqKAIAIQYgBCgCQCEHIARBHGot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AkAgAUGAAU8EQCACQQA2AgwgAUGAEEkNASABQYCABE8NAiACIAFBP3FBgAFyOgAOIAIgAUEMdkHgAXI6AAwgAiABQQZ2QT9xQYABcjoADUEDDAMLIAAoAggiAyAAQQRqKAIARgR/IAAgAxBAIAAoAggFIAMLIAAoAgBqIAE6AAAgACAAKAIIQQFqNgIIDAMLIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECDAELIAIgAUE/cUGAAXI6AA8gAiABQQZ2QT9xQYABcjoADiACIAFBDHZBP3FBgAFyOgANIAIgAUESdkEHcUHwAXI6AAxBBAshASAAQQRqKAIAIABBCGoiBCgCACIDayABSQRAIAAgAyABEEEgBCgCACEDCyAAKAIAIANqIAJBDGogARC5ARogBCABIANqNgIACyACQRBqJABBAAvVAgEDfyMAQRBrIgIkAAJAAn8CQCABQYABTwRAIAJBADYCDCABQYAQTw0BIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECDAILIAAoAggiAyAAQQRqKAIARgRAIAAgAxBDIAAoAgghAwsgACADQQFqNgIIIAAoAgAgA2ogAToAAAwCCyABQYCABE8EQCACIAFBP3FBgAFyOgAPIAIgAUEGdkE/cUGAAXI6AA4gAiABQQx2QT9xQYABcjoADSACIAFBEnZBB3FB8AFyOgAMQQQMAQsgAiABQT9xQYABcjoADiACIAFBDHZB4AFyOgAMIAIgAUEGdkE/cUGAAXI6AA1BAwshASAAQQRqKAIAIABBCGoiBCgCACIDayABSQRAIAAgAyABEEIgBCgCACEDCyAAKAIAIANqIAJBDGogARC5ARogBCABIANqNgIACyACQRBqJAAL1wIBA38jAEEQayICJAACQAJ/AkACQCABQYABTwRAIAJBADYCDCABQYAQSQ0BIAFBgIAETw0CIAIgAUE/cUGAAXI6AA4gAiABQQx2QeABcjoADCACIAFBBnZBP3FBgAFyOgANQQMMAwsgACgCCCIDIABBBGooAgBGBEAgACADEEMgACgCCCEDCyAAIANBAWo2AgggACgCACADaiABOgAADAMLIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECDAELIAIgAUE/cUGAAXI6AA8gAiABQQZ2QT9xQYABcjoADiAC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AiADKAIIIgRNBEAgASECDAELIARFBEBBASECIAEQFQwBCyABIAJBASAEEJkBIgJFDQMLIAAgBDYCBCAAIAI2AgAgA0EQaiQADwsQrQEACxCuAQALIARBARCzAQALrAEBA38jAEEQayIDJAACQAJAIAEEQCABKAIAIgJBf0YNASABIAJBAWo2AgAgAyABQRBqEGEgASABKAIAQX9qNgIAIAMoAgAhAQJAIAMoAgQiAiADKAIIIgRNBEAgASECDAELIARFBEBBASECIAEQFQwBCyABIAJBASAEEJkBIgJFDQMLIAAgBDYCBCAAIAI2AgAgA0EQaiQADwsQrQEACxCuAQALIARBARCzAQALrAEBA38jAEEQayIDJAACQAJAIAEEQCABKAIAIgJBf0YNASABIAJBAWo2AgAgAyABQSxqEGEgASABKAIAQX9qNgIAIAMoAgAhAQJAIAMoAgQiAiADKAIIIgRNBEAgASECDAELIARFBEBBASECIAEQFQwBCyABIAJBASAEEJkBIgJFDQMLIAAgBDYCBCAAIAI2AgAgA0EQaiQADwsQrQEACxCuAQALIARBARCzAQALrAEBA38jAEEwayICJAAgAUEEaiEDIAEoAgRFBEAgASgCACEBIAJBEGoiBEEANgIAIAJCATcDCCACIAJBCGo2AhQgAkEoaiABQRBqKQIANwMAIAJBIGogAUEIaikCADcDACACIAEpAgA3AxggAkEUakGAjsAAIAJBGGoQHhogA0EIaiAEKAIANgIAIAMgAikDCDcCAAsgAEHoj8AANgIEIAAgAzYCACACQTBqJAALkAEBAn8CQAJ/AkACQAJAAn9BASIDIAFBAEgNABogAigCCEUNAiACKAIEIgQNASABDQNBAQwECyEDQQAhAQwECyACKAIAIARBASABEJkBDAILIAENAEEBDAELIAFBARCeAQsiAgRAIAAgAjYCBEEAIQMMAQsgACABNgIEQQEhAQsgACADNgIAIABBCGogATYCAAunAQECfwJAAkACQAJAAkACQAJAAn8gAgRAQQEiBCABQQBIDQEaIAMoAghFDQMgAygCBCIFDQIgAQ0EDAYLIAAgATYCBEEBCyEEQQAhAQwGCyADKAIAIAUgAiABEJkBIgNFDQIMBAsgAUUNAgsgASACEJ4BIgMNAgsgACABNgIEIAIhAQwCCyACIQML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AX8jAEEwayICJAAgAiABNgIEIAIgADYCACACQRxqQQI2AgAgAkEsakEDNgIAIAJCAjcCDCACQfSWwAA2AgggAkEDNgIkIAIgAkEgajYCGCACIAJBBGo2AiggAiACNgIgIAJBCGpBhJfAABB0AAtsAQF/IwBBMGsiAyQAIAMgATYCBCADIAA2AgAgA0EcakECNgIAIANBLGpBAzYCACADQgI3AgwgA0HAk8AANgIIIANBAzYCJCADIANBIGo2AhggAyADNgIoIAMgA0EEajYCICADQQhqIAIQdAALVgECfyMAQSBrIgIkACAAQRxqKAIAIQMgACgCGCACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCADIAJBCGoQHiACQSBqJAALWQEBfyMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakGYisAAIAJBCGoQHiACQSBqJAALWQEBfyMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakGAjsAAIAJBCGoQHiACQSBqJAALZwAjAEEwayIBJABB2K3AAC0AAARAIAFBHGpBATYCACABQgI3AgwgAUH0jsAANgIIIAFBAzYCJCABIAA2AiwgASABQSBqNgIYIAEgAUEsajYCICABQQhqQZyPwAAQdAALIAFBMGokAAtZAQF/IwBBIGsiAiQAIAIgACgCADYCBCACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCACQQRqQbSRwAAgAkEIahAeIAJBIGokAAtnAQJ/IAEoAgAhAwJAAkACQCABQQhqKAIAIgFFBEBBASECDAELIAFBf0wNASABQQEQngEiAkUNAgsgAiADIAEQuQEhAiAAIAE2AgggACABNgIEIAAgAjYCAA8LEHMACyABQQEQswEAC1YBAX8jAEEgayICJAAgAiAANgIEIAJBGGogAUEQaikCADcDACACQRBqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBBGpBmIrAACACQQhqEB4gAkEgaiQAC1YBAX8CQCAABEAgACgCAA0BIABBfzYCACAAQQhqIgMoAgAEQCAAKAIEEBULIAAgATYCBCAAQQA2AgAgAEEMaiACNgIAIAMgAjYCAA8LEK0BAAsQrgEAC1YBAX8CQCAABEAgACgCAA0BIABBfzYCACAAQRRqIgMoAgAEQCAAKAIQEBULIAAgATYCECAAQQA2AgAgAEEYaiACNgIAIAMgAjYCAA8LEK0BAAsQrgEAC1YBAX8CQCAABEAgACgCAA0BIABBfzYCACAAQTBqIgMoAgAEQCAAKAIsEBULIAAgATYCLCAAQQA2AgAgAEE0aiACNgIAIAMgAjYCAA8LEK0BAAsQrgEAC1YBAX8jAEEQayIFJAAgASgCACACKAIAIAMoAgAgBCgCABAIIQEgBUEIahCDASAFKAIMIQIgACAFKAIIIgNBAEc2AgAgACACIAEgAxs2AgQgBUEQaiQAC08BAn8gACgCACIDQQRqKAIAIANBCGoiBCgCACIAayACSQRAIAMgACACEEEgBCgCACEACyADKAIAIABqIAEgAhC5ARogBCAAIAJqNgIAQQALTwECfyAAKAIAIgNBBGooAgAgA0EIaiIEKAIAIgBrIAJJBEAgAyAAIAIQQiAEKAIAIQALIAMoAgAgAGogASACELkBGiAEIAAgAmo2AgBBAAtRAQF/IwBBEGsiBCQAIAEoAgAgAigCACADKAIAEAchASAEQQhqEIMBIAQoAgwhAiAAIAQoAggiA0EARzYCACAAIAIgASADGzYCBCAEQRBqJAALSgECfyAAQQRqKAIAIABBCGoiBCgCACIDayACSQRAIAAgAyACEEEgBCgCACEDCyAAKAIAIANqIAEgAhC5ARogBCACIANqNgIAQQALPwEBfyMAQSBrIgAkACAAQRxqQQA2AgAgAEGwkMAANgIYIABCATcCDCAAQcyQwAA2AgggAEEIakGkkcAAEHQAC0MBA38CQCACRQ0AA0AgAC0AACIEIAEtAAAiBUYEQCAAQQFqIQAgAUEBaiEBIAJBf2oiAg0BDAILCyAEIAVrIQMLIAMLTAECfyMAQRBrIgMkACABKAIAIAIoAgAQAyEBIANBCGoQgwEgAygCDCECIAAgAygCCCIEQQBHNgIAIAAgAiABIAQbNgIEIANBEGokAAtLAAJAAn8gAUGAgMQARwRAQQEgACgCGCABIABBHGooAgAoAhARAQANARoLIAINAUEACw8LIAAoAhggAiADIABBHGooAgAoAgwRAwALRwEBfyMAQSBrIgIkACACQRRqQQA2AgAgAkGAk8AANgIQIAJCATcCBCACQSs2AhwgAiAANgIYIAIgAkEYajYCACACIAEQdAALRgECfyABKAIEIQIgASgCACEDQQhBBBCeASIBRQRAQQhBBBCzAQALIAEgAjYCBCABIAM2AgAgAEH4j8AANgIEIAAgATYCAAs5AQF/IAFBEHZAACECIABBADYCCCAAQQAgAUGAgHxxIAJBf0YiARs2AgQgAEEAIAJBEHQgARs2AgALZAEDfyMAQRBrIgEkACAAKAIMIgJFBEBBmI7AAEHIj8AAEG8ACyAAKAIIIgNFBEBBmI7AAEHYj8AAEG8ACyABIAI2AgggASAANgIEIAEgAzYCACABKAIAIAEoAgQgASgCCBBQAAs/AQF/IwBBIGsiACQAIABBHGpBADYCACAAQcyRwAA2AhggAEIBNwIMIABBjJLAADYCCCAAQQhqQZSSwAAQdAALPgEBfyMAQSBrIgIkACACQQE6ABggAiABNgIUIAIgADYCECACQfyTwAA2AgwgAkGAk8AANgIIIAJBCGoQcgALKwACQCAAQXxLDQAgAEUEQEEEDwsgACAAQX1JQQJ0EJ4BIgBFDQAgAA8LAAsiACMAQRBrIgAkACAAQQhqIAEQfSAAQQhqEFMgAEEQaiQACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEEcaiABNgIADwsQrQEACxCuAQALKwACQCAABEAgACgCAA0BIABBADYCACAAQSBqIAE2AgAPCxCtAQALEK4BAAsrAAJAIAAEQCAAKAIADQEgAEEANgIAIABBJGogATYCAA8LEK0BAAsQrgEACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEEoaiABNgIADwsQrQEACxCuAQALQAEBfyMAQRBrIgQkACAEIAM2AgwgBCACNgIIIAQgATYCBCAEIAA2AgAgBCgCACAEKAIEIAQoAgggBCgCDBATAAs3ACAAQQM6ACAgAEKAgICAgAQ3AgAgACABNgIYIABBADYCECAAQQA2AgggAEEcakHEh8AANgIACzUBAX8gASgCGEHDjsAAQQsgAUEcaigCACgCDBEDACECIABBADoABSAAIAI6AAQgACABNgIACyUAAkAgAARAIAAoAgBBf0YNASAAQRxqKAIADwsQrQEACxCuAQALJQACQCAABEAgACgCAEF/Rg0BIABBIGooAgAPCxCtAQALEK4BAAslAAJAIAAEQCAAKAIAQX9GDQEgAEEkaigCAA8LEK0BAAsQrgEACyUAAkAgAARAIAAoAgBBf0YNASAAQShqKAIADwsQrQEACxCuAQALJwAgACAAKAIEQQFxIAFyQQJyNgIEIAAgAWoiACAAKAIEQQFyNgIECzoBAn9B3K3AAC0AACEBQdytwABBADoAAEHgrcAAKAIAIQJB4K3AAEEANgIAIAAgAjYCBCAAIAE2AgALIAEBfwJAIAAoAgQiAUUNACAAQQhqKAIARQ0AIAEQFQsLHwACQCABQXxNBEAgACABQQQgAhCZASIADQELAAsgAAsjACACIAIoAgRBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAslACAARQRAQciMwABBMBCsAQALIAAgAiADIAQgBSABKAIQEQoACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQEQgACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQEQcACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQERUACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQERIACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQERQACx4AIAAgAUEDcjYCBCAAIAFqIgAgACgCBEEBcjYCBAsUACAAQQRqKAIABEAgACgCABAVCwshACAARQRAQciMwABBMBCsAQALIAAgAiADIAEoAhARBAALHwAgAEUEQEHIjMAAQTAQrAEACyAAIAIgASgCEBEBAAsZAQF/IAAoAhAiAQR/IAEFIABBFGooAgALCxkAIAAoAgAiACgCACAAQQhqKAIAIAEQtwELEgBBAEEZIABBAXZrIABBH0YbCxYAIAAgAUEBcjYCBCAAIAFqIAE2AgALHAAgASgCGEHgpsAAQQUgAUEcaigCACgCDBEDAAsTACAAKAIAIgBBJE8EQCAAEAALCxAAIAAgAWpBf2pBACABa3ELFAAgACgCACAAQQhqKAIAIAEQtwELDAAgACABIAIgAxAYCwsAIAEEQCAAEBULCw8AIABBAXQiAEEAIABrcgsUACAAKAIAIAEg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BAAAAAQAAAARAAAAEgAAABMAAABjYW5ub3QgYWNjZXNzIGEgVGhyZWFkIExvY2FsIFN0b3JhZ2UgdmFsdWUgZHVyaW5nIG9yIGFmdGVyIGRlc3RydWN0aW9uL3J1c3RjL2E1NWRkNzFkNWZiMGVjNWE2YTNhOWU4YzI3YjIxMjdiYTQ5MWNlNTIvbGlicmFyeS9zdGQvc3JjL3RocmVhZC9sb2NhbC5ycwAAAHYFEABPAAAApQEAABoAAAAUAAAAAAAAAAEAAAAVAAAAL3J1c3RjL2E1NWRkNzFkNWZiMGVjNWE2YTNhOWU4YzI3YjIxMjdiYTQ5MWNlNTIvbGlicmFyeS9jb3JlL3NyYy9zdHIvcGF0dGVybi5ycwDoBRAATwAAALcBAAAmAAAAY2xvc3VyZSBpbnZva2VkIHJlY3Vyc2l2ZWx5IG9yIGRlc3Ryb3llZCBhbHJlYWR5SnNWYWx1ZSgpAAAAeAYQAAgAAACABhAAAQAAAG51bGwgcG9pbnRlciBwYXNzZWQgdG8gcnVzdHJlY3Vyc2l2ZSB1c2Ugb2YgYW4gb2JqZWN0IGRldGVjdGVkIHdoaWNoIHdvdWxkIGxlYWQgdG8gdW5zYWZlIGFsaWFzaW5nIGluIHJ1c3QAACQAAAAEAAAABAAAACUAAAAmAAAAJwAAAGNhbGxlZCBgT3B0aW9uOjp1bndyYXAoKWAgb24gYSBgTm9uZWAgdmFsdWVBY2Nlc3NFcnJvcm1lbW9yeSBhbGxvY2F0aW9uIG9mICBieXRlcyBmYWlsZWQKAAAATgcQABUAAABjBxAADgAAAGxpYnJhcnkvc3RkL3NyYy9hbGxvYy5yc4QHEAAYAAAAUgEAAAkAAABsaWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJzrAcQABwAAABGAgAAHwAAAKwHEAAcAAAARwIAAB4AAAAoAAAADAAAAAQAAAApAAAAJAAAAAgAAAAEAAAAKgAAACsAAAAQAAAABAAAACwAAAAtAAAAJAAAAAgAAAAEAAAALgAAAC8AAABIYXNoIHRhYmxlIGNhcGFjaXR5IG92ZXJmbG93MAgQABwAAAAvY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9oYXNoYnJvd24tMC4xMi4zL3NyYy9yYXcvbW9kLnJzAFQIEABPAAAAWgAAACgAAAAwAAAABAAAAAQAAAAxAAAAMgAAADMAAAAwAAAAAAAAAAEAAAAHAAAAbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy5yc2NhcGFjaXR5IG92ZXJmbG93AAAA+AgQABEAAADcCBAAHAAAAAYCAAAFAAAAYSBmb3JtYXR0aW5nIHRyYWl0IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9ybGlicmFyeS9hbGxvYy9zcmMvZm10LnJzAFcJEAAYAAAAZAIAACAAAAAuLgAAgAkQAAIAAABpbmRleCBvdXQgb2YgYm91bmRzOiB0aGUgbGVuIGlzICBidXQgdGhlIGluZGV4IGlzIAAAjAkQACAAAACsCRAAEgAAAGNhbGxlZCBgT3B0aW9uOjp1bndyYXAoKWAgb24gYSBgTm9uZWAgdmFsdWUAOQAAAAAAAAABAAAAOgAAAGA6IACACRAAAAAAAA0KEAACAAAAfSB9MHgwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OXJhbmdlIHN0YXJ0IGluZGV4ICBvdXQgb2YgcmFuZ2UgZm9yIHNsaWNlIG9mIGxlbmd0aCAAAADtChAAEgAAAP8KEAAiAAAAbGlicmFyeS9jb3JlL3NyYy9zbGljZS9pbmRleC5ycwA0CxAAHwAAADQAAAAFAAAAcmFuZ2UgZW5kIGluZGV4IGQLEAAQAAAA/woQACIAAAA0CxAAHwAAAEkAAAAFAAAAc2xpY2UgaW5kZXggc3RhcnRzIGF0ICBidXQgZW5kcyBhdCAAlAsQABYAAACqCxAADQAAADQLEAAfAAAAXAAAAAUAAABsaWJyYXJ5L2NvcmUvc3JjL3N0ci9wYXR0ZXJuLnJzANgLEAAfAAAAGgYAABUAAADYCxAAHwAAAEgGAAAVAAAA2AsQAB8AAABJBgAA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"); // src/core/parser/Parser.ts var Parser = class { - parse_commands(content, object) { - return __async(this, null, function* () { - content = yield renderAsync(content, object, { - varName: "tp", - parse: { - exec: "*", - interpolate: "~", - raw: "" - }, - autoTrim: false, - globalAwait: true - }); - return content; - }); + async init() { + await rusty_engine_default(rusty_engine_bg_default); + const config = new ParserConfig("<%", "%>", "\0", "*", "-", "_", "tR"); + this.renderer = new Renderer(config); + } + async parse_commands(content, context) { + return this.renderer.render_content(content, context); } }; @@ -3692,20 +3605,18 @@ var RunMode; RunMode2[RunMode2["StartupTemplate"] = 5] = "StartupTemplate"; })(RunMode || (RunMode = {})); var Templater = class { - constructor(app, plugin) { - this.app = app; + constructor(plugin) { this.plugin = plugin; - this.functions_generator = new FunctionsGenerator(this.app, this.plugin); + this.functions_generator = new FunctionsGenerator(this.plugin); this.parser = new Parser(); } - setup() { - return __async(this, null, function* () { - yield this.functions_generator.init(); - this.plugin.registerMarkdownPostProcessor((el, ctx) => this.process_dynamic_templates(el, ctx)); - }); + async setup() { + await this.parser.init(); + await this.functions_generator.init(); + this.plugin.registerMarkdownPostProcessor((el, ctx) => this.process_dynamic_templates(el, ctx)); } create_running_config(template_file, target_file, run_mode) { - const active_file = this.app.workspace.getActiveFile(); + const active_file = app.workspace.getActiveFile(); return { template_file, target_file, @@ -3713,190 +3624,168 @@ var Templater = class { active_file }; } - read_and_parse_template(config2) { - return __async(this, null, function* () { - const template_content = yield this.app.vault.read(config2.template_file); - return this.parse_template(config2, template_content); - }); + async read_and_parse_template(config) { + const template_content = await app.vault.read(config.template_file); + return this.parse_template(config, template_content); } - parse_template(config2, template_content) { - return __async(this, null, function* () { - const functions_object = yield this.functions_generator.generate_object(config2, FunctionsMode.USER_INTERNAL); - this.current_functions_object = functions_object; - const content = yield this.parser.parse_commands(template_content, functions_object); - return content; - }); + async parse_template(config, template_content) { + const functions_object = await this.functions_generator.generate_object(config, FunctionsMode.USER_INTERNAL); + this.current_functions_object = functions_object; + const content = await this.parser.parse_commands(template_content, functions_object); + return content; } - create_new_note_from_template(template, folder, filename, open_new_note = true) { - return __async(this, null, function* () { - if (!folder) { - const new_file_location = this.app.vault.getConfig("newFileLocation"); - switch (new_file_location) { - case "current": { - const active_file = this.app.workspace.getActiveFile(); - if (active_file) { - folder = active_file.parent; - } - break; + async create_new_note_from_template(template, folder, filename, open_new_note = true) { + if (!folder) { + const new_file_location = app.vault.getConfig("newFileLocation"); + switch (new_file_location) { + case "current": { + const active_file = app.workspace.getActiveFile(); + if (active_file) { + folder = active_file.parent; } - case "folder": - folder = this.app.fileManager.getNewFileParent(""); - break; - case "root": - folder = this.app.vault.getRoot(); - break; - default: - break; + break; } + case "folder": + folder = app.fileManager.getNewFileParent(""); + break; + case "root": + folder = app.vault.getRoot(); + break; + default: + break; } - const created_note = yield this.app.fileManager.createNewMarkdownFile(folder, filename != null ? filename : "Untitled"); - let running_config; - let output_content; - if (template instanceof import_obsidian14.TFile) { - running_config = this.create_running_config(template, created_note, 0); - output_content = yield errorWrapper(() => __async(this, null, function* () { - return this.read_and_parse_template(running_config); - }), "Template parsing error, aborting."); - } else { - running_config = this.create_running_config(void 0, created_note, 0); - output_content = yield errorWrapper(() => __async(this, null, function* () { - return this.parse_template(running_config, template); - }), "Template parsing error, aborting."); - } - if (output_content == null) { - yield this.app.vault.delete(created_note); + } + const created_note = await app.fileManager.createNewMarkdownFile(folder, filename ?? "Untitled"); + let running_config; + let output_content; + if (template instanceof import_obsidian13.TFile) { + running_config = this.create_running_config(template, created_note, 0); + output_content = await errorWrapper(async () => this.read_and_parse_template(running_config), "Template parsing error, aborting."); + } else { + running_config = this.create_running_config(void 0, created_note, 0); + output_content = await errorWrapper(async () => this.parse_template(running_config, template), "Template parsing error, aborting."); + } + if (output_content == null) { + await app.vault.delete(created_note); + return; + } + await app.vault.modify(created_note, output_content); + app.workspace.trigger("templater:new-note-from-template", { + file: created_note, + content: output_content + }); + if (open_new_note) { + const active_leaf = app.workspace.getLeaf(false); + if (!active_leaf) { + log_error(new TemplaterError("No active leaf")); return; } - yield this.app.vault.modify(created_note, output_content); - this.app.workspace.trigger("templater:new-note-from-template", { - file: created_note, - content: output_content + await active_leaf.openFile(created_note, { + state: { mode: "source" } }); - if (open_new_note) { - const active_leaf = this.app.workspace.activeLeaf; - if (!active_leaf) { - log_error(new TemplaterError("No active leaf")); - return; - } - yield active_leaf.openFile(created_note, { - state: { mode: "source" } - }); - yield this.plugin.editor_handler.jump_to_next_cursor_location(created_note, true); - active_leaf.setEphemeralState({ - rename: "all" - }); - } - return created_note; - }); + await this.plugin.editor_handler.jump_to_next_cursor_location(created_note, true); + active_leaf.setEphemeralState({ + rename: "all" + }); + } + return created_note; } - append_template_to_active_file(template_file) { - return __async(this, null, function* () { - const active_view = this.app.workspace.getActiveViewOfType(import_obsidian14.MarkdownView); - if (active_view === null) { - log_error(new TemplaterError("No active view, can't append templates.")); - return; - } - const running_config = this.create_running_config(template_file, active_view.file, 1); - const output_content = yield errorWrapper(() => __async(this, null, function* () { - return this.read_and_parse_template(running_config); - }), "Template parsing error, aborting."); - if (output_content == null) { - return; - } - const editor = active_view.editor; - const doc = editor.getDoc(); - const oldSelections = doc.listSelections(); - doc.replaceSelection(output_content); - this.app.workspace.trigger("templater:template-appended", { - view: active_view, - content: output_content, - oldSelections, - newSelections: doc.listSelections() - }); - yield this.plugin.editor_handler.jump_to_next_cursor_location(active_view.file, true); + async append_template_to_active_file(template_file) { + const active_view = app.workspace.getActiveViewOfType(import_obsidian13.MarkdownView); + if (active_view === null) { + log_error(new TemplaterError("No active view, can't append templates.")); + return; + } + const running_config = this.create_running_config(template_file, active_view.file, 1); + const output_content = await errorWrapper(async () => this.read_and_parse_template(running_config), "Template parsing error, aborting."); + if (output_content == null) { + return; + } + const editor = active_view.editor; + const doc = editor.getDoc(); + const oldSelections = doc.listSelections(); + doc.replaceSelection(output_content); + app.workspace.trigger("templater:template-appended", { + view: active_view, + content: output_content, + oldSelections, + newSelections: doc.listSelections() }); + await this.plugin.editor_handler.jump_to_next_cursor_location(active_view.file, true); } - write_template_to_file(template_file, file) { - return __async(this, null, function* () { - const running_config = this.create_running_config(template_file, file, 2); - const output_content = yield errorWrapper(() => __async(this, null, function* () { - return this.read_and_parse_template(running_config); - }), "Template parsing error, aborting."); - if (output_content == null) { - return; - } - yield this.app.vault.modify(file, output_content); - this.app.workspace.trigger("templater:new-note-from-template", { - file, - content: output_content - }); - yield this.plugin.editor_handler.jump_to_next_cursor_location(file, true); + async write_template_to_file(template_file, file) { + const running_config = this.create_running_config(template_file, file, 2); + const output_content = await errorWrapper(async () => this.read_and_parse_template(running_config), "Template parsing error, aborting."); + if (output_content == null) { + return; + } + await app.vault.modify(file, output_content); + app.workspace.trigger("templater:new-note-from-template", { + file, + content: output_content }); + await this.plugin.editor_handler.jump_to_next_cursor_location(file, true); } overwrite_active_file_commands() { - const active_view = this.app.workspace.getActiveViewOfType(import_obsidian14.MarkdownView); + const active_view = app.workspace.getActiveViewOfType(import_obsidian13.MarkdownView); if (active_view === null) { log_error(new TemplaterError("Active view is null, can't overwrite content")); return; } this.overwrite_file_commands(active_view.file, true); } - overwrite_file_commands(file, active_file = false) { - return __async(this, null, function* () { - const running_config = this.create_running_config(file, file, active_file ? 3 : 2); - const output_content = yield errorWrapper(() => __async(this, null, function* () { - return this.read_and_parse_template(running_config); - }), "Template parsing error, aborting."); - if (output_content == null) { - return; - } - yield this.app.vault.modify(file, output_content); - this.app.workspace.trigger("templater:overwrite-file", { - file, - content: output_content - }); - yield this.plugin.editor_handler.jump_to_next_cursor_location(file, true); + async overwrite_file_commands(file, active_file = false) { + const running_config = this.create_running_config(file, file, active_file ? 3 : 2); + const output_content = await errorWrapper(async () => this.read_and_parse_template(running_config), "Template parsing error, aborting."); + if (output_content == null) { + return; + } + await app.vault.modify(file, output_content); + app.workspace.trigger("templater:overwrite-file", { + file, + content: output_content }); + await this.plugin.editor_handler.jump_to_next_cursor_location(file, true); } - process_dynamic_templates(el, ctx) { - return __async(this, null, function* () { - const dynamic_command_regex = generate_dynamic_command_regex(); - const walker = document.createNodeIterator(el, NodeFilter.SHOW_TEXT); - let node; - let pass = false; - let functions_object; - while (node = walker.nextNode()) { - let content = node.nodeValue; - let match; - if ((match = dynamic_command_regex.exec(content)) != null) { - const file = this.app.metadataCache.getFirstLinkpathDest("", ctx.sourcePath); - if (!file || !(file instanceof import_obsidian14.TFile)) { + async process_dynamic_templates(el, ctx) { + const dynamic_command_regex = generate_dynamic_command_regex(); + const walker = document.createNodeIterator(el, NodeFilter.SHOW_TEXT); + let node; + let pass = false; + let functions_object; + while (node = walker.nextNode()) { + let content = node.nodeValue; + if (content !== null) { + let match = dynamic_command_regex.exec(content); + if (match !== null) { + const file = app.metadataCache.getFirstLinkpathDest("", ctx.sourcePath); + if (!file || !(file instanceof import_obsidian13.TFile)) { return; } if (!pass) { pass = true; - const config2 = this.create_running_config(file, file, 4); - functions_object = yield this.functions_generator.generate_object(config2, FunctionsMode.USER_INTERNAL); + const config = this.create_running_config(file, file, 4); + functions_object = await this.functions_generator.generate_object(config, FunctionsMode.USER_INTERNAL); this.current_functions_object = functions_object; } - while (match != null) { - const complete_command = match[1] + match[2]; - const command_output = yield errorWrapper(() => __async(this, null, function* () { - return yield this.parser.parse_commands(complete_command, functions_object); - }), `Command Parsing error in dynamic command '${complete_command}'`); - if (command_output == null) { - return; - } - const start2 = dynamic_command_regex.lastIndex - match[0].length; - const end2 = dynamic_command_regex.lastIndex; - content = content.substring(0, start2) + command_output + content.substring(end2); - dynamic_command_regex.lastIndex += command_output.length - match[0].length; - match = dynamic_command_regex.exec(content); - } - node.nodeValue = content; } + while (match != null) { + const complete_command = match[1] + match[2]; + const command_output = await errorWrapper(async () => { + return await this.parser.parse_commands(complete_command, functions_object); + }, `Command Parsing error in dynamic command '${complete_command}'`); + if (command_output == null) { + return; + } + const start2 = dynamic_command_regex.lastIndex - match[0].length; + const end2 = dynamic_command_regex.lastIndex; + content = content.substring(0, start2) + command_output + content.substring(end2); + dynamic_command_regex.lastIndex += command_output.length - match[0].length; + match = dynamic_command_regex.exec(content); + } + node.nodeValue = content; } - }); + } } get_new_file_template_for_folder(folder) { do { @@ -3907,63 +3796,60 @@ var Templater = class { folder = folder.parent; } while (folder); } - static on_file_creation(templater, file) { - return __async(this, null, function* () { - if (!(file instanceof import_obsidian14.TFile) || file.extension !== "md") { + static async on_file_creation(templater, file) { + if (!(file instanceof import_obsidian13.TFile) || file.extension !== "md") { + return; + } + const template_folder = (0, import_obsidian13.normalizePath)(templater.plugin.settings.templates_folder); + if (file.path.includes(template_folder) && template_folder !== "/") { + return; + } + await delay(300); + if (file.stat.size == 0 && templater.plugin.settings.enable_folder_templates) { + const folder_template_match = templater.get_new_file_template_for_folder(file.parent); + if (!folder_template_match) { return; } - const template_folder = (0, import_obsidian14.normalizePath)(templater.plugin.settings.templates_folder); - if (file.path.includes(template_folder) && template_folder !== "/") { + const template_file = await errorWrapper(async () => { + return resolve_tfile(folder_template_match); + }, `Couldn't find template ${folder_template_match}`); + if (template_file == null) { return; } - yield delay(300); - if (file.stat.size == 0 && templater.plugin.settings.enable_folder_templates) { - const folder_template_match = templater.get_new_file_template_for_folder(file.parent); - if (!folder_template_match) { - return; - } - const template_file = yield errorWrapper(() => __async(this, null, function* () { - return resolve_tfile(templater.app, folder_template_match); - }), `Couldn't find template ${folder_template_match}`); - if (template_file == null) { - return; - } - yield templater.write_template_to_file(template_file, file); + await templater.write_template_to_file(template_file, file); + } else { + if (file.stat.size <= 1e5) { + await templater.overwrite_file_commands(file); } else { - yield templater.overwrite_file_commands(file); + console.log(`Templater skipped parsing ${file.path} because file size exceeds 10000`); } - }); + } } - execute_startup_scripts() { - return __async(this, null, function* () { - for (const template of this.plugin.settings.startup_templates) { - if (!template) { - continue; - } - const file = errorWrapperSync(() => resolve_tfile(this.app, template), `Couldn't find startup template "${template}"`); - if (!file) { - continue; - } - const running_config = this.create_running_config(file, file, 5); - yield errorWrapper(() => __async(this, null, function* () { - return this.read_and_parse_template(running_config); - }), `Startup Template parsing error, aborting.`); + async execute_startup_scripts() { + for (const template of this.plugin.settings.startup_templates) { + if (!template) { + continue; } - }); + const file = errorWrapperSync(() => resolve_tfile(template), `Couldn't find startup template "${template}"`); + if (!file) { + continue; + } + const running_config = this.create_running_config(file, file, 5); + await errorWrapper(async () => this.read_and_parse_template(running_config), `Startup Template parsing error, aborting.`); + } } }; // src/handlers/EventHandler.ts -var import_obsidian15 = __toModule(require("obsidian")); +var import_obsidian14 = __toModule(require("obsidian")); var EventHandler = class { - constructor(app, plugin, templater, settings) { - this.app = app; + constructor(plugin, templater, settings) { this.plugin = plugin; this.templater = templater; this.settings = settings; } setup() { - this.app.workspace.onLayoutReady(() => { + app.workspace.onLayoutReady(() => { this.update_trigger_file_on_creation(); }); this.update_syntax_highlighting(); @@ -3971,36 +3857,36 @@ var EventHandler = class { } update_syntax_highlighting() { if (this.plugin.settings.syntax_highlighting) { - this.syntax_highlighting_event = this.app.workspace.on("codemirror", (cm) => { + this.syntax_highlighting_event = app.workspace.on("codemirror", (cm) => { cm.setOption("mode", "templater"); }); - this.app.workspace.iterateCodeMirrors((cm) => { + app.workspace.iterateCodeMirrors((cm) => { cm.setOption("mode", "templater"); }); this.plugin.registerEvent(this.syntax_highlighting_event); } else { if (this.syntax_highlighting_event) { - this.app.vault.offref(this.syntax_highlighting_event); + app.vault.offref(this.syntax_highlighting_event); } - this.app.workspace.iterateCodeMirrors((cm) => { + app.workspace.iterateCodeMirrors((cm) => { cm.setOption("mode", "hypermd"); }); } } update_trigger_file_on_creation() { if (this.settings.trigger_on_file_creation) { - this.trigger_on_file_creation_event = this.app.vault.on("create", (file) => Templater.on_file_creation(this.templater, file)); + this.trigger_on_file_creation_event = app.vault.on("create", (file) => Templater.on_file_creation(this.templater, file)); this.plugin.registerEvent(this.trigger_on_file_creation_event); } else { if (this.trigger_on_file_creation_event) { - this.app.vault.offref(this.trigger_on_file_creation_event); + app.vault.offref(this.trigger_on_file_creation_event); this.trigger_on_file_creation_event = void 0; } } } update_file_menu() { - this.plugin.registerEvent(this.app.workspace.on("file-menu", (menu, file) => { - if (file instanceof import_obsidian15.TFolder) { + this.plugin.registerEvent(app.workspace.on("file-menu", (menu, file) => { + if (file instanceof import_obsidian14.TFolder) { menu.addItem((item) => { item.setTitle("Create new note from template").setIcon("templater-icon").onClick(() => { this.plugin.fuzzy_suggester.create_new_note_from_template(file); @@ -4013,8 +3899,7 @@ var EventHandler = class { // src/handlers/CommandHandler.ts var CommandHandler = class { - constructor(app, plugin) { - this.app = app; + constructor(plugin) { this.plugin = plugin; } setup() { @@ -4086,7 +3971,7 @@ var CommandHandler = class { id: new_template, name: `Insert ${new_template}`, callback: () => { - const template = errorWrapperSync(() => resolve_tfile(this.app, new_template), `Couldn't find the template file associated with this hotkey`); + const template = errorWrapperSync(() => resolve_tfile(new_template), `Couldn't find the template file associated with this hotkey`); if (!template) { return; } @@ -4097,35 +3982,36 @@ var CommandHandler = class { } remove_template_hotkey(template) { if (template) { - this.app.commands.removeCommand(`${this.plugin.manifest.id}:${template}`); + app.commands.removeCommand(`${this.plugin.manifest.id}:${template}`); } } }; // src/editor/Editor.ts -var import_obsidian18 = __toModule(require("obsidian")); +var import_obsidian17 = __toModule(require("obsidian")); // src/editor/CursorJumper.ts -var import_obsidian16 = __toModule(require("obsidian")); +var import_obsidian15 = __toModule(require("obsidian")); var CursorJumper = class { - constructor(app) { - this.app = app; + constructor() { } - jump_to_next_cursor_location() { - return __async(this, null, function* () { - const active_view = this.app.workspace.getActiveViewOfType(import_obsidian16.MarkdownView); - if (!active_view) { - return; - } - const active_file = active_view.file; - yield active_view.save(); - const content = yield this.app.vault.read(active_file); - const { new_content, positions } = this.replace_and_get_cursor_positions(content); - if (positions) { - yield this.app.vault.modify(active_file, new_content); - this.set_cursor_location(positions); - } - }); + async jump_to_next_cursor_location() { + const active_view = app.workspace.getActiveViewOfType(import_obsidian15.MarkdownView); + if (!active_view) { + return; + } + const active_file = active_view.file; + await active_view.save(); + const content = await app.vault.read(active_file); + const { new_content, positions } = this.replace_and_get_cursor_positions(content); + if (positions) { + await app.vault.modify(active_file, new_content); + this.set_cursor_location(positions); + } + if (app.vault.getConfig("vimMode")) { + const cm = active_view.editor.cm.cm; + window.CodeMirrorAdapter.Vim.handleKey(cm, "i", "mapping"); + } } get_editor_position_from_index(content, index) { const substr = content.slice(0, index); @@ -4149,7 +4035,7 @@ var CursorJumper = class { return {}; } cursor_matches.sort((m1, m2) => { - return Number(m1.groups["order"]) - Number(m2.groups["order"]); + return Number(m1.groups && m1.groups["order"]) - Number(m2.groups && m2.groups["order"]); }); const match_str = cursor_matches[0][0]; cursor_matches = cursor_matches.filter((m) => { @@ -4169,7 +4055,7 @@ var CursorJumper = class { return { new_content: content, positions }; } set_cursor_location(positions) { - const active_view = this.app.workspace.getActiveViewOfType(import_obsidian16.MarkdownView); + const active_view = app.workspace.getActiveViewOfType(import_obsidian15.MarkdownView); if (!active_view) { return; } @@ -4186,14 +4072,23 @@ var CursorJumper = class { }; // src/editor/Autocomplete.ts -var import_obsidian17 = __toModule(require("obsidian")); +var import_obsidian16 = __toModule(require("obsidian")); -// toml:/workspace/Templater/docs/documentation.toml -var tp = { config: { name: "config", description: "This module exposes Templater's running configuration.\n\nThis is mostly useful when writing scripts requiring some context information.\n", functions: { template_file: { name: "template_file", description: "The `TFile` object representing the template file.", definition: "tp.file.template_file" }, target_file: { name: "target_file", description: "The `TFile` object representing the target file where the template will be inserted.", definition: "tp.config.target_file" }, run_mode: { name: "run_mode", description: "The `RunMode`, representing the way Templater was launched (Create new from template, Append to active file, ...)", definition: "tp.config.run_mode" }, active_file: { name: "active_file", description: "The active file (if existing) when launching Templater.", definition: "tp.config.active_file?" } } }, date: { name: "date", description: "This module contains every internal function related to dates.", functions: { now: { name: "now", description: "Retrieves the date.", definition: 'tp.date.now(format: string = "YYYY-MM-DD", offset?: number\u23AEstring, reference?: string, reference_format?: string)', args: { format: { name: "format", description: "Format for the date, refer to [format reference](https://momentjs.com/docs/#/displaying/format/)" }, offset: { name: "offset", description: "Offset for the day, e.g. set this to `-7` to get last week's date. You can also specify the offset as a string using the ISO 8601 format" }, reference: { name: "reference", description: "The date referential, e.g. set this to the note's title" }, reference_format: { name: "reference_format", description: "The date reference format." } } }, tomorrow: { name: "tomorrow", description: "Retrieves tomorrow's date.", definition: 'tp.date.tomorrow(format: string = "YYYY-MM-DD")', args: { format: { name: "format", description: "Format for the date, refer to [format reference](https://momentjs.com/docs/#/displaying/format/)" } } }, yesterday: { name: "yesterday", description: "Retrieves yesterday's date.", definition: 'tp.date.yesterday(format: string = "YYYY-MM-DD")', args: { format: { name: "format", description: "Format for the date, refer to [format reference](https://momentjs.com/docs/#/displaying/format/)" } } }, weekday: { name: "weekday", description: "", definition: 'tp.date.weekday(format: string = "YYYY-MM-DD", weekday: number, reference?: string, reference_format?: string)', args: { format: { name: "format", description: "Format for the date, refer to [format reference](https://momentjs.com/docs/#/displaying/format/)" }, weekday: { name: "weekday", description: "Week day number. If the locale assigns Monday as the first day of the week, `0` will be Monday, `-7` will be last week's day." }, reference: { name: "reference", description: "The date referential, e.g. set this to the note's title" }, reference_format: { name: "reference_format", description: "The date reference format." } } } } }, file: { name: "file", description: "This module contains every internal function related to files.", functions: { content: { name: "content", description: "Retrieves the file's content", definition: "tp.file.content" }, create_new: { name: "create_new", description: "Creates a new file using a specified template or with a specified content.", definition: "tp.file.create_new(template: TFile \u23AE string, filename?: string, open_new: boolean = false, folder?: TFolder)", args: { template: { name: "template", description: "Either the template used for the new file content, or the file content as a string." }, filename: { name: "filename", description: 'The filename of the new file, defaults to "Untitled".' }, open_new: { name: "open_new", description: "Whether to open or not the newly created file. Warning: if you use this option, since commands are executed asynchronously, the file can be opened first and then other commands are appended to that new file and not the previous file." }, folder: { name: "folder", description: "The folder to put the new file in, defaults to obsidian's default location." } } }, creation_date: { name: "creation_date", description: "Retrieves the file's creation date.", definition: 'tp.file.creation_date(format: string = "YYYY-MM-DD HH:mm")', args: { format: { name: "format", description: "Format for the date, refer to format reference" } } }, cursor: { name: "cursor", description: "Sets the cursor to this location after the template has been inserted. \n\nYou can navigate between the different tp.file.cursor using the configured hotkey in obsidian settings.\n", definition: "tp.file.cursor(order?: number)", args: { order: { name: "order", description: "The order of the different cursors jump, e.g. it will jump from 1 to 2 to 3, and so on.\nIf you specify multiple tp.file.cursor with the same order, the editor will switch to multi-cursor.\n" } } }, cursor_append: { name: "cursor_append", description: "Appends some content after the active cursor in the file.", definition: "tp.file.cursor_append(content: string)", args: { content: { name: "content", description: "The content to append after the active cursor" } } }, exists: { name: "exists", description: "Checks if a file exists or not. Returns a true / false boolean.", definition: "tp.file.exists(filename: string)", args: { filename: { name: "filename", description: "The filename of the file we want to check existence, e.g. MyFile." } } }, find_tfile: { name: "find_tfile", description: "Retrieves the file's folder name.", definition: "tp.file.folder(relative: boolean = false)", args: { relative: { name: "relative", description: "If set to true, appends the vault relative path to the folder name." } } }, include: { name: "include", description: "Includes the file's link content. Templates in the included content will be resolved.", definition: "tp.file.include(include_link: string \u23AE TFile)", args: { include_link: { name: "include_link", description: "The link to the file to include, e.g. [[MyFile]], or a TFile object. Also supports sections or blocks inclusions, e.g. [[MyFile#Section1]]" } } }, last_modified_date: { name: "last_modified_date", description: "Retrieves the file's last modification date.", definition: 'tp.file.last_modified_date(format: string = "YYYY-MM-DD HH:mm")', args: { format: { name: "format", description: "Format for the date, refer to format reference." } } }, move: { name: "functions.move", description: "Moves the file to the desired vault location.", definition: "tp.file.move(new_path: string)", args: { new_path: { name: "new_path", description: "The new vault relative path of the file, without the file extension. Note: the new path needs to include the folder and the filename, e.g. /Notes/MyNote" } } }, path: { name: "path", description: "Retrieves the file's absolute path on the system.", definition: "tp.file.path(relative: boolean = false)", args: { relative: { name: "relative", description: "If set to true, only retrieves the vault's relative path." } } }, rename: { name: "rename", description: "Renames the file (keeps the same file extension).", definition: "tp.file.rename(new_title: string)", args: { new_title: { name: "new_title", description: "The new file title." } } }, selection: { name: "selection", description: "Retrieves the active file's text selection.", definition: "tp.file.selection()" }, tags: { name: "tags", description: "Retrieves the file's tags (array of string)", definition: "tp.file.tags" }, title: { name: "title", definition: "tp.file.title", description: "Retrieves the file's title." } } }, frontmatter: { name: "frontmatter", description: "This modules exposes all the frontmatter variables of a file as variables." }, obsidian: { name: "obsidian", description: "This module exposes all the functions and classes from the obsidian API." }, system: { name: "system", description: "This module contains system related functions.", functions: { clipboard: { name: "clipboard", description: "Retrieves the clipboard's content", definition: "tp.system.clipboard()" }, prompt: { name: "prompt", description: "Spawns a prompt modal and returns the user's input.", definition: "tp.system.prompt(prompt_text?: string, default_value?: string, throw_on_cancel: boolean = false)", args: { prompt_text: { name: "prompt_text", description: "Text placed above the input field" }, default_value: { name: "default_value", description: "A default value for the input field" }, throw_on_cancel: { name: "throw_on_cancel", description: "Throws an error if the prompt is canceled, instead of returning a `null` value" } } }, suggester: { name: "suggester", description: "Spawns a suggester prompt and returns the user's chosen item.", definition: 'tp.system.suggester(text_items: string[] \u23AE ((item: T) => string), items: T[], throw_on_cancel: boolean = false, placeholder: string = "", limit?: number = undefined)', args: { text_items: { name: "text_items", description: "Array of strings representing the text that will be displayed for each item in the suggester prompt. This can also be a function that maps an item to its text representation." }, items: { name: "items", description: "Array containing the values of each item in the correct order." }, throw_on_cancel: { name: "throw_on_cancel", description: "Throws an error if the prompt is canceled, instead of returning a `null` value" }, placeholder: { name: "placeholder", description: "Placeholder string of the prompt" }, limit: { name: "limit", description: "Limit the number of items rendered at once (useful to improve performance when displaying large lists)" } } } } }, web: { name: "web", description: "This modules contains every internal function related to the web (making web requests).", functions: { daily_quote: { name: "daily_quote", description: "\u6BCF\u65E5\u4E00\u8A00 - \u82F1\u6587\u7248", definition: "tp.web.daily_quote()" }, daily_picture: { name: "daily_picture", description: "\u6BCF\u65E5\u4E00\u56FE", definition: "tp.web.daily_picture(size?: string, query?: string)", args: { size: { name: "size", description: "\u56FE\u7247\u5C3A\u5BF8,\u4F8B\u5982 1920x1080." }, query: { name: "query", description: "\u56FE\u7247\u5173\u952E\u5B57,\u4F8B\u5982 sea(\u5927\u6D77),beach(\u6C99\u6EE9)." } } }, daily_yiyan: { name: "daily_yiyan", description: "\u6BCF\u65E5\u4E00\u8A00", definition: "tp.web.daily_yiyan(query?: string)", args: { query: { name: "query", description: "\u53C2\u6570\u53EF\u6307\u5B9A\u53E5\u5B50\u7C7B\u578B\u3001\u8FD4\u56DE\u7F16\u7801\u7B49\uFF0C\u8BE6\u7EC6\u53C2\u6570\u9605\u8BFB\u5B98\u65B9\u6587\u6863\u3002" } } }, daily_weather: { name: "daily_weather", description: "\u6BCF\u65E5\u5929\u6C14", definition: "tp.web.daily_weather(city?: string, language?: string, tformat?: string)", args: { city: { name: "city", description: "\u83B7\u53D6\u67D0\u4E00\u57CE\u5E02\u5929\u6C14" }, language: { name: "language", description: "\u8BBE\u7F6E\u8BED\u8A00" }, tformat: { name: "tformat", description: "\u8F93\u51FA\u683C\u5F0F\u5316\u5929\u6C14" } } }, daily_poetry: { name: "daily_poetry", description: "\u6BCF\u65E5\u8BD7\u8BCD", definition: "tp.web.daily_poetry()" } } } }; +// toml:/home/runner/work/Templater/Templater/docs/documentation.toml +var tp = { config: { name: "config", description: "This module exposes Templater's running configuration.\n\nThis is mostly useful when writing scripts requiring some context information.\n", functions: { template_file: { name: "template_file", description: "The `TFile` object representing the template file.", definition: "tp.file.template_file" }, target_file: { name: "target_file", description: "The `TFile` object representing the target file where the template will be inserted.", definition: "tp.config.target_file" }, run_mode: { name: "run_mode", description: "The `RunMode`, representing the way Templater was launched (Create new from template, Append to active file, ...)", definition: "tp.config.run_mode" }, active_file: { name: "active_file", description: "The active file (if existing) when launching Templater.", definition: "tp.config.active_file?" } } }, date: { name: "date", description: "This module contains every internal function related to dates.", functions: { now: { name: "now", description: "Retrieves the date.", definition: 'tp.date.now(format: string = "YYYY-MM-DD", offset?: number\u23AEstring, reference?: string, reference_format?: string)', args: { format: { name: "format", description: "Format for the date, refer to [format reference](https://momentjs.com/docs/#/displaying/format/)" }, offset: { name: "offset", description: "Offset for the day, e.g. set this to `-7` to get last week's date. You can also specify the offset as a string using the ISO 8601 format" }, reference: { name: "reference", description: "The date referential, e.g. set this to the note's title" }, reference_format: { name: "reference_format", description: "The date reference format." } } }, tomorrow: { name: "tomorrow", description: "Retrieves tomorrow's date.", definition: 'tp.date.tomorrow(format: string = "YYYY-MM-DD")', args: { format: { name: "format", description: "Format for the date, refer to [format reference](https://momentjs.com/docs/#/displaying/format/)" } } }, yesterday: { name: "yesterday", description: "Retrieves yesterday's date.", definition: 'tp.date.yesterday(format: string = "YYYY-MM-DD")', args: { format: { name: "format", description: "Format for the date, refer to [format reference](https://momentjs.com/docs/#/displaying/format/)" } } }, weekday: { name: "weekday", description: "", definition: 'tp.date.weekday(format: string = "YYYY-MM-DD", weekday: number, reference?: string, reference_format?: string)', args: { format: { name: "format", description: "Format for the date, refer to [format reference](https://momentjs.com/docs/#/displaying/format/)" }, weekday: { name: "weekday", description: "Week day number. If the locale assigns Monday as the first day of the week, `0` will be Monday, `-7` will be last week's day." }, reference: { name: "reference", description: "The date referential, e.g. set this to the note's title" }, reference_format: { name: "reference_format", description: "The date reference format." } } } } }, file: { name: "file", description: "This module contains every internal function related to files.", functions: { content: { name: "content", description: "Retrieves the file's content", definition: "tp.file.content" }, create_new: { name: "create_new", description: "Creates a new file using a specified template or with a specified content.", definition: "tp.file.create_new(template: TFile \u23AE string, filename?: string, open_new: boolean = false, folder?: TFolder)", args: { template: { name: "template", description: "Either the template used for the new file content, or the file content as a string. If it is the template to use, you retrieve it with `tp.file.find_tfile(TEMPLATENAME)`" }, filename: { name: "filename", description: 'The filename of the new file, defaults to "Untitled".' }, open_new: { name: "open_new", description: "Whether to open or not the newly created file. Warning: if you use this option, since commands are executed asynchronously, the file can be opened first and then other commands are appended to that new file and not the previous file." }, folder: { name: "folder", description: 'The folder to put the new file in, defaults to obsidian\'s default location. If you want the file to appear in a different folder, specify it with `app.vault.getAbstractFileByPath("FOLDERNAME")`' } } }, creation_date: { name: "creation_date", description: "Retrieves the file's creation date.", definition: 'tp.file.creation_date(format: string = "YYYY-MM-DD HH:mm")', args: { format: { name: "format", description: "Format for the date, refer to format reference" } } }, cursor: { name: "cursor", description: "Sets the cursor to this location after the template has been inserted. \n\nYou can navigate between the different tp.file.cursor using the configured hotkey in obsidian settings.\n", definition: "tp.file.cursor(order?: number)", args: { order: { name: "order", description: "The order of the different cursors jump, e.g. it will jump from 1 to 2 to 3, and so on.\nIf you specify multiple tp.file.cursor with the same order, the editor will switch to multi-cursor.\n" } } }, cursor_append: { name: "cursor_append", description: "Appends some content after the active cursor in the file.", definition: "tp.file.cursor_append(content: string)", args: { content: { name: "content", description: "The content to append after the active cursor" } } }, exists: { name: "exists", description: "The filename of the file we want to check existence. The fullpath to the file, relative to the Vault and containing the extension, must be provided. e.g. MyFolder/SubFolder/MyFile.", definition: "tp.file.exists(filename: string)", args: { filename: { name: "filename", description: "The filename of the file we want to check existence, e.g. MyFile." } } }, find_tfile: { name: "find_tfile", description: "Search for a file and returns its `TFile` instance", definition: "tp.file.find_tfile(filename: string)", args: { filename: { name: "filename", description: "The filename we want to search and resolve as a `TFile`" } } }, folder: { name: "folder", description: "Retrieves the file's folder name.", definition: "tp.file.folder(relative: boolean = false)", args: { relative: { name: "relative", description: "If set to true, appends the vault relative path to the folder name." } } }, include: { name: "include", description: "Includes the file's link content. Templates in the included content will be resolved.", definition: "tp.file.include(include_link: string \u23AE TFile)", args: { include_link: { name: "include_link", description: "The link to the file to include, e.g. [[MyFile]], or a TFile object. Also supports sections or blocks inclusions, e.g. [[MyFile#Section1]]" } } }, last_modified_date: { name: "last_modified_date", description: "Retrieves the file's last modification date.", definition: 'tp.file.last_modified_date(format: string = "YYYY-MM-DD HH:mm")', args: { format: { name: "format", description: "Format for the date, refer to format reference." } } }, move: { name: "functions.move", description: "Moves the file to the desired vault location.", definition: "tp.file.move(new_path: string, file_to_move?: TFile)", args: { new_path: { name: "new_path", description: "The new vault relative path of the file, without the file extension. Note: the new path needs to include the folder and the filename, e.g. /Notes/MyNote" } } }, path: { name: "path", description: "Retrieves the file's absolute path on the system.", definition: "tp.file.path(relative: boolean = false)", args: { relative: { name: "relative", description: "If set to true, only retrieves the vault's relative path." } } }, rename: { name: "rename", description: "Renames the file (keeps the same file extension).", definition: "tp.file.rename(new_title: string)", args: { new_title: { name: "new_title", description: "The new file title." } } }, selection: { name: "selection", description: "Retrieves the active file's text selection.", definition: "tp.file.selection()" }, tags: { name: "tags", description: "Retrieves the file's tags (array of string)", definition: "tp.file.tags" }, title: { name: "title", definition: "tp.file.title", description: "Retrieves the file's title." } } }, frontmatter: { name: "frontmatter", description: "This modules exposes all the frontmatter variables of a file as variables." }, obsidian: { name: "obsidian", description: "This module exposes all the functions and classes from the obsidian API." }, system: { name: "system", description: "This module contains system related functions.", functions: { clipboard: { name: "clipboard", description: "Retrieves the clipboard's content", definition: "tp.system.clipboard()" }, prompt: { name: "prompt", description: "Spawns a prompt modal and returns the user's input.", definition: "tp.system.prompt(prompt_text?: string, default_value?: string, throw_on_cancel: boolean = false, multiline?: boolean = false)", args: { prompt_text: { name: "prompt_text", description: "Text placed above the input field" }, default_value: { name: "default_value", description: "A default value for the input field" }, throw_on_cancel: { name: "throw_on_cancel", description: "Throws an error if the prompt is canceled, instead of returning a `null` value" }, multiline: { name: "multiline", description: "If set to true, the input field will be a multiline textarea" } } }, suggester: { name: "suggester", description: "Spawns a suggester prompt and returns the user's chosen item.", definition: 'tp.system.suggester(text_items: string[] \u23AE ((item: T) => string), items: T[], throw_on_cancel: boolean = false, placeholder: string = "", limit?: number = undefined)', args: { text_items: { name: "text_items", description: "Array of strings representing the text that will be displayed for each item in the suggester prompt. This can also be a function that maps an item to its text representation." }, items: { name: "items", description: "Array containing the values of each item in the correct order." }, throw_on_cancel: { name: "throw_on_cancel", description: "Throws an error if the prompt is canceled, instead of returning a `null` value" }, placeholder: { name: "placeholder", description: "Placeholder string of the prompt" }, limit: { name: "limit", description: "Limit the number of items rendered at once (useful to improve performance when displaying large lists)" } } } } }, web: { name: "web", description: "This modules contains every internal function related to the web (making web requests).", functions: { daily_quote: { name: "daily_quote", description: "Retrieves and parses the daily quote from the API https://api.quotable.io", definition: "tp.web.daily_quote()" }, random_picture: { name: "random_picture", description: "Gets a random image from https://unsplash.com/", definition: "tp.web.random_picture(size?: string, query?: string, include_size?: boolean)", args: { size: { name: "size", description: "Image size in the format `x`" }, query: { name: "query", description: "Limits selection to photos matching a search term. Multiple search terms can be passed separated by a comma `,`" }, include_dimensions: { name: "include_size", description: "Optional argument to include the specified size in the image link markdown. Defaults to false" } } } } } }; var documentation_default = { tp }; // src/editor/TpDocumentation.ts -var module_names = ["config", "date", "file", "frontmatter", "obsidian", "system", "user", "web"]; +var module_names = [ + "config", + "date", + "file", + "frontmatter", + "obsidian", + "system", + "user", + "web" +]; var module_names_checker = new Set(module_names); function is_module_name(x) { return typeof x === "string" && module_names_checker.has(x); @@ -4205,8 +4100,7 @@ function is_function_documentation(x) { return false; } var Documentation = class { - constructor(app) { - this.app = app; + constructor() { this.documentation = documentation_default; } get_all_modules_documentation() { @@ -4214,7 +4108,7 @@ var Documentation = class { } get_all_functions_documentation(module_name) { if (!this.documentation.tp[module_name].functions) { - return null; + return; } return Object.values(this.documentation.tp[module_name].functions); } @@ -4234,26 +4128,24 @@ var Documentation = class { }; // src/editor/Autocomplete.ts -var Autocomplete = class extends import_obsidian17.EditorSuggest { - constructor(app, plugin) { +var Autocomplete = class extends import_obsidian16.EditorSuggest { + constructor() { super(app); - this.app = app; - this.plugin = plugin; this.tp_keyword_regex = /tp\.(?[a-z]*)?(?\.(?[a-z_]*)?)?$/; - this.documentation = new Documentation(this.app); + this.documentation = new Documentation(); } - onTrigger(cursor, editor, file) { + onTrigger(cursor, editor, _file) { const range = editor.getRange({ line: cursor.line, ch: 0 }, { line: cursor.line, ch: cursor.ch }); const match = this.tp_keyword_regex.exec(range); if (!match) { return null; } let query; - const module_name = match.groups["module"] || ""; + const module_name = match.groups && match.groups["module"] || ""; this.module_name = module_name; - if (match.groups["fn_trigger"]) { + if (match.groups && match.groups["fn_trigger"]) { if (module_name == "" || !is_module_name(module_name)) { - return; + return null; } this.function_trigger = true; this.function_name = match.groups["fn"] || ""; @@ -4292,8 +4184,8 @@ var Autocomplete = class extends import_obsidian17.EditorSuggest { el.createEl("div", { text: value.description }); } } - selectSuggestion(value, evt) { - const active_view = this.app.workspace.getActiveViewOfType(import_obsidian17.MarkdownView); + selectSuggestion(value, _evt) { + const active_view = app.workspace.getActiveViewOfType(import_obsidian16.MarkdownView); if (!active_view) { return; } @@ -4311,8 +4203,8 @@ var Autocomplete = class extends import_obsidian17.EditorSuggest { mod(window.CodeMirror); })(function(CodeMirror) { "use strict"; - CodeMirror.defineMode("javascript", function(config2, parserConfig) { - var indentUnit = config2.indentUnit; + CodeMirror.defineMode("javascript", function(config, parserConfig) { + var indentUnit = config.indentUnit; var statementIndent = parserConfig.statementIndent; var jsonldMode = parserConfig.jsonld; var jsonMode = parserConfig.json || jsonldMode; @@ -5575,174 +5467,151 @@ var Autocomplete = class extends import_obsidian17.EditorSuggest { }); // src/editor/Editor.ts +var import_language = __toModule(require("@codemirror/language")); var TP_CMD_TOKEN_CLASS = "templater-command"; var TP_INLINE_CLASS = "templater-inline"; var TP_OPENING_TAG_TOKEN_CLASS = "templater-opening-tag"; var TP_CLOSING_TAG_TOKEN_CLASS = "templater-closing-tag"; var TP_INTERPOLATION_TAG_TOKEN_CLASS = "templater-interpolation-tag"; -var TP_RAW_TAG_TOKEN_CLASS = "templater-raw-tag"; var TP_EXEC_TAG_TOKEN_CLASS = "templater-execution-tag"; var Editor2 = class { - constructor(app, plugin) { - this.app = app; + constructor(plugin) { this.plugin = plugin; - this.cursor_jumper = new CursorJumper(this.app); + this.cursor_jumper = new CursorJumper(); } - setup() { - return __async(this, null, function* () { - yield this.registerCodeMirrorMode(); - this.plugin.registerEditorSuggest(new Autocomplete(this.app, this.plugin)); - }); + async setup() { + await this.registerCodeMirrorMode(); + this.plugin.registerEditorSuggest(new Autocomplete()); + if (import_obsidian17.Platform.isDesktopApp && this.plugin.settings.syntax_highlighting) { + this.plugin.registerEditorExtension(import_language.StreamLanguage.define(window.CodeMirror.getMode({}, { name: "templater" }))); + } } - jump_to_next_cursor_location(file = null, auto_jump = false) { - return __async(this, null, function* () { - if (auto_jump && !this.plugin.settings.auto_jump_to_cursor) { - return; - } - if (file && this.app.workspace.getActiveFile() !== file) { - return; - } - yield this.cursor_jumper.jump_to_next_cursor_location(); - }); + async jump_to_next_cursor_location(file = null, auto_jump = false) { + if (auto_jump && !this.plugin.settings.auto_jump_to_cursor) { + return; + } + if (file && app.workspace.getActiveFile() !== file) { + return; + } + await this.cursor_jumper.jump_to_next_cursor_location(); } - registerCodeMirrorMode() { - return __async(this, null, function* () { - if (!this.plugin.settings.syntax_highlighting) { - return; - } - if (import_obsidian18.Platform.isMobileApp) { - return; - } - const js_mode = window.CodeMirror.getMode({}, "javascript"); - if (js_mode.name === "null") { - log_error(new TemplaterError("Javascript syntax mode couldn't be found, can't enable syntax highlighting.")); - return; - } - const overlay_mode = window.CodeMirror.customOverlayMode; - if (overlay_mode == null) { - log_error(new TemplaterError("Couldn't find customOverlayMode, can't enable syntax highlighting.")); - return; - } - window.CodeMirror.defineMode("templater", function(config2) { - const templaterOverlay = { - startState: function() { - const js_state = window.CodeMirror.startState(js_mode); - return __spreadProps(__spreadValues({}, js_state), { - inCommand: false, - tag_class: "", - freeLine: false - }); - }, - copyState: function(state) { - const js_state = window.CodeMirror.startState(js_mode); - const new_state = __spreadProps(__spreadValues({}, js_state), { - inCommand: state.inCommand, - tag_class: state.tag_class, - freeLine: state.freeLine - }); - return new_state; - }, - blankLine: function(state) { - if (state.inCommand) { - return `line-background-templater-command-bg`; - } - return null; - }, - token: function(stream, state) { - if (stream.sol() && state.inCommand) { - state.freeLine = true; - } - if (state.inCommand) { - let keywords = ""; - if (stream.match(/[-_]{0,1}%>/, true)) { - state.inCommand = false; - state.freeLine = false; - const tag_class = state.tag_class; - state.tag_class = ""; - return `line-${TP_INLINE_CLASS} ${TP_CMD_TOKEN_CLASS} ${TP_CLOSING_TAG_TOKEN_CLASS} ${tag_class}`; - } - const js_result = js_mode.token(stream, state); - if (stream.peek() == null && state.freeLine) { - keywords += ` line-background-templater-command-bg`; - } - if (!state.freeLine) { - keywords += ` line-${TP_INLINE_CLASS}`; - } - return `${keywords} ${TP_CMD_TOKEN_CLASS} ${js_result}`; - } - const match = stream.match(/<%[-_]{0,1}\s*([*~+]{0,1})/, true); - if (match != null) { - switch (match[1]) { - case "*": - state.tag_class = TP_EXEC_TAG_TOKEN_CLASS; - break; - case "~": - state.tag_class = TP_RAW_TAG_TOKEN_CLASS; - break; - default: - state.tag_class = TP_INTERPOLATION_TAG_TOKEN_CLASS; - break; - } - state.inCommand = true; - return `line-${TP_INLINE_CLASS} ${TP_CMD_TOKEN_CLASS} ${TP_OPENING_TAG_TOKEN_CLASS} ${state.tag_class}`; - } - while (stream.next() != null && !stream.match(/<%/, false)) - ; - return null; + async registerCodeMirrorMode() { + if (!this.plugin.settings.syntax_highlighting) { + return; + } + if (import_obsidian17.Platform.isMobileApp) { + return; + } + const js_mode = window.CodeMirror.getMode({}, "javascript"); + if (js_mode.name === "null") { + log_error(new TemplaterError("Javascript syntax mode couldn't be found, can't enable syntax highlighting.")); + return; + } + const overlay_mode = window.CodeMirror.customOverlayMode; + if (overlay_mode == null) { + log_error(new TemplaterError("Couldn't find customOverlayMode, can't enable syntax highlighting.")); + return; + } + window.CodeMirror.defineMode("templater", function(config) { + const templaterOverlay = { + startState: function() { + const js_state = window.CodeMirror.startState(js_mode); + return { + ...js_state, + inCommand: false, + tag_class: "", + freeLine: false + }; + }, + copyState: function(state) { + const js_state = window.CodeMirror.startState(js_mode); + const new_state = { + ...js_state, + inCommand: state.inCommand, + tag_class: state.tag_class, + freeLine: state.freeLine + }; + return new_state; + }, + blankLine: function(state) { + if (state.inCommand) { + return `line-background-templater-command-bg`; } - }; - return overlay_mode(window.CodeMirror.getMode(config2, "hypermd"), templaterOverlay); - }); + return null; + }, + token: function(stream, state) { + if (stream.sol() && state.inCommand) { + state.freeLine = true; + } + if (state.inCommand) { + let keywords = ""; + if (stream.match(/[-_]{0,1}%>/, true)) { + state.inCommand = false; + state.freeLine = false; + const tag_class = state.tag_class; + state.tag_class = ""; + return `line-${TP_INLINE_CLASS} ${TP_CMD_TOKEN_CLASS} ${TP_CLOSING_TAG_TOKEN_CLASS} ${tag_class}`; + } + const js_result = js_mode.token && js_mode.token(stream, state); + if (stream.peek() == null && state.freeLine) { + keywords += ` line-background-templater-command-bg`; + } + if (!state.freeLine) { + keywords += ` line-${TP_INLINE_CLASS}`; + } + return `${keywords} ${TP_CMD_TOKEN_CLASS} ${js_result}`; + } + const match = stream.match(/<%[-_]{0,1}\s*([*+]{0,1})/, true); + if (match != null) { + switch (match[1]) { + case "*": + state.tag_class = TP_EXEC_TAG_TOKEN_CLASS; + break; + default: + state.tag_class = TP_INTERPOLATION_TAG_TOKEN_CLASS; + break; + } + state.inCommand = true; + return `line-${TP_INLINE_CLASS} ${TP_CMD_TOKEN_CLASS} ${TP_OPENING_TAG_TOKEN_CLASS} ${state.tag_class}`; + } + while (stream.next() != null && !stream.match(/<%/, false)) + ; + return null; + } + }; + return overlay_mode(window.CodeMirror.getMode(config, "hypermd"), templaterOverlay); }); } }; // src/main.ts -var TemplaterPlugin = class extends import_obsidian19.Plugin { - onload() { - return __async(this, null, function* () { - yield this.load_settings(); - this.templater = new Templater(this.app, this); - yield this.templater.setup(); - this.editor_handler = new Editor2(this.app, this); - yield this.editor_handler.setup(); - this.fuzzy_suggester = new FuzzySuggester(this.app, this); - this.event_handler = new EventHandler(this.app, this, this.templater, this.settings); - this.event_handler.setup(); - this.command_handler = new CommandHandler(this.app, this); - this.command_handler.setup(); - (0, import_obsidian19.addIcon)("templater-icon", ICON_DATA); - this.addRibbonIcon("templater-icon", "Templater", () => __async(this, null, function* () { +var TemplaterPlugin = class extends import_obsidian18.Plugin { + async onload() { + await this.load_settings(); + this.templater = new Templater(this); + await this.templater.setup(); + this.editor_handler = new Editor2(this); + await this.editor_handler.setup(); + this.fuzzy_suggester = new FuzzySuggester(this); + this.event_handler = new EventHandler(this, this.templater, this.settings); + this.event_handler.setup(); + this.command_handler = new CommandHandler(this); + this.command_handler.setup(); + (0, import_obsidian18.addIcon)("templater-icon", ICON_DATA); + if (this.settings.enable_ribbon_icon) { + this.addRibbonIcon("templater-icon", "Templater", async () => { this.fuzzy_suggester.insert_template(); - })); - this.addSettingTab(new TemplaterSettingTab(this.app, this)); - this.app.workspace.onLayoutReady(() => { - this.templater.execute_startup_scripts(); - }); + }).setAttribute("id", "rb-templater-icon"); + } + this.addSettingTab(new TemplaterSettingTab(this)); + app.workspace.onLayoutReady(() => { + this.templater.execute_startup_scripts(); }); } - save_settings() { - return __async(this, null, function* () { - yield this.saveData(this.settings); - }); + async save_settings() { + await this.saveData(this.settings); } - load_settings() { - return __async(this, null, function* () { - this.settings = Object.assign({}, DEFAULT_SETTINGS, yield this.loadData()); - }); + async load_settings() { + this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData()); } }; -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ diff --git a/.obsidian/plugins/templater-obsidian/manifest.json b/.obsidian/plugins/templater-obsidian/manifest.json index f9634f6b..70cf5959 100644 --- a/.obsidian/plugins/templater-obsidian/manifest.json +++ b/.obsidian/plugins/templater-obsidian/manifest.json @@ -1,7 +1,7 @@ { "id": "templater-obsidian", "name": "Templater", - "version": "1.12.0", + "version": "1.16.0", "description": "Create and use templates", "minAppVersion": "0.11.13", "author": "SilentVoid", diff --git a/.obsidian/plugins/templater-obsidian/styles.css b/.obsidian/plugins/templater-obsidian/styles.css index bd49089f..207db950 100644 --- a/.obsidian/plugins/templater-obsidian/styles.css +++ b/.obsidian/plugins/templater-obsidian/styles.css @@ -24,6 +24,10 @@ align-self: center; } +.templater_donating { + margin: 10px; +} + .templater_title { margin: 0; padding: 0; @@ -63,6 +67,21 @@ flex-grow: 1; } +.templater-button-div { + display: flex; + flex-direction: column; + align-items: center; + margin-top: 1rem; +} + +textarea.templater-prompt-input { + height: 10rem; +} + +textarea.templater-prompt-input:focus { + border-color: var(--interactive-accent); +} + .cm-s-obsidian .templater-command-bg { left: 0px; right: 0px; @@ -95,10 +114,6 @@ color: #c0d700; } -.cm-s-obsidian .cm-templater-command.cm-templater-raw-tag { - color: green; -} - .theme-dark .cm-s-obsidian .cm-templater-command.cm-keyword { color: #00a7aa; font-weight: normal; diff --git a/.obsidian/themes/Minimal.css b/.obsidian/themes/Minimal.css deleted file mode 100644 index 2846a7b9..00000000 --- a/.obsidian/themes/Minimal.css +++ /dev/null @@ -1,1410 +0,0 @@ -/* --------------------------------------------------------------------------- - -Minimal Obsidian 5.3.2 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-2022 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-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: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);--minimal-version:"You are currently using Minimal 5.3.2\a\aIf you run into any issues, try updating to the latest version of the theme. It is also highly recommended to install Minimal Theme Settings and Contextual Typography plugins.\a\a Full documentation:\a minimal.guide\a\a Support my work:\a buymeacoffee.com/kepano"}:root{--cursor:default;--font-small:13px;--font-smaller:11px;--font-smallest:10px;--font-inputs:13px;--font-settings:15px;--font-settings-small:12px;--normal-weight:400;--bold-weight:600;--link-weight:inherit;--title-size:1.1em;--title-weight:600;--h1:1.125em;--h2:1.05em;--h3:1em;--h4:0.90em;--h5:0.85em;--h6: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:small-caps;--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;--blockquote-style:normal;--line-width:40rem;--line-height:1.5;--max-width:88%;--max-col-width:18em;--icon-muted:0.5;--icon-size:18px;--border-width:1px;--border-width-alt:1px;--nested-padding:1.1em;--folding-offset:10px;--list-edit-offset:0.5em;--list-indent:2em;--list-spacing:0.075em;--radius-s:2px;--radius-m:5px;--radius-l:12px;--radius-xl:16px;--input-height:32px;--header-height:40px;--mobile-left-sidebar-width:280pt;--mobile-right-sidebar-width:240pt;--tag-radius:14px;--tag-border-width:1px;--top-left-padding-y:0px;--image-muted:0.7;--spacing-p:0.75em}.mod-macos{--top-left-padding-y:24px}:root{--base-h:0;--base-s:0%;--base-d:15%;--base-l:96%;--accent-h:201;--accent-s:17%;--accent-d:60%;--accent-l:50%;--red:#d04255;--yellow:#e5b567;--green:#a8c373;--orange:#d5763f;--cyan:#73bbb2;--blue:#6c99bb;--purple:#9e86c8;--pink:#b05279}.theme-light,.theme-light.minimal-default-light,body .excalidraw{--accent-l:50%;--base-l:96%;--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) - 45%) );--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) - 10%) );--ax3:hsl( var(--accent-h), var(--accent-s), calc(var(--accent-l) + 10%) );--hl1:hsla( var(--accent-h), 50%, calc(var(--base-l) - 20%), 30% );--hl2:rgba(255, 225, 0, 0.5)}.excalidraw.theme--dark,.theme-dark,.theme-dark.minimal-default-dark,.theme-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-light-contrast .titlebar,.theme-light.minimal-light-contrast .workspace-fake-target-overlay.is-in-sidebar,.theme-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-light-contrast.is-mobile .workspace-drawer.mod-left,.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) + 12%) );--ax3:hsl( var(--accent-h), var(--accent-s), calc(var(--accent-l) - 12%) );--hl1:hsla( var(--accent-h), 70%, 40%, 30% );--hl2:rgba(255, 177, 80, 0.3);--sp1:#fff}.theme-light.minimal-light-white{--background-primary:white;--background-secondary:white;--background-secondary-alt:white}.theme-dark.minimal-dark-black{--base-d:0%;--background-primary:black;--background-secondary:black;--background-secondary-alt:black;--background-tertiary: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{--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-muted)}.excalidraw.theme--dark,.theme-dark,.theme-light,.theme-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-light-contrast .titlebar,.theme-light.minimal-light-contrast .workspace-fake-target-overlay.is-in-sidebar,.theme-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-light-contrast.is-mobile .workspace-drawer.mod-left,.theme-light.minimal-light-contrast.minimal-status-off .status-bar,body .excalidraw{--text-normal:var(--tx1);--text-bold:var(--tx1);--text-italic:var(--tx1);--text-muted:var(--tx2);--text-faint:var(--tx3);--title-color:var(--tx1);--title-color-inactive:var(--tx2);--text-code:var(--tx4);--text-error:var(--red);--text-blockquote:var(--tx2);--text-accent:var(--ax1);--text-accent-hover:var(--ax2);--text-on-accent:white;--text-selection:var(--hl1);--text-highlight-bg:var(--hl2);--background-primary:var(--bg1);--background-primary-alt:var(--bg2);--background-secondary:var(--bg2);--background-secondary-alt:var(--bg1);--background-tertiary:var(--bg3);--background-table-rows:var(--bg2);--background-modifier-form-field:var(--bg1);--background-modifier-form-field-highlighted:var(--bg1);--interactive-hover:var(--ui1);--interactive-accent:var(--ax3);--interactive-accent-hover:var(--ax3);--background-modifier-accent:var(--ax3);--background-modifier-border:var(--ui1);--background-modifier-border-hover:var(--ui2);--background-modifier-border-focus:var(--ui3);--background-modifier-success:var(--green);--background-divider:var(--ui1);--scrollbar-bg:transparent;--scrollbar-thumb-bg:var(--ui1);--scrollbar-active-thumb-bg:var(--ui3);--quote-opening-modifier:var(--ui2);--modal-border:var(--ui2);--icon-color:var(--tx2);--icon-color-hover:var(--tx2);--icon-color-active:var(--tx1);--icon-hex:var(--mono0);--tag-color:var(--tx2);--tag-bg:transparent;--tag-bg2:transparent;--shadow-m:0px 2.7px 6.7px rgba(0, 0, 0, 0.04),0px 8.9px 22.3px rgba(0, 0, 0, 0.06),0px 40px 100px rgba(0, 0, 0, 0.1);--shadow-l:0px 0.8px 4.2px rgba(0, 0, 0, 0.014),0px 2px 10px rgba(0, 0, 0, 0.02),0px 3.8px 18.8px rgba(0, 0, 0, 0.025),0px 6.7px 33.5px rgba(0, 0, 0, 0.03),0px 12.5px 62.7px rgba(0, 0, 0, 0.036),0px 30px 150px rgba(0, 0, 0, 0.05)}.theme-light,body .excalidraw{--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) - 50%),calc(var(--base-l) - 7%),0.7);--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)}.excalidraw.theme--dark,.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-d) - 12%),0.7);--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{--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:var(--font-small);--font-adaptive-smaller:var(--font-smaller);--font-adaptive-smallest:var(--font-smallest);--line-width-adaptive:var(--line-width);--line-width-wide:calc(var(--line-width) + 12.5%);--font-code:calc(var(--font-adaptive-normal) * 0.9);--table-font-size:calc(var(--font-adaptive-normal) * 0.875)}@media (max-width:400pt){.is-mobile{--font-adaptive-small:calc(var(--font-small) + 2px);--font-adaptive-smaller:calc(var(--font-smaller) + 2px);--font-adaptive-smallest:calc(var(--font-smallest) + 2px);--max-width:88%}}@media (min-width:400pt){.is-mobile{--font-adaptive-small:calc(var(--font-small) + 3px);--font-adaptive-smaller:calc(var(--font-smaller) + 2px);--font-adaptive-smallest:calc(var(--font-smallest) + 2px);--line-width-adaptive:calc(var(--line-width) + 6rem);--max-width:90%}}.tree-item-flair:not(.tag-pane-tag-count){display:none}.tree-item-inner-subtext{display:none}.minimal-dev-block-width .mod-root .workspace-leaf-content:after{display:flex;align-items:flex-end;content:"\00a0pane\00a0";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(calc(50% - var(--line-width-adaptive)/ 2 - 1px),calc(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:"\00a0max\00a0";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 .view-header:before{display:flex;align-items:flex-end;content:"\00a0wide\00a0";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:"\00a0normal";width:var(--line-width-adaptive);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}.markdown-preview-view blockquote{border-radius:0;border:solid var(--quote-opening-modifier);border-width:0 0 0 1px;background-color:transparent;padding:0 0 0 var(--nested-padding);margin-inline-start:0;margin-inline-end:0;font-size:var(--blockquote-size);font-style:var(--blockquote-style);color:var(--text-blockquote)}.cm-s-obsidian span.cm-quote,.markdown-preview-view blockquote em,.markdown-preview-view blockquote strong{color:var(--text-blockquote)}.markdown-source-view.mod-cm6 .HyperMD-quote,.markdown-source-view.mod-cm6.is-live-preview .HyperMD-quote{background-color:transparent;color:var(--text-blockquote);font-size:var(--blockquote-size);font-style:var(--blockquote-style);border-left:1px solid var(--quote-opening-modifier)}.markdown-source-view.mod-cm6 .cm-blockquote-border{width:20px;display:inline-block;border-left:none;border-right:1px solid var(--quote-opening-modifier)}.markdown-source-view.mod-cm6 .cm-hmd-indent-in-quote{margin-left:10px}.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}:root{--checkbox-size:17px;--checkbox-icon:20px;--checkbox-radius:50%;--checkbox-top:2px;--checkbox-left:0px;--checkbox-margin:0px 6px 0px -1.35em}.checkbox-square{--checkbox-size:15px;--checkbox-icon:17px;--checkbox-radius:4px;--checkbox-top:1px;--checkbox-left:0px;--checkbox-margin:0px 8px 0px -1.35em}input[type=checkbox]{-webkit-appearance:none;appearance:none;border-radius:var(--checkbox-radius);border:1px solid var(--text-faint);padding:0;margin:0 6px 0 0;width:var(--checkbox-size);height:var(--checkbox-size)}input[type=checkbox]:focus,input[type=checkbox]:hover{outline:0;border-color:var(--text-muted)}.checklist-plugin-main .group .compact>.toggle .checked,.is-flashing input[type=checkbox]:checked,input[type=checkbox]:checked{background-color:var(--background-modifier-accent);border:1px solid var(--background-modifier-accent);background-position:44% 55%;background-size:70%;background-repeat:no-repeat;background-image:url('data:image/svg+xml; utf8, ')}.markdown-preview-section>.contains-task-list{padding-bottom:.5em}body .markdown-preview-view ul>li.task-list-item.is-checked,body .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task]:not([data-task=" "]){text-decoration:none;color:var(--text-normal)}body.minimal-strike-lists .markdown-preview-view ul li[data-task="x"].task-list-item.is-checked,body.minimal-strike-lists .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task]:is([data-task="x"]),body.minimal-strike-lists li[data-task="x"].task-list-item.is-checked{color:var(--text-faint);text-decoration:line-through}ul>li.task-list-item .task-list-item-checkbox{margin-left:-1.35em}.mod-cm6 .HyperMD-task-line[data-task] .task-list-item-checkbox{margin:-2px 1px 0 -.6em}.is-mobile .mod-cm6 .HyperMD-task-line[data-task] .task-list-item-checkbox{margin-left:-.4em}.is-mobile .markdown-preview-view input[type=checkbox].task-list-item-checkbox{top:.2em}.markdown-preview-view .task-list-item-checkbox,.task-list-item-checkbox{filter:none;width:var(--checkbox-size);height:var(--checkbox-size)}.markdown-preview-view .task-list-item-checkbox{position:relative;top:var(--checkbox-top);left:var(--checkbox-left);line-height:0;margin:var(--checkbox-margin)}.markdown-preview-view ul>li.task-list-item{text-indent:0;line-height:var(--line-height)}.markdown-preview-view .task-list-item{padding-inline-start:0}.side-dock-plugin-panel-inner{padding-right:6px;padding-left:6px}.markdown-source-view.mod-cm6.is-readable-line-width .cm-editor .HyperMD-codeblock.cm-line,.mod-cm6 .cm-editor .HyperMD-codeblock.cm-line{padding-left:10px;padding-right:10px}.cm-s-obsidian span.cm-inline-code,.markdown-preview-view code,.markdown-rendered code{color:var(--text-code);font-size:var(--font-code)}.markdown-preview-view td code,.markdown-source-view.mod-cm6 td code{font-size:calc(var(--font-code) - 2px)}.markdown-preview-view pre code{background-color:transparent}.cm-s-obsidian .HyperMD-codeblock,.markdown-preview-view pre,.markdown-source-view.mod-cm6 .cm-preview-code-block pre.dataview-error,.mod-cm6 .cm-editor .HyperMD-codeblock.cm-line{color:var(--text-code);font-size:var(--font-code)}button.copy-code-button{cursor:var(--cursor);box-shadow:none;font-size:var(--font-adaptive-smaller);background-color:transparent;color:var(--text-faint);padding:.25em .75em}button.copy-code-button:hover{background-color:var(--interactive-normal);color:var(--text-muted)}.theme-light :not(pre)>code[class*=language-],.theme-light pre[class*=language-]{background-color:var(--background-primary-alt)}.theme-light code[class*=language-],.theme-light pre[class*=language-]{text-shadow:none}.markdown-source-view.mod-cm6 .code-block-flair{font-size:var(--font-smaller);padding:5px 0;color:var(--text-muted)}.cm-s-obsidian .CodeMirror-linewidget kbd,.cm-s-obsidian .HyperMD-codeblock,.cm-s-obsidian .HyperMD-hr,.cm-s-obsidian .cm-formatting-code,.cm-s-obsidian .cm-formatting-hashtag,.cm-s-obsidian .cm-hmd-frontmatter,.cm-s-obsidian .cm-hmd-orgmode-markup,.cm-s-obsidian .cm-inline-code,.cm-s-obsidian .cm-math,.cm-s-obsidian .hmd-fold-code-stub,.cm-s-obsidian .hmd-fold-html kbd .CodeMirror-code,.cm-s-obsidian .hmd-fold-html-stub,.cm-s-obsidian span.hmd-fold-math-placeholder,.cm-s-obsidian.CodeMirror .HyperMD-hover>.HyperMD-hover-content code{font-family:var(--font-monospace)}body.is-dragging{cursor:grabbing;cursor:-webkit-grabbing}.mod-drag,.workspace-drop-overlay:before{opacity:0;border-radius:0!important}.drag-ghost,.drag-ghost.mod-leaf{border:none;background-color:rgba(0,0,0,.7);font-size:var(--font-adaptive-small);padding:3px 8px 4px;color:#fff;font-weight:500;border-radius:5px}.drag-ghost-icon{display:none}.drag-ghost-self svg{margin-right:4px;opacity:.5;display:none}.drag-ghost-action{padding:0;font-weight:400;color:rgba(255,255,255,.7);font-size:var(--font-adaptive-smaller)}.mod-drag{opacity:0;border:2px solid var(--text-accent);background-color:var(--background-primary)}.view-header.is-highlighted:after{background-color:var(--text-selection)}.view-header.is-highlighted .view-actions{background:0 0}.CodeMirror-wrap>div>textarea{opacity:0}.markdown-source-view.mod-cm6 hr{border-width:2px}.mod-cm6 .cm-editor .cm-line{padding:0}.cm-editor .cm-content{padding-top:.5em}.markdown-source-view{color:var(--text-normal)}.markdown-source-view.mod-cm6 .cm-scroller{padding-top:15px;padding-left:0;padding-right:0}body:not(.is-mobile) .markdown-source-view.mod-cm6 .cm-gutters{position:absolute!important;z-index:0}.cm-editor .cm-lineNumbers .cm-gutterElement{min-width:25px}@media (max-width:400pt){.cm-editor .cm-lineNumbers .cm-gutterElement{padding-right:4px;padding-left:8px}}.cm-editor .cm-lineNumbers .cm-gutterElement{font-variant-numeric:tabular-nums}.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;right:auto;left: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;transform:none!important;margin-left:0!important}.is-live-preview:not(.is-readable-line-width) .cm-embed-block>.edit-block-button{padding-left:0!important;margin-left:0!important;transform:none!important;right:0;left:auto;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;width:var(--icon-size);height:var(--icon-size)}.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}.markdown-source-view.mod-cm6 .cm-foldPlaceholder{color:var(--text-faint)}.markdown-source-view.mod-cm6.is-live-preview .HyperMD-quote{background-color:transparent;border-left-width:1px}.cm-editor .cm-foldPlaceholder,.markdown-source-view.mod-cm6 .cm-fold-indicator .collapse-indicator{cursor:var(--cursor)}.markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-list-line-1 .cm-fold-indicator .collapse-indicator{right:8px}.markdown-source-view.mod-cm6 .HyperMD-list-line.HyperMD-task-line:not(.HyperMD-list-line-1) .cm-fold-indicator .collapse-indicator{right:8px;width:auto}.markdown-source-view.mod-cm6 .HyperMD-list-line:not(.HyperMD-list-line-1) .cm-fold-indicator .collapse-indicator{right:-8px;top:1px;width:26px}.markdown-source-view.mod-cm6 .is-collapsed~.cm-formatting-list .list-bullet:after,ul>li.is-collapsed::marker{color:var(--text-accent)}.cm-gutterElement .collapse-indicator,.markdown-source-view.mod-cm6 .cm-fold-indicator .collapse-indicator,.markdown-source-view.mod-cm6 .fold-gutter{opacity:0}.cm-gutterElement .is-collapsed .collapse-indicator,.cm-gutterElement:hover .collapse-indicator,.markdown-source-view.mod-cm6 .cm-fold-indicator.is-collapsed .collapse-indicator,.markdown-source-view.mod-cm6 .cm-fold-indicator.is-collapsed .collapse-indicator svg,.markdown-source-view.mod-cm6 .cm-line:hover .cm-fold-indicator .collapse-indicator,.markdown-source-view.mod-cm6 .fold-gutter.is-collapsed,.markdown-source-view.mod-cm6 .fold-gutter:hover{opacity:1}.markdown-source-view.mod-cm6 .cm-line .cm-inline-code .cm-selection,.markdown-source-view.mod-cm6 .cm-line .cm-selection{background-color:var(--text-selection)}.cm-selectionBackground{background-color:transparent!important}body .markdown-source-view.mod-cm6.is-readable-line-width:not(.is-rtl) .cm-contentContainer{max-width:100%}body:not(.is-mobile).minimal-folding .markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer{max-width:100%}.theme-light .cm-link,.theme-light .cm-operator,.theme-light .cm-string,.theme-light .cm-string-2,.theme-light .language-css .token.string,.theme-light .style .token.string,.theme-light .token.entity,.theme-light .token.operator,.theme-light .token.url{background-color:transparent}.markdown-source-view,.markdown-source-view.mod-cm5,.markdown-source-view.mod-cm6{padding:0}.cm-s-obsidian .CodeMirror-code{padding-right:0}.CodeMirror-lines{padding-bottom:170px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding-left:0;padding-right:0}.cm-s-obsidian pre.HyperMD-list-line{padding-top:0}.workspace .markdown-preview-view{padding:0}.workspace .markdown-preview-view .markdown-embed{margin:0}.workspace .markdown-preview-view .markdown-embed-content{max-height:none}.internal-embed .markdown-preview-section,.markdown-embed-title{max-width:100%}.CodeMirror-linenumber{font-size:var(--font-adaptive-small)!important;font-feature-settings:'tnum';color:var(--text-faint);padding-top:3px}.cm-s-obsidian .cm-active span.cm-link.cm-hmd-barelink.cm-formatting-link-start,.cm-s-obsidian .cm-formatting-link+span.cm-link.cm-formatting.cm-formatting-link-end,.cm-s-obsidian span.cm-footref.cm-formatting.cm-formatting-link.cm-formatting-link-end,.cm-s-obsidian span.cm-formatting-link,.cm-s-obsidian span.cm-link.cm-hmd-barelink.cm-formatting-link-start,span.cm-image-marker{color:var(--text-faint)}.cm-s-obsidian span.cm-footref{font-size:var(--font-adaptive-normal)}.cm-s-obsidian pre.HyperMD-footnote{font-size:var(--font-adaptive-small);padding-left:20px}.cm-formatting-quote{color:var(--text-faint)!important}.embed-strict .internal-embed .markdown-embed{padding:0;border:none}.embed-strict .internal-embed .markdown-embed .markdown-embed-title{display:none}.embed-strict .internal-embed:not([src*="#^"]) .markdown-embed-link{width:30px}.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)}.markdown-embed-title{line-height:18px;height:24px}.internal-embed:not([src*="#^"]) .markdown-embed-link{right:0;width:100%}.file-embed-link,.markdown-embed-link{top:0;right:0;text-align:right}.file-embed-link svg,.markdown-embed-link svg{width:16px;height:16px;opacity:0}.markdown-embed .file-embed-link:hover svg,.markdown-embed .markdown-embed-link:hover svg{opacity:1}.file-embed-link:hover,.markdown-embed-link:hover{color:var(--text-muted)}.markdown-preview-view .markdown-embed-content>.markdown-preview-view{max-height:none!important}.markdown-embed-content{max-height:none!important}.markdown-embed .markdown-preview-view{padding:0}.internal-embed .markdown-embed{border:0;border-left:1px solid var(--quote-opening-modifier);border-radius:0}h1,h2,h3,h4,h5,strong{font-weight:var(--bold-weight)}h1,h2,h3,h4{letter-spacing:-.02em}body,button,input{font-family:var(--font-interface)}.cm-s-obsidian span.cm-error{color:var(--red)}.markdown-preview-view,.popover,.workspace-leaf-content[data-type=markdown]{font-family:var(--font-text)}.cm-s-obsidian,.cm-s-obsidian .cm-formatting-hashtag,.markdown-preview-view,.markdown-source-view.mod-cm6.is-live-preview .cm-scroller,body,button,input{font-size:var(--font-adaptive-normal);font-weight:var(--normal-weight);line-height:var(--line-height);-webkit-font-smoothing:subpixel-antialiased}.cm-s-obsidian,.cm-s-obsidian .cm-formatting-hashtag,.cm-s-obsidian span.cm-formatting-task,.markdown-source-view,.markdown-source-view.mod-cm6 .cm-scroller{line-height:var(--line-height);font-family:var(--font-editor);-webkit-font-smoothing:subpixel-antialiased}.lp-reading-font .markdown-source-view.mod-cm6.is-live-preview .cm-scroller{font-family:var(--font-text)}.cm-s-obsidian span.cm-formatting-task{font-family:var(--font-editor);line-height:var(--line-height)}.cm-s-obsidian .cm-header,.cm-s-obsidian .cm-strong{font-weight:var(--bold-weight)}.cm-s-obsidian .cm-strong,strong{color:var(--text-bold)}.cm-s-obsidian .cm-em,em{color:var(--text-italic)}.cm-formatting-header,.cm-s-obsidian .cm-formatting-header.cm-header-1,.cm-s-obsidian .cm-formatting-header.cm-header-2,.cm-s-obsidian .cm-formatting-header.cm-header-3,.cm-s-obsidian .cm-formatting-header.cm-header-4,.cm-s-obsidian .cm-formatting-header.cm-header-5,.cm-s-obsidian .cm-formatting-header.cm-header-6{color:var(--text-faint)}.file-embed-title,.markdown-embed-title,.view-header-title{letter-spacing:-.02em;text-align:left;font-size:var(--title-size);font-weight:var(--title-weight)}.view-header-title{color:var(--title-color-inactive)}.file-embed-title,.markdown-embed-title,.workspace-leaf.mod-active .view-header-title{color:var(--title-color)}.cm-s-obsidian .HyperMD-header{line-height:1.3}.mod-cm6 .cm-editor .HyperMD-header-1,.mod-cm6 .cm-editor .HyperMD-header-2,.mod-cm6 .cm-editor .HyperMD-header-3,.mod-cm6 .cm-editor .HyperMD-header-4,.mod-cm6 .cm-editor .HyperMD-header-5,.mod-cm6 .cm-editor .HyperMD-header-6{padding-top:.5em}.cm-s-obsidian .cm-header-1,.empty-state-title,.markdown-preview-view h1,.markdown-rendered h1,h1{font-variant:var(--h1-variant);letter-spacing:-.02em;line-height:1.3;font-family:var(--h1-font);font-size:var(--h1);color:var(--h1-color);font-weight:var(--h1-weight);font-style:var(--h1-style)}.cm-s-obsidian .cm-header-1 a,.empty-state-title a,.markdown-preview-view h1 a,.markdown-rendered h1 a,h1 a{font-weight:var(--h1-weight)}.cm-s-obsidian .cm-header-2,.markdown-preview-view h2,.markdown-rendered h2{font-variant:var(--h2-variant);letter-spacing:-.01em;line-height:1.3;font-family:var(--h2-font);font-size:var(--h2);color:var(--h2-color);font-weight:var(--h2-weight);font-style:var(--h2-style)}.cm-s-obsidian .cm-header-2 a,.markdown-preview-view h2 a,.markdown-rendered h2 a{font-weight:var(--h2-weight)}.cm-s-obsidian .cm-header-3,.markdown-preview-view h3,.markdown-rendered h3{font-variant:var(--h3-variant);letter-spacing:-.01em;line-height:1.4;font-family:var(--h3-font);font-size:var(--h3);color:var(--h3-color);font-weight:var(--h3-weight);font-style:var(--h3-style)}.cm-s-obsidian .cm-header-3 a,.markdown-preview-view h3 a,.markdown-rendered h3 a{font-weight:var(--h3-weight)}.cm-s-obsidian .cm-header-4,.markdown-preview-view h4,.markdown-rendered h4{font-variant:var(--h4-variant);letter-spacing:.02em;font-family:var(--h4-font);font-size:var(--h4);color:var(--h4-color);font-weight:var(--h4-weight);font-style:var(--h4-style)}.cm-s-obsidian .cm-header-4 a,.markdown-preview-view h4 a,.markdown-rendered h4 a{font-weight:var(--h4-weight)}.cm-s-obsidian .cm-header-5,.markdown-preview-view h5,.markdown-rendered h5{font-variant:var(--h5-variant);letter-spacing:.02em;font-family:var(--h5-font);font-size:var(--h5);color:var(--h5-color);font-weight:var(--h5-weight);font-style:var(--h5-style)}.cm-s-obsidian .cm-header-5 a,.markdown-preview-view h5 a,.markdown-rendered h5 a{font-weight:var(--h5-weight)}.cm-s-obsidian .cm-header-6,.markdown-preview-view h6,.markdown-rendered h6{font-variant:var(--h6-variant);letter-spacing:.02em;font-family:var(--h6-font);font-size:var(--h6);color:var(--h6-color);font-weight:var(--h6-weight);font-style:var(--h6-style)}.cm-s-obsidian .cm-header-6 a,.markdown-preview-view h6 a,.markdown-rendered h6 a{font-weight:var(--h6-weight)}.footnotes-list{margin-block-start:-10px;padding-inline-start:20px;font-size:var(--font-adaptive-small)}.footnotes-list p{display:inline;margin-block-end:0;margin-block-start:0}.footnote-ref a{text-decoration:none}.footnote-backref{color:var(--text-faint)}.footnotes .is-flashing,.minimal-folding .footnotes .is-flashing{box-shadow:-1px 0 0 3px var(--text-highlight-bg)}.cm-s-obsidian .HyperMD-footnote,.footnotes{font-size:calc(var(--font-adaptive-normal) - 2px)}.markdown-preview-view .footnotes hr{margin:.5em 0 1em;border-width:1px 0 0 0}.theme-dark pre.frontmatter[class*=language-yaml],.theme-light pre.frontmatter[class*=language-yaml]{padding:0;background:0 0;font-family:var(--font-text);line-height:1.2;border-radius:0;border-bottom:0 solid var(--background-modifier-border)}.markdown-preview-view .table-view-table>thead>tr>th{border-color:var(--background-modifier-border)}.markdown-preview-section .frontmatter code,.theme-dark .frontmatter .token,.theme-light .frontmatter .token{font-family:var(--font-text);color:var(--text-faint)!important}.markdown-source-view .cm-s-obsidian .cm-hmd-frontmatter{font-family:var(--font-editor);color:var(--text-muted)}.markdown-preview-section .frontmatter code{color:var(--text-muted);font-size:var(--font-adaptive-small)}.cm-s-obsidian .cm-def.cm-hmd-frontmatter,.cm-s-obsidian .cm-hmd-frontmatter{font-size:var(--font-adaptive-small);color:var(--text-muted)}.frontmatter code.language-yaml{padding:0}.frontmatter-collapse-indicator.collapse-indicator{display:none}.frontmatter-container .tag{font-size:var(--font-adaptive-smaller)}.frontmatter-container .frontmatter-alias{color:var(--text-muted)}.frontmatter-container{font-size:var(--font-adaptive-small);padding:10px 0;background:0 0;border-radius:0;margin:0;border:0;border-bottom:1px solid var(--background-modifier-border)}.frontmatter-container .frontmatter-container-header{padding:0;font-weight:500;border-bottom:0;font-size:var(--font-adaptive-small)}.is-mobile .nav-folder.mod-root>.nav-folder-title .nav-folder-title-content{display:none}.nav-file-tag{font-weight:400}.nav-header{padding:0}.nav-buttons-container{padding:10px 5px 0 8px;margin-bottom:0!important;justify-content:flex-start;border:0}.nav-files-container{overflow-x:hidden;padding-bottom:50px}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);padding-bottom:7px;margin-left:-7px;font-size:var(--font-adaptive-smaller)}.nav-folder-title{margin:0 0 0 8px;min-width:auto;width:calc(100% - 16px);padding:0 10px 0 16px;line-height:1.5;cursor:var(--cursor);border:none}.nav-folder.mod-root>.nav-folder-title.is-being-dragged-over{background-color:var(--text-selection)}.nav-folder-title.is-being-dragged-over{background-color:var(--text-selection);border-color:var(--text-selection);border-radius:var(--radius-m);border:0 solid transparent}.nav-folder-title-content{padding:1px 4px}.nav-folder-collapse-indicator{top:1px;margin-left:-10px}.nav-file-title.is-being-dragged,.nav-folder-title.is-being-dragged,body:not(.is-grabbing) .nav-file-title.is-being-dragged:hover,body:not(.is-grabbing) .nav-folder-title.is-being-dragged:hover{background-color:var(--background-tertiary);color:var(--text-normal);box-shadow:0 0 0 2px var(--background-modifier-border-focus);z-index:1}.workspace-leaf.mod-active .nav-file.has-focus,.workspace-leaf.mod-active .nav-folder.has-focus>.nav-folder-title{border:none;background-color:transparent}.nav-file{margin-left:12px;padding-right:4px;border:none}.nav-file-title{width:calc(100% - 30px);margin:0 8px 0 -4px;padding:0;border-width:0;line-height:1.6;border-color:var(--background-secondary);border-radius:var(--radius-m);cursor:var(--cursor)}.nav-file-title.is-active,.nav-file-title.is-being-dragged,.nav-folder-title.is-active,body:not(.is-grabbing) .nav-file-title.is-active:hover,body:not(.is-grabbing) .nav-folder-title.is-active:hover,body:not(.is-grabbing) .nav-folder-title:hover{background-color:var(--background-tertiary);color:var(--text-normal)}.nav-file-title-content{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:2px 7px;border:0;vertical-align:middle;cursor:var(--cursor)}.drop-indicator{border-width:1px}.nav-file-icon{margin:1px 0 0 0;vertical-align:bottom;padding:0 0 0 5px}.workspace-leaf-content[data-type=starred] .nav-file-title-content{width:calc(100% - 15px)}.workspace-leaf-content[data-type=starred] .nav-file-icon{opacity:.5}body:not(.is-grabbing) .nav-file-title:hover,body:not(.is-grabbing) .nav-file-title:hover .nav-folder-collapse-indicator,body:not(.is-grabbing) .nav-folder-title:hover,body:not(.is-grabbing) .nav-folder-title:hover .nav-folder-collapse-indicator{background:0 0}.is-collapsed .search-result-file-title,.nav-file-title,.nav-folder-title,.tag-pane-tag,.tree-item-self{font-size:var(--font-adaptive-small);color:var(--text-muted)}.search-result-file-title{font-size:var(--font-adaptive-small);color:var(--text-normal);font-weight:var(--normal-weight)}.side-dock-collapsible-section-header{font-size:var(--font-adaptive-small);color:var(--text-muted);cursor:var(--cursor);margin-right:0;margin-left:0}.side-dock-collapsible-section-header:hover,.side-dock-collapsible-section-header:not(.is-collapsed){color:var(--text-muted);background:0 0}.tree-item-self.is-clickable:hover,.tree-view-item-self:hover .tree-view-item-collapse{color:var(--text-muted);background:0 0;cursor:var(--cursor)}.tree-item-self.is-clickable{cursor:var(--cursor)}.is-collapsed .search-result-collapse-indicator svg,.is-collapsed .side-dock-collapsible-section-header-indicator svg,.markdown-preview-view .collapse-indicator svg,.nav-folder-collapse-indicator svg,.search-result-collapse-indicator svg,.search-result-file-title:hover .search-result-collapse-indicator svg,.side-dock-collapsible-section-header-indicator svg,.side-dock-collapsible-section-header-indicator:hover svg,.side-dock-collapsible-section-header:hover .side-dock-collapsible-section-header-indicator svg,.tree-view-item-collapse svg{color:var(--text-faint);cursor:var(--cursor)}.is-collapsed .search-result-collapse-indicator,.is-collapsed .side-dock-collapsible-section-header-indicator,.markdown-preview-view .collapse-indicator,.nav-folder-collapse-indicator,.search-result-collapse-indicator,.search-result-file-title:hover .search-result-collapse-indicator,.side-dock-collapsible-section-header-indicator,.side-dock-collapsible-section-header-indicator:hover,.side-dock-collapsible-section-header:hover .side-dock-collapsible-section-header-indicator,.tree-view-item-collapse{color:var(--text-faint);cursor:var(--cursor)}.is-collapsed .search-result-file-title:hover,.nav-folder-title.is-being-dragged-over .nav-folder-collapse-indicator svg,.search-result-file-title:hover{color:var(--text-normal)}.nav-folder-collapse-indicator,.tree-item-self .collapse-icon{color:var(--background-modifier-border-hover)}.tree-item-self .collapse-icon{padding-left:0;width:18px;margin-left:-18px;justify-content:center}.tree-item-self:hover .collapse-icon{color:var(--text-normal)}.tree-item-self{padding-left:15px}.tree-item{padding-left:5px}.tree-item-flair{font-size:var(--font-adaptive-smaller);right:0;background:0 0;color:var(--text-faint)}.tree-item-flair-outer:after{content:''}.tree-item-self.is-clickable{cursor:var(--cursor)}.tree-item-self.is-clickable:hover{background:0 0}.tree-item-self:hover .tree-item-flair{background:0 0;color:var(--text-muted)}.tree-item-children{margin-left:5px}.collapse-indicator svg,.markdown-preview-view .heading-collapse-indicator.collapse-indicator svg,.markdown-preview-view ol>li .collapse-indicator svg,.markdown-preview-view ul>li .collapse-indicator svg{opacity:0}.HyperMD-header:hover .collapse-indicator svg,.collapse-indicator:hover svg,.markdown-preview-view .collapse-indicator:hover svg,.markdown-preview-view .is-collapsed .collapse-indicator svg,h1:hover .heading-collapse-indicator.collapse-indicator svg,h2:hover .heading-collapse-indicator.collapse-indicator svg,h3:hover .heading-collapse-indicator.collapse-indicator svg,h4:hover .heading-collapse-indicator.collapse-indicator svg,h5:hover .heading-collapse-indicator.collapse-indicator svg{opacity:1}.markdown-preview-view div.is-collapsed h1::after,.markdown-preview-view div.is-collapsed h2::after,.markdown-preview-view div.is-collapsed h3::after,.markdown-preview-view div.is-collapsed h4::after,.markdown-preview-view div.is-collapsed h5::after,.markdown-preview-view ol .is-collapsed::after,.markdown-preview-view ul .is-collapsed::after{content:"...";padding:5px;color:var(--text-faint)}.markdown-preview-view ol>li.task-list-item .collapse-indicator,.markdown-preview-view ul>li.task-list-item .collapse-indicator{margin-left:-48px;position:absolute}.markdown-preview-view ol>li .collapse-indicator{padding-right:20px}.markdown-preview-view .heading-collapse-indicator.collapse-indicator{margin-left:-28px;padding-right:7px 8px 7px 0}.markdown-preview-view .collapse-indicator{position:absolute;margin-left:-44px;padding-bottom:10px;padding-top:0}.markdown-preview-view ul>li:not(.task-list-item) .collapse-indicator{padding-right:20px}.list-collapse-indicator .collapse-indicator .collapse-icon{opacity:0}.markdown-preview-view ul>li h1,.markdown-preview-view ul>li h2,.markdown-preview-view ul>li h3,.markdown-preview-view ul>li h4{display:inline}.markdown-source-view.mod-cm6.is-folding .cm-contentContainer{padding-left:0}.CodeMirror-foldgutter-folded,.CodeMirror-foldgutter-open{cursor:var(--cursor)}body .frontmatter-collapse-indicator svg.right-triangle{background-color:currentColor;-webkit-mask-image:url('data:image/svg+xml;utf8,')}body span[title="Fold line"],body span[title="Unfold line"]{position:relative;font-size:0;color:transparent;display:flex;height:auto;align-items:center}body .CodeMirror-foldgutter-folded:hover,body .CodeMirror-foldgutter-open:hover,body span[title="Fold line"]:hover,body span[title="Unfold line"]:hover{color:var(--text-muted)}body .CodeMirror-foldgutter-folded:after,body .CodeMirror-foldgutter-open:after,body span[title="Fold line"]:after,body span[title="Unfold line"]:after{text-align:center;color:var(--text-faint);font-size:1.25rem;display:flex;align-items:center;justify-content:center;margin-left:0;width:1rem;height:1rem}body:not(.is-mobile) .CodeMirror-foldgutter-folded:after,body:not(.is-mobile) .CodeMirror-foldgutter-open:after,body:not(.is-mobile) span[title="Fold line"]:after,body:not(.is-mobile) span[title="Unfold line"]:after{margin-top:.35rem;margin-left:2px}body .is-mobile .cm-editor .cm-lineNumbers .cm-gutterElement{padding:0 3px 0 0;min-width:15px;text-align:right;white-space:nowrap}body span[title="Fold line"]:after,body span[title="Unfold line"]:after{font-size:1rem;line-height:1}body span[title="Fold line"]:after,body span[title="Unfold line"]:after{font-size:1rem;line-height:1}body .CodeMirror-foldgutter-folded:after,body span[title="Unfold line"]:after{background-color:var(--text-faint);height:12px;width:12px;-webkit-mask-image:url('data:image/svg+xml;utf8,');transform:translateY(-2px);transform:rotate(-90deg)}body .CodeMirror-foldgutter-open:after,body span[title="Fold line"]:after{background-color:var(--text-faint);height:12px;width:12px;-webkit-mask-image:url('data:image/svg+xml;utf8,')}.is-mobile .CodeMirror-foldgutter-open:after,.is-mobile span[title="Fold line"]:after{transform:translateX(-2px)!important}.CodeMirror-foldgutter-open:after,span[title="Fold line"]{opacity:0}.CodeMirror-code>div:hover .CodeMirror-foldgutter-open:after,.CodeMirror-foldgutter-folded:after,span[title="Fold line"]:hover,span[title="Unfold line"]{opacity:1}.CodeMirror-code>div:hover .CodeMirror-foldgutter-folded:hover:after,.CodeMirror-code>div:hover .CodeMirror-foldgutter-open:hover:after,span[title="Unfold line"]:hover{opacity:1}body.is-mobile .CodeMirror-foldgutter-folded:after,body.is-mobile span[title="Unfold line"]:after{content:"›";font-family:sans-serif;transform:translateY(-2px);transform:rotate(-90deg) translateY(2px) translateX(-.45em)}body.is-mobile .CodeMirror-foldgutter-open:after,body.is-mobile span[title="Fold line"]:after{content:"›";font-family:sans-serif;transform:rotate(360deg)}body svg.right-triangle{color:var(--text-muted);background-color:var(--text-muted);height:12px;width:12px;-webkit-mask-image:url('data:image/svg+xml;utf8,')}.nav-action-button svg{width:15px;height:15px}body .clickable-icon,body .graph-controls-button,body .menu-item-icon,body .nav-action-button,body .side-dock-ribbon-action,body .view-action,body .view-header-icon,body .workspace-tab-header-inner-icon{line-height:0}body .clickable-icon svg path,body .graph-controls-button svg path,body .menu-item-icon svg path,body .nav-action-button svg path,body .side-dock-ribbon-action svg path,body .view-action svg path,body .view-header-icon svg path,body .workspace-tab-header-inner-icon svg path{stroke-width:2px}body .view-action svg.cross path{stroke-width:2px}.workspace-ribbon-collapse-btn svg path{stroke-width:4px}.nav-action-button svg path{stroke-width:2px}.clickable-icon{cursor:var(--cursor)}.graph-controls-button,.nav-action-button,.side-dock-ribbon-action,.side-dock-ribbon-tab,.view-action,.view-header-icon,.workspace-tab-header{background:0 0;color:var(--icon-color);opacity:var(--icon-muted);transition:opacity .1s ease-in-out;cursor:var(--cursor);line-height:0}.graph-controls-button,.side-dock-ribbon-action,.view-header-icon,.workspace-ribbon-collapse-btn,.workspace-tab-header-inner-icon{margin:0;padding:4px 4px;height:26px;border-radius:var(--radius-m)}.view-header-icon{display:flex;align-items:center}.workspace-ribbon-collapse-btn{margin:0;padding:2px 4px}.side-dock-ribbon-action{border-left:0;margin:0 6px 6px}.nav-action-button,.workspace-leaf-content[data-type=backlink] .nav-action-button,.workspace-leaf-content[data-type=search] .nav-action-button{padding:3px 5px 3px;margin:0 0 7px 0;height:26px;text-align:center;border-radius:var(--radius-m)}.nav-action-button.is-active,.workspace-leaf-content[data-type=backlink] .nav-action-button.is-active,.workspace-leaf-content[data-type=dictionary-view] .nav-action-button.is-active,.workspace-leaf-content[data-type=search] .nav-action-button.is-active,.workspace-leaf-content[data-type=tag] .nav-action-button.is-active,.workspace-tab-header.is-active{background:0 0;color:var(--icon-color);opacity:1;transition:opacity .1s ease-in-out}.nav-action-button.is-active,.workspace-tab-header.is-active:hover{color:var(--icon-color)}.workspace-leaf-content[data-type=search] .nav-action-button.is-active{background:0 0}.graph-controls-button:hover,.nav-action-button.is-active:hover,.nav-action-button:hover,.side-dock-ribbon-action:hover,.side-dock-ribbon-tab:hover,.view-action.is-active:hover,.view-action:hover,.view-header-icon:hover,.workspace-tab-header:hover{color:var(--icon-color-hover);opacity:1;transition:opacity .1s ease-in-out}.graph-controls-button:hover,.nav-action-button:hover,.side-dock-ribbon-action:hover,.view-action:hover,.workspace-drawer-header-icon:hover,.workspace-drawer-tab-option-item:hover,.workspace-leaf-content[data-type=backlink] .nav-action-button.is-active:hover,.workspace-leaf-content[data-type=search] .nav-action-button.is-active:hover,.workspace-tab-header-inner-icon:hover{background-color:var(--background-tertiary);border-radius:var(--radius-m)}.is-mobile .document-search-container .document-search{position:relative}.is-mobile .document-search-container .document-search:before,.is-mobile .search-input-container:before,.is-mobile .workspace-leaf-content[data-type=search] .search-input-container:before{content:" ";position:absolute;z-index:9;top:50%;transform:translateY(-50%);left:7px;display:block;width:18px;height:18px;background-color:var(--text-muted);-webkit-mask-image:url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="18" height="18" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" fill-rule="evenodd" d="m16.325 14.899l5.38 5.38a1.008 1.008 0 0 1-1.427 1.426l-5.38-5.38a8 8 0 1 1 1.426-1.426ZM10 16a6 6 0 1 0 0-12a6 6 0 0 0 0 12Z"%2F%3E%3C%2Fsvg%3E');background-position:50% 50%;background-repeat:no-repeat}body{--ig-adjust-reading:-0.65em;--ig-adjust-edit:-1px}.markdown-rendered.show-indentation-guide li.task-list-item>ol::before,.markdown-rendered.show-indentation-guide li.task-list-item>ul::before,.markdown-rendered.show-indentation-guide li>ol::before,.markdown-rendered.show-indentation-guide li>ul::before{left:var(--ig-adjust-reading)}.markdown-source-view.mod-cm6 .cm-indent::before{transform:translateX(var(--ig-adjust-edit))}.is-mobile .markdown-rendered.show-indentation-guide li>ol::before,.is-mobile .markdown-rendered.show-indentation-guide li>ul::before{left:calc(0em + var(--ig-adjust-reading))}.is-mobile .markdown-source-view.mod-cm6 .cm-indent::before{transform:translateX(calc(2px + var(--ig-adjust-edit)))}a{color:var(--text-accent);font-weight:var(--link-weight)}strong a{color:var(--text-accent);font-weight:var(--bold-weight)}a[href*="obsidian://search"]{background-image:url("data:image/svg+xml,")}.theme-dark a[href*="obsidian://search"]{background-image:url("data:image/svg+xml,")}.cm-s-obsidian span.cm-url:hover,.is-live-preview.cm-s-obsidian span.cm-hmd-internal-link:hover,.is-live-preview.cm-s-obsidian span.cm-link:hover,.is-live-preview.cm-s-obsidian span.cm-url:hover{color:var(--text-accent-hover)}.cm-s-obsidian .cm-active .cm-url,.cm-s-obsidian .cm-url,.cm-s-obsidian span.cm-url,.cm-s-obsidian.mod-cm6 .cm-hmd-internal-link,.is-live-preview.cm-s-obsidian .cm-link,a em{color:var(--text-accent)}.cm-hmd-internal-link,.cm-link,.cm-url{font-weight:var(--link-weight)}.cm-s-obsidian .cm-active span.cm-link.cm-hmd-barelink,.cm-s-obsidian span.cm-link.cm-hmd-barelink,.cm-s-obsidian span.cm-link.cm-hmd-barelink:hover{color:var(--text-normal)}.cm-s-obsidian .cm-active .cm-formatting.cm-formatting-link,.cm-s-obsidian span.cm-image-alt-text.cm-link,.cm-s-obsidian:not(.is-live-preview) .cm-formatting-link+span.cm-link{color:var(--text-muted)}div>ol,div>ul{padding-inline-start:1.4em}ul>li{min-height:1.4em}ol>li{margin-left:0}ul{padding-inline-start:var(--list-indent)}ol{padding-inline-start:var(--list-indent);margin-left:0;list-style:default}.is-mobile ul>li:not(.task-list-item)::marker{font-size:.8em}.is-mobile .markdown-rendered ol,.is-mobile .markdown-rendered ul{padding-inline-start:var(--list-indent)}.is-mobile .markdown-rendered div>ol,.is-mobile .markdown-rendered div>ul{padding-inline-start:2em}.is-mobile .el-ol>ol,.is-mobile .el-ul>ul{margin-left:0}.cm-line:not(.HyperMD-codeblock){tab-size:var(--list-indent)}.markdown-source-view.mod-cm6 .cm-content .HyperMD-list-line{margin-left:var(--list-edit-offset)!important}.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)}.cm-formatting-list{color:var(--text-faint)!important}ol>li::marker,ul>li::marker{color:var(--text-faint)}ul>li:not(.task-list-item)::marker{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:.9em}.mod-cm6 .HyperMD-list-line .list-bullet::after,.mod-cm6 span.list-bullet::after{line-height:.95em;font-size:1.4em;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;vertical-align:middle;color:var(--text-faint)}body:not(.is-mobile) .markdown-source-view.mod-cm6 .list-bullet:after{left:-5px}body:not(.is-mobile) .markdown-source-view.mod-cm6 span.cm-formatting.cm-formatting-list.cm-formatting-list-ol{margin-left:-5px}.progress-bar-message{color:var(--text-faint)}.modal{box-shadow:var(--shadow-l);border:none;background:var(--background-primary);border-radius:var(--radius-l);overflow:hidden;padding:20px}body:not(.is-mobile) .modal{border:1px solid var(--modal-border)}.modal.mod-settings .vertical-tab-content-container{border-left:1px solid var(--background-divider);padding-bottom:0;padding-right:0}.modal-title{text-align:left;font-size:var(--h2);line-height:1.4}.modal-content{margin-top:0;padding:2px;font-size:var(--font-adaptive-small)}.modal-content .u-center-text{text-align:left;font-size:var(--font-adaptive-small)}.modal-button-container{margin-top:10px;gap:8px;display:flex}.modal-button-container button{margin-top:10px}.modal-container.mod-confirmation .modal{width:480px;min-width:0}.modal-container.mod-confirmation .modal-content{margin-top:10px}.modal-container.mod-confirmation .modal-content .setting-item{margin-top:10px}.modal-container.mod-confirmation .modal-button-container{display:flex}.modal-container.mod-confirmation .modal-button-container>.mod-warning:nth-last-child(3){background:0 0;border:none;font-weight:500;color:var(--text-error);cursor:pointer;margin-right:auto;box-shadow:none;padding-left:0;padding-right:0}.modal-container.mod-confirmation .modal-button-container>.mod-warning:nth-last-child(3):hover{text-decoration:underline}.modal-container.mod-confirmation .modal-button-container>.mod-warning:nth-last-child(2){margin-left:auto}.document-search-close-button,.modal-close-button{cursor:var(--cursor);line-height:20px;text-align:center;height:24px;width:24px;font-size:24px;color:var(--text-faint);border-radius:var(--radius-m)}.modal-close-button{top:7px;right:7px;padding:0}.modal-close-button:hover,body:not(.is-mobile) .document-search-close-button:hover{color:var(--text-normal);background:var(--background-tertiary)}.document-search-close-button:before,.modal-close-button:before{font-family:Inter,sans-serif;font-weight:200}.is-mobile .modal{width:100%;max-width:100%;border:none;padding:10px;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.is-mobile .modal,.is-mobile .modal-bg{transition:none!important;transform:none!important}.is-mobile .modal.mod-community-plugin,.is-mobile .modal.mod-publish,.is-mobile .modal.mod-settings{width:100vw;max-height:90vh;padding:0}.is-mobile .mod-confirmation .modal{border-radius:15px}.is-mobile .mod-confirmation .modal .modal-close-button{display:none}.is-mobile .modal-content{padding:0;border-radius:15px}.is-mobile .modal-button-container{padding:0}.is-mobile .setting-item:not(.mod-toggle):not(.setting-item-heading){flex-grow:0}.is-mobile .minimal-donation,.is-mobile .vertical-tab-content,.is-mobile .vertical-tab-header-group:last-child{padding-bottom:70px!important}.is-mobile .modal.mod-settings .vertical-tab-header:before{content:"Settings";font-weight:600;font-size:var(--font-settings);position:sticky;display:flex;height:54px;margin-top:8px;align-items:center;justify-content:center;text-align:center;border-bottom:1px solid var(--background-modifier-border);background:var(--background-primary);left:0;top:0;right:0;z-index:1}.is-mobile .modal .vertical-tab-header-group-title{padding:15px 20px 10px 20px;text-transform:uppercase;letter-spacing:.05em}.is-mobile .modal .vertical-tab-nav-item{padding:12px 0;margin:0;border-radius:0;color:var(--text-primary);border-bottom:1px solid var(--background-modifier-border)}.is-mobile .modal .vertical-tab-nav-item:after{content:" ";float:right;width:20px;height:20px;display:block;opacity:.2;background:center right no-repeat url("data:image/svg+xml,")}.is-mobile.theme-dark .modal .vertical-tab-nav-item:after{background:center right no-repeat url("data:image/svg+xml,")}.is-mobile .vertical-tab-header-group-items{width:calc(100% - 40px);margin:0 auto}.is-mobile .modal .vertical-tab-nav-item:first-child{border-top:1px solid var(--background-modifier-border)}.is-mobile .modal.mod-settings .vertical-tab-nav-item{font-size:var(--font-settings)}.is-mobile .modal svg.left-arrow-with-tail{-webkit-mask-image:url("data:image/svg+xml,");height:26px;width:26px}.is-mobile .modal-close-button{display:block;z-index:2;top:10px;right:12px;padding:4px;font-size:34px;width:34px;height:34px;background-color:var(--background-primary)}.is-mobile .modal-close-button:before{font-weight:300;color:var(--text-muted)}.is-mobile .modal-close-button:hover{background-color:var(--background-tertiary)}.is-mobile .mod-community-theme .modal-title{padding:10px 20px}.is-mobile .modal.mod-community-theme,.is-mobile .modal.mod-community-theme .modal-content{height:unset}.is-mobile .community-plugin-search{border:none}.is-mobile .community-plugin-item:hover{background-color:transparent}.is-mobile .community-plugin-item{margin:0}.is-mobile .community-plugin-search .setting-item{margin-right:42px}.is-mobile .community-plugin-search .setting-item-control{display:flex;flex-direction:row}.is-mobile .community-plugin-search .setting-item-control button{width:40px;font-size:0;margin-left:10px;justify-content:center;color:var(--text-muted);border:none;box-shadow:none;background-color:currentColor;-webkit-mask:no-repeat center center url('data:image/svg+xml;utf8,');-webkit-mask-size:22px}.is-mobile .community-plugin-search .setting-item-control button:hover{background-color:var(--text-normal)}.is-mobile .community-plugin-search .search-input-container{margin:0}.is-mobile .modal.mod-settings .vertical-tabs-container{display:flex;overflow:hidden;border-top-left-radius:15px;border-top-right-radius:15px}.is-mobile .community-plugin-details .modal-setting-back-button{padding:12px 20px}.is-mobile .modal-setting-back-button{border-bottom:1px solid var(--background-modifier-border);display:flex;margin-top:8px;height:54px;justify-content:center;align-items:center;background-color:var(--color-background);box-shadow:none}.is-mobile .modal-setting-back-button-icon{position:absolute;left:10px}.is-mobile .modal-setting-back-button span:nth-child(2){flex-grow:1;text-align:center;font-weight:600;height:54px;display:flex;align-items:center;justify-content:center;color:var(--text-normal)}.is-mobile .hotkey-list-container .setting-command-hotkeys{flex:unset}.is-mobile .modal.mod-settings .vertical-tab-content-container{border:0}@media (min-width:400pt){.is-mobile .modal .vertical-tab-content-container,.is-mobile .modal .vertical-tab-header,.is-mobile .modal .vertical-tabs-container{border-radius:15px!important}.is-mobile .modal,.is-mobile .modal-container .modal.mod-settings{max-width:800px;transform:translateZ(0);border-radius:15px;margin-bottom:0;bottom:auto;overflow:hidden}.is-mobile .modal-container .modal.mod-settings .vertical-tabs-container{transform:translateZ(0)}.is-mobile .modal-container .modal-bg{opacity:.8!important}.is-mobile .search-input-container input{width:100%}.is-mobile .modal-setting-back-button,.is-mobile .modal.mod-settings .vertical-tab-header:before{margin-top:0}}@media (max-width:400pt){.is-mobile .modal{border-radius:0;border:none}.is-mobile .modal.mod-community-plugin,.is-mobile .modal.mod-publish,.is-mobile .modal.mod-settings{max-height:calc(100vh - 32px);box-shadow:0 -32px 0 0 var(--background-primary)}.is-mobile .mod-confirmation .modal{bottom:4.5vh}.is-mobile .modal .search-input-container{width:100%;margin:0}.is-mobile .modal-close-button{top:18px;right:0;padding:4px 16px 2px 4px;width:46px}.is-mobile .modal-close-button:hover{background:var(--background-primary)}}.menu{padding:7px 5px;background-color:var(--background-secondary)}.menu-item{font-size:var(--font-adaptive-small);border-radius:var(--radius-m);padding:3px 6px 3px 6px;margin:0 2px;cursor:var(--cursor);height:auto;line-height:20px;display:flex;align-items:center;overflow:hidden}.menu-item.selected:not(.is-disabled):not(.is-label),.menu-item:hover,.menu-item:hover:not(.is-disabled):not(.is-label){background-color:var(--background-tertiary)}.menu-separator{margin:8px -5px}.menu-item-icon{width:20px;opacity:.6;line-height:10px;position:static;margin-right:2px}.menu-item-icon svg{width:12px;height:12px}.menu-item-icon div.menu-item:hover .menu-item-icon svg,div.menu-item:hover .menu-item-icon svg path{color:var(--text-normal)}.is-mobile:not(.minimal-icons-off) .menu-item-icon svg{width:18px;height:18px}.is-mobile .menu{border:none;width:100%;max-width:100%;left:0!important;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.is-mobile .menu-item{padding:5px 10px;margin:0}.is-mobile .menu-item-icon{margin-right:10px}.is-mobile .menu-item.is-label{color:var(--text-normal);font-weight:var(--bold-weight)}.is-mobile .menu-item.is-label .menu-item-icon{display:none}@media (min-width:400pt){.is-mobile .menu{top:60px!important;right:0!important;bottom:auto;left:auto;margin:0 auto;width:360px;padding:10px 10px 10px;border-radius:15px;box-shadow:0 0 100vh 100vh rgba(0,0,0,.5)}.is-mobile .menu .menu-item:hover{background-color:var(--background-tertiary)}}@media (max-width:400pt){.is-mobile .menu{padding-bottom:30px}.is-mobile .menu-item.is-label{font-size:var(--font-settings-title)}}.markdown-preview-view blockquote,.markdown-preview-view ol,.markdown-preview-view p,.markdown-preview-view ul{margin-block-start:var(--spacing-p);margin-block-end:var(--spacing-p)}.markdown-preview-view ol ol,.markdown-preview-view ol ul,.markdown-preview-view ul ol,.markdown-preview-view ul ul{margin-block-start:0em;margin-block-end:0em}.markdown-preview-view h1,.markdown-preview-view h2,.markdown-preview-view h3,.markdown-preview-view h4,.markdown-preview-view h5,.markdown-preview-view h6{margin-block-start:1em;margin-block-end:var(--spacing-p)}.markdown-preview-view hr{height:1px;border-width:2px 0 0 0}iframe{border:0}.markdown-preview-view .mod-highlighted{transition:background-color .3s ease;background-color:var(--text-selection);color:inherit}.mod-root .workspace-leaf-content[data-type=markdown] .nav-header{border-top:1px solid var(--background-modifier-border);margin-top:3em;position:relative}.mod-root .workspace-leaf-content[data-type=markdown] .backlink-pane .search-result-container,.mod-root .workspace-leaf-content[data-type=markdown] .nav-buttons-container,.mod-root .workspace-leaf-content[data-type=markdown] .search-empty-state,.mod-root .workspace-leaf-content[data-type=markdown] .search-input-container,.mod-root .workspace-leaf-content[data-type=markdown] .tree-item,.mod-root .workspace-leaf-content[data-type=markdown].backlink-pane{padding-left:0;margin-left:0}.is-mobile .workspace-leaf-content:not([data-type=search]) .workspace-leaf-content[data-type=markdown] .nav-buttons-container{border-bottom:none;padding-top:5px}.mod-root .workspace-leaf-content[data-type=markdown] .search-input-container{margin-bottom:0;width:calc(100% - 130px);margin-top:10px}.is-mobile .mod-root .workspace-leaf-content[data-type=markdown] .search-input-container{width:calc(100% - 160px)}.mod-root .workspace-leaf-content[data-type=markdown] .backlink-pane{padding-top:10px}.mod-root .workspace-leaf-content[data-type=markdown] .nav-buttons-container{position:absolute;right:0;top:3px}.mod-root .workspace-leaf-content[data-type=markdown] .backlink-pane>.tree-item-self,.mod-root .workspace-leaf-content[data-type=markdown] .backlink-pane>.tree-item-self:hover{padding-left:0;text-transform:none;color:var(--text-normal);font-size:var(--font-adaptive-normal);font-weight:500;letter-spacing:unset}.mod-root .workspace-leaf-content[data-type=markdown] .backlink-pane>.tree-item-self.is-collapsed{color:var(--text-faint)}.mod-root .workspace-leaf-content[data-type=markdown] .backlink-pane>.tree-item-self.is-collapsed:hover{color:var(--text-muted)}.mod-root .workspace-leaf-content[data-type=markdown] .backlink-pane .search-result-file-title{font-size:calc(var(--font-adaptive-normal) - 2px)}.mod-root .workspace-leaf-content[data-type=markdown] .markdown-source-view .embedded-backlinks .nav-header{margin-top:0}.internal-query{border-top:none;border-bottom:none}.internal-query .internal-query-header{padding-top:10px;justify-content:left;border-top:1px solid var(--ui1)}.internal-query .internal-query-header-title{font-weight:500;color:var(--text-normal);font-size:var(--text-adaptive-normal)}.internal-query .search-result-container{border-bottom:1px solid var(--ui1)}.workspace-ribbon.mod-left .workspace-ribbon-collapse-btn,.workspace-ribbon.mod-right .workspace-ribbon-collapse-btn{opacity:1;position:fixed;width:26px;display:flex;align-items:center;top:auto;text-align:center;bottom:32px;z-index:9}.workspace-ribbon.mod-left .workspace-ribbon-collapse-btn{left:8px}.workspace-ribbon.mod-right{right:4px;bottom:0;height:32px;padding-top:6px;position:absolute;background:0 0;border:0}.mod-right .workspace-ribbon-collapse-btn{background-color:var(--background-primary)}.side-dock-ribbon-action,.side-dock-ribbon-tab,.view-action,.workspace-ribbon-collapse-btn{cursor:var(--cursor)}.workspace-ribbon-collapse-btn:hover{background-color:var(--background-tertiary)}.workspace-ribbon{border-width:var(--border-width-alt);border-color:var(--background-divider);background:var(--background-secondary);flex:0 0 42px;padding-top:7px}.mod-right:not(.is-collapsed)~.workspace-split.mod-right-split{margin-right:0}.side-dock-settings{padding-bottom:20px}body.hider-frameless:not(.hider-ribbon):not(.is-fullscreen) .side-dock-actions{padding-top:var(--top-left-padding-y)}body:not(.hider-scrollbars).styled-scrollbars ::-webkit-scrollbar,body:not(.native-scrollbars) ::-webkit-scrollbar{width:11px;background-color:transparent}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:transparent}body:not(.hider-scrollbars).styled-scrollbars ::-webkit-scrollbar-track,body:not(.native-scrollbars) ::-webkit-scrollbar-track{background-color:transparent}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)}.is-flashing{border-radius:2px;box-shadow:2px 1px 0 4px var(--text-highlight-bg);transition:all 0s ease-in-out}.minimal-folding .is-flashing{box-shadow:5px 1px 0 6px var(--text-highlight-bg)}.is-flashing .tag{border-color:var(--text-highlight-bg-active)}.suggestion-container.mod-search-suggestion{max-width:240px}.mod-search-suggestion .suggestion-item{font-size:var(--font-adaptive-small)}.mod-search-suggestion .clickable-icon{margin:0}.search-suggest-item.mod-group{font-size:var(--font-adaptive-smaller)}.cm-s-obsidian span.obsidian-search-match-highlight{background:inherit;background:var(--text-highlight-bg);padding-left:0;padding-right:0}.markdown-preview-view .search-highlight>div{box-shadow:0 0 0 2px var(--text-normal);border-radius:2px;background:0 0}.markdown-preview-view .search-highlight>div{opacity:.4}.markdown-preview-view .search-highlight>div.is-active{background:0 0;border-radius:2px;opacity:1;mix-blend-mode:normal;box-shadow:0 0 0 3px var(--text-accent)}.cm-s-obsidian span.obsidian-search-match-highlight{background-color:transparent;box-shadow:0 0 0 3px var(--text-accent);mix-blend-mode:multiply;border-radius:2px}body:not(.is-mobile).borders-title .document-search-container{padding-top:0}body input.document-replace-input.mod-no-match,body input.document-replace-input.mod-no-match:hover,body input.document-search-input.mod-no-match,body input.document-search-input.mod-no-match:hover{background-color:var(--background-primary)}body:not(.is-mobile) .document-search-container.mod-replace-mode{height:72px}body:not(.is-mobile) .document-replace-buttons,body:not(.is-mobile) .document-search-buttons{padding-top:3px}.document-replace-buttons,.document-search-buttons{height:30px;padding-top:0;gap:5px;display:flex}.document-search-button,.document-search-close-button{cursor:var(--cursor);color:var(--text-muted);font-weight:500}body:not(.is-mobile) .document-search-button,body:not(.is-mobile) .document-search-close-button{background:var(--background-tertiary);height:26px}.document-search-button:hover{box-shadow:none;background:var(--background-tertiary)}body .document-search-close-button{bottom:0;top:0;display:inline-flex;height:26px;width:26px;line-height:24px}.document-search-button{margin:0;padding-left:.75em;padding-right:.75em}body .document-search-container{margin-top:12px;padding:0;height:38px;background-color:var(--background-primary);border-top:none;width:100%}.document-replace,.document-search{max-width:var(--max-width);width:var(--line-width);margin:0 auto;padding:0 5px}.minimal-readable-off .document-replace,.minimal-readable-off .document-search{width:100%}.markdown-reading-view.is-searching,.markdown-source-view.is-replacing,.markdown-source-view.is-searching{flex-direction:column-reverse}body input.document-replace-input,body input.document-search-input{margin-top:2px;font-size:var(--font-adaptive-small);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);height:28px;background:var(--background-primary);transition:border-color .1s ease-in-out}input.document-replace-input:hover,input.document-search-input:hover{border:1px solid var(--background-modifier-border-hover);background:var(--background-primary);transition:border-color .1s ease-in-out}input.document-replace-input:focus,input.document-search-input:focus{border:1px solid var(--background-modifier-border-hover);background:var(--background-primary);transition:all .1s ease-in-out}.document-search-button{font-size:var(--font-adaptive-small)}.is-mobile .document-replace,.is-mobile .document-search{flex-direction:row}.is-mobile .document-replace{padding-top:6px}.is-mobile .document-replace .document-replace-buttons{flex-shrink:1;flex-grow:0}.is-mobile .document-search-container{padding:8px 0 8px 0;background-color:var(--background-primary);margin:0 auto 0 auto;height:auto;width:100%;border-bottom:1px solid var(--background-modifier-border);padding-left:var(--folding-offset)}.is-mobile .document-replace,.is-mobile .document-search{margin:0 auto;padding-left:0;padding-right:0;max-width:calc(var(--max-width) + 2%);width:var(--line-width-adaptive)}.is-mobile.minimal-readable-off .document-replace,.is-mobile.minimal-readable-off .document-search{width:100%}.is-mobile .document-search-container input[type=text]{width:auto;margin:0 8px 0 0;height:36px;padding:5px 10px 5px 10px;border-radius:6px;min-width:90px;border:1px solid var(--background-modifier-border);background-color:var(--background-primary)}.is-mobile .document-search-container .document-search-input[type=text]{padding-left:30px}.is-mobile .document-replace button,.is-mobile .document-search .document-search-buttons{flex-grow:0}.is-mobile .document-search-container button.document-search-button{width:auto;margin:0;background:0 0;font-size:14px;height:36px;padding:0 2px;white-space:nowrap}.is-mobile .document-replace .document-search-close-button,.is-mobile .document-search .document-search-close-button{height:30px;line-height:30px}.modal.mod-community-plugin,.modal.mod-publish,.modal.mod-settings,.modal.mod-sync-history,.modal.mod-sync-log{width:90vw;height:100vh;max-height:90vh;max-width:1000px}.modal.mod-settings .vertical-tab-content-container,.modal.mod-settings .vertical-tab-header{height:90vh}.community-plugin-name,.modal.mod-settings .vertical-tab-content-container,.setting-item-name{font-size:var(--font-settings);line-height:1.3}.modal .modal-content>h2{text-align:left;font-size:var(--h1);font-weight:600}.modal.mod-settings .vertical-tab-content h1,.modal.mod-settings .vertical-tab-content h2,.modal.mod-settings .vertical-tab-content h3{text-align:left;font-size:var(--h1);font-weight:600}.modal .modal-content>h2:first-child,.modal.mod-settings .vertical-tab-content>h2:first-child,.modal.mod-settings .vertical-tab-content>h3:first-child{margin-top:0}.community-plugin-downloads,.community-plugin-item .community-plugin-author,.community-plugin-item .community-plugin-desc,.community-plugin-search-summary,.setting-item-description{font-size:var(--font-settings-small);line-height:1.3;font-weight:400}.style-settings-collapse-indicator{margin-right:6px}.modal .vertical-tab-nav-item{font-size:var(--font-small);line-height:1.3}.community-plugin-search .setting-item{margin-right:10px}.flair.mod-pop{letter-spacing:0;text-transform:none;vertical-align:unset;top:-1px}.community-plugin-search{padding:20px 0 0 0;background-color:var(--background-secondary);border-right:1px solid var(--background-divider);flex:0 0 270px}.community-plugin-search-summary{border-bottom:1px solid var(--background-divider);padding-bottom:10px}.community-plugin-info p button{margin-right:8px}.community-plugin-item{margin:0;cursor:var(--cursor);padding-top:15px;border-bottom:1px solid var(--background-divider)}.community-plugin-item:hover{background-color:var(--background-tertiary)}.community-plugin-item .community-plugin-name{font-weight:500}.community-plugin-item .community-plugin-author{color:var(--text-muted);padding-bottom:10px}.community-plugin-item .community-plugin-desc{color:var(--text-normal);font-size:var(--font-small)}.community-plugin-search .setting-item-info{flex-grow:0}.community-plugin-search .search-input-container{margin-left:-5px;margin-right:5px}.modal .community-plugin-search .setting-item-control button{display:flex;align-items:center}.setting-item-control button{padding:.5em .75em}.modal button,.modal button.mod-cta a,button.mod-cta{font-size:var(--font-settings-small);height:var(--input-height);cursor:var(--cursor);margin-right:0;margin-left:0}.modal.mod-settings .modal-content{padding:0}.modal.mod-settings .vertical-tab-content-container{padding-top:0}.modal.mod-settings .vertical-tab-content-container .vertical-tab-content{padding-top:30px}.horizontal-tab-content,.vertical-tab-content{background:var(--background-primary);padding-bottom:100px;padding-left:40px;padding-right:40px}.vertical-tab-content,.vertical-tab-header{padding-bottom:100px}.modal.mod-community-plugin .modal-content{padding:0}.plugin-list-plugins{overflow:visible}.clickable-icon{margin:0}.installed-plugins-container .clickable-icon{margin:0}.installed-plugins-container .clickable-icon[aria-label=Uninstall]{margin:0}.plugin-list-plugins .clickable-icon{margin:0}.hotkey-list-container{padding-right:0}body .modal.mod-community-theme{max-width:1000px}.community-theme-container{padding-top:10px}.community-theme-container,.hotkey-settings-container{height:auto;overflow:visible}.theme-list{justify-content:space-evenly}.community-theme-filters-container,.hotkey-search-container{padding:0 0 20px 0}.modal.mod-community-theme{padding:0}.modal.mod-community-theme .modal-content{padding:30px}.community-theme{padding:0;margin:0 0 2em 0;align-items:stretch;background:0 0}.community-theme-title{text-align:left;font-size:var(--font-settings)}.community-theme-info+div{background-color:var(--background-secondary);display:flex;align-items:center;padding:0;flex-grow:1;border-radius:20px}.community-theme-info{line-height:1;flex-grow:0;padding:0 0 10px 0;align-items:flex-end;justify-content:flex-start;flex-wrap:wrap}.community-theme-remove-button{padding:4px 6px;display:flex;color:var(--text-muted);background-color:transparent}.community-theme .community-theme-screenshot{max-width:100%}body:not(.is-mobile) .theme-list{display:grid;grid-template-columns:repeat(3,1fr);gap:0 2em}body:not(.is-mobile) .theme-list .community-theme{align-self:stretch;justify-self:center;max-width:100%;width:100%;background-color:var(--background-secondary);padding:18px;border-radius:var(--radius-l);border:2px solid transparent}body:not(.is-mobile) .theme-list .community-theme:hover{border:2px solid var(--text-accent)}body:not(.is-mobile) .theme-list .community-theme.is-selected{grid-column:1/4;grid-row:1;max-width:100%;display:grid;grid-template-columns:1.5fr 2fr;padding:20px 20px;border-radius:var(--radius-xl);border-color:transparent}body:not(.is-mobile) .theme-list .community-theme.is-selected .community-theme-info{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:30px 50px 440px;margin:0 40px 0 0}body:not(.is-mobile) .theme-list .community-theme.is-selected .community-theme-title{grid-column:1/3;grid-row:1/2;text-align:left;font-size:2em;font-weight:500;margin:0}body:not(.is-mobile) .theme-list .community-theme.is-selected .community-theme-info+div{display:flex;align-items:center;flex-grow:1;box-shadow:none}body:not(.is-mobile) .theme-list .community-theme.is-selected .community-theme-downloads{text-align:right}body:not(.is-mobile) .theme-list .community-theme.is-selected .community-theme-remove-button{bottom:20px;left:0;right:auto;top:auto;color:var(--text-faint);display:flex;align-items:center}body:not(.is-mobile) .theme-list .community-theme.is-selected .community-theme-remove-button:after{content:'Delete theme';padding-left:5px}body:not(.is-mobile) .theme-list .community-theme.is-selected .community-theme-remove-button:hover{color:var(--text-error)}body:not(.is-mobile) .theme-list .community-theme.is-selected .modal-button-container{grid-column:2;grid-row:1/2;margin-top:0;margin-left:auto;margin-right:0}body:not(.is-mobile) .theme-list .community-theme.is-selected .modal-button-container button{margin:0;width:160px;height:36px;cursor:pointer;border:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1)}body:not(.is-mobile) .theme-list .community-theme.is-selected .modal-button-container button:hover{background-color:var(--ax2)}body:not(.is-mobile) .theme-list .community-theme.is-selected .modal-button-container button:not(.mod-cta){display:none}body:not(.is-mobile) .theme-list .community-theme.is-selected .community-theme-info::after{grid-column:1/3;grid-row:3/4;padding-top:20px;align-self:flex-start;justify-self:flex-start;content:var(--minimal-version);color:var(--text-normal);font-size:var(--font-adaptive-normal);line-height:1.4;width:100%;position:relative;white-space:pre-wrap;text-align:left;border:none}.community-theme-remove-button{top:15px}.community-theme-remove-button:hover{color:var(--text-error)}.community-theme.is-selected{padding-left:0;padding-right:0;background-color:transparent;color:var(--text-normal)}.community-theme.is-selected .community-theme-info+div{box-shadow:0 .5px 1px .5px rgba(0,0,0,.1),inset 0 0 0 2px var(--text-accent)}.community-theme.is-selected .community-theme-downloads,.community-theme.is-selected .community-theme-info{margin-bottom:0;color:var(--text-muted)}.community-theme.is-selected .community-theme-info .clickable-icon{width:100%;background-color:var(--background-primary);border:1px solid var(--background-modifier-border);color:var(--text-normal);cursor:pointer;display:block;text-align:center;grid-column:1/3;padding:7px 0;margin:20px 0 0;height:36px;border-radius:5px;box-shadow:0 1px 1px 0 var(--btn-shadow-color)}.community-theme.is-selected .community-theme-info .clickable-icon:hover{border:1px solid var(--background-modifier-border-hover);box-shadow:0 2px 3px 0 var(--btn-shadow-color)}.community-theme.is-selected .community-theme-info .clickable-icon::after{content:"Learn more";padding-left:4px}.community-theme.is-selected .modal-button-container .mod-cta{background-color:var(--interactive-accent);color:#fff}.community-theme.is-selected .modal-button-container .mod-cta:hover{background-color:var(--interactive-accent-hover)}.modal.mod-settings .vertical-tab-header{background:var(--background-secondary);padding-top:5px;flex:0 0 220px;padding-bottom:100px}.vertical-tab-header-group-title{color:var(--text-faint);text-transform:none;font-size:12px;letter-spacing:0;font-weight:500}.vertical-tab-nav-item{padding:5px 8px;margin:0 8px 0;color:var(--text-muted);font-weight:400;border:none;background:var(--background-secondary);cursor:var(--cursor);border-radius:var(--radius-m)}.vertical-tab-nav-item:hover{color:var(--text-normal)}.vertical-tab-nav-item.is-active{color:var(--text-normal);background-color:var(--background-tertiary)}.setting-hotkey{background-color:var(--background-tertiary);padding:3px 4px 3px 8px;display:flex;align-items:center}.setting-hotkey-icon.setting-delete-hotkey{margin-left:3px;cursor:var(--cursor)}.setting-delete-hotkey:hover{background-color:transparent}body:not(.minimal-icons) .setting-hotkey-icon.setting-delete-hotkey svg{width:16px;height:16px}.setting-hotkey.mod-empty{background:0 0;color:var(--text-faint)}.setting-item{padding:.75rem 0}.setting-item-description{padding-top:4px}.setting-item-control{margin-right:0;gap:8px}.workspace-split.mod-left-split>.workspace-leaf-resize-handle,.workspace-split.mod-right-split>.workspace-leaf-resize-handle{height:100%}.status-bar{transition:color .2s linear;color:var(--text-faint);font-size:var(--font-adaptive-smaller);border-top:var(--border-width) solid var(--background-divider);line-height:1;max-height:24px}.minimal-status-off .status-bar{background-color:var(--background-secondary);border-width:var(--border-width);padding:2px 6px 4px}body:not(.minimal-status-off) .status-bar{background-color:var(--background-primary);z-index:30;border-top-left-radius:5px;width:auto;position:absolute;left:auto;border:0;bottom:0;right:0;max-height:26px;padding:2px 8px 6px 3px}.sync-status-icon.mod-success,.sync-status-icon.mod-working{color:var(--text-faint);cursor:var(--cursor)}.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-item-segment{margin-right:10px}.status-bar-item,.sync-status-icon{display:flex;align-items:center}.status-bar-item{padding:7px 4px;margin:0;cursor:var(--cursor)!important}.status-bar-item .status-bar-item-icon{line-height:0}.status-bar-item.cMenu-statusbar-button:hover,.status-bar-item.mod-clickable:hover,.status-bar-item.plugin-editor-status:hover,.status-bar-item.plugin-sync:hover{text-align:center;background-color:var(--background-tertiary)!important;border-radius:4px}.status-bar-item.plugin-editor-status svg,.status-bar-item.plugin-sync svg{height:15px;width:15px}.theme-dark code[class*=language-],.theme-dark pre[class*=language-]{color:var(--tx1)}.theme-dark .cm-meta,.theme-dark .cm-qualifier,.theme-dark .token.cdata,.theme-dark .token.doctype,.theme-dark .token.prolog{color:var(--tx2)}.theme-dark .cm-comment,.theme-dark .token.comment{color:var(--tx2)}.theme-dark .cm-tag,.theme-dark .token.constant,.theme-dark .token.deleted,.theme-dark .token.symbol,.theme-dark .token.tag{color:var(--red)}.theme-dark .cm-bracket,.theme-dark .cm-hr,.theme-dark .cm-punctuation,.theme-dark .token.punctuation{color:var(--tx2)}.theme-dark .cm-number,.theme-dark .token.boolean,.theme-dark .token.number{color:var(--purple)}.theme-dark .cm-string,.theme-dark .cm-string-2,.theme-dark .token.attr-name,.theme-dark .token.builtin,.theme-dark .token.char,.theme-dark .token.inserted,.theme-dark .token.selector,.theme-dark .token.string{color:var(--green)}.theme-dark .cm-link,.theme-dark .cm-operator,.theme-dark .cm-property,.theme-dark .cm-variable-2,.theme-dark .cm-variable-3,.theme-dark .language-css .token.string,.theme-dark .style .token.string,.theme-dark .token.entity,.theme-dark .token.operator,.theme-dark .token.property,.theme-dark .token.url,.theme-dark .token.variable{color:var(--cyan)}.theme-dark .cm-attribute,.theme-dark .cm-def,.theme-dark .cm-type,.theme-dark .cm-variable,.theme-dark .token.atrule,.theme-dark .token.attr-value,.theme-dark .token.class-name,.theme-dark .token.function{color:var(--yellow)}.theme-dark .cm-builtin,.theme-dark .cm-keyword,.theme-dark .token.keyword{color:var(--pink)}.theme-dark .token.important,.theme-dark .token.regex{color:var(--orange)}.theme-light code[class*=language-],.theme-light pre[class*=language-]{color:var(--tx1)}.theme-light .cm-meta,.theme-light .cm-qualifier,.theme-light .token.cdata,.theme-light .token.doctype,.theme-light .token.prolog{color:var(--tx2)}.theme-light .cm-comment,.theme-light .token.comment{color:var(--tx2)}.theme-light .cm-tag,.theme-light .token.constant,.theme-light .token.deleted,.theme-light .token.symbol,.theme-light .token.tag{color:var(--red)}.theme-light .cm-bracket,.theme-light .cm-hr,.theme-light .cm-punctuation,.theme-light .token.punctuation{color:var(--tx2)}.theme-light .cm-number,.theme-light .token.boolean,.theme-light .token.number{color:var(--purple)}.theme-light .cm-string,.theme-light .cm-string-2,.theme-light .token.attr-name,.theme-light .token.builtin,.theme-light .token.char,.theme-light .token.inserted,.theme-light .token.selector,.theme-light .token.string{color:var(--green)}.theme-light .cm-link,.theme-light .cm-operator,.theme-light .cm-property,.theme-light .cm-variable-2,.theme-light .cm-variable-3,.theme-light .language-css .token.string,.theme-light .style .token.string,.theme-light .token.entity,.theme-light .token.operator,.theme-light .token.property,.theme-light .token.url,.theme-light .token.variable{color:var(--cyan)}.theme-light .cm-attribute,.theme-light .cm-def,.theme-light .cm-type,.theme-light .cm-variable,.theme-light .token.atrule,.theme-light .token.attr-value,.theme-light .token.class-name,.theme-light .token.function{color:var(--yellow)}.theme-light .cm-builtin,.theme-light .cm-keyword,.theme-light .token.keyword{color:var(--pink)}.theme-light .token.important,.theme-light .token.regex{color:var(--orange)}.markdown-source-view.mod-cm6 table{border-collapse:collapse}.markdown-preview-view table{margin-block-start:1em}.markdown-preview-view td,.markdown-preview-view th,.markdown-source-view.mod-cm6 td,.markdown-source-view.mod-cm6 th{padding:4px 10px}.markdown-preview-view td,.markdown-source-view.mod-cm6 td{font-size:var(--table-font-size)}.markdown-preview-view th,.markdown-source-view.mod-cm6 th{font-weight:400;font-size:var(--table-font-size);color:var(--text-muted);border-top:none;text-align:left}.markdown-preview-view th[align=center],.markdown-source-view.mod-cm6 th[align=center]{text-align:center}.markdown-preview-view th[align=right],.markdown-source-view.mod-cm6 th[align=right]{text-align:right}.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{border-right:none}.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{border-left:none;padding-left:0}.markdown-preview-view tr:last-child td,.markdown-source-view.mod-cm6 tr:last-child td{border-bottom:none}.CodeMirror pre.HyperMD-table-row{font-family:var(--font-monospace);font-size:var(--table-font-size)}.is-live-preview .el-table{width:100%;max-width:100%}.cm-s-obsidian .HyperMD-table-row{font-size:var(--table-font-size)}.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 .cm-s-obsidian span.cm-hashtag,body.minimal-unstyled-tags .frontmatter-container .tag,body.minimal-unstyled-tags a.tag{color:var(--tag-color);font-weight:var(--link-weight);text-decoration:none}body.minimal-unstyled-tags .cm-s-obsidian span.cm-hashtag:hover,body.minimal-unstyled-tags .frontmatter-container .tag:hover,body.minimal-unstyled-tags a.tag:hover{color:var(--text-normal)}body:not(.minimal-unstyled-tags) .frontmatter-container .tag,body:not(.minimal-unstyled-tags) a.tag{background-color:var(--tag-bg);border:var(--tag-border-width) solid var(--background-modifier-border);color:var(--tag-color);font-size:calc(var(--font-adaptive-normal) * .8);font-weight:var(--link-weight);font-family:var(--font-interface);padding:1px 8px;text-align:center;text-decoration:none;vertical-align:middle;display:inline-block;margin:1px 0;border-radius:var(--tag-radius)}body:not(.minimal-unstyled-tags) a.tag:hover{color:var(--text-normal);border-color:var(--background-modifier-border-hover);background-color:var(--tag-bg2)}body:not(.minimal-unstyled-tags) .cm-s-obsidian span.cm-hashtag{background-color:var(--tag-bg);border:var(--tag-border-width) solid var(--background-modifier-border);color:var(--tag-color);font-size:calc(var(--font-adaptive-normal) * .8);font-family:var(--font-interface);font-weight:var(--link-weight);text-align:center;text-decoration:none;margin:0;vertical-align:text-bottom;padding-top:2px;border-left:none;border-right:none;padding-bottom:3px;cursor:text}body:not(.minimal-unstyled-tags) .cm-s-obsidian span.cm-hashtag:hover{background-color:var(--tag-bg2)}body:not(.minimal-unstyled-tags) span.cm-hashtag.cm-hashtag-begin{border-top-left-radius:var(--tag-radius);border-bottom-left-radius:var(--tag-radius);padding-left:8px;border-right:none;border-left:var(--tag-border-width) solid var(--background-modifier-border)}body:not(.minimal-unstyled-tags) span.cm-hashtag.cm-hashtag-end{border-top-right-radius:var(--tag-radius);border-bottom-right-radius:var(--tag-radius);border-left:none;padding-right:8px;border-right:var(--tag-border-width) solid var(--background-modifier-border)}.tag-container{padding-left:15px}.tag-pane-tag-count{padding:0;color:var(--text-faint)}.pane-list-item-ending-flair{background:0 0}.tag-pane-tag{padding:2px 5px 2px 5px;cursor:var(--cursor)}.tag-pane-tag:hover{background:0 0}.nav-file.is-active .nav-file-title:hover{background:var(--background-tertiary)!important}.nav-file.is-active>.nav-file-title{background:var(--background-tertiary)}.tooltip{font-size:var(--font-adaptive-smaller);line-height:1.3;font-weight:500;padding:4px 8px;border-radius:4px;transition:none;text-align:left;animation:none;opacity:.8}.tooltip.mod-left,.tooltip.mod-right{transform:none;animation:none}.title-align-left:not(.plugin-sliding-panes-rotate-header) .view-header-title-container{margin-left:5px}.title-align-center:not(.plugin-sliding-panes-rotate-header) .view-header-title{margin-left:0;padding-right:0;text-align:center}.title-align-center:not(.plugin-sliding-panes-rotate-header) .view-header-title-container,.title-align-left:not(.plugin-sliding-panes-rotate-header) .view-header-title-container{width:auto;position:static}.mod-macos.hider-frameless:not(.is-fullscreen):not(.plugin-sliding-panes-rotate-header) .workspace-split.mod-left-split.is-collapsed+.mod-root .workspace-leaf:first-of-type .view-header-title-container{max-width:calc(100% - (var(--traffic-x-space) * 2) - 30px)}.mod-macos.is-popout-window.hider-frameless:not(.is-fullscreen):not(.plugin-sliding-panes-rotate-header) .mod-root .workspace-leaf:first-of-type .view-header-title-container{max-width:calc(100% - (var(--traffic-x-space) * 2) - 30px)}.view-header{height:var(--header-height);align-items:center}body:not(.minimal-icons-off) div.view-header-icon svg{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' enable-background='new 0 0 32 32' viewBox='0 0 32 32' xml:space='preserve'%3E%3Cpath d='M10 6h4v4h-4zm8 0h4v4h-4zm-8 8h4v4h-4zm8 0h4v4h-4zm-8 8h4v4h-4zm8 0h4v4h-4z'/%3E%3Cpath fill='none' d='M0 0h32v32H0z'/%3E%3C/svg%3E")}.view-header-icon{margin-left:var(--traffic-x-space);opacity:0;top:0;left:4px;z-index:20}.show-grabber .view-header-icon{opacity:var(--icon-muted)}.show-grabber .view-header-icon:hover{opacity:1}.view-header-icon:hover{cursor:grab}.view-header-icon:active{cursor:grabbing}.view-actions{margin-right:1px;height:calc(var(--header-height) - 1px);top:0;align-items:center;z-index:15;background:var(--background-primary)}.view-header-title{padding-right:80px}.view-header,.workspace-leaf-header,.workspace-leaf.mod-active .view-header,.workspace-split.mod-root>.workspace-leaf:first-of-type:last-of-type .view-header{background-color:var(--background-primary)!important;border-top:none;border-bottom:none}.view-header-title-container{padding-left:0;padding-right:0;position:absolute;width:var(--line-width-adaptive);max-width:var(--max-width);margin:0 auto;left:0;right:0}.view-header-title-container:after{display:none}.view-actions{padding:0 6px;margin-right:0;margin-left:auto;transition:opacity .25s ease-in-out}.view-actions .view-action{margin:0;top:0;padding:4px;border-radius:var(--radius-m);display:flex;align-items:center}body:not(.is-mobile) .view-actions .view-action{height:26px}.view-action.is-active{color:var(--icon-color);opacity:var(--icon-muted)}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-content{height:calc(100% - var(--header-height))}body:not(.hider-frameless):not(.is-fullscreen):not(.is-mobile){--titlebar-height:28px;padding-top:var(--titlebar-height)!important}body:not(.hider-frameless):not(.is-fullscreen):not(.is-mobile) .titlebar{background:var(--background-secondary);border-bottom:var(--border-width) solid var(--background-divider);height:var(--titlebar-height)!important;top:0!important;padding-top:0!important}body.hider-frameless .titlebar{border-bottom:none}.mod-windows .titlebar-button:hover{background-color:var(--background-primary-alt)}.mod-windows .titlebar-button.mod-close:hover{background-color:var(--background-modifier-error)}.mod-windows .mod-close:hover svg{fill:white!important;stroke:white!important}.titlebar-button-container{height:var(--titlebar-height);top:0;display:flex;align-items:center}.titlebar:hover .titlebar-button-container.mod-left{opacity:1}.is-focused .titlebar-text{color:var(--text-normal)}.titlebar-text{font-weight:600;color:var(--text-faint);letter-spacing:inherit}body:not(.window-title-on) .titlebar-text{display:none}.titlebar-button:hover{opacity:1;transition:opacity .1s ease-out}.titlebar-button{opacity:.5;cursor:var(--cursor);color:var(--text-muted);padding:2px 4px;border-radius:3px;line-height:1;display:flex}.titlebar-button:hover{background-color:var(--background-tertiary)}.titlebar-button-container.mod-left .titlebar-button{margin-right:5px}.titlebar-button-container.mod-right .titlebar-button{margin-left:0;border-radius:0;height:100%;align-items:center;padding:2px 15px}.empty-state{background-color:var(--background-primary);text-align:center}.empty-state-title,.workspace-leaf-content[data-type=empty] .view-header{display:none}.empty-state-action-list{color:var(--text-normal);font-size:var(--font-adaptive-normal)}.pane-empty{text-align:center;color:var(--text-faint);font-size:var(--font-adaptive-small)}.workspace-split.mod-root{background-color:var(--background-primary)}.workspace-split.mod-vertical>.workspace-split{padding:0}.workspace-split .workspace-tabs{background:var(--background-primary)}.workspace-split:not(.mod-right-split) .workspace-tabs{background:var(--background-secondary)}.workspace-split.mod-root>.workspace-leaf:first-of-type .workspace-leaf-content,.workspace-split.mod-root>.workspace-leaf:last-of-type .workspace-leaf-content{border-top-right-radius:0;border-top-left-radius:0}.workspace-split.mod-root.mod-horizontal .workspace-leaf-resize-handle,.workspace-split.mod-root.mod-vertical .workspace-leaf-resize-handle{border-width:1px}.workspace-split.mod-horizontal>*>.workspace-leaf-resize-handle{height:3px;background:0 0;border-bottom:var(--border-width-alt) solid var(--background-divider)}.workspace-split.mod-right-split>.workspace-leaf-resize-handle{background:0 0;border-left:var(--border-width-alt) solid var(--background-divider);width:3px!important}.workspace-split.mod-left-split>.workspace-leaf-resize-handle,.workspace-split.mod-vertical>*>.workspace-leaf-resize-handle{border-right:var(--border-width) solid var(--background-divider);width:4px!important;background:0 0}.workspace-split.mod-horizontal>*>.workspace-leaf-resize-handle:hover,.workspace-split.mod-left-split>.workspace-leaf-resize-handle:hover,.workspace-split.mod-right-split>.workspace-leaf-resize-handle:hover,.workspace-split.mod-vertical>*>.workspace-leaf-resize-handle:hover{border-color:var(--background-modifier-border-hover);transition:border-color .1s ease-in-out 50ms,border-width .1s ease-in-out 50ms;border-width:2px}.workspace-split.mod-horizontal>*>.workspace-leaf-resize-handle:active,.workspace-split.mod-left-split>.workspace-leaf-resize-handle:active,.workspace-split.mod-right-split>.workspace-leaf-resize-handle:active,.workspace-split.mod-vertical>*>.workspace-leaf-resize-handle:active{border-color:var(--background-modifier-border-focus);border-width:2px}.workspace-tab-container-after,.workspace-tab-container-before{width:0}.workspace-leaf{border-left:0}.workspace-tabs .workspace-leaf,.workspace-tabs .workspace-leaf.mod-active{border:none}.mod-horizontal .workspace-leaf{border-bottom:0;background-color:transparent;box-shadow:none!important}.workspace-split.mod-right-split .workspace-tabs .workspace-leaf{border-radius:0}.workspace-tab-container-inner{background:0 0;border-radius:0;width:100%;max-width:100%;margin:0 auto;padding-left:5px}.workspace-tabs .workspace-tab-header-container{border:none}.workspace-sidedock-empty-state+.workspace-tabs .workspace-tab-header-container{border-bottom:var(--border-width) solid var(--background-divider)}.mod-right-split .workspace-tabs .nav-buttons-container{z-index:1}.workspace-tab-header.is-active,.workspace-tab-header.is-after-active,.workspace-tab-header.is-after-active .workspace-tab-header-inner,.workspace-tab-header.is-before-active,.workspace-tab-header.is-before-active .workspace-tab-header-inner{background:0 0}.workspace-tabs{border:0;padding-right:0;font-size:100%}.workspace-tab-container-inner{padding-left:6px}.workspace-tab-header-inner{padding:0 0 0 2px}.workspace-tab-header-container{height:var(--header-height);padding:0;align-items:center;background-color:transparent}.workspace-tab-header-container{border-bottom:var(--border-width) solid var(--background-divider)}.theme-dark audio{filter:none}.theme-dark audio::-internal-media-controls-overflow-button,.theme-dark audio::-webkit-media-controls-current-time-display,.theme-dark audio::-webkit-media-controls-play-button,.theme-dark audio::-webkit-media-controls-time-remaining-display,.theme-dark audio::-webkit-media-controls-timeline,.theme-dark audio::-webkit-media-controls-volume-control-container{filter:invert(1)}audio{height:36px;border-radius:4px}audio::-webkit-media-controls-enclosure{border:1px solid var(--background-modifier-border);background-color:var(--background-secondary)}audio::-webkit-media-controls-current-time-display{color:var(--text-normal);font-family:var(--font-interface);font-size:var(--font-adaptive-small);text-shadow:none}audio::-webkit-media-controls-time-remaining-display{color:var(--text-muted);font-family:var(--font-interface);font-size:var(--font-adaptive-small);text-shadow:none}audio::-webkit-media-controls-panel{padding:2px 1.5px}audio::-webkit-media-controls input[pseudo="-internal-media-controls-overflow-button"i]:enabled:hover::-internal-media-controls-button-hover-background{background-color:transparent}button{cursor:var(--cursor)}.setting-item-control button,button{font-family:var(--font-interface);font-size:var(--font-inputs);font-weight:400;border-radius:var(--radius-m)}button:active,button:focus{-webkit-appearance:none;border-color:var(--background-modifier-border-hover)}body:not(.is-mobile) button:active,body:not(.is-mobile) button:focus{box-shadow:0 0 0 2px var(--background-modifier-border-hover)}.modal button:not(.mod-warning),.modal.mod-settings button:not(.mod-cta):not(.mod-warning),.modal.mod-settings button:not(.mod-warning){background-color:var(--interactive-normal);color:var(--text-normal);border:1px solid var(--background-modifier-border);box-shadow:0 1px 1px 0 var(--btn-shadow-color);cursor:var(--cursor);height:var(--input-height);line-height:0;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}.modal button:not(.mod-warning):hover,.modal.mod-settings button:not(.mod-warning):hover,button:hover{background-color:var(--interactive-normal);border-color:var(--background-modifier-border-hover);box-shadow:0 2px 3px 0 var(--btn-shadow-color);transition:background-color .2s ease-out,border-color .2s ease-out}.is-mobile button.copy-code-button{width:auto;margin-right:4px}.dropdown,body .addChoiceBox #addChoiceTypeSelector{font-family:var(--font-interface);font-size:var(--font-inputs)}.dropdown,select{box-shadow:0 1px 1px 0 var(--btn-shadow-color);background-color:var(--interactive-normal);border-color:var(--background-modifier-border);transition:border-color .1s linear;height:var(--input-height);font-family:var(--font-interface);border-radius:var(--radius-m)}.dropdown{background-image:url("data:image/svg+xml;charset=US-ASCII,<%2Fsvg>")}.theme-dark .dropdown{background-image:url("data:image/svg+xml;charset=US-ASCII,<%2Fsvg>")}.dropdown:hover,select:hover{background-color:var(--interactive-normal);box-shadow:0 2px 3px 0 var(--btn-shadow-color);border-color:var(--background-modifier-border-hover);transition:all .1s linear}.dropdown:active,.dropdown:focus,select:active,select:focus{-webkit-appearance:none;border-color:var(--background-modifier-border-hover)}body:not(.is-mobile) .dropdown:active,body:not(.is-mobile) .dropdown:focus,body:not(.is-mobile) select:active,body:not(.is-mobile) select:focus{box-shadow:0 0 0 2px var(--background-modifier-border-hover)}input[type=email],input[type=number],input[type=password],input[type=search],input[type=text],textarea{font-family:var(--font-interface);font-size:var(--font-inputs)}textarea{padding:5px 10px;transition:box-shadow .1s linear;-webkit-appearance:none;line-height:1.3}input[type=email],input[type=number],input[type=password],input[type=search],input[type=text]{padding:5px 10px;-webkit-appearance:none;transition:box-shadow .1s linear;height:var(--input-height)}input:hover,textarea:hover{border-color:var(--background-modifier-border-hover);transition:border-color .1s linear,box-shadow .1s linear}input[type=email]:active,input[type=email]:focus,input[type=number]:active,input[type=number]:focus,input[type=password]:active,input[type=password]:focus,input[type=search]:active,input[type=search]:focus,input[type=text]:active,input[type=text]:focus,textarea:active,textarea:focus{-webkit-appearance:none;border-color:var(--background-modifier-border-hover)}body:not(.is-mobile) .dropdown:active,body:not(.is-mobile) .dropdown:focus,body:not(.is-mobile) input:focus,body:not(.is-mobile) select:active,body:not(.is-mobile) select:focus,body:not(.is-mobile) textarea:active,body:not(.is-mobile) textarea:focus{box-shadow:0 0 0 2px var(--background-modifier-border-hover);transition:border-color .1s linear,box-shadow .1s linear}.theme-light{--progress-outline:rgba(0,0,0,0.05)}.theme-dark{--progress-outline:rgba(255,255,255,0.04)}.markdown-preview-view progress,.markdown-source-view.is-live-preview progress{-webkit-writing-mode:horizontal-tb;writing-mode:horizontal-tb;appearance:none;box-sizing:border-box;display:inline-block;height:5px;margin-bottom:4px;width:220px;max-width:100%;overflow:hidden;border-radius:0;border:0;vertical-align:-.2rem}.markdown-preview-view progress[value]::-webkit-progress-bar,.markdown-source-view.is-live-preview progress[value]::-webkit-progress-bar{background-color:var(--background-tertiary);box-shadow:inset 0 0 0 var(--border-width) var(--progress-outline);border-radius:5px;overflow:hidden}.markdown-preview-view progress[value]::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value]::-webkit-progress-value{background-color:var(--text-accent);overflow:hidden}.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-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(--red)}.markdown-preview-view progress[value^='4']::-webkit-progress-value,.markdown-preview-view 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(--orange)}.markdown-preview-view progress[value^='6']::-webkit-progress-value,.markdown-preview-view 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(--yellow)}.markdown-preview-view progress[value^='8']::-webkit-progress-value,.markdown-preview-view 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(--green)}.markdown-preview-view progress[value='1']::-webkit-progress-value,.markdown-preview-view 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(--text-accent)}.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-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(--red)}input[type=range]{background-color:var(--background-modifier-border-hover);height:2px;padding:0 0;-webkit-appearance:none;cursor:default;margin:0;border-radius:0}body:not(.is-mobile) input[type=range]:focus{box-shadow:none}input[type=range]::-webkit-slider-runnable-track{background:var(--background-modifier-border-hover);height:2px;margin-top:0}input[type=range]::-webkit-slider-thumb{background:#fff;border:1px solid var(--background-modifier-border-hover);height:18px;width:18px;border-radius:16px;margin-top:-5px;transition:all .1s linear;cursor:default;box-shadow:0 1px 1px 0 rgba(0,0,0,.05),0 2px 4px 0 rgba(0,0,0,.1)}input[type=range]::-webkit-slider-thumb:active,input[type=range]::-webkit-slider-thumb:hover{background:#fff;border-width:1;border:1px solid var(--background-modifier-border-focus);box-shadow:0 1px 2px 0 rgba(0,0,0,.05),0 2px 3px 0 rgba(0,0,0,.2);transition:all .1s linear}body:not(.is-mobile) input[type=range]:focus::-webkit-slider-thumb{box-shadow:0 1px 2px 0 rgba(0,0,0,.05),0 2px 3px 0 rgba(0,0,0,.2)}.checkbox-container{background-color:var(--background-modifier-border-hover);box-shadow:inset 0 0 1px 0 rgba(0,0,0,.2);border:none;width:40px;height:22px;cursor:var(--cursor)}.checkbox-container.is-enabled{border-color:var(--interactive-accent)}.checkbox-container.is-enabled:after{transform:translate3d(20px,0,0)}.checkbox-container:after{background:#fff;border:none;margin:2px 0 0 0;height:18px;width:18px;border-radius:26px;transform:translate3d(2px,0,0);box-shadow:0 1px 2px 0 rgba(0,0,0,.1);transition:all .1s linear}.checkbox-container:hover:after{box-shadow:0 2px 3px 0 rgba(0,0,0,.1);transition:all .1s linear}.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)}.borders-low{--border-width:0px;--border-width-alt:1px}.borders-none{--border-width:0px;--border-width-alt:0px}body.borders-title .workspace-leaf .workspace-leaf-content:not([data-type=empty]):not([data-type=map]):not([data-type=graph]):not([data-type=localgraph]) .view-header,body.borders-title .workspace-split.mod-root .workspace-leaf:first-of-type:last-of-type .workspace-leaf-content:not([data-type=map]):not([data-type=graph]):not([data-type=empty]):not([data-type=localgraph]) .view-header{border-bottom:var(--border-width) solid var(--background-divider)}body.borders-title .workspace-ribbon.mod-left.is-collapsed{border-right:var(--border-width) solid var(--background-divider)}body:not(.is-fullscreen).mod-macos.hider-frameless.borders-title .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header-container{border:none}:root{--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}@media (max-width:400pt){:root{--cards-min-width:var(--cards-mobile-width)}}.cards.table-100 table.dataview tbody,.table-100 .cards table.dataview tbody{padding:.25rem .75rem}.cards .el-pre+.el-lang-dataview .table-view-thead{padding-top:8px}.cards table.dataview tbody{clear:both;padding:.5rem 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--cards-min-width),var(--cards-max-width)));grid-column-gap:0.75rem;grid-row-gap:0.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}.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}.markdown-source-view.mod-cm6.cards .dataview.table-view-table>tbody>tr>td,.trim-cols .cards table.dataview tbody>tr>td{white-space:normal}.cards table.dataview tbody>tr>td,.markdown-source-view.mod-cm6.cards .dataview.table-view-table>tbody>tr>td{border-bottom:none;padding:0!important;line-height:1.2;width:calc(100% - var(--cards-padding));margin:0 auto;overflow:visible!important;max-width:100%;display:flex}.cards table.dataview tbody>tr>td .el-p{display:block;width:100%}.cards table.dataview tbody>tr>td:first-child{font-weight:var(--bold-weight)}.cards table.dataview tbody>tr>td:first-child a{padding:0 0 calc(var(--cards-padding)/3);display:block}.cards table.dataview tbody>tr>td:not(:first-child){font-size:90%;color:var(--text-muted)}@media (max-width:400pt){.cards table.dataview tbody>tr>td:not(:first-child){font-size:80%}}.cards-cover.cards table.dataview tbody>tr>td img{object-fit:cover}.cards-16-9.cards table.dataview tbody>tr>td img{aspect-ratio:16/9}.cards-1-1.cards table.dataview tbody>tr>td img{aspect-ratio:1/1}.cards-2-1.cards table.dataview tbody>tr>td img{aspect-ratio:2/1}.cards-2-3.cards table.dataview tbody>tr>td img{aspect-ratio:2/3}.cards-align-bottom.cards table.dataview tbody>tr>td:last-child{align-items:flex-end;flex-grow:1}.cards-cols-1 table.dataview tbody{grid-template-columns:repeat(1,minmax(0,1fr))}.cards-cols-2 table.dataview tbody{grid-template-columns:repeat(2,minmax(0,1fr))}@media (min-width:400pt){.cards-cols-3 table.dataview tbody{grid-template-columns:repeat(3,minmax(0,1fr))}.cards-cols-4 table.dataview tbody{grid-template-columns:repeat(4,minmax(0,1fr))}.cards-cols-5 table.dataview tbody{grid-template-columns:repeat(5,minmax(0,1fr))}.cards-cols-6 table.dataview tbody{grid-template-columns:repeat(6,minmax(0,1fr))}.cards-cols-7 table.dataview tbody{grid-template-columns:repeat(7,minmax(0,1fr))}.cards-cols-8 table.dataview tbody{grid-template-columns:repeat(8,minmax(0,1fr))}}.cards table.dataview tbody>tr>td>:not(.el-embed-image){padding:calc(var(--cards-padding)/3) 0}.cards table.dataview tbody>tr>td:not(:last-child):not(:first-child)>.el-p:not(.el-embed-image){border-bottom:1px solid var(--background-modifier-border);width:100%}.cards table.dataview tbody>tr>td a{text-decoration:none}.links-int-on .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:not(:last-child)>ul{border-bottom:1px solid var(--background-modifier-border)}.cards table.dataview tbody>tr>td .el-embed-image{background-color:var(--background-secondary);display:block;margin:0 calc(var(--cards-padding)/-2) 0 calc(var(--cards-padding)/-2);width:calc(100% + var(--cards-padding))}.cards table.dataview tbody>tr>td img{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 .edit-block-button{top:0}.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:4px}.cards table.dataview thead:before{content:'';position:absolute;right:0;top:0;height:var(--icon-size);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)}.cards table.dataview thead:before{opacity:.25;background-position:center center;background-size:var(--icon-size);background-image:url('data:image/svg+xml;utf8,')}.theme-light .cards table.dataview thead:before{background-image:url('data:image/svg+xml;utf8,')}.cards table.dataview thead:hover:before{opacity:.5}.cards table.dataview thead>tr{top:0;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:26px 0 0 0;width:100%}.cards table.dataview thead:hover>tr{display:flex}.cards table.dataview thead>tr>th{display:block;padding:3px 30px 3px 6px!important;border-radius:5px;width:100%;font-weight:400;color:var(--text-muted);cursor:var(--cursor);border:none;font-size:var(--font-adaptive-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-tertiary)}.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{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{background-color:var(--yellow);border-color:var(--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{content:" ";display:block;position:absolute;background-color:var(--background-modifier-accent);width:calc(50% - .5px);height:100%}input[data-task="!"]:checked,li[data-task="!"]>input:checked,li[data-task="!"]>p>input:checked{color:var(--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{background-position:50% 50%;background-color:var(--cyan);border-color:var(--cyan);background-size:75%;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(--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(--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{background-color:var(--blue);border-color:var(--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{border-color:var(--green);background-color:var(--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(--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(--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(--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(--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(--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(--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(--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(--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(--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{--sp1:var(--bg1)}.colorful-active #calendar-container .active,.colorful-active #calendar-container .active.today,.colorful-active #calendar-container .active:hover,.colorful-active #calendar-container .day:active,.colorful-active .menu-item.selected:not(.is-disabled):not(.is-label),.colorful-active .menu-item:hover,.colorful-active .menu-item:hover:not(.is-disabled):not(.is-label),.colorful-active .nav-file-title.is-active,.colorful-active .nav-file-title.is-being-dragged,.colorful-active .nav-folder-title.is-being-dragged,.colorful-active .vertical-tab-nav-item.is-active,body.colorful-active:not(.is-grabbing) .nav-file-title.is-active:hover,body.colorful-active:not(.is-grabbing) .nav-file-title.is-being-dragged:hover,body.colorful-active:not(.is-grabbing) .nav-folder-title.is-being-dragged:hover{background-color:var(--ax3);color:var(--sp1)}.colorful-active #calendar-container .active .dot,.colorful-active #calendar-container .day:active .dot,.colorful-active #calendar-container .today.active .dot{fill:var(--sp1)}.colorful-active .menu-item.selected:not(.is-disabled):not(.is-label) .menu-item-icon,.colorful-active .menu-item:hover .menu-item-icon{color:var(--sp1)}.colorful-active .nav-file-title-content.is-being-renamed{color:var(--text-normal)}.is-mobile.colorful-active .nav-file-title.is-active{box-shadow:0 0 0 2px var(--ax3)}body.colorful-headings{--h1-color:var(--red);--h2-color:var(--orange);--h3-color:var(--yellow);--h4-color:var(--green);--h5-color:var(--blue);--h6-color:var(--purple)}.is-mobile .tree-item-self .collapse-icon{width:20px}body:not(.minimal-icons-off) .graph-controls-button svg,body:not(.minimal-icons-off) .nav-action-button svg,body:not(.minimal-icons-off) .view-action svg,body:not(.minimal-icons-off) .workspace-tab-header-inner-icon svg{width:var(--icon-size);height:var(--icon-size)}body:not(.minimal-icons-off) .menu-item-icon svg{width:16px;height:16px}body:not(.minimal-icons-off) .workspace-ribbon-collapse-btn svg{width:var(--icon-size);height:var(--icon-size)}body:not(.minimal-icons-off) svg.ScriptEngine,body:not(.minimal-icons-off) svg.add-note-glyph,body:not(.minimal-icons-off) svg.any-key,body:not(.minimal-icons-off) svg.audio-file,body:not(.minimal-icons-off) svg.bar-graph,body:not(.minimal-icons-off) svg.blocks,body:not(.minimal-icons-off) svg.bold-glyph,body:not(.minimal-icons-off) svg.box-glyph,body:not(.minimal-icons-off) svg.bracket-glyph,body:not(.minimal-icons-off) svg.breadcrumbs-trail-icon,body:not(.minimal-icons-off) svg.broken-link,body:not(.minimal-icons-off) svg.bullet-list,body:not(.minimal-icons-off) svg.bullet-list-glyph,body:not(.minimal-icons-off) svg.calendar-day,body:not(.minimal-icons-off) svg.calendar-glyph,body:not(.minimal-icons-off) svg.calendar-with-checkmark,body:not(.minimal-icons-off) svg.changelog,body:not(.minimal-icons-off) svg.check-in-circle,body:not(.minimal-icons-off) svg.check-small,body:not(.minimal-icons-off) svg.checkbox-glyph,body:not(.minimal-icons-off) svg.checkmark,body:not(.minimal-icons-off) svg.clock,body:not(.minimal-icons-off) svg.clock-glyph,body:not(.minimal-icons-off) svg.cloud,body:not(.minimal-icons-off) svg.code-glyph,body:not(.minimal-icons-off) svg.command-glyph,body:not(.minimal-icons-off) svg.create-new,body:not(.minimal-icons-off) svg.cross,body:not(.minimal-icons-off) svg.cross-in-box,body:not(.minimal-icons-off) svg.crossed-star,body:not(.minimal-icons-off) svg.dice,body:not(.minimal-icons-off) svg.disk,body:not(.minimal-icons-off) svg.document,body:not(.minimal-icons-off) svg.documents,body:not(.minimal-icons-off) svg.dot-network,body:not(.minimal-icons-off) svg.double-down-arrow-glyph,body:not(.minimal-icons-off) svg.double-up-arrow-glyph,body:not(.minimal-icons-off) svg.down-arrow-with-tail,body:not(.minimal-icons-off) svg.down-chevron-glyph,body:not(.minimal-icons-off) svg.duplicate-glyph,body:not(.minimal-icons-off) svg.enter,body:not(.minimal-icons-off) svg.excalidraw-icon,body:not(.minimal-icons-off) svg.exit-fullscreen,body:not(.minimal-icons-off) svg.expand-vertically,body:not(.minimal-icons-off) svg.file-explorer-glyph,body:not(.minimal-icons-off) svg.filled-pin,body:not(.minimal-icons-off) svg.folder,body:not(.minimal-icons-off) svg.fullscreen,body:not(.minimal-icons-off) svg.gear,body:not(.minimal-icons-off) svg.globe,body:not(.minimal-icons-off) svg.go-to-file,body:not(.minimal-icons-off) svg.graph-glyph,body:not(.minimal-icons-off) svg.hashtag,body:not(.minimal-icons-off) svg.heading-glyph,body:not(.minimal-icons-off) svg.help,body:not(.minimal-icons-off) svg.help .widget-icon,body:not(.minimal-icons-off) svg.highlight-glyph,body:not(.minimal-icons-off) svg.horizontal-split,body:not(.minimal-icons-off) svg.image-file,body:not(.minimal-icons-off) svg.image-glyph,body:not(.minimal-icons-off) svg.import-glyph,body:not(.minimal-icons-off) svg.indent-glyph,body:not(.minimal-icons-off) svg.info,body:not(.minimal-icons-off) svg.install,body:not(.minimal-icons-off) svg.italic-glyph,body:not(.minimal-icons-off) svg.keyboard-glyph,body:not(.minimal-icons-off) svg.languages,body:not(.minimal-icons-off) svg.ledger,body:not(.minimal-icons-off) svg.left-arrow,body:not(.minimal-icons-off) svg.left-arrow-with-tail,body:not(.minimal-icons-off) svg.left-chevron-glyph,body:not(.minimal-icons-off) svg.lines-of-text,body:not(.minimal-icons-off) svg.link,body:not(.minimal-icons-off) svg.link-glyph,body:not(.minimal-icons-off) svg.links-coming-in,body:not(.minimal-icons-off) svg.links-going-out,body:not(.minimal-icons-off) svg.longform,body:not(.minimal-icons-off) svg.magnifying-glass,body:not(.minimal-icons-off) svg.merge-files,body:not(.minimal-icons-off) svg.merge-files-glyph,body:not(.minimal-icons-off) svg.microphone,body:not(.minimal-icons-off) svg.microphone-filled,body:not(.minimal-icons-off) svg.minus-with-circle,body:not(.minimal-icons-off) svg.note-glyph,body:not(.minimal-icons-off) svg.number-list-glyph,body:not(.minimal-icons-off) svg.obsidian-leaflet-plugin-icon-map,body:not(.minimal-icons-off) svg.open-elsewhere-glyph,body:not(.minimal-icons-off) svg.open-vault,body:not(.minimal-icons-off) svg.pane-layout,body:not(.minimal-icons-off) svg.paper-plane,body:not(.minimal-icons-off) svg.paper-plane-glyph,body:not(.minimal-icons-off) svg.paste,body:not(.minimal-icons-off) svg.paste-text,body:not(.minimal-icons-off) svg.paused,body:not(.minimal-icons-off) svg.pencil,body:not(.minimal-icons-off) svg.pencil_icon,body:not(.minimal-icons-off) svg.percent-sign-glyph,body:not(.minimal-icons-off) svg.pin,body:not(.minimal-icons-off) svg.play-audio-glyph,body:not(.minimal-icons-off) svg.plus-minus-glyph,body:not(.minimal-icons-off) svg.plus-with-circle,body:not(.minimal-icons-off) svg.popup-open,body:not(.minimal-icons-off) svg.presentation,body:not(.minimal-icons-off) svg.presentation-glyph,body:not(.minimal-icons-off) svg.price-tag-glyph,body:not(.minimal-icons-off) svg.question-mark-glyph,body:not(.minimal-icons-off) svg.quote-glyph,body:not(.minimal-icons-off) svg.reading-glasses,body:not(.minimal-icons-off) svg.redo-glyph,body:not(.minimal-icons-off) svg.reset,body:not(.minimal-icons-off) svg.restore-file-glyph,body:not(.minimal-icons-off) svg.right-arrow,body:not(.minimal-icons-off) svg.right-arrow-with-tail,body:not(.minimal-icons-off) svg.right-chevron-glyph,body:not(.minimal-icons-off) svg.right-triangle,body:not(.minimal-icons-off) svg.run-command,body:not(.minimal-icons-off) svg.scissors,body:not(.minimal-icons-off) svg.scissors-glyph,body:not(.minimal-icons-off) svg.search,body:not(.minimal-icons-off) svg.search-glyph,body:not(.minimal-icons-off) svg.select-all-text,body:not(.minimal-icons-off) svg.sheets-in-box,body:not(.minimal-icons-off) svg.split,body:not(.minimal-icons-off) svg.spreadsheet,body:not(.minimal-icons-off) svg.stacked-levels,body:not(.minimal-icons-off) svg.star,body:not(.minimal-icons-off) svg.star-glyph,body:not(.minimal-icons-off) svg.star-list,body:not(.minimal-icons-off) svg.stop-audio-glyph,body:not(.minimal-icons-off) svg.strikethrough-glyph,body:not(.minimal-icons-off) svg.sweep,body:not(.minimal-icons-off) svg.switch,body:not(.minimal-icons-off) svg.sync,body:not(.minimal-icons-off) svg.sync-small,body:not(.minimal-icons-off) svg.tag-glyph,body:not(.minimal-icons-off) svg.three-horizontal-bars,body:not(.minimal-icons-off) svg.tomorrow-glyph,body:not(.minimal-icons-off) svg.trash,body:not(.minimal-icons-off) svg.two-blank-pages,body:not(.minimal-icons-off) svg.undo-glyph,body:not(.minimal-icons-off) svg.unindent-glyph,body:not(.minimal-icons-off) svg.up-and-down-arrows,body:not(.minimal-icons-off) svg.up-arrow-with-tail,body:not(.minimal-icons-off) svg.up-chevron-glyph,body:not(.minimal-icons-off) svg.vault,body:not(.minimal-icons-off) svg.vertical-split,body:not(.minimal-icons-off) svg.vertical-three-dots,body:not(.minimal-icons-off) svg.wand,body:not(.minimal-icons-off) svg.workspace-glyph,body:not(.minimal-icons-off) svg.wrench-screwdriver-glyph,body:not(.minimal-icons-off) svg.yesterday-glyph{background-color:currentColor}body:not(.minimal-icons-off) svg.ScriptEngine>path,body:not(.minimal-icons-off) svg.add-note-glyph>path,body:not(.minimal-icons-off) svg.any-key>path,body:not(.minimal-icons-off) svg.audio-file>path,body:not(.minimal-icons-off) svg.bar-graph>path,body:not(.minimal-icons-off) svg.blocks>path,body:not(.minimal-icons-off) svg.bold-glyph>path,body:not(.minimal-icons-off) svg.box-glyph>path,body:not(.minimal-icons-off) svg.bracket-glyph>path,body:not(.minimal-icons-off) svg.breadcrumbs-trail-icon>path,body:not(.minimal-icons-off) svg.broken-link>path,body:not(.minimal-icons-off) svg.bullet-list-glyph>path,body:not(.minimal-icons-off) svg.bullet-list>path,body:not(.minimal-icons-off) svg.calendar-day>path,body:not(.minimal-icons-off) svg.calendar-glyph>path,body:not(.minimal-icons-off) svg.calendar-with-checkmark>path,body:not(.minimal-icons-off) svg.changelog>path,body:not(.minimal-icons-off) svg.check-in-circle>path,body:not(.minimal-icons-off) svg.check-small>path,body:not(.minimal-icons-off) svg.checkbox-glyph>path,body:not(.minimal-icons-off) svg.checkmark>path,body:not(.minimal-icons-off) svg.clock-glyph>path,body:not(.minimal-icons-off) svg.clock>path,body:not(.minimal-icons-off) svg.cloud>path,body:not(.minimal-icons-off) svg.code-glyph>path,body:not(.minimal-icons-off) svg.command-glyph>path,body:not(.minimal-icons-off) svg.create-new>path,body:not(.minimal-icons-off) svg.cross-in-box>path,body:not(.minimal-icons-off) svg.cross>path,body:not(.minimal-icons-off) svg.crossed-star>path,body:not(.minimal-icons-off) svg.dice>path,body:not(.minimal-icons-off) svg.disk>path,body:not(.minimal-icons-off) svg.document>path,body:not(.minimal-icons-off) svg.documents>path,body:not(.minimal-icons-off) svg.dot-network>path,body:not(.minimal-icons-off) svg.double-down-arrow-glyph>path,body:not(.minimal-icons-off) svg.double-up-arrow-glyph>path,body:not(.minimal-icons-off) svg.down-arrow-with-tail>path,body:not(.minimal-icons-off) svg.down-chevron-glyph>path,body:not(.minimal-icons-off) svg.duplicate-glyph>path,body:not(.minimal-icons-off) svg.enter>path,body:not(.minimal-icons-off) svg.excalidraw-icon path,body:not(.minimal-icons-off) svg.exit-fullscreen>path,body:not(.minimal-icons-off) svg.expand-vertically>path,body:not(.minimal-icons-off) svg.file-explorer-glyph>path,body:not(.minimal-icons-off) svg.filled-pin>path,body:not(.minimal-icons-off) svg.folder>path,body:not(.minimal-icons-off) svg.fullscreen>path,body:not(.minimal-icons-off) svg.gear>path,body:not(.minimal-icons-off) svg.globe>path,body:not(.minimal-icons-off) svg.go-to-file>path,body:not(.minimal-icons-off) svg.graph-glyph>path,body:not(.minimal-icons-off) svg.hashtag>path,body:not(.minimal-icons-off) svg.heading-glyph>path,body:not(.minimal-icons-off) svg.help .widget-icon>path,body:not(.minimal-icons-off) svg.help>path,body:not(.minimal-icons-off) svg.highlight-glyph>path,body:not(.minimal-icons-off) svg.horizontal-split>path,body:not(.minimal-icons-off) svg.image-file>path,body:not(.minimal-icons-off) svg.image-glyph>path,body:not(.minimal-icons-off) svg.import-glyph>path,body:not(.minimal-icons-off) svg.indent-glyph>path,body:not(.minimal-icons-off) svg.info>path,body:not(.minimal-icons-off) svg.install>path,body:not(.minimal-icons-off) svg.italic-glyph>path,body:not(.minimal-icons-off) svg.keyboard-glyph>path,body:not(.minimal-icons-off) svg.languages>path,body:not(.minimal-icons-off) svg.left-arrow-with-tail>path,body:not(.minimal-icons-off) svg.left-arrow>path,body:not(.minimal-icons-off) svg.left-chevron-glyph>path,body:not(.minimal-icons-off) svg.lines-of-text>path,body:not(.minimal-icons-off) svg.link-glyph>path,body:not(.minimal-icons-off) svg.link>path,body:not(.minimal-icons-off) svg.links-coming-in>path,body:not(.minimal-icons-off) svg.links-going-out>path,body:not(.minimal-icons-off) svg.longform>path,body:not(.minimal-icons-off) svg.magnifying-glass>path,body:not(.minimal-icons-off) svg.merge-files>path,body:not(.minimal-icons-off) svg.microphone-filled>path,body:not(.minimal-icons-off) svg.microphone>path,body:not(.minimal-icons-off) svg.minus-with-circle>path,body:not(.minimal-icons-off) svg.note-glyph>path,body:not(.minimal-icons-off) svg.number-list-glyph>path,body:not(.minimal-icons-off) svg.obsidian-leaflet-plugin-icon-map>path,body:not(.minimal-icons-off) svg.open-elsewhere-glyph>path,body:not(.minimal-icons-off) svg.open-vault>path,body:not(.minimal-icons-off) svg.pane-layout>path,body:not(.minimal-icons-off) svg.paper-plane-glyph>path,body:not(.minimal-icons-off) svg.paper-plane>path,body:not(.minimal-icons-off) svg.paste-text>path,body:not(.minimal-icons-off) svg.paste>path,body:not(.minimal-icons-off) svg.paused>path,body:not(.minimal-icons-off) svg.pencil>path,body:not(.minimal-icons-off) svg.pencil_icon>path,body:not(.minimal-icons-off) svg.percent-sign-glyph>path,body:not(.minimal-icons-off) svg.pin>path,body:not(.minimal-icons-off) svg.play-audio-glyph>path,body:not(.minimal-icons-off) svg.plus-minus-glyph>path,body:not(.minimal-icons-off) svg.plus-with-circle>path,body:not(.minimal-icons-off) svg.popup-open>path,body:not(.minimal-icons-off) svg.presentation-glyph>path,body:not(.minimal-icons-off) svg.presentation>path,body:not(.minimal-icons-off) svg.price-tag-glyph>path,body:not(.minimal-icons-off) svg.question-mark-glyph>path,body:not(.minimal-icons-off) svg.quote-glyph>path,body:not(.minimal-icons-off) svg.reading-glasses>path,body:not(.minimal-icons-off) svg.redo-glyph>path,body:not(.minimal-icons-off) svg.reset>path,body:not(.minimal-icons-off) svg.restore-file-glyph>path,body:not(.minimal-icons-off) svg.right-arrow-with-tail>path,body:not(.minimal-icons-off) svg.right-arrow>path,body:not(.minimal-icons-off) svg.right-chevron-glyph>path,body:not(.minimal-icons-off) svg.right-triangle>path,body:not(.minimal-icons-off) svg.run-command>path,body:not(.minimal-icons-off) svg.scissors-glyph>path,body:not(.minimal-icons-off) svg.scissors>path,body:not(.minimal-icons-off) svg.search-glyph>path,body:not(.minimal-icons-off) svg.search>path,body:not(.minimal-icons-off) svg.select-all-text>path,body:not(.minimal-icons-off) svg.sheets-in-box>path,body:not(.minimal-icons-off) svg.split>path,body:not(.minimal-icons-off) svg.spreadsheet>path,body:not(.minimal-icons-off) svg.stacked-levels>path,body:not(.minimal-icons-off) svg.star-glyph>path,body:not(.minimal-icons-off) svg.star-list>path,body:not(.minimal-icons-off) svg.star>path,body:not(.minimal-icons-off) svg.stop-audio-glyph>path,body:not(.minimal-icons-off) svg.strikethrough-glyph>path,body:not(.minimal-icons-off) svg.sweep>path,body:not(.minimal-icons-off) svg.switch>path,body:not(.minimal-icons-off) svg.sync-small>path,body:not(.minimal-icons-off) svg.sync>path,body:not(.minimal-icons-off) svg.tag-glyph>path,body:not(.minimal-icons-off) svg.three-horizontal-bars>path,body:not(.minimal-icons-off) svg.tomorrow-glyph>path,body:not(.minimal-icons-off) svg.trash>path,body:not(.minimal-icons-off) svg.two-blank-pages>path,body:not(.minimal-icons-off) svg.undo-glyph>path,body:not(.minimal-icons-off) svg.unindent-glyph>path,body:not(.minimal-icons-off) svg.up-and-down-arrows>path,body:not(.minimal-icons-off) svg.up-arrow-with-tail>path,body:not(.minimal-icons-off) svg.up-chevron-glyph>path,body:not(.minimal-icons-off) svg.vault>path,body:not(.minimal-icons-off) svg.vertical-split>path,body:not(.minimal-icons-off) svg.vertical-three-dots>path,body:not(.minimal-icons-off) svg.wand>path,body:not(.minimal-icons-off) svg.workspace-glyph>path,body:not(.minimal-icons-off) svg.wrench-screwdriver-glyph>path,body:not(.minimal-icons-off) svg.yesterday-glyph>path{display:none}body:not(.minimal-icons-off) svg.any-key{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.audio-file{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.bar-graph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.breadcrumbs-trail-icon{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.blocks{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.bold-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.italic-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.bracket-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.broken-link{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.bullet-list-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.bullet-list{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.calendar-with-checkmark{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.check-in-circle{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.check-small{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.checkbox-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.checkmark{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.clock{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.clock-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.cloud{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.code-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.cross-in-box{-webkit-mask-image:url("data:image/svg+xml,")}body:not(.minimal-icons-off) svg.cross{-webkit-mask-image:url("data:image/svg+xml,");width:var(--icon-size);height:var(--icon-size)}body:not(.minimal-icons-off) svg.crossed-star{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.dice{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.disk{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-6 w-6' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M8 7H5a2 2 0 00-2 2v9a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-3m-1 4l-3 3m0 0l-3-3m3 3V4' /%3E%3C/svg%3E")}body:not(.minimal-icons-off) svg.document{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) .nav-action-button[aria-label="New note"] svg.document,body:not(.minimal-icons-off) .workspace-leaf-content[data-type=file-explorer] .nav-action-button:first-child svg.document,body:not(.minimal-icons-off) svg.create-new{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-6 w-6' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z' /%3E%3C/svg%3E")}body:not(.minimal-icons-off) svg.documents{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.dot-network{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.double-down-arrow-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.double-up-arrow-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.down-arrow-with-tail{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.down-chevron-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.enter{transform:translate(-2px);-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.expand-vertically{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.filled-pin{transform:rotate(45deg);-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.folder{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) .workspace-tab-header[aria-label="File explorer"] svg.folder,body:not(.minimal-icons-off) .workspace-tab-header[data-type=file-explorer] svg.folder{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-6 w-6' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6' /%3E%3C/svg%3E")}body:not(.minimal-icons-off) .nav-action-button[aria-label="New folder"] svg.folder,body:not(.minimal-icons-off) .workspace-leaf-content[data-type=file-explorer] .nav-action-button:nth-child(2) svg.folder{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-6 w-6' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M9 13h6m-3-3v6m-9 1V7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2z' /%3E%3C/svg%3E")}body:not(.minimal-icons-off) svg.fullscreen{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.ScriptEngine,body:not(.minimal-icons-off) svg.gear{-webkit-mask-image:url("data:image/svg+xml,")}body:not(.minimal-icons-off) svg.globe{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-6 w-6' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 0 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064M21 12a9 9 0 11-18 0 9 9 0 0118 0z' /%3E%3C/svg%3E")}body:not(.minimal-icons-off) svg.hashtag{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.heading-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.go-to-file{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.help,body:not(.minimal-icons-off) svg.help .widget-icon{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.highlight-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.horizontal-split{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.image-file{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.image-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.indent-glyph{-webkit-mask-image:url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="24" height="24" preserveAspectRatio="xMidYMid meet" viewBox="0 0 16 16"%3E%3Cg fill="black"%3E%3Cpath d="M2 3.5a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5zm.646 2.146a.5.5 0 0 1 .708 0l2 2a.5.5 0 0 1 0 .708l-2 2a.5.5 0 0 1-.708-.708L4.293 8L2.646 6.354a.5.5 0 0 1 0-.708zM7 6.5a.5.5 0 0 1 .5-.5h6a.5.5 0 0 1 0 1h-6a.5.5 0 0 1-.5-.5zm0 3a.5.5 0 0 1 .5-.5h6a.5.5 0 0 1 0 1h-6a.5.5 0 0 1-.5-.5zm-5 3a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5z"%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E')}body:not(.minimal-icons-off) svg.info{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.install{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.keyboard-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.left-arrow-with-tail{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.left-arrow{-webkit-mask-image:url("data:image/svg+xml,")}body:not(.minimal-icons-off) svg.left-chevron-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.lines-of-text,body:not(.minimal-icons-off) svg.reading-glasses{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.ledger{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-6 w-6' fill='none' viewBox='0 0 24 24' stroke='currentColor' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M17 9V7a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2m2 4h10a2 2 0 002-2v-6a2 2 0 00-2-2H9a2 2 0 00-2 2v6a2 2 0 002 2zm7-5a2 2 0 11-4 0 2 2 0 014 0z' /%3E%3C/svg%3E")}body:not(.minimal-icons-off) svg.link-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,');transform:rotate(90deg)}body:not(.minimal-icons-off) svg.link{-webkit-mask-image:url('data:image/svg+xml;utf8,');transform:rotate(90deg)}body:not(.minimal-icons-off) svg.magnifying-glass{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.microphone-filled{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.microphone{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.minus-with-circle{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.note-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.number-list-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.open-vault{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.obsidian-leaflet-plugin-icon-map{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-6 w-6' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M9 20l-5.447-2.724A1 1 0 013 16.382V5.618a1 1 0 011.447-.894L9 7m0 13l6-3m-6 3V7m6 10l4.553 2.276A1 1 0 0021 18.382V7.618a1 1 0 00-.553-.894L15 4m0 13V4m0 0L9 7' /%3E%3C/svg%3E")}body:not(.minimal-icons-off) svg.pane-layout{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.paper-plane{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.paused{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.pencil_icon{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-6 w-6' fill='none' viewBox='0 0 24 24' stroke='currentColor' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M5 3v4M3 5h4M6 17v4m-2-2h4m5-16l2.286 6.857L21 12l-5.714 2.143L13 21l-2.286-6.857L5 12l5.714-2.143L13 3z' /%3E%3C/svg%3E")}body:not(.minimal-icons-off) svg.pencil{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.pin{transform:rotate(45deg);-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.plus-with-circle{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.popup-open{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.presentation{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.price-tag-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.quote-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) .workspace-tab-header[data-type=dictionary-view] svg.quote-glyph{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-6 w-6' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253' /%3E%3C/svg%3E")}body:not(.minimal-icons-off) svg.redo-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.reset{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.right-arrow-with-tail{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.right-arrow{-webkit-mask-image:url("data:image/svg+xml,")}body:not(.minimal-icons-off) svg.right-chevron-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.right-triangle{color:var(--text-faint);background-color:var(--text-faint);height:12px;width:12px;-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.command-glyph,body:not(.minimal-icons-off) svg.run-command{-webkit-mask-image:url("data:image/svg+xml,")}body:not(.minimal-icons-off) svg.search{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.sheets-in-box{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.spreadsheet{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.stacked-levels{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.star-list{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.star{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.strikethrough-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.switch{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.sync-small{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.sync{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.tag-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body.is-mobile:not(.minimal-icons-off) .view-header-icon svg.three-horizontal-bars{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 26 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.18555 18.8857H9.87207V1.91309H8.18555V18.8857ZM6.1123 6.2207C6.27702 6.2207 6.42025 6.15983 6.54199 6.03809C6.66374 5.90918 6.72461 5.76953 6.72461 5.61914C6.72461 5.45443 6.66374 5.31478 6.54199 5.2002C6.42025 5.07845 6.27702 5.01758 6.1123 5.01758H3.81348C3.64876 5.01758 3.50553 5.07845 3.38379 5.2002C3.26204 5.31478 3.20117 5.45443 3.20117 5.61914C3.20117 5.76953 3.26204 5.90918 3.38379 6.03809C3.50553 6.15983 3.64876 6.2207 3.81348 6.2207H6.1123ZM6.1123 9.00293C6.27702 9.00293 6.42025 8.94206 6.54199 8.82031C6.66374 8.69857 6.72461 8.55534 6.72461 8.39062C6.72461 8.23307 6.66374 8.09701 6.54199 7.98242C6.42025 7.86068 6.27702 7.7998 6.1123 7.7998H3.81348C3.64876 7.7998 3.50553 7.86068 3.38379 7.98242C3.26204 8.09701 3.20117 8.23307 3.20117 8.39062C3.20117 8.55534 3.26204 8.69857 3.38379 8.82031C3.50553 8.94206 3.64876 9.00293 3.81348 9.00293H6.1123ZM6.1123 11.7744C6.27702 11.7744 6.42025 11.7171 6.54199 11.6025C6.66374 11.4808 6.72461 11.3411 6.72461 11.1836C6.72461 11.0189 6.66374 10.8792 6.54199 10.7646C6.42025 10.6429 6.27702 10.582 6.1123 10.582H3.81348C3.64876 10.582 3.50553 10.6429 3.38379 10.7646C3.26204 10.8792 3.20117 11.0189 3.20117 11.1836C3.20117 11.3411 3.26204 11.4808 3.38379 11.6025C3.50553 11.7171 3.64876 11.7744 3.81348 11.7744H6.1123ZM3.37305 20.2822H21.957C23.0885 20.2822 23.9336 20.0029 24.4922 19.4443C25.0508 18.8929 25.3301 18.0622 25.3301 16.9521V3.83594C25.3301 2.72591 25.0508 1.89518 24.4922 1.34375C23.9336 0.785156 23.0885 0.505859 21.957 0.505859H3.37305C2.2487 0.505859 1.40365 0.785156 0.837891 1.34375C0.279297 1.89518 0 2.72591 0 3.83594V16.9521C0 18.0622 0.279297 18.8929 0.837891 19.4443C1.40365 20.0029 2.2487 20.2822 3.37305 20.2822ZM3.39453 18.5527C2.85742 18.5527 2.44564 18.4131 2.15918 18.1338C1.87272 17.8473 1.72949 17.4248 1.72949 16.8662V3.92188C1.72949 3.36328 1.87272 2.94434 2.15918 2.66504C2.44564 2.37858 2.85742 2.23535 3.39453 2.23535H21.9355C22.4655 2.23535 22.8737 2.37858 23.1602 2.66504C23.4538 2.94434 23.6006 3.36328 23.6006 3.92188V16.8662C23.6006 17.4248 23.4538 17.8473 23.1602 18.1338C22.8737 18.4131 22.4655 18.5527 21.9355 18.5527H3.39453Z' fill='black'/%3E%3C/svg%3E%0A")}body:not(.minimal-icons-off) svg.three-horizontal-bars{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.trash{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.undo-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.unindent-glyph{-webkit-mask-image:url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="24" height="24" preserveAspectRatio="xMidYMid meet" viewBox="0 0 16 16"%3E%3Cg fill="black"%3E%3Cpath d="M2 3.5a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5zm10.646 2.146a.5.5 0 0 1 .708.708L11.707 8l1.647 1.646a.5.5 0 0 1-.708.708l-2-2a.5.5 0 0 1 0-.708l2-2zM2 6.5a.5.5 0 0 1 .5-.5h6a.5.5 0 0 1 0 1h-6a.5.5 0 0 1-.5-.5zm0 3a.5.5 0 0 1 .5-.5h6a.5.5 0 0 1 0 1h-6a.5.5 0 0 1-.5-.5zm0 3a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5z"%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E')}body:not(.minimal-icons-off) svg.up-and-down-arrows{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.up-arrow-with-tail{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.up-chevron-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.vault{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.vertical-split{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.vertical-three-dots{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.wrench-screwdriver-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.add-note-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.calendar-day{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.calendar-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.duplicate-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.file-explorer-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.graph-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.import-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.languages{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.links-coming-in{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.links-going-out{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.merge-files{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.open-elsewhere-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.paper-plane-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.paste-text{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.paste{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.percent-sign-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.play-audio-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.plus-minus-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.presentation-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.question-mark-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.restore-file-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.scissors-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.scissors{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.search-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.select-all-text{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.split{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.star-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.stop-audio-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.sweep{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.two-blank-pages{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.tomorrow-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.yesterday-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.workspace-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.box-glyph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.wand{-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,')}body:not(.minimal-icons-off) svg.changelog{-webkit-mask-image:url('data:image/svg+xml;utf8,')}.fancy-cursor .CodeMirror-cursor{border:none;border-left:2px solid var(--text-accent)}.cm-fat-cursor .CodeMirror-cursor{background-color:var(--text-accent);opacity:.5;width:5px}.cm-animate-fat-cursor{background-color:var(--text-accent);opacity:.5;width:5px}body .markdown-source-view.mod-cm6 .cm-content{caret-color:unset}body.fancy-cursor .markdown-source-view.mod-cm6 .cm-content,body.fancy-cursor .mod-cm6 .cm-line{caret-color:var(--text-accent)}.fancy-cursor input.prompt-input{caret-color:var(--text-accent)}.nav-folder-children .nav-folder-children{margin-left:18px;padding-left:0}body:not(.sidebar-lines-off) .nav-folder-children .nav-folder-children{border-left:1px solid var(--background-modifier-border)}.nav-folder-title{margin-left:6px}.nav-file{margin-left:10px}.mod-root>.nav-folder-children>.nav-file{margin-left:12px}.workspace-ribbon.mod-left{border-left:0;transition:none}.minimal-focus-mode .workspace-ribbon.mod-left.is-collapsed{border-color:transparent;background-color:var(--background-primary)}.minimal-focus-mode .workspace-ribbon.mod-left{background-color:var(--background-secondary);transition:background-color 0s linear 0s}.minimal-focus-mode .workspace-ribbon.is-collapsed .workspace-ribbon-collapse-btn,.minimal-focus-mode .workspace-ribbon.mod-left.is-collapsed{opacity:0;transition:opacity .1s ease-in-out .1s,background-color .1s linear .1s}.minimal-focus-mode .workspace-ribbon.is-collapsed:hover .workspace-ribbon-collapse-btn,.minimal-focus-mode .workspace-ribbon.mod-left.is-collapsed:hover{opacity:1}.is-right-sidedock-collapsed .workspace-split.mod-right-split{margin-right:0}body.minimal-focus-mode.borders-title .workspace-ribbon.mod-left.is-collapsed{border-right:none}body.minimal-focus-mode.borders-title .workspace-leaf .workspace-leaf-content:not([data-type=empty]):not([data-type=map]):not([data-type=graph]):not([data-type=localgraph]) .view-header,body.minimal-focus-mode.borders-title .workspace-split.mod-root .workspace-leaf:first-of-type:last-of-type .workspace-leaf-content:not([data-type=empty]):not([data-type=map]):not([data-type=graph]):not([data-type=localgraph]) .view-header{border-bottom:var(--border-width) solid transparent}body.minimal-focus-mode.borders-title .workspace-leaf .workspace-leaf-content:not([data-type=graph]):not([data-type=localgraph]) .view-header:focus-within,body.minimal-focus-mode.borders-title .workspace-leaf .workspace-leaf-content:not([data-type=graph]):not([data-type=localgraph]) .view-header:hover,body.minimal-focus-mode.borders-title .workspace-split.mod-root .workspace-leaf:first-of-type:last-of-type .workspace-leaf-content:not([data-type=graph]):not([data-type=empty]):not([data-type=localgraph]) .view-header:focus-within,body.minimal-focus-mode.borders-title .workspace-split.mod-root .workspace-leaf:first-of-type:last-of-type .workspace-leaf-content:not([data-type=graph]):not([data-type=empty]):not([data-type=localgraph]) .view-header:hover{border-bottom:var(--border-width) solid var(--background-divider)}body:not(.plugin-sliding-panes-rotate-header) .app-container .workspace-split.mod-root>.workspace-leaf .view-header{transition:height linear .1s}body.minimal-focus-mode:not(.plugin-sliding-panes-rotate-header) .app-container .workspace-split.mod-root>.workspace-leaf .view-header{height:0;transition:all linear .1s}body.minimal-focus-mode:not(.plugin-sliding-panes-rotate-header) .view-header::after{width:100%;content:" ";background-color:transparent;height:20px;position:absolute;z-index:-9;top:0}body.minimal-focus-mode .mod-left:not(.is-pinned)+.mod-root>div:first-of-type .view-header-icon,body.minimal-focus-mode:not(.plugin-sliding-panes-rotate-header) .view-actions,body.minimal-focus-mode:not(.plugin-sliding-panes-rotate-header) .view-header-icon,body.minimal-focus-mode:not(.plugin-sliding-panes-rotate-header) .view-header-title{opacity:0;transition:all linear .1s}body.minimal-focus-mode:not(.plugin-sliding-panes-rotate-header) .workspace-split.mod-root .workspace-leaf .view-header:focus-within,body.minimal-focus-mode:not(.plugin-sliding-panes-rotate-header) .workspace-split.mod-root .workspace-leaf .view-header:hover{height:calc(var(--header-height) + 2px);transition:all linear .1s}body.minimal-focus-mode .mod-left:not(.is-pinned)+.mod-root>div:first-of-type .view-header:focus-within .view-header-icon,body.minimal-focus-mode .mod-left:not(.is-pinned)+.mod-root>div:first-of-type .view-header:hover .view-header-icon,body.minimal-focus-mode.show-grabber .view-header:focus-within .view-header-icon,body.minimal-focus-mode.show-grabber .view-header:hover .view-header-icon{opacity:var(--icon-muted)}body.minimal-focus-mode .mod-left:not(.is-pinned)+.mod-root>div:first-of-type .view-header:focus-within .view-header-icon:hover,body.minimal-focus-mode .mod-left:not(.is-pinned)+.mod-root>div:first-of-type .view-header:hover .view-header-icon:hover,body.minimal-focus-mode .view-header:focus-within .view-actions,body.minimal-focus-mode .view-header:focus-within .view-header-icon:hover,body.minimal-focus-mode .view-header:focus-within .view-header-title,body.minimal-focus-mode .view-header:hover .view-actions,body.minimal-focus-mode .view-header:hover .view-header-icon:hover,body.minimal-focus-mode .view-header:hover .view-header-title{opacity:1;transition:all linear .1s}.minimal-focus-mode .view-content{height:100%}.status-bar{transition:opacity .2s ease-in-out}.minimal-focus-mode:not(.minimal-status-off) .status-bar{opacity:0}.minimal-focus-mode .status-bar:hover{opacity:1;transition:opacity .2s ease-in-out}.full-width-media .image-embed img:not(.emoji):not([width]),.full-width-media .markdown-preview-view .image-embed img:not(.emoji):not([width]),.full-width-media .markdown-preview-view audio,.full-width-media .markdown-preview-view video{width:100%}.table-small table:not(.calendar){--table-font-size:85%}.table-tiny table:not(.calendar){--table-font-size:75%}.markdown-preview-view .table-view-table>thead>tr>th,.markdown-source-view.mod-cm6 td,.markdown-source-view.mod-cm6 th,.table-view-table .tag,.table-view-table a.tag,table:not(.calendar) tbody>tr>td,table:not(.calendar) thead>tr>th{font-size:var(--table-font-size)}.row-alt table:not(.calendar) tbody>tr>td:first-child,.row-alt table:not(.calendar) th:first-child,.row-alt.markdown-source-view.mod-cm6 td:first-child,.row-alt.markdown-source-view.mod-cm6 th:first-child,.row-hover th:first-child,.table-lines table:not(.calendar) tbody>tr>td:first-child,.table-lines table:not(.calendar) thead>tr>th:first-child,.table-lines.markdown-source-view.mod-cm6 td:first-child,.table-lines.markdown-source-view.mod-cm6 th:first-child{padding-left:10px}.col-alt table:not(.calendar) tr>td:nth-child(2n+2),.col-alt table:not(.calendar) tr>th:nth-child(2n+2),.row-alt table:not(.calendar) tbody>tr:nth-child(odd){padding-left:10px;background:var(--background-table-rows)}.table-tabular table:not(.calendar){font-variant-numeric:tabular-nums}.table-lines .table-view-table,.table-lines table:not(.calendar){border:1px solid var(--background-modifier-border)}.table-lines table:not(.calendar) .table-view-table thead>tr>th,.table-lines table:not(.calendar) .table-view-table>tbody>tr>td{border-right:1px solid var(--background-modifier-border);border-bottom:1px solid var(--background-modifier-border);padding:4px 10px}.table-nowrap tbody>tr>td,.table-nowrap thead>tr>th{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.table-nowrap .table-wrap tbody>tr>td,.table-nowrap .table-wrap thead>tr>th,.trim-cols .markdown-preview-view.table-wrap .table-view-table>tbody>tr>td,.trim-cols .markdown-preview-view.table-wrap .table-view-table>thead>tr>th,.trim-cols .markdown-source-view.mod-cm6.table-wrap .table-view-table>tbody>tr>td,.trim-cols .markdown-source-view.mod-cm6.table-wrap .table-view-table>thead>tr>th{white-space:normal;overflow:auto}.table-numbers table:not(.calendar){counter-reset:section}.table-numbers table:not(.calendar)>thead>tr>th:first-child::before{content:" ";padding-right:.5em;display:inline-block;min-width:2em}.table-numbers table:not(.calendar)>tbody>tr>td:first-child::before{counter-increment:section;content:counter(section) " ";text-align:center;padding-right:.5em;display:inline-block;min-width:2em;color:var(--text-faint);font-variant-numeric:tabular-nums}.row-highlight table:not(.calendar) tbody>tr:hover td{background-color:var(--background-table-rows)}.row-lines .table-view-table>tbody>tr>td,.row-lines table:not(.calendar) tbody>tr>td{border-bottom:1px solid var(--background-modifier-border)}.row-lines table:not(.calendar) tbody>tr:last-child>td{border-bottom:none}.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:1px solid var(--background-modifier-border)}.row-hover{--row-color-hover:hsla( var(--accent-h), 50%, 80%, 20% )}.theme-dark.row-hover{--row-color-hover:hsla( var(--accent-h), 30%, 40%, 20% )}.row-hover tr:hover td{background-color:var(--row-color-hover)}.theme-dark .markdown-preview-view img,.theme-dark .markdown-source-view img{opacity:var(--image-muted);transition:opacity .25s linear}.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-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$="#invert"]{background-color:var(--background-primary)}.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)}div:not(.el-embed-image)+.el-embed-image{margin-top:1rem}.el-embed-image{margin-top:.5rem}.contextual-typography .markdown-preview-section>.el-embed-image>p{margin-block-start:0;margin-block-end:0}.img-grid .markdown-preview-section .el-embed-image img:not(.emoji):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 .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}}body:not(.zoom-off) .view-content img{max-width:100%;cursor:zoom-in}body:not(.zoom-off) .view-content img:active{cursor:zoom-out}body:not(.is-mobile):not(.zoom-off) .view-content .image-embed:active,body:not(.is-mobile):not(.zoom-off) .view-content .markdown-preview-view img[referrerpolicy=no-referrer]:active{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(.is-mobile):not(.zoom-off) .view-content .markdown-preview-view img[referrerpolicy=no-referrer]:active{background-color:var(--background-primary);padding:10px}body:not(.is-mobile):not(.zoom-off) .view-content .image-embed: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(.is-mobile):not(.zoom-off) .view-content .image-embed: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}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header-container{height:auto}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-container-inner{flex-direction:column;padding:8px 8px 4px 8px;background-color:transparent}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header{padding:0;margin-bottom:2px;border:none;height:auto;opacity:.75}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header.is-active,.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header:hover{opacity:1;background-color:transparent}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header .workspace-tab-header-inner{padding:0;box-shadow:none;border:none;border-radius:6px}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header .workspace-tab-header-inner-icon{border-radius:6px;padding:5px 6px;margin:0;height:26px;width:100%;opacity:1}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header .workspace-tab-header-inner-icon:hover{background-color:var(--background-tertiary)}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header-inner-icon{font-size:var(--font-small);font-weight:500;display:flex;align-items:center}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header.is-active .workspace-tab-header-inner-icon,.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header:hover .workspace-tab-header-inner-icon{color:var(--icon-color-active)}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header-inner-icon svg{margin-right:6px}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header-container{border:none;padding:0}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header .workspace-tab-header-inner-icon:after{content:"Plugin"}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header[data-type=backlink] .workspace-tab-header-inner-icon:after{content:"Backlinks"}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header[data-type=calendar] .workspace-tab-header-inner-icon:after{content:"Calendar"}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header[data-type=dictionary-view] .workspace-tab-header-inner-icon:after{content:"Dictionary"}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header[data-type=graph] .workspace-tab-header-inner-icon:after,.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header[data-type=localgraph] .workspace-tab-header-inner-icon:after{content:"Graph"}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header[data-type=markdown] .workspace-tab-header-inner-icon:after{content:"Note"}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header[data-type=file-explorer] .workspace-tab-header-inner-icon:after{content:"Notes"}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header[data-type=outgoing-link] .workspace-tab-header-inner-icon:after{content:"Outlinks"}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header[data-type=outline] .workspace-tab-header-inner-icon:after{content:"Outline"}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header[data-type=recent-files] .workspace-tab-header-inner-icon:after{content:"Recent"}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header[data-type=reminder-list] .workspace-tab-header-inner-icon:after{content:"Reminders"}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header[data-type=search] .workspace-tab-header-inner-icon:after{content:"Search"}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header[data-type=starred] .workspace-tab-header-inner-icon:after{content:"Starred"}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header[data-type=style-settings] .workspace-tab-header-inner-icon:after{content:"Style"}.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header[data-type=tag] .workspace-tab-header-inner-icon:after{content:"Tags"}.contextual-typography .markdown-reading-view>.markdown-preview-view{padding-top:15px}.contextual-typography .markdown-preview-view.markdown-preview-view.is-readable-line-width .markdown-preview-sizer{display:flex;flex-direction:column;width:100%;max-width:100%;padding-left:0;padding-top:0}.contextual-typography .markdown-preview-view.is-readable-line-width .markdown-preview-sizer{align-items:center;padding-left:0}.contextual-typography .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div{width:var(--max-width)}.contextual-typography .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div{margin-left:auto;margin-right:auto;max-width:var(--max-width);width:var(--line-width-adaptive)}.contextual-typography .markdown-preview-view.is-readable-line-width .markdown-embed .markdown-preview-sizer>div{max-width:100%}.contextual-typography .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-dataview,.contextual-typography .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-dataviewjs,.contextual-typography .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-table{width:100%;max-width:100%;overflow-x:auto}.el-lang-dataview .block-language-dataview .contains-task-list,.el-lang-dataviewjs .block-language-dataviewjs .contains-task-list{max-width:100%}.is-readable-line-width .el-lang-dataview .dataview.table-view-table,.is-readable-line-width .el-lang-dataviewjs .dataview.table-view-table,.is-readable-line-width .el-table table{width:var(--max-width);max-width:var(--line-width-adaptive);margin:0 auto .5rem}.markdown-embed .el-lang-dataview .dataview.table-view-table,.markdown-embed .el-table table{width:100%}.table-100 .el-lang-dataview .dataview.table-view-table,.table-100 .el-lang-dataviewjs .dataview.table-view-table,.table-100 .el-table table{max-width:100%!important;width:100%!important}.markdown-preview-view.table-100.is-readable-line-width .el-lang-dataview .dataview.table-view-table,.markdown-preview-view.table-100.is-readable-line-width .el-lang-dataviewjs .dataview.table-view-table,.markdown-preview-view.table-100.is-readable-line-width .el-table table{max-width:100%!important;width:100%!important}.table-max .el-lang-dataview .dataview.table-view-table,.table-max .el-lang-dataviewjs .dataview.table-view-table,.table-max .el-table table{max-width:100%!important}.markdown-preview-view.table-max .el-lang-dataview .dataview.table-view-table .markdown-preview-view.table-max .el-lang-dataviewjs .dataview.table-view-table,.markdown-preview-view.table-max .el-table table{max-width:100%!important}.markdown-preview-view.is-readable-line-width.table-wide .el-lang-dataview .dataview.table-view-table,.markdown-preview-view.is-readable-line-width.table-wide .el-lang-dataviewjs .dataview.table-view-table,.markdown-preview-view.is-readable-line-width.table-wide .el-table table,.table-wide .markdown-preview-view.is-readable-line-width .el-lang-dataview .dataview.table-view-table,.table-wide .markdown-preview-view.is-readable-line-width .el-lang-dataviewjs .dataview.table-view-table,.table-wide .markdown-preview-view.is-readable-line-width .el-table table{max-width:var(--line-width-wide)!important}.table-100 .dataview.table-view-table td:first-child,.table-100 .dataview.table-view-table th:first-child,.table-100 .markdown-source-view.mod-cm6 td:first-child,.table-100 .markdown-source-view.mod-cm6 th:first-child,.table-100 table td:first-child,.table-100 table th:first-child{padding-left:20px}.table-100 .dataview.table-view-table td:last-child,.table-100 .dataview.table-view-table th:last-child,.table-100 table td:last-child,.table-100 table th:last-child{padding-right:20px}.contextual-typography .markdown-preview-view.is-readable-line-width.chart-max .markdown-preview-sizer>.el-lang-chart,.contextual-typography .markdown-preview-view.is-readable-line-width.iframe-max .markdown-preview-sizer>.el-iframe,.contextual-typography .markdown-preview-view.is-readable-line-width.img-max .markdown-preview-sizer>.el-embed-image,.contextual-typography .markdown-preview-view.is-readable-line-width.map-max .markdown-preview-sizer>.el-lang-leaflet,.contextual-typography.chart-max .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-chart,.contextual-typography.iframe-max .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-iframe,.contextual-typography.img-max .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-embed-image,.contextual-typography.map-max .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-leaflet{width:100%}.contextual-typography .markdown-preview-view.is-readable-line-width.chart-wide .markdown-preview-sizer>.el-lang-chart,.contextual-typography .markdown-preview-view.is-readable-line-width.iframe-wide .markdown-preview-sizer>.el-iframe,.contextual-typography .markdown-preview-view.is-readable-line-width.img-wide .markdown-preview-sizer>.el-embed-image,.contextual-typography .markdown-preview-view.is-readable-line-width.map-wide .markdown-preview-sizer>.el-lang-leaflet,.contextual-typography.chart-wide .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-chart,.contextual-typography.iframe-wide .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-iframe,.contextual-typography.img-wide .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-embed-image,.contextual-typography.map-wide .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-leaflet{width:var(--line-width-wide)}.contextual-typography .markdown-preview-view.iframe-100 .markdown-preview-sizer>.el-iframe,.contextual-typography .markdown-preview-view.img-100 .markdown-preview-sizer>.el-embed-image,.contextual-typography .markdown-preview-view.is-readable-line-width.chart-100 .markdown-preview-sizer>.el-lang-chart,.contextual-typography .markdown-preview-view.is-readable-line-width.map-100 .markdown-preview-sizer>.el-lang-leaflet,.contextual-typography.chart-100 .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-chart,.contextual-typography.iframe-100 .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-iframe,.contextual-typography.img-100 .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-embed-image,.contextual-typography.map-100 .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-leaflet{width:100%;max-width:100%}.is-readable-line-width .el-lang-dataview .dataview.table-view-table,.is-readable-line-width .el-lang-dataviewjs .dataview.table-view-table,.is-readable-line-width .el-table table{max-width:calc(var(--line-width-adaptive) - var(--folding-offset))}.chart-100 .el-lang-chart,.chart-max .el-lang-chart,.chart-wide .el-lang-chart,.embed-strict .el-embed-page p,.iframe-100 .el-iframe,.iframe-max .el-iframe,.iframe-wide .el-iframe,.img-100 .el-embed-image,.img-max .el-embed-image,.img-wide .el-embed-image,.map-100 .el-lang-leaflet,.map-max .el-lang-leaflet,.map-wide .el-lang-leaflet,.table-100 .el-lang-dataview,.table-100 .el-lang-dataviewjs,.table-100 .el-table,.table-max .el-lang-dataview,.table-max .el-lang-dataviewjs,.table-max .el-table,.table-wide .el-lang-dataview,.table-wide .el-lang-dataviewjs,.table-wide .el-table{--folding-offset:0px}.chart-max .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-chart,.chart-max.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-chart,.img-max .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>.image-embed,.img-max .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>img,.img-max.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>.image-embed,.img-max.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>img,.map-max .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-leaflet,.map-max.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-leaflet,.table-max .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block.cm-table-widget>div:not(.edit-block-button),.table-max .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataview,.table-max .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataviewjs,.table-max .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-table-widget>table,.table-max.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block.cm-table-widget>div:not(.edit-block-button),.table-max.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataview,.table-max.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataviewjs,.table-max.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-table-widget>table{width:var(--max-width)!important;max-width:var(--max-width)!important;transform:none!important;padding-left:0;margin:0 auto!important}.chart-wide .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-chart,.chart-wide.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-chart,.img-wide .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>.image-embed,.img-wide .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>img,.img-wide.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>.image-embed,.img-wide.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>img,.map-wide .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-leaflet,.map-wide.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-leaflet,.table-wide .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block.cm-table-widget>div:not(.edit-block-button),.table-wide .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataview,.table-wide .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataviewjs,.table-wide .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-table-widget>table,.table-wide.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block.cm-table-widget>div:not(.edit-block-button),.table-wide.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataview,.table-wide.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataviewjs,.table-wide.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-table-widget>table{width:var(--line-width-wide)!important;max-width:var(--max-width);transform:none!important;padding-left:0;margin:0 auto!important}.chart-100 .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-chart,.chart-100.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-chart,.img-100 .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>.image-embed,.img-100 .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>img,.img-100.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>.image-embed,.img-100.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>img,.map-100 .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-leaflet,.map-100.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-leaflet,.table-100 .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block.cm-table-widget>div:not(.edit-block-button),.table-100 .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataview,.table-100 .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataviewjs,.table-100 .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width table,.table-100.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block.cm-table-widget>div:not(.edit-block-button),.table-100.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataview,.table-100.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataviewjs,.table-100.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width table{width:100%!important;max-width:100%!important;transform:none!important;margin:0 auto!important;padding-left:0}@media (max-width:400pt){.markdown-preview-view .el-lang-dataview td:first-child .markdown-preview-view .el-lang-dataviewjs th:first-child,.markdown-preview-view .el-lang-dataview th:first-child,.markdown-preview-view .el-lang-dataviewjs td:first-child,.markdown-preview-view .el-table td:first-child,.markdown-preview-view .el-table th:first-child{padding-left:6vw}.markdown-preview-view .el-lang-dataview td:last-child,.markdown-preview-view .el-lang-dataview th:last-child,.markdown-preview-view .el-lang-dataviewjs td:last-child,.markdown-preview-view .el-lang-dataviewjs th:last-child,.markdown-preview-view .el-table td:last-child,.markdown-preview-view .el-table th:last-child{padding-right:6vw}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-dataview .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-dataviewjs,.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-table{padding-left:0;padding-right:0}.markdown-preview-view .table-view-table table,.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-dataview .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-dataviewjs,.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-table{width:100%}}@media (max-width:400pt){.is-mobile{--folding-offset:0px}}body:not(.title-align-center):not(.title-align-left):not(.plugin-sliding-panes-rotate-header) .view-header-title{padding-left:var(--folding-offset)}.markdown-preview-view.wide,.markdown-source-view.wide{--line-width-adaptive:var(--line-width-wide)}.markdown-preview-view.max,.markdown-source-view.max{--line-width-adaptive:300em;--line-width-wide:300em}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer{max-width:var(--max-width);width:var(--line-width-adaptive);padding-left:0}.markdown-source-view.is-readable-line-width .CodeMirror{padding-left:0;padding-right:0;margin:0 auto 0 auto;width:var(--line-width-adaptive);max-width:var(--max-width)}.markdown-reading-view .markdown-preview-view:not(.is-readable-line-width)>.markdown-preview-sizer{max-width:var(--max-width);margin:0 auto;padding-left:var(--folding-offset)}.is-mobile .markdown-source-view.mod-cm6 .cm-gutters{padding-right:0}.minimal-readable-off .view-header-title-container{width:var(--max-width)}.markdown-source-view.mod-cm6:not(.is-readable-line-width) .cm-contentContainer{max-width:var(--max-width);margin:0 0 0 calc(50% - var(--max-width)/ 2)!important;padding-left:var(--folding-offset)}.markdown-source-view.mod-cm6 .cm-content>.cm-embed-block[contenteditable=false]{overflow-x:auto}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div,.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div[data-block-language=dataview],.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div[data-block-language=dataviewjs]{padding-left:var(--folding-offset)}.internal-embed>.markdown-embed,.popover:not(.hover-editor){--folding-offset:0}.markdown-source-view.mod-cm6.is-line-wrap.is-readable-line-width .cm-content{max-width:100%}.markdown-source-view.mod-cm6.is-line-wrap.is-readable-line-width .cm-line:not(.HyperMD-table-row){max-width:calc(var(--max-width) - var(--folding-offset))}.is-live-preview.is-readable-line-width .cm-embed-block table.dataview,.is-live-preview.is-readable-line-width.embed-strict .internal-embed .markdown-preview-sizer,.is-readable-line-width .block-language-dataview table.dataview,.is-readable-line-width .block-language-dataviewjs table.dataview,.markdown-preview-view.is-readable-line-width .dataview.result-group .contains-task-list,.markdown-source-view.is-live-preview.is-readable-line-width table.NLT__table{width:100%;max-width:100%;transform:none;margin-left:auto!important}.markdown-source-view.mod-cm6.is-readable-line-width .cm-line.HyperMD-list-line .internal-embed.image-embed,.markdown-source-view.mod-cm6.is-readable-line-width .cm-line>.internal-embed{margin-left:0!important}.markdown-source-view.mod-cm6.is-readable-line-width .cm-content>.image-embed,.markdown-source-view.mod-cm6.is-readable-line-width .cm-content>img:not([width]),.markdown-source-view.mod-cm6.is-readable-line-width .cm-embed-block.cm-callout>.callout,.markdown-source-view.mod-cm6.is-readable-line-width .cm-html-embed,.markdown-source-view.mod-cm6.is-readable-line-width .cm-line,.markdown-source-view.mod-cm6.is-readable-line-width .cm-line.HyperMD-codeblock,.markdown-source-view.mod-cm6.is-readable-line-width .cm-line.HyperMD-quote,.markdown-source-view.mod-cm6.is-readable-line-width .embedded-backlinks,.markdown-source-view.mod-cm6.is-readable-line-width .internal-embed,.markdown-source-view.mod-cm6.is-readable-line-width table{width:calc(var(--line-width-adaptive) - var(--folding-offset));max-width:calc(var(--max-width) - var(--folding-offset));margin-right:auto;margin-left:max(calc(50% + var(--folding-offset) - var(--line-width-adaptive)/ 2),calc(50% + var(--folding-offset) - var(--max-width)/ 2))!important}.markdown-source-view.mod-cm6.is-readable-line-width .cm-line>.cm-html-embed{--folding-offset:0}.markdown-source-view.mod-cm6.is-readable-line-width .cm-content>img[width]{max-width:var(--max-width);margin-left:max(calc(50% + var(--folding-offset) - var(--line-width-adaptive)/ 2),calc(50% + var(--folding-offset) - var(--max-width)/ 2))!important}.markdown-source-view.mod-cm6.is-readable-line-width .cm-embed-block>div,.markdown-source-view.mod-cm6.is-readable-line-width .cm-embed-block>mjx-container,.markdown-source-view.mod-cm6.is-readable-line-width .mod-empty{width:calc(var(--line-width-adaptive) - var(--folding-offset));max-width:calc(var(--max-width) - var(--folding-offset));margin-right:auto;margin-left:max(calc(50% + var(--folding-offset) - var(--line-width-adaptive)/ 2),calc(50% + var(--folding-offset) - var(--max-width)/ 2))!important}.markdown-source-view.mod-cm6.is-readable-line-width.is-line-wrap .HyperMD-list-line{width:calc(var(--line-width-adaptive) - var(--folding-offset) - var(--list-edit-offset));max-width:calc(var(--max-width) - var(--folding-offset) - var(--list-edit-offset));margin-right:auto;margin-left:max(calc(50% + var(--list-edit-offset) + var(--folding-offset) - var(--line-width-adaptive)/ 2),calc(50% + var(--list-edit-offset) + var(--folding-offset) - var(--max-width)/ 2))!important}body:not(.table-100):not(.table-max):not(.table-wide) .is-live-preview.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .dataview.dataview-container>.contains-task-list,body:not(.table-100):not(.table-max):not(.table-wide) .is-live-preview.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .dataview.list-view-ul,body:not(.table-100):not(.table-max):not(.table-wide) .is-live-preview.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .dataview.result-group>.contains-task-list,body:not(.table-100):not(.table-max):not(.table-wide) .is-live-preview.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .dataview>h4{max-width:100%;margin-right:auto;margin-left:auto;transform:none}body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .block-language-dataview h4,body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .block-language-dataview>h4,body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .block-language-dataviewjs h4,body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .block-language-dataviewjs>h1,body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .block-language-dataviewjs>h2,body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .block-language-dataviewjs>h3,body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .block-language-dataviewjs>h4,body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .block-language-dataviewjs>p,body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .dataview.dataview-container>.contains-task-list,body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .dataview.dataview-error,body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .dataview.list-view-ul,body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .dataview.result-group{width:calc(var(--line-width-adaptive) - var(--folding-offset));max-width:var(--max-width);margin-right:auto;margin-left:auto}.is-live-preview.is-readable-line-width .block-language-dataviewjs h4,.is-live-preview.is-readable-line-width .dataview .contains-task-list,.is-live-preview.is-readable-line-width .dataview.dataview-container .contains-task-list,.is-live-preview.is-readable-line-width .dataview.list-view-ul,.is-live-preview.is-readable-line-width .dataview>h4{--folding-offset:10px;width:calc(var(--line-width-adaptive) - var(--folding-offset));max-width:calc(100% - var(--folding-offset));transform:translateX(calc(var(--folding-offset)/2));margin-right:auto;margin-left:auto}.table-100 .is-live-preview.is-readable-line-width .dataview .contains-task-list,.table-100 .is-live-preview.is-readable-line-width .dataview.list-view-ul,.table-100 .is-live-preview.is-readable-line-width .dataview>h4,.table-100.is-live-preview.is-readable-line-width .dataview .contains-task-list,.table-100.is-live-preview.is-readable-line-width .dataview.list-view-ul,.table-100.is-live-preview.is-readable-line-width .dataview>h4{max-width:calc(var(--max-width) - var(--folding-offset))}.markdown-preview-view.is-readable-line-width .block-language-dataview h4,.markdown-preview-view.is-readable-line-width .block-language-dataview>h4,.markdown-preview-view.is-readable-line-width .block-language-dataviewjs h4,.markdown-preview-view.is-readable-line-width .block-language-dataviewjs>h1,.markdown-preview-view.is-readable-line-width .block-language-dataviewjs>h2,.markdown-preview-view.is-readable-line-width .block-language-dataviewjs>h3,.markdown-preview-view.is-readable-line-width .block-language-dataviewjs>h4,.markdown-preview-view.is-readable-line-width .block-language-dataviewjs>p,.markdown-preview-view.is-readable-line-width .dataview .contains-task-list,.markdown-preview-view.is-readable-line-width .dataview.dataview-error,.markdown-preview-view.is-readable-line-width .dataview.list-view-ul,.markdown-preview-view.is-readable-line-width .dataview.result-group{--folding-offset:10px;width:calc(var(--line-width-adaptive) - var(--folding-offset));max-width:calc(var(--max-width) - var(--folding-offset));margin-left:auto;margin-right:max(calc(50% - var(--line-width-adaptive)/ 2),calc(50% - var(--max-width)/ 2))}body:not(.links-ext-on) .cm-link .cm-underline,body:not(.links-ext-on) .cm-s-obsidian span.cm-url,body:not(.links-ext-on) .external-link,body:not(.links-int-on) .cm-hmd-internal-link .cm-underline,body:not(.links-int-on) .cm-s-obsidian span.cm-hmd-internal-link:hover,body:not(.links-int-on) .markdown-preview-view .internal-link,body:not(.links-int-on) a.internal-link,body:not(.links-int-on) a[href*="obsidian://"]{text-decoration:none}.links-int-on .cm-s-obsidian span.cm-hmd-internal-link,.links-int-on .is-live-preview .cm-hmd-internal-link,.links-int-on .markdown-preview-view .internal-link,.markdown-preview-view .internal-link{text-decoration:underline}.external-link,.links-ext-on .external-link{background-position-y:center;text-decoration:underline}body:not(.is-translucent):not(.is-mobile) .mod-left-split .backlink-pane,body:not(.is-translucent):not(.is-mobile) .mod-left-split .item-list,body:not(.is-translucent):not(.is-mobile) .mod-left-split .nav-files-container,body:not(.is-translucent):not(.is-mobile) .mod-left-split .outgoing-link-pane,body:not(.is-translucent):not(.is-mobile) .mod-left-split .tag-container,body:not(.is-translucent):not(.is-mobile) .mod-left-split .workspace-leaf-content[data-type=search] .search-result-container{background:linear-gradient(var(--background-secondary) 10%,rgba(255,255,255,0)) center top,linear-gradient(var(--background-modifier-border) 100%,transparent) center top;background-repeat:no-repeat;background-size:100% 40px,91% var(--border-width);background-attachment:local,scroll}body:not(.is-mobile) .mod-right-split .backlink-pane,body:not(.is-mobile) .mod-right-split .item-list,body:not(.is-mobile) .mod-right-split .nav-files-container,body:not(.is-mobile) .mod-right-split .outgoing-link-pane,body:not(.is-mobile) .mod-right-split .tag-container,body:not(.is-mobile) .mod-right-split .workspace-leaf-content[data-type=search] .search-result-container{background:linear-gradient(var(--background-primary) 10%,rgba(255,255,255,0)) center top,linear-gradient(var(--background-modifier-border) 100%,transparent) center top;background-repeat:no-repeat;background-size:100% 40px,91% var(--border-width);background-attachment:local,scroll}.mod-left-split .cm-contentContainer,.mod-left-split .markdown-preview-sizer>div{padding-left:0!important;max-width:100%!important}.workspace>.workspace-split:not(.mod-root) .CodeMirror,.workspace>.workspace-split:not(.mod-root) .cm-scroller,.workspace>.workspace-split:not(.mod-root) .markdown-preview-view{font-size:var(--font-adaptive-small);line-height:1.25}.workspace>.workspace-split:not(.mod-root) .workspace-leaf-content[data-type=markdown] .markdown-preview-view{padding:0 15px}.workspace>.workspace-split:not(.mod-root) .workspace-leaf-content[data-type=markdown] .markdown-embed .markdown-preview-view{padding:0}.workspace>.workspace-split:not(.mod-root) .CodeMirror,.workspace>.workspace-split:not(.mod-root) .markdown-preview-section,.workspace>.workspace-split:not(.mod-root) .markdown-preview-sizer{max-width:100%;padding:0;width:auto}.workspace>.workspace-split:not(.mod-root) .cm-editor{--folding-offset:0px}.minimal-folding .workspace>.workspace-split:not(.mod-root) .workspace-leaf-content[data-type=markdown] .allow-fold-headings.markdown-preview-view .markdown-preview-sizer,.minimal-folding .workspace>.workspace-split:not(.mod-root) .workspace-leaf-content[data-type=markdown] .allow-fold-lists.markdown-preview-view .markdown-preview-sizer{padding-left:0}.workspace>.workspace-split:not(.mod-root) .internal-embed .markdown-embed{border:none;padding:0}.workspace>.workspace-split:not(.mod-root) .CodeMirror-sizer{padding-left:10px}.tab-style-2 .workspace-tab-header-container .workspace-tab-header{flex-grow:1;height:var(--header-height)}.tab-style-2 .workspace-tab-container-inner{padding:0}.tab-style-2 .workspace-tab-header-container .workspace-tab-header .workspace-tab-header-inner{justify-content:center;align-items:center;border-bottom:1px solid var(--background-divider);border-radius:0;transition:none}.tab-style-2 .workspace-tab-header-container .workspace-tab-header .workspace-tab-header-inner:hover{background-color:var(--bg3)}.tab-style-2 .workspace-tab-header-container .workspace-tab-header.is-active .workspace-tab-header-inner{border-bottom:2px solid var(--ax3);padding-top:1px;color:var(--ax3)}.tab-style-2 .workspace-tab-header-inner-icon:hover{background-color:transparent}.tab-style-3 .mod-right-split .workspace-sidedock-empty-state+.workspace-tabs .workspace-tab-header-container,.tab-style-3 .workspace-sidedock-empty-state+.workspace-tabs .workspace-tab-header-container{border-bottom:none}.tab-style-3 .workspace-tab-header-container{padding-left:7px;padding-right:7px;border:none}.tab-style-3 .workspace-tab-header-container .workspace-tab-header{flex-grow:1}.tab-style-3 .workspace-tab-container-inner{padding:3px;background:var(--bg3);border-radius:6px}.tab-style-3 .workspace-tab-header-container .workspace-tab-header .workspace-tab-header-inner{justify-content:center;align-items:center;transition:none;border:1px solid transparent}.tab-style-3 .workspace-tab-header-container .workspace-tab-header .workspace-tab-header-inner:hover{background-color:transparent}.tab-style-3:not(.minimal-dark-tonal) .mod-left-split .workspace-tab-header-container .workspace-tab-header.is-active .workspace-tab-header-inner{background:var(--bg2)}.tab-style-3 .workspace-tab-header-container .workspace-tab-header.is-active .workspace-tab-header-inner{background:var(--bg1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1);border-radius:4px}.tab-style-3.labeled-nav .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header-container .workspace-tab-header.is-active .workspace-tab-header-inner{background-color:transparent}.tab-style-3 .workspace-tab-header-inner-icon{height:18px;padding:0}.tab-style-3 .workspace-tab-header-inner-icon:hover{background-color:transparent}.tab-style-4 .workspace-sidedock-empty-state+.workspace-tabs .workspace-tab-header-container{border:none}.tab-style-4 .workspace-tab-header-container .workspace-tab-header{flex-grow:1;height:var(--header-height)}.tab-style-4 .workspace-tab-container-inner{background-color:var(--background-secondary);padding:0}.tab-style-4 .workspace-tab-header-container .workspace-tab-header .workspace-tab-header-inner{justify-content:center;align-items:center;border-bottom:none;border-radius:0;transition:none;border-top:1px solid transparent}.tab-style-4 .workspace-tab-header-container .workspace-tab-header{border-bottom:1px solid var(--background-modifier-border);opacity:1}.tab-style-4 .workspace-tab-header-container .workspace-tab-header .workspace-tab-header-inner-icon{opacity:var(--icon-muted)}.tab-style-4 .workspace-tab-header-container .workspace-tab-header.is-active .workspace-tab-header-inner-icon{opacity:1}.tab-style-4.hider-frameless:not(.labeled-nav) .mod-left-split>.workspace-tabs:nth-child(3) .workspace-tab-header-container .workspace-tab-header.is-active .workspace-tab-header-inner{border-top:1px solid var(--background-modifier-border)}.tab-style-4 .workspace-tab-header-container .workspace-tab-header.is-active{border-bottom:1px solid transparent}.tab-style-4 .workspace-tab-header-container .workspace-tab-header.is-active{background-color:var(--background-primary);border-radius:0}.tab-style-4 .mod-left-split .workspace-tab-header-container .workspace-tab-header.is-active{background-color:var(--background-secondary)}.tab-style-4 .workspace-tab-header-container .workspace-tab-header.is-active .workspace-tab-header-inner{box-shadow:1px 0 var(--background-modifier-border),-1px 0 var(--background-modifier-border);border-bottom:none}.tab-style-4 .workspace-tab-header-inner-icon:hover{background-color:transparent}:root{--bg-translucency-light:0.7;--bg-translucency-dark:0.85}.theme-dark.frosted-sidebar.is-translucent,.theme-light.frosted-sidebar.is-translucent{--opacity-translucency:1}.is-translucent.frosted-sidebar .workspace-split:not(.mod-right-split) .workspace-tabs,.is-translucent.frosted-sidebar:not(.hider-ribbon) .workspace-ribbon.mod-left{background:0 0}.is-translucent.frosted-sidebar:not(.hider-ribbon) .workspace-ribbon.mod-left:after{background:var(--background-secondary);opacity:var(--bg-translucency-light);top:0;left:0;content:"";height:120%;position:fixed;width:42px;z-index:-10}.is-translucent.frosted-sidebar .mod-left-split .workspace-tabs:after{background:var(--background-secondary);opacity:var(--bg-translucency-light);top:-50px;content:"";height:120%;position:fixed;width:120%;z-index:-10}.theme-dark.is-translucent.frosted-sidebar .workspace-split:not(.mod-right-split) .workspace-tabs:after,.theme-dark.is-translucent.frosted-sidebar:not(.hider-ribbon) .workspace-ribbon.mod-left:after{opacity:var(--bg-translucency-dark)}.theme-light.is-translucent.frosted-sidebar.minimal-light-white .workspace-split:not(.mod-right-split) .workspace-tabs:after{background:#fff}.theme-dark.is-translucent.frosted-sidebar.minimal-dark-black .workspace-split:not(.mod-right-split) .workspace-tabs:after{background:#000}.is-translucent .status-bar{margin:0}.full-file-names .nav-file-title-content,.full-file-names .search-result-file-title,.full-file-names .tree-item-inner,.nav-file-title-content.is-being-renamed{text-overflow:unset;white-space:normal;line-height:1.35}.full-file-names .nav-file-title{margin-bottom:3px}.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:0.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:0.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:0.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:0.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:0.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:0.6em}.is-mobile{--font-settings-title:18px;--font-settings:16px;--font-settings-small:13px;--input-height:38px;--radius-m:8px}@media (min-width:400pt){.is-mobile{--input-height:36px;--radius-m:6px}}.hider-tooltips .follow-link-popover{display:none}.is-mobile .follow-link-popover{font-family:var(--font-interface)}body.is-mobile{padding:0!important}.is-mobile .titlebar{height:0!important;padding:0!important;position:relative!important;border-bottom:none}.is-mobile .safe-area-top-cover{background-color:transparent}.is-mobile .horizontal-main-container{background-color:var(--background-primary)}.is-mobile .workspace{border-radius:0!important;transform:none!important}.is-mobile .workspace-drawer:not(.is-pinned){width:100vw;max-width:360pt;border:none;box-shadow:0 5px 50px 5px rgba(0,0,0,.05)}.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}.is-mobile .workspace-drawer.mod-right.is-pinned{border-right:none}.is-mobile .workspace-leaf-content[data-type=starred] .item-list{padding-left:5px}.is-mobile .workspace-drawer-tab-container>*{padding:0}.is-mobile .workspace-drawer-active-tab-title,.is-mobile .workspace-drawer-tab-option-item-title{font-size:var(--font-adaptive-small)}.is-mobile .workspace-drawer-active-tab-header:hover .workspace-drawer-active-tab-title,.is-mobile .workspace-drawer-tab-option-item:hover .workspace-drawer-tab-option-item-title{color:var(--text-normal)}.is-mobile .workspace-drawer-active-tab-header:hover .workspace-drawer-active-tab-back-icon{color:var(--text-normal)}.is-mobile .nav-file-title,.is-mobile .nav-folder-title,.is-mobile .outline,.is-mobile .tag-container,.is-mobile .tag-pane-tag,.is-mobile .tree-item-self{font-size:var(--font-adaptive-small);line-height:1.5;margin-bottom:4px}.is-mobile .backlink-pane>.tree-item-self,.is-mobile .outgoing-link-pane>.tree-item-self{font-size:var(--font-adaptive-smallest)}.is-mobile .tree-item-flair{font-size:var(--font-adaptive-small)}.is-mobile .nav-files-container{padding:5px 5px 5px 5px}.is-mobile .search-result-container{padding-bottom:20px}.is-mobile .search-result-file-match-replace-button{background-color:var(--background-tertiary);color:var(--text-normal)}.is-mobile .search-result-file-matches,.is-mobile .search-result-file-title{font-size:var(--font-adaptive-small)}.is-mobile .cm-editor .cm-foldGutter .cm-gutterElement{cursor:var(--cursor)}.is-mobile .cm-editor .cm-foldPlaceholder{background:0 0;border-color:transparent}.is-mobile .empty-state-action{border-radius:var(--radius-m);font-size:var(--font-adaptive-small)}.is-mobile .workspace-drawer-header{padding:20px 10px 0 25px}.is-mobile .workspace-drawer-header-name{font-weight:var(--bold-weight);color:var(--text-normal);font-size:1.125em}.is-mobile .workspace-drawer-header-info{color:var(--text-faint);font-size:var(--font-adaptive-small);margin-bottom:0}.is-mobile .is-mobile.hider-status .workspace-drawer-header-info,.is-mobile .mod-left .workspace-drawer-header-info{display:none}.is-mobile .workspace-drawer-active-tab-header{margin:2px 12px 2px;padding:8px 0 8px 8px}.is-mobile .backlink-pane,.is-mobile .tag-container,.is-mobile .workspace-leaf-content .item-list{padding-top:10px}.is-mobile .backlink-pane,.is-mobile .outgoing-link-pane{padding-left:10px}.workspace-drawer.mod-left .workspace-drawer-inner{padding-left:0}.is-mobile .side-dock-ribbon{background:var(--background-secondary);border-right:1px solid var(--background-modifier-border);z-index:3;flex-direction:column;width:70px;padding:15px 0;margin-right:0}body:not(.is-ios).is-mobile .workspace-drawer-ribbon{padding:20px 5px}.is-ios .is-pinned .side-dock-ribbon{padding:30px 0 20px 0}body.is-mobile.hider-frameless:not(.hider-ribbon) .side-dock-actions{padding-top:5px}.is-mobile .side-dock-actions,.is-mobile .side-dock-settings{flex-direction:column;border-radius:15px}.is-mobile .mod-left .workspace-drawer-header,.is-mobile .mod-left .workspace-drawer-tab-container{margin-left:70px}.is-mobile .side-dock-ribbon .side-dock-ribbon-action{padding:9px 5px 2px 5px;margin:0 12px 4px;height:40px}.is-mobile .side-dock-ribbon .side-dock-ribbon-action svg{width:22px;height:22px}.is-mobile .workspace-drawer-active-tab-container{z-index:2;background-color:var(--background-primary)}.is-mobile .side-dock-actions,.is-mobile .side-dock-settings{display:flex;align-content:center;justify-content:center;padding:0}.is-mobile .workspace-drawer.mod-left:not(.is-pinned){border-right:none}.is-mobile .nav-buttons-container{padding:0 0 10px 15px}.is-mobile input[type=text]{font-size:14px;height:var(--input-height)}.is-mobile .setting-item-control .search-input-container input{display:inline-block;width:100%;margin-bottom:0}.is-mobile .search-input-container input,.is-mobile .search-input-container input:focus,.is-mobile .search-input-container input:hover,.is-mobile .search-input-container input[type=text],.is-mobile .workspace-leaf-content[data-type=search] .search-input-container input{-webkit-appearance:none;border-radius:6px;height:36px;padding:6px 20px 6px 34px;font-size:14px}.is-mobile .search-input-container input::placeholder{font-size:14px}.is-mobile .workspace-drawer{border-width:var(--border-width)}.is-mobile .workspace-drawer-active-tab-container,.is-mobile .workspace-drawer-inner{background-color:var(--background-secondary)}.workspace-drawer-active-tab-icon{display:none}.is-ios .is-pinned .workspace-drawer-ribbon{padding:30px 0 20px 0}.is-ios .workspace-drawer.is-pinned .workspace-drawer-header{padding-top:26px}.is-mobile .workspace-split.mod-root{background-color:var(--background-primary)}.is-ios .mod-root .workspace-leaf{padding-top:20px}.is-ios .mod-root .workspace-split.mod-horizontal .workspace-leaf:not(:first-of-type){padding-top:0}.is-mobile.minimal-focus-mode .view-actions{opacity:1}.is-mobile .workspace-drawer-tab-options{padding-top:10px}.is-mobile .workspace-drawer-tab-option-item{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;margin:0 10px;padding:8px 10px;border-radius:var(--radius-m)}.is-mobile .workspace-drawer-header-icon{align-self:start}body.is-mobile:not(.minimal-icons-off) .nav-action-button svg,body.is-mobile:not(.minimal-icons-off) .view-action svg,body.is-mobile:not(.minimal-icons-off) .workspace-drawer-header-icon svg{width:22px;height:22px}.is-mobile.hider-search-suggestions .search-input-suggest-button{display:none}.is-mobile .search-input-clear-button{right:6px}.is-mobile .search-input-clear-button:before{height:16px;width:16px}.is-mobile .view-header-title{font-size:var(--title-size)}.is-mobile .view-header-title:-webkit-autofill:focus{font-family:var(--font-interface);color:red}.is-mobile .view-header-icon{padding:16px 6px 16px 7px;margin-left:4px}.is-mobile .mod-left.is-pinned+.mod-root .view-header-icon,.is-mobile .mod-root .view-header-icon{display:none}.is-mobile .view-action{padding:5px 5px 4px}.is-mobile .workspace-leaf-content:not([data-type=search]) .nav-buttons-container{border-bottom:var(--border-width) solid var(--background-modifier-border)}.is-mobile .nav-action-button,.is-mobile .workspace-drawer-header-icon,.is-mobile .workspace-leaf-content[data-type=search] .nav-action-button{padding:4px 7px 0!important;margin:5px 2px 2px 0;text-align:center;height:32px;cursor:var(--cursor)}.is-mobile .nav-file-title.is-active{box-shadow:0 0 0 2px var(--background-tertiary)}.pull-down-action{top:0;left:0;right:0;width:100%;margin:0 auto;padding:50px 0 20px;text-align:center;border-radius:0;border:none;box-shadow:0 5px 200px var(--background-modifier-box-shadow)}.pull-out-action{top:0;height:100vh;padding:30px 10px;background:0 0;display:flex;justify-content:center;align-content:center;flex-direction:column}.is-mobile .markdown-preview-view pre{overflow-x:scroll}.is-mobile .view-header-icon .three-horizontal-bars{opacity:0}.is-mobile.plugin-sliding-panes .view-header-title{mask-image:unset;-webkit-mask-image:unset}.is-mobile.plugin-sliding-panes-rotate-header .view-header-title{line-height:1.2}.is-mobile .workspace-drawer-header-name-text{white-space:nowrap;margin-right:10px}@media (max-width:400pt){.is-mobile .view-header-icon{display:none}.is-mobile .nav-action-button:hover,.is-mobile .view-action:hover,.is-mobile .workspace-drawer-header-icon:hover,.is-mobile .workspace-drawer-tab-option-item:hover,.is-mobile .workspace-leaf-content[data-type=backlink] .nav-action-button.is-active:hover,.is-mobile .workspace-leaf-content[data-type=search] .nav-action-button.is-active:hover,.side-dock-ribbon .side-dock-ribbon-action:hover{background:0 0}.is-mobile .mod-left .workspace-drawer-header-icon{display:none}.is-ios .workspace-drawer .workspace-drawer-header{padding-top:45px}.is-ios .mod-root .workspace-leaf{padding-top:40px}.is-mobile .mod-right .workspace-drawer-header div:nth-child(2){display:none}.is-mobile .workspace .workspace-drawer-backdrop{margin-top:-40px;height:calc(100vh + 50px);z-index:9}.is-ios .workspace-drawer-ribbon{padding:50px 0 30px 0}.is-mobile .view-header-title-container{margin-left:0}.is-mobile .view-header-title{max-width:calc(100vw - 90px);padding-right:20px;padding-left:calc(50% - var(--max-width)/ 2 + var(--folding-offset))!important;font-size:var(--font-settings-title);letter-spacing:-.015em}.is-mobile .workspace-drawer-header-name-text{font-size:var(--font-settings-title);letter-spacing:-.015em}.is-mobile .view-header{border-bottom:var(--border-width) solid var(--background-modifier-border)!important}.is-mobile .installed-plugins-container{max-width:100%;overflow:hidden}.is-mobile .setting-item-info{flex:1 1 auto}.is-mobile .kanban-plugin__board-settings-modal .setting-item-control,.is-mobile .setting-item-control{flex:1 0 auto;margin-right:0;min-width:auto}.is-mobile .checkbox-container{flex:1 0 40px;max-width:40px}.is-mobile .setting-item-description{word-break:break-word;white-space:pre-line}.is-mobile .view-action{padding:0 4px 0 4px;height:22px}.is-mobile .cm-s-obsidian span.cm-hashtag,.is-mobile .frontmatter-container .tag,.is-mobile .tag{font-size:var(--font-adaptive-smaller)}.is-mobile .setting-item-control button,.is-mobile .setting-item-control input,.is-mobile .setting-item-control select{margin-bottom:5px}.is-mobile .setting-item-control input[type=range]{margin-bottom:10px}}@media (min-width:400pt){.mod-left:not(.is-pinned)+.mod-root>div:first-of-type .view-header-icon{opacity:var(--icon-muted);display:flex}.mod-left:not(.is-pinned)+.mod-root .view-header-icon .three-horizontal-bars,.mod-left:not(.is-pinned)+.mod-root>div:first-of-type .view-header-icon:hover{opacity:1}.mod-left:not(.is-pinned)+.mod-root .view-header-icon:hover{background-color:var(--background-tertiary)}.is-mobile.is-ios .safe-area-top-cover{background-color:transparent}.is-mobile .view-action{padding:5px 6px 4px}.is-mobile .mod-left:not(.is-pinned)+.mod-root .workspace-leaf:first-of-type .view-header-title-container{max-width:calc(100% - 102px)}.is-mobile .menu,.is-mobile .modal,.is-mobile .prompt,.is-mobile .suggestion-container{transition:unset!important;transform:unset!important;animation:unset!important}.is-mobile .community-plugin-search .setting-item{padding-top:10px}.is-mobile .setting-item:not(.mod-toggle):not(.setting-item-heading){flex-direction:row;align-items:center}.is-mobile .setting-item-control button,.is-mobile .setting-item-control input,.is-mobile .setting-item-control select,.is-mobile button{width:auto}.is-mobile .workspace-drawer:not(.is-pinned){margin:30px 16px 0;height:calc(100vh - 48px);border-radius:15px}.is-mobile .setting-item:not(.mod-toggle):not(.setting-item-heading) .setting-item-control{width:auto;margin-top:0}.is-mobile .markdown-preview-view ol>li.task-list-item .collapse-indicator,.is-mobile .markdown-preview-view ul>li.task-list-item .collapse-indicator{margin-left:-2.5em;margin-top:.1em}.pull-down-action{width:400px;top:15px;padding:15px;border-radius:15px}}:root{--ios-radius:10px;--ios-input-radius:8px;--ios-shadow:0 5px 100px rgba(0,0,0,0.15);--ios-muted:#8e8e93}.theme-light{--ios-blue:#007aff;--ios-red:#ff3c2f;--ios-bg-translucent:rgba(255,255,255,0.85);--ios-bg:white;--ios-border:rgba(0,0,0,0.1)}.theme-dark{--ios-blue:#0b84ff;--ios-red:#ff453a;--ios-bg-translucent:rgba(44,44,46,0.85);--ios-bg:#2c2c2e;--ios-border:rgba(255,255,255,0.15)}.is-ios{--text-error:#ff453a}.is-ios .document-search-container input[type=text],.is-ios .search-input-container input,.is-ios .workspace-leaf-content[data-type=search] .search-input-container input{border-radius:var(--ios-input-radius);border:0;background-color:var(--background-tertiary)}.is-ios .document-search-container input[type=text]:active,.is-ios .document-search-container input[type=text]:focus,.is-ios .document-search-container input[type=text]:hover,.is-ios .search-input-container input:active,.is-ios .search-input-container input:focus,.is-ios .search-input-container input:hover,.is-ios .workspace-leaf-content[data-type=search] .search-input-container input:active,.is-ios .workspace-leaf-content[data-type=search] .search-input-container input:focus,.is-ios .workspace-leaf-content[data-type=search] .search-input-container input:hover{border-radius:var(--ios-input-radius);border:0;background-color:var(--background-tertiary)}.is-ios .document-search-container input[type=text]::placeholder,.is-ios .search-input-container input::placeholder,.is-ios .workspace-leaf-content[data-type=search] .search-input-container input::placeholder{color:var(--text-muted)}@media (min-width:400pt){.is-ios .mobile-toolbar{height:70px}.is-ios .mobile-toolbar-options-container{margin:0 auto;display:inline-flex;width:auto}}.mobile-toolbar-off .mobile-toolbar{display:none}.mobile-toolbar{width:100%;display:flex;overflow:scroll;background-color:var(--background-primary);border-top:1px solid var(--background-modifier-border)}@media (min-width:400pt){.mobile-toolbar-option{border-radius:8px;margin:6px 0}.mobile-toolbar-option:hover{background-color:var(--background-tertiary)}}.backlink-pane,.outgoing-link-pane{padding-bottom:30px}.backlink-pane .search-result-container,.outgoing-link-pane .search-result-container{padding:5px 5px 5px 5px;margin-left:0}.backlink-pane .search-result-file-title,.outgoing-link-pane .search-result-file-title{padding-left:15px}.backlink-pane>.tree-item-self .collapse-icon,.outgoing-link-pane .tree-item-icon,.outgoing-link-pane>.tree-item-self .collapse-icon{display:none}.tree-item-self.outgoing-link-item{padding:0;margin-left:5px}.backlink-pane>.tree-item-self,.backlink-pane>.tree-item-self:hover,.outgoing-link-pane>.tree-item-self,.outgoing-link-pane>.tree-item-self:hover{padding-left:15px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:var(--font-adaptive-smallest);font-weight:500;padding:5px 7px 5px 10px;background:0 0}.backlink-pane>.tree-item-self.is-collapsed,.outgoing-link-pane>.tree-item-self.is-collapsed{color:var(--text-faint)}.outgoing-link-pane .search-result-file-match{padding:5px 0;border:0}.outgoing-link-pane .search-result-file-match-destination-file{background:0 0}.search-result-file-match:hover .search-result-file-match-destination-file:hover{background:0 0;color:var(--text-normal)}.theme-dark,.theme-light{--node:var(--text-muted);--node-focused:var(--text-accent);--node-tag:var(--red);--node-attachment:var(--yellow);--node-unresolved:var(--text-faint)}.graph-view.color-fill{color:var(--node)}.graph-view.color-fill-focused{color:var(--node-focused)}.graph-view.color-fill-highlight{color:var(--node-focused)}.graph-view.color-circle{color:var(--node-focused)}.graph-view.color-line{color:var(--background-modifier-border)}.graph-view.color-line-highlight{color:var(--node-focused);border:0}.graph-view.color-text{color:var(--text-normal)}.theme-dark .graph-view.color-fill-tag,.theme-light .graph-view.color-fill-tag{color:var(--node-tag)}.theme-dark .graph-view.color-fill-attachment,.theme-light .graph-view.color-fill-attachment{color:var(--node-attachment)}.theme-dark .graph-view.color-fill-unresolved,.theme-light .graph-view.color-fill-unresolved{color:var(--node-unresolved)}body:not(.is-mobile):not(.plugin-sliding-panes-rotate-header) .workspace-split.mod-root .workspace-leaf-content[data-type=graph] .view-header,body:not(.is-mobile):not(.plugin-sliding-panes-rotate-header) .workspace-split.mod-root .workspace-leaf-content[data-type=localgraph] .view-header{position:fixed;background:0 0!important;width:100%}body:not(.is-mobile):not(.plugin-sliding-panes-rotate-header) .workspace-leaf-content[data-type=graph] .view-content,body:not(.is-mobile):not(.plugin-sliding-panes-rotate-header) .workspace-leaf-content[data-type=localgraph] .view-content{height:100%}body:not(.plugin-sliding-panes-rotate-header) .workspace-leaf-content[data-type=graph] .view-header-title,body:not(.plugin-sliding-panes-rotate-header) .workspace-leaf-content[data-type=localgraph] .view-header-title{display:none}body:not(.is-mobile):not(.plugin-sliding-panes-rotate-header) .workspace-leaf-content[data-type=graph] .view-actions,body:not(.is-mobile):not(.plugin-sliding-panes-rotate-header) .workspace-leaf-content[data-type=localgraph] .view-actions{background:0 0}.mod-root .workspace-leaf-content[data-type=graph] .graph-controls,.mod-root .workspace-leaf-content[data-type=localgraph] .graph-controls{top:32px}.graph-controls.is-close{padding:6px;left:0;top:0}.graph-controls-button{cursor:var(--cursor)}.graph-control-section .tree-item-children{padding-bottom:15px}.graph-control-section-header{font-weight:500;text-transform:uppercase;letter-spacing:.05em;font-size:var(--font-adaptive-smallest);color:var(--text-muted)}.graph-control-section-header:hover{color:var(--text-normal)}.graph-controls .search-input-container{width:100%}.graph-controls .graph-control-search-button,.setting-item.mod-search-setting.has-term-changed .graph-control-search-button{display:none}.graph-controls .setting-item{padding:4px 0 0 0}.graph-controls .setting-item-name{font-size:var(--font-adaptive-small)}.graph-controls{background:var(--background-secondary);border:1px solid var(--background-modifier-border);min-width:240px;left:6px;margin-top:6px;margin-bottom:0;padding:10px 12px 10px 2px;border-radius:var(--radius-m)}.graph-controls input[type=range],.graph-controls input[type=text]{font-size:var(--font-adaptive-small)}.graph-controls .mod-cta{width:100%;font-size:var(--font-adaptive-small);padding:5px;margin:0}.graph-controls-button.mod-animate{margin-top:5px}.mod-left-split .graph-controls{background:var(--background-secondary)}.local-graph-jumps-slider-container,.workspace-fake-target-overlay .local-graph-jumps-slider-container,.workspace-split.mod-left-split .local-graph-jumps-slider-container,.workspace-split.mod-right-split .local-graph-jumps-slider-container{background:0 0;opacity:.6;padding:0;left:12px;transition:opacity .2s linear;height:auto}.mod-root .local-graph-jumps-slider-container{right:0;left:0;width:var(--line-width-adaptive);max-width:var(--max-width);margin:0 auto;top:30px}.local-graph-jumps-slider-container:hover,.workspace-fake-target-overlay .local-graph-jumps-slider-container:hover,.workspace-split.mod-left-split .local-graph-jumps-slider-container:hover,.workspace-split.mod-right-split .local-graph-jumps-slider-container:hover{opacity:.8;transition:opacity .2s linear}.outline{padding:15px 10px 20px 0;font-size:var(--font-adaptive-small)}.outline .pane-empty{font-size:var(--font-adaptive-small);color:var(--text-faint);padding:0 0 0 15px;width:100%}.outline .tree-item-self{cursor:var(--cursor);line-height:1.4;margin-bottom:4px;font-size:var(--font-adaptive-small);padding-left:15px}.tree-item-collapse{opacity:1;left:-5px;color:var(--text-faint)}.outline .tree-item-inner:hover{color:var(--text-normal)}.tree-item-self.is-clickable:hover .tree-item-collapse{color:var(--text-normal)}.outline>.tree-item>.tree-item-self .right-triangle{opacity:0}.theme-dark.minimal-dark-black .popover{background:var(--bg2)}.popover,.popover.hover-popover{min-height:40px;box-shadow:0 20px 40px var(--background-modifier-box-shadow);pointer-events:auto!important;border:1px solid var(--background-modifier-border)}.popover.hover-popover{width:400px;max-height:40vh}.popover.hover-popover .markdown-embed{padding:0}.popover .markdown-embed-link{display:none}.popover .markdown-embed .markdown-preview-view{padding:10px 20px 30px}.popover.hover-popover .markdown-embed .markdown-embed-content{max-height:none}.popover.hover-popover.mod-empty{padding:20px 20px 20px 20px;color:var(--text-muted)}.popover.hover-popover .markdown-embed .markdown-preview-view,.popover.hover-popover .markdown-preview-view .table-view-table{font-size:1.05em}.popover.hover-popover .markdown-embed h1,.popover.hover-popover .markdown-embed h2,.popover.hover-popover .markdown-embed h3,.popover.hover-popover .markdown-embed h4{margin-top:1rem}.prompt{box-shadow:var(--shadow-m);padding-bottom:0;border:1px solid var(--modal-border)}body:not(.hider-scrollbars) .prompt{padding-right:0}body:not(.hider-scrollbars) .prompt-results{padding-right:10px}input.prompt-input{border:0;background:var(--background-primary);box-shadow:none!important;padding-left:10px;height:40px;line-height:4;font-size:var(--font-adaptive-normal)}input.prompt-input:hover{border:0;background:var(--background-primary);padding-left:10px;line-height:4}.prompt-results{padding-bottom:0}.prompt-results .suggestion-empty,.prompt-results .suggestion-item:last-child{margin-bottom:10px}.prompt-instructions{color:var(--text-muted)}.prompt-instruction-command{font-weight:600}.suggestion-container{box-shadow:0 5px 40px rgba(0,0,0,.2);padding:0 6px;border-radius:8px;background-color:var(--background-primary);border:1px solid var(--background-modifier-border-hover)}.suggestion-container .suggestion-item{font-size:calc(var(--font-adaptive-normal) * .9)!important;cursor:var(--cursor);padding:4px 10px 4px 10px;border-radius:4px}.suggestion-container .suggestion-item:first-child{margin-top:6px}.suggestion-container .suggestion-item:last-child{margin-bottom:6px}.is-mobile .suggestion-container .suggestion-item:first-child{margin-top:0}.is-mobile .suggestion-container .suggestion-item:last-child{margin-bottom:10px}.suggestion-hotkey{margin-top:.25em}.suggestion-flair{left:auto;right:8px;opacity:.25}.prompt-results .suggestion-flair .filled-pin{display:none}.prompt-results .suggestion-item{padding:5px 8px 5px 10px}.modal-container .suggestion-item.is-selected{border-radius:var(--radius-m);background:var(--background-tertiary)}.suggestion-item.is-selected{background:var(--background-tertiary)}.suggestion-empty,.suggestion-item{font-size:var(--font-adaptive-normal);cursor:var(--cursor)}.is-mobile .prompt,.is-mobile .suggestion-container{width:100%;max-width:100%;border:none;padding:10px 10px 0 10px;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.is-mobile .suggestion-container{left:0;right:0;margin:0 auto;border:none}.is-mobile .suggestion-item{font-size:var(--font-adaptive-normal);padding-left:10px;letter-spacing:.001px}.is-mobile .prompt-results .suggestion-flair{display:none}.is-mobile input[type=text].prompt-input,.is-mobile input[type=text].prompt-input:hover{line-height:2;padding:8px;height:4.5ex;font-size:var(--font-adaptive-normal)}@media (min-width:400pt){.is-mobile .modal-container .prompt{opacity:1!important}.is-mobile .prompt{max-width:600px;max-height:600px;bottom:auto!important;border-radius:15px;top:100px!important}.is-mobile .suggestion-container{max-width:600px;max-height:600px;border-radius:15px;bottom:80px;border:1px solid var(--background-modifier-border)}.is-mobile .modal-container .suggestion-item{padding:8px 5px 8px 8px;border-radius:var(--radius-m)}.is-mobile .suggestion-flair{right:0;left:auto;position:absolute;padding:10px}}@media (max-width:400pt){.is-mobile .suggestion-hotkey{display:none}.is-mobile .suggestion-flair{right:0;left:auto;position:absolute;padding:5px 5px 0 0}.is-mobile .suggestion-container{max-height:200px;border-top:1px solid var(--background-modifier-border);border-radius:0;padding-top:0;box-shadow:none}.is-mobile .prompt{border-radius:0;border:none;padding-top:5px;padding-bottom:0;max-height:calc(100vh - 120px);top:120px}.is-mobile .suggestion-container .suggestion{padding-top:10px}}.modal.mod-publish{max-width:600px;padding-left:0;padding-right:0;padding-bottom:0}.modal.mod-publish .modal-title{padding-left:20px;padding-bottom:10px}.mod-publish .modal-content{padding-left:20px;padding-right:20px}.mod-publish p{font-size:var(--font-small)}.mod-publish .tree-item-flair{display:unset}.file-tree .mod-changed .tree-item-flair,.file-tree .mod-deleted .tree-item-flair,.file-tree .mod-new .tree-item-flair,.file-tree .mod-to-delete .tree-item-flair{background:0 0}.file-tree .mod-deleted .tree-item-flair,.file-tree .mod-to-delete .tree-item-flair{color:var(--pink)}.file-tree .mod-new .tree-item-flair{color:var(--green)}.file-tree .mod-changed .tree-item-flair{color:var(--yellow)}.mod-publish .button-container,.modal.mod-publish .modal-button-container{margin-top:0;padding:10px;border-top:1px solid var(--background-modifier-border);bottom:0;background-color:var(--background-primary);position:absolute;width:100%;margin-left:-20px;text-align:center}.publish-changes-info{padding:0 0 15px;margin-bottom:0;border-bottom:1px solid var(--background-modifier-border)}.modal.mod-publish .modal-content .publish-sections-container{max-height:none;height:auto;padding:10px 20px 30px 0;margin-top:10px;margin-right:-20px;margin-bottom:80px}.publish-site-settings-container{max-height:none;height:auto;margin-right:-20px;margin-bottom:80px;overflow-x:hidden}.publish-section-header{padding-bottom:15px;border-width:1px}.password-item{padding-left:0;padding-right:0}.publish-section-header-text{font-weight:600;color:var(--text-normal);cursor:var(--cursor)}.file-tree-item-header,.publish-section-header-action,.publish-section-header-text,.publish-section-header-toggle-collapsed-button{cursor:var(--cursor)}.publish-section-header-action:hover,.publish-section-header-text:hover,.publish-section-header-toggle-collapsed-button:hover{color:var(--text-normal);cursor:var(--cursor)}.mod-publish .u-pop{color:var(--text-normal)}.publish-section-header-toggle-collapsed-button{padding:7px 0 0 3px;width:18px}.mod-publish .file-tree-item{margin-left:20px}.mod-publish .file-tree-item{padding:0;margin-bottom:2px;font-size:var(--font-small)}.mod-publish .file-tree-item-checkbox{filter:hue-rotate(0)}.mod-publish .file-tree-item.mod-deleted .flair,.mod-publish .file-tree-item.mod-to-delete .flair{background:0 0;color:#ff3c00;font-weight:500}.mod-publish .file-tree-item.mod-new .flair{background:0 0;font-weight:500;color:#13c152}.mod-publish .site-list-item{padding-left:0;padding-right:0}.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}}.search-result-container.mod-global-search .search-empty-state{padding-left:15px}.search-result-file-match{cursor:var(--cursor)!important;width:auto;left:0}.search-result-file-match:hover{background:0 0}.search-result-container:before{height:1px}.search-result-file-match-replace-button{background-color:var(--background-primary);border:1px solid var(--background-modifier-border);color:var(--text-muted);opacity:1;top:auto;right:18px;bottom:1px;font-weight:500;font-size:var(--font-adaptive-smaller)}.search-result-hover-button:hover{background-color:var(--background-tertiary);color:var(--text-muted)}.search-result-file-match-replace-button:hover{background-color:var(--background-modifier-border);color:var(--text-normal)}.search-result-container.is-loading:before{background-color:var(--background-modifier-accent)}.search-result{margin-bottom:0}.search-result-count{opacity:1;color:var(--text-faint);padding:0 0 0 5px}.search-result-file-match:before{top:0}.search-result-file-match:not(:first-child){margin-top:0}.search-result-file-match{margin-top:0;margin-bottom:0;padding-top:6px;padding-bottom:5px}.search-result-file-matched-text{background-color:var(--text-selection)}.search-input-container input,.search-input-container input:focus,.search-input-container input:hover{font-size:var(--font-adaptive-small);padding:5px 28px 5px 10px;background-color:var(--background-modifier-form-field)}.search-input-container{width:calc(100% - 20px);margin:0 0 8px 10px}.workspace-leaf-content .setting-item{padding:5px 0;border:none}.workspace-leaf-content .setting-item-control{flex-shrink:0;flex:1}.search-input-clear-button{background:0 0;border-radius:50%;color:var(--text-muted);cursor:var(--cursor);top:0;right:2px;bottom:0;line-height:0;height:calc(var(--input-height) - 2px);width:28px;margin:auto;padding:0 0;text-align:center;display:flex;justify-content:center;align-items:center;transition:color .2s ease-in-out}.search-input-clear-button:hover{color:var(--text-normal);transition:color .2s ease-in-out}.search-input-clear-button:active{color:var(--text-normal);transition:color .2s ease-in-out}.search-input-clear-button:before{content:'';height:13px;width:13px;display:block;background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,");-webkit-mask-repeat:no-repeat}.search-input{max-width:100%;margin-left:0;width:500px}input.search-input:focus{border-color:var(--background-modifier-border)}.workspace-leaf-content[data-type=search] .search-result-file-matches{padding-left:0}.search-empty-state{font-size:var(--font-adaptive-small);color:var(--text-faint);padding-left:5px;margin:0}.search-result-container{padding:5px 10px 50px 5px}.search-result-file-title{line-height:1.3;padding:4px 4px 4px 20px;vertical-align:middle;cursor:var(--cursor)!important}.search-result-file-title,.tree-item-inner{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-result-collapse-indicator{left:0}.search-result-file-match{padding-right:15px}.search-result-file-match:before{height:.5px}.search-result-file-matches{font-size:var(--font-adaptive-smaller);line-height:1.3;margin:3px 0 8px 0;padding:0 0 2px 0;color:var(--text-muted);border:1px solid var(--background-modifier-border);background:var(--background-primary);border-radius:var(--radius-m)}.search-result:last-child .search-result-file-matches{border:1px solid var(--background-modifier-border)}.search-result-hover-button.mod-top{top:4px;right:4px}.search-result-hover-button.mod-bottom{bottom:0;right:4px}.search-info-container{font-size:var(--font-adaptive-smaller);color:var(--text-faint);padding-top:5px;padding-bottom:5px}.search-info-more-matches{font-size:var(--font-adaptive-smaller);padding-top:4px;padding-bottom:4px;color:var(--text-normal)}.side-dock-collapsible-section-header-indicator{display:none}.search-result-file-title:hover{color:var(--text-normal);background:0 0}.workspace-leaf-content .search-input,.workspace-leaf-content .search-input:focus,.workspace-leaf-content .search-input:hover{font-size:var(--font-adaptive-small);padding:7px 10px;height:28px;border-radius:var(--radius-m);background:var(--background-primary);border:1px solid var(--background-modifier-border);transition:border-color .1s ease-in-out}.workspace-leaf-content .search-input:hover{border-color:var(--background-modifier-border-hover);transition:border-color .1s ease-in-out}.workspace-leaf-content .search-input:focus{background:var(--background-primary);border-color:var(--background-modifier-border-focus);transition:all .1s ease-in-out}.search-input-container input::placeholder{color:var(--text-faint);font-size:var(--font-adaptive-small)}.workspace-split.mod-root .workspace-split.mod-vertical .workspace-leaf-content{padding-right:0}.workspace-split.mod-horizontal.mod-right-split{width:0}.workspace-split.mod-vertical>.workspace-leaf{padding-right:1px}.workspace-leaf-content[data-type=starred] .item-list{padding-top:5px}.workspace-leaf-content .view-content{padding:0}.workspace-split.mod-right-split .view-content{padding:0;background-color:var(--background-primary)}.modal.mod-sync-log{padding:20px 0 0 0}.modal.mod-sync-log .modal-title{padding:0 20px}.modal.mod-sync-log .modal-content{padding:0;display:flex;flex-direction:column}.modal.mod-sync-log .modal-button-container{border-top:1px solid var(--background-modifier-border);padding:15px;background-color:var(--background-primary);margin:0}.modal.mod-sync-log .sync-log-container{padding:16px 20px;background-color:var(--background-secondary);flex-grow:1;font-size:var(--font-adaptive-small)}.sync-log-container .list-item{padding-left:0}.modal.mod-sync-log .setting-item.mod-toggle{padding:20px}.sync-history-content{font-size:var(--font-adaptive-small);border:none;padding:20px 40px 20px 20px;border-radius:0}body .sync-history-content-container textarea.sync-history-content:active,body .sync-history-content-container textarea.sync-history-content:focus{box-shadow:none}.modal.mod-sync-history .modal-content{padding:0}.sync-history-content-empty{padding:5px 20px;color:var(--text-muted);font-size:var(--font-adaptive-small)}.sync-history-content-container{padding:0;height:auto;border-left:1px solid var(--background-modifier-border);background-color:var(--background-primary)}.sync-history-content-buttons.u-center-text{text-align:center;padding:10px;margin:0;border-top:1px solid var(--background-modifier-border)}.sync-history-content-container .modal-button-container{margin:0;padding:10px 5px;border-top:1px solid var(--background-modifier-border);background-color:var(--background-primary);text-align:center}.sync-history-list{min-width:220px}.sync-history-list-container{min-width:220px;flex-basis:230px;max-height:none;overflow-y:scroll;background-color:var(--background-secondary)}.sync-history-list{padding:10px 10px 0 10px;overflow:unset;background-color:var(--background-secondary)}.sync-history-list .search-input-container{width:100%;margin:0}.sync-history-load-more-button{font-size:var(--font-adaptive-small);cursor:var(--cursor);margin:0 10px 10px;border-radius:var(--radius-m)}.sync-history-load-more-button:hover{background-color:var(--background-tertiary)}.sync-history-list-item{border-radius:var(--radius-m);padding:4px 8px;margin-bottom:4px;font-size:var(--font-adaptive-small);cursor:var(--cursor)}.sync-history-list-item.is-active,.sync-history-list-item:hover{background-color:var(--background-tertiary)}.is-mobile .sync-status-icon{margin-top:2px}.is-mobile .sync-history-list{padding:10px;background-color:var(--background-primary)}.is-mobile .sync-history-list-item{font-size:var(--font-adaptive-small);padding:8px 10px}.is-mobile .sync-history-content-container .modal-button-container{padding:5px 10px 30px 10px}.is-mobile .sync-history-content{outline:0;-webkit-appearance:none;border:0;background-color:var(--background-secondary)}.is-mobile .modal.mod-sync-log .mod-toggle,.is-mobile .modal.mod-sync-log .modal-button-container{flex:0}@media (max-width:400pt){.is-mobile .modal.mod-sync-log{width:100vw;height:100vh;max-height:calc(100vh - 32px);box-shadow:0 -32px 0 32px var(--background-primary);bottom:0;padding-bottom:10px}}.obsidian-banner.solid{border-bottom:var(--border-width) solid var(--background-divider)}.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-tertiary);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(--blue)!important}.button-default.red{background-color:var(--red)!important}.button-default.green{background-color:var(--green)!important}.button-default.yellow{background-color:var(--yellow)!important}.button-default.purple{background-color:var(--purple)!important}.workspace-leaf-content[data-type=calendar] .view-content{padding:5px 0 0 0}#calendar-container{padding:0 15px 5px;--color-background-day-empty:var(--background-secondary-alt);--color-background-day-active:var(--background-tertiary);--color-background-day-hover:var(--background-tertiary);--color-dot:var(--text-faint);--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)}.mod-root #calendar-container{width:var(--line-width-adaptive);max-width:var(--max-width);margin:0 auto;padding:0}#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-tertiary)}#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 td{padding:2px 0 0 0;border-radius:var(--radius-m);cursor:var(--cursor);border:1px solid transparent;transition:none}#calendar-container .nav{padding:0;margin:10px 5px 10px 5px}#calendar-container .dot{margin:0}#calendar-container .month,#calendar-container .title,#calendar-container .year{font-size:var(--font-adaptive-normal);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(--text-accent)}#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-small);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-tertiary)}#calendar-container .day,#calendar-container .reset-button{cursor:var(--cursor)}#calendar-container .day.adjacent-month{color:var(--text-faint);opacity:1}#calendar-container .day{padding:2px 4px 4px;font-size:calc(var(--font-adaptive-normal) - 2px)}#calendar-container .active,#calendar-container .active.today,#calendar-container .day:hover,#calendar-container .week-num:hover{background-color:var(--color-background-day-active)}#calendar-container .active .dot{fill:var(--text-faint)}#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(--blue);--chart-color-2:var(--red);--chart-color-3:var(--yellow);--chart-color-4:var(--green);--chart-color-5:var(--orange);--chart-color-6:var(--purple);--chart-color-7:var(--cyan);--chart-color-8:var(--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: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: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: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-tertiary)}.el-hr hr{margin:1rem 0}.el-p+.el-h1,.el-p+.el-h2{margin-top:.75rem}.el-h1+.el-h1,.el-h1+.el-h2,.el-h2+.el-h2,.el-hr+.el-h1,.el-hr+.el-h2{margin-top:0}.el-lang-dataview+.el-p,.el-lang-dataviewjs+.el-p,.el-ol+.el-lang-dataview,.el-ol+.el-lang-dataviewjs,.el-ol+.el-table,.el-p+.el-table,.el-p:not(.el-lang-dataview)+.el-lang-dataview,.el-p:not(.el-lang-dataviewjs)+.el-lang-dataviewjs,.el-ul+.el-lang-dataview,.el-ul+.el-lang-dataviewjs,.el-ul+.el-table{margin-top:var(--spacing-p)}.el-div+.el-h1,.el-embed-image+.el-p:not(.el-embed-image),.el-iframe+.el-p,.el-lang-leaflet,.el-lang-leaflet+*,.el-p+.el-iframe,.el-p:not(.el-embed-image)+.el-embed-image,.el-pre+.el-h1{margin-top:1rem}.markdown-preview-view .table-view-table>thead>tr>th,body .table-view-table>thead>tr>th{font-weight:400;font-size:var(--table-font-size);color:var(--text-muted);border-bottom:1px solid var(--background-modifier-border);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 .table-view-table>tbody>tr>td,.markdown-source-view.mod-cm6 .table-view-table>tbody>tr>td{max-width:var(--max-col-width)}body .dataview.small-text{color:var(--text-faint)}body .dataview.task-list-basic-item:hover,body .dataview.task-list-item:hover,body .table-view-table>tbody>tr:hover{background-color:transparent;box-shadow:none}body .dataview-error{margin-top:16px;background-color:transparent}.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:transparent;font-size:var(--table-font-size);border-radius:var(--radius-m);padding:15px 0}body div.dataview-error-box p{margin-block-start:0;margin-block-end:0;color:var(--text-faint)}.markdown-source-view div.dataview-error-box{margin-top:15px}.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:transparent;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: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)}.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:transparent;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:transparent;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-chubb:var(--interactive-accent-hover);--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);--button-gray-1:var(--background-tertiary);--button-gray-2:var(--background-tertiary);--focus-highlight-color:var(--background-modifier-border-focus);--default-bg-color:var(--background-primary);--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)}.workspace-leaf-content[data-type=excalidraw] .view-header .view-header-title-container{width:auto}body .excalidraw .App-toolbar-container .ToolIcon_type_floating:not(.is-mobile) .ToolIcon__icon{box-shadow:none}body .excalidraw .buttonList label,body .excalidraw button{cursor:var(--cursor)}body .excalidraw .Dialog__title{font-variant:normal}body .excalidraw .HintViewer,body .excalidraw .reset-zoom-button{color:var(--text-muted);font-size:var(--font-small)}body .excalidraw .reset-zoom-button{padding-left:1em;padding-right:1em}body .excalidraw .HintViewer>span{background-color:transparent}body .excalidraw button:hover{box-shadow:none}body .excalidraw .Island{box-shadow:none;border:1px solid var(--background-modifier-border)}body .excalidraw .ToolIcon{cursor:var(--cursor);font-family:var(--font-interface);background-color:transparent}body .excalidraw label.ToolIcon{cursor:var(--cursor);background-color:transparent}:root{--ewt-traffic-light-y:0px}.contextual-typography .markdown-preview-view h1.embedded-note-title{margin-block-start:0;margin-block-end:0}.embedded-note-titles .markdown-preview-view>h1{padding-left:var(--folding-offset)!important}.embedded-note-titles .is-readable-line-width.markdown-preview-view>h1{max-width:var(--max-width)!important;width:var(--line-width-adaptive)!important}.mod-cm6 .cm-editor h1.cm-line.embedded-note-title{padding-top:var(--embedded-note-title-padding-top);padding-bottom:var(--embedded-note-title-padding-bottom)}.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}body.hider-frameless:not(.is-mobile) .workspace-split.mod-left-split>.workspace-tabs{padding-top:var(--top-left-padding-y);transition:padding-top .2s linear}body.mod-macos.hider-frameless:not(.is-fullscreen):not(.is-mobile) .workspace-split.mod-left-split>.workspace-tabs:nth-child(3){padding-top:calc(var(--top-left-padding-y) + var(--ewt-traffic-light-y));transition:padding-top .2s linear}body.mod-macos.hider-frameless:not(.hider-ribbon):not(.is-fullscreen):not(.is-mobile) .workspace-ribbon .side-dock-actions{padding-top:calc(var(--top-left-padding-y) + var(--ewt-traffic-light-y))}.hider-frameless:not(.is-mobile) .workspace-split.mod-right-split>.workspace-tabs,.hider-frameless:not(.is-mobile) .workspace-split.mod-root .view-header{padding-top:0}.hider-frameless:not(.is-mobile) .workspace-split.mod-left-split>.workspace-tabs~.workspace-tabs,.hider-frameless:not(.is-mobile) .workspace-split.mod-right-split>.workspace-tabs~.workspace-tabs{padding-top:0}.hider-frameless.is-fullscreen:not(.is-mobile) .workspace-split.mod-left-split>.workspace-tabs,.hider-frameless.is-fullscreen:not(.is-mobile) .workspace-split.mod-root .view-header{padding-top:0}:root{--traffic-x-space:0px}.mod-macos.hider-ribbon.hider-frameless:not(.is-fullscreen):not(.plugin-sliding-panes-rotate-header) .workspace-split.mod-left-split.is-collapsed+.mod-root .workspace-leaf:first-of-type{--traffic-x-space:64px}.mod-macos.is-popout-window.hider-ribbon.hider-frameless:not(.is-fullscreen):not(.plugin-sliding-panes-rotate-header) .mod-root .workspace-leaf:first-of-type{--traffic-x-space:64px}.mod-macos.hider-frameless:not(.is-fullscreen):not(.plugin-sliding-panes-rotate-header) .workspace-split.mod-left-split.is-collapsed+.mod-root .workspace-leaf:first-of-type{--traffic-x-space:22px}.mod-macos.hider-frameless .workspace-ribbon{border:none}.hider-ribbon:not(.is-mobile) .workspace-ribbon-collapse-btn{display:none}.hider-ribbon:not(.is-mobile) .workspace-ribbon.mod-right{pointer-events:none}.hider-ribbon:not(.is-mobile) .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:flex!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))}.hider-ribbon:not(.is-mobile) .side-dock-actions,.hider-ribbon:not(.is-mobile) .side-dock-settings{display:flex;border-top:var(--border-width) solid var(--background-modifier-border);background:var(--background-secondary);margin:0;position:relative}.hider-ribbon:not(.is-mobile) .side-dock-actions{padding-left:5px}.hider-ribbon:not(.is-mobile) .side-dock-settings{border-right:var(--border-width) solid var(--background-modifier-border);border-top-right-radius:5px;padding-right:10px}.hider-ribbon:not(.is-mobile) .workspace-ribbon.mod-left .side-dock-ribbon-action{display:flex;padding:4px;margin:6px 0 5px 7px}.hider-ribbon:not(.is-mobile) .workspace-ribbon.mod-left:hover{opacity:1;transition:opacity .25s ease-in-out}.hider-ribbon:not(.is-mobile) .workspace-ribbon.mod-left .workspace-ribbon-collapse-btn{opacity:0}.hider-ribbon:not(.is-mobile) .workspace-split.mod-left-split{margin:0}.hider-ribbon:not(.is-mobile) .workspace-leaf-content .item-list{padding-bottom:40px}.hider-ribbon .workspace-ribbon{padding:0}.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-tertiary);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 .kanban-plugin__markdown-preview-view{font-family:var(----text)}body .kanban-plugin{--interactive-accent:var(--text-selection);--interactive-accent-hover:var(--background-tertiary);--text-on-accent:var(--text-normal);background-color:var(--background-primary)}body .kanban-plugin__board>div{margin:0 auto}body .kanban-plugin__checkbox-label{font-size:var(--font-adaptive-small);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:not(.is-mobile) .kanban-plugin__grow-wrap>textarea:focus{box-shadow:none}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:calc(var(--font-adaptive-normal) - 2px);line-height:1.3}.kanban-plugin__item-input-actions button,.kanban-plugin__lane-input-actions button{font-size:var(--font-adaptive-small)}body .kanban-plugin__item{background-color:var(--background-primary)}.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:0 0;color:var(--text-normal);font-size:calc(var(--font-adaptive-normal) - 2px);font-weight:500}body .kanban-plugin__item-input-wrapper .kanban-plugin__grow-wrap>textarea{padding:0;border-radius:0}body .kanban-plugin__item-form .kanban-plugin__grow-wrap{padding:6px 8px;border-radius:6px;border:1px solid var(--background-modifier-border);background-color:var(--background-primary)}body .kanban-plugin__item-input-wrapper .kanban-plugin__grow-wrap>textarea::placeholder{color:var(--text-faint)}.kanban-plugin__item-settings-actions>button,.kanban-plugin__lane-action-wrapper>button,body .kanban-plugin__item .kanban-plugin__item-edit-archive-button,body .kanban-plugin__item button.kanban-plugin__item-edit-button,body .kanban-plugin__lane button.kanban-plugin__lane-settings-button,body .kanban-plugin__lane button.kanban-plugin__lane-settings-button.is-enabled{background: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: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)}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-tertiary)}body:not(.minimal-icons-off) .kanban-plugin svg.cross{height:14px;width:14px}body .kanban-plugin__item-button-wrapper>button{font-size:var(--font-adaptive-small);color:var(--text-muted);font-weight:400;background:0 0;height:32px}body .kanban-plugin__item-button-wrapper>button:hover{color:var(--text-normal);background:var(--background-tertiary)}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.is-dragging{box-shadow:0 5px 30px rgba(0,0,0,.15);border:1px solid var(--background-modifier-border)}body .kanban-plugin__lane{background:0 0;padding:0;border:var(--border-width) solid transparent}body{--kanban-border:var(--border-width)}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 .kanban-plugin__lane-items{border:var(--kanban-border) solid var(--background-modifier-border);border-bottom:none;padding:0 4px;border-top-left-radius:8px;border-top-right-radius:8px;margin:0;background-color:var(--background-secondary)}body .kanban-plugin__item-input-wrapper{border:0;padding-top:1px;flex-grow:1}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);border-top:none;border-bottom-left-radius:8px;border-bottom-right-radius:8px}body .kanban-plugin__item-form{padding:0 4px 5px}.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}.mod-macos.minimal-focus-mode .mod-root .map-100 .markdown-preview-sizer.markdown-preview-section .el-lang-leaflet:nth-child(3) .leaflet-top{top:calc(18px + var(--ewt-traffic-light-y));transition:top .1s linear}body .leaflet-container{background-color:var(--background-secondary);font-family:var(--font-interface)}.map-100 .markdown-preview-sizer.markdown-preview-section .el-lang-leaflet:nth-child(3){margin-top:-16px}.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:transparent;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-tertiary);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: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: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:0 0;box-shadow:none;color:var(--text-muted)}body .NLT__button:active,body .NLT__button:focus,body .NLT__button:hover{background:0 0;color:var(--text-normal);box-shadow:none}.NLT__app .NLT__button{background: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: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:transparent;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:0 0}.NLT__menu .NLT__selected>.NLT__selectable{background-color:var(--background-tertiary)}.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-tertiary)}.NLT__menu .NLT__textarea{font-size:var(--table-font-size)}.NLT__tfoot tr:hover td{background-color:transparent}body.outliner-plugin-bls .CodeMirror-line .cm-hmd-list-indent::before{background-image:linear-gradient(to right,var(--background-modifier-border) 1px,transparent 1px);background-position-x:2px;background-size:var(--font-text-size) 1px}body.outliner-plugin-bls .cm-s-obsidian span.cm-formatting-list{letter-spacing:unset}body.outliner-plugin-bls .cm-s-obsidian .HyperMD-list-line{padding-top:0}body.outliner-plugin-bls .cm-s-obsidian span.cm-formatting-list-ul:before{color:var(--text-faint);margin-left:-3px;margin-top:-5px}body.outliner-plugin-bls.minimal-rel-edit .cm-hmd-list-indent>.cm-tab:after{content:"";border-right:none}body.outliner-plugin-bls .cm-s-obsidian span.cm-formatting-list-ul{color:transparent!important}body.outliner-plugin-bls .cm-s-obsidian.is-live-preview .list-bullet:before,body.outliner-plugin-bls .cm-s-obsidian:not(.is-live-preview) .cm-formatting-list-ul:before{color:var(--text-faint)}.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-settings-small)}.modal .yesNoPromptButtonContainer{font-size:var(--font-settings-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:"\00a0›"!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-tertiary);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:transparent}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-tertiary)!important}body .modal .dtchooser .reminder-calendar .calendar-date.is-selected{font-weight:var(--bold-weight);color:var(--text-accent)!important}body.plugin-sliding-panes-rotate-header{--header-width:40px}body.plugin-sliding-panes-rotate-header .view-header-title:before{display:none}body.plugin-sliding-panes .workspace-split.mod-root{background-color:var(--background-primary)}body.plugin-sliding-panes .mod-horizontal .workspace-leaf{box-shadow:none!important}body.plugin-sliding-panes:not(.is-fullscreen) .workspace-split.is-collapsed~.workspace-split.mod-root .view-header{transition:padding .1s ease}body.plugin-sliding-panes .view-header-title:before{background:0 0}body.plugin-sliding-panes .view-header{background:0 0}body.plugin-sliding-panes.plugin-sliding-panes-rotate-header .workspace>.mod-root>.workspace-leaf.mod-active>.workspace-leaf-content>.view-header{border:none}body.plugin-sliding-panes.plugin-sliding-panes-rotate-header .workspace>.mod-root>.workspace-leaf>.workspace-leaf-content>.view-header{border:none;text-orientation:sideways}body.plugin-sliding-panes.plugin-sliding-panes-rotate-header .workspace>.mod-root>.workspace-leaf>.workspace-leaf-content>.view-header .view-header-icon{padding:4px 1px;margin:5px 0 0 0;left:0;width:26px}body.plugin-sliding-panes.plugin-sliding-panes-rotate-header .workspace>.mod-root>.workspace-leaf>.workspace-leaf-content>.view-header .view-actions{padding-bottom:33px;margin-left:0;height:auto}body.plugin-sliding-panes.plugin-sliding-panes-rotate-header .workspace>.mod-root>.workspace-leaf>.workspace-leaf-content>.view-header .view-action{margin:3px 0;padding:4px 1px;width:26px}body.plugin-sliding-panes.plugin-sliding-panes-rotate-header .app-container .workspace>.mod-root>.workspace-leaf.mod-active>.workspace-leaf-content>.view-header>.view-header-title-container:before,body.plugin-sliding-panes.plugin-sliding-panes-rotate-header .workspace>.mod-root>.workspace-leaf>.workspace-leaf-content>.view-header>.view-header-title-container:before{background:0 0!important}.workspace>.mod-root .view-header-title-container body.plugin-sliding-panes.plugin-sliding-panes-rotate-header.plugin-sliding-panes-header-alt .workspace>.mod-root .view-header-title{margin-top:0}body.plugin-sliding-panes.plugin-sliding-panes-rotate-header .workspace>.mod-root .view-header-title-container{margin-left:0;padding-top:0}body.plugin-sliding-panes.plugin-sliding-panes-rotate-header .view-header-title-container{position:static}body.plugin-sliding-panes.plugin-sliding-panes-rotate-header .app-container .workspace>.mod-root>.workspace-leaf>.workspace-leaf-content>.view-header>div{margin-left:0;margin-right:0;bottom:0}body.plugin-sliding-panes.plugin-sliding-panes-rotate-header.show-grabber .view-header-icon{opacity:var(--icon-muted)}body.plugin-sliding-panes.plugin-sliding-panes-rotate-header .view-header-icon:hover{opacity:1}body:not(.plugin-sliding-panes-header-alt).plugin-sliding-panes-rotate-header .workspace>.mod-root>.workspace-leaf>.workspace-leaf-content>.view-header>.view-header-title-container>.view-header-title,body:not(.plugin-sliding-panes-header-alt).plugin-sliding-panes-rotate-header .workspace>.mod-root>.workspace-split>.workspace-leaf-content>.view-header>.view-header-title-container>.view-header-title{padding-top:5px}body.plugin-sliding-panes .workspace-split.mod-vertical>.workspace-leaf,body.plugin-sliding-panes-stacking .workspace>.mod-root>.workspace-leaf{box-shadow:0 0 0 1px var(--background-modifier-border),1px 0 15px 0 var(--shadow-color)!important}body.is-mobile.plugin-sliding-panes.plugin-sliding-panes-rotate-header .workspace>.mod-root>.workspace-leaf>.workspace-leaf-content>.view-header .view-header-icon{height:30px}body.hider-ribbon.plugin-sliding-panes.plugin-sliding-panes-rotate-header .workspace>.mod-root>.workspace-leaf>.workspace-leaf-content>.view-header .view-actions{padding-bottom:50px}body.plugin-sliding-panes.is-fullscreen .view-header-icon{padding-top:8px}body.plugin-sliding-panes .mod-root .graph-controls{top:20px;left:30px}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] .view-content{padding:0 0 20px var(--folding-offset)}.workspace-leaf-content[data-type=style-settings] .view-content>div{width:var(--line-width-adaptive);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}.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-small)}.setting-item .style-settings-export,.setting-item .style-settings-import{text-decoration:none;font-size:var(--font-settings-small);font-weight:500;color:var(--text-muted);margin:0;padding:2px 8px;border-radius:5px;cursor:var(--cursor)}.style-settings-export:hover,.style-settings-import:hover{background-color:var(--background-tertiary);color:var(--text-normal);cursor:var(--cursor)}.themed-color-wrapper>div+div{margin-top:0;margin-left:6px}.theme-light .themed-color-wrapper>.theme-light{background-color:transparent}.theme-light .themed-color-wrapper>.theme-dark{background-color:rgba(0,0,0,.8)}.theme-dark .themed-color-wrapper>.theme-dark{background-color:transparent}.plugin-tabs .mod-root.workspace-split.mod-vertical>div.workspace-leaf.mod-active .view-header,body.plugin-tabs .mod-root.workspace-split.mod-vertical>.workspace-split.mod-vertical>div.workspace-leaf .view-header,body.plugin-tabs .mod-root.workspace-split.mod-vertical>div.workspace-leaf.stayopen .view-header{border:none}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: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-tertiary)}.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(--orange)}body .todoist-p1>input[type=checkbox]{border:1px solid var(--red)}body .todoist-p1>input[type=checkbox]:hover{opacity:.8}body .todoist-p2>input[type=checkbox]{border:1px solid var(--yellow)}body .todoist-p2>input[type=checkbox]:hover{opacity:.8}body .todoist-p3>input[type=checkbox]{border:1px solid var(--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)}.theme-dark.minimal-atom-dark{--red:#e16d76;--orange:#d19a66;--yellow:#cec167;--green:#98c379;--cyan:#58b6c2;--blue:#62afef;--purple:#c678de;--pink:#e16d76}.theme-light.minimal-atom-light{--red:#e45749;--orange:#b76b02;--yellow:#c18302;--green:#50a150;--cyan:#0d97b3;--blue:#62afef;--purple:#a626a4;--pink:#e45749}.theme-light.minimal-atom-light{--base-h:106;--base-s:0%;--base-l:98%;--accent-h:209;--accent-s:100%;--accent-l:55%;--bg1:#fafafa;--bg2:#eaeaeb;--bg3:#dbdbdc;--ui1:#dbdbdc;--ui2:#d8d8d9;--tx1:#232324;--tx2:#8e8e90;--tx3:#a0a1a8;--ax1:#1a92ff;--ax3:#566de8;--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-fake-target-overlay.is-in-sidebar,.theme-light.minimal-atom-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-atom-light.minimal-light-contrast.is-mobile .workspace-drawer.mod-left,.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;--background-divider:#181a1f;--tx1:#d8dae1;--tx2:#898f9d;--tx3:#5d6370;--ax1:#578af2;--ax3:#578af2;--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;--background-divider:#282c34}.theme-dark.minimal-dracula-dark{--red:#ff5555;--yellow:#f1fa8c;--green:#50fa7b;--orange:#ffb86c;--purple:#bd93f9;--pink:#ff79c6;--cyan:#8be9fd;--blue:#6272a4}.theme-dark.minimal-dracula-dark,.theme-light.minimal-dracula-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-dracula-light.minimal-light-contrast .titlebar,.theme-light.minimal-dracula-light.minimal-light-contrast .workspace-fake-target-overlay.is-in-sidebar,.theme-light.minimal-dracula-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-dracula-light.minimal-light-contrast.is-mobile .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;--ax3:#ff79c6;--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-light.minimal-everforest-light{--red:#f85552;--orange:#f57d26;--yellow:#dfa000;--green:#8da101;--purple:#df69ba;--pink:#df69ba;--cyan:#35a77c;--blue:#7fbbb3}.theme-dark.minimal-everforest-dark{--red:#e67e80;--orange:#e69875;--yellow:#dbbc7f;--green:#a7c080;--purple:#d699b6;--pink:#d699b6;--cyan:#83c092;--blue:#7fbbb3}.theme-light.minimal-everforest-light{--base-h:46;--base-s:87%;--base-l:94%;--accent-h:81;--accent-s:37%;--accent-l:52%;--bg1:#FDF7E3;--bg2:#EEEAD5;--bg3:rgba(206,207,182,.5);--ui1:#dfdbc8;--ui2:#bdc3af;--ui3:#bdc3af;--tx1:#5C6A72;--tx2:#829181;--tx3:#a6b0a0;--ax1:#93b259;--ax2:#738555;--ax3:#93b259;--hl1:rgba(198,214,152,.4);--hl2:rgba(222,179,51,.3)}.theme-light.minimal-everforest-light.minimal-light-tonal{--bg2:#EEEAD5}.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-fake-target-overlay.is-in-sidebar,.theme-light.minimal-everforest-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-everforest-light.minimal-light-contrast.is-mobile .workspace-drawer.mod-left,.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:#323D44;--bg2:#2A343A;--bg3:#414C54;--bg3:rgba(78,91,100,0.5);--ui1:#404c51;--ui2:#4A555C;--ui3:#525c62;--tx1:#d3c6aa;--tx2:#9da9a0;--tx3:#7a8478;--ax1:#A7C080;--ax2:#c7cca3;--ax3:#93b259;--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-dark.minimal-gruvbox-dark,.theme-light.minimal-gruvbox-light{--red:#cc241d;--yellow:#d79921;--green:#98971a;--orange:#d65d0e;--purple:#b16286;--pink:#b16286;--cyan:#689d6a;--blue:#458588}.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;--ax1:#d65d0e;--ax2:#af3a03;--ax3:#d65d0d;--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-fake-target-overlay.is-in-sidebar,.theme-light.minimal-gruvbox-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-gruvbox-light.minimal-light-contrast.is-mobile .workspace-drawer.mod-left,.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;--ax1:#d65d0e;--ax2:#fe8019;--ax3:#d65d0e;--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{--red:#ff3b31;--yellow:#ffcc00;--green:#2acd41;--orange:#ff9502;--purple:#b051de;--pink:#ff2e55;--cyan:#02c7be;--blue:#027aff}.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:#d7d7d7;--ui1:#e7e7e7;--tx1:#454545;--tx2:#808080;--tx3:#b0b0b0;--ax1:#027aff;--ax2:#0463cc;--ax3:#007bff;--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-fake-target-overlay.is-in-sidebar,.theme-light.minimal-macos-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-macos-light.minimal-light-contrast.is-mobile .workspace-drawer.mod-left,.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);--background-divider:#000;--ui1:#373737;--ui2:#515151;--ui3:#595959;--tx1:#dcdcdc;--tx2:#8c8c8c;--tx3:#686868;--ax1:#027aff;--ax2:#3f9bff;--ax3:#007bff;--hl1:rgba(98,169,252,0.5);--sp1:#fff}.theme-dark.minimal-macos-dark.minimal-dark-black{--background-divider:#1e1e1e}.theme-dark.minimal-nord-dark,.theme-light.minimal-nord-light{--red:#BF616A;--yellow:#EBCB8B;--green:#A3BE8C;--orange:#D08770;--purple:#B48EAD;--pink:#B48EAD;--cyan:#88C0D0;--blue:#81A1C1}.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;--ax1:#5e81ac;--ax2:#81a1c1;--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-fake-target-overlay.is-in-sidebar,.theme-light.minimal-nord-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-nord-light.minimal-light-contrast.is-mobile .workspace-drawer.mod-left,.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:#5e81ac;--tx1:#d8dee9;--tx2:#9eafcc;--tx3:#4c566a;--ax3:#5e81ac;--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:65%;--accent-l:71%;--bg2:#f7f6f4;--bg3:#e8e7e4;--ui1:#ededec;--ui2:#dbdbda;--ui3:#aaa9a5;--tx1:#37352f;--tx2:#72706c;--tx3:#aaa9a5;--ax1:#37352f;--ax2:#000;--ax3:#2eaadc;--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-fake-target-overlay.is-in-sidebar,.theme-light.minimal-notion-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-notion-light.minimal-light-contrast.is-mobile .workspace-drawer.mod-left,.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:48%;--accent-l:43%;--bg1:#2f3437;--bg2:#373c3f;--bg3:#4b5053;--ui1:#3e4245;--ui2:#585d5f;--ui3:#585d5f;--tx1:#ebebeb;--tx2:#909295;--tx3:#585d5f;--ax1:#ebebeb;--ax2:#fff;--ax3:#2eaadc;--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-dark.minimal-solarized-dark,.theme-light.minimal-solarized-light{--red:#dc322f;--orange:#cb4b16;--yellow:#b58900;--green:#859900;--cyan:#2aa198;--blue:#268bd2;--purple:#6c71c4;--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;--ax1:#268bd2;--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-fake-target-overlay.is-in-sidebar,.theme-light.minimal-solarized-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-solarized-light.minimal-light-contrast.is-mobile .workspace-drawer.mod-left,.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;--ax1:#268bd2;--ax3:#268bd2;--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{--red:#FF306C;--yellow:#FFD500;--green:#4BBF5E;--orange:#ff9502;--purple:#b051de;--pink:#ff2e55;--cyan:#49AEA4}.theme-light.minimal-things-light{--blue:#1b61c2}.theme-dark.minimal-things-dark{--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;--ax1:#1b61c2;--ax2:#1C88DD;--ax3:#1b61c2;--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-fake-target-overlay.is-in-sidebar,.theme-light.minimal-things-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-things-light.minimal-light-contrast.is-mobile .workspace-drawer.mod-left,.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;--background-divider:#17191c;--ui1:#3A3B3F;--ui2:#45464a;--ui3:#6c6e70;--tx1:#fbfbfb;--tx2:#CBCCCD;--tx3:#6c6e70;--ax1:#4d95f7;--ax2:#79a9ec;--ax3:#4d95f7;--hl1:rgba(40,119,236,0.35);--sp1:#fff}.theme-dark.minimal-things-dark.minimal-dark-black{--base-d:5%;--bg3:#24262a;--background-divider:#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: Welcome 👋 - type: heading - level: 2 - collapsed: true - description: Use the Minimal Theme Settings plugin to access hotkeys, adjust features, select fonts, and choose from preset color schemes. Use the settings below for more granular customization. Visit 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: accent - title: Accent color - description: Defines link and checkbox 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: extended-palette - title: Interface extended palette - type: heading - level: 2 - collapsed: true - - - id: 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: orange - title: Orange - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: yellow - title: Yellow - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: green - title: Green - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: cyan - title: Cyan - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: blue - title: Blue - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: purple - title: Purple - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: pink - title: Pink - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: active-line - title: Active line - 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: 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: blockquotes - title: Blockquotes - type: heading - level: 2 - collapsed: true - - - id: text-blockquote - title: Blockquotes text color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: blockquote-size - title: Blockquotes font size - description: Accepts any CSS font-size value - type: variable-text - default: '' - - - id: blockquote-style - title: Blockquotes font style - type: variable-select - allowEmpty: false - default: normal - options: - - - label: Normal - value: normal - - - label: Italic - value: italic - - - id: code-blocks - title: Code blocks - type: heading - level: 2 - collapsed: true - - - id: text-code - 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: font-code - title: Code font size - description: Accepts any CSS font-size value - type: variable-text - default: 13px - - - 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: graphs - title: Graphs - type: heading - level: 2 - collapsed: true - - - id: node - title: Node color - description: Changing node colors requires closing and reopening graph panes or restarting Obsidian - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: node-focused - title: Active node color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: node-tag - title: Tag node color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: node-attachment - title: Attachment node color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: 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 - 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 - 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 - 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 - 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 - 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 - 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: 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: zoom-off - title: Disable image zoom - description: Turns off click + hold to zoom images - type: class-toggle - - - id: indentation-guides - title: Indentation guides - type: heading - level: 2 - collapsed: true - - - id: ig-adjust-reading - title: Horizontal adjustment in reading mode - type: variable-number-slider - default: -0.65 - min: -1.2 - max: 0 - step: 0.05 - format: em - - - id: ig-adjust-edit - title: Horizontal adjustment in edit mode - type: variable-number-slider - default: -1 - min: -10 - max: 10 - step: 1 - format: px - - - id: links - title: Links - type: heading - level: 2 - collapsed: true - - - id: ax1 - title: Link color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: ax2 - title: Link color (hovering) - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: link-weight - title: Link font weight - type: variable-number-slider - default: 400 - min: 100 - max: 900 - step: 100 - - - id: lists - title: Lists and tasks - type: heading - level: 2 - collapsed: true - - - id: ax3 - 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: sidebars - title: Sidebars - type: heading - level: 2 - collapsed: true - - - id: tab-style - title: Tab style - description: See documentation for screenshots - type: class-select - allowEmpty: false - default: tab-style-1 - options: - - - label: Compact - value: tab-style-1 - - - label: Pill - value: tab-style-3 - - - label: Underlined - value: tab-style-2 - - - label: Index - value: tab-style-4 - - - id: sidebar-lines-off - title: Disable sidebar relationship lines - description: Turns off lines in file navigation - type: class-toggle - - - 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: tables - title: Tables - type: heading - level: 2 - collapsed: true - - - id: table-font-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: 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: row-color-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: 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-bg - title: Tag background color - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: tag-bg2 - 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-italic - title: Italic text color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: text-bold - 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: spacing-p - title: Paragraph spacing - description: Space between paragraphs in reading mode - type: variable-text - default: 0.75em - - - id: titlebar - title: Title bar - type: heading - level: 2 - collapsed: true - - - id: title-alignment - title: Title alignment - description: Position of the text within the title bar - type: class-select - allowEmpty: false - default: title-align-body - options: - - - label: Text body - value: title-align-body - - - label: Left - value: title-align-left - - - label: Center - value: title-align-center - - - id: show-grabber - title: Always show grabber icon - description: Make the dragging handle always visible in the top left corner of a pane - type: class-toggle - default: false - - - id: header-height - title: Title bar height - type: variable-text - default: 42px - - - id: title-size - title: Title font size - description: Accepts any CSS font-size value - type: variable-text - default: 1.1em - - - id: title-weight - title: Title font weight - type: variable-number-slider - default: 600 - min: 100 - max: 900 - step: 100 - - - id: title-color - title: Title text color (active) - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: title-color-inactive - title: Title text color (inactive) - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: translucency - title: Translucency - type: heading - level: 2 - collapsed: true - - - id: bg-translucency-light - title: Translucency (light mode) - description: Sidebar translucency in light mode. Requires turning on "Translucent window" in Appearance settings, and "Translucent sidebar" in Minimal settings. - type: variable-number-slider - default: 0.7 - min: 0 - max: 1 - step: 0.05 - - - id: bg-translucency-dark - title: Translucency (dark mode) - description: Sidebar translucency in dark mode - type: variable-number-slider - default: 0.85 - min: 0 - max: 1 - step: 0.05 - -*/ - -/* @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: window-title-on - title: Display window title - description: Display title in the window frame - 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-smaller - title: Smaller font size - description: Font size in px of smaller text - type: variable-number - default: 11 - format: px - - - id: font-smallest - title: Smallest font size - description: Font size in px of smallest text - type: variable-number - default: 10 - format: px - - - id: folding-offset - title: Folding offset - description: Width of the left margin used for folding indicators - type: variable-number-slider - default: 10 - min: 0 - max: 30 - step: 1 - format: px - -*/ diff --git a/.obsidian/themes/Minimal/manifest.json b/.obsidian/themes/Minimal/manifest.json index 25e0a6a4..089eac00 100644 --- a/.obsidian/themes/Minimal/manifest.json +++ b/.obsidian/themes/Minimal/manifest.json @@ -1,7 +1,8 @@ { "name": "Minimal", - "version": "6.1.10", - "minAppVersion": "0.16.0", + "version": "7.2.1", + "minAppVersion": "1.1.9", "author": "@kepano", - "authorUrl": "https://twitter.com/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 index 6ed3c9cf..04b38906 100644 --- a/.obsidian/themes/Minimal/theme.css +++ b/.obsidian/themes/Minimal/theme.css @@ -17,7 +17,7 @@ https://github.com/kepano/obsidian-minimal MIT License -Copyright (c) 2020-2022 Stephan Ango (@kepano) +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 @@ -38,7 +38,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -body{--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: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)}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:12px;--normal-weight:400;--bold-weight:600;--link-weight:inherit;--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:small-caps;--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;--max-width:88%;--max-col-width:18em;--icon-muted:0.5;--border-width:1px;--nested-padding:1.1em;--folding-offset:10px;--list-edit-offset:1em;--list-indent:2em;--list-spacing:0.075em;--input-height:32px;--header-height:40px;--mobile-left-sidebar-width:280pt;--mobile-right-sidebar-width:240pt;--top-left-padding-y:0px;--image-muted:0.7;--spacing-p:0.75em}.mod-macos{--top-left-padding-y:24px}body{--base-h:0;--base-s:0%;--base-l:96%;--accent-h:201;--accent-s:17%;--accent-l:50%;--color-red:#d04255;--color-yellow:#e5b567;--color-green:#a8c373;--color-orange:#d5763f;--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) - 45%) );--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;--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);--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-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:var(--font-ui-medium);--font-adaptive-smaller:var(--font-ui-small);--font-adaptive-smallest:11px;--line-width-adaptive:var(--line-width);--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:"\00a0pane\00a0";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(calc(50% - var(--line-width-adaptive)/ 2 - 1px),calc(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:"\00a0max\00a0";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 .view-header:before{display:flex;align-items:flex-end;content:"\00a0wide\00a0";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:"\00a0normal";width:var(--line-width-adaptive);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}.mod-cm6 .cm-editor .cm-line{padding:0}.cm-editor .cm-content{padding-top:.5em}.markdown-source-view{color:var(--text-normal)}.markdown-reading-view>.markdown-preview-view{padding-top:18px}.markdown-source-view.mod-cm6 .cm-scroller{padding-top:18px;padding-left:0;padding-right:0}body:not(.is-mobile) .markdown-source-view.mod-cm6 .cm-gutters{position:absolute!important;z-index:0;margin-left:0}.cm-editor .cm-lineNumbers .cm-gutterElement{min-width:25px}@media (max-width:400pt){.cm-editor .cm-lineNumbers .cm-gutterElement{padding-right:4px;padding-left:8px}}.cm-editor .cm-lineNumbers .cm-gutterElement{font-variant-numeric:tabular-nums}.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;right:auto;left: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;transform:none!important;margin-left:0!important}.is-live-preview:not(.is-readable-line-width) .cm-embed-block>.edit-block-button{padding-left:0!important;margin-left:0!important;transform:none!important;right:0;left:auto;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}.theme-light .cm-link,.theme-light .cm-operator,.theme-light .cm-string,.theme-light .cm-string-2,.theme-light .language-css .token.string,.theme-light .style .token.string,.theme-light .token.entity,.theme-light .token.operator,.theme-light .token.url{background-color:transparent}.markdown-source-view,.markdown-source-view.mod-cm5,.markdown-source-view.mod-cm6{padding:0}.cm-s-obsidian .CodeMirror-code{padding-right:0}.CodeMirror-lines{padding-bottom:170px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding-left:0;padding-right:0}.cm-s-obsidian pre.HyperMD-list-line{padding-top:0}.workspace .markdown-preview-view .markdown-embed{margin:0}.workspace .markdown-preview-view .markdown-embed-content{max-height:none}.internal-embed .markdown-preview-section,.markdown-embed-title{max-width:100%}.CodeMirror-linenumber{font-size:var(--font-adaptive-small)!important;font-feature-settings:'tnum';color:var(--text-faint);padding-top:3px}.cm-s-obsidian .cm-active span.cm-link.cm-hmd-barelink.cm-formatting-link-start,.cm-s-obsidian .cm-formatting-link+span.cm-link.cm-formatting.cm-formatting-link-end,.cm-s-obsidian span.cm-footref.cm-formatting.cm-formatting-link.cm-formatting-link-end,.cm-s-obsidian span.cm-formatting-link,.cm-s-obsidian span.cm-link.cm-hmd-barelink.cm-formatting-link-start,span.cm-image-marker{color:var(--text-faint)}.cm-formatting-quote{color:var(--text-faint)!important}.markdown-preview-view blockquote,.markdown-preview-view ol,.markdown-preview-view p,.markdown-preview-view ul{margin-block-start:var(--spacing-p);margin-block-end:var(--spacing-p)}.markdown-preview-view ol ol,.markdown-preview-view ol ul,.markdown-preview-view ul ol,.markdown-preview-view ul ul{margin-block-start:0em;margin-block-end:0em}.markdown-preview-view h1,.markdown-preview-view h2,.markdown-preview-view h3,.markdown-preview-view h4,.markdown-preview-view h5,.markdown-preview-view h6{margin-block-start:1em;margin-block-end:var(--spacing-p)}.markdown-preview-view .mod-highlighted{transition:background-color .3s ease;background-color:var(--text-selection);color:inherit}.workspace-leaf-content>.view-content{--file-margins:0}.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:transparent!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){--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).is-focused .sidebar-toggle-button.mod-right,.is-hidden-frameless.theme-light:not(.minimal-light-tonal):not(.colorful-frame).is-focused .workspace-ribbon.mod-left.is-collapsed,.is-hidden-frameless.theme-light:not(.minimal-light-tonal):not(.colorful-frame).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-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) .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%}.document-search-container{margin:0 auto;max-width:var(--max-width);width:var(--line-width-adaptive)}.is-mobile .CodeMirror-foldgutter-open:after,.is-mobile span[title="Fold line"]:after{transform:translateX(-2px)!important}body.is-mobile .CodeMirror-foldgutter-folded:after,body.is-mobile span[title="Unfold line"]:after{content:"›";font-family:sans-serif;transform:translateY(-2px);transform:rotate(-90deg) translateY(2px) translateX(-.45em)}body.is-mobile .CodeMirror-foldgutter-open:after,body.is-mobile span[title="Fold line"]:after{content:"›";font-family:sans-serif;transform:rotate(360deg)}body{--ig-adjust-reading:-0.65em;--ig-adjust-edit:-1px}.markdown-rendered.show-indentation-guide li.task-list-item>ol::before,.markdown-rendered.show-indentation-guide li.task-list-item>ul::before,.markdown-rendered.show-indentation-guide li>ol::before,.markdown-rendered.show-indentation-guide li>ul::before{left:var(--ig-adjust-reading)}.markdown-source-view.mod-cm6 .cm-indent::before{transform:translateX(var(--ig-adjust-edit))}.is-mobile .markdown-rendered.show-indentation-guide li>ol::before,.is-mobile .markdown-rendered.show-indentation-guide li>ul::before{left:calc(0em + var(--ig-adjust-reading))}.is-mobile .markdown-source-view.mod-cm6 .cm-indent::before{transform:translateX(calc(2px + var(--ig-adjust-edit)))}.modal-button-container .mod-checkbox{--checkbox-radius:4px}.modal-container.mod-confirmation .modal{width:480px;min-width:0}.modal-container.mod-confirmation .modal-content{margin-top:10px}.modal-container.mod-confirmation .modal-content .setting-item{margin-top:10px}.modal-container.mod-confirmation .modal-button-container{display:flex}.modal-container.mod-confirmation .modal-button-container>.mod-warning:nth-last-child(3){background:0 0;border:none;font-weight:500;color:var(--text-error);cursor:pointer;margin-right:auto;box-shadow:none;padding-left:0;padding-right:0}.modal-container.mod-confirmation .modal-button-container>.mod-warning:nth-last-child(3):hover{text-decoration:underline}.modal-container.mod-confirmation .modal-button-container>.mod-warning:nth-last-child(2){margin-left:auto}.theme-light{--progress-outline:rgba(0,0,0,0.05)}.theme-dark{--progress-outline:rgba(255,255,255,0.04)}.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(--text-accent)}.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:transparent}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:transparent}body:not(.hider-scrollbars).styled-scrollbars ::-webkit-scrollbar-track,body:not(.native-scrollbars) ::-webkit-scrollbar-track{background-color:transparent}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{transform:none;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}body{--checkbox-size:17px;--checkbox-icon:20px;--checkbox-radius:50%;--checkbox-top:2px;--checkbox-left:0px;--checkbox-margin:0px 6px 0px -1.35em}.checkbox-square{--checkbox-size:15px;--checkbox-icon:17px;--checkbox-radius:4px;--checkbox-top:1px;--checkbox-left:0px;--checkbox-margin:0px 8px 0px -1.35em}body.minimal-strike-lists{--checklist-done-decoration:line-through}body:not(.minimal-strike-lists){--checklist-done-decoration:none;--checklist-done-color:var(--text-normal)}input[type=checkbox]{padding:0;margin:0 6px 0 0}.markdown-preview-section>.contains-task-list{padding-bottom:.5em}ul>li.task-list-item .task-list-item-checkbox{margin-left:-1.35em}.mod-cm6 .HyperMD-task-line[data-task] .task-list-item-checkbox{margin:1px 1px 1px -.4em}.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);line-height:0}.markdown-preview-view ul>li.task-list-item{text-indent:0;line-height:var(--line-height)}.is-mobile .mod-cm6 .HyperMD-task-line[data-task] .task-list-item-checkbox{margin-left:-.4em}.is-mobile .markdown-preview-view input[type=checkbox].task-list-item-checkbox{top:.2em}.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}.embed-strict .internal-embed .markdown-embed{padding:0;border:none}.embed-strict .internal-embed .markdown-embed .markdown-embed-title{display:none}.embed-strict .internal-embed:not([src*="#^"]) .markdown-embed-link{width:24px;opacity:0}.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)}.markdown-embed-title{line-height:18px;height:24px}.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:transparent;--icon-color:var(--text-accent)}.file-embed-link:hover,.markdown-embed-link:hover{color:var(--text-muted)}.markdown-preview-view .markdown-embed-content>.markdown-preview-view{max-height:none!important}.markdown-embed-content{max-height:none!important}.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,")}div>ol,div>ul{padding-inline-start:1.4em}ul>li{min-height:1.4em}ol>li{margin-left:0}ol{margin-left:0;list-style:default}.markdown-source-view.mod-cm6 .cm-content .HyperMD-list-line{margin-left:var(--list-edit-offset)!important}.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)}body:not(.is-mobile) .markdown-source-view.mod-cm6 .list-bullet:after{left:-3px}.is-mobile ul>li:not(.task-list-item)::marker{font-size:.8em}.is-mobile .markdown-rendered ol,.is-mobile .markdown-rendered ul{padding-inline-start:var(--list-indent)}.is-mobile .markdown-rendered div>ol,.is-mobile .markdown-rendered div>ul{padding-inline-start:2em}.is-mobile .el-ol>ol,.is-mobile .el-ul>ul{margin-left:0}.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 .nav-header~.search-input-container{width:calc(100% - 140px);margin-top:12px}.embedded-backlinks .nav-buttons-container{position:absolute;right:0;top:14px}.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}.markdown-source-view.mod-cm6 table{border-collapse:collapse}.markdown-preview-view table{margin-block-start:1em}.markdown-preview-view table,.markdown-source-view.mod-cm6 table{border:1px 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:4px 10px}.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: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:4px 10px}.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:0}body{--table-header-border-width:0 1px;--table-column-first-border-width:0;--table-column-last-border-width:0;--table-row-last-border-width:0}.is-live-preview .el-table{width:100%;max-width:100%}.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)}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)}.cm-s-obsidian,.markdown-preview-view,.markdown-source-view.mod-cm6.is-live-preview .cm-scroller,body{font-size:var(--font-adaptive-normal);font-weight:var(--normal-weight);line-height:var(--line-height)}.cm-s-obsidian,.cm-s-obsidian span.cm-formatting-task,.markdown-source-view,.markdown-source-view.mod-cm6 .cm-scroller{line-height:var(--line-height);font-family:var(--font-editor)}.cm-s-obsidian span.cm-formatting-task{font-family:var(--font-editor);line-height:var(--line-height)}.mod-cm6 .cm-editor .HyperMD-header-1,.mod-cm6 .cm-editor .HyperMD-header-2,.mod-cm6 .cm-editor .HyperMD-header-3,.mod-cm6 .cm-editor .HyperMD-header-4,.mod-cm6 .cm-editor .HyperMD-header-5,.mod-cm6 .cm-editor .HyperMD-header-6{padding-top:.5em}.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)}.borders-none{--divider-width:0px;--tab-outline-width:0px}:root{--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){:root{--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 tbody{clear:both;padding:.5rem 0;display:grid;grid-template-columns:var(--cards-columns);grid-column-gap:0.75rem;grid-row-gap:0.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)}.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)}.cards table.dataview tbody>tr>td:first-child a{padding:0 0 calc(var(--cards-padding)/3);display:block}.cards table.dataview tbody>tr>td:not(:first-child){font-size:90%;color:var(--text-muted)}.cards table.dataview tbody>tr>td .el-p{display:block;width:100%}.cards table.dataview tbody>tr>td>:not(.el-embed-image){padding:calc(var(--cards-padding)/3) 0}.cards table.dataview tbody>tr>td:not(:last-child):not(:first-child)>.el-p:not(.el-embed-image){border-bottom:1px solid var(--background-modifier-border);width:100%}.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:not(:last-child)>ul{border-bottom:1px solid var(--background-modifier-border)}.cards table.dataview tbody>tr>td .el-embed-image{background-color:var(--background-secondary);display:block;margin:0 calc(var(--cards-padding)/-2) 0 calc(var(--cards-padding)/-2);width:calc(100% + var(--cards-padding))}.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}.cards .dataview.table-view-table>tbody>tr>td,.cards table.dataview tbody>tr>td,.markdown-source-view.mod-cm6.cards .dataview.table-view-table>tbody>tr>td,.markdown-source-view.mod-cm6.cards table.dataview tbody>tr>td{border-bottom:none;padding:0!important;line-height:1.2;width:calc(100% - var(--cards-padding));margin:0 auto;overflow:visible!important;max-width:100%;display:flex}.links-int-on .cards table.dataview tbody>tr>td a{text-decoration:none}.markdown-source-view.mod-cm6.cards .edit-block-button{top:0}.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}.theme-light .cards table.dataview thead:before{background-image:url('data:image/svg+xml;utf8,')}.cards .el-pre+.el-lang-dataview .table-view-thead{padding-top:8px}.cards table.dataview thead{user-select:none;width:180px;display:block;float:right;position:relative;text-align:right;height:24px;padding-bottom:4px}.cards table.dataview thead:hover:before{opacity:.5;background-color:var(--background-modifier-hover)}.cards table.dataview thead:before{content:'';position:absolute;right:0;top:0;width:10px;height:16px;background-repeat:no-repeat;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);opacity:.25;background-position:center center;background-size:16px;background-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:26px 0 0 0;width:100%}.cards table.dataview thead:hover>tr{display:flex}.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)}.cards.cards-16-9{--cards-aspect-ratio:16/9}.cards.cards-1-1{--cards-aspect-ratio:1/1}.cards.cards-2-1{--cards-aspect-ratio:2/1}.cards.cards-2-3{--cards-aspect-ratio:2/3}.cards.cards-cols-1{--cards-columns:repeat(1, minmax(0, 1fr))}.cards.cards-cols-2{--cards-columns:repeat(2, minmax(0, 1fr))}.cards.cards-cover table.dataview tbody>tr>td img{object-fit:cover}.cards.cards-align-bottom table.dataview tbody>tr>td:last-child{align-items:flex-end;flex-grow:1}@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: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(--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{--sp1:#fff;--text-on-accent:var(--sp1)}.colorful-active .nav-files-container{--nav-item-background-active:var(--interactive-accent);--nav-item-color-active:var(--sp1)}.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(--sp1)}.colorful-active #calendar-container .active .dot,.colorful-active #calendar-container .day:active .dot,.colorful-active #calendar-container .today.active .dot{fill:var(--sp1)}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,')}.fancy-cursor .CodeMirror-cursor{border:none;border-left:2px solid var(--text-accent)}.cm-fat-cursor .CodeMirror-cursor{background-color:var(--text-accent);opacity:.5;width:5px}.cm-animate-fat-cursor{background-color:var(--text-accent);opacity:.5;width:5px}body .markdown-source-view.mod-cm6 .cm-content{caret-color:unset}body.fancy-cursor .markdown-source-view.mod-cm6 .cm-content,body.fancy-cursor .mod-cm6 .cm-line{caret-color:var(--text-accent)}.fancy-cursor input.prompt-input{caret-color:var(--text-accent)}.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:transparent;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 50ms}.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 50ms}.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:transparent;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 .image-embed img:not(.emoji):not([width]),.full-width-media .markdown-preview-view .image-embed img:not(.emoji):not([width]),.full-width-media .markdown-preview-view audio,.full-width-media .markdown-preview-view video{width:100%}.table-small table:not(.calendar){--table-text-size:85%}.table-tiny table:not(.calendar){--table-text-size:75%}.row-alt table:not(.calendar) tbody>tr>td:first-child,.row-alt table:not(.calendar) th:first-child,.row-alt.markdown-source-view.mod-cm6 td:first-child,.row-alt.markdown-source-view.mod-cm6 th:first-child,.row-hover th:first-child,.table-lines table:not(.calendar) tbody>tr>td:first-child,.table-lines table:not(.calendar) thead>tr>th:first-child,.table-lines.markdown-source-view.mod-cm6 td:first-child,.table-lines.markdown-source-view.mod-cm6 th:first-child{padding-left:10px}.row-alt{--table-row-alt-background:var(--background-table-rows)}.col-alt{--table-column-alt-background:var(--background-table-rows)}.table-tabular table:not(.calendar){font-variant-numeric:tabular-nums}.table-lines{--table-border-width:1px;--table-header-border-width:1px;--table-column-first-border-width:1px;--table-column-last-border-width:1px;--table-row-last-border-width:1px}.table-nowrap{--table-white-space:nowrap}.table-nowrap .table-wrap,.trim-cols{--table-white-space:normal}.table-numbers table:not(.calendar){counter-reset:section}.table-numbers table:not(.calendar)>thead>tr>th:first-child::before{content:" ";padding-right:.5em;display:inline-block;min-width:2em}.table-numbers table:not(.calendar)>tbody>tr>td:first-child::before{counter-increment:section;content:counter(section) " ";text-align:center;padding-right:.5em;display:inline-block;min-width:2em;color:var(--text-faint);font-variant-numeric:tabular-nums}.row-lines .table-view-table>tbody>tr>td,.row-lines table:not(.calendar) tbody>tr>td{border-bottom:1px solid var(--background-modifier-border)}.row-lines table:not(.calendar) tbody>tr:last-child>td{border-bottom:none}.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:1px 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% )}.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-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$="#invert"]{background-color:var(--background-primary)}.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)}div:not(.el-embed-image)+.el-embed-image{margin-top:1rem}.el-embed-image{margin-top:.5rem}.contextual-typography .markdown-preview-section>.el-embed-image>p{margin-block-start:0;margin-block-end:0}.img-grid .markdown-preview-section .el-embed-image img:not(.emoji):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 .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}}body:not(.zoom-off) .view-content img{max-width:100%;cursor:zoom-in}body:not(.zoom-off) .view-content img:active{cursor:zoom-out}body:not(.zoom-off) .view-content .markdown-preview-view img[referrerpolicy=no-referrer]:active{background-color:var(--background-primary);padding:10px}body:not(.zoom-off) .view-content .image-embed:active,body:not(.zoom-off) .view-content .markdown-preview-view img[referrerpolicy=no-referrer]:active{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) .view-content .image-embed: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) .view-content .image-embed: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}.labeled-nav.is-fullscreen:not(.colorful-frame){--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:transparent}.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:not(.is-grabbing):not(.is-fullscreen).is-hidden-frameless .mod-top .workspace-tab-header-container{-webkit-app-region:no-drag}.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:transparent}.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:transparent}.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{--table-max-width:var(--max-width);--left-margin-table:auto}.maximize-tables-auto{--table-max-width:auto;--left-margin-table:max( calc(50% + var(--folding-offset)/2 - var(--line-width-adaptive)/2), calc(50% + var(--folding-offset)/2 - var(--max-width)/2) )}.maximize-tables-auto.table-100,.maximize-tables-auto.table-max,.maximize-tables-auto.table-wide{--table-max-width:var(--max-width);--left-margin-table:auto}.maximize-tables-off{--table-max-width:auto;--left-margin-table:max( calc(50% + var(--folding-offset)/2 - var(--line-width-adaptive)/2), calc(50% + var(--folding-offset)/2 - var(--max-width)/2))}.maximize-tables-off.table-wide{--left-margin-table:max( calc(50% + var(--folding-offset)/2 - var(--line-width-wide)/2), calc(50% + var(--folding-offset)/2 - var(--max-width)/2))}.maximize-tables-off.table-max{--left-margin-table:calc(50% + var(--folding-offset)/2 - var(--max-width)/2)}.maximize-tables-off.table-100{--left-margin-table:0}.contextual-typography .markdown-preview-view.markdown-preview-view.is-readable-line-width .markdown-preview-sizer{display:flex;flex-direction:column;width:100%;max-width:100%;padding-left:0;padding-top:0}.contextual-typography .markdown-preview-view.is-readable-line-width .markdown-preview-sizer{align-items:center;padding-left:0}.contextual-typography .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div{margin-left:auto;margin-right:auto;max-width:var(--max-width);width:var(--line-width-adaptive)}.contextual-typography .markdown-preview-view.is-readable-line-width .markdown-embed .markdown-preview-sizer>div{max-width:100%}.contextual-typography .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-dataview,.contextual-typography .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-dataviewjs,.contextual-typography .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-table{width:100%;max-width:100%;overflow-x:auto}.el-lang-dataview .block-language-dataview .contains-task-list,.el-lang-dataviewjs .block-language-dataviewjs .contains-task-list{max-width:100%}.is-readable-line-width .el-lang-dataview .dataview.table-view-table,.is-readable-line-width .el-lang-dataviewjs .dataview.table-view-table,.is-readable-line-width .el-table table{width:var(--table-max-width);max-width:var(--line-width-adaptive);margin:0 auto .5rem}.markdown-embed .el-lang-dataview .dataview.table-view-table,.markdown-embed .el-table table{width:100%}.markdown-preview-view.table-100.is-readable-line-width .el-lang-dataview .dataview.table-view-table,.markdown-preview-view.table-100.is-readable-line-width .el-lang-dataviewjs .dataview.table-view-table,.markdown-preview-view.table-100.is-readable-line-width .el-table table,.table-100 .el-lang-dataview .dataview.table-view-table,.table-100 .el-lang-dataviewjs .dataview.table-view-table,.table-100 .el-table table{max-width:100%!important;width:100%!important}.markdown-preview-view.table-max .el-lang-dataview .dataview.table-view-table,.markdown-preview-view.table-max .el-lang-dataviewjs .dataview.table-view-table,.markdown-preview-view.table-max .el-table table,.table-max .el-lang-dataview .dataview.table-view-table,.table-max .el-lang-dataviewjs .dataview.table-view-table,.table-max .el-table table{max-width:100%!important}.markdown-preview-view.is-readable-line-width.table-wide .el-lang-dataview .dataview.table-view-table,.markdown-preview-view.is-readable-line-width.table-wide .el-lang-dataviewjs .dataview.table-view-table,.markdown-preview-view.is-readable-line-width.table-wide .el-table table,.table-wide .markdown-preview-view.is-readable-line-width .el-lang-dataview .dataview.table-view-table,.table-wide .markdown-preview-view.is-readable-line-width .el-lang-dataviewjs .dataview.table-view-table,.table-wide .markdown-preview-view.is-readable-line-width .el-table table{max-width:var(--line-width-wide)!important}.table-100 .dataview.table-view-table td:first-child,.table-100 .dataview.table-view-table th:first-child,.table-100 .markdown-source-view.mod-cm6 td:first-child,.table-100 .markdown-source-view.mod-cm6 th:first-child,.table-100 table td:first-child,.table-100 table th:first-child{padding-left:20px!important}.table-100 .dataview.table-view-table td:last-child,.table-100 .dataview.table-view-table th:last-child,.table-100 table td:last-child,.table-100 table th:last-child{padding-right:20px}.contextual-typography .chart-max.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-embed-image,.contextual-typography .chart-max.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-iframe,.contextual-typography .chart-max.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-chart,.contextual-typography .chart-max.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-leaflet,.contextual-typography .iframe-max.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-embed-image,.contextual-typography .iframe-max.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-iframe,.contextual-typography .iframe-max.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-chart,.contextual-typography .iframe-max.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-leaflet,.contextual-typography .img-max.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-embed-image,.contextual-typography .img-max.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-iframe,.contextual-typography .img-max.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-chart,.contextual-typography .img-max.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-leaflet,.contextual-typography .map-max.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-embed-image,.contextual-typography .map-max.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-iframe,.contextual-typography .map-max.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-chart,.contextual-typography .map-max.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-leaflet,.contextual-typography.chart-max .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-embed-image,.contextual-typography.chart-max .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-iframe,.contextual-typography.chart-max .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-chart,.contextual-typography.chart-max .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-leaflet,.contextual-typography.iframe-max .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-embed-image,.contextual-typography.iframe-max .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-iframe,.contextual-typography.iframe-max .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-chart,.contextual-typography.iframe-max .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-leaflet,.contextual-typography.img-max .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-embed-image,.contextual-typography.img-max .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-iframe,.contextual-typography.img-max .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-chart,.contextual-typography.img-max .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-leaflet,.contextual-typography.map-max .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-embed-image,.contextual-typography.map-max .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-iframe,.contextual-typography.map-max .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-chart,.contextual-typography.map-max .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-leaflet{width:100%}.contextual-typography .markdown-preview-view.is-readable-line-width.chart-wide .markdown-preview-sizer>.el-lang-chart,.contextual-typography .markdown-preview-view.is-readable-line-width.iframe-wide .markdown-preview-sizer>.el-iframe,.contextual-typography .markdown-preview-view.is-readable-line-width.img-wide .markdown-preview-sizer>.el-embed-image,.contextual-typography .markdown-preview-view.is-readable-line-width.map-wide .markdown-preview-sizer>.el-lang-leaflet,.contextual-typography.chart-wide .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-chart,.contextual-typography.iframe-wide .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-iframe,.contextual-typography.img-wide .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-embed-image,.contextual-typography.map-wide .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-leaflet{width:var(--line-width-wide)}.contextual-typography .markdown-preview-view.iframe-100 .markdown-preview-sizer>.el-iframe,.contextual-typography .markdown-preview-view.img-100 .markdown-preview-sizer>.el-embed-image,.contextual-typography .markdown-preview-view.is-readable-line-width.chart-100 .markdown-preview-sizer>.el-lang-chart,.contextual-typography .markdown-preview-view.is-readable-line-width.map-100 .markdown-preview-sizer>.el-lang-leaflet,.contextual-typography.chart-100 .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-chart,.contextual-typography.iframe-100 .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-iframe,.contextual-typography.img-100 .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-embed-image,.contextual-typography.map-100 .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-leaflet{width:100%;max-width:100%}.is-readable-line-width .el-lang-dataview .dataview.table-view-table,.is-readable-line-width .el-lang-dataviewjs .dataview.table-view-table,.is-readable-line-width .el-table table{max-width:calc(var(--line-width-adaptive) - var(--folding-offset));margin-left:var(--left-margin-table)!important}.chart-100 .el-lang-chart,.chart-max .el-lang-chart,.chart-wide .el-lang-chart,.embed-strict .el-embed-page p,.iframe-100 .el-iframe,.iframe-max .el-iframe,.iframe-wide .el-iframe,.img-100 .el-embed-image,.img-max .el-embed-image,.img-wide .el-embed-image,.map-100 .el-lang-leaflet,.map-max .el-lang-leaflet,.map-wide .el-lang-leaflet,.table-100 .el-lang-dataview,.table-100 .el-lang-dataviewjs,.table-100 .el-table,.table-max .el-lang-dataview,.table-max .el-lang-dataviewjs,.table-max .el-table,.table-wide .el-lang-dataview,.table-wide .el-lang-dataviewjs,.table-wide .el-table{--folding-offset:0px}.chart-max .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-chart,.chart-max.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-chart,.img-max .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>.image-embed,.img-max .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>img,.img-max.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>.image-embed,.img-max.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>img,.map-max .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-leaflet,.map-max.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-leaflet,.table-max .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block.cm-table-widget>div:not(.edit-block-button),.table-max .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataview,.table-max .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataviewjs,.table-max .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-table-widget>table,.table-max.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block.cm-table-widget>div:not(.edit-block-button),.table-max.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataview,.table-max.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataviewjs,.table-max.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-table-widget>table{width:var(--max-width)!important;max-width:var(--max-width)!important;transform:none!important;padding-left:0;margin:0 auto!important}.chart-wide .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-chart,.chart-wide.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-chart,.img-wide .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>.image-embed,.img-wide .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>img,.img-wide.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>.image-embed,.img-wide.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>img,.map-wide .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-leaflet,.map-wide.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-leaflet,.table-wide .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block.cm-table-widget>div:not(.edit-block-button),.table-wide .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataview,.table-wide .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataviewjs,.table-wide .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-table-widget>table,.table-wide.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block.cm-table-widget>div:not(.edit-block-button),.table-wide.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataview,.table-wide.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataviewjs,.table-wide.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-table-widget>table{width:var(--line-width-wide)!important;max-width:var(--max-width);transform:none!important;padding-left:0;margin:0 auto!important}.chart-100 .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-chart,.chart-100.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-chart,.img-100 .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>.image-embed,.img-100 .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>img,.img-100.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>.image-embed,.img-100.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-content>img,.map-100 .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-leaflet,.map-100.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .block-language-leaflet,.table-100 .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block.cm-table-widget>div:not(.edit-block-button),.table-100 .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataview,.table-100 .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataviewjs,.table-100 .markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width table,.table-100.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block.cm-table-widget>div:not(.edit-block-button),.table-100.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataview,.table-100.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.block-language-dataviewjs,.table-100.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width table{width:100%!important;max-width:100%!important;transform:none!important;margin:0 auto!important;padding-left:0}@media (max-width:400pt){.markdown-preview-view .el-lang-dataview td:first-child .markdown-preview-view .el-lang-dataviewjs th:first-child,.markdown-preview-view .el-lang-dataview th:first-child,.markdown-preview-view .el-lang-dataviewjs td:first-child,.markdown-preview-view .el-table td:first-child,.markdown-preview-view .el-table th:first-child{padding-left:6vw}.markdown-preview-view .el-lang-dataview td:last-child,.markdown-preview-view .el-lang-dataview th:last-child,.markdown-preview-view .el-lang-dataviewjs td:last-child,.markdown-preview-view .el-lang-dataviewjs th:last-child,.markdown-preview-view .el-table td:last-child,.markdown-preview-view .el-table th:last-child{padding-right:6vw}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-dataview .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-dataviewjs,.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-table{padding-left:0;padding-right:0}.markdown-preview-view .table-view-table table,.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-dataview .markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-lang-dataviewjs,.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.el-table{width:100%}}@media (max-width:400pt){.is-mobile{--folding-offset:0px}}.markdown-preview-view.wide,.markdown-source-view.wide{--line-width-adaptive:var(--line-width-wide)}.markdown-preview-view.max,.markdown-source-view.max{--line-width-adaptive:300em;--line-width-wide:300em}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer{max-width:var(--max-width);width:var(--line-width-adaptive);padding-left:0}.markdown-source-view.is-readable-line-width .CodeMirror{padding-left:0;padding-right:0;margin:0 auto 0 auto;width:var(--line-width-adaptive);max-width:var(--max-width)}.markdown-reading-view .markdown-preview-view:not(.is-readable-line-width)>.markdown-preview-sizer{max-width:var(--max-width);margin:0 auto;padding-left:var(--folding-offset)}.is-mobile .markdown-source-view.mod-cm6 .cm-gutters{padding-right:0}.minimal-readable-off .view-header-title-container{width:var(--max-width)}.markdown-source-view.mod-cm6:not(.is-readable-line-width) .cm-contentContainer,.markdown-source-view.mod-cm6:not(.is-readable-line-width) .inline-title{max-width:var(--max-width);margin:0 0 0 calc(50% - var(--max-width)/ 2)!important;padding-left:var(--folding-offset)}.markdown-source-view.mod-cm6 .cm-content>.cm-embed-block[contenteditable=false]{overflow-x:auto}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div,.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div[data-block-language=dataview],.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div[data-block-language=dataviewjs]{padding-left:var(--folding-offset)}.internal-embed>.markdown-embed,.popover:not(.hover-editor){--folding-offset:0}.markdown-source-view.mod-cm6.is-readable-line-width .inline-title{width:calc(var(--line-width-adaptive) - var(--folding-offset));max-width:calc(var(--max-width) - var(--folding-offset));margin-right:auto;margin-left:max(calc(50% + var(--folding-offset) - var(--line-width-adaptive)/ 2),calc(50% + var(--folding-offset) - var(--max-width)/ 2))!important}.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%}.markdown-source-view.mod-cm6.is-readable-line-width .cm-line:not(.HyperMD-table-row){max-width:calc(var(--max-width) - var(--folding-offset))}.is-live-preview.is-readable-line-width .cm-embed-block table.dataview,.is-live-preview.is-readable-line-width.embed-strict .internal-embed .markdown-preview-sizer,.is-readable-line-width .block-language-dataview table.dataview,.is-readable-line-width .block-language-dataviewjs table.dataview,.markdown-preview-view.is-readable-line-width .dataview.result-group .contains-task-list,.markdown-source-view.is-live-preview.is-readable-line-width table.NLT__table{width:100%;max-width:100%;transform:none;margin-left:auto!important}.markdown-source-view.mod-cm6.is-readable-line-width .cm-line.HyperMD-list-line .internal-embed.image-embed,.markdown-source-view.mod-cm6.is-readable-line-width .cm-line>.internal-embed{margin-left:0!important}.markdown-source-view.mod-cm6.is-readable-line-width .cm-content>.image-embed,.markdown-source-view.mod-cm6.is-readable-line-width .cm-content>img:not([width]),.markdown-source-view.mod-cm6.is-readable-line-width .cm-embed-block.cm-callout>.callout,.markdown-source-view.mod-cm6.is-readable-line-width .cm-html-embed,.markdown-source-view.mod-cm6.is-readable-line-width .cm-line,.markdown-source-view.mod-cm6.is-readable-line-width .cm-line.HyperMD-codeblock,.markdown-source-view.mod-cm6.is-readable-line-width .cm-line.HyperMD-quote,.markdown-source-view.mod-cm6.is-readable-line-width .embedded-backlinks,.markdown-source-view.mod-cm6.is-readable-line-width .internal-embed,.markdown-source-view.mod-cm6.is-readable-line-width table{width:calc(var(--line-width-adaptive) - var(--folding-offset));max-width:calc(var(--max-width) - var(--folding-offset));margin-right:auto;margin-left:max(calc(50% + var(--folding-offset) - var(--line-width-adaptive)/ 2),calc(50% + var(--folding-offset) - var(--max-width)/ 2))!important}.markdown-source-view.mod-cm6.is-readable-line-width .cm-line>.cm-html-embed{--folding-offset:0}.markdown-source-view.mod-cm6.is-readable-line-width .cm-content>img[width]{max-width:var(--max-width);margin-left:max(calc(50% + var(--folding-offset) - var(--line-width-adaptive)/ 2),calc(50% + var(--folding-offset) - var(--max-width)/ 2))!important}.markdown-source-view.mod-cm6.is-readable-line-width .cm-embed-block>div,.markdown-source-view.mod-cm6.is-readable-line-width .cm-embed-block>mjx-container,.markdown-source-view.mod-cm6.is-readable-line-width .mod-empty{width:calc(var(--line-width-adaptive) - var(--folding-offset));max-width:calc(var(--max-width) - var(--folding-offset));margin-right:auto;margin-left:max(calc(50% + var(--folding-offset) - var(--line-width-adaptive)/ 2),calc(50% + var(--folding-offset) - var(--max-width)/ 2))!important}.markdown-source-view.mod-cm6.is-readable-line-width .HyperMD-list-line{width:calc(var(--line-width-adaptive) - var(--folding-offset) - var(--list-edit-offset));max-width:calc(var(--max-width) - var(--folding-offset) - var(--list-edit-offset));margin-right:auto;margin-left:max(calc(50% + var(--list-edit-offset) + var(--folding-offset) - var(--line-width-adaptive)/ 2),calc(50% + var(--list-edit-offset) + var(--folding-offset) - var(--max-width)/ 2))!important}body:not(.table-100):not(.table-max):not(.table-wide) .is-live-preview.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .dataview.dataview-container>.contains-task-list,body:not(.table-100):not(.table-max):not(.table-wide) .is-live-preview.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .dataview.list-view-ul,body:not(.table-100):not(.table-max):not(.table-wide) .is-live-preview.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .dataview.result-group>.contains-task-list,body:not(.table-100):not(.table-max):not(.table-wide) .is-live-preview.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .dataview>h4{max-width:100%;margin-right:auto;margin-left:auto;transform:none}body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .block-language-dataview h4,body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .block-language-dataview>h4,body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .block-language-dataviewjs h4,body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .block-language-dataviewjs>h1,body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .block-language-dataviewjs>h2,body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .block-language-dataviewjs>h3,body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .block-language-dataviewjs>h4,body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .block-language-dataviewjs>p,body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .dataview.dataview-container>.contains-task-list,body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .dataview.dataview-error,body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .dataview.list-view-ul,body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view.is-readable-line-width:not(.table-100):not(.table-max):not(.table-wide) .dataview.result-group{width:calc(var(--line-width-adaptive) - var(--folding-offset));max-width:var(--max-width);margin-right:auto;margin-left:auto}.is-live-preview.is-readable-line-width .block-language-dataviewjs h4,.is-live-preview.is-readable-line-width .dataview .contains-task-list,.is-live-preview.is-readable-line-width .dataview.dataview-container .contains-task-list,.is-live-preview.is-readable-line-width .dataview.list-view-ul,.is-live-preview.is-readable-line-width .dataview>h4{--folding-offset:10px;width:calc(var(--line-width-adaptive) - var(--folding-offset));max-width:calc(100% - var(--folding-offset));transform:translateX(calc(var(--folding-offset)/2));margin-right:auto;margin-left:auto}.table-100 .is-live-preview.is-readable-line-width .dataview .contains-task-list,.table-100 .is-live-preview.is-readable-line-width .dataview.list-view-ul,.table-100 .is-live-preview.is-readable-line-width .dataview>h4,.table-100.is-live-preview.is-readable-line-width .dataview .contains-task-list,.table-100.is-live-preview.is-readable-line-width .dataview.list-view-ul,.table-100.is-live-preview.is-readable-line-width .dataview>h4{max-width:calc(var(--max-width) - var(--folding-offset))}.markdown-preview-view.is-readable-line-width .block-language-dataview h4,.markdown-preview-view.is-readable-line-width .block-language-dataview>h4,.markdown-preview-view.is-readable-line-width .block-language-dataviewjs h4,.markdown-preview-view.is-readable-line-width .block-language-dataviewjs>h1,.markdown-preview-view.is-readable-line-width .block-language-dataviewjs>h2,.markdown-preview-view.is-readable-line-width .block-language-dataviewjs>h3,.markdown-preview-view.is-readable-line-width .block-language-dataviewjs>h4,.markdown-preview-view.is-readable-line-width .block-language-dataviewjs>p,.markdown-preview-view.is-readable-line-width .dataview .contains-task-list,.markdown-preview-view.is-readable-line-width .dataview.dataview-error,.markdown-preview-view.is-readable-line-width .dataview.list-view-ul,.markdown-preview-view.is-readable-line-width .dataview.result-group{--folding-offset:10px;width:calc(var(--line-width-adaptive) - var(--folding-offset));max-width:calc(var(--max-width) - var(--folding-offset));margin-left:auto;margin-right:max(calc(50% - var(--line-width-adaptive)/ 2),calc(50% - var(--max-width)/ 2))}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-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:transparent}.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:transparent}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: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:transparent}.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)}.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:transparent}.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:transparent}.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) .tree-item-inner{white-space:nowrap;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:0.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:0.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:0.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:0.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:0.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:0.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{padding-top:var(--size-4-4)}.is-mobile .markdown-source-view.mod-cm6 .cm-gutters{margin-left:0}.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}.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}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-adaptive);max-width:var(--max-width);margin:0 auto}@media (max-width:400pt){.is-mobile .modal.mod-sync-log{width:100vw;height:100vh;max-height:calc(100vh - 32px);box-shadow:0 -32px 0 32px var(--background-primary);bottom:0;padding-bottom:10px}}.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}#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);--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)}.mod-root #calendar-container{width:var(--line-width-adaptive);max-width:var(--max-width);margin:0 auto;padding:0}#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 td{padding:2px 0 0 0;border-radius:var(--radius-m);cursor:var(--cursor);border:1px solid transparent;transition:none}#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:var(--font-adaptive-normal);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(--text-accent)}#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{cursor:var(--cursor)}#calendar-container .day.adjacent-month{color:var(--text-faint);opacity:1}#calendar-container .day{padding:2px 4px 4px;font-size:calc(var(--font-adaptive-normal) - 2px)}#calendar-container .active,#calendar-container .active.today,#calendar-container .day:hover,#calendar-container .week-num:hover{background-color:var(--color-background-day-active)}#calendar-container .active .dot{fill:var(--text-faint)}#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: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: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: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}.el-hr hr{margin:1rem 0}.el-p+.el-h1,.el-p+.el-h2{margin-top:.75rem}.el-h1+.el-h1,.el-h1+.el-h2,.el-h2+.el-h2,.el-hr+.el-h1,.el-hr+.el-h2{margin-top:0}.el-lang-dataview+.el-p,.el-lang-dataviewjs+.el-p,.el-ol+.el-lang-dataview,.el-ol+.el-lang-dataviewjs,.el-ol+.el-table,.el-p+.el-table,.el-p:not(.el-lang-dataview)+.el-lang-dataview,.el-p:not(.el-lang-dataviewjs)+.el-lang-dataviewjs,.el-ul+.el-lang-dataview,.el-ul+.el-lang-dataviewjs,.el-ul+.el-table{margin-top:var(--spacing-p)}.el-div+.el-h1,.el-embed-image+.el-p:not(.el-embed-image),.el-iframe+.el-p,.el-lang-leaflet,.el-lang-leaflet+*,.el-p+.el-iframe,.el-p:not(.el-embed-image)+.el-embed-image,.el-pre+.el-h1{margin-top:1rem}.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:1px solid var(--background-modifier-border);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 .table-view-table>tbody>tr>td,.markdown-source-view.mod-cm6 .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:transparent!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{margin-top:16px;background-color:transparent}.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:transparent;font-size:var(--table-text-size);border-radius:var(--radius-m);padding:15px 0}body div.dataview-error-box p{margin-block-start:0;margin-block-end:0;color:var(--text-faint)}.markdown-source-view div.dataview-error-box{margin-top:15px}.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:transparent;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: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:transparent!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:transparent;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:transparent;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}.hider-ribbon:not(.is-mobile) .workspace-ribbon-collapse-btn{display:none}.hider-ribbon:not(.is-mobile) .workspace-ribbon.mod-right{pointer-events:none}.hider-ribbon:not(.is-mobile) .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:flex!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:not(.is-mobile) .side-dock-actions,.hider-ribbon:not(.is-mobile) .side-dock-settings{flex-direction:row;display:flex;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:not(.is-mobile) .side-dock-actions{padding-left:8px}.hider-ribbon:not(.is-mobile) .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:not(.is-mobile) .workspace-ribbon.mod-left .side-dock-ribbon-action{display:flex;margin:7px 0 8px}.hider-ribbon:not(.is-mobile) .workspace-ribbon.mod-left:hover{opacity:1;transition:opacity .25s ease-in-out}.hider-ribbon:not(.is-mobile) .workspace-ribbon.mod-left .workspace-ribbon-collapse-btn{opacity:0}.hider-ribbon:not(.is-mobile) .workspace-split.mod-left-split{margin:0}.hider-ribbon:not(.is-mobile) .workspace-leaf-content .item-list{padding-bottom:40px}.hider-ribbon .workspace-ribbon{padding:0}.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{--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{font-size:var(--font-adaptive-small);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:calc(var(--font-adaptive-normal) - 2px);line-height:1.3}body .kanban-plugin__item-input-actions button,body .kanban-plugin__lane-input-actions button{font-size:var(--font-adaptive-small)}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:0 0;color:var(--text-normal);font-size:calc(var(--font-adaptive-normal) - 2px);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{padding:6px 8px;border-radius:6px;border:1px solid var(--background-modifier-border);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: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: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{font-size:var(--font-adaptive-small);color:var(--text-muted);font-weight:400;background:0 0;height:32px}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{background: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-items{border:var(--kanban-border) solid var(--background-modifier-border);border-bottom:none;padding:0 4px;border-top-left-radius:8px;border-top-right-radius:8px;margin:0;background-color:var(--background-secondary)}body .kanban-plugin__item-input-wrapper{border:0;padding-top:1px;flex-grow:1}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);border-top:none;border-bottom-left-radius:8px;border-bottom-right-radius:8px}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}.mod-macos.minimal-focus-mode .mod-root .map-100 .markdown-preview-sizer.markdown-preview-section .el-lang-leaflet:nth-child(3) .leaflet-top{top:calc(18px + var(--ewt-traffic-light-y));transition:top .1s linear}body .leaflet-container{background-color:var(--background-secondary);font-family:var(--font-interface)}.map-100 .markdown-preview-sizer.markdown-preview-section .el-lang-leaflet:nth-child(3){margin-top:-16px}.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:transparent;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: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: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:0 0;box-shadow:none;color:var(--text-muted)}body .NLT__button:active,body .NLT__button:focus,body .NLT__button:hover{background:0 0;color:var(--text-normal);box-shadow:none}.NLT__app .NLT__button{background: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: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:transparent;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: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:transparent}.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:"\00a0›"!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:transparent}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] .view-content{padding:var(--size-4-4) 0 var(--size-4-4) var(--folding-offset)}.workspace-leaf-content[data-type=style-settings] .view-content>div{width:var(--line-width-adaptive);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}.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)}.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)}.style-settings-export:hover,.style-settings-import:hover{background-color:var(--background-modifier-hover);color:var(--text-normal);cursor:var(--cursor)}.themed-color-wrapper>div+div{margin-top:0;margin-left:6px}.theme-light .themed-color-wrapper>.theme-light{background-color:transparent}.theme-light .themed-color-wrapper>.theme-dark{background-color:rgba(0,0,0,.8)}.theme-dark .themed-color-wrapper>.theme-dark{background-color:transparent}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: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)}.theme-dark.minimal-atom-dark{--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:#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-catppuccin-light{--color-red:#E64553;--color-orange:#FE640C;--color-yellow:#DF8E1D;--color-green:#40A02B;--color-purple:#8938EF;--color-pink:#EA77CB;--color-cyan:#17929A;--color-blue:#2166F6}.theme-dark.minimal-catppuccin-dark{--color-red:#EB999C;--color-orange:#EFA076;--color-yellow:#E5C890;--color-green:#A6D18A;--color-purple:#CA9EE6;--color-pink:#F4B9E5;--color-cyan:#81C8BE;--color-blue:#8CAAEE}.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:#ff5555;--color-yellow:#f1fa8c;--color-green:#50fa7b;--color-orange:#ffb86c;--color-purple:#bd93f9;--color-pink:#ff79c6;--color-cyan:#8be9fd;--color-blue:#6272a4}.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-light.minimal-everforest-light{--color-red:#f85552;--color-orange:#f57d26;--color-yellow:#dfa000;--color-green:#8da101;--color-purple:#df69ba;--color-pink:#df69ba;--color-cyan:#35a77c;--color-blue:#7fbbb3}.theme-dark.minimal-everforest-dark{--color-red:#e67e80;--color-orange:#e69875;--color-yellow:#dbbc7f;--color-green:#a7c080;--color-purple:#d699b6;--color-pink:#d699b6;--color-cyan:#83c092;--color-blue:#7fbbb3}.theme-light.minimal-everforest-light{--base-h:46;--base-s:87%;--base-l:94%;--accent-h:81;--accent-s:37%;--accent-l:52%;--bg1:#FDF7E3;--bg2:#EEEAD5;--bg3:rgba(206,207,182,.5);--ui1:#dfdbc8;--ui2:#bdc3af;--ui3:#bdc3af;--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:#EEEAD5}.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:#323D44;--bg2:#2A343A;--bg3:#414C54;--bg3:rgba(78,91,100,0.5);--ui1:#404c51;--ui2:#4A555C;--ui3:#525c62;--tx1:#d3c6aa;--tx2:#9da9a0;--tx3:#7a8478;--ax1:#A7C080;--ax2:#c7cca3;--ax3:#93b259;--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-dark.minimal-gruvbox-dark,.theme-light.minimal-gruvbox-light{--color-red:#cc241d;--color-yellow:#d79921;--color-green:#98971a;--color-orange:#d65d0e;--color-purple:#b16286;--color-pink:#b16286;--color-cyan:#689d6a;--color-blue:#458588}.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:#ff3b31;--color-yellow:#ffcc00;--color-green:#2acd41;--color-orange:#ff9502;--color-purple:#b051de;--color-pink:#ff2e55;--color-cyan:#02c7be;--color-blue:#027aff}.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:#BF616A;--color-yellow:#EBCB8B;--color-green:#A3BE8C;--color-orange:#D08770;--color-purple:#B48EAD;--color-pink:#B48EAD;--color-cyan:#88C0D0;--color-blue:#81A1C1}.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-dark.minimal-solarized-dark,.theme-light.minimal-solarized-light{--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:#FF306C;--color-yellow:#FFD500;--color-green:#4BBF5E;--color-orange:#ff9502;--color-purple:#b051de;--color-pink:#ff2e55;--color-cyan:#49AEA4}.theme-light.minimal-things-light{--color-blue:#1b61c2}.theme-dark.minimal-things-dark{--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} +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;--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-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);--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) - 45%) );--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;--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);--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-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:"\00a0pane\00a0";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(calc(50% - var(--line-width)/ 2 - 1px),calc(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:"\00a0max\00a0";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 .view-header:before{display:flex;align-items:flex-end;content:"\00a0wide\00a0";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:"\00a0normal";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}.mod-cm6 .cm-editor .cm-line{padding-left:0;padding-right:0}.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:0.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-lineNumbers .cm-gutterElement{font-variant-numeric:tabular-nums}.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:transparent!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){--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).is-focused .sidebar-toggle-button.mod-right,.is-hidden-frameless.theme-light:not(.minimal-light-tonal):not(.colorful-frame).is-focused .workspace-ribbon.mod-left.is-collapsed,.is-hidden-frameless.theme-light:not(.minimal-light-tonal):not(.colorful-frame).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-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)}.is-mobile .CodeMirror-foldgutter-open:after,.is-mobile span[title="Fold line"]:after{transform:translateX(-2px)!important}body.is-mobile .CodeMirror-foldgutter-folded:after,body.is-mobile span[title="Unfold line"]:after{content:"›";font-family:sans-serif;transform:translateY(-2px);transform:rotate(-90deg) translateY(2px) translateX(-.45em)}body.is-mobile .CodeMirror-foldgutter-open:after,body.is-mobile span[title="Fold line"]:after{content:"›";font-family:sans-serif;transform:rotate(360deg)}body{--ig-adjust-reading:-0.95em;--ig-adjust-edit:2px}.markdown-rendered.show-indentation-guide li.task-list-item>ol::before,.markdown-rendered.show-indentation-guide li.task-list-item>ul::before,.markdown-rendered.show-indentation-guide li>ol::before,.markdown-rendered.show-indentation-guide li>ul::before{left:var(--ig-adjust-reading)}.markdown-source-view.mod-cm6 .cm-indent::before{transform:translateX(var(--ig-adjust-edit))}.is-mobile .markdown-rendered.show-indentation-guide li>ol::before,.is-mobile .markdown-rendered.show-indentation-guide li>ul::before{left:calc(0em + var(--ig-adjust-reading))}.is-mobile .markdown-source-view.mod-cm6 .cm-indent::before{transform:translateX(calc(2px + var(--ig-adjust-edit)))}.modal-button-container .mod-checkbox{--checkbox-radius:4px}.modal-container.mod-confirmation .modal{width:480px;min-width:0}.theme-light{--progress-outline:rgba(0,0,0,0.05)}.theme-dark{--progress-outline:rgba(255,255,255,0.04)}body{--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:transparent}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:transparent}body:not(.hider-scrollbars).styled-scrollbars ::-webkit-scrollbar-track,body:not(.native-scrollbars) ::-webkit-scrollbar-track{background-color:transparent}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{transform:none;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:transparent}.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);line-height:0}.markdown-preview-view ul>li.task-list-item{text-indent:0;line-height:var(--line-height)}.is-mobile .mod-cm6 .HyperMD-task-line[data-task] .task-list-item-checkbox{margin-inline-start:-.4em}.is-mobile .markdown-preview-view input[type=checkbox].task-list-item-checkbox{top:.2em}.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 .el-embed-heading.el-p>p{margin-block-start:0;margin-block-end:0}.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:transparent;--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,")}div>ol,div>ul{padding-inline-start:1.4em}ul>li{min-height:1.4em}ol>li{margin-inline-start:0}ol{margin-inline-start:0;list-style:default}body{--adaptive-list-edit-offset:var(--list-edit-offset)}.is-rtl{--adaptive-list-edit-offset:calc(var(--list-edit-offset)*-1)}.markdown-source-view.mod-cm6 .cm-content .HyperMD-list-line{transform:translateX(var(--adaptive-list-edit-offset))}.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 .markdown-rendered ol,.is-mobile .markdown-rendered ul{padding-inline-start:var(--list-indent)}.is-mobile .markdown-rendered div>ol,.is-mobile .markdown-rendered div>ul{padding-inline-start:2em}.is-mobile .el-ol>ol,.is-mobile .el-ul>ul{margin-inline-start:0}.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 .nav-header~.search-input-container{width:calc(100% - 140px);margin-top:12px}.embedded-backlinks .nav-buttons-container{position:absolute;right:0;top:14px}.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-thumbnail-view .thumbnailImage,.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-thumbnail-view .thumbnailImage,.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:10px;--table-cell-padding:4px 10px;--table-header-size:var(--table-text-size)}.markdown-source-view.mod-cm6 table{border-collapse:collapse}.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: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 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)}.is-live-preview .el-table{width:100%;max-width:100%}.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)}.cm-s-obsidian,.markdown-preview-view,.markdown-source-view.mod-cm6.is-live-preview .cm-scroller,body{font-size:var(--font-adaptive-normal);font-weight:var(--normal-weight);line-height:var(--line-height)}.cm-s-obsidian,.markdown-source-view,.markdown-source-view.mod-cm6 .cm-scroller{line-height:var(--line-height);font-family:var(--font-editor)}.cm-s-obsidian span.cm-formatting-task{line-height:var(--line-height)}.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}.markdown-preview-view .inline-embed{--max-width:100%}body{--container-table-width:var(--line-width);--container-table-max-width:var(--max-width);--table-max-width:none;--table-width:auto;--table-margin:inherit;--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-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-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}.maximize-tables-auto{--container-table-max-width:100%;--container-table-width:100%;--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%;--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:10px}.table-100,.table-max,.table-wide{--table-max-width:100%;--table-width:100%}.table-wide{--container-table-width:var(--line-width-wide);--table-edge-cell-padding-first:0px}.table-max{--container-table-width:var(--max-width);--table-edge-cell-padding-first:0px;--table-margin:0}.table-100{--container-table-width:100%;--container-table-max-width:100%;--table-edge-cell-padding-first:20px;--table-margin: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(>.block-language-dataview>table),.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div:has(>.block-language-dataviewjs),.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(>.block-language-dataview>table),.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>div:has(>.block-language-dataviewjs),.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)}.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:0.75rem;grid-row-gap:0.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)}.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:0}.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}.theme-light .cards table.dataview thead:before{background-image:url('data:image/svg+xml;utf8,')}.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:before{opacity:.5;background-color:var(--background-modifier-hover)}.cards table.dataview thead:before{content:'';position:absolute;right:0;top:0;width:10px;height:16px;background-repeat:no-repeat;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);opacity:.25;background-position:center center;background-size:16px;background-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}.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>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{align-items:flex-end;flex-grow:1}@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: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(--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:transparent;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 50ms}.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 50ms}.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:transparent;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:10px}.row-alt{--table-row-alt-background:var(--background-table-rows);--table-edge-cell-padding-first:10px}.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:10px}.table-nowrap{--table-white-space:nowrap}.table-nowrap .table-wrap,.trim-cols{--table-white-space:normal}.table-numbers table:not(.calendar){counter-reset:section}.table-numbers table:not(.calendar)>thead>tr>th:first-child::before{content:" ";padding-right:.5em;display:inline-block;min-width:2em}.table-numbers table:not(.calendar)>tbody>tr>td:first-child::before{counter-increment:section;content:counter(section) " ";text-align:center;padding-right:.5em;display:inline-block;min-width:2em;color:var(--text-faint);font-variant-numeric:tabular-nums}.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 .table-view-table>tbody>tr>td,.row-lines table:not(.calendar) tbody>tr>td{border-bottom:var(--table-border-width) solid var(--table-border-color)}.row-lines table:not(.calendar) tbody>tr:last-child>td{border-bottom:none}.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:transparent}.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) .view-content div:not(.canvas-node-content) img{max-width:100%;cursor:zoom-in}body:not(.zoom-off) .view-content img:active{cursor:zoom-out}body:not(.zoom-off) .view-content .markdown-preview-view img[referrerpolicy=no-referrer]:active{background-color:var(--background-primary);padding:10px}body:not(.zoom-off) .view-content .image-embed:not(.canvas-node-content):active,body:not(.zoom-off) .view-content .markdown-preview-view img[referrerpolicy=no-referrer]:active{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) .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) .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}.labeled-nav.is-fullscreen:not(.colorful-frame){--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:transparent}.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:not(.is-grabbing):not(.is-fullscreen).is-hidden-frameless .mod-top .workspace-tab-header-container{-webkit-app-region:no-drag}.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:transparent}.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:transparent}.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:transparent}.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:transparent}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}.mod-root .workspace-tab-header:not(.is-active) .workspace-tab-header-inner-close-button{display:none}.mod-root .workspace-tab-header:hover .workspace-tab-header-inner-close-button{display:flex}.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: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:transparent}.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)}.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:transparent}.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:transparent}.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:0.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:0.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:0.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:0.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:0.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:0.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:transparent;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}@media (max-width:400pt){.is-mobile .modal.mod-sync-log{width:100vw;height:100vh;max-height:calc(100vh - 32px);box-shadow:0 -32px 0 32px var(--background-primary);bottom:0;padding-bottom:10px}}.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: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: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: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-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:transparent!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:transparent}.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:transparent;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)}.block-language-dataviewjs:has(.dataview-error-box) table.dataview{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:transparent;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: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:transparent!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:transparent;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:transparent;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-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: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: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: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: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: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}.mod-macos.minimal-focus-mode .mod-root .map-100 .markdown-preview-sizer.markdown-preview-section .el-lang-leaflet:nth-child(3) .leaflet-top{top:calc(18px + var(--ewt-traffic-light-y));transition:top .1s linear}body .leaflet-container{background-color:var(--background-secondary);font-family:var(--font-interface)}.map-100 .markdown-preview-sizer.markdown-preview-section .el-lang-leaflet:nth-child(3){margin-top:-16px}.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:transparent;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: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: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:0 0;box-shadow:none;color:var(--text-muted)}body .NLT__button:active,body .NLT__button:focus,body .NLT__button:hover{background:0 0;color:var(--text-normal);box-shadow:none}.NLT__app .NLT__button{background: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: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:transparent;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: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:transparent}.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:"\00a0›"!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:transparent}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:transparent}.theme-light .themed-color-wrapper>.theme-dark{background-color:rgba(0,0,0,.8)}.theme-dark .themed-color-wrapper>.theme-dark{background-color:transparent}@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: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-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:#EAE3E1}.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:#403d52}.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 @@ -90,11 +90,11 @@ id: minimal-style settings: - id: instructions - title: Welcome 👋 + title: Documentation type: heading level: 2 collapsed: true - description: Use the Minimal Theme Settings plugin to access hotkeys, adjust features, select fonts, and choose from preset color schemes. Use the settings below for more granular customization. Visit minimal.guide for documentation. + 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 @@ -270,27 +270,6 @@ settings: format: hex default-light: '#' default-dark: '#' - - - id: active-line - title: Active line - 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: 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: blockquotes title: Blockquotes @@ -352,6 +331,19 @@ settings: 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 @@ -366,6 +358,20 @@ settings: - 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 @@ -498,6 +504,12 @@ settings: 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 @@ -516,16 +528,80 @@ settings: 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 - description: Changing node colors requires closing and reopening graph panes or restarting Obsidian type: variable-themed-color format: hex default-light: '#' @@ -1033,11 +1109,49 @@ settings: 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 @@ -1147,6 +1261,58 @@ settings: 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 @@ -1200,6 +1366,101 @@ settings: 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: true + - + 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 @@ -1208,7 +1469,7 @@ settings: collapsed: true - id: sidebar-lines-off - title: Disable sidebar relationship lines + title: Hide sidebar relationship lines description: Turns off lines in file navigation type: class-toggle - @@ -1233,6 +1494,7 @@ settings: - label: Underline value: sidebar-tabs-underline + - id: mobile-left-sidebar-width title: Mobile left sidebar width @@ -1247,6 +1509,26 @@ settings: 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 @@ -1261,21 +1543,21 @@ settings: default: 1em - id: maximize-tables-off - title: Maximize table width (beta) - description: Tables fill the width of the line + 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 + default: maximize-tables-off options: - - label: Always - value: maximize-tables + label: Fit to line width + value: maximize-tables-off - - label: Automatic + label: Overflow line width value: maximize-tables-auto - - label: Never - value: maximize-tables-off + label: Always fill + value: maximize-tables - id: row-lines title: Row lines @@ -1366,6 +1648,9 @@ settings: - label: Modern value: tabs-modern + - + label: Square + value: tabs-plain-square - label: Underline value: tabs-underline @@ -1567,11 +1852,17 @@ settings: max: 900 step: 100 - - id: spacing-p + id: p-spacing title: Paragraph spacing - description: Space between paragraphs in reading mode + description: Space between paragraphs in reading mode (Obsidian 1.3.7+) type: variable-text - default: 0.75em + 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 @@ -1839,15 +2130,5 @@ settings: type: variable-number default: 11 format: px - - - id: folding-offset - title: Folding offset - description: Width of the left margin used for folding indicators - type: variable-number-slider - default: 10 - min: 0 - max: 30 - step: 1 - format: px */