diff --git a/JetStreamDriver.js b/JetStreamDriver.js index 8b74ab20..a99eefb5 100644 --- a/JetStreamDriver.js +++ b/JetStreamDriver.js @@ -2576,6 +2576,47 @@ let BENCHMARKS = [ ]; +const PRISM_JS_FILES = [ + "./startup-helper/StartupBenchmark.js", + "./prismjs/benchmark.js", +]; +const PRISM_JS_PRELOADS = { + SAMPLE_CPP: "./prismjs/data/sample.cpp", + SAMPLE_CSS: "./prismjs/data/sample.css", + SAMPLE_HTML: "./prismjs/data/sample.html", + SAMPLE_JS: "./prismjs/data/sample.js", + SAMPLE_JSON: "./prismjs/data/sample.json", + SAMPLE_MD: "./prismjs/data/sample.md", + SAMPLE_PY: "./prismjs/data/sample.py", + SAMPLE_SQL: "./prismjs/data/sample.sql", + SAMPLE_TS: "./prismjs/data/sample.TS", +}; +const PRISM_JS_TAGS = ["parser", "regexp", "startup", "prismjs"]; +BENCHMARKS.push( + new AsyncBenchmark({ + name: "prismjs-startup-es6", + files: PRISM_JS_FILES, + preload: { + // Use non-minified bundle for better local profiling. + // BUNDLE: "./prismjs/dist/bundle.es6.js", + BUNDLE: "./prismjs/dist/bundle.es6.min.js", + ...PRISM_JS_PRELOADS, + }, + tags: ["Default", ...PRISM_JS_TAGS, "es6"], + }), + new AsyncBenchmark({ + name: "prismjs-startup-es5", + files: PRISM_JS_FILES, + preload: { + // Use non-minified bundle for better local profiling. + // BUNDLE: "./prismjs/dist/bundle.es5.js", + BUNDLE: "./prismjs/dist/bundle.es5.min.js", + ...PRISM_JS_PRELOADS, + }, + tags: [...PRISM_JS_TAGS, "es5"], + }), +); + const INTL_TESTS = [ "DateTimeFormat", "ListFormat", diff --git a/prismjs/README.md b/prismjs/README.md new file mode 100644 index 00000000..2136bbd9 --- /dev/null +++ b/prismjs/README.md @@ -0,0 +1,12 @@ +# prism.js test for JetStream + +Measures the performance of the prism.js library by parsing and formatting sample files. + +## Build Instructions + +```bash +# install required node packages. +npm ci +# build the workload, output is ./dist +npm run build +``` diff --git a/prismjs/benchmark-node.mjs b/prismjs/benchmark-node.mjs new file mode 100644 index 00000000..dea66a47 --- /dev/null +++ b/prismjs/benchmark-node.mjs @@ -0,0 +1,38 @@ +import fs from "fs"; +import path from "path"; +import { fileURLToPath } from "url"; +import { runTest } from "./src/test.mjs"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +const samples = [ + { file: "data/sample.html", lang: "markup" }, + { file: "data/sample.js", lang: "javascript" }, + { file: "data/sample.css", lang: "css" }, + { file: "data/sample.cpp", lang: "cpp" }, + { file: "data/sample.md", lang: "markdown" }, + { file: "data/sample.json", lang: "json" }, + { file: "data/sample.sql", lang: "sql" }, + { file: "data/sample.py", lang: "python" }, + { file: "data/sample.ts", lang: "typescript" }, +]; + +const samplesWithContent = samples.map((sample) => { + const content = fs.readFileSync(path.join(__dirname, sample.file), "utf8"); + return { ...sample, content }; +}); + +const startTime = process.hrtime.bigint(); +const results = runTest(samplesWithContent); +const endTime = process.hrtime.bigint(); + +const duration = Number(endTime - startTime) / 1e6; // milliseconds + +for (const result of results) { + console.log(`Output size: ${result.html.length} characters`); +} + +console.log( + `\nTotal highlighting time for all files: ${duration.toFixed(2)}ms` +); diff --git a/prismjs/benchmark.js b/prismjs/benchmark.js new file mode 100644 index 00000000..5b2e9bde --- /dev/null +++ b/prismjs/benchmark.js @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2025 Apple Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +const EXPECTED_ASSERTION_COUNT = 1213680; + +class Benchmark extends StartupBenchmark { + lastResult; + totalHash = 0xdeadbeef; + samples = []; + + constructor({iterationCount}) { + super({ + iterationCount, + expectedCacheCommentCount: 71, + sourceCodeReuseCount: 1, + }); + } + + async init() { + await Promise.all([ + super.init(), + this.loadData("cpp", JetStream.preload.SAMPLE_CPP, -1086372285), + this.loadData("css", JetStream.preload.SAMPLE_CSS, 1173668337), + this.loadData("markup", JetStream.preload.SAMPLE_HTML, -270772291), + this.loadData("js", JetStream.preload.SAMPLE_JS, -838545229), + this.loadData("markdown", JetStream.preload.SAMPLE_MD, 5859883), + this.loadData("sql", JetStream.preload.SAMPLE_SQL, 5859941), + this.loadData("json", JetStream.preload.SAMPLE_JSON, 5859883), + this.loadData("typescript", JetStream.preload.SAMPLE_TS, 133251625), + ]); + } + + async loadData(lang, file, hash) { + const sample = { lang, hash }; + // Push eagerly to have deterministic order. + this.samples.push(sample); + sample.content = await JetStream.getString(file); + // Warm up quickHash and force good string representation. + this.quickHash(sample.content); + console.assert(sample.content.length > 0); + } + + runIteration(iteration) { + // Module is loaded into PrismJSBenchmark + let PrismJSBenchmark; + eval(this.iterationSourceCodes[iteration]); + this.lastResult = PrismJSBenchmark.runTest(this.samples); + + for (const result of this.lastResult) { + result.hash = this.quickHash(result.html); + this.totalHash ^= result.hash; + } + } + + validate() { + console.assert(this.lastResult.length == this.samples.length); + for (let i = 0; i < this.samples.length; i++) { + const sample = this.samples[i]; + const result = this.lastResult[i]; + console.assert(result.html.length > 0); + console.assert( + result.hash == sample.hash, + `Invalid result.hash = ${result.hash}, expected ${sample.hash}` + ); + } + } +} diff --git a/prismjs/data/sample.cpp b/prismjs/data/sample.cpp new file mode 100644 index 00000000..4e626f9b --- /dev/null +++ b/prismjs/data/sample.cpp @@ -0,0 +1,42 @@ +#include +#include +#include +#include + +class MyClass { +public: + MyClass(const std::string& name) : name_(name) {} + + void printName() const { + std::cout << "Name: " << name_ << std::endl; + } + +private: + std::string name_; +}; + +template +void printVector(const std::vector& vec) { + for (const auto& item : vec) { + std::cout << item << " "; + } + std::cout << std::endl; +} + +int main() { + std::cout << "Hello, C++ World!" << std::endl; + + std::vector numbers = {1, 2, 3, 4, 5}; + printVector(numbers); + + std::vector strings = {"apple", "banana", "cherry"}; + printVector(strings); + + std::sort(strings.begin(), strings.end()); + printVector(strings); + + MyClass obj("Test Object"); + obj.printName(); + + return 0; +} diff --git a/prismjs/data/sample.css b/prismjs/data/sample.css new file mode 100644 index 00000000..af4bd9fd --- /dev/null +++ b/prismjs/data/sample.css @@ -0,0 +1,129 @@ +/* Large CSS file for testing */ + +body { + font-family: Arial, sans-serif; + line-height: 1.6; + color: #333; +} + +.container { + width: 90%; + margin: 0 auto; + padding: 20px; +} + +.header { + background: #f4f4f4; + padding: 1rem; + border-bottom: 1px solid #ddd; +} + +.header h1 { + margin: 0; +} + +.nav { + background: #333; + color: #fff; + padding: 0.5rem; +} + +.nav ul { + padding: 0; + list-style: none; +} + +.nav ul li { + display: inline; + margin-right: 20px; +} + +.nav a { + color: #fff; + text-decoration: none; +} + +.main { + padding: 1rem 0; +} + +.footer { + background: #333; + color: #fff; + text-align: center; + padding: 1rem; + margin-top: 20px; +} + +.btn { + display: inline-block; + background: #5cb85c; + color: #fff; + padding: 10px 20px; + border: none; + cursor: pointer; +} + +.btn:hover { + background: #4cae4c; +} + +.grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 1rem; +} + +.card { + border: 1px solid #ccc; + padding: 1rem; + box-shadow: 2px 2px 5px rgba(0,0,0,0.1); +} + +.table { + width: 100%; + border-collapse: collapse; +} + +.table th, .table td { + border: 1px solid #ddd; + padding: 8px; +} + +.table th { + background-color: #f2f2f2; +} + +.form-group { + margin-bottom: 15px; +} + +.form-group label { + display: block; + margin-bottom: 5px; +} + +.form-group input { + width: 100%; + padding: 8px; + border: 1px solid #ccc; +} + +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; +} + +.alert-success { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.alert-danger { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; +} diff --git a/prismjs/data/sample.html b/prismjs/data/sample.html new file mode 100644 index 00000000..6a5efa93 --- /dev/null +++ b/prismjs/data/sample.html @@ -0,0 +1,93 @@ + + + + + + Large HTML Document + + + +
+
+

Large HTML Document for Testing

+
+
+

This is a large HTML document created for testing purposes. It contains a variety of elements to simulate a real-world web page.

+
+

Card 1

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

+

Card 2

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

+

Card 3

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

+

Card 4

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

+

Card 5

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

+

Card 6

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

+

Card 7

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

+

Card 8

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

+

Card 9

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

+
+
+

More Content

+

Here is some more content to make the file larger.

+
    +
  • List item 1
  • +
  • List item 2
  • +
  • List item 3
  • +
  • List item 4
  • +
  • List item 5
  • +
  • List item 6
  • +
  • List item 7
  • +
  • List item 8
  • +
  • List item 9
  • +
  • List item 10
  • +
+

Even more content...

+

+function helloWorld() {
+    console.log("Hello, world!");
+}
+                
+
+
+

And More...

+

Adding more sections to increase the size of the document.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Header 1Header 2Header 3
Data 1Data 2Data 3
Data 4Data 5Data 6
Data 7Data 8Data 9
+
+
+
+

© 2025 Test Document

+
+
+ + diff --git a/prismjs/data/sample.js b/prismjs/data/sample.js new file mode 100644 index 00000000..d44fb8bf --- /dev/null +++ b/prismjs/data/sample.js @@ -0,0 +1,110 @@ +// Large JavaScript file for testing + +function a() { + // Function a + let x = 10; + for (let i = 0; i < 100; i++) { + x += i; + } + return x; +} + +function b() { + // Function b + let y = 20; + let z = a(); + return y + z; +} + +function c() { + // Function c + let arr = []; + for (let i = 0; i < 1000; i++) { + arr.push({ + id: i, + value: Math.random() + }); + } + return arr; +} + +function d() { + // Function d + let obj = {}; + for (let i = 0; i < 500; i++) { + obj['key' + i] = 'value' + i; + } + return obj; +} + +function e() { + // Function e + let text = "This is a long string of text. ".repeat(100); + return text; +} + +function f() { + // Function f + let result = 0; + for (let i = 0; i < 1000; i++) { + result += Math.sqrt(i); + } + return result; +} + +function g() { + // Function g + let date = new Date(); + return date.toString(); +} + +function h() { + // Function h + let regex = new RegExp('^[a-zA-Z0-9]*$'); + return regex.test('someTestString123'); +} + +function i() { + // Function i + let promise = new Promise((resolve, reject) => { + setTimeout(() => { + resolve("Promise resolved after 1 second"); + }, 1000); + }); + return promise; +} + +async function j() { + // Function j + let result = await i(); + console.log(result); +} + +class MyClass { + constructor() { + this.property1 = 'value1'; + this.property2 = 123; + } + + method1() { + return this.property1; + } + + method2() { + return this.property2; + } +} + +const instance = new MyClass(); + +console.log(a()); +console.log(b()); +console.log(c()); +console.log(d()); +console.log(e()); +console.log(f()); +console.log(g()); +console.log(h()); +j(); +console.log(instance.method1()); +console.log(instance.method2()); diff --git a/prismjs/data/sample.json b/prismjs/data/sample.json new file mode 100644 index 00000000..5e40246d --- /dev/null +++ b/prismjs/data/sample.json @@ -0,0 +1,15 @@ +{ + "name": "prismjs-benchmark", + "version": "1.0.0", + "description": "A benchmark for Prism.js", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [ + "prism", + "benchmark" + ], + "author": "", + "license": "ISC" +} \ No newline at end of file diff --git a/prismjs/data/sample.md b/prismjs/data/sample.md new file mode 100644 index 00000000..859f0daa --- /dev/null +++ b/prismjs/data/sample.md @@ -0,0 +1,17 @@ +# Markdown Sample + +This is a sample Markdown file for testing Prism.js highlighting. + +## Code Block + +```javascript +function hello() { + console.log("Hello, World!"); +} +``` + +## List + +- Item 1 +- Item 2 +- Item 3 diff --git a/prismjs/data/sample.py b/prismjs/data/sample.py new file mode 100644 index 00000000..591ab717 --- /dev/null +++ b/prismjs/data/sample.py @@ -0,0 +1,23 @@ +# Python Sample +def factorial(n): + """ + This function calculates the factorial of a non-negative integer. + """ + if n == 0: + return 1 + else: + return n * factorial(n-1) + +class Greeter: + def __init__(self, name): + self.name = name + + def greet(self): + print(f"Hello, {self.name}!") + +# Example usage +num = 5 +print(f"The factorial of {num} is {factorial(num)}") + +greeter = Greeter("World") +greeter.greet() diff --git a/prismjs/data/sample.sql b/prismjs/data/sample.sql new file mode 100644 index 00000000..9f11a05c --- /dev/null +++ b/prismjs/data/sample.sql @@ -0,0 +1,14 @@ +-- SQL Sample +SELECT + id, + name, + email +FROM + users +WHERE + age > 25 +ORDER BY + name; + +INSERT INTO products (name, price) +VALUES ('New Product', 99.99); diff --git a/prismjs/data/sample.ts b/prismjs/data/sample.ts new file mode 100644 index 00000000..5d5bdf55 --- /dev/null +++ b/prismjs/data/sample.ts @@ -0,0 +1,23 @@ +// TypeScript Sample +interface Person { + firstName: string; + lastName: string; +} + +function greeter(person: Person): string { + return "Hello, " + person.firstName + " " + person.lastName; +} + +let user: Person = { firstName: "Jane", lastName: "User" }; + +console.log(greeter(user)); + +class Student { + fullName: string; + constructor(public firstName: string, public middleInitial: string, public lastName: string) { + this.fullName = firstName + " " + middleInitial + " " + lastName; + } +} + +let student = new Student("John", "Q.", "Public"); +console.log("Student:", student.fullName); diff --git a/prismjs/dist/bundle.es5.js b/prismjs/dist/bundle.es5.js new file mode 100644 index 00000000..25d4c39a --- /dev/null +++ b/prismjs/dist/bundle.es5.js @@ -0,0 +1,145 @@ +/*! For license information please see bundle.es5.js.LICENSE.txt */ +!function(){var __webpack_modules__={19:function(){!function(Prism){ +/*ThouShaltNotCache*/ +var inner=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function createInline(pattern){ +/*ThouShaltNotCache*/ +return pattern=pattern.replace(//g,function(){ +/*ThouShaltNotCache*/ +return inner}),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+pattern+")")}var tableCell=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,tableRow=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,function(){ +/*ThouShaltNotCache*/ +return tableCell}),tableLine=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;Prism.languages.markdown=Prism.languages.extend("markup",{}),Prism.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:Prism.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+tableRow+tableLine+"(?:"+tableRow+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+tableRow+tableLine+")(?:"+tableRow+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(tableCell),inside:Prism.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+tableRow+")"+tableLine+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+tableRow+"$"),inside:{"table-header":{pattern:RegExp(tableCell),alias:"important",inside:Prism.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:createInline(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:createInline(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:createInline(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:createInline(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach(function(token){ +/*ThouShaltNotCache*/ +["url","bold","italic","strike","code-snippet"].forEach(function(inside){ +/*ThouShaltNotCache*/ +token!==inside&&(Prism.languages.markdown[token].inside.content.inside[inside]=Prism.languages.markdown[inside])})}),Prism.hooks.add("after-tokenize",function(env){ +/*ThouShaltNotCache*/ +"markdown"!==env.language&&"md"!==env.language||function walkTokens(tokens){ +/*ThouShaltNotCache*/ +if(tokens&&"string"!=typeof tokens)for(var i=0,l=tokens.length;i",quot:'"'},fromCodePoint=String.fromCodePoint||String.fromCharCode;Prism.languages.md=Prism.languages.markdown}(Prism)},44:function(){Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python},244:function(){Prism.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}},421:function(){Prism.languages.c=Prism.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),Prism.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),Prism.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},Prism.languages.c.string],char:Prism.languages.c.char,comment:Prism.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:Prism.languages.c}}}}),Prism.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete Prism.languages.c.boolean},613:function(){Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),Prism.languages.js=Prism.languages.javascript},634:function(){Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}},642:function(module,__unused_webpack_exports,__webpack_require__){var Prism=function(_self){ +/*ThouShaltNotCache*/ +var lang=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,uniqueId=0,plainTextGrammar={},_={manual:_self.Prism&&_self.Prism.manual,disableWorkerMessageHandler:_self.Prism&&_self.Prism.disableWorkerMessageHandler,util:{encode:function encode(tokens){ +/*ThouShaltNotCache*/ +return tokens instanceof Token?new Token(tokens.type,encode(tokens.content),tokens.alias):Array.isArray(tokens)?tokens.map(encode):tokens.replace(/&/g,"&").replace(/=rematch.reach);pos+=currentNode.value.length,currentNode=currentNode.next){var str=currentNode.value;if(tokenList.length>text.length)return;if(!(str instanceof Token)){var match,removeCount=1;if(greedy){if(!(match=matchPattern(pattern,pos,text,lookbehind))||match.index>=text.length)break;var from=match.index,to=match.index+match[0].length,p=pos;for(p+=currentNode.value.length;from>=p;)p+=(currentNode=currentNode.next).value.length;if(pos=p-=currentNode.value.length,currentNode.value instanceof Token)continue;for(var k=currentNode;k!==tokenList.tail&&(prematch.reach&&(rematch.reach=reach);var removeFrom=currentNode.prev;if(before&&(removeFrom=addAfter(tokenList,removeFrom,before),pos+=before.length),removeRange(tokenList,removeFrom,removeCount),currentNode=addAfter(tokenList,removeFrom,new Token(token,inside?_.tokenize(matchStr,inside):matchStr,alias,matchStr)),after&&addAfter(tokenList,currentNode,after),removeCount>1){var nestedRematch={cause:token+","+j,reach:reach};matchGrammar(text,tokenList,grammar,currentNode.prev,pos,nestedRematch),rematch&&nestedRematch.reach>rematch.reach&&(rematch.reach=nestedRematch.reach)}}}}}}function LinkedList(){ +/*ThouShaltNotCache*/ +var head={value:null,prev:null,next:null},tail={value:null,prev:head,next:null};head.next=tail,this.head=head,this.tail=tail,this.length=0}function addAfter(list,node,value){ +/*ThouShaltNotCache*/ +var next=node.next,newNode={value:value,prev:node,next:next};return node.next=newNode,next.prev=newNode,list.length++,newNode}function removeRange(list,node,count){for( +/*ThouShaltNotCache*/ +var next=node.next,i=0;i"+env.content+""},!_self.document)return _self.addEventListener?(_.disableWorkerMessageHandler||_self.addEventListener("message",function(evt){ +/*ThouShaltNotCache*/ +var message=JSON.parse(evt.data),lang=message.language,code=message.code,immediateClose=message.immediateClose;_self.postMessage(_.highlight(code,_.languages[lang],lang)),immediateClose&&_self.close()},!1),_):_;var script=_.util.currentScript();function highlightAutomaticallyCallback(){ +/*ThouShaltNotCache*/ +_.manual||_.highlightAll()}if(script&&(_.filename=script.src,script.hasAttribute("data-manual")&&(_.manual=!0)),!_.manual){var readyState=document.readyState;"loading"===readyState||"interactive"===readyState&&script&&script.defer?document.addEventListener("DOMContentLoaded",highlightAutomaticallyCallback):window.requestAnimationFrame?window.requestAnimationFrame(highlightAutomaticallyCallback):window.setTimeout(highlightAutomaticallyCallback,16)}return _}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});module.exports&&(module.exports=Prism),void 0!==__webpack_require__.g&&(__webpack_require__.g.Prism=Prism),Prism.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",function(env){ +/*ThouShaltNotCache*/ +"entity"===env.type&&(env.attributes.title=env.content.replace(/&/,"&"))}),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(tagName,lang){ +/*ThouShaltNotCache*/ +var includedCdataInside={};includedCdataInside["language-"+lang]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[lang]},includedCdataInside.cdata=/^$/i;var inside={"included-cdata":{pattern://i,inside:includedCdataInside}};inside["language-"+lang]={pattern:/[\s\S]+/,inside:Prism.languages[lang]};var def={};def[tagName]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){ +/*ThouShaltNotCache*/ +return tagName}),"i"),lookbehind:!0,greedy:!0,inside:inside},Prism.languages.insertBefore("markup","cdata",def)}}),Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(attrName,lang){ +/*ThouShaltNotCache*/ +Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+attrName+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[lang,"language-"+lang],inside:Prism.languages[lang]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml,function(Prism){ +/*ThouShaltNotCache*/ +var string=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;Prism.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+string.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+string.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+string.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+string.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:string,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},Prism.languages.css.atrule.inside.rest=Prism.languages.css;var markup=Prism.languages.markup;markup&&(markup.tag.addInlined("style","css"),markup.tag.addAttribute("style","css"))}(Prism),Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),Prism.languages.js=Prism.languages.javascript,function(){ +/*ThouShaltNotCache*/ +if(void 0!==Prism&&"undefined"!=typeof document){Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var EXTENSIONS={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},SELECTOR='pre[data-src]:not([data-src-status="loaded"]):not([data-src-status="loading"])';Prism.hooks.add("before-highlightall",function(env){ +/*ThouShaltNotCache*/ +env.selector+=", "+SELECTOR}),Prism.hooks.add("before-sanity-check",function(env){ +/*ThouShaltNotCache*/ +var pre=env.element;if(pre.matches(SELECTOR)){env.code="",pre.setAttribute("data-src-status","loading");var code=pre.appendChild(document.createElement("CODE"));code.textContent="Loading\u2026";var src=pre.getAttribute("data-src"),language=env.language;if("none"===language){var extension=(/\.(\w+)$/.exec(src)||[,"none"])[1];language=EXTENSIONS[extension]||extension}Prism.util.setLanguage(code,language),Prism.util.setLanguage(pre,language);var autoloader=Prism.plugins.autoloader;autoloader&&autoloader.loadLanguages(language),function(src,success,error){ +/*ThouShaltNotCache*/ +var xhr=new XMLHttpRequest;xhr.open("GET",src,!0),xhr.onreadystatechange=function(){ +/*ThouShaltNotCache*/ +4==xhr.readyState&&(xhr.status<400&&xhr.responseText?success(xhr.responseText):xhr.status>=400?error("\u2716 Error "+xhr.status+" while fetching file: "+xhr.statusText):error("\u2716 Error: File does not exist or is empty"))},xhr.send(null)}(src,function(text){ +/*ThouShaltNotCache*/ +pre.setAttribute("data-src-status","loaded");var range=function(range){ +/*ThouShaltNotCache*/ +var m=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(range||"");if(m){var start=Number(m[1]),comma=m[2],end=m[3];return comma?end?[start,Number(end)]:[start,void 0]:[start,start]}}(pre.getAttribute("data-range"));if(range){var lines=text.split(/\r\n?|\n/g),start=range[0],end=null==range[1]?lines.length:range[1];start<0&&(start+=lines.length),start=Math.max(0,Math.min(start-1,lines.length)),end<0&&(end+=lines.length),end=Math.max(0,Math.min(end,lines.length)),text=lines.slice(start,end).join("\n"),pre.hasAttribute("data-start")||pre.setAttribute("data-start",String(start+1))}code.textContent=text,Prism.highlightElement(code)},function(error){ +/*ThouShaltNotCache*/ +pre.setAttribute("data-src-status","failed"),code.textContent=error})}}),Prism.plugins.fileHighlight={highlight:function(container){for( +/*ThouShaltNotCache*/ +var element,elements=(container||document).querySelectorAll(SELECTOR),i=0;element=elements[i++];)Prism.highlightElement(element)}};var logged=!1;Prism.fileHighlight=function(){ +/*ThouShaltNotCache*/ +logged||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),logged=!0),Prism.plugins.fileHighlight.highlight.apply(this,arguments)}}}()},648:function(){Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},Prism.languages.webmanifest=Prism.languages.json},694:function(){Prism.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",function(env){ +/*ThouShaltNotCache*/ +"entity"===env.type&&(env.attributes.title=env.content.replace(/&/,"&"))}),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(tagName,lang){ +/*ThouShaltNotCache*/ +var includedCdataInside={};includedCdataInside["language-"+lang]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[lang]},includedCdataInside.cdata=/^$/i;var inside={"included-cdata":{pattern://i,inside:includedCdataInside}};inside["language-"+lang]={pattern:/[\s\S]+/,inside:Prism.languages[lang]};var def={};def[tagName]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){ +/*ThouShaltNotCache*/ +return tagName}),"i"),lookbehind:!0,greedy:!0,inside:inside},Prism.languages.insertBefore("markup","cdata",def)}}),Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(attrName,lang){ +/*ThouShaltNotCache*/ +Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+attrName+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[lang,"language-"+lang],inside:Prism.languages[lang]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml},871:function(){!function(Prism){ +/*ThouShaltNotCache*/ +var string=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;Prism.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+string.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+string.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+string.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+string.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:string,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},Prism.languages.css.atrule.inside.rest=Prism.languages.css;var markup=Prism.languages.markup;markup&&(markup.tag.addInlined("style","css"),markup.tag.addAttribute("style","css"))}(Prism)},893:function(){!function(Prism){ +/*ThouShaltNotCache*/ +var keyword=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,modName=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,function(){ +/*ThouShaltNotCache*/ +return keyword.source});Prism.languages.cpp=Prism.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,function(){ +/*ThouShaltNotCache*/ +return keyword.source})),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:keyword,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),Prism.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,function(){ +/*ThouShaltNotCache*/ +return modName})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),Prism.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:Prism.languages.cpp}}}}),Prism.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),Prism.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:Prism.languages.extend("cpp",{})}}),Prism.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},Prism.languages.cpp["base-clause"])}(Prism)},973:function(){!function(Prism){ +/*ThouShaltNotCache*/ +Prism.languages.typescript=Prism.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),Prism.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete Prism.languages.typescript.parameter,delete Prism.languages.typescript["literal-property"];var typeInside=Prism.languages.extend("typescript",{});delete typeInside["class-name"],Prism.languages.typescript["class-name"].inside=typeInside,Prism.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:typeInside}}}}),Prism.languages.ts=Prism.languages.typescript}(Prism)}},__webpack_module_cache__={};function __webpack_require__(moduleId){var cachedModule=__webpack_module_cache__[moduleId];if(void 0!==cachedModule)return cachedModule.exports;var module=__webpack_module_cache__[moduleId]={exports:{}};return __webpack_modules__[moduleId](module,module.exports,__webpack_require__),module.exports}__webpack_require__.d=function(exports,definition){for(var key in definition)__webpack_require__.o(definition,key)&&!__webpack_require__.o(exports,key)&&Object.defineProperty(exports,key,{enumerable:!0,get:definition[key]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=function(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)},__webpack_require__.r=function(exports){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(exports,"__esModule",{value:!0})};var __webpack_exports__={};!function(){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{runTest:function(){return runTest}});var prismjs__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(642);__webpack_require__(694),__webpack_require__(871),__webpack_require__(634),__webpack_require__(613),__webpack_require__(421),__webpack_require__(893),__webpack_require__(19),__webpack_require__(648),__webpack_require__(244),__webpack_require__(44),__webpack_require__(973);function runTest(samples){ +/*ThouShaltNotCache*/ +const results=[];for(const{content:content,lang:lang}of samples){const highlighted=prismjs__WEBPACK_IMPORTED_MODULE_0__.highlight(content,prismjs__WEBPACK_IMPORTED_MODULE_0__.languages[lang],lang);results.push({html:highlighted})}return results}}(),PrismJSBenchmark=__webpack_exports__}(); +//# sourceMappingURL=bundle.es5.js.map \ No newline at end of file diff --git a/prismjs/dist/bundle.es5.js.LICENSE.txt b/prismjs/dist/bundle.es5.js.LICENSE.txt new file mode 100644 index 00000000..0285de91 --- /dev/null +++ b/prismjs/dist/bundle.es5.js.LICENSE.txt @@ -0,0 +1,8 @@ +/** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT + * @author Lea Verou + * @namespace + * @public + */ diff --git a/prismjs/dist/bundle.es5.js.map b/prismjs/dist/bundle.es5.js.map new file mode 100644 index 00000000..3dfe26d6 --- /dev/null +++ b/prismjs/dist/bundle.es5.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bundle.es5.js","mappings":"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","sources":["webpack://PrismJSBenchmark/./node_modules/prismjs/components/prism-markdown.js","webpack://PrismJSBenchmark/./node_modules/prismjs/components/prism-python.js","webpack://PrismJSBenchmark/./node_modules/prismjs/components/prism-sql.js","webpack://PrismJSBenchmark/./node_modules/prismjs/components/prism-c.js","webpack://PrismJSBenchmark/./node_modules/prismjs/components/prism-javascript.js","webpack://PrismJSBenchmark/./node_modules/prismjs/components/prism-clike.js","webpack://PrismJSBenchmark/./node_modules/prismjs/prism.js","webpack://PrismJSBenchmark/./node_modules/prismjs/components/prism-json.js","webpack://PrismJSBenchmark/./node_modules/prismjs/components/prism-markup.js","webpack://PrismJSBenchmark/./node_modules/prismjs/components/prism-css.js","webpack://PrismJSBenchmark/./node_modules/prismjs/components/prism-cpp.js","webpack://PrismJSBenchmark/./node_modules/prismjs/components/prism-typescript.js","webpack://PrismJSBenchmark/webpack/bootstrap","webpack://PrismJSBenchmark/webpack/runtime/define property getters","webpack://PrismJSBenchmark/webpack/runtime/global","webpack://PrismJSBenchmark/webpack/runtime/hasOwnProperty shorthand","webpack://PrismJSBenchmark/webpack/runtime/make namespace object","webpack://PrismJSBenchmark/./src/test.mjs"],"sourcesContent":["(function (Prism) {\n\n\t// Allow only one line break\n\tvar inner = /(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?![\\r\\n]))/.source;\n\n\t/**\n\t * This function is intended for the creation of the bold or italic pattern.\n\t *\n\t * This also adds a lookbehind group to the given pattern to ensure that the pattern is not backslash-escaped.\n\t *\n\t * _Note:_ Keep in mind that this adds a capturing group.\n\t *\n\t * @param {string} pattern\n\t * @returns {RegExp}\n\t */\n\tfunction createInline(pattern) {\n\t\tpattern = pattern.replace(//g, function () { return inner; });\n\t\treturn RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + '(?:' + pattern + ')');\n\t}\n\n\n\tvar tableCell = /(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+/.source;\n\tvar tableRow = /\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))/.source.replace(/__/g, function () { return tableCell; });\n\tvar tableLine = /\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)/.source;\n\n\n\tPrism.languages.markdown = Prism.languages.extend('markup', {});\n\tPrism.languages.insertBefore('markdown', 'prolog', {\n\t\t'front-matter-block': {\n\t\t\tpattern: /(^(?:\\s*[\\r\\n])?)---(?!.)[\\s\\S]*?[\\r\\n]---(?!.)/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /^---|---$/,\n\t\t\t\t'front-matter': {\n\t\t\t\t\tpattern: /\\S+(?:\\s+\\S+)*/,\n\t\t\t\t\talias: ['yaml', 'language-yaml'],\n\t\t\t\t\tinside: Prism.languages.yaml\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'blockquote': {\n\t\t\t// > ...\n\t\t\tpattern: /^>(?:[\\t ]*>)*/m,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'table': {\n\t\t\tpattern: RegExp('^' + tableRow + tableLine + '(?:' + tableRow + ')*', 'm'),\n\t\t\tinside: {\n\t\t\t\t'table-data-rows': {\n\t\t\t\t\tpattern: RegExp('^(' + tableRow + tableLine + ')(?:' + tableRow + ')*$'),\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'table-data': {\n\t\t\t\t\t\t\tpattern: RegExp(tableCell),\n\t\t\t\t\t\t\tinside: Prism.languages.markdown\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'punctuation': /\\|/\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'table-line': {\n\t\t\t\t\tpattern: RegExp('^(' + tableRow + ')' + tableLine + '$'),\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'punctuation': /\\||:?-{3,}:?/\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'table-header-row': {\n\t\t\t\t\tpattern: RegExp('^' + tableRow + '$'),\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'table-header': {\n\t\t\t\t\t\t\tpattern: RegExp(tableCell),\n\t\t\t\t\t\t\talias: 'important',\n\t\t\t\t\t\t\tinside: Prism.languages.markdown\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'punctuation': /\\|/\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'code': [\n\t\t\t{\n\t\t\t\t// Prefixed by 4 spaces or 1 tab and preceded by an empty line\n\t\t\t\tpattern: /((?:^|\\n)[ \\t]*\\n|(?:^|\\r\\n?)[ \\t]*\\r\\n?)(?: {4}|\\t).+(?:(?:\\n|\\r\\n?)(?: {4}|\\t).+)*/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'keyword'\n\t\t\t},\n\t\t\t{\n\t\t\t\t// ```optional language\n\t\t\t\t// code block\n\t\t\t\t// ```\n\t\t\t\tpattern: /^```[\\s\\S]*?^```$/m,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'code-block': {\n\t\t\t\t\t\tpattern: /^(```.*(?:\\n|\\r\\n?))[\\s\\S]+?(?=(?:\\n|\\r\\n?)^```$)/m,\n\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t},\n\t\t\t\t\t'code-language': {\n\t\t\t\t\t\tpattern: /^(```).+/,\n\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t},\n\t\t\t\t\t'punctuation': /```/\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'title': [\n\t\t\t{\n\t\t\t\t// title 1\n\t\t\t\t// =======\n\n\t\t\t\t// title 2\n\t\t\t\t// -------\n\t\t\t\tpattern: /\\S.*(?:\\n|\\r\\n?)(?:==+|--+)(?=[ \\t]*$)/m,\n\t\t\t\talias: 'important',\n\t\t\t\tinside: {\n\t\t\t\t\tpunctuation: /==+$|--+$/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t// # title 1\n\t\t\t\t// ###### title 6\n\t\t\t\tpattern: /(^\\s*)#.+/m,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'important',\n\t\t\t\tinside: {\n\t\t\t\t\tpunctuation: /^#+|#+$/\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'hr': {\n\t\t\t// ***\n\t\t\t// ---\n\t\t\t// * * *\n\t\t\t// -----------\n\t\t\tpattern: /(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m,\n\t\t\tlookbehind: true,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'list': {\n\t\t\t// * item\n\t\t\t// + item\n\t\t\t// - item\n\t\t\t// 1. item\n\t\t\tpattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m,\n\t\t\tlookbehind: true,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'url-reference': {\n\t\t\t// [id]: http://example.com \"Optional title\"\n\t\t\t// [id]: http://example.com 'Optional title'\n\t\t\t// [id]: http://example.com (Optional title)\n\t\t\t// [id]: \"Optional title\"\n\t\t\tpattern: /!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/,\n\t\t\tinside: {\n\t\t\t\t'variable': {\n\t\t\t\t\tpattern: /^(!?\\[)[^\\]]+/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t'string': /(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/,\n\t\t\t\t'punctuation': /^[\\[\\]!:]|[<>]/\n\t\t\t},\n\t\t\talias: 'url'\n\t\t},\n\t\t'bold': {\n\t\t\t// **strong**\n\t\t\t// __strong__\n\n\t\t\t// allow one nested instance of italic text using the same delimiter\n\t\t\tpattern: createInline(/\\b__(?:(?!_)|_(?:(?!_))+_)+__\\b|\\*\\*(?:(?!\\*)|\\*(?:(?!\\*))+\\*)+\\*\\*/.source),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'content': {\n\t\t\t\t\tpattern: /(^..)[\\s\\S]+(?=..$)/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {} // see below\n\t\t\t\t},\n\t\t\t\t'punctuation': /\\*\\*|__/\n\t\t\t}\n\t\t},\n\t\t'italic': {\n\t\t\t// *em*\n\t\t\t// _em_\n\n\t\t\t// allow one nested instance of bold text using the same delimiter\n\t\t\tpattern: createInline(/\\b_(?:(?!_)|__(?:(?!_))+__)+_\\b|\\*(?:(?!\\*)|\\*\\*(?:(?!\\*))+\\*\\*)+\\*/.source),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'content': {\n\t\t\t\t\tpattern: /(^.)[\\s\\S]+(?=.$)/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {} // see below\n\t\t\t\t},\n\t\t\t\t'punctuation': /[*_]/\n\t\t\t}\n\t\t},\n\t\t'strike': {\n\t\t\t// ~~strike through~~\n\t\t\t// ~strike~\n\t\t\t// eslint-disable-next-line regexp/strict\n\t\t\tpattern: createInline(/(~~?)(?:(?!~))+\\2/.source),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'content': {\n\t\t\t\t\tpattern: /(^~~?)[\\s\\S]+(?=\\1$)/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {} // see below\n\t\t\t\t},\n\t\t\t\t'punctuation': /~~?/\n\t\t\t}\n\t\t},\n\t\t'code-snippet': {\n\t\t\t// `code`\n\t\t\t// ``code``\n\t\t\tpattern: /(^|[^\\\\`])(?:``[^`\\r\\n]+(?:`[^`\\r\\n]+)*``(?!`)|`[^`\\r\\n]+`(?!`))/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\talias: ['code', 'keyword']\n\t\t},\n\t\t'url': {\n\t\t\t// [example](http://example.com \"Optional title\")\n\t\t\t// [example][id]\n\t\t\t// [example] [id]\n\t\t\tpattern: createInline(/!?\\[(?:(?!\\]))+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)|[ \\t]?\\[(?:(?!\\]))+\\])/.source),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'operator': /^!/,\n\t\t\t\t'content': {\n\t\t\t\t\tpattern: /(^\\[)[^\\]]+(?=\\])/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {} // see below\n\t\t\t\t},\n\t\t\t\t'variable': {\n\t\t\t\t\tpattern: /(^\\][ \\t]?\\[)[^\\]]+(?=\\]$)/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t'url': {\n\t\t\t\t\tpattern: /(^\\]\\()[^\\s)]+/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t'string': {\n\t\t\t\t\tpattern: /(^[ \\t]+)\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\t['url', 'bold', 'italic', 'strike'].forEach(function (token) {\n\t\t['url', 'bold', 'italic', 'strike', 'code-snippet'].forEach(function (inside) {\n\t\t\tif (token !== inside) {\n\t\t\t\tPrism.languages.markdown[token].inside.content.inside[inside] = Prism.languages.markdown[inside];\n\t\t\t}\n\t\t});\n\t});\n\n\tPrism.hooks.add('after-tokenize', function (env) {\n\t\tif (env.language !== 'markdown' && env.language !== 'md') {\n\t\t\treturn;\n\t\t}\n\n\t\tfunction walkTokens(tokens) {\n\t\t\tif (!tokens || typeof tokens === 'string') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (var i = 0, l = tokens.length; i < l; i++) {\n\t\t\t\tvar token = tokens[i];\n\n\t\t\t\tif (token.type !== 'code') {\n\t\t\t\t\twalkTokens(token.content);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t/*\n\t\t\t\t * Add the correct `language-xxxx` class to this code block. Keep in mind that the `code-language` token\n\t\t\t\t * is optional. But the grammar is defined so that there is only one case we have to handle:\n\t\t\t\t *\n\t\t\t\t * token.content = [\n\t\t\t\t * ```,\n\t\t\t\t * xxxx,\n\t\t\t\t * '\\n', // exactly one new lines (\\r or \\n or \\r\\n)\n\t\t\t\t * ...,\n\t\t\t\t * '\\n', // exactly one new lines again\n\t\t\t\t * ```\n\t\t\t\t * ];\n\t\t\t\t */\n\n\t\t\t\tvar codeLang = token.content[1];\n\t\t\t\tvar codeBlock = token.content[3];\n\n\t\t\t\tif (codeLang && codeBlock &&\n\t\t\t\t\tcodeLang.type === 'code-language' && codeBlock.type === 'code-block' &&\n\t\t\t\t\ttypeof codeLang.content === 'string') {\n\n\t\t\t\t\t// this might be a language that Prism does not support\n\n\t\t\t\t\t// do some replacements to support C++, C#, and F#\n\t\t\t\t\tvar lang = codeLang.content.replace(/\\b#/g, 'sharp').replace(/\\b\\+\\+/g, 'pp');\n\t\t\t\t\t// only use the first word\n\t\t\t\t\tlang = (/[a-z][\\w-]*/i.exec(lang) || [''])[0].toLowerCase();\n\t\t\t\t\tvar alias = 'language-' + lang;\n\n\t\t\t\t\t// add alias\n\t\t\t\t\tif (!codeBlock.alias) {\n\t\t\t\t\t\tcodeBlock.alias = [alias];\n\t\t\t\t\t} else if (typeof codeBlock.alias === 'string') {\n\t\t\t\t\t\tcodeBlock.alias = [codeBlock.alias, alias];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcodeBlock.alias.push(alias);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twalkTokens(env.tokens);\n\t});\n\n\tPrism.hooks.add('wrap', function (env) {\n\t\tif (env.type !== 'code-block') {\n\t\t\treturn;\n\t\t}\n\n\t\tvar codeLang = '';\n\t\tfor (var i = 0, l = env.classes.length; i < l; i++) {\n\t\t\tvar cls = env.classes[i];\n\t\t\tvar match = /language-(.+)/.exec(cls);\n\t\t\tif (match) {\n\t\t\t\tcodeLang = match[1];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tvar grammar = Prism.languages[codeLang];\n\n\t\tif (!grammar) {\n\t\t\tif (codeLang && codeLang !== 'none' && Prism.plugins.autoloader) {\n\t\t\t\tvar id = 'md-' + new Date().valueOf() + '-' + Math.floor(Math.random() * 1e16);\n\t\t\t\tenv.attributes['id'] = id;\n\n\t\t\t\tPrism.plugins.autoloader.loadLanguages(codeLang, function () {\n\t\t\t\t\tvar ele = document.getElementById(id);\n\t\t\t\t\tif (ele) {\n\t\t\t\t\t\tele.innerHTML = Prism.highlight(ele.textContent, Prism.languages[codeLang], codeLang);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tenv.content = Prism.highlight(textContent(env.content), grammar, codeLang);\n\t\t}\n\t});\n\n\tvar tagPattern = RegExp(Prism.languages.markup.tag.pattern.source, 'gi');\n\n\t/**\n\t * A list of known entity names.\n\t *\n\t * This will always be incomplete to save space. The current list is the one used by lowdash's unescape function.\n\t *\n\t * @see {@link https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/unescape.js#L2}\n\t */\n\tvar KNOWN_ENTITY_NAMES = {\n\t\t'amp': '&',\n\t\t'lt': '<',\n\t\t'gt': '>',\n\t\t'quot': '\"',\n\t};\n\n\t// IE 11 doesn't support `String.fromCodePoint`\n\tvar fromCodePoint = String.fromCodePoint || String.fromCharCode;\n\n\t/**\n\t * Returns the text content of a given HTML source code string.\n\t *\n\t * @param {string} html\n\t * @returns {string}\n\t */\n\tfunction textContent(html) {\n\t\t// remove all tags\n\t\tvar text = html.replace(tagPattern, '');\n\n\t\t// decode known entities\n\t\ttext = text.replace(/&(\\w{1,8}|#x?[\\da-f]{1,8});/gi, function (m, code) {\n\t\t\tcode = code.toLowerCase();\n\n\t\t\tif (code[0] === '#') {\n\t\t\t\tvar value;\n\t\t\t\tif (code[1] === 'x') {\n\t\t\t\t\tvalue = parseInt(code.slice(2), 16);\n\t\t\t\t} else {\n\t\t\t\t\tvalue = Number(code.slice(1));\n\t\t\t\t}\n\n\t\t\t\treturn fromCodePoint(value);\n\t\t\t} else {\n\t\t\t\tvar known = KNOWN_ENTITY_NAMES[code];\n\t\t\t\tif (known) {\n\t\t\t\t\treturn known;\n\t\t\t\t}\n\n\t\t\t\t// unable to decode\n\t\t\t\treturn m;\n\t\t\t}\n\t\t});\n\n\t\treturn text;\n\t}\n\n\tPrism.languages.md = Prism.languages.markdown;\n\n}(Prism));\n","Prism.languages.python = {\n\t'comment': {\n\t\tpattern: /(^|[^\\\\])#.*/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t'string-interpolation': {\n\t\tpattern: /(?:f|fr|rf)(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2)/i,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'interpolation': {\n\t\t\t\t// \"{\" \"}\"\n\t\t\t\tpattern: /((?:^|[^{])(?:\\{\\{)*)\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}])+\\})+\\})+\\}/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'format-spec': {\n\t\t\t\t\t\tpattern: /(:)[^:(){}]+(?=\\}$)/,\n\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t},\n\t\t\t\t\t'conversion-option': {\n\t\t\t\t\t\tpattern: /![sra](?=[:}]$)/,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\trest: null\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t},\n\t'triple-quoted-string': {\n\t\tpattern: /(?:[rub]|br|rb)?(\"\"\"|''')[\\s\\S]*?\\1/i,\n\t\tgreedy: true,\n\t\talias: 'string'\n\t},\n\t'string': {\n\t\tpattern: /(?:[rub]|br|rb)?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/i,\n\t\tgreedy: true\n\t},\n\t'function': {\n\t\tpattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g,\n\t\tlookbehind: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\bclass\\s+)\\w+/i,\n\t\tlookbehind: true\n\t},\n\t'decorator': {\n\t\tpattern: /(^[\\t ]*)@\\w+(?:\\.\\w+)*/m,\n\t\tlookbehind: true,\n\t\talias: ['annotation', 'punctuation'],\n\t\tinside: {\n\t\t\t'punctuation': /\\./\n\t\t}\n\t},\n\t'keyword': /\\b(?:_(?=\\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\\b/,\n\t'builtin': /\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/,\n\t'boolean': /\\b(?:False|None|True)\\b/,\n\t'number': /\\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\\b|(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:e[+-]?\\d+(?:_\\d+)*)?j?(?!\\w)/i,\n\t'operator': /[-+%=]=?|!=|:=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n\t'punctuation': /[{}[\\];(),.:]/\n};\n\nPrism.languages.python['string-interpolation'].inside['interpolation'].inside.rest = Prism.languages.python;\n\nPrism.languages.py = Prism.languages.python;\n","Prism.languages.sql = {\n\t'comment': {\n\t\tpattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/,\n\t\tlookbehind: true\n\t},\n\t'variable': [\n\t\t{\n\t\t\tpattern: /@([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1/,\n\t\t\tgreedy: true\n\t\t},\n\t\t/@[\\w.$]+/\n\t],\n\t'string': {\n\t\tpattern: /(^|[^@\\\\])(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\]|\\2\\2)*\\2/,\n\t\tgreedy: true,\n\t\tlookbehind: true\n\t},\n\t'identifier': {\n\t\tpattern: /(^|[^@\\\\])`(?:\\\\[\\s\\S]|[^`\\\\]|``)*`/,\n\t\tgreedy: true,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'punctuation': /^`|`$/\n\t\t}\n\t},\n\t'function': /\\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\\s*\\()/i, // Should we highlight user defined functions too?\n\t'keyword': /\\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\\b/i,\n\t'boolean': /\\b(?:FALSE|NULL|TRUE)\\b/i,\n\t'number': /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n\t'operator': /[-+*\\/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\\b/i,\n\t'punctuation': /[;[\\]()`,.]/\n};\n","Prism.languages.c = Prism.languages.extend('clike', {\n\t'comment': {\n\t\tpattern: /\\/\\/(?:[^\\r\\n\\\\]|\\\\(?:\\r\\n?|\\n|(?![\\r\\n])))*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\tgreedy: true\n\t},\n\t'string': {\n\t\t// https://en.cppreference.com/w/c/language/string_literal\n\t\tpattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n\t\tgreedy: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\b(?:enum|struct)\\s+(?:__attribute__\\s*\\(\\([\\s\\S]*?\\)\\)\\s*)?)\\w+|\\b[a-z]\\w*_t\\b/,\n\t\tlookbehind: true\n\t},\n\t'keyword': /\\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b/,\n\t'function': /\\b[a-z_]\\w*(?=\\s*\\()/i,\n\t'number': /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]{0,4}/i,\n\t'operator': />>=?|<<=?|->|([-+&|:])\\1|[?:~]|[-+*/%&|^!=<>]=?/\n});\n\nPrism.languages.insertBefore('c', 'string', {\n\t'char': {\n\t\t// https://en.cppreference.com/w/c/language/character_constant\n\t\tpattern: /'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n]){0,32}'/,\n\t\tgreedy: true\n\t}\n});\n\nPrism.languages.insertBefore('c', 'string', {\n\t'macro': {\n\t\t// allow for multiline macro definitions\n\t\t// spaces after the # character compile fine with gcc\n\t\tpattern: /(^[\\t ]*)#\\s*[a-z](?:[^\\r\\n\\\\/]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\\\\(?:\\r\\n|[\\s\\S]))*/im,\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\talias: 'property',\n\t\tinside: {\n\t\t\t'string': [\n\t\t\t\t{\n\t\t\t\t\t// highlight the path of the include statement as a string\n\t\t\t\t\tpattern: /^(#\\s*include\\s*)<[^>]+>/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\tPrism.languages.c['string']\n\t\t\t],\n\t\t\t'char': Prism.languages.c['char'],\n\t\t\t'comment': Prism.languages.c['comment'],\n\t\t\t'macro-name': [\n\t\t\t\t{\n\t\t\t\t\tpattern: /(^#\\s*define\\s+)\\w+\\b(?!\\()/i,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpattern: /(^#\\s*define\\s+)\\w+\\b(?=\\()/i,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'function'\n\t\t\t\t}\n\t\t\t],\n\t\t\t// highlight macro directives as keywords\n\t\t\t'directive': {\n\t\t\t\tpattern: /^(#\\s*)[a-z]+/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'keyword'\n\t\t\t},\n\t\t\t'directive-hash': /^#/,\n\t\t\t'punctuation': /##|\\\\(?=[\\r\\n])/,\n\t\t\t'expression': {\n\t\t\t\tpattern: /\\S[\\s\\S]*/,\n\t\t\t\tinside: Prism.languages.c\n\t\t\t}\n\t\t}\n\t}\n});\n\nPrism.languages.insertBefore('c', 'function', {\n\t// highlight predefined macros as constants\n\t'constant': /\\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\\b/\n});\n\ndelete Prism.languages.c['boolean'];\n","Prism.languages.javascript = Prism.languages.extend('clike', {\n\t'class-name': [\n\t\tPrism.languages.clike['class-name'],\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'keyword': [\n\t\t{\n\t\t\tpattern: /((?:^|\\})\\s*)catch\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t],\n\t// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n\t'function': /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n\t'number': {\n\t\tpattern: RegExp(\n\t\t\t/(^|[^\\w$])/.source +\n\t\t\t'(?:' +\n\t\t\t(\n\t\t\t\t// constant\n\t\t\t\t/NaN|Infinity/.source +\n\t\t\t\t'|' +\n\t\t\t\t// binary integer\n\t\t\t\t/0[bB][01]+(?:_[01]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// octal integer\n\t\t\t\t/0[oO][0-7]+(?:_[0-7]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// hexadecimal integer\n\t\t\t\t/0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// decimal bigint\n\t\t\t\t/\\d+(?:_\\d+)*n/.source +\n\t\t\t\t'|' +\n\t\t\t\t// decimal number (integer or float) but no bigint\n\t\t\t\t/(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/.source\n\t\t\t) +\n\t\t\t')' +\n\t\t\t/(?![\\w$])/.source\n\t\t),\n\t\tlookbehind: true\n\t},\n\t'operator': /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n});\n\nPrism.languages.javascript['class-name'][0].pattern = /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/;\n\nPrism.languages.insertBefore('javascript', 'keyword', {\n\t'regex': {\n\t\tpattern: RegExp(\n\t\t\t// lookbehind\n\t\t\t// eslint-disable-next-line regexp/no-dupe-characters-character-class\n\t\t\t/((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/.source +\n\t\t\t// Regex pattern:\n\t\t\t// There are 2 regex patterns here. The RegExp set notation proposal added support for nested character\n\t\t\t// classes if the `v` flag is present. Unfortunately, nested CCs are both context-free and incompatible\n\t\t\t// with the only syntax, so we have to define 2 different regex patterns.\n\t\t\t/\\//.source +\n\t\t\t'(?:' +\n\t\t\t/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}/.source +\n\t\t\t'|' +\n\t\t\t// `v` flag syntax. This supports 3 levels of nested character classes.\n\t\t\t/(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source +\n\t\t\t')' +\n\t\t\t// lookahead\n\t\t\t/(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/.source\n\t\t),\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'regex-source': {\n\t\t\t\tpattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'language-regex',\n\t\t\t\tinside: Prism.languages.regex\n\t\t\t},\n\t\t\t'regex-delimiter': /^\\/|\\/$/,\n\t\t\t'regex-flags': /^[a-z]+$/,\n\t\t}\n\t},\n\t// This must be declared before keyword because we use \"function\" inside the look-forward\n\t'function-variable': {\n\t\tpattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n\t\talias: 'function'\n\t},\n\t'parameter': [\n\t\t{\n\t\t\tpattern: /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t}\n\t],\n\t'constant': /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n});\n\nPrism.languages.insertBefore('javascript', 'string', {\n\t'hashbang': {\n\t\tpattern: /^#!.*/,\n\t\tgreedy: true,\n\t\talias: 'comment'\n\t},\n\t'template-string': {\n\t\tpattern: /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'template-punctuation': {\n\t\t\t\tpattern: /^`|`$/,\n\t\t\t\talias: 'string'\n\t\t\t},\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation-punctuation': {\n\t\t\t\t\t\tpattern: /^\\$\\{|\\}$/,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\trest: Prism.languages.javascript\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t},\n\t'string-property': {\n\t\tpattern: /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m,\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\talias: 'property'\n\t}\n});\n\nPrism.languages.insertBefore('javascript', 'operator', {\n\t'literal-property': {\n\t\tpattern: /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m,\n\t\tlookbehind: true,\n\t\talias: 'property'\n\t},\n});\n\nif (Prism.languages.markup) {\n\tPrism.languages.markup.tag.addInlined('script', 'javascript');\n\n\t// add attribute support for all DOM events.\n\t// https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events\n\tPrism.languages.markup.tag.addAttribute(\n\t\t/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,\n\t\t'javascript'\n\t);\n}\n\nPrism.languages.js = Prism.languages.javascript;\n","Prism.languages.clike = {\n\t'comment': [\n\t\t{\n\t\t\tpattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\\\:])\\/\\/.*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'string': {\n\t\tpattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'punctuation': /[.\\\\]/\n\t\t}\n\t},\n\t'keyword': /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/,\n\t'boolean': /\\b(?:false|true)\\b/,\n\t'function': /\\b\\w+(?=\\()/,\n\t'number': /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n\t'operator': /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n\t'punctuation': /[{}[\\];(),.:]/\n};\n","\n/* **********************************************\n Begin prism-core.js\n********************************************** */\n\n/// \n\nvar _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t\t? self // if in worker\n\t\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT \n * @author Lea Verou \n * @namespace\n * @public\n */\nvar Prism = (function (_self) {\n\n\t// Private helper vars\n\tvar lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n\tvar uniqueId = 0;\n\n\t// The grammar object for plaintext\n\tvar plainTextGrammar = {};\n\n\n\tvar _ = {\n\t\t/**\n\t\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t\t * additional languages or plugins yourself.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t\t *\n\t\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.manual = true;\n\t\t * // add a new