`):
+ *
+ * ```javascript
+ * var hljs = require('highlight.js') // https://highlightjs.org/
+ *
+ * // Actual default values
+ * var md = require('markdown-it')({
+ * highlight: function (str, lang) {
+ * if (lang && hljs.getLanguage(lang)) {
+ * try {
+ * return '' +
+ * hljs.highlight(str, { language: lang, ignoreIllegals: true }).value +
+ * '
';
+ * } catch (__) {}
+ * }
+ *
+ * return '' + md.utils.escapeHtml(str) + '
';
+ * }
+ * });
+ * ```
+ *
+ **/
+function MarkdownIt(presetName, options) {
+ if (!(this instanceof MarkdownIt)) {
+ return new MarkdownIt(presetName, options);
+ }
+ if (!options) {
+ if (!isString(presetName)) {
+ options = presetName || {};
+ presetName = 'default';
+ }
+ }
+
+ /**
+ * MarkdownIt#inline -> ParserInline
+ *
+ * Instance of [[ParserInline]]. You may need it to add new rules when
+ * writing plugins. For simple rules control use [[MarkdownIt.disable]] and
+ * [[MarkdownIt.enable]].
+ **/
+ this.inline = new ParserInline();
+
+ /**
+ * MarkdownIt#block -> ParserBlock
+ *
+ * Instance of [[ParserBlock]]. You may need it to add new rules when
+ * writing plugins. For simple rules control use [[MarkdownIt.disable]] and
+ * [[MarkdownIt.enable]].
+ **/
+ this.block = new ParserBlock();
+
+ /**
+ * MarkdownIt#core -> Core
+ *
+ * Instance of [[Core]] chain executor. You may need it to add new rules when
+ * writing plugins. For simple rules control use [[MarkdownIt.disable]] and
+ * [[MarkdownIt.enable]].
+ **/
+ this.core = new Core();
+
+ /**
+ * MarkdownIt#renderer -> Renderer
+ *
+ * Instance of [[Renderer]]. Use it to modify output look. Or to add rendering
+ * rules for new token types, generated by plugins.
+ *
+ * ##### Example
+ *
+ * ```javascript
+ * var md = require('markdown-it')();
+ *
+ * function myToken(tokens, idx, options, env, self) {
+ * //...
+ * return result;
+ * };
+ *
+ * md.renderer.rules['my_token'] = myToken
+ * ```
+ *
+ * See [[Renderer]] docs and [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.mjs).
+ **/
+ this.renderer = new Renderer();
+
+ /**
+ * MarkdownIt#linkify -> LinkifyIt
+ *
+ * [linkify-it](https://github.com/markdown-it/linkify-it) instance.
+ * Used by [linkify](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/linkify.mjs)
+ * rule.
+ **/
+ this.linkify = new LinkifyIt();
+
+ /**
+ * MarkdownIt#validateLink(url) -> Boolean
+ *
+ * Link validation function. CommonMark allows too much in links. By default
+ * we disable `javascript:`, `vbscript:`, `file:` schemas, and almost all `data:...` schemas
+ * except some embedded image types.
+ *
+ * You can change this behaviour:
+ *
+ * ```javascript
+ * var md = require('markdown-it')();
+ * // enable everything
+ * md.validateLink = function () { return true; }
+ * ```
+ **/
+ this.validateLink = validateLink;
+
+ /**
+ * MarkdownIt#normalizeLink(url) -> String
+ *
+ * Function used to encode link url to a machine-readable format,
+ * which includes url-encoding, punycode, etc.
+ **/
+ this.normalizeLink = normalizeLink;
+
+ /**
+ * MarkdownIt#normalizeLinkText(url) -> String
+ *
+ * Function used to decode link url to a human-readable format`
+ **/
+ this.normalizeLinkText = normalizeLinkText;
+
+ // Expose utils & helpers for easy acces from plugins
+
+ /**
+ * MarkdownIt#utils -> utils
+ *
+ * Assorted utility functions, useful to write plugins. See details
+ * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/common/utils.mjs).
+ **/
+ this.utils = utils;
+
+ /**
+ * MarkdownIt#helpers -> helpers
+ *
+ * Link components parser functions, useful to write plugins. See details
+ * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/helpers).
+ **/
+ this.helpers = assign({}, helpers);
+ this.options = {};
+ this.configure(presetName);
+ if (options) {
+ this.set(options);
+ }
+}
+
+/** chainable
+ * MarkdownIt.set(options)
+ *
+ * Set parser options (in the same format as in constructor). Probably, you
+ * will never need it, but you can change options after constructor call.
+ *
+ * ##### Example
+ *
+ * ```javascript
+ * var md = require('markdown-it')()
+ * .set({ html: true, breaks: true })
+ * .set({ typographer, true });
+ * ```
+ *
+ * __Note:__ To achieve the best possible performance, don't modify a
+ * `markdown-it` instance options on the fly. If you need multiple configurations
+ * it's best to create multiple instances and initialize each with separate
+ * config.
+ **/
+MarkdownIt.prototype.set = function (options) {
+ assign(this.options, options);
+ return this;
+};
+
+/** chainable, internal
+ * MarkdownIt.configure(presets)
+ *
+ * Batch load of all options and compenent settings. This is internal method,
+ * and you probably will not need it. But if you will - see available presets
+ * and data structure [here](https://github.com/markdown-it/markdown-it/tree/master/lib/presets)
+ *
+ * We strongly recommend to use presets instead of direct config loads. That
+ * will give better compatibility with next versions.
+ **/
+MarkdownIt.prototype.configure = function (presets) {
+ const self = this;
+ if (isString(presets)) {
+ const presetName = presets;
+ presets = config[presetName];
+ if (!presets) {
+ throw new Error('Wrong `markdown-it` preset "' + presetName + '", check name');
+ }
+ }
+ if (!presets) {
+ throw new Error('Wrong `markdown-it` preset, can\'t be empty');
+ }
+ if (presets.options) {
+ self.set(presets.options);
+ }
+ if (presets.components) {
+ Object.keys(presets.components).forEach(function (name) {
+ if (presets.components[name].rules) {
+ self[name].ruler.enableOnly(presets.components[name].rules);
+ }
+ if (presets.components[name].rules2) {
+ self[name].ruler2.enableOnly(presets.components[name].rules2);
+ }
+ });
+ }
+ return this;
+};
+
+/** chainable
+ * MarkdownIt.enable(list, ignoreInvalid)
+ * - list (String|Array): rule name or list of rule names to enable
+ * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.
+ *
+ * Enable list or rules. It will automatically find appropriate components,
+ * containing rules with given names. If rule not found, and `ignoreInvalid`
+ * not set - throws exception.
+ *
+ * ##### Example
+ *
+ * ```javascript
+ * var md = require('markdown-it')()
+ * .enable(['sub', 'sup'])
+ * .disable('smartquotes');
+ * ```
+ **/
+MarkdownIt.prototype.enable = function (list, ignoreInvalid) {
+ let result = [];
+ if (!Array.isArray(list)) {
+ list = [list];
+ }
+ ['core', 'block', 'inline'].forEach(function (chain) {
+ result = result.concat(this[chain].ruler.enable(list, true));
+ }, this);
+ result = result.concat(this.inline.ruler2.enable(list, true));
+ const missed = list.filter(function (name) {
+ return result.indexOf(name) < 0;
+ });
+ if (missed.length && !ignoreInvalid) {
+ throw new Error('MarkdownIt. Failed to enable unknown rule(s): ' + missed);
+ }
+ return this;
+};
+
+/** chainable
+ * MarkdownIt.disable(list, ignoreInvalid)
+ * - list (String|Array): rule name or list of rule names to disable.
+ * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.
+ *
+ * The same as [[MarkdownIt.enable]], but turn specified rules off.
+ **/
+MarkdownIt.prototype.disable = function (list, ignoreInvalid) {
+ let result = [];
+ if (!Array.isArray(list)) {
+ list = [list];
+ }
+ ['core', 'block', 'inline'].forEach(function (chain) {
+ result = result.concat(this[chain].ruler.disable(list, true));
+ }, this);
+ result = result.concat(this.inline.ruler2.disable(list, true));
+ const missed = list.filter(function (name) {
+ return result.indexOf(name) < 0;
+ });
+ if (missed.length && !ignoreInvalid) {
+ throw new Error('MarkdownIt. Failed to disable unknown rule(s): ' + missed);
+ }
+ return this;
+};
+
+/** chainable
+ * MarkdownIt.use(plugin, params)
+ *
+ * Load specified plugin with given params into current parser instance.
+ * It's just a sugar to call `plugin(md, params)` with curring.
+ *
+ * ##### Example
+ *
+ * ```javascript
+ * var iterator = require('markdown-it-for-inline');
+ * var md = require('markdown-it')()
+ * .use(iterator, 'foo_replace', 'text', function (tokens, idx) {
+ * tokens[idx].content = tokens[idx].content.replace(/foo/g, 'bar');
+ * });
+ * ```
+ **/
+MarkdownIt.prototype.use = function (plugin /*, params, ... */) {
+ const args = [this].concat(Array.prototype.slice.call(arguments, 1));
+ plugin.apply(plugin, args);
+ return this;
+};
+
+/** internal
+ * MarkdownIt.parse(src, env) -> Array
+ * - src (String): source string
+ * - env (Object): environment sandbox
+ *
+ * Parse input string and return list of block tokens (special token type
+ * "inline" will contain list of inline tokens). You should not call this
+ * method directly, until you write custom renderer (for example, to produce
+ * AST).
+ *
+ * `env` is used to pass data between "distributed" rules and return additional
+ * metadata like reference info, needed for the renderer. It also can be used to
+ * inject data in specific cases. Usually, you will be ok to pass `{}`,
+ * and then pass updated object to renderer.
+ **/
+MarkdownIt.prototype.parse = function (src, env) {
+ if (typeof src !== 'string') {
+ throw new Error('Input data should be a String');
+ }
+ const state = new this.core.State(src, this, env);
+ this.core.process(state);
+ return state.tokens;
+};
+
+/**
+ * MarkdownIt.render(src [, env]) -> String
+ * - src (String): source string
+ * - env (Object): environment sandbox
+ *
+ * Render markdown string into html. It does all magic for you :).
+ *
+ * `env` can be used to inject additional metadata (`{}` by default).
+ * But you will not need it with high probability. See also comment
+ * in [[MarkdownIt.parse]].
+ **/
+MarkdownIt.prototype.render = function (src, env) {
+ env = env || {};
+ return this.renderer.render(this.parse(src, env), this.options, env);
+};
+
+/** internal
+ * MarkdownIt.parseInline(src, env) -> Array
+ * - src (String): source string
+ * - env (Object): environment sandbox
+ *
+ * The same as [[MarkdownIt.parse]] but skip all block rules. It returns the
+ * block tokens list with the single `inline` element, containing parsed inline
+ * tokens in `children` property. Also updates `env` object.
+ **/
+MarkdownIt.prototype.parseInline = function (src, env) {
+ const state = new this.core.State(src, this, env);
+ state.inlineMode = true;
+ this.core.process(state);
+ return state.tokens;
+};
+
+/**
+ * MarkdownIt.renderInline(src [, env]) -> String
+ * - src (String): source string
+ * - env (Object): environment sandbox
+ *
+ * Similar to [[MarkdownIt.render]] but for single paragraph content. Result
+ * will NOT be wrapped into `` tags.
+ **/
+MarkdownIt.prototype.renderInline = function (src, env) {
+ env = env || {};
+ return this.renderer.render(this.parseInline(src, env), this.options, env);
+};
+
+module.exports = MarkdownIt;
+
+});
+define("mdurl",["require","exports"],(require,exports)=>{var module={get exports(){return exports},set exports(value){exports._replace(value);exports=value}};
+'use strict';
+
+/* eslint-disable no-bitwise */
+
+const decodeCache = {};
+
+function getDecodeCache (exclude) {
+ let cache = decodeCache[exclude];
+ if (cache) { return cache }
+
+ cache = decodeCache[exclude] = [];
+
+ for (let i = 0; i < 128; i++) {
+ const ch = String.fromCharCode(i);
+ cache.push(ch);
+ }
+
+ for (let i = 0; i < exclude.length; i++) {
+ const ch = exclude.charCodeAt(i);
+ cache[ch] = '%' + ('0' + ch.toString(16).toUpperCase()).slice(-2);
+ }
+
+ return cache
+}
+
+// Decode percent-encoded string.
+//
+function decode (string, exclude) {
+ if (typeof exclude !== 'string') {
+ exclude = decode.defaultChars;
+ }
+
+ const cache = getDecodeCache(exclude);
+
+ return string.replace(/(%[a-f0-9]{2})+/gi, function (seq) {
+ let result = '';
+
+ for (let i = 0, l = seq.length; i < l; i += 3) {
+ const b1 = parseInt(seq.slice(i + 1, i + 3), 16);
+
+ if (b1 < 0x80) {
+ result += cache[b1];
+ continue
+ }
+
+ if ((b1 & 0xE0) === 0xC0 && (i + 3 < l)) {
+ // 110xxxxx 10xxxxxx
+ const b2 = parseInt(seq.slice(i + 4, i + 6), 16);
+
+ if ((b2 & 0xC0) === 0x80) {
+ const chr = ((b1 << 6) & 0x7C0) | (b2 & 0x3F);
+
+ if (chr < 0x80) {
+ result += '\ufffd\ufffd';
+ } else {
+ result += String.fromCharCode(chr);
+ }
+
+ i += 3;
+ continue
+ }
+ }
+
+ if ((b1 & 0xF0) === 0xE0 && (i + 6 < l)) {
+ // 1110xxxx 10xxxxxx 10xxxxxx
+ const b2 = parseInt(seq.slice(i + 4, i + 6), 16);
+ const b3 = parseInt(seq.slice(i + 7, i + 9), 16);
+
+ if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80) {
+ const chr = ((b1 << 12) & 0xF000) | ((b2 << 6) & 0xFC0) | (b3 & 0x3F);
+
+ if (chr < 0x800 || (chr >= 0xD800 && chr <= 0xDFFF)) {
+ result += '\ufffd\ufffd\ufffd';
+ } else {
+ result += String.fromCharCode(chr);
+ }
+
+ i += 6;
+ continue
+ }
+ }
+
+ if ((b1 & 0xF8) === 0xF0 && (i + 9 < l)) {
+ // 111110xx 10xxxxxx 10xxxxxx 10xxxxxx
+ const b2 = parseInt(seq.slice(i + 4, i + 6), 16);
+ const b3 = parseInt(seq.slice(i + 7, i + 9), 16);
+ const b4 = parseInt(seq.slice(i + 10, i + 12), 16);
+
+ if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80 && (b4 & 0xC0) === 0x80) {
+ let chr = ((b1 << 18) & 0x1C0000) | ((b2 << 12) & 0x3F000) | ((b3 << 6) & 0xFC0) | (b4 & 0x3F);
+
+ if (chr < 0x10000 || chr > 0x10FFFF) {
+ result += '\ufffd\ufffd\ufffd\ufffd';
+ } else {
+ chr -= 0x10000;
+ result += String.fromCharCode(0xD800 + (chr >> 10), 0xDC00 + (chr & 0x3FF));
+ }
+
+ i += 9;
+ continue
+ }
+ }
+
+ result += '\ufffd';
+ }
+
+ return result
+ })
+}
+
+decode.defaultChars = ';/?:@&=+$,#';
+decode.componentChars = '';
+
+const encodeCache = {};
+
+// Create a lookup array where anything but characters in `chars` string
+// and alphanumeric chars is percent-encoded.
+//
+function getEncodeCache (exclude) {
+ let cache = encodeCache[exclude];
+ if (cache) { return cache }
+
+ cache = encodeCache[exclude] = [];
+
+ for (let i = 0; i < 128; i++) {
+ const ch = String.fromCharCode(i);
+
+ if (/^[0-9a-z]$/i.test(ch)) {
+ // always allow unencoded alphanumeric characters
+ cache.push(ch);
+ } else {
+ cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));
+ }
+ }
+
+ for (let i = 0; i < exclude.length; i++) {
+ cache[exclude.charCodeAt(i)] = exclude[i];
+ }
+
+ return cache
+}
+
+// Encode unsafe characters with percent-encoding, skipping already
+// encoded sequences.
+//
+// - string - string to encode
+// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)
+// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)
+//
+function encode (string, exclude, keepEscaped) {
+ if (typeof exclude !== 'string') {
+ // encode(string, keepEscaped)
+ keepEscaped = exclude;
+ exclude = encode.defaultChars;
+ }
+
+ if (typeof keepEscaped === 'undefined') {
+ keepEscaped = true;
+ }
+
+ const cache = getEncodeCache(exclude);
+ let result = '';
+
+ for (let i = 0, l = string.length; i < l; i++) {
+ const code = string.charCodeAt(i);
+
+ if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {
+ if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {
+ result += string.slice(i, i + 3);
+ i += 2;
+ continue
+ }
+ }
+
+ if (code < 128) {
+ result += cache[code];
+ continue
+ }
+
+ if (code >= 0xD800 && code <= 0xDFFF) {
+ if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {
+ const nextCode = string.charCodeAt(i + 1);
+ if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {
+ result += encodeURIComponent(string[i] + string[i + 1]);
+ i++;
+ continue
+ }
+ }
+ result += '%EF%BF%BD';
+ continue
+ }
+
+ result += encodeURIComponent(string[i]);
+ }
+
+ return result
+}
+
+encode.defaultChars = ";/?:@&=+$,-_.!~*'()#";
+encode.componentChars = "-_.!~*'()";
+
+function format (url) {
+ let result = '';
+
+ result += url.protocol || '';
+ result += url.slashes ? '//' : '';
+ result += url.auth ? url.auth + '@' : '';
+
+ if (url.hostname && url.hostname.indexOf(':') !== -1) {
+ // ipv6 address
+ result += '[' + url.hostname + ']';
+ } else {
+ result += url.hostname || '';
+ }
+
+ result += url.port ? ':' + url.port : '';
+ result += url.pathname || '';
+ result += url.search || '';
+ result += url.hash || '';
+
+ return result
+}
+
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// 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.
+
+//
+// Changes from joyent/node:
+//
+// 1. No leading slash in paths,
+// e.g. in `url.parse('http://foo?bar')` pathname is ``, not `/`
+//
+// 2. Backslashes are not replaced with slashes,
+// so `http:\\example.org\` is treated like a relative path
+//
+// 3. Trailing colon is treated like a part of the path,
+// i.e. in `http://example.org:foo` pathname is `:foo`
+//
+// 4. Nothing is URL-encoded in the resulting object,
+// (in joyent/node some chars in auth and paths are encoded)
+//
+// 5. `url.parse()` does not have `parseQueryString` argument
+//
+// 6. Removed extraneous result properties: `host`, `path`, `query`, etc.,
+// which can be constructed using other parts of the url.
+//
+
+function Url () {
+ this.protocol = null;
+ this.slashes = null;
+ this.auth = null;
+ this.port = null;
+ this.hostname = null;
+ this.hash = null;
+ this.search = null;
+ this.pathname = null;
+}
+
+// Reference: RFC 3986, RFC 1808, RFC 2396
+
+// define these here so at least they only have to be
+// compiled once on the first module load.
+const protocolPattern = /^([a-z0-9.+-]+:)/i;
+const portPattern = /:[0-9]*$/;
+
+// Special case for a simple path URL
+/* eslint-disable-next-line no-useless-escape */
+const simplePathPattern = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/;
+
+// RFC 2396: characters reserved for delimiting URLs.
+// We actually just auto-escape these.
+const delims = ['<', '>', '"', '`', ' ', '\r', '\n', '\t'];
+
+// RFC 2396: characters not allowed for various reasons.
+const unwise = ['{', '}', '|', '\\', '^', '`'].concat(delims);
+
+// Allowed by RFCs, but cause of XSS attacks. Always escape these.
+const autoEscape = ['\''].concat(unwise);
+// Characters that are never ever allowed in a hostname.
+// Note that any invalid chars are also handled, but these
+// are the ones that are *expected* to be seen, so we fast-path
+// them.
+const nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape);
+const hostEndingChars = ['/', '?', '#'];
+const hostnameMaxLen = 255;
+const hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/;
+const hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/;
+// protocols that can allow "unsafe" and "unwise" chars.
+// protocols that never have a hostname.
+const hostlessProtocol = {
+ javascript: true,
+ 'javascript:': true
+};
+// protocols that always contain a // bit.
+const slashedProtocol = {
+ http: true,
+ https: true,
+ ftp: true,
+ gopher: true,
+ file: true,
+ 'http:': true,
+ 'https:': true,
+ 'ftp:': true,
+ 'gopher:': true,
+ 'file:': true
+};
+
+function urlParse (url, slashesDenoteHost) {
+ if (url && url instanceof Url) return url
+
+ const u = new Url();
+ u.parse(url, slashesDenoteHost);
+ return u
+}
+
+Url.prototype.parse = function (url, slashesDenoteHost) {
+ let lowerProto, hec, slashes;
+ let rest = url;
+
+ // trim before proceeding.
+ // This is to support parse stuff like " http://foo.com \n"
+ rest = rest.trim();
+
+ if (!slashesDenoteHost && url.split('#').length === 1) {
+ // Try fast path regexp
+ const simplePath = simplePathPattern.exec(rest);
+ if (simplePath) {
+ this.pathname = simplePath[1];
+ if (simplePath[2]) {
+ this.search = simplePath[2];
+ }
+ return this
+ }
+ }
+
+ let proto = protocolPattern.exec(rest);
+ if (proto) {
+ proto = proto[0];
+ lowerProto = proto.toLowerCase();
+ this.protocol = proto;
+ rest = rest.substr(proto.length);
+ }
+
+ // figure out if it's got a host
+ // user@server is *always* interpreted as a hostname, and url
+ // resolution will treat //foo/bar as host=foo,path=bar because that's
+ // how the browser resolves relative URLs.
+ /* eslint-disable-next-line no-useless-escape */
+ if (slashesDenoteHost || proto || rest.match(/^\/\/[^@\/]+@[^@\/]+/)) {
+ slashes = rest.substr(0, 2) === '//';
+ if (slashes && !(proto && hostlessProtocol[proto])) {
+ rest = rest.substr(2);
+ this.slashes = true;
+ }
+ }
+
+ if (!hostlessProtocol[proto] &&
+ (slashes || (proto && !slashedProtocol[proto]))) {
+ // there's a hostname.
+ // the first instance of /, ?, ;, or # ends the host.
+ //
+ // If there is an @ in the hostname, then non-host chars *are* allowed
+ // to the left of the last @ sign, unless some host-ending character
+ // comes *before* the @-sign.
+ // URLs are obnoxious.
+ //
+ // ex:
+ // http://a@b@c/ => user:a@b host:c
+ // http://a@b?@c => user:a host:c path:/?@c
+
+ // v0.12 TODO(isaacs): This is not quite how Chrome does things.
+ // Review our test case against browsers more comprehensively.
+
+ // find the first instance of any hostEndingChars
+ let hostEnd = -1;
+ for (let i = 0; i < hostEndingChars.length; i++) {
+ hec = rest.indexOf(hostEndingChars[i]);
+ if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {
+ hostEnd = hec;
+ }
+ }
+
+ // at this point, either we have an explicit point where the
+ // auth portion cannot go past, or the last @ char is the decider.
+ let auth, atSign;
+ if (hostEnd === -1) {
+ // atSign can be anywhere.
+ atSign = rest.lastIndexOf('@');
+ } else {
+ // atSign must be in auth portion.
+ // http://a@b/c@d => host:b auth:a path:/c@d
+ atSign = rest.lastIndexOf('@', hostEnd);
+ }
+
+ // Now we have a portion which is definitely the auth.
+ // Pull that off.
+ if (atSign !== -1) {
+ auth = rest.slice(0, atSign);
+ rest = rest.slice(atSign + 1);
+ this.auth = auth;
+ }
+
+ // the host is the remaining to the left of the first non-host char
+ hostEnd = -1;
+ for (let i = 0; i < nonHostChars.length; i++) {
+ hec = rest.indexOf(nonHostChars[i]);
+ if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {
+ hostEnd = hec;
+ }
+ }
+ // if we still have not hit it, then the entire thing is a host.
+ if (hostEnd === -1) {
+ hostEnd = rest.length;
+ }
+
+ if (rest[hostEnd - 1] === ':') { hostEnd--; }
+ const host = rest.slice(0, hostEnd);
+ rest = rest.slice(hostEnd);
+
+ // pull out port.
+ this.parseHost(host);
+
+ // we've indicated that there is a hostname,
+ // so even if it's empty, it has to be present.
+ this.hostname = this.hostname || '';
+
+ // if hostname begins with [ and ends with ]
+ // assume that it's an IPv6 address.
+ const ipv6Hostname = this.hostname[0] === '[' &&
+ this.hostname[this.hostname.length - 1] === ']';
+
+ // validate a little.
+ if (!ipv6Hostname) {
+ const hostparts = this.hostname.split(/\./);
+ for (let i = 0, l = hostparts.length; i < l; i++) {
+ const part = hostparts[i];
+ if (!part) { continue }
+ if (!part.match(hostnamePartPattern)) {
+ let newpart = '';
+ for (let j = 0, k = part.length; j < k; j++) {
+ if (part.charCodeAt(j) > 127) {
+ // we replace non-ASCII char with a temporary placeholder
+ // we need this to make sure size of hostname is not
+ // broken by replacing non-ASCII by nothing
+ newpart += 'x';
+ } else {
+ newpart += part[j];
+ }
+ }
+ // we test again with ASCII char only
+ if (!newpart.match(hostnamePartPattern)) {
+ const validParts = hostparts.slice(0, i);
+ const notHost = hostparts.slice(i + 1);
+ const bit = part.match(hostnamePartStart);
+ if (bit) {
+ validParts.push(bit[1]);
+ notHost.unshift(bit[2]);
+ }
+ if (notHost.length) {
+ rest = notHost.join('.') + rest;
+ }
+ this.hostname = validParts.join('.');
+ break
+ }
+ }
+ }
+ }
+
+ if (this.hostname.length > hostnameMaxLen) {
+ this.hostname = '';
+ }
+
+ // strip [ and ] from the hostname
+ // the host field still retains them, though
+ if (ipv6Hostname) {
+ this.hostname = this.hostname.substr(1, this.hostname.length - 2);
+ }
+ }
+
+ // chop off from the tail first.
+ const hash = rest.indexOf('#');
+ if (hash !== -1) {
+ // got a fragment string.
+ this.hash = rest.substr(hash);
+ rest = rest.slice(0, hash);
+ }
+ const qm = rest.indexOf('?');
+ if (qm !== -1) {
+ this.search = rest.substr(qm);
+ rest = rest.slice(0, qm);
+ }
+ if (rest) { this.pathname = rest; }
+ if (slashedProtocol[lowerProto] &&
+ this.hostname && !this.pathname) {
+ this.pathname = '';
+ }
+
+ return this
+};
+
+Url.prototype.parseHost = function (host) {
+ let port = portPattern.exec(host);
+ if (port) {
+ port = port[0];
+ if (port !== ':') {
+ this.port = port.substr(1);
+ }
+ host = host.substr(0, host.length - port.length);
+ }
+ if (host) { this.hostname = host; }
+};
+
+exports.decode = decode;
+exports.encode = encode;
+exports.format = format;
+exports.parse = urlParse;
+
+});
+define("orderedmap",["require","exports"],(require,exports)=>{var module={get exports(){return exports},set exports(value){exports._replace(value);exports=value}};
+'use strict';
+
+// ::- Persistent data structure representing an ordered mapping from
+// strings to values, with some convenient update methods.
+function OrderedMap(content) {
+ this.content = content;
+}
+
+OrderedMap.prototype = {
+ constructor: OrderedMap,
+
+ find: function(key) {
+ for (var i = 0; i < this.content.length; i += 2)
+ if (this.content[i] === key) return i
+ return -1
+ },
+
+ // :: (string) → ?any
+ // Retrieve the value stored under `key`, or return undefined when
+ // no such key exists.
+ get: function(key) {
+ var found = this.find(key);
+ return found == -1 ? undefined : this.content[found + 1]
+ },
+
+ // :: (string, any, ?string) → OrderedMap
+ // Create a new map by replacing the value of `key` with a new
+ // value, or adding a binding to the end of the map. If `newKey` is
+ // given, the key of the binding will be replaced with that key.
+ update: function(key, value, newKey) {
+ var self = newKey && newKey != key ? this.remove(newKey) : this;
+ var found = self.find(key), content = self.content.slice();
+ if (found == -1) {
+ content.push(newKey || key, value);
+ } else {
+ content[found + 1] = value;
+ if (newKey) content[found] = newKey;
+ }
+ return new OrderedMap(content)
+ },
+
+ // :: (string) → OrderedMap
+ // Return a map with the given key removed, if it existed.
+ remove: function(key) {
+ var found = this.find(key);
+ if (found == -1) return this
+ var content = this.content.slice();
+ content.splice(found, 2);
+ return new OrderedMap(content)
+ },
+
+ // :: (string, any) → OrderedMap
+ // Add a new key to the start of the map.
+ addToStart: function(key, value) {
+ return new OrderedMap([key, value].concat(this.remove(key).content))
+ },
+
+ // :: (string, any) → OrderedMap
+ // Add a new key to the end of the map.
+ addToEnd: function(key, value) {
+ var content = this.remove(key).content.slice();
+ content.push(key, value);
+ return new OrderedMap(content)
+ },
+
+ // :: (string, string, any) → OrderedMap
+ // Add a key after the given key. If `place` is not found, the new
+ // key is added to the end.
+ addBefore: function(place, key, value) {
+ var without = this.remove(key), content = without.content.slice();
+ var found = without.find(place);
+ content.splice(found == -1 ? content.length : found, 0, key, value);
+ return new OrderedMap(content)
+ },
+
+ // :: ((key: string, value: any))
+ // Call the given function for each key/value pair in the map, in
+ // order.
+ forEach: function(f) {
+ for (var i = 0; i < this.content.length; i += 2)
+ f(this.content[i], this.content[i + 1]);
+ },
+
+ // :: (union) → OrderedMap
+ // Create a new map by prepending the keys in this map that don't
+ // appear in `map` before the keys in `map`.
+ prepend: function(map) {
+ map = OrderedMap.from(map);
+ if (!map.size) return this
+ return new OrderedMap(map.content.concat(this.subtract(map).content))
+ },
+
+ // :: (union) → OrderedMap
+ // Create a new map by appending the keys in this map that don't
+ // appear in `map` after the keys in `map`.
+ append: function(map) {
+ map = OrderedMap.from(map);
+ if (!map.size) return this
+ return new OrderedMap(this.subtract(map).content.concat(map.content))
+ },
+
+ // :: (union) → OrderedMap
+ // Create a map containing all the keys in this map that don't
+ // appear in `map`.
+ subtract: function(map) {
+ var result = this;
+ map = OrderedMap.from(map);
+ for (var i = 0; i < map.content.length; i += 2)
+ result = result.remove(map.content[i]);
+ return result
+ },
+
+ // :: () → Object
+ // Turn ordered map into a plain object.
+ toObject: function() {
+ var result = {};
+ this.forEach(function(key, value) { result[key] = value; });
+ return result
+ },
+
+ // :: number
+ // The amount of keys in this map.
+ get size() {
+ return this.content.length >> 1
+ }
+};
+
+// :: (?union) → OrderedMap
+// Return a map with the given content. If null, create an empty
+// map. If given an ordered map, return that map itself. If given an
+// object, create a map from the object's properties.
+OrderedMap.from = function(value) {
+ if (value instanceof OrderedMap) return value
+ var content = [];
+ if (value) for (var prop in value) content.push(prop, value[prop]);
+ return new OrderedMap(content)
+};
+
+module.exports = OrderedMap;
+
+});
+define("punycode.js",["require","exports"],(require,exports)=>{var module={get exports(){return exports},set exports(value){exports._replace(value);exports=value}};
+'use strict';
+
+/** Highest positive signed 32-bit float value */
+const maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1
+
+/** Bootstring parameters */
+const base = 36;
+const tMin = 1;
+const tMax = 26;
+const skew = 38;
+const damp = 700;
+const initialBias = 72;
+const initialN = 128; // 0x80
+const delimiter = '-'; // '\x2D'
+
+/** Regular expressions */
+const regexPunycode = /^xn--/;
+const regexNonASCII = /[^\0-\x7F]/; // Note: U+007F DEL is excluded too.
+const regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g; // RFC 3490 separators
+
+/** Error messages */
+const errors = {
+ 'overflow': 'Overflow: input needs wider integers to process',
+ 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
+ 'invalid-input': 'Invalid input'
+};
+
+/** Convenience shortcuts */
+const baseMinusTMin = base - tMin;
+const floor = Math.floor;
+const stringFromCharCode = String.fromCharCode;
+
+/*--------------------------------------------------------------------------*/
+
+/**
+ * A generic error utility function.
+ * @private
+ * @param {String} type The error type.
+ * @returns {Error} Throws a `RangeError` with the applicable error message.
+ */
+function error(type) {
+ throw new RangeError(errors[type]);
+}
+
+/**
+ * A generic `Array#map` utility function.
+ * @private
+ * @param {Array} array The array to iterate over.
+ * @param {Function} callback The function that gets called for every array
+ * item.
+ * @returns {Array} A new array of values returned by the callback function.
+ */
+function map(array, callback) {
+ const result = [];
+ let length = array.length;
+ while (length--) {
+ result[length] = callback(array[length]);
+ }
+ return result;
+}
+
+/**
+ * A simple `Array#map`-like wrapper to work with domain name strings or email
+ * addresses.
+ * @private
+ * @param {String} domain The domain name or email address.
+ * @param {Function} callback The function that gets called for every
+ * character.
+ * @returns {String} A new string of characters returned by the callback
+ * function.
+ */
+function mapDomain(domain, callback) {
+ const parts = domain.split('@');
+ let result = '';
+ if (parts.length > 1) {
+ // In email addresses, only the domain name should be punycoded. Leave
+ // the local part (i.e. everything up to `@`) intact.
+ result = parts[0] + '@';
+ domain = parts[1];
+ }
+ // Avoid `split(regex)` for IE8 compatibility. See #17.
+ domain = domain.replace(regexSeparators, '\x2E');
+ const labels = domain.split('.');
+ const encoded = map(labels, callback).join('.');
+ return result + encoded;
+}
+
+/**
+ * Creates an array containing the numeric code points of each Unicode
+ * character in the string. While JavaScript uses UCS-2 internally,
+ * this function will convert a pair of surrogate halves (each of which
+ * UCS-2 exposes as separate characters) into a single code point,
+ * matching UTF-16.
+ * @see `punycode.ucs2.encode`
+ * @see
+ * @memberOf punycode.ucs2
+ * @name decode
+ * @param {String} string The Unicode input string (UCS-2).
+ * @returns {Array} The new array of code points.
+ */
+function ucs2decode(string) {
+ const output = [];
+ let counter = 0;
+ const length = string.length;
+ while (counter < length) {
+ const value = string.charCodeAt(counter++);
+ if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
+ // It's a high surrogate, and there is a next character.
+ const extra = string.charCodeAt(counter++);
+ if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.
+ output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
+ } else {
+ // It's an unmatched surrogate; only append this code unit, in case the
+ // next code unit is the high surrogate of a surrogate pair.
+ output.push(value);
+ counter--;
+ }
+ } else {
+ output.push(value);
+ }
+ }
+ return output;
+}
+
+/**
+ * Creates a string based on an array of numeric code points.
+ * @see `punycode.ucs2.decode`
+ * @memberOf punycode.ucs2
+ * @name encode
+ * @param {Array} codePoints The array of numeric code points.
+ * @returns {String} The new Unicode string (UCS-2).
+ */
+const ucs2encode = codePoints => String.fromCodePoint(...codePoints);
+
+/**
+ * Converts a basic code point into a digit/integer.
+ * @see `digitToBasic()`
+ * @private
+ * @param {Number} codePoint The basic numeric code point value.
+ * @returns {Number} The numeric value of a basic code point (for use in
+ * representing integers) in the range `0` to `base - 1`, or `base` if
+ * the code point does not represent a value.
+ */
+const basicToDigit = function(codePoint) {
+ if (codePoint >= 0x30 && codePoint < 0x3A) {
+ return 26 + (codePoint - 0x30);
+ }
+ if (codePoint >= 0x41 && codePoint < 0x5B) {
+ return codePoint - 0x41;
+ }
+ if (codePoint >= 0x61 && codePoint < 0x7B) {
+ return codePoint - 0x61;
+ }
+ return base;
+};
+
+/**
+ * Converts a digit/integer into a basic code point.
+ * @see `basicToDigit()`
+ * @private
+ * @param {Number} digit The numeric value of a basic code point.
+ * @returns {Number} The basic code point whose value (when used for
+ * representing integers) is `digit`, which needs to be in the range
+ * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
+ * used; else, the lowercase form is used. The behavior is undefined
+ * if `flag` is non-zero and `digit` has no uppercase form.
+ */
+const digitToBasic = function(digit, flag) {
+ // 0..25 map to ASCII a..z or A..Z
+ // 26..35 map to ASCII 0..9
+ return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
+};
+
+/**
+ * Bias adaptation function as per section 3.4 of RFC 3492.
+ * https://tools.ietf.org/html/rfc3492#section-3.4
+ * @private
+ */
+const adapt = function(delta, numPoints, firstTime) {
+ let k = 0;
+ delta = firstTime ? floor(delta / damp) : delta >> 1;
+ delta += floor(delta / numPoints);
+ for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
+ delta = floor(delta / baseMinusTMin);
+ }
+ return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
+};
+
+/**
+ * Converts a Punycode string of ASCII-only symbols to a string of Unicode
+ * symbols.
+ * @memberOf punycode
+ * @param {String} input The Punycode string of ASCII-only symbols.
+ * @returns {String} The resulting string of Unicode symbols.
+ */
+const decode = function(input) {
+ // Don't use UCS-2.
+ const output = [];
+ const inputLength = input.length;
+ let i = 0;
+ let n = initialN;
+ let bias = initialBias;
+
+ // Handle the basic code points: let `basic` be the number of input code
+ // points before the last delimiter, or `0` if there is none, then copy
+ // the first basic code points to the output.
+
+ let basic = input.lastIndexOf(delimiter);
+ if (basic < 0) {
+ basic = 0;
+ }
+
+ for (let j = 0; j < basic; ++j) {
+ // if it's not a basic code point
+ if (input.charCodeAt(j) >= 0x80) {
+ error('not-basic');
+ }
+ output.push(input.charCodeAt(j));
+ }
+
+ // Main decoding loop: start just after the last delimiter if any basic code
+ // points were copied; start at the beginning otherwise.
+
+ for (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
+
+ // `index` is the index of the next character to be consumed.
+ // Decode a generalized variable-length integer into `delta`,
+ // which gets added to `i`. The overflow checking is easier
+ // if we increase `i` as we go, then subtract off its starting
+ // value at the end to obtain `delta`.
+ const oldi = i;
+ for (let w = 1, k = base; /* no condition */; k += base) {
+
+ if (index >= inputLength) {
+ error('invalid-input');
+ }
+
+ const digit = basicToDigit(input.charCodeAt(index++));
+
+ if (digit >= base) {
+ error('invalid-input');
+ }
+ if (digit > floor((maxInt - i) / w)) {
+ error('overflow');
+ }
+
+ i += digit * w;
+ const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
+
+ if (digit < t) {
+ break;
+ }
+
+ const baseMinusT = base - t;
+ if (w > floor(maxInt / baseMinusT)) {
+ error('overflow');
+ }
+
+ w *= baseMinusT;
+
+ }
+
+ const out = output.length + 1;
+ bias = adapt(i - oldi, out, oldi == 0);
+
+ // `i` was supposed to wrap around from `out` to `0`,
+ // incrementing `n` each time, so we'll fix that now:
+ if (floor(i / out) > maxInt - n) {
+ error('overflow');
+ }
+
+ n += floor(i / out);
+ i %= out;
+
+ // Insert `n` at position `i` of the output.
+ output.splice(i++, 0, n);
+
+ }
+
+ return String.fromCodePoint(...output);
+};
+
+/**
+ * Converts a string of Unicode symbols (e.g. a domain name label) to a
+ * Punycode string of ASCII-only symbols.
+ * @memberOf punycode
+ * @param {String} input The string of Unicode symbols.
+ * @returns {String} The resulting Punycode string of ASCII-only symbols.
+ */
+const encode = function(input) {
+ const output = [];
+
+ // Convert the input in UCS-2 to an array of Unicode code points.
+ input = ucs2decode(input);
+
+ // Cache the length.
+ const inputLength = input.length;
+
+ // Initialize the state.
+ let n = initialN;
+ let delta = 0;
+ let bias = initialBias;
+
+ // Handle the basic code points.
+ for (const currentValue of input) {
+ if (currentValue < 0x80) {
+ output.push(stringFromCharCode(currentValue));
+ }
+ }
+
+ const basicLength = output.length;
+ let handledCPCount = basicLength;
+
+ // `handledCPCount` is the number of code points that have been handled;
+ // `basicLength` is the number of basic code points.
+
+ // Finish the basic string with a delimiter unless it's empty.
+ if (basicLength) {
+ output.push(delimiter);
+ }
+
+ // Main encoding loop:
+ while (handledCPCount < inputLength) {
+
+ // All non-basic code points < n have been handled already. Find the next
+ // larger one:
+ let m = maxInt;
+ for (const currentValue of input) {
+ if (currentValue >= n && currentValue < m) {
+ m = currentValue;
+ }
+ }
+
+ // Increase `delta` enough to advance the decoder's state to ,
+ // but guard against overflow.
+ const handledCPCountPlusOne = handledCPCount + 1;
+ if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
+ error('overflow');
+ }
+
+ delta += (m - n) * handledCPCountPlusOne;
+ n = m;
+
+ for (const currentValue of input) {
+ if (currentValue < n && ++delta > maxInt) {
+ error('overflow');
+ }
+ if (currentValue === n) {
+ // Represent delta as a generalized variable-length integer.
+ let q = delta;
+ for (let k = base; /* no condition */; k += base) {
+ const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
+ if (q < t) {
+ break;
+ }
+ const qMinusT = q - t;
+ const baseMinusT = base - t;
+ output.push(
+ stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
+ );
+ q = floor(qMinusT / baseMinusT);
+ }
+
+ output.push(stringFromCharCode(digitToBasic(q, 0)));
+ bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);
+ delta = 0;
+ ++handledCPCount;
+ }
+ }
+
+ ++delta;
+ ++n;
+
+ }
+ return output.join('');
+};
+
+/**
+ * Converts a Punycode string representing a domain name or an email address
+ * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
+ * it doesn't matter if you call it on a string that has already been
+ * converted to Unicode.
+ * @memberOf punycode
+ * @param {String} input The Punycoded domain name or email address to
+ * convert to Unicode.
+ * @returns {String} The Unicode representation of the given Punycode
+ * string.
+ */
+const toUnicode = function(input) {
+ return mapDomain(input, function(string) {
+ return regexPunycode.test(string)
+ ? decode(string.slice(4).toLowerCase())
+ : string;
+ });
+};
+
+/**
+ * Converts a Unicode string representing a domain name or an email address to
+ * Punycode. Only the non-ASCII parts of the domain name will be converted,
+ * i.e. it doesn't matter if you call it with a domain that's already in
+ * ASCII.
+ * @memberOf punycode
+ * @param {String} input The domain name or email address to convert, as a
+ * Unicode string.
+ * @returns {String} The Punycode representation of the given domain name or
+ * email address.
+ */
+const toASCII = function(input) {
+ return mapDomain(input, function(string) {
+ return regexNonASCII.test(string)
+ ? 'xn--' + encode(string)
+ : string;
+ });
+};
+
+/*--------------------------------------------------------------------------*/
+
+/** Define the public API */
+const punycode = {
+ /**
+ * A string representing the current Punycode.js version number.
+ * @memberOf punycode
+ * @type String
+ */
+ 'version': '2.3.1',
+ /**
+ * An object of methods to convert from JavaScript's internal character
+ * representation (UCS-2) to Unicode code points, and back.
+ * @see
+ * @memberOf punycode
+ * @type Object
+ */
+ 'ucs2': {
+ 'decode': ucs2decode,
+ 'encode': ucs2encode
+ },
+ 'decode': decode,
+ 'encode': encode,
+ 'toASCII': toASCII,
+ 'toUnicode': toUnicode
+};
+
+module.exports = punycode;
+
+});
+define("rope-sequence",["require","exports"],(require,exports)=>{var module={get exports(){return exports},set exports(value){exports._replace(value);exports=value}};
+'use strict';
+
+var GOOD_LEAF_SIZE = 200;
+
+// :: class A rope sequence is a persistent sequence data structure
+// that supports appending, prepending, and slicing without doing a
+// full copy. It is represented as a mostly-balanced tree.
+var RopeSequence = function RopeSequence () {};
+
+RopeSequence.prototype.append = function append (other) {
+ if (!other.length) { return this }
+ other = RopeSequence.from(other);
+
+ return (!this.length && other) ||
+ (other.length < GOOD_LEAF_SIZE && this.leafAppend(other)) ||
+ (this.length < GOOD_LEAF_SIZE && other.leafPrepend(this)) ||
+ this.appendInner(other)
+};
+
+// :: (union<[T], RopeSequence>) → RopeSequence
+// Prepend an array or other rope to this one, returning a new rope.
+RopeSequence.prototype.prepend = function prepend (other) {
+ if (!other.length) { return this }
+ return RopeSequence.from(other).append(this)
+};
+
+RopeSequence.prototype.appendInner = function appendInner (other) {
+ return new Append(this, other)
+};
+
+// :: (?number, ?number) → RopeSequence
+// Create a rope repesenting a sub-sequence of this rope.
+RopeSequence.prototype.slice = function slice (from, to) {
+ if ( from === void 0 ) from = 0;
+ if ( to === void 0 ) to = this.length;
+
+ if (from >= to) { return RopeSequence.empty }
+ return this.sliceInner(Math.max(0, from), Math.min(this.length, to))
+};
+
+// :: (number) → T
+// Retrieve the element at the given position from this rope.
+RopeSequence.prototype.get = function get (i) {
+ if (i < 0 || i >= this.length) { return undefined }
+ return this.getInner(i)
+};
+
+// :: ((element: T, index: number) → ?bool, ?number, ?number)
+// Call the given function for each element between the given
+// indices. This tends to be more efficient than looping over the
+// indices and calling `get`, because it doesn't have to descend the
+// tree for every element.
+RopeSequence.prototype.forEach = function forEach (f, from, to) {
+ if ( from === void 0 ) from = 0;
+ if ( to === void 0 ) to = this.length;
+
+ if (from <= to)
+ { this.forEachInner(f, from, to, 0); }
+ else
+ { this.forEachInvertedInner(f, from, to, 0); }
+};
+
+// :: ((element: T, index: number) → U, ?number, ?number) → [U]
+// Map the given functions over the elements of the rope, producing
+// a flat array.
+RopeSequence.prototype.map = function map (f, from, to) {
+ if ( from === void 0 ) from = 0;
+ if ( to === void 0 ) to = this.length;
+
+ var result = [];
+ this.forEach(function (elt, i) { return result.push(f(elt, i)); }, from, to);
+ return result
+};
+
+// :: (?union<[T], RopeSequence>) → RopeSequence
+// Create a rope representing the given array, or return the rope
+// itself if a rope was given.
+RopeSequence.from = function from (values) {
+ if (values instanceof RopeSequence) { return values }
+ return values && values.length ? new Leaf(values) : RopeSequence.empty
+};
+
+var Leaf = /*@__PURE__*/(function (RopeSequence) {
+ function Leaf(values) {
+ RopeSequence.call(this);
+ this.values = values;
+ }
+
+ if ( RopeSequence ) Leaf.__proto__ = RopeSequence;
+ Leaf.prototype = Object.create( RopeSequence && RopeSequence.prototype );
+ Leaf.prototype.constructor = Leaf;
+
+ var prototypeAccessors = { length: { configurable: true },depth: { configurable: true } };
+
+ Leaf.prototype.flatten = function flatten () {
+ return this.values
+ };
+
+ Leaf.prototype.sliceInner = function sliceInner (from, to) {
+ if (from == 0 && to == this.length) { return this }
+ return new Leaf(this.values.slice(from, to))
+ };
+
+ Leaf.prototype.getInner = function getInner (i) {
+ return this.values[i]
+ };
+
+ Leaf.prototype.forEachInner = function forEachInner (f, from, to, start) {
+ for (var i = from; i < to; i++)
+ { if (f(this.values[i], start + i) === false) { return false } }
+ };
+
+ Leaf.prototype.forEachInvertedInner = function forEachInvertedInner (f, from, to, start) {
+ for (var i = from - 1; i >= to; i--)
+ { if (f(this.values[i], start + i) === false) { return false } }
+ };
+
+ Leaf.prototype.leafAppend = function leafAppend (other) {
+ if (this.length + other.length <= GOOD_LEAF_SIZE)
+ { return new Leaf(this.values.concat(other.flatten())) }
+ };
+
+ Leaf.prototype.leafPrepend = function leafPrepend (other) {
+ if (this.length + other.length <= GOOD_LEAF_SIZE)
+ { return new Leaf(other.flatten().concat(this.values)) }
+ };
+
+ prototypeAccessors.length.get = function () { return this.values.length };
+
+ prototypeAccessors.depth.get = function () { return 0 };
+
+ Object.defineProperties( Leaf.prototype, prototypeAccessors );
+
+ return Leaf;
+}(RopeSequence));
+
+// :: RopeSequence
+// The empty rope sequence.
+RopeSequence.empty = new Leaf([]);
+
+var Append = /*@__PURE__*/(function (RopeSequence) {
+ function Append(left, right) {
+ RopeSequence.call(this);
+ this.left = left;
+ this.right = right;
+ this.length = left.length + right.length;
+ this.depth = Math.max(left.depth, right.depth) + 1;
+ }
+
+ if ( RopeSequence ) Append.__proto__ = RopeSequence;
+ Append.prototype = Object.create( RopeSequence && RopeSequence.prototype );
+ Append.prototype.constructor = Append;
+
+ Append.prototype.flatten = function flatten () {
+ return this.left.flatten().concat(this.right.flatten())
+ };
+
+ Append.prototype.getInner = function getInner (i) {
+ return i < this.left.length ? this.left.get(i) : this.right.get(i - this.left.length)
+ };
+
+ Append.prototype.forEachInner = function forEachInner (f, from, to, start) {
+ var leftLen = this.left.length;
+ if (from < leftLen &&
+ this.left.forEachInner(f, from, Math.min(to, leftLen), start) === false)
+ { return false }
+ if (to > leftLen &&
+ this.right.forEachInner(f, Math.max(from - leftLen, 0), Math.min(this.length, to) - leftLen, start + leftLen) === false)
+ { return false }
+ };
+
+ Append.prototype.forEachInvertedInner = function forEachInvertedInner (f, from, to, start) {
+ var leftLen = this.left.length;
+ if (from > leftLen &&
+ this.right.forEachInvertedInner(f, from - leftLen, Math.max(to, leftLen) - leftLen, start + leftLen) === false)
+ { return false }
+ if (to < leftLen &&
+ this.left.forEachInvertedInner(f, Math.min(from, leftLen), to, start) === false)
+ { return false }
+ };
+
+ Append.prototype.sliceInner = function sliceInner (from, to) {
+ if (from == 0 && to == this.length) { return this }
+ var leftLen = this.left.length;
+ if (to <= leftLen) { return this.left.slice(from, to) }
+ if (from >= leftLen) { return this.right.slice(from - leftLen, to - leftLen) }
+ return this.left.slice(from, leftLen).append(this.right.slice(0, to - leftLen))
+ };
+
+ Append.prototype.leafAppend = function leafAppend (other) {
+ var inner = this.right.leafAppend(other);
+ if (inner) { return new Append(this.left, inner) }
+ };
+
+ Append.prototype.leafPrepend = function leafPrepend (other) {
+ var inner = this.left.leafPrepend(other);
+ if (inner) { return new Append(inner, this.right) }
+ };
+
+ Append.prototype.appendInner = function appendInner (other) {
+ if (this.left.depth >= Math.max(this.right.depth, other.depth) + 1)
+ { return new Append(this.left, new Append(this.right, other)) }
+ return new Append(this, other)
+ };
+
+ return Append;
+}(RopeSequence));
+
+module.exports = RopeSequence;
+
+});
+define("uc.micro",["require","exports"],(require,exports)=>{var module={get exports(){return exports},set exports(value){exports._replace(value);exports=value}};
+'use strict';
+
+var regex$5 = /[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
+
+var regex$4 = /[\0-\x1F\x7F-\x9F]/;
+
+var regex$3 = /[\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC3F]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/;
+
+var regex$2 = /[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/;
+
+var regex$1 = /[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF76\uDF7B-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC5\uDECE-\uDEDB\uDEE0-\uDEE8\uDEF0-\uDEF8\uDF00-\uDF92\uDF94-\uDFCA]/;
+
+var regex = /[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/;
+
+exports.Any = regex$5;
+exports.Cc = regex$4;
+exports.Cf = regex$3;
+exports.P = regex$2;
+exports.S = regex$1;
+exports.Z = regex;
+
+});
+define("w3c-keyname",["require","exports"],(require,exports)=>{var module={get exports(){return exports},set exports(value){exports._replace(value);exports=value}};
+'use strict';
+
+Object.defineProperty(exports, '__esModule', { value: true });
+
+var base = {
+ 8: "Backspace",
+ 9: "Tab",
+ 10: "Enter",
+ 12: "NumLock",
+ 13: "Enter",
+ 16: "Shift",
+ 17: "Control",
+ 18: "Alt",
+ 20: "CapsLock",
+ 27: "Escape",
+ 32: " ",
+ 33: "PageUp",
+ 34: "PageDown",
+ 35: "End",
+ 36: "Home",
+ 37: "ArrowLeft",
+ 38: "ArrowUp",
+ 39: "ArrowRight",
+ 40: "ArrowDown",
+ 44: "PrintScreen",
+ 45: "Insert",
+ 46: "Delete",
+ 59: ";",
+ 61: "=",
+ 91: "Meta",
+ 92: "Meta",
+ 106: "*",
+ 107: "+",
+ 108: ",",
+ 109: "-",
+ 110: ".",
+ 111: "/",
+ 144: "NumLock",
+ 145: "ScrollLock",
+ 160: "Shift",
+ 161: "Shift",
+ 162: "Control",
+ 163: "Control",
+ 164: "Alt",
+ 165: "Alt",
+ 173: "-",
+ 186: ";",
+ 187: "=",
+ 188: ",",
+ 189: "-",
+ 190: ".",
+ 191: "/",
+ 192: "`",
+ 219: "[",
+ 220: "\\",
+ 221: "]",
+ 222: "'"
+};
+
+var shift = {
+ 48: ")",
+ 49: "!",
+ 50: "@",
+ 51: "#",
+ 52: "$",
+ 53: "%",
+ 54: "^",
+ 55: "&",
+ 56: "*",
+ 57: "(",
+ 59: ":",
+ 61: "+",
+ 173: "_",
+ 186: ":",
+ 187: "+",
+ 188: "<",
+ 189: "_",
+ 190: ">",
+ 191: "?",
+ 192: "~",
+ 219: "{",
+ 220: "|",
+ 221: "}",
+ 222: "\""
+};
+
+var mac = typeof navigator != "undefined" && /Mac/.test(navigator.platform);
+var ie = typeof navigator != "undefined" && /MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);
+
+// Fill in the digit keys
+for (var i = 0; i < 10; i++) base[48 + i] = base[96 + i] = String(i);
+
+// The function keys
+for (var i = 1; i <= 24; i++) base[i + 111] = "F" + i;
+
+// And the alphabetic keys
+for (var i = 65; i <= 90; i++) {
+ base[i] = String.fromCharCode(i + 32);
+ shift[i] = String.fromCharCode(i);
+}
+
+// For each code that doesn't have a shift-equivalent, copy the base name
+for (var code in base) if (!shift.hasOwnProperty(code)) shift[code] = base[code];
+
+function keyName(event) {
+ // On macOS, keys held with Shift and Cmd don't reflect the effect of Shift in `.key`.
+ // On IE, shift effect is never included in `.key`.
+ var ignoreKey = mac && event.metaKey && event.shiftKey && !event.ctrlKey && !event.altKey ||
+ ie && event.shiftKey && event.key && event.key.length == 1 ||
+ event.key == "Unidentified";
+ var name = (!ignoreKey && event.key) ||
+ (event.shiftKey ? shift : base)[event.keyCode] ||
+ event.key || "Unidentified";
+ // Edge sometimes produces wrong names (Issue #3)
+ if (name == "Esc") name = "Escape";
+ if (name == "Del") name = "Delete";
+ // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8860571/
+ if (name == "Left") name = "ArrowLeft";
+ if (name == "Up") name = "ArrowUp";
+ if (name == "Right") name = "ArrowRight";
+ if (name == "Down") name = "ArrowDown";
+ return name
+}
+
+exports.base = base;
+exports.keyName = keyName;
+exports.shift = shift;
+
+});
+define("entities",["require","exports"],(require,exports)=>{var module={get exports(){return exports},set exports(value){exports._replace(value);exports=value}};
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLAttribute = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.DecodingMode = exports.EntityDecoder = exports.encodeHTML5 = exports.encodeHTML4 = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = exports.EncodingMode = exports.EntityLevel = void 0;
+var decode_js_1 = require("./decode.js");
+var encode_js_1 = require("./encode.js");
+var escape_js_1 = require("./escape.js");
+/** The level of entities to support. */
+var EntityLevel;
+(function (EntityLevel) {
+ /** Support only XML entities. */
+ EntityLevel[EntityLevel["XML"] = 0] = "XML";
+ /** Support HTML entities, which are a superset of XML entities. */
+ EntityLevel[EntityLevel["HTML"] = 1] = "HTML";
+})(EntityLevel = exports.EntityLevel || (exports.EntityLevel = {}));
+var EncodingMode;
+(function (EncodingMode) {
+ /**
+ * The output is UTF-8 encoded. Only characters that need escaping within
+ * XML will be escaped.
+ */
+ EncodingMode[EncodingMode["UTF8"] = 0] = "UTF8";
+ /**
+ * The output consists only of ASCII characters. Characters that need
+ * escaping within HTML, and characters that aren't ASCII characters will
+ * be escaped.
+ */
+ EncodingMode[EncodingMode["ASCII"] = 1] = "ASCII";
+ /**
+ * Encode all characters that have an equivalent entity, as well as all
+ * characters that are not ASCII characters.
+ */
+ EncodingMode[EncodingMode["Extensive"] = 2] = "Extensive";
+ /**
+ * Encode all characters that have to be escaped in HTML attributes,
+ * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.
+ */
+ EncodingMode[EncodingMode["Attribute"] = 3] = "Attribute";
+ /**
+ * Encode all characters that have to be escaped in HTML text,
+ * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.
+ */
+ EncodingMode[EncodingMode["Text"] = 4] = "Text";
+})(EncodingMode = exports.EncodingMode || (exports.EncodingMode = {}));
+/**
+ * Decodes a string with entities.
+ *
+ * @param data String to decode.
+ * @param options Decoding options.
+ */
+function decode(data, options) {
+ if (options === void 0) { options = EntityLevel.XML; }
+ var level = typeof options === "number" ? options : options.level;
+ if (level === EntityLevel.HTML) {
+ var mode = typeof options === "object" ? options.mode : undefined;
+ return (0, decode_js_1.decodeHTML)(data, mode);
+ }
+ return (0, decode_js_1.decodeXML)(data);
+}
+exports.decode = decode;
+/**
+ * Decodes a string with entities. Does not allow missing trailing semicolons for entities.
+ *
+ * @param data String to decode.
+ * @param options Decoding options.
+ * @deprecated Use `decode` with the `mode` set to `Strict`.
+ */
+function decodeStrict(data, options) {
+ var _a;
+ if (options === void 0) { options = EntityLevel.XML; }
+ var opts = typeof options === "number" ? { level: options } : options;
+ (_a = opts.mode) !== null && _a !== void 0 ? _a : (opts.mode = decode_js_1.DecodingMode.Strict);
+ return decode(data, opts);
+}
+exports.decodeStrict = decodeStrict;
+/**
+ * Encodes a string with entities.
+ *
+ * @param data String to encode.
+ * @param options Encoding options.
+ */
+function encode(data, options) {
+ if (options === void 0) { options = EntityLevel.XML; }
+ var opts = typeof options === "number" ? { level: options } : options;
+ // Mode `UTF8` just escapes XML entities
+ if (opts.mode === EncodingMode.UTF8)
+ return (0, escape_js_1.escapeUTF8)(data);
+ if (opts.mode === EncodingMode.Attribute)
+ return (0, escape_js_1.escapeAttribute)(data);
+ if (opts.mode === EncodingMode.Text)
+ return (0, escape_js_1.escapeText)(data);
+ if (opts.level === EntityLevel.HTML) {
+ if (opts.mode === EncodingMode.ASCII) {
+ return (0, encode_js_1.encodeNonAsciiHTML)(data);
+ }
+ return (0, encode_js_1.encodeHTML)(data);
+ }
+ // ASCII and Extensive are equivalent
+ return (0, escape_js_1.encodeXML)(data);
+}
+exports.encode = encode;
+var escape_js_2 = require("./escape.js");
+Object.defineProperty(exports, "encodeXML", { enumerable: true, get: function () { return escape_js_2.encodeXML; } });
+Object.defineProperty(exports, "escape", { enumerable: true, get: function () { return escape_js_2.escape; } });
+Object.defineProperty(exports, "escapeUTF8", { enumerable: true, get: function () { return escape_js_2.escapeUTF8; } });
+Object.defineProperty(exports, "escapeAttribute", { enumerable: true, get: function () { return escape_js_2.escapeAttribute; } });
+Object.defineProperty(exports, "escapeText", { enumerable: true, get: function () { return escape_js_2.escapeText; } });
+var encode_js_2 = require("./encode.js");
+Object.defineProperty(exports, "encodeHTML", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });
+Object.defineProperty(exports, "encodeNonAsciiHTML", { enumerable: true, get: function () { return encode_js_2.encodeNonAsciiHTML; } });
+// Legacy aliases (deprecated)
+Object.defineProperty(exports, "encodeHTML4", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });
+Object.defineProperty(exports, "encodeHTML5", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });
+var decode_js_2 = require("./decode.js");
+Object.defineProperty(exports, "EntityDecoder", { enumerable: true, get: function () { return decode_js_2.EntityDecoder; } });
+Object.defineProperty(exports, "DecodingMode", { enumerable: true, get: function () { return decode_js_2.DecodingMode; } });
+Object.defineProperty(exports, "decodeXML", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });
+Object.defineProperty(exports, "decodeHTML", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });
+Object.defineProperty(exports, "decodeHTMLStrict", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });
+Object.defineProperty(exports, "decodeHTMLAttribute", { enumerable: true, get: function () { return decode_js_2.decodeHTMLAttribute; } });
+// Legacy aliases (deprecated)
+Object.defineProperty(exports, "decodeHTML4", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });
+Object.defineProperty(exports, "decodeHTML5", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });
+Object.defineProperty(exports, "decodeHTML4Strict", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });
+Object.defineProperty(exports, "decodeHTML5Strict", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });
+Object.defineProperty(exports, "decodeXMLStrict", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });
+
+});
+define("entities/decode",["require","exports"],(require,exports)=>{var module={get exports(){return exports},set exports(value){exports._replace(value);exports=value}};
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTMLAttribute = exports.decodeHTML = exports.determineBranch = exports.EntityDecoder = exports.DecodingMode = exports.BinTrieFlags = exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0;
+var decode_data_html_js_1 = __importDefault(require("./generated/decode-data-html.js"));
+exports.htmlDecodeTree = decode_data_html_js_1.default;
+var decode_data_xml_js_1 = __importDefault(require("./generated/decode-data-xml.js"));
+exports.xmlDecodeTree = decode_data_xml_js_1.default;
+var decode_codepoint_js_1 = __importStar(require("./decode_codepoint.js"));
+exports.decodeCodePoint = decode_codepoint_js_1.default;
+var decode_codepoint_js_2 = require("./decode_codepoint.js");
+Object.defineProperty(exports, "replaceCodePoint", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } });
+Object.defineProperty(exports, "fromCodePoint", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } });
+var CharCodes;
+(function (CharCodes) {
+ CharCodes[CharCodes["NUM"] = 35] = "NUM";
+ CharCodes[CharCodes["SEMI"] = 59] = "SEMI";
+ CharCodes[CharCodes["EQUALS"] = 61] = "EQUALS";
+ CharCodes[CharCodes["ZERO"] = 48] = "ZERO";
+ CharCodes[CharCodes["NINE"] = 57] = "NINE";
+ CharCodes[CharCodes["LOWER_A"] = 97] = "LOWER_A";
+ CharCodes[CharCodes["LOWER_F"] = 102] = "LOWER_F";
+ CharCodes[CharCodes["LOWER_X"] = 120] = "LOWER_X";
+ CharCodes[CharCodes["LOWER_Z"] = 122] = "LOWER_Z";
+ CharCodes[CharCodes["UPPER_A"] = 65] = "UPPER_A";
+ CharCodes[CharCodes["UPPER_F"] = 70] = "UPPER_F";
+ CharCodes[CharCodes["UPPER_Z"] = 90] = "UPPER_Z";
+})(CharCodes || (CharCodes = {}));
+/** Bit that needs to be set to convert an upper case ASCII character to lower case */
+var TO_LOWER_BIT = 32;
+var BinTrieFlags;
+(function (BinTrieFlags) {
+ BinTrieFlags[BinTrieFlags["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH";
+ BinTrieFlags[BinTrieFlags["BRANCH_LENGTH"] = 16256] = "BRANCH_LENGTH";
+ BinTrieFlags[BinTrieFlags["JUMP_TABLE"] = 127] = "JUMP_TABLE";
+})(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {}));
+function isNumber(code) {
+ return code >= CharCodes.ZERO && code <= CharCodes.NINE;
+}
+function isHexadecimalCharacter(code) {
+ return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||
+ (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));
+}
+function isAsciiAlphaNumeric(code) {
+ return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||
+ (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||
+ isNumber(code));
+}
+/**
+ * Checks if the given character is a valid end character for an entity in an attribute.
+ *
+ * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.
+ * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state
+ */
+function isEntityInAttributeInvalidEnd(code) {
+ return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);
+}
+var EntityDecoderState;
+(function (EntityDecoderState) {
+ EntityDecoderState[EntityDecoderState["EntityStart"] = 0] = "EntityStart";
+ EntityDecoderState[EntityDecoderState["NumericStart"] = 1] = "NumericStart";
+ EntityDecoderState[EntityDecoderState["NumericDecimal"] = 2] = "NumericDecimal";
+ EntityDecoderState[EntityDecoderState["NumericHex"] = 3] = "NumericHex";
+ EntityDecoderState[EntityDecoderState["NamedEntity"] = 4] = "NamedEntity";
+})(EntityDecoderState || (EntityDecoderState = {}));
+var DecodingMode;
+(function (DecodingMode) {
+ /** Entities in text nodes that can end with any character. */
+ DecodingMode[DecodingMode["Legacy"] = 0] = "Legacy";
+ /** Only allow entities terminated with a semicolon. */
+ DecodingMode[DecodingMode["Strict"] = 1] = "Strict";
+ /** Entities in attributes have limitations on ending characters. */
+ DecodingMode[DecodingMode["Attribute"] = 2] = "Attribute";
+})(DecodingMode = exports.DecodingMode || (exports.DecodingMode = {}));
+/**
+ * Token decoder with support of writing partial entities.
+ */
+var EntityDecoder = /** @class */ (function () {
+ function EntityDecoder(
+ /** The tree used to decode entities. */
+ decodeTree,
+ /**
+ * The function that is called when a codepoint is decoded.
+ *
+ * For multi-byte named entities, this will be called multiple times,
+ * with the second codepoint, and the same `consumed` value.
+ *
+ * @param codepoint The decoded codepoint.
+ * @param consumed The number of bytes consumed by the decoder.
+ */
+ emitCodePoint,
+ /** An object that is used to produce errors. */
+ errors) {
+ this.decodeTree = decodeTree;
+ this.emitCodePoint = emitCodePoint;
+ this.errors = errors;
+ /** The current state of the decoder. */
+ this.state = EntityDecoderState.EntityStart;
+ /** Characters that were consumed while parsing an entity. */
+ this.consumed = 1;
+ /**
+ * The result of the entity.
+ *
+ * Either the result index of a numeric entity, or the codepoint of a
+ * numeric entity.
+ */
+ this.result = 0;
+ /** The current index in the decode tree. */
+ this.treeIndex = 0;
+ /** The number of characters that were consumed in excess. */
+ this.excess = 1;
+ /** The mode in which the decoder is operating. */
+ this.decodeMode = DecodingMode.Strict;
+ }
+ /** Resets the instance to make it reusable. */
+ EntityDecoder.prototype.startEntity = function (decodeMode) {
+ this.decodeMode = decodeMode;
+ this.state = EntityDecoderState.EntityStart;
+ this.result = 0;
+ this.treeIndex = 0;
+ this.excess = 1;
+ this.consumed = 1;
+ };
+ /**
+ * Write an entity to the decoder. This can be called multiple times with partial entities.
+ * If the entity is incomplete, the decoder will return -1.
+ *
+ * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the
+ * entity is incomplete, and resume when the next string is written.
+ *
+ * @param string The string containing the entity (or a continuation of the entity).
+ * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.
+ * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
+ */
+ EntityDecoder.prototype.write = function (str, offset) {
+ switch (this.state) {
+ case EntityDecoderState.EntityStart: {
+ if (str.charCodeAt(offset) === CharCodes.NUM) {
+ this.state = EntityDecoderState.NumericStart;
+ this.consumed += 1;
+ return this.stateNumericStart(str, offset + 1);
+ }
+ this.state = EntityDecoderState.NamedEntity;
+ return this.stateNamedEntity(str, offset);
+ }
+ case EntityDecoderState.NumericStart: {
+ return this.stateNumericStart(str, offset);
+ }
+ case EntityDecoderState.NumericDecimal: {
+ return this.stateNumericDecimal(str, offset);
+ }
+ case EntityDecoderState.NumericHex: {
+ return this.stateNumericHex(str, offset);
+ }
+ case EntityDecoderState.NamedEntity: {
+ return this.stateNamedEntity(str, offset);
+ }
+ }
+ };
+ /**
+ * Switches between the numeric decimal and hexadecimal states.
+ *
+ * Equivalent to the `Numeric character reference state` in the HTML spec.
+ *
+ * @param str The string containing the entity (or a continuation of the entity).
+ * @param offset The current offset.
+ * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
+ */
+ EntityDecoder.prototype.stateNumericStart = function (str, offset) {
+ if (offset >= str.length) {
+ return -1;
+ }
+ if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {
+ this.state = EntityDecoderState.NumericHex;
+ this.consumed += 1;
+ return this.stateNumericHex(str, offset + 1);
+ }
+ this.state = EntityDecoderState.NumericDecimal;
+ return this.stateNumericDecimal(str, offset);
+ };
+ EntityDecoder.prototype.addToNumericResult = function (str, start, end, base) {
+ if (start !== end) {
+ var digitCount = end - start;
+ this.result =
+ this.result * Math.pow(base, digitCount) +
+ parseInt(str.substr(start, digitCount), base);
+ this.consumed += digitCount;
+ }
+ };
+ /**
+ * Parses a hexadecimal numeric entity.
+ *
+ * Equivalent to the `Hexademical character reference state` in the HTML spec.
+ *
+ * @param str The string containing the entity (or a continuation of the entity).
+ * @param offset The current offset.
+ * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
+ */
+ EntityDecoder.prototype.stateNumericHex = function (str, offset) {
+ var startIdx = offset;
+ while (offset < str.length) {
+ var char = str.charCodeAt(offset);
+ if (isNumber(char) || isHexadecimalCharacter(char)) {
+ offset += 1;
+ }
+ else {
+ this.addToNumericResult(str, startIdx, offset, 16);
+ return this.emitNumericEntity(char, 3);
+ }
+ }
+ this.addToNumericResult(str, startIdx, offset, 16);
+ return -1;
+ };
+ /**
+ * Parses a decimal numeric entity.
+ *
+ * Equivalent to the `Decimal character reference state` in the HTML spec.
+ *
+ * @param str The string containing the entity (or a continuation of the entity).
+ * @param offset The current offset.
+ * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
+ */
+ EntityDecoder.prototype.stateNumericDecimal = function (str, offset) {
+ var startIdx = offset;
+ while (offset < str.length) {
+ var char = str.charCodeAt(offset);
+ if (isNumber(char)) {
+ offset += 1;
+ }
+ else {
+ this.addToNumericResult(str, startIdx, offset, 10);
+ return this.emitNumericEntity(char, 2);
+ }
+ }
+ this.addToNumericResult(str, startIdx, offset, 10);
+ return -1;
+ };
+ /**
+ * Validate and emit a numeric entity.
+ *
+ * Implements the logic from the `Hexademical character reference start
+ * state` and `Numeric character reference end state` in the HTML spec.
+ *
+ * @param lastCp The last code point of the entity. Used to see if the
+ * entity was terminated with a semicolon.
+ * @param expectedLength The minimum number of characters that should be
+ * consumed. Used to validate that at least one digit
+ * was consumed.
+ * @returns The number of characters that were consumed.
+ */
+ EntityDecoder.prototype.emitNumericEntity = function (lastCp, expectedLength) {
+ var _a;
+ // Ensure we consumed at least one digit.
+ if (this.consumed <= expectedLength) {
+ (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);
+ return 0;
+ }
+ // Figure out if this is a legit end of the entity
+ if (lastCp === CharCodes.SEMI) {
+ this.consumed += 1;
+ }
+ else if (this.decodeMode === DecodingMode.Strict) {
+ return 0;
+ }
+ this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed);
+ if (this.errors) {
+ if (lastCp !== CharCodes.SEMI) {
+ this.errors.missingSemicolonAfterCharacterReference();
+ }
+ this.errors.validateNumericCharacterReference(this.result);
+ }
+ return this.consumed;
+ };
+ /**
+ * Parses a named entity.
+ *
+ * Equivalent to the `Named character reference state` in the HTML spec.
+ *
+ * @param str The string containing the entity (or a continuation of the entity).
+ * @param offset The current offset.
+ * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
+ */
+ EntityDecoder.prototype.stateNamedEntity = function (str, offset) {
+ var decodeTree = this.decodeTree;
+ var current = decodeTree[this.treeIndex];
+ // The mask is the number of bytes of the value, including the current byte.
+ var valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;
+ for (; offset < str.length; offset++, this.excess++) {
+ var char = str.charCodeAt(offset);
+ this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);
+ if (this.treeIndex < 0) {
+ return this.result === 0 ||
+ // If we are parsing an attribute
+ (this.decodeMode === DecodingMode.Attribute &&
+ // We shouldn't have consumed any characters after the entity,
+ (valueLength === 0 ||
+ // And there should be no invalid characters.
+ isEntityInAttributeInvalidEnd(char)))
+ ? 0
+ : this.emitNotTerminatedNamedEntity();
+ }
+ current = decodeTree[this.treeIndex];
+ valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;
+ // If the branch is a value, store it and continue
+ if (valueLength !== 0) {
+ // If the entity is terminated by a semicolon, we are done.
+ if (char === CharCodes.SEMI) {
+ return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);
+ }
+ // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.
+ if (this.decodeMode !== DecodingMode.Strict) {
+ this.result = this.treeIndex;
+ this.consumed += this.excess;
+ this.excess = 0;
+ }
+ }
+ }
+ return -1;
+ };
+ /**
+ * Emit a named entity that was not terminated with a semicolon.
+ *
+ * @returns The number of characters consumed.
+ */
+ EntityDecoder.prototype.emitNotTerminatedNamedEntity = function () {
+ var _a;
+ var _b = this, result = _b.result, decodeTree = _b.decodeTree;
+ var valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;
+ this.emitNamedEntityData(result, valueLength, this.consumed);
+ (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();
+ return this.consumed;
+ };
+ /**
+ * Emit a named entity.
+ *
+ * @param result The index of the entity in the decode tree.
+ * @param valueLength The number of bytes in the entity.
+ * @param consumed The number of characters consumed.
+ *
+ * @returns The number of characters consumed.
+ */
+ EntityDecoder.prototype.emitNamedEntityData = function (result, valueLength, consumed) {
+ var decodeTree = this.decodeTree;
+ this.emitCodePoint(valueLength === 1
+ ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH
+ : decodeTree[result + 1], consumed);
+ if (valueLength === 3) {
+ // For multi-byte values, we need to emit the second byte.
+ this.emitCodePoint(decodeTree[result + 2], consumed);
+ }
+ return consumed;
+ };
+ /**
+ * Signal to the parser that the end of the input was reached.
+ *
+ * Remaining data will be emitted and relevant errors will be produced.
+ *
+ * @returns The number of characters consumed.
+ */
+ EntityDecoder.prototype.end = function () {
+ var _a;
+ switch (this.state) {
+ case EntityDecoderState.NamedEntity: {
+ // Emit a named entity if we have one.
+ return this.result !== 0 &&
+ (this.decodeMode !== DecodingMode.Attribute ||
+ this.result === this.treeIndex)
+ ? this.emitNotTerminatedNamedEntity()
+ : 0;
+ }
+ // Otherwise, emit a numeric entity if we have one.
+ case EntityDecoderState.NumericDecimal: {
+ return this.emitNumericEntity(0, 2);
+ }
+ case EntityDecoderState.NumericHex: {
+ return this.emitNumericEntity(0, 3);
+ }
+ case EntityDecoderState.NumericStart: {
+ (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);
+ return 0;
+ }
+ case EntityDecoderState.EntityStart: {
+ // Return 0 if we have no entity.
+ return 0;
+ }
+ }
+ };
+ return EntityDecoder;
+}());
+exports.EntityDecoder = EntityDecoder;
+/**
+ * Creates a function that decodes entities in a string.
+ *
+ * @param decodeTree The decode tree.
+ * @returns A function that decodes entities in a string.
+ */
+function getDecoder(decodeTree) {
+ var ret = "";
+ var decoder = new EntityDecoder(decodeTree, function (str) { return (ret += (0, decode_codepoint_js_1.fromCodePoint)(str)); });
+ return function decodeWithTrie(str, decodeMode) {
+ var lastIndex = 0;
+ var offset = 0;
+ while ((offset = str.indexOf("&", offset)) >= 0) {
+ ret += str.slice(lastIndex, offset);
+ decoder.startEntity(decodeMode);
+ var len = decoder.write(str,
+ // Skip the "&"
+ offset + 1);
+ if (len < 0) {
+ lastIndex = offset + decoder.end();
+ break;
+ }
+ lastIndex = offset + len;
+ // If `len` is 0, skip the current `&` and continue.
+ offset = len === 0 ? lastIndex + 1 : lastIndex;
+ }
+ var result = ret + str.slice(lastIndex);
+ // Make sure we don't keep a reference to the final string.
+ ret = "";
+ return result;
+ };
+}
+/**
+ * Determines the branch of the current node that is taken given the current
+ * character. This function is used to traverse the trie.
+ *
+ * @param decodeTree The trie.
+ * @param current The current node.
+ * @param nodeIdx The index right after the current node and its value.
+ * @param char The current character.
+ * @returns The index of the next node, or -1 if no branch is taken.
+ */
+function determineBranch(decodeTree, current, nodeIdx, char) {
+ var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;
+ var jumpOffset = current & BinTrieFlags.JUMP_TABLE;
+ // Case 1: Single branch encoded in jump offset
+ if (branchCount === 0) {
+ return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;
+ }
+ // Case 2: Multiple branches encoded in jump table
+ if (jumpOffset) {
+ var value = char - jumpOffset;
+ return value < 0 || value >= branchCount
+ ? -1
+ : decodeTree[nodeIdx + value] - 1;
+ }
+ // Case 3: Multiple branches encoded in dictionary
+ // Binary search for the character.
+ var lo = nodeIdx;
+ var hi = lo + branchCount - 1;
+ while (lo <= hi) {
+ var mid = (lo + hi) >>> 1;
+ var midVal = decodeTree[mid];
+ if (midVal < char) {
+ lo = mid + 1;
+ }
+ else if (midVal > char) {
+ hi = mid - 1;
+ }
+ else {
+ return decodeTree[mid + branchCount];
+ }
+ }
+ return -1;
+}
+exports.determineBranch = determineBranch;
+var htmlDecoder = getDecoder(decode_data_html_js_1.default);
+var xmlDecoder = getDecoder(decode_data_xml_js_1.default);
+/**
+ * Decodes an HTML string.
+ *
+ * @param str The string to decode.
+ * @param mode The decoding mode.
+ * @returns The decoded string.
+ */
+function decodeHTML(str, mode) {
+ if (mode === void 0) { mode = DecodingMode.Legacy; }
+ return htmlDecoder(str, mode);
+}
+exports.decodeHTML = decodeHTML;
+/**
+ * Decodes an HTML string in an attribute.
+ *
+ * @param str The string to decode.
+ * @returns The decoded string.
+ */
+function decodeHTMLAttribute(str) {
+ return htmlDecoder(str, DecodingMode.Attribute);
+}
+exports.decodeHTMLAttribute = decodeHTMLAttribute;
+/**
+ * Decodes an HTML string, requiring all entities to be terminated by a semicolon.
+ *
+ * @param str The string to decode.
+ * @returns The decoded string.
+ */
+function decodeHTMLStrict(str) {
+ return htmlDecoder(str, DecodingMode.Strict);
+}
+exports.decodeHTMLStrict = decodeHTMLStrict;
+/**
+ * Decodes an XML string, requiring all entities to be terminated by a semicolon.
+ *
+ * @param str The string to decode.
+ * @returns The decoded string.
+ */
+function decodeXML(str) {
+ return xmlDecoder(str, DecodingMode.Strict);
+}
+exports.decodeXML = decodeXML;
+
+});
+define("entities/encode",["require","exports"],(require,exports)=>{var module={get exports(){return exports},set exports(value){exports._replace(value);exports=value}};
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.encodeNonAsciiHTML = exports.encodeHTML = void 0;
+var encode_html_js_1 = __importDefault(require("./generated/encode-html.js"));
+var escape_js_1 = require("./escape.js");
+var htmlReplacer = /[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;
+/**
+ * Encodes all characters in the input using HTML entities. This includes
+ * characters that are valid ASCII characters in HTML documents, such as `#`.
+ *
+ * To get a more compact output, consider using the `encodeNonAsciiHTML`
+ * function, which will only encode characters that are not valid in HTML
+ * documents, as well as non-ASCII characters.
+ *
+ * If a character has no equivalent entity, a numeric hexadecimal reference
+ * (eg. `ü`) will be used.
+ */
+function encodeHTML(data) {
+ return encodeHTMLTrieRe(htmlReplacer, data);
+}
+exports.encodeHTML = encodeHTML;
+/**
+ * Encodes all non-ASCII characters, as well as characters not valid in HTML
+ * documents using HTML entities. This function will not encode characters that
+ * are valid in HTML documents, such as `#`.
+ *
+ * If a character has no equivalent entity, a numeric hexadecimal reference
+ * (eg. `ü`) will be used.
+ */
+function encodeNonAsciiHTML(data) {
+ return encodeHTMLTrieRe(escape_js_1.xmlReplacer, data);
+}
+exports.encodeNonAsciiHTML = encodeNonAsciiHTML;
+function encodeHTMLTrieRe(regExp, str) {
+ var ret = "";
+ var lastIdx = 0;
+ var match;
+ while ((match = regExp.exec(str)) !== null) {
+ var i = match.index;
+ ret += str.substring(lastIdx, i);
+ var char = str.charCodeAt(i);
+ var next = encode_html_js_1.default.get(char);
+ if (typeof next === "object") {
+ // We are in a branch. Try to match the next char.
+ if (i + 1 < str.length) {
+ var nextChar = str.charCodeAt(i + 1);
+ var value = typeof next.n === "number"
+ ? next.n === nextChar
+ ? next.o
+ : undefined
+ : next.n.get(nextChar);
+ if (value !== undefined) {
+ ret += value;
+ lastIdx = regExp.lastIndex += 1;
+ continue;
+ }
+ }
+ next = next.v;
+ }
+ // We might have a tree node without a value; skip and use a numeric entity.
+ if (next !== undefined) {
+ ret += next;
+ lastIdx = i + 1;
+ }
+ else {
+ var cp = (0, escape_js_1.getCodePoint)(str, i);
+ ret += "".concat(cp.toString(16), ";");
+ // Increase by 1 if we have a surrogate pair
+ lastIdx = regExp.lastIndex += Number(cp !== char);
+ }
+ }
+ return ret + str.substr(lastIdx);
+}
+
+});
+define("entities/escape",["require","exports"],(require,exports)=>{var module={get exports(){return exports},set exports(value){exports._replace(value);exports=value}};
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.getCodePoint = exports.xmlReplacer = void 0;
+exports.xmlReplacer = /["&'<>$\x80-\uFFFF]/g;
+var xmlCodeMap = new Map([
+ [34, """],
+ [38, "&"],
+ [39, "'"],
+ [60, "<"],
+ [62, ">"],
+]);
+// For compatibility with node < 4, we wrap `codePointAt`
+exports.getCodePoint =
+// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
+String.prototype.codePointAt != null
+ ? function (str, index) { return str.codePointAt(index); }
+ : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
+ function (c, index) {
+ return (c.charCodeAt(index) & 0xfc00) === 0xd800
+ ? (c.charCodeAt(index) - 0xd800) * 0x400 +
+ c.charCodeAt(index + 1) -
+ 0xdc00 +
+ 0x10000
+ : c.charCodeAt(index);
+ };
+/**
+ * Encodes all non-ASCII characters, as well as characters not valid in XML
+ * documents using XML entities.
+ *
+ * If a character has no equivalent entity, a
+ * numeric hexadecimal reference (eg. `ü`) will be used.
+ */
+function encodeXML(str) {
+ var ret = "";
+ var lastIdx = 0;
+ var match;
+ while ((match = exports.xmlReplacer.exec(str)) !== null) {
+ var i = match.index;
+ var char = str.charCodeAt(i);
+ var next = xmlCodeMap.get(char);
+ if (next !== undefined) {
+ ret += str.substring(lastIdx, i) + next;
+ lastIdx = i + 1;
+ }
+ else {
+ ret += "".concat(str.substring(lastIdx, i), "").concat((0, exports.getCodePoint)(str, i).toString(16), ";");
+ // Increase by 1 if we have a surrogate pair
+ lastIdx = exports.xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);
+ }
+ }
+ return ret + str.substr(lastIdx);
+}
+exports.encodeXML = encodeXML;
+/**
+ * Encodes all non-ASCII characters, as well as characters not valid in XML
+ * documents using numeric hexadecimal reference (eg. `ü`).
+ *
+ * Have a look at `escapeUTF8` if you want a more concise output at the expense
+ * of reduced transportability.
+ *
+ * @param data String to escape.
+ */
+exports.escape = encodeXML;
+/**
+ * Creates a function that escapes all characters matched by the given regular
+ * expression using the given map of characters to escape to their entities.
+ *
+ * @param regex Regular expression to match characters to escape.
+ * @param map Map of characters to escape to their entities.
+ *
+ * @returns Function that escapes all characters matched by the given regular
+ * expression using the given map of characters to escape to their entities.
+ */
+function getEscaper(regex, map) {
+ return function escape(data) {
+ var match;
+ var lastIdx = 0;
+ var result = "";
+ while ((match = regex.exec(data))) {
+ if (lastIdx !== match.index) {
+ result += data.substring(lastIdx, match.index);
+ }
+ // We know that this character will be in the map.
+ result += map.get(match[0].charCodeAt(0));
+ // Every match will be of length 1
+ lastIdx = match.index + 1;
+ }
+ return result + data.substring(lastIdx);
+ };
+}
+/**
+ * Encodes all characters not valid in XML documents using XML entities.
+ *
+ * Note that the output will be character-set dependent.
+ *
+ * @param data String to escape.
+ */
+exports.escapeUTF8 = getEscaper(/[&<>'"]/g, xmlCodeMap);
+/**
+ * Encodes all characters that have to be escaped in HTML attributes,
+ * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.
+ *
+ * @param data String to escape.
+ */
+exports.escapeAttribute = getEscaper(/["&\u00A0]/g, new Map([
+ [34, """],
+ [38, "&"],
+ [160, " "],
+]));
+/**
+ * Encodes all characters that have to be escaped in HTML text,
+ * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.
+ *
+ * @param data String to escape.
+ */
+exports.escapeText = getEscaper(/[&<>\u00A0]/g, new Map([
+ [38, "&"],
+ [60, "<"],
+ [62, ">"],
+ [160, " "],
+]));
+
+});
+define("entities/decode_codepoint",["require","exports"],(require,exports)=>{var module={get exports(){return exports},set exports(value){exports._replace(value);exports=value}};
+"use strict";
+// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134
+var _a;
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.replaceCodePoint = exports.fromCodePoint = void 0;
+var decodeMap = new Map([
+ [0, 65533],
+ // C1 Unicode control character reference replacements
+ [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],
+]);
+/**
+ * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.
+ */
+exports.fromCodePoint =
+// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins
+(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {
+ var output = "";
+ if (codePoint > 0xffff) {
+ codePoint -= 0x10000;
+ output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);
+ codePoint = 0xdc00 | (codePoint & 0x3ff);
+ }
+ output += String.fromCharCode(codePoint);
+ return output;
+};
+/**
+ * Replace the given code point with a replacement character if it is a
+ * surrogate or is outside the valid range. Otherwise return the code
+ * point unchanged.
+ */
+function replaceCodePoint(codePoint) {
+ var _a;
+ if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {
+ return 0xfffd;
+ }
+ return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;
+}
+exports.replaceCodePoint = replaceCodePoint;
+/**
+ * Replace the code point if relevant, then convert it to a string.
+ *
+ * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.
+ * @param codePoint The code point to decode.
+ * @returns The decoded code point.
+ */
+function decodeCodePoint(codePoint) {
+ return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));
+}
+exports.default = decodeCodePoint;
+
+});
+define("entities/generated/decode-data-html",["require","exports"],(require,exports)=>{var module={get exports(){return exports},set exports(value){exports._replace(value);exports=value}};
+"use strict";
+// Generated using scripts/write-decode-map.ts
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = new Uint16Array(
+// prettier-ignore
+"\u1d41<\xd5\u0131\u028a\u049d\u057b\u05d0\u0675\u06de\u07a2\u07d6\u080f\u0a4a\u0a91\u0da1\u0e6d\u0f09\u0f26\u10ca\u1228\u12e1\u1415\u149d\u14c3\u14df\u1525\0\0\0\0\0\0\u156b\u16cd\u198d\u1c12\u1ddd\u1f7e\u2060\u21b0\u228d\u23c0\u23fb\u2442\u2824\u2912\u2d08\u2e48\u2fce\u3016\u32ba\u3639\u37ac\u38fe\u3a28\u3a71\u3ae0\u3b2e\u0800EMabcfglmnoprstu\\bfms\x7f\x84\x8b\x90\x95\x98\xa6\xb3\xb9\xc8\xcflig\u803b\xc6\u40c6P\u803b&\u4026cute\u803b\xc1\u40c1reve;\u4102\u0100iyx}rc\u803b\xc2\u40c2;\u4410r;\uc000\ud835\udd04rave\u803b\xc0\u40c0pha;\u4391acr;\u4100d;\u6a53\u0100gp\x9d\xa1on;\u4104f;\uc000\ud835\udd38plyFunction;\u6061ing\u803b\xc5\u40c5\u0100cs\xbe\xc3r;\uc000\ud835\udc9cign;\u6254ilde\u803b\xc3\u40c3ml\u803b\xc4\u40c4\u0400aceforsu\xe5\xfb\xfe\u0117\u011c\u0122\u0127\u012a\u0100cr\xea\xf2kslash;\u6216\u0176\xf6\xf8;\u6ae7ed;\u6306y;\u4411\u0180crt\u0105\u010b\u0114ause;\u6235noullis;\u612ca;\u4392r;\uc000\ud835\udd05pf;\uc000\ud835\udd39eve;\u42d8c\xf2\u0113mpeq;\u624e\u0700HOacdefhilorsu\u014d\u0151\u0156\u0180\u019e\u01a2\u01b5\u01b7\u01ba\u01dc\u0215\u0273\u0278\u027ecy;\u4427PY\u803b\xa9\u40a9\u0180cpy\u015d\u0162\u017aute;\u4106\u0100;i\u0167\u0168\u62d2talDifferentialD;\u6145leys;\u612d\u0200aeio\u0189\u018e\u0194\u0198ron;\u410cdil\u803b\xc7\u40c7rc;\u4108nint;\u6230ot;\u410a\u0100dn\u01a7\u01adilla;\u40b8terDot;\u40b7\xf2\u017fi;\u43a7rcle\u0200DMPT\u01c7\u01cb\u01d1\u01d6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01e2\u01f8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020foubleQuote;\u601duote;\u6019\u0200lnpu\u021e\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6a74\u0180git\u022f\u0236\u023aruent;\u6261nt;\u622fourIntegral;\u622e\u0100fr\u024c\u024e;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6a2fcr;\uc000\ud835\udc9ep\u0100;C\u0284\u0285\u62d3ap;\u624d\u0580DJSZacefios\u02a0\u02ac\u02b0\u02b4\u02b8\u02cb\u02d7\u02e1\u02e6\u0333\u048d\u0100;o\u0179\u02a5trahd;\u6911cy;\u4402cy;\u4405cy;\u440f\u0180grs\u02bf\u02c4\u02c7ger;\u6021r;\u61a1hv;\u6ae4\u0100ay\u02d0\u02d5ron;\u410e;\u4414l\u0100;t\u02dd\u02de\u6207a;\u4394r;\uc000\ud835\udd07\u0100af\u02eb\u0327\u0100cm\u02f0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031ccute;\u40b4o\u0174\u030b\u030d;\u42d9bleAcute;\u42ddrave;\u4060ilde;\u42dcond;\u62c4ferentialD;\u6146\u0470\u033d\0\0\0\u0342\u0354\0\u0405f;\uc000\ud835\udd3b\u0180;DE\u0348\u0349\u034d\u40a8ot;\u60dcqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03cf\u03e2\u03f8ontourIntegra\xec\u0239o\u0274\u0379\0\0\u037b\xbb\u0349nArrow;\u61d3\u0100eo\u0387\u03a4ft\u0180ART\u0390\u0396\u03a1rrow;\u61d0ightArrow;\u61d4e\xe5\u02cang\u0100LR\u03ab\u03c4eft\u0100AR\u03b3\u03b9rrow;\u67f8ightArrow;\u67faightArrow;\u67f9ight\u0100AT\u03d8\u03derrow;\u61d2ee;\u62a8p\u0241\u03e9\0\0\u03efrrow;\u61d1ownArrow;\u61d5erticalBar;\u6225n\u0300ABLRTa\u0412\u042a\u0430\u045e\u047f\u037crrow\u0180;BU\u041d\u041e\u0422\u6193ar;\u6913pArrow;\u61f5reve;\u4311eft\u02d2\u043a\0\u0446\0\u0450ightVector;\u6950eeVector;\u695eector\u0100;B\u0459\u045a\u61bdar;\u6956ight\u01d4\u0467\0\u0471eeVector;\u695fector\u0100;B\u047a\u047b\u61c1ar;\u6957ee\u0100;A\u0486\u0487\u62a4rrow;\u61a7\u0100ct\u0492\u0497r;\uc000\ud835\udc9frok;\u4110\u0800NTacdfglmopqstux\u04bd\u04c0\u04c4\u04cb\u04de\u04e2\u04e7\u04ee\u04f5\u0521\u052f\u0536\u0552\u055d\u0560\u0565G;\u414aH\u803b\xd0\u40d0cute\u803b\xc9\u40c9\u0180aiy\u04d2\u04d7\u04dcron;\u411arc\u803b\xca\u40ca;\u442dot;\u4116r;\uc000\ud835\udd08rave\u803b\xc8\u40c8ement;\u6208\u0100ap\u04fa\u04fecr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65fberySmallSquare;\u65ab\u0100gp\u0526\u052aon;\u4118f;\uc000\ud835\udd3csilon;\u4395u\u0100ai\u053c\u0549l\u0100;T\u0542\u0543\u6a75ilde;\u6242librium;\u61cc\u0100ci\u0557\u055ar;\u6130m;\u6a73a;\u4397ml\u803b\xcb\u40cb\u0100ip\u056a\u056fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058d\u05b2\u05ccy;\u4424r;\uc000\ud835\udd09lled\u0253\u0597\0\0\u05a3mallSquare;\u65fcerySmallSquare;\u65aa\u0370\u05ba\0\u05bf\0\0\u05c4f;\uc000\ud835\udd3dAll;\u6200riertrf;\u6131c\xf2\u05cb\u0600JTabcdfgorst\u05e8\u05ec\u05ef\u05fa\u0600\u0612\u0616\u061b\u061d\u0623\u066c\u0672cy;\u4403\u803b>\u403emma\u0100;d\u05f7\u05f8\u4393;\u43dcreve;\u411e\u0180eiy\u0607\u060c\u0610dil;\u4122rc;\u411c;\u4413ot;\u4120r;\uc000\ud835\udd0a;\u62d9pf;\uc000\ud835\udd3eeater\u0300EFGLST\u0635\u0644\u064e\u0656\u065b\u0666qual\u0100;L\u063e\u063f\u6265ess;\u62dbullEqual;\u6267reater;\u6aa2ess;\u6277lantEqual;\u6a7eilde;\u6273cr;\uc000\ud835\udca2;\u626b\u0400Aacfiosu\u0685\u068b\u0696\u069b\u069e\u06aa\u06be\u06caRDcy;\u442a\u0100ct\u0690\u0694ek;\u42c7;\u405eirc;\u4124r;\u610clbertSpace;\u610b\u01f0\u06af\0\u06b2f;\u610dizontalLine;\u6500\u0100ct\u06c3\u06c5\xf2\u06a9rok;\u4126mp\u0144\u06d0\u06d8ownHum\xf0\u012fqual;\u624f\u0700EJOacdfgmnostu\u06fa\u06fe\u0703\u0707\u070e\u071a\u071e\u0721\u0728\u0744\u0778\u078b\u078f\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803b\xcd\u40cd\u0100iy\u0713\u0718rc\u803b\xce\u40ce;\u4418ot;\u4130r;\u6111rave\u803b\xcc\u40cc\u0180;ap\u0720\u072f\u073f\u0100cg\u0734\u0737r;\u412ainaryI;\u6148lie\xf3\u03dd\u01f4\u0749\0\u0762\u0100;e\u074d\u074e\u622c\u0100gr\u0753\u0758ral;\u622bsection;\u62c2isible\u0100CT\u076c\u0772omma;\u6063imes;\u6062\u0180gpt\u077f\u0783\u0788on;\u412ef;\uc000\ud835\udd40a;\u4399cr;\u6110ilde;\u4128\u01eb\u079a\0\u079ecy;\u4406l\u803b\xcf\u40cf\u0280cfosu\u07ac\u07b7\u07bc\u07c2\u07d0\u0100iy\u07b1\u07b5rc;\u4134;\u4419r;\uc000\ud835\udd0dpf;\uc000\ud835\udd41\u01e3\u07c7\0\u07ccr;\uc000\ud835\udca5rcy;\u4408kcy;\u4404\u0380HJacfos\u07e4\u07e8\u07ec\u07f1\u07fd\u0802\u0808cy;\u4425cy;\u440cppa;\u439a\u0100ey\u07f6\u07fbdil;\u4136;\u441ar;\uc000\ud835\udd0epf;\uc000\ud835\udd42cr;\uc000\ud835\udca6\u0580JTaceflmost\u0825\u0829\u082c\u0850\u0863\u09b3\u09b8\u09c7\u09cd\u0a37\u0a47cy;\u4409\u803b<\u403c\u0280cmnpr\u0837\u083c\u0841\u0844\u084dute;\u4139bda;\u439bg;\u67ealacetrf;\u6112r;\u619e\u0180aey\u0857\u085c\u0861ron;\u413ddil;\u413b;\u441b\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087e\u08a9\u08b1\u08e0\u08e6\u08fc\u092f\u095b\u0390\u096a\u0100nr\u0883\u088fgleBracket;\u67e8row\u0180;BR\u0899\u089a\u089e\u6190ar;\u61e4ightArrow;\u61c6eiling;\u6308o\u01f5\u08b7\0\u08c3bleBracket;\u67e6n\u01d4\u08c8\0\u08d2eeVector;\u6961ector\u0100;B\u08db\u08dc\u61c3ar;\u6959loor;\u630aight\u0100AV\u08ef\u08f5rrow;\u6194ector;\u694e\u0100er\u0901\u0917e\u0180;AV\u0909\u090a\u0910\u62a3rrow;\u61a4ector;\u695aiangle\u0180;BE\u0924\u0925\u0929\u62b2ar;\u69cfqual;\u62b4p\u0180DTV\u0937\u0942\u094cownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61bfar;\u6958ector\u0100;B\u0965\u0966\u61bcar;\u6952ight\xe1\u039cs\u0300EFGLST\u097e\u098b\u0995\u099d\u09a2\u09adqualGreater;\u62daullEqual;\u6266reater;\u6276ess;\u6aa1lantEqual;\u6a7dilde;\u6272r;\uc000\ud835\udd0f\u0100;e\u09bd\u09be\u62d8ftarrow;\u61daidot;\u413f\u0180npw\u09d4\u0a16\u0a1bg\u0200LRlr\u09de\u09f7\u0a02\u0a10eft\u0100AR\u09e6\u09ecrrow;\u67f5ightArrow;\u67f7ightArrow;\u67f6eft\u0100ar\u03b3\u0a0aight\xe1\u03bfight\xe1\u03caf;\uc000\ud835\udd43er\u0100LR\u0a22\u0a2ceftArrow;\u6199ightArrow;\u6198\u0180cht\u0a3e\u0a40\u0a42\xf2\u084c;\u61b0rok;\u4141;\u626a\u0400acefiosu\u0a5a\u0a5d\u0a60\u0a77\u0a7c\u0a85\u0a8b\u0a8ep;\u6905y;\u441c\u0100dl\u0a65\u0a6fiumSpace;\u605flintrf;\u6133r;\uc000\ud835\udd10nusPlus;\u6213pf;\uc000\ud835\udd44c\xf2\u0a76;\u439c\u0480Jacefostu\u0aa3\u0aa7\u0aad\u0ac0\u0b14\u0b19\u0d91\u0d97\u0d9ecy;\u440acute;\u4143\u0180aey\u0ab4\u0ab9\u0aberon;\u4147dil;\u4145;\u441d\u0180gsw\u0ac7\u0af0\u0b0eative\u0180MTV\u0ad3\u0adf\u0ae8ediumSpace;\u600bhi\u0100cn\u0ae6\u0ad8\xeb\u0ad9eryThi\xee\u0ad9ted\u0100GL\u0af8\u0b06reaterGreate\xf2\u0673essLes\xf3\u0a48Line;\u400ar;\uc000\ud835\udd11\u0200Bnpt\u0b22\u0b28\u0b37\u0b3areak;\u6060BreakingSpace;\u40a0f;\u6115\u0680;CDEGHLNPRSTV\u0b55\u0b56\u0b6a\u0b7c\u0ba1\u0beb\u0c04\u0c5e\u0c84\u0ca6\u0cd8\u0d61\u0d85\u6aec\u0100ou\u0b5b\u0b64ngruent;\u6262pCap;\u626doubleVerticalBar;\u6226\u0180lqx\u0b83\u0b8a\u0b9bement;\u6209ual\u0100;T\u0b92\u0b93\u6260ilde;\uc000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0bb6\u0bb7\u0bbd\u0bc9\u0bd3\u0bd8\u0be5\u626fqual;\u6271ullEqual;\uc000\u2267\u0338reater;\uc000\u226b\u0338ess;\u6279lantEqual;\uc000\u2a7e\u0338ilde;\u6275ump\u0144\u0bf2\u0bfdownHump;\uc000\u224e\u0338qual;\uc000\u224f\u0338e\u0100fs\u0c0a\u0c27tTriangle\u0180;BE\u0c1a\u0c1b\u0c21\u62eaar;\uc000\u29cf\u0338qual;\u62ecs\u0300;EGLST\u0c35\u0c36\u0c3c\u0c44\u0c4b\u0c58\u626equal;\u6270reater;\u6278ess;\uc000\u226a\u0338lantEqual;\uc000\u2a7d\u0338ilde;\u6274ested\u0100GL\u0c68\u0c79reaterGreater;\uc000\u2aa2\u0338essLess;\uc000\u2aa1\u0338recedes\u0180;ES\u0c92\u0c93\u0c9b\u6280qual;\uc000\u2aaf\u0338lantEqual;\u62e0\u0100ei\u0cab\u0cb9verseElement;\u620cghtTriangle\u0180;BE\u0ccb\u0ccc\u0cd2\u62ebar;\uc000\u29d0\u0338qual;\u62ed\u0100qu\u0cdd\u0d0cuareSu\u0100bp\u0ce8\u0cf9set\u0100;E\u0cf0\u0cf3\uc000\u228f\u0338qual;\u62e2erset\u0100;E\u0d03\u0d06\uc000\u2290\u0338qual;\u62e3\u0180bcp\u0d13\u0d24\u0d4eset\u0100;E\u0d1b\u0d1e\uc000\u2282\u20d2qual;\u6288ceeds\u0200;EST\u0d32\u0d33\u0d3b\u0d46\u6281qual;\uc000\u2ab0\u0338lantEqual;\u62e1ilde;\uc000\u227f\u0338erset\u0100;E\u0d58\u0d5b\uc000\u2283\u20d2qual;\u6289ilde\u0200;EFT\u0d6e\u0d6f\u0d75\u0d7f\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uc000\ud835\udca9ilde\u803b\xd1\u40d1;\u439d\u0700Eacdfgmoprstuv\u0dbd\u0dc2\u0dc9\u0dd5\u0ddb\u0de0\u0de7\u0dfc\u0e02\u0e20\u0e22\u0e32\u0e3f\u0e44lig;\u4152cute\u803b\xd3\u40d3\u0100iy\u0dce\u0dd3rc\u803b\xd4\u40d4;\u441eblac;\u4150r;\uc000\ud835\udd12rave\u803b\xd2\u40d2\u0180aei\u0dee\u0df2\u0df6cr;\u414cga;\u43a9cron;\u439fpf;\uc000\ud835\udd46enCurly\u0100DQ\u0e0e\u0e1aoubleQuote;\u601cuote;\u6018;\u6a54\u0100cl\u0e27\u0e2cr;\uc000\ud835\udcaaash\u803b\xd8\u40d8i\u016c\u0e37\u0e3cde\u803b\xd5\u40d5es;\u6a37ml\u803b\xd6\u40d6er\u0100BP\u0e4b\u0e60\u0100ar\u0e50\u0e53r;\u603eac\u0100ek\u0e5a\u0e5c;\u63deet;\u63b4arenthesis;\u63dc\u0480acfhilors\u0e7f\u0e87\u0e8a\u0e8f\u0e92\u0e94\u0e9d\u0eb0\u0efcrtialD;\u6202y;\u441fr;\uc000\ud835\udd13i;\u43a6;\u43a0usMinus;\u40b1\u0100ip\u0ea2\u0eadncareplan\xe5\u069df;\u6119\u0200;eio\u0eb9\u0eba\u0ee0\u0ee4\u6abbcedes\u0200;EST\u0ec8\u0ec9\u0ecf\u0eda\u627aqual;\u6aaflantEqual;\u627cilde;\u627eme;\u6033\u0100dp\u0ee9\u0eeeuct;\u620fortion\u0100;a\u0225\u0ef9l;\u621d\u0100ci\u0f01\u0f06r;\uc000\ud835\udcab;\u43a8\u0200Ufos\u0f11\u0f16\u0f1b\u0f1fOT\u803b\"\u4022r;\uc000\ud835\udd14pf;\u611acr;\uc000\ud835\udcac\u0600BEacefhiorsu\u0f3e\u0f43\u0f47\u0f60\u0f73\u0fa7\u0faa\u0fad\u1096\u10a9\u10b4\u10bearr;\u6910G\u803b\xae\u40ae\u0180cnr\u0f4e\u0f53\u0f56ute;\u4154g;\u67ebr\u0100;t\u0f5c\u0f5d\u61a0l;\u6916\u0180aey\u0f67\u0f6c\u0f71ron;\u4158dil;\u4156;\u4420\u0100;v\u0f78\u0f79\u611cerse\u0100EU\u0f82\u0f99\u0100lq\u0f87\u0f8eement;\u620builibrium;\u61cbpEquilibrium;\u696fr\xbb\u0f79o;\u43a1ght\u0400ACDFTUVa\u0fc1\u0feb\u0ff3\u1022\u1028\u105b\u1087\u03d8\u0100nr\u0fc6\u0fd2gleBracket;\u67e9row\u0180;BL\u0fdc\u0fdd\u0fe1\u6192ar;\u61e5eftArrow;\u61c4eiling;\u6309o\u01f5\u0ff9\0\u1005bleBracket;\u67e7n\u01d4\u100a\0\u1014eeVector;\u695dector\u0100;B\u101d\u101e\u61c2ar;\u6955loor;\u630b\u0100er\u102d\u1043e\u0180;AV\u1035\u1036\u103c\u62a2rrow;\u61a6ector;\u695biangle\u0180;BE\u1050\u1051\u1055\u62b3ar;\u69d0qual;\u62b5p\u0180DTV\u1063\u106e\u1078ownVector;\u694feeVector;\u695cector\u0100;B\u1082\u1083\u61bear;\u6954ector\u0100;B\u1091\u1092\u61c0ar;\u6953\u0100pu\u109b\u109ef;\u611dndImplies;\u6970ightarrow;\u61db\u0100ch\u10b9\u10bcr;\u611b;\u61b1leDelayed;\u69f4\u0680HOacfhimoqstu\u10e4\u10f1\u10f7\u10fd\u1119\u111e\u1151\u1156\u1161\u1167\u11b5\u11bb\u11bf\u0100Cc\u10e9\u10eeHcy;\u4429y;\u4428FTcy;\u442ccute;\u415a\u0280;aeiy\u1108\u1109\u110e\u1113\u1117\u6abcron;\u4160dil;\u415erc;\u415c;\u4421r;\uc000\ud835\udd16ort\u0200DLRU\u112a\u1134\u113e\u1149ownArrow\xbb\u041eeftArrow\xbb\u089aightArrow\xbb\u0fddpArrow;\u6191gma;\u43a3allCircle;\u6218pf;\uc000\ud835\udd4a\u0272\u116d\0\0\u1170t;\u621aare\u0200;ISU\u117b\u117c\u1189\u11af\u65a1ntersection;\u6293u\u0100bp\u118f\u119eset\u0100;E\u1197\u1198\u628fqual;\u6291erset\u0100;E\u11a8\u11a9\u6290qual;\u6292nion;\u6294cr;\uc000\ud835\udcaear;\u62c6\u0200bcmp\u11c8\u11db\u1209\u120b\u0100;s\u11cd\u11ce\u62d0et\u0100;E\u11cd\u11d5qual;\u6286\u0100ch\u11e0\u1205eeds\u0200;EST\u11ed\u11ee\u11f4\u11ff\u627bqual;\u6ab0lantEqual;\u627dilde;\u627fTh\xe1\u0f8c;\u6211\u0180;es\u1212\u1213\u1223\u62d1rset\u0100;E\u121c\u121d\u6283qual;\u6287et\xbb\u1213\u0580HRSacfhiors\u123e\u1244\u1249\u1255\u125e\u1271\u1276\u129f\u12c2\u12c8\u12d1ORN\u803b\xde\u40deADE;\u6122\u0100Hc\u124e\u1252cy;\u440by;\u4426\u0100bu\u125a\u125c;\u4009;\u43a4\u0180aey\u1265\u126a\u126fron;\u4164dil;\u4162;\u4422r;\uc000\ud835\udd17\u0100ei\u127b\u1289\u01f2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128e\u1298kSpace;\uc000\u205f\u200aSpace;\u6009lde\u0200;EFT\u12ab\u12ac\u12b2\u12bc\u623cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uc000\ud835\udd4bipleDot;\u60db\u0100ct\u12d6\u12dbr;\uc000\ud835\udcafrok;\u4166\u0ae1\u12f7\u130e\u131a\u1326\0\u132c\u1331\0\0\0\0\0\u1338\u133d\u1377\u1385\0\u13ff\u1404\u140a\u1410\u0100cr\u12fb\u1301ute\u803b\xda\u40dar\u0100;o\u1307\u1308\u619fcir;\u6949r\u01e3\u1313\0\u1316y;\u440eve;\u416c\u0100iy\u131e\u1323rc\u803b\xdb\u40db;\u4423blac;\u4170r;\uc000\ud835\udd18rave\u803b\xd9\u40d9acr;\u416a\u0100di\u1341\u1369er\u0100BP\u1348\u135d\u0100ar\u134d\u1350r;\u405fac\u0100ek\u1357\u1359;\u63dfet;\u63b5arenthesis;\u63ddon\u0100;P\u1370\u1371\u62c3lus;\u628e\u0100gp\u137b\u137fon;\u4172f;\uc000\ud835\udd4c\u0400ADETadps\u1395\u13ae\u13b8\u13c4\u03e8\u13d2\u13d7\u13f3rrow\u0180;BD\u1150\u13a0\u13a4ar;\u6912ownArrow;\u61c5ownArrow;\u6195quilibrium;\u696eee\u0100;A\u13cb\u13cc\u62a5rrow;\u61a5own\xe1\u03f3er\u0100LR\u13de\u13e8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13f9\u13fa\u43d2on;\u43a5ing;\u416ecr;\uc000\ud835\udcb0ilde;\u4168ml\u803b\xdc\u40dc\u0480Dbcdefosv\u1427\u142c\u1430\u1433\u143e\u1485\u148a\u1490\u1496ash;\u62abar;\u6aeby;\u4412ash\u0100;l\u143b\u143c\u62a9;\u6ae6\u0100er\u1443\u1445;\u62c1\u0180bty\u144c\u1450\u147aar;\u6016\u0100;i\u144f\u1455cal\u0200BLST\u1461\u1465\u146a\u1474ar;\u6223ine;\u407ceparator;\u6758ilde;\u6240ThinSpace;\u600ar;\uc000\ud835\udd19pf;\uc000\ud835\udd4dcr;\uc000\ud835\udcb1dash;\u62aa\u0280cefos\u14a7\u14ac\u14b1\u14b6\u14bcirc;\u4174dge;\u62c0r;\uc000\ud835\udd1apf;\uc000\ud835\udd4ecr;\uc000\ud835\udcb2\u0200fios\u14cb\u14d0\u14d2\u14d8r;\uc000\ud835\udd1b;\u439epf;\uc000\ud835\udd4fcr;\uc000\ud835\udcb3\u0480AIUacfosu\u14f1\u14f5\u14f9\u14fd\u1504\u150f\u1514\u151a\u1520cy;\u442fcy;\u4407cy;\u442ecute\u803b\xdd\u40dd\u0100iy\u1509\u150drc;\u4176;\u442br;\uc000\ud835\udd1cpf;\uc000\ud835\udd50cr;\uc000\ud835\udcb4ml;\u4178\u0400Hacdefos\u1535\u1539\u153f\u154b\u154f\u155d\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417d;\u4417ot;\u417b\u01f2\u1554\0\u155boWidt\xe8\u0ad9a;\u4396r;\u6128pf;\u6124cr;\uc000\ud835\udcb5\u0be1\u1583\u158a\u1590\0\u15b0\u15b6\u15bf\0\0\0\0\u15c6\u15db\u15eb\u165f\u166d\0\u1695\u169b\u16b2\u16b9\0\u16becute\u803b\xe1\u40e1reve;\u4103\u0300;Ediuy\u159c\u159d\u15a1\u15a3\u15a8\u15ad\u623e;\uc000\u223e\u0333;\u623frc\u803b\xe2\u40e2te\u80bb\xb4\u0306;\u4430lig\u803b\xe6\u40e6\u0100;r\xb2\u15ba;\uc000\ud835\udd1erave\u803b\xe0\u40e0\u0100ep\u15ca\u15d6\u0100fp\u15cf\u15d4sym;\u6135\xe8\u15d3ha;\u43b1\u0100ap\u15dfc\u0100cl\u15e4\u15e7r;\u4101g;\u6a3f\u0264\u15f0\0\0\u160a\u0280;adsv\u15fa\u15fb\u15ff\u1601\u1607\u6227nd;\u6a55;\u6a5clope;\u6a58;\u6a5a\u0380;elmrsz\u1618\u1619\u161b\u161e\u163f\u164f\u1659\u6220;\u69a4e\xbb\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163a\u163c\u163e;\u69a8;\u69a9;\u69aa;\u69ab;\u69ac;\u69ad;\u69ae;\u69aft\u0100;v\u1645\u1646\u621fb\u0100;d\u164c\u164d\u62be;\u699d\u0100pt\u1654\u1657h;\u6222\xbb\xb9arr;\u637c\u0100gp\u1663\u1667on;\u4105f;\uc000\ud835\udd52\u0380;Eaeiop\u12c1\u167b\u167d\u1682\u1684\u1687\u168a;\u6a70cir;\u6a6f;\u624ad;\u624bs;\u4027rox\u0100;e\u12c1\u1692\xf1\u1683ing\u803b\xe5\u40e5\u0180cty\u16a1\u16a6\u16a8r;\uc000\ud835\udcb6;\u402amp\u0100;e\u12c1\u16af\xf1\u0288ilde\u803b\xe3\u40e3ml\u803b\xe4\u40e4\u0100ci\u16c2\u16c8onin\xf4\u0272nt;\u6a11\u0800Nabcdefiklnoprsu\u16ed\u16f1\u1730\u173c\u1743\u1748\u1778\u177d\u17e0\u17e6\u1839\u1850\u170d\u193d\u1948\u1970ot;\u6aed\u0100cr\u16f6\u171ek\u0200ceps\u1700\u1705\u170d\u1713ong;\u624cpsilon;\u43f6rime;\u6035im\u0100;e\u171a\u171b\u623dq;\u62cd\u0176\u1722\u1726ee;\u62bded\u0100;g\u172c\u172d\u6305e\xbb\u172drk\u0100;t\u135c\u1737brk;\u63b6\u0100oy\u1701\u1741;\u4431quo;\u601e\u0280cmprt\u1753\u175b\u1761\u1764\u1768aus\u0100;e\u010a\u0109ptyv;\u69b0s\xe9\u170cno\xf5\u0113\u0180ahw\u176f\u1771\u1773;\u43b2;\u6136een;\u626cr;\uc000\ud835\udd1fg\u0380costuvw\u178d\u179d\u17b3\u17c1\u17d5\u17db\u17de\u0180aiu\u1794\u1796\u179a\xf0\u0760rc;\u65efp\xbb\u1371\u0180dpt\u17a4\u17a8\u17adot;\u6a00lus;\u6a01imes;\u6a02\u0271\u17b9\0\0\u17becup;\u6a06ar;\u6605riangle\u0100du\u17cd\u17d2own;\u65bdp;\u65b3plus;\u6a04e\xe5\u1444\xe5\u14adarow;\u690d\u0180ako\u17ed\u1826\u1835\u0100cn\u17f2\u1823k\u0180lst\u17fa\u05ab\u1802ozenge;\u69ebriangle\u0200;dlr\u1812\u1813\u1818\u181d\u65b4own;\u65beeft;\u65c2ight;\u65b8k;\u6423\u01b1\u182b\0\u1833\u01b2\u182f\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183e\u184d\u0100;q\u1843\u1846\uc000=\u20e5uiv;\uc000\u2261\u20e5t;\u6310\u0200ptwx\u1859\u185e\u1867\u186cf;\uc000\ud835\udd53\u0100;t\u13cb\u1863om\xbb\u13cctie;\u62c8\u0600DHUVbdhmptuv\u1885\u1896\u18aa\u18bb\u18d7\u18db\u18ec\u18ff\u1905\u190a\u1910\u1921\u0200LRlr\u188e\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18a1\u18a2\u18a4\u18a6\u18a8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18b3\u18b5\u18b7\u18b9;\u655d;\u655a;\u655c;\u6559\u0380;HLRhlr\u18ca\u18cb\u18cd\u18cf\u18d1\u18d3\u18d5\u6551;\u656c;\u6563;\u6560;\u656b;\u6562;\u655fox;\u69c9\u0200LRlr\u18e4\u18e6\u18e8\u18ea;\u6555;\u6552;\u6510;\u650c\u0280;DUdu\u06bd\u18f7\u18f9\u18fb\u18fd;\u6565;\u6568;\u652c;\u6534inus;\u629flus;\u629eimes;\u62a0\u0200LRlr\u1919\u191b\u191d\u191f;\u655b;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193b\u6502;\u656a;\u6561;\u655e;\u653c;\u6524;\u651c\u0100ev\u0123\u1942bar\u803b\xa6\u40a6\u0200ceio\u1951\u1956\u195a\u1960r;\uc000\ud835\udcb7mi;\u604fm\u0100;e\u171a\u171cl\u0180;bh\u1968\u1969\u196b\u405c;\u69c5sub;\u67c8\u016c\u1974\u197el\u0100;e\u1979\u197a\u6022t\xbb\u197ap\u0180;Ee\u012f\u1985\u1987;\u6aae\u0100;q\u06dc\u06db\u0ce1\u19a7\0\u19e8\u1a11\u1a15\u1a32\0\u1a37\u1a50\0\0\u1ab4\0\0\u1ac1\0\0\u1b21\u1b2e\u1b4d\u1b52\0\u1bfd\0\u1c0c\u0180cpr\u19ad\u19b2\u19ddute;\u4107\u0300;abcds\u19bf\u19c0\u19c4\u19ca\u19d5\u19d9\u6229nd;\u6a44rcup;\u6a49\u0100au\u19cf\u19d2p;\u6a4bp;\u6a47ot;\u6a40;\uc000\u2229\ufe00\u0100eo\u19e2\u19e5t;\u6041\xee\u0693\u0200aeiu\u19f0\u19fb\u1a01\u1a05\u01f0\u19f5\0\u19f8s;\u6a4don;\u410ddil\u803b\xe7\u40e7rc;\u4109ps\u0100;s\u1a0c\u1a0d\u6a4cm;\u6a50ot;\u410b\u0180dmn\u1a1b\u1a20\u1a26il\u80bb\xb8\u01adptyv;\u69b2t\u8100\xa2;e\u1a2d\u1a2e\u40a2r\xe4\u01b2r;\uc000\ud835\udd20\u0180cei\u1a3d\u1a40\u1a4dy;\u4447ck\u0100;m\u1a47\u1a48\u6713ark\xbb\u1a48;\u43c7r\u0380;Ecefms\u1a5f\u1a60\u1a62\u1a6b\u1aa4\u1aaa\u1aae\u65cb;\u69c3\u0180;el\u1a69\u1a6a\u1a6d\u42c6q;\u6257e\u0261\u1a74\0\0\u1a88rrow\u0100lr\u1a7c\u1a81eft;\u61baight;\u61bb\u0280RSacd\u1a92\u1a94\u1a96\u1a9a\u1a9f\xbb\u0f47;\u64c8st;\u629birc;\u629aash;\u629dnint;\u6a10id;\u6aefcir;\u69c2ubs\u0100;u\u1abb\u1abc\u6663it\xbb\u1abc\u02ec\u1ac7\u1ad4\u1afa\0\u1b0aon\u0100;e\u1acd\u1ace\u403a\u0100;q\xc7\xc6\u026d\u1ad9\0\0\u1ae2a\u0100;t\u1ade\u1adf\u402c;\u4040\u0180;fl\u1ae8\u1ae9\u1aeb\u6201\xee\u1160e\u0100mx\u1af1\u1af6ent\xbb\u1ae9e\xf3\u024d\u01e7\u1afe\0\u1b07\u0100;d\u12bb\u1b02ot;\u6a6dn\xf4\u0246\u0180fry\u1b10\u1b14\u1b17;\uc000\ud835\udd54o\xe4\u0254\u8100\xa9;s\u0155\u1b1dr;\u6117\u0100ao\u1b25\u1b29rr;\u61b5ss;\u6717\u0100cu\u1b32\u1b37r;\uc000\ud835\udcb8\u0100bp\u1b3c\u1b44\u0100;e\u1b41\u1b42\u6acf;\u6ad1\u0100;e\u1b49\u1b4a\u6ad0;\u6ad2dot;\u62ef\u0380delprvw\u1b60\u1b6c\u1b77\u1b82\u1bac\u1bd4\u1bf9arr\u0100lr\u1b68\u1b6a;\u6938;\u6935\u0270\u1b72\0\0\u1b75r;\u62dec;\u62dfarr\u0100;p\u1b7f\u1b80\u61b6;\u693d\u0300;bcdos\u1b8f\u1b90\u1b96\u1ba1\u1ba5\u1ba8\u622arcap;\u6a48\u0100au\u1b9b\u1b9ep;\u6a46p;\u6a4aot;\u628dr;\u6a45;\uc000\u222a\ufe00\u0200alrv\u1bb5\u1bbf\u1bde\u1be3rr\u0100;m\u1bbc\u1bbd\u61b7;\u693cy\u0180evw\u1bc7\u1bd4\u1bd8q\u0270\u1bce\0\0\u1bd2re\xe3\u1b73u\xe3\u1b75ee;\u62ceedge;\u62cfen\u803b\xa4\u40a4earrow\u0100lr\u1bee\u1bf3eft\xbb\u1b80ight\xbb\u1bbde\xe4\u1bdd\u0100ci\u1c01\u1c07onin\xf4\u01f7nt;\u6231lcty;\u632d\u0980AHabcdefhijlorstuwz\u1c38\u1c3b\u1c3f\u1c5d\u1c69\u1c75\u1c8a\u1c9e\u1cac\u1cb7\u1cfb\u1cff\u1d0d\u1d7b\u1d91\u1dab\u1dbb\u1dc6\u1dcdr\xf2\u0381ar;\u6965\u0200glrs\u1c48\u1c4d\u1c52\u1c54ger;\u6020eth;\u6138\xf2\u1133h\u0100;v\u1c5a\u1c5b\u6010\xbb\u090a\u016b\u1c61\u1c67arow;\u690fa\xe3\u0315\u0100ay\u1c6e\u1c73ron;\u410f;\u4434\u0180;ao\u0332\u1c7c\u1c84\u0100gr\u02bf\u1c81r;\u61catseq;\u6a77\u0180glm\u1c91\u1c94\u1c98\u803b\xb0\u40b0ta;\u43b4ptyv;\u69b1\u0100ir\u1ca3\u1ca8sht;\u697f;\uc000\ud835\udd21ar\u0100lr\u1cb3\u1cb5\xbb\u08dc\xbb\u101e\u0280aegsv\u1cc2\u0378\u1cd6\u1cdc\u1ce0m\u0180;os\u0326\u1cca\u1cd4nd\u0100;s\u0326\u1cd1uit;\u6666amma;\u43ddin;\u62f2\u0180;io\u1ce7\u1ce8\u1cf8\u40f7de\u8100\xf7;o\u1ce7\u1cf0ntimes;\u62c7n\xf8\u1cf7cy;\u4452c\u026f\u1d06\0\0\u1d0arn;\u631eop;\u630d\u0280lptuw\u1d18\u1d1d\u1d22\u1d49\u1d55lar;\u4024f;\uc000\ud835\udd55\u0280;emps\u030b\u1d2d\u1d37\u1d3d\u1d42q\u0100;d\u0352\u1d33ot;\u6251inus;\u6238lus;\u6214quare;\u62a1blebarwedg\xe5\xfan\u0180adh\u112e\u1d5d\u1d67ownarrow\xf3\u1c83arpoon\u0100lr\u1d72\u1d76ef\xf4\u1cb4igh\xf4\u1cb6\u0162\u1d7f\u1d85karo\xf7\u0f42\u026f\u1d8a\0\0\u1d8ern;\u631fop;\u630c\u0180cot\u1d98\u1da3\u1da6\u0100ry\u1d9d\u1da1;\uc000\ud835\udcb9;\u4455l;\u69f6rok;\u4111\u0100dr\u1db0\u1db4ot;\u62f1i\u0100;f\u1dba\u1816\u65bf\u0100ah\u1dc0\u1dc3r\xf2\u0429a\xf2\u0fa6angle;\u69a6\u0100ci\u1dd2\u1dd5y;\u445fgrarr;\u67ff\u0900Dacdefglmnopqrstux\u1e01\u1e09\u1e19\u1e38\u0578\u1e3c\u1e49\u1e61\u1e7e\u1ea5\u1eaf\u1ebd\u1ee1\u1f2a\u1f37\u1f44\u1f4e\u1f5a\u0100Do\u1e06\u1d34o\xf4\u1c89\u0100cs\u1e0e\u1e14ute\u803b\xe9\u40e9ter;\u6a6e\u0200aioy\u1e22\u1e27\u1e31\u1e36ron;\u411br\u0100;c\u1e2d\u1e2e\u6256\u803b\xea\u40ealon;\u6255;\u444dot;\u4117\u0100Dr\u1e41\u1e45ot;\u6252;\uc000\ud835\udd22\u0180;rs\u1e50\u1e51\u1e57\u6a9aave\u803b\xe8\u40e8\u0100;d\u1e5c\u1e5d\u6a96ot;\u6a98\u0200;ils\u1e6a\u1e6b\u1e72\u1e74\u6a99nters;\u63e7;\u6113\u0100;d\u1e79\u1e7a\u6a95ot;\u6a97\u0180aps\u1e85\u1e89\u1e97cr;\u4113ty\u0180;sv\u1e92\u1e93\u1e95\u6205et\xbb\u1e93p\u01001;\u1e9d\u1ea4\u0133\u1ea1\u1ea3;\u6004;\u6005\u6003\u0100gs\u1eaa\u1eac;\u414bp;\u6002\u0100gp\u1eb4\u1eb8on;\u4119f;\uc000\ud835\udd56\u0180als\u1ec4\u1ece\u1ed2r\u0100;s\u1eca\u1ecb\u62d5l;\u69e3us;\u6a71i\u0180;lv\u1eda\u1edb\u1edf\u43b5on\xbb\u1edb;\u43f5\u0200csuv\u1eea\u1ef3\u1f0b\u1f23\u0100io\u1eef\u1e31rc\xbb\u1e2e\u0269\u1ef9\0\0\u1efb\xed\u0548ant\u0100gl\u1f02\u1f06tr\xbb\u1e5dess\xbb\u1e7a\u0180aei\u1f12\u1f16\u1f1als;\u403dst;\u625fv\u0100;D\u0235\u1f20D;\u6a78parsl;\u69e5\u0100Da\u1f2f\u1f33ot;\u6253rr;\u6971\u0180cdi\u1f3e\u1f41\u1ef8r;\u612fo\xf4\u0352\u0100ah\u1f49\u1f4b;\u43b7\u803b\xf0\u40f0\u0100mr\u1f53\u1f57l\u803b\xeb\u40ebo;\u60ac\u0180cip\u1f61\u1f64\u1f67l;\u4021s\xf4\u056e\u0100eo\u1f6c\u1f74ctatio\xee\u0559nential\xe5\u0579\u09e1\u1f92\0\u1f9e\0\u1fa1\u1fa7\0\0\u1fc6\u1fcc\0\u1fd3\0\u1fe6\u1fea\u2000\0\u2008\u205allingdotse\xf1\u1e44y;\u4444male;\u6640\u0180ilr\u1fad\u1fb3\u1fc1lig;\u8000\ufb03\u0269\u1fb9\0\0\u1fbdg;\u8000\ufb00ig;\u8000\ufb04;\uc000\ud835\udd23lig;\u8000\ufb01lig;\uc000fj\u0180alt\u1fd9\u1fdc\u1fe1t;\u666dig;\u8000\ufb02ns;\u65b1of;\u4192\u01f0\u1fee\0\u1ff3f;\uc000\ud835\udd57\u0100ak\u05bf\u1ff7\u0100;v\u1ffc\u1ffd\u62d4;\u6ad9artint;\u6a0d\u0100ao\u200c\u2055\u0100cs\u2011\u2052\u03b1\u201a\u2030\u2038\u2045\u2048\0\u2050\u03b2\u2022\u2025\u2027\u202a\u202c\0\u202e\u803b\xbd\u40bd;\u6153\u803b\xbc\u40bc;\u6155;\u6159;\u615b\u01b3\u2034\0\u2036;\u6154;\u6156\u02b4\u203e\u2041\0\0\u2043\u803b\xbe\u40be;\u6157;\u615c5;\u6158\u01b6\u204c\0\u204e;\u615a;\u615d8;\u615el;\u6044wn;\u6322cr;\uc000\ud835\udcbb\u0880Eabcdefgijlnorstv\u2082\u2089\u209f\u20a5\u20b0\u20b4\u20f0\u20f5\u20fa\u20ff\u2103\u2112\u2138\u0317\u213e\u2152\u219e\u0100;l\u064d\u2087;\u6a8c\u0180cmp\u2090\u2095\u209dute;\u41f5ma\u0100;d\u209c\u1cda\u43b3;\u6a86reve;\u411f\u0100iy\u20aa\u20aerc;\u411d;\u4433ot;\u4121\u0200;lqs\u063e\u0642\u20bd\u20c9\u0180;qs\u063e\u064c\u20c4lan\xf4\u0665\u0200;cdl\u0665\u20d2\u20d5\u20e5c;\u6aa9ot\u0100;o\u20dc\u20dd\u6a80\u0100;l\u20e2\u20e3\u6a82;\u6a84\u0100;e\u20ea\u20ed\uc000\u22db\ufe00s;\u6a94r;\uc000\ud835\udd24\u0100;g\u0673\u061bmel;\u6137cy;\u4453\u0200;Eaj\u065a\u210c\u210e\u2110;\u6a92;\u6aa5;\u6aa4\u0200Eaes\u211b\u211d\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6a8arox\xbb\u2124\u0100;q\u212e\u212f\u6a88\u0100;q\u212e\u211bim;\u62e7pf;\uc000\ud835\udd58\u0100ci\u2143\u2146r;\u610am\u0180;el\u066b\u214e\u2150;\u6a8e;\u6a90\u8300>;cdlqr\u05ee\u2160\u216a\u216e\u2173\u2179\u0100ci\u2165\u2167;\u6aa7r;\u6a7aot;\u62d7Par;\u6995uest;\u6a7c\u0280adels\u2184\u216a\u2190\u0656\u219b\u01f0\u2189\0\u218epro\xf8\u209er;\u6978q\u0100lq\u063f\u2196les\xf3\u2088i\xed\u066b\u0100en\u21a3\u21adrtneqq;\uc000\u2269\ufe00\xc5\u21aa\u0500Aabcefkosy\u21c4\u21c7\u21f1\u21f5\u21fa\u2218\u221d\u222f\u2268\u227dr\xf2\u03a0\u0200ilmr\u21d0\u21d4\u21d7\u21dbrs\xf0\u1484f\xbb\u2024il\xf4\u06a9\u0100dr\u21e0\u21e4cy;\u444a\u0180;cw\u08f4\u21eb\u21efir;\u6948;\u61adar;\u610firc;\u4125\u0180alr\u2201\u220e\u2213rts\u0100;u\u2209\u220a\u6665it\xbb\u220alip;\u6026con;\u62b9r;\uc000\ud835\udd25s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223a\u223e\u2243\u225e\u2263rr;\u61fftht;\u623bk\u0100lr\u2249\u2253eftarrow;\u61a9ightarrow;\u61aaf;\uc000\ud835\udd59bar;\u6015\u0180clt\u226f\u2274\u2278r;\uc000\ud835\udcbdas\xe8\u21f4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xbb\u1c5b\u0ae1\u22a3\0\u22aa\0\u22b8\u22c5\u22ce\0\u22d5\u22f3\0\0\u22f8\u2322\u2367\u2362\u237f\0\u2386\u23aa\u23b4cute\u803b\xed\u40ed\u0180;iy\u0771\u22b0\u22b5rc\u803b\xee\u40ee;\u4438\u0100cx\u22bc\u22bfy;\u4435cl\u803b\xa1\u40a1\u0100fr\u039f\u22c9;\uc000\ud835\udd26rave\u803b\xec\u40ec\u0200;ino\u073e\u22dd\u22e9\u22ee\u0100in\u22e2\u22e6nt;\u6a0ct;\u622dfin;\u69dcta;\u6129lig;\u4133\u0180aop\u22fe\u231a\u231d\u0180cgt\u2305\u2308\u2317r;\u412b\u0180elp\u071f\u230f\u2313in\xe5\u078ear\xf4\u0720h;\u4131f;\u62b7ed;\u41b5\u0280;cfot\u04f4\u232c\u2331\u233d\u2341are;\u6105in\u0100;t\u2338\u2339\u621eie;\u69dddo\xf4\u2319\u0280;celp\u0757\u234c\u2350\u235b\u2361al;\u62ba\u0100gr\u2355\u2359er\xf3\u1563\xe3\u234darhk;\u6a17rod;\u6a3c\u0200cgpt\u236f\u2372\u2376\u237by;\u4451on;\u412ff;\uc000\ud835\udd5aa;\u43b9uest\u803b\xbf\u40bf\u0100ci\u238a\u238fr;\uc000\ud835\udcben\u0280;Edsv\u04f4\u239b\u239d\u23a1\u04f3;\u62f9ot;\u62f5\u0100;v\u23a6\u23a7\u62f4;\u62f3\u0100;i\u0777\u23aelde;\u4129\u01eb\u23b8\0\u23bccy;\u4456l\u803b\xef\u40ef\u0300cfmosu\u23cc\u23d7\u23dc\u23e1\u23e7\u23f5\u0100iy\u23d1\u23d5rc;\u4135;\u4439r;\uc000\ud835\udd27ath;\u4237pf;\uc000\ud835\udd5b\u01e3\u23ec\0\u23f1r;\uc000\ud835\udcbfrcy;\u4458kcy;\u4454\u0400acfghjos\u240b\u2416\u2422\u2427\u242d\u2431\u2435\u243bppa\u0100;v\u2413\u2414\u43ba;\u43f0\u0100ey\u241b\u2420dil;\u4137;\u443ar;\uc000\ud835\udd28reen;\u4138cy;\u4445cy;\u445cpf;\uc000\ud835\udd5ccr;\uc000\ud835\udcc0\u0b80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248d\u2491\u250e\u253d\u255a\u2580\u264e\u265e\u2665\u2679\u267d\u269a\u26b2\u26d8\u275d\u2768\u278b\u27c0\u2801\u2812\u0180art\u2477\u247a\u247cr\xf2\u09c6\xf2\u0395ail;\u691barr;\u690e\u0100;g\u0994\u248b;\u6a8bar;\u6962\u0963\u24a5\0\u24aa\0\u24b1\0\0\0\0\0\u24b5\u24ba\0\u24c6\u24c8\u24cd\0\u24f9ute;\u413amptyv;\u69b4ra\xee\u084cbda;\u43bbg\u0180;dl\u088e\u24c1\u24c3;\u6991\xe5\u088e;\u6a85uo\u803b\xab\u40abr\u0400;bfhlpst\u0899\u24de\u24e6\u24e9\u24eb\u24ee\u24f1\u24f5\u0100;f\u089d\u24e3s;\u691fs;\u691d\xeb\u2252p;\u61abl;\u6939im;\u6973l;\u61a2\u0180;ae\u24ff\u2500\u2504\u6aabil;\u6919\u0100;s\u2509\u250a\u6aad;\uc000\u2aad\ufe00\u0180abr\u2515\u2519\u251drr;\u690crk;\u6772\u0100ak\u2522\u252cc\u0100ek\u2528\u252a;\u407b;\u405b\u0100es\u2531\u2533;\u698bl\u0100du\u2539\u253b;\u698f;\u698d\u0200aeuy\u2546\u254b\u2556\u2558ron;\u413e\u0100di\u2550\u2554il;\u413c\xec\u08b0\xe2\u2529;\u443b\u0200cqrs\u2563\u2566\u256d\u257da;\u6936uo\u0100;r\u0e19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694bh;\u61b2\u0280;fgqs\u258b\u258c\u0989\u25f3\u25ff\u6264t\u0280ahlrt\u2598\u25a4\u25b7\u25c2\u25e8rrow\u0100;t\u0899\u25a1a\xe9\u24f6arpoon\u0100du\u25af\u25b4own\xbb\u045ap\xbb\u0966eftarrows;\u61c7ight\u0180ahs\u25cd\u25d6\u25derrow\u0100;s\u08f4\u08a7arpoon\xf3\u0f98quigarro\xf7\u21f0hreetimes;\u62cb\u0180;qs\u258b\u0993\u25falan\xf4\u09ac\u0280;cdgs\u09ac\u260a\u260d\u261d\u2628c;\u6aa8ot\u0100;o\u2614\u2615\u6a7f\u0100;r\u261a\u261b\u6a81;\u6a83\u0100;e\u2622\u2625\uc000\u22da\ufe00s;\u6a93\u0280adegs\u2633\u2639\u263d\u2649\u264bppro\xf8\u24c6ot;\u62d6q\u0100gq\u2643\u2645\xf4\u0989gt\xf2\u248c\xf4\u099bi\xed\u09b2\u0180ilr\u2655\u08e1\u265asht;\u697c;\uc000\ud835\udd29\u0100;E\u099c\u2663;\u6a91\u0161\u2669\u2676r\u0100du\u25b2\u266e\u0100;l\u0965\u2673;\u696alk;\u6584cy;\u4459\u0280;acht\u0a48\u2688\u268b\u2691\u2696r\xf2\u25c1orne\xf2\u1d08ard;\u696bri;\u65fa\u0100io\u269f\u26a4dot;\u4140ust\u0100;a\u26ac\u26ad\u63b0che\xbb\u26ad\u0200Eaes\u26bb\u26bd\u26c9\u26d4;\u6268p\u0100;p\u26c3\u26c4\u6a89rox\xbb\u26c4\u0100;q\u26ce\u26cf\u6a87\u0100;q\u26ce\u26bbim;\u62e6\u0400abnoptwz\u26e9\u26f4\u26f7\u271a\u272f\u2741\u2747\u2750\u0100nr\u26ee\u26f1g;\u67ecr;\u61fdr\xeb\u08c1g\u0180lmr\u26ff\u270d\u2714eft\u0100ar\u09e6\u2707ight\xe1\u09f2apsto;\u67fcight\xe1\u09fdparrow\u0100lr\u2725\u2729ef\xf4\u24edight;\u61ac\u0180afl\u2736\u2739\u273dr;\u6985;\uc000\ud835\udd5dus;\u6a2dimes;\u6a34\u0161\u274b\u274fst;\u6217\xe1\u134e\u0180;ef\u2757\u2758\u1800\u65cange\xbb\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277c\u2785\u2787r\xf2\u08a8orne\xf2\u1d8car\u0100;d\u0f98\u2783;\u696d;\u600eri;\u62bf\u0300achiqt\u2798\u279d\u0a40\u27a2\u27ae\u27bbquo;\u6039r;\uc000\ud835\udcc1m\u0180;eg\u09b2\u27aa\u27ac;\u6a8d;\u6a8f\u0100bu\u252a\u27b3o\u0100;r\u0e1f\u27b9;\u601arok;\u4142\u8400<;cdhilqr\u082b\u27d2\u2639\u27dc\u27e0\u27e5\u27ea\u27f0\u0100ci\u27d7\u27d9;\u6aa6r;\u6a79re\xe5\u25f2mes;\u62c9arr;\u6976uest;\u6a7b\u0100Pi\u27f5\u27f9ar;\u6996\u0180;ef\u2800\u092d\u181b\u65c3r\u0100du\u2807\u280dshar;\u694ahar;\u6966\u0100en\u2817\u2821rtneqq;\uc000\u2268\ufe00\xc5\u281e\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288e\u2893\u28a0\u28a5\u28a8\u28da\u28e2\u28e4\u0a83\u28f3\u2902Dot;\u623a\u0200clpr\u284e\u2852\u2863\u287dr\u803b\xaf\u40af\u0100et\u2857\u2859;\u6642\u0100;e\u285e\u285f\u6720se\xbb\u285f\u0100;s\u103b\u2868to\u0200;dlu\u103b\u2873\u2877\u287bow\xee\u048cef\xf4\u090f\xf0\u13d1ker;\u65ae\u0100oy\u2887\u288cmma;\u6a29;\u443cash;\u6014asuredangle\xbb\u1626r;\uc000\ud835\udd2ao;\u6127\u0180cdn\u28af\u28b4\u28c9ro\u803b\xb5\u40b5\u0200;acd\u1464\u28bd\u28c0\u28c4s\xf4\u16a7ir;\u6af0ot\u80bb\xb7\u01b5us\u0180;bd\u28d2\u1903\u28d3\u6212\u0100;u\u1d3c\u28d8;\u6a2a\u0163\u28de\u28e1p;\u6adb\xf2\u2212\xf0\u0a81\u0100dp\u28e9\u28eeels;\u62a7f;\uc000\ud835\udd5e\u0100ct\u28f8\u28fdr;\uc000\ud835\udcc2pos\xbb\u159d\u0180;lm\u2909\u290a\u290d\u43bctimap;\u62b8\u0c00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297e\u2989\u2998\u29da\u29e9\u2a15\u2a1a\u2a58\u2a5d\u2a83\u2a95\u2aa4\u2aa8\u2b04\u2b07\u2b44\u2b7f\u2bae\u2c34\u2c67\u2c7c\u2ce9\u0100gt\u2947\u294b;\uc000\u22d9\u0338\u0100;v\u2950\u0bcf\uc000\u226b\u20d2\u0180elt\u295a\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61cdightarrow;\u61ce;\uc000\u22d8\u0338\u0100;v\u297b\u0c47\uc000\u226a\u20d2ightarrow;\u61cf\u0100Dd\u298e\u2993ash;\u62afash;\u62ae\u0280bcnpt\u29a3\u29a7\u29ac\u29b1\u29ccla\xbb\u02deute;\u4144g;\uc000\u2220\u20d2\u0280;Eiop\u0d84\u29bc\u29c0\u29c5\u29c8;\uc000\u2a70\u0338d;\uc000\u224b\u0338s;\u4149ro\xf8\u0d84ur\u0100;a\u29d3\u29d4\u666el\u0100;s\u29d3\u0b38\u01f3\u29df\0\u29e3p\u80bb\xa0\u0b37mp\u0100;e\u0bf9\u0c00\u0280aeouy\u29f4\u29fe\u2a03\u2a10\u2a13\u01f0\u29f9\0\u29fb;\u6a43on;\u4148dil;\u4146ng\u0100;d\u0d7e\u2a0aot;\uc000\u2a6d\u0338p;\u6a42;\u443dash;\u6013\u0380;Aadqsx\u0b92\u2a29\u2a2d\u2a3b\u2a41\u2a45\u2a50rr;\u61d7r\u0100hr\u2a33\u2a36k;\u6924\u0100;o\u13f2\u13f0ot;\uc000\u2250\u0338ui\xf6\u0b63\u0100ei\u2a4a\u2a4ear;\u6928\xed\u0b98ist\u0100;s\u0ba0\u0b9fr;\uc000\ud835\udd2b\u0200Eest\u0bc5\u2a66\u2a79\u2a7c\u0180;qs\u0bbc\u2a6d\u0be1\u0180;qs\u0bbc\u0bc5\u2a74lan\xf4\u0be2i\xed\u0bea\u0100;r\u0bb6\u2a81\xbb\u0bb7\u0180Aap\u2a8a\u2a8d\u2a91r\xf2\u2971rr;\u61aear;\u6af2\u0180;sv\u0f8d\u2a9c\u0f8c\u0100;d\u2aa1\u2aa2\u62fc;\u62facy;\u445a\u0380AEadest\u2ab7\u2aba\u2abe\u2ac2\u2ac5\u2af6\u2af9r\xf2\u2966;\uc000\u2266\u0338rr;\u619ar;\u6025\u0200;fqs\u0c3b\u2ace\u2ae3\u2aeft\u0100ar\u2ad4\u2ad9rro\xf7\u2ac1ightarro\xf7\u2a90\u0180;qs\u0c3b\u2aba\u2aealan\xf4\u0c55\u0100;s\u0c55\u2af4\xbb\u0c36i\xed\u0c5d\u0100;r\u0c35\u2afei\u0100;e\u0c1a\u0c25i\xe4\u0d90\u0100pt\u2b0c\u2b11f;\uc000\ud835\udd5f\u8180\xac;in\u2b19\u2b1a\u2b36\u40acn\u0200;Edv\u0b89\u2b24\u2b28\u2b2e;\uc000\u22f9\u0338ot;\uc000\u22f5\u0338\u01e1\u0b89\u2b33\u2b35;\u62f7;\u62f6i\u0100;v\u0cb8\u2b3c\u01e1\u0cb8\u2b41\u2b43;\u62fe;\u62fd\u0180aor\u2b4b\u2b63\u2b69r\u0200;ast\u0b7b\u2b55\u2b5a\u2b5flle\xec\u0b7bl;\uc000\u2afd\u20e5;\uc000\u2202\u0338lint;\u6a14\u0180;ce\u0c92\u2b70\u2b73u\xe5\u0ca5\u0100;c\u0c98\u2b78\u0100;e\u0c92\u2b7d\xf1\u0c98\u0200Aait\u2b88\u2b8b\u2b9d\u2ba7r\xf2\u2988rr\u0180;cw\u2b94\u2b95\u2b99\u619b;\uc000\u2933\u0338;\uc000\u219d\u0338ghtarrow\xbb\u2b95ri\u0100;e\u0ccb\u0cd6\u0380chimpqu\u2bbd\u2bcd\u2bd9\u2b04\u0b78\u2be4\u2bef\u0200;cer\u0d32\u2bc6\u0d37\u2bc9u\xe5\u0d45;\uc000\ud835\udcc3ort\u026d\u2b05\0\0\u2bd6ar\xe1\u2b56m\u0100;e\u0d6e\u2bdf\u0100;q\u0d74\u0d73su\u0100bp\u2beb\u2bed\xe5\u0cf8\xe5\u0d0b\u0180bcp\u2bf6\u2c11\u2c19\u0200;Ees\u2bff\u2c00\u0d22\u2c04\u6284;\uc000\u2ac5\u0338et\u0100;e\u0d1b\u2c0bq\u0100;q\u0d23\u2c00c\u0100;e\u0d32\u2c17\xf1\u0d38\u0200;Ees\u2c22\u2c23\u0d5f\u2c27\u6285;\uc000\u2ac6\u0338et\u0100;e\u0d58\u2c2eq\u0100;q\u0d60\u2c23\u0200gilr\u2c3d\u2c3f\u2c45\u2c47\xec\u0bd7lde\u803b\xf1\u40f1\xe7\u0c43iangle\u0100lr\u2c52\u2c5ceft\u0100;e\u0c1a\u2c5a\xf1\u0c26ight\u0100;e\u0ccb\u2c65\xf1\u0cd7\u0100;m\u2c6c\u2c6d\u43bd\u0180;es\u2c74\u2c75\u2c79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2c8f\u2c94\u2c99\u2c9e\u2ca3\u2cb0\u2cb6\u2cd3\u2ce3ash;\u62adarr;\u6904p;\uc000\u224d\u20d2ash;\u62ac\u0100et\u2ca8\u2cac;\uc000\u2265\u20d2;\uc000>\u20d2nfin;\u69de\u0180Aet\u2cbd\u2cc1\u2cc5rr;\u6902;\uc000\u2264\u20d2\u0100;r\u2cca\u2ccd\uc000<\u20d2ie;\uc000\u22b4\u20d2\u0100At\u2cd8\u2cdcrr;\u6903rie;\uc000\u22b5\u20d2im;\uc000\u223c\u20d2\u0180Aan\u2cf0\u2cf4\u2d02rr;\u61d6r\u0100hr\u2cfa\u2cfdk;\u6923\u0100;o\u13e7\u13e5ear;\u6927\u1253\u1a95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2d2d\0\u2d38\u2d48\u2d60\u2d65\u2d72\u2d84\u1b07\0\0\u2d8d\u2dab\0\u2dc8\u2dce\0\u2ddc\u2e19\u2e2b\u2e3e\u2e43\u0100cs\u2d31\u1a97ute\u803b\xf3\u40f3\u0100iy\u2d3c\u2d45r\u0100;c\u1a9e\u2d42\u803b\xf4\u40f4;\u443e\u0280abios\u1aa0\u2d52\u2d57\u01c8\u2d5alac;\u4151v;\u6a38old;\u69bclig;\u4153\u0100cr\u2d69\u2d6dir;\u69bf;\uc000\ud835\udd2c\u036f\u2d79\0\0\u2d7c\0\u2d82n;\u42dbave\u803b\xf2\u40f2;\u69c1\u0100bm\u2d88\u0df4ar;\u69b5\u0200acit\u2d95\u2d98\u2da5\u2da8r\xf2\u1a80\u0100ir\u2d9d\u2da0r;\u69beoss;\u69bbn\xe5\u0e52;\u69c0\u0180aei\u2db1\u2db5\u2db9cr;\u414dga;\u43c9\u0180cdn\u2dc0\u2dc5\u01cdron;\u43bf;\u69b6pf;\uc000\ud835\udd60\u0180ael\u2dd4\u2dd7\u01d2r;\u69b7rp;\u69b9\u0380;adiosv\u2dea\u2deb\u2dee\u2e08\u2e0d\u2e10\u2e16\u6228r\xf2\u1a86\u0200;efm\u2df7\u2df8\u2e02\u2e05\u6a5dr\u0100;o\u2dfe\u2dff\u6134f\xbb\u2dff\u803b\xaa\u40aa\u803b\xba\u40bagof;\u62b6r;\u6a56lope;\u6a57;\u6a5b\u0180clo\u2e1f\u2e21\u2e27\xf2\u2e01ash\u803b\xf8\u40f8l;\u6298i\u016c\u2e2f\u2e34de\u803b\xf5\u40f5es\u0100;a\u01db\u2e3as;\u6a36ml\u803b\xf6\u40f6bar;\u633d\u0ae1\u2e5e\0\u2e7d\0\u2e80\u2e9d\0\u2ea2\u2eb9\0\0\u2ecb\u0e9c\0\u2f13\0\0\u2f2b\u2fbc\0\u2fc8r\u0200;ast\u0403\u2e67\u2e72\u0e85\u8100\xb6;l\u2e6d\u2e6e\u40b6le\xec\u0403\u0269\u2e78\0\0\u2e7bm;\u6af3;\u6afdy;\u443fr\u0280cimpt\u2e8b\u2e8f\u2e93\u1865\u2e97nt;\u4025od;\u402eil;\u6030enk;\u6031r;\uc000\ud835\udd2d\u0180imo\u2ea8\u2eb0\u2eb4\u0100;v\u2ead\u2eae\u43c6;\u43d5ma\xf4\u0a76ne;\u660e\u0180;tv\u2ebf\u2ec0\u2ec8\u43c0chfork\xbb\u1ffd;\u43d6\u0100au\u2ecf\u2edfn\u0100ck\u2ed5\u2eddk\u0100;h\u21f4\u2edb;\u610e\xf6\u21f4s\u0480;abcdemst\u2ef3\u2ef4\u1908\u2ef9\u2efd\u2f04\u2f06\u2f0a\u2f0e\u402bcir;\u6a23ir;\u6a22\u0100ou\u1d40\u2f02;\u6a25;\u6a72n\u80bb\xb1\u0e9dim;\u6a26wo;\u6a27\u0180ipu\u2f19\u2f20\u2f25ntint;\u6a15f;\uc000\ud835\udd61nd\u803b\xa3\u40a3\u0500;Eaceinosu\u0ec8\u2f3f\u2f41\u2f44\u2f47\u2f81\u2f89\u2f92\u2f7e\u2fb6;\u6ab3p;\u6ab7u\xe5\u0ed9\u0100;c\u0ece\u2f4c\u0300;acens\u0ec8\u2f59\u2f5f\u2f66\u2f68\u2f7eppro\xf8\u2f43urlye\xf1\u0ed9\xf1\u0ece\u0180aes\u2f6f\u2f76\u2f7approx;\u6ab9qq;\u6ab5im;\u62e8i\xed\u0edfme\u0100;s\u2f88\u0eae\u6032\u0180Eas\u2f78\u2f90\u2f7a\xf0\u2f75\u0180dfp\u0eec\u2f99\u2faf\u0180als\u2fa0\u2fa5\u2faalar;\u632eine;\u6312urf;\u6313\u0100;t\u0efb\u2fb4\xef\u0efbrel;\u62b0\u0100ci\u2fc0\u2fc5r;\uc000\ud835\udcc5;\u43c8ncsp;\u6008\u0300fiopsu\u2fda\u22e2\u2fdf\u2fe5\u2feb\u2ff1r;\uc000\ud835\udd2epf;\uc000\ud835\udd62rime;\u6057cr;\uc000\ud835\udcc6\u0180aeo\u2ff8\u3009\u3013t\u0100ei\u2ffe\u3005rnion\xf3\u06b0nt;\u6a16st\u0100;e\u3010\u3011\u403f\xf1\u1f19\xf4\u0f14\u0a80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30e0\u310e\u312b\u3147\u3162\u3172\u318e\u3206\u3215\u3224\u3229\u3258\u326e\u3272\u3290\u32b0\u32b7\u0180art\u3047\u304a\u304cr\xf2\u10b3\xf2\u03ddail;\u691car\xf2\u1c65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307f\u308f\u3094\u30cc\u0100eu\u306d\u3071;\uc000\u223d\u0331te;\u4155i\xe3\u116emptyv;\u69b3g\u0200;del\u0fd1\u3089\u308b\u308d;\u6992;\u69a5\xe5\u0fd1uo\u803b\xbb\u40bbr\u0580;abcfhlpstw\u0fdc\u30ac\u30af\u30b7\u30b9\u30bc\u30be\u30c0\u30c3\u30c7\u30cap;\u6975\u0100;f\u0fe0\u30b4s;\u6920;\u6933s;\u691e\xeb\u225d\xf0\u272el;\u6945im;\u6974l;\u61a3;\u619d\u0100ai\u30d1\u30d5il;\u691ao\u0100;n\u30db\u30dc\u6236al\xf3\u0f1e\u0180abr\u30e7\u30ea\u30eer\xf2\u17e5rk;\u6773\u0100ak\u30f3\u30fdc\u0100ek\u30f9\u30fb;\u407d;\u405d\u0100es\u3102\u3104;\u698cl\u0100du\u310a\u310c;\u698e;\u6990\u0200aeuy\u3117\u311c\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xec\u0ff2\xe2\u30fa;\u4440\u0200clqs\u3134\u3137\u313d\u3144a;\u6937dhar;\u6969uo\u0100;r\u020e\u020dh;\u61b3\u0180acg\u314e\u315f\u0f44l\u0200;ips\u0f78\u3158\u315b\u109cn\xe5\u10bbar\xf4\u0fa9t;\u65ad\u0180ilr\u3169\u1023\u316esht;\u697d;\uc000\ud835\udd2f\u0100ao\u3177\u3186r\u0100du\u317d\u317f\xbb\u047b\u0100;l\u1091\u3184;\u696c\u0100;v\u318b\u318c\u43c1;\u43f1\u0180gns\u3195\u31f9\u31fcht\u0300ahlrst\u31a4\u31b0\u31c2\u31d8\u31e4\u31eerrow\u0100;t\u0fdc\u31ada\xe9\u30c8arpoon\u0100du\u31bb\u31bfow\xee\u317ep\xbb\u1092eft\u0100ah\u31ca\u31d0rrow\xf3\u0feaarpoon\xf3\u0551ightarrows;\u61c9quigarro\xf7\u30cbhreetimes;\u62ccg;\u42daingdotse\xf1\u1f32\u0180ahm\u320d\u3210\u3213r\xf2\u0feaa\xf2\u0551;\u600foust\u0100;a\u321e\u321f\u63b1che\xbb\u321fmid;\u6aee\u0200abpt\u3232\u323d\u3240\u3252\u0100nr\u3237\u323ag;\u67edr;\u61fer\xeb\u1003\u0180afl\u3247\u324a\u324er;\u6986;\uc000\ud835\udd63us;\u6a2eimes;\u6a35\u0100ap\u325d\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6a12ar\xf2\u31e3\u0200achq\u327b\u3280\u10bc\u3285quo;\u603ar;\uc000\ud835\udcc7\u0100bu\u30fb\u328ao\u0100;r\u0214\u0213\u0180hir\u3297\u329b\u32a0re\xe5\u31f8mes;\u62cai\u0200;efl\u32aa\u1059\u1821\u32ab\u65b9tri;\u69celuhar;\u6968;\u611e\u0d61\u32d5\u32db\u32df\u332c\u3338\u3371\0\u337a\u33a4\0\0\u33ec\u33f0\0\u3428\u3448\u345a\u34ad\u34b1\u34ca\u34f1\0\u3616\0\0\u3633cute;\u415bqu\xef\u27ba\u0500;Eaceinpsy\u11ed\u32f3\u32f5\u32ff\u3302\u330b\u330f\u331f\u3326\u3329;\u6ab4\u01f0\u32fa\0\u32fc;\u6ab8on;\u4161u\xe5\u11fe\u0100;d\u11f3\u3307il;\u415frc;\u415d\u0180Eas\u3316\u3318\u331b;\u6ab6p;\u6abaim;\u62e9olint;\u6a13i\xed\u1204;\u4441ot\u0180;be\u3334\u1d47\u3335\u62c5;\u6a66\u0380Aacmstx\u3346\u334a\u3357\u335b\u335e\u3363\u336drr;\u61d8r\u0100hr\u3350\u3352\xeb\u2228\u0100;o\u0a36\u0a34t\u803b\xa7\u40a7i;\u403bwar;\u6929m\u0100in\u3369\xf0nu\xf3\xf1t;\u6736r\u0100;o\u3376\u2055\uc000\ud835\udd30\u0200acoy\u3382\u3386\u3391\u33a0rp;\u666f\u0100hy\u338b\u338fcy;\u4449;\u4448rt\u026d\u3399\0\0\u339ci\xe4\u1464ara\xec\u2e6f\u803b\xad\u40ad\u0100gm\u33a8\u33b4ma\u0180;fv\u33b1\u33b2\u33b2\u43c3;\u43c2\u0400;deglnpr\u12ab\u33c5\u33c9\u33ce\u33d6\u33de\u33e1\u33e6ot;\u6a6a\u0100;q\u12b1\u12b0\u0100;E\u33d3\u33d4\u6a9e;\u6aa0\u0100;E\u33db\u33dc\u6a9d;\u6a9fe;\u6246lus;\u6a24arr;\u6972ar\xf2\u113d\u0200aeit\u33f8\u3408\u340f\u3417\u0100ls\u33fd\u3404lsetm\xe9\u336ahp;\u6a33parsl;\u69e4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341c\u341d\u6aaa\u0100;s\u3422\u3423\u6aac;\uc000\u2aac\ufe00\u0180flp\u342e\u3433\u3442tcy;\u444c\u0100;b\u3438\u3439\u402f\u0100;a\u343e\u343f\u69c4r;\u633ff;\uc000\ud835\udd64a\u0100dr\u344d\u0402es\u0100;u\u3454\u3455\u6660it\xbb\u3455\u0180csu\u3460\u3479\u349f\u0100au\u3465\u346fp\u0100;s\u1188\u346b;\uc000\u2293\ufe00p\u0100;s\u11b4\u3475;\uc000\u2294\ufe00u\u0100bp\u347f\u348f\u0180;es\u1197\u119c\u3486et\u0100;e\u1197\u348d\xf1\u119d\u0180;es\u11a8\u11ad\u3496et\u0100;e\u11a8\u349d\xf1\u11ae\u0180;af\u117b\u34a6\u05b0r\u0165\u34ab\u05b1\xbb\u117car\xf2\u1148\u0200cemt\u34b9\u34be\u34c2\u34c5r;\uc000\ud835\udcc8tm\xee\xf1i\xec\u3415ar\xe6\u11be\u0100ar\u34ce\u34d5r\u0100;f\u34d4\u17bf\u6606\u0100an\u34da\u34edight\u0100ep\u34e3\u34eapsilo\xee\u1ee0h\xe9\u2eafs\xbb\u2852\u0280bcmnp\u34fb\u355e\u1209\u358b\u358e\u0480;Edemnprs\u350e\u350f\u3511\u3515\u351e\u3523\u352c\u3531\u3536\u6282;\u6ac5ot;\u6abd\u0100;d\u11da\u351aot;\u6ac3ult;\u6ac1\u0100Ee\u3528\u352a;\u6acb;\u628alus;\u6abfarr;\u6979\u0180eiu\u353d\u3552\u3555t\u0180;en\u350e\u3545\u354bq\u0100;q\u11da\u350feq\u0100;q\u352b\u3528m;\u6ac7\u0100bp\u355a\u355c;\u6ad5;\u6ad3c\u0300;acens\u11ed\u356c\u3572\u3579\u357b\u3326ppro\xf8\u32faurlye\xf1\u11fe\xf1\u11f3\u0180aes\u3582\u3588\u331bppro\xf8\u331aq\xf1\u3317g;\u666a\u0680123;Edehlmnps\u35a9\u35ac\u35af\u121c\u35b2\u35b4\u35c0\u35c9\u35d5\u35da\u35df\u35e8\u35ed\u803b\xb9\u40b9\u803b\xb2\u40b2\u803b\xb3\u40b3;\u6ac6\u0100os\u35b9\u35bct;\u6abeub;\u6ad8\u0100;d\u1222\u35c5ot;\u6ac4s\u0100ou\u35cf\u35d2l;\u67c9b;\u6ad7arr;\u697bult;\u6ac2\u0100Ee\u35e4\u35e6;\u6acc;\u628blus;\u6ac0\u0180eiu\u35f4\u3609\u360ct\u0180;en\u121c\u35fc\u3602q\u0100;q\u1222\u35b2eq\u0100;q\u35e7\u35e4m;\u6ac8\u0100bp\u3611\u3613;\u6ad4;\u6ad6\u0180Aan\u361c\u3620\u362drr;\u61d9r\u0100hr\u3626\u3628\xeb\u222e\u0100;o\u0a2b\u0a29war;\u692alig\u803b\xdf\u40df\u0be1\u3651\u365d\u3660\u12ce\u3673\u3679\0\u367e\u36c2\0\0\0\0\0\u36db\u3703\0\u3709\u376c\0\0\0\u3787\u0272\u3656\0\0\u365bget;\u6316;\u43c4r\xeb\u0e5f\u0180aey\u3666\u366b\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uc000\ud835\udd31\u0200eiko\u3686\u369d\u36b5\u36bc\u01f2\u368b\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369b\u43b8ym;\u43d1\u0100cn\u36a2\u36b2k\u0100as\u36a8\u36aeppro\xf8\u12c1im\xbb\u12acs\xf0\u129e\u0100as\u36ba\u36ae\xf0\u12c1rn\u803b\xfe\u40fe\u01ec\u031f\u36c6\u22e7es\u8180\xd7;bd\u36cf\u36d0\u36d8\u40d7\u0100;a\u190f\u36d5r;\u6a31;\u6a30\u0180eps\u36e1\u36e3\u3700\xe1\u2a4d\u0200;bcf\u0486\u36ec\u36f0\u36f4ot;\u6336ir;\u6af1\u0100;o\u36f9\u36fc\uc000\ud835\udd65rk;\u6ada\xe1\u3362rime;\u6034\u0180aip\u370f\u3712\u3764d\xe5\u1248\u0380adempst\u3721\u374d\u3740\u3751\u3757\u375c\u375fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65b5own\xbb\u1dbbeft\u0100;e\u2800\u373e\xf1\u092e;\u625cight\u0100;e\u32aa\u374b\xf1\u105aot;\u65ecinus;\u6a3alus;\u6a39b;\u69cdime;\u6a3bezium;\u63e2\u0180cht\u3772\u377d\u3781\u0100ry\u3777\u377b;\uc000\ud835\udcc9;\u4446cy;\u445brok;\u4167\u0100io\u378b\u378ex\xf4\u1777head\u0100lr\u3797\u37a0eftarro\xf7\u084fightarrow\xbb\u0f5d\u0900AHabcdfghlmoprstuw\u37d0\u37d3\u37d7\u37e4\u37f0\u37fc\u380e\u381c\u3823\u3834\u3851\u385d\u386b\u38a9\u38cc\u38d2\u38ea\u38f6r\xf2\u03edar;\u6963\u0100cr\u37dc\u37e2ute\u803b\xfa\u40fa\xf2\u1150r\u01e3\u37ea\0\u37edy;\u445eve;\u416d\u0100iy\u37f5\u37farc\u803b\xfb\u40fb;\u4443\u0180abh\u3803\u3806\u380br\xf2\u13adlac;\u4171a\xf2\u13c3\u0100ir\u3813\u3818sht;\u697e;\uc000\ud835\udd32rave\u803b\xf9\u40f9\u0161\u3827\u3831r\u0100lr\u382c\u382e\xbb\u0957\xbb\u1083lk;\u6580\u0100ct\u3839\u384d\u026f\u383f\0\0\u384arn\u0100;e\u3845\u3846\u631cr\xbb\u3846op;\u630fri;\u65f8\u0100al\u3856\u385acr;\u416b\u80bb\xa8\u0349\u0100gp\u3862\u3866on;\u4173f;\uc000\ud835\udd66\u0300adhlsu\u114b\u3878\u387d\u1372\u3891\u38a0own\xe1\u13b3arpoon\u0100lr\u3888\u388cef\xf4\u382digh\xf4\u382fi\u0180;hl\u3899\u389a\u389c\u43c5\xbb\u13faon\xbb\u389aparrows;\u61c8\u0180cit\u38b0\u38c4\u38c8\u026f\u38b6\0\0\u38c1rn\u0100;e\u38bc\u38bd\u631dr\xbb\u38bdop;\u630eng;\u416fri;\u65f9cr;\uc000\ud835\udcca\u0180dir\u38d9\u38dd\u38e2ot;\u62f0lde;\u4169i\u0100;f\u3730\u38e8\xbb\u1813\u0100am\u38ef\u38f2r\xf2\u38a8l\u803b\xfc\u40fcangle;\u69a7\u0780ABDacdeflnoprsz\u391c\u391f\u3929\u392d\u39b5\u39b8\u39bd\u39df\u39e4\u39e8\u39f3\u39f9\u39fd\u3a01\u3a20r\xf2\u03f7ar\u0100;v\u3926\u3927\u6ae8;\u6ae9as\xe8\u03e1\u0100nr\u3932\u3937grt;\u699c\u0380eknprst\u34e3\u3946\u394b\u3952\u395d\u3964\u3996app\xe1\u2415othin\xe7\u1e96\u0180hir\u34eb\u2ec8\u3959op\xf4\u2fb5\u0100;h\u13b7\u3962\xef\u318d\u0100iu\u3969\u396dgm\xe1\u33b3\u0100bp\u3972\u3984setneq\u0100;q\u397d\u3980\uc000\u228a\ufe00;\uc000\u2acb\ufe00setneq\u0100;q\u398f\u3992\uc000\u228b\ufe00;\uc000\u2acc\ufe00\u0100hr\u399b\u399fet\xe1\u369ciangle\u0100lr\u39aa\u39afeft\xbb\u0925ight\xbb\u1051y;\u4432ash\xbb\u1036\u0180elr\u39c4\u39d2\u39d7\u0180;be\u2dea\u39cb\u39cfar;\u62bbq;\u625alip;\u62ee\u0100bt\u39dc\u1468a\xf2\u1469r;\uc000\ud835\udd33tr\xe9\u39aesu\u0100bp\u39ef\u39f1\xbb\u0d1c\xbb\u0d59pf;\uc000\ud835\udd67ro\xf0\u0efbtr\xe9\u39b4\u0100cu\u3a06\u3a0br;\uc000\ud835\udccb\u0100bp\u3a10\u3a18n\u0100Ee\u3980\u3a16\xbb\u397en\u0100Ee\u3992\u3a1e\xbb\u3990igzag;\u699a\u0380cefoprs\u3a36\u3a3b\u3a56\u3a5b\u3a54\u3a61\u3a6airc;\u4175\u0100di\u3a40\u3a51\u0100bg\u3a45\u3a49ar;\u6a5fe\u0100;q\u15fa\u3a4f;\u6259erp;\u6118r;\uc000\ud835\udd34pf;\uc000\ud835\udd68\u0100;e\u1479\u3a66at\xe8\u1479cr;\uc000\ud835\udccc\u0ae3\u178e\u3a87\0\u3a8b\0\u3a90\u3a9b\0\0\u3a9d\u3aa8\u3aab\u3aaf\0\0\u3ac3\u3ace\0\u3ad8\u17dc\u17dftr\xe9\u17d1r;\uc000\ud835\udd35\u0100Aa\u3a94\u3a97r\xf2\u03c3r\xf2\u09f6;\u43be\u0100Aa\u3aa1\u3aa4r\xf2\u03b8r\xf2\u09eba\xf0\u2713is;\u62fb\u0180dpt\u17a4\u3ab5\u3abe\u0100fl\u3aba\u17a9;\uc000\ud835\udd69im\xe5\u17b2\u0100Aa\u3ac7\u3acar\xf2\u03cer\xf2\u0a01\u0100cq\u3ad2\u17b8r;\uc000\ud835\udccd\u0100pt\u17d6\u3adcr\xe9\u17d4\u0400acefiosu\u3af0\u3afd\u3b08\u3b0c\u3b11\u3b15\u3b1b\u3b21c\u0100uy\u3af6\u3afbte\u803b\xfd\u40fd;\u444f\u0100iy\u3b02\u3b06rc;\u4177;\u444bn\u803b\xa5\u40a5r;\uc000\ud835\udd36cy;\u4457pf;\uc000\ud835\udd6acr;\uc000\ud835\udcce\u0100cm\u3b26\u3b29y;\u444el\u803b\xff\u40ff\u0500acdefhiosw\u3b42\u3b48\u3b54\u3b58\u3b64\u3b69\u3b6d\u3b74\u3b7a\u3b80cute;\u417a\u0100ay\u3b4d\u3b52ron;\u417e;\u4437ot;\u417c\u0100et\u3b5d\u3b61tr\xe6\u155fa;\u43b6r;\uc000\ud835\udd37cy;\u4436grarr;\u61ddpf;\uc000\ud835\udd6bcr;\uc000\ud835\udccf\u0100jn\u3b85\u3b87;\u600dj;\u600c"
+ .split("")
+ .map(function (c) { return c.charCodeAt(0); }));
+
+});
+define("entities/generated/encode-html",["require","exports"],(require,exports)=>{var module={get exports(){return exports},set exports(value){exports._replace(value);exports=value}};
+"use strict";
+// Generated using scripts/write-encode-map.ts
+Object.defineProperty(exports, "__esModule", { value: true });
+function restoreDiff(arr) {
+ for (var i = 1; i < arr.length; i++) {
+ arr[i][0] += arr[i - 1][0] + 1;
+ }
+ return arr;
+}
+// prettier-ignore
+exports.default = new Map(/* #__PURE__ */ restoreDiff([[9, "	"], [0, "
"], [22, "!"], [0, """], [0, "#"], [0, "$"], [0, "%"], [0, "&"], [0, "'"], [0, "("], [0, ")"], [0, "*"], [0, "+"], [0, ","], [1, "."], [0, "/"], [10, ":"], [0, ";"], [0, { v: "<", n: 8402, o: "<⃒" }], [0, { v: "=", n: 8421, o: "=⃥" }], [0, { v: ">", n: 8402, o: ">⃒" }], [0, "?"], [0, "@"], [26, "["], [0, "\"], [0, "]"], [0, "^"], [0, "_"], [0, "`"], [5, { n: 106, o: "fj" }], [20, "{"], [0, "|"], [0, "}"], [34, " "], [0, "¡"], [0, "¢"], [0, "£"], [0, "¤"], [0, "¥"], [0, "¦"], [0, "§"], [0, "¨"], [0, "©"], [0, "ª"], [0, "«"], [0, "¬"], [0, ""], [0, "®"], [0, "¯"], [0, "°"], [0, "±"], [0, "²"], [0, "³"], [0, "´"], [0, "µ"], [0, "¶"], [0, "·"], [0, "¸"], [0, "¹"], [0, "º"], [0, "»"], [0, "¼"], [0, "½"], [0, "¾"], [0, "¿"], [0, "À"], [0, "Á"], [0, "Â"], [0, "Ã"], [0, "Ä"], [0, "Å"], [0, "Æ"], [0, "Ç"], [0, "È"], [0, "É"], [0, "Ê"], [0, "Ë"], [0, "Ì"], [0, "Í"], [0, "Î"], [0, "Ï"], [0, "Ð"], [0, "Ñ"], [0, "Ò"], [0, "Ó"], [0, "Ô"], [0, "Õ"], [0, "Ö"], [0, "×"], [0, "Ø"], [0, "Ù"], [0, "Ú"], [0, "Û"], [0, "Ü"], [0, "Ý"], [0, "Þ"], [0, "ß"], [0, "à"], [0, "á"], [0, "â"], [0, "ã"], [0, "ä"], [0, "å"], [0, "æ"], [0, "ç"], [0, "è"], [0, "é"], [0, "ê"], [0, "ë"], [0, "ì"], [0, "í"], [0, "î"], [0, "ï"], [0, "ð"], [0, "ñ"], [0, "ò"], [0, "ó"], [0, "ô"], [0, "õ"], [0, "ö"], [0, "÷"], [0, "ø"], [0, "ù"], [0, "ú"], [0, "û"], [0, "ü"], [0, "ý"], [0, "þ"], [0, "ÿ"], [0, "Ā"], [0, "ā"], [0, "Ă"], [0, "ă"], [0, "Ą"], [0, "ą"], [0, "Ć"], [0, "ć"], [0, "Ĉ"], [0, "ĉ"], [0, "Ċ"], [0, "ċ"], [0, "Č"], [0, "č"], [0, "Ď"], [0, "ď"], [0, "Đ"], [0, "đ"], [0, "Ē"], [0, "ē"], [2, "Ė"], [0, "ė"], [0, "Ę"], [0, "ę"], [0, "Ě"], [0, "ě"], [0, "Ĝ"], [0, "ĝ"], [0, "Ğ"], [0, "ğ"], [0, "Ġ"], [0, "ġ"], [0, "Ģ"], [1, "Ĥ"], [0, "ĥ"], [0, "Ħ"], [0, "ħ"], [0, "Ĩ"], [0, "ĩ"], [0, "Ī"], [0, "ī"], [2, "Į"], [0, "į"], [0, "İ"], [0, "ı"], [0, "IJ"], [0, "ij"], [0, "Ĵ"], [0, "ĵ"], [0, "Ķ"], [0, "ķ"], [0, "ĸ"], [0, "Ĺ"], [0, "ĺ"], [0, "Ļ"], [0, "ļ"], [0, "Ľ"], [0, "ľ"], [0, "Ŀ"], [0, "ŀ"], [0, "Ł"], [0, "ł"], [0, "Ń"], [0, "ń"], [0, "Ņ"], [0, "ņ"], [0, "Ň"], [0, "ň"], [0, "ʼn"], [0, "Ŋ"], [0, "ŋ"], [0, "Ō"], [0, "ō"], [2, "Ő"], [0, "ő"], [0, "Œ"], [0, "œ"], [0, "Ŕ"], [0, "ŕ"], [0, "Ŗ"], [0, "ŗ"], [0, "Ř"], [0, "ř"], [0, "Ś"], [0, "ś"], [0, "Ŝ"], [0, "ŝ"], [0, "Ş"], [0, "ş"], [0, "Š"], [0, "š"], [0, "Ţ"], [0, "ţ"], [0, "Ť"], [0, "ť"], [0, "Ŧ"], [0, "ŧ"], [0, "Ũ"], [0, "ũ"], [0, "Ū"], [0, "ū"], [0, "Ŭ"], [0, "ŭ"], [0, "Ů"], [0, "ů"], [0, "Ű"], [0, "ű"], [0, "Ų"], [0, "ų"], [0, "Ŵ"], [0, "ŵ"], [0, "Ŷ"], [0, "ŷ"], [0, "Ÿ"], [0, "Ź"], [0, "ź"], [0, "Ż"], [0, "ż"], [0, "Ž"], [0, "ž"], [19, "ƒ"], [34, "Ƶ"], [63, "ǵ"], [65, "ȷ"], [142, "ˆ"], [0, "ˇ"], [16, "˘"], [0, "˙"], [0, "˚"], [0, "˛"], [0, "˜"], [0, "˝"], [51, "̑"], [127, "Α"], [0, "Β"], [0, "Γ"], [0, "Δ"], [0, "Ε"], [0, "Ζ"], [0, "Η"], [0, "Θ"], [0, "Ι"], [0, "Κ"], [0, "Λ"], [0, "Μ"], [0, "Ν"], [0, "Ξ"], [0, "Ο"], [0, "Π"], [0, "Ρ"], [1, "Σ"], [0, "Τ"], [0, "Υ"], [0, "Φ"], [0, "Χ"], [0, "Ψ"], [0, "Ω"], [7, "α"], [0, "β"], [0, "γ"], [0, "δ"], [0, "ε"], [0, "ζ"], [0, "η"], [0, "θ"], [0, "ι"], [0, "κ"], [0, "λ"], [0, "μ"], [0, "ν"], [0, "ξ"], [0, "ο"], [0, "π"], [0, "ρ"], [0, "ς"], [0, "σ"], [0, "τ"], [0, "υ"], [0, "φ"], [0, "χ"], [0, "ψ"], [0, "ω"], [7, "ϑ"], [0, "ϒ"], [2, "ϕ"], [0, "ϖ"], [5, "Ϝ"], [0, "ϝ"], [18, "ϰ"], [0, "ϱ"], [3, "ϵ"], [0, "϶"], [10, "Ё"], [0, "Ђ"], [0, "Ѓ"], [0, "Є"], [0, "Ѕ"], [0, "І"], [0, "Ї"], [0, "Ј"], [0, "Љ"], [0, "Њ"], [0, "Ћ"], [0, "Ќ"], [1, "Ў"], [0, "Џ"], [0, "А"], [0, "Б"], [0, "В"], [0, "Г"], [0, "Д"], [0, "Е"], [0, "Ж"], [0, "З"], [0, "И"], [0, "Й"], [0, "К"], [0, "Л"], [0, "М"], [0, "Н"], [0, "О"], [0, "П"], [0, "Р"], [0, "С"], [0, "Т"], [0, "У"], [0, "Ф"], [0, "Х"], [0, "Ц"], [0, "Ч"], [0, "Ш"], [0, "Щ"], [0, "Ъ"], [0, "Ы"], [0, "Ь"], [0, "Э"], [0, "Ю"], [0, "Я"], [0, "а"], [0, "б"], [0, "в"], [0, "г"], [0, "д"], [0, "е"], [0, "ж"], [0, "з"], [0, "и"], [0, "й"], [0, "к"], [0, "л"], [0, "м"], [0, "н"], [0, "о"], [0, "п"], [0, "р"], [0, "с"], [0, "т"], [0, "у"], [0, "ф"], [0, "х"], [0, "ц"], [0, "ч"], [0, "ш"], [0, "щ"], [0, "ъ"], [0, "ы"], [0, "ь"], [0, "э"], [0, "ю"], [0, "я"], [1, "ё"], [0, "ђ"], [0, "ѓ"], [0, "є"], [0, "ѕ"], [0, "і"], [0, "ї"], [0, "ј"], [0, "љ"], [0, "њ"], [0, "ћ"], [0, "ќ"], [1, "ў"], [0, "џ"], [7074, " "], [0, " "], [0, " "], [0, " "], [1, " "], [0, " "], [0, " "], [0, " "], [0, "​"], [0, ""], [0, ""], [0, ""], [0, ""], [0, "‐"], [2, "–"], [0, "—"], [0, "―"], [0, "‖"], [1, "‘"], [0, "’"], [0, "‚"], [1, "“"], [0, "”"], [0, "„"], [1, "†"], [0, "‡"], [0, "•"], [2, "‥"], [0, "…"], [9, "‰"], [0, "‱"], [0, "′"], [0, "″"], [0, "‴"], [0, "‵"], [3, "‹"], [0, "›"], [3, "‾"], [2, "⁁"], [1, "⁃"], [0, "⁄"], [10, "⁏"], [7, "⁗"], [7, { v: " ", n: 8202, o: "  " }], [0, "⁠"], [0, "⁡"], [0, "⁢"], [0, "⁣"], [72, "€"], [46, "⃛"], [0, "⃜"], [37, "ℂ"], [2, "℅"], [4, "ℊ"], [0, "ℋ"], [0, "ℌ"], [0, "ℍ"], [0, "ℎ"], [0, "ℏ"], [0, "ℐ"], [0, "ℑ"], [0, "ℒ"], [0, "ℓ"], [1, "ℕ"], [0, "№"], [0, "℗"], [0, "℘"], [0, "ℙ"], [0, "ℚ"], [0, "ℛ"], [0, "ℜ"], [0, "ℝ"], [0, "℞"], [3, "™"], [1, "ℤ"], [2, "℧"], [0, "ℨ"], [0, "℩"], [2, "ℬ"], [0, "ℭ"], [1, "ℯ"], [0, "ℰ"], [0, "ℱ"], [1, "ℳ"], [0, "ℴ"], [0, "ℵ"], [0, "ℶ"], [0, "ℷ"], [0, "ℸ"], [12, "ⅅ"], [0, "ⅆ"], [0, "ⅇ"], [0, "ⅈ"], [10, "⅓"], [0, "⅔"], [0, "⅕"], [0, "⅖"], [0, "⅗"], [0, "⅘"], [0, "⅙"], [0, "⅚"], [0, "⅛"], [0, "⅜"], [0, "⅝"], [0, "⅞"], [49, "←"], [0, "↑"], [0, "→"], [0, "↓"], [0, "↔"], [0, "↕"], [0, "↖"], [0, "↗"], [0, "↘"], [0, "↙"], [0, "↚"], [0, "↛"], [1, { v: "↝", n: 824, o: "↝̸" }], [0, "↞"], [0, "↟"], [0, "↠"], [0, "↡"], [0, "↢"], [0, "↣"], [0, "↤"], [0, "↥"], [0, "↦"], [0, "↧"], [1, "↩"], [0, "↪"], [0, "↫"], [0, "↬"], [0, "↭"], [0, "↮"], [1, "↰"], [0, "↱"], [0, "↲"], [0, "↳"], [1, "↵"], [0, "↶"], [0, "↷"], [2, "↺"], [0, "↻"], [0, "↼"], [0, "↽"], [0, "↾"], [0, "↿"], [0, "⇀"], [0, "⇁"], [0, "⇂"], [0, "⇃"], [0, "⇄"], [0, "⇅"], [0, "⇆"], [0, "⇇"], [0, "⇈"], [0, "⇉"], [0, "⇊"], [0, "⇋"], [0, "⇌"], [0, "⇍"], [0, "⇎"], [0, "⇏"], [0, "⇐"], [0, "⇑"], [0, "⇒"], [0, "⇓"], [0, "⇔"], [0, "⇕"], [0, "⇖"], [0, "⇗"], [0, "⇘"], [0, "⇙"], [0, "⇚"], [0, "⇛"], [1, "⇝"], [6, "⇤"], [0, "⇥"], [15, "⇵"], [7, "⇽"], [0, "⇾"], [0, "⇿"], [0, "∀"], [0, "∁"], [0, { v: "∂", n: 824, o: "∂̸" }], [0, "∃"], [0, "∄"], [0, "∅"], [1, "∇"], [0, "∈"], [0, "∉"], [1, "∋"], [0, "∌"], [2, "∏"], [0, "∐"], [0, "∑"], [0, "−"], [0, "∓"], [0, "∔"], [1, "∖"], [0, "∗"], [0, "∘"], [1, "√"], [2, "∝"], [0, "∞"], [0, "∟"], [0, { v: "∠", n: 8402, o: "∠⃒" }], [0, "∡"], [0, "∢"], [0, "∣"], [0, "∤"], [0, "∥"], [0, "∦"], [0, "∧"], [0, "∨"], [0, { v: "∩", n: 65024, o: "∩︀" }], [0, { v: "∪", n: 65024, o: "∪︀" }], [0, "∫"], [0, "∬"], [0, "∭"], [0, "∮"], [0, "∯"], [0, "∰"], [0, "∱"], [0, "∲"], [0, "∳"], [0, "∴"], [0, "∵"], [0, "∶"], [0, "∷"], [0, "∸"], [1, "∺"], [0, "∻"], [0, { v: "∼", n: 8402, o: "∼⃒" }], [0, { v: "∽", n: 817, o: "∽̱" }], [0, { v: "∾", n: 819, o: "∾̳" }], [0, "∿"], [0, "≀"], [0, "≁"], [0, { v: "≂", n: 824, o: "≂̸" }], [0, "≃"], [0, "≄"], [0, "≅"], [0, "≆"], [0, "≇"], [0, "≈"], [0, "≉"], [0, "≊"], [0, { v: "≋", n: 824, o: "≋̸" }], [0, "≌"], [0, { v: "≍", n: 8402, o: "≍⃒" }], [0, { v: "≎", n: 824, o: "≎̸" }], [0, { v: "≏", n: 824, o: "≏̸" }], [0, { v: "≐", n: 824, o: "≐̸" }], [0, "≑"], [0, "≒"], [0, "≓"], [0, "≔"], [0, "≕"], [0, "≖"], [0, "≗"], [1, "≙"], [0, "≚"], [1, "≜"], [2, "≟"], [0, "≠"], [0, { v: "≡", n: 8421, o: "≡⃥" }], [0, "≢"], [1, { v: "≤", n: 8402, o: "≤⃒" }], [0, { v: "≥", n: 8402, o: "≥⃒" }], [0, { v: "≦", n: 824, o: "≦̸" }], [0, { v: "≧", n: 824, o: "≧̸" }], [0, { v: "≨", n: 65024, o: "≨︀" }], [0, { v: "≩", n: 65024, o: "≩︀" }], [0, { v: "≪", n: new Map(/* #__PURE__ */ restoreDiff([[824, "≪̸"], [7577, "≪⃒"]])) }], [0, { v: "≫", n: new Map(/* #__PURE__ */ restoreDiff([[824, "≫̸"], [7577, "≫⃒"]])) }], [0, "≬"], [0, "≭"], [0, "≮"], [0, "≯"], [0, "≰"], [0, "≱"], [0, "≲"], [0, "≳"], [0, "≴"], [0, "≵"], [0, "≶"], [0, "≷"], [0, "≸"], [0, "≹"], [0, "≺"], [0, "≻"], [0, "≼"], [0, "≽"], [0, "≾"], [0, { v: "≿", n: 824, o: "≿̸" }], [0, "⊀"], [0, "⊁"], [0, { v: "⊂", n: 8402, o: "⊂⃒" }], [0, { v: "⊃", n: 8402, o: "⊃⃒" }], [0, "⊄"], [0, "⊅"], [0, "⊆"], [0, "⊇"], [0, "⊈"], [0, "⊉"], [0, { v: "⊊", n: 65024, o: "⊊︀" }], [0, { v: "⊋", n: 65024, o: "⊋︀" }], [1, "⊍"], [0, "⊎"], [0, { v: "⊏", n: 824, o: "⊏̸" }], [0, { v: "⊐", n: 824, o: "⊐̸" }], [0, "⊑"], [0, "⊒"], [0, { v: "⊓", n: 65024, o: "⊓︀" }], [0, { v: "⊔", n: 65024, o: "⊔︀" }], [0, "⊕"], [0, "⊖"], [0, "⊗"], [0, "⊘"], [0, "⊙"], [0, "⊚"], [0, "⊛"], [1, "⊝"], [0, "⊞"], [0, "⊟"], [0, "⊠"], [0, "⊡"], [0, "⊢"], [0, "⊣"], [0, "⊤"], [0, "⊥"], [1, "⊧"], [0, "⊨"], [0, "⊩"], [0, "⊪"], [0, "⊫"], [0, "⊬"], [0, "⊭"], [0, "⊮"], [0, "⊯"], [0, "⊰"], [1, "⊲"], [0, "⊳"], [0, { v: "⊴", n: 8402, o: "⊴⃒" }], [0, { v: "⊵", n: 8402, o: "⊵⃒" }], [0, "⊶"], [0, "⊷"], [0, "⊸"], [0, "⊹"], [0, "⊺"], [0, "⊻"], [1, "⊽"], [0, "⊾"], [0, "⊿"], [0, "⋀"], [0, "⋁"], [0, "⋂"], [0, "⋃"], [0, "⋄"], [0, "⋅"], [0, "⋆"], [0, "⋇"], [0, "⋈"], [0, "⋉"], [0, "⋊"], [0, "⋋"], [0, "⋌"], [0, "⋍"], [0, "⋎"], [0, "⋏"], [0, "⋐"], [0, "⋑"], [0, "⋒"], [0, "⋓"], [0, "⋔"], [0, "⋕"], [0, "⋖"], [0, "⋗"], [0, { v: "⋘", n: 824, o: "⋘̸" }], [0, { v: "⋙", n: 824, o: "⋙̸" }], [0, { v: "⋚", n: 65024, o: "⋚︀" }], [0, { v: "⋛", n: 65024, o: "⋛︀" }], [2, "⋞"], [0, "⋟"], [0, "⋠"], [0, "⋡"], [0, "⋢"], [0, "⋣"], [2, "⋦"], [0, "⋧"], [0, "⋨"], [0, "⋩"], [0, "⋪"], [0, "⋫"], [0, "⋬"], [0, "⋭"], [0, "⋮"], [0, "⋯"], [0, "⋰"], [0, "⋱"], [0, "⋲"], [0, "⋳"], [0, "⋴"], [0, { v: "⋵", n: 824, o: "⋵̸" }], [0, "⋶"], [0, "⋷"], [1, { v: "⋹", n: 824, o: "⋹̸" }], [0, "⋺"], [0, "⋻"], [0, "⋼"], [0, "⋽"], [0, "⋾"], [6, "⌅"], [0, "⌆"], [1, "⌈"], [0, "⌉"], [0, "⌊"], [0, "⌋"], [0, "⌌"], [0, "⌍"], [0, "⌎"], [0, "⌏"], [0, "⌐"], [1, "⌒"], [0, "⌓"], [1, "⌕"], [0, "⌖"], [5, "⌜"], [0, "⌝"], [0, "⌞"], [0, "⌟"], [2, "⌢"], [0, "⌣"], [9, "⌭"], [0, "⌮"], [7, "⌶"], [6, "⌽"], [1, "⌿"], [60, "⍼"], [51, "⎰"], [0, "⎱"], [2, "⎴"], [0, "⎵"], [0, "⎶"], [37, "⏜"], [0, "⏝"], [0, "⏞"], [0, "⏟"], [2, "⏢"], [4, "⏧"], [59, "␣"], [164, "Ⓢ"], [55, "─"], [1, "│"], [9, "┌"], [3, "┐"], [3, "└"], [3, "┘"], [3, "├"], [7, "┤"], [7, "┬"], [7, "┴"], [7, "┼"], [19, "═"], [0, "║"], [0, "╒"], [0, "╓"], [0, "╔"], [0, "╕"], [0, "╖"], [0, "╗"], [0, "╘"], [0, "╙"], [0, "╚"], [0, "╛"], [0, "╜"], [0, "╝"], [0, "╞"], [0, "╟"], [0, "╠"], [0, "╡"], [0, "╢"], [0, "╣"], [0, "╤"], [0, "╥"], [0, "╦"], [0, "╧"], [0, "╨"], [0, "╩"], [0, "╪"], [0, "╫"], [0, "╬"], [19, "▀"], [3, "▄"], [3, "█"], [8, "░"], [0, "▒"], [0, "▓"], [13, "□"], [8, "▪"], [0, "▫"], [1, "▭"], [0, "▮"], [2, "▱"], [1, "△"], [0, "▴"], [0, "▵"], [2, "▸"], [0, "▹"], [3, "▽"], [0, "▾"], [0, "▿"], [2, "◂"], [0, "◃"], [6, "◊"], [0, "○"], [32, "◬"], [2, "◯"], [8, "◸"], [0, "◹"], [0, "◺"], [0, "◻"], [0, "◼"], [8, "★"], [0, "☆"], [7, "☎"], [49, "♀"], [1, "♂"], [29, "♠"], [2, "♣"], [1, "♥"], [0, "♦"], [3, "♪"], [2, "♭"], [0, "♮"], [0, "♯"], [163, "✓"], [3, "✗"], [8, "✠"], [21, "✶"], [33, "❘"], [25, "❲"], [0, "❳"], [84, "⟈"], [0, "⟉"], [28, "⟦"], [0, "⟧"], [0, "〈"], [0, "〉"], [0, "⟪"], [0, "⟫"], [0, "⟬"], [0, "⟭"], [7, "⟵"], [0, "⟶"], [0, "⟷"], [0, "⟸"], [0, "⟹"], [0, "⟺"], [1, "⟼"], [2, "⟿"], [258, "⤂"], [0, "⤃"], [0, "⤄"], [0, "⤅"], [6, "⤌"], [0, "⤍"], [0, "⤎"], [0, "⤏"], [0, "⤐"], [0, "⤑"], [0, "⤒"], [0, "⤓"], [2, "⤖"], [2, "⤙"], [0, "⤚"], [0, "⤛"], [0, "⤜"], [0, "⤝"], [0, "⤞"], [0, "⤟"], [0, "⤠"], [2, "⤣"], [0, "⤤"], [0, "⤥"], [0, "⤦"], [0, "⤧"], [0, "⤨"], [0, "⤩"], [0, "⤪"], [8, { v: "⤳", n: 824, o: "⤳̸" }], [1, "⤵"], [0, "⤶"], [0, "⤷"], [0, "⤸"], [0, "⤹"], [2, "⤼"], [0, "⤽"], [7, "⥅"], [2, "⥈"], [0, "⥉"], [0, "⥊"], [0, "⥋"], [2, "⥎"], [0, "⥏"], [0, "⥐"], [0, "⥑"], [0, "⥒"], [0, "⥓"], [0, "⥔"], [0, "⥕"], [0, "⥖"], [0, "⥗"], [0, "⥘"], [0, "⥙"], [0, "⥚"], [0, "⥛"], [0, "⥜"], [0, "⥝"], [0, "⥞"], [0, "⥟"], [0, "⥠"], [0, "⥡"], [0, "⥢"], [0, "⥣"], [0, "⥤"], [0, "⥥"], [0, "⥦"], [0, "⥧"], [0, "⥨"], [0, "⥩"], [0, "⥪"], [0, "⥫"], [0, "⥬"], [0, "⥭"], [0, "⥮"], [0, "⥯"], [0, "⥰"], [0, "⥱"], [0, "⥲"], [0, "⥳"], [0, "⥴"], [0, "⥵"], [0, "⥶"], [1, "⥸"], [0, "⥹"], [1, "⥻"], [0, "⥼"], [0, "⥽"], [0, "⥾"], [0, "⥿"], [5, "⦅"], [0, "⦆"], [4, "⦋"], [0, "⦌"], [0, "⦍"], [0, "⦎"], [0, "⦏"], [0, "⦐"], [0, "⦑"], [0, "⦒"], [0, "⦓"], [0, "⦔"], [0, "⦕"], [0, "⦖"], [3, "⦚"], [1, "⦜"], [0, "⦝"], [6, "⦤"], [0, "⦥"], [0, "⦦"], [0, "⦧"], [0, "⦨"], [0, "⦩"], [0, "⦪"], [0, "⦫"], [0, "⦬"], [0, "⦭"], [0, "⦮"], [0, "⦯"], [0, "⦰"], [0, "⦱"], [0, "⦲"], [0, "⦳"], [0, "⦴"], [0, "⦵"], [0, "⦶"], [0, "⦷"], [1, "⦹"], [1, "⦻"], [0, "⦼"], [1, "⦾"], [0, "⦿"], [0, "⧀"], [0, "⧁"], [0, "⧂"], [0, "⧃"], [0, "⧄"], [0, "⧅"], [3, "⧉"], [3, "⧍"], [0, "⧎"], [0, { v: "⧏", n: 824, o: "⧏̸" }], [0, { v: "⧐", n: 824, o: "⧐̸" }], [11, "⧜"], [0, "⧝"], [0, "⧞"], [4, "⧣"], [0, "⧤"], [0, "⧥"], [5, "⧫"], [8, "⧴"], [1, "⧶"], [9, "⨀"], [0, "⨁"], [0, "⨂"], [1, "⨄"], [1, "⨆"], [5, "⨌"], [0, "⨍"], [2, "⨐"], [0, "⨑"], [0, "⨒"], [0, "⨓"], [0, "⨔"], [0, "⨕"], [0, "⨖"], [0, "⨗"], [10, "⨢"], [0, "⨣"], [0, "⨤"], [0, "⨥"], [0, "⨦"], [0, "⨧"], [1, "⨩"], [0, "⨪"], [2, "⨭"], [0, "⨮"], [0, "⨯"], [0, "⨰"], [0, "⨱"], [1, "⨳"], [0, "⨴"], [0, "⨵"], [0, "⨶"], [0, "⨷"], [0, "⨸"], [0, "⨹"], [0, "⨺"], [0, "⨻"], [0, "⨼"], [2, "⨿"], [0, "⩀"], [1, "⩂"], [0, "⩃"], [0, "⩄"], [0, "⩅"], [0, "⩆"], [0, "⩇"], [0, "⩈"], [0, "⩉"], [0, "⩊"], [0, "⩋"], [0, "⩌"], [0, "⩍"], [2, "⩐"], [2, "⩓"], [0, "⩔"], [0, "⩕"], [0, "⩖"], [0, "⩗"], [0, "⩘"], [1, "⩚"], [0, "⩛"], [0, "⩜"], [0, "⩝"], [1, "⩟"], [6, "⩦"], [3, "⩪"], [2, { v: "⩭", n: 824, o: "⩭̸" }], [0, "⩮"], [0, "⩯"], [0, { v: "⩰", n: 824, o: "⩰̸" }], [0, "⩱"], [0, "⩲"], [0, "⩳"], [0, "⩴"], [0, "⩵"], [1, "⩷"], [0, "⩸"], [0, "⩹"], [0, "⩺"], [0, "⩻"], [0, "⩼"], [0, { v: "⩽", n: 824, o: "⩽̸" }], [0, { v: "⩾", n: 824, o: "⩾̸" }], [0, "⩿"], [0, "⪀"], [0, "⪁"], [0, "⪂"], [0, "⪃"], [0, "⪄"], [0, "⪅"], [0, "⪆"], [0, "⪇"], [0, "⪈"], [0, "⪉"], [0, "⪊"], [0, "⪋"], [0, "⪌"], [0, "⪍"], [0, "⪎"], [0, "⪏"], [0, "⪐"], [0, "⪑"], [0, "⪒"], [0, "⪓"], [0, "⪔"], [0, "⪕"], [0, "⪖"], [0, "⪗"], [0, "⪘"], [0, "⪙"], [0, "⪚"], [2, "⪝"], [0, "⪞"], [0, "⪟"], [0, "⪠"], [0, { v: "⪡", n: 824, o: "⪡̸" }], [0, { v: "⪢", n: 824, o: "⪢̸" }], [1, "⪤"], [0, "⪥"], [0, "⪦"], [0, "⪧"], [0, "⪨"], [0, "⪩"], [0, "⪪"], [0, "⪫"], [0, { v: "⪬", n: 65024, o: "⪬︀" }], [0, { v: "⪭", n: 65024, o: "⪭︀" }], [0, "⪮"], [0, { v: "⪯", n: 824, o: "⪯̸" }], [0, { v: "⪰", n: 824, o: "⪰̸" }], [2, "⪳"], [0, "⪴"], [0, "⪵"], [0, "⪶"], [0, "⪷"], [0, "⪸"], [0, "⪹"], [0, "⪺"], [0, "⪻"], [0, "⪼"], [0, "⪽"], [0, "⪾"], [0, "⪿"], [0, "⫀"], [0, "⫁"], [0, "⫂"], [0, "⫃"], [0, "⫄"], [0, { v: "⫅", n: 824, o: "⫅̸" }], [0, { v: "⫆", n: 824, o: "⫆̸" }], [0, "⫇"], [0, "⫈"], [2, { v: "⫋", n: 65024, o: "⫋︀" }], [0, { v: "⫌", n: 65024, o: "⫌︀" }], [2, "⫏"], [0, "⫐"], [0, "⫑"], [0, "⫒"], [0, "⫓"], [0, "⫔"], [0, "⫕"], [0, "⫖"], [0, "⫗"], [0, "⫘"], [0, "⫙"], [0, "⫚"], [0, "⫛"], [8, "⫤"], [1, "⫦"], [0, "⫧"], [0, "⫨"], [0, "⫩"], [1, "⫫"], [0, "⫬"], [0, "⫭"], [0, "⫮"], [0, "⫯"], [0, "⫰"], [0, "⫱"], [0, "⫲"], [0, "⫳"], [9, { v: "⫽", n: 8421, o: "⫽⃥" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, "𝒜"], [1, "𝒞"], [0, "𝒟"], [2, "𝒢"], [2, "𝒥"], [0, "𝒦"], [2, "𝒩"], [0, "𝒪"], [0, "𝒫"], [0, "𝒬"], [1, "𝒮"], [0, "𝒯"], [0, "𝒰"], [0, "𝒱"], [0, "𝒲"], [0, "𝒳"], [0, "𝒴"], [0, "𝒵"], [0, "𝒶"], [0, "𝒷"], [0, "𝒸"], [0, "𝒹"], [1, "𝒻"], [1, "𝒽"], [0, "𝒾"], [0, "𝒿"], [0, "𝓀"], [0, "𝓁"], [0, "𝓂"], [0, "𝓃"], [1, "𝓅"], [0, "𝓆"], [0, "𝓇"], [0, "𝓈"], [0, "𝓉"], [0, "𝓊"], [0, "𝓋"], [0, "𝓌"], [0, "𝓍"], [0, "𝓎"], [0, "𝓏"], [52, "𝔄"], [0, "𝔅"], [1, "𝔇"], [0, "𝔈"], [0, "𝔉"], [0, "𝔊"], [2, "𝔍"], [0, "𝔎"], [0, "𝔏"], [0, "𝔐"], [0, "𝔑"], [0, "𝔒"], [0, "𝔓"], [0, "𝔔"], [1, "𝔖"], [0, "𝔗"], [0, "𝔘"], [0, "𝔙"], [0, "𝔚"], [0, "𝔛"], [0, "𝔜"], [1, "𝔞"], [0, "𝔟"], [0, "𝔠"], [0, "𝔡"], [0, "𝔢"], [0, "𝔣"], [0, "𝔤"], [0, "𝔥"], [0, "𝔦"], [0, "𝔧"], [0, "𝔨"], [0, "𝔩"], [0, "𝔪"], [0, "𝔫"], [0, "𝔬"], [0, "𝔭"], [0, "𝔮"], [0, "𝔯"], [0, "𝔰"], [0, "𝔱"], [0, "𝔲"], [0, "𝔳"], [0, "𝔴"], [0, "𝔵"], [0, "𝔶"], [0, "𝔷"], [0, "𝔸"], [0, "𝔹"], [1, "𝔻"], [0, "𝔼"], [0, "𝔽"], [0, "𝔾"], [1, "𝕀"], [0, "𝕁"], [0, "𝕂"], [0, "𝕃"], [0, "𝕄"], [1, "𝕆"], [3, "𝕊"], [0, "𝕋"], [0, "𝕌"], [0, "𝕍"], [0, "𝕎"], [0, "𝕏"], [0, "𝕐"], [1, "𝕒"], [0, "𝕓"], [0, "𝕔"], [0, "𝕕"], [0, "𝕖"], [0, "𝕗"], [0, "𝕘"], [0, "𝕙"], [0, "𝕚"], [0, "𝕛"], [0, "𝕜"], [0, "𝕝"], [0, "𝕞"], [0, "𝕟"], [0, "𝕠"], [0, "𝕡"], [0, "𝕢"], [0, "𝕣"], [0, "𝕤"], [0, "𝕥"], [0, "𝕦"], [0, "𝕧"], [0, "𝕨"], [0, "𝕩"], [0, "𝕪"], [0, "𝕫"]])) }], [8906, "ff"], [0, "fi"], [0, "fl"], [0, "ffi"], [0, "ffl"]]));
+
+});
+define("entities/generated/decode-data-xml",["require","exports"],(require,exports)=>{var module={get exports(){return exports},set exports(value){exports._replace(value);exports=value}};
+"use strict";
+// Generated using scripts/write-decode-map.ts
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = new Uint16Array(
+// prettier-ignore
+"\u0200aglq\t\x15\x18\x1b\u026d\x0f\0\0\x12p;\u4026os;\u4027t;\u403et;\u403cuot;\u4022"
+ .split("")
+ .map(function (c) { return c.charCodeAt(0); }));
+
+});
+/*
+ * Support for source maps in V8 stack traces
+ * https://github.com/evanw/node-source-map-support
+ */
+/*
+ The buffer module from node.js, for the browser.
+
+ @author Feross Aboukhadijeh
+ license MIT
+*/
+(this.define||function(R,U){this.sourceMapSupport=U()})("browser-source-map-support",function(R){(function e(C,J,A){function p(f,c){if(!J[f]){if(!C[f]){var l="function"==typeof require&&require;if(!c&&l)return l(f,!0);if(t)return t(f,!0);throw Error("Cannot find module '"+f+"'");}l=J[f]={exports:{}};C[f][0].call(l.exports,function(q){var r=C[f][1][q];return p(r?r:q)},l,l.exports,e,C,J,A)}return J[f].exports}for(var t="function"==typeof require&&require,m=0;mm)return-1;if(58>m)return m-48+52;if(91>m)return m-65;if(123>m)return m-97+26}var t="undefined"!==typeof Uint8Array?Uint8Array:Array;e.toByteArray=function(m){function f(d){q[k++]=d}if(0>16);f((u&65280)>>8);f(u&255)}2===l?(u=p(m.charAt(c))<<2|p(m.charAt(c+1))>>4,f(u&255)):1===l&&(u=p(m.charAt(c))<<10|p(m.charAt(c+1))<<4|p(m.charAt(c+2))>>2,f(u>>8&255),f(u&255));return q};e.fromByteArray=function(m){var f=m.length%3,c="",l;var q=0;for(l=m.length-f;q>
+18&63)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(r>>12&63)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(r>>6&63)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(r&63);c+=r}switch(f){case 1:r=m[m.length-1];c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(r>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(r<<4&63);c+="==";break;case 2:r=(m[m.length-2]<<8)+
+m[m.length-1],c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(r>>10),c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(r>>4&63),c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(r<<2&63),c+="="}return c}})("undefined"===typeof A?this.base64js={}:A)},{}],3:[function(C,J,A){},{}],4:[function(C,J,A){(function(e){var p=Object.prototype.toString,t="function"===typeof e.alloc&&"function"===typeof e.allocUnsafe&&"function"===
+typeof e.from;J.exports=function(m,f,c){if("number"===typeof m)throw new TypeError('"value" argument must not be a number');if("ArrayBuffer"===p.call(m).slice(8,-1)){f>>>=0;var l=m.byteLength-f;if(0>l)throw new RangeError("'offset' is out of bounds");if(void 0===c)c=l;else if(c>>>=0,c>l)throw new RangeError("'length' is out of bounds");return t?e.from(m.slice(f,f+c)):new e(new Uint8Array(m.slice(f,f+c)))}if("string"===typeof m){c=f;if("string"!==typeof c||""===c)c="utf8";if(!e.isEncoding(c))throw new TypeError('"encoding" must be a valid string encoding');
+return t?e.from(m,c):new e(m,c)}return t?e.from(m):new e(m)}}).call(this,C("buffer").Buffer)},{buffer:5}],5:[function(C,J,A){function e(a,b,h){if(!(this instanceof e))return new e(a,b,h);var w=typeof a;if("number"===w)var y=0>>0:0;else if("string"===w){if("base64"===b)for(a=(a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")).replace(L,"");0!==a.length%4;)a+="=";y=e.byteLength(a,b)}else if("object"===w&&null!==a)"Buffer"===a.type&&z(a.data)&&(a=a.data),y=0<+a.length?Math.floor(+a.length):0;else throw new TypeError("must start with number, buffer, array or string");
+if(this.length>G)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+G.toString(16)+" bytes");if(e.TYPED_ARRAY_SUPPORT)var I=e._augment(new Uint8Array(y));else I=this,I.length=y,I._isBuffer=!0;if(e.TYPED_ARRAY_SUPPORT&&"number"===typeof a.byteLength)I._set(a);else{var K=a;if(z(K)||e.isBuffer(K)||K&&"object"===typeof K&&"number"===typeof K.length)if(e.isBuffer(a))for(b=0;ba)throw new RangeError("offset is not uint");if(a+b>h)throw new RangeError("Trying to access beyond buffer length");}function m(a,b,h,w,y,I){if(!e.isBuffer(a))throw new TypeError("buffer must be a Buffer instance");if(b>y||ba.length)throw new TypeError("index out of range");
+}function f(a,b,h,w){0>b&&(b=65535+b+1);for(var y=0,I=Math.min(a.length-h,2);y>>8*(w?y:1-y)}function c(a,b,h,w){0>b&&(b=4294967295+b+1);for(var y=0,I=Math.min(a.length-h,4);y>>8*(w?y:3-y)&255}function l(a,b,h,w,y,I){if(b>y||ba.length)throw new TypeError("index out of range");}function q(a,b,h,w,y){y||l(a,b,h,4,3.4028234663852886E38,-3.4028234663852886E38);v.write(a,b,h,w,23,4);return h+4}function r(a,
+b,h,w,y){y||l(a,b,h,8,1.7976931348623157E308,-1.7976931348623157E308);v.write(a,b,h,w,52,8);return h+8}function k(a){for(var b=[],h=0;h=w)b.push(w);else{var y=h;55296<=w&&57343>=w&&h++;w=encodeURIComponent(a.slice(y,h+1)).substr(1).split("%");for(y=0;y=b.length||y>=a.length);y++)b[y+
+h]=a[y];return y}function g(a){try{return decodeURIComponent(a)}catch(b){return String.fromCharCode(65533)}}var n=C("base64-js"),v=C("ieee754"),z=C("is-array");A.Buffer=e;A.SlowBuffer=e;A.INSPECT_MAX_BYTES=50;e.poolSize=8192;var G=1073741823;e.TYPED_ARRAY_SUPPORT=function(){try{var a=new ArrayBuffer(0),b=new Uint8Array(a);b.foo=function(){return 42};return 42===b.foo()&&"function"===typeof b.subarray&&0===(new Uint8Array(1)).subarray(1,1).byteLength}catch(h){return!1}}();e.isBuffer=function(a){return!(null==
+a||!a._isBuffer)};e.compare=function(a,b){if(!e.isBuffer(a)||!e.isBuffer(b))throw new TypeError("Arguments must be Buffers");for(var h=a.length,w=b.length,y=0,I=Math.min(h,w);y>>1;break;case "utf8":case "utf-8":h=k(a).length;break;case "base64":h=n.toByteArray(a).length;
+break;default:h=a.length}return h};e.prototype.length=void 0;e.prototype.parent=void 0;e.prototype.toString=function(a,b,h){var w=!1;b>>>=0;h=void 0===h||Infinity===h?this.length:h>>>0;a||(a="utf8");0>b&&(b=0);h>this.length&&(h=this.length);if(h<=b)return"";for(;;)switch(a){case "hex":a=b;b=h;h=this.length;if(!a||0>a)a=0;if(!b||0>b||b>h)b=h;w="";for(h=a;hw?"0"+w.toString(16):w.toString(16),w=a+w;return w;case "utf8":case "utf-8":w=a="";for(h=Math.min(this.length,h);b=
+this[b]?(a+=g(w)+String.fromCharCode(this[b]),w=""):w+="%"+this[b].toString(16);return a+g(w);case "ascii":return p(this,b,h);case "binary":return p(this,b,h);case "base64":return b=0===b&&h===this.length?n.fromByteArray(this):n.fromByteArray(this.slice(b,h)),b;case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":b=this.slice(b,h);h="";for(a=0;ab&&(a+=" ... "));return""};e.prototype.compare=function(a){if(!e.isBuffer(a))throw new TypeError("Argument must be a Buffer");return e.compare(this,a)};e.prototype.get=function(a){console.log(".get() is deprecated. Access using array indexes instead.");
+return this.readUInt8(a)};e.prototype.set=function(a,b){console.log(".set() is deprecated. Access using array indexes instead.");return this.writeUInt8(a,b)};e.prototype.write=function(a,b,h,w){if(isFinite(b))isFinite(h)||(w=h,h=void 0);else{var y=w;w=b;b=h;h=y}b=Number(b)||0;y=this.length-b;h?(h=Number(h),h>y&&(h=y)):h=y;w=String(w||"utf8").toLowerCase();switch(w){case "hex":b=Number(b)||0;w=this.length-b;h?(h=Number(h),h>w&&(h=w)):h=w;w=a.length;if(0!==w%2)throw Error("Invalid hex string");h>w/
+2&&(h=w/2);for(w=0;w>8;K%=256;y.push(K);y.push(w)}a=d(y,this,b,h,2);break;default:throw new TypeError("Unknown encoding: "+
+w);}return a};e.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};e.prototype.slice=function(a,b){var h=this.length;a=~~a;b=void 0===b?h:~~b;0>a?(a+=h,0>a&&(a=0)):a>h&&(a=h);0>b?(b+=h,0>b&&(b=0)):b>h&&(b=h);b>>=0;h||m(this,a,b,1,255,0);e.TYPED_ARRAY_SUPPORT||(a=Math.floor(a));this[b]=a;return b+1};e.prototype.writeUInt16LE=function(a,
+b,h){a=+a;b>>>=0;h||m(this,a,b,2,65535,0);e.TYPED_ARRAY_SUPPORT?(this[b]=a,this[b+1]=a>>>8):f(this,a,b,!0);return b+2};e.prototype.writeUInt16BE=function(a,b,h){a=+a;b>>>=0;h||m(this,a,b,2,65535,0);e.TYPED_ARRAY_SUPPORT?(this[b]=a>>>8,this[b+1]=a):f(this,a,b,!1);return b+2};e.prototype.writeUInt32LE=function(a,b,h){a=+a;b>>>=0;h||m(this,a,b,4,4294967295,0);e.TYPED_ARRAY_SUPPORT?(this[b+3]=a>>>24,this[b+2]=a>>>16,this[b+1]=a>>>8,this[b]=a):c(this,a,b,!0);return b+4};e.prototype.writeUInt32BE=function(a,
+b,h){a=+a;b>>>=0;h||m(this,a,b,4,4294967295,0);e.TYPED_ARRAY_SUPPORT?(this[b]=a>>>24,this[b+1]=a>>>16,this[b+2]=a>>>8,this[b+3]=a):c(this,a,b,!1);return b+4};e.prototype.writeInt8=function(a,b,h){a=+a;b>>>=0;h||m(this,a,b,1,127,-128);e.TYPED_ARRAY_SUPPORT||(a=Math.floor(a));0>a&&(a=255+a+1);this[b]=a;return b+1};e.prototype.writeInt16LE=function(a,b,h){a=+a;b>>>=0;h||m(this,a,b,2,32767,-32768);e.TYPED_ARRAY_SUPPORT?(this[b]=a,this[b+1]=a>>>8):f(this,a,b,!0);return b+2};e.prototype.writeInt16BE=function(a,
+b,h){a=+a;b>>>=0;h||m(this,a,b,2,32767,-32768);e.TYPED_ARRAY_SUPPORT?(this[b]=a>>>8,this[b+1]=a):f(this,a,b,!1);return b+2};e.prototype.writeInt32LE=function(a,b,h){a=+a;b>>>=0;h||m(this,a,b,4,2147483647,-2147483648);e.TYPED_ARRAY_SUPPORT?(this[b]=a,this[b+1]=a>>>8,this[b+2]=a>>>16,this[b+3]=a>>>24):c(this,a,b,!0);return b+4};e.prototype.writeInt32BE=function(a,b,h){a=+a;b>>>=0;h||m(this,a,b,4,2147483647,-2147483648);0>a&&(a=4294967295+a+1);e.TYPED_ARRAY_SUPPORT?(this[b]=a>>>24,this[b+1]=a>>>16,this[b+
+2]=a>>>8,this[b+3]=a):c(this,a,b,!1);return b+4};e.prototype.writeFloatLE=function(a,b,h){return q(this,a,b,!0,h)};e.prototype.writeFloatBE=function(a,b,h){return q(this,a,b,!1,h)};e.prototype.writeDoubleLE=function(a,b,h){return r(this,a,b,!0,h)};e.prototype.writeDoubleBE=function(a,b,h){return r(this,a,b,!1,h)};e.prototype.copy=function(a,b,h,w){h||(h=0);w||0===w||(w=this.length);b||(b=0);if(w!==h&&0!==a.length&&0!==this.length){if(wb||b>=a.length)throw new TypeError("targetStart out of bounds");
+if(0>h||h>=this.length)throw new TypeError("sourceStart out of bounds");if(0>w||w>this.length)throw new TypeError("sourceEnd out of bounds");w>this.length&&(w=this.length);a.length-bw||!e.TYPED_ARRAY_SUPPORT)for(var y=0;yb||b>=this.length)throw new TypeError("start out of bounds");
+if(0>h||h>this.length)throw new TypeError("end out of bounds");if("number"===typeof a)for(;b>1,r=-7;f=t?f-1:0;var k=t?-1:1,u=e[p+f];f+=k;t=u&(1<<-r)-1;u>>=-r;for(r+=c;0>=-r;for(r+=m;0>1,u=23===f?Math.pow(2,-24)-Math.pow(2,-77):0;c=m?0:c-1;var d=m?1:-1,g=0>p||0===p&&0>1/p?1:0;p=Math.abs(p);isNaN(p)||Infinity===p?(p=isNaN(p)?1:0,m=r):(m=Math.floor(Math.log(p)/Math.LN2),1>p*(l=Math.pow(2,-m))&&(m--,l*=2),p=1<=m+k?p+u/l:p+u*Math.pow(2,1-k),2<=p*l&&(m++,l/=2),m+k>=r?(p=0,m=r):1<=m+k?(p=(p*l-1)*Math.pow(2,f),m+=k):(p=p*Math.pow(2,k-1)*Math.pow(2,f),m=0));for(;8<=f;e[t+c]=p&255,c+=
+d,p/=256,f-=8);m=m<z?[]:n.slice(v,z-v+1)}c=A.resolve(c).substr(1);l=A.resolve(l).substr(1);
+for(var r=q(c.split("/")),k=q(l.split("/")),u=Math.min(r.length,k.length),d=u,g=0;gl&&(l=c.length+l);return c.substr(l,q)}}).call(this,C("g5I+bs"))},{"g5I+bs":9}],9:[function(C,J,A){function e(){}C=J.exports={};C.nextTick=function(){if("undefined"!==typeof window&&window.setImmediate)return function(t){return window.setImmediate(t)};if("undefined"!==typeof window&&window.postMessage&&window.addEventListener){var p=[];window.addEventListener("message",function(t){var m=t.source;m!==window&&null!==
+m||"process-tick"!==t.data||(t.stopPropagation(),0 p?(-p<<1)+1:p<<1;do p=m&31,m>>>=5,0=f)throw Error("Expected more digits in base 64 VLQ value.");var q=e.decode(p.charCodeAt(t++));if(-1===q)throw Error("Invalid base64 digit: "+p.charAt(t-1));var r=!!(q&32);q&=31;c+=q<>1;m.value=1===(c&1)?-p:p;m.rest=t}},{"./base64":12}],12:[function(C,
+J,A){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");A.encode=function(p){if(0<=p&&p=p?p-65:97<=p&&122>=p?p-97+26:48<=p&&57>=p?p-48+52:43==p?62:47==p?63:-1}},{}],13:[function(C,J,A){function e(p,t,m,f,c,l){var q=Math.floor((t-p)/2)+p,r=c(m,f[q],!0);return 0===r?q:0p?-1:p}A.GREATEST_LOWER_BOUND=1;A.LEAST_UPPER_BOUND=2;A.search=function(p,t,m,f){if(0===t.length)return-1;p=e(-1,t.length,p,t,m,f||A.GREATEST_LOWER_BOUND);if(0>p)return-1;for(;0<=p-1&&0===m(t[p],t[p-1],!0);)--p;return p}},{}],14:[function(C,J,A){function e(){this._array=[];this._sorted=!0;this._last={generatedLine:-1,generatedColumn:0}}var p=C("./util");e.prototype.unsortedForEach=function(t,m){this._array.forEach(t,m)};e.prototype.add=function(t){var m=this._last,f=m.generatedLine,
+c=t.generatedLine,l=m.generatedColumn,q=t.generatedColumn;c>f||c==f&&q>=l||0>=p.compareByGeneratedPositionsInflated(m,t)?this._last=t:this._sorted=!1;this._array.push(t)};e.prototype.toArray=function(){this._sorted||(this._array.sort(p.compareByGeneratedPositionsInflated),this._sorted=!0);return this._array};A.MappingList=e},{"./util":19}],15:[function(C,J,A){function e(t,m,f){var c=t[m];t[m]=t[f];t[f]=c}function p(t,m,f,c){if(f=m(t[r],q)&&(l+=1,e(t,l,r));e(t,l+1,r);l+=1;p(t,m,f,l-1);p(t,m,l+1,c)}}A.quickSort=function(t,m){p(t,m,0,t.length-1)}},{}],16:[function(C,J,A){function e(k,u){var d=k;"string"===typeof k&&(d=f.parseSourceMapInput(k));return null!=d.sections?new m(d,u):new p(d,u)}function p(k,u){var d=k;"string"===typeof k&&(d=f.parseSourceMapInput(k));var g=f.getArg(d,"version"),n=f.getArg(d,"sources"),v=f.getArg(d,"names",[]),z=f.getArg(d,"sourceRoot",null),G=f.getArg(d,"sourcesContent",null),D=f.getArg(d,
+"mappings");d=f.getArg(d,"file",null);if(g!=this._version)throw Error("Unsupported version: "+g);z&&(z=f.normalize(z));n=n.map(String).map(f.normalize).map(function(L){return z&&f.isAbsolute(z)&&f.isAbsolute(L)?f.relative(z,L):L});this._names=l.fromArray(v.map(String),!0);this._sources=l.fromArray(n,!0);this.sourceRoot=z;this.sourcesContent=G;this._mappings=D;this._sourceMapURL=u;this.file=d}function t(){this.generatedColumn=this.generatedLine=0;this.name=this.originalColumn=this.originalLine=this.source=
+null}function m(k,u){var d=k;"string"===typeof k&&(d=f.parseSourceMapInput(k));var g=f.getArg(d,"version");d=f.getArg(d,"sections");if(g!=this._version)throw Error("Unsupported version: "+g);this._sources=new l;this._names=new l;var n={line:-1,column:0};this._sections=d.map(function(v){if(v.url)throw Error("Support for url field in sections not implemented.");var z=f.getArg(v,"offset"),G=f.getArg(z,"line"),D=f.getArg(z,"column");if(G=k[d])throw new TypeError("Line must be greater than or equal to 1, got "+
+k[d]);if(0>k[g])throw new TypeError("Column must be greater than or equal to 0, got "+k[g]);return c.search(k,u,n,v)};p.prototype.computeColumnSpans=function(){for(var k=0;k=this._sources.size()&&!this.sourcesContent.some(function(k){return null==k}):!1};p.prototype.sourceContentFor=function(k,u){if(!this.sourcesContent)return null;var d=k;null!=this.sourceRoot&&(d=f.relative(this.sourceRoot,d));if(this._sources.has(d))return this.sourcesContent[this._sources.indexOf(d)];
+var g=this.sources,n;for(n=0;n
+g||95!==d.charCodeAt(g-1)||95!==d.charCodeAt(g-2)||111!==d.charCodeAt(g-3)||116!==d.charCodeAt(g-4)||111!==d.charCodeAt(g-5)||114!==d.charCodeAt(g-6)||112!==d.charCodeAt(g-7)||95!==d.charCodeAt(g-8)||95!==d.charCodeAt(g-9))return!1;for(g-=10;0<=g;g--)if(36!==d.charCodeAt(g))return!1;return!0}function r(d,g){return d===g?0:null===d?1:null===g?-1:d>g?1:-1}A.getArg=function(d,g,n){if(g in d)return d[g];if(3===arguments.length)return n;throw Error('"'+g+'" is a required argument.');};var k=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,
+u=/^data:.+,.+$/;A.urlParse=e;A.urlGenerate=p;A.normalize=t;A.join=m;A.isAbsolute=function(d){return"/"===d.charAt(0)||k.test(d)};A.relative=function(d,g){""===d&&(d=".");d=d.replace(/\/$/,"");for(var n=0;0!==g.indexOf(d+"/");){var v=d.lastIndexOf("/");if(0>v)return g;d=d.slice(0,v);if(d.match(/^([^\/]+:\/)?\/*$/))return g;++n}return Array(n+1).join("../")+g.substr(d.length+1)};C=!("__proto__"in Object.create(null));A.toSetString=C?f:c;A.fromSetString=C?f:l;A.compareByOriginalPositions=function(d,
+g,n){var v=r(d.source,g.source);if(0!==v)return v;v=d.originalLine-g.originalLine;if(0!==v)return v;v=d.originalColumn-g.originalColumn;if(0!==v||n)return v;v=d.generatedColumn-g.generatedColumn;if(0!==v)return v;v=d.generatedLine-g.generatedLine;return 0!==v?v:r(d.name,g.name)};A.compareByGeneratedPositionsDeflated=function(d,g,n){var v=d.generatedLine-g.generatedLine;if(0!==v)return v;v=d.generatedColumn-g.generatedColumn;if(0!==v||n)return v;v=r(d.source,g.source);if(0!==v)return v;v=d.originalLine-
+g.originalLine;if(0!==v)return v;v=d.originalColumn-g.originalColumn;return 0!==v?v:r(d.name,g.name)};A.compareByGeneratedPositionsInflated=function(d,g){var n=d.generatedLine-g.generatedLine;if(0!==n)return n;n=d.generatedColumn-g.generatedColumn;if(0!==n)return n;n=r(d.source,g.source);if(0!==n)return n;n=d.originalLine-g.originalLine;if(0!==n)return n;n=d.originalColumn-g.originalColumn;return 0!==n?n:r(d.name,g.name)};A.parseSourceMapInput=function(d){return JSON.parse(d.replace(/^\)]}'[^\n]*\n/,
+""))};A.computeSourceURL=function(d,g,n){g=g||"";d&&("/"!==d[d.length-1]&&"/"!==g[0]&&(d+="/"),g=d+g);if(n){d=e(n);if(!d)throw Error("sourceMapURL could not be parsed");d.path&&(n=d.path.lastIndexOf("/"),0<=n&&(d.path=d.path.substring(0,n+1)));g=m(p(d),g)}return t(g)}},{}],20:[function(C,J,A){A.SourceMapGenerator=C("./lib/source-map-generator").SourceMapGenerator;A.SourceMapConsumer=C("./lib/source-map-consumer").SourceMapConsumer;A.SourceNode=C("./lib/source-node").SourceNode},{"./lib/source-map-consumer":16,
+"./lib/source-map-generator":17,"./lib/source-node":18}],21:[function(C,J,A){(function(e){function p(){return"browser"===a?!0:"node"===a?!1:"undefined"!==typeof window&&"function"===typeof XMLHttpRequest&&!(window.require&&window.module&&window.process&&"renderer"===window.process.type)}function t(x){return function(B){for(var F=0;F";B=this.getLineNumber();null!=B&&(x+=":"+B,(B=
+this.getColumnNumber())&&(x+=":"+B))}B="";var F=this.getFunctionName(),E=!0,H=this.isConstructor();if(this.isToplevel()||H)H?B+="new "+(F||""):F?B+=F:(B+=x,E=!1);else{H=this.getTypeName();"[object Object]"===H&&(H="null");var M=this.getMethodName();F?(H&&0!=F.indexOf(H)&&(B+=H+"."),B+=F,M&&F.indexOf("."+M)!=F.length-M.length-1&&(B+=" [as "+M+"]")):B+=H+"."+(M||"")}E&&(B+=" ("+x+")");return B}function q(x){var B={};Object.getOwnPropertyNames(Object.getPrototypeOf(x)).forEach(function(F){B[F]=
+/^(?:is|get)/.test(F)?function(){return x[F].call(x)}:x[F]});B.toString=l;return B}function r(x,B){void 0===B&&(B={nextPosition:null,curPosition:null});if(x.isNative())return B.curPosition=null,x;var F=x.getFileName()||x.getScriptNameOrSourceURL();if(F){var E=x.getLineNumber(),H=x.getColumnNumber()-1,M=/^v(10\.1[6-9]|10\.[2-9][0-9]|10\.[0-9]{3,}|1[2-9]\d*|[2-9]\d|\d{3,}|11\.11)/,S=M.test;var V="object"===typeof e&&null!==e?e.version:"";M=S.call(M,V)?0:62;1===E&&H>M&&!p()&&!x.isEval()&&(H-=M);var O=
+f({source:F,line:E,column:H});B.curPosition=O;x=q(x);var T=x.getFunctionName;x.getFunctionName=function(){return null==B.nextPosition?T():B.nextPosition.name||T()};x.getFileName=function(){return O.source};x.getLineNumber=function(){return O.line};x.getColumnNumber=function(){return O.column+1};x.getScriptNameOrSourceURL=function(){return O.source};return x}var Q=x.isEval()&&x.getEvalOrigin();Q&&(Q=c(Q),x=q(x),x.getEvalOrigin=function(){return Q});return x}function k(x,B){L&&(b={},h={});for(var F=
+(x.name||"Error")+": "+(x.message||""),E={nextPosition:null,curPosition:null},H=[],M=B.length-1;0<=M;M--)H.push("\n at "+r(B[M],E)),E.nextPosition=E.curPosition;E.curPosition=E.nextPosition=null;return F+H.reverse().join("")}function u(x){var B=/\n at [^(]+ \((.*):(\d+):(\d+)\)/.exec(x.stack);if(B){x=B[1];var F=+B[2];B=+B[3];var E=b[x];if(!E&&v&&v.existsSync(x))try{E=v.readFileSync(x,"utf8")}catch(H){E=""}if(E&&(E=E.split(/(?:\r\n|\r|\n)/)[F-1]))return x+":"+F+"\n"+E+"\n"+Array(B).join(" ")+
+"^"}return null}function d(){var x=e.emit;e.emit=function(B){if("uncaughtException"===B){var F=arguments[1]&&arguments[1].stack,E=0{})
+define("crelt",[],()=>{})
diff --git a/lang/en-nz.js b/lang/en-nz.js
new file mode 100644
index 0000000..c13ee38
--- /dev/null
+++ b/lang/en-nz.js
@@ -0,0 +1 @@
+(function(factory){if(typeof module==="object"&&typeof module.exports==="object"){var v=factory(require, exports);if(v!==undefined)module.exports=v}else if(typeof define==="function"&&define.amd){define(["require","exports"],factory);}})(function(require,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});let s=t=>typeof t=="string"?t:Array.isArray(t)?t.map(s).join(""):typeof t.content=="object"?s(t.content):t.content;let ii=u=>(typeof u=="object"||typeof u=="function")&&Symbol.iterator in u;let c=c=>({content:c,toString(){return s(this.content)}});let j=(a,s,v)=>{a=(!a?[]:Array.isArray(a)?a:ii(a)?[...a]:[a]);return (v?a.map(v):a).flatMap((v,i)=>i!v?0:typeof v.length=="number"?v.length:typeof v.size=="number"?v.size:ii(v)?[...v].length:typeof v=="object"?Object.keys(v).length:0;var q={"fluff4me/title":_=>c([{content:"fluff4.me / Tell your story!"}]),"home/label":_=>c([{content:"home"}]),"shared/preview":_=>c([{content:"Preview"}]),"shared/prompt/confirm":_=>c([{content:"Are you sure?"}]),"shared/prompt/reauth":_=>c([{content:"To perform this action, reauthenticate to verify your identity:"}]),"shared/term/chapters":_=>c([{content:"Chapters"}]),"shared/action/login-or-signup":_=>c([{content:"Log In or Sign Up"}]),"shared/action/view":_=>c([{content:"View"}]),"shared/action/love":_=>c([{content:"Love"}]),"shared/action/edit":_=>c([{content:"Edit"}]),"shared/action/follow":_=>c([{content:"Follow"}]),"shared/action/ignore":_=>c([{content:"Ignore"}]),"shared/action/delete":(...a)=>c([{content:"Delete"},{content:(a[0]?[{content:" "},a[0]]:[])}]),"shared/action/save":_=>c([{content:"Save Changes"}]),"shared/action/create":_=>c([{content:"Create!"}]),"shared/action/cancel":_=>c([{content:"Cancel"}]),"shared/action/confirm":_=>c([{content:"Confirm"}]),"shared/toast/failed-to-save":(...a)=>c([{content:"Failed to save "},{content:a[0]}]),"shared/toast/saved":(...a)=>c([{content:"Saved "},{content:a[0]}]),"shared/form/name/label":_=>c([{content:"Name"}]),"shared/form/vanity/label":_=>c([{content:"Vanity"}]),"shared/form/description/label":_=>c([{content:"Description"}]),"shared/form/body/label":_=>c([{content:"Body"}]),"component/popover/button":(...a)=>c([{content:"open "},{content:(a[0]?a[0]:[{content:"details"}])},{content:(a[1]?[{content:" "},a[1]]:[])}]),"component/popover":(...a)=>c([{content:(a[0]?a[0]:[{content:"details"}])}]),"component/paginator/error":_=>c([{content:"Failed to load content."}]),"component/paginator/error/retry":_=>c([{content:"Retry"}]),"component/text-editor/toolbar/group/inline":_=>c([{content:"inline formatting"}]),"component/text-editor/toolbar/button/strong":_=>c([{content:"strong (bold)"}]),"component/text-editor/toolbar/button/em":_=>c([{content:"emphasis (italic)"}]),"component/text-editor/toolbar/button/underline":_=>c([{content:"underline"}]),"component/text-editor/toolbar/button/strikethrough":_=>c([{content:"strikethrough"}]),"component/text-editor/toolbar/button/subscript":_=>c([{content:"subscript"}]),"component/text-editor/toolbar/button/superscript":_=>c([{content:"superscript"}]),"component/text-editor/toolbar/button/code":_=>c([{content:"code"}]),"component/text-editor/toolbar/button/link":_=>c([{content:"link"}]),"component/text-editor/toolbar/button/other-formatting":_=>c([{content:"other formatting options"}]),"component/text-editor/toolbar/group/block":_=>c([{content:"block formatting"}]),"component/text-editor/toolbar/button/align":(...a)=>c([{content:"text align (currently "},{content:a[0]},{content:")"}]),"component/text-editor/toolbar/button/align-left":_=>c([{content:"align left"}]),"component/text-editor/toolbar/button/align-centre":_=>c([{content:"centre"}]),"component/text-editor/toolbar/button/align-right":_=>c([{content:"align right"}]),"component/text-editor/toolbar/button/align/currently/left":_=>c([{content:"aligned left"}]),"component/text-editor/toolbar/button/align/currently/right":_=>c([{content:"aligned right"}]),"component/text-editor/toolbar/button/align/currently/centre":_=>c([{content:"centred"}]),"component/text-editor/toolbar/button/align/currently/mixed":_=>c([{content:"mixed"}]),"component/text-editor/toolbar/button/block-type":(...a)=>c([{content:"block type (currently "},{content:a[0]},{content:")"}]),"component/text-editor/toolbar/button/code-block":_=>c([{content:"code block"}]),"component/text-editor/toolbar/button/paragraph":_=>c([{content:"paragraph"}]),"component/text-editor/toolbar/button/block-type/currently/code-block":_=>c([{content:"code block"}]),"component/text-editor/toolbar/button/block-type/currently/paragraph":_=>c([{content:"paragraph"}]),"component/text-editor/toolbar/button/block-type/currently/mixed":_=>c([{content:"mixed"}]),"component/text-editor/toolbar/group/wrapper":_=>c([{content:"block wrappers"}]),"component/text-editor/toolbar/button/lift":_=>c([{content:"unwrap"}]),"component/text-editor/toolbar/button/bullet-list":_=>c([{content:"wrap in list"}]),"component/text-editor/toolbar/button/ordered-list":_=>c([{content:"wrap in ordered list"}]),"component/text-editor/toolbar/button/blockquote":_=>c([{content:"wrap in block quote"}]),"component/text-editor/toolbar/group/insert":_=>c([{content:"insert"}]),"component/text-editor/toolbar/button/hr":_=>c([{content:"horizontal rule"}]),"component/text-editor/toolbar/group/actions":_=>c([{content:"actions"}]),"component/text-editor/toolbar/button/undo":_=>c([{content:"undo"}]),"component/text-editor/toolbar/button/redo":_=>c([{content:"redo"}]),"component/text-editor/toolbar/button/fullscreen":_=>c([{content:"fullscreen"}]),"component/text-editor/toolbar/button/unfullscreen":_=>c([{content:"exit fullscreen"}]),"component/text-editor/formatting/none":_=>c([{content:"no formatting"}]),"component/text-editor/formatting/strong":_=>c([{content:"strong (bolded)"}]),"component/text-editor/formatting/em":_=>c([{content:"emphasised (italic)"}]),"component/text-editor/formatting/underline":_=>c([{content:"underlined"}]),"component/text-editor/formatting/strikethrough":_=>c([{content:"strikethrough"}]),"component/text-editor/formatting/subscript":_=>c([{content:"subscript"}]),"component/text-editor/formatting/superscript":_=>c([{content:"superscript"}]),"component/text-editor/formatting/code":_=>c([{content:"code"}]),"component/text-editor/formatting/link":_=>c([{content:"link"}]),"masthead/skip-navigation":_=>c([{content:"Skip Navigation"}]),"masthead/user/notifications/alt":_=>c([{content:"notifications"}]),"masthead/primary-nav/alt":_=>c([{content:"primary"}]),"masthead/user/profile/alt":_=>c([{content:"profile"}]),"masthead/user/profile/popover/login":(...a) => q["shared/action/login-or-signup"](...a),"masthead/user/profile/popover/profile":_=>c([{content:"View Profile"}]),"masthead/user/profile/popover/account":_=>c([{content:"Account Settings"}]),"work/chapters/label":(...a) => q["shared/term/chapters"](...a),"work/description/empty":_=>c([{content:"This work has no description."}]),"author/description/empty":_=>c([{content:"This author prefers to remain elusive and mysterious..."}]),"view/container/alt":_=>c([{content:"main content"}]),"view/shared/login-required/title":_=>c([{content:"Log-in required"}]),"view/shared/login-required/description":_=>c([{content:"You must log in or sign up to view this content."}]),"view/shared/login-required/action":(...a) => q["shared/action/login-or-signup"](...a),"view/error/title":(...a)=>c([{content:"Error "},{content:a[0]?.CODE}]),"view/error/description-404":_=>c([{content:"Your adventure has come to a close, your questions left unanswered, your goals unfulfilled. What will you do?"}]),"view/feed/main/title":_=>c([{content:"Recent Updates"}]),"view/feed/content/empty":_=>c([{content:"And all was quiet..."}]),"view/account/name/label":(...a) => q["shared/form/name/label"](...a),"view/account/name/hint":_=>c([{content:"Your display name or penname — the name your comments and works are attributed to. This can be changed whenever you like, and doesn't have to be unique."}]),"view/account/vanity/label":(...a) => q["shared/form/vanity/label"](...a),"view/account/vanity/hint":_=>c([{content:"Your username, and what people use to "},{content:[{content:"@ping"}],tag:`B`},{content:" you in comments. This "},{content:[{content:"can"}],tag:`I`},{content:" be changed whenever you like, but "},{content:[{content:"must always be unique"}],tag:`B`},{content:"."}]),"view/account/vanity/url-preview":(...a) => q["shared/preview"](...a),"view/account/description/label":(...a) => q["shared/form/description/label"](...a),"view/account/description/hint":_=>c([{content:"This bio will appear on your profile above any works."}]),"view/account/support-link/label":_=>c([{content:"Support Link"}]),"view/account/support-link/hint":_=>c([{content:"An optional link that people can use to support you. You could link directly to a payment or subscription platform, or you could use a service like Linktree."}]),"view/account/support-message/label":_=>c([{content:"Message"}]),"view/account/support-message/hint":_=>c([{content:"A message to display instead of the support link itself. This is required, and will default to \"Support My Writing.\"\nIf you want it to actually display the link, for whatever reason, you can put the link here as well."}]),"view/account/support-message/placeholder":_=>c([{content:"Support My Writing"}]),"view/account/pronouns/label":_=>c([{content:"Pronouns"}]),"view/account/pronouns/hint":_=>c([{content:"The pronouns that others should refer to you with. These will appear next to your name, usually."}]),"view/account/action/logout":_=>c([{content:"Log Out"}]),"view/account/action/delete":_=>c([{content:"Delete Account"}]),"view/account/toast/failed-to-save":(...a) => q["shared/toast/failed-to-save"](_=>c([{content:"| account data"}]), ...a),"view/account/toast/saved":(...a) => q["shared/toast/saved"](_=>c([{content:"| account data"}]), ...a),"view/account/auth/service/accessibility/connect":(...a)=>c([{content:"connect "},{content:a[0]}]),"view/account/auth/service/accessibility/disconnect":(...a)=>c([{content:"disconnect "},{content:a[0]},{content:" account "},{content:a[1]}]),"view/account/auth/none/title":_=>c([{content:"Log in or sign up"}]),"view/account/auth/none/description":_=>c([{content:"fluff4.me does not store an email address or password for your account. You must authenticate with a third-party service to begin."}]),"view/account/auth/has-authorisations/title":_=>c([{content:"Authorisations"}]),"view/account/auth/has-authorisations/description":_=>c([{content:"Your authorisation(s) are not currently associated with a fluff4.me account. You may authenticate with additional third party services to log in or sign up."}]),"view/account/auth/logged-in/title":_=>c([{content:"Authorisations"}]),"view/account/auth/logged-in/description":_=>c([{content:"These third party service accounts are linked to your fluff4.me account and may be used to log in."}]),"view/account/create/title":_=>c([{content:"Create account"}]),"view/account/create/description":_=>c([{content:"The "},{content:[{content:"connected third party service accounts"}],tag:`LINK(#authorisations)`},{content:" will be used for login."}]),"view/account/create/submit":_=>c([{content:"Sign Up!"}]),"view/account/update/title":_=>c([{content:"Update profile"}]),"view/account/update/submit":(...a) => q["shared/action/save"](...a),"view/author/works/title":_=>c([{content:"Works"}]),"view/author/works/content/empty":_=>c([{content:"This author has not yet shared any work..."}]),"view/author/works/action/label/new":_=>c([{content:"New Work"}]),"view/author/works/action/label/view":(...a) => q["shared/action/view"](...a),"view/author/works/action/label/edit":(...a) => q["shared/action/edit"](...a),"view/author/works/action/label/follow":(...a) => q["shared/action/follow"](...a),"view/author/works/action/label/ignore":(...a) => q["shared/action/ignore"](...a),"view/author/works/action/label/delete":(...a) => q["shared/action/delete"](...a),"view/work-edit/shared/toast/failed-to-save":(...a) => q["shared/toast/failed-to-save"](...a),"view/work-edit/shared/toast/saved":(...a) => q["shared/toast/saved"](...a),"view/work-edit/shared/form/name/label":(...a) => q["shared/form/name/label"](...a),"view/work-edit/shared/form/name/hint":_=>c([{content:"The name of your work. This does not have to be unique."}]),"view/work-edit/shared/form/vanity/label":(...a) => q["shared/form/vanity/label"](...a),"view/work-edit/shared/form/vanity/hint":_=>c([{content:"The identifier for this work, which will appear in its URL."}]),"view/work-edit/shared/form/vanity/url-preview":(...a) => q["shared/preview"](...a),"view/work-edit/shared/form/description/label":(...a) => q["shared/form/description/label"](...a),"view/work-edit/shared/form/description/hint":_=>c([{content:"A simple 1-2 sentence description of the work. This will be the only descriptive text shown when works are displayed in lists."}]),"view/work-edit/shared/form/synopsis/label":_=>c([{content:"Synopsis"}]),"view/work-edit/shared/form/synopsis/hint":_=>c([{content:"The full text describing this work. This will only appear in the full work view."}]),"view/work-edit/create/title":_=>c([{content:"Create work"}]),"view/work-edit/create/submit":(...a) => q["shared/action/create"](...a),"view/work-edit/update/title":_=>c([{content:"Edit work"}]),"view/work-edit/update/submit":(...a) => q["shared/action/save"](...a),"view/work-edit/update/action/delete":_=>c([{content:"Delete Work"}]),"view/work/chapters/title":(...a) => q["shared/term/chapters"](...a),"view/work/chapters/content/empty":_=>c([{content:"This work does not contain any chapters."}]),"view/work/chapters/action/label/new":_=>c([{content:"New Chapter"}]),"view/work/chapters/action/label/view":(...a) => q["shared/action/view"](...a),"view/work/chapters/action/label/love":(...a) => q["shared/action/love"](...a),"view/work/chapters/action/label/edit":(...a) => q["shared/action/edit"](...a),"view/work/chapters/action/label/delete":(...a) => q["shared/action/delete"](...a),"view/chapter-edit/shared/toast/failed-to-save":(...a) => q["shared/toast/failed-to-save"](_=>c([{content:"| chapter"}]), ...a),"view/chapter-edit/shared/toast/saved":(...a) => q["shared/toast/saved"](_=>c([{content:"| chapter"}]), ...a),"view/chapter-edit/shared/form/name/label":(...a) => q["shared/form/name/label"](...a),"view/chapter-edit/shared/form/name/hint":_=>c([{content:"The name of this chapter. This does not have to be unique."}]),"view/chapter-edit/shared/form/body/label":(...a) => q["shared/form/body/label"](...a),"view/chapter-edit/shared/form/body/hint":_=>c([{content:"The content of this chapter. There is no specific character count limit, but if your chapter exceeds 1MB it will be rejected. You will probably never run into this."}]),"view/chapter-edit/create/title":_=>c([{content:"Create chapter"}]),"view/chapter-edit/create/submit":(...a) => q["shared/action/create"](...a),"view/chapter-edit/update/title":_=>c([{content:"Edit chapter"}]),"view/chapter-edit/update/submit":(...a) => q["shared/action/save"](...a),"view/chapter-edit/update/action/delete":_=>c([{content:"Delete Chapter"}]),"view/chapter/title":(...a)=>c([...a[0]?[{content:a[0]},{content:". "}]:[],{content:a[1]}]),};exports.default=q})
\ No newline at end of file
diff --git a/oembed.json b/oembed.json
new file mode 100644
index 0000000..1c06a0c
--- /dev/null
+++ b/oembed.json
@@ -0,0 +1,6 @@
+{
+ "author_name": "Tell your story!",
+ "provider_name": "fluff4.me",
+ "provider_url": "https://fluff4.me",
+ "type": "photo"
+}
\ No newline at end of file
diff --git a/style/index.css b/style/index.css
new file mode 100644
index 0000000..ae0f3b7
--- /dev/null
+++ b/style/index.css
@@ -0,0 +1,2743 @@
+@import url("https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,300;1,400;1,500;1,600;1,700;1,800&display=swap");
+@import url("https://fonts.googleapis.com/css2?family=Kanit&display=swap");
+
+@property --transition-duration {
+ syntax: "";
+ inherits: false;
+ initial-value: 0s;
+}
+@property --transitions {
+ syntax: "*";
+ inherits: false;
+}
+@property --border-colour {
+ syntax: "";
+ inherits: false;
+ initial-value: currentcolor;
+}
+@property --box-shadow-intensity {
+ syntax: "";
+ inherits: false;
+ initial-value: 100%;
+}
+@property --translate-x {
+ syntax: "";
+ inherits: false;
+ initial-value: 0px;
+}
+@property --translate-y {
+ syntax: "";
+ inherits: false;
+ initial-value: 0px;
+}
+@property --gradient-mask-height {
+ syntax: "";
+ inherits: false;
+ initial-value: 0px;
+}
+@property --view-transition-classes {
+ syntax: "*";
+ inherits: false;
+ initial-value: placeholder-class;
+}
+@property --view-transition-delay {
+ syntax: "*";
+ inherits: false;
+ initial-value: placeholder-delay-class;
+}
+@property --subview-transition-classes {
+ syntax: "*";
+ inherits: false;
+ initial-value: placeholder-class;
+}
+@property --button-background {
+ syntax: "";
+ inherits: false;
+ initial-value: #000;
+}
+@property --button-background-highlight {
+ syntax: "";
+ inherits: false;
+ initial-value: #000;
+}
+@property --toast-background {
+ syntax: "";
+ inherits: false;
+ initial-value: #000;
+}
+@property --toast-background-highlight {
+ syntax: "";
+ inherits: false;
+ initial-value: #000;
+}
+
+@font-face {
+ font-family: "Font Awesome";
+ style: normal;
+ weight: 900;
+ display: inline-block;
+ src: url('../font/fa-solid-900.woff2') format('woff2'), url('../font/fa-solid-900.ttf') format('truetype');
+}
+
+:root {
+ --font-scale-factor: 1;
+ --weight-1: 100;
+ --weight-2: 200;
+ --weight-3: 300;
+ --weight-4: 400;
+ --weight-5: 500;
+ --weight-6: 600;
+ --weight-7: 700;
+ --weight-8: 800;
+ --weight-9: 900;
+ --weight-normal: 400;
+ --weight-bold: 600;
+ --weight-bolder: 800;
+ --space-0: 0rem;
+ --unspace-0: calc(0rem * -1);
+ --space-1: round(0.2rem, 1px);
+ --unspace-1: calc(round(0.2rem, 1px) * -1);
+ --space-2: round(0.4rem, 1px);
+ --unspace-2: calc(round(0.4rem, 1px) * -1);
+ --space-3: round(0.8rem, 1px);
+ --unspace-3: calc(round(0.8rem, 1px) * -1);
+ --space-4: round(1.6rem, 1px);
+ --unspace-4: calc(round(1.6rem, 1px) * -1);
+ --space-5: round(3.2rem, 1px);
+ --unspace-5: calc(round(3.2rem, 1px) * -1);
+ --space-20: round(20%, 1px);
+ --unspace-20: calc(round(20%, 1px) * -1);
+ --space-25: round(25%, 1px);
+ --unspace-25: calc(round(25%, 1px) * -1);
+ --space-50: round(50%, 1px);
+ --unspace-50: calc(round(50%, 1px) * -1);
+ --space-100: 100%;
+ --unspace-100: calc(100% * -1);
+ --dark-0: #000;
+ --dark-1: #111;
+ --dark-2: #222;
+ --dark-3: #333;
+ --dark-4: #444;
+ --dark-5: #555;
+ --dark-6: #666;
+ --dark-7: #777;
+ --dark-8: #888;
+ --dark-9: #999;
+ --dark-10: #aaa;
+ --dark-11: #bbb;
+ --dark-12: #ccc;
+ --dark-13: #ddd;
+ --dark-14: #eee;
+ --dark-15: #fff;
+ --light-0: #fff;
+ --light-1: #eee;
+ --light-2: #ddd;
+ --light-3: #ccc;
+ --light-4: #bbb;
+ --light-5: #aaa;
+ --light-6: #999;
+ --light-7: #888;
+ --light-8: #777;
+ --light-9: #666;
+ --light-10: #555;
+ --light-11: #444;
+ --light-12: #333;
+ --light-13: #222;
+ --light-14: #111;
+ --light-15: #000;
+ --background-0: light-dark(var(--light-0), var(--dark-0));
+ --background-interact-0: light-dark(var(--light-5), var(--dark-0));
+ --color-0: light-dark(var(--dark-0), var(--light-0));
+ --colour-0: light-dark(var(--dark-0), var(--light-0));
+ --background-1: light-dark(var(--light-1), var(--dark-1));
+ --background-interact-1: light-dark(var(--light-4), var(--dark-1));
+ --color-1: light-dark(var(--dark-1), var(--light-1));
+ --colour-1: light-dark(var(--dark-1), var(--light-1));
+ --background-2: light-dark(var(--light-2), var(--dark-2));
+ --background-interact-2: light-dark(var(--light-3), var(--dark-2));
+ --color-2: light-dark(var(--dark-2), var(--light-2));
+ --colour-2: light-dark(var(--dark-2), var(--light-2));
+ --background-3: light-dark(var(--light-3), var(--dark-3));
+ --background-interact-3: light-dark(var(--light-2), var(--dark-3));
+ --color-3: light-dark(var(--dark-3), var(--light-3));
+ --colour-3: light-dark(var(--dark-3), var(--light-3));
+ --background-4: light-dark(var(--light-4), var(--dark-4));
+ --background-interact-4: light-dark(var(--light-1), var(--dark-4));
+ --color-4: light-dark(var(--dark-4), var(--light-4));
+ --colour-4: light-dark(var(--dark-4), var(--light-4));
+ --background-5: light-dark(var(--light-5), var(--dark-5));
+ --background-interact-5: light-dark(var(--light-0), var(--dark-5));
+ --color-5: light-dark(var(--dark-5), var(--light-5));
+ --colour-5: light-dark(var(--dark-5), var(--light-5));
+ --background-6: light-dark(var(--light-6), var(--dark-6));
+ --background-interact-6: light-dark(var(--light--1), var(--dark-6));
+ --color-6: light-dark(var(--dark-6), var(--light-6));
+ --colour-6: light-dark(var(--dark-6), var(--light-6));
+ --background-7: light-dark(var(--light-7), var(--dark-7));
+ --background-interact-7: light-dark(var(--light--2), var(--dark-7));
+ --color-7: light-dark(var(--dark-7), var(--light-7));
+ --colour-7: light-dark(var(--dark-7), var(--light-7));
+ --background-8: light-dark(var(--light-8), var(--dark-8));
+ --background-interact-8: light-dark(var(--light--3), var(--dark-8));
+ --color-8: light-dark(var(--dark-8), var(--light-8));
+ --colour-8: light-dark(var(--dark-8), var(--light-8));
+ --background-9: light-dark(var(--light-9), var(--dark-9));
+ --background-interact-9: light-dark(var(--light--4), var(--dark-9));
+ --color-9: light-dark(var(--dark-9), var(--light-9));
+ --colour-9: light-dark(var(--dark-9), var(--light-9));
+ --background-10: light-dark(var(--light-10), var(--dark-10));
+ --background-interact-10: light-dark(var(--light--5), var(--dark-10));
+ --color-10: light-dark(var(--dark-10), var(--light-10));
+ --colour-10: light-dark(var(--dark-10), var(--light-10));
+ --background-11: light-dark(var(--light-11), var(--dark-11));
+ --background-interact-11: light-dark(var(--light--6), var(--dark-11));
+ --color-11: light-dark(var(--dark-11), var(--light-11));
+ --colour-11: light-dark(var(--dark-11), var(--light-11));
+ --background-12: light-dark(var(--light-12), var(--dark-12));
+ --background-interact-12: light-dark(var(--light--7), var(--dark-12));
+ --color-12: light-dark(var(--dark-12), var(--light-12));
+ --colour-12: light-dark(var(--dark-12), var(--light-12));
+ --background-13: light-dark(var(--light-13), var(--dark-13));
+ --background-interact-13: light-dark(var(--light--8), var(--dark-13));
+ --color-13: light-dark(var(--dark-13), var(--light-13));
+ --colour-13: light-dark(var(--dark-13), var(--light-13));
+ --background-14: light-dark(var(--light-14), var(--dark-14));
+ --background-interact-14: light-dark(var(--light--9), var(--dark-14));
+ --color-14: light-dark(var(--dark-14), var(--light-14));
+ --colour-14: light-dark(var(--dark-14), var(--light-14));
+ --background-15: light-dark(var(--light-15), var(--dark-15));
+ --background-interact-15: light-dark(var(--light--10), var(--dark-15));
+ --color-15: light-dark(var(--dark-15), var(--light-15));
+ --colour-15: light-dark(var(--dark-15), var(--light-15));
+ --transition-focus: .1s;
+ --transition-action: .05s;
+ --transition-blur: .3s;
+ --colour-blue: #69b3e2;
+ --colour-blue-saturated: #0173ba;
+ --colour-pink: #d94e8f;
+ --colour-success: #56d37a;
+ --colour-success-bg: #204731;
+ --colour-warning: #a8403e;
+ --colour-warning-bg: #4f2322;
+ --weight-normal: 400;
+ --weight-bold: 600;
+ --weight-bolder: 800;
+ --font-scale-factor: 1;
+ --font-vertical-align: -0.027em;
+ --font-letter-spacing: 0em;
+ --button-colour: var(--light-0);
+ --caret-colour: var(--colour-0);
+ --font-0: calc(0.6rem / var(--font-scale-factor));
+ --font-1: calc(0.8rem / var(--font-scale-factor));
+ --font-2: calc(0.9rem / var(--font-scale-factor));
+ --font-3: calc(1rem / var(--font-scale-factor));
+ --font-4: calc(1.2rem / var(--font-scale-factor));
+ --font-5: calc(1.5rem / var(--font-scale-factor));
+ --font-6: calc(1.8rem / var(--font-scale-factor));
+ --font-7: calc(2.4rem / var(--font-scale-factor));
+ --masthead-height: calc(round(up, var(--font-4) * 1.2, 1px) + var(--space-1) * 2 + var(--space-2) * 2);
+ --markdown-paragraph-padding-bottom: round(up, 1rem, 1px);
+ --markdown-paragraph-padding-top: round(up, 0.5rem, 1px);
+ --input-divider-border-colour: color-mix(in lch, var(--border-colour), transparent 90%);
+
+ font-family: "Open Sans";
+ font-weight: var(--weight-normal);
+ letter-spacing: var(--font-letter-spacing);
+ color-scheme: dark;
+ overflow-x: hidden;
+ background: radial-gradient(ellipse at left 20% top 20%, color-mix(in lch, var(--dark-2), #fff 5%), var(--dark-2));
+ position: absolute;
+ inset: 0;
+ color: var(--light-3);
+ view-transition-name: unset;
+ font-size: 1.2rem;
+ container-name: root;
+ container-type: size;
+ caret-color: var(--caret-colour);
+}
+
+::view-transition {
+ mask-image: linear-gradient(to bottom, transparent var(--masthead-height), #000 var(--masthead-height));
+ -webkit-mask-image: linear-gradient(to bottom, transparent var(--masthead-height), #000 var(--masthead-height));
+}
+.margin-0 {
+ margin: var(--space-0);
+}
+.overflow-hidden {
+ overflow: hidden;
+}
+@container root (width < calc(var(--space-5) * 20)) {
+ .body {
+ scroll-behavior: smooth;
+ overflow-x: hidden;
+ overflow-y: auto;
+ }
+}
+.align-left {
+ text-align: var(--align-left-preference, left) !important;
+}
+.markdown p {
+ margin-block: var(--markdown-paragraph-padding-top) var(--markdown-paragraph-padding-bottom);
+}
+.markdown hr {
+ margin-block-start: round(up, 1rem + 0.5lh, 1px);
+ margin-block-end: round(up, 1rem + 0.5lh - 1px, 1px);
+}
+.markdown blockquote {
+ margin-inline: var(--space-0);
+ padding-left: var(--space-3);
+ box-shadow: inset var(--space-1) 0 0 0 color-mix(in lch, var(--colour-0), transparent 80%);
+}
+.markdown code {
+ border-radius: var(--space-1);
+ padding-inline: var(--code-padding, var(--space-1));
+ margin-inline: var(--code-padding, var(--space-1));
+ background: var(--code-background, light-dark(color-mix(in lch, var(--dark-0), transparent 85%), color-mix(in lch, var(--dark-0), transparent 70%)));
+}
+.markdown pre {
+ padding: var(--space-2) var(--space-3);
+ border-radius: var(--space-2);
+ --code-background: transparent;
+ --code-padding: 0;
+ background: light-dark(color-mix(in lch, var(--dark-0), transparent 90%), color-mix(in lch, var(--dark-0), transparent 80%));
+}
+.markdown::after {
+ content: "";
+ display: block;
+ margin-top: var(--markdown-paragraph-padding-bottom);
+ margin-bottom: calc(var(--markdown-paragraph-padding-bottom) * -1);
+}
+.after::after {
+ content: "";
+}
+.view-transition {
+ --backdrop-filter-override: none;
+ view-transition-class: view-transition var(--view-transition-classes) var(--view-transition-delay);
+}
+.subview-transition {
+ --backdrop-filter-override: none;
+ view-transition-class: subview-transition var(--subview-transition-classes) var(--view-transition-delay);
+}
+.view-transition-delay-0 {
+ view-transition-class: view-transition-delay-0;
+}
+.view-transition-delay-1 {
+ view-transition-class: view-transition-delay-1;
+}
+.view-transition-delay-2 {
+ view-transition-class: view-transition-delay-2;
+}
+.view-transition-delay-3 {
+ view-transition-class: view-transition-delay-3;
+}
+.view-transition-delay-4 {
+ view-transition-class: view-transition-delay-4;
+}
+.view-transition-delay-5 {
+ view-transition-class: view-transition-delay-5;
+}
+.view-transition-delay-6 {
+ view-transition-class: view-transition-delay-6;
+}
+.view-transition-delay-7 {
+ view-transition-class: view-transition-delay-7;
+}
+.view-transition-delay-8 {
+ view-transition-class: view-transition-delay-8;
+}
+.view-transition-delay-9 {
+ view-transition-class: view-transition-delay-9;
+}
+.view-transition-delay-10 {
+ view-transition-class: view-transition-delay-10;
+}
+.view-transition-delay-11 {
+ view-transition-class: view-transition-delay-11;
+}
+.view-transition-delay-12 {
+ view-transition-class: view-transition-delay-12;
+}
+.view-transition-delay-13 {
+ view-transition-class: view-transition-delay-13;
+}
+.view-transition-delay-14 {
+ view-transition-class: view-transition-delay-14;
+}
+.view-transition-delay-15 {
+ view-transition-class: view-transition-delay-15;
+}
+.view-transition-delay-16 {
+ view-transition-class: view-transition-delay-16;
+}
+.view-transition-delay-17 {
+ view-transition-class: view-transition-delay-17;
+}
+.view-transition-delay-18 {
+ view-transition-class: view-transition-delay-18;
+}
+.view-transition-delay-19 {
+ view-transition-class: view-transition-delay-19;
+}
+.view-transition-delay-20 {
+ view-transition-class: view-transition-delay-20;
+}
+.view-transition-delay-21 {
+ view-transition-class: view-transition-delay-21;
+}
+.view-transition-delay-22 {
+ view-transition-class: view-transition-delay-22;
+}
+.view-transition-delay-23 {
+ view-transition-class: view-transition-delay-23;
+}
+.view-transition-delay-24 {
+ view-transition-class: view-transition-delay-24;
+}
+.view-transition-delay-25 {
+ view-transition-class: view-transition-delay-25;
+}
+.view-transition-delay-26 {
+ view-transition-class: view-transition-delay-26;
+}
+.view-transition-delay-27 {
+ view-transition-class: view-transition-delay-27;
+}
+.view-transition-delay-28 {
+ view-transition-class: view-transition-delay-28;
+}
+.view-transition-delay-29 {
+ view-transition-class: view-transition-delay-29;
+}
+.view-transition-delay-30 {
+ view-transition-class: view-transition-delay-30;
+}
+.view-transition-delay-31 {
+ view-transition-class: view-transition-delay-31;
+}
+.view-transition-delay-32 {
+ view-transition-class: view-transition-delay-32;
+}
+.view-transition-delay-33 {
+ view-transition-class: view-transition-delay-33;
+}
+.view-transition-delay-34 {
+ view-transition-class: view-transition-delay-34;
+}
+.view-transition-delay-35 {
+ view-transition-class: view-transition-delay-35;
+}
+.view-transition-delay-36 {
+ view-transition-class: view-transition-delay-36;
+}
+.view-transition-delay-37 {
+ view-transition-class: view-transition-delay-37;
+}
+.view-transition-delay-38 {
+ view-transition-class: view-transition-delay-38;
+}
+.view-transition-delay-39 {
+ view-transition-class: view-transition-delay-39;
+}
+.block {
+ display: block;
+}
+.margin-top-1 {
+ margin-top: var(--space-1);
+}
+.content {
+ content: "";
+}
+.contents {
+ display: contents;
+}
+.margin-bottom-3 {
+ margin-bottom: var(--space-3);
+}
+.italic {
+ font-style: italic;
+}
+.borderless {
+ border: none;
+}
+.padding-0 {
+ padding: var(--space-0);
+}
+.max-size-none {
+ max-width: none;
+ max-height: none;
+}
+.background-none {
+ background: none;
+}
+.relative {
+ position: relative;
+}
+.z-index-fg {
+ z-index: 1;
+}
+.size-100 {
+ width: var(--space-100);
+ height: var(--space-100);
+}
+.inset-0 {
+ inset: var(--space-0);
+}
+.fixed {
+ position: fixed;
+}
+.inset-auto {
+ inset: auto;
+}
+.dialog--not-modal {
+ z-index: 999999999;
+}
+.dialog-block {
+ --transition-duration: var(--transition-blur);
+ --transitions: opacity var(--transition-duration) ease-out calc(0 * 1s), translate var(--transition-duration) ease-out calc(0 * 1s);
+ transition: var(--transitions);
+}
+.overflow-visible {
+ overflow: visible;
+}
+.margin-auto {
+ margin: auto;
+}
+.dialog-block-wrapper {
+ --transition-duration: var(--transition-blur);
+ --transitions: display var(--transition-duration) ease-out calc(0 * 1s), overlay var(--transition-duration) ease-out calc(0 * 1s);
+ transition: var(--transitions);
+}
+.transition-discrete {
+ transition-behavior: allow-discrete;
+}
+.dialog-block-wrapper__backdrop::backdrop {
+ background: color-mix(in lch, color-mix(in lch, var(--dark-2), #fff 5%), transparent 5%);
+}
+.backdrop-blur__backdrop::backdrop {
+ backdrop-filter: var(--backdrop-filter-override, blur(var(--space-2)));
+}
+.dialog-block-wrapper__backdrop_3::backdrop {
+ --transition-duration: var(--transition-blur);
+ --transitions: display var(--transition-duration) ease-out calc(0 * 1s), background var(--transition-duration) ease-out calc(0 * 1s), backdrop-filter var(--transition-duration) ease-out calc(0 * 1s);
+ transition: var(--transitions);
+}
+.background-none__backdrop::backdrop {
+ background: none;
+}
+.backdrop-filter-none__backdrop::backdrop {
+ backdrop-filter: none;
+}
+.translate-down-5 {
+ translate: var(--translate-x, 0px) var(--translate-y, 0px);
+ --translate-y: var(--space-5);
+}
+.transparent {
+ opacity: 0;
+}
+.translate-up-4 {
+ translate: var(--translate-x, 0px) var(--translate-y, 0px);
+ --translate-y: calc(var(--space-4) * -1);
+}
+.transition-none {
+ transition: none;
+}
+.padding-4 {
+ padding: var(--space-4);
+}
+.border-radius-2 {
+ border-radius: var(--space-2);
+}
+.inset-border-1 {
+ box-shadow: inset 0 0 0 1px var(--border-colour);
+}
+.width-100 {
+ width: var(--space-100);
+}
+.block-border-shadow {
+ box-shadow: inset 0 0 0 1px var(--border-colour), 0 var(--space-1) var(--space-1) calc(var(--space-1) * -1) color-mix(in lch, light-dark(#000a, #000), transparent calc(100% - var(--box-shadow-intensity)));
+}
+.scheme-light-dark {
+ color-scheme: light dark;
+}
+.border-box {
+ box-sizing: border-box;
+}
+.block_3 {
+ max-width: calc(var(--space-5) * 13);
+ --block-background-light: color-mix(in lch, var(--light-0), transparent 30.000000000000004%);
+ --block-background-dark: color-mix(in lch, var(--light-0), transparent 98%);
+ --block-border-light: color-mix(in lch, var(--dark-0), transparent 80%);
+ --block-border-dark: color-mix(in lch, var(--light-0), transparent 95%);
+ --block-colour: var(--colour-3);
+ --block-button-colour: var(--colour-0);
+ color: var(--block-colour);
+ --button-colour: var(--block-button-colour);
+ --block-border-colour: light-dark(var(--block-border-light), var(--block-border-dark));
+ --border-colour: var(--block-border-colour);
+ --block-background: radial-gradient(ellipse at left 20% top 20%, light-dark(color-mix(in lch, light-dark(var(--block-background-light), var(--block-background-dark)), #fff 20%), color-mix(in lch, light-dark(var(--block-background-light), var(--block-background-dark)), #fff2 50%)), light-dark(var(--block-background-light), var(--block-background-dark)));
+ background: var(--block-background);
+}
+@container root (width <= calc(var(--space-5) * 13)) {
+ .block_2 {
+ border-radius: var(--space-0);
+ box-shadow: inset 0 1px 0 0 var(--border-colour), inset 0 -1px 0 0 var(--border-colour), 0 var(--space-1) var(--space-1) calc(var(--space-1) * -1) color-mix(in lch, light-dark(#000a, #000), transparent calc(100% - var(--box-shadow-intensity)));
+ }
+}
+.grid {
+ display: grid;
+}
+.border-bottom-1 {
+ border-bottom: 1px solid var(--border-colour);
+}
+.unmargin-4 {
+ margin: calc(var(--space-4) * -1);
+}
+.padding-inline-4 {
+ padding-inline: var(--space-4);
+}
+.padding-block-2 {
+ padding-block: var(--space-2);
+}
+.margin-bottom-4 {
+ margin-bottom: var(--space-4);
+}
+.border-top-radius-2 {
+ border-top-left-radius: var(--space-2);
+ border-top-right-radius: var(--space-2);
+}
+.block-header {
+ grid-template-columns: 1fr auto;
+ --border-colour: var(--block-border-colour);
+ background: light-dark(color-mix(in lch, var(--light-0), transparent 80%), color-mix(in lch, var(--colour-0), transparent 98%));
+}
+.z-index-0 {
+ z-index: 0;
+}
+.column-1 {
+ grid-column: 1;
+}
+.flex {
+ display: flex;
+}
+.align-items-centre {
+ align-items: center;
+}
+.justify-content-end {
+ justify-content: end;
+}
+.column-2 {
+ grid-column: 2;
+}
+.row-1 {
+ grid-row: 1;
+}
+.block-actions-primary {
+ margin-right: calc(var(--space-3) * -1);
+}
+.padding-block-3 {
+ padding-block: var(--space-3);
+}
+.margin-top-4 {
+ margin-top: var(--space-4);
+}
+.border-top-1 {
+ border-top: 1px solid var(--border-colour);
+}
+.border-bottom-radius-2 {
+ border-bottom-left-radius: var(--space-2);
+ border-bottom-right-radius: var(--space-2);
+}
+.block-footer {
+ width: calc(100% + var(--space-4) * 2);
+ --border-colour: var(--block-border-colour);
+ background: light-dark(color-mix(in lch, var(--dark-0), transparent 90%), color-mix(in lch, var(--dark-0), transparent 80%));
+}
+.background-unclip {
+ background-clip: padding-box;
+}
+.background-none__2 {
+ background: none;
+}
+.box-shadow-none {
+ box-shadow: none;
+}
+.border-radius-0 {
+ border-radius: var(--space-0);
+}
+.block-type-flush {
+ --block-flush-intensity: 10%;
+}
+.block-type-flush__last-child:where(:last-child) {
+ --block-flush-intensity: 0%;
+}
+.borderless__last-child:where(:last-child) {
+ border: none;
+}
+.borderless__2 {
+ border: none;
+}
+.margin-top-0 {
+ margin-top: var(--space-0);
+}
+.padding-top-0 {
+ padding-top: var(--space-0);
+}
+.margin-bottom-3__2 {
+ margin-bottom: var(--space-3);
+}
+.margin-top-2 {
+ margin-top: var(--space-2);
+}
+.unmargin-bottom-3 {
+ margin-bottom: calc(var(--space-3) * -1);
+}
+.padding-block-2__2 {
+ padding-block: var(--space-2);
+}
+.box-shadow-bottom-inset-2 {
+ box-shadow: inset 0 calc(var(--space-2) * -1) var(--space-2) calc(var(--space-1) * -1) color-mix(in lch, light-dark(#000a, #000), transparent calc(100% - var(--box-shadow-intensity)));
+}
+.block-type-flush-footer {
+ --box-shadow-intensity: var(--block-flush-intensity);
+ background: light-dark(color-mix(in lch, var(--dark-0), transparent 95%), color-mix(in lch, var(--dark-0), transparent 90%));
+}
+.weight-bold {
+ font-weight: var(--weight-bold);
+}
+.colour-blue {
+ color: var(--colour-blue);
+}
+.link {
+ text-decoration-color: transparent;
+ --transition-duration: var(--transition-blur);
+ --transitions: color var(--transition-duration) ease-out calc(0 * 1s), text-decoration-color var(--transition-duration) ease-out calc(0 * 1s);
+ transition: var(--transitions);
+}
+.decoration-underline__hover_focus-visible-has-focus-visible:where(:hover), .decoration-underline__hover_focus-visible-has-focus-visible:where(:focus-visible,:has(:focus-visible)) {
+ text-decoration: underline;
+}
+.colour-0__hover_focus-visible-has-focus-visible:where(:hover), .colour-0__hover_focus-visible-has-focus-visible:where(:focus-visible,:has(:focus-visible)) {
+ color: light-dark(var(--dark-0), var(--light-0));
+}
+.link__hover_focus-visible-has-focus-visible:where(:hover), .link__hover_focus-visible-has-focus-visible:where(:focus-visible,:has(:focus-visible)) {
+ text-decoration-color: var(--colour-0);
+ --transition-duration: var(--transition-focus);
+}
+.font-font-awesome__after::after {
+ --weight-normal: 400;
+ --weight-bold: 600;
+ --weight-bolder: 800;
+ --font-scale-factor: 0.8;
+ --font-vertical-align: 0em;
+ --font-letter-spacing: 0em;
+ font-family: "Font Awesome";
+ font-weight: var(--weight-normal);
+ letter-spacing: var(--font-letter-spacing);
+}
+.vertical-align-super__after::after {
+ vertical-align: super;
+}
+.link-external__after::after {
+ content: " \f35d";
+ font-size: .5em;
+}
+.inline-block {
+ display: inline-block;
+}
+.padding-2-3 {
+ padding: var(--space-2) var(--space-3);
+}
+.cursor-pointer {
+ cursor: pointer;
+}
+.no-select {
+ user-select: none;
+}
+.border-radius-1 {
+ border-radius: var(--space-1);
+}
+.font-family-inherit {
+ font-family: inherit;
+}
+.font-4 {
+ --font-size: round(calc(1.2rem / var(--font-scale-factor)), 1px);
+ --font-scaling: 1.2;
+ font-size: var(--font-size);
+}
+.box-shadow-1 {
+ box-shadow: 0 var(--space-1) var(--space-1) calc(var(--space-1) * -1) color-mix(in lch, light-dark(#000a, #000), transparent calc(100% - var(--box-shadow-intensity)));
+}
+.button {
+ color: var(--button-colour);
+ --button-background: var(--background-interact-4);
+ --button-background-highlight: hsl(from var(--button-background) h s calc(l + 6));
+ background: radial-gradient(ellipse at left 20% top 20%, var(--button-background-highlight), var(--button-background));
+ --button-transition: --button-background var(--transition-duration) ease-out calc(0 * 1s), --button-background-highlight var(--transition-duration) ease-out calc(0 * 1s), translate var(--transition-duration) ease-out calc(0 * 1s), color var(--transition-duration) ease-out calc(0 * 1s), box-shadow var(--transition-duration) ease-out calc(0 * 1s);
+ --transition-duration: var(--transition-blur);
+ --transitions: var(--button-transition);
+ transition: var(--transitions);
+}
+.button__hover_focus-visible-has-focus-visible:where(:hover), .button__hover_focus-visible-has-focus-visible:where(:focus-visible,:has(:focus-visible)) {
+ --button-background: var(--background-interact-5);
+}
+.translate-up-1__hover_focus-visible-has-focus-visible:where(:hover), .translate-up-1__hover_focus-visible-has-focus-visible:where(:focus-visible,:has(:focus-visible)) {
+ translate: var(--translate-x, 0px) var(--translate-y, 0px);
+ --translate-y: calc(var(--space-1) * -1);
+}
+.box-shadow-2__hover_focus-visible-has-focus-visible:where(:hover), .box-shadow-2__hover_focus-visible-has-focus-visible:where(:focus-visible,:has(:focus-visible)) {
+ box-shadow: 0 var(--space-2) var(--space-2) calc(var(--space-1) * -1) color-mix(in lch, light-dark(#0003, #0004), transparent calc(100% - var(--box-shadow-intensity)));
+}
+.button__hover_focus-visible-has-focus-visible_3:where(:hover), .button__hover_focus-visible-has-focus-visible_3:where(:focus-visible,:has(:focus-visible)) {
+ --transition-duration: var(--transition-focus);
+}
+.button__active:where(:active) {
+ --button-background: var(--background-interact-3);
+ --button-background-highlight: var(--button-background);
+}
+.translate-y-0__active:where(:active) {
+ --translate-y: var(--space-0);
+}
+.box-shadow-inset-1__active:where(:active) {
+ box-shadow: inset 0 var(--space-1) var(--space-1) calc(var(--space-1) * -1) color-mix(in lch, light-dark(#000a, #000), transparent calc(100% - var(--box-shadow-intensity)));
+}
+.button__active_3:where(:active) {
+ --transition-duration: var(--transition-action);
+}
+.box-shadow-none__not-hover-focus-visible-has-focus-visible-active:where(:not(:hover,:focus-visible,:has(:focus-visible),:active)) {
+ box-shadow: none;
+}
+.button-type-flush__not-hover-focus-visible-has-focus-visible-active:where(:not(:hover,:focus-visible,:has(:focus-visible),:active)) {
+ --button-background: transparent;
+}
+.font-inherit {
+ --font-scaling: inherit;
+ font-size: inherit;
+}
+.button-type-primary {
+ --colour: var(--colour-blue-saturated);
+ --button-background: var(--colour);
+ color: hsl(from var(--colour) 0 0% clamp(0, (l - 30) * -1000 + (h / 360) * (s * 700), 100));
+}
+.button-type-primary__hover_focus-visible-has-focus-visible:where(:hover), .button-type-primary__hover_focus-visible-has-focus-visible:where(:focus-visible,:has(:focus-visible)) {
+ --button-background: hsl(from var(--colour) h s calc(l + 5));
+}
+.button-type-primary__active:where(:active) {
+ --button-background: hsl(from var(--colour) h calc(s - 40) calc(l - 15));
+}
+.font-vertical-align {
+ position: relative;
+ top: var(--font-vertical-align, 0em);
+}
+.button--disabled {
+ --button-background: var(--background-interact-4);
+}
+.box-shadow-none__2 {
+ box-shadow: none;
+}
+.opacity-30 {
+ opacity: 0.3;
+}
+.cursor-default {
+ cursor: default;
+}
+.translate-y-0__hover_focus-visible-has-focus-visible_active:where(:hover), .translate-y-0__hover_focus-visible-has-focus-visible_active:where(:focus-visible,:has(:focus-visible)), .translate-y-0__hover_focus-visible-has-focus-visible_active:where(:active) {
+ --translate-y: var(--space-0);
+}
+.box-shadow-none__hover_focus-visible-has-focus-visible_active:where(:hover), .box-shadow-none__hover_focus-visible-has-focus-visible_active:where(:focus-visible,:has(:focus-visible)), .box-shadow-none__hover_focus-visible-has-focus-visible_active:where(:active) {
+ box-shadow: none;
+}
+.background-none__3 {
+ background: none;
+}
+.font-font-awesome {
+ --weight-normal: 400;
+ --weight-bold: 600;
+ --weight-bolder: 800;
+ --font-scale-factor: 0.8;
+ --font-vertical-align: 0em;
+ --font-letter-spacing: 0em;
+ font-family: "Font Awesome";
+ font-weight: var(--weight-normal);
+ letter-spacing: var(--font-letter-spacing);
+}
+.content-box {
+ box-sizing: content-box;
+}
+.size-em {
+ width: round(1em, 1px);
+ height: round(1em, 1px);
+}
+.box-shadow-none__hover_focus-visible-has-focus-visible:where(:hover), .box-shadow-none__hover_focus-visible-has-focus-visible:where(:focus-visible,:has(:focus-visible)) {
+ box-shadow: none;
+}
+.before::before {
+ content: "";
+}
+.button-icon-plus__before::before {
+ content: "\2b";
+}
+.button-icon-ellipsis-vertical__before::before {
+ content: "\f142";
+}
+.padding-3 {
+ padding: var(--space-3);
+}
+.backdrop-blur {
+ backdrop-filter: var(--backdrop-filter-override, blur(var(--space-2)));
+}
+.flex-column {
+ flex-direction: column;
+}
+.gap-2 {
+ gap: var(--space-2);
+}
+.translate-down-3 {
+ translate: var(--translate-x, 0px) var(--translate-y, 0px);
+ --translate-y: var(--space-3);
+}
+.margin-inline-0 {
+ margin-inline: var(--space-0);
+}
+.margin-block-2 {
+ margin-block: var(--space-2);
+}
+.popover {
+ --block-background-light: color-mix(in lch, var(--light-2), transparent 30.000000000000004%);
+ --block-background-dark: color-mix(in lch, var(--light-0), transparent 98%);
+ --block-border-light: color-mix(in lch, var(--dark-0), transparent 80%);
+ --block-border-dark: color-mix(in lch, var(--light-0), transparent 95%);
+ --block-colour: var(--colour-3);
+ --block-button-colour: var(--colour-0);
+ color: var(--block-colour);
+ --button-colour: var(--block-button-colour);
+ --block-border-colour: light-dark(var(--block-border-light), var(--block-border-dark));
+ --border-colour: var(--block-border-colour);
+ --block-background: radial-gradient(ellipse at left 20% top 20%, light-dark(color-mix(in lch, light-dark(var(--block-background-light), var(--block-background-dark)), #fff 20%), color-mix(in lch, light-dark(var(--block-background-light), var(--block-background-dark)), #fff2 50%)), light-dark(var(--block-background-light), var(--block-background-dark)));
+ background: var(--block-background);
+ --transition-duration: var(--transition-blur);
+ --transitions: display var(--transition-duration) ease-out calc(0 * 1s), overlay var(--transition-duration) ease-out calc(0 * 1s), opacity var(--transition-duration) ease-out calc(0 * 1s), translate var(--transition-duration) ease-out calc(0 * 1s);
+ transition: var(--transitions);
+}
+.transition-discrete__2 {
+ transition-behavior: allow-discrete;
+}
+.flex__popover-open:where(:popover-open) {
+ display: flex;
+}
+.opaque__popover-open:where(:popover-open) {
+ opacity: 1;
+}
+.popover__popover-open:where(:popover-open) {
+ --transition-duration: var(--transition-focus);
+}
+.translate-y-0__popover-open:where(:popover-open) {
+ --translate-y: var(--space-0);
+}
+@starting-style {
+ .transparent__popover-open__start:where(:popover-open) {
+ opacity: 0;
+ }
+}
+@starting-style {
+ .translate-up-2__popover-open__start:where(:popover-open) {
+ translate: var(--translate-x, 0px) var(--translate-y, 0px);
+ --translate-y: calc(var(--space-2) * -1);
+ }
+}
+.absolute {
+ position: absolute;
+}
+.opaque {
+ opacity: 1;
+}
+.popover--normal-stacking {
+ --transition-duration: var(--transition-focus);
+}
+.translate-y-0 {
+ --translate-y: var(--space-0);
+}
+@starting-style {
+ .transparent__start {
+ opacity: 0;
+ }
+}
+@starting-style {
+ .translate-up-2__start {
+ translate: var(--translate-x, 0px) var(--translate-y, 0px);
+ --translate-y: calc(var(--space-2) * -1);
+ }
+}
+.hidden {
+ display: none;
+}
+.transparent__2 {
+ opacity: 0;
+}
+.translate-down-3__2 {
+ translate: var(--translate-x, 0px) var(--translate-y, 0px);
+ --translate-y: var(--space-3);
+}
+.popover--normal-stacking--hidden {
+ --transition-duration: var(--transition-blur);
+}
+.input-popover {
+ max-width: calc(var(--space-5) * 4);
+}
+.margin-0__2 {
+ margin: var(--space-0);
+}
+.padding-0-3 {
+ padding: var(--space-0) var(--space-3);
+}
+.margin-left-3 {
+ margin-left: var(--space-3);
+}
+.border-left-2 {
+ border-left: 2px solid var(--border-colour);
+}
+.background-none__4 {
+ background: none;
+}
+.z-index-bg {
+ z-index: -1;
+}
+.font-1 {
+ --font-size: round(calc(0.8rem / var(--font-scale-factor)), 1px);
+ --font-scaling: 0.8;
+ font-size: var(--font-size);
+}
+.gap-1 {
+ gap: var(--space-1);
+}
+.input-popover-max-length {
+ color: color-mix( in lch, color-mix( in lch, color-mix( in lch, color-mix( in lch, color-mix( in lch, color-mix( in lch, color-mix( in lch, #0097ff, #0097ff calc((var(--remaining) * 100 - 0) / (10) * 100%) ), #b6f6ff calc((var(--remaining) * 100 - 10) / (20) * 100%) ), #ffffff calc((var(--remaining) * 100 - 30) / (5) * 100%) ), #ffd900 calc((var(--remaining) * 100 - 35) / (25) * 100%) ), #ff9e00 calc((var(--remaining) * 100 - 60) / (20) * 100%) ), #ff0000 calc((var(--remaining) * 100 - 80) / (10) * 100%) ), #ff0000 calc((var(--remaining) * 100 - 90) / (10) * 100%) );
+ --remaining: 1;
+}
+.block__before::before {
+ display: block;
+}
+.border-2__before::before {
+ border: 2px solid var(--border-colour);
+}
+.border-radius-100__before::before {
+ border-radius: var(--space-100);
+}
+.input-popover-max-length-icon__before::before {
+ width: .75em;
+ height: .75em;
+ clip-path: polygon( 50% 50%, calc(50% + 75% * cos(calc(var(--progress) * 360deg + 90deg))) calc(50% - 75% * sin(calc(var(--progress) * 360deg + 90deg))), calc(50% + 75% * cos(calc(min(var(--progress), 0.875) * 360deg + 90deg))) calc(50% - 75% * sin(calc(min(var(--progress), 0.875) * 360deg + 90deg))), calc(50% + 75% * cos(calc(min(var(--progress), 0.625) * 360deg + 90deg))) calc(50% - 75% * sin(calc(min(var(--progress), 0.625) * 360deg + 90deg))), calc(50% + 75% * cos(calc(min(var(--progress), 0.375) * 360deg + 90deg))) calc(50% - 75% * sin(calc(min(var(--progress), 0.375) * 360deg + 90deg))), calc(50% + 75% * cos(calc(min(var(--progress), 0.125) * 360deg + 90deg))) calc(50% - 75% * sin(calc(min(var(--progress), 0.125) * 360deg + 90deg))), 50% 0% );
+}
+.before-after::before, .before-after::after {
+ content: "";
+}
+.grid__2 {
+ display: grid;
+}
+.stack {
+ grid-template-areas: "stack";
+}
+.stack-self__before-after::before, .stack-self__before-after::after {
+ grid-area: stack;
+}
+.background-currentcolour__before-after::before, .background-currentcolour__before-after::after {
+ background: currentcolor;
+}
+.height-em__before-after::before, .height-em__before-after::after {
+ height: round(1em, 1px);
+}
+.input-popover-max-length-icon--overflowing__before-after::before, .input-popover-max-length-icon--overflowing__before-after::after {
+ margin-top: -0.05em;
+ margin-left: 0.4em;
+ transform-origin: center center;
+ width: 0.1em;
+ clip-path: none;
+}
+.borderless__before::before {
+ border: none;
+}
+.border-radius-0__before::before {
+ border-radius: var(--space-0);
+}
+.rotate-45__before::before {
+ rotate: 45deg;
+}
+.rotate-135__after::after {
+ rotate: 135deg;
+}
+.font-2 {
+ --font-size: round(calc(0.9rem / var(--font-scale-factor)), 1px);
+ --font-scaling: 0.9;
+ font-size: var(--font-size);
+}
+.input-popover-max-length-text {
+ top: -1px;
+}
+.border-1 {
+ border: 1px solid var(--border-colour);
+}
+.text-input {
+ --border-colour: var(--block-border-colour);
+ background: light-dark(color-mix(in lch, var(--dark-0), transparent 90%), color-mix(in lch, var(--dark-0), transparent 80%));
+}
+.background-unclip__2 {
+ background-clip: padding-box;
+}
+.border-radius-0__2 {
+ border-radius: var(--space-0);
+}
+.text-input-block-input {
+ --border-top-width: 0px;
+ border-top-width: var(--border-top-width);
+ --border-bottom-width: 0px;
+ border-bottom-width: var(--border-bottom-width);
+}
+.border-top-radius-2__2 {
+ border-top-left-radius: var(--space-2);
+ border-top-right-radius: var(--space-2);
+}
+.text-input-block-input--first {
+ --border-top-width: 1px;
+}
+.border-bottom-radius-2__2 {
+ border-bottom-left-radius: var(--space-2);
+ border-bottom-right-radius: var(--space-2);
+}
+.text-input-block-input--last {
+ --border-bottom-width: 1px;
+}
+.block__after::after {
+ display: block;
+}
+.absolute__after::after {
+ position: absolute;
+}
+.bottom-0__after::after {
+ bottom: var(--space-0);
+}
+.inset-inline-2__after::after {
+ inset-inline: var(--space-2);
+}
+.border-bottom-1__after::after {
+ border-bottom: 1px solid var(--border-colour);
+}
+.text-input-block-input-wrapper__after::after {
+ --border-colour: var(--input-divider-border-colour);
+}
+.hidden__after::after {
+ display: none;
+}
+.wrap-anywhere {
+ overflow-wrap: anywhere;
+}
+.white-space-pre-wrap {
+ white-space: pre-wrap;
+}
+.weight-normal {
+ font-weight: var(--weight-normal);
+}
+.text-shadow {
+ text-shadow: 0 calc(var(--space-1) * (var(--font-scaling) / 3)) calc((var(--space-1) / 2) * (var(--font-scaling) / 3)) light-dark(#0003, #0008);
+}
+.heading_markdown-heading {
+ margin-left: -0.05em;
+ min-width: 3em;
+}
+.font-kanit {
+ --weight-normal: 400;
+ --weight-bold: 600;
+ --weight-bolder: 800;
+ --font-scale-factor: 0.8;
+ --font-vertical-align: 0em;
+ --font-letter-spacing: 0.03em;
+ font-family: "Kanit";
+ font-weight: var(--weight-normal);
+ letter-spacing: var(--font-letter-spacing);
+ line-height: round(1.2em, 1px);
+}
+.absolute__before-after::before, .absolute__before-after::after {
+ position: absolute;
+}
+.z-index-bg__before-after::before, .z-index-bg__before-after::after {
+ z-index: -1;
+}
+.heading__before-after::before, .heading__before-after::after {
+ bottom: 0.05em;
+ height: 0.1em;
+ clip-path: polygon(0.05em 0%, 100% 0%, calc(100% - 0.05em) 100%, 0% 100%);
+}
+.heading__before::before {
+ width: calc(2em - 0.05em);
+ background-color: var(--colour-pink);
+}
+.heading__after::after {
+ left: calc(2em);
+ width: 1em;
+ background-color: var(--colour-blue);
+}
+.font-7 {
+ --font-size: round(calc(2.4rem / var(--font-scale-factor)), 1px);
+ --font-scaling: 2.4;
+ font-size: var(--font-size);
+}
+.font-6 {
+ --font-size: round(calc(1.8rem / var(--font-scale-factor)), 1px);
+ --font-scaling: 1.8;
+ font-size: var(--font-size);
+}
+.font-5 {
+ --font-size: round(calc(1.5rem / var(--font-scale-factor)), 1px);
+ --font-scaling: 1.5;
+ font-size: var(--font-size);
+}
+.font-3 {
+ --font-size: round(calc(1rem / var(--font-scale-factor)), 1px);
+ --font-scaling: 1;
+ font-size: var(--font-size);
+}
+.weight-bolder {
+ font-weight: var(--weight-bolder);
+}
+.markdown-heading {
+ margin-top: round(up, 1rem, 1px);
+ line-height: 1cap;
+}
+.markdown-heading-1 {
+ font-size: 2.5em;
+}
+.markdown-heading-2 {
+ font-size: 2.25em;
+}
+.markdown-heading-3 {
+ font-size: 2em;
+}
+.markdown-heading-4 {
+ font-size: 1.75em;
+}
+.markdown-heading-5 {
+ font-size: 1.5em;
+}
+.markdown-heading-6 {
+ font-size: 1.25em;
+}
+.label-required__after::after {
+ content: "*";
+}
+.label--invalid {
+ color: #f33;
+}
+.colour-6 {
+ color: light-dark(var(--dark-6), var(--light-6));
+}
+.colour-7 {
+ color: light-dark(var(--dark-7), var(--light-7));
+}
+.gap-3 {
+ gap: var(--space-3);
+}
+.labelled-table {
+ grid-template-columns: auto 1fr;
+}
+.columns-subgrid {
+ grid-template-columns: subgrid;
+}
+.align-items-start {
+ align-items: start;
+}
+.span-2 {
+ grid-column: span 2;
+}
+.sticky {
+ position: sticky;
+}
+.top-0 {
+ top: var(--space-0);
+}
+.padding-2-0 {
+ padding: var(--space-2) var(--space-0);
+}
+.row-gap-0 {
+ row-gap: var(--space-0);
+}
+.align-self-centre {
+ align-self: center;
+}
+.action-row {
+ max-width: calc(var(--space-5) * 13);
+}
+.flex-grow {
+ flex-grow: 1;
+}
+.justify-content-start {
+ justify-content: start;
+}
+.justify-content-centre {
+ justify-content: center;
+}
+.font-6__2 {
+ --font-size: round(calc(1.8rem / var(--font-scale-factor)), 1px);
+ --font-scaling: 1.8;
+ font-size: var(--font-size);
+}
+.cursor-text {
+ cursor: text;
+}
+.text-editor {
+ --border-colour: var(--block-border-colour);
+ background: light-dark(color-mix(in lch, var(--dark-0), transparent 90%), color-mix(in lch, var(--dark-0), transparent 80%));
+}
+.background-unclip__3 {
+ background-clip: padding-box;
+}
+.text-editor_3 {
+ --fullscreen-padding-inline: round(up, 50vw - calc(var(--space-5) * 13) / 2, 1px);
+}
+.text-editor__focus-visible-has-focus-visible_active:where(:focus-visible,:has(:focus-visible)), .text-editor__focus-visible-has-focus-visible_active:where(:active) {
+ outline: -webkit-focus-ring-color auto 1px;
+ outline-offset: 1px;
+}
+.border-top-radius-1 {
+ border-top-left-radius: var(--space-1);
+ border-top-right-radius: var(--space-1);
+}
+.text-editor-toolbar {
+ background: light-dark(color-mix(in lch, var(--dark-0), transparent 95%), color-mix(in lch, var(--dark-0), transparent 80%));
+ --border-colour: light-dark(color-mix(in lch, var(--dark-0), transparent 70%), color-mix(in lch, var(--light-0), transparent 85%));
+}
+.absolute__before::before {
+ position: absolute;
+}
+.inset-0__before::before {
+ inset: var(--space-0);
+}
+.backdrop-blur__before::before {
+ backdrop-filter: var(--backdrop-filter-override, blur(var(--space-2)));
+}
+.border-top-radius-1__before::before {
+ border-top-left-radius: var(--space-1);
+ border-top-right-radius: var(--space-1);
+}
+.text-editor-toolbar--fullscreen {
+ padding-inline: var(--fullscreen-padding-inline);
+}
+.grow {
+ flex-grow: 1;
+}
+.text-align-right {
+ text-align: right;
+}
+.inline-block__before::before {
+ display: inline-block;
+}
+.relative__before::before {
+ position: relative;
+}
+.border-left-1__before::before {
+ border-left: 1px solid var(--border-colour);
+}
+.border-colour-3__before::before {
+ border-color: light-dark(var(--light-3), var(--dark-3));
+}
+.margin-inline-1__before::before {
+ margin-inline: var(--space-1);
+}
+.vertical-align-middle__before::before {
+ vertical-align: middle;
+}
+.opacity-50__before::before {
+ opacity: 0.5;
+}
+.text-editor-toolbar-button-group__before::before {
+ height: calc(1em + calc(var(--space-2) + var(--space-1)) * 2);
+}
+.text-editor-toolbar-button-group__first-child__before:where(:first-child)::before {
+ content: none;
+}
+.text-align-centre {
+ text-align: center;
+}
+.vertical-align-middle {
+ vertical-align: middle;
+}
+.text-editor-toolbar-button {
+ padding: calc(var(--space-2) + var(--space-1)) calc(var(--space-2) + var(--space-1));
+ background: var(--button-background);
+ --button-background: transparent;
+ z-index: 1;
+}
+.text-align-centre__before::before {
+ text-align: center;
+}
+.width-100__before::before {
+ width: var(--space-100);
+}
+.text-editor-toolbar-button__before::before {
+ top: calc(var(--space-2) + var(--space-1));
+ left: var(--additional-left-padding, 0px);
+}
+.text-editor-toolbar-button__hover_focus-visible-has-focus-visible_active:where(:hover), .text-editor-toolbar-button__hover_focus-visible-has-focus-visible_active:where(:focus-visible,:has(:focus-visible)), .text-editor-toolbar-button__hover_focus-visible-has-focus-visible_active:where(:active) {
+ --button-background: transparent;
+ z-index: 2;
+}
+.border-radius-1__after::after {
+ border-radius: var(--space-1);
+}
+.background-4__after::after {
+ background: light-dark(var(--light-4), var(--dark-4));
+}
+.inset-block-1__after::after {
+ inset-block: var(--space-1);
+}
+.z-index-bg__after::after {
+ z-index: -1;
+}
+.text-editor-toolbar-button--enabled__after::after {
+ --width: calc(1em + calc(var(--space-2) + var(--space-1)) * 2 - var(--space-1) * 2 - (var(--space-3) - calc(var(--space-2) + var(--space-1))));
+ width: var(--width);
+ left: calc(50% - var(--width) / 2 + var(--additional-left-padding, 0px));
+}
+.outline-none {
+ outline: none;
+}
+.translate-y-0__hover_focus-visible-has-focus-visible:where(:hover), .translate-y-0__hover_focus-visible-has-focus-visible:where(:focus-visible,:has(:focus-visible)) {
+ --translate-y: var(--space-0);
+}
+.z-index-fg__before::before {
+ z-index: 1;
+}
+.border-top-radius-1__after::after {
+ border-top-left-radius: var(--space-1);
+ border-top-right-radius: var(--space-1);
+}
+.backdrop-filter-none__after::after {
+ backdrop-filter: none;
+}
+.translate-none__after::after {
+ translate: none;
+}
+.uninset-1__after::after {
+ inset: calc(var(--space-1) * -1);
+}
+.top-0__after::after {
+ top: var(--space-0);
+}
+.text-editor-toolbar-button--has-popover__after::after {
+ bottom: -1px;
+ --border-colour: transparent;
+ box-shadow: inset 0 1px 0 0 var(--border-colour), inset 1px 0 0 0 var(--border-colour), inset -1px 0 0 0 var(--border-colour);
+ --transition-duration: var(--transition-blur);
+ --transitions: --border-colour var(--transition-duration) ease-out calc(0 * 1s), inset var(--transition-duration) ease-out calc(0 * 1s), bottom var(--transition-duration) ease-out calc(0 * 1s), backdrop-filter var(--transition-duration) ease-out calc(0 * 1s);
+ transition: var(--transitions);
+}
+.text-editor-toolbar-button--has-popover-visible__after::after {
+ --border-colour: var(--block-border-colour);
+}
+.untop-1__after::after {
+ top: calc(var(--space-1) * -1);
+}
+.backdrop-blur__after::after {
+ backdrop-filter: var(--backdrop-filter-override, blur(var(--space-2)));
+}
+.text-editor-toolbar-button--has-popover-visible__after_3::after {
+ --transition-duration: var(--transition-focus);
+}
+.text-editor-toolbar-button--has-popover--within-popover__after::after {
+ backdrop-filter: none;
+}
+.text-editor-toolbar-strong__before::before {
+ content: "\f032";
+}
+.border-top-left-radius-1 {
+ border-top-left-radius: var(--space-1);
+}
+.text-editor-toolbar-em__before::before {
+ content: "\f033";
+}
+.text-editor-toolbar-underline__before::before {
+ content: "\f0cd";
+}
+.text-editor-toolbar-strikethrough__before::before {
+ content: "\f0cc";
+}
+.text-editor-toolbar-subscript__before::before {
+ content: "\f12c";
+}
+.text-editor-toolbar-superscript__before::before {
+ content: "\f12b";
+}
+.text-editor-toolbar-blockquote__before::before {
+ content: "\f10d";
+}
+.text-editor-toolbar-bullet-list__before::before {
+ content: "\f0ca";
+}
+.text-editor-toolbar-ordered-list__before::before {
+ content: "\f0cb";
+}
+.text-editor-toolbar-lift__before::before {
+ content: "\f03b";
+}
+.text-editor-toolbar-paragraph__before::before {
+ content: "\f1dd";
+}
+.text-editor-toolbar-heading__before::before {
+ content: "\f1dc";
+}
+.text-editor-toolbar-h1__before::before {
+ content: "\31";
+}
+.text-editor-toolbar-h2__before::before {
+ content: "\32";
+}
+.text-editor-toolbar-h3__before::before {
+ content: "\33";
+}
+.text-editor-toolbar-h4__before::before {
+ content: "\34";
+}
+.text-editor-toolbar-h5__before::before {
+ content: "\35";
+}
+.text-editor-toolbar-h6__before::before {
+ content: "\36";
+}
+.text-editor-toolbar-h2__before_2::before {
+ content: "\32";
+}
+.text-editor-toolbar-code__before_text-editor-toolbar-code-block__before::before {
+ content: "\f121";
+}
+.text-editor-toolbar-link__before::before {
+ content: "\f0c1";
+}
+.text-editor-toolbar-align-left__before::before {
+ content: "\f036";
+}
+.text-editor-toolbar-align-right__before::before {
+ content: "\f038";
+}
+.text-editor-toolbar-align-centre__before::before {
+ content: "\f037";
+}
+.text-editor-toolbar-align-justify__before::before {
+ content: "\f039";
+}
+.text-editor-toolbar-align-mixed__before_text-editor-toolbar-mixed__before::before {
+ content: "\2a";
+}
+.text-editor-toolbar-other-formatting__before::before {
+ content: "\f031 \00A0 \f142";
+}
+.text-editor-toolbar-hr__before::before {
+ --width: 1.3em;
+ width: var(--width);
+ left: calc(50% - var(--width) / 2);
+ --height: 0.13em;
+ height: var(--height);
+ top: calc(50% - var(--height) / 2);
+ border-radius: calc(var(--height) / 2);
+ background: currentcolor;
+}
+.text-editor-toolbar-undo__before::before {
+ content: "\f148";
+ rotate: -90deg;
+}
+.text-editor-toolbar-redo__before::before {
+ content: "\f149";
+ rotate: -90deg;
+}
+.text-editor-toolbar-fullscreen__before::before {
+ content: "\f065";
+}
+.text-editor-toolbar-unfullscreen__before::before {
+ content: "\f066";
+}
+.padding-1 {
+ padding: var(--space-1);
+}
+.flex-row {
+ flex-direction: row;
+}
+.border-top-radius-0 {
+ border-top-left-radius: var(--space-0);
+ border-top-right-radius: var(--space-0);
+}
+.gap-0 {
+ gap: var(--space-0);
+}
+.text-editor-toolbar-popover {
+ margin-top: 1px;
+ --block-background: color-mix(in lch, var(--background-1), transparent 80%);
+ border-top-color: color-mix(in lch, var(--background-1), transparent 9.999999999999998%);
+ box-shadow: inset 0 -1px 0 0 var(--border-colour), inset 1px 0 0 0 var(--border-colour), inset -1px 0 0 0 var(--border-colour);
+}
+.unmargin-left-1 {
+ margin-left: calc(var(--space-1) * -1);
+}
+.unmargin-right-1 {
+ margin-right: calc(var(--space-1) * -1);
+}
+.border-top-right-radius-1 {
+ border-top-right-radius: var(--space-1);
+}
+.text-editor-toolbar-popover-sub--centre {
+ border-top-right-radius: var(--space-1);
+ border-top-left-radius: var(--space-1);
+}
+.overflow-auto {
+ scroll-behavior: smooth;
+ overflow: auto;
+}
+.scrollbar-auto {
+ scrollbar-width: auto;
+}
+.no-outline {
+ outline: none;
+}
+.overflow-auto-x {
+ scroll-behavior: smooth;
+ overflow-x: auto;
+ overflow-y: hidden;
+}
+.scrollbar-none {
+ scrollbar-width: none;
+}
+.text-editor-document--fullscreen {
+ max-width: calc(var(--space-5) * 13);
+ padding-inline: var(--fullscreen-padding-inline);
+}
+.height-100__before::before {
+ height: var(--space-100);
+}
+.pointer-events-none__before::before {
+ pointer-events: none;
+}
+.text-editor-document--fullscreen__before::before {
+ width: calc(var(--space-5) * 13);
+ box-shadow: 0 0 0 max(100vw, var(--content-width, 100vw)) color-mix(in lch, var(--background-2), transparent 19.999999999999996%);
+}
+.width-100__after::after {
+ width: var(--space-100);
+}
+.text-editor-document--fullscreen__after::after {
+ height: 30vh;
+}
+.bottom-0 {
+ bottom: var(--space-0);
+}
+.border-bottom-radius-1 {
+ border-bottom-left-radius: var(--space-1);
+ border-bottom-right-radius: var(--space-1);
+}
+.text-editor-document-scrollbar-proxy {
+ scrollbar-color: var(--colour-5) transparent;
+}
+.text-editor-document-scrollbar-proxy__before::before {
+ width: var(--content-width);
+ height: 1px;
+}
+.text-editor-document-scrollbar-proxy__hover:where(:hover) {
+ scrollbar-color: var(--colour-3) transparent;
+}
+.borderless__3 {
+ border: none;
+}
+.background-none__5 {
+ background: none;
+}
+.text-editor--fullscreen {
+ grid-template-rows: auto 1fr;
+}
+.background-2__before::before {
+ background: light-dark(var(--light-2), var(--dark-2));
+}
+.z-index-bg__before::before {
+ z-index: -1;
+}
+.ProseMirror-gapcursor {
+ content: "";
+ display: block;
+ position: absolute;
+ margin-top: round(up, 0px - (1em + 0.5lh) / 2, 1px);
+ width: round(1lh, 1px);
+ height: 0;
+ border-top: 1px solid var(--caret-colour);
+ animation: 1.1s steps(2, jump-none) infinite ProseMirror-gapcursor;
+}
+.ProseMirror-hideselection {
+ caret-color: transparent;
+}
+.ProseMirror-selectednode {
+ outline: -webkit-focus-ring-color auto 1px;
+ outline-offset: var(--space-1);
+}
+.padding-bottom-0 {
+ padding-bottom: var(--space-0);
+}
+.paginator {
+ max-width: calc(var(--space-5) * 13);
+}
+.margin-bottom-0 {
+ margin-bottom: var(--space-0);
+}
+.paginator-header {
+ top: -1px;
+}
+.bottom-0__before::before {
+ bottom: var(--space-0);
+}
+.border-top-radius-2__before::before {
+ border-top-left-radius: var(--space-2);
+ border-top-right-radius: var(--space-2);
+}
+.paginator-header__before::before {
+ inset: 1px;
+}
+.margin-bottom-4__2 {
+ margin-bottom: var(--space-4);
+}
+.paginator-header--flush {
+ --border-colour: var(--block-border-colour);
+}
+.background-dark-3-a80 {
+ background: color-mix(in lch, var(--dark-3), transparent 20%);
+}
+.paginator-header--flush__before::before {
+ background: var(--block-background);
+}
+.border-radius-2__before::before {
+ border-radius: var(--space-2);
+}
+.padding-block-1 {
+ padding-block: var(--space-1);
+}
+.padding-inline-3 {
+ padding-inline: var(--space-3);
+}
+.margin-block-0 {
+ margin-block: var(--space-0);
+}
+.paginator-footer {
+ bottom: -1px;
+ --backdrop-filter-override: initial;
+}
+.top-0__before::before {
+ top: var(--space-0);
+}
+.border-bottom-radius-2__before::before {
+ border-bottom-left-radius: var(--space-2);
+ border-bottom-right-radius: var(--space-2);
+}
+.paginator-footer__before::before {
+ inset: 1px;
+}
+.relative__2 {
+ position: relative;
+}
+.margin-top-2__2 {
+ margin-top: var(--space-2);
+}
+.border-none {
+ border: none;
+}
+.hidden__before::before {
+ display: none;
+}
+.paginator-button {
+ --transition-duration: var(--transition-blur);
+ --transitions: var(--button-transition), opacity var(--transition-duration) ease-out calc(0 * 1s);
+ transition: var(--transitions);
+}
+.no-pointer-events {
+ pointer-events: none;
+}
+.paginator-button-first__before::before {
+ content: "\f100";
+}
+.paginator-button-prev__before::before {
+ content: "\f104";
+}
+.paginator-button-next__before::before {
+ content: "\f105";
+}
+.paginator-button-last__before::before {
+ content: "\f101";
+}
+.padding-top-4 {
+ padding-top: var(--space-4);
+}
+.margin-0__3 {
+ margin: var(--space-0);
+}
+.padding-block-3__2 {
+ padding-block: var(--space-3);
+}
+.paginator-page {
+ --transition-duration: var(--transition-blur);
+ --transitions: opacity var(--transition-duration) ease-out calc(0 * 1s), translate var(--transition-duration) ease-out calc(0 * 1s), display var(--transition-duration) ease-out calc(0 * 1s);
+ transition: var(--transitions);
+}
+.transition-discrete__3 {
+ transition-behavior: allow-discrete;
+}
+.stack-self {
+ grid-area: stack;
+}
+.translate-x-0 {
+ --translate-x: var(--space-0);
+}
+.paginator-page_3 {
+ --transition-duration: var(--transition-blur);
+}
+@starting-style {
+ .paginator-page__start {
+ translate: calc(var(--space-4) * var(--page-direction));
+ }
+}
+.no-transition {
+ transition: none;
+}
+.paginator-page--hidden {
+ translate: calc(var(--space-4) * var(--page-direction) * -1);
+ --transition-duration: var(--transition-focus);
+}
+.flex__2 {
+ display: flex;
+}
+.opaque__2 {
+ opacity: 1;
+}
+.right-5 {
+ right: var(--space-5);
+}
+.bottom-4 {
+ bottom: var(--space-4);
+}
+.align-items-end {
+ align-items: end;
+}
+.toast-list {
+ width: calc(100vw - var(--space-5));
+}
+.right-0 {
+ right: var(--space-0);
+}
+.padding-3-4 {
+ padding: var(--space-3) var(--space-4);
+}
+.colour-0 {
+ color: light-dark(var(--dark-0), var(--light-0));
+}
+.width-fit {
+ width: fit-content;
+}
+.align-self-end {
+ align-self: end;
+}
+.pointer-events {
+ pointer-events: all;
+}
+.toast {
+ --toast-background: var(--background-interact-4);
+ --toast-background-highlight: hsl(from var(--toast-background) h s calc(l + 6));
+ --border-colour: hsl(from var(--toast-background) h s calc(l + 12));
+ background: radial-gradient(ellipse at left 20% top 20%, var(--toast-background-highlight), var(--toast-background));
+ animation: .5s ease-out toast;
+}
+.height-0 {
+ height: var(--space-0);
+}
+.toast-wrapper {
+ --transition-duration: var(--transition-blur);
+ --transitions: height var(--transition-duration) ease-out calc(0 * 1s);
+ transition: var(--transitions);
+}
+.toast--hide {
+ animation: .3s ease-in forwards toast--hide;
+}
+.margin-bottom-1 {
+ margin-bottom: var(--space-1);
+}
+.toast-type-success {
+ --toast-background: var(--colour-success-bg);
+}
+.toast-type-warning {
+ --toast-background: var(--colour-warning-bg);
+}
+.padding-left-4 {
+ padding-left: var(--space-4);
+}
+.width-4 {
+ width: var(--space-4);
+}
+.align-content-centre {
+ align-content: center;
+}
+.padding-right-1 {
+ padding-right: var(--space-1);
+}
+.margin-block-1 {
+ margin-block: var(--space-1);
+}
+.opacity-50 {
+ opacity: 0.5;
+}
+.vanity-input-prefix {
+ top: -.06rem;
+}
+.flag {
+ transform: rotate(-15deg);
+ --transition-duration: var(--flag-transition-duration, var(--transition-blur));
+}
+.flag-stripe {
+ --wave-amount-x: 0.005176373410345749em;
+ --wave-amount-y: 0.019318518533176024em;
+}
+.left-0 {
+ left: var(--space-0);
+}
+.height-100 {
+ height: var(--space-100);
+}
+.flag-stripe_3 {
+ background: hsl(from var(--stripe-background) h s calc(l + var(--stripe-background-l-mod, 0)));
+ clip-path: polygon(0 0, 0 calc(100% - 0.13em), 0.23em 100%, 0.23em 0.13em);
+ --transition-duration: var(--transition-blur);
+ --transitions: background var(--transition-duration) ease-out calc(0 * 1s);
+ transition: var(--transitions);
+}
+.flag-stripe-blue {
+ --stripe-background: var(--colour-blue);
+}
+.flag-stripe-pink {
+ --stripe-background: var(--colour-pink);
+}
+.flag-stripe-white {
+ --stripe-background: #fff;
+}
+.flag-stripe-1 {
+ --animation-delay: 0s;
+}
+.flag-stripe-2 {
+ --animation-delay: 0.1s;
+}
+.flag-stripe-3 {
+ --animation-delay: 0.2s;
+}
+.flag-stripe-4 {
+ --animation-delay: 0.30000000000000004s;
+}
+.flag-stripe-5 {
+ --animation-delay: 0.4s;
+}
+.flag-stripe-1_2 {
+ left: 0.15em;
+ width: 0.11em;
+ top: -0.09em;
+ height: 0.92em;
+}
+.flag-stripe-2_2 {
+ left: 0.29em;
+ width: 0.09em;
+ top: 0.1em;
+ height: 0.92em;
+}
+.flag-stripe-3_2 {
+ left: 0.42em;
+ width: 0.21em;
+ top: 0.08em;
+ height: 0.96em;
+}
+.flag-stripe-4_2 {
+ left: 0.61em;
+ width: 0.14em;
+ top: 0.07em;
+ height: 0.9em;
+ z-index: 1;
+}
+.flag-stripe-5_2 {
+ left: 0.71em;
+ width: 0.15em;
+ top: 0.29em;
+ height: 0.8em;
+}
+.flag-stripe--animate {
+ animation: 0.4s ease-in-out var(--animation-delay) flag-stripe--animate, 0.6s ease-in-out calc(0.4s + var(--animation-delay)) infinite alternate-reverse flag-stripe--animate_2;
+}
+.flag-stripe--animate-end-0 {
+ animation: 0.4s ease-in-out flag-stripe--animate-end-0;
+}
+.flag-stripe--animate-end-1 {
+ animation: 0.4s ease-in-out flag-stripe--animate-end-1;
+}
+.flag--focused {
+ --transition-duration: var(--transition-focus);
+ --stripe-background-l-mod: 5;
+}
+.flag--active {
+ --transition-duration: var(--transition-action);
+ --stripe-background-l-mod: -5;
+}
+.background-dark-a30 {
+ background: color-mix(in lch, var(--dark-0), transparent 70%);
+}
+.padding-1-0 {
+ padding: var(--space-1) var(--space-0);
+}
+.masthead {
+ --border-colour: var(--dark-3);
+ height: var(--masthead-height);
+ line-height: round(1.2em, 1px);
+ box-shadow: inset 0 -1px 0 0 var(--border-colour), inset 0 calc(var(--space-1) * -1) var(--space-1) calc(var(--space-1) * -1) color-mix(in lch, light-dark(#000a, #000), transparent calc(100% - var(--box-shadow-intensity)));
+}
+.masthead-skip-nav {
+ grid-area: left;
+}
+.masthead-skip-nav_3 {
+ --transitions: opacity var(--transition-duration) ease-out calc(0 * 1s), var(--button-transition);
+}
+.opaque__hover_focus-visible-has-focus-visible:where(:hover), .opaque__hover_focus-visible-has-focus-visible:where(:focus-visible,:has(:focus-visible)) {
+ opacity: 1;
+}
+.pointer-events__hover_focus-visible-has-focus-visible:where(:hover), .pointer-events__hover_focus-visible-has-focus-visible:where(:focus-visible,:has(:focus-visible)) {
+ pointer-events: all;
+}
+.padding-left-2 {
+ padding-left: var(--space-2);
+}
+.margin-left-2 {
+ margin-left: var(--space-2);
+}
+.masthead-left {
+ grid-area: left;
+}
+.masthead-left-hamburger__before::before {
+ content: "\f0c9";
+}
+@container root (width < calc(var(--space-5) * 20)) {
+ .masthead-left-hamburger-sidebar {
+ display: none;
+ }
+}
+@container root (width < calc(var(--space-5) * 20)) {
+ .masthead-left-hamburger-popover {
+ display: inline-block;
+ }
+}
+.font-4__2 {
+ --font-size: round(calc(1.2rem / var(--font-scale-factor)), 1px);
+ --font-scaling: 1.2;
+ font-size: var(--font-size);
+}
+.size-fit {
+ width: fit-content;
+ height: fit-content;
+}
+.masthead-home__before-after::before, .masthead-home__before-after::after {
+ content: none;
+}
+.height-em {
+ height: round(1em, 1px);
+}
+.masthead-search {
+ grid-area: mid;
+}
+.padding-right-2 {
+ padding-right: var(--space-2);
+}
+.margin-right-2 {
+ margin-right: var(--space-2);
+}
+.masthead-user {
+ grid-area: right;
+}
+.masthead-user-notifications__before::before {
+ content: "\f0f3";
+}
+.masthead-user-profile__before::before {
+ content: "\f2bd";
+}
+.margin-right-4 {
+ margin-right: var(--space-4);
+}
+.translate {
+ translate: var(--translate-x, 0px) var(--translate-y, 0px);
+}
+.sidebar {
+ --translate-x: -100%;
+ --transition-duration: var(--transition-blur);
+ --transitions: opacity var(--transition-duration) ease-out calc(0 * 1s), translate var(--transition-duration) ease-out calc(0 * 1s);
+ transition: var(--transitions);
+}
+.left-100__after::after {
+ left: var(--space-100);
+}
+.top-5__after::after {
+ top: var(--space-5);
+}
+.bottom-5__after::after {
+ bottom: var(--space-5);
+}
+.border-left-1__after::after {
+ border-left: 1px solid var(--border-colour);
+}
+.border-color-4__after::after {
+ border-color: light-dark(var(--light-4), var(--dark-4));
+}
+.box-shadow-right-inset-1__after::after {
+ box-shadow: inset var(--space-1) 0 var(--space-1) calc(var(--space-1) * -1) color-mix(in lch, light-dark(#000a, #000), transparent calc(100% - var(--box-shadow-intensity)));
+}
+.width-1__after::after {
+ width: var(--space-1);
+}
+.gradient-mask__after::after {
+ mask-image: linear-gradient(to bottom, transparent 0%, black var(--gradient-mask-height), black calc(100% - var(--gradient-mask-height)), transparent 100%);
+ -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black var(--gradient-mask-height), black calc(100% - var(--gradient-mask-height)), transparent 100%);
+}
+.sidebar__after::after {
+ --gradient-mask-height: var(--space-5);
+}
+.sidebar__focus-visible-has-focus-visible:where(:focus-visible,:has(:focus-visible)) {
+ --translate-x: 0%;
+}
+.opaque__focus-visible-has-focus-visible:where(:focus-visible,:has(:focus-visible)) {
+ opacity: 1;
+}
+.sidebar--visible {
+ --translate-x: 0%;
+}
+.sidebar--visible-due-to-keyboard-navigation {
+ --translate-x: 0%;
+}
+.work-header {
+ grid-template-columns: auto 1fr;
+}
+.work-author-list {
+ grid-row: 2;
+}
+.flex-wrap {
+ flex-wrap: wrap;
+}
+.row-3 {
+ grid-row: 3;
+}
+.padding-top-3 {
+ padding-top: var(--space-3);
+}
+.padding-0__2 {
+ padding: var(--space-0);
+}
+.padding-top-2 {
+ padding-top: var(--space-2);
+}
+.padding-bottom-2 {
+ padding-bottom: var(--space-2);
+}
+.decoration-none {
+ text-decoration: none;
+}
+.colour-inherit {
+ color: inherit;
+}
+.weight-inherit {
+ font-weight: inherit;
+}
+.work--link {
+ --transition-duration: var(--transition-blur);
+ --transitions: background var(--transition-duration) ease-out calc(0 * 1s);
+ transition: var(--transitions);
+}
+.background-4__hover_focus-visible-has-focus-visible:where(:hover), .background-4__hover_focus-visible-has-focus-visible:where(:focus-visible,:has(:focus-visible)) {
+ background: light-dark(var(--light-4), var(--dark-4));
+}
+.work--link__hover_focus-visible-has-focus-visible:where(:hover), .work--link__hover_focus-visible-has-focus-visible:where(:focus-visible,:has(:focus-visible)) {
+ --transition-duration: var(--transition-focus);
+}
+.border-bottom-radius-2__last-child:where(:last-child) {
+ border-bottom-left-radius: var(--space-2);
+ border-bottom-right-radius: var(--space-2);
+}
+.no-decoration {
+ text-decoration: none;
+}
+.padding-1-2 {
+ padding: var(--space-1) var(--space-2);
+}
+.tag {
+ --button-background: transparent;
+ --border-colour: var(--colour-pink);
+ color: var(--colour-pink);
+}
+.colour-0__hover:where(:hover) {
+ color: light-dark(var(--dark-0), var(--light-0));
+}
+.tag__hover:where(:hover) {
+ --button-background: var(--colour-pink);
+}
+.font-0 {
+ --font-size: round(calc(0.6rem / var(--font-scale-factor)), 1px);
+ --font-scaling: 0.6;
+ font-size: var(--font-size);
+}
+.uppercase {
+ text-transform: uppercase;
+}
+.opacity-70 {
+ opacity: 0.7;
+}
+.tag-category {
+ scale: 1 0.9;
+}
+.unmargin-top-1 {
+ margin-top: calc(var(--space-1) * -1);
+}
+.padding-1-4 {
+ padding: var(--space-1) var(--space-4);
+}
+.span-4 {
+ grid-column: span 4;
+}
+.chapter {
+ --transition-duration: var(--transition-blur);
+ --transitions: background var(--transition-duration) ease-out calc(0 * 1s);
+ transition: var(--transitions);
+}
+.chapter__hover_focus-visible-has-focus-visible:where(:hover), .chapter__hover_focus-visible-has-focus-visible:where(:focus-visible,:has(:focus-visible)) {
+ --transition-duration: var(--transition-focus);
+}
+.chapter-list {
+ grid-template-columns: auto 1fr auto auto;
+}
+.justify-self-end {
+ justify-self: end;
+}
+.unmargin-block-1 {
+ margin-block: calc(var(--space-1) * -1);
+}
+.unmargin-right-3 {
+ margin-right: calc(var(--space-3) * -1);
+}
+.margin-left-0 {
+ margin-left: var(--space-0);
+}
+.chapter-actions-menu-button {
+ --transitions: var(--button-transition), margin var(--transition-duration) ease-out calc(0 * 1s), opacity var(--transition-duration) ease-out calc(0 * 1s);
+ transition: var(--transitions);
+ --transition-duration: var(--transition-focus);
+}
+.unmargin-left-3 {
+ margin-left: calc(var(--space-3) * -1);
+}
+.unmargin-right-4 {
+ margin-right: calc(var(--space-4) * -1);
+}
+.chapter-actions-menu-button--not-focused {
+ --transition-duration: var(--transition-blur);
+}
+.oauth-service {
+ --button-background: var(--colour);
+}
+.height-lh {
+ height: round(1lh, 1px);
+}
+.oauth-service_3 {
+ color: hsl(from var(--colour) 0 0% clamp(0, (l - 30) * -1000 + (h / 360) * (s * 700), 100));
+}
+.oauth-service__hover_focus-visible-has-focus-visible:where(:hover), .oauth-service__hover_focus-visible-has-focus-visible:where(:focus-visible,:has(:focus-visible)) {
+ --button-background: hsl(from var(--colour) h s calc(l + 5));
+}
+.oauth-service__active:where(:active) {
+ --button-background: hsl(from var(--colour) h calc(s - 40) calc(l - 15));
+}
+.size-constrain-em {
+ max-width: round(1em, 1px);
+ max-height: round(1em, 1px);
+}
+.rotate-45 {
+ rotate: 45deg;
+}
+.block__before-after::before, .block__before-after::after {
+ display: block;
+}
+.size-1__before-after::before, .size-1__before-after::after {
+ width: var(--space-1);
+ height: var(--space-1);
+}
+.opacity-0__before-after::before, .opacity-0__before-after::after {
+ opacity: 0;
+}
+.oauth-service-state__before-after::before, .oauth-service-state__before-after::after {
+ left: calc(50% - var(--space-1) / 2);
+ top: calc(50% - var(--space-1) / 2);
+ --transition-duration: var(--transition-blur);
+ --transitions: top var(--transition-duration) ease-out calc(0 * 1s), left var(--transition-duration) ease-out calc(0 * 1s), height var(--transition-duration) ease-out calc(0 * 1s), width var(--transition-duration) ease-out calc(0 * 1s);
+ transition: var(--transitions);
+}
+.height-100__before__2::before {
+ height: var(--space-100);
+}
+.top-0__before__2::before {
+ top: var(--space-0);
+}
+.width-50__after::after {
+ width: var(--space-50);
+}
+.left-0__after::after {
+ left: var(--space-0);
+}
+.oauth-service-state__after::after {
+ top: calc(100% - var(--space-1));
+}
+.oauth-service-state-wrapper {
+ --size: round(0.7lh, 2px);
+ width: var(--size);
+ height: var(--size);
+ --transition-duration: var(--transition-blur);
+ --transitions: translate var(--transition-duration) ease-out calc(0 * 1s);
+ transition: var(--transitions);
+}
+.translate-left-1 {
+ translate: var(--translate-x, 0px) var(--translate-y, 0px);
+ --translate-x: calc(var(--space-1) * -1);
+}
+.opacity-1__before-after::before, .opacity-1__before-after::after {
+ opacity: 1;
+}
+.after__2::after {
+ content: "";
+}
+.width-100__after__2::after {
+ width: var(--space-100);
+}
+.oauth-service-state--focus__after::after {
+ top: calc(50% - var(--space-1) / 2);
+}
+.gap-4 {
+ gap: var(--space-4);
+}
+.padding-4-0 {
+ padding: var(--space-4) var(--space-0);
+}
+.border-left-radius-2 {
+ border-top-left-radius: var(--space-2);
+ border-bottom-left-radius: var(--space-2);
+}
+.view-container-ephemeral {
+ --block-background-light: color-mix(in lch, var(--light-2), transparent 30.000000000000004%);
+ --block-background-dark: color-mix(in lch, var(--light-0), transparent 98%);
+ --block-border-light: color-mix(in lch, var(--dark-0), transparent 80%);
+ --block-border-dark: color-mix(in lch, var(--light-0), transparent 95%);
+ --block-colour: var(--colour-3);
+ --block-button-colour: var(--colour-0);
+ color: var(--block-colour);
+ --button-colour: var(--block-button-colour);
+ --block-border-colour: light-dark(var(--block-border-light), var(--block-border-dark));
+ --border-colour: var(--block-border-colour);
+ --block-background: radial-gradient(ellipse at left 20% top 20%, light-dark(color-mix(in lch, light-dark(var(--block-background-light), var(--block-background-dark)), #fff 20%), color-mix(in lch, light-dark(var(--block-background-light), var(--block-background-dark)), #fff2 50%)), light-dark(var(--block-background-light), var(--block-background-dark)));
+ background: color-mix(in lch, color-mix(in lch, var(--background-2), var(--background-3) 70%), transparent 9.999999999999998%);
+ box-shadow: inset 1px 0 0 0 var(--border-colour), inset 0 1px 0 0 var(--border-colour), inset 0 -1px 0 0 var(--border-colour), calc(var(--space-2) * -1) 0 var(--space-2) calc(var(--space-1) * -1) color-mix(in lch, light-dark(#0003, #0002), transparent calc(100% - var(--box-shadow-intensity)));
+ top: calc(var(--masthead-height) - 1px);
+ height: calc(100% - var(--masthead-height) + 1px);
+ min-width: 70vw;
+ view-transition-name: view-container-ephemeral;
+}
+.view-container-ephemeral-close__before::before {
+ content: "\f00d";
+}
+.padding-bottom-4 {
+ padding-bottom: var(--space-4);
+}
+.app_2 {
+ grid-template-areas: "masthead masthead masthead masthead masthead" ". sidebar content content .";
+ grid-template-rows: auto 1fr;
+ grid-template-columns: 1fr 300px minmax(auto, calc(1920px - 300px * 2)) auto 1fr;
+}
+@container root (width < calc(var(--space-5) * 20)) {
+ .app {
+ display: contents;
+ }
+}
+.overflow-auto-y {
+ scroll-behavior: smooth;
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+.gutter-stable {
+ scrollbar-gutter: stable;
+}
+.app-content_2 {
+ grid-area: content;
+ grid-template-areas: "content related";
+}
+@container root (width < calc(var(--space-5) * 20)) {
+ .app-content {
+ display: block;
+ overflow: visible;
+ }
+}
+.app-content-related_2 {
+ width: 300px;
+}
+@container root (width < calc(var(--space-5) * 20)) {
+ .app-content-related {
+ display: none;
+ }
+}
+.masthead_3 {
+ grid-area: masthead;
+ grid-template-columns: subgrid;
+ grid-template-areas: ". left mid right .";
+}
+@container root (width < calc(var(--space-5) * 20)) {
+ .masthead_2 {
+ grid-template-columns: 1fr auto 1fr;
+ grid-template-areas: "left mid right";
+ }
+}
+.sidebar_3 {
+ grid-area: sidebar;
+}
+@container root (width < calc(var(--space-5) * 20)) {
+ .sidebar_2 {
+ display: none;
+ }
+}
+
+
+::view-transition-old(*.view-transition) {
+ animation: 0.3s ease-out both view-transition__view-transition-class-old;
+}
+::view-transition-new(*.view-transition) {
+ animation: 0.5s ease-out backwards view-transition__view-transition-class-new;
+}
+::view-transition-group(*.subview-transition) {
+ animation-timing-function: ease-out;
+ animation-duration: .5s;
+ animation-fill-mode: both;
+}
+::view-transition-old(*.subview-transition) {
+ animation-duration: .3s;
+}
+::view-transition-old(*.view-transition-delay-0) {
+ animation-delay: 0s;
+}
+::view-transition-new(*.view-transition-delay-0) {
+ animation-delay: 0s;
+}
+::view-transition-old(*.view-transition-delay-1) {
+ animation-delay: 0.1s;
+}
+::view-transition-new(*.view-transition-delay-1) {
+ animation-delay: 0.1s;
+}
+::view-transition-old(*.view-transition-delay-2) {
+ animation-delay: 0.2s;
+}
+::view-transition-new(*.view-transition-delay-2) {
+ animation-delay: 0.2s;
+}
+::view-transition-old(*.view-transition-delay-3) {
+ animation-delay: 0.30000000000000004s;
+}
+::view-transition-new(*.view-transition-delay-3) {
+ animation-delay: 0.30000000000000004s;
+}
+::view-transition-old(*.view-transition-delay-4) {
+ animation-delay: 0.4s;
+}
+::view-transition-new(*.view-transition-delay-4) {
+ animation-delay: 0.4s;
+}
+::view-transition-old(*.view-transition-delay-5) {
+ animation-delay: 0.5s;
+}
+::view-transition-new(*.view-transition-delay-5) {
+ animation-delay: 0.5s;
+}
+::view-transition-old(*.view-transition-delay-6) {
+ animation-delay: 0.6000000000000001s;
+}
+::view-transition-new(*.view-transition-delay-6) {
+ animation-delay: 0.6000000000000001s;
+}
+::view-transition-old(*.view-transition-delay-7) {
+ animation-delay: 0.7000000000000001s;
+}
+::view-transition-new(*.view-transition-delay-7) {
+ animation-delay: 0.7000000000000001s;
+}
+::view-transition-old(*.view-transition-delay-8) {
+ animation-delay: 0.8s;
+}
+::view-transition-new(*.view-transition-delay-8) {
+ animation-delay: 0.8s;
+}
+::view-transition-old(*.view-transition-delay-9) {
+ animation-delay: 0.9s;
+}
+::view-transition-new(*.view-transition-delay-9) {
+ animation-delay: 0.9s;
+}
+::view-transition-old(*.view-transition-delay-10) {
+ animation-delay: 1s;
+}
+::view-transition-new(*.view-transition-delay-10) {
+ animation-delay: 1s;
+}
+::view-transition-old(*.view-transition-delay-11) {
+ animation-delay: 1.1s;
+}
+::view-transition-new(*.view-transition-delay-11) {
+ animation-delay: 1.1s;
+}
+::view-transition-old(*.view-transition-delay-12) {
+ animation-delay: 1.2000000000000002s;
+}
+::view-transition-new(*.view-transition-delay-12) {
+ animation-delay: 1.2000000000000002s;
+}
+::view-transition-old(*.view-transition-delay-13) {
+ animation-delay: 1.3s;
+}
+::view-transition-new(*.view-transition-delay-13) {
+ animation-delay: 1.3s;
+}
+::view-transition-old(*.view-transition-delay-14) {
+ animation-delay: 1.4000000000000001s;
+}
+::view-transition-new(*.view-transition-delay-14) {
+ animation-delay: 1.4000000000000001s;
+}
+::view-transition-old(*.view-transition-delay-15) {
+ animation-delay: 1.5s;
+}
+::view-transition-new(*.view-transition-delay-15) {
+ animation-delay: 1.5s;
+}
+::view-transition-old(*.view-transition-delay-16) {
+ animation-delay: 1.6s;
+}
+::view-transition-new(*.view-transition-delay-16) {
+ animation-delay: 1.6s;
+}
+::view-transition-old(*.view-transition-delay-17) {
+ animation-delay: 1.7000000000000002s;
+}
+::view-transition-new(*.view-transition-delay-17) {
+ animation-delay: 1.7000000000000002s;
+}
+::view-transition-old(*.view-transition-delay-18) {
+ animation-delay: 1.8s;
+}
+::view-transition-new(*.view-transition-delay-18) {
+ animation-delay: 1.8s;
+}
+::view-transition-old(*.view-transition-delay-19) {
+ animation-delay: 1.9000000000000001s;
+}
+::view-transition-new(*.view-transition-delay-19) {
+ animation-delay: 1.9000000000000001s;
+}
+::view-transition-old(*.view-transition-delay-20) {
+ animation-delay: 2s;
+}
+::view-transition-new(*.view-transition-delay-20) {
+ animation-delay: 2s;
+}
+::view-transition-old(*.view-transition-delay-21) {
+ animation-delay: 2.1s;
+}
+::view-transition-new(*.view-transition-delay-21) {
+ animation-delay: 2.1s;
+}
+::view-transition-old(*.view-transition-delay-22) {
+ animation-delay: 2.2s;
+}
+::view-transition-new(*.view-transition-delay-22) {
+ animation-delay: 2.2s;
+}
+::view-transition-old(*.view-transition-delay-23) {
+ animation-delay: 2.3000000000000003s;
+}
+::view-transition-new(*.view-transition-delay-23) {
+ animation-delay: 2.3000000000000003s;
+}
+::view-transition-old(*.view-transition-delay-24) {
+ animation-delay: 2.4000000000000004s;
+}
+::view-transition-new(*.view-transition-delay-24) {
+ animation-delay: 2.4000000000000004s;
+}
+::view-transition-old(*.view-transition-delay-25) {
+ animation-delay: 2.5s;
+}
+::view-transition-new(*.view-transition-delay-25) {
+ animation-delay: 2.5s;
+}
+::view-transition-old(*.view-transition-delay-26) {
+ animation-delay: 2.6s;
+}
+::view-transition-new(*.view-transition-delay-26) {
+ animation-delay: 2.6s;
+}
+::view-transition-old(*.view-transition-delay-27) {
+ animation-delay: 2.7s;
+}
+::view-transition-new(*.view-transition-delay-27) {
+ animation-delay: 2.7s;
+}
+::view-transition-old(*.view-transition-delay-28) {
+ animation-delay: 2.8000000000000003s;
+}
+::view-transition-new(*.view-transition-delay-28) {
+ animation-delay: 2.8000000000000003s;
+}
+::view-transition-old(*.view-transition-delay-29) {
+ animation-delay: 2.9000000000000004s;
+}
+::view-transition-new(*.view-transition-delay-29) {
+ animation-delay: 2.9000000000000004s;
+}
+::view-transition-old(*.view-transition-delay-30) {
+ animation-delay: 3s;
+}
+::view-transition-new(*.view-transition-delay-30) {
+ animation-delay: 3s;
+}
+::view-transition-old(*.view-transition-delay-31) {
+ animation-delay: 3.1s;
+}
+::view-transition-new(*.view-transition-delay-31) {
+ animation-delay: 3.1s;
+}
+::view-transition-old(*.view-transition-delay-32) {
+ animation-delay: 3.2s;
+}
+::view-transition-new(*.view-transition-delay-32) {
+ animation-delay: 3.2s;
+}
+::view-transition-old(*.view-transition-delay-33) {
+ animation-delay: 3.3000000000000003s;
+}
+::view-transition-new(*.view-transition-delay-33) {
+ animation-delay: 3.3000000000000003s;
+}
+::view-transition-old(*.view-transition-delay-34) {
+ animation-delay: 3.4000000000000004s;
+}
+::view-transition-new(*.view-transition-delay-34) {
+ animation-delay: 3.4000000000000004s;
+}
+::view-transition-old(*.view-transition-delay-35) {
+ animation-delay: 3.5s;
+}
+::view-transition-new(*.view-transition-delay-35) {
+ animation-delay: 3.5s;
+}
+::view-transition-old(*.view-transition-delay-36) {
+ animation-delay: 3.6s;
+}
+::view-transition-new(*.view-transition-delay-36) {
+ animation-delay: 3.6s;
+}
+::view-transition-old(*.view-transition-delay-37) {
+ animation-delay: 3.7s;
+}
+::view-transition-new(*.view-transition-delay-37) {
+ animation-delay: 3.7s;
+}
+::view-transition-old(*.view-transition-delay-38) {
+ animation-delay: 3.8000000000000003s;
+}
+::view-transition-new(*.view-transition-delay-38) {
+ animation-delay: 3.8000000000000003s;
+}
+::view-transition-old(*.view-transition-delay-39) {
+ animation-delay: 3.9000000000000004s;
+}
+::view-transition-new(*.view-transition-delay-39) {
+ animation-delay: 3.9000000000000004s;
+}
+::view-transition-old(view-container-ephemeral) {
+ animation: .3s ease-out both view-container-ephemeral__view-transition-old;
+}
+::view-transition-new(view-container-ephemeral) {
+ animation: .5s ease-out backwards view-container-ephemeral__view-transition-new;
+}
+
+@keyframes view-transition__view-transition-class-old {
+ 100% {
+ translate: 0 var(--space-5);
+ opacity: 0;
+ }
+}
+@keyframes view-transition__view-transition-class-new {
+ 0% {
+ translate: 0 var(--space-4);
+ opacity: 0;
+ }
+}
+@keyframes ProseMirror-gapcursor {
+ 100% {
+ opacity: 0;
+ }
+}
+@keyframes toast {
+ 0% {
+ translate: var(--translate-x, 0px) var(--translate-y, 0px);
+ --translate-y: var(--space-5);
+ opacity: 0;
+ }
+}
+@keyframes toast--hide {
+ 100% {
+ translate: var(--translate-x, 0px) var(--translate-y, 0px);
+ --translate-x: var(--space-5);
+ opacity: 0;
+ }
+}
+@keyframes flag-stripe--animate {
+ 0% {
+ transform: none;
+ }
+ 100% {
+ transform: translateX(calc(var(--wave-amount-x) * -1)) translateY(var(--wave-amount-y));
+ }
+}
+@keyframes flag-stripe--animate_2 {
+ 0% {
+ transform: translateX(var(--wave-amount-x)) translateY(calc(var(--wave-amount-y) * -1));
+ }
+ 100% {
+ transform: translateX(calc(var(--wave-amount-x) * -1)) translateY(var(--wave-amount-y));
+ }
+}
+@keyframes flag-stripe--animate-end-0 {
+ 0% {
+ transform: translateX(calc(var(--wave-amount-x) * -1)) translateY(var(--wave-amount-y));
+ }
+ 100% {
+ transform: none;
+ }
+}
+@keyframes flag-stripe--animate-end-1 {
+ 0% {
+ transform: translateX(var(--wave-amount-x)) translateY(calc(var(--wave-amount-y) * -1));
+ }
+ 100% {
+ transform: none;
+ }
+}
+@keyframes view-container-ephemeral__view-transition-old {
+ 100% {
+ translate: var(--space-5) 0;
+ opacity: 0;
+ }
+}
+@keyframes view-container-ephemeral__view-transition-new {
+ 0% {
+ translate: var(--space-4) 0;
+ opacity: 0;
+ }
+}
+
+/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9mbHVmZjQubWUvZmx1ZmY0Lm1lL2RvY3Mvc3R5bGUvaW5kZXguY3NzIiwic291cmNlc0NvbnRlbnQiOltdfQ== */
\ No newline at end of file
diff --git a/style/index.js b/style/index.js
new file mode 100644
index 0000000..a9e4d13
--- /dev/null
+++ b/style/index.js
@@ -0,0 +1,2044 @@
+(factory => {
+ if (typeof module === "object" && typeof module.exports === "object") {
+ var v = factory(require, exports)
+ if (v !== undefined) module.exports = v
+ }
+ else if (typeof define === "function" && define.amd)
+ define(["require", "exports"], factory)
+})((require, exports) => {
+ "use strict"
+ Object.defineProperty(exports, "__esModule", { value: true })
+ exports.default = {
+ "body": [
+ "margin-0",
+ "overflow-hidden",
+ "body",
+ ],
+ "align-left": [
+ "align-left",
+ ],
+ "markdown": [
+ "markdown",
+ "after",
+ ],
+ "view-transition": [
+ "view-transition",
+ ],
+ "subview-transition": [
+ "subview-transition",
+ ],
+ "view-transition-delay-0": [
+ "view-transition-delay-0",
+ ],
+ "view-transition-delay-1": [
+ "view-transition-delay-1",
+ ],
+ "view-transition-delay-2": [
+ "view-transition-delay-2",
+ ],
+ "view-transition-delay-3": [
+ "view-transition-delay-3",
+ ],
+ "view-transition-delay-4": [
+ "view-transition-delay-4",
+ ],
+ "view-transition-delay-5": [
+ "view-transition-delay-5",
+ ],
+ "view-transition-delay-6": [
+ "view-transition-delay-6",
+ ],
+ "view-transition-delay-7": [
+ "view-transition-delay-7",
+ ],
+ "view-transition-delay-8": [
+ "view-transition-delay-8",
+ ],
+ "view-transition-delay-9": [
+ "view-transition-delay-9",
+ ],
+ "view-transition-delay-10": [
+ "view-transition-delay-10",
+ ],
+ "view-transition-delay-11": [
+ "view-transition-delay-11",
+ ],
+ "view-transition-delay-12": [
+ "view-transition-delay-12",
+ ],
+ "view-transition-delay-13": [
+ "view-transition-delay-13",
+ ],
+ "view-transition-delay-14": [
+ "view-transition-delay-14",
+ ],
+ "view-transition-delay-15": [
+ "view-transition-delay-15",
+ ],
+ "view-transition-delay-16": [
+ "view-transition-delay-16",
+ ],
+ "view-transition-delay-17": [
+ "view-transition-delay-17",
+ ],
+ "view-transition-delay-18": [
+ "view-transition-delay-18",
+ ],
+ "view-transition-delay-19": [
+ "view-transition-delay-19",
+ ],
+ "view-transition-delay-20": [
+ "view-transition-delay-20",
+ ],
+ "view-transition-delay-21": [
+ "view-transition-delay-21",
+ ],
+ "view-transition-delay-22": [
+ "view-transition-delay-22",
+ ],
+ "view-transition-delay-23": [
+ "view-transition-delay-23",
+ ],
+ "view-transition-delay-24": [
+ "view-transition-delay-24",
+ ],
+ "view-transition-delay-25": [
+ "view-transition-delay-25",
+ ],
+ "view-transition-delay-26": [
+ "view-transition-delay-26",
+ ],
+ "view-transition-delay-27": [
+ "view-transition-delay-27",
+ ],
+ "view-transition-delay-28": [
+ "view-transition-delay-28",
+ ],
+ "view-transition-delay-29": [
+ "view-transition-delay-29",
+ ],
+ "view-transition-delay-30": [
+ "view-transition-delay-30",
+ ],
+ "view-transition-delay-31": [
+ "view-transition-delay-31",
+ ],
+ "view-transition-delay-32": [
+ "view-transition-delay-32",
+ ],
+ "view-transition-delay-33": [
+ "view-transition-delay-33",
+ ],
+ "view-transition-delay-34": [
+ "view-transition-delay-34",
+ ],
+ "view-transition-delay-35": [
+ "view-transition-delay-35",
+ ],
+ "view-transition-delay-36": [
+ "view-transition-delay-36",
+ ],
+ "view-transition-delay-37": [
+ "view-transition-delay-37",
+ ],
+ "view-transition-delay-38": [
+ "view-transition-delay-38",
+ ],
+ "view-transition-delay-39": [
+ "view-transition-delay-39",
+ ],
+ "break": [
+ "block",
+ "margin-top-1",
+ "content",
+ ],
+ "slot": [
+ "contents",
+ ],
+ "paragraph": [
+ "block",
+ "margin-bottom-3",
+ ],
+ "placeholder": [
+ "italic",
+ ],
+ "dialog": [
+ "borderless",
+ "margin-0",
+ "padding-0",
+ "max-size-none",
+ "background-none",
+ ],
+ "dialog--open": [
+ "block",
+ "relative",
+ "z-index-fg",
+ ],
+ "dialog--fullscreen": [
+ "size-100",
+ "inset-0",
+ ],
+ "dialog--not-modal": [
+ "fixed",
+ "inset-auto",
+ "dialog--not-modal",
+ ],
+ "dialog-block": [
+ "dialog-block",
+ ],
+ "dialog-block-wrapper": [
+ "overflow-visible",
+ "margin-auto",
+ "dialog-block-wrapper",
+ "transition-discrete",
+ "dialog-block-wrapper__backdrop",
+ "backdrop-blur__backdrop",
+ "dialog-block-wrapper__backdrop_3",
+ ],
+ "dialog-block-wrapper--closed": [
+ "background-none__backdrop",
+ "backdrop-filter-none__backdrop",
+ ],
+ "dialog-block--closed": [
+ "translate-down-5",
+ "transparent",
+ ],
+ "dialog-block--opening": [
+ "translate-up-4",
+ "transparent",
+ "transition-none",
+ ],
+ "block": [
+ "block",
+ "padding-4",
+ "border-radius-2",
+ "inset-border-1",
+ "width-100",
+ "block-border-shadow",
+ "scheme-light-dark",
+ "border-box",
+ "block_3",
+ "block_2",
+ ],
+ "block-header": [
+ "grid",
+ "border-bottom-1",
+ "unmargin-4",
+ "padding-inline-4",
+ "padding-block-2",
+ "margin-bottom-4",
+ "border-top-radius-2",
+ "block-header",
+ ],
+ "block-title": [
+ "z-index-0",
+ "column-1",
+ ],
+ "block-actions": [
+ ],
+ "block-actions-primary": [
+ "flex",
+ "align-items-centre",
+ "justify-content-end",
+ "column-2",
+ "row-1",
+ "block-actions-primary",
+ ],
+ "block-actions-menu-button": [
+ ],
+ "block-description": [
+ "column-1",
+ ],
+ "block-content": [
+ ],
+ "block-footer": [
+ "unmargin-4",
+ "padding-inline-4",
+ "padding-block-3",
+ "margin-top-4",
+ "border-top-1",
+ "border-bottom-radius-2",
+ "border-box",
+ "block-footer",
+ "background-unclip",
+ ],
+ "block-type-flush": [
+ "background-none__2",
+ "box-shadow-none",
+ "padding-block-3",
+ "border-bottom-1",
+ "border-radius-0",
+ "block-type-flush",
+ "block-type-flush__last-child",
+ "borderless__last-child",
+ ],
+ "block-type-flush-header": [
+ "background-none__2",
+ "borderless__2",
+ "margin-top-0",
+ "padding-top-0",
+ "margin-bottom-3__2",
+ ],
+ "block-type-flush-footer": [
+ "margin-top-2",
+ "unmargin-bottom-3",
+ "padding-block-2__2",
+ "border-radius-0",
+ "box-shadow-bottom-inset-2",
+ "block-type-flush-footer",
+ ],
+ "link": [
+ "weight-bold",
+ "colour-blue",
+ "link",
+ "decoration-underline__hover_focus-visible-has-focus-visible",
+ "colour-0__hover_focus-visible-has-focus-visible",
+ "link__hover_focus-visible-has-focus-visible",
+ ],
+ "link-external": [
+ "after",
+ "font-font-awesome__after",
+ "vertical-align-super__after",
+ "link-external__after",
+ ],
+ "button": [
+ "borderless",
+ "inline-block",
+ "padding-2-3",
+ "cursor-pointer",
+ "no-select",
+ "weight-bold",
+ "border-radius-1",
+ "font-family-inherit",
+ "font-4",
+ "box-shadow-1",
+ "button",
+ "button__hover_focus-visible-has-focus-visible",
+ "translate-up-1__hover_focus-visible-has-focus-visible",
+ "box-shadow-2__hover_focus-visible-has-focus-visible",
+ "button__hover_focus-visible-has-focus-visible_3",
+ "button__active",
+ "translate-y-0__active",
+ "box-shadow-inset-1__active",
+ "button__active_3",
+ ],
+ "button-type-flush": [
+ "box-shadow-none__not-hover-focus-visible-has-focus-visible-active",
+ "button-type-flush__not-hover-focus-visible-has-focus-visible-active",
+ ],
+ "button-type-inherit-size": [
+ "font-inherit",
+ ],
+ "button-type-primary": [
+ "button-type-primary",
+ "button-type-primary__hover_focus-visible-has-focus-visible",
+ "button-type-primary__active",
+ ],
+ "button-text": [
+ "font-vertical-align",
+ ],
+ "button--disabled": [
+ "button--disabled",
+ "box-shadow-none__2",
+ "opacity-30",
+ "cursor-default",
+ "translate-y-0__hover_focus-visible-has-focus-visible_active",
+ "box-shadow-none__hover_focus-visible-has-focus-visible_active",
+ ],
+ "button-icon-plus": [
+ "background-none__3",
+ "box-shadow-none__2",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "button-icon-plus__before",
+ ],
+ "button-icon-ellipsis-vertical": [
+ "background-none__3",
+ "box-shadow-none__2",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "button-icon-ellipsis-vertical__before",
+ ],
+ "popover": [
+ "padding-3",
+ "border-radius-2",
+ "inset-border-1",
+ "borderless",
+ "backdrop-blur",
+ "flex-column",
+ "gap-2",
+ "block-border-shadow",
+ "scheme-light-dark",
+ "transparent",
+ "translate-down-3",
+ "margin-inline-0",
+ "margin-block-2",
+ "popover",
+ "transition-discrete__2",
+ "flex__popover-open",
+ "opaque__popover-open",
+ "popover__popover-open",
+ "translate-y-0__popover-open",
+ "transparent__popover-open__start",
+ "translate-up-2__popover-open__start",
+ ],
+ "popover--normal-stacking": [
+ "absolute",
+ "flex",
+ "opaque",
+ "popover--normal-stacking",
+ "translate-y-0",
+ "transparent__start",
+ "translate-up-2__start",
+ ],
+ "popover--normal-stacking--hidden": [
+ "hidden",
+ "transparent__2",
+ "translate-down-3__2",
+ "popover--normal-stacking--hidden",
+ ],
+ "input": [
+ ],
+ "input-popover": [
+ "input-popover",
+ "margin-0__2",
+ "padding-0-3",
+ "margin-left-3",
+ "border-left-2",
+ "background-none__4",
+ "box-shadow-none",
+ "border-radius-0",
+ "z-index-bg",
+ ],
+ "input-popover-hint-text": [
+ "italic",
+ "font-1",
+ ],
+ "input-popover-max-length": [
+ "flex",
+ "gap-1",
+ "align-items-centre",
+ "input-popover-max-length",
+ ],
+ "input-popover-max-length-icon": [
+ "block",
+ "size-em",
+ "before",
+ "block__before",
+ "border-2__before",
+ "border-radius-100__before",
+ "input-popover-max-length-icon__before",
+ ],
+ "input-popover-max-length-icon--overflowing": [
+ "before-after",
+ "grid__2",
+ "stack",
+ "stack-self__before-after",
+ "background-currentcolour__before-after",
+ "height-em__before-after",
+ "input-popover-max-length-icon--overflowing__before-after",
+ "borderless__before",
+ "border-radius-0__before",
+ "rotate-45__before",
+ "rotate-135__after",
+ ],
+ "input-popover-max-length-text": [
+ "font-2",
+ "relative",
+ "input-popover-max-length-text",
+ ],
+ "text-input": [
+ "borderless",
+ "background-none",
+ "font-inherit",
+ "font-family-inherit",
+ "relative",
+ "block",
+ "width-100",
+ "padding-2-3",
+ "border-box",
+ "border-1",
+ "border-radius-1",
+ "text-input",
+ "background-unclip__2",
+ ],
+ "text-input-block": [
+ ],
+ "text-input-block-input": [
+ "border-radius-0__2",
+ "text-input-block-input",
+ ],
+ "text-input-block-input--first": [
+ "border-top-radius-2__2",
+ "text-input-block-input--first",
+ ],
+ "text-input-block-input--last": [
+ "border-bottom-radius-2__2",
+ "text-input-block-input--last",
+ ],
+ "text-input-block-input-wrapper": [
+ "relative",
+ "block",
+ "after",
+ "block__after",
+ "absolute__after",
+ "bottom-0__after",
+ "inset-inline-2__after",
+ "border-bottom-1__after",
+ "text-input-block-input-wrapper__after",
+ ],
+ "text-input-block-input-wrapper--last": [
+ "after",
+ "hidden__after",
+ ],
+ "text-area": [
+ "wrap-anywhere",
+ "white-space-pre-wrap",
+ ],
+ "heading": [
+ "relative",
+ "margin-0",
+ "weight-normal",
+ "font-inherit",
+ "text-shadow",
+ "heading_markdown-heading",
+ "before-after",
+ "font-kanit",
+ "absolute__before-after",
+ "z-index-bg__before-after",
+ "heading__before-after",
+ "heading__before",
+ "heading__after",
+ ],
+ "markdown-heading": [
+ "relative",
+ "margin-0",
+ "weight-normal",
+ "font-inherit",
+ "text-shadow",
+ "heading_markdown-heading",
+ "markdown-heading",
+ ],
+ "heading-1": [
+ "font-7",
+ "weight-bolder",
+ ],
+ "heading-2": [
+ "font-6",
+ "weight-bolder",
+ ],
+ "heading-3": [
+ "font-5",
+ "weight-bold",
+ ],
+ "heading-4": [
+ "font-4",
+ "weight-bold",
+ ],
+ "heading-5": [
+ "font-3",
+ ],
+ "heading-6": [
+ "font-2",
+ ],
+ "markdown-heading-1": [
+ "weight-bolder",
+ "markdown-heading-1",
+ ],
+ "markdown-heading-2": [
+ "weight-bolder",
+ "markdown-heading-2",
+ ],
+ "markdown-heading-3": [
+ "weight-bolder",
+ "markdown-heading-3",
+ ],
+ "markdown-heading-4": [
+ "weight-bolder",
+ "markdown-heading-4",
+ ],
+ "markdown-heading-5": [
+ "weight-bolder",
+ "markdown-heading-5",
+ ],
+ "markdown-heading-6": [
+ "weight-bolder",
+ "markdown-heading-6",
+ ],
+ "checkbutton": [
+ ],
+ "checkbutton-input": [
+ "hidden",
+ ],
+ "checkbutton--checked": [
+ ],
+ "label": [
+ ],
+ "label-required": [
+ "after",
+ "label-required__after",
+ ],
+ "label--invalid": [
+ "label--invalid",
+ ],
+ "text-label": [
+ "font-2",
+ ],
+ "text-label-label": [
+ "colour-6",
+ ],
+ "text-label-punctuation": [
+ "colour-6",
+ ],
+ "text-label-content": [
+ ],
+ "timestamp": [
+ "italic",
+ "colour-7",
+ ],
+ "labelled-table": [
+ "gap-3",
+ "grid",
+ "labelled-table",
+ ],
+ "labelled-row": [
+ "gap-3",
+ "align-items-centre",
+ ],
+ "labelled-row--in-labelled-table": [
+ "grid",
+ "columns-subgrid",
+ "align-items-start",
+ "span-2",
+ ],
+ "labelled-row-label": [
+ "sticky",
+ "top-0",
+ "padding-2-0",
+ ],
+ "labelled-row-content": [
+ "block",
+ "relative",
+ ],
+ "labelled-text-input-block": [
+ "row-gap-0",
+ ],
+ "labelled-text-input-block-labels": [
+ "contents",
+ ],
+ "labelled-text-input-block-inputs": [
+ "contents",
+ ],
+ "labelled-text-input-block-label": [
+ "column-1",
+ "align-self-centre",
+ ],
+ "labelled-text-input-block-input": [
+ "column-2",
+ ],
+ "action-row": [
+ "flex",
+ "width-100",
+ "gap-3",
+ "border-box",
+ "action-row",
+ ],
+ "action-row-left": [
+ "flex",
+ "flex-grow",
+ "gap-3",
+ "align-items-centre",
+ "justify-content-start",
+ ],
+ "action-row-middle": [
+ "flex",
+ "flex-grow",
+ "gap-3",
+ "align-items-centre",
+ "justify-content-centre",
+ ],
+ "action-row-right": [
+ "flex",
+ "flex-grow",
+ "gap-3",
+ "align-items-centre",
+ "justify-content-end",
+ ],
+ "action-heading": [
+ ],
+ "action-heading-heading": [
+ "font-6__2",
+ ],
+ "text-editor": [
+ "grid",
+ "width-100",
+ "border-1",
+ "border-radius-1",
+ "cursor-text",
+ "text-editor",
+ "background-unclip__3",
+ "text-editor_3",
+ "text-editor__focus-visible-has-focus-visible_active",
+ ],
+ "text-editor-toolbar": [
+ "font-3",
+ "flex",
+ "sticky",
+ "border-bottom-1",
+ "cursor-default",
+ "z-index-fg",
+ "border-top-radius-1",
+ "top-0",
+ "text-editor-toolbar",
+ "before",
+ "block__before",
+ "absolute__before",
+ "inset-0__before",
+ "backdrop-blur__before",
+ "border-top-radius-1__before",
+ ],
+ "text-editor-toolbar--fullscreen": [
+ "text-editor-toolbar--fullscreen",
+ ],
+ "text-editor-toolbar-left": [
+ "block",
+ "grow",
+ ],
+ "text-editor-toolbar-right": [
+ "block",
+ "grow",
+ "text-align-right",
+ ],
+ "text-editor-toolbar-button-group": [
+ "before",
+ "inline-block__before",
+ "relative__before",
+ "border-left-1__before",
+ "border-colour-3__before",
+ "margin-inline-1__before",
+ "vertical-align-middle__before",
+ "opacity-50__before",
+ "text-editor-toolbar-button-group__before",
+ "text-editor-toolbar-button-group__first-child__before",
+ ],
+ "text-editor-toolbar-button": [
+ "box-shadow-none__2",
+ "relative",
+ "font-inherit",
+ "border-box",
+ "text-align-centre",
+ "vertical-align-middle",
+ "text-editor-toolbar-button",
+ "before",
+ "block__before",
+ "absolute__before",
+ "text-align-centre__before",
+ "width-100__before",
+ "text-editor-toolbar-button__before",
+ "text-editor-toolbar-button__hover_focus-visible-has-focus-visible_active",
+ ],
+ "text-editor-toolbar-button--hidden": [
+ "hidden",
+ ],
+ "text-editor-toolbar-button--enabled": [
+ "after",
+ "block__after",
+ "absolute__after",
+ "border-radius-1__after",
+ "background-4__after",
+ "inset-block-1__after",
+ "z-index-bg__after",
+ "text-editor-toolbar-button--enabled__after",
+ ],
+ "text-editor-toolbar-button--has-popover": [
+ "before-after",
+ "border-radius-0",
+ "outline-none",
+ "translate-y-0__hover_focus-visible-has-focus-visible",
+ "z-index-fg__before",
+ "block__after",
+ "absolute__after",
+ "border-top-radius-1__after",
+ "backdrop-filter-none__after",
+ "translate-none__after",
+ "uninset-1__after",
+ "top-0__after",
+ "text-editor-toolbar-button--has-popover__after",
+ ],
+ "text-editor-toolbar-button--has-popover-visible": [
+ "after",
+ "text-editor-toolbar-button--has-popover-visible__after",
+ "untop-1__after",
+ "backdrop-blur__after",
+ "text-editor-toolbar-button--has-popover-visible__after_3",
+ ],
+ "text-editor-toolbar-button--has-popover--within-popover": [
+ "after",
+ "text-editor-toolbar-button--has-popover--within-popover__after",
+ ],
+ "text-editor-toolbar-strong": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-strong__before",
+ "border-top-left-radius-1",
+ ],
+ "text-editor-toolbar-em": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-em__before",
+ ],
+ "text-editor-toolbar-underline": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-underline__before",
+ ],
+ "text-editor-toolbar-strikethrough": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-strikethrough__before",
+ ],
+ "text-editor-toolbar-subscript": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-subscript__before",
+ ],
+ "text-editor-toolbar-superscript": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-superscript__before",
+ ],
+ "text-editor-toolbar-blockquote": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-blockquote__before",
+ ],
+ "text-editor-toolbar-bullet-list": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-bullet-list__before",
+ ],
+ "text-editor-toolbar-ordered-list": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-ordered-list__before",
+ ],
+ "text-editor-toolbar-lift": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-lift__before",
+ ],
+ "text-editor-toolbar-paragraph": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-paragraph__before",
+ ],
+ "text-editor-toolbar-heading": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-heading__before",
+ ],
+ "text-editor-toolbar-h1": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-h1__before",
+ ],
+ "text-editor-toolbar-h2": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-h2__before",
+ "text-editor-toolbar-h2__before_2",
+ ],
+ "text-editor-toolbar-h3": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-h3__before",
+ ],
+ "text-editor-toolbar-h4": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-h4__before",
+ ],
+ "text-editor-toolbar-h5": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-h5__before",
+ ],
+ "text-editor-toolbar-h6": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-h6__before",
+ ],
+ "text-editor-toolbar-code": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-code__before_text-editor-toolbar-code-block__before",
+ ],
+ "text-editor-toolbar-code-block": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-code__before_text-editor-toolbar-code-block__before",
+ ],
+ "text-editor-toolbar-link": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-link__before",
+ ],
+ "text-editor-toolbar-align-left": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-align-left__before",
+ ],
+ "text-editor-toolbar-align-right": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-align-right__before",
+ ],
+ "text-editor-toolbar-align-centre": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-align-centre__before",
+ ],
+ "text-editor-toolbar-align-justify": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-align-justify__before",
+ ],
+ "text-editor-toolbar-align-mixed": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-align-mixed__before_text-editor-toolbar-mixed__before",
+ ],
+ "text-editor-toolbar-mixed": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-align-mixed__before_text-editor-toolbar-mixed__before",
+ ],
+ "text-editor-toolbar-other-formatting": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-other-formatting__before",
+ ],
+ "text-editor-toolbar-hr": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "absolute__before",
+ "text-editor-toolbar-hr__before",
+ ],
+ "text-editor-toolbar-undo": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-undo__before",
+ ],
+ "text-editor-toolbar-redo": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-redo__before",
+ ],
+ "text-editor-toolbar-fullscreen": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-fullscreen__before",
+ ],
+ "text-editor-toolbar-unfullscreen": [
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "text-editor-toolbar-unfullscreen__before",
+ ],
+ "text-editor-toolbar-popover": [
+ "padding-1",
+ "flex-row",
+ "border-radius-1",
+ "border-top-radius-0",
+ "gap-0",
+ "text-editor-toolbar-popover",
+ ],
+ "text-editor-toolbar-popover--left": [
+ "unmargin-left-1",
+ ],
+ "text-editor-toolbar-popover--right": [
+ "unmargin-right-1",
+ ],
+ "text-editor-toolbar-popover-sub": [
+ ],
+ "text-editor-toolbar-popover-sub--left": [
+ "border-top-right-radius-1",
+ ],
+ "text-editor-toolbar-popover-sub--right": [
+ "border-top-left-radius-1",
+ ],
+ "text-editor-toolbar-popover-sub--centre": [
+ "text-editor-toolbar-popover-sub--centre",
+ ],
+ "text-editor-document-slot--fullscreen": [
+ "block",
+ "overflow-auto",
+ "scrollbar-auto",
+ ],
+ "text-editor-document": [
+ "block",
+ "no-outline",
+ "overflow-auto-x",
+ "padding-2-3",
+ "scrollbar-none",
+ "relative",
+ "white-space-pre-wrap",
+ "after",
+ "hidden__after",
+ ],
+ "text-editor-document--fullscreen": [
+ "before-after",
+ "overflow-visible",
+ "text-editor-document--fullscreen",
+ "block__before",
+ "absolute__before",
+ "height-100__before",
+ "z-index-fg__before",
+ "pointer-events-none__before",
+ "text-editor-document--fullscreen__before",
+ "block__after",
+ "width-100__after",
+ "text-editor-document--fullscreen__after",
+ ],
+ "text-editor-document-scrollbar-proxy": [
+ "block",
+ "sticky",
+ "bottom-0",
+ "overflow-auto-x",
+ "border-bottom-radius-1",
+ "text-editor-document-scrollbar-proxy",
+ "before",
+ "block__before",
+ "text-editor-document-scrollbar-proxy__before",
+ "text-editor-document-scrollbar-proxy__hover",
+ ],
+ "text-editor-document-scrollbar-proxy--fullscreen": [
+ "hidden",
+ ],
+ "text-editor-document-scrollbar-proxy--visible": [
+ "backdrop-blur",
+ ],
+ "text-editor--required": [
+ ],
+ "text-editor--fullscreen": [
+ "absolute",
+ "inset-0",
+ "outline-none",
+ "borderless__3",
+ "background-none__5",
+ "z-index-fg",
+ "text-editor--fullscreen",
+ "before",
+ "absolute__before",
+ "inset-0__before",
+ "background-2__before",
+ "z-index-bg__before",
+ ],
+ "ProseMirror-gapcursor": [
+ "ProseMirror-gapcursor",
+ ],
+ "ProseMirror-hideselection": [
+ "ProseMirror-hideselection",
+ ],
+ "ProseMirror-selectednode": [
+ "ProseMirror-selectednode",
+ ],
+ "form": [
+ ],
+ "form-content": [
+ ],
+ "form-footer": [
+ ],
+ "paginator": [
+ "relative",
+ "width-100",
+ "padding-bottom-0",
+ "paginator",
+ ],
+ "paginator--flush": [
+ ],
+ "paginator-header": [
+ "sticky",
+ "margin-bottom-0",
+ "z-index-fg",
+ "paginator-header",
+ "before",
+ "absolute__before",
+ "backdrop-blur__before",
+ "z-index-bg__before",
+ "bottom-0__before",
+ "border-top-radius-2__before",
+ "paginator-header__before",
+ ],
+ "paginator-header--flush": [
+ "border-radius-2",
+ "inset-border-1",
+ "margin-bottom-4__2",
+ "block-border-shadow",
+ "paginator-header--flush",
+ "background-dark-3-a80",
+ "before",
+ "paginator-header--flush__before",
+ "border-radius-2__before",
+ ],
+ "paginator-footer": [
+ "sticky",
+ "padding-block-1",
+ "padding-inline-3",
+ "margin-block-0",
+ "paginator-footer",
+ "before",
+ "absolute__before",
+ "backdrop-blur__before",
+ "z-index-bg__before",
+ "top-0__before",
+ "border-bottom-radius-2__before",
+ "paginator-footer__before",
+ ],
+ "paginator-footer-left": [
+ "gap-0",
+ ],
+ "paginator-footer-right": [
+ "gap-0",
+ ],
+ "paginator-footer--flush": [
+ "relative__2",
+ "margin-top-2__2",
+ "background-none__3",
+ "border-none",
+ "before",
+ "hidden__before",
+ ],
+ "paginator-footer--hidden": [
+ "hidden",
+ ],
+ "paginator-button": [
+ "paginator-button",
+ ],
+ "paginator-button--disabled": [
+ "opacity-30",
+ "no-pointer-events",
+ ],
+ "paginator-button--hidden": [
+ "hidden",
+ ],
+ "paginator-button-first": [
+ "background-none__3",
+ "box-shadow-none__2",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "paginator-button-first__before",
+ ],
+ "paginator-button-prev": [
+ "background-none__3",
+ "box-shadow-none__2",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "paginator-button-prev__before",
+ ],
+ "paginator-button-next": [
+ "background-none__3",
+ "box-shadow-none__2",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "paginator-button-next__before",
+ ],
+ "paginator-button-last": [
+ "background-none__3",
+ "box-shadow-none__2",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "paginator-button-last__before",
+ ],
+ "paginator-content": [
+ "unmargin-4",
+ "padding-top-4",
+ "margin-bottom-0",
+ "grid",
+ "stack",
+ ],
+ "paginator-content--or-else": [
+ "margin-0__3",
+ "padding-block-3__2",
+ ],
+ "paginator-page": [
+ "flex",
+ "flex-column",
+ "paginator-page",
+ "transition-discrete__3",
+ "opaque",
+ "stack-self",
+ "translate-x-0",
+ "paginator-page_3",
+ "transparent__start",
+ "paginator-page__start",
+ ],
+ "paginator-page--initial-load": [
+ "no-transition",
+ ],
+ "paginator-page--flush": [
+ "gap-3",
+ ],
+ "paginator-page--hidden": [
+ "hidden",
+ "transparent__2",
+ "paginator-page--hidden",
+ ],
+ "paginator-page--bounce": [
+ "flex__2",
+ "opaque__2",
+ ],
+ "paginator-error": [
+ ],
+ "paginator-error-text": [
+ ],
+ "paginator-error-retry-button": [
+ ],
+ "toast-list": [
+ "no-pointer-events",
+ "fixed",
+ "right-5",
+ "bottom-4",
+ "flex",
+ "flex-column",
+ "justify-content-end",
+ "align-items-end",
+ "gap-3",
+ "toast-list",
+ ],
+ "toast": [
+ "absolute",
+ "bottom-0",
+ "right-0",
+ "flex",
+ "flex-column",
+ "gap-1",
+ "padding-3-4",
+ "border-1",
+ "box-shadow-1",
+ "border-radius-2",
+ "colour-0",
+ "width-fit",
+ "align-self-end",
+ "pointer-events",
+ "toast",
+ ],
+ "toast--measuring": [
+ "no-pointer-events",
+ "transparent",
+ "fixed",
+ "bottom-0",
+ "right-0",
+ ],
+ "toast-wrapper": [
+ "relative",
+ "block",
+ "height-0",
+ "width-100",
+ "toast-wrapper",
+ ],
+ "toast--hide": [
+ "toast--hide",
+ ],
+ "toast-title": [
+ "weight-bold",
+ ],
+ "toast-content": [
+ "font-1",
+ "margin-bottom-1",
+ ],
+ "toast-error-type": [
+ "weight-bold",
+ ],
+ "toast-type-info": [
+ ],
+ "toast-type-success": [
+ "toast-type-success",
+ ],
+ "toast-type-warning": [
+ "toast-type-warning",
+ ],
+ "vanity-input": [
+ "grid",
+ "stack",
+ ],
+ "vanity-input-input": [
+ "stack-self",
+ "padding-left-4",
+ ],
+ "vanity-input-prefix": [
+ "stack-self",
+ "width-4",
+ "grid",
+ "align-content-centre",
+ "justify-content-end",
+ "padding-right-1",
+ "relative",
+ "margin-block-1",
+ "border-box",
+ "no-pointer-events",
+ "opacity-50",
+ "vanity-input-prefix",
+ ],
+ "flag": [
+ "size-em",
+ "flag",
+ ],
+ "flag-stripe": [
+ "flag-stripe",
+ "absolute",
+ "top-0",
+ "left-0",
+ "height-100",
+ "flag-stripe_3",
+ ],
+ "flag-stripe-blue": [
+ "flag-stripe-blue",
+ ],
+ "flag-stripe-pink": [
+ "flag-stripe-pink",
+ ],
+ "flag-stripe-white": [
+ "flag-stripe-white",
+ ],
+ "flag-stripe-1": [
+ "flag-stripe-1",
+ "flag-stripe-1_2",
+ ],
+ "flag-stripe-2": [
+ "flag-stripe-2",
+ "flag-stripe-2_2",
+ ],
+ "flag-stripe-3": [
+ "flag-stripe-3",
+ "flag-stripe-3_2",
+ ],
+ "flag-stripe-4": [
+ "flag-stripe-4",
+ "flag-stripe-4_2",
+ ],
+ "flag-stripe-5": [
+ "flag-stripe-5",
+ "flag-stripe-5_2",
+ ],
+ "flag-stripe--animate": [
+ "flag-stripe--animate",
+ ],
+ "flag-stripe--animate-end-0": [
+ "flag-stripe--animate-end-0",
+ ],
+ "flag-stripe--animate-end-1": [
+ "flag-stripe--animate-end-1",
+ ],
+ "flag--focused": [
+ "flag--focused",
+ ],
+ "flag--active": [
+ "flag--active",
+ ],
+ "masthead": [
+ "background-dark-a30",
+ "grid",
+ "align-content-centre",
+ "font-4",
+ "padding-1-0",
+ "border-box",
+ "backdrop-blur",
+ "masthead",
+ "masthead_3",
+ "masthead_2",
+ ],
+ "masthead-skip-nav": [
+ "no-pointer-events",
+ "transparent",
+ "masthead-skip-nav",
+ "z-index-fg",
+ "masthead-skip-nav_3",
+ "opaque__hover_focus-visible-has-focus-visible",
+ "pointer-events__hover_focus-visible-has-focus-visible",
+ ],
+ "masthead-left": [
+ "flex",
+ "padding-left-2",
+ "margin-left-2",
+ "masthead-left",
+ ],
+ "masthead-left-hamburger": [
+ "background-none__3",
+ "box-shadow-none__2",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "masthead-left-hamburger__before",
+ ],
+ "masthead-left-hamburger-sidebar": [
+ "masthead-left-hamburger-sidebar",
+ ],
+ "masthead-left-hamburger-popover": [
+ "hidden",
+ "masthead-left-hamburger-popover",
+ ],
+ "masthead-home": [
+ "font-4__2",
+ "size-fit",
+ "flex__2",
+ "gap-2",
+ "padding-2-3",
+ "background-none__5",
+ "box-shadow-none__2",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "masthead-home__before-after",
+ ],
+ "masthead-home-logo": [
+ ],
+ "masthead-home-logo-wordmark": [
+ "no-pointer-events",
+ "height-em",
+ ],
+ "masthead-search": [
+ "masthead-search",
+ ],
+ "masthead-user": [
+ "flex",
+ "align-content-centre",
+ "padding-right-2",
+ "margin-right-2",
+ "justify-content-end",
+ "masthead-user",
+ ],
+ "masthead-user-notifications": [
+ "background-none__3",
+ "box-shadow-none__2",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "masthead-user-notifications__before",
+ ],
+ "masthead-user-profile": [
+ "background-none__3",
+ "box-shadow-none__2",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "masthead-user-profile__before",
+ ],
+ "sidebar": [
+ "padding-4",
+ "margin-right-4",
+ "relative",
+ "height-100",
+ "border-box",
+ "transparent",
+ "translate",
+ "sidebar",
+ "after",
+ "block__after",
+ "absolute__after",
+ "left-100__after",
+ "top-5__after",
+ "bottom-5__after",
+ "border-left-1__after",
+ "border-color-4__after",
+ "box-shadow-right-inset-1__after",
+ "width-1__after",
+ "gradient-mask__after",
+ "sidebar__after",
+ "sidebar__focus-visible-has-focus-visible",
+ "opaque__focus-visible-has-focus-visible",
+ "sidebar_3",
+ "sidebar_2",
+ ],
+ "sidebar--visible": [
+ "sidebar--visible",
+ "opaque",
+ ],
+ "sidebar--visible-due-to-keyboard-navigation": [
+ "sidebar--visible-due-to-keyboard-navigation",
+ "opaque",
+ ],
+ "author": [
+ ],
+ "author-name": [
+ ],
+ "author-vanity": [
+ ],
+ "author-pronouns": [
+ ],
+ "author-description": [
+ ],
+ "author-support-link": [
+ "block",
+ "margin-top-4",
+ ],
+ "work": [
+ ],
+ "work-header": [
+ "grid",
+ "margin-bottom-0",
+ "padding-bottom-0",
+ "work-header",
+ ],
+ "work-name": [
+ ],
+ "work-author": [
+ ],
+ "work-author-list": [
+ "work-author-list",
+ ],
+ "work-author-list--flush": [
+ "margin-bottom-0",
+ ],
+ "work-tags": [
+ "flex",
+ "flex-wrap",
+ "gap-2",
+ "span-2",
+ "row-3",
+ "padding-top-3",
+ ],
+ "work-tags--flush": [
+ "padding-0__2",
+ "padding-top-2",
+ "padding-bottom-2",
+ ],
+ "work-description": [
+ "block",
+ "italic",
+ "padding-top-3",
+ "font-2",
+ ],
+ "work-content": [
+ "block",
+ ],
+ "work-synopsis": [
+ "padding-top-3",
+ ],
+ "work-timestamp": [
+ ],
+ "work--link": [
+ "decoration-none",
+ "colour-inherit",
+ "weight-inherit",
+ "overflow-hidden",
+ "work--link",
+ "background-4__hover_focus-visible-has-focus-visible",
+ "work--link__hover_focus-visible-has-focus-visible",
+ "border-bottom-radius-2__last-child",
+ ],
+ "tag": [
+ "font-1",
+ "flex__2",
+ "flex-column",
+ "no-decoration",
+ "padding-1-2",
+ "border-1",
+ "box-shadow-none__2",
+ "tag",
+ "colour-0__hover",
+ "tag__hover",
+ ],
+ "tag-category": [
+ "font-0",
+ "uppercase",
+ "opacity-70",
+ "tag-category",
+ ],
+ "tag-name": [
+ "unmargin-top-1",
+ ],
+ "tag--custom": [
+ ],
+ "chapter": [
+ "grid",
+ "columns-subgrid",
+ "padding-1-4",
+ "span-4",
+ "gap-3",
+ "cursor-pointer",
+ "decoration-none",
+ "colour-inherit",
+ "weight-inherit",
+ "chapter",
+ "background-4__hover_focus-visible-has-focus-visible",
+ "chapter__hover_focus-visible-has-focus-visible",
+ "border-bottom-radius-2__last-child",
+ ],
+ "chapter-list": [
+ "grid__2",
+ "chapter-list",
+ ],
+ "chapter-number": [
+ "colour-6",
+ "width-fit",
+ "justify-self-end",
+ ],
+ "chapter-name": [
+ ],
+ "chapter-right": [
+ "block",
+ "text-align-right",
+ ],
+ "chapter-timestamp": [
+ "font-2",
+ "align-self-centre",
+ "justify-self-end",
+ ],
+ "chapter-actions-menu-button": [
+ "unmargin-block-1",
+ "unmargin-right-3",
+ "margin-left-0",
+ "padding-block-2",
+ "chapter-actions-menu-button",
+ ],
+ "chapter-actions-menu-button--not-focused": [
+ "transparent",
+ "unmargin-left-3",
+ "unmargin-right-4",
+ "chapter-actions-menu-button--not-focused",
+ ],
+ "oauth-service": [
+ "relative",
+ "flex__2",
+ "gap-3",
+ "align-items-centre",
+ "oauth-service",
+ "height-lh",
+ "oauth-service_3",
+ "oauth-service__hover_focus-visible-has-focus-visible",
+ "oauth-service__active",
+ ],
+ "oauth-service-container": [
+ "block",
+ ],
+ "oauth-service-container--reauth-list": [
+ "padding-0__2",
+ ],
+ "oauth-service-list": [
+ "flex",
+ "flex-column",
+ "gap-3",
+ ],
+ "oauth-service-icon": [
+ "size-constrain-em",
+ ],
+ "oauth-service-name": [
+ "font-vertical-align",
+ "flex-grow",
+ ],
+ "oauth-service-state": [
+ "before-after",
+ "block",
+ "absolute",
+ "inset-0",
+ "rotate-45",
+ "block__before-after",
+ "absolute__before-after",
+ "size-1__before-after",
+ "opacity-0__before-after",
+ "background-currentcolour__before-after",
+ "oauth-service-state__before-after",
+ "height-100__before__2",
+ "top-0__before__2",
+ "width-50__after",
+ "left-0__after",
+ "oauth-service-state__after",
+ ],
+ "oauth-service-state-wrapper": [
+ "relative",
+ "block",
+ "size-100",
+ "oauth-service-state-wrapper",
+ ],
+ "oauth-service-state-wrapper--focus": [
+ "translate-left-1",
+ ],
+ "oauth-service-state--authenticated": [
+ "opacity-1__before-after",
+ ],
+ "oauth-service-state--focus": [
+ "after__2",
+ "width-100__after__2",
+ "oauth-service-state--focus__after",
+ ],
+ "oauth-service-username": [
+ "transparent",
+ ],
+ "oauth-service-username--has-username": [
+ "opacity-70",
+ ],
+ "oauth-service--authenticated": [
+ ],
+ "view": [
+ "flex",
+ "flex-column",
+ "align-items-centre",
+ "gap-4",
+ "padding-4-0",
+ ],
+ "view-container": [
+ ],
+ "view-container-ephemeral": [
+ "flex-column",
+ "right-0",
+ "border-left-radius-2",
+ "scheme-light-dark",
+ "backdrop-blur",
+ "view-container-ephemeral",
+ ],
+ "view-container-ephemeral--open": [
+ "flex",
+ ],
+ "view-container-ephemeral-close": [
+ "align-self-end",
+ "background-none",
+ "box-shadow-none",
+ "padding-2-3",
+ "font-4",
+ "font-font-awesome",
+ "content-box",
+ "size-em",
+ "box-shadow-none__hover_focus-visible-has-focus-visible",
+ "before",
+ "view-container-ephemeral-close__before",
+ ],
+ "view--hidden": [
+ ],
+ "view-type-error": [
+ ],
+ "view-type-debug": [
+ "flex",
+ "flex-column",
+ "gap-4",
+ "padding-4",
+ ],
+ "debug-block": [
+ "flex",
+ "gap-3",
+ ],
+ "view-type-account": [
+ ],
+ "account-view-form-create": [
+ ],
+ "view-type-home": [
+ ],
+ "view-type-author": [
+ ],
+ "view-type-work": [
+ ],
+ "view-type-work-edit": [
+ ],
+ "view-type-require-login": [
+ ],
+ "view-type-tag": [
+ ],
+ "view-type-chapter": [
+ ],
+ "view-type-chapter-work": [
+ ],
+ "view-type-chapter-block": [
+ ],
+ "view-type-chapter-block-body": [
+ "padding-inline-4",
+ "padding-top-3",
+ "padding-bottom-4",
+ ],
+ "view-type-chapter-edit": [
+ ],
+ "view-type-feed": [
+ ],
+ "app": [
+ "fixed",
+ "height-100",
+ "width-100",
+ "grid",
+ "app_2",
+ "app",
+ ],
+ "app-content": [
+ "grid",
+ "columns-subgrid",
+ "overflow-auto-y",
+ "gutter-stable",
+ "app-content_2",
+ "app-content",
+ ],
+ "app-content-related": [
+ "app-content-related_2",
+ "app-content-related",
+ ],
+ };
+})
+
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9mbHVmZjQubWUvZmx1ZmY0Lm1lL2RvY3Mvc3R5bGUvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6W119
\ No newline at end of file