diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index c912f561c61b..e118e4c62d92 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,8 +1,3 @@ -# Autodoc -/src/Autodoc.zig @kristoff-it -/src/autodoc/* @kristoff-it -/lib/docs/* @kristoff-it - # std.json /lib/std/json* @thejoshwolfe diff --git a/.github/ISSUE_TEMPLATE/autodoc-issue.md b/.github/ISSUE_TEMPLATE/autodoc-issue.md deleted file mode 100644 index bdf4e784b849..000000000000 --- a/.github/ISSUE_TEMPLATE/autodoc-issue.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Autodoc Issue -about: Issues with automatically generated docs, including stdlib docs. -title: 'Autodoc: {your issue}' -labels: autodoc -assignees: kristoff-it - ---- - -Autodoc is still work in progress and as such many bugs and missing features are already known. - -# Please report only regressions, i.e. things that worked in a previous build of new Autodoc (orange banner) that now don't work any more. diff --git a/CMakeLists.txt b/CMakeLists.txt index 63d331f51d75..38446705fcfd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -907,8 +907,6 @@ else() endif() # -Dno-langref is currently hardcoded because building the langref takes too damn long -# -Dno-autodocs is currently hardcoded because the C backend generates a miscompilation -# that prevents it from working. # To obtain these two forms of documentation, run zig build against stage3 rather than stage2. set(ZIG_BUILD_ARGS --zig-lib-dir "${CMAKE_SOURCE_DIR}/lib" @@ -918,7 +916,6 @@ set(ZIG_BUILD_ARGS ${ZIG_STATIC_ARG} ${ZIG_NO_LIB_ARG} "-Dno-langref" - "-Dno-autodocs" ${ZIG_SINGLE_THREADED_ARG} ${ZIG_PIE_ARG} "-Dtarget=${ZIG_TARGET_TRIPLE}" diff --git a/build.zig b/build.zig index bacedfbcd188..1380ff7c367d 100644 --- a/build.zig +++ b/build.zig @@ -31,7 +31,7 @@ pub fn build(b: *std.Build) !void { const test_step = b.step("test", "Run all the tests"); const skip_install_lib_files = b.option(bool, "no-lib", "skip copying of lib/ files and langref to installation prefix. Useful for development") orelse false; const skip_install_langref = b.option(bool, "no-langref", "skip copying of langref to the installation prefix") orelse skip_install_lib_files; - const skip_install_autodocs = b.option(bool, "no-autodocs", "skip copying of standard library autodocs to the installation prefix") orelse skip_install_lib_files; + const std_docs = b.option(bool, "std-docs", "include standard library autodocs") orelse false; const no_bin = b.option(bool, "no-bin", "skip emitting compiler binary") orelse false; const docgen_exe = b.addExecutable(.{ @@ -55,17 +55,19 @@ pub fn build(b: *std.Build) !void { b.getInstallStep().dependOn(&install_langref.step); } - const autodoc_test = b.addTest(.{ + const autodoc_test = b.addObject(.{ + .name = "std", .root_source_file = .{ .path = "lib/std/std.zig" }, .target = target, .zig_lib_dir = .{ .path = "lib" }, + .optimize = .Debug, }); const install_std_docs = b.addInstallDirectory(.{ .source_dir = autodoc_test.getEmittedDocs(), .install_dir = .prefix, .install_subdir = "doc/std", }); - if (!skip_install_autodocs) { + if (std_docs) { b.getInstallStep().dependOn(&install_std_docs.step); } diff --git a/lib/compiler/std-docs.zig b/lib/compiler/std-docs.zig new file mode 100644 index 000000000000..93a04a28e511 --- /dev/null +++ b/lib/compiler/std-docs.zig @@ -0,0 +1,384 @@ +const builtin = @import("builtin"); +const std = @import("std"); +const Allocator = std.mem.Allocator; +const assert = std.debug.assert; + +pub fn main() !void { + var arena_instance = std.heap.ArenaAllocator.init(std.heap.page_allocator); + defer arena_instance.deinit(); + const arena = arena_instance.allocator(); + + var general_purpose_allocator: std.heap.GeneralPurposeAllocator(.{}) = .{}; + const gpa = general_purpose_allocator.allocator(); + + const args = try std.process.argsAlloc(arena); + const zig_lib_directory = args[1]; + const zig_exe_path = args[2]; + const global_cache_path = args[3]; + + var lib_dir = try std.fs.cwd().openDir(zig_lib_directory, .{}); + defer lib_dir.close(); + + const listen_port: u16 = 0; + const address = std.net.Address.parseIp("127.0.0.1", listen_port) catch unreachable; + var http_server = try address.listen(.{}); + const port = http_server.listen_address.in.getPort(); + const url = try std.fmt.allocPrint(arena, "http://127.0.0.1:{d}/\n", .{port}); + std.io.getStdOut().writeAll(url) catch {}; + openBrowserTab(gpa, url[0 .. url.len - 1 :'\n']) catch |err| { + std.log.err("unable to open browser: {s}", .{@errorName(err)}); + }; + + var context: Context = .{ + .gpa = gpa, + .zig_exe_path = zig_exe_path, + .global_cache_path = global_cache_path, + .lib_dir = lib_dir, + .zig_lib_directory = zig_lib_directory, + }; + + while (true) { + const connection = try http_server.accept(); + _ = std.Thread.spawn(.{}, accept, .{ &context, connection }) catch |err| { + std.log.err("unable to accept connection: {s}", .{@errorName(err)}); + connection.stream.close(); + continue; + }; + } +} + +fn accept(context: *Context, connection: std.net.Server.Connection) void { + defer connection.stream.close(); + + var read_buffer: [8000]u8 = undefined; + var server = std.http.Server.init(connection, &read_buffer); + while (server.state == .ready) { + var request = server.receiveHead() catch |err| switch (err) { + error.HttpConnectionClosing => return, + else => { + std.log.err("closing http connection: {s}", .{@errorName(err)}); + return; + }, + }; + serveRequest(&request, context) catch |err| { + std.log.err("unable to serve {s}: {s}", .{ request.head.target, @errorName(err) }); + return; + }; + } +} + +const Context = struct { + gpa: Allocator, + lib_dir: std.fs.Dir, + zig_lib_directory: []const u8, + zig_exe_path: []const u8, + global_cache_path: []const u8, +}; + +fn serveRequest(request: *std.http.Server.Request, context: *Context) !void { + if (std.mem.eql(u8, request.head.target, "/") or + std.mem.eql(u8, request.head.target, "/debug/")) + { + try serveDocsFile(request, context, "docs/index.html", "text/html"); + } else if (std.mem.eql(u8, request.head.target, "/main.js") or + std.mem.eql(u8, request.head.target, "/debug/main.js")) + { + try serveDocsFile(request, context, "docs/main.js", "application/javascript"); + } else if (std.mem.eql(u8, request.head.target, "/main.wasm")) { + try serveWasm(request, context, .ReleaseFast); + } else if (std.mem.eql(u8, request.head.target, "/debug/main.wasm")) { + try serveWasm(request, context, .Debug); + } else if (std.mem.eql(u8, request.head.target, "/sources.tar") or + std.mem.eql(u8, request.head.target, "/debug/sources.tar")) + { + try serveSourcesTar(request, context); + } else { + try request.respond("not found", .{ + .status = .not_found, + .extra_headers = &.{ + .{ .name = "content-type", .value = "text/plain" }, + }, + }); + } +} + +const cache_control_header: std.http.Header = .{ + .name = "cache-control", + .value = "max-age=0, must-revalidate", +}; + +fn serveDocsFile( + request: *std.http.Server.Request, + context: *Context, + name: []const u8, + content_type: []const u8, +) !void { + const gpa = context.gpa; + // The desired API is actually sendfile, which will require enhancing std.http.Server. + // We load the file with every request so that the user can make changes to the file + // and refresh the HTML page without restarting this server. + const file_contents = try context.lib_dir.readFileAlloc(gpa, name, 10 * 1024 * 1024); + defer gpa.free(file_contents); + try request.respond(file_contents, .{ + .extra_headers = &.{ + .{ .name = "content-type", .value = content_type }, + cache_control_header, + }, + }); +} + +fn serveSourcesTar(request: *std.http.Server.Request, context: *Context) !void { + const gpa = context.gpa; + + var send_buffer: [0x4000]u8 = undefined; + var response = request.respondStreaming(.{ + .send_buffer = &send_buffer, + .respond_options = .{ + .extra_headers = &.{ + .{ .name = "content-type", .value = "application/x-tar" }, + cache_control_header, + }, + }, + }); + const w = response.writer(); + + var std_dir = try context.lib_dir.openDir("std", .{ .iterate = true }); + defer std_dir.close(); + + var walker = try std_dir.walk(gpa); + defer walker.deinit(); + + while (try walker.next()) |entry| { + switch (entry.kind) { + .file => { + if (!std.mem.endsWith(u8, entry.basename, ".zig")) + continue; + if (std.mem.endsWith(u8, entry.basename, "test.zig")) + continue; + }, + else => continue, + } + + var file = try std_dir.openFile(entry.path, .{}); + defer file.close(); + + const stat = try file.stat(); + const padding = p: { + const remainder = stat.size % 512; + break :p if (remainder > 0) 512 - remainder else 0; + }; + + var file_header = std.tar.output.Header.init(); + file_header.typeflag = .regular; + try file_header.setPath("std", entry.path); + try file_header.setSize(stat.size); + try file_header.updateChecksum(); + try w.writeAll(std.mem.asBytes(&file_header)); + try w.writeFile(file); + try w.writeByteNTimes(0, padding); + } + // intentionally omitting the pointless trailer + //try w.writeByteNTimes(0, 512 * 2); + try response.end(); +} + +fn serveWasm( + request: *std.http.Server.Request, + context: *Context, + optimize_mode: std.builtin.OptimizeMode, +) !void { + const gpa = context.gpa; + + var arena_instance = std.heap.ArenaAllocator.init(gpa); + defer arena_instance.deinit(); + const arena = arena_instance.allocator(); + + // Do the compilation every request, so that the user can edit the files + // and see the changes without restarting the server. + const wasm_binary_path = try buildWasmBinary(arena, context, optimize_mode); + // std.http.Server does not have a sendfile API yet. + const file_contents = try std.fs.cwd().readFileAlloc(gpa, wasm_binary_path, 10 * 1024 * 1024); + defer gpa.free(file_contents); + try request.respond(file_contents, .{ + .extra_headers = &.{ + .{ .name = "content-type", .value = "application/wasm" }, + cache_control_header, + }, + }); +} + +fn buildWasmBinary( + arena: Allocator, + context: *Context, + optimize_mode: std.builtin.OptimizeMode, +) ![]const u8 { + const gpa = context.gpa; + + const main_src_path = try std.fs.path.join(arena, &.{ + context.zig_lib_directory, "docs", "wasm", "main.zig", + }); + + var argv: std.ArrayListUnmanaged([]const u8) = .{}; + + try argv.appendSlice(arena, &.{ + context.zig_exe_path, + "build-exe", + "-fno-entry", + "-O", + @tagName(optimize_mode), + "-target", + "wasm32-freestanding", + "-mcpu", + "baseline+atomics+bulk_memory+multivalue+mutable_globals+nontrapping_fptoint+reference_types+sign_ext", + "--cache-dir", + context.global_cache_path, + "--global-cache-dir", + context.global_cache_path, + "--name", + "autodoc", + "-rdynamic", + main_src_path, + "--listen=-", + }); + + var child = std.ChildProcess.init(argv.items, gpa); + child.stdin_behavior = .Pipe; + child.stdout_behavior = .Pipe; + child.stderr_behavior = .Pipe; + try child.spawn(); + + var poller = std.io.poll(gpa, enum { stdout, stderr }, .{ + .stdout = child.stdout.?, + .stderr = child.stderr.?, + }); + defer poller.deinit(); + + try sendMessage(child.stdin.?, .update); + try sendMessage(child.stdin.?, .exit); + + const Header = std.zig.Server.Message.Header; + var result: ?[]const u8 = null; + var result_error_bundle = std.zig.ErrorBundle.empty; + + const stdout = poller.fifo(.stdout); + + poll: while (true) { + while (stdout.readableLength() < @sizeOf(Header)) { + if (!(try poller.poll())) break :poll; + } + const header = stdout.reader().readStruct(Header) catch unreachable; + while (stdout.readableLength() < header.bytes_len) { + if (!(try poller.poll())) break :poll; + } + const body = stdout.readableSliceOfLen(header.bytes_len); + + switch (header.tag) { + .zig_version => { + if (!std.mem.eql(u8, builtin.zig_version_string, body)) { + return error.ZigProtocolVersionMismatch; + } + }, + .error_bundle => { + const EbHdr = std.zig.Server.Message.ErrorBundle; + const eb_hdr = @as(*align(1) const EbHdr, @ptrCast(body)); + const extra_bytes = + body[@sizeOf(EbHdr)..][0 .. @sizeOf(u32) * eb_hdr.extra_len]; + const string_bytes = + body[@sizeOf(EbHdr) + extra_bytes.len ..][0..eb_hdr.string_bytes_len]; + // TODO: use @ptrCast when the compiler supports it + const unaligned_extra = std.mem.bytesAsSlice(u32, extra_bytes); + const extra_array = try arena.alloc(u32, unaligned_extra.len); + @memcpy(extra_array, unaligned_extra); + result_error_bundle = .{ + .string_bytes = try arena.dupe(u8, string_bytes), + .extra = extra_array, + }; + }, + .emit_bin_path => { + const EbpHdr = std.zig.Server.Message.EmitBinPath; + const ebp_hdr = @as(*align(1) const EbpHdr, @ptrCast(body)); + if (!ebp_hdr.flags.cache_hit) { + std.log.info("source changes detected; rebuilt wasm component", .{}); + } + result = try arena.dupe(u8, body[@sizeOf(EbpHdr)..]); + }, + else => {}, // ignore other messages + } + + stdout.discard(body.len); + } + + const stderr = poller.fifo(.stderr); + if (stderr.readableLength() > 0) { + const owned_stderr = try stderr.toOwnedSlice(); + defer gpa.free(owned_stderr); + std.debug.print("{s}", .{owned_stderr}); + } + + // Send EOF to stdin. + child.stdin.?.close(); + child.stdin = null; + + switch (try child.wait()) { + .Exited => |code| { + if (code != 0) { + std.log.err( + "the following command exited with error code {d}:\n{s}", + .{ code, try std.Build.Step.allocPrintCmd(arena, null, argv.items) }, + ); + return error.WasmCompilationFailed; + } + }, + .Signal, .Stopped, .Unknown => { + std.log.err( + "the following command terminated unexpectedly:\n{s}", + .{try std.Build.Step.allocPrintCmd(arena, null, argv.items)}, + ); + return error.WasmCompilationFailed; + }, + } + + if (result_error_bundle.errorMessageCount() > 0) { + const color = std.zig.Color.auto; + result_error_bundle.renderToStdErr(color.renderOptions()); + std.log.err("the following command failed with {d} compilation errors:\n{s}", .{ + result_error_bundle.errorMessageCount(), + try std.Build.Step.allocPrintCmd(arena, null, argv.items), + }); + return error.WasmCompilationFailed; + } + + return result orelse { + std.log.err("child process failed to report result\n{s}", .{ + try std.Build.Step.allocPrintCmd(arena, null, argv.items), + }); + return error.WasmCompilationFailed; + }; +} + +fn sendMessage(file: std.fs.File, tag: std.zig.Client.Message.Tag) !void { + const header: std.zig.Client.Message.Header = .{ + .tag = tag, + .bytes_len = 0, + }; + try file.writeAll(std.mem.asBytes(&header)); +} + +fn openBrowserTab(gpa: Allocator, url: []const u8) !void { + // Until https://github.com/ziglang/zig/issues/19205 is implemented, we + // spawn a thread for this child process. + _ = try std.Thread.spawn(.{}, openBrowserTabThread, .{ gpa, url }); +} + +fn openBrowserTabThread(gpa: Allocator, url: []const u8) !void { + const main_exe = switch (builtin.os.tag) { + .windows => "explorer", + else => "xdg-open", + }; + var child = std.ChildProcess.init(&.{ main_exe, url }, gpa); + child.stdin_behavior = .Ignore; + child.stdout_behavior = .Ignore; + child.stderr_behavior = .Ignore; + try child.spawn(); + _ = try child.wait(); +} diff --git a/lib/docs/commonmark.js b/lib/docs/commonmark.js deleted file mode 100644 index 8a3762ea801c..000000000000 --- a/lib/docs/commonmark.js +++ /dev/null @@ -1,10270 +0,0 @@ -/* commonmark 0.30.0 https://github.com/commonmark/commonmark.js @license BSD3 */ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : - typeof define === 'function' && define.amd ? define(['exports'], factory) : - (global = global || self, factory(global.commonmark = {})); -}(this, (function (exports) { 'use strict'; - - function isContainer(node) { - switch (node._type) { - case "document": - case "block_quote": - case "list": - case "item": - case "paragraph": - case "heading": - case "emph": - case "strong": - case "link": - case "image": - case "custom_inline": - case "custom_block": - return true; - default: - return false; - } - } - - var resumeAt = function(node, entering) { - this.current = node; - this.entering = entering === true; - }; - - var next = function() { - var cur = this.current; - var entering = this.entering; - - if (cur === null) { - return null; - } - - var container = isContainer(cur); - - if (entering && container) { - if (cur._firstChild) { - this.current = cur._firstChild; - this.entering = true; - } else { - // stay on node but exit - this.entering = false; - } - } else if (cur === this.root) { - this.current = null; - } else if (cur._next === null) { - this.current = cur._parent; - this.entering = false; - } else { - this.current = cur._next; - this.entering = true; - } - - return { entering: entering, node: cur }; - }; - - var NodeWalker = function(root) { - return { - current: root, - root: root, - entering: true, - next: next, - resumeAt: resumeAt - }; - }; - - var Node = function(nodeType, sourcepos) { - this._type = nodeType; - this._parent = null; - this._firstChild = null; - this._lastChild = null; - this._prev = null; - this._next = null; - this._sourcepos = sourcepos; - this._lastLineBlank = false; - this._lastLineChecked = false; - this._open = true; - this._string_content = null; - this._literal = null; - this._listData = {}; - this._info = null; - this._destination = null; - this._title = null; - this._isFenced = false; - this._fenceChar = null; - this._fenceLength = 0; - this._fenceOffset = null; - this._level = null; - this._onEnter = null; - this._onExit = null; - }; - - var proto = Node.prototype; - - Object.defineProperty(proto, "isContainer", { - get: function() { - return isContainer(this); - } - }); - - Object.defineProperty(proto, "type", { - get: function() { - return this._type; - } - }); - - Object.defineProperty(proto, "firstChild", { - get: function() { - return this._firstChild; - } - }); - - Object.defineProperty(proto, "lastChild", { - get: function() { - return this._lastChild; - } - }); - - Object.defineProperty(proto, "next", { - get: function() { - return this._next; - } - }); - - Object.defineProperty(proto, "prev", { - get: function() { - return this._prev; - } - }); - - Object.defineProperty(proto, "parent", { - get: function() { - return this._parent; - } - }); - - Object.defineProperty(proto, "sourcepos", { - get: function() { - return this._sourcepos; - } - }); - - Object.defineProperty(proto, "literal", { - get: function() { - return this._literal; - }, - set: function(s) { - this._literal = s; - } - }); - - Object.defineProperty(proto, "destination", { - get: function() { - return this._destination; - }, - set: function(s) { - this._destination = s; - } - }); - - Object.defineProperty(proto, "title", { - get: function() { - return this._title; - }, - set: function(s) { - this._title = s; - } - }); - - Object.defineProperty(proto, "info", { - get: function() { - return this._info; - }, - set: function(s) { - this._info = s; - } - }); - - Object.defineProperty(proto, "level", { - get: function() { - return this._level; - }, - set: function(s) { - this._level = s; - } - }); - - Object.defineProperty(proto, "listType", { - get: function() { - return this._listData.type; - }, - set: function(t) { - this._listData.type = t; - } - }); - - Object.defineProperty(proto, "listTight", { - get: function() { - return this._listData.tight; - }, - set: function(t) { - this._listData.tight = t; - } - }); - - Object.defineProperty(proto, "listStart", { - get: function() { - return this._listData.start; - }, - set: function(n) { - this._listData.start = n; - } - }); - - Object.defineProperty(proto, "listDelimiter", { - get: function() { - return this._listData.delimiter; - }, - set: function(delim) { - this._listData.delimiter = delim; - } - }); - - Object.defineProperty(proto, "onEnter", { - get: function() { - return this._onEnter; - }, - set: function(s) { - this._onEnter = s; - } - }); - - Object.defineProperty(proto, "onExit", { - get: function() { - return this._onExit; - }, - set: function(s) { - this._onExit = s; - } - }); - - Node.prototype.appendChild = function(child) { - child.unlink(); - child._parent = this; - if (this._lastChild) { - this._lastChild._next = child; - child._prev = this._lastChild; - this._lastChild = child; - } else { - this._firstChild = child; - this._lastChild = child; - } - }; - - Node.prototype.prependChild = function(child) { - child.unlink(); - child._parent = this; - if (this._firstChild) { - this._firstChild._prev = child; - child._next = this._firstChild; - this._firstChild = child; - } else { - this._firstChild = child; - this._lastChild = child; - } - }; - - Node.prototype.unlink = function() { - if (this._prev) { - this._prev._next = this._next; - } else if (this._parent) { - this._parent._firstChild = this._next; - } - if (this._next) { - this._next._prev = this._prev; - } else if (this._parent) { - this._parent._lastChild = this._prev; - } - this._parent = null; - this._next = null; - this._prev = null; - }; - - Node.prototype.insertAfter = function(sibling) { - sibling.unlink(); - sibling._next = this._next; - if (sibling._next) { - sibling._next._prev = sibling; - } - sibling._prev = this; - this._next = sibling; - sibling._parent = this._parent; - if (!sibling._next) { - sibling._parent._lastChild = sibling; - } - }; - - Node.prototype.insertBefore = function(sibling) { - sibling.unlink(); - sibling._prev = this._prev; - if (sibling._prev) { - sibling._prev._next = sibling; - } - sibling._next = this; - this._prev = sibling; - sibling._parent = this._parent; - if (!sibling._prev) { - sibling._parent._firstChild = sibling; - } - }; - - Node.prototype.walker = function() { - var walker = new NodeWalker(this); - return walker; - }; - - /* Example of use of walker: - - var walker = w.walker(); - var event; - - while (event = walker.next()) { - console.log(event.entering, event.node.type); - } - - */ - - var encodeCache = {}; - - - // Create a lookup array where anything but characters in `chars` string - // and alphanumeric chars is percent-encoded. - // - function getEncodeCache(exclude) { - var i, ch, cache = encodeCache[exclude]; - if (cache) { return cache; } - - cache = encodeCache[exclude] = []; - - for (i = 0; i < 128; i++) { - 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 (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) { - var i, l, code, nextCode, cache, - result = ''; - - if (typeof exclude !== 'string') { - // encode(string, keepEscaped) - keepEscaped = exclude; - exclude = encode.defaultChars; - } - - if (typeof keepEscaped === 'undefined') { - keepEscaped = true; - } - - cache = getEncodeCache(exclude); - - for (i = 0, l = string.length; i < l; i++) { - 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) { - 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 = "-_.!~*'()"; - - - var encode_1 = encode; - - var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; - - function unwrapExports (x) { - return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; - } - - function createCommonjsModule(fn, module) { - return module = { exports: {} }, fn(module, module.exports), module.exports; - } - - function getCjsExportFromNamespace (n) { - return n && n['default'] || n; - } - - var Aacute = "Á"; - var aacute = "á"; - var Abreve = "Ă"; - var abreve = "ă"; - var ac = "∾"; - var acd = "∿"; - var acE = "∾̳"; - var Acirc = "Â"; - var acirc = "â"; - var acute = "´"; - var Acy = "А"; - var acy = "а"; - var AElig = "Æ"; - var aelig = "æ"; - var af = "⁡"; - var Afr = "𝔄"; - var afr = "𝔞"; - var Agrave = "À"; - var agrave = "à"; - var alefsym = "ℵ"; - var aleph = "ℵ"; - var Alpha = "Α"; - var alpha = "α"; - var Amacr = "Ā"; - var amacr = "ā"; - var amalg = "⨿"; - var amp = "&"; - var AMP = "&"; - var andand = "⩕"; - var And = "⩓"; - var and = "∧"; - var andd = "⩜"; - var andslope = "⩘"; - var andv = "⩚"; - var ang = "∠"; - var ange = "⦤"; - var angle = "∠"; - var angmsdaa = "⦨"; - var angmsdab = "⦩"; - var angmsdac = "⦪"; - var angmsdad = "⦫"; - var angmsdae = "⦬"; - var angmsdaf = "⦭"; - var angmsdag = "⦮"; - var angmsdah = "⦯"; - var angmsd = "∡"; - var angrt = "∟"; - var angrtvb = "⊾"; - var angrtvbd = "⦝"; - var angsph = "∢"; - var angst = "Å"; - var angzarr = "⍼"; - var Aogon = "Ą"; - var aogon = "ą"; - var Aopf = "𝔸"; - var aopf = "𝕒"; - var apacir = "⩯"; - var ap = "≈"; - var apE = "⩰"; - var ape = "≊"; - var apid = "≋"; - var apos = "'"; - var ApplyFunction = "⁡"; - var approx = "≈"; - var approxeq = "≊"; - var Aring = "Å"; - var aring = "å"; - var Ascr = "𝒜"; - var ascr = "𝒶"; - var Assign = "≔"; - var ast = "*"; - var asymp = "≈"; - var asympeq = "≍"; - var Atilde = "Ã"; - var atilde = "ã"; - var Auml = "Ä"; - var auml = "ä"; - var awconint = "∳"; - var awint = "⨑"; - var backcong = "≌"; - var backepsilon = "϶"; - var backprime = "‵"; - var backsim = "∽"; - var backsimeq = "⋍"; - var Backslash = "∖"; - var Barv = "⫧"; - var barvee = "⊽"; - var barwed = "⌅"; - var Barwed = "⌆"; - var barwedge = "⌅"; - var bbrk = "⎵"; - var bbrktbrk = "⎶"; - var bcong = "≌"; - var Bcy = "Б"; - var bcy = "б"; - var bdquo = "„"; - var becaus = "∵"; - var because = "∵"; - var Because = "∵"; - var bemptyv = "⦰"; - var bepsi = "϶"; - var bernou = "ℬ"; - var Bernoullis = "ℬ"; - var Beta = "Β"; - var beta = "β"; - var beth = "ℶ"; - var between = "≬"; - var Bfr = "𝔅"; - var bfr = "𝔟"; - var bigcap = "⋂"; - var bigcirc = "◯"; - var bigcup = "⋃"; - var bigodot = "⨀"; - var bigoplus = "⨁"; - var bigotimes = "⨂"; - var bigsqcup = "⨆"; - var bigstar = "★"; - var bigtriangledown = "▽"; - var bigtriangleup = "△"; - var biguplus = "⨄"; - var bigvee = "⋁"; - var bigwedge = "⋀"; - var bkarow = "⤍"; - var blacklozenge = "⧫"; - var blacksquare = "▪"; - var blacktriangle = "▴"; - var blacktriangledown = "▾"; - var blacktriangleleft = "◂"; - var blacktriangleright = "▸"; - var blank = "␣"; - var blk12 = "▒"; - var blk14 = "░"; - var blk34 = "▓"; - var block = "█"; - var bne = "=⃥"; - var bnequiv = "≡⃥"; - var bNot = "⫭"; - var bnot = "⌐"; - var Bopf = "𝔹"; - var bopf = "𝕓"; - var bot = "⊥"; - var bottom = "⊥"; - var bowtie = "⋈"; - var boxbox = "⧉"; - var boxdl = "┐"; - var boxdL = "╕"; - var boxDl = "╖"; - var boxDL = "╗"; - var boxdr = "┌"; - var boxdR = "╒"; - var boxDr = "╓"; - var boxDR = "╔"; - var boxh = "─"; - var boxH = "═"; - var boxhd = "┬"; - var boxHd = "╤"; - var boxhD = "╥"; - var boxHD = "╦"; - var boxhu = "┴"; - var boxHu = "╧"; - var boxhU = "╨"; - var boxHU = "╩"; - var boxminus = "⊟"; - var boxplus = "⊞"; - var boxtimes = "⊠"; - var boxul = "┘"; - var boxuL = "╛"; - var boxUl = "╜"; - var boxUL = "╝"; - var boxur = "└"; - var boxuR = "╘"; - var boxUr = "╙"; - var boxUR = "╚"; - var boxv = "│"; - var boxV = "║"; - var boxvh = "┼"; - var boxvH = "╪"; - var boxVh = "╫"; - var boxVH = "╬"; - var boxvl = "┤"; - var boxvL = "╡"; - var boxVl = "╢"; - var boxVL = "╣"; - var boxvr = "├"; - var boxvR = "╞"; - var boxVr = "╟"; - var boxVR = "╠"; - var bprime = "‵"; - var breve = "˘"; - var Breve = "˘"; - var brvbar = "¦"; - var bscr = "𝒷"; - var Bscr = "ℬ"; - var bsemi = "⁏"; - var bsim = "∽"; - var bsime = "⋍"; - var bsolb = "⧅"; - var bsol = "\\"; - var bsolhsub = "⟈"; - var bull = "•"; - var bullet = "•"; - var bump = "≎"; - var bumpE = "⪮"; - var bumpe = "≏"; - var Bumpeq = "≎"; - var bumpeq = "≏"; - var Cacute = "Ć"; - var cacute = "ć"; - var capand = "⩄"; - var capbrcup = "⩉"; - var capcap = "⩋"; - var cap = "∩"; - var Cap = "⋒"; - var capcup = "⩇"; - var capdot = "⩀"; - var CapitalDifferentialD = "ⅅ"; - var caps = "∩︀"; - var caret = "⁁"; - var caron = "ˇ"; - var Cayleys = "ℭ"; - var ccaps = "⩍"; - var Ccaron = "Č"; - var ccaron = "č"; - var Ccedil = "Ç"; - var ccedil = "ç"; - var Ccirc = "Ĉ"; - var ccirc = "ĉ"; - var Cconint = "∰"; - var ccups = "⩌"; - var ccupssm = "⩐"; - var Cdot = "Ċ"; - var cdot = "ċ"; - var cedil = "¸"; - var Cedilla = "¸"; - var cemptyv = "⦲"; - var cent = "¢"; - var centerdot = "·"; - var CenterDot = "·"; - var cfr = "𝔠"; - var Cfr = "ℭ"; - var CHcy = "Ч"; - var chcy = "ч"; - var check = "✓"; - var checkmark = "✓"; - var Chi = "Χ"; - var chi = "χ"; - var circ = "ˆ"; - var circeq = "≗"; - var circlearrowleft = "↺"; - var circlearrowright = "↻"; - var circledast = "⊛"; - var circledcirc = "⊚"; - var circleddash = "⊝"; - var CircleDot = "⊙"; - var circledR = "®"; - var circledS = "Ⓢ"; - var CircleMinus = "⊖"; - var CirclePlus = "⊕"; - var CircleTimes = "⊗"; - var cir = "○"; - var cirE = "⧃"; - var cire = "≗"; - var cirfnint = "⨐"; - var cirmid = "⫯"; - var cirscir = "⧂"; - var ClockwiseContourIntegral = "∲"; - var CloseCurlyDoubleQuote = "”"; - var CloseCurlyQuote = "’"; - var clubs = "♣"; - var clubsuit = "♣"; - var colon = ":"; - var Colon = "∷"; - var Colone = "⩴"; - var colone = "≔"; - var coloneq = "≔"; - var comma = ","; - var commat = "@"; - var comp = "∁"; - var compfn = "∘"; - var complement = "∁"; - var complexes = "ℂ"; - var cong = "≅"; - var congdot = "⩭"; - var Congruent = "≡"; - var conint = "∮"; - var Conint = "∯"; - var ContourIntegral = "∮"; - var copf = "𝕔"; - var Copf = "ℂ"; - var coprod = "∐"; - var Coproduct = "∐"; - var copy = "©"; - var COPY = "©"; - var copysr = "℗"; - var CounterClockwiseContourIntegral = "∳"; - var crarr = "↵"; - var cross = "✗"; - var Cross = "⨯"; - var Cscr = "𝒞"; - var cscr = "𝒸"; - var csub = "⫏"; - var csube = "⫑"; - var csup = "⫐"; - var csupe = "⫒"; - var ctdot = "⋯"; - var cudarrl = "⤸"; - var cudarrr = "⤵"; - var cuepr = "⋞"; - var cuesc = "⋟"; - var cularr = "↶"; - var cularrp = "⤽"; - var cupbrcap = "⩈"; - var cupcap = "⩆"; - var CupCap = "≍"; - var cup = "∪"; - var Cup = "⋓"; - var cupcup = "⩊"; - var cupdot = "⊍"; - var cupor = "⩅"; - var cups = "∪︀"; - var curarr = "↷"; - var curarrm = "⤼"; - var curlyeqprec = "⋞"; - var curlyeqsucc = "⋟"; - var curlyvee = "⋎"; - var curlywedge = "⋏"; - var curren = "¤"; - var curvearrowleft = "↶"; - var curvearrowright = "↷"; - var cuvee = "⋎"; - var cuwed = "⋏"; - var cwconint = "∲"; - var cwint = "∱"; - var cylcty = "⌭"; - var dagger = "†"; - var Dagger = "‡"; - var daleth = "ℸ"; - var darr = "↓"; - var Darr = "↡"; - var dArr = "⇓"; - var dash = "‐"; - var Dashv = "⫤"; - var dashv = "⊣"; - var dbkarow = "⤏"; - var dblac = "˝"; - var Dcaron = "Ď"; - var dcaron = "ď"; - var Dcy = "Д"; - var dcy = "д"; - var ddagger = "‡"; - var ddarr = "⇊"; - var DD = "ⅅ"; - var dd = "ⅆ"; - var DDotrahd = "⤑"; - var ddotseq = "⩷"; - var deg = "°"; - var Del = "∇"; - var Delta = "Δ"; - var delta = "δ"; - var demptyv = "⦱"; - var dfisht = "⥿"; - var Dfr = "𝔇"; - var dfr = "𝔡"; - var dHar = "⥥"; - var dharl = "⇃"; - var dharr = "⇂"; - var DiacriticalAcute = "´"; - var DiacriticalDot = "˙"; - var DiacriticalDoubleAcute = "˝"; - var DiacriticalGrave = "`"; - var DiacriticalTilde = "˜"; - var diam = "⋄"; - var diamond = "⋄"; - var Diamond = "⋄"; - var diamondsuit = "♦"; - var diams = "♦"; - var die = "¨"; - var DifferentialD = "ⅆ"; - var digamma = "ϝ"; - var disin = "⋲"; - var div = "÷"; - var divide = "÷"; - var divideontimes = "⋇"; - var divonx = "⋇"; - var DJcy = "Ђ"; - var djcy = "ђ"; - var dlcorn = "⌞"; - var dlcrop = "⌍"; - var dollar = "$"; - var Dopf = "𝔻"; - var dopf = "𝕕"; - var Dot = "¨"; - var dot = "˙"; - var DotDot = "⃜"; - var doteq = "≐"; - var doteqdot = "≑"; - var DotEqual = "≐"; - var dotminus = "∸"; - var dotplus = "∔"; - var dotsquare = "⊡"; - var doublebarwedge = "⌆"; - var DoubleContourIntegral = "∯"; - var DoubleDot = "¨"; - var DoubleDownArrow = "⇓"; - var DoubleLeftArrow = "⇐"; - var DoubleLeftRightArrow = "⇔"; - var DoubleLeftTee = "⫤"; - var DoubleLongLeftArrow = "⟸"; - var DoubleLongLeftRightArrow = "⟺"; - var DoubleLongRightArrow = "⟹"; - var DoubleRightArrow = "⇒"; - var DoubleRightTee = "⊨"; - var DoubleUpArrow = "⇑"; - var DoubleUpDownArrow = "⇕"; - var DoubleVerticalBar = "∥"; - var DownArrowBar = "⤓"; - var downarrow = "↓"; - var DownArrow = "↓"; - var Downarrow = "⇓"; - var DownArrowUpArrow = "⇵"; - var DownBreve = "̑"; - var downdownarrows = "⇊"; - var downharpoonleft = "⇃"; - var downharpoonright = "⇂"; - var DownLeftRightVector = "⥐"; - var DownLeftTeeVector = "⥞"; - var DownLeftVectorBar = "⥖"; - var DownLeftVector = "↽"; - var DownRightTeeVector = "⥟"; - var DownRightVectorBar = "⥗"; - var DownRightVector = "⇁"; - var DownTeeArrow = "↧"; - var DownTee = "⊤"; - var drbkarow = "⤐"; - var drcorn = "⌟"; - var drcrop = "⌌"; - var Dscr = "𝒟"; - var dscr = "𝒹"; - var DScy = "Ѕ"; - var dscy = "ѕ"; - var dsol = "⧶"; - var Dstrok = "Đ"; - var dstrok = "đ"; - var dtdot = "⋱"; - var dtri = "▿"; - var dtrif = "▾"; - var duarr = "⇵"; - var duhar = "⥯"; - var dwangle = "⦦"; - var DZcy = "Џ"; - var dzcy = "џ"; - var dzigrarr = "⟿"; - var Eacute = "É"; - var eacute = "é"; - var easter = "⩮"; - var Ecaron = "Ě"; - var ecaron = "ě"; - var Ecirc = "Ê"; - var ecirc = "ê"; - var ecir = "≖"; - var ecolon = "≕"; - var Ecy = "Э"; - var ecy = "э"; - var eDDot = "⩷"; - var Edot = "Ė"; - var edot = "ė"; - var eDot = "≑"; - var ee = "ⅇ"; - var efDot = "≒"; - var Efr = "𝔈"; - var efr = "𝔢"; - var eg = "⪚"; - var Egrave = "È"; - var egrave = "è"; - var egs = "⪖"; - var egsdot = "⪘"; - var el = "⪙"; - var Element = "∈"; - var elinters = "⏧"; - var ell = "ℓ"; - var els = "⪕"; - var elsdot = "⪗"; - var Emacr = "Ē"; - var emacr = "ē"; - var empty = "∅"; - var emptyset = "∅"; - var EmptySmallSquare = "◻"; - var emptyv = "∅"; - var EmptyVerySmallSquare = "▫"; - var emsp13 = " "; - var emsp14 = " "; - var emsp = " "; - var ENG = "Ŋ"; - var eng = "ŋ"; - var ensp = " "; - var Eogon = "Ę"; - var eogon = "ę"; - var Eopf = "𝔼"; - var eopf = "𝕖"; - var epar = "⋕"; - var eparsl = "⧣"; - var eplus = "⩱"; - var epsi = "ε"; - var Epsilon = "Ε"; - var epsilon = "ε"; - var epsiv = "ϵ"; - var eqcirc = "≖"; - var eqcolon = "≕"; - var eqsim = "≂"; - var eqslantgtr = "⪖"; - var eqslantless = "⪕"; - var Equal = "⩵"; - var equals = "="; - var EqualTilde = "≂"; - var equest = "≟"; - var Equilibrium = "⇌"; - var equiv = "≡"; - var equivDD = "⩸"; - var eqvparsl = "⧥"; - var erarr = "⥱"; - var erDot = "≓"; - var escr = "ℯ"; - var Escr = "ℰ"; - var esdot = "≐"; - var Esim = "⩳"; - var esim = "≂"; - var Eta = "Η"; - var eta = "η"; - var ETH = "Ð"; - var eth = "ð"; - var Euml = "Ë"; - var euml = "ë"; - var euro = "€"; - var excl = "!"; - var exist = "∃"; - var Exists = "∃"; - var expectation = "ℰ"; - var exponentiale = "ⅇ"; - var ExponentialE = "ⅇ"; - var fallingdotseq = "≒"; - var Fcy = "Ф"; - var fcy = "ф"; - var female = "♀"; - var ffilig = "ffi"; - var fflig = "ff"; - var ffllig = "ffl"; - var Ffr = "𝔉"; - var ffr = "𝔣"; - var filig = "fi"; - var FilledSmallSquare = "◼"; - var FilledVerySmallSquare = "▪"; - var fjlig = "fj"; - var flat = "♭"; - var fllig = "fl"; - var fltns = "▱"; - var fnof = "ƒ"; - var Fopf = "𝔽"; - var fopf = "𝕗"; - var forall = "∀"; - var ForAll = "∀"; - var fork = "⋔"; - var forkv = "⫙"; - var Fouriertrf = "ℱ"; - var fpartint = "⨍"; - var frac12 = "½"; - var frac13 = "⅓"; - var frac14 = "¼"; - var frac15 = "⅕"; - var frac16 = "⅙"; - var frac18 = "⅛"; - var frac23 = "⅔"; - var frac25 = "⅖"; - var frac34 = "¾"; - var frac35 = "⅗"; - var frac38 = "⅜"; - var frac45 = "⅘"; - var frac56 = "⅚"; - var frac58 = "⅝"; - var frac78 = "⅞"; - var frasl = "⁄"; - var frown = "⌢"; - var fscr = "𝒻"; - var Fscr = "ℱ"; - var gacute = "ǵ"; - var Gamma = "Γ"; - var gamma = "γ"; - var Gammad = "Ϝ"; - var gammad = "ϝ"; - var gap = "⪆"; - var Gbreve = "Ğ"; - var gbreve = "ğ"; - var Gcedil = "Ģ"; - var Gcirc = "Ĝ"; - var gcirc = "ĝ"; - var Gcy = "Г"; - var gcy = "г"; - var Gdot = "Ġ"; - var gdot = "ġ"; - var ge = "≥"; - var gE = "≧"; - var gEl = "⪌"; - var gel = "⋛"; - var geq = "≥"; - var geqq = "≧"; - var geqslant = "⩾"; - var gescc = "⪩"; - var ges = "⩾"; - var gesdot = "⪀"; - var gesdoto = "⪂"; - var gesdotol = "⪄"; - var gesl = "⋛︀"; - var gesles = "⪔"; - var Gfr = "𝔊"; - var gfr = "𝔤"; - var gg = "≫"; - var Gg = "⋙"; - var ggg = "⋙"; - var gimel = "ℷ"; - var GJcy = "Ѓ"; - var gjcy = "ѓ"; - var gla = "⪥"; - var gl = "≷"; - var glE = "⪒"; - var glj = "⪤"; - var gnap = "⪊"; - var gnapprox = "⪊"; - var gne = "⪈"; - var gnE = "≩"; - var gneq = "⪈"; - var gneqq = "≩"; - var gnsim = "⋧"; - var Gopf = "𝔾"; - var gopf = "𝕘"; - var grave = "`"; - var GreaterEqual = "≥"; - var GreaterEqualLess = "⋛"; - var GreaterFullEqual = "≧"; - var GreaterGreater = "⪢"; - var GreaterLess = "≷"; - var GreaterSlantEqual = "⩾"; - var GreaterTilde = "≳"; - var Gscr = "𝒢"; - var gscr = "ℊ"; - var gsim = "≳"; - var gsime = "⪎"; - var gsiml = "⪐"; - var gtcc = "⪧"; - var gtcir = "⩺"; - var gt = ">"; - var GT = ">"; - var Gt = "≫"; - var gtdot = "⋗"; - var gtlPar = "⦕"; - var gtquest = "⩼"; - var gtrapprox = "⪆"; - var gtrarr = "⥸"; - var gtrdot = "⋗"; - var gtreqless = "⋛"; - var gtreqqless = "⪌"; - var gtrless = "≷"; - var gtrsim = "≳"; - var gvertneqq = "≩︀"; - var gvnE = "≩︀"; - var Hacek = "ˇ"; - var hairsp = " "; - var half = "½"; - var hamilt = "ℋ"; - var HARDcy = "Ъ"; - var hardcy = "ъ"; - var harrcir = "⥈"; - var harr = "↔"; - var hArr = "⇔"; - var harrw = "↭"; - var Hat = "^"; - var hbar = "ℏ"; - var Hcirc = "Ĥ"; - var hcirc = "ĥ"; - var hearts = "♥"; - var heartsuit = "♥"; - var hellip = "…"; - var hercon = "⊹"; - var hfr = "𝔥"; - var Hfr = "ℌ"; - var HilbertSpace = "ℋ"; - var hksearow = "⤥"; - var hkswarow = "⤦"; - var hoarr = "⇿"; - var homtht = "∻"; - var hookleftarrow = "↩"; - var hookrightarrow = "↪"; - var hopf = "𝕙"; - var Hopf = "ℍ"; - var horbar = "―"; - var HorizontalLine = "─"; - var hscr = "𝒽"; - var Hscr = "ℋ"; - var hslash = "ℏ"; - var Hstrok = "Ħ"; - var hstrok = "ħ"; - var HumpDownHump = "≎"; - var HumpEqual = "≏"; - var hybull = "⁃"; - var hyphen = "‐"; - var Iacute = "Í"; - var iacute = "í"; - var ic = "⁣"; - var Icirc = "Î"; - var icirc = "î"; - var Icy = "И"; - var icy = "и"; - var Idot = "İ"; - var IEcy = "Е"; - var iecy = "е"; - var iexcl = "¡"; - var iff = "⇔"; - var ifr = "𝔦"; - var Ifr = "ℑ"; - var Igrave = "Ì"; - var igrave = "ì"; - var ii = "ⅈ"; - var iiiint = "⨌"; - var iiint = "∭"; - var iinfin = "⧜"; - var iiota = "℩"; - var IJlig = "IJ"; - var ijlig = "ij"; - var Imacr = "Ī"; - var imacr = "ī"; - var image = "ℑ"; - var ImaginaryI = "ⅈ"; - var imagline = "ℐ"; - var imagpart = "ℑ"; - var imath = "ı"; - var Im = "ℑ"; - var imof = "⊷"; - var imped = "Ƶ"; - var Implies = "⇒"; - var incare = "℅"; - var infin = "∞"; - var infintie = "⧝"; - var inodot = "ı"; - var intcal = "⊺"; - var int = "∫"; - var Int = "∬"; - var integers = "ℤ"; - var Integral = "∫"; - var intercal = "⊺"; - var Intersection = "⋂"; - var intlarhk = "⨗"; - var intprod = "⨼"; - var InvisibleComma = "⁣"; - var InvisibleTimes = "⁢"; - var IOcy = "Ё"; - var iocy = "ё"; - var Iogon = "Į"; - var iogon = "į"; - var Iopf = "𝕀"; - var iopf = "𝕚"; - var Iota = "Ι"; - var iota = "ι"; - var iprod = "⨼"; - var iquest = "¿"; - var iscr = "𝒾"; - var Iscr = "ℐ"; - var isin = "∈"; - var isindot = "⋵"; - var isinE = "⋹"; - var isins = "⋴"; - var isinsv = "⋳"; - var isinv = "∈"; - var it = "⁢"; - var Itilde = "Ĩ"; - var itilde = "ĩ"; - var Iukcy = "І"; - var iukcy = "і"; - var Iuml = "Ï"; - var iuml = "ï"; - var Jcirc = "Ĵ"; - var jcirc = "ĵ"; - var Jcy = "Й"; - var jcy = "й"; - var Jfr = "𝔍"; - var jfr = "𝔧"; - var jmath = "ȷ"; - var Jopf = "𝕁"; - var jopf = "𝕛"; - var Jscr = "𝒥"; - var jscr = "𝒿"; - var Jsercy = "Ј"; - var jsercy = "ј"; - var Jukcy = "Є"; - var jukcy = "є"; - var Kappa = "Κ"; - var kappa = "κ"; - var kappav = "ϰ"; - var Kcedil = "Ķ"; - var kcedil = "ķ"; - var Kcy = "К"; - var kcy = "к"; - var Kfr = "𝔎"; - var kfr = "𝔨"; - var kgreen = "ĸ"; - var KHcy = "Х"; - var khcy = "х"; - var KJcy = "Ќ"; - var kjcy = "ќ"; - var Kopf = "𝕂"; - var kopf = "𝕜"; - var Kscr = "𝒦"; - var kscr = "𝓀"; - var lAarr = "⇚"; - var Lacute = "Ĺ"; - var lacute = "ĺ"; - var laemptyv = "⦴"; - var lagran = "ℒ"; - var Lambda = "Λ"; - var lambda = "λ"; - var lang = "⟨"; - var Lang = "⟪"; - var langd = "⦑"; - var langle = "⟨"; - var lap = "⪅"; - var Laplacetrf = "ℒ"; - var laquo = "«"; - var larrb = "⇤"; - var larrbfs = "⤟"; - var larr = "←"; - var Larr = "↞"; - var lArr = "⇐"; - var larrfs = "⤝"; - var larrhk = "↩"; - var larrlp = "↫"; - var larrpl = "⤹"; - var larrsim = "⥳"; - var larrtl = "↢"; - var latail = "⤙"; - var lAtail = "⤛"; - var lat = "⪫"; - var late = "⪭"; - var lates = "⪭︀"; - var lbarr = "⤌"; - var lBarr = "⤎"; - var lbbrk = "❲"; - var lbrace = "{"; - var lbrack = "["; - var lbrke = "⦋"; - var lbrksld = "⦏"; - var lbrkslu = "⦍"; - var Lcaron = "Ľ"; - var lcaron = "ľ"; - var Lcedil = "Ļ"; - var lcedil = "ļ"; - var lceil = "⌈"; - var lcub = "{"; - var Lcy = "Л"; - var lcy = "л"; - var ldca = "⤶"; - var ldquo = "“"; - var ldquor = "„"; - var ldrdhar = "⥧"; - var ldrushar = "⥋"; - var ldsh = "↲"; - var le = "≤"; - var lE = "≦"; - var LeftAngleBracket = "⟨"; - var LeftArrowBar = "⇤"; - var leftarrow = "←"; - var LeftArrow = "←"; - var Leftarrow = "⇐"; - var LeftArrowRightArrow = "⇆"; - var leftarrowtail = "↢"; - var LeftCeiling = "⌈"; - var LeftDoubleBracket = "⟦"; - var LeftDownTeeVector = "⥡"; - var LeftDownVectorBar = "⥙"; - var LeftDownVector = "⇃"; - var LeftFloor = "⌊"; - var leftharpoondown = "↽"; - var leftharpoonup = "↼"; - var leftleftarrows = "⇇"; - var leftrightarrow = "↔"; - var LeftRightArrow = "↔"; - var Leftrightarrow = "⇔"; - var leftrightarrows = "⇆"; - var leftrightharpoons = "⇋"; - var leftrightsquigarrow = "↭"; - var LeftRightVector = "⥎"; - var LeftTeeArrow = "↤"; - var LeftTee = "⊣"; - var LeftTeeVector = "⥚"; - var leftthreetimes = "⋋"; - var LeftTriangleBar = "⧏"; - var LeftTriangle = "⊲"; - var LeftTriangleEqual = "⊴"; - var LeftUpDownVector = "⥑"; - var LeftUpTeeVector = "⥠"; - var LeftUpVectorBar = "⥘"; - var LeftUpVector = "↿"; - var LeftVectorBar = "⥒"; - var LeftVector = "↼"; - var lEg = "⪋"; - var leg = "⋚"; - var leq = "≤"; - var leqq = "≦"; - var leqslant = "⩽"; - var lescc = "⪨"; - var les = "⩽"; - var lesdot = "⩿"; - var lesdoto = "⪁"; - var lesdotor = "⪃"; - var lesg = "⋚︀"; - var lesges = "⪓"; - var lessapprox = "⪅"; - var lessdot = "⋖"; - var lesseqgtr = "⋚"; - var lesseqqgtr = "⪋"; - var LessEqualGreater = "⋚"; - var LessFullEqual = "≦"; - var LessGreater = "≶"; - var lessgtr = "≶"; - var LessLess = "⪡"; - var lesssim = "≲"; - var LessSlantEqual = "⩽"; - var LessTilde = "≲"; - var lfisht = "⥼"; - var lfloor = "⌊"; - var Lfr = "𝔏"; - var lfr = "𝔩"; - var lg = "≶"; - var lgE = "⪑"; - var lHar = "⥢"; - var lhard = "↽"; - var lharu = "↼"; - var lharul = "⥪"; - var lhblk = "▄"; - var LJcy = "Љ"; - var ljcy = "љ"; - var llarr = "⇇"; - var ll = "≪"; - var Ll = "⋘"; - var llcorner = "⌞"; - var Lleftarrow = "⇚"; - var llhard = "⥫"; - var lltri = "◺"; - var Lmidot = "Ŀ"; - var lmidot = "ŀ"; - var lmoustache = "⎰"; - var lmoust = "⎰"; - var lnap = "⪉"; - var lnapprox = "⪉"; - var lne = "⪇"; - var lnE = "≨"; - var lneq = "⪇"; - var lneqq = "≨"; - var lnsim = "⋦"; - var loang = "⟬"; - var loarr = "⇽"; - var lobrk = "⟦"; - var longleftarrow = "⟵"; - var LongLeftArrow = "⟵"; - var Longleftarrow = "⟸"; - var longleftrightarrow = "⟷"; - var LongLeftRightArrow = "⟷"; - var Longleftrightarrow = "⟺"; - var longmapsto = "⟼"; - var longrightarrow = "⟶"; - var LongRightArrow = "⟶"; - var Longrightarrow = "⟹"; - var looparrowleft = "↫"; - var looparrowright = "↬"; - var lopar = "⦅"; - var Lopf = "𝕃"; - var lopf = "𝕝"; - var loplus = "⨭"; - var lotimes = "⨴"; - var lowast = "∗"; - var lowbar = "_"; - var LowerLeftArrow = "↙"; - var LowerRightArrow = "↘"; - var loz = "◊"; - var lozenge = "◊"; - var lozf = "⧫"; - var lpar = "("; - var lparlt = "⦓"; - var lrarr = "⇆"; - var lrcorner = "⌟"; - var lrhar = "⇋"; - var lrhard = "⥭"; - var lrm = "‎"; - var lrtri = "⊿"; - var lsaquo = "‹"; - var lscr = "𝓁"; - var Lscr = "ℒ"; - var lsh = "↰"; - var Lsh = "↰"; - var lsim = "≲"; - var lsime = "⪍"; - var lsimg = "⪏"; - var lsqb = "["; - var lsquo = "‘"; - var lsquor = "‚"; - var Lstrok = "Ł"; - var lstrok = "ł"; - var ltcc = "⪦"; - var ltcir = "⩹"; - var lt = "<"; - var LT = "<"; - var Lt = "≪"; - var ltdot = "⋖"; - var lthree = "⋋"; - var ltimes = "⋉"; - var ltlarr = "⥶"; - var ltquest = "⩻"; - var ltri = "◃"; - var ltrie = "⊴"; - var ltrif = "◂"; - var ltrPar = "⦖"; - var lurdshar = "⥊"; - var luruhar = "⥦"; - var lvertneqq = "≨︀"; - var lvnE = "≨︀"; - var macr = "¯"; - var male = "♂"; - var malt = "✠"; - var maltese = "✠"; - var map = "↦"; - var mapsto = "↦"; - var mapstodown = "↧"; - var mapstoleft = "↤"; - var mapstoup = "↥"; - var marker = "▮"; - var mcomma = "⨩"; - var Mcy = "М"; - var mcy = "м"; - var mdash = "—"; - var mDDot = "∺"; - var measuredangle = "∡"; - var MediumSpace = " "; - var Mellintrf = "ℳ"; - var Mfr = "𝔐"; - var mfr = "𝔪"; - var mho = "℧"; - var micro = "µ"; - var midast = "*"; - var midcir = "⫰"; - var mid = "∣"; - var middot = "·"; - var minusb = "⊟"; - var minus = "−"; - var minusd = "∸"; - var minusdu = "⨪"; - var MinusPlus = "∓"; - var mlcp = "⫛"; - var mldr = "…"; - var mnplus = "∓"; - var models = "⊧"; - var Mopf = "𝕄"; - var mopf = "𝕞"; - var mp = "∓"; - var mscr = "𝓂"; - var Mscr = "ℳ"; - var mstpos = "∾"; - var Mu = "Μ"; - var mu = "μ"; - var multimap = "⊸"; - var mumap = "⊸"; - var nabla = "∇"; - var Nacute = "Ń"; - var nacute = "ń"; - var nang = "∠⃒"; - var nap = "≉"; - var napE = "⩰̸"; - var napid = "≋̸"; - var napos = "ʼn"; - var napprox = "≉"; - var natural = "♮"; - var naturals = "ℕ"; - var natur = "♮"; - var nbsp = " "; - var nbump = "≎̸"; - var nbumpe = "≏̸"; - var ncap = "⩃"; - var Ncaron = "Ň"; - var ncaron = "ň"; - var Ncedil = "Ņ"; - var ncedil = "ņ"; - var ncong = "≇"; - var ncongdot = "⩭̸"; - var ncup = "⩂"; - var Ncy = "Н"; - var ncy = "н"; - var ndash = "–"; - var nearhk = "⤤"; - var nearr = "↗"; - var neArr = "⇗"; - var nearrow = "↗"; - var ne = "≠"; - var nedot = "≐̸"; - var NegativeMediumSpace = "​"; - var NegativeThickSpace = "​"; - var NegativeThinSpace = "​"; - var NegativeVeryThinSpace = "​"; - var nequiv = "≢"; - var nesear = "⤨"; - var nesim = "≂̸"; - var NestedGreaterGreater = "≫"; - var NestedLessLess = "≪"; - var NewLine = "\n"; - var nexist = "∄"; - var nexists = "∄"; - var Nfr = "𝔑"; - var nfr = "𝔫"; - var ngE = "≧̸"; - var nge = "≱"; - var ngeq = "≱"; - var ngeqq = "≧̸"; - var ngeqslant = "⩾̸"; - var nges = "⩾̸"; - var nGg = "⋙̸"; - var ngsim = "≵"; - var nGt = "≫⃒"; - var ngt = "≯"; - var ngtr = "≯"; - var nGtv = "≫̸"; - var nharr = "↮"; - var nhArr = "⇎"; - var nhpar = "⫲"; - var ni = "∋"; - var nis = "⋼"; - var nisd = "⋺"; - var niv = "∋"; - var NJcy = "Њ"; - var njcy = "њ"; - var nlarr = "↚"; - var nlArr = "⇍"; - var nldr = "‥"; - var nlE = "≦̸"; - var nle = "≰"; - var nleftarrow = "↚"; - var nLeftarrow = "⇍"; - var nleftrightarrow = "↮"; - var nLeftrightarrow = "⇎"; - var nleq = "≰"; - var nleqq = "≦̸"; - var nleqslant = "⩽̸"; - var nles = "⩽̸"; - var nless = "≮"; - var nLl = "⋘̸"; - var nlsim = "≴"; - var nLt = "≪⃒"; - var nlt = "≮"; - var nltri = "⋪"; - var nltrie = "⋬"; - var nLtv = "≪̸"; - var nmid = "∤"; - var NoBreak = "⁠"; - var NonBreakingSpace = " "; - var nopf = "𝕟"; - var Nopf = "ℕ"; - var Not = "⫬"; - var not = "¬"; - var NotCongruent = "≢"; - var NotCupCap = "≭"; - var NotDoubleVerticalBar = "∦"; - var NotElement = "∉"; - var NotEqual = "≠"; - var NotEqualTilde = "≂̸"; - var NotExists = "∄"; - var NotGreater = "≯"; - var NotGreaterEqual = "≱"; - var NotGreaterFullEqual = "≧̸"; - var NotGreaterGreater = "≫̸"; - var NotGreaterLess = "≹"; - var NotGreaterSlantEqual = "⩾̸"; - var NotGreaterTilde = "≵"; - var NotHumpDownHump = "≎̸"; - var NotHumpEqual = "≏̸"; - var notin = "∉"; - var notindot = "⋵̸"; - var notinE = "⋹̸"; - var notinva = "∉"; - var notinvb = "⋷"; - var notinvc = "⋶"; - var NotLeftTriangleBar = "⧏̸"; - var NotLeftTriangle = "⋪"; - var NotLeftTriangleEqual = "⋬"; - var NotLess = "≮"; - var NotLessEqual = "≰"; - var NotLessGreater = "≸"; - var NotLessLess = "≪̸"; - var NotLessSlantEqual = "⩽̸"; - var NotLessTilde = "≴"; - var NotNestedGreaterGreater = "⪢̸"; - var NotNestedLessLess = "⪡̸"; - var notni = "∌"; - var notniva = "∌"; - var notnivb = "⋾"; - var notnivc = "⋽"; - var NotPrecedes = "⊀"; - var NotPrecedesEqual = "⪯̸"; - var NotPrecedesSlantEqual = "⋠"; - var NotReverseElement = "∌"; - var NotRightTriangleBar = "⧐̸"; - var NotRightTriangle = "⋫"; - var NotRightTriangleEqual = "⋭"; - var NotSquareSubset = "⊏̸"; - var NotSquareSubsetEqual = "⋢"; - var NotSquareSuperset = "⊐̸"; - var NotSquareSupersetEqual = "⋣"; - var NotSubset = "⊂⃒"; - var NotSubsetEqual = "⊈"; - var NotSucceeds = "⊁"; - var NotSucceedsEqual = "⪰̸"; - var NotSucceedsSlantEqual = "⋡"; - var NotSucceedsTilde = "≿̸"; - var NotSuperset = "⊃⃒"; - var NotSupersetEqual = "⊉"; - var NotTilde = "≁"; - var NotTildeEqual = "≄"; - var NotTildeFullEqual = "≇"; - var NotTildeTilde = "≉"; - var NotVerticalBar = "∤"; - var nparallel = "∦"; - var npar = "∦"; - var nparsl = "⫽⃥"; - var npart = "∂̸"; - var npolint = "⨔"; - var npr = "⊀"; - var nprcue = "⋠"; - var nprec = "⊀"; - var npreceq = "⪯̸"; - var npre = "⪯̸"; - var nrarrc = "⤳̸"; - var nrarr = "↛"; - var nrArr = "⇏"; - var nrarrw = "↝̸"; - var nrightarrow = "↛"; - var nRightarrow = "⇏"; - var nrtri = "⋫"; - var nrtrie = "⋭"; - var nsc = "⊁"; - var nsccue = "⋡"; - var nsce = "⪰̸"; - var Nscr = "𝒩"; - var nscr = "𝓃"; - var nshortmid = "∤"; - var nshortparallel = "∦"; - var nsim = "≁"; - var nsime = "≄"; - var nsimeq = "≄"; - var nsmid = "∤"; - var nspar = "∦"; - var nsqsube = "⋢"; - var nsqsupe = "⋣"; - var nsub = "⊄"; - var nsubE = "⫅̸"; - var nsube = "⊈"; - var nsubset = "⊂⃒"; - var nsubseteq = "⊈"; - var nsubseteqq = "⫅̸"; - var nsucc = "⊁"; - var nsucceq = "⪰̸"; - var nsup = "⊅"; - var nsupE = "⫆̸"; - var nsupe = "⊉"; - var nsupset = "⊃⃒"; - var nsupseteq = "⊉"; - var nsupseteqq = "⫆̸"; - var ntgl = "≹"; - var Ntilde = "Ñ"; - var ntilde = "ñ"; - var ntlg = "≸"; - var ntriangleleft = "⋪"; - var ntrianglelefteq = "⋬"; - var ntriangleright = "⋫"; - var ntrianglerighteq = "⋭"; - var Nu = "Ν"; - var nu = "ν"; - var num = "#"; - var numero = "№"; - var numsp = " "; - var nvap = "≍⃒"; - var nvdash = "⊬"; - var nvDash = "⊭"; - var nVdash = "⊮"; - var nVDash = "⊯"; - var nvge = "≥⃒"; - var nvgt = ">⃒"; - var nvHarr = "⤄"; - var nvinfin = "⧞"; - var nvlArr = "⤂"; - var nvle = "≤⃒"; - var nvlt = "<⃒"; - var nvltrie = "⊴⃒"; - var nvrArr = "⤃"; - var nvrtrie = "⊵⃒"; - var nvsim = "∼⃒"; - var nwarhk = "⤣"; - var nwarr = "↖"; - var nwArr = "⇖"; - var nwarrow = "↖"; - var nwnear = "⤧"; - var Oacute = "Ó"; - var oacute = "ó"; - var oast = "⊛"; - var Ocirc = "Ô"; - var ocirc = "ô"; - var ocir = "⊚"; - var Ocy = "О"; - var ocy = "о"; - var odash = "⊝"; - var Odblac = "Ő"; - var odblac = "ő"; - var odiv = "⨸"; - var odot = "⊙"; - var odsold = "⦼"; - var OElig = "Œ"; - var oelig = "œ"; - var ofcir = "⦿"; - var Ofr = "𝔒"; - var ofr = "𝔬"; - var ogon = "˛"; - var Ograve = "Ò"; - var ograve = "ò"; - var ogt = "⧁"; - var ohbar = "⦵"; - var ohm = "Ω"; - var oint = "∮"; - var olarr = "↺"; - var olcir = "⦾"; - var olcross = "⦻"; - var oline = "‾"; - var olt = "⧀"; - var Omacr = "Ō"; - var omacr = "ō"; - var Omega = "Ω"; - var omega = "ω"; - var Omicron = "Ο"; - var omicron = "ο"; - var omid = "⦶"; - var ominus = "⊖"; - var Oopf = "𝕆"; - var oopf = "𝕠"; - var opar = "⦷"; - var OpenCurlyDoubleQuote = "“"; - var OpenCurlyQuote = "‘"; - var operp = "⦹"; - var oplus = "⊕"; - var orarr = "↻"; - var Or = "⩔"; - var or = "∨"; - var ord = "⩝"; - var order = "ℴ"; - var orderof = "ℴ"; - var ordf = "ª"; - var ordm = "º"; - var origof = "⊶"; - var oror = "⩖"; - var orslope = "⩗"; - var orv = "⩛"; - var oS = "Ⓢ"; - var Oscr = "𝒪"; - var oscr = "ℴ"; - var Oslash = "Ø"; - var oslash = "ø"; - var osol = "⊘"; - var Otilde = "Õ"; - var otilde = "õ"; - var otimesas = "⨶"; - var Otimes = "⨷"; - var otimes = "⊗"; - var Ouml = "Ö"; - var ouml = "ö"; - var ovbar = "⌽"; - var OverBar = "‾"; - var OverBrace = "⏞"; - var OverBracket = "⎴"; - var OverParenthesis = "⏜"; - var para = "¶"; - var parallel = "∥"; - var par = "∥"; - var parsim = "⫳"; - var parsl = "⫽"; - var part = "∂"; - var PartialD = "∂"; - var Pcy = "П"; - var pcy = "п"; - var percnt = "%"; - var period = "."; - var permil = "‰"; - var perp = "⊥"; - var pertenk = "‱"; - var Pfr = "𝔓"; - var pfr = "𝔭"; - var Phi = "Φ"; - var phi = "φ"; - var phiv = "ϕ"; - var phmmat = "ℳ"; - var phone = "☎"; - var Pi = "Π"; - var pi = "π"; - var pitchfork = "⋔"; - var piv = "ϖ"; - var planck = "ℏ"; - var planckh = "ℎ"; - var plankv = "ℏ"; - var plusacir = "⨣"; - var plusb = "⊞"; - var pluscir = "⨢"; - var plus = "+"; - var plusdo = "∔"; - var plusdu = "⨥"; - var pluse = "⩲"; - var PlusMinus = "±"; - var plusmn = "±"; - var plussim = "⨦"; - var plustwo = "⨧"; - var pm = "±"; - var Poincareplane = "ℌ"; - var pointint = "⨕"; - var popf = "𝕡"; - var Popf = "ℙ"; - var pound = "£"; - var prap = "⪷"; - var Pr = "⪻"; - var pr = "≺"; - var prcue = "≼"; - var precapprox = "⪷"; - var prec = "≺"; - var preccurlyeq = "≼"; - var Precedes = "≺"; - var PrecedesEqual = "⪯"; - var PrecedesSlantEqual = "≼"; - var PrecedesTilde = "≾"; - var preceq = "⪯"; - var precnapprox = "⪹"; - var precneqq = "⪵"; - var precnsim = "⋨"; - var pre = "⪯"; - var prE = "⪳"; - var precsim = "≾"; - var prime = "′"; - var Prime = "″"; - var primes = "ℙ"; - var prnap = "⪹"; - var prnE = "⪵"; - var prnsim = "⋨"; - var prod = "∏"; - var Product = "∏"; - var profalar = "⌮"; - var profline = "⌒"; - var profsurf = "⌓"; - var prop = "∝"; - var Proportional = "∝"; - var Proportion = "∷"; - var propto = "∝"; - var prsim = "≾"; - var prurel = "⊰"; - var Pscr = "𝒫"; - var pscr = "𝓅"; - var Psi = "Ψ"; - var psi = "ψ"; - var puncsp = " "; - var Qfr = "𝔔"; - var qfr = "𝔮"; - var qint = "⨌"; - var qopf = "𝕢"; - var Qopf = "ℚ"; - var qprime = "⁗"; - var Qscr = "𝒬"; - var qscr = "𝓆"; - var quaternions = "ℍ"; - var quatint = "⨖"; - var quest = "?"; - var questeq = "≟"; - var quot = "\""; - var QUOT = "\""; - var rAarr = "⇛"; - var race = "∽̱"; - var Racute = "Ŕ"; - var racute = "ŕ"; - var radic = "√"; - var raemptyv = "⦳"; - var rang = "⟩"; - var Rang = "⟫"; - var rangd = "⦒"; - var range = "⦥"; - var rangle = "⟩"; - var raquo = "»"; - var rarrap = "⥵"; - var rarrb = "⇥"; - var rarrbfs = "⤠"; - var rarrc = "⤳"; - var rarr = "→"; - var Rarr = "↠"; - var rArr = "⇒"; - var rarrfs = "⤞"; - var rarrhk = "↪"; - var rarrlp = "↬"; - var rarrpl = "⥅"; - var rarrsim = "⥴"; - var Rarrtl = "⤖"; - var rarrtl = "↣"; - var rarrw = "↝"; - var ratail = "⤚"; - var rAtail = "⤜"; - var ratio = "∶"; - var rationals = "ℚ"; - var rbarr = "⤍"; - var rBarr = "⤏"; - var RBarr = "⤐"; - var rbbrk = "❳"; - var rbrace = "}"; - var rbrack = "]"; - var rbrke = "⦌"; - var rbrksld = "⦎"; - var rbrkslu = "⦐"; - var Rcaron = "Ř"; - var rcaron = "ř"; - var Rcedil = "Ŗ"; - var rcedil = "ŗ"; - var rceil = "⌉"; - var rcub = "}"; - var Rcy = "Р"; - var rcy = "р"; - var rdca = "⤷"; - var rdldhar = "⥩"; - var rdquo = "”"; - var rdquor = "”"; - var rdsh = "↳"; - var real = "ℜ"; - var realine = "ℛ"; - var realpart = "ℜ"; - var reals = "ℝ"; - var Re = "ℜ"; - var rect = "▭"; - var reg = "®"; - var REG = "®"; - var ReverseElement = "∋"; - var ReverseEquilibrium = "⇋"; - var ReverseUpEquilibrium = "⥯"; - var rfisht = "⥽"; - var rfloor = "⌋"; - var rfr = "𝔯"; - var Rfr = "ℜ"; - var rHar = "⥤"; - var rhard = "⇁"; - var rharu = "⇀"; - var rharul = "⥬"; - var Rho = "Ρ"; - var rho = "ρ"; - var rhov = "ϱ"; - var RightAngleBracket = "⟩"; - var RightArrowBar = "⇥"; - var rightarrow = "→"; - var RightArrow = "→"; - var Rightarrow = "⇒"; - var RightArrowLeftArrow = "⇄"; - var rightarrowtail = "↣"; - var RightCeiling = "⌉"; - var RightDoubleBracket = "⟧"; - var RightDownTeeVector = "⥝"; - var RightDownVectorBar = "⥕"; - var RightDownVector = "⇂"; - var RightFloor = "⌋"; - var rightharpoondown = "⇁"; - var rightharpoonup = "⇀"; - var rightleftarrows = "⇄"; - var rightleftharpoons = "⇌"; - var rightrightarrows = "⇉"; - var rightsquigarrow = "↝"; - var RightTeeArrow = "↦"; - var RightTee = "⊢"; - var RightTeeVector = "⥛"; - var rightthreetimes = "⋌"; - var RightTriangleBar = "⧐"; - var RightTriangle = "⊳"; - var RightTriangleEqual = "⊵"; - var RightUpDownVector = "⥏"; - var RightUpTeeVector = "⥜"; - var RightUpVectorBar = "⥔"; - var RightUpVector = "↾"; - var RightVectorBar = "⥓"; - var RightVector = "⇀"; - var ring = "˚"; - var risingdotseq = "≓"; - var rlarr = "⇄"; - var rlhar = "⇌"; - var rlm = "‏"; - var rmoustache = "⎱"; - var rmoust = "⎱"; - var rnmid = "⫮"; - var roang = "⟭"; - var roarr = "⇾"; - var robrk = "⟧"; - var ropar = "⦆"; - var ropf = "𝕣"; - var Ropf = "ℝ"; - var roplus = "⨮"; - var rotimes = "⨵"; - var RoundImplies = "⥰"; - var rpar = ")"; - var rpargt = "⦔"; - var rppolint = "⨒"; - var rrarr = "⇉"; - var Rrightarrow = "⇛"; - var rsaquo = "›"; - var rscr = "𝓇"; - var Rscr = "ℛ"; - var rsh = "↱"; - var Rsh = "↱"; - var rsqb = "]"; - var rsquo = "’"; - var rsquor = "’"; - var rthree = "⋌"; - var rtimes = "⋊"; - var rtri = "▹"; - var rtrie = "⊵"; - var rtrif = "▸"; - var rtriltri = "⧎"; - var RuleDelayed = "⧴"; - var ruluhar = "⥨"; - var rx = "℞"; - var Sacute = "Ś"; - var sacute = "ś"; - var sbquo = "‚"; - var scap = "⪸"; - var Scaron = "Š"; - var scaron = "š"; - var Sc = "⪼"; - var sc = "≻"; - var sccue = "≽"; - var sce = "⪰"; - var scE = "⪴"; - var Scedil = "Ş"; - var scedil = "ş"; - var Scirc = "Ŝ"; - var scirc = "ŝ"; - var scnap = "⪺"; - var scnE = "⪶"; - var scnsim = "⋩"; - var scpolint = "⨓"; - var scsim = "≿"; - var Scy = "С"; - var scy = "с"; - var sdotb = "⊡"; - var sdot = "⋅"; - var sdote = "⩦"; - var searhk = "⤥"; - var searr = "↘"; - var seArr = "⇘"; - var searrow = "↘"; - var sect = "§"; - var semi = ";"; - var seswar = "⤩"; - var setminus = "∖"; - var setmn = "∖"; - var sext = "✶"; - var Sfr = "𝔖"; - var sfr = "𝔰"; - var sfrown = "⌢"; - var sharp = "♯"; - var SHCHcy = "Щ"; - var shchcy = "щ"; - var SHcy = "Ш"; - var shcy = "ш"; - var ShortDownArrow = "↓"; - var ShortLeftArrow = "←"; - var shortmid = "∣"; - var shortparallel = "∥"; - var ShortRightArrow = "→"; - var ShortUpArrow = "↑"; - var shy = "­"; - var Sigma = "Σ"; - var sigma = "σ"; - var sigmaf = "ς"; - var sigmav = "ς"; - var sim = "∼"; - var simdot = "⩪"; - var sime = "≃"; - var simeq = "≃"; - var simg = "⪞"; - var simgE = "⪠"; - var siml = "⪝"; - var simlE = "⪟"; - var simne = "≆"; - var simplus = "⨤"; - var simrarr = "⥲"; - var slarr = "←"; - var SmallCircle = "∘"; - var smallsetminus = "∖"; - var smashp = "⨳"; - var smeparsl = "⧤"; - var smid = "∣"; - var smile = "⌣"; - var smt = "⪪"; - var smte = "⪬"; - var smtes = "⪬︀"; - var SOFTcy = "Ь"; - var softcy = "ь"; - var solbar = "⌿"; - var solb = "⧄"; - var sol = "/"; - var Sopf = "𝕊"; - var sopf = "𝕤"; - var spades = "♠"; - var spadesuit = "♠"; - var spar = "∥"; - var sqcap = "⊓"; - var sqcaps = "⊓︀"; - var sqcup = "⊔"; - var sqcups = "⊔︀"; - var Sqrt = "√"; - var sqsub = "⊏"; - var sqsube = "⊑"; - var sqsubset = "⊏"; - var sqsubseteq = "⊑"; - var sqsup = "⊐"; - var sqsupe = "⊒"; - var sqsupset = "⊐"; - var sqsupseteq = "⊒"; - var square = "□"; - var Square = "□"; - var SquareIntersection = "⊓"; - var SquareSubset = "⊏"; - var SquareSubsetEqual = "⊑"; - var SquareSuperset = "⊐"; - var SquareSupersetEqual = "⊒"; - var SquareUnion = "⊔"; - var squarf = "▪"; - var squ = "□"; - var squf = "▪"; - var srarr = "→"; - var Sscr = "𝒮"; - var sscr = "𝓈"; - var ssetmn = "∖"; - var ssmile = "⌣"; - var sstarf = "⋆"; - var Star = "⋆"; - var star = "☆"; - var starf = "★"; - var straightepsilon = "ϵ"; - var straightphi = "ϕ"; - var strns = "¯"; - var sub = "⊂"; - var Sub = "⋐"; - var subdot = "⪽"; - var subE = "⫅"; - var sube = "⊆"; - var subedot = "⫃"; - var submult = "⫁"; - var subnE = "⫋"; - var subne = "⊊"; - var subplus = "⪿"; - var subrarr = "⥹"; - var subset = "⊂"; - var Subset = "⋐"; - var subseteq = "⊆"; - var subseteqq = "⫅"; - var SubsetEqual = "⊆"; - var subsetneq = "⊊"; - var subsetneqq = "⫋"; - var subsim = "⫇"; - var subsub = "⫕"; - var subsup = "⫓"; - var succapprox = "⪸"; - var succ = "≻"; - var succcurlyeq = "≽"; - var Succeeds = "≻"; - var SucceedsEqual = "⪰"; - var SucceedsSlantEqual = "≽"; - var SucceedsTilde = "≿"; - var succeq = "⪰"; - var succnapprox = "⪺"; - var succneqq = "⪶"; - var succnsim = "⋩"; - var succsim = "≿"; - var SuchThat = "∋"; - var sum = "∑"; - var Sum = "∑"; - var sung = "♪"; - var sup1 = "¹"; - var sup2 = "²"; - var sup3 = "³"; - var sup = "⊃"; - var Sup = "⋑"; - var supdot = "⪾"; - var supdsub = "⫘"; - var supE = "⫆"; - var supe = "⊇"; - var supedot = "⫄"; - var Superset = "⊃"; - var SupersetEqual = "⊇"; - var suphsol = "⟉"; - var suphsub = "⫗"; - var suplarr = "⥻"; - var supmult = "⫂"; - var supnE = "⫌"; - var supne = "⊋"; - var supplus = "⫀"; - var supset = "⊃"; - var Supset = "⋑"; - var supseteq = "⊇"; - var supseteqq = "⫆"; - var supsetneq = "⊋"; - var supsetneqq = "⫌"; - var supsim = "⫈"; - var supsub = "⫔"; - var supsup = "⫖"; - var swarhk = "⤦"; - var swarr = "↙"; - var swArr = "⇙"; - var swarrow = "↙"; - var swnwar = "⤪"; - var szlig = "ß"; - var Tab = "\t"; - var target = "⌖"; - var Tau = "Τ"; - var tau = "τ"; - var tbrk = "⎴"; - var Tcaron = "Ť"; - var tcaron = "ť"; - var Tcedil = "Ţ"; - var tcedil = "ţ"; - var Tcy = "Т"; - var tcy = "т"; - var tdot = "⃛"; - var telrec = "⌕"; - var Tfr = "𝔗"; - var tfr = "𝔱"; - var there4 = "∴"; - var therefore = "∴"; - var Therefore = "∴"; - var Theta = "Θ"; - var theta = "θ"; - var thetasym = "ϑ"; - var thetav = "ϑ"; - var thickapprox = "≈"; - var thicksim = "∼"; - var ThickSpace = "  "; - var ThinSpace = " "; - var thinsp = " "; - var thkap = "≈"; - var thksim = "∼"; - var THORN = "Þ"; - var thorn = "þ"; - var tilde = "˜"; - var Tilde = "∼"; - var TildeEqual = "≃"; - var TildeFullEqual = "≅"; - var TildeTilde = "≈"; - var timesbar = "⨱"; - var timesb = "⊠"; - var times = "×"; - var timesd = "⨰"; - var tint = "∭"; - var toea = "⤨"; - var topbot = "⌶"; - var topcir = "⫱"; - var top = "⊤"; - var Topf = "𝕋"; - var topf = "𝕥"; - var topfork = "⫚"; - var tosa = "⤩"; - var tprime = "‴"; - var trade = "™"; - var TRADE = "™"; - var triangle = "▵"; - var triangledown = "▿"; - var triangleleft = "◃"; - var trianglelefteq = "⊴"; - var triangleq = "≜"; - var triangleright = "▹"; - var trianglerighteq = "⊵"; - var tridot = "◬"; - var trie = "≜"; - var triminus = "⨺"; - var TripleDot = "⃛"; - var triplus = "⨹"; - var trisb = "⧍"; - var tritime = "⨻"; - var trpezium = "⏢"; - var Tscr = "𝒯"; - var tscr = "𝓉"; - var TScy = "Ц"; - var tscy = "ц"; - var TSHcy = "Ћ"; - var tshcy = "ћ"; - var Tstrok = "Ŧ"; - var tstrok = "ŧ"; - var twixt = "≬"; - var twoheadleftarrow = "↞"; - var twoheadrightarrow = "↠"; - var Uacute = "Ú"; - var uacute = "ú"; - var uarr = "↑"; - var Uarr = "↟"; - var uArr = "⇑"; - var Uarrocir = "⥉"; - var Ubrcy = "Ў"; - var ubrcy = "ў"; - var Ubreve = "Ŭ"; - var ubreve = "ŭ"; - var Ucirc = "Û"; - var ucirc = "û"; - var Ucy = "У"; - var ucy = "у"; - var udarr = "⇅"; - var Udblac = "Ű"; - var udblac = "ű"; - var udhar = "⥮"; - var ufisht = "⥾"; - var Ufr = "𝔘"; - var ufr = "𝔲"; - var Ugrave = "Ù"; - var ugrave = "ù"; - var uHar = "⥣"; - var uharl = "↿"; - var uharr = "↾"; - var uhblk = "▀"; - var ulcorn = "⌜"; - var ulcorner = "⌜"; - var ulcrop = "⌏"; - var ultri = "◸"; - var Umacr = "Ū"; - var umacr = "ū"; - var uml = "¨"; - var UnderBar = "_"; - var UnderBrace = "⏟"; - var UnderBracket = "⎵"; - var UnderParenthesis = "⏝"; - var Union = "⋃"; - var UnionPlus = "⊎"; - var Uogon = "Ų"; - var uogon = "ų"; - var Uopf = "𝕌"; - var uopf = "𝕦"; - var UpArrowBar = "⤒"; - var uparrow = "↑"; - var UpArrow = "↑"; - var Uparrow = "⇑"; - var UpArrowDownArrow = "⇅"; - var updownarrow = "↕"; - var UpDownArrow = "↕"; - var Updownarrow = "⇕"; - var UpEquilibrium = "⥮"; - var upharpoonleft = "↿"; - var upharpoonright = "↾"; - var uplus = "⊎"; - var UpperLeftArrow = "↖"; - var UpperRightArrow = "↗"; - var upsi = "υ"; - var Upsi = "ϒ"; - var upsih = "ϒ"; - var Upsilon = "Υ"; - var upsilon = "υ"; - var UpTeeArrow = "↥"; - var UpTee = "⊥"; - var upuparrows = "⇈"; - var urcorn = "⌝"; - var urcorner = "⌝"; - var urcrop = "⌎"; - var Uring = "Ů"; - var uring = "ů"; - var urtri = "◹"; - var Uscr = "𝒰"; - var uscr = "𝓊"; - var utdot = "⋰"; - var Utilde = "Ũ"; - var utilde = "ũ"; - var utri = "▵"; - var utrif = "▴"; - var uuarr = "⇈"; - var Uuml = "Ü"; - var uuml = "ü"; - var uwangle = "⦧"; - var vangrt = "⦜"; - var varepsilon = "ϵ"; - var varkappa = "ϰ"; - var varnothing = "∅"; - var varphi = "ϕ"; - var varpi = "ϖ"; - var varpropto = "∝"; - var varr = "↕"; - var vArr = "⇕"; - var varrho = "ϱ"; - var varsigma = "ς"; - var varsubsetneq = "⊊︀"; - var varsubsetneqq = "⫋︀"; - var varsupsetneq = "⊋︀"; - var varsupsetneqq = "⫌︀"; - var vartheta = "ϑ"; - var vartriangleleft = "⊲"; - var vartriangleright = "⊳"; - var vBar = "⫨"; - var Vbar = "⫫"; - var vBarv = "⫩"; - var Vcy = "В"; - var vcy = "в"; - var vdash = "⊢"; - var vDash = "⊨"; - var Vdash = "⊩"; - var VDash = "⊫"; - var Vdashl = "⫦"; - var veebar = "⊻"; - var vee = "∨"; - var Vee = "⋁"; - var veeeq = "≚"; - var vellip = "⋮"; - var verbar = "|"; - var Verbar = "‖"; - var vert = "|"; - var Vert = "‖"; - var VerticalBar = "∣"; - var VerticalLine = "|"; - var VerticalSeparator = "❘"; - var VerticalTilde = "≀"; - var VeryThinSpace = " "; - var Vfr = "𝔙"; - var vfr = "𝔳"; - var vltri = "⊲"; - var vnsub = "⊂⃒"; - var vnsup = "⊃⃒"; - var Vopf = "𝕍"; - var vopf = "𝕧"; - var vprop = "∝"; - var vrtri = "⊳"; - var Vscr = "𝒱"; - var vscr = "𝓋"; - var vsubnE = "⫋︀"; - var vsubne = "⊊︀"; - var vsupnE = "⫌︀"; - var vsupne = "⊋︀"; - var Vvdash = "⊪"; - var vzigzag = "⦚"; - var Wcirc = "Ŵ"; - var wcirc = "ŵ"; - var wedbar = "⩟"; - var wedge = "∧"; - var Wedge = "⋀"; - var wedgeq = "≙"; - var weierp = "℘"; - var Wfr = "𝔚"; - var wfr = "𝔴"; - var Wopf = "𝕎"; - var wopf = "𝕨"; - var wp = "℘"; - var wr = "≀"; - var wreath = "≀"; - var Wscr = "𝒲"; - var wscr = "𝓌"; - var xcap = "⋂"; - var xcirc = "◯"; - var xcup = "⋃"; - var xdtri = "▽"; - var Xfr = "𝔛"; - var xfr = "𝔵"; - var xharr = "⟷"; - var xhArr = "⟺"; - var Xi = "Ξ"; - var xi = "ξ"; - var xlarr = "⟵"; - var xlArr = "⟸"; - var xmap = "⟼"; - var xnis = "⋻"; - var xodot = "⨀"; - var Xopf = "𝕏"; - var xopf = "𝕩"; - var xoplus = "⨁"; - var xotime = "⨂"; - var xrarr = "⟶"; - var xrArr = "⟹"; - var Xscr = "𝒳"; - var xscr = "𝓍"; - var xsqcup = "⨆"; - var xuplus = "⨄"; - var xutri = "△"; - var xvee = "⋁"; - var xwedge = "⋀"; - var Yacute = "Ý"; - var yacute = "ý"; - var YAcy = "Я"; - var yacy = "я"; - var Ycirc = "Ŷ"; - var ycirc = "ŷ"; - var Ycy = "Ы"; - var ycy = "ы"; - var yen = "¥"; - var Yfr = "𝔜"; - var yfr = "𝔶"; - var YIcy = "Ї"; - var yicy = "ї"; - var Yopf = "𝕐"; - var yopf = "𝕪"; - var Yscr = "𝒴"; - var yscr = "𝓎"; - var YUcy = "Ю"; - var yucy = "ю"; - var yuml = "ÿ"; - var Yuml = "Ÿ"; - var Zacute = "Ź"; - var zacute = "ź"; - var Zcaron = "Ž"; - var zcaron = "ž"; - var Zcy = "З"; - var zcy = "з"; - var Zdot = "Ż"; - var zdot = "ż"; - var zeetrf = "ℨ"; - var ZeroWidthSpace = "​"; - var Zeta = "Ζ"; - var zeta = "ζ"; - var zfr = "𝔷"; - var Zfr = "ℨ"; - var ZHcy = "Ж"; - var zhcy = "ж"; - var zigrarr = "⇝"; - var zopf = "𝕫"; - var Zopf = "ℤ"; - var Zscr = "𝒵"; - var zscr = "𝓏"; - var zwj = "‍"; - var zwnj = "‌"; - var entities = { - Aacute: Aacute, - aacute: aacute, - Abreve: Abreve, - abreve: abreve, - ac: ac, - acd: acd, - acE: acE, - Acirc: Acirc, - acirc: acirc, - acute: acute, - Acy: Acy, - acy: acy, - AElig: AElig, - aelig: aelig, - af: af, - Afr: Afr, - afr: afr, - Agrave: Agrave, - agrave: agrave, - alefsym: alefsym, - aleph: aleph, - Alpha: Alpha, - alpha: alpha, - Amacr: Amacr, - amacr: amacr, - amalg: amalg, - amp: amp, - AMP: AMP, - andand: andand, - And: And, - and: and, - andd: andd, - andslope: andslope, - andv: andv, - ang: ang, - ange: ange, - angle: angle, - angmsdaa: angmsdaa, - angmsdab: angmsdab, - angmsdac: angmsdac, - angmsdad: angmsdad, - angmsdae: angmsdae, - angmsdaf: angmsdaf, - angmsdag: angmsdag, - angmsdah: angmsdah, - angmsd: angmsd, - angrt: angrt, - angrtvb: angrtvb, - angrtvbd: angrtvbd, - angsph: angsph, - angst: angst, - angzarr: angzarr, - Aogon: Aogon, - aogon: aogon, - Aopf: Aopf, - aopf: aopf, - apacir: apacir, - ap: ap, - apE: apE, - ape: ape, - apid: apid, - apos: apos, - ApplyFunction: ApplyFunction, - approx: approx, - approxeq: approxeq, - Aring: Aring, - aring: aring, - Ascr: Ascr, - ascr: ascr, - Assign: Assign, - ast: ast, - asymp: asymp, - asympeq: asympeq, - Atilde: Atilde, - atilde: atilde, - Auml: Auml, - auml: auml, - awconint: awconint, - awint: awint, - backcong: backcong, - backepsilon: backepsilon, - backprime: backprime, - backsim: backsim, - backsimeq: backsimeq, - Backslash: Backslash, - Barv: Barv, - barvee: barvee, - barwed: barwed, - Barwed: Barwed, - barwedge: barwedge, - bbrk: bbrk, - bbrktbrk: bbrktbrk, - bcong: bcong, - Bcy: Bcy, - bcy: bcy, - bdquo: bdquo, - becaus: becaus, - because: because, - Because: Because, - bemptyv: bemptyv, - bepsi: bepsi, - bernou: bernou, - Bernoullis: Bernoullis, - Beta: Beta, - beta: beta, - beth: beth, - between: between, - Bfr: Bfr, - bfr: bfr, - bigcap: bigcap, - bigcirc: bigcirc, - bigcup: bigcup, - bigodot: bigodot, - bigoplus: bigoplus, - bigotimes: bigotimes, - bigsqcup: bigsqcup, - bigstar: bigstar, - bigtriangledown: bigtriangledown, - bigtriangleup: bigtriangleup, - biguplus: biguplus, - bigvee: bigvee, - bigwedge: bigwedge, - bkarow: bkarow, - blacklozenge: blacklozenge, - blacksquare: blacksquare, - blacktriangle: blacktriangle, - blacktriangledown: blacktriangledown, - blacktriangleleft: blacktriangleleft, - blacktriangleright: blacktriangleright, - blank: blank, - blk12: blk12, - blk14: blk14, - blk34: blk34, - block: block, - bne: bne, - bnequiv: bnequiv, - bNot: bNot, - bnot: bnot, - Bopf: Bopf, - bopf: bopf, - bot: bot, - bottom: bottom, - bowtie: bowtie, - boxbox: boxbox, - boxdl: boxdl, - boxdL: boxdL, - boxDl: boxDl, - boxDL: boxDL, - boxdr: boxdr, - boxdR: boxdR, - boxDr: boxDr, - boxDR: boxDR, - boxh: boxh, - boxH: boxH, - boxhd: boxhd, - boxHd: boxHd, - boxhD: boxhD, - boxHD: boxHD, - boxhu: boxhu, - boxHu: boxHu, - boxhU: boxhU, - boxHU: boxHU, - boxminus: boxminus, - boxplus: boxplus, - boxtimes: boxtimes, - boxul: boxul, - boxuL: boxuL, - boxUl: boxUl, - boxUL: boxUL, - boxur: boxur, - boxuR: boxuR, - boxUr: boxUr, - boxUR: boxUR, - boxv: boxv, - boxV: boxV, - boxvh: boxvh, - boxvH: boxvH, - boxVh: boxVh, - boxVH: boxVH, - boxvl: boxvl, - boxvL: boxvL, - boxVl: boxVl, - boxVL: boxVL, - boxvr: boxvr, - boxvR: boxvR, - boxVr: boxVr, - boxVR: boxVR, - bprime: bprime, - breve: breve, - Breve: Breve, - brvbar: brvbar, - bscr: bscr, - Bscr: Bscr, - bsemi: bsemi, - bsim: bsim, - bsime: bsime, - bsolb: bsolb, - bsol: bsol, - bsolhsub: bsolhsub, - bull: bull, - bullet: bullet, - bump: bump, - bumpE: bumpE, - bumpe: bumpe, - Bumpeq: Bumpeq, - bumpeq: bumpeq, - Cacute: Cacute, - cacute: cacute, - capand: capand, - capbrcup: capbrcup, - capcap: capcap, - cap: cap, - Cap: Cap, - capcup: capcup, - capdot: capdot, - CapitalDifferentialD: CapitalDifferentialD, - caps: caps, - caret: caret, - caron: caron, - Cayleys: Cayleys, - ccaps: ccaps, - Ccaron: Ccaron, - ccaron: ccaron, - Ccedil: Ccedil, - ccedil: ccedil, - Ccirc: Ccirc, - ccirc: ccirc, - Cconint: Cconint, - ccups: ccups, - ccupssm: ccupssm, - Cdot: Cdot, - cdot: cdot, - cedil: cedil, - Cedilla: Cedilla, - cemptyv: cemptyv, - cent: cent, - centerdot: centerdot, - CenterDot: CenterDot, - cfr: cfr, - Cfr: Cfr, - CHcy: CHcy, - chcy: chcy, - check: check, - checkmark: checkmark, - Chi: Chi, - chi: chi, - circ: circ, - circeq: circeq, - circlearrowleft: circlearrowleft, - circlearrowright: circlearrowright, - circledast: circledast, - circledcirc: circledcirc, - circleddash: circleddash, - CircleDot: CircleDot, - circledR: circledR, - circledS: circledS, - CircleMinus: CircleMinus, - CirclePlus: CirclePlus, - CircleTimes: CircleTimes, - cir: cir, - cirE: cirE, - cire: cire, - cirfnint: cirfnint, - cirmid: cirmid, - cirscir: cirscir, - ClockwiseContourIntegral: ClockwiseContourIntegral, - CloseCurlyDoubleQuote: CloseCurlyDoubleQuote, - CloseCurlyQuote: CloseCurlyQuote, - clubs: clubs, - clubsuit: clubsuit, - colon: colon, - Colon: Colon, - Colone: Colone, - colone: colone, - coloneq: coloneq, - comma: comma, - commat: commat, - comp: comp, - compfn: compfn, - complement: complement, - complexes: complexes, - cong: cong, - congdot: congdot, - Congruent: Congruent, - conint: conint, - Conint: Conint, - ContourIntegral: ContourIntegral, - copf: copf, - Copf: Copf, - coprod: coprod, - Coproduct: Coproduct, - copy: copy, - COPY: COPY, - copysr: copysr, - CounterClockwiseContourIntegral: CounterClockwiseContourIntegral, - crarr: crarr, - cross: cross, - Cross: Cross, - Cscr: Cscr, - cscr: cscr, - csub: csub, - csube: csube, - csup: csup, - csupe: csupe, - ctdot: ctdot, - cudarrl: cudarrl, - cudarrr: cudarrr, - cuepr: cuepr, - cuesc: cuesc, - cularr: cularr, - cularrp: cularrp, - cupbrcap: cupbrcap, - cupcap: cupcap, - CupCap: CupCap, - cup: cup, - Cup: Cup, - cupcup: cupcup, - cupdot: cupdot, - cupor: cupor, - cups: cups, - curarr: curarr, - curarrm: curarrm, - curlyeqprec: curlyeqprec, - curlyeqsucc: curlyeqsucc, - curlyvee: curlyvee, - curlywedge: curlywedge, - curren: curren, - curvearrowleft: curvearrowleft, - curvearrowright: curvearrowright, - cuvee: cuvee, - cuwed: cuwed, - cwconint: cwconint, - cwint: cwint, - cylcty: cylcty, - dagger: dagger, - Dagger: Dagger, - daleth: daleth, - darr: darr, - Darr: Darr, - dArr: dArr, - dash: dash, - Dashv: Dashv, - dashv: dashv, - dbkarow: dbkarow, - dblac: dblac, - Dcaron: Dcaron, - dcaron: dcaron, - Dcy: Dcy, - dcy: dcy, - ddagger: ddagger, - ddarr: ddarr, - DD: DD, - dd: dd, - DDotrahd: DDotrahd, - ddotseq: ddotseq, - deg: deg, - Del: Del, - Delta: Delta, - delta: delta, - demptyv: demptyv, - dfisht: dfisht, - Dfr: Dfr, - dfr: dfr, - dHar: dHar, - dharl: dharl, - dharr: dharr, - DiacriticalAcute: DiacriticalAcute, - DiacriticalDot: DiacriticalDot, - DiacriticalDoubleAcute: DiacriticalDoubleAcute, - DiacriticalGrave: DiacriticalGrave, - DiacriticalTilde: DiacriticalTilde, - diam: diam, - diamond: diamond, - Diamond: Diamond, - diamondsuit: diamondsuit, - diams: diams, - die: die, - DifferentialD: DifferentialD, - digamma: digamma, - disin: disin, - div: div, - divide: divide, - divideontimes: divideontimes, - divonx: divonx, - DJcy: DJcy, - djcy: djcy, - dlcorn: dlcorn, - dlcrop: dlcrop, - dollar: dollar, - Dopf: Dopf, - dopf: dopf, - Dot: Dot, - dot: dot, - DotDot: DotDot, - doteq: doteq, - doteqdot: doteqdot, - DotEqual: DotEqual, - dotminus: dotminus, - dotplus: dotplus, - dotsquare: dotsquare, - doublebarwedge: doublebarwedge, - DoubleContourIntegral: DoubleContourIntegral, - DoubleDot: DoubleDot, - DoubleDownArrow: DoubleDownArrow, - DoubleLeftArrow: DoubleLeftArrow, - DoubleLeftRightArrow: DoubleLeftRightArrow, - DoubleLeftTee: DoubleLeftTee, - DoubleLongLeftArrow: DoubleLongLeftArrow, - DoubleLongLeftRightArrow: DoubleLongLeftRightArrow, - DoubleLongRightArrow: DoubleLongRightArrow, - DoubleRightArrow: DoubleRightArrow, - DoubleRightTee: DoubleRightTee, - DoubleUpArrow: DoubleUpArrow, - DoubleUpDownArrow: DoubleUpDownArrow, - DoubleVerticalBar: DoubleVerticalBar, - DownArrowBar: DownArrowBar, - downarrow: downarrow, - DownArrow: DownArrow, - Downarrow: Downarrow, - DownArrowUpArrow: DownArrowUpArrow, - DownBreve: DownBreve, - downdownarrows: downdownarrows, - downharpoonleft: downharpoonleft, - downharpoonright: downharpoonright, - DownLeftRightVector: DownLeftRightVector, - DownLeftTeeVector: DownLeftTeeVector, - DownLeftVectorBar: DownLeftVectorBar, - DownLeftVector: DownLeftVector, - DownRightTeeVector: DownRightTeeVector, - DownRightVectorBar: DownRightVectorBar, - DownRightVector: DownRightVector, - DownTeeArrow: DownTeeArrow, - DownTee: DownTee, - drbkarow: drbkarow, - drcorn: drcorn, - drcrop: drcrop, - Dscr: Dscr, - dscr: dscr, - DScy: DScy, - dscy: dscy, - dsol: dsol, - Dstrok: Dstrok, - dstrok: dstrok, - dtdot: dtdot, - dtri: dtri, - dtrif: dtrif, - duarr: duarr, - duhar: duhar, - dwangle: dwangle, - DZcy: DZcy, - dzcy: dzcy, - dzigrarr: dzigrarr, - Eacute: Eacute, - eacute: eacute, - easter: easter, - Ecaron: Ecaron, - ecaron: ecaron, - Ecirc: Ecirc, - ecirc: ecirc, - ecir: ecir, - ecolon: ecolon, - Ecy: Ecy, - ecy: ecy, - eDDot: eDDot, - Edot: Edot, - edot: edot, - eDot: eDot, - ee: ee, - efDot: efDot, - Efr: Efr, - efr: efr, - eg: eg, - Egrave: Egrave, - egrave: egrave, - egs: egs, - egsdot: egsdot, - el: el, - Element: Element, - elinters: elinters, - ell: ell, - els: els, - elsdot: elsdot, - Emacr: Emacr, - emacr: emacr, - empty: empty, - emptyset: emptyset, - EmptySmallSquare: EmptySmallSquare, - emptyv: emptyv, - EmptyVerySmallSquare: EmptyVerySmallSquare, - emsp13: emsp13, - emsp14: emsp14, - emsp: emsp, - ENG: ENG, - eng: eng, - ensp: ensp, - Eogon: Eogon, - eogon: eogon, - Eopf: Eopf, - eopf: eopf, - epar: epar, - eparsl: eparsl, - eplus: eplus, - epsi: epsi, - Epsilon: Epsilon, - epsilon: epsilon, - epsiv: epsiv, - eqcirc: eqcirc, - eqcolon: eqcolon, - eqsim: eqsim, - eqslantgtr: eqslantgtr, - eqslantless: eqslantless, - Equal: Equal, - equals: equals, - EqualTilde: EqualTilde, - equest: equest, - Equilibrium: Equilibrium, - equiv: equiv, - equivDD: equivDD, - eqvparsl: eqvparsl, - erarr: erarr, - erDot: erDot, - escr: escr, - Escr: Escr, - esdot: esdot, - Esim: Esim, - esim: esim, - Eta: Eta, - eta: eta, - ETH: ETH, - eth: eth, - Euml: Euml, - euml: euml, - euro: euro, - excl: excl, - exist: exist, - Exists: Exists, - expectation: expectation, - exponentiale: exponentiale, - ExponentialE: ExponentialE, - fallingdotseq: fallingdotseq, - Fcy: Fcy, - fcy: fcy, - female: female, - ffilig: ffilig, - fflig: fflig, - ffllig: ffllig, - Ffr: Ffr, - ffr: ffr, - filig: filig, - FilledSmallSquare: FilledSmallSquare, - FilledVerySmallSquare: FilledVerySmallSquare, - fjlig: fjlig, - flat: flat, - fllig: fllig, - fltns: fltns, - fnof: fnof, - Fopf: Fopf, - fopf: fopf, - forall: forall, - ForAll: ForAll, - fork: fork, - forkv: forkv, - Fouriertrf: Fouriertrf, - fpartint: fpartint, - frac12: frac12, - frac13: frac13, - frac14: frac14, - frac15: frac15, - frac16: frac16, - frac18: frac18, - frac23: frac23, - frac25: frac25, - frac34: frac34, - frac35: frac35, - frac38: frac38, - frac45: frac45, - frac56: frac56, - frac58: frac58, - frac78: frac78, - frasl: frasl, - frown: frown, - fscr: fscr, - Fscr: Fscr, - gacute: gacute, - Gamma: Gamma, - gamma: gamma, - Gammad: Gammad, - gammad: gammad, - gap: gap, - Gbreve: Gbreve, - gbreve: gbreve, - Gcedil: Gcedil, - Gcirc: Gcirc, - gcirc: gcirc, - Gcy: Gcy, - gcy: gcy, - Gdot: Gdot, - gdot: gdot, - ge: ge, - gE: gE, - gEl: gEl, - gel: gel, - geq: geq, - geqq: geqq, - geqslant: geqslant, - gescc: gescc, - ges: ges, - gesdot: gesdot, - gesdoto: gesdoto, - gesdotol: gesdotol, - gesl: gesl, - gesles: gesles, - Gfr: Gfr, - gfr: gfr, - gg: gg, - Gg: Gg, - ggg: ggg, - gimel: gimel, - GJcy: GJcy, - gjcy: gjcy, - gla: gla, - gl: gl, - glE: glE, - glj: glj, - gnap: gnap, - gnapprox: gnapprox, - gne: gne, - gnE: gnE, - gneq: gneq, - gneqq: gneqq, - gnsim: gnsim, - Gopf: Gopf, - gopf: gopf, - grave: grave, - GreaterEqual: GreaterEqual, - GreaterEqualLess: GreaterEqualLess, - GreaterFullEqual: GreaterFullEqual, - GreaterGreater: GreaterGreater, - GreaterLess: GreaterLess, - GreaterSlantEqual: GreaterSlantEqual, - GreaterTilde: GreaterTilde, - Gscr: Gscr, - gscr: gscr, - gsim: gsim, - gsime: gsime, - gsiml: gsiml, - gtcc: gtcc, - gtcir: gtcir, - gt: gt, - GT: GT, - Gt: Gt, - gtdot: gtdot, - gtlPar: gtlPar, - gtquest: gtquest, - gtrapprox: gtrapprox, - gtrarr: gtrarr, - gtrdot: gtrdot, - gtreqless: gtreqless, - gtreqqless: gtreqqless, - gtrless: gtrless, - gtrsim: gtrsim, - gvertneqq: gvertneqq, - gvnE: gvnE, - Hacek: Hacek, - hairsp: hairsp, - half: half, - hamilt: hamilt, - HARDcy: HARDcy, - hardcy: hardcy, - harrcir: harrcir, - harr: harr, - hArr: hArr, - harrw: harrw, - Hat: Hat, - hbar: hbar, - Hcirc: Hcirc, - hcirc: hcirc, - hearts: hearts, - heartsuit: heartsuit, - hellip: hellip, - hercon: hercon, - hfr: hfr, - Hfr: Hfr, - HilbertSpace: HilbertSpace, - hksearow: hksearow, - hkswarow: hkswarow, - hoarr: hoarr, - homtht: homtht, - hookleftarrow: hookleftarrow, - hookrightarrow: hookrightarrow, - hopf: hopf, - Hopf: Hopf, - horbar: horbar, - HorizontalLine: HorizontalLine, - hscr: hscr, - Hscr: Hscr, - hslash: hslash, - Hstrok: Hstrok, - hstrok: hstrok, - HumpDownHump: HumpDownHump, - HumpEqual: HumpEqual, - hybull: hybull, - hyphen: hyphen, - Iacute: Iacute, - iacute: iacute, - ic: ic, - Icirc: Icirc, - icirc: icirc, - Icy: Icy, - icy: icy, - Idot: Idot, - IEcy: IEcy, - iecy: iecy, - iexcl: iexcl, - iff: iff, - ifr: ifr, - Ifr: Ifr, - Igrave: Igrave, - igrave: igrave, - ii: ii, - iiiint: iiiint, - iiint: iiint, - iinfin: iinfin, - iiota: iiota, - IJlig: IJlig, - ijlig: ijlig, - Imacr: Imacr, - imacr: imacr, - image: image, - ImaginaryI: ImaginaryI, - imagline: imagline, - imagpart: imagpart, - imath: imath, - Im: Im, - imof: imof, - imped: imped, - Implies: Implies, - incare: incare, - "in": "∈", - infin: infin, - infintie: infintie, - inodot: inodot, - intcal: intcal, - int: int, - Int: Int, - integers: integers, - Integral: Integral, - intercal: intercal, - Intersection: Intersection, - intlarhk: intlarhk, - intprod: intprod, - InvisibleComma: InvisibleComma, - InvisibleTimes: InvisibleTimes, - IOcy: IOcy, - iocy: iocy, - Iogon: Iogon, - iogon: iogon, - Iopf: Iopf, - iopf: iopf, - Iota: Iota, - iota: iota, - iprod: iprod, - iquest: iquest, - iscr: iscr, - Iscr: Iscr, - isin: isin, - isindot: isindot, - isinE: isinE, - isins: isins, - isinsv: isinsv, - isinv: isinv, - it: it, - Itilde: Itilde, - itilde: itilde, - Iukcy: Iukcy, - iukcy: iukcy, - Iuml: Iuml, - iuml: iuml, - Jcirc: Jcirc, - jcirc: jcirc, - Jcy: Jcy, - jcy: jcy, - Jfr: Jfr, - jfr: jfr, - jmath: jmath, - Jopf: Jopf, - jopf: jopf, - Jscr: Jscr, - jscr: jscr, - Jsercy: Jsercy, - jsercy: jsercy, - Jukcy: Jukcy, - jukcy: jukcy, - Kappa: Kappa, - kappa: kappa, - kappav: kappav, - Kcedil: Kcedil, - kcedil: kcedil, - Kcy: Kcy, - kcy: kcy, - Kfr: Kfr, - kfr: kfr, - kgreen: kgreen, - KHcy: KHcy, - khcy: khcy, - KJcy: KJcy, - kjcy: kjcy, - Kopf: Kopf, - kopf: kopf, - Kscr: Kscr, - kscr: kscr, - lAarr: lAarr, - Lacute: Lacute, - lacute: lacute, - laemptyv: laemptyv, - lagran: lagran, - Lambda: Lambda, - lambda: lambda, - lang: lang, - Lang: Lang, - langd: langd, - langle: langle, - lap: lap, - Laplacetrf: Laplacetrf, - laquo: laquo, - larrb: larrb, - larrbfs: larrbfs, - larr: larr, - Larr: Larr, - lArr: lArr, - larrfs: larrfs, - larrhk: larrhk, - larrlp: larrlp, - larrpl: larrpl, - larrsim: larrsim, - larrtl: larrtl, - latail: latail, - lAtail: lAtail, - lat: lat, - late: late, - lates: lates, - lbarr: lbarr, - lBarr: lBarr, - lbbrk: lbbrk, - lbrace: lbrace, - lbrack: lbrack, - lbrke: lbrke, - lbrksld: lbrksld, - lbrkslu: lbrkslu, - Lcaron: Lcaron, - lcaron: lcaron, - Lcedil: Lcedil, - lcedil: lcedil, - lceil: lceil, - lcub: lcub, - Lcy: Lcy, - lcy: lcy, - ldca: ldca, - ldquo: ldquo, - ldquor: ldquor, - ldrdhar: ldrdhar, - ldrushar: ldrushar, - ldsh: ldsh, - le: le, - lE: lE, - LeftAngleBracket: LeftAngleBracket, - LeftArrowBar: LeftArrowBar, - leftarrow: leftarrow, - LeftArrow: LeftArrow, - Leftarrow: Leftarrow, - LeftArrowRightArrow: LeftArrowRightArrow, - leftarrowtail: leftarrowtail, - LeftCeiling: LeftCeiling, - LeftDoubleBracket: LeftDoubleBracket, - LeftDownTeeVector: LeftDownTeeVector, - LeftDownVectorBar: LeftDownVectorBar, - LeftDownVector: LeftDownVector, - LeftFloor: LeftFloor, - leftharpoondown: leftharpoondown, - leftharpoonup: leftharpoonup, - leftleftarrows: leftleftarrows, - leftrightarrow: leftrightarrow, - LeftRightArrow: LeftRightArrow, - Leftrightarrow: Leftrightarrow, - leftrightarrows: leftrightarrows, - leftrightharpoons: leftrightharpoons, - leftrightsquigarrow: leftrightsquigarrow, - LeftRightVector: LeftRightVector, - LeftTeeArrow: LeftTeeArrow, - LeftTee: LeftTee, - LeftTeeVector: LeftTeeVector, - leftthreetimes: leftthreetimes, - LeftTriangleBar: LeftTriangleBar, - LeftTriangle: LeftTriangle, - LeftTriangleEqual: LeftTriangleEqual, - LeftUpDownVector: LeftUpDownVector, - LeftUpTeeVector: LeftUpTeeVector, - LeftUpVectorBar: LeftUpVectorBar, - LeftUpVector: LeftUpVector, - LeftVectorBar: LeftVectorBar, - LeftVector: LeftVector, - lEg: lEg, - leg: leg, - leq: leq, - leqq: leqq, - leqslant: leqslant, - lescc: lescc, - les: les, - lesdot: lesdot, - lesdoto: lesdoto, - lesdotor: lesdotor, - lesg: lesg, - lesges: lesges, - lessapprox: lessapprox, - lessdot: lessdot, - lesseqgtr: lesseqgtr, - lesseqqgtr: lesseqqgtr, - LessEqualGreater: LessEqualGreater, - LessFullEqual: LessFullEqual, - LessGreater: LessGreater, - lessgtr: lessgtr, - LessLess: LessLess, - lesssim: lesssim, - LessSlantEqual: LessSlantEqual, - LessTilde: LessTilde, - lfisht: lfisht, - lfloor: lfloor, - Lfr: Lfr, - lfr: lfr, - lg: lg, - lgE: lgE, - lHar: lHar, - lhard: lhard, - lharu: lharu, - lharul: lharul, - lhblk: lhblk, - LJcy: LJcy, - ljcy: ljcy, - llarr: llarr, - ll: ll, - Ll: Ll, - llcorner: llcorner, - Lleftarrow: Lleftarrow, - llhard: llhard, - lltri: lltri, - Lmidot: Lmidot, - lmidot: lmidot, - lmoustache: lmoustache, - lmoust: lmoust, - lnap: lnap, - lnapprox: lnapprox, - lne: lne, - lnE: lnE, - lneq: lneq, - lneqq: lneqq, - lnsim: lnsim, - loang: loang, - loarr: loarr, - lobrk: lobrk, - longleftarrow: longleftarrow, - LongLeftArrow: LongLeftArrow, - Longleftarrow: Longleftarrow, - longleftrightarrow: longleftrightarrow, - LongLeftRightArrow: LongLeftRightArrow, - Longleftrightarrow: Longleftrightarrow, - longmapsto: longmapsto, - longrightarrow: longrightarrow, - LongRightArrow: LongRightArrow, - Longrightarrow: Longrightarrow, - looparrowleft: looparrowleft, - looparrowright: looparrowright, - lopar: lopar, - Lopf: Lopf, - lopf: lopf, - loplus: loplus, - lotimes: lotimes, - lowast: lowast, - lowbar: lowbar, - LowerLeftArrow: LowerLeftArrow, - LowerRightArrow: LowerRightArrow, - loz: loz, - lozenge: lozenge, - lozf: lozf, - lpar: lpar, - lparlt: lparlt, - lrarr: lrarr, - lrcorner: lrcorner, - lrhar: lrhar, - lrhard: lrhard, - lrm: lrm, - lrtri: lrtri, - lsaquo: lsaquo, - lscr: lscr, - Lscr: Lscr, - lsh: lsh, - Lsh: Lsh, - lsim: lsim, - lsime: lsime, - lsimg: lsimg, - lsqb: lsqb, - lsquo: lsquo, - lsquor: lsquor, - Lstrok: Lstrok, - lstrok: lstrok, - ltcc: ltcc, - ltcir: ltcir, - lt: lt, - LT: LT, - Lt: Lt, - ltdot: ltdot, - lthree: lthree, - ltimes: ltimes, - ltlarr: ltlarr, - ltquest: ltquest, - ltri: ltri, - ltrie: ltrie, - ltrif: ltrif, - ltrPar: ltrPar, - lurdshar: lurdshar, - luruhar: luruhar, - lvertneqq: lvertneqq, - lvnE: lvnE, - macr: macr, - male: male, - malt: malt, - maltese: maltese, - "Map": "⤅", - map: map, - mapsto: mapsto, - mapstodown: mapstodown, - mapstoleft: mapstoleft, - mapstoup: mapstoup, - marker: marker, - mcomma: mcomma, - Mcy: Mcy, - mcy: mcy, - mdash: mdash, - mDDot: mDDot, - measuredangle: measuredangle, - MediumSpace: MediumSpace, - Mellintrf: Mellintrf, - Mfr: Mfr, - mfr: mfr, - mho: mho, - micro: micro, - midast: midast, - midcir: midcir, - mid: mid, - middot: middot, - minusb: minusb, - minus: minus, - minusd: minusd, - minusdu: minusdu, - MinusPlus: MinusPlus, - mlcp: mlcp, - mldr: mldr, - mnplus: mnplus, - models: models, - Mopf: Mopf, - mopf: mopf, - mp: mp, - mscr: mscr, - Mscr: Mscr, - mstpos: mstpos, - Mu: Mu, - mu: mu, - multimap: multimap, - mumap: mumap, - nabla: nabla, - Nacute: Nacute, - nacute: nacute, - nang: nang, - nap: nap, - napE: napE, - napid: napid, - napos: napos, - napprox: napprox, - natural: natural, - naturals: naturals, - natur: natur, - nbsp: nbsp, - nbump: nbump, - nbumpe: nbumpe, - ncap: ncap, - Ncaron: Ncaron, - ncaron: ncaron, - Ncedil: Ncedil, - ncedil: ncedil, - ncong: ncong, - ncongdot: ncongdot, - ncup: ncup, - Ncy: Ncy, - ncy: ncy, - ndash: ndash, - nearhk: nearhk, - nearr: nearr, - neArr: neArr, - nearrow: nearrow, - ne: ne, - nedot: nedot, - NegativeMediumSpace: NegativeMediumSpace, - NegativeThickSpace: NegativeThickSpace, - NegativeThinSpace: NegativeThinSpace, - NegativeVeryThinSpace: NegativeVeryThinSpace, - nequiv: nequiv, - nesear: nesear, - nesim: nesim, - NestedGreaterGreater: NestedGreaterGreater, - NestedLessLess: NestedLessLess, - NewLine: NewLine, - nexist: nexist, - nexists: nexists, - Nfr: Nfr, - nfr: nfr, - ngE: ngE, - nge: nge, - ngeq: ngeq, - ngeqq: ngeqq, - ngeqslant: ngeqslant, - nges: nges, - nGg: nGg, - ngsim: ngsim, - nGt: nGt, - ngt: ngt, - ngtr: ngtr, - nGtv: nGtv, - nharr: nharr, - nhArr: nhArr, - nhpar: nhpar, - ni: ni, - nis: nis, - nisd: nisd, - niv: niv, - NJcy: NJcy, - njcy: njcy, - nlarr: nlarr, - nlArr: nlArr, - nldr: nldr, - nlE: nlE, - nle: nle, - nleftarrow: nleftarrow, - nLeftarrow: nLeftarrow, - nleftrightarrow: nleftrightarrow, - nLeftrightarrow: nLeftrightarrow, - nleq: nleq, - nleqq: nleqq, - nleqslant: nleqslant, - nles: nles, - nless: nless, - nLl: nLl, - nlsim: nlsim, - nLt: nLt, - nlt: nlt, - nltri: nltri, - nltrie: nltrie, - nLtv: nLtv, - nmid: nmid, - NoBreak: NoBreak, - NonBreakingSpace: NonBreakingSpace, - nopf: nopf, - Nopf: Nopf, - Not: Not, - not: not, - NotCongruent: NotCongruent, - NotCupCap: NotCupCap, - NotDoubleVerticalBar: NotDoubleVerticalBar, - NotElement: NotElement, - NotEqual: NotEqual, - NotEqualTilde: NotEqualTilde, - NotExists: NotExists, - NotGreater: NotGreater, - NotGreaterEqual: NotGreaterEqual, - NotGreaterFullEqual: NotGreaterFullEqual, - NotGreaterGreater: NotGreaterGreater, - NotGreaterLess: NotGreaterLess, - NotGreaterSlantEqual: NotGreaterSlantEqual, - NotGreaterTilde: NotGreaterTilde, - NotHumpDownHump: NotHumpDownHump, - NotHumpEqual: NotHumpEqual, - notin: notin, - notindot: notindot, - notinE: notinE, - notinva: notinva, - notinvb: notinvb, - notinvc: notinvc, - NotLeftTriangleBar: NotLeftTriangleBar, - NotLeftTriangle: NotLeftTriangle, - NotLeftTriangleEqual: NotLeftTriangleEqual, - NotLess: NotLess, - NotLessEqual: NotLessEqual, - NotLessGreater: NotLessGreater, - NotLessLess: NotLessLess, - NotLessSlantEqual: NotLessSlantEqual, - NotLessTilde: NotLessTilde, - NotNestedGreaterGreater: NotNestedGreaterGreater, - NotNestedLessLess: NotNestedLessLess, - notni: notni, - notniva: notniva, - notnivb: notnivb, - notnivc: notnivc, - NotPrecedes: NotPrecedes, - NotPrecedesEqual: NotPrecedesEqual, - NotPrecedesSlantEqual: NotPrecedesSlantEqual, - NotReverseElement: NotReverseElement, - NotRightTriangleBar: NotRightTriangleBar, - NotRightTriangle: NotRightTriangle, - NotRightTriangleEqual: NotRightTriangleEqual, - NotSquareSubset: NotSquareSubset, - NotSquareSubsetEqual: NotSquareSubsetEqual, - NotSquareSuperset: NotSquareSuperset, - NotSquareSupersetEqual: NotSquareSupersetEqual, - NotSubset: NotSubset, - NotSubsetEqual: NotSubsetEqual, - NotSucceeds: NotSucceeds, - NotSucceedsEqual: NotSucceedsEqual, - NotSucceedsSlantEqual: NotSucceedsSlantEqual, - NotSucceedsTilde: NotSucceedsTilde, - NotSuperset: NotSuperset, - NotSupersetEqual: NotSupersetEqual, - NotTilde: NotTilde, - NotTildeEqual: NotTildeEqual, - NotTildeFullEqual: NotTildeFullEqual, - NotTildeTilde: NotTildeTilde, - NotVerticalBar: NotVerticalBar, - nparallel: nparallel, - npar: npar, - nparsl: nparsl, - npart: npart, - npolint: npolint, - npr: npr, - nprcue: nprcue, - nprec: nprec, - npreceq: npreceq, - npre: npre, - nrarrc: nrarrc, - nrarr: nrarr, - nrArr: nrArr, - nrarrw: nrarrw, - nrightarrow: nrightarrow, - nRightarrow: nRightarrow, - nrtri: nrtri, - nrtrie: nrtrie, - nsc: nsc, - nsccue: nsccue, - nsce: nsce, - Nscr: Nscr, - nscr: nscr, - nshortmid: nshortmid, - nshortparallel: nshortparallel, - nsim: nsim, - nsime: nsime, - nsimeq: nsimeq, - nsmid: nsmid, - nspar: nspar, - nsqsube: nsqsube, - nsqsupe: nsqsupe, - nsub: nsub, - nsubE: nsubE, - nsube: nsube, - nsubset: nsubset, - nsubseteq: nsubseteq, - nsubseteqq: nsubseteqq, - nsucc: nsucc, - nsucceq: nsucceq, - nsup: nsup, - nsupE: nsupE, - nsupe: nsupe, - nsupset: nsupset, - nsupseteq: nsupseteq, - nsupseteqq: nsupseteqq, - ntgl: ntgl, - Ntilde: Ntilde, - ntilde: ntilde, - ntlg: ntlg, - ntriangleleft: ntriangleleft, - ntrianglelefteq: ntrianglelefteq, - ntriangleright: ntriangleright, - ntrianglerighteq: ntrianglerighteq, - Nu: Nu, - nu: nu, - num: num, - numero: numero, - numsp: numsp, - nvap: nvap, - nvdash: nvdash, - nvDash: nvDash, - nVdash: nVdash, - nVDash: nVDash, - nvge: nvge, - nvgt: nvgt, - nvHarr: nvHarr, - nvinfin: nvinfin, - nvlArr: nvlArr, - nvle: nvle, - nvlt: nvlt, - nvltrie: nvltrie, - nvrArr: nvrArr, - nvrtrie: nvrtrie, - nvsim: nvsim, - nwarhk: nwarhk, - nwarr: nwarr, - nwArr: nwArr, - nwarrow: nwarrow, - nwnear: nwnear, - Oacute: Oacute, - oacute: oacute, - oast: oast, - Ocirc: Ocirc, - ocirc: ocirc, - ocir: ocir, - Ocy: Ocy, - ocy: ocy, - odash: odash, - Odblac: Odblac, - odblac: odblac, - odiv: odiv, - odot: odot, - odsold: odsold, - OElig: OElig, - oelig: oelig, - ofcir: ofcir, - Ofr: Ofr, - ofr: ofr, - ogon: ogon, - Ograve: Ograve, - ograve: ograve, - ogt: ogt, - ohbar: ohbar, - ohm: ohm, - oint: oint, - olarr: olarr, - olcir: olcir, - olcross: olcross, - oline: oline, - olt: olt, - Omacr: Omacr, - omacr: omacr, - Omega: Omega, - omega: omega, - Omicron: Omicron, - omicron: omicron, - omid: omid, - ominus: ominus, - Oopf: Oopf, - oopf: oopf, - opar: opar, - OpenCurlyDoubleQuote: OpenCurlyDoubleQuote, - OpenCurlyQuote: OpenCurlyQuote, - operp: operp, - oplus: oplus, - orarr: orarr, - Or: Or, - or: or, - ord: ord, - order: order, - orderof: orderof, - ordf: ordf, - ordm: ordm, - origof: origof, - oror: oror, - orslope: orslope, - orv: orv, - oS: oS, - Oscr: Oscr, - oscr: oscr, - Oslash: Oslash, - oslash: oslash, - osol: osol, - Otilde: Otilde, - otilde: otilde, - otimesas: otimesas, - Otimes: Otimes, - otimes: otimes, - Ouml: Ouml, - ouml: ouml, - ovbar: ovbar, - OverBar: OverBar, - OverBrace: OverBrace, - OverBracket: OverBracket, - OverParenthesis: OverParenthesis, - para: para, - parallel: parallel, - par: par, - parsim: parsim, - parsl: parsl, - part: part, - PartialD: PartialD, - Pcy: Pcy, - pcy: pcy, - percnt: percnt, - period: period, - permil: permil, - perp: perp, - pertenk: pertenk, - Pfr: Pfr, - pfr: pfr, - Phi: Phi, - phi: phi, - phiv: phiv, - phmmat: phmmat, - phone: phone, - Pi: Pi, - pi: pi, - pitchfork: pitchfork, - piv: piv, - planck: planck, - planckh: planckh, - plankv: plankv, - plusacir: plusacir, - plusb: plusb, - pluscir: pluscir, - plus: plus, - plusdo: plusdo, - plusdu: plusdu, - pluse: pluse, - PlusMinus: PlusMinus, - plusmn: plusmn, - plussim: plussim, - plustwo: plustwo, - pm: pm, - Poincareplane: Poincareplane, - pointint: pointint, - popf: popf, - Popf: Popf, - pound: pound, - prap: prap, - Pr: Pr, - pr: pr, - prcue: prcue, - precapprox: precapprox, - prec: prec, - preccurlyeq: preccurlyeq, - Precedes: Precedes, - PrecedesEqual: PrecedesEqual, - PrecedesSlantEqual: PrecedesSlantEqual, - PrecedesTilde: PrecedesTilde, - preceq: preceq, - precnapprox: precnapprox, - precneqq: precneqq, - precnsim: precnsim, - pre: pre, - prE: prE, - precsim: precsim, - prime: prime, - Prime: Prime, - primes: primes, - prnap: prnap, - prnE: prnE, - prnsim: prnsim, - prod: prod, - Product: Product, - profalar: profalar, - profline: profline, - profsurf: profsurf, - prop: prop, - Proportional: Proportional, - Proportion: Proportion, - propto: propto, - prsim: prsim, - prurel: prurel, - Pscr: Pscr, - pscr: pscr, - Psi: Psi, - psi: psi, - puncsp: puncsp, - Qfr: Qfr, - qfr: qfr, - qint: qint, - qopf: qopf, - Qopf: Qopf, - qprime: qprime, - Qscr: Qscr, - qscr: qscr, - quaternions: quaternions, - quatint: quatint, - quest: quest, - questeq: questeq, - quot: quot, - QUOT: QUOT, - rAarr: rAarr, - race: race, - Racute: Racute, - racute: racute, - radic: radic, - raemptyv: raemptyv, - rang: rang, - Rang: Rang, - rangd: rangd, - range: range, - rangle: rangle, - raquo: raquo, - rarrap: rarrap, - rarrb: rarrb, - rarrbfs: rarrbfs, - rarrc: rarrc, - rarr: rarr, - Rarr: Rarr, - rArr: rArr, - rarrfs: rarrfs, - rarrhk: rarrhk, - rarrlp: rarrlp, - rarrpl: rarrpl, - rarrsim: rarrsim, - Rarrtl: Rarrtl, - rarrtl: rarrtl, - rarrw: rarrw, - ratail: ratail, - rAtail: rAtail, - ratio: ratio, - rationals: rationals, - rbarr: rbarr, - rBarr: rBarr, - RBarr: RBarr, - rbbrk: rbbrk, - rbrace: rbrace, - rbrack: rbrack, - rbrke: rbrke, - rbrksld: rbrksld, - rbrkslu: rbrkslu, - Rcaron: Rcaron, - rcaron: rcaron, - Rcedil: Rcedil, - rcedil: rcedil, - rceil: rceil, - rcub: rcub, - Rcy: Rcy, - rcy: rcy, - rdca: rdca, - rdldhar: rdldhar, - rdquo: rdquo, - rdquor: rdquor, - rdsh: rdsh, - real: real, - realine: realine, - realpart: realpart, - reals: reals, - Re: Re, - rect: rect, - reg: reg, - REG: REG, - ReverseElement: ReverseElement, - ReverseEquilibrium: ReverseEquilibrium, - ReverseUpEquilibrium: ReverseUpEquilibrium, - rfisht: rfisht, - rfloor: rfloor, - rfr: rfr, - Rfr: Rfr, - rHar: rHar, - rhard: rhard, - rharu: rharu, - rharul: rharul, - Rho: Rho, - rho: rho, - rhov: rhov, - RightAngleBracket: RightAngleBracket, - RightArrowBar: RightArrowBar, - rightarrow: rightarrow, - RightArrow: RightArrow, - Rightarrow: Rightarrow, - RightArrowLeftArrow: RightArrowLeftArrow, - rightarrowtail: rightarrowtail, - RightCeiling: RightCeiling, - RightDoubleBracket: RightDoubleBracket, - RightDownTeeVector: RightDownTeeVector, - RightDownVectorBar: RightDownVectorBar, - RightDownVector: RightDownVector, - RightFloor: RightFloor, - rightharpoondown: rightharpoondown, - rightharpoonup: rightharpoonup, - rightleftarrows: rightleftarrows, - rightleftharpoons: rightleftharpoons, - rightrightarrows: rightrightarrows, - rightsquigarrow: rightsquigarrow, - RightTeeArrow: RightTeeArrow, - RightTee: RightTee, - RightTeeVector: RightTeeVector, - rightthreetimes: rightthreetimes, - RightTriangleBar: RightTriangleBar, - RightTriangle: RightTriangle, - RightTriangleEqual: RightTriangleEqual, - RightUpDownVector: RightUpDownVector, - RightUpTeeVector: RightUpTeeVector, - RightUpVectorBar: RightUpVectorBar, - RightUpVector: RightUpVector, - RightVectorBar: RightVectorBar, - RightVector: RightVector, - ring: ring, - risingdotseq: risingdotseq, - rlarr: rlarr, - rlhar: rlhar, - rlm: rlm, - rmoustache: rmoustache, - rmoust: rmoust, - rnmid: rnmid, - roang: roang, - roarr: roarr, - robrk: robrk, - ropar: ropar, - ropf: ropf, - Ropf: Ropf, - roplus: roplus, - rotimes: rotimes, - RoundImplies: RoundImplies, - rpar: rpar, - rpargt: rpargt, - rppolint: rppolint, - rrarr: rrarr, - Rrightarrow: Rrightarrow, - rsaquo: rsaquo, - rscr: rscr, - Rscr: Rscr, - rsh: rsh, - Rsh: Rsh, - rsqb: rsqb, - rsquo: rsquo, - rsquor: rsquor, - rthree: rthree, - rtimes: rtimes, - rtri: rtri, - rtrie: rtrie, - rtrif: rtrif, - rtriltri: rtriltri, - RuleDelayed: RuleDelayed, - ruluhar: ruluhar, - rx: rx, - Sacute: Sacute, - sacute: sacute, - sbquo: sbquo, - scap: scap, - Scaron: Scaron, - scaron: scaron, - Sc: Sc, - sc: sc, - sccue: sccue, - sce: sce, - scE: scE, - Scedil: Scedil, - scedil: scedil, - Scirc: Scirc, - scirc: scirc, - scnap: scnap, - scnE: scnE, - scnsim: scnsim, - scpolint: scpolint, - scsim: scsim, - Scy: Scy, - scy: scy, - sdotb: sdotb, - sdot: sdot, - sdote: sdote, - searhk: searhk, - searr: searr, - seArr: seArr, - searrow: searrow, - sect: sect, - semi: semi, - seswar: seswar, - setminus: setminus, - setmn: setmn, - sext: sext, - Sfr: Sfr, - sfr: sfr, - sfrown: sfrown, - sharp: sharp, - SHCHcy: SHCHcy, - shchcy: shchcy, - SHcy: SHcy, - shcy: shcy, - ShortDownArrow: ShortDownArrow, - ShortLeftArrow: ShortLeftArrow, - shortmid: shortmid, - shortparallel: shortparallel, - ShortRightArrow: ShortRightArrow, - ShortUpArrow: ShortUpArrow, - shy: shy, - Sigma: Sigma, - sigma: sigma, - sigmaf: sigmaf, - sigmav: sigmav, - sim: sim, - simdot: simdot, - sime: sime, - simeq: simeq, - simg: simg, - simgE: simgE, - siml: siml, - simlE: simlE, - simne: simne, - simplus: simplus, - simrarr: simrarr, - slarr: slarr, - SmallCircle: SmallCircle, - smallsetminus: smallsetminus, - smashp: smashp, - smeparsl: smeparsl, - smid: smid, - smile: smile, - smt: smt, - smte: smte, - smtes: smtes, - SOFTcy: SOFTcy, - softcy: softcy, - solbar: solbar, - solb: solb, - sol: sol, - Sopf: Sopf, - sopf: sopf, - spades: spades, - spadesuit: spadesuit, - spar: spar, - sqcap: sqcap, - sqcaps: sqcaps, - sqcup: sqcup, - sqcups: sqcups, - Sqrt: Sqrt, - sqsub: sqsub, - sqsube: sqsube, - sqsubset: sqsubset, - sqsubseteq: sqsubseteq, - sqsup: sqsup, - sqsupe: sqsupe, - sqsupset: sqsupset, - sqsupseteq: sqsupseteq, - square: square, - Square: Square, - SquareIntersection: SquareIntersection, - SquareSubset: SquareSubset, - SquareSubsetEqual: SquareSubsetEqual, - SquareSuperset: SquareSuperset, - SquareSupersetEqual: SquareSupersetEqual, - SquareUnion: SquareUnion, - squarf: squarf, - squ: squ, - squf: squf, - srarr: srarr, - Sscr: Sscr, - sscr: sscr, - ssetmn: ssetmn, - ssmile: ssmile, - sstarf: sstarf, - Star: Star, - star: star, - starf: starf, - straightepsilon: straightepsilon, - straightphi: straightphi, - strns: strns, - sub: sub, - Sub: Sub, - subdot: subdot, - subE: subE, - sube: sube, - subedot: subedot, - submult: submult, - subnE: subnE, - subne: subne, - subplus: subplus, - subrarr: subrarr, - subset: subset, - Subset: Subset, - subseteq: subseteq, - subseteqq: subseteqq, - SubsetEqual: SubsetEqual, - subsetneq: subsetneq, - subsetneqq: subsetneqq, - subsim: subsim, - subsub: subsub, - subsup: subsup, - succapprox: succapprox, - succ: succ, - succcurlyeq: succcurlyeq, - Succeeds: Succeeds, - SucceedsEqual: SucceedsEqual, - SucceedsSlantEqual: SucceedsSlantEqual, - SucceedsTilde: SucceedsTilde, - succeq: succeq, - succnapprox: succnapprox, - succneqq: succneqq, - succnsim: succnsim, - succsim: succsim, - SuchThat: SuchThat, - sum: sum, - Sum: Sum, - sung: sung, - sup1: sup1, - sup2: sup2, - sup3: sup3, - sup: sup, - Sup: Sup, - supdot: supdot, - supdsub: supdsub, - supE: supE, - supe: supe, - supedot: supedot, - Superset: Superset, - SupersetEqual: SupersetEqual, - suphsol: suphsol, - suphsub: suphsub, - suplarr: suplarr, - supmult: supmult, - supnE: supnE, - supne: supne, - supplus: supplus, - supset: supset, - Supset: Supset, - supseteq: supseteq, - supseteqq: supseteqq, - supsetneq: supsetneq, - supsetneqq: supsetneqq, - supsim: supsim, - supsub: supsub, - supsup: supsup, - swarhk: swarhk, - swarr: swarr, - swArr: swArr, - swarrow: swarrow, - swnwar: swnwar, - szlig: szlig, - Tab: Tab, - target: target, - Tau: Tau, - tau: tau, - tbrk: tbrk, - Tcaron: Tcaron, - tcaron: tcaron, - Tcedil: Tcedil, - tcedil: tcedil, - Tcy: Tcy, - tcy: tcy, - tdot: tdot, - telrec: telrec, - Tfr: Tfr, - tfr: tfr, - there4: there4, - therefore: therefore, - Therefore: Therefore, - Theta: Theta, - theta: theta, - thetasym: thetasym, - thetav: thetav, - thickapprox: thickapprox, - thicksim: thicksim, - ThickSpace: ThickSpace, - ThinSpace: ThinSpace, - thinsp: thinsp, - thkap: thkap, - thksim: thksim, - THORN: THORN, - thorn: thorn, - tilde: tilde, - Tilde: Tilde, - TildeEqual: TildeEqual, - TildeFullEqual: TildeFullEqual, - TildeTilde: TildeTilde, - timesbar: timesbar, - timesb: timesb, - times: times, - timesd: timesd, - tint: tint, - toea: toea, - topbot: topbot, - topcir: topcir, - top: top, - Topf: Topf, - topf: topf, - topfork: topfork, - tosa: tosa, - tprime: tprime, - trade: trade, - TRADE: TRADE, - triangle: triangle, - triangledown: triangledown, - triangleleft: triangleleft, - trianglelefteq: trianglelefteq, - triangleq: triangleq, - triangleright: triangleright, - trianglerighteq: trianglerighteq, - tridot: tridot, - trie: trie, - triminus: triminus, - TripleDot: TripleDot, - triplus: triplus, - trisb: trisb, - tritime: tritime, - trpezium: trpezium, - Tscr: Tscr, - tscr: tscr, - TScy: TScy, - tscy: tscy, - TSHcy: TSHcy, - tshcy: tshcy, - Tstrok: Tstrok, - tstrok: tstrok, - twixt: twixt, - twoheadleftarrow: twoheadleftarrow, - twoheadrightarrow: twoheadrightarrow, - Uacute: Uacute, - uacute: uacute, - uarr: uarr, - Uarr: Uarr, - uArr: uArr, - Uarrocir: Uarrocir, - Ubrcy: Ubrcy, - ubrcy: ubrcy, - Ubreve: Ubreve, - ubreve: ubreve, - Ucirc: Ucirc, - ucirc: ucirc, - Ucy: Ucy, - ucy: ucy, - udarr: udarr, - Udblac: Udblac, - udblac: udblac, - udhar: udhar, - ufisht: ufisht, - Ufr: Ufr, - ufr: ufr, - Ugrave: Ugrave, - ugrave: ugrave, - uHar: uHar, - uharl: uharl, - uharr: uharr, - uhblk: uhblk, - ulcorn: ulcorn, - ulcorner: ulcorner, - ulcrop: ulcrop, - ultri: ultri, - Umacr: Umacr, - umacr: umacr, - uml: uml, - UnderBar: UnderBar, - UnderBrace: UnderBrace, - UnderBracket: UnderBracket, - UnderParenthesis: UnderParenthesis, - Union: Union, - UnionPlus: UnionPlus, - Uogon: Uogon, - uogon: uogon, - Uopf: Uopf, - uopf: uopf, - UpArrowBar: UpArrowBar, - uparrow: uparrow, - UpArrow: UpArrow, - Uparrow: Uparrow, - UpArrowDownArrow: UpArrowDownArrow, - updownarrow: updownarrow, - UpDownArrow: UpDownArrow, - Updownarrow: Updownarrow, - UpEquilibrium: UpEquilibrium, - upharpoonleft: upharpoonleft, - upharpoonright: upharpoonright, - uplus: uplus, - UpperLeftArrow: UpperLeftArrow, - UpperRightArrow: UpperRightArrow, - upsi: upsi, - Upsi: Upsi, - upsih: upsih, - Upsilon: Upsilon, - upsilon: upsilon, - UpTeeArrow: UpTeeArrow, - UpTee: UpTee, - upuparrows: upuparrows, - urcorn: urcorn, - urcorner: urcorner, - urcrop: urcrop, - Uring: Uring, - uring: uring, - urtri: urtri, - Uscr: Uscr, - uscr: uscr, - utdot: utdot, - Utilde: Utilde, - utilde: utilde, - utri: utri, - utrif: utrif, - uuarr: uuarr, - Uuml: Uuml, - uuml: uuml, - uwangle: uwangle, - vangrt: vangrt, - varepsilon: varepsilon, - varkappa: varkappa, - varnothing: varnothing, - varphi: varphi, - varpi: varpi, - varpropto: varpropto, - varr: varr, - vArr: vArr, - varrho: varrho, - varsigma: varsigma, - varsubsetneq: varsubsetneq, - varsubsetneqq: varsubsetneqq, - varsupsetneq: varsupsetneq, - varsupsetneqq: varsupsetneqq, - vartheta: vartheta, - vartriangleleft: vartriangleleft, - vartriangleright: vartriangleright, - vBar: vBar, - Vbar: Vbar, - vBarv: vBarv, - Vcy: Vcy, - vcy: vcy, - vdash: vdash, - vDash: vDash, - Vdash: Vdash, - VDash: VDash, - Vdashl: Vdashl, - veebar: veebar, - vee: vee, - Vee: Vee, - veeeq: veeeq, - vellip: vellip, - verbar: verbar, - Verbar: Verbar, - vert: vert, - Vert: Vert, - VerticalBar: VerticalBar, - VerticalLine: VerticalLine, - VerticalSeparator: VerticalSeparator, - VerticalTilde: VerticalTilde, - VeryThinSpace: VeryThinSpace, - Vfr: Vfr, - vfr: vfr, - vltri: vltri, - vnsub: vnsub, - vnsup: vnsup, - Vopf: Vopf, - vopf: vopf, - vprop: vprop, - vrtri: vrtri, - Vscr: Vscr, - vscr: vscr, - vsubnE: vsubnE, - vsubne: vsubne, - vsupnE: vsupnE, - vsupne: vsupne, - Vvdash: Vvdash, - vzigzag: vzigzag, - Wcirc: Wcirc, - wcirc: wcirc, - wedbar: wedbar, - wedge: wedge, - Wedge: Wedge, - wedgeq: wedgeq, - weierp: weierp, - Wfr: Wfr, - wfr: wfr, - Wopf: Wopf, - wopf: wopf, - wp: wp, - wr: wr, - wreath: wreath, - Wscr: Wscr, - wscr: wscr, - xcap: xcap, - xcirc: xcirc, - xcup: xcup, - xdtri: xdtri, - Xfr: Xfr, - xfr: xfr, - xharr: xharr, - xhArr: xhArr, - Xi: Xi, - xi: xi, - xlarr: xlarr, - xlArr: xlArr, - xmap: xmap, - xnis: xnis, - xodot: xodot, - Xopf: Xopf, - xopf: xopf, - xoplus: xoplus, - xotime: xotime, - xrarr: xrarr, - xrArr: xrArr, - Xscr: Xscr, - xscr: xscr, - xsqcup: xsqcup, - xuplus: xuplus, - xutri: xutri, - xvee: xvee, - xwedge: xwedge, - Yacute: Yacute, - yacute: yacute, - YAcy: YAcy, - yacy: yacy, - Ycirc: Ycirc, - ycirc: ycirc, - Ycy: Ycy, - ycy: ycy, - yen: yen, - Yfr: Yfr, - yfr: yfr, - YIcy: YIcy, - yicy: yicy, - Yopf: Yopf, - yopf: yopf, - Yscr: Yscr, - yscr: yscr, - YUcy: YUcy, - yucy: yucy, - yuml: yuml, - Yuml: Yuml, - Zacute: Zacute, - zacute: zacute, - Zcaron: Zcaron, - zcaron: zcaron, - Zcy: Zcy, - zcy: zcy, - Zdot: Zdot, - zdot: zdot, - zeetrf: zeetrf, - ZeroWidthSpace: ZeroWidthSpace, - Zeta: Zeta, - zeta: zeta, - zfr: zfr, - Zfr: Zfr, - ZHcy: ZHcy, - zhcy: zhcy, - zigrarr: zigrarr, - zopf: zopf, - Zopf: Zopf, - Zscr: Zscr, - zscr: zscr, - zwj: zwj, - zwnj: zwnj - }; - - var entities$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - Aacute: Aacute, - aacute: aacute, - Abreve: Abreve, - abreve: abreve, - ac: ac, - acd: acd, - acE: acE, - Acirc: Acirc, - acirc: acirc, - acute: acute, - Acy: Acy, - acy: acy, - AElig: AElig, - aelig: aelig, - af: af, - Afr: Afr, - afr: afr, - Agrave: Agrave, - agrave: agrave, - alefsym: alefsym, - aleph: aleph, - Alpha: Alpha, - alpha: alpha, - Amacr: Amacr, - amacr: amacr, - amalg: amalg, - amp: amp, - AMP: AMP, - andand: andand, - And: And, - and: and, - andd: andd, - andslope: andslope, - andv: andv, - ang: ang, - ange: ange, - angle: angle, - angmsdaa: angmsdaa, - angmsdab: angmsdab, - angmsdac: angmsdac, - angmsdad: angmsdad, - angmsdae: angmsdae, - angmsdaf: angmsdaf, - angmsdag: angmsdag, - angmsdah: angmsdah, - angmsd: angmsd, - angrt: angrt, - angrtvb: angrtvb, - angrtvbd: angrtvbd, - angsph: angsph, - angst: angst, - angzarr: angzarr, - Aogon: Aogon, - aogon: aogon, - Aopf: Aopf, - aopf: aopf, - apacir: apacir, - ap: ap, - apE: apE, - ape: ape, - apid: apid, - apos: apos, - ApplyFunction: ApplyFunction, - approx: approx, - approxeq: approxeq, - Aring: Aring, - aring: aring, - Ascr: Ascr, - ascr: ascr, - Assign: Assign, - ast: ast, - asymp: asymp, - asympeq: asympeq, - Atilde: Atilde, - atilde: atilde, - Auml: Auml, - auml: auml, - awconint: awconint, - awint: awint, - backcong: backcong, - backepsilon: backepsilon, - backprime: backprime, - backsim: backsim, - backsimeq: backsimeq, - Backslash: Backslash, - Barv: Barv, - barvee: barvee, - barwed: barwed, - Barwed: Barwed, - barwedge: barwedge, - bbrk: bbrk, - bbrktbrk: bbrktbrk, - bcong: bcong, - Bcy: Bcy, - bcy: bcy, - bdquo: bdquo, - becaus: becaus, - because: because, - Because: Because, - bemptyv: bemptyv, - bepsi: bepsi, - bernou: bernou, - Bernoullis: Bernoullis, - Beta: Beta, - beta: beta, - beth: beth, - between: between, - Bfr: Bfr, - bfr: bfr, - bigcap: bigcap, - bigcirc: bigcirc, - bigcup: bigcup, - bigodot: bigodot, - bigoplus: bigoplus, - bigotimes: bigotimes, - bigsqcup: bigsqcup, - bigstar: bigstar, - bigtriangledown: bigtriangledown, - bigtriangleup: bigtriangleup, - biguplus: biguplus, - bigvee: bigvee, - bigwedge: bigwedge, - bkarow: bkarow, - blacklozenge: blacklozenge, - blacksquare: blacksquare, - blacktriangle: blacktriangle, - blacktriangledown: blacktriangledown, - blacktriangleleft: blacktriangleleft, - blacktriangleright: blacktriangleright, - blank: blank, - blk12: blk12, - blk14: blk14, - blk34: blk34, - block: block, - bne: bne, - bnequiv: bnequiv, - bNot: bNot, - bnot: bnot, - Bopf: Bopf, - bopf: bopf, - bot: bot, - bottom: bottom, - bowtie: bowtie, - boxbox: boxbox, - boxdl: boxdl, - boxdL: boxdL, - boxDl: boxDl, - boxDL: boxDL, - boxdr: boxdr, - boxdR: boxdR, - boxDr: boxDr, - boxDR: boxDR, - boxh: boxh, - boxH: boxH, - boxhd: boxhd, - boxHd: boxHd, - boxhD: boxhD, - boxHD: boxHD, - boxhu: boxhu, - boxHu: boxHu, - boxhU: boxhU, - boxHU: boxHU, - boxminus: boxminus, - boxplus: boxplus, - boxtimes: boxtimes, - boxul: boxul, - boxuL: boxuL, - boxUl: boxUl, - boxUL: boxUL, - boxur: boxur, - boxuR: boxuR, - boxUr: boxUr, - boxUR: boxUR, - boxv: boxv, - boxV: boxV, - boxvh: boxvh, - boxvH: boxvH, - boxVh: boxVh, - boxVH: boxVH, - boxvl: boxvl, - boxvL: boxvL, - boxVl: boxVl, - boxVL: boxVL, - boxvr: boxvr, - boxvR: boxvR, - boxVr: boxVr, - boxVR: boxVR, - bprime: bprime, - breve: breve, - Breve: Breve, - brvbar: brvbar, - bscr: bscr, - Bscr: Bscr, - bsemi: bsemi, - bsim: bsim, - bsime: bsime, - bsolb: bsolb, - bsol: bsol, - bsolhsub: bsolhsub, - bull: bull, - bullet: bullet, - bump: bump, - bumpE: bumpE, - bumpe: bumpe, - Bumpeq: Bumpeq, - bumpeq: bumpeq, - Cacute: Cacute, - cacute: cacute, - capand: capand, - capbrcup: capbrcup, - capcap: capcap, - cap: cap, - Cap: Cap, - capcup: capcup, - capdot: capdot, - CapitalDifferentialD: CapitalDifferentialD, - caps: caps, - caret: caret, - caron: caron, - Cayleys: Cayleys, - ccaps: ccaps, - Ccaron: Ccaron, - ccaron: ccaron, - Ccedil: Ccedil, - ccedil: ccedil, - Ccirc: Ccirc, - ccirc: ccirc, - Cconint: Cconint, - ccups: ccups, - ccupssm: ccupssm, - Cdot: Cdot, - cdot: cdot, - cedil: cedil, - Cedilla: Cedilla, - cemptyv: cemptyv, - cent: cent, - centerdot: centerdot, - CenterDot: CenterDot, - cfr: cfr, - Cfr: Cfr, - CHcy: CHcy, - chcy: chcy, - check: check, - checkmark: checkmark, - Chi: Chi, - chi: chi, - circ: circ, - circeq: circeq, - circlearrowleft: circlearrowleft, - circlearrowright: circlearrowright, - circledast: circledast, - circledcirc: circledcirc, - circleddash: circleddash, - CircleDot: CircleDot, - circledR: circledR, - circledS: circledS, - CircleMinus: CircleMinus, - CirclePlus: CirclePlus, - CircleTimes: CircleTimes, - cir: cir, - cirE: cirE, - cire: cire, - cirfnint: cirfnint, - cirmid: cirmid, - cirscir: cirscir, - ClockwiseContourIntegral: ClockwiseContourIntegral, - CloseCurlyDoubleQuote: CloseCurlyDoubleQuote, - CloseCurlyQuote: CloseCurlyQuote, - clubs: clubs, - clubsuit: clubsuit, - colon: colon, - Colon: Colon, - Colone: Colone, - colone: colone, - coloneq: coloneq, - comma: comma, - commat: commat, - comp: comp, - compfn: compfn, - complement: complement, - complexes: complexes, - cong: cong, - congdot: congdot, - Congruent: Congruent, - conint: conint, - Conint: Conint, - ContourIntegral: ContourIntegral, - copf: copf, - Copf: Copf, - coprod: coprod, - Coproduct: Coproduct, - copy: copy, - COPY: COPY, - copysr: copysr, - CounterClockwiseContourIntegral: CounterClockwiseContourIntegral, - crarr: crarr, - cross: cross, - Cross: Cross, - Cscr: Cscr, - cscr: cscr, - csub: csub, - csube: csube, - csup: csup, - csupe: csupe, - ctdot: ctdot, - cudarrl: cudarrl, - cudarrr: cudarrr, - cuepr: cuepr, - cuesc: cuesc, - cularr: cularr, - cularrp: cularrp, - cupbrcap: cupbrcap, - cupcap: cupcap, - CupCap: CupCap, - cup: cup, - Cup: Cup, - cupcup: cupcup, - cupdot: cupdot, - cupor: cupor, - cups: cups, - curarr: curarr, - curarrm: curarrm, - curlyeqprec: curlyeqprec, - curlyeqsucc: curlyeqsucc, - curlyvee: curlyvee, - curlywedge: curlywedge, - curren: curren, - curvearrowleft: curvearrowleft, - curvearrowright: curvearrowright, - cuvee: cuvee, - cuwed: cuwed, - cwconint: cwconint, - cwint: cwint, - cylcty: cylcty, - dagger: dagger, - Dagger: Dagger, - daleth: daleth, - darr: darr, - Darr: Darr, - dArr: dArr, - dash: dash, - Dashv: Dashv, - dashv: dashv, - dbkarow: dbkarow, - dblac: dblac, - Dcaron: Dcaron, - dcaron: dcaron, - Dcy: Dcy, - dcy: dcy, - ddagger: ddagger, - ddarr: ddarr, - DD: DD, - dd: dd, - DDotrahd: DDotrahd, - ddotseq: ddotseq, - deg: deg, - Del: Del, - Delta: Delta, - delta: delta, - demptyv: demptyv, - dfisht: dfisht, - Dfr: Dfr, - dfr: dfr, - dHar: dHar, - dharl: dharl, - dharr: dharr, - DiacriticalAcute: DiacriticalAcute, - DiacriticalDot: DiacriticalDot, - DiacriticalDoubleAcute: DiacriticalDoubleAcute, - DiacriticalGrave: DiacriticalGrave, - DiacriticalTilde: DiacriticalTilde, - diam: diam, - diamond: diamond, - Diamond: Diamond, - diamondsuit: diamondsuit, - diams: diams, - die: die, - DifferentialD: DifferentialD, - digamma: digamma, - disin: disin, - div: div, - divide: divide, - divideontimes: divideontimes, - divonx: divonx, - DJcy: DJcy, - djcy: djcy, - dlcorn: dlcorn, - dlcrop: dlcrop, - dollar: dollar, - Dopf: Dopf, - dopf: dopf, - Dot: Dot, - dot: dot, - DotDot: DotDot, - doteq: doteq, - doteqdot: doteqdot, - DotEqual: DotEqual, - dotminus: dotminus, - dotplus: dotplus, - dotsquare: dotsquare, - doublebarwedge: doublebarwedge, - DoubleContourIntegral: DoubleContourIntegral, - DoubleDot: DoubleDot, - DoubleDownArrow: DoubleDownArrow, - DoubleLeftArrow: DoubleLeftArrow, - DoubleLeftRightArrow: DoubleLeftRightArrow, - DoubleLeftTee: DoubleLeftTee, - DoubleLongLeftArrow: DoubleLongLeftArrow, - DoubleLongLeftRightArrow: DoubleLongLeftRightArrow, - DoubleLongRightArrow: DoubleLongRightArrow, - DoubleRightArrow: DoubleRightArrow, - DoubleRightTee: DoubleRightTee, - DoubleUpArrow: DoubleUpArrow, - DoubleUpDownArrow: DoubleUpDownArrow, - DoubleVerticalBar: DoubleVerticalBar, - DownArrowBar: DownArrowBar, - downarrow: downarrow, - DownArrow: DownArrow, - Downarrow: Downarrow, - DownArrowUpArrow: DownArrowUpArrow, - DownBreve: DownBreve, - downdownarrows: downdownarrows, - downharpoonleft: downharpoonleft, - downharpoonright: downharpoonright, - DownLeftRightVector: DownLeftRightVector, - DownLeftTeeVector: DownLeftTeeVector, - DownLeftVectorBar: DownLeftVectorBar, - DownLeftVector: DownLeftVector, - DownRightTeeVector: DownRightTeeVector, - DownRightVectorBar: DownRightVectorBar, - DownRightVector: DownRightVector, - DownTeeArrow: DownTeeArrow, - DownTee: DownTee, - drbkarow: drbkarow, - drcorn: drcorn, - drcrop: drcrop, - Dscr: Dscr, - dscr: dscr, - DScy: DScy, - dscy: dscy, - dsol: dsol, - Dstrok: Dstrok, - dstrok: dstrok, - dtdot: dtdot, - dtri: dtri, - dtrif: dtrif, - duarr: duarr, - duhar: duhar, - dwangle: dwangle, - DZcy: DZcy, - dzcy: dzcy, - dzigrarr: dzigrarr, - Eacute: Eacute, - eacute: eacute, - easter: easter, - Ecaron: Ecaron, - ecaron: ecaron, - Ecirc: Ecirc, - ecirc: ecirc, - ecir: ecir, - ecolon: ecolon, - Ecy: Ecy, - ecy: ecy, - eDDot: eDDot, - Edot: Edot, - edot: edot, - eDot: eDot, - ee: ee, - efDot: efDot, - Efr: Efr, - efr: efr, - eg: eg, - Egrave: Egrave, - egrave: egrave, - egs: egs, - egsdot: egsdot, - el: el, - Element: Element, - elinters: elinters, - ell: ell, - els: els, - elsdot: elsdot, - Emacr: Emacr, - emacr: emacr, - empty: empty, - emptyset: emptyset, - EmptySmallSquare: EmptySmallSquare, - emptyv: emptyv, - EmptyVerySmallSquare: EmptyVerySmallSquare, - emsp13: emsp13, - emsp14: emsp14, - emsp: emsp, - ENG: ENG, - eng: eng, - ensp: ensp, - Eogon: Eogon, - eogon: eogon, - Eopf: Eopf, - eopf: eopf, - epar: epar, - eparsl: eparsl, - eplus: eplus, - epsi: epsi, - Epsilon: Epsilon, - epsilon: epsilon, - epsiv: epsiv, - eqcirc: eqcirc, - eqcolon: eqcolon, - eqsim: eqsim, - eqslantgtr: eqslantgtr, - eqslantless: eqslantless, - Equal: Equal, - equals: equals, - EqualTilde: EqualTilde, - equest: equest, - Equilibrium: Equilibrium, - equiv: equiv, - equivDD: equivDD, - eqvparsl: eqvparsl, - erarr: erarr, - erDot: erDot, - escr: escr, - Escr: Escr, - esdot: esdot, - Esim: Esim, - esim: esim, - Eta: Eta, - eta: eta, - ETH: ETH, - eth: eth, - Euml: Euml, - euml: euml, - euro: euro, - excl: excl, - exist: exist, - Exists: Exists, - expectation: expectation, - exponentiale: exponentiale, - ExponentialE: ExponentialE, - fallingdotseq: fallingdotseq, - Fcy: Fcy, - fcy: fcy, - female: female, - ffilig: ffilig, - fflig: fflig, - ffllig: ffllig, - Ffr: Ffr, - ffr: ffr, - filig: filig, - FilledSmallSquare: FilledSmallSquare, - FilledVerySmallSquare: FilledVerySmallSquare, - fjlig: fjlig, - flat: flat, - fllig: fllig, - fltns: fltns, - fnof: fnof, - Fopf: Fopf, - fopf: fopf, - forall: forall, - ForAll: ForAll, - fork: fork, - forkv: forkv, - Fouriertrf: Fouriertrf, - fpartint: fpartint, - frac12: frac12, - frac13: frac13, - frac14: frac14, - frac15: frac15, - frac16: frac16, - frac18: frac18, - frac23: frac23, - frac25: frac25, - frac34: frac34, - frac35: frac35, - frac38: frac38, - frac45: frac45, - frac56: frac56, - frac58: frac58, - frac78: frac78, - frasl: frasl, - frown: frown, - fscr: fscr, - Fscr: Fscr, - gacute: gacute, - Gamma: Gamma, - gamma: gamma, - Gammad: Gammad, - gammad: gammad, - gap: gap, - Gbreve: Gbreve, - gbreve: gbreve, - Gcedil: Gcedil, - Gcirc: Gcirc, - gcirc: gcirc, - Gcy: Gcy, - gcy: gcy, - Gdot: Gdot, - gdot: gdot, - ge: ge, - gE: gE, - gEl: gEl, - gel: gel, - geq: geq, - geqq: geqq, - geqslant: geqslant, - gescc: gescc, - ges: ges, - gesdot: gesdot, - gesdoto: gesdoto, - gesdotol: gesdotol, - gesl: gesl, - gesles: gesles, - Gfr: Gfr, - gfr: gfr, - gg: gg, - Gg: Gg, - ggg: ggg, - gimel: gimel, - GJcy: GJcy, - gjcy: gjcy, - gla: gla, - gl: gl, - glE: glE, - glj: glj, - gnap: gnap, - gnapprox: gnapprox, - gne: gne, - gnE: gnE, - gneq: gneq, - gneqq: gneqq, - gnsim: gnsim, - Gopf: Gopf, - gopf: gopf, - grave: grave, - GreaterEqual: GreaterEqual, - GreaterEqualLess: GreaterEqualLess, - GreaterFullEqual: GreaterFullEqual, - GreaterGreater: GreaterGreater, - GreaterLess: GreaterLess, - GreaterSlantEqual: GreaterSlantEqual, - GreaterTilde: GreaterTilde, - Gscr: Gscr, - gscr: gscr, - gsim: gsim, - gsime: gsime, - gsiml: gsiml, - gtcc: gtcc, - gtcir: gtcir, - gt: gt, - GT: GT, - Gt: Gt, - gtdot: gtdot, - gtlPar: gtlPar, - gtquest: gtquest, - gtrapprox: gtrapprox, - gtrarr: gtrarr, - gtrdot: gtrdot, - gtreqless: gtreqless, - gtreqqless: gtreqqless, - gtrless: gtrless, - gtrsim: gtrsim, - gvertneqq: gvertneqq, - gvnE: gvnE, - Hacek: Hacek, - hairsp: hairsp, - half: half, - hamilt: hamilt, - HARDcy: HARDcy, - hardcy: hardcy, - harrcir: harrcir, - harr: harr, - hArr: hArr, - harrw: harrw, - Hat: Hat, - hbar: hbar, - Hcirc: Hcirc, - hcirc: hcirc, - hearts: hearts, - heartsuit: heartsuit, - hellip: hellip, - hercon: hercon, - hfr: hfr, - Hfr: Hfr, - HilbertSpace: HilbertSpace, - hksearow: hksearow, - hkswarow: hkswarow, - hoarr: hoarr, - homtht: homtht, - hookleftarrow: hookleftarrow, - hookrightarrow: hookrightarrow, - hopf: hopf, - Hopf: Hopf, - horbar: horbar, - HorizontalLine: HorizontalLine, - hscr: hscr, - Hscr: Hscr, - hslash: hslash, - Hstrok: Hstrok, - hstrok: hstrok, - HumpDownHump: HumpDownHump, - HumpEqual: HumpEqual, - hybull: hybull, - hyphen: hyphen, - Iacute: Iacute, - iacute: iacute, - ic: ic, - Icirc: Icirc, - icirc: icirc, - Icy: Icy, - icy: icy, - Idot: Idot, - IEcy: IEcy, - iecy: iecy, - iexcl: iexcl, - iff: iff, - ifr: ifr, - Ifr: Ifr, - Igrave: Igrave, - igrave: igrave, - ii: ii, - iiiint: iiiint, - iiint: iiint, - iinfin: iinfin, - iiota: iiota, - IJlig: IJlig, - ijlig: ijlig, - Imacr: Imacr, - imacr: imacr, - image: image, - ImaginaryI: ImaginaryI, - imagline: imagline, - imagpart: imagpart, - imath: imath, - Im: Im, - imof: imof, - imped: imped, - Implies: Implies, - incare: incare, - infin: infin, - infintie: infintie, - inodot: inodot, - intcal: intcal, - int: int, - Int: Int, - integers: integers, - Integral: Integral, - intercal: intercal, - Intersection: Intersection, - intlarhk: intlarhk, - intprod: intprod, - InvisibleComma: InvisibleComma, - InvisibleTimes: InvisibleTimes, - IOcy: IOcy, - iocy: iocy, - Iogon: Iogon, - iogon: iogon, - Iopf: Iopf, - iopf: iopf, - Iota: Iota, - iota: iota, - iprod: iprod, - iquest: iquest, - iscr: iscr, - Iscr: Iscr, - isin: isin, - isindot: isindot, - isinE: isinE, - isins: isins, - isinsv: isinsv, - isinv: isinv, - it: it, - Itilde: Itilde, - itilde: itilde, - Iukcy: Iukcy, - iukcy: iukcy, - Iuml: Iuml, - iuml: iuml, - Jcirc: Jcirc, - jcirc: jcirc, - Jcy: Jcy, - jcy: jcy, - Jfr: Jfr, - jfr: jfr, - jmath: jmath, - Jopf: Jopf, - jopf: jopf, - Jscr: Jscr, - jscr: jscr, - Jsercy: Jsercy, - jsercy: jsercy, - Jukcy: Jukcy, - jukcy: jukcy, - Kappa: Kappa, - kappa: kappa, - kappav: kappav, - Kcedil: Kcedil, - kcedil: kcedil, - Kcy: Kcy, - kcy: kcy, - Kfr: Kfr, - kfr: kfr, - kgreen: kgreen, - KHcy: KHcy, - khcy: khcy, - KJcy: KJcy, - kjcy: kjcy, - Kopf: Kopf, - kopf: kopf, - Kscr: Kscr, - kscr: kscr, - lAarr: lAarr, - Lacute: Lacute, - lacute: lacute, - laemptyv: laemptyv, - lagran: lagran, - Lambda: Lambda, - lambda: lambda, - lang: lang, - Lang: Lang, - langd: langd, - langle: langle, - lap: lap, - Laplacetrf: Laplacetrf, - laquo: laquo, - larrb: larrb, - larrbfs: larrbfs, - larr: larr, - Larr: Larr, - lArr: lArr, - larrfs: larrfs, - larrhk: larrhk, - larrlp: larrlp, - larrpl: larrpl, - larrsim: larrsim, - larrtl: larrtl, - latail: latail, - lAtail: lAtail, - lat: lat, - late: late, - lates: lates, - lbarr: lbarr, - lBarr: lBarr, - lbbrk: lbbrk, - lbrace: lbrace, - lbrack: lbrack, - lbrke: lbrke, - lbrksld: lbrksld, - lbrkslu: lbrkslu, - Lcaron: Lcaron, - lcaron: lcaron, - Lcedil: Lcedil, - lcedil: lcedil, - lceil: lceil, - lcub: lcub, - Lcy: Lcy, - lcy: lcy, - ldca: ldca, - ldquo: ldquo, - ldquor: ldquor, - ldrdhar: ldrdhar, - ldrushar: ldrushar, - ldsh: ldsh, - le: le, - lE: lE, - LeftAngleBracket: LeftAngleBracket, - LeftArrowBar: LeftArrowBar, - leftarrow: leftarrow, - LeftArrow: LeftArrow, - Leftarrow: Leftarrow, - LeftArrowRightArrow: LeftArrowRightArrow, - leftarrowtail: leftarrowtail, - LeftCeiling: LeftCeiling, - LeftDoubleBracket: LeftDoubleBracket, - LeftDownTeeVector: LeftDownTeeVector, - LeftDownVectorBar: LeftDownVectorBar, - LeftDownVector: LeftDownVector, - LeftFloor: LeftFloor, - leftharpoondown: leftharpoondown, - leftharpoonup: leftharpoonup, - leftleftarrows: leftleftarrows, - leftrightarrow: leftrightarrow, - LeftRightArrow: LeftRightArrow, - Leftrightarrow: Leftrightarrow, - leftrightarrows: leftrightarrows, - leftrightharpoons: leftrightharpoons, - leftrightsquigarrow: leftrightsquigarrow, - LeftRightVector: LeftRightVector, - LeftTeeArrow: LeftTeeArrow, - LeftTee: LeftTee, - LeftTeeVector: LeftTeeVector, - leftthreetimes: leftthreetimes, - LeftTriangleBar: LeftTriangleBar, - LeftTriangle: LeftTriangle, - LeftTriangleEqual: LeftTriangleEqual, - LeftUpDownVector: LeftUpDownVector, - LeftUpTeeVector: LeftUpTeeVector, - LeftUpVectorBar: LeftUpVectorBar, - LeftUpVector: LeftUpVector, - LeftVectorBar: LeftVectorBar, - LeftVector: LeftVector, - lEg: lEg, - leg: leg, - leq: leq, - leqq: leqq, - leqslant: leqslant, - lescc: lescc, - les: les, - lesdot: lesdot, - lesdoto: lesdoto, - lesdotor: lesdotor, - lesg: lesg, - lesges: lesges, - lessapprox: lessapprox, - lessdot: lessdot, - lesseqgtr: lesseqgtr, - lesseqqgtr: lesseqqgtr, - LessEqualGreater: LessEqualGreater, - LessFullEqual: LessFullEqual, - LessGreater: LessGreater, - lessgtr: lessgtr, - LessLess: LessLess, - lesssim: lesssim, - LessSlantEqual: LessSlantEqual, - LessTilde: LessTilde, - lfisht: lfisht, - lfloor: lfloor, - Lfr: Lfr, - lfr: lfr, - lg: lg, - lgE: lgE, - lHar: lHar, - lhard: lhard, - lharu: lharu, - lharul: lharul, - lhblk: lhblk, - LJcy: LJcy, - ljcy: ljcy, - llarr: llarr, - ll: ll, - Ll: Ll, - llcorner: llcorner, - Lleftarrow: Lleftarrow, - llhard: llhard, - lltri: lltri, - Lmidot: Lmidot, - lmidot: lmidot, - lmoustache: lmoustache, - lmoust: lmoust, - lnap: lnap, - lnapprox: lnapprox, - lne: lne, - lnE: lnE, - lneq: lneq, - lneqq: lneqq, - lnsim: lnsim, - loang: loang, - loarr: loarr, - lobrk: lobrk, - longleftarrow: longleftarrow, - LongLeftArrow: LongLeftArrow, - Longleftarrow: Longleftarrow, - longleftrightarrow: longleftrightarrow, - LongLeftRightArrow: LongLeftRightArrow, - Longleftrightarrow: Longleftrightarrow, - longmapsto: longmapsto, - longrightarrow: longrightarrow, - LongRightArrow: LongRightArrow, - Longrightarrow: Longrightarrow, - looparrowleft: looparrowleft, - looparrowright: looparrowright, - lopar: lopar, - Lopf: Lopf, - lopf: lopf, - loplus: loplus, - lotimes: lotimes, - lowast: lowast, - lowbar: lowbar, - LowerLeftArrow: LowerLeftArrow, - LowerRightArrow: LowerRightArrow, - loz: loz, - lozenge: lozenge, - lozf: lozf, - lpar: lpar, - lparlt: lparlt, - lrarr: lrarr, - lrcorner: lrcorner, - lrhar: lrhar, - lrhard: lrhard, - lrm: lrm, - lrtri: lrtri, - lsaquo: lsaquo, - lscr: lscr, - Lscr: Lscr, - lsh: lsh, - Lsh: Lsh, - lsim: lsim, - lsime: lsime, - lsimg: lsimg, - lsqb: lsqb, - lsquo: lsquo, - lsquor: lsquor, - Lstrok: Lstrok, - lstrok: lstrok, - ltcc: ltcc, - ltcir: ltcir, - lt: lt, - LT: LT, - Lt: Lt, - ltdot: ltdot, - lthree: lthree, - ltimes: ltimes, - ltlarr: ltlarr, - ltquest: ltquest, - ltri: ltri, - ltrie: ltrie, - ltrif: ltrif, - ltrPar: ltrPar, - lurdshar: lurdshar, - luruhar: luruhar, - lvertneqq: lvertneqq, - lvnE: lvnE, - macr: macr, - male: male, - malt: malt, - maltese: maltese, - map: map, - mapsto: mapsto, - mapstodown: mapstodown, - mapstoleft: mapstoleft, - mapstoup: mapstoup, - marker: marker, - mcomma: mcomma, - Mcy: Mcy, - mcy: mcy, - mdash: mdash, - mDDot: mDDot, - measuredangle: measuredangle, - MediumSpace: MediumSpace, - Mellintrf: Mellintrf, - Mfr: Mfr, - mfr: mfr, - mho: mho, - micro: micro, - midast: midast, - midcir: midcir, - mid: mid, - middot: middot, - minusb: minusb, - minus: minus, - minusd: minusd, - minusdu: minusdu, - MinusPlus: MinusPlus, - mlcp: mlcp, - mldr: mldr, - mnplus: mnplus, - models: models, - Mopf: Mopf, - mopf: mopf, - mp: mp, - mscr: mscr, - Mscr: Mscr, - mstpos: mstpos, - Mu: Mu, - mu: mu, - multimap: multimap, - mumap: mumap, - nabla: nabla, - Nacute: Nacute, - nacute: nacute, - nang: nang, - nap: nap, - napE: napE, - napid: napid, - napos: napos, - napprox: napprox, - natural: natural, - naturals: naturals, - natur: natur, - nbsp: nbsp, - nbump: nbump, - nbumpe: nbumpe, - ncap: ncap, - Ncaron: Ncaron, - ncaron: ncaron, - Ncedil: Ncedil, - ncedil: ncedil, - ncong: ncong, - ncongdot: ncongdot, - ncup: ncup, - Ncy: Ncy, - ncy: ncy, - ndash: ndash, - nearhk: nearhk, - nearr: nearr, - neArr: neArr, - nearrow: nearrow, - ne: ne, - nedot: nedot, - NegativeMediumSpace: NegativeMediumSpace, - NegativeThickSpace: NegativeThickSpace, - NegativeThinSpace: NegativeThinSpace, - NegativeVeryThinSpace: NegativeVeryThinSpace, - nequiv: nequiv, - nesear: nesear, - nesim: nesim, - NestedGreaterGreater: NestedGreaterGreater, - NestedLessLess: NestedLessLess, - NewLine: NewLine, - nexist: nexist, - nexists: nexists, - Nfr: Nfr, - nfr: nfr, - ngE: ngE, - nge: nge, - ngeq: ngeq, - ngeqq: ngeqq, - ngeqslant: ngeqslant, - nges: nges, - nGg: nGg, - ngsim: ngsim, - nGt: nGt, - ngt: ngt, - ngtr: ngtr, - nGtv: nGtv, - nharr: nharr, - nhArr: nhArr, - nhpar: nhpar, - ni: ni, - nis: nis, - nisd: nisd, - niv: niv, - NJcy: NJcy, - njcy: njcy, - nlarr: nlarr, - nlArr: nlArr, - nldr: nldr, - nlE: nlE, - nle: nle, - nleftarrow: nleftarrow, - nLeftarrow: nLeftarrow, - nleftrightarrow: nleftrightarrow, - nLeftrightarrow: nLeftrightarrow, - nleq: nleq, - nleqq: nleqq, - nleqslant: nleqslant, - nles: nles, - nless: nless, - nLl: nLl, - nlsim: nlsim, - nLt: nLt, - nlt: nlt, - nltri: nltri, - nltrie: nltrie, - nLtv: nLtv, - nmid: nmid, - NoBreak: NoBreak, - NonBreakingSpace: NonBreakingSpace, - nopf: nopf, - Nopf: Nopf, - Not: Not, - not: not, - NotCongruent: NotCongruent, - NotCupCap: NotCupCap, - NotDoubleVerticalBar: NotDoubleVerticalBar, - NotElement: NotElement, - NotEqual: NotEqual, - NotEqualTilde: NotEqualTilde, - NotExists: NotExists, - NotGreater: NotGreater, - NotGreaterEqual: NotGreaterEqual, - NotGreaterFullEqual: NotGreaterFullEqual, - NotGreaterGreater: NotGreaterGreater, - NotGreaterLess: NotGreaterLess, - NotGreaterSlantEqual: NotGreaterSlantEqual, - NotGreaterTilde: NotGreaterTilde, - NotHumpDownHump: NotHumpDownHump, - NotHumpEqual: NotHumpEqual, - notin: notin, - notindot: notindot, - notinE: notinE, - notinva: notinva, - notinvb: notinvb, - notinvc: notinvc, - NotLeftTriangleBar: NotLeftTriangleBar, - NotLeftTriangle: NotLeftTriangle, - NotLeftTriangleEqual: NotLeftTriangleEqual, - NotLess: NotLess, - NotLessEqual: NotLessEqual, - NotLessGreater: NotLessGreater, - NotLessLess: NotLessLess, - NotLessSlantEqual: NotLessSlantEqual, - NotLessTilde: NotLessTilde, - NotNestedGreaterGreater: NotNestedGreaterGreater, - NotNestedLessLess: NotNestedLessLess, - notni: notni, - notniva: notniva, - notnivb: notnivb, - notnivc: notnivc, - NotPrecedes: NotPrecedes, - NotPrecedesEqual: NotPrecedesEqual, - NotPrecedesSlantEqual: NotPrecedesSlantEqual, - NotReverseElement: NotReverseElement, - NotRightTriangleBar: NotRightTriangleBar, - NotRightTriangle: NotRightTriangle, - NotRightTriangleEqual: NotRightTriangleEqual, - NotSquareSubset: NotSquareSubset, - NotSquareSubsetEqual: NotSquareSubsetEqual, - NotSquareSuperset: NotSquareSuperset, - NotSquareSupersetEqual: NotSquareSupersetEqual, - NotSubset: NotSubset, - NotSubsetEqual: NotSubsetEqual, - NotSucceeds: NotSucceeds, - NotSucceedsEqual: NotSucceedsEqual, - NotSucceedsSlantEqual: NotSucceedsSlantEqual, - NotSucceedsTilde: NotSucceedsTilde, - NotSuperset: NotSuperset, - NotSupersetEqual: NotSupersetEqual, - NotTilde: NotTilde, - NotTildeEqual: NotTildeEqual, - NotTildeFullEqual: NotTildeFullEqual, - NotTildeTilde: NotTildeTilde, - NotVerticalBar: NotVerticalBar, - nparallel: nparallel, - npar: npar, - nparsl: nparsl, - npart: npart, - npolint: npolint, - npr: npr, - nprcue: nprcue, - nprec: nprec, - npreceq: npreceq, - npre: npre, - nrarrc: nrarrc, - nrarr: nrarr, - nrArr: nrArr, - nrarrw: nrarrw, - nrightarrow: nrightarrow, - nRightarrow: nRightarrow, - nrtri: nrtri, - nrtrie: nrtrie, - nsc: nsc, - nsccue: nsccue, - nsce: nsce, - Nscr: Nscr, - nscr: nscr, - nshortmid: nshortmid, - nshortparallel: nshortparallel, - nsim: nsim, - nsime: nsime, - nsimeq: nsimeq, - nsmid: nsmid, - nspar: nspar, - nsqsube: nsqsube, - nsqsupe: nsqsupe, - nsub: nsub, - nsubE: nsubE, - nsube: nsube, - nsubset: nsubset, - nsubseteq: nsubseteq, - nsubseteqq: nsubseteqq, - nsucc: nsucc, - nsucceq: nsucceq, - nsup: nsup, - nsupE: nsupE, - nsupe: nsupe, - nsupset: nsupset, - nsupseteq: nsupseteq, - nsupseteqq: nsupseteqq, - ntgl: ntgl, - Ntilde: Ntilde, - ntilde: ntilde, - ntlg: ntlg, - ntriangleleft: ntriangleleft, - ntrianglelefteq: ntrianglelefteq, - ntriangleright: ntriangleright, - ntrianglerighteq: ntrianglerighteq, - Nu: Nu, - nu: nu, - num: num, - numero: numero, - numsp: numsp, - nvap: nvap, - nvdash: nvdash, - nvDash: nvDash, - nVdash: nVdash, - nVDash: nVDash, - nvge: nvge, - nvgt: nvgt, - nvHarr: nvHarr, - nvinfin: nvinfin, - nvlArr: nvlArr, - nvle: nvle, - nvlt: nvlt, - nvltrie: nvltrie, - nvrArr: nvrArr, - nvrtrie: nvrtrie, - nvsim: nvsim, - nwarhk: nwarhk, - nwarr: nwarr, - nwArr: nwArr, - nwarrow: nwarrow, - nwnear: nwnear, - Oacute: Oacute, - oacute: oacute, - oast: oast, - Ocirc: Ocirc, - ocirc: ocirc, - ocir: ocir, - Ocy: Ocy, - ocy: ocy, - odash: odash, - Odblac: Odblac, - odblac: odblac, - odiv: odiv, - odot: odot, - odsold: odsold, - OElig: OElig, - oelig: oelig, - ofcir: ofcir, - Ofr: Ofr, - ofr: ofr, - ogon: ogon, - Ograve: Ograve, - ograve: ograve, - ogt: ogt, - ohbar: ohbar, - ohm: ohm, - oint: oint, - olarr: olarr, - olcir: olcir, - olcross: olcross, - oline: oline, - olt: olt, - Omacr: Omacr, - omacr: omacr, - Omega: Omega, - omega: omega, - Omicron: Omicron, - omicron: omicron, - omid: omid, - ominus: ominus, - Oopf: Oopf, - oopf: oopf, - opar: opar, - OpenCurlyDoubleQuote: OpenCurlyDoubleQuote, - OpenCurlyQuote: OpenCurlyQuote, - operp: operp, - oplus: oplus, - orarr: orarr, - Or: Or, - or: or, - ord: ord, - order: order, - orderof: orderof, - ordf: ordf, - ordm: ordm, - origof: origof, - oror: oror, - orslope: orslope, - orv: orv, - oS: oS, - Oscr: Oscr, - oscr: oscr, - Oslash: Oslash, - oslash: oslash, - osol: osol, - Otilde: Otilde, - otilde: otilde, - otimesas: otimesas, - Otimes: Otimes, - otimes: otimes, - Ouml: Ouml, - ouml: ouml, - ovbar: ovbar, - OverBar: OverBar, - OverBrace: OverBrace, - OverBracket: OverBracket, - OverParenthesis: OverParenthesis, - para: para, - parallel: parallel, - par: par, - parsim: parsim, - parsl: parsl, - part: part, - PartialD: PartialD, - Pcy: Pcy, - pcy: pcy, - percnt: percnt, - period: period, - permil: permil, - perp: perp, - pertenk: pertenk, - Pfr: Pfr, - pfr: pfr, - Phi: Phi, - phi: phi, - phiv: phiv, - phmmat: phmmat, - phone: phone, - Pi: Pi, - pi: pi, - pitchfork: pitchfork, - piv: piv, - planck: planck, - planckh: planckh, - plankv: plankv, - plusacir: plusacir, - plusb: plusb, - pluscir: pluscir, - plus: plus, - plusdo: plusdo, - plusdu: plusdu, - pluse: pluse, - PlusMinus: PlusMinus, - plusmn: plusmn, - plussim: plussim, - plustwo: plustwo, - pm: pm, - Poincareplane: Poincareplane, - pointint: pointint, - popf: popf, - Popf: Popf, - pound: pound, - prap: prap, - Pr: Pr, - pr: pr, - prcue: prcue, - precapprox: precapprox, - prec: prec, - preccurlyeq: preccurlyeq, - Precedes: Precedes, - PrecedesEqual: PrecedesEqual, - PrecedesSlantEqual: PrecedesSlantEqual, - PrecedesTilde: PrecedesTilde, - preceq: preceq, - precnapprox: precnapprox, - precneqq: precneqq, - precnsim: precnsim, - pre: pre, - prE: prE, - precsim: precsim, - prime: prime, - Prime: Prime, - primes: primes, - prnap: prnap, - prnE: prnE, - prnsim: prnsim, - prod: prod, - Product: Product, - profalar: profalar, - profline: profline, - profsurf: profsurf, - prop: prop, - Proportional: Proportional, - Proportion: Proportion, - propto: propto, - prsim: prsim, - prurel: prurel, - Pscr: Pscr, - pscr: pscr, - Psi: Psi, - psi: psi, - puncsp: puncsp, - Qfr: Qfr, - qfr: qfr, - qint: qint, - qopf: qopf, - Qopf: Qopf, - qprime: qprime, - Qscr: Qscr, - qscr: qscr, - quaternions: quaternions, - quatint: quatint, - quest: quest, - questeq: questeq, - quot: quot, - QUOT: QUOT, - rAarr: rAarr, - race: race, - Racute: Racute, - racute: racute, - radic: radic, - raemptyv: raemptyv, - rang: rang, - Rang: Rang, - rangd: rangd, - range: range, - rangle: rangle, - raquo: raquo, - rarrap: rarrap, - rarrb: rarrb, - rarrbfs: rarrbfs, - rarrc: rarrc, - rarr: rarr, - Rarr: Rarr, - rArr: rArr, - rarrfs: rarrfs, - rarrhk: rarrhk, - rarrlp: rarrlp, - rarrpl: rarrpl, - rarrsim: rarrsim, - Rarrtl: Rarrtl, - rarrtl: rarrtl, - rarrw: rarrw, - ratail: ratail, - rAtail: rAtail, - ratio: ratio, - rationals: rationals, - rbarr: rbarr, - rBarr: rBarr, - RBarr: RBarr, - rbbrk: rbbrk, - rbrace: rbrace, - rbrack: rbrack, - rbrke: rbrke, - rbrksld: rbrksld, - rbrkslu: rbrkslu, - Rcaron: Rcaron, - rcaron: rcaron, - Rcedil: Rcedil, - rcedil: rcedil, - rceil: rceil, - rcub: rcub, - Rcy: Rcy, - rcy: rcy, - rdca: rdca, - rdldhar: rdldhar, - rdquo: rdquo, - rdquor: rdquor, - rdsh: rdsh, - real: real, - realine: realine, - realpart: realpart, - reals: reals, - Re: Re, - rect: rect, - reg: reg, - REG: REG, - ReverseElement: ReverseElement, - ReverseEquilibrium: ReverseEquilibrium, - ReverseUpEquilibrium: ReverseUpEquilibrium, - rfisht: rfisht, - rfloor: rfloor, - rfr: rfr, - Rfr: Rfr, - rHar: rHar, - rhard: rhard, - rharu: rharu, - rharul: rharul, - Rho: Rho, - rho: rho, - rhov: rhov, - RightAngleBracket: RightAngleBracket, - RightArrowBar: RightArrowBar, - rightarrow: rightarrow, - RightArrow: RightArrow, - Rightarrow: Rightarrow, - RightArrowLeftArrow: RightArrowLeftArrow, - rightarrowtail: rightarrowtail, - RightCeiling: RightCeiling, - RightDoubleBracket: RightDoubleBracket, - RightDownTeeVector: RightDownTeeVector, - RightDownVectorBar: RightDownVectorBar, - RightDownVector: RightDownVector, - RightFloor: RightFloor, - rightharpoondown: rightharpoondown, - rightharpoonup: rightharpoonup, - rightleftarrows: rightleftarrows, - rightleftharpoons: rightleftharpoons, - rightrightarrows: rightrightarrows, - rightsquigarrow: rightsquigarrow, - RightTeeArrow: RightTeeArrow, - RightTee: RightTee, - RightTeeVector: RightTeeVector, - rightthreetimes: rightthreetimes, - RightTriangleBar: RightTriangleBar, - RightTriangle: RightTriangle, - RightTriangleEqual: RightTriangleEqual, - RightUpDownVector: RightUpDownVector, - RightUpTeeVector: RightUpTeeVector, - RightUpVectorBar: RightUpVectorBar, - RightUpVector: RightUpVector, - RightVectorBar: RightVectorBar, - RightVector: RightVector, - ring: ring, - risingdotseq: risingdotseq, - rlarr: rlarr, - rlhar: rlhar, - rlm: rlm, - rmoustache: rmoustache, - rmoust: rmoust, - rnmid: rnmid, - roang: roang, - roarr: roarr, - robrk: robrk, - ropar: ropar, - ropf: ropf, - Ropf: Ropf, - roplus: roplus, - rotimes: rotimes, - RoundImplies: RoundImplies, - rpar: rpar, - rpargt: rpargt, - rppolint: rppolint, - rrarr: rrarr, - Rrightarrow: Rrightarrow, - rsaquo: rsaquo, - rscr: rscr, - Rscr: Rscr, - rsh: rsh, - Rsh: Rsh, - rsqb: rsqb, - rsquo: rsquo, - rsquor: rsquor, - rthree: rthree, - rtimes: rtimes, - rtri: rtri, - rtrie: rtrie, - rtrif: rtrif, - rtriltri: rtriltri, - RuleDelayed: RuleDelayed, - ruluhar: ruluhar, - rx: rx, - Sacute: Sacute, - sacute: sacute, - sbquo: sbquo, - scap: scap, - Scaron: Scaron, - scaron: scaron, - Sc: Sc, - sc: sc, - sccue: sccue, - sce: sce, - scE: scE, - Scedil: Scedil, - scedil: scedil, - Scirc: Scirc, - scirc: scirc, - scnap: scnap, - scnE: scnE, - scnsim: scnsim, - scpolint: scpolint, - scsim: scsim, - Scy: Scy, - scy: scy, - sdotb: sdotb, - sdot: sdot, - sdote: sdote, - searhk: searhk, - searr: searr, - seArr: seArr, - searrow: searrow, - sect: sect, - semi: semi, - seswar: seswar, - setminus: setminus, - setmn: setmn, - sext: sext, - Sfr: Sfr, - sfr: sfr, - sfrown: sfrown, - sharp: sharp, - SHCHcy: SHCHcy, - shchcy: shchcy, - SHcy: SHcy, - shcy: shcy, - ShortDownArrow: ShortDownArrow, - ShortLeftArrow: ShortLeftArrow, - shortmid: shortmid, - shortparallel: shortparallel, - ShortRightArrow: ShortRightArrow, - ShortUpArrow: ShortUpArrow, - shy: shy, - Sigma: Sigma, - sigma: sigma, - sigmaf: sigmaf, - sigmav: sigmav, - sim: sim, - simdot: simdot, - sime: sime, - simeq: simeq, - simg: simg, - simgE: simgE, - siml: siml, - simlE: simlE, - simne: simne, - simplus: simplus, - simrarr: simrarr, - slarr: slarr, - SmallCircle: SmallCircle, - smallsetminus: smallsetminus, - smashp: smashp, - smeparsl: smeparsl, - smid: smid, - smile: smile, - smt: smt, - smte: smte, - smtes: smtes, - SOFTcy: SOFTcy, - softcy: softcy, - solbar: solbar, - solb: solb, - sol: sol, - Sopf: Sopf, - sopf: sopf, - spades: spades, - spadesuit: spadesuit, - spar: spar, - sqcap: sqcap, - sqcaps: sqcaps, - sqcup: sqcup, - sqcups: sqcups, - Sqrt: Sqrt, - sqsub: sqsub, - sqsube: sqsube, - sqsubset: sqsubset, - sqsubseteq: sqsubseteq, - sqsup: sqsup, - sqsupe: sqsupe, - sqsupset: sqsupset, - sqsupseteq: sqsupseteq, - square: square, - Square: Square, - SquareIntersection: SquareIntersection, - SquareSubset: SquareSubset, - SquareSubsetEqual: SquareSubsetEqual, - SquareSuperset: SquareSuperset, - SquareSupersetEqual: SquareSupersetEqual, - SquareUnion: SquareUnion, - squarf: squarf, - squ: squ, - squf: squf, - srarr: srarr, - Sscr: Sscr, - sscr: sscr, - ssetmn: ssetmn, - ssmile: ssmile, - sstarf: sstarf, - Star: Star, - star: star, - starf: starf, - straightepsilon: straightepsilon, - straightphi: straightphi, - strns: strns, - sub: sub, - Sub: Sub, - subdot: subdot, - subE: subE, - sube: sube, - subedot: subedot, - submult: submult, - subnE: subnE, - subne: subne, - subplus: subplus, - subrarr: subrarr, - subset: subset, - Subset: Subset, - subseteq: subseteq, - subseteqq: subseteqq, - SubsetEqual: SubsetEqual, - subsetneq: subsetneq, - subsetneqq: subsetneqq, - subsim: subsim, - subsub: subsub, - subsup: subsup, - succapprox: succapprox, - succ: succ, - succcurlyeq: succcurlyeq, - Succeeds: Succeeds, - SucceedsEqual: SucceedsEqual, - SucceedsSlantEqual: SucceedsSlantEqual, - SucceedsTilde: SucceedsTilde, - succeq: succeq, - succnapprox: succnapprox, - succneqq: succneqq, - succnsim: succnsim, - succsim: succsim, - SuchThat: SuchThat, - sum: sum, - Sum: Sum, - sung: sung, - sup1: sup1, - sup2: sup2, - sup3: sup3, - sup: sup, - Sup: Sup, - supdot: supdot, - supdsub: supdsub, - supE: supE, - supe: supe, - supedot: supedot, - Superset: Superset, - SupersetEqual: SupersetEqual, - suphsol: suphsol, - suphsub: suphsub, - suplarr: suplarr, - supmult: supmult, - supnE: supnE, - supne: supne, - supplus: supplus, - supset: supset, - Supset: Supset, - supseteq: supseteq, - supseteqq: supseteqq, - supsetneq: supsetneq, - supsetneqq: supsetneqq, - supsim: supsim, - supsub: supsub, - supsup: supsup, - swarhk: swarhk, - swarr: swarr, - swArr: swArr, - swarrow: swarrow, - swnwar: swnwar, - szlig: szlig, - Tab: Tab, - target: target, - Tau: Tau, - tau: tau, - tbrk: tbrk, - Tcaron: Tcaron, - tcaron: tcaron, - Tcedil: Tcedil, - tcedil: tcedil, - Tcy: Tcy, - tcy: tcy, - tdot: tdot, - telrec: telrec, - Tfr: Tfr, - tfr: tfr, - there4: there4, - therefore: therefore, - Therefore: Therefore, - Theta: Theta, - theta: theta, - thetasym: thetasym, - thetav: thetav, - thickapprox: thickapprox, - thicksim: thicksim, - ThickSpace: ThickSpace, - ThinSpace: ThinSpace, - thinsp: thinsp, - thkap: thkap, - thksim: thksim, - THORN: THORN, - thorn: thorn, - tilde: tilde, - Tilde: Tilde, - TildeEqual: TildeEqual, - TildeFullEqual: TildeFullEqual, - TildeTilde: TildeTilde, - timesbar: timesbar, - timesb: timesb, - times: times, - timesd: timesd, - tint: tint, - toea: toea, - topbot: topbot, - topcir: topcir, - top: top, - Topf: Topf, - topf: topf, - topfork: topfork, - tosa: tosa, - tprime: tprime, - trade: trade, - TRADE: TRADE, - triangle: triangle, - triangledown: triangledown, - triangleleft: triangleleft, - trianglelefteq: trianglelefteq, - triangleq: triangleq, - triangleright: triangleright, - trianglerighteq: trianglerighteq, - tridot: tridot, - trie: trie, - triminus: triminus, - TripleDot: TripleDot, - triplus: triplus, - trisb: trisb, - tritime: tritime, - trpezium: trpezium, - Tscr: Tscr, - tscr: tscr, - TScy: TScy, - tscy: tscy, - TSHcy: TSHcy, - tshcy: tshcy, - Tstrok: Tstrok, - tstrok: tstrok, - twixt: twixt, - twoheadleftarrow: twoheadleftarrow, - twoheadrightarrow: twoheadrightarrow, - Uacute: Uacute, - uacute: uacute, - uarr: uarr, - Uarr: Uarr, - uArr: uArr, - Uarrocir: Uarrocir, - Ubrcy: Ubrcy, - ubrcy: ubrcy, - Ubreve: Ubreve, - ubreve: ubreve, - Ucirc: Ucirc, - ucirc: ucirc, - Ucy: Ucy, - ucy: ucy, - udarr: udarr, - Udblac: Udblac, - udblac: udblac, - udhar: udhar, - ufisht: ufisht, - Ufr: Ufr, - ufr: ufr, - Ugrave: Ugrave, - ugrave: ugrave, - uHar: uHar, - uharl: uharl, - uharr: uharr, - uhblk: uhblk, - ulcorn: ulcorn, - ulcorner: ulcorner, - ulcrop: ulcrop, - ultri: ultri, - Umacr: Umacr, - umacr: umacr, - uml: uml, - UnderBar: UnderBar, - UnderBrace: UnderBrace, - UnderBracket: UnderBracket, - UnderParenthesis: UnderParenthesis, - Union: Union, - UnionPlus: UnionPlus, - Uogon: Uogon, - uogon: uogon, - Uopf: Uopf, - uopf: uopf, - UpArrowBar: UpArrowBar, - uparrow: uparrow, - UpArrow: UpArrow, - Uparrow: Uparrow, - UpArrowDownArrow: UpArrowDownArrow, - updownarrow: updownarrow, - UpDownArrow: UpDownArrow, - Updownarrow: Updownarrow, - UpEquilibrium: UpEquilibrium, - upharpoonleft: upharpoonleft, - upharpoonright: upharpoonright, - uplus: uplus, - UpperLeftArrow: UpperLeftArrow, - UpperRightArrow: UpperRightArrow, - upsi: upsi, - Upsi: Upsi, - upsih: upsih, - Upsilon: Upsilon, - upsilon: upsilon, - UpTeeArrow: UpTeeArrow, - UpTee: UpTee, - upuparrows: upuparrows, - urcorn: urcorn, - urcorner: urcorner, - urcrop: urcrop, - Uring: Uring, - uring: uring, - urtri: urtri, - Uscr: Uscr, - uscr: uscr, - utdot: utdot, - Utilde: Utilde, - utilde: utilde, - utri: utri, - utrif: utrif, - uuarr: uuarr, - Uuml: Uuml, - uuml: uuml, - uwangle: uwangle, - vangrt: vangrt, - varepsilon: varepsilon, - varkappa: varkappa, - varnothing: varnothing, - varphi: varphi, - varpi: varpi, - varpropto: varpropto, - varr: varr, - vArr: vArr, - varrho: varrho, - varsigma: varsigma, - varsubsetneq: varsubsetneq, - varsubsetneqq: varsubsetneqq, - varsupsetneq: varsupsetneq, - varsupsetneqq: varsupsetneqq, - vartheta: vartheta, - vartriangleleft: vartriangleleft, - vartriangleright: vartriangleright, - vBar: vBar, - Vbar: Vbar, - vBarv: vBarv, - Vcy: Vcy, - vcy: vcy, - vdash: vdash, - vDash: vDash, - Vdash: Vdash, - VDash: VDash, - Vdashl: Vdashl, - veebar: veebar, - vee: vee, - Vee: Vee, - veeeq: veeeq, - vellip: vellip, - verbar: verbar, - Verbar: Verbar, - vert: vert, - Vert: Vert, - VerticalBar: VerticalBar, - VerticalLine: VerticalLine, - VerticalSeparator: VerticalSeparator, - VerticalTilde: VerticalTilde, - VeryThinSpace: VeryThinSpace, - Vfr: Vfr, - vfr: vfr, - vltri: vltri, - vnsub: vnsub, - vnsup: vnsup, - Vopf: Vopf, - vopf: vopf, - vprop: vprop, - vrtri: vrtri, - Vscr: Vscr, - vscr: vscr, - vsubnE: vsubnE, - vsubne: vsubne, - vsupnE: vsupnE, - vsupne: vsupne, - Vvdash: Vvdash, - vzigzag: vzigzag, - Wcirc: Wcirc, - wcirc: wcirc, - wedbar: wedbar, - wedge: wedge, - Wedge: Wedge, - wedgeq: wedgeq, - weierp: weierp, - Wfr: Wfr, - wfr: wfr, - Wopf: Wopf, - wopf: wopf, - wp: wp, - wr: wr, - wreath: wreath, - Wscr: Wscr, - wscr: wscr, - xcap: xcap, - xcirc: xcirc, - xcup: xcup, - xdtri: xdtri, - Xfr: Xfr, - xfr: xfr, - xharr: xharr, - xhArr: xhArr, - Xi: Xi, - xi: xi, - xlarr: xlarr, - xlArr: xlArr, - xmap: xmap, - xnis: xnis, - xodot: xodot, - Xopf: Xopf, - xopf: xopf, - xoplus: xoplus, - xotime: xotime, - xrarr: xrarr, - xrArr: xrArr, - Xscr: Xscr, - xscr: xscr, - xsqcup: xsqcup, - xuplus: xuplus, - xutri: xutri, - xvee: xvee, - xwedge: xwedge, - Yacute: Yacute, - yacute: yacute, - YAcy: YAcy, - yacy: yacy, - Ycirc: Ycirc, - ycirc: ycirc, - Ycy: Ycy, - ycy: ycy, - yen: yen, - Yfr: Yfr, - yfr: yfr, - YIcy: YIcy, - yicy: yicy, - Yopf: Yopf, - yopf: yopf, - Yscr: Yscr, - yscr: yscr, - YUcy: YUcy, - yucy: yucy, - yuml: yuml, - Yuml: Yuml, - Zacute: Zacute, - zacute: zacute, - Zcaron: Zcaron, - zcaron: zcaron, - Zcy: Zcy, - zcy: zcy, - Zdot: Zdot, - zdot: zdot, - zeetrf: zeetrf, - ZeroWidthSpace: ZeroWidthSpace, - Zeta: Zeta, - zeta: zeta, - zfr: zfr, - Zfr: Zfr, - ZHcy: ZHcy, - zhcy: zhcy, - zigrarr: zigrarr, - zopf: zopf, - Zopf: Zopf, - Zscr: Zscr, - zscr: zscr, - zwj: zwj, - zwnj: zwnj, - 'default': entities - }); - - var Aacute$1 = "Á"; - var aacute$1 = "á"; - var Acirc$1 = "Â"; - var acirc$1 = "â"; - var acute$1 = "´"; - var AElig$1 = "Æ"; - var aelig$1 = "æ"; - var Agrave$1 = "À"; - var agrave$1 = "à"; - var amp$1 = "&"; - var AMP$1 = "&"; - var Aring$1 = "Å"; - var aring$1 = "å"; - var Atilde$1 = "Ã"; - var atilde$1 = "ã"; - var Auml$1 = "Ä"; - var auml$1 = "ä"; - var brvbar$1 = "¦"; - var Ccedil$1 = "Ç"; - var ccedil$1 = "ç"; - var cedil$1 = "¸"; - var cent$1 = "¢"; - var copy$1 = "©"; - var COPY$1 = "©"; - var curren$1 = "¤"; - var deg$1 = "°"; - var divide$1 = "÷"; - var Eacute$1 = "É"; - var eacute$1 = "é"; - var Ecirc$1 = "Ê"; - var ecirc$1 = "ê"; - var Egrave$1 = "È"; - var egrave$1 = "è"; - var ETH$1 = "Ð"; - var eth$1 = "ð"; - var Euml$1 = "Ë"; - var euml$1 = "ë"; - var frac12$1 = "½"; - var frac14$1 = "¼"; - var frac34$1 = "¾"; - var gt$1 = ">"; - var GT$1 = ">"; - var Iacute$1 = "Í"; - var iacute$1 = "í"; - var Icirc$1 = "Î"; - var icirc$1 = "î"; - var iexcl$1 = "¡"; - var Igrave$1 = "Ì"; - var igrave$1 = "ì"; - var iquest$1 = "¿"; - var Iuml$1 = "Ï"; - var iuml$1 = "ï"; - var laquo$1 = "«"; - var lt$1 = "<"; - var LT$1 = "<"; - var macr$1 = "¯"; - var micro$1 = "µ"; - var middot$1 = "·"; - var nbsp$1 = " "; - var not$1 = "¬"; - var Ntilde$1 = "Ñ"; - var ntilde$1 = "ñ"; - var Oacute$1 = "Ó"; - var oacute$1 = "ó"; - var Ocirc$1 = "Ô"; - var ocirc$1 = "ô"; - var Ograve$1 = "Ò"; - var ograve$1 = "ò"; - var ordf$1 = "ª"; - var ordm$1 = "º"; - var Oslash$1 = "Ø"; - var oslash$1 = "ø"; - var Otilde$1 = "Õ"; - var otilde$1 = "õ"; - var Ouml$1 = "Ö"; - var ouml$1 = "ö"; - var para$1 = "¶"; - var plusmn$1 = "±"; - var pound$1 = "£"; - var quot$1 = "\""; - var QUOT$1 = "\""; - var raquo$1 = "»"; - var reg$1 = "®"; - var REG$1 = "®"; - var sect$1 = "§"; - var shy$1 = "­"; - var sup1$1 = "¹"; - var sup2$1 = "²"; - var sup3$1 = "³"; - var szlig$1 = "ß"; - var THORN$1 = "Þ"; - var thorn$1 = "þ"; - var times$1 = "×"; - var Uacute$1 = "Ú"; - var uacute$1 = "ú"; - var Ucirc$1 = "Û"; - var ucirc$1 = "û"; - var Ugrave$1 = "Ù"; - var ugrave$1 = "ù"; - var uml$1 = "¨"; - var Uuml$1 = "Ü"; - var uuml$1 = "ü"; - var Yacute$1 = "Ý"; - var yacute$1 = "ý"; - var yen$1 = "¥"; - var yuml$1 = "ÿ"; - var legacy = { - Aacute: Aacute$1, - aacute: aacute$1, - Acirc: Acirc$1, - acirc: acirc$1, - acute: acute$1, - AElig: AElig$1, - aelig: aelig$1, - Agrave: Agrave$1, - agrave: agrave$1, - amp: amp$1, - AMP: AMP$1, - Aring: Aring$1, - aring: aring$1, - Atilde: Atilde$1, - atilde: atilde$1, - Auml: Auml$1, - auml: auml$1, - brvbar: brvbar$1, - Ccedil: Ccedil$1, - ccedil: ccedil$1, - cedil: cedil$1, - cent: cent$1, - copy: copy$1, - COPY: COPY$1, - curren: curren$1, - deg: deg$1, - divide: divide$1, - Eacute: Eacute$1, - eacute: eacute$1, - Ecirc: Ecirc$1, - ecirc: ecirc$1, - Egrave: Egrave$1, - egrave: egrave$1, - ETH: ETH$1, - eth: eth$1, - Euml: Euml$1, - euml: euml$1, - frac12: frac12$1, - frac14: frac14$1, - frac34: frac34$1, - gt: gt$1, - GT: GT$1, - Iacute: Iacute$1, - iacute: iacute$1, - Icirc: Icirc$1, - icirc: icirc$1, - iexcl: iexcl$1, - Igrave: Igrave$1, - igrave: igrave$1, - iquest: iquest$1, - Iuml: Iuml$1, - iuml: iuml$1, - laquo: laquo$1, - lt: lt$1, - LT: LT$1, - macr: macr$1, - micro: micro$1, - middot: middot$1, - nbsp: nbsp$1, - not: not$1, - Ntilde: Ntilde$1, - ntilde: ntilde$1, - Oacute: Oacute$1, - oacute: oacute$1, - Ocirc: Ocirc$1, - ocirc: ocirc$1, - Ograve: Ograve$1, - ograve: ograve$1, - ordf: ordf$1, - ordm: ordm$1, - Oslash: Oslash$1, - oslash: oslash$1, - Otilde: Otilde$1, - otilde: otilde$1, - Ouml: Ouml$1, - ouml: ouml$1, - para: para$1, - plusmn: plusmn$1, - pound: pound$1, - quot: quot$1, - QUOT: QUOT$1, - raquo: raquo$1, - reg: reg$1, - REG: REG$1, - sect: sect$1, - shy: shy$1, - sup1: sup1$1, - sup2: sup2$1, - sup3: sup3$1, - szlig: szlig$1, - THORN: THORN$1, - thorn: thorn$1, - times: times$1, - Uacute: Uacute$1, - uacute: uacute$1, - Ucirc: Ucirc$1, - ucirc: ucirc$1, - Ugrave: Ugrave$1, - ugrave: ugrave$1, - uml: uml$1, - Uuml: Uuml$1, - uuml: uuml$1, - Yacute: Yacute$1, - yacute: yacute$1, - yen: yen$1, - yuml: yuml$1 - }; - - var legacy$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - Aacute: Aacute$1, - aacute: aacute$1, - Acirc: Acirc$1, - acirc: acirc$1, - acute: acute$1, - AElig: AElig$1, - aelig: aelig$1, - Agrave: Agrave$1, - agrave: agrave$1, - amp: amp$1, - AMP: AMP$1, - Aring: Aring$1, - aring: aring$1, - Atilde: Atilde$1, - atilde: atilde$1, - Auml: Auml$1, - auml: auml$1, - brvbar: brvbar$1, - Ccedil: Ccedil$1, - ccedil: ccedil$1, - cedil: cedil$1, - cent: cent$1, - copy: copy$1, - COPY: COPY$1, - curren: curren$1, - deg: deg$1, - divide: divide$1, - Eacute: Eacute$1, - eacute: eacute$1, - Ecirc: Ecirc$1, - ecirc: ecirc$1, - Egrave: Egrave$1, - egrave: egrave$1, - ETH: ETH$1, - eth: eth$1, - Euml: Euml$1, - euml: euml$1, - frac12: frac12$1, - frac14: frac14$1, - frac34: frac34$1, - gt: gt$1, - GT: GT$1, - Iacute: Iacute$1, - iacute: iacute$1, - Icirc: Icirc$1, - icirc: icirc$1, - iexcl: iexcl$1, - Igrave: Igrave$1, - igrave: igrave$1, - iquest: iquest$1, - Iuml: Iuml$1, - iuml: iuml$1, - laquo: laquo$1, - lt: lt$1, - LT: LT$1, - macr: macr$1, - micro: micro$1, - middot: middot$1, - nbsp: nbsp$1, - not: not$1, - Ntilde: Ntilde$1, - ntilde: ntilde$1, - Oacute: Oacute$1, - oacute: oacute$1, - Ocirc: Ocirc$1, - ocirc: ocirc$1, - Ograve: Ograve$1, - ograve: ograve$1, - ordf: ordf$1, - ordm: ordm$1, - Oslash: Oslash$1, - oslash: oslash$1, - Otilde: Otilde$1, - otilde: otilde$1, - Ouml: Ouml$1, - ouml: ouml$1, - para: para$1, - plusmn: plusmn$1, - pound: pound$1, - quot: quot$1, - QUOT: QUOT$1, - raquo: raquo$1, - reg: reg$1, - REG: REG$1, - sect: sect$1, - shy: shy$1, - sup1: sup1$1, - sup2: sup2$1, - sup3: sup3$1, - szlig: szlig$1, - THORN: THORN$1, - thorn: thorn$1, - times: times$1, - Uacute: Uacute$1, - uacute: uacute$1, - Ucirc: Ucirc$1, - ucirc: ucirc$1, - Ugrave: Ugrave$1, - ugrave: ugrave$1, - uml: uml$1, - Uuml: Uuml$1, - uuml: uuml$1, - Yacute: Yacute$1, - yacute: yacute$1, - yen: yen$1, - yuml: yuml$1, - 'default': legacy - }); - - var amp$2 = "&"; - var apos$1 = "'"; - var gt$2 = ">"; - var lt$2 = "<"; - var quot$2 = "\""; - var xml = { - amp: amp$2, - apos: apos$1, - gt: gt$2, - lt: lt$2, - quot: quot$2 - }; - - var xml$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - amp: amp$2, - apos: apos$1, - gt: gt$2, - lt: lt$2, - quot: quot$2, - 'default': xml - }); - - var decode = { - "0": 65533, - "128": 8364, - "130": 8218, - "131": 402, - "132": 8222, - "133": 8230, - "134": 8224, - "135": 8225, - "136": 710, - "137": 8240, - "138": 352, - "139": 8249, - "140": 338, - "142": 381, - "145": 8216, - "146": 8217, - "147": 8220, - "148": 8221, - "149": 8226, - "150": 8211, - "151": 8212, - "152": 732, - "153": 8482, - "154": 353, - "155": 8250, - "156": 339, - "158": 382, - "159": 376 - }; - - var decode$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - 'default': decode - }); - - var require$$0 = getCjsExportFromNamespace(decode$1); - - var decode_codepoint = createCommonjsModule(function (module, exports) { - var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - var decode_json_1 = __importDefault(require$$0); - // modified version of https://github.com/mathiasbynens/he/blob/master/src/he.js#L94-L119 - function decodeCodePoint(codePoint) { - if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) { - return "\uFFFD"; - } - if (codePoint in decode_json_1.default) { - codePoint = decode_json_1.default[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; - } - exports.default = decodeCodePoint; - }); - - unwrapExports(decode_codepoint); - - var require$$1 = getCjsExportFromNamespace(entities$1); - - var require$$1$1 = getCjsExportFromNamespace(legacy$1); - - var require$$0$1 = getCjsExportFromNamespace(xml$1); - - var decode$2 = createCommonjsModule(function (module, exports) { - var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.decodeHTML = exports.decodeHTMLStrict = exports.decodeXML = void 0; - var entities_json_1 = __importDefault(require$$1); - var legacy_json_1 = __importDefault(require$$1$1); - var xml_json_1 = __importDefault(require$$0$1); - var decode_codepoint_1 = __importDefault(decode_codepoint); - exports.decodeXML = getStrictDecoder(xml_json_1.default); - exports.decodeHTMLStrict = getStrictDecoder(entities_json_1.default); - function getStrictDecoder(map) { - var keys = Object.keys(map).join("|"); - var replace = getReplacer(map); - keys += "|#[xX][\\da-fA-F]+|#\\d+"; - var re = new RegExp("&(?:" + keys + ");", "g"); - return function (str) { return String(str).replace(re, replace); }; - } - var sorter = function (a, b) { return (a < b ? 1 : -1); }; - exports.decodeHTML = (function () { - var legacy = Object.keys(legacy_json_1.default).sort(sorter); - var keys = Object.keys(entities_json_1.default).sort(sorter); - for (var i = 0, j = 0; i < keys.length; i++) { - if (legacy[j] === keys[i]) { - keys[i] += ";?"; - j++; - } - else { - keys[i] += ";"; - } - } - var re = new RegExp("&(?:" + keys.join("|") + "|#[xX][\\da-fA-F]+;?|#\\d+;?)", "g"); - var replace = getReplacer(entities_json_1.default); - function replacer(str) { - if (str.substr(-1) !== ";") - str += ";"; - return replace(str); - } - //TODO consider creating a merged map - return function (str) { return String(str).replace(re, replacer); }; - })(); - function getReplacer(map) { - return function replace(str) { - if (str.charAt(1) === "#") { - var secondChar = str.charAt(2); - if (secondChar === "X" || secondChar === "x") { - return decode_codepoint_1.default(parseInt(str.substr(3), 16)); - } - return decode_codepoint_1.default(parseInt(str.substr(2), 10)); - } - return map[str.slice(1, -1)]; - }; - } - }); - - unwrapExports(decode$2); - var decode_1 = decode$2.decodeHTML; - var decode_2 = decode$2.decodeHTMLStrict; - var decode_3 = decode$2.decodeXML; - - var encode$1 = createCommonjsModule(function (module, exports) { - var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.escape = exports.encodeHTML = exports.encodeXML = void 0; - var xml_json_1 = __importDefault(require$$0$1); - var inverseXML = getInverseObj(xml_json_1.default); - var xmlReplacer = getInverseReplacer(inverseXML); - exports.encodeXML = getInverse(inverseXML, xmlReplacer); - var entities_json_1 = __importDefault(require$$1); - var inverseHTML = getInverseObj(entities_json_1.default); - var htmlReplacer = getInverseReplacer(inverseHTML); - exports.encodeHTML = getInverse(inverseHTML, htmlReplacer); - function getInverseObj(obj) { - return Object.keys(obj) - .sort() - .reduce(function (inverse, name) { - inverse[obj[name]] = "&" + name + ";"; - return inverse; - }, {}); - } - function getInverseReplacer(inverse) { - var single = []; - var multiple = []; - for (var _i = 0, _a = Object.keys(inverse); _i < _a.length; _i++) { - var k = _a[_i]; - if (k.length === 1) { - // Add value to single array - single.push("\\" + k); - } - else { - // Add value to multiple array - multiple.push(k); - } - } - // Add ranges to single characters. - single.sort(); - for (var start = 0; start < single.length - 1; start++) { - // Find the end of a run of characters - var end = start; - while (end < single.length - 1 && - single[end].charCodeAt(1) + 1 === single[end + 1].charCodeAt(1)) { - end += 1; - } - var count = 1 + end - start; - // We want to replace at least three characters - if (count < 3) - continue; - single.splice(start, count, single[start] + "-" + single[end]); - } - multiple.unshift("[" + single.join("") + "]"); - return new RegExp(multiple.join("|"), "g"); - } - var reNonASCII = /(?:[\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g; - function singleCharReplacer(c) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - return "&#x" + c.codePointAt(0).toString(16).toUpperCase() + ";"; - } - function getInverse(inverse, re) { - return function (data) { - return data - .replace(re, function (name) { return inverse[name]; }) - .replace(reNonASCII, singleCharReplacer); - }; - } - var reXmlChars = getInverseReplacer(inverseXML); - function escape(data) { - return data - .replace(reXmlChars, singleCharReplacer) - .replace(reNonASCII, singleCharReplacer); - } - exports.escape = escape; - }); - - unwrapExports(encode$1); - var encode_1$1 = encode$1.escape; - var encode_2 = encode$1.encodeHTML; - var encode_3 = encode$1.encodeXML; - - var lib = createCommonjsModule(function (module, exports) { - Object.defineProperty(exports, "__esModule", { value: true }); - exports.encode = exports.decodeStrict = exports.decode = void 0; - - - /** - * Decodes a string with entities. - * - * @param data String to decode. - * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0. - */ - function decode(data, level) { - return (!level || level <= 0 ? decode$2.decodeXML : decode$2.decodeHTML)(data); - } - exports.decode = decode; - /** - * Decodes a string with entities. Does not allow missing trailing semicolons for entities. - * - * @param data String to decode. - * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0. - */ - function decodeStrict(data, level) { - return (!level || level <= 0 ? decode$2.decodeXML : decode$2.decodeHTMLStrict)(data); - } - exports.decodeStrict = decodeStrict; - /** - * Encodes a string with entities. - * - * @param data String to encode. - * @param level Optional level to encode at. 0 = XML, 1 = HTML. Default is 0. - */ - function encode(data, level) { - return (!level || level <= 0 ? encode$1.encodeXML : encode$1.encodeHTML)(data); - } - exports.encode = encode; - var encode_2 = encode$1; - Object.defineProperty(exports, "encodeXML", { enumerable: true, get: function () { return encode_2.encodeXML; } }); - Object.defineProperty(exports, "encodeHTML", { enumerable: true, get: function () { return encode_2.encodeHTML; } }); - Object.defineProperty(exports, "escape", { enumerable: true, get: function () { return encode_2.escape; } }); - // Legacy aliases - Object.defineProperty(exports, "encodeHTML4", { enumerable: true, get: function () { return encode_2.encodeHTML; } }); - Object.defineProperty(exports, "encodeHTML5", { enumerable: true, get: function () { return encode_2.encodeHTML; } }); - var decode_2 = decode$2; - Object.defineProperty(exports, "decodeXML", { enumerable: true, get: function () { return decode_2.decodeXML; } }); - Object.defineProperty(exports, "decodeHTML", { enumerable: true, get: function () { return decode_2.decodeHTML; } }); - Object.defineProperty(exports, "decodeHTMLStrict", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } }); - // Legacy aliases - Object.defineProperty(exports, "decodeHTML4", { enumerable: true, get: function () { return decode_2.decodeHTML; } }); - Object.defineProperty(exports, "decodeHTML5", { enumerable: true, get: function () { return decode_2.decodeHTML; } }); - Object.defineProperty(exports, "decodeHTML4Strict", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } }); - Object.defineProperty(exports, "decodeHTML5Strict", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } }); - Object.defineProperty(exports, "decodeXMLStrict", { enumerable: true, get: function () { return decode_2.decodeXML; } }); - }); - - unwrapExports(lib); - var lib_1 = lib.encode; - var lib_2 = lib.decodeStrict; - var lib_3 = lib.decode; - var lib_4 = lib.encodeXML; - var lib_5 = lib.encodeHTML; - var lib_6 = lib.encodeHTML4; - var lib_7 = lib.encodeHTML5; - var lib_8 = lib.decodeXML; - var lib_9 = lib.decodeHTML; - var lib_10 = lib.decodeHTMLStrict; - var lib_11 = lib.decodeHTML4; - var lib_12 = lib.decodeHTML5; - var lib_13 = lib.decodeHTML4Strict; - var lib_14 = lib.decodeHTML5Strict; - var lib_15 = lib.decodeXMLStrict; - - var C_BACKSLASH = 92; - - var ENTITY = "&(?:#x[a-f0-9]{1,6}|#[0-9]{1,7}|[a-z][a-z0-9]{1,31});"; - - var TAGNAME = "[A-Za-z][A-Za-z0-9-]*"; - var ATTRIBUTENAME = "[a-zA-Z_:][a-zA-Z0-9:._-]*"; - var UNQUOTEDVALUE = "[^\"'=<>`\\x00-\\x20]+"; - var SINGLEQUOTEDVALUE = "'[^']*'"; - var DOUBLEQUOTEDVALUE = '"[^"]*"'; - var ATTRIBUTEVALUE = - "(?:" + - UNQUOTEDVALUE + - "|" + - SINGLEQUOTEDVALUE + - "|" + - DOUBLEQUOTEDVALUE + - ")"; - var ATTRIBUTEVALUESPEC = "(?:" + "\\s*=" + "\\s*" + ATTRIBUTEVALUE + ")"; - var ATTRIBUTE = "(?:" + "\\s+" + ATTRIBUTENAME + ATTRIBUTEVALUESPEC + "?)"; - var OPENTAG = "<" + TAGNAME + ATTRIBUTE + "*" + "\\s*/?>"; - var CLOSETAG = "]"; - var HTMLCOMMENT = "|"; - var PROCESSINGINSTRUCTION = "[<][?][\\s\\S]*?[?][>]"; - var DECLARATION = "]*>"; - var CDATA = ""; - var HTMLTAG = - "(?:" + - OPENTAG + - "|" + - CLOSETAG + - "|" + - HTMLCOMMENT + - "|" + - PROCESSINGINSTRUCTION + - "|" + - DECLARATION + - "|" + - CDATA + - ")"; - var reHtmlTag = new RegExp("^" + HTMLTAG); - - var reBackslashOrAmp = /[\\&]/; - - var ESCAPABLE = "[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-]"; - - var reEntityOrEscapedChar = new RegExp("\\\\" + ESCAPABLE + "|" + ENTITY, "gi"); - - var XMLSPECIAL = '[&<>"]'; - - var reXmlSpecial = new RegExp(XMLSPECIAL, "g"); - - var unescapeChar = function(s) { - if (s.charCodeAt(0) === C_BACKSLASH) { - return s.charAt(1); - } else { - return lib_9(s); - } - }; - - // Replace entities and backslash escapes with literal characters. - var unescapeString = function(s) { - if (reBackslashOrAmp.test(s)) { - return s.replace(reEntityOrEscapedChar, unescapeChar); - } else { - return s; - } - }; - - var normalizeURI = function(uri) { - try { - return encode_1(uri); - } catch (err) { - return uri; - } - }; - - var replaceUnsafeChar = function(s) { - switch (s) { - case "&": - return "&"; - case "<": - return "<"; - case ">": - return ">"; - case '"': - return """; - default: - return s; - } - }; - - var escapeXml = function(s) { - if (reXmlSpecial.test(s)) { - return s.replace(reXmlSpecial, replaceUnsafeChar); - } else { - return s; - } - }; - - // derived from https://github.com/mathiasbynens/String.fromCodePoint - /*! http://mths.be/fromcodepoint v0.2.1 by @mathias */ - - var _fromCodePoint; - - function fromCodePoint(_) { - return _fromCodePoint(_); - } - - if (String.fromCodePoint) { - _fromCodePoint = function(_) { - try { - return String.fromCodePoint(_); - } catch (e) { - if (e instanceof RangeError) { - return String.fromCharCode(0xfffd); - } - throw e; - } - }; - } else { - var stringFromCharCode = String.fromCharCode; - var floor = Math.floor; - _fromCodePoint = function() { - var MAX_SIZE = 0x4000; - var codeUnits = []; - var highSurrogate; - var lowSurrogate; - var index = -1; - var length = arguments.length; - if (!length) { - return ""; - } - var result = ""; - while (++index < length) { - var codePoint = Number(arguments[index]); - if ( - !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity` - codePoint < 0 || // not a valid Unicode code point - codePoint > 0x10ffff || // not a valid Unicode code point - floor(codePoint) !== codePoint // not an integer - ) { - return String.fromCharCode(0xfffd); - } - if (codePoint <= 0xffff) { - // BMP code point - codeUnits.push(codePoint); - } else { - // Astral code point; split in surrogate halves - // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae - codePoint -= 0x10000; - highSurrogate = (codePoint >> 10) + 0xd800; - lowSurrogate = (codePoint % 0x400) + 0xdc00; - codeUnits.push(highSurrogate, lowSurrogate); - } - if (index + 1 === length || codeUnits.length > MAX_SIZE) { - result += stringFromCharCode.apply(null, codeUnits); - codeUnits.length = 0; - } - } - return result; - }; - } - - /*! http://mths.be/repeat v0.2.0 by @mathias */ - if (!String.prototype.repeat) { - (function() { - var defineProperty = (function() { - // IE 8 only supports `Object.defineProperty` on DOM elements - try { - var object = {}; - var $defineProperty = Object.defineProperty; - var result = $defineProperty(object, object, object) && $defineProperty; - } catch(error) {} - return result; - }()); - var repeat = function(count) { - if (this == null) { - throw TypeError(); - } - var string = String(this); - // `ToInteger` - var n = count ? Number(count) : 0; - if (n != n) { // better `isNaN` - n = 0; - } - // Account for out-of-bounds indices - if (n < 0 || n == Infinity) { - throw RangeError(); - } - var result = ''; - while (n) { - if (n % 2 == 1) { - result += string; - } - if (n > 1) { - string += string; - } - n >>= 1; - } - return result; - }; - if (defineProperty) { - defineProperty(String.prototype, 'repeat', { - 'value': repeat, - 'configurable': true, - 'writable': true - }); - } else { - String.prototype.repeat = repeat; - } - }()); - } - - var normalizeURI$1 = normalizeURI; - var unescapeString$1 = unescapeString; - - // Constants for character codes: - - var C_NEWLINE = 10; - var C_ASTERISK = 42; - var C_UNDERSCORE = 95; - var C_BACKTICK = 96; - var C_OPEN_BRACKET = 91; - var C_CLOSE_BRACKET = 93; - var C_LESSTHAN = 60; - var C_BANG = 33; - var C_BACKSLASH$1 = 92; - var C_AMPERSAND = 38; - var C_OPEN_PAREN = 40; - var C_CLOSE_PAREN = 41; - var C_COLON = 58; - var C_SINGLEQUOTE = 39; - var C_DOUBLEQUOTE = 34; - - // Some regexps used in inline parser: - - var ESCAPABLE$1 = ESCAPABLE; - var ESCAPED_CHAR = "\\\\" + ESCAPABLE$1; - - var ENTITY$1 = ENTITY; - var reHtmlTag$1 = reHtmlTag; - - var rePunctuation = new RegExp( - /^[!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\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]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/ - ); - - var reLinkTitle = new RegExp( - '^(?:"(' + - ESCAPED_CHAR + - '|[^"\\x00])*"' + - "|" + - "'(" + - ESCAPED_CHAR + - "|[^'\\x00])*'" + - "|" + - "\\((" + - ESCAPED_CHAR + - "|[^()\\x00])*\\))" - ); - - var reLinkDestinationBraces = /^(?:<(?:[^<>\n\\\x00]|\\.)*>)/; - - var reEscapable = new RegExp("^" + ESCAPABLE$1); - - var reEntityHere = new RegExp("^" + ENTITY$1, "i"); - - var reTicks = /`+/; - - var reTicksHere = /^`+/; - - var reEllipses = /\.\.\./g; - - var reDash = /--+/g; - - var reEmailAutolink = /^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/; - - var reAutolink = /^<[A-Za-z][A-Za-z0-9.+-]{1,31}:[^<>\x00-\x20]*>/i; - - var reSpnl = /^ *(?:\n *)?/; - - var reWhitespaceChar = /^[ \t\n\x0b\x0c\x0d]/; - - var reUnicodeWhitespaceChar = /^\s/; - - var reFinalSpace = / *$/; - - var reInitialSpace = /^ */; - - var reSpaceAtEndOfLine = /^ *(?:\n|$)/; - - var reLinkLabel = /^\[(?:[^\\\[\]]|\\.){0,1000}\]/s; - - // Matches a string of non-special characters. - var reMain = /^[^\n`\[\]\\!<&*_'"]+/m; - - var text = function(s) { - var node = new Node("text"); - node._literal = s; - return node; - }; - - // normalize a reference in reference link (remove []s, trim, - // collapse internal space, unicode case fold. - // See commonmark/commonmark.js#168. - var normalizeReference = function(string) { - return string - .slice(1, string.length - 1) - .trim() - .replace(/[ \t\r\n]+/, " ") - .toLowerCase() - .toUpperCase(); - }; - - // INLINE PARSER - - // These are methods of an InlineParser object, defined below. - // An InlineParser keeps track of a subject (a string to be - // parsed) and a position in that subject. - - // If re matches at current position in the subject, advance - // position in subject and return the match; otherwise return null. - var match = function(re) { - var m = re.exec(this.subject.slice(this.pos)); - if (m === null) { - return null; - } else { - this.pos += m.index + m[0].length; - return m[0]; - } - }; - - // Returns the code for the character at the current subject position, or -1 - // there are no more characters. - var peek = function() { - if (this.pos < this.subject.length) { - return this.subject.charCodeAt(this.pos); - } else { - return -1; - } - }; - - // Parse zero or more space characters, including at most one newline - var spnl = function() { - this.match(reSpnl); - return true; - }; - - // All of the parsers below try to match something at the current position - // in the subject. If they succeed in matching anything, they - // return the inline matched, advancing the subject. - - // Attempt to parse backticks, adding either a backtick code span or a - // literal sequence of backticks. - var parseBackticks = function(block) { - var ticks = this.match(reTicksHere); - if (ticks === null) { - return false; - } - var afterOpenTicks = this.pos; - var matched; - var node; - var contents; - while ((matched = this.match(reTicks)) !== null) { - if (matched === ticks) { - node = new Node("code"); - contents = this.subject - .slice(afterOpenTicks, this.pos - ticks.length) - .replace(/\n/gm, " "); - if ( - contents.length > 0 && - contents.match(/[^ ]/) !== null && - contents[0] == " " && - contents[contents.length - 1] == " " - ) { - node._literal = contents.slice(1, contents.length - 1); - } else { - node._literal = contents; - } - const doc = this.options.autoDoc; - if (doc) { - const decl_hash = doc.detectDeclPath(contents); - if (decl_hash) { - var l = new Node("link"); - l.destination = decl_hash; - l.appendChild(node); - node = l; - } - } - block.appendChild(node); - return true; - } - } - // If we got here, we didn't match a closing backtick sequence. - this.pos = afterOpenTicks; - block.appendChild(text(ticks)); - return true; - }; - - // Parse a backslash-escaped special character, adding either the escaped - // character, a hard line break (if the backslash is followed by a newline), - // or a literal backslash to the block's children. Assumes current character - // is a backslash. - var parseBackslash = function(block) { - var subj = this.subject; - var node; - this.pos += 1; - if (this.peek() === C_NEWLINE) { - this.pos += 1; - node = new Node("linebreak"); - block.appendChild(node); - } else if (reEscapable.test(subj.charAt(this.pos))) { - block.appendChild(text(subj.charAt(this.pos))); - this.pos += 1; - } else { - block.appendChild(text("\\")); - } - return true; - }; - - // Attempt to parse an autolink (URL or email in pointy brackets). - var parseAutolink = function(block) { - var m; - var dest; - var node; - if ((m = this.match(reEmailAutolink))) { - dest = m.slice(1, m.length - 1); - node = new Node("link"); - node._destination = normalizeURI$1("mailto:" + dest); - node._title = ""; - node.appendChild(text(dest)); - block.appendChild(node); - return true; - } else if ((m = this.match(reAutolink))) { - dest = m.slice(1, m.length - 1); - node = new Node("link"); - node._destination = normalizeURI$1(dest); - node._title = ""; - node.appendChild(text(dest)); - block.appendChild(node); - return true; - } else { - return false; - } - }; - - // Attempt to parse a raw HTML tag. - var parseHtmlTag = function(block) { - var m = this.match(reHtmlTag$1); - if (m === null) { - return false; - } else { - var node = new Node("html_inline"); - node._literal = m; - block.appendChild(node); - return true; - } - }; - - // Scan a sequence of characters with code cc, and return information about - // the number of delimiters and whether they are positioned such that - // they can open and/or close emphasis or strong emphasis. A utility - // function for strong/emph parsing. - var scanDelims = function(cc) { - var numdelims = 0; - var char_before, char_after, cc_after; - var startpos = this.pos; - var left_flanking, right_flanking, can_open, can_close; - var after_is_whitespace, - after_is_punctuation, - before_is_whitespace, - before_is_punctuation; - - if (cc === C_SINGLEQUOTE || cc === C_DOUBLEQUOTE) { - numdelims++; - this.pos++; - } else { - while (this.peek() === cc) { - numdelims++; - this.pos++; - } - } - - if (numdelims === 0) { - return null; - } - - char_before = startpos === 0 ? "\n" : this.subject.charAt(startpos - 1); - - cc_after = this.peek(); - if (cc_after === -1) { - char_after = "\n"; - } else { - char_after = fromCodePoint(cc_after); - } - - after_is_whitespace = reUnicodeWhitespaceChar.test(char_after); - after_is_punctuation = rePunctuation.test(char_after); - before_is_whitespace = reUnicodeWhitespaceChar.test(char_before); - before_is_punctuation = rePunctuation.test(char_before); - - left_flanking = - !after_is_whitespace && - (!after_is_punctuation || - before_is_whitespace || - before_is_punctuation); - right_flanking = - !before_is_whitespace && - (!before_is_punctuation || after_is_whitespace || after_is_punctuation); - if (cc === C_UNDERSCORE) { - can_open = left_flanking && (!right_flanking || before_is_punctuation); - can_close = right_flanking && (!left_flanking || after_is_punctuation); - } else if (cc === C_SINGLEQUOTE || cc === C_DOUBLEQUOTE) { - can_open = left_flanking && !right_flanking; - can_close = right_flanking; - } else { - can_open = left_flanking; - can_close = right_flanking; - } - this.pos = startpos; - return { numdelims: numdelims, can_open: can_open, can_close: can_close }; - }; - - // Handle a delimiter marker for emphasis or a quote. - var handleDelim = function(cc, block) { - var res = this.scanDelims(cc); - if (!res) { - return false; - } - var numdelims = res.numdelims; - var startpos = this.pos; - var contents; - - this.pos += numdelims; - if (cc === C_SINGLEQUOTE) { - contents = "\u2019"; - } else if (cc === C_DOUBLEQUOTE) { - contents = "\u201C"; - } else { - contents = this.subject.slice(startpos, this.pos); - } - var node = text(contents); - block.appendChild(node); - - // Add entry to stack for this opener - if ( - (res.can_open || res.can_close) && - (this.options.smart || (cc !== C_SINGLEQUOTE && cc !== C_DOUBLEQUOTE)) - ) { - this.delimiters = { - cc: cc, - numdelims: numdelims, - origdelims: numdelims, - node: node, - previous: this.delimiters, - next: null, - can_open: res.can_open, - can_close: res.can_close - }; - if (this.delimiters.previous !== null) { - this.delimiters.previous.next = this.delimiters; - } - } - - return true; - }; - - var removeDelimiter = function(delim) { - if (delim.previous !== null) { - delim.previous.next = delim.next; - } - if (delim.next === null) { - // top of stack - this.delimiters = delim.previous; - } else { - delim.next.previous = delim.previous; - } - }; - - var removeDelimitersBetween = function(bottom, top) { - if (bottom.next !== top) { - bottom.next = top; - top.previous = bottom; - } - }; - - var processEmphasis = function(stack_bottom) { - var opener, closer, old_closer; - var opener_inl, closer_inl; - var tempstack; - var use_delims; - var tmp, next; - var opener_found; - var openers_bottom = []; - var openers_bottom_index; - var odd_match = false; - - for (var i = 0; i < 8; i++) { - openers_bottom[i] = stack_bottom; - } - // find first closer above stack_bottom: - closer = this.delimiters; - while (closer !== null && closer.previous !== stack_bottom) { - closer = closer.previous; - } - // move forward, looking for closers, and handling each - while (closer !== null) { - var closercc = closer.cc; - if (!closer.can_close) { - closer = closer.next; - } else { - // found emphasis closer. now look back for first matching opener: - opener = closer.previous; - opener_found = false; - switch (closercc) { - case C_SINGLEQUOTE: - openers_bottom_index = 0; - break; - case C_DOUBLEQUOTE: - openers_bottom_index = 1; - break; - case C_UNDERSCORE: - openers_bottom_index = 2; - break; - case C_ASTERISK: - openers_bottom_index = 3 + (closer.can_open ? 3 : 0) - + (closer.origdelims % 3); - break; - } - while ( - opener !== null && - opener !== stack_bottom && - opener !== openers_bottom[openers_bottom_index] - ) { - odd_match = - (closer.can_open || opener.can_close) && - closer.origdelims % 3 !== 0 && - (opener.origdelims + closer.origdelims) % 3 === 0; - if (opener.cc === closer.cc && opener.can_open && !odd_match) { - opener_found = true; - break; - } - opener = opener.previous; - } - old_closer = closer; - - if (closercc === C_ASTERISK || closercc === C_UNDERSCORE) { - if (!opener_found) { - closer = closer.next; - } else { - // calculate actual number of delimiters used from closer - use_delims = - closer.numdelims >= 2 && opener.numdelims >= 2 ? 2 : 1; - - opener_inl = opener.node; - closer_inl = closer.node; - - // remove used delimiters from stack elts and inlines - opener.numdelims -= use_delims; - closer.numdelims -= use_delims; - opener_inl._literal = opener_inl._literal.slice( - 0, - opener_inl._literal.length - use_delims - ); - closer_inl._literal = closer_inl._literal.slice( - 0, - closer_inl._literal.length - use_delims - ); - - // build contents for new emph element - var emph = new Node(use_delims === 1 ? "emph" : "strong"); - - tmp = opener_inl._next; - while (tmp && tmp !== closer_inl) { - next = tmp._next; - tmp.unlink(); - emph.appendChild(tmp); - tmp = next; - } - - opener_inl.insertAfter(emph); - - // remove elts between opener and closer in delimiters stack - removeDelimitersBetween(opener, closer); - - // if opener has 0 delims, remove it and the inline - if (opener.numdelims === 0) { - opener_inl.unlink(); - this.removeDelimiter(opener); - } - - if (closer.numdelims === 0) { - closer_inl.unlink(); - tempstack = closer.next; - this.removeDelimiter(closer); - closer = tempstack; - } - } - } else if (closercc === C_SINGLEQUOTE) { - closer.node._literal = "\u2019"; - if (opener_found) { - opener.node._literal = "\u2018"; - } - closer = closer.next; - } else if (closercc === C_DOUBLEQUOTE) { - closer.node._literal = "\u201D"; - if (opener_found) { - opener.node.literal = "\u201C"; - } - closer = closer.next; - } - if (!opener_found) { - // Set lower bound for future searches for openers: - openers_bottom[openers_bottom_index] = - old_closer.previous; - if (!old_closer.can_open) { - // We can remove a closer that can't be an opener, - // once we've seen there's no matching opener: - this.removeDelimiter(old_closer); - } - } - } - } - - // remove all delimiters - while (this.delimiters !== null && this.delimiters !== stack_bottom) { - this.removeDelimiter(this.delimiters); - } - }; - - // Attempt to parse link title (sans quotes), returning the string - // or null if no match. - var parseLinkTitle = function() { - var title = this.match(reLinkTitle); - if (title === null) { - return null; - } else { - // chop off quotes from title and unescape: - return unescapeString$1(title.substr(1, title.length - 2)); - } - }; - - // Attempt to parse link destination, returning the string or - // null if no match. - var parseLinkDestination = function() { - var res = this.match(reLinkDestinationBraces); - if (res === null) { - if (this.peek() === C_LESSTHAN) { - return null; - } - // TODO handrolled parser; res should be null or the string - var savepos = this.pos; - var openparens = 0; - var c; - while ((c = this.peek()) !== -1) { - if ( - c === C_BACKSLASH$1 && - reEscapable.test(this.subject.charAt(this.pos + 1)) - ) { - this.pos += 1; - if (this.peek() !== -1) { - this.pos += 1; - } - } else if (c === C_OPEN_PAREN) { - this.pos += 1; - openparens += 1; - } else if (c === C_CLOSE_PAREN) { - if (openparens < 1) { - break; - } else { - this.pos += 1; - openparens -= 1; - } - } else if (reWhitespaceChar.exec(fromCodePoint(c)) !== null) { - break; - } else { - this.pos += 1; - } - } - if (this.pos === savepos && c !== C_CLOSE_PAREN) { - return null; - } - if (openparens !== 0) { - return null; - } - res = this.subject.substr(savepos, this.pos - savepos); - return normalizeURI$1(unescapeString$1(res)); - } else { - // chop off surrounding <..>: - return normalizeURI$1(unescapeString$1(res.substr(1, res.length - 2))); - } - }; - - // Attempt to parse a link label, returning number of characters parsed. - var parseLinkLabel = function() { - var m = this.match(reLinkLabel); - if (m === null || m.length > 1001) { - return 0; - } else { - return m.length; - } - }; - - // Add open bracket to delimiter stack and add a text node to block's children. - var parseOpenBracket = function(block) { - var startpos = this.pos; - this.pos += 1; - - var node = text("["); - block.appendChild(node); - - // Add entry to stack for this opener - this.addBracket(node, startpos, false); - return true; - }; - - // IF next character is [, and ! delimiter to delimiter stack and - // add a text node to block's children. Otherwise just add a text node. - var parseBang = function(block) { - var startpos = this.pos; - this.pos += 1; - if (this.peek() === C_OPEN_BRACKET) { - this.pos += 1; - - var node = text("!["); - block.appendChild(node); - - // Add entry to stack for this opener - this.addBracket(node, startpos + 1, true); - } else { - block.appendChild(text("!")); - } - return true; - }; - - // Try to match close bracket against an opening in the delimiter - // stack. Add either a link or image, or a plain [ character, - // to block's children. If there is a matching delimiter, - // remove it from the delimiter stack. - var parseCloseBracket = function(block) { - var startpos; - var is_image; - var dest; - var title; - var matched = false; - var reflabel; - var opener; - - this.pos += 1; - startpos = this.pos; - - // get last [ or ![ - opener = this.brackets; - - if (opener === null) { - // no matched opener, just return a literal - block.appendChild(text("]")); - return true; - } - - if (!opener.active) { - // no matched opener, just return a literal - block.appendChild(text("]")); - // take opener off brackets stack - this.removeBracket(); - return true; - } - - // If we got here, open is a potential opener - is_image = opener.image; - - // Check to see if we have a link/image - - var savepos = this.pos; - - // Inline link? - if (this.peek() === C_OPEN_PAREN) { - this.pos++; - if ( - this.spnl() && - (dest = this.parseLinkDestination()) !== null && - this.spnl() && - // make sure there's a space before the title: - ((reWhitespaceChar.test(this.subject.charAt(this.pos - 1)) && - (title = this.parseLinkTitle())) || - true) && - this.spnl() && - this.peek() === C_CLOSE_PAREN - ) { - this.pos += 1; - matched = true; - } else { - this.pos = savepos; - } - } - - if (!matched) { - // Next, see if there's a link label - var beforelabel = this.pos; - var n = this.parseLinkLabel(); - if (n > 2) { - reflabel = this.subject.slice(beforelabel, beforelabel + n); - } else if (!opener.bracketAfter) { - // Empty or missing second label means to use the first label as the reference. - // The reference must not contain a bracket. If we know there's a bracket, we don't even bother checking it. - reflabel = this.subject.slice(opener.index, startpos); - } - if (n === 0) { - // If shortcut reference link, rewind before spaces we skipped. - this.pos = savepos; - } - - if (reflabel) { - // lookup rawlabel in refmap - var link = this.refmap[normalizeReference(reflabel)]; - if (link) { - dest = link.destination; - title = link.title; - matched = true; - } - } - } - - if (matched) { - var node = new Node(is_image ? "image" : "link"); - node._destination = dest; - node._title = title || ""; - - var tmp, next; - tmp = opener.node._next; - while (tmp) { - next = tmp._next; - tmp.unlink(); - node.appendChild(tmp); - tmp = next; - } - block.appendChild(node); - this.processEmphasis(opener.previousDelimiter); - this.removeBracket(); - opener.node.unlink(); - - // We remove this bracket and processEmphasis will remove later delimiters. - // Now, for a link, we also deactivate earlier link openers. - // (no links in links) - if (!is_image) { - opener = this.brackets; - while (opener !== null) { - if (!opener.image) { - opener.active = false; // deactivate this opener - } - opener = opener.previous; - } - } - - return true; - } else { - // no match - - this.removeBracket(); // remove this opener from stack - this.pos = startpos; - block.appendChild(text("]")); - return true; - } - }; - - var addBracket = function(node, index, image) { - if (this.brackets !== null) { - this.brackets.bracketAfter = true; - } - this.brackets = { - node: node, - previous: this.brackets, - previousDelimiter: this.delimiters, - index: index, - image: image, - active: true - }; - }; - - var removeBracket = function() { - this.brackets = this.brackets.previous; - }; - - // Attempt to parse an entity. - var parseEntity = function(block) { - var m; - if ((m = this.match(reEntityHere))) { - block.appendChild(text(lib_9(m))); - return true; - } else { - return false; - } - }; - - // Parse a run of ordinary characters, or a single character with - // a special meaning in markdown, as a plain string. - var parseString = function(block) { - var m; - if ((m = this.match(reMain))) { - if (this.options.smart) { - block.appendChild( - text( - m - .replace(reEllipses, "\u2026") - .replace(reDash, function(chars) { - var enCount = 0; - var emCount = 0; - if (chars.length % 3 === 0) { - // If divisible by 3, use all em dashes - emCount = chars.length / 3; - } else if (chars.length % 2 === 0) { - // If divisible by 2, use all en dashes - enCount = chars.length / 2; - } else if (chars.length % 3 === 2) { - // If 2 extra dashes, use en dash for last 2; em dashes for rest - enCount = 1; - emCount = (chars.length - 2) / 3; - } else { - // Use en dashes for last 4 hyphens; em dashes for rest - enCount = 2; - emCount = (chars.length - 4) / 3; - } - return ( - "\u2014".repeat(emCount) + - "\u2013".repeat(enCount) - ); - }) - ) - ); - } else { - block.appendChild(text(m)); - } - return true; - } else { - return false; - } - }; - - // Parse a newline. If it was preceded by two spaces, return a hard - // line break; otherwise a soft line break. - var parseNewline = function(block) { - this.pos += 1; // assume we're at a \n - // check previous node for trailing spaces - var lastc = block._lastChild; - if ( - lastc && - lastc.type === "text" && - lastc._literal[lastc._literal.length - 1] === " " - ) { - var hardbreak = lastc._literal[lastc._literal.length - 2] === " "; - lastc._literal = lastc._literal.replace(reFinalSpace, ""); - block.appendChild(new Node(hardbreak ? "linebreak" : "softbreak")); - } else { - block.appendChild(new Node("softbreak")); - } - this.match(reInitialSpace); // gobble leading spaces in next line - return true; - }; - - // Attempt to parse a link reference, modifying refmap. - var parseReference = function(s, refmap) { - this.subject = s; - this.pos = 0; - var rawlabel; - var dest; - var title; - var matchChars; - var startpos = this.pos; - - // label: - matchChars = this.parseLinkLabel(); - if (matchChars === 0) { - return 0; - } else { - rawlabel = this.subject.substr(0, matchChars); - } - - // colon: - if (this.peek() === C_COLON) { - this.pos++; - } else { - this.pos = startpos; - return 0; - } - - // link url - this.spnl(); - - dest = this.parseLinkDestination(); - if (dest === null) { - this.pos = startpos; - return 0; - } - - var beforetitle = this.pos; - this.spnl(); - if (this.pos !== beforetitle) { - title = this.parseLinkTitle(); - } - if (title === null) { - title = ""; - // rewind before spaces - this.pos = beforetitle; - } - - // make sure we're at line end: - var atLineEnd = true; - if (this.match(reSpaceAtEndOfLine) === null) { - if (title === "") { - atLineEnd = false; - } else { - // the potential title we found is not at the line end, - // but it could still be a legal link reference if we - // discard the title - title = ""; - // rewind before spaces - this.pos = beforetitle; - // and instead check if the link URL is at the line end - atLineEnd = this.match(reSpaceAtEndOfLine) !== null; - } - } - - if (!atLineEnd) { - this.pos = startpos; - return 0; - } - - var normlabel = normalizeReference(rawlabel); - if (normlabel === "") { - // label must contain non-whitespace characters - this.pos = startpos; - return 0; - } - - if (!refmap[normlabel]) { - refmap[normlabel] = { destination: dest, title: title }; - } - return this.pos - startpos; - }; - - // Parse the next inline element in subject, advancing subject position. - // On success, add the result to block's children and return true. - // On failure, return false. - var parseInline = function(block) { - var res = false; - var c = this.peek(); - if (c === -1) { - return false; - } - switch (c) { - case C_NEWLINE: - res = this.parseNewline(block); - break; - case C_BACKSLASH$1: - res = this.parseBackslash(block); - break; - case C_BACKTICK: - res = this.parseBackticks(block); - break; - case C_ASTERISK: - case C_UNDERSCORE: - res = this.handleDelim(c, block); - break; - case C_SINGLEQUOTE: - case C_DOUBLEQUOTE: - res = this.options.smart && this.handleDelim(c, block); - break; - case C_OPEN_BRACKET: - res = this.parseOpenBracket(block); - break; - case C_BANG: - res = this.parseBang(block); - break; - case C_CLOSE_BRACKET: - res = this.parseCloseBracket(block); - break; - case C_LESSTHAN: - res = this.parseAutolink(block) || this.parseHtmlTag(block); - break; - case C_AMPERSAND: - res = this.parseEntity(block); - break; - default: - res = this.parseString(block); - break; - } - if (!res) { - this.pos += 1; - block.appendChild(text(fromCodePoint(c))); - } - - return true; - }; - - // Parse string content in block into inline children, - // using refmap to resolve references. - var parseInlines = function(block) { - this.subject = block._string_content.trim(); - this.pos = 0; - this.delimiters = null; - this.brackets = null; - while (this.parseInline(block)) {} - block._string_content = null; // allow raw string to be garbage collected - this.processEmphasis(null); - }; - - // The InlineParser object. - function InlineParser(options) { - return { - subject: "", - delimiters: null, // used by handleDelim method - brackets: null, - pos: 0, - refmap: {}, - match: match, - peek: peek, - spnl: spnl, - parseBackticks: parseBackticks, - parseBackslash: parseBackslash, - parseAutolink: parseAutolink, - parseHtmlTag: parseHtmlTag, - scanDelims: scanDelims, - handleDelim: handleDelim, - parseLinkTitle: parseLinkTitle, - parseLinkDestination: parseLinkDestination, - parseLinkLabel: parseLinkLabel, - parseOpenBracket: parseOpenBracket, - parseBang: parseBang, - parseCloseBracket: parseCloseBracket, - addBracket: addBracket, - removeBracket: removeBracket, - parseEntity: parseEntity, - parseString: parseString, - parseNewline: parseNewline, - parseReference: parseReference, - parseInline: parseInline, - processEmphasis: processEmphasis, - removeDelimiter: removeDelimiter, - options: options || {}, - parse: parseInlines - }; - } - - var CODE_INDENT = 4; - - var C_TAB = 9; - var C_NEWLINE$1 = 10; - var C_GREATERTHAN = 62; - var C_LESSTHAN$1 = 60; - var C_SPACE = 32; - var C_OPEN_BRACKET$1 = 91; - - var reHtmlBlockOpen = [ - /./, // dummy for 0 - /^<(?:script|pre|textarea|style)(?:\s|>|$)/i, - /^/, - /\?>/, - />/, - /\]\]>/ - ]; - - var reThematicBreak = /^(?:\*[ \t]*){3,}$|^(?:_[ \t]*){3,}$|^(?:-[ \t]*){3,}$/; - - var reMaybeSpecial = /^[#`~*+_=<>0-9-]/; - - var reNonSpace = /[^ \t\f\v\r\n]/; - - var reBulletListMarker = /^[*+-]/; - - var reOrderedListMarker = /^(\d{1,9})([.)])/; - - var reATXHeadingMarker = /^#{1,6}(?:[ \t]+|$)/; - - var reCodeFence = /^`{3,}(?!.*`)|^~{3,}/; - - var reClosingCodeFence = /^(?:`{3,}|~{3,})(?= *$)/; - - var reSetextHeadingLine = /^(?:=+|-+)[ \t]*$/; - - var reLineEnding = /\r\n|\n|\r/; - - // Returns true if string contains only space characters. - var isBlank = function(s) { - return !reNonSpace.test(s); - }; - - var isSpaceOrTab = function(c) { - return c === C_SPACE || c === C_TAB; - }; - - var peek$1 = function(ln, pos) { - if (pos < ln.length) { - return ln.charCodeAt(pos); - } else { - return -1; - } - }; - - // DOC PARSER - - // These are methods of a Parser object, defined below. - - // Returns true if block ends with a blank line, descending if needed - // into lists and sublists. - var endsWithBlankLine = function(block) { - while (block) { - if (block._lastLineBlank) { - return true; - } - var t = block.type; - if (!block._lastLineChecked && (t === "list" || t === "item")) { - block._lastLineChecked = true; - block = block._lastChild; - } else { - block._lastLineChecked = true; - break; - } - } - return false; - }; - - // Add a line to the block at the tip. We assume the tip - // can accept lines -- that check should be done before calling this. - var addLine = function() { - if (this.partiallyConsumedTab) { - this.offset += 1; // skip over tab - // add space characters: - var charsToTab = 4 - (this.column % 4); - this.tip._string_content += " ".repeat(charsToTab); - } - this.tip._string_content += this.currentLine.slice(this.offset) + "\n"; - }; - - // Add block of type tag as a child of the tip. If the tip can't - // accept children, close and finalize it and try its parent, - // and so on til we find a block that can accept children. - var addChild = function(tag, offset) { - while (!this.blocks[this.tip.type].canContain(tag)) { - this.finalize(this.tip, this.lineNumber - 1); - } - - var column_number = offset + 1; // offset 0 = column 1 - var newBlock = new Node(tag, [ - [this.lineNumber, column_number], - [0, 0] - ]); - newBlock._string_content = ""; - this.tip.appendChild(newBlock); - this.tip = newBlock; - return newBlock; - }; - - // Parse a list marker and return data on the marker (type, - // start, delimiter, bullet character, padding) or null. - var parseListMarker = function(parser, container) { - var rest = parser.currentLine.slice(parser.nextNonspace); - var match; - var nextc; - var spacesStartCol; - var spacesStartOffset; - var data = { - type: null, - tight: true, // lists are tight by default - bulletChar: null, - start: null, - delimiter: null, - padding: null, - markerOffset: parser.indent - }; - if (parser.indent >= 4) { - return null; - } - if ((match = rest.match(reBulletListMarker))) { - data.type = "bullet"; - data.bulletChar = match[0][0]; - } else if ( - (match = rest.match(reOrderedListMarker)) && - (container.type !== "paragraph" || match[1] == 1) - ) { - data.type = "ordered"; - data.start = parseInt(match[1]); - data.delimiter = match[2]; - } else { - return null; - } - // make sure we have spaces after - nextc = peek$1(parser.currentLine, parser.nextNonspace + match[0].length); - if (!(nextc === -1 || nextc === C_TAB || nextc === C_SPACE)) { - return null; - } - - // if it interrupts paragraph, make sure first line isn't blank - if ( - container.type === "paragraph" && - !parser.currentLine - .slice(parser.nextNonspace + match[0].length) - .match(reNonSpace) - ) { - return null; - } - - // we've got a match! advance offset and calculate padding - parser.advanceNextNonspace(); // to start of marker - parser.advanceOffset(match[0].length, true); // to end of marker - spacesStartCol = parser.column; - spacesStartOffset = parser.offset; - do { - parser.advanceOffset(1, true); - nextc = peek$1(parser.currentLine, parser.offset); - } while (parser.column - spacesStartCol < 5 && isSpaceOrTab(nextc)); - var blank_item = peek$1(parser.currentLine, parser.offset) === -1; - var spaces_after_marker = parser.column - spacesStartCol; - if (spaces_after_marker >= 5 || spaces_after_marker < 1 || blank_item) { - data.padding = match[0].length + 1; - parser.column = spacesStartCol; - parser.offset = spacesStartOffset; - if (isSpaceOrTab(peek$1(parser.currentLine, parser.offset))) { - parser.advanceOffset(1, true); - } - } else { - data.padding = match[0].length + spaces_after_marker; - } - return data; - }; - - // Returns true if the two list items are of the same type, - // with the same delimiter and bullet character. This is used - // in agglomerating list items into lists. - var listsMatch = function(list_data, item_data) { - return ( - list_data.type === item_data.type && - list_data.delimiter === item_data.delimiter && - list_data.bulletChar === item_data.bulletChar - ); - }; - - // Finalize and close any unmatched blocks. - var closeUnmatchedBlocks = function() { - if (!this.allClosed) { - // finalize any blocks not matched - while (this.oldtip !== this.lastMatchedContainer) { - var parent = this.oldtip._parent; - this.finalize(this.oldtip, this.lineNumber - 1); - this.oldtip = parent; - } - this.allClosed = true; - } - }; - - // 'finalize' is run when the block is closed. - // 'continue' is run to check whether the block is continuing - // at a certain line and offset (e.g. whether a block quote - // contains a `>`. It returns 0 for matched, 1 for not matched, - // and 2 for "we've dealt with this line completely, go to next." - var blocks = { - document: { - continue: function() { - return 0; - }, - finalize: function() { - return; - }, - canContain: function(t) { - return t !== "item"; - }, - acceptsLines: false - }, - list: { - continue: function() { - return 0; - }, - finalize: function(parser, block) { - var item = block._firstChild; - while (item) { - // check for non-final list item ending with blank line: - if (endsWithBlankLine(item) && item._next) { - block._listData.tight = false; - break; - } - // recurse into children of list item, to see if there are - // spaces between any of them: - var subitem = item._firstChild; - while (subitem) { - if ( - endsWithBlankLine(subitem) && - (item._next || subitem._next) - ) { - block._listData.tight = false; - break; - } - subitem = subitem._next; - } - item = item._next; - } - }, - canContain: function(t) { - return t === "item"; - }, - acceptsLines: false - }, - block_quote: { - continue: function(parser) { - var ln = parser.currentLine; - if ( - !parser.indented && - peek$1(ln, parser.nextNonspace) === C_GREATERTHAN - ) { - parser.advanceNextNonspace(); - parser.advanceOffset(1, false); - if (isSpaceOrTab(peek$1(ln, parser.offset))) { - parser.advanceOffset(1, true); - } - } else { - return 1; - } - return 0; - }, - finalize: function() { - return; - }, - canContain: function(t) { - return t !== "item"; - }, - acceptsLines: false - }, - item: { - continue: function(parser, container) { - if (parser.blank) { - if (container._firstChild == null) { - // Blank line after empty list item - return 1; - } else { - parser.advanceNextNonspace(); - } - } else if ( - parser.indent >= - container._listData.markerOffset + container._listData.padding - ) { - parser.advanceOffset( - container._listData.markerOffset + - container._listData.padding, - true - ); - } else { - return 1; - } - return 0; - }, - finalize: function() { - return; - }, - canContain: function(t) { - return t !== "item"; - }, - acceptsLines: false - }, - heading: { - continue: function() { - // a heading can never container > 1 line, so fail to match: - return 1; - }, - finalize: function() { - return; - }, - canContain: function() { - return false; - }, - acceptsLines: false - }, - thematic_break: { - continue: function() { - // a thematic break can never container > 1 line, so fail to match: - return 1; - }, - finalize: function() { - return; - }, - canContain: function() { - return false; - }, - acceptsLines: false - }, - code_block: { - continue: function(parser, container) { - var ln = parser.currentLine; - var indent = parser.indent; - if (container._isFenced) { - // fenced - var match = - indent <= 3 && - ln.charAt(parser.nextNonspace) === container._fenceChar && - ln.slice(parser.nextNonspace).match(reClosingCodeFence); - if (match && match[0].length >= container._fenceLength) { - // closing fence - we're at end of line, so we can return - parser.lastLineLength = - parser.offset + indent + match[0].length; - parser.finalize(container, parser.lineNumber); - return 2; - } else { - // skip optional spaces of fence offset - var i = container._fenceOffset; - while (i > 0 && isSpaceOrTab(peek$1(ln, parser.offset))) { - parser.advanceOffset(1, true); - i--; - } - } - } else { - // indented - if (indent >= CODE_INDENT) { - parser.advanceOffset(CODE_INDENT, true); - } else if (parser.blank) { - parser.advanceNextNonspace(); - } else { - return 1; - } - } - return 0; - }, - finalize: function(parser, block) { - if (block._isFenced) { - // fenced - // first line becomes info string - var content = block._string_content; - var newlinePos = content.indexOf("\n"); - var firstLine = content.slice(0, newlinePos); - var rest = content.slice(newlinePos + 1); - block.info = unescapeString(firstLine.trim()); - block._literal = rest; - } else { - // indented - block._literal = block._string_content.replace( - /(\n *)+$/, - "\n" - ); - } - block._string_content = null; // allow GC - }, - canContain: function() { - return false; - }, - acceptsLines: true - }, - html_block: { - continue: function(parser, container) { - return parser.blank && - (container._htmlBlockType === 6 || - container._htmlBlockType === 7) - ? 1 - : 0; - }, - finalize: function(parser, block) { - block._literal = block._string_content.replace(/(\n *)+$/, ""); - block._string_content = null; // allow GC - }, - canContain: function() { - return false; - }, - acceptsLines: true - }, - paragraph: { - continue: function(parser) { - return parser.blank ? 1 : 0; - }, - finalize: function(parser, block) { - var pos; - var hasReferenceDefs = false; - - // try parsing the beginning as link reference definitions: - while ( - peek$1(block._string_content, 0) === C_OPEN_BRACKET$1 && - (pos = parser.inlineParser.parseReference( - block._string_content, - parser.refmap - )) - ) { - block._string_content = block._string_content.slice(pos); - hasReferenceDefs = true; - } - if (hasReferenceDefs && isBlank(block._string_content)) { - block.unlink(); - } - }, - canContain: function() { - return false; - }, - acceptsLines: true - } - }; - - // block start functions. Return values: - // 0 = no match - // 1 = matched container, keep going - // 2 = matched leaf, no more block starts - var blockStarts = [ - // block quote - function(parser) { - if ( - !parser.indented && - peek$1(parser.currentLine, parser.nextNonspace) === C_GREATERTHAN - ) { - parser.advanceNextNonspace(); - parser.advanceOffset(1, false); - // optional following space - if (isSpaceOrTab(peek$1(parser.currentLine, parser.offset))) { - parser.advanceOffset(1, true); - } - parser.closeUnmatchedBlocks(); - parser.addChild("block_quote", parser.nextNonspace); - return 1; - } else { - return 0; - } - }, - - // ATX heading - function(parser) { - var match; - if ( - !parser.indented && - (match = parser.currentLine - .slice(parser.nextNonspace) - .match(reATXHeadingMarker)) - ) { - parser.advanceNextNonspace(); - parser.advanceOffset(match[0].length, false); - parser.closeUnmatchedBlocks(); - var container = parser.addChild("heading", parser.nextNonspace); - container.level = match[0].trim().length; // number of #s - // remove trailing ###s: - container._string_content = parser.currentLine - .slice(parser.offset) - .replace(/^[ \t]*#+[ \t]*$/, "") - .replace(/[ \t]+#+[ \t]*$/, ""); - parser.advanceOffset(parser.currentLine.length - parser.offset); - return 2; - } else { - return 0; - } - }, - - // Fenced code block - function(parser) { - var match; - if ( - !parser.indented && - (match = parser.currentLine - .slice(parser.nextNonspace) - .match(reCodeFence)) - ) { - var fenceLength = match[0].length; - parser.closeUnmatchedBlocks(); - var container = parser.addChild("code_block", parser.nextNonspace); - container._isFenced = true; - container._fenceLength = fenceLength; - container._fenceChar = match[0][0]; - container._fenceOffset = parser.indent; - parser.advanceNextNonspace(); - parser.advanceOffset(fenceLength, false); - return 2; - } else { - return 0; - } - }, - - // HTML block - function(parser, container) { - if ( - !parser.indented && - peek$1(parser.currentLine, parser.nextNonspace) === C_LESSTHAN$1 - ) { - var s = parser.currentLine.slice(parser.nextNonspace); - var blockType; - - for (blockType = 1; blockType <= 7; blockType++) { - if ( - reHtmlBlockOpen[blockType].test(s) && - (blockType < 7 || (container.type !== "paragraph" && - !(!parser.allClosed && !parser.blank && - parser.tip.type === "paragraph") // maybe lazy - )) - ) { - parser.closeUnmatchedBlocks(); - // We don't adjust parser.offset; - // spaces are part of the HTML block: - var b = parser.addChild("html_block", parser.offset); - b._htmlBlockType = blockType; - return 2; - } - } - } - - return 0; - }, - - // Setext heading - function(parser, container) { - var match; - if ( - !parser.indented && - container.type === "paragraph" && - (match = parser.currentLine - .slice(parser.nextNonspace) - .match(reSetextHeadingLine)) - ) { - parser.closeUnmatchedBlocks(); - // resolve reference link definitiosn - var pos; - while ( - peek$1(container._string_content, 0) === C_OPEN_BRACKET$1 && - (pos = parser.inlineParser.parseReference( - container._string_content, - parser.refmap - )) - ) { - container._string_content = container._string_content.slice( - pos - ); - } - if (container._string_content.length > 0) { - var heading = new Node("heading", container.sourcepos); - heading.level = match[0][0] === "=" ? 1 : 2; - heading._string_content = container._string_content; - container.insertAfter(heading); - container.unlink(); - parser.tip = heading; - parser.advanceOffset( - parser.currentLine.length - parser.offset, - false - ); - return 2; - } else { - return 0; - } - } else { - return 0; - } - }, - - // thematic break - function(parser) { - if ( - !parser.indented && - reThematicBreak.test(parser.currentLine.slice(parser.nextNonspace)) - ) { - parser.closeUnmatchedBlocks(); - parser.addChild("thematic_break", parser.nextNonspace); - parser.advanceOffset( - parser.currentLine.length - parser.offset, - false - ); - return 2; - } else { - return 0; - } - }, - - // list item - function(parser, container) { - var data; - - if ( - (!parser.indented || container.type === "list") && - (data = parseListMarker(parser, container)) - ) { - parser.closeUnmatchedBlocks(); - - // add the list if needed - if ( - parser.tip.type !== "list" || - !listsMatch(container._listData, data) - ) { - container = parser.addChild("list", parser.nextNonspace); - container._listData = data; - } - - // add the list item - container = parser.addChild("item", parser.nextNonspace); - container._listData = data; - return 1; - } else { - return 0; - } - }, - - // indented code block - function(parser) { - if ( - parser.indented && - parser.tip.type !== "paragraph" && - !parser.blank - ) { - // indented code - parser.advanceOffset(CODE_INDENT, true); - parser.closeUnmatchedBlocks(); - parser.addChild("code_block", parser.offset); - return 2; - } else { - return 0; - } - } - ]; - - var advanceOffset = function(count, columns) { - var currentLine = this.currentLine; - var charsToTab, charsToAdvance; - var c; - while (count > 0 && (c = currentLine[this.offset])) { - if (c === "\t") { - charsToTab = 4 - (this.column % 4); - if (columns) { - this.partiallyConsumedTab = charsToTab > count; - charsToAdvance = charsToTab > count ? count : charsToTab; - this.column += charsToAdvance; - this.offset += this.partiallyConsumedTab ? 0 : 1; - count -= charsToAdvance; - } else { - this.partiallyConsumedTab = false; - this.column += charsToTab; - this.offset += 1; - count -= 1; - } - } else { - this.partiallyConsumedTab = false; - this.offset += 1; - this.column += 1; // assume ascii; block starts are ascii - count -= 1; - } - } - }; - - var advanceNextNonspace = function() { - this.offset = this.nextNonspace; - this.column = this.nextNonspaceColumn; - this.partiallyConsumedTab = false; - }; - - var findNextNonspace = function() { - var currentLine = this.currentLine; - var i = this.offset; - var cols = this.column; - var c; - - while ((c = currentLine.charAt(i)) !== "") { - if (c === " ") { - i++; - cols++; - } else if (c === "\t") { - i++; - cols += 4 - (cols % 4); - } else { - break; - } - } - this.blank = c === "\n" || c === "\r" || c === ""; - this.nextNonspace = i; - this.nextNonspaceColumn = cols; - this.indent = this.nextNonspaceColumn - this.column; - this.indented = this.indent >= CODE_INDENT; - }; - - // Analyze a line of text and update the document appropriately. - // We parse markdown text by calling this on each line of input, - // then finalizing the document. - var incorporateLine = function(ln) { - var all_matched = true; - var t; - - var container = this.doc; - this.oldtip = this.tip; - this.offset = 0; - this.column = 0; - this.blank = false; - this.partiallyConsumedTab = false; - this.lineNumber += 1; - - // replace NUL characters for security - if (ln.indexOf("\u0000") !== -1) { - ln = ln.replace(/\0/g, "\uFFFD"); - } - - this.currentLine = ln; - - // For each containing block, try to parse the associated line start. - // Bail out on failure: container will point to the last matching block. - // Set all_matched to false if not all containers match. - var lastChild; - while ((lastChild = container._lastChild) && lastChild._open) { - container = lastChild; - - this.findNextNonspace(); - - switch (this.blocks[container.type].continue(this, container)) { - case 0: // we've matched, keep going - break; - case 1: // we've failed to match a block - all_matched = false; - break; - case 2: // we've hit end of line for fenced code close and can return - return; - default: - throw "continue returned illegal value, must be 0, 1, or 2"; - } - if (!all_matched) { - container = container._parent; // back up to last matching block - break; - } - } - - this.allClosed = container === this.oldtip; - this.lastMatchedContainer = container; - - var matchedLeaf = - container.type !== "paragraph" && blocks[container.type].acceptsLines; - var starts = this.blockStarts; - var startsLen = starts.length; - // Unless last matched container is a code block, try new container starts, - // adding children to the last matched container: - while (!matchedLeaf) { - this.findNextNonspace(); - - // this is a little performance optimization: - if ( - !this.indented && - !reMaybeSpecial.test(ln.slice(this.nextNonspace)) - ) { - this.advanceNextNonspace(); - break; - } - - var i = 0; - while (i < startsLen) { - var res = starts[i](this, container); - if (res === 1) { - container = this.tip; - break; - } else if (res === 2) { - container = this.tip; - matchedLeaf = true; - break; - } else { - i++; - } - } - - if (i === startsLen) { - // nothing matched - this.advanceNextNonspace(); - break; - } - } - - // What remains at the offset is a text line. Add the text to the - // appropriate container. - - // First check for a lazy paragraph continuation: - if (!this.allClosed && !this.blank && this.tip.type === "paragraph") { - // lazy paragraph continuation - this.addLine(); - } else { - // not a lazy continuation - - // finalize any blocks not matched - this.closeUnmatchedBlocks(); - if (this.blank && container.lastChild) { - container.lastChild._lastLineBlank = true; - } - - t = container.type; - - // Block quote lines are never blank as they start with > - // and we don't count blanks in fenced code for purposes of tight/loose - // lists or breaking out of lists. We also don't set _lastLineBlank - // on an empty list item, or if we just closed a fenced block. - var lastLineBlank = - this.blank && - !( - t === "block_quote" || - (t === "code_block" && container._isFenced) || - (t === "item" && - !container._firstChild && - container.sourcepos[0][0] === this.lineNumber) - ); - - // propagate lastLineBlank up through parents: - var cont = container; - while (cont) { - cont._lastLineBlank = lastLineBlank; - cont = cont._parent; - } - - if (this.blocks[t].acceptsLines) { - this.addLine(); - // if HtmlBlock, check for end condition - if ( - t === "html_block" && - container._htmlBlockType >= 1 && - container._htmlBlockType <= 5 && - reHtmlBlockClose[container._htmlBlockType].test( - this.currentLine.slice(this.offset) - ) - ) { - this.lastLineLength = ln.length; - this.finalize(container, this.lineNumber); - } - } else if (this.offset < ln.length && !this.blank) { - // create paragraph container for line - container = this.addChild("paragraph", this.offset); - this.advanceNextNonspace(); - this.addLine(); - } - } - this.lastLineLength = ln.length; - }; - - // Finalize a block. Close it and do any necessary postprocessing, - // e.g. creating string_content from strings, setting the 'tight' - // or 'loose' status of a list, and parsing the beginnings - // of paragraphs for reference definitions. Reset the tip to the - // parent of the closed block. - var finalize = function(block, lineNumber) { - var above = block._parent; - block._open = false; - block.sourcepos[1] = [lineNumber, this.lastLineLength]; - - this.blocks[block.type].finalize(this, block); - - this.tip = above; - }; - - // Walk through a block & children recursively, parsing string content - // into inline content where appropriate. - var processInlines = function(block) { - var node, event, t; - var walker = block.walker(); - this.inlineParser.refmap = this.refmap; - this.inlineParser.options = this.options; - while ((event = walker.next())) { - node = event.node; - t = node.type; - if (!event.entering && (t === "paragraph" || t === "heading")) { - this.inlineParser.parse(node); - } - } - }; - - var Document = function() { - var doc = new Node("document", [ - [1, 1], - [0, 0] - ]); - return doc; - }; - - // The main parsing function. Returns a parsed document AST. - var parse = function(input) { - this.doc = new Document(); - this.tip = this.doc; - this.refmap = {}; - this.lineNumber = 0; - this.lastLineLength = 0; - this.offset = 0; - this.column = 0; - this.lastMatchedContainer = this.doc; - this.currentLine = ""; - if (this.options.time) { - console.time("preparing input"); - } - var lines = input.split(reLineEnding); - var len = lines.length; - if (input.charCodeAt(input.length - 1) === C_NEWLINE$1) { - // ignore last blank line created by final newline - len -= 1; - } - if (this.options.time) { - console.timeEnd("preparing input"); - } - if (this.options.time) { - console.time("block parsing"); - } - for (var i = 0; i < len; i++) { - this.incorporateLine(lines[i]); - } - while (this.tip) { - this.finalize(this.tip, len); - } - if (this.options.time) { - console.timeEnd("block parsing"); - } - if (this.options.time) { - console.time("inline parsing"); - } - this.processInlines(this.doc); - if (this.options.time) { - console.timeEnd("inline parsing"); - } - return this.doc; - }; - - // The Parser object. - function Parser(options) { - return { - doc: new Document(), - blocks: blocks, - blockStarts: blockStarts, - tip: this.doc, - oldtip: this.doc, - currentLine: "", - lineNumber: 0, - offset: 0, - column: 0, - nextNonspace: 0, - nextNonspaceColumn: 0, - indent: 0, - indented: false, - blank: false, - partiallyConsumedTab: false, - allClosed: true, - lastMatchedContainer: this.doc, - refmap: {}, - lastLineLength: 0, - inlineParser: new InlineParser(options), - findNextNonspace: findNextNonspace, - advanceOffset: advanceOffset, - advanceNextNonspace: advanceNextNonspace, - addLine: addLine, - addChild: addChild, - incorporateLine: incorporateLine, - finalize: finalize, - processInlines: processInlines, - closeUnmatchedBlocks: closeUnmatchedBlocks, - parse: parse, - options: options || {} - }; - } - - function Renderer() {} - - /** - * Walks the AST and calls member methods for each Node type. - * - * @param ast {Node} The root of the abstract syntax tree. - */ - function render(ast) { - var walker = ast.walker(), - event, - type; - - this.buffer = ""; - this.lastOut = "\n"; - this.heading_count = 0; - - while ((event = walker.next())) { - type = event.node.type; - if (this[type]) { - this[type](event.node, event.entering); - } - } - return this.buffer; - } - - /** - * Concatenate a literal string to the buffer. - * - * @param str {String} The string to concatenate. - */ - function lit(str) { - this.buffer += str; - this.lastOut = str; - } - - /** - * Output a newline to the buffer. - */ - function cr() { - if (this.lastOut !== "\n") { - this.lit("\n"); - } - } - - /** - * Concatenate a string to the buffer possibly escaping the content. - * - * Concrete renderer implementations should override this method. - * - * @param str {String} The string to concatenate. - */ - function out(str) { - this.lit(str); - } - - /** - * Escape a string for the target renderer. - * - * Abstract function that should be implemented by concrete - * renderer implementations. - * - * @param str {String} The string to escape. - */ - function esc(str) { - return str; - } - - Renderer.prototype.render = render; - Renderer.prototype.out = out; - Renderer.prototype.lit = lit; - Renderer.prototype.cr = cr; - Renderer.prototype.esc = esc; - - var reUnsafeProtocol = /^javascript:|vbscript:|file:|data:/i; - var reSafeDataProtocol = /^data:image\/(?:png|gif|jpeg|webp)/i; - - var potentiallyUnsafe = function(url) { - return reUnsafeProtocol.test(url) && !reSafeDataProtocol.test(url); - }; - - // Helper function to produce an HTML tag. - function tag(name, attrs, selfclosing) { - if (this.disableTags > 0) { - return; - } - this.buffer += "<" + name; - if (attrs && attrs.length > 0) { - var i = 0; - var attrib; - while ((attrib = attrs[i]) !== undefined) { - this.buffer += " " + attrib[0] + '="' + attrib[1] + '"'; - i++; - } - } - if (selfclosing) { - this.buffer += " /"; - } - this.buffer += ">"; - this.lastOut = ">"; - } - - function HtmlRenderer(options) { - options = options || {}; - // by default, soft breaks are rendered as newlines in HTML - options.softbreak = options.softbreak || "\n"; - // set to "
" to make them hard breaks - // set to " " if you want to ignore line wrapping in source - this.esc = options.esc || escapeXml; - // escape html with a custom function - // else use escapeXml - - this.disableTags = 0; - this.lastOut = "\n"; - this.options = options; - } - - /* Node methods */ - - function text$1(node) { - this.out(node.literal); - } - - function softbreak() { - this.lit(this.options.softbreak); - } - - function linebreak() { - this.tag("br", [], true); - this.cr(); - } - - function link(node, entering) { - var attrs = this.attrs(node); - if (entering) { - if (!(this.options.safe && potentiallyUnsafe(node.destination))) { - attrs.push(["href", this.esc(node.destination)]); - } - if (node.title) { - attrs.push(["title", this.esc(node.title)]); - } - this.tag("a", attrs); - } else { - this.tag("/a"); - } - } - - function image$1(node, entering) { - if (entering) { - if (this.disableTags === 0) { - if (this.options.safe && potentiallyUnsafe(node.destination)) { - this.lit('');
-                } else {
-                    this.lit('<img src='); - } - } - } - - function emph(node, entering) { - this.tag(entering ? "em" : "/em"); - } - - function strong(node, entering) { - this.tag(entering ? "strong" : "/strong"); - } - - function paragraph(node, entering) { - var grandparent = node.parent.parent, - attrs = this.attrs(node); - if (grandparent !== null && grandparent.type === "list") { - if (grandparent.listTight) { - return; - } - } - if (entering) { - this.cr(); - this.tag("p", attrs); - } else { - this.tag("/p"); - this.cr(); - } - } - - function heading(node, entering) { - var tagname = "h" + node.level, - attrs = this.attrs(node); - if (entering) { - if (node.level != 1) { - attrs.push(["id", ":" + this.heading_count]); - this.heading_count += 1; - } - this.cr(); - this.tag(tagname, attrs); - } else { - this.tag("/" + tagname); - this.cr(); - } - } - - function code(node) { - this.tag("code"); - this.out(node.literal); - this.tag("/code"); - } - - function code_block(node) { - var info_words = node.info ? node.info.split(/\s+/) : [], - attrs = this.attrs(node); - if (info_words.length > 0 && info_words[0].length > 0) { - attrs.push(["class", "language-" + this.esc(info_words[0])]); - } - this.cr(); - this.tag("pre"); - this.tag("code", attrs); - this.out(node.literal); - this.tag("/code"); - this.tag("/pre"); - this.cr(); - } - - function thematic_break(node) { - var attrs = this.attrs(node); - this.cr(); - this.tag("hr", attrs, true); - this.cr(); - } - - function block_quote(node, entering) { - var attrs = this.attrs(node); - if (entering) { - this.cr(); - this.tag("blockquote", attrs); - this.cr(); - } else { - this.cr(); - this.tag("/blockquote"); - this.cr(); - } - } - - function list(node, entering) { - var tagname = node.listType === "bullet" ? "ul" : "ol", - attrs = this.attrs(node); - - if (entering) { - var start = node.listStart; - if (start !== null && start !== 1) { - attrs.push(["start", start.toString()]); - } - this.cr(); - this.tag(tagname, attrs); - this.cr(); - } else { - this.cr(); - this.tag("/" + tagname); - this.cr(); - } - } - - function item(node, entering) { - var attrs = this.attrs(node); - if (entering) { - this.tag("li", attrs); - } else { - this.tag("/li"); - this.cr(); - } - } - - function html_inline(node) { - if (this.options.safe) { - this.lit(""); - } else { - this.lit(node.literal); - } - } - - function html_block(node) { - this.cr(); - if (this.options.safe) { - this.lit(""); - } else { - this.lit(node.literal); - } - this.cr(); - } - - function custom_inline(node, entering) { - if (entering && node.onEnter) { - this.lit(node.onEnter); - } else if (!entering && node.onExit) { - this.lit(node.onExit); - } - } - - function custom_block(node, entering) { - this.cr(); - if (entering && node.onEnter) { - this.lit(node.onEnter); - } else if (!entering && node.onExit) { - this.lit(node.onExit); - } - this.cr(); - } - - /* Helper methods */ - - function out$1(s) { - this.lit(this.esc(s)); - } - - function attrs(node) { - var att = []; - if (this.options.sourcepos) { - var pos = node.sourcepos; - if (pos) { - att.push([ - "data-sourcepos", - String(pos[0][0]) + - ":" + - String(pos[0][1]) + - "-" + - String(pos[1][0]) + - ":" + - String(pos[1][1]) - ]); - } - } - return att; - } - - // quick browser-compatible inheritance - HtmlRenderer.prototype = Object.create(Renderer.prototype); - - HtmlRenderer.prototype.text = text$1; - HtmlRenderer.prototype.html_inline = html_inline; - HtmlRenderer.prototype.html_block = html_block; - HtmlRenderer.prototype.softbreak = softbreak; - HtmlRenderer.prototype.linebreak = linebreak; - HtmlRenderer.prototype.link = link; - HtmlRenderer.prototype.image = image$1; - HtmlRenderer.prototype.emph = emph; - HtmlRenderer.prototype.strong = strong; - HtmlRenderer.prototype.paragraph = paragraph; - HtmlRenderer.prototype.heading = heading; - HtmlRenderer.prototype.code = code; - HtmlRenderer.prototype.code_block = code_block; - HtmlRenderer.prototype.thematic_break = thematic_break; - HtmlRenderer.prototype.block_quote = block_quote; - HtmlRenderer.prototype.list = list; - HtmlRenderer.prototype.item = item; - HtmlRenderer.prototype.custom_inline = custom_inline; - HtmlRenderer.prototype.custom_block = custom_block; - - HtmlRenderer.prototype.esc = escapeXml; - - HtmlRenderer.prototype.out = out$1; - HtmlRenderer.prototype.tag = tag; - HtmlRenderer.prototype.attrs = attrs; - - var reXMLTag = /\<[^>]*\>/; - - function toTagName(s) { - return s.replace(/([a-z])([A-Z])/g, "$1_$2").toLowerCase(); - } - - function XmlRenderer(options) { - options = options || {}; - - this.disableTags = 0; - this.lastOut = "\n"; - - this.indentLevel = 0; - this.indent = " "; - - this.esc = options.esc || escapeXml; - // escape html with a custom function - // else use escapeXml - - this.options = options; - } - - function render$1(ast) { - this.buffer = ""; - - var attrs; - var tagname; - var walker = ast.walker(); - var event, node, entering; - var container; - var selfClosing; - var nodetype; - - var options = this.options; - - if (options.time) { - console.time("rendering"); - } - - this.buffer += '\n'; - this.buffer += '\n'; - - while ((event = walker.next())) { - entering = event.entering; - node = event.node; - nodetype = node.type; - - container = node.isContainer; - - selfClosing = - nodetype === "thematic_break" || - nodetype === "linebreak" || - nodetype === "softbreak"; - - tagname = toTagName(nodetype); - - if (entering) { - attrs = []; - - switch (nodetype) { - case "document": - attrs.push(["xmlns", "http://commonmark.org/xml/1.0"]); - break; - case "list": - if (node.listType !== null) { - attrs.push(["type", node.listType.toLowerCase()]); - } - if (node.listStart !== null) { - attrs.push(["start", String(node.listStart)]); - } - if (node.listTight !== null) { - attrs.push([ - "tight", - node.listTight ? "true" : "false" - ]); - } - var delim = node.listDelimiter; - if (delim !== null) { - var delimword = ""; - if (delim === ".") { - delimword = "period"; - } else { - delimword = "paren"; - } - attrs.push(["delimiter", delimword]); - } - break; - case "code_block": - if (node.info) { - attrs.push(["info", node.info]); - } - break; - case "heading": - attrs.push(["level", String(node.level)]); - break; - case "link": - case "image": - attrs.push(["destination", node.destination]); - attrs.push(["title", node.title]); - break; - case "custom_inline": - case "custom_block": - attrs.push(["on_enter", node.onEnter]); - attrs.push(["on_exit", node.onExit]); - break; - } - if (options.sourcepos) { - var pos = node.sourcepos; - if (pos) { - attrs.push([ - "sourcepos", - String(pos[0][0]) + - ":" + - String(pos[0][1]) + - "-" + - String(pos[1][0]) + - ":" + - String(pos[1][1]) - ]); - } - } - - this.cr(); - this.out(this.tag(tagname, attrs, selfClosing)); - if (container) { - this.indentLevel += 1; - } else if (!container && !selfClosing) { - var lit = node.literal; - if (lit) { - this.out(this.esc(lit)); - } - this.out(this.tag("/" + tagname)); - } - } else { - this.indentLevel -= 1; - this.cr(); - this.out(this.tag("/" + tagname)); - } - } - if (options.time) { - console.timeEnd("rendering"); - } - this.buffer += "\n"; - return this.buffer; - } - - function out$2(s) { - if (this.disableTags > 0) { - this.buffer += s.replace(reXMLTag, ""); - } else { - this.buffer += s; - } - this.lastOut = s; - } - - function cr$1() { - if (this.lastOut !== "\n") { - this.buffer += "\n"; - this.lastOut = "\n"; - for (var i = this.indentLevel; i > 0; i--) { - this.buffer += this.indent; - } - } - } - - // Helper function to produce an XML tag. - function tag$1(name, attrs, selfclosing) { - var result = "<" + name; - if (attrs && attrs.length > 0) { - var i = 0; - var attrib; - while ((attrib = attrs[i]) !== undefined) { - result += " " + attrib[0] + '="' + this.esc(attrib[1]) + '"'; - i++; - } - } - if (selfclosing) { - result += " /"; - } - result += ">"; - return result; - } - - // quick browser-compatible inheritance - XmlRenderer.prototype = Object.create(Renderer.prototype); - - XmlRenderer.prototype.render = render$1; - XmlRenderer.prototype.out = out$2; - XmlRenderer.prototype.cr = cr$1; - XmlRenderer.prototype.tag = tag$1; - XmlRenderer.prototype.esc = escapeXml; - - exports.HtmlRenderer = HtmlRenderer; - exports.Node = Node; - exports.Parser = Parser; - exports.Renderer = Renderer; - exports.XmlRenderer = XmlRenderer; - - Object.defineProperty(exports, '__esModule', { value: true }); - -}))); diff --git a/lib/docs/index.html b/lib/docs/index.html index 73f903d9fcea..22380138cc0f 100644 --- a/lib/docs/index.html +++ b/lib/docs/index.html @@ -1,634 +1,185 @@ - + - - Documentation - Zig - + Zig Documentation - - - - -