/* PrismJS 1.23.0
https://prismjs.com/download.html#themes=prism-twilight&languages=markup+css+clike+javascript+abap+abnf+actionscript+ada+agda+al+antlr4+apacheconf+apex+apl+applescript+aql+arduino+arff+asciidoc+aspnet+asm6502+autohotkey+autoit+bash+basic+batch+bbcode+birb+bison+bnf+brainfuck+brightscript+bro+bsl+c+csharp+cpp+cfscript+chaiscript+cil+clojure+cmake+coffeescript+concurnas+csp+crystal+css-extras+cypher+d+dart+dataweave+dax+dhall+diff+django+dns-zone-file+docker+dot+ebnf+editorconfig+eiffel+ejs+elixir+elm+etlua+erb+erlang+excel-formula+fsharp+factor+firestore-security-rules+flow+fortran+ftl+gml+gcode+gdscript+gedcom+gherkin+git+glsl+go+graphql+groovy+haml+handlebars+haskell+haxe+hcl+hlsl+http+hsts+ichigojam+icon+idris+ignore+inform7+ini+io+j+java+javadoc+javadoclike+javastacktrace+jolie+jq+jsdoc+js-extras+json+json5+jsonp+jsstacktrace+js-templates+julia+keyman+kotlin+kumir+latex+latte+less+lilypond+liquid+lisp+livescript+llvm+lolcode+lua+makefile+markdown+markup-templating+matlab+mel+mizar+mongodb+monkey+moonscript+n1ql+n4js+nand2tetris-hdl+naniscript+nasm+neon+nginx+nim+nix+nsis+objectivec+ocaml+opencl+oz+parigp+parser+pascal+pascaligo+psl+pcaxis+peoplecode+perl+php+phpdoc+php-extras+plsql+powerquery+powershell+processing+prolog+promql+properties+protobuf+pug+puppet+pure+purebasic+purescript+python+q+qml+qore+r+racket+jsx+tsx+reason+regex+renpy+rest+rip+roboconf+robotframework+ruby+rust+sas+sass+scss+scala+scheme+shell-session+smali+smalltalk+smarty+sml+solidity+solution-file+soy+sparql+splunk-spl+sqf+sql+squirrel+stan+iecst+stylus+swift+t4-templating+t4-cs+t4-vb+tap+tcl+tt2+textile+toml+turtle+twig+typescript+typoscript+unrealscript+uri+v+vala+vbnet+velocity+verilog+vhdl+vim+visual-basic+warpscript+wasm+wiki+xeora+xml-doc+xojo+xquery+yaml+yang+zig&plugins=line-highlight+line-numbers+custom-class+jsonp-highlight+highlight-keywords */
var _self = "undefined" != typeof window ? window : "undefined" != typeof WorkerGlobalScope && self instanceof WorkerGlobalScope ?
	self : {},
	Prism = function(u) {
		var c = /\blang(?:uage)?-([\w-]+)\b/i,
			n = 0,
			M = {
				manual: u.Prism && u.Prism.manual,
				disableWorkerMessageHandler: u.Prism && u.Prism.disableWorkerMessageHandler,
				util: {
					encode: function e(n) {
						return n instanceof W ? new W(n.type, e(n.content), n.alias) : Array.isArray(n) ? n.map(e) : n.replace(/&/g,
							"&amp;").replace(/</g, "&lt;").replace(/\u00a0/g, " ")
					},
					type: function(e) {
						return Object.prototype.toString.call(e).slice(8, -1)
					},
					objId: function(e) {
						return e.__id || Object.defineProperty(e, "__id", {
							value: ++n
						}), e.__id
					},
					clone: function r(e, t) {
						var a, n;
						switch (t = t || {}, M.util.type(e)) {
							case "Object":
								if (n = M.util.objId(e), t[n]) return t[n];
								for (var i in a = {}, t[n] = a, e) e.hasOwnProperty(i) && (a[i] = r(e[i], t));
								return a;
							case "Array":
								return n = M.util.objId(e), t[n] ? t[n] : (a = [], t[n] = a, e.forEach(function(e, n) {
									a[n] = r(e, t)
								}), a);
							default:
								return e
						}
					},
					getLanguage: function(e) {
						for (; e && !c.test(e.className);) e = e.parentElement;
						return e ? (e.className.match(c) || [, "none"])[1].toLowerCase() : "none"
					},
					currentScript: function() {
						if ("undefined" == typeof document) return null;
						if ("currentScript" in document) return document.currentScript;
						try {
							throw new Error
						} catch (e) {
							var n = (/at [^(\r\n]*\((.*):.+:.+\)$/i.exec(e.stack) || [])[1];
							if (n) {
								var r = document.getElementsByTagName("script");
								for (var t in r)
									if (r[t].src == n) return r[t]
							}
							return null
						}
					},
					isActive: function(e, n, r) {
						for (var t = "no-" + n; e;) {
							var a = e.classList;
							if (a.contains(n)) return !0;
							if (a.contains(t)) return !1;
							e = e.parentElement
						}
						return !!r
					}
				},
				languages: {
					extend: function(e, n) {
						var r = M.util.clone(M.languages[e]);
						for (var t in n) r[t] = n[t];
						return r
					},
					insertBefore: function(r, e, n, t) {
						var a = (t = t || M.languages)[r],
							i = {};
						for (var l in a)
							if (a.hasOwnProperty(l)) {
								if (l == e)
									for (var o in n) n.hasOwnProperty(o) && (i[o] = n[o]);
								n.hasOwnProperty(l) || (i[l] = a[l])
							} var s = t[r];
						return t[r] = i, M.languages.DFS(M.languages, function(e, n) {
							n === s && e != r && (this[e] = i)
						}), i
					},
					DFS: function e(n, r, t, a) {
						a = a || {};
						var i = M.util.objId;
						for (var l in n)
							if (n.hasOwnProperty(l)) {
								r.call(n, l, n[l], t || l);
								var o = n[l],
									s = M.util.type(o);
								"Object" !== s || a[i(o)] ? "Array" !== s || a[i(o)] || (a[i(o)] = !0, e(o, r, l, a)) : (a[i(o)] = !0, e(o, r,
									null, a))
							}
					}
				},
				plugins: {},
				highlightAll: function(e, n) {
					M.highlightAllUnder(document, e, n)
				},
				highlightAllUnder: function(e, n, r) {
					var t = {
						callback: r,
						container: e,
						selector: 'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'
					};
					M.hooks.run("before-highlightall", t), t.elements = Array.prototype.slice.apply(t.container.querySelectorAll(t.selector)),
						M.hooks.run("before-all-elements-highlight", t);
					for (var a, i = 0; a = t.elements[i++];) M.highlightElement(a, !0 === n, t.callback)
				},
				highlightElement: function(e, n, r) {
					var t = M.util.getLanguage(e),
						a = M.languages[t];
					e.className = e.className.replace(c, "").replace(/\s+/g, " ") + " language-" + t;
					var i = e.parentElement;
					i && "pre" === i.nodeName.toLowerCase() && (i.className = i.className.replace(c, "").replace(/\s+/g, " ") +
						" language-" + t);
					var l = {
						element: e,
						language: t,
						grammar: a,
						code: e.textContent
					};

					function o(e) {
						l.highlightedCode = e, M.hooks.run("before-insert", l), l.element.innerHTML = l.highlightedCode, M.hooks.run(
							"after-highlight", l), M.hooks.run("complete", l), r && r.call(l.element)
					}
					if (M.hooks.run("before-sanity-check", l), !l.code) return M.hooks.run("complete", l), void(r && r.call(l.element));
					if (M.hooks.run("before-highlight", l), l.grammar)
						if (n && u.Worker) {
							var s = new Worker(M.filename);
							s.onmessage = function(e) {
								o(e.data)
							}, s.postMessage(JSON.stringify({
								language: l.language,
								code: l.code,
								immediateClose: !0
							}))
						} else o(M.highlight(l.code, l.grammar, l.language));
					else o(M.util.encode(l.code))
				},
				highlight: function(e, n, r) {
					var t = {
						code: e,
						grammar: n,
						language: r
					};
					return M.hooks.run("before-tokenize", t), t.tokens = M.tokenize(t.code, t.grammar), M.hooks.run("after-tokenize",
						t), W.stringify(M.util.encode(t.tokens), t.language)
				},
				tokenize: function(e, n) {
					var r = n.rest;
					if (r) {
						for (var t in r) n[t] = r[t];
						delete n.rest
					}
					var a = new i;
					return I(a, a.head, e),
						function e(n, r, t, a, i, l) {
							for (var o in t)
								if (t.hasOwnProperty(o) && t[o]) {
									var s = t[o];
									s = Array.isArray(s) ? s : [s];
									for (var u = 0; u < s.length; ++u) {
										if (l && l.cause == o + "," + u) return;
										var c = s[u],
											g = c.inside,
											f = !!c.lookbehind,
											h = !!c.greedy,
											d = c.alias;
										if (h && !c.pattern.global) {
											var v = c.pattern.toString().match(/[imsuy]*$/)[0];
											c.pattern = RegExp(c.pattern.source, v + "g")
										}
										for (var p = c.pattern || c, m = a.next, y = i; m !== r.tail && !(l && y >= l.reach); y += m.value.length, m =
											m.next) {
											var k = m.value;
											if (r.length > n.length) return;
											if (!(k instanceof W)) {
												var b, x = 1;
												if (h) {
													if (!(b = z(p, y, n, f))) break;
													var w = b.index,
														A = b.index + b[0].length,
														P = y;
													for (P += m.value.length; P <= w;) m = m.next, P += m.value.length;
													if (P -= m.value.length, y = P, m.value instanceof W) continue;
													for (var S = m; S !== r.tail && (P < A || "string" == typeof S.value); S = S.next) x++, P += S.value.length;
													x--, k = n.slice(y, P), b.index -= y
												} else if (!(b = z(p, 0, k, f))) continue;
												var w = b.index,
													E = b[0],
													O = k.slice(0, w),
													L = k.slice(w + E.length),
													N = y + k.length;
												l && N > l.reach && (l.reach = N);
												var j = m.prev;
												O && (j = I(r, j, O), y += O.length), q(r, j, x);
												var C = new W(o, g ? M.tokenize(E, g) : E, d, E);
												if (m = I(r, j, C), L && I(r, m, L), 1 < x) {
													var _ = {
														cause: o + "," + u,
														reach: N
													};
													e(n, r, t, m.prev, y, _), l && _.reach > l.reach && (l.reach = _.reach)
												}
											}
										}
									}
								}
						}(e, a, n, a.head, 0),
						function(e) {
							var n = [],
								r = e.head.next;
							for (; r !== e.tail;) n.push(r.value), r = r.next;
							return n
						}(a)
				},
				hooks: {
					all: {},
					add: function(e, n) {
						var r = M.hooks.all;
						r[e] = r[e] || [], r[e].push(n)
					},
					run: function(e, n) {
						var r = M.hooks.all[e];
						if (r && r.length)
							for (var t, a = 0; t = r[a++];) t(n)
					}
				},
				Token: W
			};

		function W(e, n, r, t) {
			this.type = e, this.content = n, this.alias = r, this.length = 0 | (t || "").length
		}

		function z(e, n, r, t) {
			e.lastIndex = n;
			var a = e.exec(r);
			if (a && t && a[1]) {
				var i = a[1].length;
				a.index += i, a[0] = a[0].slice(i)
			}
			return a
		}

		function i() {
			var e = {
					value: null,
					prev: null,
					next: null
				},
				n = {
					value: null,
					prev: e,
					next: null
				};
			e.next = n, this.head = e, this.tail = n, this.length = 0
		}

		function I(e, n, r) {
			var t = n.next,
				a = {
					value: r,
					prev: n,
					next: t
				};
			return n.next = a, t.prev = a, e.length++, a
		}

		function q(e, n, r) {
			for (var t = n.next, a = 0; a < r && t !== e.tail; a++) t = t.next;
			(n.next = t).prev = n, e.length -= a
		}
		if (u.Prism = M, W.stringify = function n(e, r) {
				if ("string" == typeof e) return e;
				if (Array.isArray(e)) {
					var t = "";
					return e.forEach(function(e) {
						t += n(e, r)
					}), t
				}
				var a = {
						type: e.type,
						content: n(e.content, r),
						tag: "span",
						classes: ["token", e.type],
						attributes: {},
						language: r
					},
					i = e.alias;
				i && (Array.isArray(i) ? Array.prototype.push.apply(a.classes, i) : a.classes.push(i)), M.hooks.run("wrap", a);
				var l = "";
				for (var o in a.attributes) l += " " + o + '="' + (a.attributes[o] || "").replace(/"/g, "&quot;") + '"';
				return "<" + a.tag + ' class="' + a.classes.join(" ") + '"' + l + ">" + a.content + "</" + a.tag + ">"
			}, !u.document) return u.addEventListener && (M.disableWorkerMessageHandler || u.addEventListener("message",
			function(e) {
				var n = JSON.parse(e.data),
					r = n.language,
					t = n.code,
					a = n.immediateClose;
				u.postMessage(M.highlight(t, M.languages[r], r)), a && u.close()
			}, !1)), M;
		var e = M.util.currentScript();

		function r() {
			M.manual || M.highlightAll()
		}
		if (e && (M.filename = e.src, e.hasAttribute("data-manual") && (M.manual = !0)), !M.manual) {
			var t = document.readyState;
			"loading" === t || "interactive" === t && e && e.defer ? document.addEventListener("DOMContentLoaded", r) : window.requestAnimationFrame ?
				window.requestAnimationFrame(r) : window.setTimeout(r, 16)
		}
		return M
	}(_self);
"undefined" != typeof module && module.exports && (module.exports = Prism), "undefined" != typeof global && (global.Prism =
	Prism);
Prism.languages.markup = {
		comment: /<!--[\s\S]*?-->/,
		prolog: /<\?[\s\S]+?\?>/,
		doctype: {
			pattern: /<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,
			greedy: !0,
			inside: {
				"internal-subset": {
					pattern: /(\[)[\s\S]+(?=\]>$)/,
					lookbehind: !0,
					greedy: !0,
					inside: null
				},
				string: {
					pattern: /"[^"]*"|'[^']*'/,
					greedy: !0
				},
				punctuation: /^<!|>$|[[\]]/,
				"doctype-tag": /^DOCTYPE/,
				name: /[^\s<>'"]+/
			}
		},
		cdata: /<!\[CDATA\[[\s\S]*?]]>/i,
		tag: {
			pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,
			greedy: !0,
			inside: {
				tag: {
					pattern: /^<\/?[^\s>\/]+/,
					inside: {
						punctuation: /^<\/?/,
						namespace: /^[^\s>\/:]+:/
					}
				},
				"attr-value": {
					pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,
					inside: {
						punctuation: [{
							pattern: /^=/,
							alias: "attr-equals"
						}, /"|'/]
					}
				},
				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(a) {
		"entity" === a.type && (a.attributes.title = a.content.replace(/&amp;/, "&"))
	}), Object.defineProperty(Prism.languages.markup.tag, "addInlined", {
		value: function(a, e) {
			var s = {};
			s["language-" + e] = {
				pattern: /(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,
				lookbehind: !0,
				inside: Prism.languages[e]
			}, s.cdata = /^<!\[CDATA\[|\]\]>$/i;
			var n = {
				"included-cdata": {
					pattern: /<!\[CDATA\[[\s\S]*?\]\]>/i,
					inside: s
				}
			};
			n["language-" + e] = {
				pattern: /[\s\S]+/,
				inside: Prism.languages[e]
			};
			var t = {};
			t[a] = {
				pattern: RegExp("(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[^])*?(?=</__>)".replace(
					/__/g,
					function() {
						return a
					}), "i"),
				lookbehind: !0,
				greedy: !0,
				inside: n
			}, Prism.languages.insertBefore("markup", "cdata", t)
		}
	}), 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(s) {
	var e = /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;
	s.languages.css = {
		comment: /\/\*[\s\S]*?\*\//,
		atrule: {
			pattern: /@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,
			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\\((?:" + e.source + "|(?:[^\\\\\r\n()\"']|\\\\[^])*)\\)", "i"),
			greedy: !0,
			inside: {
				function: /^url/i,
				punctuation: /^\(|\)$/,
				string: {
					pattern: RegExp("^" + e.source + "$"),
					alias: "url"
				}
			}
		},
		selector: RegExp("[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|" + e.source + ")*(?=\\s*\\{)"),
		string: {
			pattern: e,
			greedy: !0
		},
		property: /(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,
		important: /!important\b/i,
		function: /[-a-z0-9]+(?=\()/i,
		punctuation: /[(){};:,]/
	}, s.languages.css.atrule.inside.rest = s.languages.css;
	var t = s.languages.markup;
	t && (t.tag.addInlined("style", "css"), s.languages.insertBefore("inside", "attr-value", {
		"style-attr": {
			pattern: /(^|["'\s])style\s*=\s*(?:"[^"]*"|'[^']*')/i,
			lookbehind: !0,
			inside: {
				"attr-value": {
					pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,
					inside: {
						style: {
							pattern: /(["'])[\s\S]+(?=["']$)/,
							lookbehind: !0,
							alias: "language-css",
							inside: s.languages.css
						},
						punctuation: [{
							pattern: /^=/,
							alias: "attr-equals"
						}, /"|'/]
					}
				},
				"attr-name": /^style/i
			}
		}
	}, t.tag))
}(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|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,
		lookbehind: !0,
		inside: {
			punctuation: /[.\\]/
		}
	},
	keyword: /\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,
	boolean: /\b(?:true|false)\b/,
	function: /\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])*(?=\.(?:prototype|constructor))/,
			lookbehind: !0
		}],
		keyword: [{
			pattern: /((?:^|})\s*)catch\b/,
			lookbehind: !0
		}, {
			pattern: /(^|[^.]|\.\.\.\s*)\b(?:as|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: /\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,
		operator: /--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/
	}), Prism.languages.javascript["class-name"][0].pattern =
	/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/, Prism.languages.insertBefore("javascript",
		"keyword", {
			regex: {
				pattern: /((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,
				lookbehind: !0,
				greedy: !0,
				inside: {
					"regex-source": {
						pattern: /^(\/)[\s\S]+(?=\/[a-z]*$)/,
						lookbehind: !0,
						alias: "language-regex",
						inside: Prism.languages.regex
					},
					"regex-flags": /[a-z]+$/,
					"regex-delimiter": /^\/|\/$/
				}
			},
			"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: /(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,
				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", {
		"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]+/
			}
		}
	}), Prism.languages.markup && Prism.languages.markup.tag.addInlined("script", "javascript"), Prism.languages.js =
	Prism.languages.javascript;
Prism.languages.abap = {
	comment: /^\*.*/m,
	string: /(`|')(?:\\.|(?!\1)[^\\\r\n])*\1/m,
	"string-template": {
		pattern: /([|}])(?:\\.|[^\\|{\r\n])*(?=[|{])/,
		lookbehind: !0,
		alias: "string"
	},
	"eol-comment": {
		pattern: /(^|\s)".*/m,
		lookbehind: !0,
		alias: "comment"
	},
	keyword: {
		pattern: /(\s|\.|^)(?:SCIENTIFIC_WITH_LEADING_ZERO|SCALE_PRESERVING_SCIENTIFIC|RMC_COMMUNICATION_FAILURE|END-ENHANCEMENT-SECTION|MULTIPLY-CORRESPONDING|SUBTRACT-CORRESPONDING|VERIFICATION-MESSAGE|DIVIDE-CORRESPONDING|ENHANCEMENT-SECTION|CURRENCY_CONVERSION|RMC_SYSTEM_FAILURE|START-OF-SELECTION|MOVE-CORRESPONDING|RMC_INVALID_STATUS|CUSTOMER-FUNCTION|END-OF-DEFINITION|ENHANCEMENT-POINT|SYSTEM-EXCEPTIONS|ADD-CORRESPONDING|SCALE_PRESERVING|SELECTION-SCREEN|CURSOR-SELECTION|END-OF-SELECTION|LOAD-OF-PROGRAM|SCROLL-BOUNDARY|SELECTION-TABLE|EXCEPTION-TABLE|IMPLEMENTATIONS|PARAMETER-TABLE|RIGHT-JUSTIFIED|UNIT_CONVERSION|AUTHORITY-CHECK|LIST-PROCESSING|SIGN_AS_POSTFIX|COL_BACKGROUND|IMPLEMENTATION|INTERFACE-POOL|TRANSFORMATION|IDENTIFICATION|ENDENHANCEMENT|LINE-SELECTION|INITIALIZATION|LEFT-JUSTIFIED|SELECT-OPTIONS|SELECTION-SETS|COMMUNICATION|CORRESPONDING|DECIMAL_SHIFT|PRINT-CONTROL|VALUE-REQUEST|CHAIN-REQUEST|FUNCTION-POOL|FIELD-SYMBOLS|FUNCTIONALITY|INVERTED-DATE|SELECTION-SET|CLASS-METHODS|OUTPUT-LENGTH|CLASS-CODING|COL_NEGATIVE|ERRORMESSAGE|FIELD-GROUPS|HELP-REQUEST|NO-EXTENSION|NO-TOPOFPAGE|REDEFINITION|DISPLAY-MODE|ENDINTERFACE|EXIT-COMMAND|FIELD-SYMBOL|NO-SCROLLING|SHORTDUMP-ID|ACCESSPOLICY|CLASS-EVENTS|COL_POSITIVE|DECLARATIONS|ENHANCEMENTS|FILTER-TABLE|SWITCHSTATES|SYNTAX-CHECK|TRANSPORTING|ASYNCHRONOUS|SYNTAX-TRACE|TOKENIZATION|USER-COMMAND|WITH-HEADING|ABAP-SOURCE|BREAK-POINT|CHAIN-INPUT|COMPRESSION|FIXED-POINT|NEW-SECTION|NON-UNICODE|OCCURRENCES|RESPONSIBLE|SYSTEM-CALL|TRACE-TABLE|ABBREVIATED|CHAR-TO-HEX|END-OF-FILE|ENDFUNCTION|ENVIRONMENT|ASSOCIATION|COL_HEADING|EDITOR-CALL|END-OF-PAGE|ENGINEERING|IMPLEMENTED|INTENSIFIED|RADIOBUTTON|SYSTEM-EXIT|TOP-OF-PAGE|TRANSACTION|APPLICATION|CONCATENATE|DESTINATION|ENHANCEMENT|IMMEDIATELY|NO-GROUPING|PRECOMPILED|REPLACEMENT|TITLE-LINES|ACTIVATION|BYTE-ORDER|CLASS-POOL|CONNECTION|CONVERSION|DEFINITION|DEPARTMENT|EXPIRATION|INHERITING|MESSAGE-ID|NO-HEADING|PERFORMING|QUEUE-ONLY|RIGHTSPACE|SCIENTIFIC|STATUSINFO|STRUCTURES|SYNCPOINTS|WITH-TITLE|ATTRIBUTES|BOUNDARIES|CLASS-DATA|COL_NORMAL|DD\/MM\/YYYY|DESCENDING|INTERFACES|LINE-COUNT|MM\/DD\/YYYY|NON-UNIQUE|PRESERVING|SELECTIONS|STATEMENTS|SUBROUTINE|TRUNCATION|TYPE-POOLS|ARITHMETIC|BACKGROUND|ENDPROVIDE|EXCEPTIONS|IDENTIFIER|INDEX-LINE|OBLIGATORY|PARAMETERS|PERCENTAGE|PUSHBUTTON|RESOLUTION|COMPONENTS|DEALLOCATE|DISCONNECT|DUPLICATES|FIRST-LINE|HEAD-LINES|NO-DISPLAY|OCCURRENCE|RESPECTING|RETURNCODE|SUBMATCHES|TRACE-FILE|ASCENDING|BYPASSING|ENDMODULE|EXCEPTION|EXCLUDING|EXPORTING|INCREMENT|MATCHCODE|PARAMETER|PARTIALLY|PREFERRED|REFERENCE|REPLACING|RETURNING|SELECTION|SEPARATED|SPECIFIED|STATEMENT|TIMESTAMP|TYPE-POOL|ACCEPTING|APPENDAGE|ASSIGNING|COL_GROUP|COMPARING|CONSTANTS|DANGEROUS|IMPORTING|INSTANCES|LEFTSPACE|LOG-POINT|QUICKINFO|READ-ONLY|SCROLLING|SQLSCRIPT|STEP-LOOP|TOP-LINES|TRANSLATE|APPENDING|AUTHORITY|CHARACTER|COMPONENT|CONDITION|DIRECTORY|DUPLICATE|MESSAGING|RECEIVING|SUBSCREEN|ACCORDING|COL_TOTAL|END-LINES|ENDMETHOD|ENDSELECT|EXPANDING|EXTENSION|INCLUDING|INFOTYPES|INTERFACE|INTERVALS|LINE-SIZE|PF-STATUS|PROCEDURE|PROTECTED|REQUESTED|RESUMABLE|RIGHTPLUS|SAP-SPOOL|SECONDARY|STRUCTURE|SUBSTRING|TABLEVIEW|NUMOFCHAR|ADJACENT|ANALYSIS|ASSIGNED|BACKWARD|CHANNELS|CHECKBOX|CONTINUE|CRITICAL|DATAINFO|DD\/MM\/YY|DURATION|ENCODING|ENDCLASS|FUNCTION|LEFTPLUS|LINEFEED|MM\/DD\/YY|OVERFLOW|RECEIVED|SKIPPING|SORTABLE|STANDARD|SUBTRACT|SUPPRESS|TABSTRIP|TITLEBAR|TRUNCATE|UNASSIGN|WHENEVER|ANALYZER|COALESCE|COMMENTS|CONDENSE|DECIMALS|DEFERRED|ENDWHILE|EXPLICIT|KEYWORDS|MESSAGES|POSITION|PRIORITY|RECEIVER|RENAMING|TIMEZONE|TRAILING|ALLOCATE|CENTERED|CIRCULAR|CONTROLS|CURRENCY|DELETING|DESCRIBE|DISTANCE|ENDCATCH|EXPONENT|EXTENDED|GENERATE|IGNORING|INCLUDES|INTERNAL|MAJOR-ID|MODIFIER|NEW-LINE|OPTIONAL|PROPERTY|ROLLBACK|STARTING|SUPPLIED|ABSTRACT|CHANGING|CONTEXTS|CREATING|CUSTOMER|DATABASE|DAYLIGHT|DEFINING|DISTINCT|DIVISION|ENABLING|ENDCHAIN|ESCAPING|HARMLESS|IMPLICIT|INACTIVE|LANGUAGE|MINOR-ID|MULTIPLY|NEW-PAGE|NO-TITLE|POS_HIGH|SEPARATE|TEXTPOOL|TRANSFER|SELECTOR|DBMAXLEN|ITERATOR|SELECTOR|ARCHIVE|BIT-XOR|BYTE-CO|COLLECT|COMMENT|CURRENT|DEFAULT|DISPLAY|ENDFORM|EXTRACT|LEADING|LISTBOX|LOCATOR|MEMBERS|METHODS|NESTING|POS_LOW|PROCESS|PROVIDE|RAISING|RESERVE|SECONDS|SUMMARY|VISIBLE|BETWEEN|BIT-AND|BYTE-CS|CLEANUP|COMPUTE|CONTROL|CONVERT|DATASET|ENDCASE|FORWARD|HEADERS|HOTSPOT|INCLUDE|INVERSE|KEEPING|NO-ZERO|OBJECTS|OVERLAY|PADDING|PATTERN|PROGRAM|REFRESH|SECTION|SUMMING|TESTING|VERSION|WINDOWS|WITHOUT|BIT-NOT|BYTE-CA|BYTE-NA|CASTING|CONTEXT|COUNTRY|DYNAMIC|ENABLED|ENDLOOP|EXECUTE|FRIENDS|HANDLER|HEADING|INITIAL|\*-INPUT|LOGFILE|MAXIMUM|MINIMUM|NO-GAPS|NO-SIGN|PRAGMAS|PRIMARY|PRIVATE|REDUCED|REPLACE|REQUEST|RESULTS|UNICODE|WARNING|ALIASES|BYTE-CN|BYTE-NS|CALLING|COL_KEY|COLUMNS|CONNECT|ENDEXEC|ENTRIES|EXCLUDE|FILTERS|FURTHER|HELP-ID|LOGICAL|MAPPING|MESSAGE|NAMETAB|OPTIONS|PACKAGE|PERFORM|RECEIVE|STATICS|VARYING|BINDING|CHARLEN|GREATER|XSTRLEN|ACCEPT|APPEND|DETAIL|ELSEIF|ENDING|ENDTRY|FORMAT|FRAMES|GIVING|HASHED|HEADER|IMPORT|INSERT|MARGIN|MODULE|NATIVE|OBJECT|OFFSET|REMOTE|RESUME|SAVING|SIMPLE|SUBMIT|TABBED|TOKENS|UNIQUE|UNPACK|UPDATE|WINDOW|YELLOW|ACTUAL|ASPECT|CENTER|CURSOR|DELETE|DIALOG|DIVIDE|DURING|ERRORS|EVENTS|EXTEND|FILTER|HANDLE|HAVING|IGNORE|LITTLE|MEMORY|NO-GAP|OCCURS|OPTION|PERSON|PLACES|PUBLIC|REDUCE|REPORT|RESULT|SINGLE|SORTED|SWITCH|SYNTAX|TARGET|VALUES|WRITER|ASSERT|BLOCKS|BOUNDS|BUFFER|CHANGE|COLUMN|COMMIT|CONCAT|COPIES|CREATE|DDMMYY|DEFINE|ENDIAN|ESCAPE|EXPAND|KERNEL|LAYOUT|LEGACY|LEVELS|MMDDYY|NUMBER|OUTPUT|RANGES|READER|RETURN|SCREEN|SEARCH|SELECT|SHARED|SOURCE|STABLE|STATIC|SUBKEY|SUFFIX|TABLES|UNWIND|YYMMDD|ASSIGN|BACKUP|BEFORE|BINARY|BIT-OR|BLANKS|CLIENT|CODING|COMMON|DEMAND|DYNPRO|EXCEPT|EXISTS|EXPORT|FIELDS|GLOBAL|GROUPS|LENGTH|LOCALE|MEDIUM|METHOD|MODIFY|NESTED|OTHERS|REJECT|SCROLL|SUPPLY|SYMBOL|ENDFOR|STRLEN|ALIGN|BEGIN|BOUND|ENDAT|ENTRY|EVENT|FINAL|FLUSH|GRANT|INNER|SHORT|USING|WRITE|AFTER|BLACK|BLOCK|CLOCK|COLOR|COUNT|DUMMY|EMPTY|ENDDO|ENDON|GREEN|INDEX|INOUT|LEAVE|LEVEL|LINES|MODIF|ORDER|OUTER|RANGE|RESET|RETRY|RIGHT|SMART|SPLIT|STYLE|TABLE|THROW|UNDER|UNTIL|UPPER|UTF-8|WHERE|ALIAS|BLANK|CLEAR|CLOSE|EXACT|FETCH|FIRST|FOUND|GROUP|LLANG|LOCAL|OTHER|REGEX|SPOOL|TITLE|TYPES|VALID|WHILE|ALPHA|BOXED|CATCH|CHAIN|CHECK|CLASS|COVER|ENDIF|EQUIV|FIELD|FLOOR|FRAME|INPUT|LOWER|MATCH|NODES|PAGES|PRINT|RAISE|ROUND|SHIFT|SPACE|SPOTS|STAMP|STATE|TASKS|TIMES|TRMAC|ULINE|UNION|VALUE|WIDTH|EQUAL|LOG10|TRUNC|BLOB|CASE|CEIL|CLOB|COND|EXIT|FILE|GAPS|HOLD|INCL|INTO|KEEP|KEYS|LAST|LINE|LONG|LPAD|MAIL|MODE|OPEN|PINK|READ|ROWS|TEST|THEN|ZERO|AREA|BACK|BADI|BYTE|CAST|EDIT|EXEC|FAIL|FIND|FKEQ|FONT|FREE|GKEQ|HIDE|INIT|ITNO|LATE|LOOP|MAIN|MARK|MOVE|NEXT|NULL|RISK|ROLE|UNIT|WAIT|ZONE|BASE|CALL|CODE|DATA|DATE|FKGE|GKGE|HIGH|KIND|LEFT|LIST|MASK|MESH|NAME|NODE|PACK|PAGE|POOL|SEND|SIGN|SIZE|SOME|STOP|TASK|TEXT|TIME|USER|VARY|WITH|WORD|BLUE|CONV|COPY|DEEP|ELSE|FORM|FROM|HINT|ICON|JOIN|LIKE|LOAD|ONLY|PART|SCAN|SKIP|SORT|TYPE|UNIX|VIEW|WHEN|WORK|ACOS|ASIN|ATAN|COSH|EACH|FRAC|LESS|RTTI|SINH|SQRT|TANH|AVG|BIT|DIV|ISO|LET|OUT|PAD|SQL|ALL|CI_|CPI|END|LOB|LPI|MAX|MIN|NEW|OLE|RUN|SET|\?TO|YES|ABS|ADD|AND|BIG|FOR|HDB|JOB|LOW|NOT|SAP|TRY|VIA|XML|ANY|GET|IDS|KEY|MOD|OFF|PUT|RAW|RED|REF|SUM|TAB|XSD|CNT|COS|EXP|LOG|SIN|TAN|XOR|AT|CO|CP|DO|GT|ID|IF|NS|OR|BT|CA|CS|GE|NA|NB|EQ|IN|LT|NE|NO|OF|ON|PF|TO|AS|BY|CN|IS|LE|NP|UP|E|I|M|O|Z|C|X)\b/i,
		lookbehind: !0
	},
	number: /\b\d+\b/,
	operator: {
		pattern: /(\s)(?:\*\*?|<[=>]?|>=?|\?=|[-+\/=])(?=\s)/,
		lookbehind: !0
	},
	"string-operator": {
		pattern: /(\s)&&?(?=\s)/,
		lookbehind: !0,
		alias: "keyword"
	},
	"token-operator": [{
		pattern: /(\w)(?:->?|=>|[~|{}])(?=\w)/,
		lookbehind: !0,
		alias: "punctuation"
	}, {
		pattern: /[|{}]/,
		alias: "punctuation"
	}],
	punctuation: /[,.:()]/
};
! function(n) {
	var i = "(?:ALPHA|BIT|CHAR|CR|CRLF|CTL|DIGIT|DQUOTE|HEXDIG|HTAB|LF|LWSP|OCTET|SP|VCHAR|WSP)";
	Prism.languages.abnf = {
		comment: /;.*/,
		string: {
			pattern: /(?:%[is])?"[^"\n\r]*"/,
			greedy: !0,
			inside: {
				punctuation: /^%[is]/
			}
		},
		range: {
			pattern: /%(?:b[01]+-[01]+|d\d+-\d+|x[A-F\d]+-[A-F\d]+)/i,
			alias: "number"
		},
		terminal: {
			pattern: /%(?:b[01]+(?:\.[01]+)*|d\d+(?:\.\d+)*|x[A-F\d]+(?:\.[A-F\d]+)*)/i,
			alias: "number"
		},
		repetition: {
			pattern: /(^|[^\w-])(?:\d*\*\d*|\d+)/,
			lookbehind: !0,
			alias: "operator"
		},
		definition: {
			pattern: /(^[ \t]*)(?:[a-z][\w-]*|<[^>\r\n]*>)(?=\s*=)/m,
			lookbehind: !0,
			alias: "keyword",
			inside: {
				punctuation: /<|>/
			}
		},
		"core-rule": {
			pattern: RegExp("(?:(^|[^<\\w-])" + i + "|<" + i + ">)(?![\\w-])", "i"),
			lookbehind: !0,
			alias: ["rule", "constant"],
			inside: {
				punctuation: /<|>/
			}
		},
		rule: {
			pattern: /(^|[^<\w-])[a-z][\w-]*|<[^>\r\n]*>/i,
			lookbehind: !0,
			inside: {
				punctuation: /<|>/
			}
		},
		operator: /=\/?|\//,
		punctuation: /[()\[\]]/
	}
}();
Prism.languages.actionscript = Prism.languages.extend("javascript", {
	keyword: /\b(?:as|break|case|catch|class|const|default|delete|do|else|extends|finally|for|function|if|implements|import|in|instanceof|interface|internal|is|native|new|null|package|private|protected|public|return|super|switch|this|throw|try|typeof|use|var|void|while|with|dynamic|each|final|get|include|namespace|native|override|set|static)\b/,
	operator: /\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/
}), Prism.languages.actionscript["class-name"].alias = "function", Prism.languages.markup && Prism.languages.insertBefore(
	"actionscript", "string", {
		xml: {
			pattern: /(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,
			lookbehind: !0,
			inside: Prism.languages.markup
		}
	});
Prism.languages.ada = {
	comment: /--.*/,
	string: /"(?:""|[^"\r\f\n])*"/i,
	number: [{
		pattern: /\b\d(?:_?\d)*#[\dA-F](?:_?[\dA-F])*(?:\.[\dA-F](?:_?[\dA-F])*)?#(?:E[+-]?\d(?:_?\d)*)?/i
	}, {
		pattern: /\b\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:E[+-]?\d(?:_?\d)*)?\b/i
	}],
	"attr-name": /\b'\w+/i,
	keyword: /\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|new|return|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\b/i,
	boolean: /\b(?:true|false)\b/i,
	operator: /<[=>]?|>=?|=>?|:=|\/=?|\*\*?|[&+-]/,
	punctuation: /\.\.?|[,;():]/,
	char: /'.'/,
	variable: /\b[a-z](?:[_a-z\d])*\b/i
};
Prism.languages.agda = {
	comment: /\{-[\s\S]*?(?:-\}|$)|--.*/,
	string: {
		pattern: /"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,
		greedy: !0
	},
	punctuation: /[(){}⦃⦄.;@]/,
	"class-name": {
		pattern: /((?:data|record) +)\S+/,
		lookbehind: !0
	},
	function: {
		pattern: /(^[ \t]*)(?!\s)[^:\r\n]+(?=:)/m,
		lookbehind: !0
	},
	operator: {
		pattern: /(^\s*|\s)(?:[=|:∀→λ\\?_]|->)(?=\s)/,
		lookbehind: !0
	},
	keyword: /\b(?:Set|abstract|constructor|data|eta-equality|field|forall|forall|hiding|import|in|inductive|infix|infixl|infixr|instance|let|macro|module|mutual|no-eta-equality|open|overlap|pattern|postulate|primitive|private|public|quote|quoteContext|quoteGoal|quoteTerm|record|renaming|rewrite|syntax|tactic|unquote|unquoteDecl|unquoteDef|using|variable|where|with)\b/
};
Prism.languages.al = {
	comment: /\/\/.*|\/\*[\s\S]*?\*\//,
	string: {
		pattern: /'(?:''|[^'\r\n])*'(?!')|"(?:""|[^"\r\n])*"(?!")/,
		greedy: !0
	},
	function: {
		pattern: /(\b(?:event|procedure|trigger)\s+|(?:^|[^.])\.\s*)[a-z_]\w*(?=\s*\()/i,
		lookbehind: !0
	},
	keyword: [
		/\b(?:array|asserterror|begin|break|case|do|downto|else|end|event|exit|for|foreach|function|if|implements|in|indataset|interface|internal|local|of|procedure|program|protected|repeat|runonclient|securityfiltering|suppressdispose|temporary|then|to|trigger|until|var|while|with|withevents)\b/i,
		/\b(?:action|actions|addafter|addbefore|addfirst|addlast|area|assembly|chartpart|codeunit|column|controladdin|cuegroup|customizes|dataitem|dataset|dotnet|elements|enum|enumextension|extends|field|fieldattribute|fieldelement|fieldgroup|fieldgroups|fields|filter|fixed|grid|group|key|keys|label|labels|layout|modify|moveafter|movebefore|movefirst|movelast|page|pagecustomization|pageextension|part|profile|query|repeater|report|requestpage|schema|separator|systempart|table|tableelement|tableextension|textattribute|textelement|type|usercontrol|value|xmlport)\b/i
	],
	number: /\b(?:0x[\da-f]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?)(?:F|U(?:LL?)?|LL?)?\b/i,
	boolean: /\b(?:false|true)\b/i,
	variable: /\b(?:Curr(?:FieldNo|Page|Report)|RequestOptionsPage|x?Rec)\b/,
	"class-name": /\b(?:automation|biginteger|bigtext|blob|boolean|byte|char|clienttype|code|completiontriggererrorlevel|connectiontype|database|dataclassification|datascope|date|dateformula|datetime|decimal|defaultlayout|dialog|dictionary|dotnetassembly|dotnettypedeclaration|duration|errorinfo|errortype|executioncontext|executionmode|fieldclass|fieldref|fieldtype|file|filterpagebuilder|guid|httpclient|httpcontent|httpheaders|httprequestmessage|httpresponsemessage|instream|integer|joker|jsonarray|jsonobject|jsontoken|jsonvalue|keyref|list|moduledependencyinfo|moduleinfo|none|notification|notificationscope|objecttype|option|outstream|pageresult|record|recordid|recordref|reportformat|securityfilter|sessionsettings|tableconnectiontype|tablefilter|testaction|testfield|testfilterfield|testpage|testpermissions|testrequestpage|text|textbuilder|textconst|textencoding|time|transactionmodel|transactiontype|variant|verbosity|version|view|views|webserviceactioncontext|webserviceactionresultcode|xmlattribute|xmlattributecollection|xmlcdata|xmlcomment|xmldeclaration|xmldocument|xmldocumenttype|xmlelement|xmlnamespacemanager|xmlnametable|xmlnode|xmlnodelist|xmlprocessinginstruction|xmlreadoptions|xmltext|xmlwriteoptions)\b/i,
	operator: /\.\.|:[=:]|[-+*/]=?|<>|[<>]=?|=|\b(?:and|div|mod|not|or|xor)\b/i,
	punctuation: /[()\[\]{}:.;,]/
};
Prism.languages.antlr4 = {
	comment: /\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,
	string: {
		pattern: /'(?:\\.|[^\\'\r\n])*'/,
		greedy: !0
	},
	"character-class": {
		pattern: /\[(?:\\.|[^\\\]\r\n])*\]/,
		greedy: !0,
		alias: "regex",
		inside: {
			range: {
				pattern: /([^[]|(?:^|[^\\])(?:\\\\)*\\\[)-(?!\])/,
				lookbehind: !0,
				alias: "punctuation"
			},
			escape: /\\(?:u(?:[a-fA-F\d]{4}|\{[a-fA-F\d]+\})|[pP]\{[=\w-]+\}|[^\r\nupP])/,
			punctuation: /[\[\]]/
		}
	},
	action: {
		pattern: /\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\}/,
		greedy: !0,
		inside: {
			content: {
				pattern: /(\{)[\s\S]+(?=\})/,
				lookbehind: !0
			},
			punctuation: /[{}]/
		}
	},
	command: {
		pattern: /(->\s*(?!\s))(?:\s*(?:,\s*)?\b[a-z]\w*(?:\s*\([^()\r\n]*\))?)+(?=\s*;)/i,
		lookbehind: !0,
		inside: {
			function: /\b\w+(?=\s*(?:[,(]|$))/,
			punctuation: /[,()]/
		}
	},
	annotation: {
		pattern: /@\w+(?:::\w+)*/,
		alias: "keyword"
	},
	label: {
		pattern: /#[ \t]*\w+/,
		alias: "punctuation"
	},
	keyword: /\b(?:catch|channels|finally|fragment|grammar|import|lexer|locals|mode|options|parser|returns|throws|tokens)\b/,
	definition: [{
		pattern: /\b[a-z]\w*(?=\s*:)/,
		alias: ["rule", "class-name"]
	}, {
		pattern: /\b[A-Z]\w*(?=\s*:)/,
		alias: ["token", "constant"]
	}],
	constant: /\b[A-Z][A-Z_]*\b/,
	operator: /\.\.|->|[|~]|[*+?]\??/,
	punctuation: /[;:()=]/
}, Prism.languages.g4 = Prism.languages.antlr4;
Prism.languages.apacheconf = {
	comment: /#.*/,
	"directive-inline": {
		pattern: /(^\s*)\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|Add(?:Alt|AltByEncoding|AltByType|Charset|DefaultCharset|Description|Encoding|Handler|Icon|IconByEncoding|IconByType|InputFilter|Language|ModuleInfo|OutputFilter|OutputFilterByType|Type)|Alias|AliasMatch|Allow(?:CONNECT|EncodedSlashes|Methods|Override|OverrideList)?|Anonymous(?:_LogEmail|_MustGiveEmail|_NoUserID|_VerifyEmail)?|AsyncRequestWorkerFactor|Auth(?:BasicAuthoritative|BasicFake|BasicProvider|BasicUseDigestAlgorithm|DBDUserPWQuery|DBDUserRealmQuery|DBMGroupFile|DBMType|DBMUserFile|Digest(?:Algorithm|Domain|NonceLifetime|Provider|Qop|ShmemSize)|Form(?:Authoritative|Body|DisableNoStore|FakeBasicAuth|Location|LoginRequiredLocation|LoginSuccessLocation|LogoutLocation|Method|Mimetype|Password|Provider|SitePassphrase|Size|Username)|GroupFile|LDAP(?:AuthorizePrefix|BindAuthoritative|BindDN|BindPassword|CharsetConfig|CompareAsUser|CompareDNOnServer|DereferenceAliases|GroupAttribute|GroupAttributeIsDN|InitialBindAsUser|InitialBindPattern|MaxSubGroupDepth|RemoteUserAttribute|RemoteUserIsDN|SearchAsUser|SubGroupAttribute|SubGroupClass|Url)|Merging|Name|Type|UserFile|nCache(?:Context|Enable|ProvideFor|SOCache|Timeout)|nzFcgiCheckAuthnProvider|nzFcgiDefineProvider|zDBDLoginToReferer|zDBDQuery|zDBDRedirectQuery|zDBMType|zSendForbiddenOnFailure)|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferSize|BufferedLogs|CGIDScriptTimeout|CGIMapExtension|Cache(?:DefaultExpire|DetailHeader|DirLength|DirLevels|Disable|Enable|File|Header|IgnoreCacheControl|IgnoreHeaders|IgnoreNoLastMod|IgnoreQueryString|IgnoreURLSessionIdentifiers|KeyBaseURL|LastModifiedFactor|Lock|LockMaxAge|LockPath|MaxExpire|MaxFileSize|MinExpire|MinFileSize|NegotiatedDocs|QuickHandler|ReadSize|ReadTime|Root|Socache(?:MaxSize|MaxTime|MinTime|ReadSize|ReadTime)?|StaleOnError|StoreExpired|StoreNoStore|StorePrivate)|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DTracePrivileges|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|Deflate(?:BufferSize|CompressionLevel|FilterNote|InflateLimitRequestBody|InflateRatio(?:Burst|Limit)|MemLevel|WindowSize)|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtFilterDefine|ExtFilterOptions|ExtendedStatus|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|Heartbeat(?:Address|Listen|MaxServers|Storage)|HostnameLookups|ISAPI(?:AppendLogToErrors|AppendLogToQuery|CacheFile|FakeAsync|LogNotSupported|ReadAheadBuffer)|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|Index(?:HeadInsert|Ignore|IgnoreReset|Options|OrderDefault|StyleSheet)|InputSed|KeepAlive|KeepAliveTimeout|KeptBodySize|LDAP(?:CacheEntries|CacheTTL|ConnectionPoolTTL|ConnectionTimeout|LibraryDebug|OpCacheEntries|OpCacheTTL|ReferralHopLimit|Referrals|Retries|RetryDelay|SharedCacheFile|SharedCacheSize|Timeout|TrustedClientCert|TrustedGlobalCert|TrustedMode|VerifyServerCert)|LanguagePriority|Limit(?:InternalRecursion|Request(?:Body|FieldSize|Fields|Line)|XMLRequestBody)|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|Lua(?:Hook(?:AccessChecker|AuthChecker|CheckUserID|Fixups|InsertFilter|Log|MapToStorage|TranslateName|TypeChecker)|Inherit|InputFilter|MapHandler|OutputFilter|PackageCPath|PackagePath|QuickHandler|Root|Scope)|MMapFile|Max(?:ConnectionsPerChild|KeepAliveRequests|MemFree|RangeOverlaps|RangeReversals|Ranges|RequestWorkers|SpareServers|SpareThreads|Threads)|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|ModMimeUsePathInfo|ModemStandard|MultiviewsMatch|Mutex|NWSSLTrustedCerts|NWSSLUpgradeable|NameVirtualHost|NoProxy|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|Proxy(?:AddHeaders|BadHeader|Block|Domain|ErrorOverride|ExpressDBMFile|ExpressDBMType|ExpressEnable|FtpDirCharset|FtpEscapeWildcards|FtpListOnWildcard|HTML(?:BufSize|CharsetOut|DocType|Enable|Events|Extended|Fixups|Interp|Links|Meta|StripComments|URLMap)|IOBufferSize|MaxForwards|Pass(?:Inherit|InterpolateEnv|Match|Reverse|ReverseCookieDomain|ReverseCookiePath)?|PreserveHost|ReceiveBufferSize|Remote|RemoteMatch|Requests|SCGIInternalRedirect|SCGISendfile|Set|SourceAddress|Status|Timeout|Via)|RLimitCPU|RLimitMEM|RLimitNPROC|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIP(?:Header|InternalProxy|InternalProxyList|ProxiesHeader|TrustedProxy|TrustedProxyList)|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|Rewrite(?:Base|Cond|Engine|Map|Options|Rule)|SSIETag|SSIEndTag|SSIErrorMsg|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSL(?:CACertificateFile|CACertificatePath|CADNRequestFile|CADNRequestPath|CARevocationCheck|CARevocationFile|CARevocationPath|CertificateChainFile|CertificateFile|CertificateKeyFile|CipherSuite|Compression|CryptoDevice|Engine|FIPS|HonorCipherOrder|InsecureRenegotiation|OCSP(?:DefaultResponder|Enable|OverrideResponder|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|UseRequestNonce)|OpenSSLConfCmd|Options|PassPhraseDialog|Protocol|Proxy(?:CACertificateFile|CACertificatePath|CARevocation(?:Check|File|Path)|CheckPeer(?:CN|Expire|Name)|CipherSuite|Engine|MachineCertificate(?:ChainFile|File|Path)|Protocol|Verify|VerifyDepth)|RandomSeed|RenegBufferSize|Require|RequireSSL|SRPUnknownUserSeed|SRPVerifierFile|Session(?:Cache|CacheTimeout|TicketKeyFile|Tickets)|Stapling(?:Cache|ErrorCacheTimeout|FakeTryLater|ForceURL|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|ReturnResponderErrors|StandardCacheTimeout)|StrictSNIVHostCheck|UseStapling|UserName|VerifyClient|VerifyDepth)|Satisfy|ScoreBoardFile|Script(?:Alias|AliasMatch|InterpreterSource|Log|LogBuffer|LogLength|Sock)?|SecureListen|SeeRequestTail|SendBufferSize|Server(?:Admin|Alias|Limit|Name|Path|Root|Signature|Tokens)|Session(?:Cookie(?:Name|Name2|Remove)|Crypto(?:Cipher|Driver|Passphrase|PassphraseFile)|DBD(?:CookieName|CookieName2|CookieRemove|DeleteLabel|InsertLabel|PerUser|SelectLabel|UpdateLabel)|Env|Exclude|Header|Include|MaxAge)?|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadStackSize|ThreadsPerChild|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|Virtual(?:DocumentRoot|ScriptAlias)(?:IP)?|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\b/im,
		lookbehind: !0,
		alias: "property"
	},
	"directive-block": {
		pattern: /<\/?\b(?:Auth[nz]ProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|Require(?:All|Any|None)|VirtualHost)\b.*>/i,
		inside: {
			"directive-block": {
				pattern: /^<\/?\w+/,
				inside: {
					punctuation: /^<\/?/
				},
				alias: "tag"
			},
			"directive-block-parameter": {
				pattern: /.*[^>]/,
				inside: {
					punctuation: /:/,
					string: {
						pattern: /("|').*\1/,
						inside: {
							variable: /[$%]\{?(?:\w\.?[-+:]?)+\}?/
						}
					}
				},
				alias: "attr-value"
			},
			punctuation: />/
		},
		alias: "tag"
	},
	"directive-flags": {
		pattern: /\[(?:[\w=],?)+\]/,
		alias: "keyword"
	},
	string: {
		pattern: /("|').*\1/,
		inside: {
			variable: /[$%]\{?(?:\w\.?[-+:]?)+\}?/
		}
	},
	variable: /[$%]\{?(?:\w\.?[-+:]?)+\}?/,
	regex: /\^?.*\$|\^.*\$?/
};
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
	},
	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(?:_INSERT|COL)?|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(?:S|ING)?|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(?:TRUE|FALSE|NULL)\b/i,
	number: /\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,
	operator: /[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|IN|ILIKE|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,
	punctuation: /[;[\]()`,.]/
};
! function(e) {
	var t =
		/\b(?:abstract|activate|and|any|array|as|asc|autonomous|begin|bigdecimal|blob|boolean|break|bulk|by|byte|case|cast|catch|char|class|collect|commit|const|continue|currency|date|datetime|decimal|default|delete|desc|do|double|else|end|enum|exception|exit|export|extends|final|finally|float|for|from|global|goto|group|having|hint|if|implements|import|in|inner|insert|instanceof|int|integer|interface|into|join|like|limit|list|long|loop|map|merge|new|not|null|nulls|number|object|of|on|or|outer|override|package|parallel|pragma|private|protected|public|retrieve|return|rollback|select|set|short|sObject|sort|static|string|super|switch|synchronized|system|testmethod|then|this|throw|time|transaction|transient|trigger|try|undelete|update|upsert|using|virtual|void|webservice|when|where|while|get(?=\s*[{};])|(?:after|before)(?=\s+[a-z])|(?:inherited|with|without)\s+sharing)\b/i,
		n =
		"\\b(?:(?=[a-z_]\\w*\\s*[<\\[])|(?!<keyword>))[A-Z_]\\w*(?:\\s*\\.\\s*[A-Z_]\\w*)*\\b(?:\\s*(?:\\[\\s*\\]|<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>))*"
		.replace(/<keyword>/g, function() {
			return t.source
		});

	function i(e) {
		return RegExp(e.replace(/<CLASS-NAME>/g, function() {
			return n
		}), "i")
	}
	var a = {
		keyword: t,
		punctuation: /[()\[\]{};,:.<>]/
	};
	e.languages.apex = {
		comment: e.languages.clike.comment,
		string: e.languages.clike.string,
		sql: {
			pattern: /((?:[=,({:]|\breturn)\s*)\[[^\[\]]*\]/i,
			lookbehind: !0,
			greedy: !0,
			alias: "language-sql",
			inside: e.languages.sql
		},
		annotation: {
			pattern: /@\w+\b/,
			alias: "punctuation"
		},
		"class-name": [{
			pattern: i(
				"(\\b(?:class|enum|extends|implements|instanceof|interface|new|trigger\\s+\\w+\\s+on)\\s+)<CLASS-NAME>"),
			lookbehind: !0,
			inside: a
		}, {
			pattern: i("(\\(\\s*)<CLASS-NAME>(?=\\s*\\)\\s*[\\w(])"),
			lookbehind: !0,
			inside: a
		}, {
			pattern: i("<CLASS-NAME>(?=\\s*\\w+\\s*[;=,(){:])"),
			inside: a
		}],
		trigger: {
			pattern: /(\btrigger\s+)\w+\b/i,
			lookbehind: !0,
			alias: "class-name"
		},
		keyword: t,
		function: /\b[a-z_]\w*(?=\s*\()/i,
		boolean: /\b(?:false|true)\b/i,
		number: /(?:\B\.\d+|\b\d+(?:\.\d+|L)?)\b/i,
		operator: /[!=](?:==?)?|\?\.?|&&|\|\||--|\+\+|[-+*/^&|]=?|:|<<?=?|>{1,3}=?/,
		punctuation: /[()\[\]{};,.]/
	}
}(Prism);
Prism.languages.apl = {
	comment: /(?:⍝|#[! ]).*$/m,
	string: {
		pattern: /'(?:[^'\r\n]|'')*'/,
		greedy: !0
	},
	number: /¯?(?:\d*\.?\b\d+(?:e[+¯]?\d+)?|¯|∞)(?:j¯?(?:(?:\d+(?:\.\d+)?|\.\d+)(?:e[+¯]?\d+)?|¯|∞))?/i,
	statement: /:[A-Z][a-z][A-Za-z]*\b/,
	"system-function": {
		pattern: /⎕[A-Z]+/i,
		alias: "function"
	},
	constant: /[⍬⌾#⎕⍞]/,
	function: /[-+×÷⌈⌊∣|⍳⍸?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⊆⊇⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⍯↗¤→]/,
	"monadic-operator": {
		pattern: /[\\\/⌿⍀¨⍨⌶&∥]/,
		alias: "operator"
	},
	"dyadic-operator": {
		pattern: /[.⍣⍠⍤∘⌸@⌺⍥]/,
		alias: "operator"
	},
	assignment: {
		pattern: /←/,
		alias: "keyword"
	},
	punctuation: /[\[;\]()◇⋄]/,
	dfn: {
		pattern: /[{}⍺⍵⍶⍹∇⍫:]/,
		alias: "builtin"
	}
};
Prism.languages.applescript = {
	comment: [/\(\*(?:\(\*(?:[^*]|\*(?!\)))*\*\)|(?!\(\*)[\s\S])*?\*\)/, /--.+/, /#.+/],
	string: /"(?:\\.|[^"\\\r\n])*"/,
	number: /(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e-?\d+)?\b/i,
	operator: [/[&=≠≤≥*+\-\/÷^]|[<>]=?/,
		/\b(?:(?:start|begin|end)s? with|(?:(?:does not|doesn't) contain|contains?)|(?:is|isn't|is not) (?:in|contained by)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:(?:does not|doesn't) come|comes) (?:before|after)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equals|equal to|isn't|is not)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|or|div|mod|as|not))\b/
	],
	keyword: /\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\b/,
	class: {
		pattern:
			/\b(?:alias|application|boolean|class|constant|date|file|integer|list|number|POSIX file|real|record|reference|RGB color|script|text|centimetres|centimeters|feet|inches|kilometres|kilometers|metres|meters|miles|yards|square feet|square kilometres|square kilometers|square metres|square meters|square miles|square yards|cubic centimetres|cubic centimeters|cubic feet|cubic inches|cubic metres|cubic meters|cubic yards|gallons|litres|liters|quarts|grams|kilograms|ounces|pounds|degrees Celsius|degrees Fahrenheit|degrees Kelvin)\b/,
			alias: "builtin"
	},
	punctuation: /[{}():,¬«»《》]/
};
Prism.languages.aql = {
	comment: /\/\/.*|\/\*[\s\S]*?\*\//,
	property: {
		pattern: /([{,]\s*)(?:(?!\d)\w+|(["'´`])(?:(?!\2)[^\\\r\n]|\\.)*\2)(?=\s*:)/,
		lookbehind: !0,
		greedy: !0
	},
	string: {
		pattern: /(["'´`])(?:(?!\1)[^\\\r\n]|\\.)*\1/,
		greedy: !0
	},
	variable: /@@?\w+/,
	keyword: [{
			pattern: /(\bWITH\s+)COUNT(?=\s+INTO\b)/i,
			lookbehind: !0
		},
		/\b(?:AGGREGATE|ALL|AND|ANY|ASC|COLLECT|DESC|DISTINCT|FILTER|FOR|GRAPH|IN|INBOUND|INSERT|INTO|K_SHORTEST_PATHS|LET|LIKE|LIMIT|NONE|NOT|NULL|OR|OUTBOUND|REMOVE|REPLACE|RETURN|SHORTEST_PATH|SORT|UPDATE|UPSERT|WITH)\b/i,
		{
			pattern: /(^|[^\w.[])(?:KEEP|PRUNE|SEARCH|TO)\b/i,
			lookbehind: !0
		}, {
			pattern: /(^|[^\w.[])(?:CURRENT|NEW|OLD)\b/,
			lookbehind: !0
		}, {
			pattern: /\bOPTIONS(?=\s*{)/i
		}
	],
	function: /(?!\d)\w+(?=\s*\()/,
	boolean: /(?:true|false)/i,
	range: {
		pattern: /\.\./,
		alias: "operator"
	},
	number: /(?:\B\.\d+|\b(?:0|[1-9]\d*)(?:\.\d+)?)(?:e[+-]?\d+)?/i,
	operator: /\*{2,}|[=!]~|[!=<>]=?|&&|\|\||[-+*/%]/,
	punctuation: /::|[?.:,;()[\]{}]/
};
Prism.languages.c = Prism.languages.extend("clike", {
	comment: {
		pattern: /\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,
		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(?:__attribute__|_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\b/,
	function: /[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", {
	macro: {
		pattern: /(^\s*)#\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],
			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
			}
		}
	},
	constant: /\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\b/
}), delete Prism.languages.c.boolean;
! function(e) {
	var t =
		/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char8_t|char16_t|char32_t|class|compl|concept|const|consteval|constexpr|constinit|const_cast|continue|co_await|co_return|co_yield|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_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|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,
		n = "\\b(?!<keyword>)\\w+(?:\\s*\\.\\s*\\w+)*\\b".replace(/<keyword>/g, function() {
			return t.source
		});
	e.languages.cpp = e.languages.extend("c", {
		"class-name": [{
				pattern: RegExp("(\\b(?:class|concept|enum|struct|typename)\\s+)(?!<keyword>)\\w+".replace(/<keyword>/g,
					function() {
						return t.source
					})),
				lookbehind: !0
			}, /\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/, /\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,
			/\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/
		],
		keyword: t,
		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: />>=?|<<=?|->|([-+&|:])\1|[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,
		boolean: /\b(?:true|false)\b/
	}), e.languages.insertBefore("cpp", "string", {
		module: {
			pattern: RegExp('(\\b(?:module|import)\\s+)(?:"(?:\\\\(?:\r\n|[^])|[^"\\\\\r\n])*"|<[^<>\r\n]*>|' +
				"<mod-name>(?:\\s*:\\s*<mod-name>)?|:\\s*<mod-name>".replace(/<mod-name>/g, function() {
					return n
				}) + ")"),
			lookbehind: !0,
			greedy: !0,
			inside: {
				string: /^[<"][\s\S]+/,
				operator: /:/,
				punctuation: /\./
			}
		},
		"raw-string": {
			pattern: /R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,
			alias: "string",
			greedy: !0
		}
	}), e.languages.insertBefore("cpp", "class-name", {
		"base-clause": {
			pattern: /(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,
			lookbehind: !0,
			greedy: !0,
			inside: e.languages.extend("cpp", {})
		}
	}), e.languages.insertBefore("inside", "operator", {
		"class-name": /\b[a-z_]\w*\b(?!\s*::)/i
	}, e.languages.cpp["base-clause"])
}(Prism);
Prism.languages.arduino = Prism.languages.extend("cpp", {
	constant: /\b(?:DIGITAL_MESSAGE|FIRMATA_STRING|ANALOG_MESSAGE|REPORT_DIGITAL|REPORT_ANALOG|INPUT_PULLUP|SET_PIN_MODE|INTERNAL2V56|SYSTEM_RESET|LED_BUILTIN|INTERNAL1V1|SYSEX_START|INTERNAL|EXTERNAL|DEFAULT|OUTPUT|INPUT|HIGH|LOW)\b/,
	keyword: /\b(?:setup|if|else|while|do|for|return|in|instanceof|default|function|loop|goto|switch|case|new|try|throw|catch|finally|null|break|continue|boolean|bool|void|byte|word|string|String|array|int|long|integer|double)\b/,
	builtin: /\b(?:KeyboardController|MouseController|SoftwareSerial|EthernetServer|EthernetClient|LiquidCrystal|LiquidCrystal_I2C|RobotControl|GSMVoiceCall|EthernetUDP|EsploraTFT|HttpClient|RobotMotor|WiFiClient|GSMScanner|FileSystem|Scheduler|GSMServer|YunClient|YunServer|IPAddress|GSMClient|GSMModem|Keyboard|Ethernet|Console|GSMBand|Esplora|Stepper|Process|WiFiUDP|GSM_SMS|Mailbox|USBHost|Firmata|PImage|Client|Server|GSMPIN|FileIO|Bridge|Serial|EEPROM|Stream|Mouse|Audio|Servo|File|Task|GPRS|WiFi|Wire|TFT|GSM|SPI|SD|runShellCommandAsynchronously|analogWriteResolution|retrieveCallingNumber|printFirmwareVersion|analogReadResolution|sendDigitalPortPair|noListenOnLocalhost|readJoystickButton|setFirmwareVersion|readJoystickSwitch|scrollDisplayRight|getVoiceCallStatus|scrollDisplayLeft|writeMicroseconds|delayMicroseconds|beginTransmission|getSignalStrength|runAsynchronously|getAsynchronously|listenOnLocalhost|getCurrentCarrier|readAccelerometer|messageAvailable|sendDigitalPorts|lineFollowConfig|countryNameWrite|runShellCommand|readStringUntil|rewindDirectory|readTemperature|setClockDivider|readLightSensor|endTransmission|analogReference|detachInterrupt|countryNameRead|attachInterrupt|encryptionType|readBytesUntil|robotNameWrite|readMicrophone|robotNameRead|cityNameWrite|userNameWrite|readJoystickY|readJoystickX|mouseReleased|openNextFile|scanNetworks|noInterrupts|digitalWrite|beginSpeaker|mousePressed|isActionDone|mouseDragged|displayLogos|noAutoscroll|addParameter|remoteNumber|getModifiers|keyboardRead|userNameRead|waitContinue|processInput|parseCommand|printVersion|readNetworks|writeMessage|blinkVersion|cityNameRead|readMessage|setDataMode|parsePacket|isListening|setBitOrder|beginPacket|isDirectory|motorsWrite|drawCompass|digitalRead|clearScreen|serialEvent|rightToLeft|setTextSize|leftToRight|requestFrom|keyReleased|compassRead|analogWrite|interrupts|WiFiServer|disconnect|playMelody|parseFloat|autoscroll|getPINUsed|setPINUsed|setTimeout|sendAnalog|readSlider|analogRead|beginWrite|createChar|motorsStop|keyPressed|tempoWrite|readButton|subnetMask|debugPrint|macAddress|writeGreen|randomSeed|attachGPRS|readString|sendString|remotePort|releaseAll|mouseMoved|background|getXChange|getYChange|answerCall|getResult|voiceCall|endPacket|constrain|getSocket|writeJSON|getButton|available|connected|findUntil|readBytes|exitValue|readGreen|writeBlue|startLoop|isPressed|sendSysex|pauseMode|gatewayIP|setCursor|getOemKey|tuneWrite|noDisplay|loadImage|switchPIN|onRequest|onReceive|changePIN|playFile|noBuffer|parseInt|overflow|checkPIN|knobRead|beginTFT|bitClear|updateIR|bitWrite|position|writeRGB|highByte|writeRed|setSpeed|readBlue|noStroke|remoteIP|transfer|shutdown|hangCall|beginSMS|endWrite|attached|maintain|noCursor|checkReg|checkPUK|shiftOut|isValid|shiftIn|pulseIn|connect|println|localIP|pinMode|getIMEI|display|noBlink|process|getBand|running|beginSD|drawBMP|lowByte|setBand|release|bitRead|prepare|pointTo|readRed|setMode|noFill|remove|listen|stroke|detach|attach|noTone|exists|buffer|height|bitSet|circle|config|cursor|random|IRread|setDNS|endSMS|getKey|micros|millis|begin|print|write|ready|flush|width|isPIN|blink|clear|press|mkdir|rmdir|close|point|yield|image|BSSID|click|delay|read|text|move|peek|beep|rect|line|open|seek|fill|size|turn|stop|home|find|step|tone|sqrt|RSSI|SSID|end|bit|tan|cos|sin|pow|map|abs|max|min|get|run|put)\b/
});
Prism.languages.arff = {
	comment: /%.*/,
	string: {
		pattern: /(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,
		greedy: !0
	},
	keyword: /@(?:attribute|data|end|relation)\b/i,
	number: /\b\d+(?:\.\d+)?\b/,
	punctuation: /[{},]/
};
! function(t) {
	var n = {
			pattern: /(^[ \t]*)\[(?!\[)(?:(["'$`])(?:(?!\2)[^\\]|\\.)*\2|\[(?:[^\[\]\\]|\\.)*\]|[^\[\]\\"'$`]|\\.)*\]/m,
			lookbehind: !0,
			inside: {
				quoted: {
					pattern: /([$`])(?:(?!\1)[^\\]|\\.)*\1/,
					inside: {
						punctuation: /^[$`]|[$`]$/
					}
				},
				interpreted: {
					pattern: /'(?:[^'\\]|\\.)*'/,
					inside: {
						punctuation: /^'|'$/
					}
				},
				string: /"(?:[^"\\]|\\.)*"/,
				variable: /\w+(?==)/,
				punctuation: /^\[|\]$|,/,
				operator: /=/,
				"attr-value": /(?!^\s+$).+/
			}
		},
		a = t.languages.asciidoc = {
			"comment-block": {
				pattern: /^(\/{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1/m,
				alias: "comment"
			},
			table: {
				pattern: /^\|={3,}(?:(?:\r?\n|\r(?!\n)).*)*?(?:\r?\n|\r)\|={3,}$/m,
				inside: {
					specifiers: {
						pattern: /(?!\|)(?:(?:(?:\d+(?:\.\d+)?|\.\d+)[+*])?(?:[<^>](?:\.[<^>])?|\.[<^>])?[a-z]*)(?=\|)/,
						alias: "attr-value"
					},
					punctuation: {
						pattern: /(^|[^\\])[|!]=*/,
						lookbehind: !0
					}
				}
			},
			"passthrough-block": {
				pattern: /^(\+{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,
				inside: {
					punctuation: /^\++|\++$/
				}
			},
			"literal-block": {
				pattern: /^(-{4,}|\.{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,
				inside: {
					punctuation: /^(?:-+|\.+)|(?:-+|\.+)$/
				}
			},
			"other-block": {
				pattern: /^(--|\*{4,}|_{4,}|={4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,
				inside: {
					punctuation: /^(?:-+|\*+|_+|=+)|(?:-+|\*+|_+|=+)$/
				}
			},
			"list-punctuation": {
				pattern: /(^[ \t]*)(?:-|\*{1,5}|\.{1,5}|(?:[a-z]|\d+)\.|[xvi]+\))(?= )/im,
				lookbehind: !0,
				alias: "punctuation"
			},
			"list-label": {
				pattern: /(^[ \t]*)[a-z\d].+(?::{2,4}|;;)(?=\s)/im,
				lookbehind: !0,
				alias: "symbol"
			},
			"indented-block": {
				pattern: /((\r?\n|\r)\2)([ \t]+)\S.*(?:(?:\r?\n|\r)\3.+)*(?=\2{2}|$)/,
				lookbehind: !0
			},
			comment: /^\/\/.*/m,
			title: {
				pattern: /^.+(?:\r?\n|\r)(?:={3,}|-{3,}|~{3,}|\^{3,}|\+{3,})$|^={1,5} .+|^\.(?![\s.]).*/m,
				alias: "important",
				inside: {
					punctuation: /^(?:\.|=+)|(?:=+|-+|~+|\^+|\++)$/
				}
			},
			"attribute-entry": {
				pattern: /^:[^:\r\n]+:(?: .*?(?: \+(?:\r?\n|\r).*?)*)?$/m,
				alias: "tag"
			},
			attributes: n,
			hr: {
				pattern: /^'{3,}$/m,
				alias: "punctuation"
			},
			"page-break": {
				pattern: /^<{3,}$/m,
				alias: "punctuation"
			},
			admonition: {
				pattern: /^(?:TIP|NOTE|IMPORTANT|WARNING|CAUTION):/m,
				alias: "keyword"
			},
			callout: [{
				pattern: /(^[ \t]*)<?\d*>/m,
				lookbehind: !0,
				alias: "symbol"
			}, {
				pattern: /<\d+>/,
				alias: "symbol"
			}],
			macro: {
				pattern: /\b[a-z\d][a-z\d-]*::?(?:[^\s\[\]]*\[(?:[^\]\\"']|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/,
				inside: {
					function: /^[a-z\d-]+(?=:)/,
					punctuation: /^::?/,
					attributes: {
						pattern: /(?:\[(?:[^\]\\"]|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/,
						inside: n.inside
					}
				}
			},
			inline: {
				pattern: /(^|[^\\])(?:(?:\B\[(?:[^\]\\"]|(["'])(?:(?!\2)[^\\]|\\.)*\2|\\.)*\])?(?:\b_(?!\s)(?: _|[^_\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: _|[^_\\\r\n]|\\.)+)*_\b|\B``(?!\s).+?(?:(?:\r?\n|\r).+?)*''\B|\B`(?!\s)(?:[^`'\s]|\s+\S)+['`]\B|\B(['*+#])(?!\s)(?: \3|(?!\3)[^\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: \3|(?!\3)[^\\\r\n]|\\.)+)*\3\B)|(?:\[(?:[^\]\\"]|(["'])(?:(?!\4)[^\\]|\\.)*\4|\\.)*\])?(?:(__|\*\*|\+\+\+?|##|\$\$|[~^]).+?(?:(?:\r?\n|\r).+?)*\5|\{[^}\r\n]+\}|\[\[\[?.+?(?:(?:\r?\n|\r).+?)*\]?\]\]|<<.+?(?:(?:\r?\n|\r).+?)*>>|\(\(\(?.+?(?:(?:\r?\n|\r).+?)*\)?\)\)))/m,
				lookbehind: !0,
				inside: {
					attributes: n,
					url: {
						pattern: /^(?:\[\[\[?.+?\]?\]\]|<<.+?>>)$/,
						inside: {
							punctuation: /^(?:\[\[\[?|<<)|(?:\]\]\]?|>>)$/
						}
					},
					"attribute-ref": {
						pattern: /^\{.+\}$/,
						inside: {
							variable: {
								pattern: /(^\{)[a-z\d,+_-]+/,
								lookbehind: !0
							},
							operator: /^[=?!#%@$]|!(?=[:}])/,
							punctuation: /^\{|\}$|::?/
						}
					},
					italic: {
						pattern: /^(['_])[\s\S]+\1$/,
						inside: {
							punctuation: /^(?:''?|__?)|(?:''?|__?)$/
						}
					},
					bold: {
						pattern: /^\*[\s\S]+\*$/,
						inside: {
							punctuation: /^\*\*?|\*\*?$/
						}
					},
					punctuation: /^(?:``?|\+{1,3}|##?|\$\$|[~^]|\(\(\(?)|(?:''?|\+{1,3}|##?|\$\$|[~^`]|\)?\)\))$/
				}
			},
			replacement: {
				pattern: /\((?:C|TM|R)\)/,
				alias: "builtin"
			},
			entity: /&#?[\da-z]{1,8};/i,
			"line-continuation": {
				pattern: /(^| )\+$/m,
				lookbehind: !0,
				alias: "punctuation"
			}
		};

	function i(t) {
		for (var n = {}, i = 0, e = (t = t.split(" ")).length; i < e; i++) n[t[i]] = a[t[i]];
		return n
	}
	n.inside.interpreted.inside.rest = i("macro inline replacement entity"), a["passthrough-block"].inside.rest = i(
		"macro"), a["literal-block"].inside.rest = i("callout"), a.table.inside.rest = i(
		"comment-block passthrough-block literal-block other-block list-punctuation indented-block comment title attribute-entry attributes hr page-break admonition list-label callout macro inline replacement entity line-continuation"
	), a["other-block"].inside.rest = i(
		"table list-punctuation indented-block comment attribute-entry attributes hr page-break admonition list-label macro inline replacement entity line-continuation"
	), a.title.inside.rest = i("macro inline replacement entity"), t.hooks.add("wrap", function(t) {
		"entity" === t.type && (t.attributes.title = t.content.replace(/&amp;/, "&"))
	}), t.languages.adoc = t.languages.asciidoc
}(Prism);
! function(s) {
	function a(e, s) {
		return e.replace(/<<(\d+)>>/g, function(e, n) {
			return "(?:" + s[+n] + ")"
		})
	}

	function t(e, n, s) {
		return RegExp(a(e, n), s || "")
	}

	function e(e, n) {
		for (var s = 0; s < n; s++) e = e.replace(/<<self>>/g, function() {
			return "(?:" + e + ")"
		});
		return e.replace(/<<self>>/g, "[^\\s\\S]")
	}
	var n = "bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",
		i = "class enum interface struct",
		r =
		"add alias and ascending async await by descending from get global group into join let nameof not notnull on or orderby partial remove select set unmanaged value when where",
		o =
		"abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield";

	function l(e) {
		return "\\b(?:" + e.trim().replace(/ /g, "|") + ")\\b"
	}
	var d = l(i),
		p = RegExp(l(n + " " + i + " " + r + " " + o)),
		c = l(i + " " + r + " " + o),
		u = l(n + " " + i + " " + o),
		g = e("<(?:[^<>;=+\\-*/%&|^]|<<self>>)*>", 2),
		b = e("\\((?:[^()]|<<self>>)*\\)", 2),
		h = "@?\\b[A-Za-z_]\\w*\\b",
		f = a("<<0>>(?:\\s*<<1>>)?", [h, g]),
		m = a("(?!<<0>>)<<1>>(?:\\s*\\.\\s*<<1>>)*", [c, f]),
		k = "\\[\\s*(?:,\\s*)*\\]",
		y = a("<<0>>(?:\\s*(?:\\?\\s*)?<<1>>)*(?:\\s*\\?)?", [m, k]),
		w = a("(?:<<0>>|<<1>>)(?:\\s*(?:\\?\\s*)?<<2>>)*(?:\\s*\\?)?", [a("\\(<<0>>+(?:,<<0>>+)+\\)", [a(
			"[^,()<>[\\];=+\\-*/%&|^]|<<0>>|<<1>>|<<2>>", [g, b, k])]), m, k]),
		v = {
			keyword: p,
			punctuation: /[<>()?,.:[\]]/
		},
		x = "'(?:[^\r\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'",
		$ = '"(?:\\\\.|[^\\\\"\r\n])*"';
	s.languages.csharp = s.languages.extend("clike", {
		string: [{
			pattern: t("(^|[^$\\\\])<<0>>", ['@"(?:""|\\\\[^]|[^\\\\"])*"(?!")']),
			lookbehind: !0,
			greedy: !0
		}, {
			pattern: t("(^|[^@$\\\\])<<0>>", [$]),
			lookbehind: !0,
			greedy: !0
		}, {
			pattern: RegExp(x),
			greedy: !0,
			alias: "character"
		}],
		"class-name": [{
			pattern: t("(\\busing\\s+static\\s+)<<0>>(?=\\s*;)", [m]),
			lookbehind: !0,
			inside: v
		}, {
			pattern: t("(\\busing\\s+<<0>>\\s*=\\s*)<<1>>(?=\\s*;)", [h, w]),
			lookbehind: !0,
			inside: v
		}, {
			pattern: t("(\\busing\\s+)<<0>>(?=\\s*=)", [h]),
			lookbehind: !0
		}, {
			pattern: t("(\\b<<0>>\\s+)<<1>>", [d, f]),
			lookbehind: !0,
			inside: v
		}, {
			pattern: t("(\\bcatch\\s*\\(\\s*)<<0>>", [m]),
			lookbehind: !0,
			inside: v
		}, {
			pattern: t("(\\bwhere\\s+)<<0>>", [h]),
			lookbehind: !0
		}, {
			pattern: t("(\\b(?:is(?:\\s+not)?|as)\\s+)<<0>>", [y]),
			lookbehind: !0,
			inside: v
		}, {
			pattern: t("\\b<<0>>(?=\\s+(?!<<1>>)<<2>>(?:\\s*[=,;:{)\\]]|\\s+(?:in|when)\\b))", [w, u, h]),
			inside: v
		}],
		keyword: p,
		number: /(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:ul|lu|[dflmu])?\b/i,
		operator: />>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,
		punctuation: /\?\.?|::|[{}[\];(),.:]/
	}), s.languages.insertBefore("csharp", "number", {
		range: {
			pattern: /\.\./,
			alias: "operator"
		}
	}), s.languages.insertBefore("csharp", "punctuation", {
		"named-parameter": {
			pattern: t("([(,]\\s*)<<0>>(?=\\s*:)", [h]),
			lookbehind: !0,
			alias: "punctuation"
		}
	}), s.languages.insertBefore("csharp", "class-name", {
		namespace: {
			pattern: t("(\\b(?:namespace|using)\\s+)<<0>>(?:\\s*\\.\\s*<<0>>)*(?=\\s*[;{])", [h]),
			lookbehind: !0,
			inside: {
				punctuation: /\./
			}
		},
		"type-expression": {
			pattern: t("(\\b(?:default|typeof|sizeof)\\s*\\(\\s*(?!\\s))(?:[^()\\s]|\\s(?!\\s)|<<0>>)*(?=\\s*\\))", [b]),
			lookbehind: !0,
			alias: "class-name",
			inside: v
		},
		"return-type": {
			pattern: t("<<0>>(?=\\s+(?:<<1>>\\s*(?:=>|[({]|\\.\\s*this\\s*\\[)|this\\s*\\[))", [w, m]),
			inside: v,
			alias: "class-name"
		},
		"constructor-invocation": {
			pattern: t("(\\bnew\\s+)<<0>>(?=\\s*[[({])", [w]),
			lookbehind: !0,
			inside: v,
			alias: "class-name"
		},
		"generic-method": {
			pattern: t("<<0>>\\s*<<1>>(?=\\s*\\()", [h, g]),
			inside: {
				function: t("^<<0>>", [h]),
				generic: {
					pattern: RegExp(g),
					alias: "class-name",
					inside: v
				}
			}
		},
		"type-list": {
			pattern: t(
				"\\b((?:<<0>>\\s+<<1>>|where\\s+<<2>>)\\s*:\\s*)(?:<<3>>|<<4>>)(?:\\s*,\\s*(?:<<3>>|<<4>>))*(?=\\s*(?:where|[{;]|=>|$))",
				[d, f, h, w, p.source]),
			lookbehind: !0,
			inside: {
				keyword: p,
				"class-name": {
					pattern: RegExp(w),
					greedy: !0,
					inside: v
				},
				punctuation: /,/
			}
		},
		preprocessor: {
			pattern: /(^\s*)#.*/m,
			lookbehind: !0,
			alias: "property",
			inside: {
				directive: {
					pattern: /(\s*#)\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/,
					lookbehind: !0,
					alias: "keyword"
				}
			}
		}
	});
	var _ = $ + "|" + x,
		B = a("/(?![*/])|//[^\r\n]*[\r\n]|/\\*(?:[^*]|\\*(?!/))*\\*/|<<0>>", [_]),
		E = e(a("[^\"'/()]|<<0>>|\\(<<self>>*\\)", [B]), 2),
		R = "\\b(?:assembly|event|field|method|module|param|property|return|type)\\b",
		P = a("<<0>>(?:\\s*\\(<<1>>*\\))?", [m, E]);
	s.languages.insertBefore("csharp", "class-name", {
		attribute: {
			pattern: t("((?:^|[^\\s\\w>)?])\\s*\\[\\s*)(?:<<0>>\\s*:\\s*)?<<1>>(?:\\s*,\\s*<<1>>)*(?=\\s*\\])", [R, P]),
			lookbehind: !0,
			greedy: !0,
			inside: {
				target: {
					pattern: t("^<<0>>(?=\\s*:)", [R]),
					alias: "keyword"
				},
				"attribute-arguments": {
					pattern: t("\\(<<0>>*\\)", [E]),
					inside: s.languages.csharp
				},
				"class-name": {
					pattern: RegExp(m),
					inside: {
						punctuation: /\./
					}
				},
				punctuation: /[:,]/
			}
		}
	});
	var z = ":[^}\r\n]+",
		S = e(a("[^\"'/()]|<<0>>|\\(<<self>>*\\)", [B]), 2),
		j = a("\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}", [S, z]),
		A = e(a("[^\"'/()]|/(?!\\*)|/\\*(?:[^*]|\\*(?!/))*\\*/|<<0>>|\\(<<self>>*\\)", [_]), 2),
		F = a("\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}", [A, z]);

	function U(e, n) {
		return {
			interpolation: {
				pattern: t("((?:^|[^{])(?:\\{\\{)*)<<0>>", [e]),
				lookbehind: !0,
				inside: {
					"format-string": {
						pattern: t("(^\\{(?:(?![}:])<<0>>)*)<<1>>(?=\\}$)", [n, z]),
						lookbehind: !0,
						inside: {
							punctuation: /^:/
						}
					},
					punctuation: /^\{|\}$/,
					expression: {
						pattern: /[\s\S]+/,
						alias: "language-csharp",
						inside: s.languages.csharp
					}
				}
			},
			string: /[\s\S]+/
		}
	}
	s.languages.insertBefore("csharp", "string", {
		"interpolation-string": [{
			pattern: t('(^|[^\\\\])(?:\\$@|@\\$)"(?:""|\\\\[^]|\\{\\{|<<0>>|[^\\\\{"])*"', [j]),
			lookbehind: !0,
			greedy: !0,
			inside: U(j, S)
		}, {
			pattern: t('(^|[^@\\\\])\\$"(?:\\\\.|\\{\\{|<<0>>|[^\\\\"{])*"', [F]),
			lookbehind: !0,
			greedy: !0,
			inside: U(F, A)
		}]
	})
}(Prism), Prism.languages.dotnet = Prism.languages.cs = Prism.languages.csharp;
Prism.languages.aspnet = Prism.languages.extend("markup", {
		"page-directive": {
			pattern: /<%\s*@.*%>/i,
			alias: "tag",
			inside: {
				"page-directive": {
					pattern: /<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,
					alias: "tag"
				},
				rest: Prism.languages.markup.tag.inside
			}
		},
		directive: {
			pattern: /<%.*%>/i,
			alias: "tag",
			inside: {
				directive: {
					pattern: /<%\s*?[$=%#:]{0,2}|%>/i,
					alias: "tag"
				},
				rest: Prism.languages.csharp
			}
		}
	}), Prism.languages.aspnet.tag.pattern =
	/<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i, Prism.languages.insertBefore(
		"inside", "punctuation", {
			directive: Prism.languages.aspnet.directive
		}, Prism.languages.aspnet.tag.inside["attr-value"]), Prism.languages.insertBefore("aspnet", "comment", {
		"asp-comment": {
			pattern: /<%--[\s\S]*?--%>/,
			alias: ["asp", "comment"]
		}
	}), Prism.languages.insertBefore("aspnet", Prism.languages.javascript ? "script" : "tag", {
		"asp-script": {
			pattern: /(<script(?=.*runat=['"]?server['"]?)[^>]*>)[\s\S]*?(?=<\/script>)/i,
			lookbehind: !0,
			alias: ["asp", "script"],
			inside: Prism.languages.csharp || {}
		}
	});
Prism.languages.asm6502 = {
	comment: /;.*/,
	directive: {
		pattern: /\.\w+(?= )/,
		alias: "keyword"
	},
	string: /(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,
	opcode: {
		pattern: /\b(?:adc|and|asl|bcc|bcs|beq|bit|bmi|bne|bpl|brk|bvc|bvs|clc|cld|cli|clv|cmp|cpx|cpy|dec|dex|dey|eor|inc|inx|iny|jmp|jsr|lda|ldx|ldy|lsr|nop|ora|pha|php|pla|plp|rol|ror|rti|rts|sbc|sec|sed|sei|sta|stx|sty|tax|tay|tsx|txa|txs|tya|ADC|AND|ASL|BCC|BCS|BEQ|BIT|BMI|BNE|BPL|BRK|BVC|BVS|CLC|CLD|CLI|CLV|CMP|CPX|CPY|DEC|DEX|DEY|EOR|INC|INX|INY|JMP|JSR|LDA|LDX|LDY|LSR|NOP|ORA|PHA|PHP|PLA|PLP|ROL|ROR|RTI|RTS|SBC|SEC|SED|SEI|STA|STX|STY|TAX|TAY|TSX|TXA|TXS|TYA)\b/,
		alias: "property"
	},
	hexnumber: {
		pattern: /#?\$[\da-f]{2,4}\b/i,
		alias: "string"
	},
	binarynumber: {
		pattern: /#?%[01]+\b/,
		alias: "string"
	},
	decimalnumber: {
		pattern: /#?\b\d+\b/,
		alias: "string"
	},
	register: {
		pattern: /\b[xya]\b/i,
		alias: "variable"
	}
};
Prism.languages.autohotkey = {
	comment: [{
		pattern: /(^|\s);.*/,
		lookbehind: !0
	}, {
		pattern: /(^\s*)\/\*(?:[\r\n](?![ \t]*\*\/)|[^\r\n])*(?:[\r\n][ \t]*\*\/)?/m,
		lookbehind: !0,
		greedy: !0
	}],
	string: /"(?:[^"\n\r]|"")*"/m,
	tag: /^[ \t]*[^\s:]+?(?=:(?:[^:]|$))/m,
	variable: /%\w+%/,
	number: /\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,
	operator: /\?|\/\/?=?|:=|\|[=|]?|&[=&]?|\+[=+]?|-[=-]?|\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\b(?:AND|NOT|OR)\b/,
	boolean: /\b(?:true|false)\b/,
	selector: /\b(?:AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|FileGetAttrib|FileGetShortcut|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|GuiControlGet|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|SetBatchLines|SetCapslockState|SetControlDelay|SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|SetMouseDelay|SetNumlockState|SetRegView|SetScrollLockState|SetStoreCapslockMode|SetTimer|SetTitleMatchMode|SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|StringGetPos|StringLeft|StringLen|StringLower|StringMid|StringReplace|StringRight|StringSplit|StringTrimLeft|StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|Transform|TrayTip|URLDownloadToFile|WinActivate|WinActivateBottom|WinClose|WinGet|WinGetActiveStats|WinGetActiveTitle|WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinHide|WinKill|WinMaximize|WinMenuSelectItem|WinMinimize|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinRestore|WinSet|WinSetTitle|WinShow|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\b/i,
	constant: /\b(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_fileencoding|a_formatfloat|a_formatinteger|a_gui|a_guievent|a_guicontrol|a_guicontrolevent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_is64bitos|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|a_priorkey|programfiles|a_programfiles|a_programs|a_programscommon|a_ptrsize|a_regview|a_screendpi|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scripthwnd|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel)\b/i,
	builtin: /\b(?:abs|acos|asc|asin|atan|ceil|chr|class|comobjactive|comobjarray|comobjconnect|comobjcreate|comobjerror|comobjflags|comobjget|comobjquery|comobjtype|comobjvalue|cos|dllcall|exp|fileexist|Fileopen|floor|format|il_add|il_create|il_destroy|instr|substr|isfunc|islabel|IsObject|ln|log|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|ltrim|rtrim|mod|onmessage|numget|numput|registercallback|regexmatch|regexreplace|round|sin|tan|sqrt|strlen|strreplace|sb_seticon|sb_setparts|sb_settext|strsplit|tv_add|tv_delete|tv_getchild|tv_getcount|tv_getnext|tv_get|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist|__New|__Call|__Get|__Set)\b/i,
	symbol: /\b(?:alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\b/i,
	important: /#\b(?:AllowSameLineComments|ClipboardTimeout|CommentFlag|DerefChar|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|If|IfTimeout|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InputLevel|InstallKeybdHook|InstallMouseHook|KeyHistory|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|MenuMaskKey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|Warn|WinActivateForce)\b/i,
	keyword: /\b(?:Abort|AboveNormal|Add|ahk_class|ahk_exe|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Region|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|TryAgain|Throw|Try|Catch|Finally|Type|UnCheck|underline|Unicode|Unlock|Until|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\b/i,
	function: /[^(); \t,\n+*\-=?>:\\\/<&%\[\]]+?(?=\()/m,
	punctuation: /[{}[\]():,]/
};
Prism.languages.autoit = {
	comment: [/;.*/, {
		pattern: /(^\s*)#(?:comments-start|cs)[\s\S]*?^[ \t]*#(?:comments-end|ce)/m,
		lookbehind: !0
	}],
	url: {
		pattern: /(^\s*#include\s+)(?:<[^\r\n>]+>|"[^\r\n"]+")/m,
		lookbehind: !0
	},
	string: {
		pattern: /(["'])(?:\1\1|(?!\1)[^\r\n])*\1/,
		greedy: !0,
		inside: {
			variable: /([%$@])\w+\1/
		}
	},
	directive: {
		pattern: /(^\s*)#\w+/m,
		lookbehind: !0,
		alias: "keyword"
	},
	function: /\b\w+(?=\()/,
	variable: /[$@]\w+/,
	keyword: /\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\b/i,
	number: /\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,
	boolean: /\b(?:True|False)\b/i,
	operator: /<[=>]?|[-+*\/=&>]=?|[?^]|\b(?:And|Or|Not)\b/i,
	punctuation: /[\[\]().,:]/
};
! function(e) {
	var t =
		"\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",
		n = {
			pattern: /(^(["']?)\w+\2)[ \t]+\S.*/,
			lookbehind: !0,
			alias: "punctuation",
			inside: null
		},
		a = {
			bash: n,
			environment: {
				pattern: RegExp("\\$" + t),
				alias: "constant"
			},
			variable: [{
				pattern: /\$?\(\([\s\S]+?\)\)/,
				greedy: !0,
				inside: {
					variable: [{
						pattern: /(^\$\(\([\s\S]+)\)\)/,
						lookbehind: !0
					}, /^\$\(\(/],
					number: /\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,
					operator: /--?|-=|\+\+?|\+=|!=?|~|\*\*?|\*=|\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\^=?|\|\|?|\|=|\?|:/,
					punctuation: /\(\(?|\)\)?|,|;/
				}
			}, {
				pattern: /\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,
				greedy: !0,
				inside: {
					variable: /^\$\(|^`|\)$|`$/
				}
			}, {
				pattern: /\$\{[^}]+\}/,
				greedy: !0,
				inside: {
					operator: /:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,
					punctuation: /[\[\]]/,
					environment: {
						pattern: RegExp("(\\{)" + t),
						lookbehind: !0,
						alias: "constant"
					}
				}
			}, /\$(?:\w+|[#?*!@$])/],
			entity: /\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/
		};
	e.languages.bash = {
		shebang: {
			pattern: /^#!\s*\/.*/,
			alias: "important"
		},
		comment: {
			pattern: /(^|[^"{\\$])#.*/,
			lookbehind: !0
		},
		"function-name": [{
			pattern: /(\bfunction\s+)\w+(?=(?:\s*\(?:\s*\))?\s*\{)/,
			lookbehind: !0,
			alias: "function"
		}, {
			pattern: /\b\w+(?=\s*\(\s*\)\s*\{)/,
			alias: "function"
		}],
		"for-or-select": {
			pattern: /(\b(?:for|select)\s+)\w+(?=\s+in\s)/,
			alias: "variable",
			lookbehind: !0
		},
		"assign-left": {
			pattern: /(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,
			inside: {
				environment: {
					pattern: RegExp("(^|[\\s;|&]|[<>]\\()" + t),
					lookbehind: !0,
					alias: "constant"
				}
			},
			alias: "variable",
			lookbehind: !0
		},
		string: [{
			pattern: /((?:^|[^<])<<-?\s*)(\w+?)\s[\s\S]*?(?:\r?\n|\r)\2/,
			lookbehind: !0,
			greedy: !0,
			inside: a
		}, {
			pattern: /((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,
			lookbehind: !0,
			greedy: !0,
			inside: {
				bash: n
			}
		}, {
			pattern: /(^|[^\\](?:\\\\)*)(["'])(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|(?!\2)[^\\`$])*\2/,
			lookbehind: !0,
			greedy: !0,
			inside: a
		}],
		environment: {
			pattern: RegExp("\\$?" + t),
			alias: "constant"
		},
		variable: a.variable,
		function: {
			pattern: /(^|[\s;|&]|[<>]\()(?:add|apropos|apt|aptitude|apt-cache|apt-get|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,
			lookbehind: !0
		},
		keyword: {
			pattern: /(^|[\s;|&]|[<>]\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\s;|&])/,
			lookbehind: !0
		},
		builtin: {
			pattern: /(^|[\s;|&]|[<>]\()(?:\.|:|break|cd|continue|eval|exec|exit|export|getopts|hash|pwd|readonly|return|shift|test|times|trap|umask|unset|alias|bind|builtin|caller|command|declare|echo|enable|help|let|local|logout|mapfile|printf|read|readarray|source|type|typeset|ulimit|unalias|set|shopt)(?=$|[)\s;|&])/,
			lookbehind: !0,
			alias: "class-name"
		},
		boolean: {
			pattern: /(^|[\s;|&]|[<>]\()(?:true|false)(?=$|[)\s;|&])/,
			lookbehind: !0
		},
		"file-descriptor": {
			pattern: /\B&\d\b/,
			alias: "important"
		},
		operator: {
			pattern: /\d?<>|>\||\+=|==?|!=?|=~|<<[<-]?|[&\d]?>>|\d?[<>]&?|&[>&]?|\|[&|]?|<=?|>=?/,
			inside: {
				"file-descriptor": {
					pattern: /^\d/,
					alias: "important"
				}
			}
		},
		punctuation: /\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,
		number: {
			pattern: /(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,
			lookbehind: !0
		}
	}, n.inside = e.languages.bash;
	for (var s = ["comment", "function-name", "for-or-select", "assign-left", "string", "environment", "function",
			"keyword", "builtin", "boolean", "file-descriptor", "operator", "punctuation", "number"
		], i = a.variable[1].inside, o = 0; o < s.length; o++) i[s[o]] = e.languages.bash[s[o]];
	e.languages.shell = e.languages.bash
}(Prism);
Prism.languages.basic = {
	comment: {
		pattern: /(?:!|REM\b).+/i,
		inside: {
			keyword: /^REM/i
		}
	},
	string: {
		pattern: /"(?:""|[!#$%&'()*,\/:;<=>?^_ +\-.A-Z\d])*"/i,
		greedy: !0
	},
	number: /(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,
	keyword: /\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SHARED|SINGLE|SELECT CASE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\$|\b)/i,
	function: /\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\$|\b)/i,
	operator: /<[=>]?|>=?|[+\-*\/^=&]|\b(?:AND|EQV|IMP|NOT|OR|XOR)\b/i,
	punctuation: /[,;:()]/
};
! function(e) {
	var r = /%%?[~:\w]+%?|!\S+!/,
		t = {
			pattern: /\/[a-z?]+(?=[ :]|$):?|-[a-z]\b|--[a-z-]+\b/im,
			alias: "attr-name",
			inside: {
				punctuation: /:/
			}
		},
		n = /"(?:[\\"]"|[^"])*"(?!")/,
		i = /(?:\b|-)\d+\b/;
	Prism.languages.batch = {
		comment: [/^::.*/m, {
			pattern: /((?:^|[&(])[ \t]*)rem\b(?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,
			lookbehind: !0
		}],
		label: {
			pattern: /^:.*/m,
			alias: "property"
		},
		command: [{
			pattern: /((?:^|[&(])[ \t]*)for(?: \/[a-z?](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* \S+ in \([^)]+\) do/im,
			lookbehind: !0,
			inside: {
				keyword: /^for\b|\b(?:in|do)\b/i,
				string: n,
				parameter: t,
				variable: r,
				number: i,
				punctuation: /[()',]/
			}
		}, {
			pattern: /((?:^|[&(])[ \t]*)if(?: \/[a-z?](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* (?:not )?(?:cmdextversion \d+|defined \w+|errorlevel \d+|exist \S+|(?:"[^"]*"|(?!")(?:(?!==)\S)+)?(?:==| (?:equ|neq|lss|leq|gtr|geq) )(?:"[^"]*"|[^\s"]\S*))/im,
			lookbehind: !0,
			inside: {
				keyword: /^if\b|\b(?:not|cmdextversion|defined|errorlevel|exist)\b/i,
				string: n,
				parameter: t,
				variable: r,
				number: i,
				operator: /\^|==|\b(?:equ|neq|lss|leq|gtr|geq)\b/i
			}
		}, {
			pattern: /((?:^|[&()])[ \t]*)else\b/im,
			lookbehind: !0,
			inside: {
				keyword: /^else\b/i
			}
		}, {
			pattern: /((?:^|[&(])[ \t]*)set(?: \/[a-z](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* (?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,
			lookbehind: !0,
			inside: {
				keyword: /^set\b/i,
				string: n,
				parameter: t,
				variable: [r, /\w+(?=(?:[*\/%+\-&^|]|<<|>>)?=)/],
				number: i,
				operator: /[*\/%+\-&^|]=?|<<=?|>>=?|[!~_=]/,
				punctuation: /[()',]/
			}
		}, {
			pattern: /((?:^|[&(])[ \t]*@?)\w+\b(?:"(?:[\\"]"|[^"])*"(?!")|[^"^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,
			lookbehind: !0,
			inside: {
				keyword: /^\w+\b/i,
				string: n,
				parameter: t,
				label: {
					pattern: /(^\s*):\S+/m,
					lookbehind: !0,
					alias: "property"
				},
				variable: r,
				number: i,
				operator: /\^/
			}
		}],
		operator: /[&@]/,
		punctuation: /[()']/
	}
}();
Prism.languages.bbcode = {
	tag: {
		pattern: /\[\/?[^\s=\]]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+))?(?:\s+[^\s=\]]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+))*\s*\]/,
		inside: {
			tag: {
				pattern: /^\[\/?[^\s=\]]+/,
				inside: {
					punctuation: /^\[\/?/
				}
			},
			"attr-value": {
				pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+)/i,
				inside: {
					punctuation: [/^=/, {
						pattern: /^(\s*)["']|["']$/,
						lookbehind: !0
					}]
				}
			},
			punctuation: /\]/,
			"attr-name": /[^\s=\]]+/
		}
	}
}, Prism.languages.shortcode = Prism.languages.bbcode;
Prism.languages.birb = Prism.languages.extend("clike", {
	string: {
		pattern: /r?("|')(?:\\.|(?!\1)[^\\])*\1/,
		greedy: !0
	},
	"class-name": [/\b[A-Z](?:[\d_]*[a-zA-Z]\w*)?\b/, /\b[A-Z]\w*(?=\s+\w+\s*[;,=()])/],
	keyword: /\b(?:assert|break|case|class|const|default|else|enum|final|follows|for|grab|if|nest|next|new|noSeeb|return|static|switch|throw|var|void|while)\b/,
	operator: /\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?|:/,
	variable: /\b[a-z_]\w*\b/
}), Prism.languages.insertBefore("birb", "function", {
	metadata: {
		pattern: /<\w+>/,
		greedy: !0,
		alias: "symbol"
	}
});
Prism.languages.bison = Prism.languages.extend("c", {}), Prism.languages.insertBefore("bison", "comment", {
	bison: {
		pattern: /^(?:[^%]|%(?!%))*%%[\s\S]*?%%/,
		inside: {
			c: {
				pattern: /%\{[\s\S]*?%\}|\{(?:\{[^}]*\}|[^{}])*\}/,
				inside: {
					delimiter: {
						pattern: /^%?\{|%?\}$/,
						alias: "punctuation"
					},
					"bison-variable": {
						pattern: /[$@](?:<[^\s>]+>)?[\w$]+/,
						alias: "variable",
						inside: {
							punctuation: /<|>/
						}
					},
					rest: Prism.languages.c
				}
			},
			comment: Prism.languages.c.comment,
			string: Prism.languages.c.string,
			property: /\S+(?=:)/,
			keyword: /%\w+/,
			number: {
				pattern: /(^|[^@])\b(?:0x[\da-f]+|\d+)/i,
				lookbehind: !0
			},
			punctuation: /%[%?]|[|:;\[\]<>]/
		}
	}
});
Prism.languages.bnf = {
	string: {
		pattern: /"[^\r\n"]*"|'[^\r\n']*'/
	},
	definition: {
		pattern: /<[^<>\r\n\t]+>(?=\s*::=)/,
		alias: ["rule", "keyword"],
		inside: {
			punctuation: /^<|>$/
		}
	},
	rule: {
		pattern: /<[^<>\r\n\t]+>/,
		inside: {
			punctuation: /^<|>$/
		}
	},
	operator: /::=|[|()[\]{}*+?]|\.{3}/
}, Prism.languages.rbnf = Prism.languages.bnf;
Prism.languages.brainfuck = {
	pointer: {
		pattern: /<|>/,
		alias: "keyword"
	},
	increment: {
		pattern: /\+/,
		alias: "inserted"
	},
	decrement: {
		pattern: /-/,
		alias: "deleted"
	},
	branching: {
		pattern: /\[|\]/,
		alias: "important"
	},
	operator: /[.,]/,
	comment: /\S+/
};
Prism.languages.brightscript = {
	comment: /(?:\brem|').*/i,
	"directive-statement": {
		pattern: /(^[\t ]*)#(?:const|else(?:[\t ]+if)?|end[\t ]+if|error|if).*/im,
		lookbehind: !0,
		alias: "property",
		inside: {
			"error-message": {
				pattern: /(^#error).+/,
				lookbehind: !0
			},
			directive: {
				pattern: /^#(?:const|else(?:[\t ]+if)?|end[\t ]+if|error|if)/,
				alias: "keyword"
			},
			expression: {
				pattern: /[\s\S]+/,
				inside: null
			}
		}
	},
	property: {
		pattern: /([\r\n{,][\t ]*)(?:(?!\d)\w+|"(?:[^"\r\n]|"")*"(?!"))(?=[ \t]*:)/,
		lookbehind: !0,
		greedy: !0
	},
	string: {
		pattern: /"(?:[^"\r\n]|"")*"(?!")/,
		greedy: !0
	},
	"class-name": {
		pattern: /(\bAs[\t ]+)\w+/i,
		lookbehind: !0
	},
	keyword: /\b(?:As|Dim|Each|Else|Elseif|End|Exit|For|Function|Goto|If|In|Print|Return|Step|Stop|Sub|Then|To|While)\b/i,
	boolean: /\b(?:true|false)\b/i,
	function: /\b(?!\d)\w+(?=[\t ]*\()/i,
	number: /(?:\b\d+(?:\.\d+)?(?:[ed][+-]\d+)?|&h[a-f\d]+)\b[%&!#]?/i,
	operator: /--|\+\+|>>=?|<<=?|<>|[-+*/\\<>]=?|[:^=?]|\b(?:and|mod|not|or)\b/i,
	punctuation: /[.,;()[\]{}]/,
	constant: /\b(?:LINE_NUM)\b/i
}, Prism.languages.brightscript["directive-statement"].inside.expression.inside = Prism.languages.brightscript;
Prism.languages.bro = {
	comment: {
		pattern: /(^|[^\\$])#.*/,
		lookbehind: !0,
		inside: {
			italic: /\b(?:TODO|FIXME|XXX)\b/
		}
	},
	string: {
		pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
		greedy: !0
	},
	boolean: /\b[TF]\b/,
	function: {
		pattern: /(?:function|hook|event) \w+(?:::\w+)?/,
		inside: {
			keyword: /^(?:function|hook|event)/
		}
	},
	variable: {
		pattern: /(?:global|local) \w+/i,
		inside: {
			keyword: /(?:global|local)/
		}
	},
	builtin: /(?:@(?:load(?:-(?:sigs|plugin))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:redef|priority|log|optional|default|add_func|delete_func|expire_func|read_expire|write_expire|create_expire|synchronized|persistent|rotate_interval|rotate_size|encrypt|raw_output|mergeable|group|error_handler|type_column))/,
	constant: {
		pattern: /const \w+/i,
		inside: {
			keyword: /const/
		}
	},
	keyword: /\b(?:break|next|continue|alarm|using|of|add|delete|export|print|return|schedule|when|timeout|addr|any|bool|count|double|enum|file|int|interval|pattern|opaque|port|record|set|string|subnet|table|time|vector|for|if|else|in|module|function)\b/,
	operator: /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&|\|\|?|\?|\*|\/|~|\^|%/,
	number: /\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,
	punctuation: /[{}[\];(),.:]/
};
Prism.languages.bsl = {
	comment: /\/\/.*/,
	string: [{
		pattern: /"(?:[^"]|"")*"(?!")/,
		greedy: !0
	}, {
		pattern: /'(?:[^'\r\n\\]|\\.)*'/
	}],
	keyword: [{
		pattern: /(^|[^\w\u0400-\u0484\u0487-\u052f\u1c80-\u1c88\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:пока|для|новый|прервать|попытка|исключение|вызватьисключение|иначе|конецпопытки|неопределено|функция|перем|возврат|конецфункции|если|иначеесли|процедура|конецпроцедуры|тогда|знач|экспорт|конецесли|из|каждого|истина|ложь|по|цикл|конеццикла|выполнить)(?![\w\u0400-\u0484\u0487-\u052f\u1c80-\u1c88\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])/i,
		lookbehind: !0
	}, {
		pattern: /\b(?:while|for|new|break|try|except|raise|else|endtry|undefined|function|var|return|endfunction|null|if|elseif|procedure|endprocedure|then|val|export|endif|in|each|true|false|to|do|enddo|execute)\b/i
	}],
	number: {
		pattern: /(^(?=\d)|[^\w\u0400-\u0484\u0487-\u052f\u1c80-\u1c88\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:\d+(?:\.\d*)?|\.\d+)(?:E[+-]?\d+)?/i,
		lookbehind: !0
	},
	operator: [/[<>+\-*/]=?|[%=]/, {
		pattern: /(^|[^\w\u0400-\u0484\u0487-\u052f\u1c80-\u1c88\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:и|или|не)(?![\w\u0400-\u0484\u0487-\u052f\u1c80-\u1c88\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])/i,
		lookbehind: !0
	}, {
		pattern: /\b(?:and|or|not)\b/i
	}],
	punctuation: /\(\.|\.\)|[()\[\]:;,.]/,
	directive: [{
		pattern: /^(\s*)&.*/m,
		lookbehind: !0,
		alias: "important"
	}, {
		pattern: /^\s*#.*/gm,
		alias: "important"
	}]
}, Prism.languages.oscript = Prism.languages.bsl;
Prism.languages.cfscript = Prism.languages.extend("clike", {
	comment: [{
		pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,
		lookbehind: !0,
		inside: {
			annotation: {
				pattern: /(?:^|[^.])@[\w\.]+/,
				alias: "punctuation"
			}
		}
	}, {
		pattern: /(^|[^\\:])\/\/.*/,
		lookbehind: !0,
		greedy: !0
	}],
	keyword: /\b(?:abstract|break|catch|component|continue|default|do|else|extends|final|finally|for|function|if|in|include|package|private|property|public|remote|required|rethrow|return|static|switch|throw|try|var|while|xml)\b(?!\s*\=)/,
	operator: [/\+\+|--|&&|\|\||::|=>|[!=]==|<=?|>=?|[-+*/%&|^!=<>]=?|\?(?:\.|:)?|[?:]/,
		/\b(?:and|contains|eq|equal|eqv|gt|gte|imp|is|lt|lte|mod|not|or|xor)\b/
	],
	scope: {
		pattern: /\b(?:application|arguments|cgi|client|cookie|local|session|super|this|variables)\b/,
		alias: "global"
	},
	type: {
		pattern: /\b(?:any|array|binary|boolean|date|guid|numeric|query|string|struct|uuid|void|xml)\b/,
		alias: "builtin"
	}
}), Prism.languages.insertBefore("cfscript", "keyword", {
	"function-variable": {
		pattern: /[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,
		alias: "function"
	}
}), delete Prism.languages.cfscript["class-name"], Prism.languages.cfc = Prism.languages.cfscript;
Prism.languages.chaiscript = Prism.languages.extend("clike", {
	string: {
		pattern: /(^|[^\\])'(?:[^'\\]|\\[\s\S])*'/,
		lookbehind: !0,
		greedy: !0
	},
	"class-name": [{
		pattern: /(\bclass\s+)\w+/,
		lookbehind: !0
	}, {
		pattern: /(\b(?:attr|def)\s+)\w+(?=\s*::)/,
		lookbehind: !0
	}],
	keyword: /\b(?:attr|auto|break|case|catch|class|continue|def|default|else|finally|for|fun|global|if|return|switch|this|try|var|while)\b/,
	number: [Prism.languages.cpp.number, /\b(?:Infinity|NaN)\b/],
	operator: />>=?|<<=?|\|\||&&|:[:=]?|--|\+\+|[=!<>+\-*/%|&^]=?|[?~]|`[^`\r\n]{1,4}`/
}), Prism.languages.insertBefore("chaiscript", "operator", {
	"parameter-type": {
		pattern: /([,(]\s*)\w+(?=\s+\w)/,
		lookbehind: !0,
		alias: "class-name"
	}
}), Prism.languages.insertBefore("chaiscript", "string", {
	"string-interpolation": {
		pattern: /(^|[^\\])"(?:[^"$\\]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*"/,
		lookbehind: !0,
		greedy: !0,
		inside: {
			interpolation: {
				pattern: /((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\}/,
				lookbehind: !0,
				inside: {
					"interpolation-expression": {
						pattern: /(^\$\{)[\s\S]+(?=\}$)/,
						lookbehind: !0,
						inside: Prism.languages.chaiscript
					},
					"interpolation-punctuation": {
						pattern: /^\$\{|\}$/,
						alias: "punctuation"
					}
				}
			},
			string: /[\s\S]+/
		}
	}
});
Prism.languages.cil = {
	comment: /\/\/.*/,
	string: {
		pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
		greedy: !0
	},
	directive: {
		pattern: /(^|\W)\.[a-z]+(?=\s)/,
		lookbehind: !0,
		alias: "class-name"
	},
	variable: /\[[\w\.]+\]/,
	keyword: /\b(?:abstract|ansi|assembly|auto|autochar|beforefieldinit|bool|bstr|byvalstr|catch|char|cil|class|currency|date|decimal|default|enum|error|explicit|extends|extern|famandassem|family|famorassem|final(?:ly)?|float32|float64|hidebysig|iant|idispatch|implements|import|initonly|instance|u?int(?:8|16|32|64)?|interface|iunknown|literal|lpstr|lpstruct|lptstr|lpwstr|managed|method|native(?:Type)?|nested|newslot|object(?:ref)?|pinvokeimpl|private|privatescope|public|reqsecobj|rtspecialname|runtime|sealed|sequential|serializable|specialname|static|string|struct|syschar|tbstr|unicode|unmanagedexp|unsigned|value(?:type)?|variant|virtual|void)\b/,
	function: /\b(?:(?:constrained|unaligned|volatile|readonly|tail|no)\.)?(?:conv\.(?:[iu][1248]?|ovf\.[iu][1248]?(?:\.un)?|r\.un|r4|r8)|ldc\.(?:i4(?:\.[0-9]+|\.[mM]1|\.s)?|i8|r4|r8)|ldelem(?:\.[iu][1248]?|\.r[48]|\.ref|a)?|ldind\.(?:[iu][1248]?|r[48]|ref)|stelem\.?(?:i[1248]?|r[48]|ref)?|stind\.(?:i[1248]?|r[48]|ref)?|end(?:fault|filter|finally)|ldarg(?:\.[0-3s]|a(?:\.s)?)?|ldloc(?:\.[0-9]+|\.s)?|sub(?:\.ovf(?:\.un)?)?|mul(?:\.ovf(?:\.un)?)?|add(?:\.ovf(?:\.un)?)?|stloc(?:\.[0-3s])?|refany(?:type|val)|blt(?:\.un)?(?:\.s)?|ble(?:\.un)?(?:\.s)?|bgt(?:\.un)?(?:\.s)?|bge(?:\.un)?(?:\.s)?|unbox(?:\.any)?|init(?:blk|obj)|call(?:i|virt)?|brfalse(?:\.s)?|bne\.un(?:\.s)?|ldloca(?:\.s)?|brzero(?:\.s)?|brtrue(?:\.s)?|brnull(?:\.s)?|brinst(?:\.s)?|starg(?:\.s)?|leave(?:\.s)?|shr(?:\.un)?|rem(?:\.un)?|div(?:\.un)?|clt(?:\.un)?|alignment|ldvirtftn|castclass|beq(?:\.s)?|mkrefany|localloc|ckfinite|rethrow|ldtoken|ldsflda|cgt\.un|arglist|switch|stsfld|sizeof|newobj|newarr|ldsfld|ldnull|ldflda|isinst|throw|stobj|stfld|ldstr|ldobj|ldlen|ldftn|ldfld|cpobj|cpblk|break|br\.s|xor|shl|ret|pop|not|nop|neg|jmp|dup|cgt|ceq|box|and|or|br)\b/,
	boolean: /\b(?:true|false)\b/,
	number: /\b-?(?:0x[0-9a-fA-F]+|[0-9]+)(?:\.[0-9a-fA-F]+)?\b/i,
	punctuation: /[{}[\];(),:=]|IL_[0-9A-Za-z]+/
};
Prism.languages.clojure = {
	comment: /;.*/,
	string: {
		pattern: /"(?:[^"\\]|\\.)*"/,
		greedy: !0
	},
	operator: /(?:::|[:|'])\b[a-z][\w*+!?-]*\b/i,
	keyword: {
		pattern: /([^\w+*'?-])(?:def|if|do|let|\.\.|quote|var|->>|->|fn|loop|recur|throw|try|monitor-enter|\.|new|set!|def\-|defn|defn\-|defmacro|defmulti|defmethod|defstruct|defonce|declare|definline|definterface|defprotocol|==|defrecord|>=|deftype|<=|defproject|ns|\*|\+|\-|\/|<|=|>|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|conj|cons|constantly|cond|if-not|construct-proxy|contains\?|count|create-ns|create-struct|cycle|dec|deref|difference|disj|dissoc|distinct|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\?|ensure|eval|every\?|false\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|for|fnseq|frest|gensym|get-proxy-class|get|hash-map|hash-set|identical\?|identity|if-let|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\?|last|lazy-cat|lazy-cons|left|lefts|line-seq|list\*|list|load|load-file|locking|long|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|name|namespace|neg\?|newline|next|nil\?|node|not|not-any\?|not-every\?|not=|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\?|set|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\?|split-at|split-with|str|string\?|struct|struct-map|subs|subvec|symbol|symbol\?|sync|take|take-nth|take-while|test|time|to-array|to-array-2d|tree-seq|true\?|union|up|update-proxy|val|vals|var-get|var-set|var\?|vector|vector-zip|vector\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\?|zipmap|zipper)(?=[^\w+*'?-])/,
		lookbehind: !0
	},
	boolean: /\b(?:true|false|nil)\b/,
	number: /\b[\da-f]+\b/i,
	punctuation: /[{}\[\](),]/
};
Prism.languages.cmake = {
	comment: /#.*/,
	string: {
		pattern: /"(?:[^\\"]|\\.)*"/,
		greedy: !0,
		inside: {
			interpolation: {
				pattern: /\${(?:[^{}$]|\${[^{}$]*})*}/,
				inside: {
					punctuation: /\${|}/,
					variable: /\w+/
				}
			}
		}
	},
	variable: /\b(?:CMAKE_\w+|\w+_(?:VERSION(?:_MAJOR|_MINOR|_PATCH|_TWEAK)?|(?:BINARY|SOURCE)_DIR|DESCRIPTION|HOMEPAGE_URL|ROOT)|(?:CTEST_CUSTOM_(?:MAXIMUM_(?:(?:FAIL|PASS)ED_TEST_OUTPUT_SIZE|NUMBER_OF_(?:ERROR|WARNING)S)|ERROR_(?:P(?:OST|RE)_CONTEXT|EXCEPTION|MATCH)|P(?:OST|RE)_MEMCHECK|WARNING_(?:EXCEPTION|MATCH)|(?:MEMCHECK|TESTS)_IGNORE|P(?:OST|RE)_TEST|COVERAGE_EXCLUDE)|ANDROID|APPLE|BORLAND|BUILD_SHARED_LIBS|CACHE|CPACK_(?:ABSOLUTE_DESTINATION_FILES|COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY|ERROR_ON_ABSOLUTE_INSTALL_DESTINATION|INCLUDE_TOPLEVEL_DIRECTORY|INSTALL_DEFAULT_DIRECTORY_PERMISSIONS|INSTALL_SCRIPT|PACKAGING_INSTALL_PREFIX|SET_DESTDIR|WARN_ON_ABSOLUTE_INSTALL_DESTINATION)|CTEST_(?:BINARY_DIRECTORY|BUILD_COMMAND|BUILD_NAME|BZR_COMMAND|BZR_UPDATE_OPTIONS|CHANGE_ID|CHECKOUT_COMMAND|CONFIGURATION_TYPE|CONFIGURE_COMMAND|COVERAGE_COMMAND|COVERAGE_EXTRA_FLAGS|CURL_OPTIONS|CUSTOM_(?:COVERAGE_EXCLUDE|ERROR_EXCEPTION|ERROR_MATCH|ERROR_POST_CONTEXT|ERROR_PRE_CONTEXT|MAXIMUM_FAILED_TEST_OUTPUT_SIZE|MAXIMUM_NUMBER_OF_(?:ERRORS|WARNINGS)|MAXIMUM_PASSED_TEST_OUTPUT_SIZE|MEMCHECK_IGNORE|POST_MEMCHECK|POST_TEST|PRE_MEMCHECK|PRE_TEST|TESTS_IGNORE|WARNING_EXCEPTION|WARNING_MATCH)|CVS_CHECKOUT|CVS_COMMAND|CVS_UPDATE_OPTIONS|DROP_LOCATION|DROP_METHOD|DROP_SITE|DROP_SITE_CDASH|DROP_SITE_PASSWORD|DROP_SITE_USER|EXTRA_COVERAGE_GLOB|GIT_COMMAND|GIT_INIT_SUBMODULES|GIT_UPDATE_CUSTOM|GIT_UPDATE_OPTIONS|HG_COMMAND|HG_UPDATE_OPTIONS|LABELS_FOR_SUBPROJECTS|MEMORYCHECK_(?:COMMAND|COMMAND_OPTIONS|SANITIZER_OPTIONS|SUPPRESSIONS_FILE|TYPE)|NIGHTLY_START_TIME|P4_CLIENT|P4_COMMAND|P4_OPTIONS|P4_UPDATE_OPTIONS|RUN_CURRENT_SCRIPT|SCP_COMMAND|SITE|SOURCE_DIRECTORY|SUBMIT_URL|SVN_COMMAND|SVN_OPTIONS|SVN_UPDATE_OPTIONS|TEST_LOAD|TEST_TIMEOUT|TRIGGER_SITE|UPDATE_COMMAND|UPDATE_OPTIONS|UPDATE_VERSION_ONLY|USE_LAUNCHERS)|CYGWIN|ENV|EXECUTABLE_OUTPUT_PATH|GHS-MULTI|IOS|LIBRARY_OUTPUT_PATH|MINGW|MSVC(?:10|11|12|14|60|70|71|80|90|_IDE|_TOOLSET_VERSION|_VERSION)?|MSYS|PROJECT_(?:BINARY_DIR|DESCRIPTION|HOMEPAGE_URL|NAME|SOURCE_DIR|VERSION|VERSION_(?:MAJOR|MINOR|PATCH|TWEAK))|UNIX|WIN32|WINCE|WINDOWS_PHONE|WINDOWS_STORE|XCODE|XCODE_VERSION))\b/,
	property: /\b(?:cxx_\w+|(?:ARCHIVE_OUTPUT_(?:DIRECTORY|NAME)|COMPILE_DEFINITIONS|COMPILE_PDB_NAME|COMPILE_PDB_OUTPUT_DIRECTORY|EXCLUDE_FROM_DEFAULT_BUILD|IMPORTED_(?:IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_LANGUAGES|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|NO_SONAME|OBJECTS|SONAME)|INTERPROCEDURAL_OPTIMIZATION|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_OUTPUT_NAME|LINK_FLAGS|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|MAP_IMPORTED_CONFIG|OSX_ARCHITECTURES|OUTPUT_NAME|PDB_NAME|PDB_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_NAME|STATIC_LIBRARY_FLAGS|VS_CSHARP|VS_DOTNET_REFERENCEPROP|VS_DOTNET_REFERENCE|VS_GLOBAL_SECTION_POST|VS_GLOBAL_SECTION_PRE|VS_GLOBAL|XCODE_ATTRIBUTE)_\w+|\w+_(?:CLANG_TIDY|COMPILER_LAUNCHER|CPPCHECK|CPPLINT|INCLUDE_WHAT_YOU_USE|OUTPUT_NAME|POSTFIX|VISIBILITY_PRESET)|ABSTRACT|ADDITIONAL_MAKE_CLEAN_FILES|ADVANCED|ALIASED_TARGET|ALLOW_DUPLICATE_CUSTOM_TARGETS|ANDROID_(?:ANT_ADDITIONAL_OPTIONS|API|API_MIN|ARCH|ASSETS_DIRECTORIES|GUI|JAR_DEPENDENCIES|NATIVE_LIB_DEPENDENCIES|NATIVE_LIB_DIRECTORIES|PROCESS_MAX|PROGUARD|PROGUARD_CONFIG_PATH|SECURE_PROPS_PATH|SKIP_ANT_STEP|STL_TYPE)|ARCHIVE_OUTPUT_DIRECTORY|ARCHIVE_OUTPUT_NAME|ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|AUTOGEN_(?:BUILD_DIR|ORIGIN_DEPENDS|PARALLEL|SOURCE_GROUP|TARGETS_FOLDER|TARGET_DEPENDS)|AUTOMOC|AUTOMOC_(?:COMPILER_PREDEFINES|DEPEND_FILTERS|EXECUTABLE|MACRO_NAMES|MOC_OPTIONS|SOURCE_GROUP|TARGETS_FOLDER)|AUTORCC|AUTORCC_EXECUTABLE|AUTORCC_OPTIONS|AUTORCC_SOURCE_GROUP|AUTOUIC|AUTOUIC_EXECUTABLE|AUTOUIC_OPTIONS|AUTOUIC_SEARCH_PATHS|BINARY_DIR|BUILDSYSTEM_TARGETS|BUILD_RPATH|BUILD_RPATH_USE_ORIGIN|BUILD_WITH_INSTALL_NAME_DIR|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE_EXTENSION|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMMON_LANGUAGE_RUNTIME|COMPATIBLE_INTERFACE_(?:BOOL|NUMBER_MAX|NUMBER_MIN|STRING)|COMPILE_(?:DEFINITIONS|FEATURES|FLAGS|OPTIONS|PDB_NAME|PDB_OUTPUT_DIRECTORY)|COST|CPACK_DESKTOP_SHORTCUTS|CPACK_NEVER_OVERWRITE|CPACK_PERMANENT|CPACK_STARTUP_SHORTCUTS|CPACK_START_MENU_SHORTCUTS|CPACK_WIX_ACL|CROSSCOMPILING_EMULATOR|CUDA_EXTENSIONS|CUDA_PTX_COMPILATION|CUDA_RESOLVE_DEVICE_SYMBOLS|CUDA_SEPARABLE_COMPILATION|CUDA_STANDARD|CUDA_STANDARD_REQUIRED|CXX_EXTENSIONS|CXX_STANDARD|CXX_STANDARD_REQUIRED|C_EXTENSIONS|C_STANDARD|C_STANDARD_REQUIRED|DEBUG_CONFIGURATIONS|DEBUG_POSTFIX|DEFINE_SYMBOL|DEFINITIONS|DEPENDS|DEPLOYMENT_ADDITIONAL_FILES|DEPLOYMENT_REMOTE_DIRECTORY|DISABLED|DISABLED_FEATURES|ECLIPSE_EXTRA_CPROJECT_CONTENTS|ECLIPSE_EXTRA_NATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|ENABLE_EXPORTS|ENVIRONMENT|EXCLUDE_FROM_ALL|EXCLUDE_FROM_DEFAULT_BUILD|EXPORT_NAME|EXPORT_PROPERTIES|EXTERNAL_OBJECT|EchoString|FAIL_REGULAR_EXPRESSION|FIND_LIBRARY_USE_LIB32_PATHS|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_LIBX32_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|FIXTURES_CLEANUP|FIXTURES_REQUIRED|FIXTURES_SETUP|FOLDER|FRAMEWORK|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GENERATED|GENERATOR_FILE_NAME|GENERATOR_IS_MULTI_CONFIG|GHS_INTEGRITY_APP|GHS_NO_SOURCE_GROUP_FILE|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|GNUtoMS|HAS_CXX|HEADER_FILE_ONLY|HELPSTRING|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(?:COMMON_LANGUAGE_RUNTIME|CONFIGURATIONS|GLOBAL|IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_(?:LANGUAGES|LIBRARIES|MULTIPLICITY)|LOCATION|NO_SONAME|OBJECTS|SONAME)|IMPORT_PREFIX|IMPORT_SUFFIX|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE_(?:AUTOUIC_OPTIONS|COMPILE_DEFINITIONS|COMPILE_FEATURES|COMPILE_OPTIONS|INCLUDE_DIRECTORIES|LINK_DEPENDS|LINK_DIRECTORIES|LINK_LIBRARIES|LINK_OPTIONS|POSITION_INDEPENDENT_CODE|SOURCES|SYSTEM_INCLUDE_DIRECTORIES)|INTERPROCEDURAL_OPTIMIZATION|IN_TRY_COMPILE|IOS_INSTALL_COMBINED|JOB_POOLS|JOB_POOL_COMPILE|JOB_POOL_LINK|KEEP_EXTENSION|LABELS|LANGUAGE|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_OUTPUT_NAME|LINKER_LANGUAGE|LINK_(?:DEPENDS|DEPENDS_NO_SHARED|DIRECTORIES|FLAGS|INTERFACE_LIBRARIES|INTERFACE_MULTIPLICITY|LIBRARIES|OPTIONS|SEARCH_END_STATIC|SEARCH_START_STATIC|WHAT_YOU_USE)|LISTFILE_STACK|LOCATION|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MACOSX_PACKAGE_LOCATION|MACOSX_RPATH|MACROS|MANUALLY_ADDED_DEPENDENCIES|MEASUREMENT|MODIFIED|NAME|NO_SONAME|NO_SYSTEM_FROM_IMPORTED|OBJECT_DEPENDS|OBJECT_OUTPUTS|OSX_ARCHITECTURES|OUTPUT_NAME|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PARENT_DIRECTORY|PASS_REGULAR_EXPRESSION|PDB_NAME|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|POST_INSTALL_SCRIPT|PREDEFINED_TARGETS_FOLDER|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE_HEADER|PROCESSORS|PROCESSOR_AFFINITY|PROJECT_LABEL|PUBLIC_HEADER|REPORT_UNDEFINED_PROPERTIES|REQUIRED_FILES|RESOURCE|RESOURCE_LOCK|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|RUNTIME_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_NAME|RUN_SERIAL|SKIP_AUTOGEN|SKIP_AUTOMOC|SKIP_AUTORCC|SKIP_AUTOUIC|SKIP_BUILD_RPATH|SKIP_RETURN_CODE|SOURCES|SOURCE_DIR|SOVERSION|STATIC_LIBRARY_FLAGS|STATIC_LIBRARY_OPTIONS|STRINGS|SUBDIRECTORIES|SUFFIX|SYMBOLIC|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_MESSAGES|TARGET_SUPPORTS_SHARED_LIBS|TESTS|TEST_INCLUDE_FILE|TEST_INCLUDE_FILES|TIMEOUT|TIMEOUT_AFTER_MATCH|TYPE|USE_FOLDERS|VALUE|VARIABLES|VERSION|VISIBILITY_INLINES_HIDDEN|VS_(?:CONFIGURATION_TYPE|COPY_TO_OUT_DIR|DEBUGGER_(?:COMMAND|COMMAND_ARGUMENTS|ENVIRONMENT|WORKING_DIRECTORY)|DEPLOYMENT_CONTENT|DEPLOYMENT_LOCATION|DOTNET_REFERENCES|DOTNET_REFERENCES_COPY_LOCAL|GLOBAL_KEYWORD|GLOBAL_PROJECT_TYPES|GLOBAL_ROOTNAMESPACE|INCLUDE_IN_VSIX|IOT_STARTUP_TASK|KEYWORD|RESOURCE_GENERATOR|SCC_AUXPATH|SCC_LOCALPATH|SCC_PROJECTNAME|SCC_PROVIDER|SDK_REFERENCES|SHADER_(?:DISABLE_OPTIMIZATIONS|ENABLE_DEBUG|ENTRYPOINT|FLAGS|MODEL|OBJECT_FILE_NAME|OUTPUT_HEADER_FILE|TYPE|VARIABLE_NAME)|STARTUP_PROJECT|TOOL_OVERRIDE|USER_PROPS|WINRT_COMPONENT|WINRT_EXTENSIONS|WINRT_REFERENCES|XAML_TYPE)|WILL_FAIL|WIN32_EXECUTABLE|WINDOWS_EXPORT_ALL_SYMBOLS|WORKING_DIRECTORY|WRAP_EXCLUDE|XCODE_(?:EMIT_EFFECTIVE_PLATFORM_NAME|EXPLICIT_FILE_TYPE|FILE_ATTRIBUTES|LAST_KNOWN_FILE_TYPE|PRODUCT_TYPE|SCHEME_(?:ADDRESS_SANITIZER|ADDRESS_SANITIZER_USE_AFTER_RETURN|ARGUMENTS|DISABLE_MAIN_THREAD_CHECKER|DYNAMIC_LIBRARY_LOADS|DYNAMIC_LINKER_API_USAGE|ENVIRONMENT|EXECUTABLE|GUARD_MALLOC|MAIN_THREAD_CHECKER_STOP|MALLOC_GUARD_EDGES|MALLOC_SCRIBBLE|MALLOC_STACK|THREAD_SANITIZER(?:_STOP)?|UNDEFINED_BEHAVIOUR_SANITIZER(?:_STOP)?|ZOMBIE_OBJECTS))|XCTEST)\b/,
	keyword: /\b(?:add_compile_definitions|add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_link_options|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_parse_arguments|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_guard|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_directories|target_link_libraries|target_link_options|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)(?=\s*\()\b/,
	boolean: /\b(?:ON|OFF|TRUE|FALSE)\b/,
	namespace: /\b(?:PROPERTIES|SHARED|PRIVATE|STATIC|PUBLIC|INTERFACE|TARGET_OBJECTS)\b/,
	operator: /\b(?:NOT|AND|OR|MATCHES|LESS|GREATER|EQUAL|STRLESS|STRGREATER|STREQUAL|VERSION_LESS|VERSION_EQUAL|VERSION_GREATER|DEFINED)\b/,
	inserted: {
		pattern: /\b\w+::\w+\b/,
		alias: "class-name"
	},
	number: /\b\d+(?:\.\d+)*\b/,
	function: /\b[a-z_]\w*(?=\s*\()\b/i,
	punctuation: /[()>}]|\$[<{]/
};
! function(e) {
	var t = /#(?!\{).+/,
		n = {
			pattern: /#\{[^}]+\}/,
			alias: "variable"
		};
	e.languages.coffeescript = e.languages.extend("javascript", {
		comment: t,
		string: [{
			pattern: /'(?:\\[\s\S]|[^\\'])*'/,
			greedy: !0
		}, {
			pattern: /"(?:\\[\s\S]|[^\\"])*"/,
			greedy: !0,
			inside: {
				interpolation: n
			}
		}],
		keyword: /\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,
		"class-member": {
			pattern: /@(?!\d)\w+/,
			alias: "variable"
		}
	}), e.languages.insertBefore("coffeescript", "comment", {
		"multiline-comment": {
			pattern: /###[\s\S]+?###/,
			alias: "comment"
		},
		"block-regex": {
			pattern: /\/{3}[\s\S]*?\/{3}/,
			alias: "regex",
			inside: {
				comment: t,
				interpolation: n
			}
		}
	}), e.languages.insertBefore("coffeescript", "string", {
		"inline-javascript": {
			pattern: /`(?:\\[\s\S]|[^\\`])*`/,
			inside: {
				delimiter: {
					pattern: /^`|`$/,
					alias: "punctuation"
				},
				script: {
					pattern: /[\s\S]+/,
					alias: "language-javascript",
					inside: e.languages.javascript
				}
			}
		},
		"multiline-string": [{
			pattern: /'''[\s\S]*?'''/,
			greedy: !0,
			alias: "string"
		}, {
			pattern: /"""[\s\S]*?"""/,
			greedy: !0,
			alias: "string",
			inside: {
				interpolation: n
			}
		}]
	}), e.languages.insertBefore("coffeescript", "keyword", {
		property: /(?!\d)\w+(?=\s*:(?!:))/
	}), delete e.languages.coffeescript["template-string"], e.languages.coffee = e.languages.coffeescript
}(Prism);
Prism.languages.concurnas = {
	comment: [{
		pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,
		lookbehind: !0
	}, {
		pattern: /(^|[^\\:])\/\/.*/,
		lookbehind: !0,
		greedy: !0
	}],
	langext: {
		pattern: /\w+\s*\|\|[\s\S]+?\|\|/,
		greedy: !0,
		alias: "string"
	},
	function: {
		pattern: /((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/,
		lookbehind: !0
	},
	keyword: /\b(?:abstract|actor|also|annotation|assert|async|await|bool|boolean|break|byte|case|catch|changed|char|class|closed|constant|continue|def|default|del|double|elif|else|enum|every|extends|false|finally|float|for|from|global|gpudef|gpukernel|if|import|in|init|inject|int|lambda|local|long|loop|match|new|nodefault|null|of|onchange|open|out|override|package|parfor|parforsync|post|pre|private|protected|provide|provider|public|return|shared|short|single|size_t|sizeof|super|sync|this|throw|trait|trans|transient|true|try|typedef|unchecked|using|val|var|void|while|with)\b/,
	boolean: /\b(?:false|true)\b/,
	number: /\b0b[01][01_]*L?\b|\b0x(?:[\da-f_]*\.)?[\da-f_p+-]+\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfls]?/i,
	punctuation: /[{}[\];(),.:]/,
	operator: /<==|>==|=>|->|<-|<>|\^|&==|&<>|!|\?|\?:|\.\?|\+\+|--|[-+*/=<>]=?|\b(?:and|as|band|bor|bxor|comp|is|isnot|mod|or)\b=?/,
	annotation: {
		pattern: /@(?:\w+:)?(?:\w*|\[[^\]]+\])/,
		alias: "builtin"
	}
}, Prism.languages.insertBefore("concurnas", "langext", {
	string: {
		pattern: /[rs]?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,
		greedy: !0,
		inside: {
			interpolation: {
				pattern: /((?:^|[^\\])(?:\\{2})*){(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,
				lookbehind: !0,
				inside: Prism.languages.concurnas
			},
			string: /[\s\S]+/
		}
	}
}), Prism.languages.conc = Prism.languages.concurnas;
Prism.languages.csp = {
	directive: {
		pattern: /(^|[^-\da-z])(?:base-uri|block-all-mixed-content|(?:child|connect|default|font|frame|img|manifest|media|object|prefetch|script|style|worker)-src|disown-opener|form-action|frame-(?:ancestors|options)|input-protection(?:-(?:clip|selectors))?|navigate-to|plugin-types|policy-uri|referrer|reflected-xss|report-(?:to|uri)|require-sri-for|sandbox|(?:script|style)-src-(?:attr|elem)|upgrade-insecure-requests)(?=[^-\da-z]|$)/i,
		lookbehind: !0,
		alias: "keyword"
	},
	safe: {
		pattern: /'(?:deny|none|report-sample|self|strict-dynamic|top-only|(?:nonce|sha(?:256|384|512))-[-+/\d=_a-z]+)'/i,
		alias: "selector"
	},
	unsafe: {
		pattern: /(?:'unsafe-(?:allow-redirects|dynamic|eval|hash-attributes|hashed-attributes|hashes|inline)'|\*)/i,
		alias: "function"
	}
};
! function(e) {
	e.languages.ruby = e.languages.extend("clike", {
		comment: [/#.*/, {
			pattern: /^=begin\s[\s\S]*?^=end/m,
			greedy: !0
		}],
		"class-name": {
			pattern: /(\b(?:class)\s+|\bcatch\s+\()[\w.\\]+/i,
			lookbehind: !0,
			inside: {
				punctuation: /[.\\]/
			}
		},
		keyword: /\b(?:alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|protected|private|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/
	});
	var n = {
		pattern: /#\{[^}]+\}/,
		inside: {
			delimiter: {
				pattern: /^#\{|\}$/,
				alias: "tag"
			},
			rest: e.languages.ruby
		}
	};
	delete e.languages.ruby.function, e.languages.insertBefore("ruby", "keyword", {
		regex: [{
			pattern: RegExp("%r(?:" + ["([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[^])*\\1[gim]{0,3}",
				"\\((?:[^()\\\\]|\\\\[^])*\\)[gim]{0,3}", "\\{(?:[^#{}\\\\]|#(?:\\{[^}]+\\})?|\\\\[^])*\\}[gim]{0,3}",
				"\\[(?:[^\\[\\]\\\\]|\\\\[^])*\\][gim]{0,3}", "<(?:[^<>\\\\]|\\\\[^])*>[gim]{0,3}"
			].join("|") + ")"),
			greedy: !0,
			inside: {
				interpolation: n
			}
		}, {
			pattern: /(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[gim]{0,3}(?=\s*(?:$|[\r\n,.;})]))/,
			lookbehind: !0,
			greedy: !0
		}],
		variable: /[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,
		symbol: {
			pattern: /(^|[^:]):[a-zA-Z_]\w*(?:[?!]|\b)/,
			lookbehind: !0
		},
		"method-definition": {
			pattern: /(\bdef\s+)[\w.]+/,
			lookbehind: !0,
			inside: {
				function: /\w+$/,
				rest: e.languages.ruby
			}
		}
	}), e.languages.insertBefore("ruby", "number", {
		builtin: /\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|Fixnum|Float|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/,
		constant: /\b[A-Z]\w*(?:[?!]|\b)/
	}), e.languages.ruby.string = [{
		pattern: RegExp("%[qQiIwWxs]?(?:" + ["([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[^])*\\1",
			"\\((?:[^()\\\\]|\\\\[^])*\\)", "\\{(?:[^#{}\\\\]|#(?:\\{[^}]+\\})?|\\\\[^])*\\}",
			"\\[(?:[^\\[\\]\\\\]|\\\\[^])*\\]", "<(?:[^<>\\\\]|\\\\[^])*>"
		].join("|") + ")"),
		greedy: !0,
		inside: {
			interpolation: n
		}
	}, {
		pattern: /("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,
		greedy: !0,
		inside: {
			interpolation: n
		}
	}], e.languages.rb = e.languages.ruby
}(Prism);
! function(e) {
	e.languages.crystal = e.languages.extend("ruby", {
		keyword: [
			/\b(?:abstract|alias|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|rescue|return|require|select|self|sizeof|struct|super|then|type|typeof|uninitialized|union|unless|until|when|while|with|yield|__DIR__|__END_LINE__|__FILE__|__LINE__)\b/,
			{
				pattern: /(\.\s*)(?:is_a|responds_to)\?/,
				lookbehind: !0
			}
		],
		number: /\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\da-fA-F_]*[\da-fA-F]|(?:\d(?:[\d_]*\d)?)(?:\.[\d_]*\d)?(?:[eE][+-]?[\d_]*\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\b/
	}), e.languages.insertBefore("crystal", "string", {
		attribute: {
			pattern: /@\[.+?\]/,
			alias: "attr-name",
			inside: {
				delimiter: {
					pattern: /^@\[|\]$/,
					alias: "tag"
				},
				rest: e.languages.crystal
			}
		},
		expansion: [{
			pattern: /\{\{.+?\}\}/,
			inside: {
				delimiter: {
					pattern: /^\{\{|\}\}$/,
					alias: "tag"
				},
				rest: e.languages.crystal
			}
		}, {
			pattern: /\{%.+?%\}/,
			inside: {
				delimiter: {
					pattern: /^\{%|%\}$/,
					alias: "tag"
				},
				rest: e.languages.crystal
			}
		}]
	})
}(Prism);
! function(e) {
	var a, n = /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;
	e.languages.css.selector = {
		pattern: e.languages.css.selector,
		inside: a = {
			"pseudo-element": /:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,
			"pseudo-class": /:[-\w]+/,
			class: /\.[-\w]+/,
			id: /#[-\w]+/,
			attribute: {
				pattern: RegExp("\\[(?:[^[\\]\"']|" + n.source + ")*\\]"),
				greedy: !0,
				inside: {
					punctuation: /^\[|\]$/,
					"case-sensitivity": {
						pattern: /(\s)[si]$/i,
						lookbehind: !0,
						alias: "keyword"
					},
					namespace: {
						pattern: /^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,
						lookbehind: !0,
						inside: {
							punctuation: /\|$/
						}
					},
					"attr-name": {
						pattern: /^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,
						lookbehind: !0
					},
					"attr-value": [n, {
						pattern: /(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,
						lookbehind: !0
					}],
					operator: /[|~*^$]?=/
				}
			},
			"n-th": [{
				pattern: /(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,
				lookbehind: !0,
				inside: {
					number: /[\dn]+/,
					operator: /[+-]/
				}
			}, {
				pattern: /(\(\s*)(?:even|odd)(?=\s*\))/i,
				lookbehind: !0
			}],
			combinator: />|\+|~|\|\|/,
			punctuation: /[(),]/
		}
	}, e.languages.css.atrule.inside["selector-function-argument"].inside = a, e.languages.insertBefore("css", "property", {
		variable: {
			pattern: /(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,
			lookbehind: !0
		}
	});
	var r = {
			pattern: /(\b\d+)(?:%|[a-z]+\b)/,
			lookbehind: !0
		},
		i = {
			pattern: /(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,
			lookbehind: !0
		};
	e.languages.insertBefore("css", "function", {
		operator: {
			pattern: /(\s)[+\-*\/](?=\s)/,
			lookbehind: !0
		},
		hexcode: {
			pattern: /\B#(?:[\da-f]{1,2}){3,4}\b/i,
			alias: "color"
		},
		color: [
			/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,
			{
				pattern: /\b(?:rgb|hsl)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:rgb|hsl)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,
				inside: {
					unit: r,
					number: i,
					function: /[\w-]+(?=\()/,
					punctuation: /[(),]/
				}
			}
		],
		entity: /\\[\da-f]{1,8}/i,
		unit: r,
		number: i
	})
}(Prism);
Prism.languages.cypher = {
	comment: /\/\/.*/,
	string: {
		pattern: /"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/,
		greedy: !0
	},
	"class-name": {
		pattern: /(:\s*)(?:\w+|`(?:[^`\\\r\n])*`)(?=\s*[{):])/,
		lookbehind: !0,
		greedy: !0
	},
	relationship: {
		pattern: /(-\[\s*(?:\w+\s*|`(?:[^`\\\r\n])*`\s*)?:\s*|\|\s*:\s*)(?:\w+|`(?:[^`\\\r\n])*`)/,
		lookbehind: !0,
		greedy: !0,
		alias: "property"
	},
	identifier: {
		pattern: /`(?:[^`\\\r\n])*`/,
		greedy: !0,
		alias: "symbol"
	},
	variable: /\$\w+/,
	keyword: /\b(?:ADD|ALL|AND|AS|ASC|ASCENDING|ASSERT|BY|CALL|CASE|COMMIT|CONSTRAINT|CONTAINS|CREATE|CSV|DELETE|DESC|DESCENDING|DETACH|DISTINCT|DO|DROP|ELSE|END|ENDS|EXISTS|FOR|FOREACH|IN|INDEX|IS|JOIN|KEY|LIMIT|LOAD|MANDATORY|MATCH|MERGE|NODE|NOT|OF|ON|OPTIONAL|OR|ORDER(?=\s+BY)|PERIODIC|REMOVE|REQUIRE|RETURN|SCALAR|SCAN|SET|SKIP|START|STARTS|THEN|UNION|UNIQUE|UNWIND|USING|WHEN|WHERE|WITH|XOR|YIELD)\b/i,
	function: /\b\w+\b(?=\s*\()/,
	boolean: /\b(?:true|false|null)\b/i,
	number: /\b(?:0x[\da-fA-F]+|\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)\b/,
	operator: /:|<--?|--?>?|<>|=~?|[<>]=?|[+*/%^|]|\.\.\.?/,
	punctuation: /[()[\]{},;.]/
};
Prism.languages.d = Prism.languages.extend("clike", {
	comment: [{
		pattern: /^\s*#!.+/,
		greedy: !0
	}, {
		pattern: RegExp("(^|[^\\\\])(?:" + ["/\\+(?:/\\+(?:[^+]|\\+(?!/))*\\+/|(?!/\\+)[^])*?\\+/", "//.*",
			"/\\*[^]*?\\*/"
		].join("|") + ")"),
		lookbehind: !0,
		greedy: !0
	}],
	string: [{
		pattern: RegExp(['\\b[rx]"(?:\\\\[^]|[^\\\\"])*"[cwd]?', '\\bq"(?:\\[[^]*?\\]|\\([^]*?\\)|<[^]*?>|\\{[^]*?\\})"',
			'\\bq"((?!\\d)\\w+)$[^]*?^\\1"', '\\bq"(.)[^]*?\\2"', "'(?:\\\\(?:\\W|\\w+)|[^\\\\])'",
			'(["`])(?:\\\\[^]|(?!\\3)[^\\\\])*\\3[cwd]?'
		].join("|"), "m"),
		greedy: !0
	}, {
		pattern: /\bq\{(?:\{[^{}]*\}|[^{}])*\}/,
		greedy: !0,
		alias: "token-string"
	}],
	keyword: /\$|\b(?:abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|public|pure|real|ref|return|scope|shared|short|static|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|__(?:(?:FILE|MODULE|LINE|FUNCTION|PRETTY_FUNCTION|DATE|EOF|TIME|TIMESTAMP|VENDOR|VERSION)__|gshared|traits|vector|parameters)|string|wstring|dstring|size_t|ptrdiff_t)\b/,
	number: [/\b0x\.?[a-f\d_]+(?:(?!\.\.)\.[a-f\d_]*)?(?:p[+-]?[a-f\d_]+)?[ulfi]{0,4}/i, {
		pattern: /((?:\.\.)?)(?:\b0b\.?|\b|\.)\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:e[+-]?\d[\d_]*)?[ulfi]{0,4}/i,
		lookbehind: !0
	}],
	operator: /\|[|=]?|&[&=]?|\+[+=]?|-[-=]?|\.?\.\.|=[>=]?|!(?:i[ns]\b|<>?=?|>=?|=)?|\bi[ns]\b|(?:<[<>]?|>>?>?|\^\^|[*\/%^~])=?/
}), Prism.languages.insertBefore("d", "keyword", {
	property: /\B@\w*/
}), Prism.languages.insertBefore("d", "function", {
	register: {
		pattern: /\b(?:[ABCD][LHX]|E[ABCD]X|E?(?:BP|SP|DI|SI)|[ECSDGF]S|CR[0234]|DR[012367]|TR[3-7]|X?MM[0-7]|R[ABCD]X|[BS]PL|R[BS]P|[DS]IL|R[DS]I|R(?:[89]|1[0-5])[BWD]?|XMM(?:[89]|1[0-5])|YMM(?:1[0-5]|\d))\b|\bST(?:\([0-7]\)|\b)/,
		alias: "variable"
	}
});
Prism.languages.dart = Prism.languages.extend("clike", {
	string: [{
		pattern: /r?("""|''')[\s\S]*?\1/,
		greedy: !0
	}, {
		pattern: /r?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,
		greedy: !0
	}],
	keyword: [/\b(?:async|sync|yield)\*/,
		/\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|covariant|default|deferred|do|dynamic|else|enum|export|extension|external|extends|factory|final|finally|for|Function|get|hide|if|implements|interface|import|in|library|mixin|new|null|on|operator|part|rethrow|return|set|show|static|super|switch|sync|this|throw|try|typedef|var|void|while|with|yield)\b/
	],
	operator: /\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/
}), Prism.languages.insertBefore("dart", "function", {
	metadata: {
		pattern: /@\w+/,
		alias: "symbol"
	}
});
Prism.languages.dataweave = {
	url: /\b[A-Za-z]+:\/\/[\w/:.?=&-]+|\burn:[\w:.?=&-]+/,
	property: {
		pattern: /(?:\w+#)?(?:"(?:\\.|[^\\"\r\n])*"|\w+)(?=\s*[:@])/,
		greedy: !0
	},
	string: {
		pattern: /(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,
		greedy: !0
	},
	"mime-type": /\b(?:text|audio|video|application|multipart|image)\/[\w+-]+/,
	date: {
		pattern: /\|[\w:+-]+\|/,
		greedy: !0
	},
	comment: [{
		pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,
		lookbehind: !0,
		greedy: !0
	}, {
		pattern: /(^|[^\\:])\/\/.*/,
		lookbehind: !0,
		greedy: !0
	}],
	regex: {
		pattern: /\/(?:[^\\\/\r\n]|\\[^\r\n])+\//,
		greedy: !0
	},
	function: /\b[A-Za-z_]\w*(?=\s*\()/i,
	number: /-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,
	punctuation: /[{}[\];(),.:@]/,
	operator: /<<|>>|->|[<>~=]=?|!=|--?-?|\+\+?|\!|\?/,
	boolean: /\b(?:true|false)\b/,
	keyword: /\b(?:match|input|output|ns|type|update|null|if|else|using|unless|at|is|as|case|do|fun|var|not|and|or)\b/
};
Prism.languages.dax = {
	comment: {
		pattern: /(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/).*)/,
		lookbehind: !0
	},
	"data-field": {
		pattern: /'(?:[^']|'')*'(?!')(?:\[[ \w\xA0-\uFFFF]+\])?|\w+\[[ \w\xA0-\uFFFF]+\]/,
		alias: "symbol"
	},
	measure: {
		pattern: /\[[ \w\xA0-\uFFFF]+\]/,
		alias: "constant"
	},
	string: {
		pattern: /"(?:[^"]|"")*"(?!")/,
		greedy: !0
	},
	function: /\b(?:ABS|ACOS|ACOSH|ACOT|ACOTH|ADDCOLUMNS|ADDMISSINGITEMS|ALL|ALLCROSSFILTERED|ALLEXCEPT|ALLNOBLANKROW|ALLSELECTED|AND|APPROXIMATEDISTINCTCOUNT|ASIN|ASINH|ATAN|ATANH|AVERAGE|AVERAGEA|AVERAGEX|BETA\.DIST|BETA\.INV|BLANK|CALCULATE|CALCULATETABLE|CALENDAR|CALENDARAUTO|CEILING|CHISQ\.DIST|CHISQ\.DIST\.RT|CHISQ\.INV|CHISQ\.INV\.RT|CLOSINGBALANCEMONTH|CLOSINGBALANCEQUARTER|CLOSINGBALANCEYEAR|COALESCE|COMBIN|COMBINA|COMBINEVALUES|CONCATENATE|CONCATENATEX|CONFIDENCE\.NORM|CONFIDENCE\.T|CONTAINS|CONTAINSROW|CONTAINSSTRING|CONTAINSSTRINGEXACT|CONVERT|COS|COSH|COT|COTH|COUNT|COUNTA|COUNTAX|COUNTBLANK|COUNTROWS|COUNTX|CROSSFILTER|CROSSJOIN|CURRENCY|CURRENTGROUP|CUSTOMDATA|DATATABLE|DATE|DATEADD|DATEDIFF|DATESBETWEEN|DATESINPERIOD|DATESMTD|DATESQTD|DATESYTD|DATEVALUE|DAY|DEGREES|DETAILROWS|DISTINCT|DISTINCTCOUNT|DISTINCTCOUNTNOBLANK|DIVIDE|EARLIER|EARLIEST|EDATE|ENDOFMONTH|ENDOFQUARTER|ENDOFYEAR|EOMONTH|ERROR|EVEN|EXACT|EXCEPT|EXP|EXPON\.DIST|FACT|FALSE|FILTER|FILTERS|FIND|FIRSTDATE|FIRSTNONBLANK|FIRSTNONBLANKVALUE|FIXED|FLOOR|FORMAT|GCD|GENERATE|GENERATEALL|GENERATESERIES|GEOMEAN|GEOMEANX|GROUPBY|HASONEFILTER|HASONEVALUE|HOUR|IF|IF\.EAGER|IFERROR|IGNORE|INT|INTERSECT|ISBLANK|ISCROSSFILTERED|ISEMPTY|ISERROR|ISEVEN|ISFILTERED|ISINSCOPE|ISLOGICAL|ISNONTEXT|ISNUMBER|ISO\.CEILING|ISODD|ISONORAFTER|ISSELECTEDMEASURE|ISSUBTOTAL|ISTEXT|KEEPFILTERS|KEYWORDMATCH|LASTDATE|LASTNONBLANK|LASTNONBLANKVALUE|LCM|LEFT|LEN|LN|LOG|LOG10|LOOKUPVALUE|LOWER|MAX|MAXA|MAXX|MEDIAN|MEDIANX|MID|MIN|MINA|MINUTE|MINX|MOD|MONTH|MROUND|NATURALINNERJOIN|NATURALLEFTOUTERJOIN|NEXTDAY|NEXTMONTH|NEXTQUARTER|NEXTYEAR|NONVISUAL|NORM\.DIST|NORM\.INV|NORM\.S\.DIST|NORM\.S\.INV|NOT|NOW|ODD|OPENINGBALANCEMONTH|OPENINGBALANCEQUARTER|OPENINGBALANCEYEAR|OR|PARALLELPERIOD|PATH|PATHCONTAINS|PATHITEM|PATHITEMREVERSE|PATHLENGTH|PERCENTILE\.EXC|PERCENTILE\.INC|PERCENTILEX\.EXC|PERCENTILEX\.INC|PERMUT|PI|POISSON\.DIST|POWER|PREVIOUSDAY|PREVIOUSMONTH|PREVIOUSQUARTER|PREVIOUSYEAR|PRODUCT|PRODUCTX|QUARTER|QUOTIENT|RADIANS|RAND|RANDBETWEEN|RANK\.EQ|RANKX|RELATED|RELATEDTABLE|REMOVEFILTERS|REPLACE|REPT|RIGHT|ROLLUP|ROLLUPADDISSUBTOTAL|ROLLUPGROUP|ROLLUPISSUBTOTAL|ROUND|ROUNDDOWN|ROUNDUP|ROW|SAMEPERIODLASTYEAR|SAMPLE|SEARCH|SECOND|SELECTCOLUMNS|SELECTEDMEASURE|SELECTEDMEASUREFORMATSTRING|SELECTEDMEASURENAME|SELECTEDVALUE|SIGN|SIN|SINH|SQRT|SQRTPI|STARTOFMONTH|STARTOFQUARTER|STARTOFYEAR|STDEV\.P|STDEV\.S|STDEVX\.P|STDEVX\.S|SUBSTITUTE|SUBSTITUTEWITHINDEX|SUM|SUMMARIZE|SUMMARIZECOLUMNS|SUMX|SWITCH|T\.DIST|T\.DIST\.2T|T\.DIST\.RT|T\.INV|T\.INV\.2T|TAN|TANH|TIME|TIMEVALUE|TODAY|TOPN|TOPNPERLEVEL|TOPNSKIP|TOTALMTD|TOTALQTD|TOTALYTD|TREATAS|TRIM|TRUE|TRUNC|UNICHAR|UNICODE|UNION|UPPER|USERELATIONSHIP|USERNAME|USEROBJECTID|USERPRINCIPALNAME|UTCNOW|UTCTODAY|VALUE|VALUES|VAR\.P|VAR\.S|VARX\.P|VARX\.S|WEEKDAY|WEEKNUM|XIRR|XNPV|YEAR|YEARFRAC)(?=\s*\()/i,
	keyword: /\b(?:DEFINE|MEASURE|EVALUATE|ORDER\s+BY|RETURN|VAR|START\s+AT|ASC|DESC)\b/i,
	boolean: {
		pattern: /\b(?:TRUE|FALSE|NULL)\b/i,
		alias: "constant"
	},
	number: /\b\d+(?:\.\d*)?|\B\.\d+\b/i,
	operator: /:=|[-+*\/=^]|&&?|\|\||<(?:=>?|<|>)?|>[>=]?|\b(?:IN|NOT)\b/i,
	punctuation: /[;\[\](){}`,.]/
};
Prism.languages.dhall = {
	comment: /--.*|\{-(?:[^-{]|-(?!\})|\{(?!-)|\{-(?:[^-{]|-(?!\})|\{(?!-))*-\})*-\}/,
	string: {
		pattern: /"(?:[^"\\]|\\.)*"|''(?:[^']|'(?!')|'''|''\$\{)*''(?!'|\$)/,
		greedy: !0,
		inside: {
			interpolation: {
				pattern: /\$\{[^{}]*\}/,
				inside: {
					expression: {
						pattern: /(^\$\{)[\s\S]+(?=\}$)/,
						lookbehind: !0,
						alias: "language-dhall",
						inside: null
					},
					punctuation: /\$\{|\}/
				}
			}
		}
	},
	label: {
		pattern: /`[^`]*`/,
		greedy: !0
	},
	url: {
		pattern: /\bhttps?:\/\/[\w.:%!$&'*+;=@~-]+(?:\/[\w.:%!$&'*+;=@~-]*)*(?:\?[/?\w.:%!$&'*+;=@~-]*)?/,
		greedy: !0
	},
	env: {
		pattern: /\benv:(?:(?!\d)\w+|"(?:[^"\\=]|\\.)*")/,
		greedy: !0,
		inside: {
			function: /^env/,
			operator: /^:/,
			variable: /[\s\S]+/
		}
	},
	hash: {
		pattern: /\bsha256:[\da-fA-F]{64}\b/,
		inside: {
			function: /sha256/,
			operator: /:/,
			number: /[\da-fA-F]{64}/
		}
	},
	keyword: /\b(?:as|assert|else|forall|if|in|let|merge|missing|then|toMap|using|with)\b|\u2200/,
	builtin: /\b(?:Some|None)\b/,
	boolean: /\b(?:False|True)\b/,
	number: /\bNaN\b|-?\bInfinity\b|[+-]?\b(?:0x[\da-fA-F]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/,
	operator: /\/\\|\/\/\\\\|&&|\|\||[!=]=|===|\/\/|->|\+\+|::|[+*#@=:?<>|\\\u2227\u2a53\u2261\u2afd\u03bb\u2192]/,
	punctuation: /\.\.|[{}\[\](),./]/,
	"class-name": /\b[A-Z]\w*\b/
}, Prism.languages.dhall.string.inside.interpolation.inside.expression.inside = Prism.languages.dhall;
! function(i) {
	i.languages.diff = {
		coord: [/^(?:\*{3}|-{3}|\+{3}).*$/m, /^@@.*@@$/m, /^\d.*$/m]
	};
	var r = {
		"deleted-sign": "-",
		"deleted-arrow": "<",
		"inserted-sign": "+",
		"inserted-arrow": ">",
		unchanged: " ",
		diff: "!"
	};
	Object.keys(r).forEach(function(e) {
		var n = r[e],
			a = [];
		/^\w+$/.test(e) || a.push(/\w+/.exec(e)[0]), "diff" === e && a.push("bold"), i.languages.diff[e] = {
			pattern: RegExp("^(?:[" + n + "].*(?:\r\n?|\n|(?![\\s\\S])))+", "m"),
			alias: a,
			inside: {
				line: {
					pattern: /(.)(?=[\s\S]).*(?:\r\n?|\n)?/,
					lookbehind: !0
				},
				prefix: {
					pattern: /[\s\S]/,
					alias: /\w+/.exec(e)[0]
				}
			}
		}
	}), Object.defineProperty(i.languages.diff, "PREFIXES", {
		value: r
	})
}(Prism);
! function(h) {
	function v(e, n) {
		return "___" + e.toUpperCase() + n + "___"
	}
	Object.defineProperties(h.languages["markup-templating"] = {}, {
		buildPlaceholders: {
			value: function(a, r, e, o) {
				if (a.language === r) {
					var c = a.tokenStack = [];
					a.code = a.code.replace(e, function(e) {
						if ("function" == typeof o && !o(e)) return e;
						for (var n, t = c.length; - 1 !== a.code.indexOf(n = v(r, t));) ++t;
						return c[t] = e, n
					}), a.grammar = h.languages.markup
				}
			}
		},
		tokenizePlaceholders: {
			value: function(p, k) {
				if (p.language === k && p.tokenStack) {
					p.grammar = h.languages[k];
					var m = 0,
						d = Object.keys(p.tokenStack);
					! function e(n) {
						for (var t = 0; t < n.length && !(m >= d.length); t++) {
							var a = n[t];
							if ("string" == typeof a || a.content && "string" == typeof a.content) {
								var r = d[m],
									o = p.tokenStack[r],
									c = "string" == typeof a ? a : a.content,
									i = v(k, r),
									u = c.indexOf(i);
								if (-1 < u) {
									++m;
									var g = c.substring(0, u),
										l = new h.Token(k, h.tokenize(o, p.grammar), "language-" + k, o),
										s = c.substring(u + i.length),
										f = [];
									g && f.push.apply(f, e([g])), f.push(l), s && f.push.apply(f, e([s])), "string" == typeof a ? n.splice.apply(
										n, [t, 1].concat(f)) : a.content = f
								}
							} else a.content && e(a.content)
						}
						return n
					}(p.tokens)
				}
			}
		}
	})
}(Prism);
! function(e) {
	e.languages.django = {
		comment: /^{#[\s\S]*?#}$/,
		tag: {
			pattern: /(^{%[+-]?\s*)\w+/,
			lookbehind: !0,
			alias: "keyword"
		},
		delimiter: {
			pattern: /^{[{%][+-]?|[+-]?[}%]}$/,
			alias: "punctuation"
		},
		string: {
			pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,
			greedy: !0
		},
		filter: {
			pattern: /(\|)\w+/,
			lookbehind: !0,
			alias: "function"
		},
		test: {
			pattern: /(\bis\s+(?:not\s+)?)(?!not\b)\w+/,
			lookbehind: !0,
			alias: "function"
		},
		function: /\b[a-z_]\w+(?=\s*\()/i,
		keyword: /\b(?:and|as|by|else|for|if|import|in|is|loop|not|or|recursive|with|without)\b/,
		operator: /[-+*/%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,
		number: /\b\d+(?:\.\d+)?\b/,
		boolean: /[Tt]rue|[Ff]alse|[Nn]one/,
		variable: /\b\w+?\b/,
		punctuation: /[{}[\](),.:;]/
	};
	var n = /{{[\s\S]*?}}|{%[\s\S]*?%}|{#[\s\S]*?#}/g,
		o = e.languages["markup-templating"];
	e.hooks.add("before-tokenize", function(e) {
		o.buildPlaceholders(e, "django", n)
	}), e.hooks.add("after-tokenize", function(e) {
		o.tokenizePlaceholders(e, "django")
	}), e.languages.jinja2 = e.languages.django, e.hooks.add("before-tokenize", function(e) {
		o.buildPlaceholders(e, "jinja2", n)
	}), e.hooks.add("after-tokenize", function(e) {
		o.tokenizePlaceholders(e, "jinja2")
	})
}(Prism);
Prism.languages["dns-zone-file"] = {
	comment: /;.*/,
	string: {
		pattern: /"(?:\\.|[^"\\\r\n])*"/,
		greedy: !0
	},
	variable: [{
		pattern: /(^\$ORIGIN[ \t]+)\S+/m,
		lookbehind: !0
	}, {
		pattern: /(^|\s)@(?=\s|$)/,
		lookbehind: !0
	}],
	keyword: /^\$(?:ORIGIN|INCLUDE|TTL)(?=\s|$)/m,
	class: {
		pattern: /(^|\s)(?:IN|CH|CS|HS)(?=\s|$)/, lookbehind: !0, alias: "keyword"
	},
	type: {
		pattern: /(^|\s)(?:A|A6|AAAA|AFSDB|APL|ATMA|CAA|CDNSKEY|CDS|CERT|CNAME|DHCID|DLV|DNAME|DNSKEY|DS|EID|GID|GPOS|HINFO|HIP|IPSECKEY|ISDN|KEY|KX|LOC|MAILA|MAILB|MB|MD|MF|MG|MINFO|MR|MX|NAPTR|NB|NBSTAT|NIMLOC|NINFO|NS|NSAP|NSAP-PTR|NSEC|NSEC3|NSEC3PARAM|NULL|NXT|OPENPGPKEY|PTR|PX|RKEY|RP|RRSIG|RT|SIG|SINK|SMIMEA|SOA|SPF|SRV|SSHFP|TA|TKEY|TLSA|TSIG|TXT|UID|UINFO|UNSPEC|URI|WKS|X25)(?=\s|$)/,
		lookbehind: !0,
		alias: "keyword"
	},
	punctuation: /[()]/
}, Prism.languages["dns-zone"] = Prism.languages["dns-zone-file"];
! function(e) {
	var r = "(?:[ \t]+(?![ \t])(?:<SP_BS>)?|<SP_BS>)".replace(/<SP_BS>/g, function() {
			return "\\\\[\r\n](?:\\s|\\\\[\r\n]|#.*(?!.))*(?![\\s#]|\\\\[\r\n])"
		}),
		n = "\"(?:[^\"\\\\\r\n]|\\\\(?:\r\n|[^]))*\"|'(?:[^'\\\\\r\n]|\\\\(?:\r\n|[^]))*'",
		t = "--[\\w-]+=(?:<STR>|(?![\"'])(?:[^\\s\\\\]|\\\\.)+)".replace(/<STR>/g, function() {
			return n
		}),
		o = {
			pattern: RegExp(n),
			greedy: !0
		},
		i = {
			pattern: /(^[ \t]*)#.*/m,
			lookbehind: !0,
			greedy: !0
		};

	function a(e, n) {
		return e = e.replace(/<OPT>/g, function() {
			return t
		}).replace(/<SP>/g, function() {
			return r
		}), RegExp(e, n)
	}
	e.languages.docker = {
		instruction: {
			pattern: /(^[ \t]*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)(?:\\.|[^\r\n\\])*(?:\\$(?:\s|#.*$)*(?![\s#])(?:\\.|[^\r\n\\])*)*/im,
			lookbehind: !0,
			greedy: !0,
			inside: {
				options: {
					pattern: a("(^(?:ONBUILD<SP>)?\\w+<SP>)<OPT>(?:<SP><OPT>)*", "i"),
					lookbehind: !0,
					greedy: !0,
					inside: {
						property: {
							pattern: /(^|\s)--[\w-]+/,
							lookbehind: !0
						},
						string: [o, {
							pattern: /(=)(?!["'])(?:[^\s\\]|\\.)+/,
							lookbehind: !0
						}],
						operator: /\\$/m,
						punctuation: /=/
					}
				},
				keyword: [{
					pattern: a("(^(?:ONBUILD<SP>)?HEALTHCHECK<SP>(?:<OPT><SP>)*)(?:CMD|NONE)\\b", "i"),
					lookbehind: !0,
					greedy: !0
				}, {
					pattern: a("(^(?:ONBUILD<SP>)?FROM<SP>(?:<OPT><SP>)*(?!--)[^ \t\\\\]+<SP>)AS", "i"),
					lookbehind: !0,
					greedy: !0
				}, {
					pattern: a("(^ONBUILD<SP>)\\w+", "i"),
					lookbehind: !0,
					greedy: !0
				}, {
					pattern: /^\w+/,
					greedy: !0
				}],
				comment: i,
				string: o,
				variable: /\$(?:\w+|\{[^{}"'\\]*\})/,
				operator: /\\$/m
			}
		},
		comment: i
	}, e.languages.dockerfile = e.languages.docker
}(Prism);
! function(e) {
	var n = "(?:" + ["[a-zA-Z_\\x80-\\uFFFF][\\w\\x80-\\uFFFF]*", "-?(?:\\.\\d+|\\d+(?:\\.\\d*)?)",
			'"[^"\\\\]*(?:\\\\[^][^"\\\\]*)*"',
			"<(?:[^<>]|(?!\x3c!--)<(?:[^<>\"']|\"[^\"]*\"|'[^']*')+>|\x3c!--(?:[^-]|-(?!->))*--\x3e)*>"
		].join("|") + ")",
		a = {
			markup: {
				pattern: /(^<)[\s\S]+(?=>$)/,
				lookbehind: !0,
				alias: ["language-markup", "language-html", "language-xml"],
				inside: e.languages.markup
			}
		};

	function r(e, a) {
		return RegExp(e.replace(/<ID>/g, function() {
			return n
		}), a)
	}
	e.languages.dot = {
		comment: {
			pattern: /\/\/.*|\/\*[\s\S]*?\*\/|^#.*/m,
			greedy: !0
		},
		"graph-name": {
			pattern: r("(\\b(?:digraph|graph|subgraph)[ \t\r\n]+)<ID>", "i"),
			lookbehind: !0,
			greedy: !0,
			alias: "class-name",
			inside: a
		},
		"attr-value": {
			pattern: r("(=[ \t\r\n]*)<ID>"),
			lookbehind: !0,
			greedy: !0,
			inside: a
		},
		"attr-name": {
			pattern: r("([\\[;, \t\r\n])<ID>(?=[ \t\r\n]*=)"),
			lookbehind: !0,
			greedy: !0,
			inside: a
		},
		keyword: /\b(?:digraph|edge|graph|node|strict|subgraph)\b/i,
		"compass-point": {
			pattern: /(:[ \t\r\n]*)(?:[ns][ew]?|[ewc_])(?![\w\x80-\uFFFF])/,
			lookbehind: !0,
			alias: "builtin"
		},
		node: {
			pattern: r("(^|[^-.\\w\\x80-\\uFFFF\\\\])<ID>"),
			lookbehind: !0,
			greedy: !0,
			inside: a
		},
		operator: /[=:]|-[->]/,
		punctuation: /[\[\]{};,]/
	}, e.languages.gv = e.languages.dot
}(Prism);
Prism.languages.ebnf = {
	comment: /\(\*[\s\S]*?\*\)/,
	string: {
		pattern: /"[^"\r\n]*"|'[^'\r\n]*'/,
		greedy: !0
	},
	special: {
		pattern: /\?[^?\r\n]*\?/,
		greedy: !0,
		alias: "class-name"
	},
	definition: {
		pattern: /^(\s*)[a-z]\w*(?:[ \t]+[a-z]\w*)*(?=\s*=)/im,
		lookbehind: !0,
		alias: ["rule", "keyword"]
	},
	rule: /\b[a-z]\w*(?:[ \t]+[a-z]\w*)*\b/i,
	punctuation: /\([:/]|[:/]\)|[.,;()[\]{}]/,
	operator: /[-=|*/!]/
};
Prism.languages.editorconfig = {
	comment: /[;#].*/,
	section: {
		pattern: /(^[ \t]*)\[.+]/m,
		lookbehind: !0,
		alias: "keyword",
		inside: {
			regex: /\\\\[\[\]{},!?.*]/,
			operator: /[!?]|\.\.|\*{1,2}/,
			punctuation: /[\[\]{},]/
		}
	},
	property: {
		pattern: /(^[ \t]*)[^\s=]+(?=[ \t]*=)/m,
		lookbehind: !0
	},
	value: {
		pattern: /=.*/,
		alias: "string",
		inside: {
			punctuation: /^=/
		}
	}
};
Prism.languages.eiffel = {
	comment: /--.*/,
	string: [{
		pattern: /"([^[]*)\[[\s\S]*?\]\1"/,
		greedy: !0
	}, {
		pattern: /"([^{]*)\{[\s\S]*?\}\1"/,
		greedy: !0
	}, {
		pattern: /"(?:%(?:(?!\n)\s)*\n\s*%|%\S|[^%"\r\n])*"/,
		greedy: !0
	}],
	char: /'(?:%.|[^%'\r\n])+'/,
	keyword: /\b(?:across|agent|alias|all|and|attached|as|assign|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\b/i,
	boolean: /\b(?:True|False)\b/i,
	"class-name": {
		pattern: /\b[A-Z][\dA-Z_]*\b/,
		alias: "builtin"
	},
	number: [/\b0[xcb][\da-f](?:_*[\da-f])*\b/i,
		/(?:\b\d(?:_*\d)*)?\.(?:(?:\d(?:_*\d)*)?e[+-]?)?\d(?:_*\d)*\b|\b\d(?:_*\d)*\b\.?/i
	],
	punctuation: /:=|<<|>>|\(\||\|\)|->|\.(?=\w)|[{}[\];(),:?]/,
	operator: /\\\\|\|\.\.\||\.\.|\/[~\/=]?|[><]=?|[-+*^=~]/
};
! function(e) {
	e.languages.ejs = {
		delimiter: {
			pattern: /^<%[-_=]?|[-_]?%>$/,
			alias: "punctuation"
		},
		comment: /^#[\s\S]*/,
		"language-javascript": {
			pattern: /[\s\S]+/,
			inside: e.languages.javascript
		}
	}, e.hooks.add("before-tokenize", function(a) {
		e.languages["markup-templating"].buildPlaceholders(a, "ejs", /<%(?!%)[\s\S]+?%>/g)
	}), e.hooks.add("after-tokenize", function(a) {
		e.languages["markup-templating"].tokenizePlaceholders(a, "ejs")
	}), e.languages.eta = e.languages.ejs
}(Prism);
Prism.languages.elixir = {
	doc: {
		pattern: /@(?:doc|moduledoc)\s+(?:("""|''')[\s\S]*?\1|("|')(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2)/,
		inside: {
			attribute: /^@\w+/,
			string: /['"][\s\S]+/
		}
	},
	comment: {
		pattern: /#.*/m,
		greedy: !0
	},
	regex: {
		pattern: /~[rR](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|[^\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[uismxfr]*/,
		greedy: !0
	},
	string: [{
		pattern: /~[cCsSwW](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|#\{[^}]+\}|#(?!\{)|[^#\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[csa]?/,
		greedy: !0,
		inside: {}
	}, {
		pattern: /("""|''')[\s\S]*?\1/,
		greedy: !0,
		inside: {}
	}, {
		pattern: /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
		greedy: !0,
		inside: {}
	}],
	atom: {
		pattern: /(^|[^:]):\w+/,
		lookbehind: !0,
		alias: "symbol"
	},
	module: {
		pattern: /\b[A-Z]\w*\b/,
		alias: "class-name"
	},
	"attr-name": /\w+\??:(?!:)/,
	argument: {
		pattern: /(^|[^&])&\d+/,
		lookbehind: !0,
		alias: "variable"
	},
	attribute: {
		pattern: /@\w+/,
		alias: "variable"
	},
	function: /\b[_a-zA-Z]\w*[?!]?(?:(?=\s*(?:\.\s*)?\()|(?=\/\d+))/,
	number: /\b(?:0[box][a-f\d_]+|\d[\d_]*)(?:\.[\d_]+)?(?:e[+-]?[\d_]+)?\b/i,
	keyword: /\b(?:after|alias|and|case|catch|cond|def(?:callback|exception|impl|module|p|protocol|struct|delegate)?|do|else|end|fn|for|if|import|not|or|raise|require|rescue|try|unless|use|when)\b/,
	boolean: /\b(?:true|false|nil)\b/,
	operator: [/\bin\b|&&?|\|[|>]?|\\\\|::|\.\.\.?|\+\+?|-[->]?|<[-=>]|>=|!==?|\B!|=(?:==?|[>~])?|[*\/^]/, {
		pattern: /([^<])<(?!<)/,
		lookbehind: !0
	}, {
		pattern: /([^>])>(?!>)/,
		lookbehind: !0
	}],
	punctuation: /<<|>>|[.,%\[\]{}()]/
}, Prism.languages.elixir.string.forEach(function(e) {
	e.inside = {
		interpolation: {
			pattern: /#\{[^}]+\}/,
			inside: {
				delimiter: {
					pattern: /^#\{|\}$/,
					alias: "punctuation"
				},
				rest: Prism.languages.elixir
			}
		}
	}
});
Prism.languages.elm = {
	comment: /--.*|{-[\s\S]*?-}/,
	char: {
		pattern: /'(?:[^\\'\r\n]|\\(?:[abfnrtv\\']|\d+|x[0-9a-fA-F]+))'/,
		greedy: !0
	},
	string: [{
		pattern: /"""[\s\S]*?"""/,
		greedy: !0
	}, {
		pattern: /"(?:[^\\"\r\n]|\\.)*"/,
		greedy: !0
	}],
	"import-statement": {
		pattern: /^\s*import\s+[A-Z]\w*(?:\.[A-Z]\w*)*(?:\s+as\s+(?:[A-Z]\w*)(?:\.[A-Z]\w*)*)?(?:\s+exposing\s+)?/m,
		inside: {
			keyword: /\b(?:import|as|exposing)\b/
		}
	},
	keyword: /\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\b/,
	builtin: /\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\b/,
	number: /\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0x[0-9a-f]+)\b/i,
	operator: /\s\.\s|[+\-/*=.$<>:&|^?%#@~!]{2,}|[+\-/*=$<>:&|^?%#@~!]/,
	hvariable: /\b(?:[A-Z]\w*\.)*[a-z]\w*\b/,
	constant: /\b(?:[A-Z]\w*\.)*[A-Z]\w*\b/,
	punctuation: /[{}[\]|(),.:]/
};
Prism.languages.lua = {
	comment: /^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,
	string: {
		pattern: /(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[^z]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,
		greedy: !0
	},
	number: /\b0x[a-f\d]+(?:\.[a-f\d]*)?(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|(?:\.\d*)?(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,
	keyword: /\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,
	function: /(?!\d)\w+(?=\s*(?:[({]))/,
	operator: [/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/, {
		pattern: /(^|[^.])\.\.(?!\.)/,
		lookbehind: !0
	}],
	punctuation: /[\[\](){},;]|\.+|:+/
};
! function(e) {
	e.languages.etlua = {
		delimiter: {
			pattern: /^<%[-=]?|-?%>$/,
			alias: "punctuation"
		},
		"language-lua": {
			pattern: /[\s\S]+/,
			inside: e.languages.lua
		}
	}, e.hooks.add("before-tokenize", function(a) {
		e.languages["markup-templating"].buildPlaceholders(a, "etlua", /<%[\s\S]+?%>/g)
	}), e.hooks.add("after-tokenize", function(a) {
		e.languages["markup-templating"].tokenizePlaceholders(a, "etlua")
	})
}(Prism);
! function(n) {
	n.languages.erb = n.languages.extend("ruby", {}), n.languages.insertBefore("erb", "comment", {
		delimiter: {
			pattern: /^<%=?|%>$/,
			alias: "punctuation"
		}
	}), n.hooks.add("before-tokenize", function(e) {
		n.languages["markup-templating"].buildPlaceholders(e, "erb",
			/<%=?(?:[^\r\n]|[\r\n](?!=begin)|[\r\n]=begin\s[\s\S]*?^=end)+?%>/gm)
	}), n.hooks.add("after-tokenize", function(e) {
		n.languages["markup-templating"].tokenizePlaceholders(e, "erb")
	})
}(Prism);
Prism.languages.erlang = {
	comment: /%.+/,
	string: {
		pattern: /"(?:\\.|[^\\"\r\n])*"/,
		greedy: !0
	},
	"quoted-function": {
		pattern: /'(?:\\.|[^\\'\r\n])+'(?=\()/,
		alias: "function"
	},
	"quoted-atom": {
		pattern: /'(?:\\.|[^\\'\r\n])+'/,
		alias: "atom"
	},
	boolean: /\b(?:true|false)\b/,
	keyword: /\b(?:fun|when|case|of|end|if|receive|after|try|catch)\b/,
	number: [/\$\\?./, /\d+#[a-z0-9]+/i, /(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i],
	function: /\b[a-z][\w@]*(?=\()/,
	variable: {
		pattern: /(^|[^@])(?:\b|\?)[A-Z_][\w@]*/,
		lookbehind: !0
	},
	operator: [
		/[=\/<>:]=|=[:\/]=|\+\+?|--?|[=*\/!]|\b(?:bnot|div|rem|band|bor|bxor|bsl|bsr|not|and|or|xor|orelse|andalso)\b/, {
			pattern: /(^|[^<])<(?!<)/,
			lookbehind: !0
		}, {
			pattern: /(^|[^>])>(?!>)/,
			lookbehind: !0
		}
	],
	atom: /\b[a-z][\w@]*/,
	punctuation: /[()[\]{}:;,.#|]|<<|>>/
};
Prism.languages["excel-formula"] = {
	comment: {
		pattern: /(\bN\(\s*)"(?:[^"]|"")*"(?=\s*\))/i,
		lookbehind: !0,
		greedy: !0
	},
	string: {
		pattern: /"(?:[^"]|"")*"(?!")/,
		greedy: !0
	},
	reference: {
		pattern: /(?:'[^']*'|(?:[^\s()[\]{}<>*?"';,$&]*\[[^^\s()[\]{}<>*?"']+\])?\w+)!/,
		greedy: !0,
		alias: "string",
		inside: {
			operator: /!$/,
			punctuation: /'/,
			sheet: {
				pattern: /[^[\]]+$/,
				alias: "function"
			},
			file: {
				pattern: /\[[^[\]]+\]$/,
				inside: {
					punctuation: /[[\]]/
				}
			},
			path: /[\s\S]+/
		}
	},
	"function-name": {
		pattern: /\b[A-Z]\w*(?=\()/i,
		alias: "keyword"
	},
	range: {
		pattern: /\$?\b(?:[A-Z]+\$?\d+:\$?[A-Z]+\$?\d+|[A-Z]+:\$?[A-Z]+|\d+:\$?\d+)\b/i,
		alias: "property",
		inside: {
			operator: /:/,
			cell: /\$?[A-Z]+\$?\d+/i,
			column: /\$?[A-Z]+/i,
			row: /\$?\d+/
		}
	},
	cell: {
		pattern: /\b[A-Z]+\d+\b|\$[A-Za-z]+\$?\d+\b|\b[A-Za-z]+\$\d+\b/,
		alias: "property"
	},
	number: /(?:\b\d+(?:\.\d+)?|\B\.\d+)(?:e[+-]?\d+)?\b/i,
	boolean: /\b(?:TRUE|FALSE)\b/i,
	operator: /[-+*/^%=&,]|<[=>]?|>=?/,
	punctuation: /[[\]();{}|]/
}, Prism.languages.xlsx = Prism.languages.xls = Prism.languages["excel-formula"];
Prism.languages.fsharp = Prism.languages.extend("clike", {
	comment: [{
		pattern: /(^|[^\\])\(\*(?!\))[\s\S]*?\*\)/,
		lookbehind: !0
	}, {
		pattern: /(^|[^\\:])\/\/.*/,
		lookbehind: !0
	}],
	string: {
		pattern: /(?:"""[\s\S]*?"""|@"(?:""|[^"])*"|"(?:\\[\s\S]|[^\\"])*")B?|'(?:[^\\']|\\(?:.|\d{3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}|U[a-fA-F\d]{8}))'B?/,
		greedy: !0
	},
	"class-name": {
		pattern: /(\b(?:exception|inherit|interface|new|of|type)\s+|\w\s*:\s*|\s:\??>\s*)[.\w]+\b(?:\s*(?:->|\*)\s*[.\w]+\b)*(?!\s*[:.])/,
		lookbehind: !0,
		inside: {
			operator: /->|\*/,
			punctuation: /\./
		}
	},
	keyword: /\b(?:let|return|use|yield)(?:!\B|\b)|\b(?:abstract|and|as|assert|base|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|global|if|in|inherit|inline|interface|internal|lazy|match|member|module|mutable|namespace|new|not|null|of|open|or|override|private|public|rec|select|static|struct|then|to|true|try|type|upcast|val|void|when|while|with|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|include|method|mixin|object|parallel|process|protected|pure|sealed|tailcall|trait|virtual|volatile)\b/,
	number: [/\b0x[\da-fA-F]+(?:un|lf|LF)?\b/, /\b0b[01]+(?:y|uy)?\b/,
		/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[fm]|e[+-]?\d+)?\b/i, /\b\d+(?:[IlLsy]|u[lsy]?|UL)?\b/
	],
	operator: /([<>~&^])\1\1|([*.:<>&])\2|<-|->|[!=:]=|<?\|{1,3}>?|\??(?:<=|>=|<>|[-+*/%=<>])\??|[!?^&]|~[+~-]|:>|:\?>?/
}), Prism.languages.insertBefore("fsharp", "keyword", {
	preprocessor: {
		pattern: /^[^\r\n\S]*#.*/m,
		alias: "property",
		inside: {
			directive: {
				pattern: /(\s*#)\b(?:else|endif|if|light|line|nowarn)\b/,
				lookbehind: !0,
				alias: "keyword"
			}
		}
	}
}), Prism.languages.insertBefore("fsharp", "punctuation", {
	"computation-expression": {
		pattern: /[_a-z]\w*(?=\s*\{)/i,
		alias: "keyword"
	}
}), Prism.languages.insertBefore("fsharp", "string", {
	annotation: {
		pattern: /\[<.+?>\]/,
		inside: {
			punctuation: /^\[<|>\]$/,
			"class-name": {
				pattern: /^\w+$|(^|;\s*)[A-Z]\w*(?=\()/,
				lookbehind: !0
			},
			"annotation-content": {
				pattern: /[\s\S]+/,
				inside: Prism.languages.fsharp
			}
		}
	}
});
! function(e) {
	var t = {
			function: /\b(?:TODOS?|FIX(?:MES?)?|NOTES?|BUGS?|XX+|HACKS?|WARN(?:ING)?|\?{2,}|!{2,})\b/
		},
		s = {
			number: /\\[^\s']|%\w/
		},
		i = {
			comment: [{
				pattern: /(^|\s)(?:! .*|!$)/,
				lookbehind: !0,
				inside: t
			}, {
				pattern: /(^|\s)\/\*\s[\s\S]*?\*\/(?=\s|$)/,
				lookbehind: !0,
				greedy: !0,
				inside: t
			}, {
				pattern: /(^|\s)!\[(={0,6})\[\s[\s\S]*?\]\2\](?=\s|$)/,
				lookbehind: !0,
				greedy: !0,
				inside: t
			}],
			number: [{
				pattern: /(^|\s)[+-]?\d+(?=\s|$)/,
				lookbehind: !0
			}, {
				pattern: /(^|\s)[+-]?0(?:b[01]+|o[0-7]+|d\d+|x[\dA-F]+)(?=\s|$)/i,
				lookbehind: !0
			}, {
				pattern: /(^|\s)[+-]?\d+\/\d+\.?(?=\s|$)/,
				lookbehind: !0
			}, {
				pattern: /(^|\s)\+?\d+\+\d+\/\d+(?=\s|$)/,
				lookbehind: !0
			}, {
				pattern: /(^|\s)-\d+-\d+\/\d+(?=\s|$)/,
				lookbehind: !0
			}, {
				pattern: /(^|\s)[+-]?(?:\d*\.\d+|\d+\.\d*|\d+)(?:e[+-]?\d+)?(?=\s|$)/i,
				lookbehind: !0
			}, {
				pattern: /(^|\s)NAN:\s+[\da-fA-F]+(?=\s|$)/,
				lookbehind: !0
			}, {
				pattern: /(^|\s)[+-]?0(?:b1\.[01]*|o1\.[0-7]*|d1\.\d*|x1\.[\dA-F]*)p\d+(?=\s|$)/i,
				lookbehind: !0
			}],
			regexp: {
				pattern: /(^|\s)R\/\s(?:\\\S|[^\\/])*\/(?:[idmsr]*|[idmsr]+-[idmsr]+)(?=\s|$)/,
				lookbehind: !0,
				alias: "number",
				inside: {
					variable: /\\\S/,
					keyword: /[+?*\[\]^$(){}.|]/,
					operator: {
						pattern: /(\/)[idmsr]+(?:-[idmsr]+)?/,
						lookbehind: !0
					}
				}
			},
			boolean: {
				pattern: /(^|\s)[tf](?=\s|$)/,
				lookbehind: !0
			},
			"custom-string": {
				pattern: /(^|\s)[A-Z0-9\-]+"\s(?:\\\S|[^"\\])*"/,
				lookbehind: !0,
				greedy: !0,
				alias: "string",
				inside: {
					number: /\\\S|%\w|\//
				}
			},
			"multiline-string": [{
				pattern: /(^|\s)STRING:\s+\S+(?:\n|\r\n).*(?:\n|\r\n)\s*;(?=\s|$)/,
				lookbehind: !0,
				greedy: !0,
				alias: "string",
				inside: {
					number: s.number,
					"semicolon-or-setlocal": {
						pattern: /((?:\n|\r\n)\s*);(?=\s|$)/,
						lookbehind: !0,
						alias: "function"
					}
				}
			}, {
				pattern: /(^|\s)HEREDOC:\s+\S+(?:\n|\r\n).*(?:\n|\r\n)\s*\S+(?=\s|$)/,
				lookbehind: !0,
				greedy: !0,
				alias: "string",
				inside: s
			}, {
				pattern: /(^|\s)\[(={0,6})\[\s[\s\S]*?\]\2\](?=\s|$)/,
				lookbehind: !0,
				greedy: !0,
				alias: "string",
				inside: s
			}],
			"special-using": {
				pattern: /(^|\s)USING:(?:\s\S+)*(?=\s+;(?:\s|$))/,
				lookbehind: !0,
				alias: "function",
				inside: {
					string: {
						pattern: /(\s)[^:\s]+/,
						lookbehind: !0
					}
				}
			},
			"stack-effect-delimiter": [{
				pattern: /(^|\s)(?:call|execute|eval)?\((?=\s)/,
				lookbehind: !0,
				alias: "operator"
			}, {
				pattern: /(\s)--(?=\s)/,
				lookbehind: !0,
				alias: "operator"
			}, {
				pattern: /(\s)\)(?=\s|$)/,
				lookbehind: !0,
				alias: "operator"
			}],
			combinators: {
				pattern: null,
				lookbehind: !0,
				alias: "keyword"
			},
			"kernel-builtin": {
				pattern: null,
				lookbehind: !0,
				alias: "variable"
			},
			"sequences-builtin": {
				pattern: null,
				lookbehind: !0,
				alias: "variable"
			},
			"math-builtin": {
				pattern: null,
				lookbehind: !0,
				alias: "variable"
			},
			"constructor-word": {
				pattern: /(^|\s)<(?!=+>|-+>)\S+>(?=\s|$)/,
				lookbehind: !0,
				alias: "keyword"
			},
			"other-builtin-syntax": {
				pattern: null,
				lookbehind: !0,
				alias: "operator"
			},
			"conventionally-named-word": {
				pattern: /(^|\s)(?!")(?:(?:set|change|with|new)-\S+|\$\S+|>[^>\s]+|[^:>\s]+>|[^>\s]+>[^>\s]+|\+[^+\s]+\+|[^?\s]+\?|\?[^?\s]+|[^>\s]+>>|>>[^>\s]+|[^<\s]+<<|\([^()\s]+\)|[^!\s]+!|[^*\s]\S*\*|[^.\s]\S*\.)(?=\s|$)/,
				lookbehind: !0,
				alias: "keyword"
			},
			"colon-syntax": {
				pattern: /(^|\s)(?:[A-Z0-9\-]+#?)?:{1,2}\s+(?:;\S+|(?!;)\S+)(?=\s|$)/,
				lookbehind: !0,
				greedy: !0,
				alias: "function"
			},
			"semicolon-or-setlocal": {
				pattern: /(\s)(?:;|:>)(?=\s|$)/,
				lookbehind: !0,
				alias: "function"
			},
			"curly-brace-literal-delimiter": [{
				pattern: /(^|\s)[a-z]*\{(?=\s)/i,
				lookbehind: !0,
				alias: "operator"
			}, {
				pattern: /(\s)\}(?=\s|$)/,
				lookbehind: !0,
				alias: "operator"
			}],
			"quotation-delimiter": [{
				pattern: /(^|\s)\[(?=\s)/,
				lookbehind: !0,
				alias: "operator"
			}, {
				pattern: /(\s)\](?=\s|$)/,
				lookbehind: !0,
				alias: "operator"
			}],
			"normal-word": {
				pattern: /(^|\s)[^"\s]\S*(?=\s|$)/,
				lookbehind: !0
			},
			string: {
				pattern: /"(?:\\\S|[^"\\])*"/,
				greedy: !0,
				inside: s
			}
		},
		n = function(e) {
			return (e + "").replace(/([.?*+\^$\[\]\\(){}|\-])/g, "\\$1")
		},
		r = function(e) {
			return new RegExp("(^|\\s)(?:" + e.map(n).join("|") + ")(?=\\s|$)")
		},
		a = {
			"kernel-builtin": ["or", "2nipd", "4drop", "tuck", "wrapper", "nip", "wrapper?", "callstack>array", "die", "dupd",
				"callstack", "callstack?", "3dup", "hashcode", "pick", "4nip", "build", ">boolean", "nipd", "clone", "5nip", "eq?",
				"?", "=", "swapd", "2over", "clear", "2dup", "get-retainstack", "not", "tuple?", "dup", "3nipd", "call", "-rotd",
				"object", "drop", "assert=", "assert?", "-rot", "execute", "boa", "get-callstack", "curried?", "3drop", "pickd",
				"overd", "over", "roll", "3nip", "swap", "and", "2nip", "rotd", "throw", "(clone)", "hashcode*", "spin", "reach",
				"4dup", "equal?", "get-datastack", "assert", "2drop", "<wrapper>", "boolean?", "identity-hashcode",
				"identity-tuple?", "null", "composed?", "new", "5drop", "rot", "-roll", "xor", "identity-tuple", "boolean"
			],
			"other-builtin-syntax": ["=======", "recursive", "flushable", ">>", "<<<<<<", "M\\", "B", "PRIVATE>", "\\", "======",
				"final", "inline", "delimiter", "deprecated", "<PRIVATE", ">>>>>>", "<<<<<<<", "parse-complex",
				"malformed-complex", "read-only", ">>>>>>>", "call-next-method", "<<", "foldable", "$", "$[", "${"
			],
			"sequences-builtin": ["member-eq?", "mismatch", "append", "assert-sequence=", "longer", "repetition", "clone-like",
				"3sequence", "assert-sequence?", "last-index-from", "reversed", "index-from", "cut*", "pad-tail", "join-as",
				"remove-eq!", "concat-as", "but-last", "snip", "nths", "nth", "sequence", "longest", "slice?", "<slice>",
				"remove-nth", "tail-slice", "empty?", "tail*", "member?", "virtual-sequence?", "set-length", "drop-prefix", "iota",
				"unclip", "bounds-error?", "unclip-last-slice", "non-negative-integer-expected", "non-negative-integer-expected?",
				"midpoint@", "longer?", "?set-nth", "?first", "rest-slice", "prepend-as", "prepend", "fourth", "sift",
				"subseq-start", "new-sequence", "?last", "like", "first4", "1sequence", "reverse", "slice", "virtual@",
				"repetition?", "set-last", "index", "4sequence", "max-length", "set-second", "immutable-sequence", "first2",
				"first3", "supremum", "unclip-slice", "suffix!", "insert-nth", "tail", "3append", "short", "suffix", "concat",
				"flip", "immutable?", "reverse!", "2sequence", "sum", "delete-all", "indices", "snip-slice", "<iota>",
				"check-slice", "sequence?", "head", "append-as", "halves", "sequence=", "collapse-slice", "?second",
				"slice-error?", "product", "bounds-check?", "bounds-check", "immutable", "virtual-exemplar", "harvest", "remove",
				"pad-head", "last", "set-fourth", "cartesian-product", "remove-eq", "shorten", "shorter", "reversed?", "shorter?",
				"shortest", "head-slice", "pop*", "tail-slice*", "but-last-slice", "iota?", "append!", "cut-slice",
				"new-resizable", "head-slice*", "sequence-hashcode", "pop", "set-nth", "?nth", "second", "join",
				"immutable-sequence?", "<reversed>", "3append-as", "virtual-sequence", "subseq?", "remove-nth!", "length",
				"last-index", "lengthen", "assert-sequence", "copy", "move", "third", "first", "tail?", "set-first", "prefix",
				"bounds-error", "<repetition>", "exchange", "surround", "cut", "min-length", "set-third", "push-all", "head?",
				"subseq-start-from", "delete-slice", "rest", "sum-lengths", "head*", "infimum", "remove!", "glue", "slice-error",
				"subseq", "push", "replace-slice", "subseq-as", "unclip-last"
			],
			"math-builtin": ["number=", "next-power-of-2", "?1+", "fp-special?", "imaginary-part", "float>bits", "number?",
				"fp-infinity?", "bignum?", "fp-snan?", "denominator", "gcd", "*", "+", "fp-bitwise=", "-", "u>=", "/", ">=",
				"bitand", "power-of-2?", "log2-expects-positive", "neg?", "<", "log2", ">", "integer?", "number", "bits>double",
				"2/", "zero?", "bits>float", "float?", "shift", "ratio?", "rect>", "even?", "ratio", "fp-sign", "bitnot",
				">fixnum", "complex?", "/i", "integer>fixnum", "/f", "sgn", ">bignum", "next-float", "u<", "u>", "mod", "recip",
				"rational", ">float", "2^", "integer", "fixnum?", "neg", "fixnum", "sq", "bignum", ">rect", "bit?", "fp-qnan?",
				"simple-gcd", "complex", "<fp-nan>", "real", ">fraction", "double>bits", "bitor", "rem", "fp-nan-payload",
				"real-part", "log2-expects-positive?", "prev-float", "align", "unordered?", "float", "fp-nan?", "abs", "bitxor",
				"integer>fixnum-strict", "u<=", "odd?", "<=", "/mod", ">integer", "real?", "rational?", "numerator"
			]
		};
	Object.keys(a).forEach(function(e) {
		i[e].pattern = r(a[e])
	});
	i.combinators.pattern = r(["2bi", "while", "2tri", "bi*", "4dip", "both?", "same?", "tri@", "curry", "prepose", "3bi",
		"?if", "tri*", "2keep", "3keep", "curried", "2keepd", "when", "2bi*", "2tri*", "4keep", "bi@", "keepdd", "do",
		"unless*", "tri-curry", "if*", "loop", "bi-curry*", "when*", "2bi@", "2tri@", "with", "2with", "either?", "bi",
		"until", "3dip", "3curry", "tri-curry*", "tri-curry@", "bi-curry", "keepd", "compose", "2dip", "if", "3tri",
		"unless", "tuple", "keep", "2curry", "tri", "most", "while*", "dip", "composed", "bi-curry@", "find-last-from",
		"trim-head-slice", "map-as", "each-from", "none?", "trim-tail", "partition", "if-empty", "accumulate*", "reject!",
		"find-from", "accumulate-as", "collector-for-as", "reject", "map", "map-sum", "accumulate!", "2each-from", "follow",
		"supremum-by", "map!", "unless-empty", "collector", "padding", "reduce-index", "replicate-as", "infimum-by",
		"trim-tail-slice", "count", "find-index", "filter", "accumulate*!", "reject-as", "map-integers", "map-find",
		"reduce", "selector", "interleave", "2map", "filter-as", "binary-reduce", "map-index-as", "find", "produce",
		"filter!", "replicate", "cartesian-map", "cartesian-each", "find-index-from", "map-find-last", "3map-as", "3map",
		"find-last", "selector-as", "2map-as", "2map-reduce", "accumulate", "each", "each-index", "accumulate*-as",
		"when-empty", "all?", "collector-as", "push-either", "new-like", "collector-for", "2selector", "push-if", "2all?",
		"map-reduce", "3each", "any?", "trim-slice", "2reduce", "change-nth", "produce-as", "2each", "trim", "trim-head",
		"cartesian-find", "map-index", "if-zero", "each-integer", "unless-zero", "(find-integer)", "when-zero",
		"find-last-integer", "(all-integers?)", "times", "(each-integer)", "find-integer", "all-integers?",
		"unless-negative", "if-positive", "when-positive", "when-negative", "unless-positive", "if-negative", "case",
		"2cleave", "cond>quot", "case>quot", "3cleave", "wrong-values", "to-fixed-point", "alist>quot", "cond", "cleave",
		"call-effect", "recursive-hashcode", "spread", "deep-spread>quot", "2||", "0||", "n||", "0&&", "2&&", "3||", "1||",
		"1&&", "n&&", "3&&", "smart-unless*", "keep-inputs", "reduce-outputs", "smart-when*", "cleave>array", "smart-with",
		"smart-apply", "smart-if", "inputs/outputs", "output>sequence-n", "map-outputs", "map-reduce-outputs", "dropping",
		"output>array", "smart-map-reduce", "smart-2map-reduce", "output>array-n", "nullary", "input<sequence",
		"append-outputs", "drop-inputs", "inputs", "smart-2reduce", "drop-outputs", "smart-reduce", "preserving",
		"smart-when", "outputs", "append-outputs-as", "smart-unless", "smart-if*", "sum-outputs", "input<sequence-unsafe",
		"output>sequence"
	]), e.languages.factor = i
}(Prism);
Prism.languages["firestore-security-rules"] = Prism.languages.extend("clike", {
	comment: /\/\/.*/,
	keyword: /\b(?:allow|function|if|match|null|return|rules_version|service)\b/,
	operator: /&&|\|\||[<>!=]=?|[-+*/%]|\b(?:in|is)\b/
}), delete Prism.languages["firestore-security-rules"]["class-name"], Prism.languages.insertBefore(
	"firestore-security-rules", "keyword", {
		path: {
			pattern: /(^|[\s(),])(?:\/(?:[\w\xA0-\uFFFF]+|\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)))+/,
			lookbehind: !0,
			greedy: !0,
			inside: {
				variable: {
					pattern: /\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)/,
					inside: {
						operator: /=/,
						keyword: /\*\*/,
						punctuation: /[.$(){}]/
					}
				},
				punctuation: /[/]/
			}
		},
		method: {
			pattern: /(\ballow\s+)[a-z]+(?:\s*,\s*[a-z]+)*(?=\s*[:;])/,
			lookbehind: !0,
			alias: "builtin",
			inside: {
				punctuation: /,/
			}
		}
	});
! function(a) {
	a.languages.flow = a.languages.extend("javascript", {}), a.languages.insertBefore("flow", "keyword", {
			type: [{
				pattern: /\b(?:[Nn]umber|[Ss]tring|[Bb]oolean|Function|any|mixed|null|void)\b/,
				alias: "tag"
			}]
		}), a.languages.flow["function-variable"].pattern =
		/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,
		delete a.languages.flow.parameter, a.languages.insertBefore("flow", "operator", {
			"flow-punctuation": {
				pattern: /\{\||\|\}/,
				alias: "punctuation"
			}
		}), Array.isArray(a.languages.flow.keyword) || (a.languages.flow.keyword = [a.languages.flow.keyword]), a.languages.flow
		.keyword.unshift({
			pattern: /(^|[^$]\b)(?:type|opaque|declare|Class)\b(?!\$)/,
			lookbehind: !0
		}, {
			pattern: /(^|[^$]\B)\$(?:await|Diff|Exact|Keys|ObjMap|PropertyType|Shape|Record|Supertype|Subtype|Enum)\b(?!\$)/,
			lookbehind: !0
		})
}(Prism);
Prism.languages.fortran = {
	"quoted-number": {
		pattern: /[BOZ](['"])[A-F0-9]+\1/i,
		alias: "number"
	},
	string: {
		pattern: /(?:\w+_)?(['"])(?:\1\1|&(?:\r\n?|\n)(?:[ \t]*!.*(?:\r\n?|\n)|(?![ \t]*!))|(?!\1).)*(?:\1|&)/,
		inside: {
			comment: {
				pattern: /(&(?:\r\n?|\n)\s*)!.*/,
				lookbehind: !0
			}
		}
	},
	comment: {
		pattern: /!.*/,
		greedy: !0
	},
	boolean: /\.(?:TRUE|FALSE)\.(?:_\w+)?/i,
	number: /(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[ED][+-]?\d+)?(?:_\w+)?/i,
	keyword: [/\b(?:INTEGER|REAL|DOUBLE ?PRECISION|COMPLEX|CHARACTER|LOGICAL)\b/i,
		/\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\b/i,
		/\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\b/i,
		/\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEWHERE|ELSEIF|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\b/i
	],
	operator: [/\*\*|\/\/|=>|[=\/]=|[<>]=?|::|[+\-*=%]|\.[A-Z]+\./i, {
		pattern: /(^|(?!\().)\/(?!\))/,
		lookbehind: !0
	}],
	punctuation: /\(\/|\/\)|[(),;:&]/
};
! function(n) {
	for (var i =
			"[^<()\"']|\\((?:<expr>)*\\)|<(?!#--)|<#--(?:[^-]|-(?!->))*--\x3e|\"(?:[^\\\\\"]|\\\\.)*\"|'(?:[^\\\\']|\\\\.)*'", e =
			0; e < 2; e++) i = i.replace(/<expr>/g, function() {
		return i
	});
	i = i.replace(/<expr>/g, "[^\\s\\S]");
	var t = {
		comment: /<#--[\s\S]*?-->/,
		string: [{
			pattern: /\br("|')(?:(?!\1)[^\\]|\\.)*\1/,
			greedy: !0
		}, {
			pattern: RegExp("(\"|')(?:(?!\\1|\\$\\{)[^\\\\]|\\\\.|\\$\\{(?:(?!\\})(?:<expr>))*\\})*\\1".replace(/<expr>/g,
				function() {
					return i
				})),
			greedy: !0,
			inside: {
				interpolation: {
					pattern: RegExp("((?:^|[^\\\\])(?:\\\\\\\\)*)\\$\\{(?:(?!\\})(?:<expr>))*\\}".replace(/<expr>/g, function() {
						return i
					})),
					lookbehind: !0,
					inside: {
						"interpolation-punctuation": {
							pattern: /^\$\{|\}$/,
							alias: "punctuation"
						},
						rest: null
					}
				}
			}
		}],
		keyword: /\b(?:as)\b/,
		boolean: /\b(?:true|false)\b/,
		"builtin-function": {
			pattern: /((?:^|[^?])\?\s*)\w+/,
			lookbehind: !0,
			alias: "function"
		},
		function: /\w+(?=\s*\()/,
		number: /\d+(?:\.\d+)?/,
		operator: /\.\.[<*!]?|->|--|\+\+|&&|\|\||\?{1,2}|[-+*/%!=<>]=?|\b(?:gt|gte|lt|lte)\b/,
		punctuation: /[,;.:()[\]{}]/
	};
	t.string[1].inside.interpolation.inside.rest = t, n.languages.ftl = {
		"ftl-comment": {
			pattern: /^<#--[\s\S]*/,
			alias: "comment"
		},
		"ftl-directive": {
			pattern: /^<[\s\S]+>$/,
			inside: {
				directive: {
					pattern: /(^<\/?)[#@][a-z]\w*/i,
					lookbehind: !0,
					alias: "keyword"
				},
				punctuation: /^<\/?|\/?>$/,
				content: {
					pattern: /\s*\S[\s\S]*/,
					alias: "ftl",
					inside: t
				}
			}
		},
		"ftl-interpolation": {
			pattern: /^\$\{[\s\S]*\}$/,
			inside: {
				punctuation: /^\$\{|\}$/,
				content: {
					pattern: /\s*\S[\s\S]*/,
					alias: "ftl",
					inside: t
				}
			}
		}
	}, n.hooks.add("before-tokenize", function(e) {
		var t = RegExp("<#--[^]*?--\x3e|</?[#@][a-zA-Z](?:<expr>)*?>|\\$\\{(?:<expr>)*?\\}".replace(/<expr>/g, function() {
			return i
		}), "gi");
		n.languages["markup-templating"].buildPlaceholders(e, "ftl", t)
	}), n.hooks.add("after-tokenize", function(e) {
		n.languages["markup-templating"].tokenizePlaceholders(e, "ftl")
	})
}(Prism);
Prism.languages.gamemakerlanguage = Prism.languages.gml = Prism.languages.extend("clike", {
	keyword: /\b(?:if|else|switch|case|default|break|for|repeat|while|do|until|continue|exit|return|globalvar|var|enum)\b/,
	number: /(?:\b0x[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ulf]{0,4}/i,
	operator: /[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not|with|at|xor)\b/,
	constant: /\b(?:self|other|all|noone|global|local|undefined|pointer_(?:invalid|null)|action_(?:stop|restart|continue|reverse)|pi|GM_build_date|GM_version|timezone_(?:local|utc)|gamespeed_(?:fps|microseconds)|ev_(?:create|destroy|step|alarm|keyboard|mouse|collision|other|draw|draw_(?:begin|end|pre|post)|keypress|keyrelease|trigger|(?:left|right|middle|no)_button|(?:left|right|middle)_press|(?:left|right|middle)_release|mouse_(?:enter|leave|wheel_up|wheel_down)|global_(?:left|right|middle)_button|global_(?:left|right|middle)_press|global_(?:left|right|middle)_release|joystick(?:1|2)_(?:left|right|up|down|button1|button2|button3|button4|button5|button6|button7|button8)|outside|boundary|game_start|game_end|room_start|room_end|no_more_lives|animation_end|end_of_path|no_more_health|user\d|step_(?:normal|begin|end)|gui|gui_begin|gui_end)|vk_(?:nokey|anykey|enter|return|shift|control|alt|escape|space|backspace|tab|pause|printscreen|left|right|up|down|home|end|delete|insert|pageup|pagedown|f\d|numpad\d|divide|multiply|subtract|add|decimal|lshift|lcontrol|lalt|rshift|rcontrol|ralt)|mb_(?:any|none|left|right|middle)|c_(?:aqua|black|blue|dkgray|fuchsia|gray|green|lime|ltgray|maroon|navy|olive|purple|red|silver|teal|white|yellow|orange)|fa_(?:left|center|right|top|middle|bottom|readonly|hidden|sysfile|volumeid|directory|archive)|pr_(?:pointlist|linelist|linestrip|trianglelist|trianglestrip|trianglefan)|bm_(?:complex|normal|add|max|subtract|zero|one|src_colour|inv_src_colour|src_color|inv_src_color|src_alpha|inv_src_alpha|dest_alpha|inv_dest_alpha|dest_colour|inv_dest_colour|dest_color|inv_dest_color|src_alpha_sat)|audio_(?:falloff_(?:none|inverse_distance|inverse_distance_clamped|linear_distance|linear_distance_clamped|exponent_distance|exponent_distance_clamped)|old_system|new_system|mono|stereo|3d)|cr_(?:default|none|arrow|cross|beam|size_nesw|size_ns|size_nwse|size_we|uparrow|hourglass|drag|appstart|handpoint|size_all)|spritespeed_framesper(?:second|gameframe)|asset_(?:object|unknown|sprite|sound|room|path|script|font|timeline|tiles|shader)|ds_type_(?:map|list|stack|queue|grid|priority)|ef_(?:explosion|ring|ellipse|firework|smoke|smokeup|star|spark|flare|cloud|rain|snow)|pt_shape_(?:pixel|disk|square|line|star|circle|ring|sphere|flare|spark|explosion|cloud|smoke|snow)|ps_(?:distr|shape)_(?:linear|gaussian|invgaussian|rectangle|ellipse|diamond|line)|ty_(?:real|string)|dll_(?:cdel|cdecl|stdcall)|matrix_(?:view|projection|world)|os_(?:win32|windows|macosx|ios|android|linux|unknown|winphone|win8native|psvita|ps4|xboxone|ps3|uwp)|browser_(?:not_a_browser|unknown|ie|firefox|chrome|safari|safari_mobile|opera|tizen|windows_store|ie_mobile)|device_ios_(?:unknown|iphone|iphone_retina|ipad|ipad_retina|iphone5|iphone6|iphone6plus)|device_(?:emulator|tablet)|display_(?:landscape|landscape_flipped|portrait|portrait_flipped)|of_challenge_(?:win|lose|tie)|leaderboard_type_(?:number|time_mins_secs)|cmpfunc_(?:never|less|equal|lessequal|greater|notequal|greaterequal|always)|cull_(?:noculling|clockwise|counterclockwise)|lighttype_(?:dir|point)|iap_(?:ev_storeload|ev_product|ev_purchase|ev_consume|ev_restore|storeload_ok|storeload_failed|status_uninitialised|status_unavailable|status_loading|status_available|status_processing|status_restoring|failed|unavailable|available|purchased|canceled|refunded)|fb_login_(?:default|fallback_to_webview|no_fallback_to_webview|forcing_webview|use_system_account|forcing_safari)|phy_joint_(?:anchor_1_x|anchor_1_y|anchor_2_x|anchor_2_y|reaction_force_x|reaction_force_y|reaction_torque|motor_speed|angle|motor_torque|max_motor_torque|translation|speed|motor_force|max_motor_force|length_1|length_2|damping_ratio|frequency|lower_angle_limit|upper_angle_limit|angle_limits|max_length|max_torque|max_force)|phy_debug_render_(?:aabb|collision_pairs|coms|core_shapes|joints|obb|shapes)|phy_particle_flag_(?:water|zombie|wall|spring|elastic|viscous|powder|tensile|colourmixing|colormixing)|phy_particle_group_flag_(?:solid|rigid)|phy_particle_data_flag_(?:typeflags|position|velocity|colour|color|category)|achievement_(?:our_info|friends_info|leaderboard_info|info|filter_(?:all_players|friends_only|favorites_only)|type_challenge|type_score_challenge|pic_loaded|show_(?:ui|profile|leaderboard|achievement|bank|friend_picker|purchase_prompt))|network_(?:socket_(?:tcp|udp|bluetooth)|type_(?:connect|disconnect|data|non_blocking_connect)|config_(?:connect_timeout|use_non_blocking_socket|enable_reliable_udp|disable_reliable_udp))|buffer_(?:fixed|grow|wrap|fast|vbuffer|network|u8|s8|u16|s16|u32|s32|u64|f16|f32|f64|bool|text|string|seek_start|seek_relative|seek_end|generalerror|outofspace|outofbounds|invalidtype)|gp_(?:face\d|shoulderl|shoulderr|shoulderlb|shoulderrb|select|start|stickl|stickr|padu|padd|padl|padr|axislh|axislv|axisrh|axisrv)|ov_(?:friends|community|players|settings|gamegroup|achievements)|lb_sort_(?:none|ascending|descending)|lb_disp_(?:none|numeric|time_sec|time_ms)|ugc_(?:result_success|filetype_(?:community|microtrans)|visibility_(?:public|friends_only|private)|query_RankedBy(?:Vote|PublicationDate|Trend|NumTimesReported|TotalVotesAsc|VotesUp|TextSearch)|query_(?:AcceptedForGameRankedByAcceptanceDate|FavoritedByFriendsRankedByPublicationDate|CreatedByFriendsRankedByPublicationDate|NotYetRated)|sortorder_CreationOrder(?:Desc|Asc)|sortorder_(?:TitleAsc|LastUpdatedDesc|SubscriptionDateDesc|VoteScoreDesc|ForModeration)|list_(?:Published|VotedOn|VotedUp|VotedDown|WillVoteLater|Favorited|Subscribed|UsedOrPlayed|Followed)|match_(?:Items|Items_Mtx|Items_ReadyToUse|Collections|Artwork|Videos|Screenshots|AllGuides|WebGuides|IntegratedGuides|UsableInGame|ControllerBindings))|vertex_usage_(?:position|colour|color|normal|texcoord|textcoord|blendweight|blendindices|psize|tangent|binormal|fog|depth|sample)|vertex_type_(?:float\d|colour|color|ubyte4)|layerelementtype_(?:undefined|background|instance|oldtilemap|sprite|tilemap|particlesystem|tile)|tile_(?:rotate|flip|mirror|index_mask)|input_type|se_(?:chorus|compressor|echo|equalizer|flanger|gargle|none|reverb)|text_type|(?:obj|scr|spr|rm)\w+)\b/,
	variable: /\b(?:x|y|(?:x|y)(?:previous|start)|(?:h|v)speed|direction|speed|friction|gravity|gravity_direction|path_(?:index|position|positionprevious|speed|scale|orientation|endaction)|object_index|id|solid|persistent|mask_index|instance_(?:count|id)|alarm|timeline_(?:index|position|speed|running|loop)|visible|sprite_(?:index|width|height|xoffset|yoffset)|image_(?:number|index|speed|depth|xscale|yscale|angle|alpha|blend)|bbox_(?:left|right|top|bottom)|layer|phy_(?:rotation|(?:position|linear_velocity|speed|com|collision|col_normal)_(?:x|y)|angular_(?:velocity|damping)|position_(?:x|y)previous|speed|linear_damping|bullet|fixed_rotation|active|mass|inertia|dynamic|kinematic|sleeping|collision_points)|working_directory|webgl_enabled|view_(?:(?:y|x|w|h)view|(?:y|x|w|h)port|(?:v|h)(?:speed|border)|visible|surface_id|object|enabled|current|angle)|undefined|transition_(?:steps|kind|color)|temp_directory|show_(?:score|lives|health)|secure_mode|score|room_(?:width|speed|persistent|last|height|first|caption)|room|pointer_(?:null|invalid)|os_(?:version|type|device|browser)|mouse_(?:y|x|lastbutton|button)|lives|keyboard_(?:string|lastkey|lastchar|key)|iap_data|health|gamemaker_(?:version|registered|pro)|game_(?:save|project|display)_(?:id|name)|fps_real|fps|event_(?:type|object|number|action)|error_(?:occurred|last)|display_aa|delta_time|debug_mode|cursor_sprite|current_(?:year|weekday|time|second|month|minute|hour|day)|caption_(?:score|lives|health)|browser_(?:width|height)|background_(?:yscale|y|xscale|x|width|vtiled|vspeed|visible|showcolour|showcolor|index|htiled|hspeed|height|foreground|colour|color|blend|alpha)|async_load|application_surface|argument(?:_relitive|_count|\d)|argument|global|local|self|other)\b/
});
Prism.languages.gcode = {
	comment: /;.*|\B\(.*?\)\B/,
	string: {
		pattern: /"(?:""|[^"])*"/,
		greedy: !0
	},
	keyword: /\b[GM]\d+(?:\.\d+)?\b/,
	property: /\b[A-Z]/,
	checksum: {
		pattern: /\*\d+/,
		alias: "punctuation"
	},
	punctuation: /:/
};
Prism.languages.gdscript = {
	comment: /#.*/,
	string: {
		pattern: /@?(?:("|')(?:(?!\1)[^\n\\]|\\[\s\S])*\1(?!"|')|"""(?:[^\\]|\\[\s\S])*?""")/,
		greedy: !0
	},
	"class-name": {
		pattern: /(^(?:class_name|class|extends)[ \t]+|^export\([ \t]*|\bas[ \t]+|(?:\b(?:const|var)[ \t]|[,(])[ \t]*\w+[ \t]*:[ \t]*|->[ \t]*)[a-zA-Z_]\w*/m,
		lookbehind: !0
	},
	keyword: /\b(?:and|as|assert|break|breakpoint|class|class_name|const|continue|elif|else|enum|export|extends|for|func|if|in|is|master|mastersync|match|not|null|onready|or|pass|preload|puppet|puppetsync|remote|remotesync|return|self|setget|signal|static|tool|var|while|yield)\b/,
	function: /[a-z_]\w*(?=[ \t]*\()/i,
	variable: /\$\w+/,
	number: [/\b0b[01_]+\b|\b0x[\da-fA-F_]+\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.[\d_]+)(?:e[+-]?[\d_]+)?\b/,
		/\b(?:INF|NAN|PI|TAU)\b/
	],
	constant: /\b[A-Z][A-Z_\d]*\b/,
	boolean: /\b(?:false|true)\b/,
	operator: /->|:=|&&|\|\||<<|>>|[-+*/%&|!<>=]=?|[~^]/,
	punctuation: /[.:,;()[\]{}]/
};
Prism.languages.gedcom = {
	"line-value": {
		pattern: /(^\s*\d+ +(?:@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?\w+ ).+/m,
		lookbehind: !0,
		inside: {
			pointer: {
				pattern: /^@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@$/,
				alias: "variable"
			}
		}
	},
	tag: {
		pattern: /(^\s*\d+ +(?:@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?)\w+/m,
		lookbehind: !0,
		alias: "string"
	},
	level: {
		pattern: /(^\s*)\d+/m,
		lookbehind: !0,
		alias: "number"
	},
	pointer: {
		pattern: /@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@/,
		alias: "variable"
	}
};
! function(a) {
	var n = "(?:\r?\n|\r)[ \t]*\\|.+\\|(?:(?!\\|).)*";
	Prism.languages.gherkin = {
		pystring: {
			pattern: /("""|''')[\s\S]+?\1/,
			alias: "string"
		},
		comment: {
			pattern: /(^[ \t]*)#.*/m,
			lookbehind: !0
		},
		tag: {
			pattern: /(^[ \t]*)@\S*/m,
			lookbehind: !0
		},
		feature: {
			pattern: /((?:^|\r?\n|\r)[ \t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|Característica|Egenskab|Egenskap|Eiginleiki|Feature|Fīča|Fitur|Fonctionnalité|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|Funcţionalitate|Funcționalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalitāte|Funkcionalnost|Funkcja|Funksie|Funktionalität|Funktionalitéit|Funzionalità|Hwaet|Hwæt|Jellemző|Karakteristik|laH|Lastnost|Mak|Mogucnost|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Özellik|perbogh|poQbogh malja'|Potrzeba biznesowa|Požadavek|Požiadavka|Pretty much|Qap|Qu'meH 'ut|Savybė|Tính năng|Trajto|Vermoë|Vlastnosť|Właściwość|Značilnost|Δυνατότητα|Λειτουργία|Могућност|Мөмкинлек|Особина|Свойство|Үзенчәлеклелек|Функционал|Функционалност|Функция|Функціонал|תכונה|خاصية|خصوصیت|صلاحیت|کاروبار کی ضرورت|وِیژگی|रूप लेख|ਖਾਸੀਅਤ|ਨਕਸ਼ ਨੁਹਾਰ|ਮੁਹਾਂਦਰਾ|గుణము|ಹೆಚ್ಚಳ|ความต้องการทางธุรกิจ|ความสามารถ|โครงหลัก|기능|フィーチャ|功能|機能):(?:[^:\r\n]+(?:\r?\n|\r|$))*/,
			lookbehind: !0,
			inside: {
				important: {
					pattern: /(:)[^\r\n]+/,
					lookbehind: !0
				},
				keyword: /[^:\r\n]+:/
			}
		},
		scenario: {
			pattern: /(^[ \t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|Ær|Agtergrond|All y'all|Antecedentes|Antecedents|Atburðarás|Atburðarásir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|Bối cảnh|Cefndir|Cenario|Cenário|Cenario de Fundo|Cenário de Fundo|Cenarios|Cenários|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|Dæmi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delineação do Cenário|Dis is what went down|Dữ liệu|Dyagram senaryo|Dyagram Senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do Cenário|Examples|EXAMPLZ|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókönyv|Forgatókönyv vázlat|Fundo|Geçmiş|ghantoH|Grundlage|Hannergrond|Háttér|Heave to|Istorik|Juhtumid|Keadaan|Khung kịch bản|Khung tình huống|Kịch bản|Koncept|Konsep skenario|Kontèks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut|lut chovnatlh|lutmey|Lýsing Atburðarásar|Lýsing Dæma|Menggariskan Senario|MISHUN|MISHUN SRSLY|mo'|Náčrt Scenára|Náčrt Scénáře|Náčrt Scenáru|Oris scenarija|Örnekler|Osnova|Osnova Scenára|Osnova scénáře|Osnutek|Ozadje|Paraugs|Pavyzdžiai|Példák|Piemēri|Plan du scénario|Plan du Scénario|Plan senaryo|Plan Senaryo|Plang vum Szenario|Pozadí|Pozadie|Pozadina|Príklady|Příklady|Primer|Primeri|Primjeri|Przykłady|Raamstsenaarium|Reckon it's like|Rerefons|Scenár|Scénář|Scenarie|Scenarij|Scenarijai|Scenarijaus šablonas|Scenariji|Scenārijs|Scenārijs pēc parauga|Scenarijus|Scenario|Scénario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se ðe|Se the|Se þe|Senario|Senaryo|Senaryo deskripsyon|Senaryo Deskripsyon|Senaryo taslağı|Shiver me timbers|Situācija|Situai|Situasie|Situasie Uiteensetting|Skenario|Skenario konsep|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa|Swa hwaer swa|Swa hwær swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|Tình huống|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo\-ho\-ho|You'll wanna|Założenia|Παραδείγματα|Περιγραφή Σεναρίου|Σενάρια|Σενάριο|Υπόβαθρο|Кереш|Контекст|Концепт|Мисаллар|Мисоллар|Основа|Передумова|Позадина|Предистория|Предыстория|Приклади|Пример|Примери|Примеры|Рамка на сценарий|Скица|Структура сценарија|Структура сценария|Структура сценарію|Сценарий|Сценарий структураси|Сценарийның төзелеше|Сценарији|Сценарио|Сценарій|Тарих|Үрнәкләр|דוגמאות|רקע|תבנית תרחיש|תרחיש|الخلفية|الگوی سناریو|امثلة|پس منظر|زمینه|سناریو|سيناريو|سيناريو مخطط|مثالیں|منظر نامے کا خاکہ|منظرنامہ|نمونه ها|उदाहरण|परिदृश्य|परिदृश्य रूपरेखा|पृष्ठभूमि|ਉਦਾਹਰਨਾਂ|ਪਟਕਥਾ|ਪਟਕਥਾ ਢਾਂਚਾ|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਿਛੋਕੜ|ఉదాహరణలు|కథనం|నేపథ్యం|సన్నివేశం|ಉದಾಹರಣೆಗಳು|ಕಥಾಸಾರಾಂಶ|ವಿವರಣೆ|ಹಿನ್ನೆಲೆ|โครงสร้างของเหตุการณ์|ชุดของตัวอย่าง|ชุดของเหตุการณ์|แนวคิด|สรุปเหตุการณ์|เหตุการณ์|배경|시나리오|시나리오 개요|예|サンプル|シナリオ|シナリオアウトライン|シナリオテンプレ|シナリオテンプレート|テンプレ|例|例子|剧本|剧本大纲|劇本|劇本大綱|场景|场景大纲|場景|場景大綱|背景):[^:\r\n]*/m,
			lookbehind: !0,
			inside: {
				important: {
					pattern: /(:)[^\r\n]*/,
					lookbehind: !0
				},
				keyword: /[^:\r\n]+:/
			}
		},
		"table-body": {
			pattern: RegExp("(" + n + ")(?:" + n + ")+"),
			lookbehind: !0,
			inside: {
				outline: {
					pattern: /<[^>]+?>/,
					alias: "variable"
				},
				td: {
					pattern: /\s*[^\s|][^|]*/,
					alias: "string"
				},
				punctuation: /\|/
			}
		},
		"table-head": {
			pattern: RegExp(n),
			inside: {
				th: {
					pattern: /\s*[^\s|][^|]*/,
					alias: "variable"
				},
				punctuation: /\|/
			}
		},
		atrule: {
			pattern: /(^[ \t]+)(?:'ach|'a|'ej|7|a|A také|A taktiež|A tiež|A zároveň|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|Atès|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Biết|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|Când|Cando|Cand|Ce|Cuando|Če|Ða ðe|Ða|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|Daţi fiind|Dați fiind|Dato|DEN|Den youse gotta|Dengan|De|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ðurh|Eeldades|Ef|Eğer ki|Entao|Então|Entón|Entonces|En|Epi|E|És|Etant donnée|Etant donné|Et|Étant données|Étant donnée|Étant donné|Etant données|Etant donnés|Étant donnés|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Jeśli|Jeżeli|Kadar|Kada|Kad|Kai|Kaj|Když|Keď|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|Lè sa a|Lè|Logo|Lorsqu'<|Lorsque|mä|Maar|Mais|Mając|Majd|Maka|Manawa|Mas|Ma|Menawa|Men|Mutta|Nalikaning|Nalika|Nanging|Når|När|Nato|Nhưng|Niin|Njuk|O zaman|Og|Och|Oletetaan|Onda|Ond|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|qaSDI'|Quando|Quand|Quan|Så|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|Şi|Și|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|Thì|Thurh|Toda|Too right|ugeholl|Und|Un|Và|vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za předpokladu|Zadani|Zadano|Zadan|Zadate|Zadato|Zakładając|Zaradi|Zatati|Þa þe|Þa|Þá|Þegar|Þurh|Αλλά|Δεδομένου|Και|Όταν|Τότε|А також|Агар|Але|Али|Аммо|А|Әгәр|Әйтик|Әмма|Бирок|Ва|Вә|Дадено|Дано|Допустим|Если|Задате|Задати|Задато|И|І|К тому же|Када|Кад|Когато|Когда|Коли|Ләкин|Лекин|Нәтиҗәдә|Нехай|Но|Онда|Припустимо, що|Припустимо|Пусть|Также|Та|Тогда|Тоді|То|Унда|Һәм|Якщо|אבל|אזי|אז|בהינתן|וגם|כאשר|آنگاه|اذاً|اگر|اما|اور|با فرض|بالفرض|بفرض|پھر|تب|ثم|جب|عندما|فرض کیا|لكن|لیکن|متى|هنگامی|و|अगर|और|कदा|किन्तु|चूंकि|जब|तथा|तदा|तब|परन्तु|पर|यदि|ਅਤੇ|ਜਦੋਂ|ਜਿਵੇਂ ਕਿ|ਜੇਕਰ|ਤਦ|ਪਰ|అప్పుడు|ఈ పరిస్థితిలో|కాని|చెప్పబడినది|మరియు|ಆದರೆ|ನಂತರ|ನೀಡಿದ|ಮತ್ತು|ಸ್ಥಿತಿಯನ್ನು|กำหนดให้|ดังนั้น|แต่|เมื่อ|และ|그러면<|그리고<|단<|만약<|만일<|먼저<|조건<|하지만<|かつ<|しかし<|ただし<|ならば<|もし<|並且<|但し<|但是<|假如<|假定<|假設<|假设<|前提<|同时<|同時<|并且<|当<|當<|而且<|那么<|那麼<)(?=[ \t])/m,
			lookbehind: !0
		},
		string: {
			pattern: /"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*'/,
			inside: {
				outline: {
					pattern: /<[^>]+?>/,
					alias: "variable"
				}
			}
		},
		outline: {
			pattern: /<[^>]+?>/,
			alias: "variable"
		}
	}
}();
Prism.languages.git = {
	comment: /^#.*/m,
	deleted: /^[-–].*/m,
	inserted: /^\+.*/m,
	string: /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/m,
	command: {
		pattern: /^.*\$ git .*$/m,
		inside: {
			parameter: /\s--?\w+/m
		}
	},
	coord: /^@@.*@@$/m,
	"commit-sha1": /^commit \w{40}$/m
};
Prism.languages.glsl = Prism.languages.extend("c", {
	keyword: /\b(?:attribute|const|uniform|varying|buffer|shared|coherent|volatile|restrict|readonly|writeonly|atomic_uint|layout|centroid|flat|smooth|noperspective|patch|sample|break|continue|do|for|while|switch|case|default|if|else|subroutine|in|out|inout|float|double|int|void|bool|true|false|invariant|precise|discard|return|d?mat[234](?:x[234])?|[ibdu]?vec[234]|uint|lowp|mediump|highp|precision|[iu]?sampler[123]D|[iu]?samplerCube|sampler[12]DShadow|samplerCubeShadow|[iu]?sampler[12]DArray|sampler[12]DArrayShadow|[iu]?sampler2DRect|sampler2DRectShadow|[iu]?samplerBuffer|[iu]?sampler2DMS(?:Array)?|[iu]?samplerCubeArray|samplerCubeArrayShadow|[iu]?image[123]D|[iu]?image2DRect|[iu]?imageCube|[iu]?imageBuffer|[iu]?image[12]DArray|[iu]?imageCubeArray|[iu]?image2DMS(?:Array)?|struct|common|partition|active|asm|class|union|enum|typedef|template|this|resource|goto|inline|noinline|public|static|extern|external|interface|long|short|half|fixed|unsigned|superp|input|output|hvec[234]|fvec[234]|sampler3DRect|filter|sizeof|cast|namespace|using)\b/
});
Prism.languages.go = Prism.languages.extend("clike", {
	string: {
		pattern: /(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,
		greedy: !0
	},
	keyword: /\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,
	boolean: /\b(?:_|iota|nil|true|false)\b/,
	number: /(?:\b0x[a-f\d]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[-+]?\d+)?)i?/i,
	operator: /[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,
	builtin: /\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\b/
}), delete Prism.languages.go["class-name"];
Prism.languages.graphql = {
	comment: /#.*/,
	description: {
		pattern: /(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,
		greedy: !0,
		alias: "string",
		inside: {
			"language-markdown": {
				pattern: /(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,
				lookbehind: !0,
				inside: Prism.languages.markdown
			}
		}
	},
	string: {
		pattern: /"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,
		greedy: !0
	},
	number: /(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,
	boolean: /\b(?:true|false)\b/,
	variable: /\$[a-z_]\w*/i,
	directive: {
		pattern: /@[a-z_]\w*/i,
		alias: "function"
	},
	"attr-name": {
		pattern: /[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,
		greedy: !0
	},
	"class-name": {
		pattern: /(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*)[a-zA-Z_]\w*/,
		lookbehind: !0
	},
	fragment: {
		pattern: /(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,
		lookbehind: !0,
		alias: "function"
	},
	keyword: /\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,
	operator: /[!=|&]|\.{3}/,
	punctuation: /[!(){}\[\]:=,]/,
	constant: /\b(?!ID\b)[A-Z][A-Z_\d]*\b/
};
Prism.languages.groovy = Prism.languages.extend("clike", {
	string: [{
		pattern: /("""|''')(?:[^\\]|\\[\s\S])*?\1|\$\/(?:[^/$]|\$(?:[/$]|(?![/$]))|\/(?!\$))*\/\$/,
		greedy: !0
	}, {
		pattern: /(["'/])(?:\\.|(?!\1)[^\\\r\n])*\1/,
		greedy: !0
	}],
	keyword: /\b(?:as|def|in|abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\b/,
	number: /\b(?:0b[01_]+|0x[\da-f_]+(?:\.[\da-f_p\-]+)?|[\d_]+(?:\.[\d_]+)?(?:e[+-]?[\d]+)?)[glidf]?\b/i,
	operator: {
		pattern: /(^|[^.])(?:~|==?~?|\?[.:]?|\*(?:[.=]|\*=?)?|\.[@&]|\.\.<|\.\.(?!\.)|-[-=>]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,
		lookbehind: !0
	},
	punctuation: /\.+|[{}[\];(),:$]/
}), Prism.languages.insertBefore("groovy", "string", {
	shebang: {
		pattern: /#!.+/,
		alias: "comment"
	}
}), Prism.languages.insertBefore("groovy", "punctuation", {
	"spock-block": /\b(?:setup|given|when|then|and|cleanup|expect|where):/
}), Prism.languages.insertBefore("groovy", "function", {
	annotation: {
		pattern: /(^|[^.])@\w+/,
		lookbehind: !0,
		alias: "punctuation"
	}
}), Prism.hooks.add("wrap", function(e) {
	if ("groovy" === e.language && "string" === e.type) {
		var t = e.content[0];
		if ("'" != t) {
			var n = /([^\\])(?:\$(?:\{.*?\}|[\w.]+))/;
			"$" === t && (n = /([^\$])(?:\$(?:\{.*?\}|[\w.]+))/), e.content = e.content.replace(/&lt;/g, "<").replace(/&amp;/g,
				"&"), e.content = Prism.highlight(e.content, {
				expression: {
					pattern: n,
					lookbehind: !0,
					inside: Prism.languages.groovy
				}
			}), e.classes.push("/" === t ? "regex" : "gstring")
		}
	}
});
! function(e) {
	e.languages.haml = {
		"multiline-comment": {
			pattern: /((?:^|\r?\n|\r)([\t ]*))(?:\/|-#).*(?:(?:\r?\n|\r)\2[\t ].+)*/,
			lookbehind: !0,
			alias: "comment"
		},
		"multiline-code": [{
			pattern: /((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*,[\t ]*(?:(?:\r?\n|\r)\2[\t ].*,[\t ]*)*(?:(?:\r?\n|\r)\2[\t ].+)/,
			lookbehind: !0,
			inside: e.languages.ruby
		}, {
			pattern: /((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*\|[\t ]*(?:(?:\r?\n|\r)\2[\t ].*\|[\t ]*)*/,
			lookbehind: !0,
			inside: e.languages.ruby
		}],
		filter: {
			pattern: /((?:^|\r?\n|\r)([\t ]*)):[\w-]+(?:(?:\r?\n|\r)(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/,
			lookbehind: !0,
			inside: {
				"filter-name": {
					pattern: /^:[\w-]+/,
					alias: "variable"
				}
			}
		},
		markup: {
			pattern: /((?:^|\r?\n|\r)[\t ]*)<.+/,
			lookbehind: !0,
			inside: e.languages.markup
		},
		doctype: {
			pattern: /((?:^|\r?\n|\r)[\t ]*)!!!(?: .+)?/,
			lookbehind: !0
		},
		tag: {
			pattern: /((?:^|\r?\n|\r)[\t ]*)[%.#][\w\-#.]*[\w\-](?:\([^)]+\)|\{(?:\{[^}]+\}|[^{}])+\}|\[[^\]]+\])*[\/<>]*/,
			lookbehind: !0,
			inside: {
				attributes: [{
					pattern: /(^|[^#])\{(?:\{[^}]+\}|[^{}])+\}/,
					lookbehind: !0,
					inside: e.languages.ruby
				}, {
					pattern: /\([^)]+\)/,
					inside: {
						"attr-value": {
							pattern: /(=\s*)(?:"(?:\\.|[^\\"\r\n])*"|[^)\s]+)/,
							lookbehind: !0
						},
						"attr-name": /[\w:-]+(?=\s*!?=|\s*[,)])/,
						punctuation: /[=(),]/
					}
				}, {
					pattern: /\[[^\]]+\]/,
					inside: e.languages.ruby
				}],
				punctuation: /[<>]/
			}
		},
		code: {
			pattern: /((?:^|\r?\n|\r)[\t ]*(?:[~-]|[&!]?=)).+/,
			lookbehind: !0,
			inside: e.languages.ruby
		},
		interpolation: {
			pattern: /#\{[^}]+\}/,
			inside: {
				delimiter: {
					pattern: /^#\{|\}$/,
					alias: "punctuation"
				},
				rest: e.languages.ruby
			}
		},
		punctuation: {
			pattern: /((?:^|\r?\n|\r)[\t ]*)[~=\-&!]+/,
			lookbehind: !0
		}
	};
	for (var t = ["css", {
			filter: "coffee",
			language: "coffeescript"
		}, "erb", "javascript", "less", "markdown", "ruby", "scss", "textile"], n = {}, r = 0, a = t.length; r < a; r++) {
		var i = t[r];
		i = "string" == typeof i ? {
			filter: i,
			language: i
		} : i, e.languages[i.language] && (n["filter-" + i.filter] = {
			pattern: RegExp(
				"((?:^|\\r?\\n|\\r)([\\t ]*)):{{filter_name}}(?:(?:\\r?\\n|\\r)(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+".replace(
					"{{filter_name}}",
					function() {
						return i.filter
					})),
			lookbehind: !0,
			inside: {
				"filter-name": {
					pattern: /^:[\w-]+/,
					alias: "variable"
				},
				rest: e.languages[i.language]
			}
		})
	}
	e.languages.insertBefore("haml", "filter", n)
}(Prism);
! function(e) {
	e.languages.handlebars = {
		comment: /\{\{![\s\S]*?\}\}/,
		delimiter: {
			pattern: /^\{\{\{?|\}\}\}?$/i,
			alias: "punctuation"
		},
		string: /(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,
		number: /\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,
		boolean: /\b(?:true|false)\b/,
		block: {
			pattern: /^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/i,
			lookbehind: !0,
			alias: "keyword"
		},
		brackets: {
			pattern: /\[[^\]]+\]/,
			inside: {
				punctuation: /\[|\]/,
				variable: /[\s\S]+/
			}
		},
		punctuation: /[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,
		variable: /[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/
	}, e.hooks.add("before-tokenize", function(a) {
		e.languages["markup-templating"].buildPlaceholders(a, "handlebars", /\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)
	}), e.hooks.add("after-tokenize", function(a) {
		e.languages["markup-templating"].tokenizePlaceholders(a, "handlebars")
	})
}(Prism);
Prism.languages.haskell = {
	comment: {
		pattern: /(^|[^-!#$%*+=?&@|~.:<>^\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\/].*|$)|{-[\s\S]*?-})/m,
		lookbehind: !0
	},
	char: {
		pattern: /'(?:[^\\']|\\(?:[abfnrtv\\"'&]|\^[A-Z@[\]^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\d+|o[0-7]+|x[0-9a-fA-F]+))'/,
		alias: "string"
	},
	string: {
		pattern: /"(?:[^\\"]|\\(?:\S|\s+\\))*"/,
		greedy: !0
	},
	keyword: /\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,
	"import-statement": {
		pattern: /(^\s*)import\s+(?:qualified\s+)?(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*(?:\s+as\s+(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,
		lookbehind: !0,
		inside: {
			keyword: /\b(?:import|qualified|as|hiding)\b/
		}
	},
	builtin: /\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\b/,
	number: /\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0o[0-7]+|0x[0-9a-f]+)\b/i,
	operator: /\s\.\s|[-!#$%*+=?&@|~:<>^\\\/]*\.[-!#$%*+=?&@|~.:<>^\\\/]+|[-!#$%*+=?&@|~.:<>^\\\/]+\.[-!#$%*+=?&@|~:<>^\\\/]*|[-!#$%*+=?&@|~:<>^\\\/]+|`(?:[A-Z][\w']*\.)*[_a-z][\w']*`/,
	hvariable: /\b(?:[A-Z][\w']*\.)*[_a-z][\w']*\b/,
	constant: /\b(?:[A-Z][\w']*\.)*[A-Z][\w']*\b/,
	punctuation: /[{}[\];(),.:]/
}, Prism.languages.hs = Prism.languages.haskell;
Prism.languages.haxe = Prism.languages.extend("clike", {
	string: {
		pattern: /(["'])(?:(?!\1)[^\\]|\\[\s\S])*\1/,
		greedy: !0,
		inside: {
			interpolation: {
				pattern: /(^|[^\\])\$(?:\w+|\{[^}]+\})/,
				lookbehind: !0,
				inside: {
					interpolation: {
						pattern: /^\$\w*/,
						alias: "variable"
					}
				}
			}
		}
	},
	keyword: /\bthis\b|\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|from|for|function|if|implements|import|in|inline|interface|macro|new|null|override|public|private|return|static|super|switch|throw|to|try|typedef|using|var|while)(?!\.)\b/,
	operator: /\.{3}|\+\+?|-[->]?|[=!]=?|&&?|\|\|?|<[<=]?|>[>=]?|[*\/%~^]/
}), Prism.languages.insertBefore("haxe", "class-name", {
	regex: {
		pattern: /~\/(?:[^\/\\\r\n]|\\.)+\/[igmsu]*/,
		greedy: !0
	}
}), Prism.languages.insertBefore("haxe", "keyword", {
	preprocessor: {
		pattern: /#\w+/,
		alias: "builtin"
	},
	metadata: {
		pattern: /@:?\w+/,
		alias: "symbol"
	},
	reification: {
		pattern: /\$(?:\w+|(?=\{))/,
		alias: "variable"
	}
}), Prism.languages.haxe.string.inside.interpolation.inside.rest = Prism.languages.haxe, delete Prism.languages.haxe[
	"class-name"];
Prism.languages.hcl = {
	comment: /(?:\/\/|#).*|\/\*[\s\S]*?(?:\*\/|$)/,
	heredoc: {
		pattern: /<<-?(\w+\b)[\s\S]*?^[ \t]*\1/m,
		greedy: !0,
		alias: "string"
	},
	keyword: [{
		pattern: /(?:resource|data)\s+(?:"(?:\\[\s\S]|[^\\"])*")(?=\s+"[\w-]+"\s+{)/i,
		inside: {
			type: {
				pattern: /(resource|data|\s+)(?:"(?:\\[\s\S]|[^\\"])*")/i,
				lookbehind: !0,
				alias: "variable"
			}
		}
	}, {
		pattern: /(?:provider|provisioner|variable|output|module|backend)\s+(?:[\w-]+|"(?:\\[\s\S]|[^\\"])*")\s+(?={)/i,
		inside: {
			type: {
				pattern: /(provider|provisioner|variable|output|module|backend)\s+(?:[\w-]+|"(?:\\[\s\S]|[^\\"])*")\s+/i,
				lookbehind: !0,
				alias: "variable"
			}
		}
	}, /[\w-]+(?=\s+{)/],
	property: [/[\w-\.]+(?=\s*=(?!=))/, /"(?:\\[\s\S]|[^\\"])+"(?=\s*[:=])/],
	string: {
		pattern: /"(?:[^\\$"]|\\[\s\S]|\$(?:(?=")|\$+(?!\$)|[^"${])|\$\{(?:[^{}"]|"(?:[^\\"]|\\[\s\S])*")*\})*"/,
		greedy: !0,
		inside: {
			interpolation: {
				pattern: /(^|[^$])\$\{(?:[^{}"]|"(?:[^\\"]|\\[\s\S])*")*\}/,
				lookbehind: !0,
				inside: {
					type: {
						pattern: /(\b(?:terraform|var|self|count|module|path|data|local)\b\.)[\w\*]+/i,
						lookbehind: !0,
						alias: "variable"
					},
					keyword: /\b(?:terraform|var|self|count|module|path|data|local)\b/i,
					function: /\w+(?=\()/,
					string: {
						pattern: /"(?:\\[\s\S]|[^\\"])*"/,
						greedy: !0
					},
					number: /\b0x[\da-f]+\b|\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,
					punctuation: /[!\$#%&'()*+,.\/;<=>@\[\\\]^`{|}~?:]/
				}
			}
		}
	},
	number: /\b0x[\da-f]+\b|\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,
	boolean: /\b(?:true|false)\b/i,
	punctuation: /[=\[\]{}]/
};
Prism.languages.hlsl = Prism.languages.extend("c", {
	"class-name": [Prism.languages.c["class-name"],
		/\b(?:AppendStructuredBuffer|BlendState|Buffer|ByteAddressBuffer|CompileShader|ComputeShader|ConsumeStructuredBuffer|DepthStencilState|DepthStencilView|DomainShader|GeometryShader|Hullshader|InputPatch|LineStream|OutputPatch|PixelShader|PointStream|RasterizerState|RenderTargetView|RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture(?:1D|1DArray|2D|2DArray|3D)|SamplerComparisonState|SamplerState|StructuredBuffer|Texture(?:1D|1DArray|2D|2DArray|2DMS|2DMSArray|3D|Cube|CubeArray)|TriangleStream|VertexShader)\b/
	],
	keyword: [
		/\b(?:asm|asm_fragment|auto|break|case|catch|cbuffer|centroid|char|class|column_major|compile|compile_fragment|const|const_cast|continue|default|delete|discard|do|dynamic_cast|else|enum|explicit|export|extern|for|friend|fxgroup|goto|groupshared|if|in|inline|inout|interface|line|lineadj|linear|long|matrix|mutable|namespace|new|nointerpolation|noperspective|operator|out|packoffset|pass|pixelfragment|point|precise|private|protected|public|register|reinterpret_cast|return|row_major|sample|sampler|shared|short|signed|sizeof|snorm|stateblock|stateblock_state|static|static_cast|string|struct|switch|tbuffer|technique|technique10|technique11|template|texture|this|throw|triangle|triangleadj|try|typedef|typename|uniform|union|unorm|unsigned|using|vector|vertexfragment|virtual|void|volatile|while)\b/,
		/\b(?:bool|double|dword|float|half|int|min(?:10float|12int|16(?:float|int|uint))|uint)(?:[1-4](?:x[1-4])?)?\b/
	],
	number: /(?:(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+)?|\b0x[\da-fA-F]+)[fFhHlLuU]?\b/,
	boolean: /\b(?:false|true)\b/
});
! function(t) {
	t.languages.http = {
		"request-line": {
			pattern: /^(?:GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH|PRI|SEARCH)\s(?:https?:\/\/|\/)\S*\sHTTP\/[0-9.]+/m,
			inside: {
				method: {
					pattern: /^[A-Z]+\b/,
					alias: "property"
				},
				"request-target": {
					pattern: /^(\s)(?:https?:\/\/|\/)\S*(?=\s)/,
					lookbehind: !0,
					alias: "url",
					inside: t.languages.uri
				},
				"http-version": {
					pattern: /^(\s)HTTP\/[0-9.]+/,
					lookbehind: !0,
					alias: "property"
				}
			}
		},
		"response-status": {
			pattern: /^HTTP\/[0-9.]+ \d+ .+/m,
			inside: {
				"http-version": {
					pattern: /^HTTP\/[0-9.]+/,
					alias: "property"
				},
				"status-code": {
					pattern: /^(\s)\d+(?=\s)/,
					lookbehind: !0,
					alias: "number"
				},
				"reason-phrase": {
					pattern: /^(\s).+/,
					lookbehind: !0,
					alias: "string"
				}
			}
		},
		"header-name": {
			pattern: /^[\w-]+:(?=.)/m,
			alias: "keyword"
		}
	};
	var a, e, s, n = t.languages,
		r = {
			"application/javascript": n.javascript,
			"application/json": n.json || n.javascript,
			"application/xml": n.xml,
			"text/xml": n.xml,
			"text/html": n.html,
			"text/css": n.css
		},
		i = {
			"application/json": !0,
			"application/xml": !0
		};
	for (var p in r)
		if (r[p]) {
			a = a || {};
			var o = i[p] ? (void 0, s = (e = p).replace(/^[a-z]+\//, ""), "(?:" + e + "|\\w+/(?:[\\w.-]+\\+)+" + s +
				"(?![+\\w.-]))") : p;
			a[p.replace(/\//g, "-")] = {
				pattern: RegExp("(content-type:\\s*" + o + "(?:(?:\\r\\n?|\\n).+)*)(?:\\r?\\n|\\r){2}[\\s\\S]*", "i"),
				lookbehind: !0,
				inside: r[p]
			}
		} a && t.languages.insertBefore("http", "header-name", a)
}(Prism);
Prism.languages.hsts = {
	directive: {
		pattern: /\b(?:max-age=|includeSubDomains|preload)/,
		alias: "keyword"
	},
	safe: {
		pattern: /\b\d{8,}\b/,
		alias: "selector"
	},
	unsafe: {
		pattern: /\b\d{1,7}\b/,
		alias: "function"
	}
};
Prism.languages.ichigojam = {
	comment: /(?:\B'|REM)(?:[^\n\r]*)/i,
	string: {
		pattern: /"(?:""|[!#$%&'()*,\/:;<=>?^_ +\-.A-Z\d])*"/i,
		greedy: !0
	},
	number: /\B#[0-9A-F]+|\B`[01]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,
	keyword: /\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GSB|GOTO|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|RIGHT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\$|\b)/i,
	function: /\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\$|\b)/i,
	label: /(?:\B@[^\s]+)/i,
	operator: /<[=>]?|>=?|\|\||&&|[+\-*\/=|&^~!]|\b(?:AND|NOT|OR)\b/i,
	punctuation: /[\[,;:()\]]/
};
Prism.languages.icon = {
	comment: /#.*/,
	string: {
		pattern: /(["'])(?:(?!\1)[^\\\r\n_]|\\.|_(?!\1)(?:\r\n|[\s\S]))*\1/,
		greedy: !0
	},
	number: /\b(?:\d+r[a-z\d]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b|\.\d+\b/i,
	"builtin-keyword": {
		pattern: /&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\b/,
		alias: "variable"
	},
	directive: {
		pattern: /\$\w+/,
		alias: "builtin"
	},
	keyword: /\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\b/,
	function: /(?!\d)\w+(?=\s*[({]|\s*!\s*\[)/,
	operator: /[+-]:(?!=)|(?:[\/?@^%&]|\+\+?|--?|==?=?|~==?=?|\*\*?|\|\|\|?|<(?:->?|<?=?)|>>?=?)(?::=)?|:(?:=:?)?|[!.\\|~]/,
	punctuation: /[\[\](){},;]/
};
Prism.languages.idris = Prism.languages.extend("haskell", {
	comment: {
		pattern: /(?:(?:--|\|\|\|).*$|{-[\s\S]*?-})/m
	},
	keyword: /\b(?:Type|case|class|codata|constructor|corecord|data|do|dsl|else|export|if|implementation|implicit|import|impossible|in|infix|infixl|infixr|instance|interface|let|module|mutual|namespace|of|parameters|partial|postulate|private|proof|public|quoteGoal|record|rewrite|syntax|then|total|using|where|with)\b/,
	"import-statement": {
		pattern: /(^\s*)import\s+(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*/m,
		lookbehind: !0
	},
	builtin: void 0
}), Prism.languages.idr = Prism.languages.idris;
! function(n) {
	n.languages.ignore = {
			comment: /^#.*/m,
			entry: {
				pattern: /\S(?:.*(?:(?:\\ )|\S))?/,
				alias: "string",
				inside: {
					operator: /^!|\*\*?|\?/,
					regex: {
						pattern: /(^|[^\\])\[[^\[\]]*\]/,
						lookbehind: !0
					},
					punctuation: /\//
				}
			}
		}, n.languages.gitignore = n.languages.ignore, n.languages.hgignore = n.languages.ignore, n.languages.npmignore = n.languages
		.ignore
}(Prism);
Prism.languages.inform7 = {
		string: {
			pattern: /"[^"]*"/,
			inside: {
				substitution: {
					pattern: /\[[^\]]+\]/,
					inside: {
						delimiter: {
							pattern: /\[|\]/,
							alias: "punctuation"
						}
					}
				}
			}
		},
		comment: {
			pattern: /\[[^\]]+\]/,
			greedy: !0
		},
		title: {
			pattern: /^[ \t]*(?:volume|book|part(?! of)|chapter|section|table)\b.+/im,
			alias: "important"
		},
		number: {
			pattern: /(^|[^-])(?:\b\d+(?:\.\d+)?(?:\^\d+)?(?:(?!\d)\w+)?|\b(?:one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve))\b(?!-)/i,
			lookbehind: !0
		},
		verb: {
			pattern: /(^|[^-])\b(?:applying to|are|attacking|answering|asking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:s|ing)?|consulting|contain(?:s|ing)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:ve|s|ving)|hold(?:s|ing)?|impl(?:y|ies)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:s|ing)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:s|ing)?|setting|showing|singing|sleeping|smelling|squeezing|switching|support(?:s|ing)?|swearing|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:s|ing)?|var(?:y|ies|ying)|waiting|waking|waving|wear(?:s|ing)?)\b(?!-)/i,
			lookbehind: !0,
			alias: "operator"
		},
		keyword: {
			pattern: /(^|[^-])\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|unless|the story)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\b(?!-)/i,
			lookbehind: !0
		},
		property: {
			pattern: /(^|[^-])\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: on| off)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\b(?!-)/i,
			lookbehind: !0,
			alias: "symbol"
		},
		position: {
			pattern: /(^|[^-])\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\b(?!-)/i,
			lookbehind: !0,
			alias: "keyword"
		},
		type: {
			pattern: /(^|[^-])\b(?:actions?|activit(?:y|ies)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\b(?!-)/i,
			lookbehind: !0,
			alias: "variable"
		},
		punctuation: /[.,:;(){}]/
	}, Prism.languages.inform7.string.inside.substitution.inside.rest = Prism.languages.inform7, Prism.languages.inform7.string
	.inside.substitution.inside.rest.text = {
		pattern: /\S(?:\s*\S)*/,
		alias: "comment"
	};
Prism.languages.ini = {
	comment: {
		pattern: /(^[ \f\t\v]*)[#;][^\n\r]*/m,
		lookbehind: !0
	},
	header: {
		pattern: /(^[ \f\t\v]*)\[[^\n\r\]]*\]?/m,
		lookbehind: !0,
		inside: {
			"section-name": {
				pattern: /(^\[[ \f\t\v]*)[^ \f\t\v\]]+(?:[ \f\t\v]+[^ \f\t\v\]]+)*/,
				lookbehind: !0,
				alias: "selector"
			},
			punctuation: /\[|\]/
		}
	},
	key: {
		pattern: /(^[ \f\t\v]*)[^ \f\n\r\t\v=]+(?:[ \f\t\v]+[^ \f\n\r\t\v=]+)*(?=[ \f\t\v]*=)/m,
		lookbehind: !0,
		alias: "attr-name"
	},
	value: {
		pattern: /(=[ \f\t\v]*)[^ \f\n\r\t\v]+(?:[ \f\t\v]+[^ \f\n\r\t\v]+)*/,
		lookbehind: !0,
		alias: "attr-value",
		inside: {
			"inner-value": {
				pattern: /^("|').+(?=\1$)/,
				lookbehind: !0
			}
		}
	},
	punctuation: /=/
};
Prism.languages.io = {
	comment: [{
		pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,
		lookbehind: !0
	}, {
		pattern: /(^|[^\\])\/\/.*/,
		lookbehind: !0
	}, {
		pattern: /(^|[^\\])#.*/,
		lookbehind: !0
	}],
	"triple-quoted-string": {
		pattern: /"""(?:\\[\s\S]|(?!""")[^\\])*"""/,
		greedy: !0,
		alias: "string"
	},
	string: {
		pattern: /"(?:\\.|[^\\\r\n"])*"/,
		greedy: !0
	},
	keyword: /\b(?:activate|activeCoroCount|asString|block|break|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getSlot|getEnvironmentVariable|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|call|try|type|uniqueId|updateSlot|wait|while|write|yield)\b/,
	builtin: /\b(?:Array|AudioDevice|AudioMixer|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Regex|SGML|SGMLElement|SGMLParser|SQLite|Server|Sequence|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink|Random|BigNum)\b/,
	boolean: /\b(?:true|false|nil)\b/,
	number: /\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e-?\d+)?/i,
	operator: /[=!*/%+\-^&|]=|>>?=?|<<?=?|:?:?=|\+\+?|--?|\*\*?|\/\/?|%|\|\|?|&&?|\b(?:return|and|or|not)\b|@@?|\?\??|\.\./,
	punctuation: /[{}[\];(),.:]/
};
Prism.languages.j = {
	comment: /\bNB\..*/,
	string: {
		pattern: /'(?:''|[^'\r\n])*'/,
		greedy: !0
	},
	keyword: /\b(?:(?:adverb|conjunction|CR|def|define|dyad|LF|monad|noun|verb)\b|(?:assert|break|case|catch[dt]?|continue|do|else|elseif|end|fcase|for|for_\w+|goto_\w+|if|label_\w+|return|select|throw|try|while|whilst)\.)/,
	verb: {
		pattern: /(?!\^:|;\.|[=!][.:])(?:\{(?:\.|::?)?|p(?:\.\.?|:)|[=!\]]|[<>+*\-%$|,#][.:]?|[?^]\.?|[;\[]:?|[~}"i][.:]|[ACeEIjLor]\.|(?:[_\/\\qsux]|_?\d):)/,
		alias: "keyword"
	},
	number: /\b_?(?:(?!\d:)\d+(?:\.\d+)?(?:(?:[ejpx]|ad|ar)_?\d+(?:\.\d+)?)*(?:b_?[\da-z]+(?:\.[\da-z]+)?)?|_\b(?!\.))/,
	adverb: {
		pattern: /[~}]|[\/\\]\.?|[bfM]\.|t[.:]/,
		alias: "builtin"
	},
	operator: /[=a][.:]|_\./,
	conjunction: {
		pattern: /&(?:\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\.|`:?|[\^LS]:|"/,
		alias: "variable"
	},
	punctuation: /[()]/
};
! function(e) {
	var t =
		/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,
		n = "(^|[^\\w.])(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",
		a = {
			pattern: RegExp(n + "[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),
			lookbehind: !0,
			inside: {
				namespace: {
					pattern: /^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,
					inside: {
						punctuation: /\./
					}
				},
				punctuation: /\./
			}
		};
	e.languages.java = e.languages.extend("clike", {
		"class-name": [a, {
			pattern: RegExp(n + "[A-Z]\\w*(?=\\s+\\w+\\s*[;,=())])"),
			lookbehind: !0,
			inside: a.inside
		}],
		keyword: t,
		function: [e.languages.clike.function, {
			pattern: /(\:\:\s*)[a-z_]\w*/,
			lookbehind: !0
		}],
		number: /\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,
		operator: {
			pattern: /(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,
			lookbehind: !0
		}
	}), e.languages.insertBefore("java", "string", {
		"triple-quoted-string": {
			pattern: /"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,
			greedy: !0,
			alias: "string"
		}
	}), e.languages.insertBefore("java", "class-name", {
		annotation: {
			pattern: /(^|[^.])@\w+(?:\s*\.\s*\w+)*/,
			lookbehind: !0,
			alias: "punctuation"
		},
		generics: {
			pattern: /<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/,
			inside: {
				"class-name": a,
				keyword: t,
				punctuation: /[<>(),.:]/,
				operator: /[?&|]/
			}
		},
		namespace: {
			pattern: RegExp(
				"(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!<keyword>)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?"
				.replace(/<keyword>/g, function() {
					return t.source
				})),
			lookbehind: !0,
			inside: {
				punctuation: /\./
			}
		}
	})
}(Prism);
! function(a) {
	var e = /\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,
		t = [{
			pattern: /\b(?:false|true)\b/i,
			alias: "boolean"
		}, {
			pattern: /(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,
			greedy: !0,
			lookbehind: !0
		}, {
			pattern: /(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,
			greedy: !0,
			lookbehind: !0
		}, /\b(?:null)\b/i, /\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],
		i =
		/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,
		n = /<?=>|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,
		s = /[{}\[\](),:;]/;
	a.languages.php = {
		delimiter: {
			pattern: /\?>$|^<\?(?:php(?=\s)|=)?/i,
			alias: "important"
		},
		comment: e,
		variable: /\$+(?:\w+\b|(?={))/i,
		package: {
			pattern: /(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,
			lookbehind: !0,
			inside: {
				punctuation: /\\/
			}
		},
		"class-name-definition": {
			pattern: /(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,
			lookbehind: !0,
			alias: "class-name"
		},
		keyword: [{
				pattern: /(\(\s*)\b(?:bool|boolean|int|integer|float|string|object|array)\b(?=\s*\))/i,
				alias: "type-casting",
				greedy: !0,
				lookbehind: !0
			}, {
				pattern: /([(,?]\s*)\b(?:bool|int|float|string|object|array(?!\s*\()|mixed|self|static|callable|iterable|(?:null|false)(?=\s*\|))\b(?=\s*\$)/i,
				alias: "type-hint",
				greedy: !0,
				lookbehind: !0
			}, {
				pattern: /([(,?]\s*[a-z0-9_|]\|\s*)(?:null|false)\b(?=\s*\$)/i,
				alias: "type-hint",
				greedy: !0,
				lookbehind: !0
			}, {
				pattern: /(\)\s*:\s*(?:\?\s*)?)\b(?:bool|int|float|string|object|void|array(?!\s*\()|mixed|self|static|callable|iterable|(?:null|false)(?=\s*\|))\b/i,
				alias: "return-type",
				greedy: !0,
				lookbehind: !0
			}, {
				pattern: /(\)\s*:\s*(?:\?\s*)?[a-z0-9_|]\|\s*)(?:null|false)\b/i,
				alias: "return-type",
				greedy: !0,
				lookbehind: !0
			}, {
				pattern: /\b(?:bool|int|float|string|object|void|array(?!\s*\()|mixed|iterable|(?:null|false)(?=\s*\|))\b/i,
				alias: "type-declaration",
				greedy: !0
			}, {
				pattern: /(\|\s*)(?:null|false)\b/i,
				alias: "type-declaration",
				greedy: !0,
				lookbehind: !0
			}, {
				pattern: /\b(?:parent|self|static)(?=\s*::)/i,
				alias: "static-context",
				greedy: !0
			},
			/\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|namespace|match|new|or|parent|print|private|protected|public|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\b/i
		],
		"argument-name": {
			pattern: /([(,]\s+)\b[a-z_]\w*(?=\s*:(?!:))/i,
			lookbehind: !0
		},
		"class-name": [{
			pattern: /(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,
			greedy: !0,
			lookbehind: !0
		}, {
			pattern: /(\|\s*)\b[a-z_]\w*(?!\\)\b/i,
			greedy: !0,
			lookbehind: !0
		}, {
			pattern: /\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,
			greedy: !0
		}, {
			pattern: /(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,
			alias: "class-name-fully-qualified",
			greedy: !0,
			lookbehind: !0,
			inside: {
				punctuation: /\\/
			}
		}, {
			pattern: /(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,
			alias: "class-name-fully-qualified",
			greedy: !0,
			inside: {
				punctuation: /\\/
			}
		}, {
			pattern: /(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,
			alias: "class-name-fully-qualified",
			greedy: !0,
			lookbehind: !0,
			inside: {
				punctuation: /\\/
			}
		}, {
			pattern: /\b[a-z_]\w*(?=\s*\$)/i,
			alias: "type-declaration",
			greedy: !0
		}, {
			pattern: /(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,
			alias: ["class-name-fully-qualified", "type-declaration"],
			greedy: !0,
			inside: {
				punctuation: /\\/
			}
		}, {
			pattern: /\b[a-z_]\w*(?=\s*::)/i,
			alias: "static-context",
			greedy: !0
		}, {
			pattern: /(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,
			alias: ["class-name-fully-qualified", "static-context"],
			greedy: !0,
			inside: {
				punctuation: /\\/
			}
		}, {
			pattern: /([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,
			alias: "type-hint",
			greedy: !0,
			lookbehind: !0
		}, {
			pattern: /([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,
			alias: ["class-name-fully-qualified", "type-hint"],
			greedy: !0,
			lookbehind: !0,
			inside: {
				punctuation: /\\/
			}
		}, {
			pattern: /(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,
			alias: "return-type",
			greedy: !0,
			lookbehind: !0
		}, {
			pattern: /(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,
			alias: ["class-name-fully-qualified", "return-type"],
			greedy: !0,
			lookbehind: !0,
			inside: {
				punctuation: /\\/
			}
		}],
		constant: t,
		function: /\w+\s*(?=\()/,
		property: {
			pattern: /(->)[\w]+/,
			lookbehind: !0
		},
		number: i,
		operator: n,
		punctuation: s
	};
	var l = {
			pattern: /{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)*)/,
			lookbehind: !0,
			inside: a.languages.php
		},
		r = [{
			pattern: /<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,
			alias: "nowdoc-string",
			greedy: !0,
			inside: {
				delimiter: {
					pattern: /^<<<'[^']+'|[a-z_]\w*;$/i,
					alias: "symbol",
					inside: {
						punctuation: /^<<<'?|[';]$/
					}
				}
			}
		}, {
			pattern: /<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,
			alias: "heredoc-string",
			greedy: !0,
			inside: {
				delimiter: {
					pattern: /^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,
					alias: "symbol",
					inside: {
						punctuation: /^<<<"?|[";]$/
					}
				},
				interpolation: l
			}
		}, {
			pattern: /`(?:\\[\s\S]|[^\\`])*`/,
			alias: "backtick-quoted-string",
			greedy: !0
		}, {
			pattern: /'(?:\\[\s\S]|[^\\'])*'/,
			alias: "single-quoted-string",
			greedy: !0
		}, {
			pattern: /"(?:\\[\s\S]|[^\\"])*"/,
			alias: "double-quoted-string",
			greedy: !0,
			inside: {
				interpolation: l
			}
		}];
	a.languages.insertBefore("php", "variable", {
		string: r
	}), a.languages.insertBefore("php", "variable", {
		attribute: {
			pattern: /#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,
			greedy: !0,
			inside: {
				"attribute-content": {
					pattern: /^(#\[)[\s\S]+(?=]$)/,
					lookbehind: !0,
					inside: {
						comment: e,
						string: r,
						"attribute-class-name": [{
							pattern: /([^:]|^)\b[a-z_]\w*(?!\\)\b/i,
							alias: "class-name",
							greedy: !0,
							lookbehind: !0
						}, {
							pattern: /([^:]|^)(?:\\?\b[a-z_]\w*)+/i,
							alias: ["class-name", "class-name-fully-qualified"],
							greedy: !0,
							lookbehind: !0,
							inside: {
								punctuation: /\\/
							}
						}],
						constant: t,
						number: i,
						operator: n,
						punctuation: s
					}
				},
				delimiter: {
					pattern: /^#\[|]$/,
					alias: "punctuation"
				}
			}
		}
	}), a.hooks.add("before-tokenize", function(e) {
		if (/<\?/.test(e.code)) {
			a.languages["markup-templating"].buildPlaceholders(e, "php",
				/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/gi
			)
		}
	}), a.hooks.add("after-tokenize", function(e) {
		a.languages["markup-templating"].tokenizePlaceholders(e, "php")
	})
}(Prism);
! function(p) {
	var a = p.languages.javadoclike = {
		parameter: {
			pattern: /(^\s*(?:\/{3}|\*|\/\*\*)\s*@(?:param|arg|arguments)\s+)\w+/m,
			lookbehind: !0
		},
		keyword: {
			pattern: /(^\s*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,
			lookbehind: !0
		},
		punctuation: /[{}]/
	};
	Object.defineProperty(a, "addSupport", {
		value: function(a, e) {
			"string" == typeof a && (a = [a]), a.forEach(function(a) {
				! function(a, e) {
					var n = "doc-comment",
						t = p.languages[a];
					if (t) {
						var r = t[n];
						if (!r) {
							var o = {
								"doc-comment": {
									pattern: /(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,
									lookbehind: !0,
									alias: "comment"
								}
							};
							r = (t = p.languages.insertBefore(a, "comment", o))[n]
						}
						if (r instanceof RegExp && (r = t[n] = {
								pattern: r
							}), Array.isArray(r))
							for (var i = 0, s = r.length; i < s; i++) r[i] instanceof RegExp && (r[i] = {
								pattern: r[i]
							}), e(r[i]);
						else e(r)
					}
				}(a, function(a) {
					a.inside || (a.inside = {}), a.inside.rest = e
				})
			})
		}
	}), a.addSupport(["java", "javascript", "php"], a)
}(Prism);
! function(a) {
	var e = /(^(?:\s*(?:\*\s*)*))[^*\s].*$/m,
		n = "(?:[a-zA-Z]\\w+\\s*\\.\\s*)*[A-Z]\\w*(?:\\s*<mem>)?|<mem>".replace(/<mem>/g, function() {
			return "#\\s*\\w+(?:\\s*\\([^()]*\\))?"
		});
	a.languages.javadoc = a.languages.extend("javadoclike", {}), a.languages.insertBefore("javadoc", "keyword", {
		reference: {
			pattern: RegExp("(@(?:exception|throws|see|link|linkplain|value)\\s+(?:\\*\\s*)?)(?:" + n + ")"),
			lookbehind: !0,
			inside: {
				function: {
					pattern: /(#\s*)\w+(?=\s*\()/,
					lookbehind: !0
				},
				field: {
					pattern: /(#\s*)\w+/,
					lookbehind: !0
				},
				namespace: {
					pattern: /\b(?:[a-z]\w*\s*\.\s*)+/,
					inside: {
						punctuation: /\./
					}
				},
				"class-name": /\b[A-Z]\w*/,
				keyword: a.languages.java.keyword,
				punctuation: /[#()[\],.]/
			}
		},
		"class-name": {
			pattern: /(@param\s+)<[A-Z]\w*>/,
			lookbehind: !0,
			inside: {
				punctuation: /[.<>]/
			}
		},
		"code-section": [{
			pattern: /(\{@code\s+(?!\s))(?:[^\s{}]|\s+(?![\s}])|\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\})+(?=\s*\})/,
			lookbehind: !0,
			inside: {
				code: {
					pattern: e,
					lookbehind: !0,
					inside: a.languages.java,
					alias: "language-java"
				}
			}
		}, {
			pattern: /(<(code|pre|tt)>(?!<code>)\s*)\S(?:\S|\s+\S)*?(?=\s*<\/\2>)/,
			lookbehind: !0,
			inside: {
				line: {
					pattern: e,
					lookbehind: !0,
					inside: {
						tag: a.languages.markup.tag,
						entity: a.languages.markup.entity,
						code: {
							pattern: /.+/,
							inside: a.languages.java,
							alias: "language-java"
						}
					}
				}
			}
		}],
		tag: a.languages.markup.tag,
		entity: a.languages.markup.entity
	}), a.languages.javadoclike.addSupport("java", a.languages.javadoc)
}(Prism);
Prism.languages.javastacktrace = {
	summary: {
		pattern: /^[\t ]*(?:(?:Caused by:|Suppressed:|Exception in thread "[^"]*")[\t ]+)?[\w$.]+(?:\:.*)?$/m,
		inside: {
			keyword: {
				pattern: /^(\s*)(?:(?:Caused by|Suppressed)(?=:)|Exception in thread)/m,
				lookbehind: !0
			},
			string: {
				pattern: /^(\s*)"[^"]*"/,
				lookbehind: !0
			},
			exceptions: {
				pattern: /^(:?\s*)[\w$.]+(?=:|$)/,
				lookbehind: !0,
				inside: {
					"class-name": /[\w$]+(?=$|:)/,
					namespace: /[a-z]\w*/,
					punctuation: /[.:]/
				}
			},
			message: {
				pattern: /(:\s*)\S.*/,
				lookbehind: !0,
				alias: "string"
			},
			punctuation: /[:]/
		}
	},
	"stack-frame": {
		pattern: /^[\t ]*at (?:[\w$./]|@[\w$.+-]*\/)+(?:<init>)?\([^()]*\)/m,
		inside: {
			keyword: {
				pattern: /^(\s*)at(?= )/,
				lookbehind: !0
			},
			source: [{
				pattern: /(\()\w+\.\w+:\d+(?=\))/,
				lookbehind: !0,
				inside: {
					file: /^\w+\.\w+/,
					punctuation: /:/,
					"line-number": {
						pattern: /\d+/,
						alias: "number"
					}
				}
			}, {
				pattern: /(\()[^()]*(?=\))/,
				lookbehind: !0,
				inside: {
					keyword: /^(?:Unknown Source|Native Method)$/
				}
			}],
			"class-name": /[\w$]+(?=\.(?:<init>|[\w$]+)\()/,
			function: /(?:<init>|[\w$]+)(?=\()/,
			"class-loader": {
				pattern: /(\s)[a-z]\w*(?:\.[a-z]\w*)*(?=\/[\w@$.]*\/)/,
				lookbehind: !0,
				alias: "namespace",
				inside: {
					punctuation: /\./
				}
			},
			module: {
				pattern: /([\s/])[a-z]\w*(?:\.[a-z]\w*)*(?:@[\w$.+-]*)?(?=\/)/,
				lookbehind: !0,
				inside: {
					version: {
						pattern: /(@)[\s\S]+/,
						lookbehind: !0,
						alias: "number"
					},
					punctuation: /[@.]/
				}
			},
			namespace: {
				pattern: /(?:[a-z]\w*\.)+/,
				inside: {
					punctuation: /\./
				}
			},
			punctuation: /[()/.]/
		}
	},
	more: {
		pattern: /^[\t ]*\.{3} \d+ [a-z]+(?: [a-z]+)*/m,
		inside: {
			punctuation: /\.{3}/,
			number: /\d+/,
			keyword: /\b[a-z]+(?: [a-z]+)*\b/
		}
	}
};
Prism.languages.jolie = Prism.languages.extend("clike", {
	string: {
		pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
		greedy: !0
	},
	keyword: /\b(?:include|define|is_defined|undef|main|init|outputPort|inputPort|Location|Protocol|Interfaces|RequestResponse|OneWay|type|interface|extender|throws|cset|csets|forward|Aggregates|Redirects|embedded|courier|execution|sequential|concurrent|single|scope|install|throw|comp|cH|default|global|linkIn|linkOut|synchronized|this|new|for|if|else|while|in|Jolie|Java|Javascript|nullProcess|spawn|constants|with|provide|until|exit|foreach|instanceof|over|service)\b/,
	number: /(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?l?/i,
	operator: /-[-=>]?|\+[+=]?|<[<=]?|[>=*!]=?|&&|\|\||[:?\/%^]/,
	punctuation: /[,.]/,
	builtin: /\b(?:undefined|string|int|void|long|Byte|bool|double|float|char|any)\b/,
	symbol: /[|;@]/
}), delete Prism.languages.jolie["class-name"], Prism.languages.insertBefore("jolie", "keyword", {
	function: {
		pattern: /((?:\b(?:outputPort|inputPort|in|service|courier)\b|@)\s*)\w+/,
		lookbehind: !0
	},
	aggregates: {
		pattern: /(\bAggregates\s*:\s*)(?:\w+(?:\s+with\s+\w+)?\s*,\s*)*\w+(?:\s+with\s+\w+)?/,
		lookbehind: !0,
		inside: {
			"with-extension": {
				pattern: /\bwith\s+\w+/,
				inside: {
					keyword: /\bwith\b/
				}
			},
			function: {
				pattern: /\w+/
			},
			punctuation: {
				pattern: /,/
			}
		}
	},
	redirects: {
		pattern: /(\bRedirects\s*:\s*)(?:\w+\s*=>\s*\w+\s*,\s*)*(?:\w+\s*=>\s*\w+)/,
		lookbehind: !0,
		inside: {
			punctuation: {
				pattern: /,/
			},
			function: {
				pattern: /\w+/
			},
			symbol: {
				pattern: /=>/
			}
		}
	}
});
! function(e) {
	var n = "\\\\\\((?:[^()]|\\([^()]*\\))*\\)",
		t = RegExp('"(?:[^"\r\n\\\\]|\\\\[^\r\n(]|__)*"'.replace(/__/g, function() {
			return n
		})),
		i = {
			interpolation: {
				pattern: RegExp("((?:^|[^\\\\])(?:\\\\{2})*)" + n),
				lookbehind: !0,
				inside: {
					content: {
						pattern: /^(\\\()[\s\S]+(?=\)$)/,
						lookbehind: !0,
						inside: null
					},
					punctuation: /^\\\(|\)$/
				}
			}
		},
		a = e.languages.jq = {
			comment: /#.*/,
			property: {
				pattern: RegExp(t.source + "(?=\\s*:(?!:))"),
				greedy: !0,
				inside: i
			},
			string: {
				pattern: t,
				greedy: !0,
				inside: i
			},
			function: {
				pattern: /(\bdef\s+)[a-z_]\w+/i,
				lookbehind: !0
			},
			variable: /\B\$\w+/,
			"property-literal": {
				pattern: /\b[a-z_]\w*(?=\s*:(?!:))/i,
				alias: "property"
			},
			keyword: /\b(?:as|break|catch|def|elif|else|end|foreach|if|import|include|label|module|modulemeta|null|reduce|then|try|while)\b/,
			boolean: /\b(?:true|false)\b/,
			number: /(?:\b\d+\.|\B\.)?\b\d+(?:[eE][+-]?\d+)?\b/,
			operator: [{
				pattern: /\|=?/,
				alias: "pipe"
			}, /\.\.|[!=<>]?=|\?\/\/|\/\/=?|[-+*/%]=?|[<>?]|\b(?:and|or|not)\b/],
			"c-style-function": {
				pattern: /\b[a-z_]\w*(?=\s*\()/i,
				alias: "function"
			},
			punctuation: /::|[()\[\]{},:;]|\.(?=\s*[\[\w$])/,
			dot: {
				pattern: /\./,
				alias: "important"
			}
		};
	i.interpolation.inside.content.inside = a
}(Prism);
! function(e) {
	e.languages.typescript = e.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
		},
		keyword: /\b(?:abstract|as|asserts|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|undefined|var|void|while|with|yield)\b/,
		builtin: /\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\b/
	}), delete e.languages.typescript.parameter;
	var n = e.languages.extend("typescript", {});
	delete n["class-name"], e.languages.typescript["class-name"].inside = n, e.languages.insertBefore("typescript",
		"function", {
			"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: n
					}
				}
			}
		}), e.languages.ts = e.languages.typescript
}(Prism);
! function(e) {
	var a = e.languages.javascript,
		n = "{(?:[^{}]|{(?:[^{}]|{[^{}]*})*})+}",
		s = "(@(?:param|arg|argument|property)\\s+(?:" + n + "\\s+)?)";
	e.languages.jsdoc = e.languages.extend("javadoclike", {
		parameter: {
			pattern: RegExp(s + "(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?=\\s|$)"),
			lookbehind: !0,
			inside: {
				punctuation: /\./
			}
		}
	}), e.languages.insertBefore("jsdoc", "keyword", {
		"optional-parameter": {
			pattern: RegExp(s + "\\[(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?:=[^[\\]]+)?\\](?=\\s|$)"),
			lookbehind: !0,
			inside: {
				parameter: {
					pattern: /(^\[)[$\w\xA0-\uFFFF\.]+/,
					lookbehind: !0,
					inside: {
						punctuation: /\./
					}
				},
				code: {
					pattern: /(=)[\s\S]*(?=\]$)/,
					lookbehind: !0,
					inside: a,
					alias: "language-javascript"
				},
				punctuation: /[=[\]]/
			}
		},
		"class-name": [{
			pattern: RegExp(
				"(@(?:augments|extends|class|interface|memberof!?|template|this|typedef)\\s+(?:<TYPE>\\s+)?)[A-Z]\\w*(?:\\.[A-Z]\\w*)*"
				.replace(/<TYPE>/g, function() {
					return n
				})),
			lookbehind: !0,
			inside: {
				punctuation: /\./
			}
		}, {
			pattern: RegExp("(@[a-z]+\\s+)" + n),
			lookbehind: !0,
			inside: {
				string: a.string,
				number: a.number,
				boolean: a.boolean,
				keyword: e.languages.typescript.keyword,
				operator: /=>|\.\.\.|[&|?:*]/,
				punctuation: /[.,;=<>{}()[\]]/
			}
		}],
		example: {
			pattern: /(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,
			lookbehind: !0,
			inside: {
				code: {
					pattern: /^(\s*(?:\*\s*)?)\S.*$/m,
					lookbehind: !0,
					inside: a,
					alias: "language-javascript"
				}
			}
		}
	}), e.languages.javadoclike.addSupport("javascript", e.languages.jsdoc)
}(Prism);
! function(a) {
	function e(a, e) {
		return RegExp(a.replace(/<ID>/g, function() {
			return "(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*"
		}), e)
	}
	a.languages.insertBefore("javascript", "function-variable", {
		"method-variable": {
			pattern: RegExp("(\\.\\s*)" + a.languages.javascript["function-variable"].pattern.source),
			lookbehind: !0,
			alias: ["function-variable", "method", "function", "property-access"]
		}
	}), a.languages.insertBefore("javascript", "function", {
		method: {
			pattern: RegExp("(\\.\\s*)" + a.languages.javascript.function.source),
			lookbehind: !0,
			alias: ["function", "property-access"]
		}
	}), a.languages.insertBefore("javascript", "constant", {
		"known-class-name": [{
			pattern: /\b(?:(?:(?:Uint|Int)(?:8|16|32)|Uint8Clamped|Float(?:32|64))?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|(?:Weak)?(?:Set|Map)|WebAssembly)\b/,
			alias: "class-name"
		}, {
			pattern: /\b(?:[A-Z]\w*)Error\b/,
			alias: "class-name"
		}]
	}), a.languages.insertBefore("javascript", "keyword", {
		imports: {
			pattern: e(
				"(\\bimport\\b\\s*)(?:<ID>(?:\\s*,\\s*(?:\\*\\s*as\\s+<ID>|\\{[^{}]*\\}))?|\\*\\s*as\\s+<ID>|\\{[^{}]*\\})(?=\\s*\\bfrom\\b)"
			),
			lookbehind: !0,
			inside: a.languages.javascript
		},
		exports: {
			pattern: e("(\\bexport\\b\\s*)(?:\\*(?:\\s*as\\s+<ID>)?(?=\\s*\\bfrom\\b)|\\{[^{}]*\\})"),
			lookbehind: !0,
			inside: a.languages.javascript
		}
	}), a.languages.javascript.keyword.unshift({
		pattern: /\b(?:as|default|export|from|import)\b/,
		alias: "module"
	}, {
		pattern: /\b(?:await|break|catch|continue|do|else|for|finally|if|return|switch|throw|try|while|yield)\b/,
		alias: "control-flow"
	}, {
		pattern: /\bnull\b/,
		alias: ["null", "nil"]
	}, {
		pattern: /\bundefined\b/,
		alias: "nil"
	}), a.languages.insertBefore("javascript", "operator", {
		spread: {
			pattern: /\.{3}/,
			alias: "operator"
		},
		arrow: {
			pattern: /=>/,
			alias: "operator"
		}
	}), a.languages.insertBefore("javascript", "punctuation", {
		"property-access": {
			pattern: e("(\\.\\s*)#?<ID>"),
			lookbehind: !0
		},
		"maybe-class-name": {
			pattern: /(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,
			lookbehind: !0
		},
		dom: {
			pattern: /\b(?:document|location|navigator|performance|(?:local|session)Storage|window)\b/,
			alias: "variable"
		},
		console: {
			pattern: /\bconsole(?=\s*\.)/,
			alias: "class-name"
		}
	});
	for (var t = ["function", "function-variable", "method", "method-variable", "property-access"], r = 0; r < t.length; r++) {
		var n = t[r],
			s = a.languages.javascript[n];
		"RegExp" === a.util.type(s) && (s = a.languages.javascript[n] = {
			pattern: s
		});
		var o = s.inside || {};
		(s.inside = o)["maybe-class-name"] = /^[A-Z][\s\S]*/
	}
}(Prism);
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(?:true|false)\b/,
	null: {
		pattern: /\bnull\b/,
		alias: "keyword"
	}
}, Prism.languages.webmanifest = Prism.languages.json;
! function(n) {
	var e = /("|')(?:\\(?:\r\n?|\n|.)|(?!\1)[^\\\r\n])*\1/;
	n.languages.json5 = n.languages.extend("json", {
		property: [{
			pattern: RegExp(e.source + "(?=\\s*:)"),
			greedy: !0
		}, {
			pattern: /(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/,
			alias: "unquoted"
		}],
		string: {
			pattern: e,
			greedy: !0
		},
		number: /[+-]?\b(?:NaN|Infinity|0x[a-fA-F\d]+)\b|[+-]?(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+\b)?/
	})
}(Prism);
Prism.languages.jsonp = Prism.languages.extend("json", {
	punctuation: /[{}[\]();,.]/
}), Prism.languages.insertBefore("jsonp", "punctuation", {
	function: /(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*\()/
});
Prism.languages.jsstacktrace = {
	"error-message": {
		pattern: /^\S.*/m,
		alias: "string"
	},
	"stack-frame": {
		pattern: /^[ \t]+at[ \t].*/m,
		inside: {
			"not-my-code": {
				pattern: /[ \t]+at[ \t]+(?!\s)(?:node\.js|\<unknown\>|.*(?:node_modules|\(\<anonymous\>\)|\(\<unknown\>|\<anonymous\>$|\(internal\/|\(node\.js)).*/m,
				alias: "comment"
			},
			filename: {
				pattern: /(\bat\s+(?!\s)|\()(?:[a-zA-Z]:)?[^():]+(?=:)/,
				lookbehind: !0,
				alias: "url"
			},
			function: {
				pattern: /(at\s+(?:new\s+)?)(?!\s)[_$a-zA-Z\xA0-\uFFFF<][.$\w\xA0-\uFFFF<>]*/,
				lookbehind: !0,
				inside: {
					punctuation: /\./
				}
			},
			punctuation: /[()]/,
			keyword: /\b(?:at|new)\b/,
			alias: {
				pattern: /\[(?:as\s+)?(?!\s)[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\]/,
				alias: "variable"
			},
			"line-number": {
				pattern: /:[0-9]+(?::[0-9]+)?\b/,
				alias: "number",
				inside: {
					punctuation: /:/
				}
			}
		}
	}
};
! function(u) {
	var e = u.languages.javascript["template-string"],
		n = e.pattern.source,
		a = e.inside.interpolation,
		i = a.inside["interpolation-punctuation"],
		r = a.pattern.source;

	function t(e, t) {
		if (u.languages[e]) return {
			pattern: RegExp("((?:" + t + ")\\s*)" + n),
			lookbehind: !0,
			greedy: !0,
			inside: {
				"template-punctuation": {
					pattern: /^`|`$/,
					alias: "string"
				},
				"embedded-code": {
					pattern: /[\s\S]+/,
					alias: e
				}
			}
		}
	}

	function o(e, t, n) {
		var r = {
			code: e,
			grammar: t,
			language: n
		};
		return u.hooks.run("before-tokenize", r), r.tokens = u.tokenize(r.code, r.grammar), u.hooks.run("after-tokenize", r),
			r.tokens
	}

	function d(e) {
		var t = {};
		t["interpolation-punctuation"] = i;
		var n = u.tokenize(e, t);
		if (3 === n.length) {
			var r = [1, 1];
			r.push.apply(r, o(n[1], u.languages.javascript, "javascript")), n.splice.apply(n, r)
		}
		return new u.Token("interpolation", n, a.alias, e)
	}

	function c(a, e, i) {
		var t = u.tokenize(a, {
				interpolation: {
					pattern: RegExp(r),
					lookbehind: !0
				}
			}),
			f = 0,
			y = {},
			n = o(t.map(function(e) {
				if ("string" == typeof e) return e;
				for (var t, n = e.content; - 1 !== a.indexOf((r = f++, t = "___" + i.toUpperCase() + "_" + r + "___")););
				return y[t] = n, t;
				var r
			}).join(""), e, i),
			v = Object.keys(y);
		return f = 0,
			function e(t) {
				for (var n = 0; n < t.length; n++) {
					if (f >= v.length) return;
					var r = t[n];
					if ("string" == typeof r || "string" == typeof r.content) {
						var a = v[f],
							i = "string" == typeof r ? r : r.content,
							o = i.indexOf(a);
						if (-1 !== o) {
							++f;
							var s = i.substring(0, o),
								p = d(y[a]),
								l = i.substring(o + a.length),
								g = [];
							if (s && g.push(s), g.push(p), l) {
								var u = [l];
								e(u), g.push.apply(g, u)
							}
							"string" == typeof r ? (t.splice.apply(t, [n, 1].concat(g)), n += g.length - 1) : r.content = g
						}
					} else {
						var c = r.content;
						Array.isArray(c) ? e(c) : e([c])
					}
				}
			}(n), new u.Token(i, n, "language-" + i, a)
	}
	u.languages.javascript["template-string"] = [t("css",
			"\\b(?:styled(?:\\([^)]*\\))?(?:\\s*\\.\\s*\\w+(?:\\([^)]*\\))*)*|css(?:\\s*\\.\\s*(?:global|resolve))?|createGlobalStyle|keyframes)"
		), t("html", "\\bhtml|\\.\\s*(?:inner|outer)HTML\\s*\\+?="), t("svg", "\\bsvg"), t("markdown", "\\b(?:md|markdown)"),
		t("graphql", "\\b(?:gql|graphql(?:\\s*\\.\\s*experimental)?)"), e
	].filter(Boolean);
	var s = {
		javascript: !0,
		js: !0,
		typescript: !0,
		ts: !0,
		jsx: !0,
		tsx: !0
	};

	function f(e) {
		return "string" == typeof e ? e : Array.isArray(e) ? e.map(f).join("") : f(e.content)
	}
	u.hooks.add("after-tokenize", function(e) {
		e.language in s && ! function e(t) {
			for (var n = 0, r = t.length; n < r; n++) {
				var a = t[n];
				if ("string" != typeof a) {
					var i = a.content;
					if (Array.isArray(i))
						if ("template-string" === a.type) {
							var o = i[1];
							if (3 === i.length && "string" != typeof o && "embedded-code" === o.type) {
								var s = f(o),
									p = o.alias,
									l = Array.isArray(p) ? p[0] : p,
									g = u.languages[l];
								if (!g) continue;
								i[1] = c(s, g, l)
							}
						} else e(i);
					else "string" != typeof i && e([i])
				}
			}
		}(e.tokens)
	})
}(Prism);
Prism.languages.julia = {
	comment: {
		pattern: /(^|[^\\])(?:#=(?:[^#=]|=(?!#)|#(?!=)|#=(?:[^#=]|=(?!#)|#(?!=))*=#)*=#|#.*)/,
		lookbehind: !0
	},
	regex: {
		pattern: /r"(?:\\.|[^"\\\r\n])*"[imsx]{0,4}/,
		greedy: !0
	},
	string: {
		pattern: /"""[\s\S]+?"""|\w*"(?:\\.|[^"\\\r\n])*"|(^|[^\w'])'(?:\\[^\r\n][^'\r\n]*|[^\\\r\n])'|`(?:[^\\`\r\n]|\\.)*`/,
		lookbehind: !0,
		greedy: !0
	},
	keyword: /\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|in|let|local|macro|module|print|println|quote|return|struct|try|type|typealias|using|while)\b/,
	boolean: /\b(?:true|false)\b/,
	number: /(?:\b(?=\d)|\B(?=\.))(?:0[box])?(?:[\da-f]+(?:_[\da-f]+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[efp][+-]?\d+(?:_\d+)*)?j?/i,
	operator: /&&|\|\||[-+*^%÷⊻&$\\]=?|\/[\/=]?|!=?=?|\|[=>]?|<(?:<=?|[=:|])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥'√∛]/,
	punctuation: /::?|[{}[\]();,.?]/,
	constant: /\b(?:(?:NaN|Inf)(?:16|32|64)?|im|pi)\b|[πℯ]/
};
Prism.languages.keyman = {
	comment: /\bc\s.*/i,
	function: /\[\s*(?:(?:CTRL|SHIFT|ALT|LCTRL|RCTRL|LALT|RALT|CAPS|NCAPS)\s+)*(?:[TKU]_[\w?]+|".+?"|'.+?')\s*\]/i,
	string: /("|').*?\1/,
	bold: [
		/&(?:baselayout|bitmap|capsononly|capsalwaysoff|shiftfreescaps|copyright|ethnologuecode|hotkey|includecodes|keyboardversion|kmw_embedcss|kmw_embedjs|kmw_helpfile|kmw_helptext|kmw_rtl|language|layer|layoutfile|message|mnemoniclayout|name|oldcharposmatching|platform|targets|version|visualkeyboard|windowslanguages)\b/i,
		/\b(?:bitmap|bitmaps|caps on only|caps always off|shift frees caps|copyright|hotkey|language|layout|message|name|version)\b/i
	],
	keyword: /\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|return|reset|save|set|store|use)\b/i,
	atrule: /\b(?:ansi|begin|unicode|group|using keys|match|nomatch)\b/i,
	number: /\b(?:U\+[\dA-F]+|d\d+|x[\da-f]+|\d+)\b/i,
	operator: /[+>\\,()]/,
	tag: /\$(?:keyman|kmfl|weaver|keymanweb|keymanonly):/i
};
! function(e) {
	e.languages.kotlin = e.languages.extend("clike", {
		keyword: {
			pattern: /(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,
			lookbehind: !0
		},
		function: [{
			pattern: /(?:`[^\r\n`]+`|\w+)(?=\s*\()/,
			greedy: !0
		}, {
			pattern: /(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,
			lookbehind: !0,
			greedy: !0
		}],
		number: /\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,
		operator: /\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/
	}), delete e.languages.kotlin["class-name"], e.languages.insertBefore("kotlin", "string", {
		"raw-string": {
			pattern: /("""|''')[\s\S]*?\1/,
			alias: "string"
		}
	}), e.languages.insertBefore("kotlin", "keyword", {
		annotation: {
			pattern: /\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,
			alias: "builtin"
		}
	}), e.languages.insertBefore("kotlin", "function", {
		label: {
			pattern: /\w+@|@\w+/,
			alias: "symbol"
		}
	});
	var n = [{
		pattern: /\$\{[^}]+\}/,
		inside: {
			delimiter: {
				pattern: /^\$\{|\}$/,
				alias: "variable"
			},
			rest: e.languages.kotlin
		}
	}, {
		pattern: /\$\w+/,
		alias: "variable"
	}];
	e.languages.kotlin.string.inside = e.languages.kotlin["raw-string"].inside = {
		interpolation: n
	}, e.languages.kt = e.languages.kotlin, e.languages.kts = e.languages.kotlin
}(Prism);
! function(n) {
	function o(n, o) {
		return RegExp(n.replace(/<nonId>/g, "\\s\\x00-\\x1f\\x22-\\x2f\\x3a-\\x3f\\x5b-\\x5e\\x60\\x7b-\\x7e"), o)
	}
	n.languages.kumir = {
		comment: {
			pattern: /\|.*/
		},
		prolog: {
			pattern: /#.*/,
			greedy: !0
		},
		string: {
			pattern: /"[^\n\r"]*"|'[^\n\r']*'/,
			greedy: !0
		},
		boolean: {
			pattern: o("(^|[<nonId>])(?:да|нет)(?=[<nonId>]|$)"),
			lookbehind: !0
		},
		"operator-word": {
			pattern: o("(^|[<nonId>])(?:и|или|не)(?=[<nonId>]|$)"),
			lookbehind: !0,
			alias: "keyword"
		},
		"system-variable": {
			pattern: o("(^|[<nonId>])знач(?=[<nonId>]|$)"),
			lookbehind: !0,
			alias: "keyword"
		},
		type: [{
			pattern: o("(^|[<nonId>])(?:вещ|лит|лог|сим|цел)(?:\\x20*таб)?(?=[<nonId>]|$)"),
			lookbehind: !0,
			alias: "builtin"
		}, {
			pattern: o("(^|[<nonId>])(?:компл|сканкод|файл|цвет)(?=[<nonId>]|$)"),
			lookbehind: !0,
			alias: "important"
		}],
		keyword: {
			pattern: o(
				"(^|[<nonId>])(?:алг|арг(?:\\x20*рез)?|ввод|ВКЛЮЧИТЬ|вс[её]|выбор|вывод|выход|дано|для|до|дс|если|иначе|исп|использовать|кон(?:(?:\\x20+|_)исп)?|кц(?:(?:\\x20+|_)при)?|надо|нач|нс|нц|от|пауза|пока|при|раза?|рез|стоп|таб|то|утв|шаг)(?=[<nonId>]|$)"
			),
			lookbehind: !0
		},
		name: {
			pattern: o("(^|[<nonId>])[^\\d<nonId>][^<nonId>]*(?:\\x20+[^<nonId>]+)*(?=[<nonId>]|$)"),
			lookbehind: !0
		},
		number: {
			pattern: o("(^|[<nonId>])(?:\\B\\$[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)(?=[<nonId>]|$)",
				"i"),
			lookbehind: !0
		},
		punctuation: /:=|[(),:;\[\]]/,
		"operator-char": {
			pattern: /\*\*?|<[=>]?|>=?|[-+/=]/,
			alias: "operator"
		}
	}, n.languages.kum = n.languages.kumir
}(Prism);
! function(a) {
	var e = /\\(?:[^a-z()[\]]|[a-z*]+)/i,
		n = {
			"equation-command": {
				pattern: e,
				alias: "regex"
			}
		};
	a.languages.latex = {
		comment: /%.*/m,
		cdata: {
			pattern: /(\\begin\{((?:verbatim|lstlisting)\*?)\})[\s\S]*?(?=\\end\{\2\})/,
			lookbehind: !0
		},
		equation: [{
			pattern: /\$\$(?:\\[\s\S]|[^\\$])+\$\$|\$(?:\\[\s\S]|[^\\$])+\$|\\\([\s\S]*?\\\)|\\\[[\s\S]*?\\\]/,
			inside: n,
			alias: "string"
		}, {
			pattern: /(\\begin\{((?:equation|math|eqnarray|align|multline|gather)\*?)\})[\s\S]*?(?=\\end\{\2\})/,
			lookbehind: !0,
			inside: n,
			alias: "string"
		}],
		keyword: {
			pattern: /(\\(?:begin|end|ref|cite|label|usepackage|documentclass)(?:\[[^\]]+\])?\{)[^}]+(?=\})/,
			lookbehind: !0
		},
		url: {
			pattern: /(\\url\{)[^}]+(?=\})/,
			lookbehind: !0
		},
		headline: {
			pattern: /(\\(?:part|chapter|section|subsection|frametitle|subsubsection|paragraph|subparagraph|subsubparagraph|subsubsubparagraph)\*?(?:\[[^\]]+\])?\{)[^}]+(?=\}(?:\[[^\]]+\])?)/,
			lookbehind: !0,
			alias: "class-name"
		},
		function: {
			pattern: e,
			alias: "selector"
		},
		punctuation: /[[\]{}&]/
	}, a.languages.tex = a.languages.latex, a.languages.context = a.languages.latex
}(Prism);
! function(t) {
	t.languages.latte = {
		comment: /^\{\*[\s\S]*/,
		ld: {
			pattern: /^\{(?:[=_]|\/?(?!\d|\w+\()\w+|)/,
			inside: {
				punctuation: /^\{\/?/,
				tag: {
					pattern: /.+/,
					alias: "important"
				}
			}
		},
		rd: {
			pattern: /\}$/,
			inside: {
				punctuation: /.+/
			}
		},
		php: {
			pattern: /\S(?:[\s\S]*\S)?/,
			alias: "language-php",
			inside: t.languages.php
		}
	};
	var e = t.languages.extend("markup", {});
	t.languages.insertBefore("inside", "attr-value", {
		"n-attr": {
			pattern: /n:[\w-]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+))?/,
			inside: {
				"attr-name": {
					pattern: /^[^\s=]+/,
					alias: "important"
				},
				"attr-value": {
					pattern: /=[\s\S]+/,
					inside: {
						punctuation: [/^=/, {
							pattern: /^(\s*)["']|["']$/,
							lookbehind: !0
						}],
						php: {
							pattern: /\S(?:[\s\S]*\S)?/,
							inside: t.languages.php
						}
					}
				}
			}
		}
	}, e.tag), t.hooks.add("before-tokenize", function(a) {
		if ("latte" === a.language) {
			t.languages["markup-templating"].buildPlaceholders(a, "latte",
				/\{\*[\s\S]*?\*\}|\{[^'"\s{}*](?:[^"'/{}]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|\/\*(?:[^*]|\*(?!\/))*\*\/)*?\}/g
			), a.grammar = e
		}
	}), t.hooks.add("after-tokenize", function(a) {
		t.languages["markup-templating"].tokenizePlaceholders(a, "latte")
	})
}(Prism);
Prism.languages.less = Prism.languages.extend("css", {
	comment: [/\/\*[\s\S]*?\*\//, {
		pattern: /(^|[^\\])\/\/.*/,
		lookbehind: !0
	}],
	atrule: {
		pattern: /@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,
		inside: {
			punctuation: /[:()]/
		}
	},
	selector: {
		pattern: /(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,
		inside: {
			variable: /@+[\w-]+/
		}
	},
	property: /(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/i,
	operator: /[+\-*\/]/
}), Prism.languages.insertBefore("less", "property", {
	variable: [{
		pattern: /@[\w-]+\s*:/,
		inside: {
			punctuation: /:/
		}
	}, /@@?[\w-]+/],
	"mixin-usage": {
		pattern: /([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,
		lookbehind: !0,
		alias: "function"
	}
});
Prism.languages.scheme = {
	comment: /;.*|#;\s*\((?:[^()]|\([^()]*\))*\)|#\|(?:[^#|]|#(?!\|)|\|(?!#)|#\|(?:[^#|]|#(?!\|)|\|(?!#))*\|#)*\|#/,
	string: {
		pattern: /"(?:[^"\\]|\\.)*"/,
		greedy: !0
	},
	symbol: {
		pattern: /'[^()#'\s]+/,
		greedy: !0
	},
	character: {
		pattern: /#\\(?:[ux][a-fA-F\d]+\b|[-a-zA-Z]+\b|[\uD800-\uDBFF][\uDC00-\uDFFF]|\S)/,
		greedy: !0,
		alias: "string"
	},
	"lambda-parameter": [{
		pattern: /((?:^|[^'`#])\(lambda\s+)(?:[^|()'\s]+|\|(?:[^\\|]|\\.)*\|)/,
		lookbehind: !0
	}, {
		pattern: /((?:^|[^'`#])\(lambda\s+\()[^()']+/,
		lookbehind: !0
	}],
	keyword: {
		pattern: /((?:^|[^'`#])\()(?:begin|case(?:-lambda)?|cond(?:-expand)?|define(?:-library|-macro|-record-type|-syntax|-values)?|defmacro|delay(?:-force)?|do|else|export|except|guard|if|import|include(?:-ci|-library-declarations)?|lambda|let(?:rec)?(?:-syntax|-values|\*)?|let\*-values|only|parameterize|prefix|(?:quasi-?)?quote|rename|set!|syntax-(?:case|rules)|unless|unquote(?:-splicing)?|when)(?=[()\s]|$)/,
		lookbehind: !0
	},
	builtin: {
		pattern: /((?:^|[^'`#])\()(?:abs|and|append|apply|assoc|ass[qv]|binary-port\?|boolean=?\?|bytevector(?:-append|-copy|-copy!|-length|-u8-ref|-u8-set!|\?)?|caar|cadr|call-with-(?:current-continuation|port|values)|call\/cc|car|cdar|cddr|cdr|ceiling|char(?:->integer|-ready\?|\?|<\?|<=\?|=\?|>\?|>=\?)|close-(?:input-port|output-port|port)|complex\?|cons|current-(?:error|input|output)-port|denominator|dynamic-wind|eof-object\??|eq\?|equal\?|eqv\?|error|error-object(?:-irritants|-message|\?)|eval|even\?|exact(?:-integer-sqrt|-integer\?|\?)?|expt|features|file-error\?|floor(?:-quotient|-remainder|\/)?|flush-output-port|for-each|gcd|get-output-(?:bytevector|string)|inexact\??|input-port(?:-open\?|\?)|integer(?:->char|\?)|lcm|length|list(?:->string|->vector|-copy|-ref|-set!|-tail|\?)?|make-(?:bytevector|list|parameter|string|vector)|map|max|member|memq|memv|min|modulo|negative\?|newline|not|null\?|number(?:->string|\?)|numerator|odd\?|open-(?:input|output)-(?:bytevector|string)|or|output-port(?:-open\?|\?)|pair\?|peek-char|peek-u8|port\?|positive\?|procedure\?|quotient|raise|raise-continuable|rational\?|rationalize|read-(?:bytevector|bytevector!|char|error\?|line|string|u8)|real\?|remainder|reverse|round|set-c[ad]r!|square|string(?:->list|->number|->symbol|->utf8|->vector|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\?|<\?|<=\?|=\?|>\?|>=\?)?|substring|symbol(?:->string|\?|=\?)|syntax-error|textual-port\?|truncate(?:-quotient|-remainder|\/)?|u8-ready\?|utf8->string|values|vector(?:->list|->string|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\?)?|with-exception-handler|write-(?:bytevector|char|string|u8)|zero\?)(?=[()\s]|$)/,
		lookbehind: !0
	},
	operator: {
		pattern: /((?:^|[^'`#])\()(?:[-+*%/]|[<>]=?|=>?)(?=[()\s]|$)/,
		lookbehind: !0
	},
	number: {
		pattern: RegExp(function(r) {
			for (var e in r) r[e] = r[e].replace(/<[\w\s]+>/g, function(e) {
				return "(?:" + r[e].trim() + ")"
			});
			return r[e]
		}({
			"<ureal dec>": "\\d+(?:/\\d+)?|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?",
			"<real dec>": "[+-]?<ureal dec>|[+-](?:inf|nan)\\.0",
			"<imaginary dec>": "[+-](?:<ureal dec>|(?:inf|nan)\\.0)?i",
			"<complex dec>": "<real dec>(?:@<real dec>|<imaginary dec>)?|<imaginary dec>",
			"<num dec>": "(?:#d(?:#[ei])?|#[ei](?:#d)?)?<complex dec>",
			"<ureal box>": "[0-9a-f]+(?:/[0-9a-f]+)?",
			"<real box>": "[+-]?<ureal box>|[+-](?:inf|nan)\\.0",
			"<imaginary box>": "[+-](?:<ureal box>|(?:inf|nan)\\.0)?i",
			"<complex box>": "<real box>(?:@<real box>|<imaginary box>)?|<imaginary box>",
			"<num box>": "#[box](?:#[ei])?|(?:#[ei])?#[box]<complex box>",
			"<number>": "(^|[\\s()])(?:<num dec>|<num box>)(?=[()\\s]|$)"
		}), "i"),
		lookbehind: !0
	},
	boolean: {
		pattern: /(^|[\s()])#(?:[ft]|false|true)(?=[()\s]|$)/,
		lookbehind: !0
	},
	function: {
		pattern: /((?:^|[^'`#])\()(?:[^|()'\s]+|\|(?:[^\\|]|\\.)*\|)(?=[()\s]|$)/,
		lookbehind: !0
	},
	identifier: {
		pattern: /(^|[\s()])\|(?:[^\\|]|\\.)*\|(?=[()\s]|$)/,
		lookbehind: !0,
		greedy: !0
	},
	punctuation: /[()']/
};
! function(e) {
	for (var n = '\\((?:[^();"#\\\\]|\\\\[^]|;.*(?!.)|"(?:[^"\\\\]|\\\\.)*"|#(?:\\{(?:(?!#\\})[^])*#\\}|[^{])|<expr>)*\\)',
			i = 0; i < 5; i++) n = n.replace(/<expr>/g, function() {
		return n
	});
	n = n.replace(/<expr>/g, "[^\\s\\S]");
	var d = e.languages.lilypond = {
		comment: /%(?:(?!\{).*|\{[\s\S]*?%\})/,
		"embedded-scheme": {
			pattern: RegExp('(^|[=\\s])#(?:"(?:[^"\\\\]|\\\\.)*"|[^\\s()"]*(?:[^\\s()]|<expr>))'.replace(/<expr>/g, function() {
				return n
			}), "m"),
			lookbehind: !0,
			greedy: !0,
			inside: {
				scheme: {
					pattern: /^(#)[\s\S]+$/,
					lookbehind: !0,
					alias: "language-scheme",
					inside: {
						"embedded-lilypond": {
							pattern: /#\{[\s\S]*?#\}/,
							greedy: !0,
							inside: {
								punctuation: /^#\{|#\}$/,
								lilypond: {
									pattern: /[\s\S]+/,
									alias: "language-lilypond",
									inside: null
								}
							}
						},
						rest: e.languages.scheme
					}
				},
				punctuation: /#/
			}
		},
		string: {
			pattern: /"(?:[^"\\]|\\.)*"/,
			greedy: !0
		},
		"class-name": {
			pattern: /(\\new\s+)[\w-]+/,
			lookbehind: !0
		},
		keyword: {
			pattern: /\\[a-z][-\w]*/i,
			inside: {
				punctuation: /^\\/
			}
		},
		operator: /[=|]|<<|>>/,
		punctuation: {
			pattern: /(^|[a-z\d])(?:'+|,+|[_^]?-[_^]?(?:[-+^!>._]|(?=\d))|[_^]\.?|[.!])|[{}()[\]<>^~]|\\[()[\]<>\\!]|--|__/,
			lookbehind: !0
		},
		number: /\b\d+(?:\/\d+)?\b/
	};
	d["embedded-scheme"].inside.scheme.inside["embedded-lilypond"].inside.lilypond.inside = d, e.languages.ly = d
}(Prism);
Prism.languages.liquid = {
	keyword: /\b(?:comment|endcomment|if|elsif|else|endif|unless|endunless|for|endfor|case|endcase|when|in|break|assign|continue|limit|offset|range|reversed|raw|endraw|capture|endcapture|tablerow|endtablerow)\b/,
	number: /\b0b[01]+\b|\b0x(?:\.[\da-fp-]+|[\da-f]+(?:\.[\da-fp-]+)?)\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?[df]?/i,
	operator: {
		pattern: /(^|[^.])(?:\+[+=]?|-[-=]?|!=?|<<?=?|>>?>?=?|==?|&[&=]?|\|[|=]?|\*=?|\/=?|%=?|\^=?|[?:~])/m,
		lookbehind: !0
	},
	function: {
		pattern: /(^|[\s;|&])(?:append|prepend|capitalize|cycle|cols|increment|decrement|abs|at_least|at_most|ceil|compact|concat|date|default|divided_by|downcase|escape|escape_once|first|floor|join|last|lstrip|map|minus|modulo|newline_to_br|plus|remove|remove_first|replace|replace_first|reverse|round|rstrip|size|slice|sort|sort_natural|split|strip|strip_html|strip_newlines|times|truncate|truncatewords|uniq|upcase|url_decode|url_encode|include|paginate)(?=$|[\s;|&])/,
		lookbehind: !0
	}
};
! function(e) {
	function n(e) {
		return RegExp("(\\()" + e + "(?=[\\s\\)])")
	}

	function a(e) {
		return RegExp("([\\s([])" + e + "(?=[\\s)])")
	}
	var t = "[-+*/_~!@$%^=<>{}\\w]+",
		r = "(\\()",
		s = "(?=\\))",
		i = "(?=\\s)",
		o = {
			heading: {
				pattern: /;;;.*/,
				alias: ["comment", "title"]
			},
			comment: /;.*/,
			string: {
				pattern: /"(?:[^"\\]|\\.)*"/,
				greedy: !0,
				inside: {
					argument: /[-A-Z]+(?=[.,\s])/,
					symbol: RegExp("`" + t + "'")
				}
			},
			"quoted-symbol": {
				pattern: RegExp("#?'" + t),
				alias: ["variable", "symbol"]
			},
			"lisp-property": {
				pattern: RegExp(":" + t),
				alias: "property"
			},
			splice: {
				pattern: RegExp(",@?" + t),
				alias: ["symbol", "variable"]
			},
			keyword: [{
				pattern: RegExp(r +
					"(?:(?:lexical-)?let\\*?|(?:cl-)?letf|if|when|while|unless|cons|cl-loop|and|or|not|cond|setq|error|message|null|require|provide|use-package)" +
					i),
				lookbehind: !0
			}, {
				pattern: RegExp(r + "(?:for|do|collect|return|finally|append|concat|in|by)" + i),
				lookbehind: !0
			}],
			declare: {
				pattern: n("declare"),
				lookbehind: !0,
				alias: "keyword"
			},
			interactive: {
				pattern: n("interactive"),
				lookbehind: !0,
				alias: "keyword"
			},
			boolean: {
				pattern: a("(?:t|nil)"),
				lookbehind: !0
			},
			number: {
				pattern: a("[-+]?\\d+(?:\\.\\d*)?"),
				lookbehind: !0
			},
			defvar: {
				pattern: RegExp(r + "def(?:var|const|custom|group)\\s+" + t),
				lookbehind: !0,
				inside: {
					keyword: /^def[a-z]+/,
					variable: RegExp(t)
				}
			},
			defun: {
				pattern: RegExp(r + "(?:cl-)?(?:defun\\*?|defmacro)\\s+" + t + "\\s+\\([\\s\\S]*?\\)"),
				lookbehind: !0,
				inside: {
					keyword: /^(?:cl-)?def\S+/,
					arguments: null,
					function: {
						pattern: RegExp("(^\\s)" + t),
						lookbehind: !0
					},
					punctuation: /[()]/
				}
			},
			lambda: {
				pattern: RegExp(r + "lambda\\s+\\(\\s*(?:&?" + t + "(?:\\s+&?" + t + ")*\\s*)?\\)"),
				lookbehind: !0,
				inside: {
					keyword: /^lambda/,
					arguments: null,
					punctuation: /[()]/
				}
			},
			car: {
				pattern: RegExp(r + t),
				lookbehind: !0
			},
			punctuation: [/(?:['`,]?\(|[)\[\]])/, {
				pattern: /(\s)\.(?=\s)/,
				lookbehind: !0
			}]
		},
		l = {
			"lisp-marker": RegExp("&[-+*/_~!@$%^=<>{}\\w]+"),
			rest: {
				argument: {
					pattern: RegExp(t),
					alias: "variable"
				},
				varform: {
					pattern: RegExp(r + t + "\\s+\\S[\\s\\S]*" + s),
					lookbehind: !0,
					inside: {
						string: o.string,
						boolean: o.boolean,
						number: o.number,
						symbol: o.symbol,
						punctuation: /[()]/
					}
				}
			}
		},
		p = "\\S+(?:\\s+\\S+)*",
		d = {
			pattern: RegExp(r + "[\\s\\S]*" + s),
			lookbehind: !0,
			inside: {
				"rest-vars": {
					pattern: RegExp("&(?:rest|body)\\s+" + p),
					inside: l
				},
				"other-marker-vars": {
					pattern: RegExp("&(?:optional|aux)\\s+" + p),
					inside: l
				},
				keys: {
					pattern: RegExp("&key\\s+" + p + "(?:\\s+&allow-other-keys)?"),
					inside: l
				},
				argument: {
					pattern: RegExp(t),
					alias: "variable"
				},
				punctuation: /[()]/
			}
		};
	o.lambda.inside.arguments = d, o.defun.inside.arguments = e.util.clone(d), o.defun.inside.arguments.inside.sublist = d,
		e.languages.lisp = o, e.languages.elisp = o, e.languages.emacs = o, e.languages["emacs-lisp"] = o
}(Prism);
Prism.languages.livescript = {
	comment: [{
		pattern: /(^|[^\\])\/\*[\s\S]*?\*\//,
		lookbehind: !0
	}, {
		pattern: /(^|[^\\])#.*/,
		lookbehind: !0
	}],
	"interpolated-string": {
		pattern: /(^|[^"])("""|")(?:\\[\s\S]|(?!\2)[^\\])*\2(?!")/,
		lookbehind: !0,
		greedy: !0,
		inside: {
			variable: {
				pattern: /(^|[^\\])#[a-z_](?:-?[a-z]|[\d_])*/m,
				lookbehind: !0
			},
			interpolation: {
				pattern: /(^|[^\\])#\{[^}]+\}/m,
				lookbehind: !0,
				inside: {
					"interpolation-punctuation": {
						pattern: /^#\{|\}$/,
						alias: "variable"
					}
				}
			},
			string: /[\s\S]+/
		}
	},
	string: [{
		pattern: /('''|')(?:\\[\s\S]|(?!\1)[^\\])*\1/,
		greedy: !0
	}, {
		pattern: /<\[[\s\S]*?\]>/,
		greedy: !0
	}, /\\[^\s,;\])}]+/],
	regex: [{
		pattern: /\/\/(?:\[[^\r\n\]]*\]|\\.|(?!\/\/)[^\\\[])+\/\/[gimyu]{0,5}/,
		greedy: !0,
		inside: {
			comment: {
				pattern: /(^|[^\\])#.*/,
				lookbehind: !0
			}
		}
	}, {
		pattern: /\/(?:\[[^\r\n\]]*\]|\\.|[^/\\\r\n\[])+\/[gimyu]{0,5}/,
		greedy: !0
	}],
	keyword: {
		pattern: /(^|(?!-).)\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\b/m,
		lookbehind: !0
	},
	"keyword-operator": {
		pattern: /(^|[^-])\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?:nt| not)?|not|of|or|til|to|typeof|with|xor)(?!-)\b)/m,
		lookbehind: !0,
		alias: "operator"
	},
	boolean: {
		pattern: /(^|[^-])\b(?:false|no|off|on|true|yes)(?!-)\b/m,
		lookbehind: !0
	},
	argument: {
		pattern: /(^|(?!\.&\.)[^&])&(?!&)\d*/m,
		lookbehind: !0,
		alias: "variable"
	},
	number: /\b(?:\d+~[\da-z]+|\d[\d_]*(?:\.\d[\d_]*)?(?:[a-z]\w*)?)/i,
	identifier: /[a-z_](?:-?[a-z]|[\d_])*/i,
	operator: [{
			pattern: /( )\.(?= )/,
			lookbehind: !0
		},
		/\.(?:[=~]|\.\.?)|\.(?:[&|^]|<<|>>>?)\.|:(?:=|:=?)|&&|\|[|>]|<(?:<<?<?|--?!?|~~?!?|[|=?])?|>[>=?]?|-(?:->?|>)?|\+\+?|@@?|%%?|\*\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\^\^?|[\/?]/
	],
	punctuation: /[(){}\[\]|.,:;`]/
}, Prism.languages.livescript["interpolated-string"].inside.interpolation.inside.rest = Prism.languages.livescript;
Prism.languages.llvm = {
	comment: /;.*/,
	string: {
		pattern: /"[^"]*"/,
		greedy: !0
	},
	boolean: /\b(?:true|false)\b/,
	variable: /[%@!#](?:(?!\d)(?:[-$.\w]|\\[a-f\d]{2})+|\d+)/i,
	label: /(?!\d)(?:[-$.\w]|\\[a-f\d]{2})+:/i,
	type: {
		pattern: /\b(?:double|float|fp128|half|i[1-9]\d*|label|metadata|ppc_fp128|token|void|x86_fp80|x86_mmx)\b/,
		alias: "class-name"
	},
	keyword: /\b[a-z_][a-z_0-9]*\b/,
	number: /[+-]?\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b|\b0x[\dA-Fa-f]+\b|\b0xK[\dA-Fa-f]{20}\b|\b0x[ML][\dA-Fa-f]{32}\b|\b0xH[\dA-Fa-f]{4}\b/,
	punctuation: /[{}[\];(),.!*=<>]/
};
Prism.languages.lolcode = {
	comment: [/\bOBTW\s[\s\S]*?\sTLDR\b/, /\bBTW.+/],
	string: {
		pattern: /"(?::.|[^":])*"/,
		inside: {
			variable: /:\{[^}]+\}/,
			symbol: [/:\([a-f\d]+\)/i, /:\[[^\]]+\]/, /:[)>o":]/]
		},
		greedy: !0
	},
	number: /(?:\B-)?(?:\b\d+(?:\.\d*)?|\B\.\d+)/,
	symbol: {
		pattern: /(^|\s)(?:A )?(?:YARN|NUMBR|NUMBAR|TROOF|BUKKIT|NOOB)(?=\s|,|$)/,
		lookbehind: !0,
		inside: {
			keyword: /A(?=\s)/
		}
	},
	label: {
		pattern: /((?:^|\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\w*/,
		lookbehind: !0,
		alias: "string"
	},
	function: {
		pattern: /((?:^|\s)(?:I IZ|HOW IZ I|IZ) )[a-zA-Z]\w*/,
		lookbehind: !0
	},
	keyword: [{
		pattern: /(^|\s)(?:O HAI IM|KTHX|HAI|KTHXBYE|I HAS A|ITZ(?: A)?|R|AN|MKAY|SMOOSH|MAEK|IS NOW(?: A)?|VISIBLE|GIMMEH|O RLY\?|YA RLY|NO WAI|OIC|MEBBE|WTF\?|OMG|OMGWTF|GTFO|IM IN YR|IM OUTTA YR|FOUND YR|YR|TIL|WILE|UPPIN|NERFIN|I IZ|HOW IZ I|IF U SAY SO|SRS|HAS A|LIEK(?: A)?|IZ)(?=\s|,|$)/,
		lookbehind: !0
	}, /'Z(?=\s|,|$)/],
	boolean: {
		pattern: /(^|\s)(?:WIN|FAIL)(?=\s|,|$)/,
		lookbehind: !0
	},
	variable: {
		pattern: /(^|\s)IT(?=\s|,|$)/,
		lookbehind: !0
	},
	operator: {
		pattern: /(^|\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:SUM|DIFF|PRODUKT|QUOSHUNT|MOD|BIGGR|SMALLR|BOTH|EITHER|WON|ALL|ANY) OF)(?=\s|,|$)/,
		lookbehind: !0
	},
	punctuation: /\.{3}|…|,|!/
};
Prism.languages.makefile = {
	comment: {
		pattern: /(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,
		lookbehind: !0
	},
	string: {
		pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
		greedy: !0
	},
	builtin: /\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,
	symbol: {
		pattern: /^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,
		inside: {
			variable: /\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/
		}
	},
	variable: /\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,
	keyword: [
		/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,
		{
			pattern: /(\()(?:addsuffix|abspath|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:s|list)?)(?=[ \t])/,
			lookbehind: !0
		}
	],
	operator: /(?:::|[?:+!])?=|[|@]/,
	punctuation: /[:;(){}]/
};
! function(u) {
	function n(n) {
		return n = n.replace(/<inner>/g, function() {
			return "(?:\\\\.|[^\\\\\n\r]|(?:\n|\r\n?)(?!\n|\r\n?))"
		}), RegExp("((?:^|[^\\\\])(?:\\\\{2})*)(?:" + n + ")")
	}
	var e = "(?:\\\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\\\|\r\n`])+",
		t = "\\|?__(?:\\|__)+\\|?(?:(?:\n|\r\n?)|(?![^]))".replace(/__/g, function() {
			return e
		}),
		a = "\\|?[ \t]*:?-{3,}:?[ \t]*(?:\\|[ \t]*:?-{3,}:?[ \t]*)+\\|?(?:\n|\r\n?)";
	u.languages.markdown = u.languages.extend("markup", {}), u.languages.insertBefore("markdown", "prolog", {
		"front-matter-block": {
			pattern: /(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,
			lookbehind: !0,
			greedy: !0,
			inside: {
				punctuation: /^---|---$/,
				"font-matter": {
					pattern: /\S+(?:\s+\S+)*/,
					alias: ["yaml", "language-yaml"],
					inside: u.languages.yaml
				}
			}
		},
		blockquote: {
			pattern: /^>(?:[\t ]*>)*/m,
			alias: "punctuation"
		},
		table: {
			pattern: RegExp("^" + t + a + "(?:" + t + ")*", "m"),
			inside: {
				"table-data-rows": {
					pattern: RegExp("^(" + t + a + ")(?:" + t + ")*$"),
					lookbehind: !0,
					inside: {
						"table-data": {
							pattern: RegExp(e),
							inside: u.languages.markdown
						},
						punctuation: /\|/
					}
				},
				"table-line": {
					pattern: RegExp("^(" + t + ")" + a + "$"),
					lookbehind: !0,
					inside: {
						punctuation: /\||:?-{3,}:?/
					}
				},
				"table-header-row": {
					pattern: RegExp("^" + t + "$"),
					inside: {
						"table-header": {
							pattern: RegExp(e),
							alias: "important",
							inside: u.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: /``.+?``|`[^`\r\n]+`/,
			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: n(
				"\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*"),
			lookbehind: !0,
			greedy: !0,
			inside: {
				content: {
					pattern: /(^..)[\s\S]+(?=..$)/,
					lookbehind: !0,
					inside: {}
				},
				punctuation: /\*\*|__/
			}
		},
		italic: {
			pattern: n(
				"\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*"),
			lookbehind: !0,
			greedy: !0,
			inside: {
				content: {
					pattern: /(^.)[\s\S]+(?=.$)/,
					lookbehind: !0,
					inside: {}
				},
				punctuation: /[*_]/
			}
		},
		strike: {
			pattern: n("(~~?)(?:(?!~)<inner>)+?\\2"),
			lookbehind: !0,
			greedy: !0,
			inside: {
				content: {
					pattern: /(^~~?)[\s\S]+(?=\1$)/,
					lookbehind: !0,
					inside: {}
				},
				punctuation: /~~?/
			}
		},
		url: {
			pattern: n(
				'!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\t ]+"(?:\\\\.|[^"\\\\])*")?\\)|[ \t]?\\[(?:(?!\\])<inner>)+\\])'),
			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(e) {
		["url", "bold", "italic", "strike"].forEach(function(n) {
			e !== n && (u.languages.markdown[e].inside.content.inside[n] = u.languages.markdown[n])
		})
	}), u.hooks.add("after-tokenize", function(n) {
		"markdown" !== n.language && "md" !== n.language || ! function n(e) {
			if (e && "string" != typeof e)
				for (var t = 0, a = e.length; t < a; t++) {
					var i = e[t];
					if ("code" === i.type) {
						var r = i.content[1],
							o = i.content[3];
						if (r && o && "code-language" === r.type && "code-block" === o.type && "string" == typeof r.content) {
							var l = r.content.replace(/\b#/g, "sharp").replace(/\b\+\+/g, "pp"),
								s = "language-" + (l = (/[a-z][\w-]*/i.exec(l) || [""])[0].toLowerCase());
							o.alias ? "string" == typeof o.alias ? o.alias = [o.alias, s] : o.alias.push(s) : o.alias = [s]
						}
					} else n(i.content)
				}
		}(n.tokens)
	}), u.hooks.add("wrap", function(n) {
		if ("code-block" === n.type) {
			for (var e = "", t = 0, a = n.classes.length; t < a; t++) {
				var i = n.classes[t],
					r = /language-(.+)/.exec(i);
				if (r) {
					e = r[1];
					break
				}
			}
			var o = u.languages[e];
			if (o) {
				var l = document.createElement("div");
				l.innerHTML = n.content;
				var s = l.textContent;
				n.content = u.highlight(s, o, e)
			} else if (e && "none" !== e && u.plugins.autoloader) {
				var d = "md-" + (new Date).valueOf() + "-" + Math.floor(1e16 * Math.random());
				n.attributes.id = d, u.plugins.autoloader.loadLanguages(e, function() {
					var n = document.getElementById(d);
					n && (n.innerHTML = u.highlight(n.textContent, u.languages[e], e))
				})
			}
		}
	}), u.languages.md = u.languages.markdown
}(Prism);
Prism.languages.matlab = {
	comment: [/%\{[\s\S]*?\}%/, /%.+/],
	string: {
		pattern: /\B'(?:''|[^'\r\n])*'/,
		greedy: !0
	},
	number: /(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+)?(?:[ij])?|\b[ij]\b/,
	keyword: /\b(?:break|case|catch|continue|else|elseif|end|for|function|if|inf|NaN|otherwise|parfor|pause|pi|return|switch|try|while)\b/,
	function: /(?!\d)\w+(?=\s*\()/,
	operator: /\.?[*^\/\\']|[+\-:@]|[<>=~]=?|&&?|\|\|?/,
	punctuation: /\.{3}|[.,;\[\](){}!]/
};
Prism.languages.mel = {
	comment: /\/\/.*/,
	code: {
		pattern: /`(?:\\.|[^\\`\r\n])*`/,
		greedy: !0,
		alias: "italic",
		inside: {
			delimiter: {
				pattern: /^`|`$/,
				alias: "punctuation"
			}
		}
	},
	string: {
		pattern: /"(?:\\.|[^\\"\r\n])*"/,
		greedy: !0
	},
	variable: /\$\w+/,
	number: /\b0x[\da-fA-F]+\b|\b\d+(?:\.\d*)?|\B\.\d+/,
	flag: {
		pattern: /-[^\d\W]\w*/,
		alias: "operator"
	},
	keyword: /\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\b/,
	function: /\w+(?=\()|\b(?:about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|CBG|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|Mayatomr|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\b/,
	operator: [/\+[+=]?|-[-=]?|&&|\|\||[<>]=|[*\/!=]=?|[%^]/, {
		pattern: /(^|[^<])<(?!<)/,
		lookbehind: !0
	}, {
		pattern: /(^|[^>])>(?!>)/,
		lookbehind: !0
	}],
	punctuation: /<<|>>|[.,:;?\[\](){}]/
}, Prism.languages.mel.code.inside.rest = Prism.languages.mel;
Prism.languages.mizar = {
	comment: /::.+/,
	keyword: /@proof\b|\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|equals|end|environ|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:y|ies)|when|where|with|wrt)\b/,
	parameter: {
		pattern: /\$(?:10|\d)/,
		alias: "variable"
	},
	variable: /\w+(?=:)/,
	number: /(?:\b|-)\d+\b/,
	operator: /\.\.\.|->|&|\.?=/,
	punctuation: /\(#|#\)|[,:;\[\](){}]/
};
! function($) {
	var e = ["$eq", "$gt", "$gte", "$in", "$lt", "$lte", "$ne", "$nin", "$and", "$not", "$nor", "$or", "$exists", "$type",
			"$expr", "$jsonSchema", "$mod", "$regex", "$text", "$where", "$geoIntersects", "$geoWithin", "$near", "$nearSphere",
			"$all", "$elemMatch", "$size", "$bitsAllClear", "$bitsAllSet", "$bitsAnyClear", "$bitsAnySet", "$comment",
			"$elemMatch", "$meta", "$slice", "$currentDate", "$inc", "$min", "$max", "$mul", "$rename", "$set", "$setOnInsert",
			"$unset", "$addToSet", "$pop", "$pull", "$push", "$pullAll", "$each", "$position", "$slice", "$sort", "$bit",
			"$addFields", "$bucket", "$bucketAuto", "$collStats", "$count", "$currentOp", "$facet", "$geoNear", "$graphLookup",
			"$group", "$indexStats", "$limit", "$listLocalSessions", "$listSessions", "$lookup", "$match", "$merge", "$out",
			"$planCacheStats", "$project", "$redact", "$replaceRoot", "$replaceWith", "$sample", "$set", "$skip", "$sort",
			"$sortByCount", "$unionWith", "$unset", "$unwind", "$abs", "$accumulator", "$acos", "$acosh", "$add", "$addToSet",
			"$allElementsTrue", "$and", "$anyElementTrue", "$arrayElemAt", "$arrayToObject", "$asin", "$asinh", "$atan",
			"$atan2", "$atanh", "$avg", "$binarySize", "$bsonSize", "$ceil", "$cmp", "$concat", "$concatArrays", "$cond",
			"$convert", "$cos", "$dateFromParts", "$dateToParts", "$dateFromString", "$dateToString", "$dayOfMonth",
			"$dayOfWeek", "$dayOfYear", "$degreesToRadians", "$divide", "$eq", "$exp", "$filter", "$first", "$floor",
			"$function", "$gt", "$gte", "$hour", "$ifNull", "$in", "$indexOfArray", "$indexOfBytes", "$indexOfCP", "$isArray",
			"$isNumber", "$isoDayOfWeek", "$isoWeek", "$isoWeekYear", "$last", "$last", "$let", "$literal", "$ln", "$log",
			"$log10", "$lt", "$lte", "$ltrim", "$map", "$max", "$mergeObjects", "$meta", "$min", "$millisecond", "$minute",
			"$mod", "$month", "$multiply", "$ne", "$not", "$objectToArray", "$or", "$pow", "$push", "$radiansToDegrees",
			"$range", "$reduce", "$regexFind", "$regexFindAll", "$regexMatch", "$replaceOne", "$replaceAll", "$reverseArray",
			"$round", "$rtrim", "$second", "$setDifference", "$setEquals", "$setIntersection", "$setIsSubset", "$setUnion",
			"$size", "$sin", "$slice", "$split", "$sqrt", "$stdDevPop", "$stdDevSamp", "$strcasecmp", "$strLenBytes",
			"$strLenCP", "$substr", "$substrBytes", "$substrCP", "$subtract", "$sum", "$switch", "$tan", "$toBool", "$toDate",
			"$toDecimal", "$toDouble", "$toInt", "$toLong", "$toObjectId", "$toString", "$toLower", "$toUpper", "$trim",
			"$trunc", "$type", "$week", "$year", "$zip", "$comment", "$explain", "$hint", "$max", "$maxTimeMS", "$min",
			"$orderby", "$query", "$returnKey", "$showDiskLoc", "$natural"
		],
		t = "(?:" + (e = e.map(function($) {
			return $.replace("$", "\\$")
		})).join("|") + ")\\b";
	$.languages.mongodb = $.languages.extend("javascript", {}), $.languages.insertBefore("mongodb", "string", {
		property: {
			pattern: /(?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)(?=\s*:)/,
			greedy: !0,
			inside: {
				keyword: RegExp("^(['\"])?" + t + "(?:\\1)?$")
			}
		}
	}), $.languages.mongodb.string.inside = {
		url: {
			pattern: /https?:\/\/[-\w@:%.+~#=]{1,256}\.[a-z0-9()]{1,6}\b[-\w()@:%+.~#?&/=]*/i,
			greedy: !0
		},
		entity: {
			pattern: /\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/,
			greedy: !0
		}
	}, $.languages.insertBefore("mongodb", "constant", {
		builtin: {
			pattern: RegExp("\\b(?:" + ["ObjectId", "Code", "BinData", "DBRef", "Timestamp", "NumberLong", "NumberDecimal",
				"MaxKey", "MinKey", "RegExp", "ISODate", "UUID"
			].join("|") + ")\\b"),
			alias: "keyword"
		}
	})
}(Prism);
Prism.languages.monkey = {
	string: /"[^"\r\n]*"/,
	comment: [{
		pattern: /^#Rem\s[\s\S]*?^#End/im,
		greedy: !0
	}, {
		pattern: /'.+/,
		greedy: !0
	}],
	preprocessor: {
		pattern: /(^[ \t]*)#.+/m,
		lookbehind: !0,
		alias: "comment"
	},
	function: /\w+(?=\()/,
	"type-char": {
		pattern: /(\w)[?%#$]/,
		lookbehind: !0,
		alias: "variable"
	},
	number: {
		pattern: /((?:\.\.)?)(?:(?:\b|\B-\.?|\B\.)\d+(?:(?!\.\.)\.\d*)?|\$[\da-f]+)/i,
		lookbehind: !0
	},
	keyword: /\b(?:Void|Strict|Public|Private|Property|Bool|Int|Float|String|Array|Object|Continue|Exit|Import|Extern|New|Self|Super|Try|Catch|Eachin|True|False|Extends|Abstract|Final|Select|Case|Default|Const|Local|Global|Field|Method|Function|Class|End|If|Then|Else|ElseIf|EndIf|While|Wend|Repeat|Until|Forever|For|To|Step|Next|Return|Module|Interface|Implements|Inline|Throw|Null)\b/i,
	operator: /\.\.|<[=>]?|>=?|:?=|(?:[+\-*\/&~|]|\b(?:Mod|Shl|Shr)\b)=?|\b(?:And|Not|Or)\b/i,
	punctuation: /[.,:;()\[\]]/
};
Prism.languages.moonscript = {
		comment: /--.*/,
		string: [{
			pattern: /'[^']*'|\[(=*)\[[\s\S]*?\]\1\]/,
			greedy: !0
		}, {
			pattern: /"[^"]*"/,
			greedy: !0,
			inside: {
				interpolation: {
					pattern: /#\{[^{}]*\}/,
					inside: {
						moonscript: {
							pattern: /(^#\{)[\s\S]+(?=\})/,
							lookbehind: !0,
							inside: null
						},
						"interpolation-punctuation": {
							pattern: /#\{|\}/,
							alias: "punctuation"
						}
					}
				}
			}
		}],
		"class-name": [{
			pattern: /(\b(?:class|extends)[ \t]+)\w+/,
			lookbehind: !0
		}, /\b[A-Z]\w*/],
		keyword: /\b(?:class|continue|do|else|elseif|export|extends|for|from|if|import|in|local|nil|return|self|super|switch|then|unless|using|when|while|with)\b/,
		variable: /@@?\w*/,
		property: {
			pattern: /\b(?!\d)\w+(?=:)|(:)(?!\d)\w+/,
			lookbehind: !0
		},
		function: {
			pattern: /\b(?:_G|_VERSION|assert|collectgarbage|coroutine\.(?:running|create|resume|status|wrap|yield)|debug\.(?:debug|gethook|getinfo|getlocal|getupvalue|setlocal|setupvalue|sethook|traceback|getfenv|getmetatable|getregistry|setfenv|setmetatable)|dofile|error|getfenv|getmetatable|io\.(?:stdin|stdout|stderr|close|flush|input|lines|open|output|popen|read|tmpfile|type|write)|ipairs|load|loadfile|loadstring|math\.(?:abs|acos|asin|atan|atan2|ceil|sin|cos|tan|deg|exp|floor|log|log10|max|min|fmod|modf|cosh|sinh|tanh|pow|rad|sqrt|frexp|ldexp|random|randomseed|pi)|module|next|os\.(?:clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\.(?:cpath|loaded|loadlib|path|preload|seeall)|pairs|pcall|print|rawequal|rawget|rawset|require|select|setfenv|setmetatable|string\.(?:byte|char|dump|find|len|lower|rep|sub|upper|format|gsub|gmatch|match|reverse)|table\.(?:maxn|concat|sort|insert|remove)|tonumber|tostring|type|unpack|xpcall)\b/,
			inside: {
				punctuation: /\./
			}
		},
		boolean: /\b(?:false|true)\b/,
		number: /(?:\B\.\d+|\b\d+\.\d+|\b\d+(?=[eE]))(?:[eE][-+]?\d+)?\b|\b(?:0x[a-fA-F\d]+|\d+)(?:U?LL)?\b/,
		operator: /\.{3}|[-=]>|~=|(?:[-+*/%<>!=]|\.\.)=?|[:#^]|\b(?:and|or)\b=?|\b(?:not)\b/,
		punctuation: /[.,()[\]{}\\]/
	}, Prism.languages.moonscript.string[1].inside.interpolation.inside.moonscript.inside = Prism.languages.moonscript,
	Prism.languages.moon = Prism.languages.moonscript;
Prism.languages.n1ql = {
	comment: /\/\*[\s\S]*?(?:$|\*\/)/,
	parameter: /\$[\w.]+/,
	string: {
		pattern: /(["'])(?:\\[\s\S]|(?!\1)[^\\]|\1\1)*\1/,
		greedy: !0
	},
	identifier: {
		pattern: /`(?:\\[\s\S]|[^\\`]|``)*`/,
		greedy: !0
	},
	function: /\b(?:ABS|ACOS|ARRAY_AGG|ARRAY_APPEND|ARRAY_AVG|ARRAY_CONCAT|ARRAY_CONTAINS|ARRAY_COUNT|ARRAY_DISTINCT|ARRAY_FLATTEN|ARRAY_IFNULL|ARRAY_INSERT|ARRAY_INTERSECT|ARRAY_LENGTH|ARRAY_MAX|ARRAY_MIN|ARRAY_POSITION|ARRAY_PREPEND|ARRAY_PUT|ARRAY_RANGE|ARRAY_REMOVE|ARRAY_REPEAT|ARRAY_REPLACE|ARRAY_REVERSE|ARRAY_SORT|ARRAY_STAR|ARRAY_SUM|ARRAY_SYMDIFF|ARRAY_SYMDIFFN|ARRAY_UNION|ASIN|ATAN|ATAN2|AVG|BASE64|BASE64_DECODE|BASE64_ENCODE|BITAND|BITCLEAR|BITNOT|BITOR|BITSET|BITSHIFT|BITTEST|BITXOR|CEIL|CLOCK_LOCAL|CLOCK_MILLIS|CLOCK_STR|CLOCK_TZ|CLOCK_UTC|CONTAINS|CONTAINS_TOKEN|CONTAINS_TOKEN_LIKE|CONTAINS_TOKEN_REGEXP|COS|COUNT|CURL|DATE_ADD_MILLIS|DATE_ADD_STR|DATE_DIFF_MILLIS|DATE_DIFF_STR|DATE_FORMAT_STR|DATE_PART_MILLIS|DATE_PART_STR|DATE_RANGE_MILLIS|DATE_RANGE_STR|DATE_TRUNC_MILLIS|DATE_TRUNC_STR|DECODE_JSON|DEGREES|DURATION_TO_STR|E|ENCODED_SIZE|ENCODE_JSON|EXP|FLOOR|GREATEST|HAS_TOKEN|IFINF|IFMISSING|IFMISSINGORNULL|IFNAN|IFNANORINF|IFNULL|INITCAP|ISARRAY|ISATOM|ISBOOLEAN|ISNUMBER|ISOBJECT|ISSTRING|IsBitSET|LEAST|LENGTH|LN|LOG|LOWER|LTRIM|MAX|META|MILLIS|MILLIS_TO_LOCAL|MILLIS_TO_STR|MILLIS_TO_TZ|MILLIS_TO_UTC|MILLIS_TO_ZONE_NAME|MIN|MISSINGIF|NANIF|NEGINFIF|NOW_LOCAL|NOW_MILLIS|NOW_STR|NOW_TZ|NOW_UTC|NULLIF|OBJECT_ADD|OBJECT_CONCAT|OBJECT_INNER_PAIRS|OBJECT_INNER_VALUES|OBJECT_LENGTH|OBJECT_NAMES|OBJECT_PAIRS|OBJECT_PUT|OBJECT_REMOVE|OBJECT_RENAME|OBJECT_REPLACE|OBJECT_UNWRAP|OBJECT_VALUES|PAIRS|PI|POLY_LENGTH|POSINFIF|POSITION|POWER|RADIANS|RANDOM|REGEXP_CONTAINS|REGEXP_LIKE|REGEXP_POSITION|REGEXP_REPLACE|REPEAT|REPLACE|REVERSE|ROUND|RTRIM|SIGN|SIN|SPLIT|SQRT|STR_TO_DURATION|STR_TO_MILLIS|STR_TO_TZ|STR_TO_UTC|STR_TO_ZONE_NAME|SUBSTR|SUFFIXES|SUM|TAN|TITLE|TOARRAY|TOATOM|TOBOOLEAN|TOKENS|TONUMBER|TOOBJECT|TOSTRING|TRIM|TRUNC|TYPE|UPPER|WEEKDAY_MILLIS|WEEKDAY_STR)(?=\s*\()/i,
	keyword: /\b(?:ALL|ALTER|ANALYZE|AS|ASC|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|CONNECT|CONTINUE|CORRELATE|COVER|CREATE|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FLATTEN|FOR|FORCE|FROM|FUNCTION|GRANT|GROUP|GSI|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LAST|LEFT|LET|LETTING|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NULL|NUMBER|OBJECT|OFFSET|ON|OPTION|ORDER|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROCEDURE|PUBLIC|RAW|REALM|REDUCE|RENAME|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|SATISFIES|SCHEMA|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TO|TRANSACTION|TRIGGER|TRUNCATE|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WITH|WORK|XOR)\b/i,
	boolean: /\b(?:TRUE|FALSE)\b/i,
	number: /(?:\b\d+\.|\B\.)\d+e[+\-]?\d+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,
	operator: /[-+*\/%]|!=|==?|\|\||<[>=]?|>=?|\b(?:AND|ANY|ARRAY|BETWEEN|CASE|ELSE|END|EVERY|EXISTS|FIRST|IN|LIKE|NOT|OR|THEN|VALUED|WHEN|WITHIN)\b/i,
	punctuation: /[;[\](),.{}:]/
};
Prism.languages.n4js = Prism.languages.extend("javascript", {
	keyword: /\b(?:any|Array|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/
}), Prism.languages.insertBefore("n4js", "constant", {
	annotation: {
		pattern: /@+\w+/,
		alias: "operator"
	}
}), Prism.languages.n4jsd = Prism.languages.n4js;
Prism.languages["nand2tetris-hdl"] = {
	comment: /\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,
	keyword: /\b(?:CHIP|IN|OUT|PARTS|BUILTIN|CLOCKED)\b/,
	boolean: /\b(?:true|false)\b/,
	function: /[A-Za-z][A-Za-z0-9]*(?=\()/,
	number: /\b\d+\b/,
	operator: /=|\.\./,
	punctuation: /[{}[\];(),:]/
};
! function(e) {
	var a = /\{[^\r\n\[\]{}]*\}/,
		n = {
			"quoted-string": {
				pattern: /"(?:[^"\\]|\\.)*"/,
				alias: "operator"
			},
			"command-param-id": {
				pattern: /(\s)\w+:/,
				lookbehind: !0,
				alias: "property"
			},
			"command-param-value": [{
				pattern: a,
				alias: "selector"
			}, {
				pattern: /([\t ])\S+/,
				lookbehind: !0,
				greedy: !0,
				alias: "operator"
			}, {
				pattern: /\S(?:.*\S)?/,
				alias: "operator"
			}]
		};

	function t(e) {
		return "string" == typeof e ? e : Array.isArray(e) ? e.map(t).join("") : t(e.content)
	}
	e.languages.naniscript = {
		comment: {
			pattern: /^([\t ]*);.*/m,
			lookbehind: !0
		},
		define: {
			pattern: /^>.+/m,
			alias: "tag",
			inside: {
				value: {
					pattern: /(^>\w+[\t ]+)(?!\s)[^{}\r\n]+/,
					lookbehind: !0,
					alias: "operator"
				},
				key: {
					pattern: /(^>)\w+/,
					lookbehind: !0
				}
			}
		},
		label: {
			pattern: /^([\t ]*)#[\t ]*\w+[\t ]*$/m,
			lookbehind: !0,
			alias: "regex"
		},
		command: {
			pattern: /^([\t ]*)@\w+(?=[\t ]|$).*/m,
			lookbehind: !0,
			alias: "function",
			inside: {
				"command-name": /^@\w+/,
				expression: {
					pattern: a,
					greedy: !0,
					alias: "selector"
				},
				"command-params": {
					pattern: /\s*\S[\s\S]*/,
					inside: n
				}
			}
		},
		"generic-text": {
			pattern: /(^[ \t]*)[^#@>;\s].*/m,
			lookbehind: !0,
			alias: "punctuation",
			inside: {
				"escaped-char": /\\[{}\[\]"]/,
				expression: {
					pattern: a,
					greedy: !0,
					alias: "selector"
				},
				"inline-command": {
					pattern: /\[[\t ]*\w[^\r\n\[\]]*\]/,
					greedy: !0,
					alias: "function",
					inside: {
						"command-params": {
							pattern: /(^\[[\t ]*\w+\b)[\s\S]+(?=\]$)/,
							lookbehind: !0,
							inside: n
						},
						"command-param-name": {
							pattern: /^(\[[\t ]*)\w+/,
							lookbehind: !0,
							alias: "name"
						},
						"start-stop-char": /[\[\]]/
					}
				}
			}
		}
	}, e.languages.nani = e.languages.naniscript, e.hooks.add("after-tokenize", function(e) {
		e.tokens.forEach(function(e) {
			if ("string" != typeof e && "generic-text" === e.type) {
				var a = t(e);
				(function(e) {
					for (var a = [], n = 0; n < e.length; n++) {
						var t = e[n],
							r = "[]{}".indexOf(t);
						if (-1 !== r)
							if (r % 2 == 0) a.push(r + 1);
							else if (a.pop() !== r) return !1
					}
					return 0 === a.length
				})(a) || (e.type = "bad-line", e.content = a)
			}
		})
	})
}(Prism);
Prism.languages.nasm = {
	comment: /;.*$/m,
	string: /(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,
	label: {
		pattern: /(^\s*)[A-Za-z._?$][\w.?$@~#]*:/m,
		lookbehind: !0,
		alias: "function"
	},
	keyword: [/\[?BITS (?:16|32|64)\]?/, {
		pattern: /(^\s*)section\s*[a-zA-Z.]+:?/im,
		lookbehind: !0
	}, /(?:extern|global)[^;\r\n]*/i, /(?:CPU|FLOAT|DEFAULT).*$/m],
	register: {
		pattern: /\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|sp|si|di)|[cdefgs]s)\b/i,
		alias: "variable"
	},
	number: /(?:\b|(?=\$))(?:0[hx](?:\.[\da-f]+|[\da-f]+(?:\.[\da-f]+)?)(?:p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|(?:\d+(?:\.\d+)?|\.\d+)(?:\.?e[+-]?\d+)?[dt]?)\b/i,
	operator: /[\[\]*+\-\/%<>=&|$!]/
};
Prism.languages.neon = {
	comment: {
		pattern: /#.*/,
		greedy: !0
	},
	datetime: {
		pattern: /(^|[[{(=:,\s])\d\d\d\d-\d\d?-\d\d?(?:(?:[Tt]| +)\d\d?:\d\d:\d\d(?:\.\d*)? *(?:Z|[-+]\d\d?(?::?\d\d)?)?)?(?=$|[\]}),\s])/,
		lookbehind: !0,
		alias: "number"
	},
	key: {
		pattern: /(^|[[{(,\s])[^,:=[\]{}()'"\s]+(?=\s*:(?:$|[\]}),\s])|\s*=)/,
		lookbehind: !0,
		alias: "atrule"
	},
	number: {
		pattern: /(^|[[{(=:,\s])[+-]?(?:0x[\da-fA-F]+|0o[0-7]+|0b[01]+|(?:\d+(?:\.\d*)?|\.?\d+)(?:[eE][+-]?\d+)?)(?=$|[\]}),:=\s])/,
		lookbehind: !0
	},
	boolean: {
		pattern: /(^|[[{(=:,\s])(?:true|false|yes|no)(?=$|[\]}),:=\s])/i,
		lookbehind: !0
	},
	null: {
		pattern: /(^|[[{(=:,\s])(?:null)(?=$|[\]}),:=\s])/i,
		lookbehind: !0,
		alias: "keyword"
	},
	string: {
		pattern: /(^|[[{(=:,\s])(?:('''|""")\r?\n(?:(?:[^\r\n]|\r?\n(?![\t ]*\2))*\r?\n)?[\t ]*\2|'[^'\r\n]*'|"(?:\\.|[^\\"\r\n])*")/,
		lookbehind: !0,
		greedy: !0
	},
	literal: {
		pattern: /(^|[[{(=:,\s])(?:[^#"\',:=[\]{}()\s`-]|[:-][^"\',=[\]{}()\s])(?:[^,:=\]})(\s]|:(?![\s,\]})]|$)|[ \t]+[^#,:=\]})(\s])*/,
		lookbehind: !0,
		alias: "string"
	},
	punctuation: /[,:=[\]{}()-]/
};
Prism.languages.nginx = Prism.languages.extend("clike", {
	comment: {
		pattern: /(^|[^"{\\])#.*/,
		lookbehind: !0
	},
	keyword: /\b(?:CONTENT_|DOCUMENT_|GATEWAY_|HTTP_|HTTPS|if_not_empty|PATH_|QUERY_|REDIRECT_|REMOTE_|REQUEST_|SCGI|SCRIPT_|SERVER_|http|events|accept_mutex|accept_mutex_delay|access_log|add_after_body|add_before_body|add_header|addition_types|aio|alias|allow|ancient_browser|ancient_browser_value|auth|auth_basic|auth_basic_user_file|auth_http|auth_http_header|auth_http_timeout|autoindex|autoindex_exact_size|autoindex_localtime|break|charset|charset_map|charset_types|chunked_transfer_encoding|client_body_buffer_size|client_body_in_file_only|client_body_in_single_buffer|client_body_temp_path|client_body_timeout|client_header_buffer_size|client_header_timeout|client_max_body_size|connection_pool_size|create_full_put_path|daemon|dav_access|dav_methods|debug_connection|debug_points|default_type|deny|devpoll_changes|devpoll_events|directio|directio_alignment|disable_symlinks|empty_gif|env|epoll_events|error_log|error_page|expires|fastcgi_buffer_size|fastcgi_buffers|fastcgi_busy_buffers_size|fastcgi_cache|fastcgi_cache_bypass|fastcgi_cache_key|fastcgi_cache_lock|fastcgi_cache_lock_timeout|fastcgi_cache_methods|fastcgi_cache_min_uses|fastcgi_cache_path|fastcgi_cache_purge|fastcgi_cache_use_stale|fastcgi_cache_valid|fastcgi_connect_timeout|fastcgi_hide_header|fastcgi_ignore_client_abort|fastcgi_ignore_headers|fastcgi_index|fastcgi_intercept_errors|fastcgi_keep_conn|fastcgi_max_temp_file_size|fastcgi_next_upstream|fastcgi_no_cache|fastcgi_param|fastcgi_pass|fastcgi_pass_header|fastcgi_read_timeout|fastcgi_redirect_errors|fastcgi_send_timeout|fastcgi_split_path_info|fastcgi_store|fastcgi_store_access|fastcgi_temp_file_write_size|fastcgi_temp_path|flv|geo|geoip_city|geoip_country|google_perftools_profiles|gzip|gzip_buffers|gzip_comp_level|gzip_disable|gzip_http_version|gzip_min_length|gzip_proxied|gzip_static|gzip_types|gzip_vary|if|if_modified_since|ignore_invalid_headers|image_filter|image_filter_buffer|image_filter_jpeg_quality|image_filter_sharpen|image_filter_transparency|imap_capabilities|imap_client_buffer|include|index|internal|ip_hash|keepalive|keepalive_disable|keepalive_requests|keepalive_timeout|kqueue_changes|kqueue_events|large_client_header_buffers|limit_conn|limit_conn_log_level|limit_conn_zone|limit_except|limit_rate|limit_rate_after|limit_req|limit_req_log_level|limit_req_zone|limit_zone|lingering_close|lingering_time|lingering_timeout|listen|location|lock_file|log_format|log_format_combined|log_not_found|log_subrequest|map|map_hash_bucket_size|map_hash_max_size|master_process|max_ranges|memcached_buffer_size|memcached_connect_timeout|memcached_next_upstream|memcached_pass|memcached_read_timeout|memcached_send_timeout|merge_slashes|min_delete_depth|modern_browser|modern_browser_value|mp4|mp4_buffer_size|mp4_max_buffer_size|msie_padding|msie_refresh|multi_accept|open_file_cache|open_file_cache_errors|open_file_cache_min_uses|open_file_cache_valid|open_log_file_cache|optimize_server_names|override_charset|pcre_jit|perl|perl_modules|perl_require|perl_set|pid|pop3_auth|pop3_capabilities|port_in_redirect|post_action|postpone_output|protocol|proxy|proxy_buffer|proxy_buffer_size|proxy_buffering|proxy_buffers|proxy_busy_buffers_size|proxy_cache|proxy_cache_bypass|proxy_cache_key|proxy_cache_lock|proxy_cache_lock_timeout|proxy_cache_methods|proxy_cache_min_uses|proxy_cache_path|proxy_cache_use_stale|proxy_cache_valid|proxy_connect_timeout|proxy_cookie_domain|proxy_cookie_path|proxy_headers_hash_bucket_size|proxy_headers_hash_max_size|proxy_hide_header|proxy_http_version|proxy_ignore_client_abort|proxy_ignore_headers|proxy_intercept_errors|proxy_max_temp_file_size|proxy_method|proxy_next_upstream|proxy_no_cache|proxy_pass|proxy_pass_error_message|proxy_pass_header|proxy_pass_request_body|proxy_pass_request_headers|proxy_read_timeout|proxy_redirect|proxy_redirect_errors|proxy_send_lowat|proxy_send_timeout|proxy_set_body|proxy_set_header|proxy_ssl_session_reuse|proxy_store|proxy_store_access|proxy_temp_file_write_size|proxy_temp_path|proxy_timeout|proxy_upstream_fail_timeout|proxy_upstream_max_fails|random_index|read_ahead|real_ip_header|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver|resolver_timeout|return|rewrite|root|rtsig_overflow_events|rtsig_overflow_test|rtsig_overflow_threshold|rtsig_signo|satisfy|satisfy_any|secure_link_secret|send_lowat|send_timeout|sendfile|sendfile_max_chunk|server|server_name|server_name_in_redirect|server_names_hash_bucket_size|server_names_hash_max_size|server_tokens|set|set_real_ip_from|smtp_auth|smtp_capabilities|so_keepalive|source_charset|split_clients|ssi|ssi_silent_errors|ssi_types|ssi_value_length|ssl|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_client_certificate|ssl_crl|ssl_dhparam|ssl_engine|ssl_prefer_server_ciphers|ssl_protocols|ssl_session_cache|ssl_session_timeout|ssl_verify_client|ssl_verify_depth|starttls|stub_status|sub_filter|sub_filter_once|sub_filter_types|tcp_nodelay|tcp_nopush|timeout|timer_resolution|try_files|types|types_hash_bucket_size|types_hash_max_size|underscores_in_headers|uninitialized_variable_warn|upstream|use|user|userid|userid_domain|userid_expires|userid_name|userid_p3p|userid_path|userid_service|valid_referers|variables_hash_bucket_size|variables_hash_max_size|worker_connections|worker_cpu_affinity|worker_priority|worker_processes|worker_rlimit_core|worker_rlimit_nofile|worker_rlimit_sigpending|working_directory|xclient|xml_entities|xslt_entities|xslt_stylesheet|xslt_types|ssl_session_tickets|ssl_stapling|ssl_stapling_verify|ssl_ecdh_curve|ssl_trusted_certificate|more_set_headers|ssl_early_data)\b/i
}), Prism.languages.insertBefore("nginx", "keyword", {
	variable: /\$[a-z_]+/i
});
Prism.languages.nim = {
	comment: /#.*/,
	string: {
		pattern: /(?:(?:\b(?!\d)(?:\w|\\x[8-9a-fA-F][0-9a-fA-F])+)?(?:"""[\s\S]*?"""(?!")|"(?:\\[\s\S]|""|[^"\\])*")|'(?:\\(?:\d+|x[\da-fA-F]{2}|.)|[^'])')/,
		greedy: !0
	},
	number: /\b(?:0[xXoObB][\da-fA-F_]+|\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:[eE][+-]?\d[\d_]*)?)(?:'?[iuf]\d*)?/,
	keyword: /\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\b/,
	function: {
		pattern: /(?:(?!\d)(?:\w|\\x[8-9a-fA-F][0-9a-fA-F])+|`[^`\r\n]+`)\*?(?:\[[^\]]+\])?(?=\s*\()/,
		inside: {
			operator: /\*$/
		}
	},
	ignore: {
		pattern: /`[^`\r\n]+`/,
		inside: {
			punctuation: /`/
		}
	},
	operator: {
		pattern: /(^|[({\[](?=\.\.)|(?![({\[]\.).)(?:(?:[=+\-*\/<>@$~&%|!?^:\\]|\.\.|\.(?![)}\]]))+|\b(?:and|div|of|or|in|is|isnot|mod|not|notin|shl|shr|xor)\b)/m,
		lookbehind: !0
	},
	punctuation: /[({\[]\.|\.[)}\]]|[`(){}\[\],:]/
};
Prism.languages.nix = {
	comment: /\/\*[\s\S]*?\*\/|#.*/,
	string: {
		pattern: /"(?:[^"\\]|\\[\s\S])*"|''(?:(?!'')[\s\S]|''(?:'|\\|\$\{))*''/,
		greedy: !0,
		inside: {
			interpolation: {
				pattern: /(^|(?:^|(?!'').)[^\\])\$\{(?:[^{}]|\{[^}]*\})*\}/,
				lookbehind: !0,
				inside: {
					antiquotation: {
						pattern: /^\$(?=\{)/,
						alias: "variable"
					}
				}
			}
		}
	},
	url: [/\b(?:[a-z]{3,7}:\/\/)[\w\-+%~\/.:#=?&]+/, {
		pattern: /([^\/])(?:[\w\-+%~.:#=?&]*(?!\/\/)[\w\-+%~\/.:#=?&])?(?!\/\/)\/[\w\-+%~\/.:#=?&]*/,
		lookbehind: !0
	}],
	antiquotation: {
		pattern: /\$(?=\{)/,
		alias: "variable"
	},
	number: /\b\d+\b/,
	keyword: /\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\b/,
	function: /\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:url|Tarball)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\b|\bfoldl'\B/,
	boolean: /\b(?:true|false)\b/,
	operator: /[=!<>]=?|\+\+?|\|\||&&|\/\/|->?|[?@]/,
	punctuation: /[{}()[\].,:;]/
}, Prism.languages.nix.string.inside.interpolation.inside.rest = Prism.languages.nix;
Prism.languages.nsis = {
	comment: {
		pattern: /(^|[^\\])(?:\/\*[\s\S]*?\*\/|[#;].*)/,
		lookbehind: !0
	},
	string: {
		pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,
		greedy: !0
	},
	keyword: {
		pattern: /(^\s*)(?:Abort|Add(?:BrandingImage|Size)|AdvSplash|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|Banner|BG(?:Font|Gradient|Image)|BrandingText|BringToFront|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|Create(?:Directory|Font|ShortCut)|Delete(?:INISec|INIStr|RegKey|RegValue)?|Detail(?:Print|sButtonText)|Dialer|Dir(?:Text|Var|Verify)|EnableWindow|Enum(?:RegKey|RegValue)|Exch|Exec(?:Shell(?:Wait)?|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|WriteUTF16LE|Seek|Write|WriteByte|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DlgItem|DLLVersion(?:Local)?|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|Int(?:64|Ptr)?CmpU?|Int(?:64)?Fmt|Int(?:Ptr)?Op|IsWindow|Lang(?:DLL|String)|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|Manifest(?:DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|Name|Nop|ns(?:Dialogs|Exec)|NSISdl|OutFile|Page(?:Callbacks)?|PE(?:DllCharacteristics|SubsysVer)|Pop|Push|Quit|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|Section(?:End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress|Compressor(?:DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(?:InstDetails|UninstDetails|Window)|Silent(?:Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(?:CmpS?|Cpy|Len)|SubCaption|System|Unicode|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UninstPage|UnRegDLL|UserInfo|Var|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle)\b/m,
		lookbehind: !0
	},
	property: /\b(?:admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user|ARCHIVE|FILE_(?:ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK(?:(?:CR|CU|LM)(?:32|64)?|DD|PD|U)|HKEY_(?:CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(?:ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)\b/,
	constant: /\${[\w\.:\^-]+}|\$\([\w\.:\^-]+\)/i,
	variable: /\$\w+/i,
	number: /\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,
	operator: /--?|\+\+?|<=?|>=?|==?=?|&&?|\|\|?|[?*\/~^%]/,
	punctuation: /[{}[\];(),.:]/,
	important: {
		pattern: /(^\s*)!(?:addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\b/im,
		lookbehind: !0
	}
};
Prism.languages.objectivec = Prism.languages.extend("c", {
	string: /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|@"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,
	keyword: /\b(?:asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while|in|self|super)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,
	operator: /-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/
}), delete Prism.languages.objectivec["class-name"], Prism.languages.objc = Prism.languages.objectivec;
Prism.languages.ocaml = {
	comment: /\(\*[\s\S]*?\*\)/,
	string: [{
		pattern: /"(?:\\.|[^\\\r\n"])*"/,
		greedy: !0
	}, {
		pattern: /(['`])(?:\\(?:\d+|x[\da-f]+|.)|(?!\1)[^\\\r\n])\1/i,
		greedy: !0
	}],
	number: /\b(?:0x[\da-f][\da-f_]+|(?:0[bo])?\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?[\d_]+)?)/i,
	directive: {
		pattern: /\B#\w+/,
		alias: "important"
	},
	label: {
		pattern: /\B~\w+/,
		alias: "function"
	},
	"type-variable": {
		pattern: /\B'\w+/,
		alias: "function"
	},
	variant: {
		pattern: /`\w+/,
		alias: "variable"
	},
	module: {
		pattern: /\b[A-Z]\w+/,
		alias: "variable"
	},
	keyword: /\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,
	boolean: /\b(?:false|true)\b/,
	operator: /:=|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,
	punctuation: /[(){}\[\]|.,:;]|\b_\b/
};
! function(E) {
	E.languages.opencl = E.languages.extend("c", {
		keyword: /\b(?:__attribute__|(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|auto|break|case|complex|const|continue|default|do|(?:float|double)(?:16(?:x(?:1|16|2|4|8))?|1x(?:1|16|2|4|8)|2(?:x(?:1|16|2|4|8))?|3|4(?:x(?:1|16|2|4|8))?|8(?:x(?:1|16|2|4|8))?)?|else|enum|extern|for|goto|(?:u?(?:char|short|int|long)|half|quad|bool)(?:2|3|4|8|16)?|if|imaginary|inline|packed|pipe|register|restrict|return|signed|sizeof|static|struct|switch|typedef|uniform|union|unsigned|void|volatile|while)\b/,
		number: /(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[fuhl]{0,4}/i,
		boolean: /\b(?:false|true)\b/,
		"constant-opencl-kernel": {
			pattern: /\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:LOCAL|GLOBAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT|HALF)_(?:DIG|EPSILON|MANT_DIG|(?:MIN|MAX)(?:(?:_10)?_EXP)?)|FLT_RADIX|HUGE_VALF?|INFINITY|(?:INT|LONG|SCHAR|SHRT)_(?:MAX|MIN)|(?:UCHAR|USHRT|UINT|ULONG)_MAX|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:10|2)E?|PI(?:_[24])?|SQRT(?:1_2|2))(?:_F|_H)?|NAN)\b/,
			alias: "constant"
		}
	}), E.languages.insertBefore("opencl", "class-name", {
		"builtin-type": {
			pattern: /\b(?:_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|cl_(?:image_format|mem_fence_flags)|clk_event_t|event_t|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|intptr_t|ndrange_t|ptrdiff_t|queue_t|reserve_id_t|sampler_t|size_t|uintptr_t)\b/,
			alias: "keyword"
		}
	});
	var _ = {
		"type-opencl-host": {
			pattern: /\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|short|int|long)|float|double)(?:2|3|4|8|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\b/,
			alias: "keyword"
		},
		"boolean-opencl-host": {
			pattern: /\bCL_(?:TRUE|FALSE)\b/,
			alias: "boolean"
		},
		"constant-opencl-host": {
			pattern: /\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BGRA|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|R|RA|READ_(?:ONLY|WRITE)_CACHE|RG|RGB|RGBA|RGBx|RGx|RUNNING|Rx|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:16|24|8|_101010|_101010_2)|UNORM_SHORT_(?:555|565)|VERSION_(?:1_0|1_1|1_2|2_0|2_1)|sBGRA|sRGB|sRGBA|sRGBx)\b/,
			alias: "constant"
		},
		"function-opencl-host": {
			pattern: /\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image2D|Image3D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|Kernel|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\b/,
			alias: "function"
		}
	};
	E.languages.insertBefore("c", "keyword", _), E.languages.cpp && (_["type-opencl-host-cpp"] = {
		pattern: /\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image|Image1D|Image1DArray|Image1DBuffer|Image2D|Image2DArray|Image2DGL|Image3D|Image3DGL|ImageFormat|ImageGL|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|Sampler|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|UserEvent)\b/,
		alias: "keyword"
	}, E.languages.insertBefore("cpp", "keyword", _))
}(Prism);
Prism.languages.oz = {
	comment: /\/\*[\s\S]*?\*\/|%.*/,
	string: {
		pattern: /"(?:[^"\\]|\\[\s\S])*"/,
		greedy: !0
	},
	atom: {
		pattern: /'(?:[^'\\]|\\[\s\S])*'/,
		greedy: !0,
		alias: "builtin"
	},
	keyword: /\$|\[\]|\b(?:_|at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\b/,
	function: [/\b[a-z][A-Za-z\d]*(?=\()/, {
		pattern: /(\{)[A-Z][A-Za-z\d]*\b/,
		lookbehind: !0
	}],
	number: /\b(?:0[bx][\da-f]+|\d+(?:\.\d*)?(?:e~?\d+)?)\b|&(?:[^\\]|\\(?:\d{3}|.))/i,
	variable: /\b[A-Z][A-Za-z\d]*|`(?:[^`\\]|\\.)+`/,
	"attr-name": /\w+(?=:)/,
	operator: /:(?:=|::?)|<[-:=]?|=(?:=|<?:?)|>=?:?|\\=:?|!!?|[|#+\-*\/,~^@]|\b(?:andthen|div|mod|orelse)\b/,
	punctuation: /[\[\](){}.:;?]/
};
Prism.languages.parigp = {
	comment: /\/\*[\s\S]*?\*\/|\\\\.*/,
	string: {
		pattern: /"(?:[^"\\\r\n]|\\.)*"/,
		greedy: !0
	},
	keyword: function() {
		var r = ["breakpoint", "break", "dbg_down", "dbg_err", "dbg_up", "dbg_x", "forcomposite", "fordiv", "forell",
			"forpart", "forprime", "forstep", "forsubgroup", "forvec", "for", "iferr", "if", "local", "my", "next", "return",
			"until", "while"
		];
		return r = r.map(function(r) {
			return r.split("").join(" *")
		}).join("|"), RegExp("\\b(?:" + r + ")\\b")
	}(),
	function: /\w(?:[\w ]*\w)?(?= *\()/,
	number: {
		pattern: /((?:\. *\. *)?)(?:\b\d(?: *\d)*(?: *(?!\. *\.)\.(?: *\d)*)?|\. *\d(?: *\d)*)(?: *e *(?:[+-] *)?\d(?: *\d)*)?/i,
		lookbehind: !0
	},
	operator: /\. *\.|[*\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\+(?: *[+=])?|-(?: *[-=>])?|<(?:(?: *<)?(?: *=)?| *>)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\(?: *\/)?(?: *=)?|&(?: *&)?|\| *\||['#~^]/,
	punctuation: /[\[\]{}().,:;|]/
};
! function(e) {
	var n = e.languages.parser = e.languages.extend("markup", {
		keyword: {
			pattern: /(^|[^^])(?:\^(?:case|eval|for|if|switch|throw)\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\b)/,
			lookbehind: !0
		},
		variable: {
			pattern: /(^|[^^])\B\$(?:\w+|(?=[.{]))(?:(?:\.|::?)\w+)*(?:\.|::?)?/,
			lookbehind: !0,
			inside: {
				punctuation: /\.|:+/
			}
		},
		function: {
			pattern: /(^|[^^])\B[@^]\w+(?:(?:\.|::?)\w+)*(?:\.|::?)?/,
			lookbehind: !0,
			inside: {
				keyword: {
					pattern: /(^@)(?:GET_|SET_)/,
					lookbehind: !0
				},
				punctuation: /\.|:+/
			}
		},
		escape: {
			pattern: /\^(?:[$^;@()\[\]{}"':]|#[a-f\d]*)/i,
			alias: "builtin"
		},
		punctuation: /[\[\](){};]/
	});
	n = e.languages.insertBefore("parser", "keyword", {
		"parser-comment": {
			pattern: /(\s)#.*/,
			lookbehind: !0,
			alias: "comment"
		},
		expression: {
			pattern: /(^|[^^])\((?:[^()]|\((?:[^()]|\((?:[^()])*\))*\))*\)/,
			greedy: !0,
			lookbehind: !0,
			inside: {
				string: {
					pattern: /(^|[^^])(["'])(?:(?!\2)[^^]|\^[\s\S])*\2/,
					lookbehind: !0
				},
				keyword: n.keyword,
				variable: n.variable,
				function: n.function,
				boolean: /\b(?:true|false)\b/,
				number: /\b(?:0x[a-f\d]+|\d+(?:\.\d*)?(?:e[+-]?\d+)?)\b/i,
				escape: n.escape,
				operator: /[~+*\/\\%]|!(?:\|\|?|=)?|&&?|\|\|?|==|<[<=]?|>[>=]?|-[fd]?|\b(?:def|eq|ge|gt|in|is|le|lt|ne)\b/,
				punctuation: n.punctuation
			}
		}
	}), n = e.languages.insertBefore("inside", "punctuation", {
		expression: n.expression,
		keyword: n.keyword,
		variable: n.variable,
		function: n.function,
		escape: n.escape,
		"parser-punctuation": {
			pattern: n.punctuation,
			alias: "punctuation"
		}
	}, n.tag.inside["attr-value"])
}(Prism);
Prism.languages.pascal = {
	comment: [/\(\*[\s\S]+?\*\)/, /\{[\s\S]+?\}/, /\/\/.*/],
	string: {
		pattern: /(?:'(?:''|[^'\r\n])*'(?!')|#[&$%]?[a-f\d]+)+|\^[a-z]/i,
		greedy: !0
	},
	keyword: [{
		pattern: /(^|[^&])\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\b/i,
		lookbehind: !0
	}, {
		pattern: /(^|[^&])\b(?:dispose|exit|false|new|true)\b/i,
		lookbehind: !0
	}, {
		pattern: /(^|[^&])\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\b/i,
		lookbehind: !0
	}, {
		pattern: /(^|[^&])\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\b/i,
		lookbehind: !0
	}],
	number: [/(?:[&%]\d+|\$[a-f\d]+)/i, /\b\d+(?:\.\d+)?(?:e[+-]?\d+)?/i],
	operator: [/\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=]/i, {
		pattern: /(^|[^&])\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\b/,
		lookbehind: !0
	}],
	punctuation: /\(\.|\.\)|[()\[\]:;,.]/
}, Prism.languages.objectpascal = Prism.languages.pascal;
! function(e) {
	var n = "(?:\\w+(?:<braces>)?|<braces>)".replace(/<braces>/g, function() {
			return "\\((?:[^()]|\\((?:[^()]|\\([^()]*\\))*\\))*\\)"
		}),
		t = e.languages.pascaligo = {
			comment: /\(\*[\s\S]+?\*\)|\/\/.*/,
			string: {
				pattern: /(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1|\^[a-z]/i,
				greedy: !0
			},
			"class-name": [{
				pattern: RegExp("(\\btype\\s+\\w+\\s+is\\s+)<type>".replace(/<type>/g, function() {
					return n
				}), "i"),
				lookbehind: !0,
				inside: null
			}, {
				pattern: RegExp("<type>(?=\\s+is\\b)".replace(/<type>/g, function() {
					return n
				}), "i"),
				inside: null
			}, {
				pattern: RegExp("(:\\s*)<type>".replace(/<type>/g, function() {
					return n
				})),
				lookbehind: !0,
				inside: null
			}],
			keyword: {
				pattern: /(^|[^&])\b(?:begin|block|case|const|else|end|fail|for|from|function|if|is|nil|of|remove|return|skip|then|type|var|while|with)\b/i,
				lookbehind: !0
			},
			boolean: {
				pattern: /(^|[^&])\b(?:True|False)\b/i,
				lookbehind: !0
			},
			builtin: {
				pattern: /(^|[^&])\b(?:bool|int|list|map|nat|record|string|unit)\b/i,
				lookbehind: !0
			},
			function: /\w+(?=\s*\()/i,
			number: [/%[01]+|&[0-7]+|\$[a-f\d]+/i, /\b\d+(?:\.\d+)?(?:e[+-]?\d+)?(?:mtz|n)?/i],
			operator: /->|=\/=|\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=|]|\b(?:and|mod|or)\b/,
			punctuation: /\(\.|\.\)|[()\[\]:;,.{}]/
		},
		i = ["comment", "keyword", "builtin", "operator", "punctuation"].reduce(function(e, n) {
			return e[n] = t[n], e
		}, {});
	t["class-name"].forEach(function(e) {
		e.inside = i
	})
}(Prism);
Prism.languages.psl = {
	comment: {
		pattern: /#.*/,
		greedy: !0
	},
	string: {
		pattern: /"(?:\\.|[^\\"])*"/,
		greedy: !0,
		inside: {
			symbol: /\\[ntrbA-Z"\\]/
		}
	},
	"heredoc-string": {
		pattern: /<<<([a-zA-Z_]\w*)[\r\n](?:.*[\r\n])*?\1\b/,
		alias: "string",
		greedy: !0
	},
	keyword: /\b(?:__multi|__single|case|default|do|else|elsif|exit|export|for|foreach|function|if|last|line|local|next|requires|return|switch|until|while|word)\b/,
	constant: /\b(?:ALARM|CHART_ADD_GRAPH|CHART_DELETE_GRAPH|CHART_DESTROY|CHART_LOAD|CHART_PRINT|EOF|FALSE|False|false|NO|No|no|OFFLINE|OK|PSL_PROF_LOG|R_CHECK_HORIZ|R_CHECK_VERT|R_CLICKER|R_COLUMN|R_FRAME|R_ICON|R_LABEL|R_LABEL_CENTER|R_LIST_MULTIPLE|R_LIST_MULTIPLE_ND|R_LIST_SINGLE|R_LIST_SINGLE_ND|R_MENU|R_POPUP|R_POPUP_SCROLLED|R_RADIO_HORIZ|R_RADIO_VERT|R_ROW|R_SCALE_HORIZ|R_SCALE_VERT|R_SPINNER|R_TEXT_FIELD|R_TEXT_FIELD_LABEL|R_TOGGLE|TRIM_LEADING|TRIM_LEADING_AND_TRAILING|TRIM_REDUNDANT|TRIM_TRAILING|TRUE|True|true|VOID|WARN)\b/,
	variable: /\b(?:errno|exit_status|PslDebug)\b/,
	builtin: {
		pattern: /\b(?:acos|add_diary|annotate|annotate_get|asctime|asin|atan|atexit|ascii_to_ebcdic|batch_set|blackout|cat|ceil|chan_exists|change_state|close|code_cvt|cond_signal|cond_wait|console_type|convert_base|convert_date|convert_locale_date|cos|cosh|create|destroy_lock|dump_hist|date|destroy|difference|dget_text|dcget_text|ebcdic_to_ascii|encrypt|event_archive|event_catalog_get|event_check|event_query|event_range_manage|event_range_query|event_report|event_schedule|event_trigger|event_trigger2|execute|exists|exp|fabs|floor|fmod|full_discovery|file|fopen|ftell|fseek|grep|get_vars|getenv|get|get_chan_info|get_ranges|get_text|gethostinfo|getpid|getpname|history_get_retention|history|index|int|is_var|intersection|isnumber|internal|in_transition|join|kill|length|lines|lock|lock_info|log|loge|log10|matchline|msg_check|msg_get_format|msg_get_severity|msg_printf|msg_sprintf|ntharg|num_consoles|nthargf|nthline|nthlinef|num_bytes|print|proc_exists|process|popen|printf|pconfig|poplines|pow|PslExecute|PslFunctionCall|PslFunctionExists|PslSetOptions|random|read|readln|refresh_parameters|remote_check|remote_close|remote_event_query|remote_event_trigger|remote_file_send|remote_open|remove|replace|rindex|sec_check_priv|sec_store_get|sec_store_set|set_alarm_ranges|set_locale|share|sin|sinh|sleep|sopen|sqrt|srandom|subset|set|substr|system|sprintf|sort|subset|snmp_agent_config|_snmp_debug|snmp_agent_stop|snmp_agent_start|snmp_h_set|snmp_h_get_next|snmp_h_get|snmp_set|snmp_walk|snmp_get_next|snmp_get|snmp_config|snmp_close|snmp_open|snmp_trap_receive|snmp_trap_ignore|snmp_trap_listen|snmp_trap_send|snmp_trap_raise_std_trap|snmp_trap_register_im|splitline|strcasecmp|str_repeat|trim|tail|tan|tanh|time|tmpnam|tolower|toupper|trace_psl_process|text_domain|unlock|unique|union|unset|va_arg|va_start|write)\b/,
		alias: "builtin-function"
	},
	"foreach-variable": {
		pattern: /(\bforeach\s+(?:(?:\w+\b|"(?:\\.|[^\\"])*")\s+){0,2})[_a-zA-Z]\w*(?=\s*\()/,
		lookbehind: !0,
		greedy: !0
	},
	function: {
		pattern: /\b[_a-z]\w*\b(?=\s*\()/i
	},
	number: /\b(?:0x[0-9a-f]+|[0-9]+(?:\.[0-9]+)?)\b/i,
	operator: /--|\+\+|&&=?|\|\|=?|<<=?|>>=?|[=!]~|[-+*/%&|^!=<>]=?|\.|[:?]/,
	punctuation: /[(){}\[\];,]/
};
Prism.languages.pcaxis = {
	string: /"[^"]*"/,
	keyword: {
		pattern: /((?:^|;)\s*)[-A-Z\d]+(?:\s*\[[-\w]+\])?(?:\s*\("[^"]*"(?:,\s*"[^"]*")*\))?(?=\s*=)/,
		lookbehind: !0,
		greedy: !0,
		inside: {
			keyword: /^[-A-Z\d]+/,
			language: {
				pattern: /^(\s*)\[[-\w]+\]/,
				lookbehind: !0,
				inside: {
					punctuation: /^\[|\]$/,
					property: /[-\w]+/
				}
			},
			"sub-key": {
				pattern: /^(\s*)\S[\s\S]*/,
				lookbehind: !0,
				inside: {
					parameter: {
						pattern: /"[^"]*"/,
						alias: "property"
					},
					punctuation: /^\(|\)$|,/
				}
			}
		}
	},
	operator: /=/,
	tlist: {
		pattern: /TLIST\s*\(\s*\w+(?:(?:\s*,\s*"[^"]*")+|\s*,\s*"[^"]*"-"[^"]*")?\s*\)/,
		greedy: !0,
		inside: {
			function: /^TLIST/,
			property: {
				pattern: /^(\s*\(\s*)\w+/,
				lookbehind: !0
			},
			string: /"[^"]*"/,
			punctuation: /[(),]/,
			operator: /-/
		}
	},
	punctuation: /[;,]/,
	number: {
		pattern: /(^|\s)\d+(?:\.\d+)?(?!\S)/,
		lookbehind: !0
	},
	boolean: /YES|NO/
}, Prism.languages.px = Prism.languages.pcaxis;
Prism.languages.peoplecode = {
	comment: RegExp(["/\\*[^]*?\\*/", "\\bREM[^;]*;", "<\\*(?:[^<*]|\\*(?!>)|<(?!\\*)|<\\*(?:(?!\\*>)[^])*\\*>)*\\*>",
		"/\\+[^]*?\\+/"
	].join("|")),
	string: {
		pattern: /'(?:''|[^'\r\n])*'(?!')|"(?:""|[^"\r\n])*"(?!")/,
		greedy: !0
	},
	variable: /%\w+/,
	"function-definition": {
		pattern: /((?:^|[^\w-])(?:function|method)\s+)\w+/i,
		lookbehind: !0,
		alias: "function"
	},
	"class-name": {
		pattern: /((?:^|[^-\w])(?:as|catch|class|component|create|extends|global|implements|instance|local|of|property|returns)\s+)\w+(?::\w+)*/i,
		lookbehind: !0,
		inside: {
			punctuation: /:/
		}
	},
	keyword: /\b(?:abstract|alias|as|catch|class|component|constant|create|declare|else|end-(?:class|evaluate|for|function|get|if|method|set|try|while)|evaluate|extends|for|function|get|global|implements|import|instance|if|library|local|method|null|of|out|peopleCode|private|program|property|protected|readonly|ref|repeat|returns?|set|step|then|throw|to|try|until|value|when(?:-other)?|while)\b/i,
	"operator-keyword": {
		pattern: /\b(?:and|not|or)\b/i,
		alias: "operator"
	},
	function: /[_a-z]\w*(?=\s*\()/i,
	boolean: /\b(?:false|true)\b/i,
	number: /\b\d+(?:\.\d+)?\b/,
	operator: /<>|[<>]=?|!=|\*\*|[-+*/|=@]/,
	punctuation: /[:.;,()[\]]/
}, Prism.languages.pcode = Prism.languages.peoplecode;
Prism.languages.perl = {
	comment: [{
		pattern: /(^\s*)=\w[\s\S]*?=cut.*/m,
		lookbehind: !0
	}, {
		pattern: /(^|[^\\$])#.*/,
		lookbehind: !0
	}],
	string: [{
		pattern: /\b(?:q|qq|qx|qw)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/,
		greedy: !0
	}, {
		pattern: /\b(?:q|qq|qx|qw)\s+([a-zA-Z0-9])(?:(?!\1)[^\\]|\\[\s\S])*\1/,
		greedy: !0
	}, {
		pattern: /\b(?:q|qq|qx|qw)\s*\((?:[^()\\]|\\[\s\S])*\)/,
		greedy: !0
	}, {
		pattern: /\b(?:q|qq|qx|qw)\s*\{(?:[^{}\\]|\\[\s\S])*\}/,
		greedy: !0
	}, {
		pattern: /\b(?:q|qq|qx|qw)\s*\[(?:[^[\]\\]|\\[\s\S])*\]/,
		greedy: !0
	}, {
		pattern: /\b(?:q|qq|qx|qw)\s*<(?:[^<>\\]|\\[\s\S])*>/,
		greedy: !0
	}, {
		pattern: /("|`)(?:(?!\1)[^\\]|\\[\s\S])*\1/,
		greedy: !0
	}, {
		pattern: /'(?:[^'\\\r\n]|\\.)*'/,
		greedy: !0
	}],
	regex: [{
		pattern: /\b(?:m|qr)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1[msixpodualngc]*/,
		greedy: !0
	}, {
		pattern: /\b(?:m|qr)\s+([a-zA-Z0-9])(?:(?!\1)[^\\]|\\[\s\S])*\1[msixpodualngc]*/,
		greedy: !0
	}, {
		pattern: /\b(?:m|qr)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngc]*/,
		greedy: !0
	}, {
		pattern: /\b(?:m|qr)\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngc]*/,
		greedy: !0
	}, {
		pattern: /\b(?:m|qr)\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngc]*/,
		greedy: !0
	}, {
		pattern: /\b(?:m|qr)\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngc]*/,
		greedy: !0
	}, {
		pattern: /(^|[^-]\b)(?:s|tr|y)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2[msixpodualngcer]*/,
		lookbehind: !0,
		greedy: !0
	}, {
		pattern: /(^|[^-]\b)(?:s|tr|y)\s+([a-zA-Z0-9])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2[msixpodualngcer]*/,
		lookbehind: !0,
		greedy: !0
	}, {
		pattern: /(^|[^-]\b)(?:s|tr|y)\s*\((?:[^()\\]|\\[\s\S])*\)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngcer]*/,
		lookbehind: !0,
		greedy: !0
	}, {
		pattern: /(^|[^-]\b)(?:s|tr|y)\s*\{(?:[^{}\\]|\\[\s\S])*\}\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngcer]*/,
		lookbehind: !0,
		greedy: !0
	}, {
		pattern: /(^|[^-]\b)(?:s|tr|y)\s*\[(?:[^[\]\\]|\\[\s\S])*\]\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngcer]*/,
		lookbehind: !0,
		greedy: !0
	}, {
		pattern: /(^|[^-]\b)(?:s|tr|y)\s*<(?:[^<>\\]|\\[\s\S])*>\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngcer]*/,
		lookbehind: !0,
		greedy: !0
	}, {
		pattern: /\/(?:[^\/\\\r\n]|\\.)*\/[msixpodualngc]*(?=\s*(?:$|[\r\n,.;})&|\-+*~<>!?^]|(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor|x)\b))/,
		greedy: !0
	}],
	variable: [/[&*$@%]\{\^[A-Z]+\}/, /[&*$@%]\^[A-Z_]/, /[&*$@%]#?(?=\{)/, /[&*$@%]#?(?:(?:::)*'?(?!\d)[\w$]+)+(?:::)*/i,
		/[&*$@%]\d+/, /(?!%=)[$@%][!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~]/
	],
	filehandle: {
		pattern: /<(?![<=])\S*>|\b_\b/,
		alias: "symbol"
	},
	vstring: {
		pattern: /v\d+(?:\.\d+)*|\d+(?:\.\d+){2,}/,
		alias: "string"
	},
	function: {
		pattern: /sub [a-z0-9_]+/i,
		inside: {
			keyword: /sub/
		}
	},
	keyword: /\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\b/,
	number: /\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)\b/,
	operator: /-[rwxoRWXOezsfdlpSbctugkTBMAC]\b|\+[+=]?|-[-=>]?|\*\*?=?|\/\/?=?|=[=~>]?|~[~=]?|\|\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\.(?:=|\.\.?)?|[\\?]|\bx(?:=|\b)|\b(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor)\b/,
	punctuation: /[{}[\];(),:]/
};
! function(a) {
	var e = "(?:\\b[a-zA-Z]\\w*|[|\\\\[\\]])+";
	a.languages.phpdoc = a.languages.extend("javadoclike", {
		parameter: {
			pattern: RegExp("(@(?:global|param|property(?:-read|-write)?|var)\\s+(?:" + e + "\\s+)?)\\$\\w+"),
			lookbehind: !0
		}
	}), a.languages.insertBefore("phpdoc", "keyword", {
		"class-name": [{
			pattern: RegExp("(@(?:global|package|param|property(?:-read|-write)?|return|subpackage|throws|var)\\s+)" + e),
			lookbehind: !0,
			inside: {
				keyword: /\b(?:callback|resource|boolean|integer|double|object|string|array|false|float|mixed|bool|null|self|true|void|int)\b/,
				punctuation: /[|\\[\]()]/
			}
		}]
	}), a.languages.javadoclike.addSupport("php", a.languages.phpdoc)
}(Prism);
Prism.languages.insertBefore("php", "variable", {
	this: /\$this\b/,
	global: /\$(?:_(?:SERVER|GET|POST|FILES|REQUEST|SESSION|ENV|COOKIE)|GLOBALS|HTTP_RAW_POST_DATA|argc|argv|php_errormsg|http_response_header)\b/,
	scope: {
		pattern: /\b[\w\\]+::/,
		inside: {
			keyword: /static|self|parent/,
			punctuation: /::|\\/
		}
	}
});
! function(E) {
	var A = E.languages.plsql = E.languages.extend("sql", {
			comment: [/\/\*[\s\S]*?\*\//, /--.*/]
		}),
		T = A.keyword;
	Array.isArray(T) || (T = A.keyword = [T]), T.unshift(
		/\b(?:ACCESS|AGENT|AGGREGATE|ARRAY|ARROW|AT|ATTRIBUTE|AUDIT|AUTHID|BFILE_BASE|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BYTE|CALLING|CHAR_BASE|CHARSET(?:FORM|ID)|CLOB_BASE|COLAUTH|COLLECT|CLUSTERS?|COMPILED|COMPRESS|CONSTANT|CONSTRUCTOR|CONTEXT|CRASH|CUSTOMDATUM|DANGLING|DATE_BASE|DEFINE|DETERMINISTIC|DURATION|ELEMENT|EMPTY|EXCEPTIONS?|EXCLUSIVE|EXTERNAL|FINAL|FORALL|FORM|FOUND|GENERAL|HEAP|HIDDEN|IDENTIFIED|IMMEDIATE|INCLUDING|INCREMENT|INDICATOR|INDEXES|INDICES|INFINITE|INITIAL|ISOPEN|INSTANTIABLE|INTERFACE|INVALIDATE|JAVA|LARGE|LEADING|LENGTH|LIBRARY|LIKE[24C]|LIMITED|LONG|LOOP|MAP|MAXEXTENTS|MAXLEN|MEMBER|MINUS|MLSLABEL|MULTISET|NAME|NAN|NATIVE|NEW|NOAUDIT|NOCOMPRESS|NOCOPY|NOTFOUND|NOWAIT|NUMBER(?:_BASE)?|OBJECT|OCI(?:COLL|DATE|DATETIME|DURATION|INTERVAL|LOBLOCATOR|NUMBER|RAW|REF|REFCURSOR|ROWID|STRING|TYPE)|OFFLINE|ONLINE|ONLY|OPAQUE|OPERATOR|ORACLE|ORADATA|ORGANIZATION|ORL(?:ANY|VARY)|OTHERS|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETERS?|PASCAL|PCTFREE|PIPE(?:LINED)?|PRAGMA|PRIOR|PRIVATE|RAISE|RANGE|RAW|RECORD|REF|REFERENCE|REM|REMAINDER|RESULT|RESOURCE|RETURNING|REVERSE|ROW(?:ID|NUM|TYPE)|SAMPLE|SB[124]|SEGMENT|SELF|SEPARATE|SEQUENCE|SHORT|SIZE(?:_T)?|SPARSE|SQL(?:CODE|DATA|NAME|STATE)|STANDARD|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUCCESSFUL|SYNONYM|SYSDATE|TABAUTH|TDO|THE|TIMEZONE_(?:ABBR|HOUR|MINUTE|REGION)|TRAILING|TRANSAC(?:TIONAL)?|TRUSTED|UB[124]|UID|UNDER|UNTRUSTED|VALIDATE|VALIST|VARCHAR2|VARIABLE|VARIANCE|VARRAY|VIEWS|VOID|WHENEVER|WRAPPED|ZONE)\b/i
	);
	var R = A.operator;
	Array.isArray(R) || (R = A.operator = [R]), R.unshift(/:=/)
}(Prism);
Prism.languages.powerquery = {
	comment: {
		pattern: /(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:\/\/).*)/,
		lookbehind: !0
	},
	"quoted-identifier": {
		pattern: /#"(?:[^"\r\n]|"")*"(?!")/,
		greedy: !0,
		alias: "variable"
	},
	string: {
		pattern: /"(?:[^"\r\n]|"")*"(?!")/,
		greedy: !0
	},
	constant: [/\bDay\.(?:Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday)\b/,
		/\bTraceLevel\.(?:Critical|Error|Information|Verbose|Warning)\b/, /\bOccurrence\.(?:First|Last|All)\b/,
		/\bOrder\.(?:Ascending|Descending)\b/, /\bRoundingMode\.(?:AwayFromZero|Down|ToEven|TowardZero|Up)\b/,
		/\bMissingField\.(?:Error|Ignore|UseNull)\b/, /\bQuoteStyle\.(?:Csv|None)\b/,
		/\bJoinKind\.(?:Inner|LeftOuter|RightOuter|FullOuter|LeftAnti|RightAnti)\b/, /\bGroupKind\.(?:Global|Local)\b/,
		/\bExtraValues\.(?:List|Ignore|Error)\b/,
		/\bJoinAlgorithm\.(?:Dynamic|PairwiseHash|SortMerge|LeftHash|RightHash|LeftIndex|RightIndex)\b/,
		/\bJoinSide\.(?:Left|Right)\b/, /\bPrecision\.(?:Double|Decimal)\b/, /\bRelativePosition\.From(?:End|Start)\b/,
		/\bTextEncoding\.(?:Ascii|BigEndianUnicode|Unicode|Utf8|Utf16|Windows)\b/,
		/\b(?:Any|Binary|Date|DateTime|DateTimeZone|Duration|Int8|Int16|Int32|Int64|Function|List|Logical|None|Number|Record|Table|Text|Time)\.Type\b/,
		/\bnull\b/
	],
	boolean: /\b(?:true|false)\b/,
	keyword: /\b(?:and|as|each|else|error|if|in|is|let|meta|not|nullable|optional|or|otherwise|section|shared|then|try|type)\b|#(?:binary|date|datetime|datetimezone|duration|infinity|nan|sections|shared|table|time)\b/,
	function: {
		pattern: /(^|[^#\w.])(?!\d)[\w.]+(?=\s*\()/,
		lookbehind: !0
	},
	"data-type": {
		pattern: /\b(?:any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|number|record|table|text|time|type)\b/,
		alias: "variable"
	},
	number: {
		pattern: /\b0x[\da-f]+\b|(?:[+-]?(?:\b\d+\.)?\b\d+|[+-]\.\d+|(^|[^.])\B\.\d+)(?:e[+-]?\d+)?\b/i,
		lookbehind: !0
	},
	operator: /[-+*\/&?@^]|<(?:=>?|>)?|>=?|=>?|\.\.\.?/,
	punctuation: /[,;\[\](){}]/
}, Prism.languages.pq = Prism.languages.powerquery, Prism.languages.mscript = Prism.languages.powerquery;
! function(e) {
	var i = Prism.languages.powershell = {
			comment: [{
				pattern: /(^|[^`])<#[\s\S]*?#>/,
				lookbehind: !0
			}, {
				pattern: /(^|[^`])#.*/,
				lookbehind: !0
			}],
			string: [{
				pattern: /"(?:`[\s\S]|[^`"])*"/,
				greedy: !0,
				inside: {
					function: {
						pattern: /(^|[^`])\$\((?:\$\([^\r\n()]*\)|(?!\$\()[^\r\n)])*\)/,
						lookbehind: !0,
						inside: {}
					}
				}
			}, {
				pattern: /'(?:[^']|'')*'/,
				greedy: !0
			}],
			namespace: /\[[a-z](?:\[(?:\[[^\]]*]|[^\[\]])*]|[^\[\]])*]/i,
			boolean: /\$(?:true|false)\b/i,
			variable: /\$\w+\b/,
			function: [
				/\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\b/i,
				/\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i
			],
			keyword: /\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i,
			operator: {
				pattern: /(\W?)(?:!|-(?:eq|ne|gt|ge|lt|le|sh[lr]|not|b?(?:and|x?or)|(?:Not)?(?:Like|Match|Contains|In)|Replace|Join|is(?:Not)?|as)\b|-[-=]?|\+[+=]?|[*\/%]=?)/i,
				lookbehind: !0
			},
			punctuation: /[|{}[\];(),.]/
		},
		r = i.string[0].inside;
	r.boolean = i.boolean, r.variable = i.variable, r.function.inside = i
}();
Prism.languages.processing = Prism.languages.extend("clike", {
	keyword: /\b(?:break|catch|case|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\b/,
	operator: /<[<=]?|>[>=]?|&&?|\|\|?|[%?]|[!=+\-*\/]=?/
}), Prism.languages.insertBefore("processing", "number", {
	constant: /\b(?!XML\b)[A-Z][A-Z\d_]+\b/,
	type: {
		pattern: /\b(?:boolean|byte|char|color|double|float|int|[A-Z]\w*)\b/,
		alias: "variable"
	}
}), Prism.languages.processing.function = /\w+(?=\s*\()/, Prism.languages.processing["class-name"].alias = "variable";
Prism.languages.prolog = {
	comment: [/%.+/, /\/\*[\s\S]*?\*\//],
	string: {
		pattern: /(["'])(?:\1\1|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
		greedy: !0
	},
	builtin: /\b(?:fx|fy|xf[xy]?|yfx?)\b/,
	variable: /\b[A-Z_]\w*/,
	function: /\b[a-z]\w*(?:(?=\()|\/\d+)/,
	number: /\b\d+(?:\.\d*)?/,
	operator: /[:\\=><\-?*@\/;+^|!$.]+|\b(?:is|mod|not|xor)\b/,
	punctuation: /[(){}\[\],]/
};
! function(t) {
	var n = ["on", "ignoring", "group_right", "group_left", "by", "without"],
		a = ["sum", "min", "max", "avg", "group", "stddev", "stdvar", "count", "count_values", "bottomk", "topk", "quantile"]
		.concat(n, ["offset"]);
	t.languages.promql = {
		comment: {
			pattern: /(^[ \t]*)#.*/m,
			lookbehind: !0
		},
		"vector-match": {
			pattern: new RegExp("((?:" + n.join("|") + ")\\s*)\\([^)]*\\)"),
			lookbehind: !0,
			inside: {
				"label-key": {
					pattern: /\b[^,]*\b/,
					alias: "attr-name"
				},
				punctuation: /[(),]/
			}
		},
		"context-labels": {
			pattern: /\{[^{}]*\}/,
			inside: {
				"label-key": {
					pattern: /\b[a-z_]\w*(?=\s*(?:=~?|![=~]))/,
					alias: "attr-name"
				},
				"label-value": {
					pattern: /(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,
					greedy: !0,
					alias: "attr-value"
				},
				punctuation: /\{|\}|=~?|![=~]|,/
			}
		},
		"context-range": [{
			pattern: /\[[\w\s:]+\]/,
			inside: {
				punctuation: /\[|\]|:/,
				"range-duration": {
					pattern: /\b(?:\d+(?:[smhdwy]|ms))+\b/i,
					alias: "number"
				}
			}
		}, {
			pattern: /(\boffset\s+)\w+/,
			lookbehind: !0,
			inside: {
				"range-duration": {
					pattern: /\b(?:\d+(?:[smhdwy]|ms))+\b/i,
					alias: "number"
				}
			}
		}],
		keyword: new RegExp("\\b(?:" + a.join("|") + ")\\b", "i"),
		function: /\b[a-zA-Z_]\w*(?=\s*\()/i,
		number: /[-+]?(?:(?:\b\d+(?:\.\d+)?|\B\.\d+)(?:e[-+]?\d+)?\b|\b(?:0x[0-9a-f]+|nan|inf)\b)/i,
		operator: /[\^*/%+-]|==|!=|<=|<|>=|>|\b(?:and|unless|or)\b/i,
		punctuation: /[{};()`,.[\]]/
	}
}(Prism);
Prism.languages.properties = {
	comment: /^[ \t]*[#!].*$/m,
	"attr-value": {
		pattern: /(^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+?(?: *[=:] *(?! )| ))(?:\\(?:\r\n|[\s\S])|[^\\\r\n])+/m,
		lookbehind: !0
	},
	"attr-name": /^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+?(?= *[=:] *| )/m,
	punctuation: /[=:]/
};
! function(e) {
	var s = /\b(?:double|float|[su]?int(?:32|64)|s?fixed(?:32|64)|bool|string|bytes)\b/;
	e.languages.protobuf = e.languages.extend("clike", {
		"class-name": [{
			pattern: /(\b(?:enum|extend|message|service)\s+)[A-Za-z_]\w*(?=\s*\{)/,
			lookbehind: !0
		}, {
			pattern: /(\b(?:rpc\s+\w+|returns)\s*\(\s*(?:stream\s+)?)\.?[A-Za-z_]\w*(?:\.[A-Za-z_]\w*)*(?=\s*\))/,
			lookbehind: !0
		}],
		keyword: /\b(?:enum|extend|extensions|import|message|oneof|option|optional|package|public|repeated|required|reserved|returns|rpc(?=\s+\w)|service|stream|syntax|to)\b(?!\s*=\s*\d)/,
		function: /[a-z_]\w*(?=\s*\()/i
	}), e.languages.insertBefore("protobuf", "operator", {
		map: {
			pattern: /\bmap<\s*[\w.]+\s*,\s*[\w.]+\s*>(?=\s+[a-z_]\w*\s*[=;])/i,
			alias: "class-name",
			inside: {
				punctuation: /[<>.,]/,
				builtin: s
			}
		},
		builtin: s,
		"positional-class-name": {
			pattern: /(?:\b|\B\.)[a-z_]\w*(?:\.[a-z_]\w*)*(?=\s+[a-z_]\w*\s*[=;])/i,
			alias: "class-name",
			inside: {
				punctuation: /\./
			}
		},
		annotation: {
			pattern: /(\[\s*)[a-z_]\w*(?=\s*=)/i,
			lookbehind: !0
		}
	})
}(Prism);
! function(e) {
	e.languages.pug = {
		comment: {
			pattern: /(^([\t ]*))\/\/.*(?:(?:\r?\n|\r)\2[\t ].+)*/m,
			lookbehind: !0
		},
		"multiline-script": {
			pattern: /(^([\t ]*)script\b.*\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,
			lookbehind: !0,
			inside: e.languages.javascript
		},
		filter: {
			pattern: /(^([\t ]*)):.+(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,
			lookbehind: !0,
			inside: {
				"filter-name": {
					pattern: /^:[\w-]+/,
					alias: "variable"
				}
			}
		},
		"multiline-plain-text": {
			pattern: /(^([\t ]*)[\w\-#.]+\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,
			lookbehind: !0
		},
		markup: {
			pattern: /(^[\t ]*)<.+/m,
			lookbehind: !0,
			inside: e.languages.markup
		},
		doctype: {
			pattern: /((?:^|\n)[\t ]*)doctype(?: .+)?/,
			lookbehind: !0
		},
		"flow-control": {
			pattern: /(^[\t ]*)(?:if|unless|else|case|when|default|each|while)\b(?: .+)?/m,
			lookbehind: !0,
			inside: {
				each: {
					pattern: /^each .+? in\b/,
					inside: {
						keyword: /\b(?:each|in)\b/,
						punctuation: /,/
					}
				},
				branch: {
					pattern: /^(?:if|unless|else|case|when|default|while)\b/,
					alias: "keyword"
				},
				rest: e.languages.javascript
			}
		},
		keyword: {
			pattern: /(^[\t ]*)(?:block|extends|include|append|prepend)\b.+/m,
			lookbehind: !0
		},
		mixin: [{
			pattern: /(^[\t ]*)mixin .+/m,
			lookbehind: !0,
			inside: {
				keyword: /^mixin/,
				function: /\w+(?=\s*\(|\s*$)/,
				punctuation: /[(),.]/
			}
		}, {
			pattern: /(^[\t ]*)\+.+/m,
			lookbehind: !0,
			inside: {
				name: {
					pattern: /^\+\w+/,
					alias: "function"
				},
				rest: e.languages.javascript
			}
		}],
		script: {
			pattern: /(^[\t ]*script(?:(?:&[^(]+)?\([^)]+\))*[\t ]).+/m,
			lookbehind: !0,
			inside: e.languages.javascript
		},
		"plain-text": {
			pattern: /(^[\t ]*(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?[\t ]).+/m,
			lookbehind: !0
		},
		tag: {
			pattern: /(^[\t ]*)(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?:?/m,
			lookbehind: !0,
			inside: {
				attributes: [{
					pattern: /&[^(]+\([^)]+\)/,
					inside: e.languages.javascript
				}, {
					pattern: /\([^)]+\)/,
					inside: {
						"attr-value": {
							pattern: /(=\s*(?!\s))(?:\{[^}]*\}|[^,)\r\n]+)/,
							lookbehind: !0,
							inside: e.languages.javascript
						},
						"attr-name": /[\w-]+(?=\s*!?=|\s*[,)])/,
						punctuation: /[!=(),]+/
					}
				}],
				punctuation: /:/,
				"attr-id": /#[\w\-]+/,
				"attr-class": /\.[\w\-]+/
			}
		},
		code: [{
			pattern: /(^[\t ]*(?:-|!?=)).+/m,
			lookbehind: !0,
			inside: e.languages.javascript
		}],
		punctuation: /[.\-!=|]+/
	};
	for (var t = [{
			filter: "atpl",
			language: "twig"
		}, {
			filter: "coffee",
			language: "coffeescript"
		}, "ejs", "handlebars", "less", "livescript", "markdown", {
			filter: "sass",
			language: "scss"
		}, "stylus"], n = {}, a = 0, i = t.length; a < i; a++) {
		var r = t[a];
		r = "string" == typeof r ? {
			filter: r,
			language: r
		} : r, e.languages[r.language] && (n["filter-" + r.filter] = {
			pattern: RegExp("(^([\t ]*)):{{filter_name}}(?:(?:\r?\n|\r(?!\n))(?:\\2[\t ].+|\\s*?(?=\r?\n|\r)))+".replace(
				"{{filter_name}}",
				function() {
					return r.filter
				}), "m"),
			lookbehind: !0,
			inside: {
				"filter-name": {
					pattern: /^:[\w-]+/,
					alias: "variable"
				},
				rest: e.languages[r.language]
			}
		})
	}
	e.languages.insertBefore("pug", "filter", n)
}(Prism);
! function(e) {
	e.languages.puppet = {
		heredoc: [{
			pattern: /(@\("([^"\r\n\/):]+)"(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r(?!\n)))*?[ \t]*(?:\|[ \t]*)?(?:-[ \t]*)?\2/,
			lookbehind: !0,
			alias: "string",
			inside: {
				punctuation: /(?=\S).*\S(?= *$)/
			}
		}, {
			pattern: /(@\(([^"\r\n\/):]+)(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r(?!\n)))*?[ \t]*(?:\|[ \t]*)?(?:-[ \t]*)?\2/,
			lookbehind: !0,
			greedy: !0,
			alias: "string",
			inside: {
				punctuation: /(?=\S).*\S(?= *$)/
			}
		}, {
			pattern: /@\("?(?:[^"\r\n\/):]+)"?(?:\/[nrts$uL]*)?\)/,
			alias: "string",
			inside: {
				punctuation: {
					pattern: /(\().+?(?=\))/,
					lookbehind: !0
				}
			}
		}],
		"multiline-comment": {
			pattern: /(^|[^\\])\/\*[\s\S]*?\*\//,
			lookbehind: !0,
			greedy: !0,
			alias: "comment"
		},
		regex: {
			pattern: /((?:\bnode\s+|[~=\(\[\{,]\s*|[=+]>\s*|^\s*))\/(?:[^\/\\]|\\[\s\S])+\/(?:[imx]+\b|\B)/,
			lookbehind: !0,
			greedy: !0,
			inside: {
				"extended-regex": {
					pattern: /^\/(?:[^\/\\]|\\[\s\S])+\/[im]*x[im]*$/,
					inside: {
						comment: /#.*/
					}
				}
			}
		},
		comment: {
			pattern: /(^|[^\\])#.*/,
			lookbehind: !0,
			greedy: !0
		},
		string: {
			pattern: /(["'])(?:\$\{(?:[^'"}]|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}|\$(?!\{)|(?!\1)[^\\$]|\\[\s\S])*\1/,
			greedy: !0,
			inside: {
				"double-quoted": {
					pattern: /^"[\s\S]*"$/,
					inside: {}
				}
			}
		},
		variable: {
			pattern: /\$(?:::)?\w+(?:::\w+)*/,
			inside: {
				punctuation: /::/
			}
		},
		"attr-name": /(?:\w+|\*)(?=\s*=>)/,
		function: [{
			pattern: /(\.)(?!\d)\w+/,
			lookbehind: !0
		}, /\b(?:contain|debug|err|fail|include|info|notice|realize|require|tag|warning)\b|\b(?!\d)\w+(?=\()/],
		number: /\b(?:0x[a-f\d]+|\d+(?:\.\d+)?(?:e-?\d+)?)\b/i,
		boolean: /\b(?:true|false)\b/,
		keyword: /\b(?:application|attr|case|class|consumes|default|define|else|elsif|function|if|import|inherits|node|private|produces|type|undef|unless)\b/,
		datatype: {
			pattern: /\b(?:Any|Array|Boolean|Callable|Catalogentry|Class|Collection|Data|Default|Enum|Float|Hash|Integer|NotUndef|Numeric|Optional|Pattern|Regexp|Resource|Runtime|Scalar|String|Struct|Tuple|Type|Undef|Variant)\b/,
			alias: "symbol"
		},
		operator: /=[=~>]?|![=~]?|<(?:<\|?|[=~|-])?|>[>=]?|->?|~>|\|>?>?|[*\/%+?]|\b(?:and|in|or)\b/,
		punctuation: /[\[\]{}().,;]|:+/
	};
	var n = [{
		pattern: /(^|[^\\])\$\{(?:[^'"{}]|\{[^}]*\}|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}/,
		lookbehind: !0,
		inside: {
			"short-variable": {
				pattern: /(^\$\{)(?!\w+\()(?:::)?\w+(?:::\w+)*/,
				lookbehind: !0,
				alias: "variable",
				inside: {
					punctuation: /::/
				}
			},
			delimiter: {
				pattern: /^\$/,
				alias: "variable"
			},
			rest: e.languages.puppet
		}
	}, {
		pattern: /(^|[^\\])\$(?:::)?\w+(?:::\w+)*/,
		lookbehind: !0,
		alias: "variable",
		inside: {
			punctuation: /::/
		}
	}];
	e.languages.puppet.heredoc[0].inside.interpolation = n, e.languages.puppet.string.inside["double-quoted"].inside.interpolation =
		n
}(Prism);
! function(r) {
	r.languages.pure = {
		comment: [{
			pattern: /(^|[^\\])\/\*[\s\S]*?\*\//,
			lookbehind: !0
		}, {
			pattern: /(^|[^\\:])\/\/.*/,
			lookbehind: !0
		}, /#!.+/],
		"inline-lang": {
			pattern: /%<[\s\S]+?%>/,
			greedy: !0,
			inside: {
				lang: {
					pattern: /(^%< *)-\*-.+?-\*-/,
					lookbehind: !0,
					alias: "comment"
				},
				delimiter: {
					pattern: /^%<.*|%>$/,
					alias: "punctuation"
				}
			}
		},
		string: {
			pattern: /"(?:\\.|[^"\\\r\n])*"/,
			greedy: !0
		},
		number: {
			pattern: /((?:\.\.)?)(?:\b(?:inf|nan)\b|\b0x[\da-f]+|(?:\b(?:0b)?\d+(?:\.\d+)?|\B\.\d+)(?:e[+-]?\d+)?L?)/i,
			lookbehind: !0
		},
		keyword: /\b(?:ans|break|bt|case|catch|cd|clear|const|def|del|dump|else|end|exit|extern|false|force|help|if|infix[lr]?|interface|let|ls|mem|namespace|nonfix|NULL|of|otherwise|outfix|override|postfix|prefix|private|public|pwd|quit|run|save|show|stats|then|throw|trace|true|type|underride|using|when|with)\b/,
		function: /\b(?:abs|add_(?:(?:fundef|interface|macdef|typedef)(?:_at)?|addr|constdef|vardef)|all|any|applp?|arity|bigintp?|blob(?:_crc|_size|p)?|boolp?|byte_(?:matrix|pointer)|byte_c?string(?:_pointer)?|calloc|cat|catmap|ceil|char[ps]?|check_ptrtag|chr|clear_sentry|clearsym|closurep?|cmatrixp?|cols?|colcat(?:map)?|colmap|colrev|colvector(?:p|seq)?|complex(?:_float_(?:matrix|pointer)|_matrix(?:_view)?|_pointer|p)?|conj|cookedp?|cst|cstring(?:_(?:dup|list|vector))?|curry3?|cyclen?|del_(?:constdef|fundef|interface|macdef|typedef|vardef)|delete|diag(?:mat)?|dim|dmatrixp?|do|double(?:_matrix(?:_view)?|_pointer|p)?|dowith3?|drop|dropwhile|eval(?:cmd)?|exactp|filter|fix|fixity|flip|float(?:_matrix|_pointer)|floor|fold[lr]1?|frac|free|funp?|functionp?|gcd|get(?:_(?:byte|constdef|double|float|fundef|int(?:64)?|interface(?:_typedef)?|long|macdef|pointer|ptrtag|short|sentry|string|typedef|vardef))?|globsym|hash|head|id|im|imatrixp?|index|inexactp|infp|init|insert|int(?:_matrix(?:_view)?|_pointer|p)?|int64_(?:matrix|pointer)|integerp?|iteraten?|iterwhile|join|keys?|lambdap?|last(?:err(?:pos)?)?|lcd|list[2p]?|listmap|make_ptrtag|malloc|map|matcat|matrixp?|max|member|min|nanp|nargs|nmatrixp?|null|numberp?|ord|pack(?:ed)?|pointer(?:_cast|_tag|_type|p)?|pow|pred|ptrtag|put(?:_(?:byte|double|float|int(?:64)?|long|pointer|short|string))?|rationalp?|re|realp?|realloc|recordp?|redim|reduce(?:_with)?|refp?|repeatn?|reverse|rlistp?|round|rows?|rowcat(?:map)?|rowmap|rowrev|rowvector(?:p|seq)?|same|scan[lr]1?|sentry|sgn|short_(?:matrix|pointer)|slice|smatrixp?|sort|split|str|strcat|stream|stride|string(?:_(?:dup|list|vector)|p)?|subdiag(?:mat)?|submat|subseq2?|substr|succ|supdiag(?:mat)?|symbolp?|tail|take|takewhile|thunkp?|transpose|trunc|tuplep?|typep|ubyte|uint(?:64)?|ulong|uncurry3?|unref|unzip3?|update|ushort|vals?|varp?|vector(?:p|seq)?|void|zip3?|zipwith3?)\b/,
		special: {
			pattern: /\b__[a-z]+__\b/i,
			alias: "builtin"
		},
		operator: /(?:[!"#$%&'*+,\-.\/:<=>?@\\^`|~\u00a1-\u00bf\u00d7-\u00f7\u20d0-\u2bff]|\b_+\b)+|\b(?:and|div|mod|not|or)\b/,
		punctuation: /[(){}\[\];,|]/
	};
	["c", {
		lang: "c++",
		alias: "cpp"
	}, "fortran"].forEach(function(e) {
		var t = e;
		if ("string" != typeof e && (t = e.alias, e = e.lang), r.languages[t]) {
			var a = {};
			a["inline-lang-" + t] = {
				pattern: RegExp("%< *-\\*- *{lang}\\d* *-\\*-[^]+?%>".replace("{lang}", e.replace(/([.+*?\/\\(){}\[\]])/g,
					"\\$1")), "i"),
				inside: r.util.clone(r.languages.pure["inline-lang"].inside)
			}, a["inline-lang-" + t].inside.rest = r.util.clone(r.languages[t]), r.languages.insertBefore("pure",
				"inline-lang", a)
		}
	}), r.languages.c && (r.languages.pure["inline-lang"].inside.rest = r.util.clone(r.languages.c))
}(Prism);
Prism.languages.purebasic = Prism.languages.extend("clike", {
		comment: /;.*/,
		keyword: /\b(?:declarecdll|declaredll|compilerselect|compilercase|compilerdefault|compilerendselect|compilererror|enableexplicit|disableexplicit|not|and|or|xor|calldebugger|debuglevel|enabledebugger|disabledebugger|restore|read|includepath|includebinary|threaded|runtime|with|endwith|structureunion|endstructureunion|align|newlist|newmap|interface|endinterface|extends|enumeration|endenumeration|swap|foreach|continue|fakereturn|goto|gosub|return|break|module|endmodule|declaremodule|enddeclaremodule|declare|declarec|prototype|prototypec|enableasm|disableasm|dim|redim|data|datasection|enddatasection|to|procedurereturn|debug|default|case|select|endselect|as|import|endimport|importc|compilerif|compilerelse|compilerendif|compilerelseif|end|structure|endstructure|while|wend|for|next|step|if|else|elseif|endif|repeat|until|procedure|proceduredll|procedurec|procedurecdll|endprocedure|protected|shared|static|global|define|includefile|xincludefile|macro|endmacro)\b/i,
		function: /\b\w+(?:\.\w+)?\s*(?=\()/,
		number: /(?:\$[\da-f]+|\b-?(?:\d+(?:\.\d+)?|\.\d+)(?:e[+-]?\d+)?)\b/i,
		operator: /(?:@\*?|\?|\*)\w+|-[>-]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|?\||[~^%?*/@]/
	}), Prism.languages.insertBefore("purebasic", "keyword", {
		tag: /#\w+/,
		asm: {
			pattern: /(^\s*)!.*/m,
			lookbehind: !0,
			alias: "tag",
			inside: {
				comment: /;.*/,
				string: {
					pattern: /(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,
					greedy: !0
				},
				"label-reference-anonymous": {
					pattern: /(\s*!\s*j[a-z]+\s+)@[fb]/i,
					lookbehind: !0,
					alias: "fasm-label"
				},
				"label-reference-addressed": {
					pattern: /(\s*!\s*j[a-z]+\s+)[A-Z._?$@][\w.?$@~#]*/i,
					lookbehind: !0,
					alias: "fasm-label"
				},
				function: {
					pattern: /^(\s*!\s*)[\da-z]+(?=\s|$)/im,
					lookbehind: !0
				},
				"function-inline": {
					pattern: /(\s*:\s*)[\da-z]+(?=\s)/i,
					lookbehind: !0,
					alias: "function"
				},
				label: {
					pattern: /^(\s*!\s*)[A-Za-z._?$@][\w.?$@~#]*(?=:)/m,
					lookbehind: !0,
					alias: "fasm-label"
				},
				keyword: [/(?:extern|global)[^;\r\n]*/i, /(?:CPU|FLOAT|DEFAULT).*/],
				register: /\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|sp|si|di)|[cdefgs]s|mm\d+)\b/i,
				number: /(?:\b|-|(?=\$))(?:0[hx](?:[\da-f]*\.)?[\da-f]+(?:p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|(?:\d+(?:\.\d+)?|\.\d+)(?:\.?e[+-]?\d+)?[dt]?)\b/i,
				operator: /[\[\]*+\-/%<>=&|$!,.:]/
			}
		}
	}), delete Prism.languages.purebasic["class-name"], delete Prism.languages.purebasic.boolean, Prism.languages.pbfasm =
	Prism.languages.purebasic;
Prism.languages.purescript = Prism.languages.extend("haskell", {
	keyword: /\b(?:ado|case|class|data|derive|do|else|forall|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,
	"import-statement": {
		pattern: /(^\s*)import\s+[A-Z][\w']*(?:\.[A-Z][\w']*)*(?:\s+as\s+[A-Z][\w']*(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,
		lookbehind: !0,
		inside: {
			keyword: /\b(?:import|as|hiding)\b/
		}
	},
	builtin: /\b(?:absurd|add|ap|append|apply|between|bind|bottom|clamp|compare|comparing|compose|conj|const|degree|discard|disj|div|eq|flap|flip|gcd|identity|ifM|join|lcm|liftA1|liftM1|map|max|mempty|min|mod|mul|negate|not|notEq|one|otherwise|recip|show|sub|top|unit|unless|unlessM|void|when|whenM|zero)\b/
}), Prism.languages.purs = Prism.languages.purescript;
Prism.languages.python = {
		comment: {
			pattern: /(^|[^\\])#.*/,
			lookbehind: !0
		},
		"string-interpolation": {
			pattern: /(?:f|rf|fr)(?:("""|''')[\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]|rb|br)?("""|''')[\s\S]*?\1/i,
			greedy: !0,
			alias: "string"
		},
		string: {
			pattern: /(?:[rub]|rb|br)?("|')(?:\\.|(?!\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: /(^\s*)@\w+(?:\.\w+)*/im,
			lookbehind: !0,
			alias: ["annotation", "punctuation"],
			inside: {
				punctuation: /\./
			}
		},
		keyword: /\b(?:and|as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|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(?:True|False|None)\b/,
		number: /(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?j?\b/i,
		operator: /[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,
		punctuation: /[{}[\];(),.:]/
	}, Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest = Prism.languages.python, Prism.languages
	.py = Prism.languages.python;
Prism.languages.q = {
	string: /"(?:\\.|[^"\\\r\n])*"/,
	comment: [{
		pattern: /([\t )\]}])\/.*/,
		lookbehind: !0,
		greedy: !0
	}, {
		pattern: /(^|\r?\n|\r)\/[\t ]*(?:(?:\r?\n|\r)(?:.*(?:\r?\n|\r(?!\n)))*?(?:\\(?=[\t ]*(?:\r?\n|\r))|$)|\S.*)/,
		lookbehind: !0,
		greedy: !0
	}, {
		pattern: /^\\[\t ]*(?:\r?\n|\r)[\s\S]+/m,
		greedy: !0
	}, {
		pattern: /^#!.+/m,
		greedy: !0
	}],
	symbol: /`(?::\S+|[\w.]*)/,
	datetime: {
		pattern: /0N[mdzuvt]|0W[dtz]|\d{4}\.\d\d(?:m|\.\d\d(?:T(?:\d\d(?::\d\d(?::\d\d(?:[.:]\d\d\d)?)?)?)?)?[dz]?)|\d\d:\d\d(?::\d\d(?:[.:]\d\d\d)?)?[uvt]?/,
		alias: "number"
	},
	number: /\b(?![01]:)(?:0[wn]|0W[hj]?|0N[hje]?|0x[\da-fA-F]+|\d+(?:\.\d*)?(?:e[+-]?\d+)?[hjfeb]?)/,
	keyword: /\\\w+\b|\b(?:abs|acos|aj0?|all|and|any|asc|asin|asof|atan|attr|avgs?|binr?|by|ceiling|cols|cor|cos|count|cov|cross|csv|cut|delete|deltas|desc|dev|differ|distinct|div|do|dsave|ej|enlist|eval|except|exec|exit|exp|fby|fills|first|fkeys|flip|floor|from|get|getenv|group|gtime|hclose|hcount|hdel|hopen|hsym|iasc|identity|idesc|if|ij|in|insert|inter|inv|keys?|last|like|list|ljf?|load|log|lower|lsq|ltime|ltrim|mavg|maxs?|mcount|md5|mdev|med|meta|mins?|mmax|mmin|mmu|mod|msum|neg|next|not|null|or|over|parse|peach|pj|plist|prds?|prev|prior|rand|rank|ratios|raze|read0|read1|reciprocal|reval|reverse|rload|rotate|rsave|rtrim|save|scan|scov|sdev|select|set|setenv|show|signum|sin|sqrt|ssr?|string|sublist|sums?|sv|svar|system|tables|tan|til|trim|txf|type|uj|ungroup|union|update|upper|upsert|value|var|views?|vs|wavg|where|while|within|wj1?|wsum|ww|xasc|xbar|xcols?|xdesc|xexp|xgroup|xkey|xlog|xprev|xrank)\b/,
	adverb: {
		pattern: /['\/\\]:?|\beach\b/,
		alias: "function"
	},
	verb: {
		pattern: /(?:\B\.\B|\b[01]:|<[=>]?|>=?|[:+\-*%,!?~=|$&#@^]):?|\b_\b:?/,
		alias: "operator"
	},
	punctuation: /[(){}\[\];.]/
};
! function(e) {
	for (var r = "(?:[^\\\\()[\\]{}\"'/]|<string>|/(?![*/])|<comment>|\\(<expr>*\\)|\\[<expr>*\\]|\\{<expr>*\\}|\\\\[^])".replace(
			/<string>/g,
			function() {
				return "\"(?:\\\\.|[^\\\\\"\r\n])*\"|'(?:\\\\.|[^\\\\'\r\n])*'"
			}).replace(/<comment>/g, function() {
			return "//.*(?!.)|/\\*(?:[^*]|\\*(?!/))*\\*/"
		}), n = 0; n < 2; n++) r = r.replace(/<expr>/g, function() {
		return r
	});
	r = r.replace(/<expr>/g, "[^\\s\\S]"), e.languages.qml = {
		comment: {
			pattern: /\/\/.*|\/\*[\s\S]*?\*\//,
			greedy: !0
		},
		"javascript-function": {
			pattern: RegExp(
				"((?:^|;)[ \t]*)function\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*\\(<js>*\\)\\s*\\{<js>*\\}"
				.replace(/<js>/g, function() {
					return r
				}), "m"),
			lookbehind: !0,
			greedy: !0,
			alias: "language-javascript",
			inside: e.languages.javascript
		},
		"class-name": {
			pattern: /((?:^|[:;])[ \t]*)(?!\d)\w+(?=[ \t]*\{|[ \t]+on\b)/m,
			lookbehind: !0
		},
		property: [{
			pattern: /((?:^|[;{])[ \t]*)(?!\d)\w+(?:\.\w+)*(?=[ \t]*:)/m,
			lookbehind: !0
		}, {
			pattern: /((?:^|[;{])[ \t]*)property[ \t]+(?!\d)\w+(?:\.\w+)*[ \t]+(?!\d)\w+(?:\.\w+)*(?=[ \t]*:)/m,
			lookbehind: !0,
			inside: {
				keyword: /^property/,
				property: /\w+(?:\.\w+)*/
			}
		}],
		"javascript-expression": {
			pattern: RegExp("(:[ \t]*)(?![\\s;}[])(?:(?!$|[;}])<js>)+".replace(/<js>/g, function() {
				return r
			}), "m"),
			lookbehind: !0,
			greedy: !0,
			alias: "language-javascript",
			inside: e.languages.javascript
		},
		string: /"(?:\\.|[^\\"\r\n])*"/,
		keyword: /\b(?:as|import|on)\b/,
		punctuation: /[{}[\]:;,]/
	}
}(Prism);
Prism.languages.qore = Prism.languages.extend("clike", {
	comment: {
		pattern: /(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:\/\/|#).*)/,
		lookbehind: !0
	},
	string: {
		pattern: /("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/,
		greedy: !0
	},
	keyword: /\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:int|float|number|bool|string|date|list)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\b/,
	boolean: /\b(?:true|false)\b/i,
	function: /\$?\b(?!\d)\w+(?=\()/,
	number: /\b(?:0b[01]+|0x(?:[\da-f]*\.)?[\da-fp\-]+|(?:\d+(?:\.\d+)?|\.\d+)(?:e\d+)?[df]|(?:\d+(?:\.\d+)?|\.\d+))\b/i,
	operator: {
		pattern: /(^|[^.])(?:\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\|[|=]?|[*\/%^]=?|[~?])/,
		lookbehind: !0
	},
	variable: /\$(?!\d)\w+\b/
});
Prism.languages.r = {
	comment: /#.*/,
	string: {
		pattern: /(['"])(?:\\.|(?!\1)[^\\\r\n])*\1/,
		greedy: !0
	},
	"percent-operator": {
		pattern: /%[^%\s]*%/,
		alias: "operator"
	},
	boolean: /\b(?:TRUE|FALSE)\b/,
	ellipsis: /\.\.(?:\.|\d+)/,
	number: [/\b(?:NaN|Inf)\b/, /(?:\b0x[\dA-Fa-f]+(?:\.\d*)?|\b\d+(?:\.\d*)?|\B\.\d+)(?:[EePp][+-]?\d+)?[iL]?/],
	keyword: /\b(?:if|else|repeat|while|function|for|in|next|break|NULL|NA|NA_integer_|NA_real_|NA_complex_|NA_character_)\b/,
	operator: /->?>?|<(?:=|<?-)?|[>=!]=?|::?|&&?|\|\|?|[+*\/^$@~]/,
	punctuation: /[(){}\[\],;]/
};
Prism.languages.racket = Prism.languages.extend("scheme", {
	"lambda-parameter": {
		pattern: /(\(lambda\s+\()[^()'\s]+/,
		lookbehind: !0
	}
}), Prism.languages.DFS(Prism.languages.racket, function(e, a) {
	if ("RegExp" === Prism.util.type(a)) {
		var r = a.source.replace(/\\(.)|\[\^?((?:\\.|[^\\\]])*)\]/g, function(e, a, r) {
			if (a) {
				if ("(" === a) return "[([]";
				if (")" === a) return "[)\\]]"
			}
			return r ? ("^" === e[1] ? "[^" : "[") + r.replace(/\\(.)|[()]/g, function(e, a) {
				return "(" === e || "(" === a ? "([" : ")" === e || ")" === a ? ")\\]" : e
			}) + "]" : e
		});
		this[e] = RegExp(r, a.flags)
	}
}), Prism.languages.insertBefore("racket", "string", {
	lang: {
		pattern: /^#lang.+/m,
		greedy: !0,
		alias: "keyword"
	}
}), Prism.languages.rkt = Prism.languages.racket;
! function(o) {
	var t = o.util.clone(o.languages.javascript),
		e = "(?:\\{<S>*\\.{3}(?:[^{}]|<BRACES>)*\\})";

	function n(t, n) {
		return t = t.replace(/<S>/g, function() {
			return "(?:\\s|//.*(?!.)|/\\*(?:[^*]|\\*(?!/))\\*/)"
		}).replace(/<BRACES>/g, function() {
			return "(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])*\\})"
		}).replace(/<SPREAD>/g, function() {
			return e
		}), RegExp(t, n)
	}
	e = n(e).source, o.languages.jsx = o.languages.extend("markup", t), o.languages.jsx.tag.pattern = n(
			"</?(?:[\\w.:-]+(?:<S>+(?:[\\w.:$-]+(?:=(?:\"(?:\\\\[^]|[^\\\\\"])*\"|'(?:\\\\[^]|[^\\\\'])*'|[^\\s{'\"/>=]+|<BRACES>))?|<SPREAD>))*<S>*/?)?>"
		), o.languages.jsx.tag.inside.tag.pattern = /^<\/?[^\s>\/]*/i, o.languages.jsx.tag.inside["attr-value"].pattern =
		/=(?!\{)(?:"(?:\\[^]|[^\\"])*"|'(?:\\[^]|[^\\'])*'|[^\s'">]+)/i, o.languages.jsx.tag.inside.tag.inside["class-name"] =
		/^[A-Z]\w*(?:\.[A-Z]\w*)*$/, o.languages.jsx.tag.inside.comment = t.comment, o.languages.insertBefore("inside",
			"attr-name", {
				spread: {
					pattern: n("<SPREAD>"),
					inside: o.languages.jsx
				}
			}, o.languages.jsx.tag), o.languages.insertBefore("inside", "attr-value", {
			script: {
				pattern: n("=<BRACES>"),
				inside: {
					"script-punctuation": {
						pattern: /^=(?={)/,
						alias: "punctuation"
					},
					rest: o.languages.jsx
				},
				alias: "language-javascript"
			}
		}, o.languages.jsx.tag);
	var i = function(t) {
			return t ? "string" == typeof t ? t : "string" == typeof t.content ? t.content : t.content.map(i).join("") : ""
		},
		r = function(t) {
			for (var n = [], e = 0; e < t.length; e++) {
				var a = t[e],
					g = !1;
				if ("string" != typeof a && ("tag" === a.type && a.content[0] && "tag" === a.content[0].type ? "</" === a.content[0]
						.content[0].content ? 0 < n.length && n[n.length - 1].tagName === i(a.content[0].content[1]) && n.pop() : "/>" ===
						a.content[a.content.length - 1].content || n.push({
							tagName: i(a.content[0].content[1]),
							openedBraces: 0
						}) : 0 < n.length && "punctuation" === a.type && "{" === a.content ? n[n.length - 1].openedBraces++ : 0 < n.length &&
						0 < n[n.length - 1].openedBraces && "punctuation" === a.type && "}" === a.content ? n[n.length - 1].openedBraces--
						: g = !0), (g || "string" == typeof a) && 0 < n.length && 0 === n[n.length - 1].openedBraces) {
					var s = i(a);
					e < t.length - 1 && ("string" == typeof t[e + 1] || "plain-text" === t[e + 1].type) && (s += i(t[e + 1]), t.splice(
						e + 1, 1)), 0 < e && ("string" == typeof t[e - 1] || "plain-text" === t[e - 1].type) && (s = i(t[e - 1]) + s, t.splice(
						e - 1, 1), e--), t[e] = new o.Token("plain-text", s, null, s)
				}
				a.content && "string" != typeof a.content && r(a.content)
			}
		};
	o.hooks.add("after-tokenize", function(t) {
		"jsx" !== t.language && "tsx" !== t.language || r(t.tokens)
	})
}(Prism);
! function(a) {
	var e = a.util.clone(a.languages.typescript);
	a.languages.tsx = a.languages.extend("jsx", e);
	var t = a.languages.tsx.tag;
	t.pattern = RegExp("(^|[^\\w$]|(?=</))(?:" + t.pattern.source + ")", t.pattern.flags), t.lookbehind = !0
}(Prism);
Prism.languages.reason = Prism.languages.extend("clike", {
	string: {
		pattern: /"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,
		greedy: !0
	},
	"class-name": /\b[A-Z]\w*/,
	keyword: /\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,
	operator: /\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:mod|land|lor|lxor|lsl|lsr|asr)\b/
}), Prism.languages.insertBefore("reason", "class-name", {
	character: {
		pattern: /'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,
		alias: "string"
	},
	constructor: {
		pattern: /\b[A-Z]\w*\b(?!\s*\.)/,
		alias: "variable"
	},
	label: {
		pattern: /\b[a-z]\w*(?=::)/,
		alias: "symbol"
	}
}), delete Prism.languages.reason.function;
! function(a) {
	var e = {
			pattern: /\\[\\(){}[\]^$+*?|.]/,
			alias: "escape"
		},
		n = /\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|c[a-zA-Z]|0[0-7]{0,2}|[123][0-7]{2}|.)/,
		t = "(?:[^\\\\-]|" + n.source + ")",
		s = RegExp(t + "-" + t),
		i = {
			pattern: /(<|')[^<>']+(?=[>']$)/,
			lookbehind: !0,
			alias: "variable"
		};
	a.languages.regex = {
		charset: {
			pattern: /((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,
			lookbehind: !0,
			inside: {
				"charset-negation": {
					pattern: /(^\[)\^/,
					lookbehind: !0,
					alias: "operator"
				},
				"charset-punctuation": {
					pattern: /^\[|\]$/,
					alias: "punctuation"
				},
				range: {
					pattern: s,
					inside: {
						escape: n,
						"range-punctuation": {
							pattern: /-/,
							alias: "operator"
						}
					}
				},
				"special-escape": e,
				charclass: {
					pattern: /\\[wsd]|\\p{[^{}]+}/i,
					alias: "class-name"
				},
				escape: n
			}
		},
		"special-escape": e,
		charclass: {
			pattern: /\.|\\[wsd]|\\p{[^{}]+}/i,
			alias: "class-name"
		},
		backreference: [{
			pattern: /\\(?![123][0-7]{2})[1-9]/,
			alias: "keyword"
		}, {
			pattern: /\\k<[^<>']+>/,
			alias: "keyword",
			inside: {
				"group-name": i
			}
		}],
		anchor: {
			pattern: /[$^]|\\[ABbGZz]/,
			alias: "function"
		},
		escape: n,
		group: [{
			pattern: /\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,
			alias: "punctuation",
			inside: {
				"group-name": i
			}
		}, {
			pattern: /\)/,
			alias: "punctuation"
		}],
		quantifier: {
			pattern: /(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,
			alias: "number"
		},
		alternation: {
			pattern: /\|/,
			alias: "keyword"
		}
	}
}(Prism);
Prism.languages.renpy = {
	comment: {
		pattern: /(^|[^\\])#.+/,
		lookbehind: !0
	},
	string: {
		pattern: /("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2|(?:^#?(?:(?:[0-9a-fA-F]{2}){3}|(?:[0-9a-fA-F]){3})$)/m,
		greedy: !0
	},
	function: /[a-z_]\w*(?=\()/i,
	property: /\b(?:insensitive|idle|hover|selected_idle|selected_hover|background|position|alt|xpos|ypos|pos|xanchor|yanchor|anchor|xalign|yalign|align|xcenter|ycenter|xofsset|yoffset|ymaximum|maximum|xmaximum|xminimum|yminimum|minimum|xsize|ysizexysize|xfill|yfill|area|antialias|black_color|bold|caret|color|first_indent|font|size|italic|justify|kerning|language|layout|line_leading|line_overlap_split|line_spacing|min_width|newline_indent|outlines|rest_indent|ruby_style|slow_cps|slow_cps_multiplier|strikethrough|text_align|underline|hyperlink_functions|vertical|hinting|foreground|left_margin|xmargin|top_margin|bottom_margin|ymargin|left_padding|right_padding|xpadding|top_padding|bottom_padding|ypadding|size_group|child|hover_sound|activate_sound|mouse|focus_mask|keyboard_focus|bar_vertical|bar_invert|bar_resizing|left_gutter|right_gutter|top_gutter|bottom_gutter|left_bar|right_bar|top_bar|bottom_bar|thumb|thumb_shadow|thumb_offset|unscrollable|spacing|first_spacing|box_reverse|box_wrap|order_reverse|fit_first|ysize|thumbnail_width|thumbnail_height|help|text_ypos|text_xpos|idle_color|hover_color|selected_idle_color|selected_hover_color|insensitive_color|alpha|insensitive_background|hover_background|zorder|value|width|xadjustment|xanchoraround|xaround|xinitial|xoffset|xzoom|yadjustment|yanchoraround|yaround|yinitial|yzoom|zoom|ground|height|text_style|text_y_fudge|selected_insensitive|has_sound|has_music|has_voice|focus|hovered|image_style|length|minwidth|mousewheel|offset|prefix|radius|range|right_margin|rotate|rotate_pad|developer|screen_width|screen_height|window_title|name|version|windows_icon|default_fullscreen|default_text_cps|default_afm_time|main_menu_music|sample_sound|enter_sound|exit_sound|save_directory|enter_transition|exit_transition|intra_transition|main_game_transition|game_main_transition|end_splash_transition|end_game_transition|after_load_transition|window_show_transition|window_hide_transition|adv_nvl_transition|nvl_adv_transition|enter_yesno_transition|exit_yesno_transition|enter_replay_transition|exit_replay_transition|say_attribute_transition|directory_name|executable_name|include_update|window_icon|modal|google_play_key|google_play_salt|drag_name|drag_handle|draggable|dragged|droppable|dropped|narrator_menu|action|default_afm_enable|version_name|version_tuple|inside|fadeout|fadein|layers|layer_clipping|linear|scrollbars|side_xpos|side_ypos|side_spacing|edgescroll|drag_joined|drag_raise|drop_shadow|drop_shadow_color|subpixel|easein|easeout|time|crop|auto|update|get_installed_packages|can_update|UpdateVersion|Update|overlay_functions|translations|window_left_padding|show_side_image|show_two_window)\b/,
	tag: /\b(?:label|image|menu|[hv]box|frame|text|imagemap|imagebutton|bar|vbar|screen|textbutton|buttoscreenn|fixed|grid|input|key|mousearea|side|timer|viewport|window|hotspot|hotbar|self|button|drag|draggroup|tag|mm_menu_frame|nvl|block|parallel)\b|\$/,
	keyword: /\b(?:as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|yield|adjustment|alignaround|allow|angle|around|box_layout|cache|changed|child_size|clicked|clipping|corner1|corner2|default|delay|exclude|scope|slow|slow_abortable|slow_done|sound|style_group|substitute|suffix|transform_anchor|transpose|unhovered|config|theme|mm_root|gm_root|rounded_window|build|disabled_text|disabled|widget_selected|widget_text|widget_hover|widget|updater|behind|call|expression|hide|init|jump|onlayer|python|renpy|scene|set|show|transform|play|queue|stop|pause|define|window|repeat|contains|choice|on|function|event|animation|clockwise|counterclockwise|circles|knot|null|None|random|has|add|use|fade|dissolve|style|store|id|voice|center|left|right|less_rounded|music|movie|clear|persistent|ui)\b/,
	boolean: /\b(?:[Tt]rue|[Ff]alse)\b/,
	number: /(?:\b(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?)|\B\.\d+)(?:e[+-]?\d+)?j?/i,
	operator: /[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not|with|at)\b/,
	punctuation: /[{}[\];(),.:]/
}, Prism.languages.rpy = Prism.languages.renpy;
Prism.languages.rest = {
	table: [{
		pattern: /(\s*)(?:\+[=-]+)+\+(?:\r?\n|\r)(?:\1[+|].+[+|](?:\r?\n|\r))+\1(?:\+[=-]+)+\+/,
		lookbehind: !0,
		inside: {
			punctuation: /\||(?:\+[=-]+)+\+/
		}
	}, {
		pattern: /(\s*)=+ [ =]*=(?:(?:\r?\n|\r)\1.+)+(?:\r?\n|\r)\1=+ [ =]*=(?=(?:\r?\n|\r){2}|\s*$)/,
		lookbehind: !0,
		inside: {
			punctuation: /[=-]+/
		}
	}],
	"substitution-def": {
		pattern: /(^\s*\.\. )\|(?:[^|\s](?:[^|]*[^|\s])?)\| [^:]+::/m,
		lookbehind: !0,
		inside: {
			substitution: {
				pattern: /^\|(?:[^|\s]|[^|\s][^|]*[^|\s])\|/,
				alias: "attr-value",
				inside: {
					punctuation: /^\||\|$/
				}
			},
			directive: {
				pattern: /( +)(?! )[^:]+::/,
				lookbehind: !0,
				alias: "function",
				inside: {
					punctuation: /::$/
				}
			}
		}
	},
	"link-target": [{
		pattern: /(^\s*\.\. )\[[^\]]+\]/m,
		lookbehind: !0,
		alias: "string",
		inside: {
			punctuation: /^\[|\]$/
		}
	}, {
		pattern: /(^\s*\.\. )_(?:`[^`]+`|(?:[^:\\]|\\.)+):/m,
		lookbehind: !0,
		alias: "string",
		inside: {
			punctuation: /^_|:$/
		}
	}],
	directive: {
		pattern: /(^\s*\.\. )[^:]+::/m,
		lookbehind: !0,
		alias: "function",
		inside: {
			punctuation: /::$/
		}
	},
	comment: {
		pattern: /(^\s*\.\.)(?:(?: .+)?(?:(?:\r?\n|\r).+)+| .+)(?=(?:\r?\n|\r){2}|$)/m,
		lookbehind: !0
	},
	title: [{
		pattern: /^(([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+)(?:\r?\n|\r).+(?:\r?\n|\r)\1$/m,
		inside: {
			punctuation: /^[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+|[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,
			important: /.+/
		}
	}, {
		pattern: /(^|(?:\r?\n|\r){2}).+(?:\r?\n|\r)([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+(?=\r?\n|\r|$)/,
		lookbehind: !0,
		inside: {
			punctuation: /[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,
			important: /.+/
		}
	}],
	hr: {
		pattern: /((?:\r?\n|\r){2})([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2{3,}(?=(?:\r?\n|\r){2})/,
		lookbehind: !0,
		alias: "punctuation"
	},
	field: {
		pattern: /(^\s*):[^:\r\n]+:(?= )/m,
		lookbehind: !0,
		alias: "attr-name"
	},
	"command-line-option": {
		pattern: /(^\s*)(?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?(?:, (?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?)*(?=(?:\r?\n|\r)? {2,}\S)/im,
		lookbehind: !0,
		alias: "symbol"
	},
	"literal-block": {
		pattern: /::(?:\r?\n|\r){2}([ \t]+)(?![ \t]).+(?:(?:\r?\n|\r)\1.+)*/,
		inside: {
			"literal-block-punctuation": {
				pattern: /^::/,
				alias: "punctuation"
			}
		}
	},
	"quoted-literal-block": {
		pattern: /::(?:\r?\n|\r){2}([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]).*(?:(?:\r?\n|\r)\1.*)*/,
		inside: {
			"literal-block-punctuation": {
				pattern: /^(?:::|([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\1*)/m,
				alias: "punctuation"
			}
		}
	},
	"list-bullet": {
		pattern: /(^\s*)(?:[*+\-•‣⁃]|\(?(?:\d+|[a-z]|[ivxdclm]+)\)|(?:\d+|[a-z]|[ivxdclm]+)\.)(?= )/im,
		lookbehind: !0,
		alias: "punctuation"
	},
	"doctest-block": {
		pattern: /(^\s*)>>> .+(?:(?:\r?\n|\r).+)*/m,
		lookbehind: !0,
		inside: {
			punctuation: /^>>>/
		}
	},
	inline: [{
		pattern: /(^|[\s\-:\/'"<(\[{])(?::[^:]+:`.*?`|`.*?`:[^:]+:|(\*\*?|``?|\|)(?!\s).*?[^\s]\2(?=[\s\-.,:;!?\\\/'")\]}]|$))/m,
		lookbehind: !0,
		inside: {
			bold: {
				pattern: /(^\*\*).+(?=\*\*$)/,
				lookbehind: !0
			},
			italic: {
				pattern: /(^\*).+(?=\*$)/,
				lookbehind: !0
			},
			"inline-literal": {
				pattern: /(^``).+(?=``$)/,
				lookbehind: !0,
				alias: "symbol"
			},
			role: {
				pattern: /^:[^:]+:|:[^:]+:$/,
				alias: "function",
				inside: {
					punctuation: /^:|:$/
				}
			},
			"interpreted-text": {
				pattern: /(^`).+(?=`$)/,
				lookbehind: !0,
				alias: "attr-value"
			},
			substitution: {
				pattern: /(^\|).+(?=\|$)/,
				lookbehind: !0,
				alias: "attr-value"
			},
			punctuation: /\*\*?|``?|\|/
		}
	}],
	link: [{
		pattern: /\[[^\]]+\]_(?=[\s\-.,:;!?\\\/'")\]}]|$)/,
		alias: "string",
		inside: {
			punctuation: /^\[|\]_$/
		}
	}, {
		pattern: /(?:\b[a-z\d]+(?:[_.:+][a-z\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\s\-.,:;!?\\\/'")\]}]|$)/i,
		alias: "string",
		inside: {
			punctuation: /^_?`|`$|`?_?_$/
		}
	}],
	punctuation: {
		pattern: /(^\s*)(?:\|(?= |$)|(?:---?|—|\.\.|__)(?= )|\.\.$)/m,
		lookbehind: !0
	}
};
Prism.languages.rip = {
	comment: /#.*/,
	keyword: /(?:=>|->)|\b(?:class|if|else|switch|case|return|exit|try|catch|finally|raise)\b/,
	builtin: /@|\bSystem\b/,
	boolean: /\b(?:true|false)\b/,
	date: /\b\d{4}-\d{2}-\d{2}\b/,
	time: /\b\d{2}:\d{2}:\d{2}\b/,
	datetime: /\b\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\b/,
	character: /\B`[^\s`'",.:;#\/\\()<>\[\]{}]\b/,
	regex: {
		pattern: /(^|[^/])\/(?!\/)(?:\[[^\n\r\]]*\]|\\.|[^/\\\r\n\[])+\/(?=\s*(?:$|[\r\n,.;})]))/,
		lookbehind: !0,
		greedy: !0
	},
	symbol: /:[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/,
	string: {
		pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,
		greedy: !0
	},
	number: /[+-]?\b(?:\d+\.\d+|\d+)\b/,
	punctuation: /(?:\.{2,3})|[`,.:;=\/\\()<>\[\]{}]/,
	reference: /[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/
};
Prism.languages.roboconf = {
	comment: /#.*/,
	keyword: {
		pattern: /(^|\s)(?:(?:facet|instance of)(?=[ \t]+[\w-]+[ \t]*\{)|(?:external|import)\b)/,
		lookbehind: !0
	},
	component: {
		pattern: /[\w-]+(?=[ \t]*\{)/,
		alias: "variable"
	},
	property: /[\w.-]+(?=[ \t]*:)/,
	value: {
		pattern: /(=[ \t]*(?![ \t]))[^,;]+/,
		lookbehind: !0,
		alias: "attr-value"
	},
	optional: {
		pattern: /\(optional\)/,
		alias: "builtin"
	},
	wildcard: {
		pattern: /(\.)\*/,
		lookbehind: !0,
		alias: "operator"
	},
	punctuation: /[{},.;:=]/
};
! function(t) {
	var r = {
			pattern: /(^[ \t]*| {2}|\t)#.*/m,
			lookbehind: !0,
			greedy: !0
		},
		o = {
			pattern: /((?:^|[^\\])(?:\\{2})*)[$@&%]\{(?:[^{}\r\n]|\{[^{}\r\n]*\})*\}/,
			lookbehind: !0,
			inside: {
				punctuation: /^[$@&%]\{|\}$/
			}
		};

	function n(t, n) {
		var e = {
			"section-header": {
				pattern: /^ ?\*{3}.+?\*{3}/,
				alias: "keyword"
			}
		};
		for (var a in n) e[a] = n[a];
		return e.tag = {
			pattern: /([\r\n](?:  |\t)[ \t]*)\[[-\w]+\]/,
			lookbehind: !0,
			inside: {
				punctuation: /\[|\]/
			}
		}, e.variable = o, e.comment = r, {
			pattern: RegExp("^ ?\\*{3}[ \t]*<name>[ \t]*\\*{3}(?:.|[\r\n](?!\\*{3}))*".replace(/<name>/g, function() {
				return t
			}), "im"),
			alias: "section",
			inside: e
		}
	}
	var e = {
			pattern: /(\[Documentation\](?:  |\t)[ \t]*)(?![ \t]|#)(?:.|(?:\r\n?|\n)[ \t]*\.{3})+/,
			lookbehind: !0,
			alias: "string"
		},
		a = {
			pattern: /([\r\n] ?)(?!#)(?:\S(?:[ \t]\S)*)+/,
			lookbehind: !0,
			alias: "function",
			inside: {
				variable: o
			}
		},
		i = {
			pattern: /([\r\n](?:  |\t)[ \t]*)(?!\[|\.{3}|#)(?:\S(?:[ \t]\S)*)+/,
			lookbehind: !0,
			inside: {
				variable: o
			}
		};
	t.languages.robotframework = {
		settings: n("Settings", {
			documentation: {
				pattern: /([\r\n] ?Documentation(?:  |\t)[ \t]*)(?![ \t]|#)(?:.|(?:\r\n?|\n)[ \t]*\.{3})+/,
				lookbehind: !0,
				alias: "string"
			},
			property: {
				pattern: /([\r\n] ?)(?!\.{3}|#)(?:\S(?:[ \t]\S)*)+/,
				lookbehind: !0
			}
		}),
		variables: n("Variables"),
		"test-cases": n("Test Cases", {
			"test-name": a,
			documentation: e,
			property: i
		}),
		keywords: n("Keywords", {
			"keyword-name": a,
			documentation: e,
			property: i
		}),
		tasks: n("Tasks", {
			"task-name": a,
			documentation: e,
			property: i
		}),
		comment: r
	}, t.languages.robot = t.languages.robotframework
}(Prism);
! function(e) {
	for (var a = "/\\*(?:[^*/]|\\*(?!/)|/(?!\\*)|<self>)*\\*/", t = 0; t < 2; t++) a = a.replace(/<self>/g, function() {
		return a
	});
	a = a.replace(/<self>/g, function() {
			return "[^\\s\\S]"
		}), e.languages.rust = {
			comment: [{
				pattern: RegExp("(^|[^\\\\])" + a),
				lookbehind: !0,
				greedy: !0
			}, {
				pattern: /(^|[^\\:])\/\/.*/,
				lookbehind: !0,
				greedy: !0
			}],
			string: {
				pattern: /b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,
				greedy: !0
			},
			char: {
				pattern: /b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,
				greedy: !0,
				alias: "string"
			},
			attribute: {
				pattern: /#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,
				greedy: !0,
				alias: "attr-name",
				inside: {
					string: null
				}
			},
			"closure-params": {
				pattern: /([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,
				lookbehind: !0,
				greedy: !0,
				inside: {
					"closure-punctuation": {
						pattern: /^\||\|$/,
						alias: "punctuation"
					},
					rest: null
				}
			},
			"lifetime-annotation": {
				pattern: /'\w+/,
				alias: "symbol"
			},
			"fragment-specifier": {
				pattern: /(\$\w+:)[a-z]+/,
				lookbehind: !0,
				alias: "punctuation"
			},
			variable: /\$\w+/,
			"function-definition": {
				pattern: /(\bfn\s+)\w+/,
				lookbehind: !0,
				alias: "function"
			},
			"type-definition": {
				pattern: /(\b(?:enum|struct|union)\s+)\w+/,
				lookbehind: !0,
				alias: "class-name"
			},
			"module-declaration": [{
				pattern: /(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,
				lookbehind: !0,
				alias: "namespace"
			}, {
				pattern: /(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,
				lookbehind: !0,
				alias: "namespace",
				inside: {
					punctuation: /::/
				}
			}],
			keyword: [
				/\b(?:abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|Self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,
				/\b(?:[ui](?:8|16|32|64|128|size)|f(?:32|64)|bool|char|str)\b/
			],
			function: /\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,
			macro: {
				pattern: /\w+!/,
				alias: "property"
			},
			constant: /\b[A-Z_][A-Z_\d]+\b/,
			"class-name": /\b[A-Z]\w*\b/,
			namespace: {
				pattern: /(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,
				inside: {
					punctuation: /::/
				}
			},
			number: /\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:[iu](?:8|16|32|64|size)?|f32|f64))?\b/,
			boolean: /\b(?:false|true)\b/,
			punctuation: /->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,
			operator: /[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/
		}, e.languages.rust["closure-params"].inside.rest = e.languages.rust, e.languages.rust.attribute.inside.string = e.languages
		.rust.string
}(Prism);
! function(e) {
	var t = "(?:\"(?:\"\"|[^\"])*\"(?!\")|'(?:''|[^'])*'(?!'))",
		a = /\b(?:\d[\da-f]*x|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,
		n = {
			pattern: RegExp(t + "[bx]"),
			alias: "number"
		},
		i = {
			pattern: /&[a-z_][a-z_0-9]*/i
		},
		r = {
			pattern: /((?:^|\s|=|\())%(?:ABORT|BY|CMS|COPY|DISPLAY|DO|ELSE|END|EVAL|GLOBAL|GO|GOTO|IF|INC|INCLUDE|INDEX|INPUT|KTRIM|LENGTH|LET|LIST|LOCAL|PUT|QKTRIM|QSCAN|QSUBSTR|QSYSFUNC|QUPCASE|RETURN|RUN|SCAN|SUBSTR|SUPERQ|SYMDEL|SYMGLOBL|SYMLOCAL|SYMEXIST|SYSCALL|SYSEVALF|SYSEXEC|SYSFUNC|SYSGET|SYSRPUT|THEN|TO|TSO|UNQUOTE|UNTIL|UPCASE|WHILE|WINDOW)\b/i,
			lookbehind: !0,
			alias: "keyword"
		},
		s = {
			pattern: /(^|\s+)(?:proc\s+\w+|quit|run|data(?!\=))\b/i,
			alias: "keyword",
			lookbehind: !0
		},
		o = [/\/\*[\s\S]*?\*\//, {
			pattern: /(^\s*|;\s*)\*[^;]*;/m,
			lookbehind: !0
		}],
		l = {
			pattern: RegExp(t),
			greedy: !0
		},
		c = /[$%@.(){}\[\];,\\]/,
		d = {
			pattern: /%?\w+(?=\()/,
			alias: "keyword"
		},
		p = {
			function: d,
			"arg-value": {
				pattern: /(\s*=\s*)[A-Z\.]+/i,
				lookbehind: !0
			},
			operator: /=/,
			"macro-variable": i,
			arg: {
				pattern: /[A-Z]+/i,
				alias: "keyword"
			},
			number: a,
			"numeric-constant": n,
			punctuation: c,
			string: l
		},
		u = {
			pattern: /\b(?:format|put)\b=?[\w'$.]+/im,
			inside: {
				keyword: /^(?:format|put)(?=\=)/i,
				equals: /=/,
				format: {
					pattern: /(?:\w|\$\d)+\.\d?/i,
					alias: "number"
				}
			}
		},
		m = {
			pattern: /\b(?:format|put)\s+[\w']+(?:\s+[$.\w]+)+(?=;)/i,
			inside: {
				keyword: /^(?:format|put)/i,
				format: {
					pattern: /[\w$]+\.\d?/,
					alias: "number"
				}
			}
		},
		b = {
			pattern: /((?:^|[\s])=?)(?:catname|checkpoint execute_always|dm|endsas|filename|footnote|%include|libname|%list|lock|missing|options|page|resetline|%run|sasfile|skip|sysecho|title\d?)\b/i,
			lookbehind: !0,
			alias: "keyword"
		},
		g = {
			pattern: /(^|\s)(?:submit(?:\s+(?:load|parseonly|norun))?|endsubmit)\b/i,
			lookbehind: !0,
			alias: "keyword"
		},
		k =
		"accessControl|cdm|aggregation|aStore|ruleMining|audio|autotune|bayesianNetClassifier|bioMedImage|boolRule|builtins|cardinality|sccasl|clustering|copula|countreg|dataDiscovery|dataPreprocess|dataSciencePilot|dataStep|decisionTree|deepLearn|deepNeural|varReduce|simSystem|ds2|deduplication|ecm|entityRes|espCluster|explainModel|factmac|fastKnn|fcmpact|fedSql|freqTab|gam|gleam|graphSemiSupLearn|gVarCluster|hiddenMarkovModel|hyperGroup|image|iml|ica|kernalPca|langModel|ldaTopic|sparseML|mlTools|mixed|modelPublishing|mbc|network|optNetwork|neuralNet|nonlinear|nmf|nonParametricBayes|optimization|panel|pls|percentile|pca|phreg|qkb|qlim|quantreg|recommend|tsReconcile|deepRnn|regression|reinforcementLearn|robustPca|sampling|sparkEmbeddedProcess|search(?:Analytics)?|sentimentAnalysis|sequence|configuration|session(?:Prop)?|severity|simple|smartData|sandwich|spatialreg|stabilityMonitoring|spc|loadStreams|svDataDescription|svm|table|conditionalRandomFields|text(?:Rule(?:Develop|Score)|Mining|Parse|Topic|Util|Filters|Frequency)|tsInfo|timeData|transpose|uniTimeSeries",
		y = {
			pattern: RegExp("(^|\\s)(?:action\\s+)?(?:<act>)\\.[a-z]+\\b[^;]+".replace(/<act>/g, function() {
				return k
			}), "i"),
			lookbehind: !0,
			inside: {
				keyword: RegExp("(?:<act>)\\.[a-z]+\\b".replace(/<act>/g, function() {
					return k
				}), "i"),
				action: {
					pattern: /(?:action)/i,
					alias: "keyword"
				},
				comment: o,
				function: d,
				"arg-value": p["arg-value"],
				operator: p.operator,
				argument: p.arg,
				number: a,
				"numeric-constant": n,
				punctuation: c,
				string: l
			}
		},
		S = {
			pattern: /((?:^|\s)=?)(?:after|analysis|and|array|barchart|barwidth|begingraph|by|call|cas|cbarline|cfill|class(?:lev)?|close|column|computed?|contains|continue|data(?=\=)|define|delete|describe|document|do\s+over|do|dol|drop|dul|end(?:source|comp)?|entryTitle|else|eval(?:uate)?|exec(?:ute)?|exit|fill(?:attrs)?|file(?:name)?|flist|fnc|function(?:list)?|goto|global|group(?:by)?|headline|headskip|histogram|if|infile|keep|keylabel|keyword|label|layout|leave|legendlabel|length|libname|loadactionset|merge|midpoints|name|noobs|nowd|_?null_|ods|options|or|otherwise|out(?:put)?|over(?:lay)?|plot|put|print|raise|ranexp|rannor|rbreak|retain|return|select|set|session|sessref|source|statgraph|sum|summarize|table|temp|terminate|then\s+do|then|title\d?|to|var|when|where|xaxisopts|yaxisopts|y2axisopts)\b/i,
			lookbehind: !0
		};
	e.languages.sas = {
		datalines: {
			pattern: /^(\s*)(?:(?:data)?lines|cards);[\s\S]+?^[ \t]*;/im,
			lookbehind: !0,
			alias: "string",
			inside: {
				keyword: {
					pattern: /^(?:(?:data)?lines|cards)/i
				},
				punctuation: /;/
			}
		},
		"proc-sql": {
			pattern: /(^proc\s+(?:fed)?sql(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|quit|run|data);|(?![\s\S]))/im,
			lookbehind: !0,
			inside: {
				sql: {
					pattern: RegExp(
						"^[ \t]*(?:select|alter\\s+table|(?:create|describe|drop)\\s+(?:index|table(?:\\s+constraints)?|view)|create\\s+unique\\s+index|insert\\s+into|update)(?:<str>|[^;\"'])+;"
						.replace(/<str>/g, function() {
							return t
						}), "im"),
					alias: "language-sql",
					inside: e.languages.sql
				},
				"global-statements": b,
				"sql-statements": {
					pattern: /(^|\s)(?:disconnect\s+from|exec(?:ute)?|begin|commit|rollback|reset|validate)\b/i,
					lookbehind: !0,
					alias: "keyword"
				},
				number: a,
				"numeric-constant": n,
				punctuation: c,
				string: l
			}
		},
		"proc-groovy": {
			pattern: /(^proc\s+groovy(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|quit|run|data);|(?![\s\S]))/im,
			lookbehind: !0,
			inside: {
				comment: o,
				groovy: {
					pattern: RegExp("(^[ \t]*submit(?:\\s+(?:load|parseonly|norun))?)(?:<str>|[^\"'])+?(?=endsubmit;)".replace(
						/<str>/g,
						function() {
							return t
						}), "im"),
					lookbehind: !0,
					alias: "language-groovy",
					inside: e.languages.groovy
				},
				keyword: S,
				"submit-statement": g,
				"global-statements": b,
				number: a,
				"numeric-constant": n,
				punctuation: c,
				string: l
			}
		},
		"proc-lua": {
			pattern: /(^proc\s+lua(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|quit|run|data);|(?![\s\S]))/im,
			lookbehind: !0,
			inside: {
				comment: o,
				lua: {
					pattern: RegExp("(^[ \t]*submit(?:\\s+(?:load|parseonly|norun))?)(?:<str>|[^\"'])+?(?=endsubmit;)".replace(
						/<str>/g,
						function() {
							return t
						}), "im"),
					lookbehind: !0,
					alias: "language-lua",
					inside: e.languages.lua
				},
				keyword: S,
				"submit-statement": g,
				"global-statements": b,
				number: a,
				"numeric-constant": n,
				punctuation: c,
				string: l
			}
		},
		"proc-cas": {
			pattern: /(^proc\s+cas(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|quit|data);|(?![\s\S]))/im,
			lookbehind: !0,
			inside: {
				comment: o,
				"statement-var": {
					pattern: /((?:^|\s)=?)saveresult\s[^;]+/im,
					lookbehind: !0,
					inside: {
						statement: {
							pattern: /^saveresult\s+\S+/i,
							inside: {
								keyword: /^(?:saveresult)/i
							}
						},
						rest: p
					}
				},
				"cas-actions": y,
				statement: {
					pattern: /((?:^|\s)=?)(?:default|(?:un)?set|on|output|upload)[^;]+/im,
					lookbehind: !0,
					inside: p
				},
				step: s,
				keyword: S,
				function: d,
				format: u,
				altformat: m,
				"global-statements": b,
				number: a,
				"numeric-constant": n,
				punctuation: c,
				string: l
			}
		},
		"proc-args": {
			pattern: RegExp("(^proc\\s+\\w+\\s+)(?!\\s)(?:[^;\"']|<str>)+;".replace(/<str>/g, function() {
				return t
			}), "im"),
			lookbehind: !0,
			inside: p
		},
		"macro-keyword": r,
		"macro-variable": i,
		"macro-string-functions": {
			pattern: /((?:^|\s|=))%(?:NRBQUOTE|NRQUOTE|NRSTR|BQUOTE|QUOTE|STR)\(.*?(?:[^%]\))/i,
			lookbehind: !0,
			inside: {
				function: {
					pattern: /%(?:NRBQUOTE|NRQUOTE|NRSTR|BQUOTE|QUOTE|STR)/i,
					alias: "keyword"
				},
				"macro-keyword": r,
				"macro-variable": i,
				"escaped-char": {
					pattern: /%['"()<>=¬^~;,#]/i
				},
				punctuation: c
			}
		},
		"macro-declaration": {
			pattern: /^%macro[^;]+(?=;)/im,
			inside: {
				keyword: /%macro/i
			}
		},
		"macro-end": {
			pattern: /^%mend[^;]+(?=;)/im,
			inside: {
				keyword: /%mend/i
			}
		},
		macro: {
			pattern: /%_\w+(?=\()/,
			alias: "keyword"
		},
		input: {
			pattern: /\binput\s[-\w\s/*.$&]+;/i,
			inside: {
				input: {
					alias: "keyword",
					pattern: /^input/i
				},
				comment: o,
				number: a,
				"numeric-constant": n
			}
		},
		"options-args": {
			pattern: /(^options)[-'"|/\\<>*+=:()\w\s]*(?=;)/im,
			lookbehind: !0,
			inside: p
		},
		"cas-actions": y,
		comment: o,
		function: d,
		format: u,
		altformat: m,
		"numeric-constant": n,
		datetime: {
			pattern: RegExp(t + "(?:dt?|t)"),
			alias: "number"
		},
		string: l,
		step: s,
		keyword: S,
		"operator-keyword": {
			pattern: /\b(?:eq|ne|gt|lt|ge|le|in|not)\b/i,
			alias: "operator"
		},
		number: a,
		operator: /\*\*?|\|\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\/=&]|[~¬^]=?/i,
		punctuation: c
	}
}(Prism);
! function(e) {
	e.languages.sass = e.languages.extend("css", {
		comment: {
			pattern: /^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,
			lookbehind: !0
		}
	}), e.languages.insertBefore("sass", "atrule", {
		"atrule-line": {
			pattern: /^(?:[ \t]*)[@+=].+/m,
			inside: {
				atrule: /(?:@[\w-]+|[+=])/m
			}
		}
	}), delete e.languages.sass.atrule;
	var t = /\$[-\w]+|#\{\$[-\w]+\}/,
		a = [/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|or|not)\b/, {
			pattern: /(\s+)-(?=\s)/,
			lookbehind: !0
		}];
	e.languages.insertBefore("sass", "property", {
		"variable-line": {
			pattern: /^[ \t]*\$.+/m,
			inside: {
				punctuation: /:/,
				variable: t,
				operator: a
			}
		},
		"property-line": {
			pattern: /^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,
			inside: {
				property: [/[^:\s]+(?=\s*:)/, {
					pattern: /(:)[^:\s]+/,
					lookbehind: !0
				}],
				punctuation: /:/,
				variable: t,
				operator: a,
				important: e.languages.sass.important
			}
		}
	}), delete e.languages.sass.property, delete e.languages.sass.important, e.languages.insertBefore("sass",
		"punctuation", {
			selector: {
				pattern: /([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/,
				lookbehind: !0
			}
		})
}(Prism);
Prism.languages.scss = Prism.languages.extend("css", {
	comment: {
		pattern: /(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,
		lookbehind: !0
	},
	atrule: {
		pattern: /@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,
		inside: {
			rule: /@[\w-]+/
		}
	},
	url: /(?:[-a-z]+-)?url(?=\()/i,
	selector: {
		pattern: /(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]+))/m,
		inside: {
			parent: {
				pattern: /&/,
				alias: "important"
			},
			placeholder: /%[-\w]+/,
			variable: /\$[-\w]+|#\{\$[-\w]+\}/
		}
	},
	property: {
		pattern: /(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,
		inside: {
			variable: /\$[-\w]+|#\{\$[-\w]+\}/
		}
	}
}), Prism.languages.insertBefore("scss", "atrule", {
	keyword: [
		/@(?:if|else(?: if)?|forward|for|each|while|import|use|extend|debug|warn|mixin|include|function|return|content)\b/i,
		{
			pattern: /( +)(?:from|through)(?= )/,
			lookbehind: !0
		}
	]
}), Prism.languages.insertBefore("scss", "important", {
	variable: /\$[-\w]+|#\{\$[-\w]+\}/
}), Prism.languages.insertBefore("scss", "function", {
	"module-modifier": {
		pattern: /\b(?:as|with|show|hide)\b/i,
		alias: "keyword"
	},
	placeholder: {
		pattern: /%[-\w]+/,
		alias: "selector"
	},
	statement: {
		pattern: /\B!(?:default|optional)\b/i,
		alias: "keyword"
	},
	boolean: /\b(?:true|false)\b/,
	null: {
		pattern: /\bnull\b/,
		alias: "keyword"
	},
	operator: {
		pattern: /(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|or|not)(?=\s)/,
		lookbehind: !0
	}
}), Prism.languages.scss.atrule.inside.rest = Prism.languages.scss;
Prism.languages.scala = Prism.languages.extend("java", {
	"triple-quoted-string": {
		pattern: /"""[\s\S]*?"""/,
		greedy: !0,
		alias: "string"
	},
	string: {
		pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,
		greedy: !0
	},
	keyword: /<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,
	number: /\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,
	builtin: /\b(?:String|Int|Long|Short|Byte|Boolean|Double|Float|Char|Any|AnyRef|AnyVal|Unit|Nothing)\b/,
	symbol: /'[^\d\s\\]\w*/
}), delete Prism.languages.scala["class-name"], delete Prism.languages.scala.function;
! function(s) {
	var n = ["([\"'])(?:\\\\[^]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|(?!\\1)[^\\\\`$])*\\1",
		"<<-?\\s*([\"']?)(\\w+)\\2\\s[^]*?[\r\n]\\3"
	].join("|");
	s.languages["shell-session"] = {
		command: {
			pattern: RegExp(
				'^(?:[^\\s@:$#*!/\\\\]+@[^\\s@:$#*!/\\\\]+(?::[^\0-\\x1F$#*?"<>:;|]+)?|[^\0-\\x1F$#*?"<>:;|]+)?[$#](?:[^\\\\\r\n\'"<]|\\\\.|<<str>>)+'
				.replace(/<<str>>/g, function() {
					return n
				}), "m"),
			greedy: !0,
			inside: {
				info: {
					pattern: /^[^#$]+/,
					alias: "punctuation",
					inside: {
						user: /^[^\s@:$#*!/\\]+@[^\s@:$#*!/\\]+/,
						punctuation: /:/,
						path: /[\s\S]+/
					}
				},
				bash: {
					pattern: /(^[$#]\s*)\S[\s\S]*/,
					lookbehind: !0,
					alias: "language-bash",
					inside: s.languages.bash
				},
				"shell-symbol": {
					pattern: /^[$#]/,
					alias: "important"
				}
			}
		},
		output: /.(?:.*(?:[\r\n]|.$))*/
	}, s.languages["sh-session"] = s.languages.shellsession = s.languages["shell-session"]
}(Prism);
Prism.languages.smali = {
	comment: /#.*/,
	string: {
		pattern: /"(?:[^\r\n\\"]|\\.)*"|'(?:[^\r\n\\']|\\(?:.|u[\da-fA-F]{4}))'/,
		greedy: !0
	},
	"class-name": {
		pattern: /L(?:(?:\w+|`[^`\r\n]*`)\/)*(?:[\w$]+|`[^`\r\n]*`)(?=\s*;)/,
		inside: {
			"class-name": {
				pattern: /(^L|\/)(?:[\w$]+|`[^`\r\n]*`)$/,
				lookbehind: !0
			},
			namespace: {
				pattern: /^(L)(?:(?:\w+|`[^`\r\n]*`)\/)+/,
				lookbehind: !0,
				inside: {
					punctuation: /\//
				}
			},
			builtin: /^L/
		}
	},
	builtin: [{
		pattern: /([();\[])[BCDFIJSVZ]+/,
		lookbehind: !0
	}, {
		pattern: /([\w$>]:)[BCDFIJSVZ]/,
		lookbehind: !0
	}],
	keyword: [{
		pattern: /(\.end\s+)[\w-]+/,
		lookbehind: !0
	}, {
		pattern: /(^|[^\w.-])\.(?!\d)[\w-]+/,
		lookbehind: !0
	}, {
		pattern: /(^|[^\w.-])(?:abstract|annotation|bridge|constructor|enum|final|interface|private|protected|public|runtime|static|synthetic|system|transient)(?![\w.-])/,
		lookbehind: !0
	}],
	function: {
		pattern: /(^|[^\w.-])(?:\w+|<[\w$-]+>)(?=\()/,
		lookbehind: !0
	},
	field: {
		pattern: /[\w$]+(?=:)/,
		alias: "variable"
	},
	register: {
		pattern: /(^|[^\w.-])[vp]\d(?![\w.-])/,
		lookbehind: !0,
		alias: "variable"
	},
	boolean: {
		pattern: /(^|[^\w.-])(?:true|false)(?![\w.-])/,
		lookbehind: !0
	},
	number: {
		pattern: /(^|[^/\w.-])-?(?:NAN|INFINITY|0x(?:[\dA-F]+(?:\.[\dA-F]*)?|\.[\dA-F]+)(?:p[+-]?[\dA-F]+)?|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?)[dflst]?(?![\w.-])/i,
		lookbehind: !0
	},
	label: {
		pattern: /(:)\w+/,
		lookbehind: !0,
		alias: "property"
	},
	operator: /->|\.\.|[\[=]/,
	punctuation: /[{}(),;:]/
};
Prism.languages.smalltalk = {
	comment: /"(?:""|[^"])*"/,
	character: {
		pattern: /\$./,
		alias: "string"
	},
	string: /'(?:''|[^'])*'/,
	symbol: /#[\da-z]+|#(?:-|([+\/\\*~<>=@%|&?!])\1?)|#(?=\()/i,
	"block-arguments": {
		pattern: /(\[\s*):[^\[|]*\|/,
		lookbehind: !0,
		inside: {
			variable: /:[\da-z]+/i,
			punctuation: /\|/
		}
	},
	"temporary-variables": {
		pattern: /\|[^|]+\|/,
		inside: {
			variable: /[\da-z]+/i,
			punctuation: /\|/
		}
	},
	keyword: /\b(?:nil|true|false|self|super|new)\b/,
	number: [/\d+r-?[\dA-Z]+(?:\.[\dA-Z]+)?(?:e-?\d+)?/, /\b\d+(?:\.\d+)?(?:e-?\d+)?/],
	operator: /[<=]=?|:=|~[~=]|\/\/?|\\\\|>[>=]?|[!^+\-*&|,@]/,
	punctuation: /[.;:?\[\](){}]/
};
! function(n) {
	n.languages.smarty = {
		comment: /\{\*[\s\S]*?\*\}/,
		delimiter: {
			pattern: /^\{|\}$/i,
			alias: "punctuation"
		},
		string: /(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,
		number: /\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,
		variable: [/\$(?!\d)\w+/, /#(?!\d)\w+#/, {
			pattern: /(\.|->)(?!\d)\w+/,
			lookbehind: !0
		}, {
			pattern: /(\[)(?!\d)\w+(?=\])/,
			lookbehind: !0
		}],
		function: [{
			pattern: /(\|\s*)@?(?!\d)\w+/,
			lookbehind: !0
		}, /^\/?(?!\d)\w+/, /(?!\d)\w+(?=\()/],
		"attr-name": {
			pattern: /\w+\s*=\s*(?:(?!\d)\w+)?/,
			inside: {
				variable: {
					pattern: /(=\s*)(?!\d)\w+/,
					lookbehind: !0
				},
				operator: /=/
			}
		},
		punctuation: [/[\[\]().,:`]|->/],
		operator: [/[+\-*\/%]|==?=?|[!<>]=?|&&|\|\|?/, /\bis\s+(?:not\s+)?(?:div|even|odd)(?:\s+by)?\b/,
			/\b(?:eq|neq?|gt|lt|gt?e|lt?e|not|mod|or|and)\b/
		],
		keyword: /\b(?:false|off|on|no|true|yes)\b/
	}, n.hooks.add("before-tokenize", function(e) {
		var t = !1;
		n.languages["markup-templating"].buildPlaceholders(e, "smarty", /\{\*[\s\S]*?\*\}|\{[\s\S]+?\}/g, function(e) {
			return "{/literal}" === e && (t = !1), !t && ("{literal}" === e && (t = !0), !0)
		})
	}), n.hooks.add("after-tokenize", function(e) {
		n.languages["markup-templating"].tokenizePlaceholders(e, "smarty")
	})
}(Prism);
! function(e) {
	var n =
		/\b(?:abstype|and|andalso|as|case|datatype|do|else|end|eqtype|exception|fn|fun|functor|handle|if|in|include|infix|infixr|let|local|nonfix|of|op|open|orelse|raise|rec|sharing|sig|signature|struct|structure|then|type|val|where|while|with|withtype)\b/i;
	e.languages.sml = {
		comment: /\(\*(?:[^*(]|\*(?!\))|\((?!\*)|\(\*(?:[^*(]|\*(?!\))|\((?!\*))*\*\))*\*\)/,
		string: {
			pattern: /#?"(?:[^"\\]|\\.)*"/,
			greedy: !0
		},
		"class-name": [{
			pattern: RegExp(
				"((?:^|[^:]):\\s*)<TERMINAL>(?:\\s*(?:(?:\\*|->)\\s*<TERMINAL>|,\\s*<TERMINAL>(?:(?=<NOT-LAST>)|(?!<NOT-LAST>)\\s+<LONG-ID>)))*"
				.replace(/<NOT-LAST>/g, function() {
					return "\\s*(?:[*,]|->)"
				}).replace(/<TERMINAL>/g, function() {
					return "(?:'[\\w']*|<LONG-ID>|\\((?:[^()]|\\([^()]*\\))*\\)|\\{(?:[^{}]|\\{[^{}]*\\})*\\})(?:\\s+<LONG-ID>)*"
				}).replace(/<LONG-ID>/g, function() {
					return "(?!<KEYWORD>)[a-z\\d_][\\w'.]*"
				}).replace(/<KEYWORD>/g, function() {
					return n.source
				}), "i"),
			lookbehind: !0,
			greedy: !0,
			inside: null
		}, {
			pattern: /((?:^|[^\w'])(?:datatype|exception|functor|signature|structure|type)\s+)[a-z_][\w'.]*/i,
			lookbehind: !0
		}],
		function: {
			pattern: /((?:^|[^\w'])fun\s+)[a-z_][\w'.]*/i,
			lookbehind: !0
		},
		keyword: n,
		variable: {
			pattern: /(^|[^\w'])'[\w']*/,
			lookbehind: !0
		},
		number: /~?\b(?:\d+(?:\.\d+)?(?:e~?\d+)?|0x[\da-f]+)\b/i,
		word: {
			pattern: /\b0w(?:\d+|x[\da-f]+)\b/i,
			alias: "constant"
		},
		boolean: /\b(?:false|true)\b/i,
		operator: /\.\.\.|:[>=:]|=>?|->|[<>]=?|[!+\-*/^#|@~]/,
		punctuation: /[(){}\[\].:,;]/
	}, e.languages.sml["class-name"][0].inside = e.languages.sml, e.languages.smlnj = e.languages.sml
}(Prism);
Prism.languages.solidity = Prism.languages.extend("clike", {
	"class-name": {
		pattern: /(\b(?:contract|enum|interface|library|new|struct|using)\s+)(?!\d)[\w$]+/,
		lookbehind: !0
	},
	keyword: /\b(?:_|anonymous|as|assembly|assert|break|calldata|case|constant|constructor|continue|contract|default|delete|do|else|emit|enum|event|external|for|from|function|if|import|indexed|inherited|interface|internal|is|let|library|mapping|memory|modifier|new|payable|pragma|private|public|pure|require|returns?|revert|selfdestruct|solidity|storage|struct|suicide|switch|this|throw|using|var|view|while)\b/,
	operator: /=>|->|:=|=:|\*\*|\+\+|--|\|\||&&|<<=?|>>=?|[-+*/%^&|<>!=]=?|[~?]/
}), Prism.languages.insertBefore("solidity", "keyword", {
	builtin: /\b(?:address|bool|string|u?int(?:8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?|byte|bytes(?:[1-9]|[12]\d|3[0-2])?)\b/
}), Prism.languages.insertBefore("solidity", "number", {
	version: {
		pattern: /([<>]=?|\^)\d+\.\d+\.\d+\b/,
		lookbehind: !0,
		alias: "number"
	}
}), Prism.languages.sol = Prism.languages.solidity;
! function(n) {
	var t = {
		pattern: /\{[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}\}/i,
		alias: "constant",
		inside: {
			punctuation: /[{}]/
		}
	};
	n.languages["solution-file"] = {
		comment: {
			pattern: /#.*/,
			greedy: !0
		},
		string: {
			pattern: /"[^"\r\n]*"|'[^'\r\n]*'/,
			greedy: !0,
			inside: {
				guid: t
			}
		},
		object: {
			pattern: /^([ \t]*)(?:([A-Z]\w*)\b(?=.*(?:\r\n?|\n)(?:\1[ \t].*(?:\r\n?|\n))*\1End\2(?=[ \t]*$))|End[A-Z]\w*(?=[ \t]*$))/m,
			lookbehind: !0,
			greedy: !0,
			alias: "keyword"
		},
		property: {
			pattern: /^([ \t]*)(?!\s)[^\r\n"#=()]*[^\s"#=()](?=\s*=)/m,
			lookbehind: !0,
			inside: {
				guid: t
			}
		},
		guid: t,
		number: /\b\d+(?:\.\d+)*\b/,
		boolean: /\b(?:FALSE|TRUE)\b/,
		operator: /=/,
		punctuation: /[(),]/
	}, n.languages.sln = n.languages["solution-file"]
}(Prism);
! function(t) {
	var e = /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
		a = /\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b|\b0x[\dA-F]+\b/;
	t.languages.soy = {
		comment: [/\/\*[\s\S]*?\*\//, {
			pattern: /(\s)\/\/.*/,
			lookbehind: !0,
			greedy: !0
		}],
		"command-arg": {
			pattern: /({+\/?\s*(?:alias|call|delcall|delpackage|deltemplate|namespace|template)\s+)\.?[\w.]+/,
			lookbehind: !0,
			alias: "string",
			inside: {
				punctuation: /\./
			}
		},
		parameter: {
			pattern: /({+\/?\s*@?param\??\s+)\.?[\w.]+/,
			lookbehind: !0,
			alias: "variable"
		},
		keyword: [{
			pattern: /({+\/?[^\S\r\n]*)(?:\\[nrt]|alias|call|case|css|default|delcall|delpackage|deltemplate|else(?:if)?|fallbackmsg|for(?:each)?|if(?:empty)?|lb|let|literal|msg|namespace|nil|@?param\??|rb|sp|switch|template|xid)/,
			lookbehind: !0
		}, /\b(?:any|as|attributes|bool|css|float|in|int|js|html|list|map|null|number|string|uri)\b/],
		delimiter: {
			pattern: /^{+\/?|\/?}+$/,
			alias: "punctuation"
		},
		property: /\w+(?==)/,
		variable: {
			pattern: /\$[^\W\d]\w*(?:\??(?:\.\w+|\[[^\]]+]))*/,
			inside: {
				string: {
					pattern: e,
					greedy: !0
				},
				number: a,
				punctuation: /[\[\].?]/
			}
		},
		string: {
			pattern: e,
			greedy: !0
		},
		function: [/\w+(?=\()/, {
			pattern: /(\|[^\S\r\n]*)\w+/,
			lookbehind: !0
		}],
		boolean: /\b(?:true|false)\b/,
		number: a,
		operator: /\?:?|<=?|>=?|==?|!=|[+*/%-]|\b(?:and|not|or)\b/,
		punctuation: /[{}()\[\]|.,:]/
	}, t.hooks.add("before-tokenize", function(e) {
		var a = !1;
		t.languages["markup-templating"].buildPlaceholders(e, "soy", /{{.+?}}|{.+?}|\s\/\/.*|\/\*[\s\S]*?\*\//g, function(e) {
			return "{/literal}" === e && (a = !1), !a && ("{literal}" === e && (a = !0), !0)
		})
	}), t.hooks.add("after-tokenize", function(e) {
		t.languages["markup-templating"].tokenizePlaceholders(e, "soy")
	})
}(Prism);
Prism.languages.turtle = {
	comment: {
		pattern: /#.*/,
		greedy: !0
	},
	"multiline-string": {
		pattern: /"""(?:(?:""?)?(?:[^"\\]|\\.))*"""|'''(?:(?:''?)?(?:[^'\\]|\\.))*'''/,
		greedy: !0,
		alias: "string",
		inside: {
			comment: /#.*/
		}
	},
	string: {
		pattern: /"(?:[^\\"\r\n]|\\.)*"|'(?:[^\\'\r\n]|\\.)*'/,
		greedy: !0
	},
	url: {
		pattern: /<(?:[^\x00-\x20<>"{}|^`\\]|\\(?:u[\da-fA-F]{4}|U[\da-fA-F]{8}))*>/,
		greedy: !0,
		inside: {
			punctuation: /[<>]/
		}
	},
	function: {
		pattern: /(?:(?![-.\d\xB7])[-.\w\xB7\xC0-\uFFFD]+)?:(?:(?![-.])(?:[-.:\w\xC0-\uFFFD]|%[\da-f]{2}|\\.)+)?/i,
		inside: {
			"local-name": {
				pattern: /([^:]*:)[\s\S]+/,
				lookbehind: !0
			},
			prefix: {
				pattern: /[\s\S]+/,
				inside: {
					punctuation: /:/
				}
			}
		}
	},
	number: /[+-]?\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,
	punctuation: /[{}.,;()[\]]|\^\^/,
	boolean: /\b(?:true|false)\b/,
	keyword: [/(?:\ba|@prefix|@base)\b|=/, /\b(?:graph|base|prefix)\b/i],
	tag: {
		pattern: /@[a-z]+(?:-[a-z\d]+)*/i,
		inside: {
			punctuation: /@/
		}
	}
}, Prism.languages.trig = Prism.languages.turtle;
Prism.languages.sparql = Prism.languages.extend("turtle", {
	boolean: /\b(?:true|false)\b/i,
	variable: {
		pattern: /[?$]\w+/,
		greedy: !0
	}
}), Prism.languages.insertBefore("sparql", "punctuation", {
	keyword: [
		/\b(?:A|ADD|ALL|AS|ASC|ASK|BNODE|BY|CLEAR|CONSTRUCT|COPY|CREATE|DATA|DEFAULT|DELETE|DESC|DESCRIBE|DISTINCT|DROP|EXISTS|FILTER|FROM|GROUP|HAVING|INSERT|INTO|LIMIT|LOAD|MINUS|MOVE|NAMED|NOT|NOW|OFFSET|OPTIONAL|ORDER|RAND|REDUCED|SELECT|SEPARATOR|SERVICE|SILENT|STRUUID|UNION|USING|UUID|VALUES|WHERE)\b/i,
		/\b(?:ABS|AVG|BIND|BOUND|CEIL|COALESCE|CONCAT|CONTAINS|COUNT|DATATYPE|DAY|ENCODE_FOR_URI|FLOOR|GROUP_CONCAT|HOURS|IF|IRI|isBLANK|isIRI|isLITERAL|isNUMERIC|isURI|LANG|LANGMATCHES|LCASE|MAX|MD5|MIN|MINUTES|MONTH|ROUND|REGEX|REPLACE|sameTerm|SAMPLE|SECONDS|SHA1|SHA256|SHA384|SHA512|STR|STRAFTER|STRBEFORE|STRDT|STRENDS|STRLANG|STRLEN|STRSTARTS|SUBSTR|SUM|TIMEZONE|TZ|UCASE|URI|YEAR)\b(?=\s*\()/i,
		/\b(?:GRAPH|BASE|PREFIX)\b/i
	]
}), Prism.languages.rq = Prism.languages.sparql;
Prism.languages["splunk-spl"] = {
	comment: /`comment\("(?:\\.|[^\\"])*"\)`/,
	string: {
		pattern: /"(?:\\.|[^\\"])*"/,
		greedy: !0
	},
	keyword: /\b(?:abstract|accum|addcoltotals|addinfo|addtotals|analyzefields|anomalies|anomalousvalue|anomalydetection|append|appendcols|appendcsv|appendlookup|appendpipe|arules|associate|audit|autoregress|bin|bucket|bucketdir|chart|cluster|cofilter|collect|concurrency|contingency|convert|correlate|datamodel|dbinspect|dedup|delete|delta|diff|erex|eval|eventcount|eventstats|extract|fieldformat|fields|fieldsummary|filldown|fillnull|findtypes|folderize|foreach|format|from|gauge|gentimes|geom|geomfilter|geostats|head|highlight|history|iconify|input|inputcsv|inputlookup|iplocation|join|kmeans|kv|kvform|loadjob|localize|localop|lookup|makecontinuous|makemv|makeresults|map|mcollect|metadata|metasearch|meventcollect|mstats|multikv|multisearch|mvcombine|mvexpand|nomv|outlier|outputcsv|outputlookup|outputtext|overlap|pivot|predict|rangemap|rare|regex|relevancy|reltime|rename|replace|rest|return|reverse|rex|rtorder|run|savedsearch|script|scrub|search|searchtxn|selfjoin|sendemail|set|setfields|sichart|sirare|sistats|sitimechart|sitop|sort|spath|stats|strcat|streamstats|table|tags|tail|timechart|timewrap|top|transaction|transpose|trendline|tscollect|tstats|typeahead|typelearner|typer|union|uniq|untable|where|x11|xmlkv|xmlunescape|xpath|xyseries)\b/i,
	"operator-word": {
		pattern: /\b(?:and|as|by|not|or|xor)\b/i,
		alias: "operator"
	},
	function: /\w+(?=\s*\()/,
	property: /\w+(?=\s*=(?!=))/,
	date: {
		pattern: /\b\d{1,2}\/\d{1,2}\/\d{1,4}(?:(?::\d{1,2}){3})?\b/,
		alias: "number"
	},
	number: /\b\d+(?:\.\d+)?\b/,
	boolean: /\b(?:f|false|t|true)\b/i,
	operator: /[<>=]=?|[-+*/%|]/,
	punctuation: /[()[\],]/
};
Prism.languages.sqf = Prism.languages.extend("clike", {
	string: {
		pattern: /"(?:(?:"")?[^"])*"(?!")|'(?:[^'])*'/,
		greedy: !0
	},
	keyword: /\b(?:breakOut|breakTo|call|case|catch|default|do|echo|else|execVM|execFSM|exitWith|for|forEach|forEachMember|forEachMemberAgent|forEachMemberTeam|from|goto|if|nil|preprocessFile|preprocessFileLineNumbers|private|scopeName|spawn|step|switch|then|throw|to|try|while|with)\b/i,
	boolean: /\b(?:true|false)\b/i,
	function: /\b(?:abs|accTime|acos|action|actionIDs|actionKeys|actionKeysImages|actionKeysNames|actionKeysNamesArray|actionName|actionParams|activateAddons|activatedAddons|activateKey|add3DENConnection|add3DENEventHandler|add3DENLayer|addAction|addBackpack|addBackpackCargo|addBackpackCargoGlobal|addBackpackGlobal|addCamShake|addCuratorAddons|addCuratorCameraArea|addCuratorEditableObjects|addCuratorEditingArea|addCuratorPoints|addEditorObject|addEventHandler|addForce|addForceGeneratorRTD|addGoggles|addGroupIcon|addHandgunItem|addHeadgear|addItem|addItemCargo|addItemCargoGlobal|addItemPool|addItemToBackpack|addItemToUniform|addItemToVest|addLiveStats|addMagazine|addMagazineAmmoCargo|addMagazineCargo|addMagazineCargoGlobal|addMagazineGlobal|addMagazinePool|addMagazines|addMagazineTurret|addMenu|addMenuItem|addMissionEventHandler|addMPEventHandler|addMusicEventHandler|addOwnedMine|addPlayerScores|addPrimaryWeaponItem|addPublicVariableEventHandler|addRating|addResources|addScore|addScoreSide|addSecondaryWeaponItem|addSwitchableUnit|addTeamMember|addToRemainsCollector|addTorque|addUniform|addVehicle|addVest|addWaypoint|addWeapon|addWeaponCargo|addWeaponCargoGlobal|addWeaponGlobal|addWeaponItem|addWeaponPool|addWeaponTurret|admin|agent|agents|AGLToASL|aimedAtTarget|aimPos|airDensityCurveRTD|airDensityRTD|airplaneThrottle|airportSide|AISFinishHeal|alive|all3DENEntities|allAirports|allControls|allCurators|allCutLayers|allDead|allDeadMen|allDisplays|allGroups|allMapMarkers|allMines|allMissionObjects|allow3DMode|allowCrewInImmobile|allowCuratorLogicIgnoreAreas|allowDamage|allowDammage|allowFileOperations|allowFleeing|allowGetIn|allowSprint|allPlayers|allSimpleObjects|allSites|allTurrets|allUnits|allUnitsUAV|allVariables|ammo|ammoOnPylon|animate|animateBay|animateDoor|animatePylon|animateSource|animationNames|animationPhase|animationSourcePhase|animationState|append|apply|armoryPoints|arrayIntersect|asin|ASLToAGL|ASLToATL|assert|assignAsCargo|assignAsCargoIndex|assignAsCommander|assignAsDriver|assignAsGunner|assignAsTurret|assignCurator|assignedCargo|assignedCommander|assignedDriver|assignedGunner|assignedItems|assignedTarget|assignedTeam|assignedVehicle|assignedVehicleRole|assignItem|assignTeam|assignToAirport|atan|atan2|atg|ATLToASL|attachedObject|attachedObjects|attachedTo|attachObject|attachTo|attackEnabled|backpack|backpackCargo|backpackContainer|backpackItems|backpackMagazines|backpackSpaceFor|behaviour|benchmark|binocular|blufor|boundingBox|boundingBoxReal|boundingCenter|briefingName|buildingExit|buildingPos|buldozer_EnableRoadDiag|buldozer_IsEnabledRoadDiag|buldozer_LoadNewRoads|buldozer_reloadOperMap|buttonAction|buttonSetAction|cadetMode|callExtension|camCommand|camCommit|camCommitPrepared|camCommitted|camConstuctionSetParams|camCreate|camDestroy|cameraEffect|cameraEffectEnableHUD|cameraInterest|cameraOn|cameraView|campaignConfigFile|camPreload|camPreloaded|camPrepareBank|camPrepareDir|camPrepareDive|camPrepareFocus|camPrepareFov|camPrepareFovRange|camPreparePos|camPrepareRelPos|camPrepareTarget|camSetBank|camSetDir|camSetDive|camSetFocus|camSetFov|camSetFovRange|camSetPos|camSetRelPos|camSetTarget|camTarget|camUseNVG|canAdd|canAddItemToBackpack|canAddItemToUniform|canAddItemToVest|cancelSimpleTaskDestination|canFire|canMove|canSlingLoad|canStand|canSuspend|canTriggerDynamicSimulation|canUnloadInCombat|canVehicleCargo|captive|captiveNum|cbChecked|cbSetChecked|ceil|channelEnabled|cheatsEnabled|checkAIFeature|checkVisibility|civilian|className|clear3DENAttribute|clear3DENInventory|clearAllItemsFromBackpack|clearBackpackCargo|clearBackpackCargoGlobal|clearForcesRTD|clearGroupIcons|clearItemCargo|clearItemCargoGlobal|clearItemPool|clearMagazineCargo|clearMagazineCargoGlobal|clearMagazinePool|clearOverlay|clearRadio|clearVehicleInit|clearWeaponCargo|clearWeaponCargoGlobal|clearWeaponPool|clientOwner|closeDialog|closeDisplay|closeOverlay|collapseObjectTree|collect3DENHistory|collectiveRTD|combatMode|commandArtilleryFire|commandChat|commander|commandFire|commandFollow|commandFSM|commandGetOut|commandingMenu|commandMove|commandRadio|commandStop|commandSuppressiveFire|commandTarget|commandWatch|comment|commitOverlay|compile|compileFinal|completedFSM|composeText|configClasses|configFile|configHierarchy|configName|configNull|configProperties|configSourceAddonList|configSourceMod|configSourceModList|confirmSensorTarget|connectTerminalToUAV|controlNull|controlsGroupCtrl|copyFromClipboard|copyToClipboard|copyWaypoints|cos|count|countEnemy|countFriendly|countSide|countType|countUnknown|create3DENComposition|create3DENEntity|createAgent|createCenter|createDialog|createDiaryLink|createDiaryRecord|createDiarySubject|createDisplay|createGearDialog|createGroup|createGuardedPoint|createLocation|createMarker|createMarkerLocal|createMenu|createMine|createMissionDisplay|createMPCampaignDisplay|createSimpleObject|createSimpleTask|createSite|createSoundSource|createTask|createTeam|createTrigger|createUnit|createVehicle|createVehicleCrew|createVehicleLocal|crew|ctAddHeader|ctAddRow|ctClear|ctCurSel|ctData|ctFindHeaderRows|ctFindRowHeader|ctHeaderControls|ctHeaderCount|ctRemoveHeaders|ctRemoveRows|ctrlActivate|ctrlAddEventHandler|ctrlAngle|ctrlAutoScrollDelay|ctrlAutoScrollRewind|ctrlAutoScrollSpeed|ctrlChecked|ctrlClassName|ctrlCommit|ctrlCommitted|ctrlCreate|ctrlDelete|ctrlEnable|ctrlEnabled|ctrlFade|ctrlHTMLLoaded|ctrlIDC|ctrlIDD|ctrlMapAnimAdd|ctrlMapAnimClear|ctrlMapAnimCommit|ctrlMapAnimDone|ctrlMapCursor|ctrlMapMouseOver|ctrlMapScale|ctrlMapScreenToWorld|ctrlMapWorldToScreen|ctrlModel|ctrlModelDirAndUp|ctrlModelScale|ctrlParent|ctrlParentControlsGroup|ctrlPosition|ctrlRemoveAllEventHandlers|ctrlRemoveEventHandler|ctrlScale|ctrlSetActiveColor|ctrlSetAngle|ctrlSetAutoScrollDelay|ctrlSetAutoScrollRewind|ctrlSetAutoScrollSpeed|ctrlSetBackgroundColor|ctrlSetChecked|ctrlSetDisabledColor|ctrlSetEventHandler|ctrlSetFade|ctrlSetFocus|ctrlSetFont|ctrlSetFontH1|ctrlSetFontH1B|ctrlSetFontH2|ctrlSetFontH2B|ctrlSetFontH3|ctrlSetFontH3B|ctrlSetFontH4|ctrlSetFontH4B|ctrlSetFontH5|ctrlSetFontH5B|ctrlSetFontH6|ctrlSetFontH6B|ctrlSetFontHeight|ctrlSetFontHeightH1|ctrlSetFontHeightH2|ctrlSetFontHeightH3|ctrlSetFontHeightH4|ctrlSetFontHeightH5|ctrlSetFontHeightH6|ctrlSetFontHeightSecondary|ctrlSetFontP|ctrlSetFontPB|ctrlSetFontSecondary|ctrlSetForegroundColor|ctrlSetModel|ctrlSetModelDirAndUp|ctrlSetModelScale|ctrlSetPixelPrecision|ctrlSetPosition|ctrlSetScale|ctrlSetStructuredText|ctrlSetText|ctrlSetTextColor|ctrlSetTextColorSecondary|ctrlSetTextSecondary|ctrlSetTooltip|ctrlSetTooltipColorBox|ctrlSetTooltipColorShade|ctrlSetTooltipColorText|ctrlShow|ctrlShown|ctrlText|ctrlTextHeight|ctrlTextSecondary|ctrlTextWidth|ctrlType|ctrlVisible|ctRowControls|ctRowCount|ctSetCurSel|ctSetData|ctSetHeaderTemplate|ctSetRowTemplate|ctSetValue|ctValue|curatorAddons|curatorCamera|curatorCameraArea|curatorCameraAreaCeiling|curatorCoef|curatorEditableObjects|curatorEditingArea|curatorEditingAreaType|curatorMouseOver|curatorPoints|curatorRegisteredObjects|curatorSelected|curatorWaypointCost|current3DENOperation|currentChannel|currentCommand|currentMagazine|currentMagazineDetail|currentMagazineDetailTurret|currentMagazineTurret|currentMuzzle|currentNamespace|currentTask|currentTasks|currentThrowable|currentVisionMode|currentWaypoint|currentWeapon|currentWeaponMode|currentWeaponTurret|currentZeroing|cursorObject|cursorTarget|customChat|customRadio|cutFadeOut|cutObj|cutRsc|cutText|damage|date|dateToNumber|daytime|deActivateKey|debriefingText|debugFSM|debugLog|deg|delete3DENEntities|deleteAt|deleteCenter|deleteCollection|deleteEditorObject|deleteGroup|deleteGroupWhenEmpty|deleteIdentity|deleteLocation|deleteMarker|deleteMarkerLocal|deleteRange|deleteResources|deleteSite|deleteStatus|deleteTeam|deleteVehicle|deleteVehicleCrew|deleteWaypoint|detach|detectedMines|diag_activeMissionFSMs|diag_activeScripts|diag_activeSQFScripts|diag_activeSQSScripts|diag_captureFrame|diag_captureFrameToFile|diag_captureSlowFrame|diag_codePerformance|diag_drawMode|diag_dynamicSimulationEnd|diag_enable|diag_enabled|diag_fps|diag_fpsMin|diag_frameNo|diag_lightNewLoad|diag_list|diag_log|diag_logSlowFrame|diag_mergeConfigFile|diag_recordTurretLimits|diag_setLightNew|diag_tickTime|diag_toggle|dialog|diarySubjectExists|didJIP|didJIPOwner|difficulty|difficultyEnabled|difficultyEnabledRTD|difficultyOption|direction|directSay|disableAI|disableCollisionWith|disableConversation|disableDebriefingStats|disableMapIndicators|disableNVGEquipment|disableRemoteSensors|disableSerialization|disableTIEquipment|disableUAVConnectability|disableUserInput|displayAddEventHandler|displayCtrl|displayNull|displayParent|displayRemoveAllEventHandlers|displayRemoveEventHandler|displaySetEventHandler|dissolveTeam|distance|distance2D|distanceSqr|distributionRegion|do3DENAction|doArtilleryFire|doFire|doFollow|doFSM|doGetOut|doMove|doorPhase|doStop|doSuppressiveFire|doTarget|doWatch|drawArrow|drawEllipse|drawIcon|drawIcon3D|drawLine|drawLine3D|drawLink|drawLocation|drawPolygon|drawRectangle|drawTriangle|driver|drop|dynamicSimulationDistance|dynamicSimulationDistanceCoef|dynamicSimulationEnabled|dynamicSimulationSystemEnabled|east|edit3DENMissionAttributes|editObject|editorSetEventHandler|effectiveCommander|emptyPositions|enableAI|enableAIFeature|enableAimPrecision|enableAttack|enableAudioFeature|enableAutoStartUpRTD|enableAutoTrimRTD|enableCamShake|enableCaustics|enableChannel|enableCollisionWith|enableCopilot|enableDebriefingStats|enableDiagLegend|enableDynamicSimulation|enableDynamicSimulationSystem|enableEndDialog|enableEngineArtillery|enableEnvironment|enableFatigue|enableGunLights|enableInfoPanelComponent|enableIRLasers|enableMimics|enablePersonTurret|enableRadio|enableReload|enableRopeAttach|enableSatNormalOnDetail|enableSaving|enableSentences|enableSimulation|enableSimulationGlobal|enableStamina|enableStressDamage|enableTeamSwitch|enableTraffic|enableUAVConnectability|enableUAVWaypoints|enableVehicleCargo|enableVehicleSensor|enableWeaponDisassembly|endl|endLoadingScreen|endMission|engineOn|enginesIsOnRTD|enginesPowerRTD|enginesRpmRTD|enginesTorqueRTD|entities|environmentEnabled|estimatedEndServerTime|estimatedTimeLeft|evalObjectArgument|everyBackpack|everyContainer|exec|execEditorScript|exp|expectedDestination|exportJIPMessages|eyeDirection|eyePos|face|faction|fadeMusic|fadeRadio|fadeSound|fadeSpeech|failMission|fillWeaponsFromPool|find|findCover|findDisplay|findEditorObject|findEmptyPosition|findEmptyPositionReady|findIf|findNearestEnemy|finishMissionInit|finite|fire|fireAtTarget|firstBackpack|flag|flagAnimationPhase|flagOwner|flagSide|flagTexture|fleeing|floor|flyInHeight|flyInHeightASL|fog|fogForecast|fogParams|forceAddUniform|forceAtPositionRTD|forcedMap|forceEnd|forceFlagTexture|forceFollowRoad|forceGeneratorRTD|forceMap|forceRespawn|forceSpeed|forceWalk|forceWeaponFire|forceWeatherChange|forgetTarget|format|formation|formationDirection|formationLeader|formationMembers|formationPosition|formationTask|formatText|formLeader|freeLook|fromEditor|fuel|fullCrew|gearIDCAmmoCount|gearSlotAmmoCount|gearSlotData|get3DENActionState|get3DENAttribute|get3DENCamera|get3DENConnections|get3DENEntity|get3DENEntityID|get3DENGrid|get3DENIconsVisible|get3DENLayerEntities|get3DENLinesVisible|get3DENMissionAttribute|get3DENMouseOver|get3DENSelected|getAimingCoef|getAllEnvSoundControllers|getAllHitPointsDamage|getAllOwnedMines|getAllSoundControllers|getAmmoCargo|getAnimAimPrecision|getAnimSpeedCoef|getArray|getArtilleryAmmo|getArtilleryComputerSettings|getArtilleryETA|getAssignedCuratorLogic|getAssignedCuratorUnit|getBackpackCargo|getBleedingRemaining|getBurningValue|getCameraViewDirection|getCargoIndex|getCenterOfMass|getClientState|getClientStateNumber|getCompatiblePylonMagazines|getConnectedUAV|getContainerMaxLoad|getCursorObjectParams|getCustomAimCoef|getDammage|getDescription|getDir|getDirVisual|getDLCAssetsUsage|getDLCAssetsUsageByName|getDLCs|getDLCUsageTime|getEditorCamera|getEditorMode|getEditorObjectScope|getElevationOffset|getEngineTargetRpmRTD|getEnvSoundController|getFatigue|getFieldManualStartPage|getForcedFlagTexture|getFriend|getFSMVariable|getFuelCargo|getGroupIcon|getGroupIconParams|getGroupIcons|getHideFrom|getHit|getHitIndex|getHitPointDamage|getItemCargo|getMagazineCargo|getMarkerColor|getMarkerPos|getMarkerSize|getMarkerType|getMass|getMissionConfig|getMissionConfigValue|getMissionDLCs|getMissionLayerEntities|getMissionLayers|getModelInfo|getMousePosition|getMusicPlayedTime|getNumber|getObjectArgument|getObjectChildren|getObjectDLC|getObjectMaterials|getObjectProxy|getObjectTextures|getObjectType|getObjectViewDistance|getOxygenRemaining|getPersonUsedDLCs|getPilotCameraDirection|getPilotCameraPosition|getPilotCameraRotation|getPilotCameraTarget|getPlateNumber|getPlayerChannel|getPlayerScores|getPlayerUID|getPlayerUIDOld|getPos|getPosASL|getPosASLVisual|getPosASLW|getPosATL|getPosATLVisual|getPosVisual|getPosWorld|getPylonMagazines|getRelDir|getRelPos|getRemoteSensorsDisabled|getRepairCargo|getResolution|getRotorBrakeRTD|getShadowDistance|getShotParents|getSlingLoad|getSoundController|getSoundControllerResult|getSpeed|getStamina|getStatValue|getSuppression|getTerrainGrid|getTerrainHeightASL|getText|getTotalDLCUsageTime|getTrimOffsetRTD|getUnitLoadout|getUnitTrait|getUserMFDText|getUserMFDValue|getVariable|getVehicleCargo|getWeaponCargo|getWeaponSway|getWingsOrientationRTD|getWingsPositionRTD|getWPPos|glanceAt|globalChat|globalRadio|goggles|group|groupChat|groupFromNetId|groupIconSelectable|groupIconsVisible|groupId|groupOwner|groupRadio|groupSelectedUnits|groupSelectUnit|grpNull|gunner|gusts|halt|handgunItems|handgunMagazine|handgunWeapon|handsHit|hasInterface|hasPilotCamera|hasWeapon|hcAllGroups|hcGroupParams|hcLeader|hcRemoveAllGroups|hcRemoveGroup|hcSelected|hcSelectGroup|hcSetGroup|hcShowBar|hcShownBar|headgear|hideBody|hideObject|hideObjectGlobal|hideSelection|hint|hintC|hintCadet|hintSilent|hmd|hostMission|htmlLoad|HUDMovementLevels|humidity|image|importAllGroups|importance|in|inArea|inAreaArray|incapacitatedState|independent|inflame|inflamed|infoPanel|infoPanelComponentEnabled|infoPanelComponents|infoPanels|inGameUISetEventHandler|inheritsFrom|initAmbientLife|inPolygon|inputAction|inRangeOfArtillery|insertEditorObject|intersect|is3DEN|is3DENMultiplayer|isAbleToBreathe|isAgent|isAimPrecisionEnabled|isArray|isAutoHoverOn|isAutonomous|isAutoStartUpEnabledRTD|isAutotest|isAutoTrimOnRTD|isBleeding|isBurning|isClass|isCollisionLightOn|isCopilotEnabled|isDamageAllowed|isDedicated|isDLCAvailable|isEngineOn|isEqualTo|isEqualType|isEqualTypeAll|isEqualTypeAny|isEqualTypeArray|isEqualTypeParams|isFilePatchingEnabled|isFlashlightOn|isFlatEmpty|isForcedWalk|isFormationLeader|isGroupDeletedWhenEmpty|isHidden|isInRemainsCollector|isInstructorFigureEnabled|isIRLaserOn|isKeyActive|isKindOf|isLaserOn|isLightOn|isLocalized|isManualFire|isMarkedForCollection|isMultiplayer|isMultiplayerSolo|isNil|isNull|isNumber|isObjectHidden|isObjectRTD|isOnRoad|isPipEnabled|isPlayer|isRealTime|isRemoteExecuted|isRemoteExecutedJIP|isServer|isShowing3DIcons|isSimpleObject|isSprintAllowed|isStaminaEnabled|isSteamMission|isStreamFriendlyUIEnabled|isStressDamageEnabled|isText|isTouchingGround|isTurnedOut|isTutHintsEnabled|isUAVConnectable|isUAVConnected|isUIContext|isUniformAllowed|isVehicleCargo|isVehicleRadarOn|isVehicleSensorEnabled|isWalking|isWeaponDeployed|isWeaponRested|itemCargo|items|itemsWithMagazines|join|joinAs|joinAsSilent|joinSilent|joinString|kbAddDatabase|kbAddDatabaseTargets|kbAddTopic|kbHasTopic|kbReact|kbRemoveTopic|kbTell|kbWasSaid|keyImage|keyName|knowsAbout|land|landAt|landResult|language|laserTarget|lbAdd|lbClear|lbColor|lbColorRight|lbCurSel|lbData|lbDelete|lbIsSelected|lbPicture|lbPictureRight|lbSelection|lbSetColor|lbSetColorRight|lbSetCurSel|lbSetData|lbSetPicture|lbSetPictureColor|lbSetPictureColorDisabled|lbSetPictureColorSelected|lbSetPictureRight|lbSetPictureRightColor|lbSetPictureRightColorDisabled|lbSetPictureRightColorSelected|lbSetSelectColor|lbSetSelectColorRight|lbSetSelected|lbSetText|lbSetTextRight|lbSetTooltip|lbSetValue|lbSize|lbSort|lbSortByValue|lbText|lbTextRight|lbValue|leader|leaderboardDeInit|leaderboardGetRows|leaderboardInit|leaderboardRequestRowsFriends|leaderboardRequestRowsGlobal|leaderboardRequestRowsGlobalAroundUser|leaderboardsRequestUploadScore|leaderboardsRequestUploadScoreKeepBest|leaderboardState|leaveVehicle|libraryCredits|libraryDisclaimers|lifeState|lightAttachObject|lightDetachObject|lightIsOn|lightnings|limitSpeed|linearConversion|lineBreak|lineIntersects|lineIntersectsObjs|lineIntersectsSurfaces|lineIntersectsWith|linkItem|list|listObjects|listRemoteTargets|listVehicleSensors|ln|lnbAddArray|lnbAddColumn|lnbAddRow|lnbClear|lnbColor|lnbColorRight|lnbCurSelRow|lnbData|lnbDeleteColumn|lnbDeleteRow|lnbGetColumnsPosition|lnbPicture|lnbPictureRight|lnbSetColor|lnbSetColorRight|lnbSetColumnsPos|lnbSetCurSelRow|lnbSetData|lnbSetPicture|lnbSetPictureColor|lnbSetPictureColorRight|lnbSetPictureColorSelected|lnbSetPictureColorSelectedRight|lnbSetPictureRight|lnbSetText|lnbSetTextRight|lnbSetValue|lnbSize|lnbSort|lnbSortByValue|lnbText|lnbTextRight|lnbValue|load|loadAbs|loadBackpack|loadFile|loadGame|loadIdentity|loadMagazine|loadOverlay|loadStatus|loadUniform|loadVest|local|localize|locationNull|locationPosition|lock|lockCameraTo|lockCargo|lockDriver|locked|lockedCargo|lockedDriver|lockedTurret|lockIdentity|lockTurret|lockWP|log|logEntities|logNetwork|logNetworkTerminate|lookAt|lookAtPos|magazineCargo|magazines|magazinesAllTurrets|magazinesAmmo|magazinesAmmoCargo|magazinesAmmoFull|magazinesDetail|magazinesDetailBackpack|magazinesDetailUniform|magazinesDetailVest|magazinesTurret|magazineTurretAmmo|mapAnimAdd|mapAnimClear|mapAnimCommit|mapAnimDone|mapCenterOnCamera|mapGridPosition|markAsFinishedOnSteam|markerAlpha|markerBrush|markerColor|markerDir|markerPos|markerShape|markerSize|markerText|markerType|max|members|menuAction|menuAdd|menuChecked|menuClear|menuCollapse|menuData|menuDelete|menuEnable|menuEnabled|menuExpand|menuHover|menuPicture|menuSetAction|menuSetCheck|menuSetData|menuSetPicture|menuSetValue|menuShortcut|menuShortcutText|menuSize|menuSort|menuText|menuURL|menuValue|min|mineActive|mineDetectedBy|missionConfigFile|missionDifficulty|missionName|missionNamespace|missionStart|missionVersion|modelToWorld|modelToWorldVisual|modelToWorldVisualWorld|modelToWorldWorld|modParams|moonIntensity|moonPhase|morale|move|move3DENCamera|moveInAny|moveInCargo|moveInCommander|moveInDriver|moveInGunner|moveInTurret|moveObjectToEnd|moveOut|moveTime|moveTo|moveToCompleted|moveToFailed|musicVolume|name|nameSound|nearEntities|nearestBuilding|nearestLocation|nearestLocations|nearestLocationWithDubbing|nearestObject|nearestObjects|nearestTerrainObjects|nearObjects|nearObjectsReady|nearRoads|nearSupplies|nearTargets|needReload|netId|netObjNull|newOverlay|nextMenuItemIndex|nextWeatherChange|nMenuItems|numberOfEnginesRTD|numberToDate|objectCurators|objectFromNetId|objectParent|objNull|objStatus|onBriefingGear|onBriefingGroup|onBriefingNotes|onBriefingPlan|onBriefingTeamSwitch|onCommandModeChanged|onDoubleClick|onEachFrame|onGroupIconClick|onGroupIconOverEnter|onGroupIconOverLeave|onHCGroupSelectionChanged|onMapSingleClick|onPlayerConnected|onPlayerDisconnected|onPreloadFinished|onPreloadStarted|onShowNewObject|onTeamSwitch|openCuratorInterface|openDLCPage|openDSInterface|openMap|openSteamApp|openYoutubeVideo|opfor|orderGetIn|overcast|overcastForecast|owner|param|params|parseNumber|parseSimpleArray|parseText|parsingNamespace|particlesQuality|pi|pickWeaponPool|pitch|pixelGrid|pixelGridBase|pixelGridNoUIScale|pixelH|pixelW|playableSlotsNumber|playableUnits|playAction|playActionNow|player|playerRespawnTime|playerSide|playersNumber|playGesture|playMission|playMove|playMoveNow|playMusic|playScriptedMission|playSound|playSound3D|position|positionCameraToWorld|posScreenToWorld|posWorldToScreen|ppEffectAdjust|ppEffectCommit|ppEffectCommitted|ppEffectCreate|ppEffectDestroy|ppEffectEnable|ppEffectEnabled|ppEffectForceInNVG|precision|preloadCamera|preloadObject|preloadSound|preloadTitleObj|preloadTitleRsc|primaryWeapon|primaryWeaponItems|primaryWeaponMagazine|priority|processDiaryLink|processInitCommands|productVersion|profileName|profileNamespace|profileNameSteam|progressLoadingScreen|progressPosition|progressSetPosition|publicVariable|publicVariableClient|publicVariableServer|pushBack|pushBackUnique|putWeaponPool|queryItemsPool|queryMagazinePool|queryWeaponPool|rad|radioChannelAdd|radioChannelCreate|radioChannelRemove|radioChannelSetCallSign|radioChannelSetLabel|radioVolume|rain|rainbow|random|rank|rankId|rating|rectangular|registeredTasks|registerTask|reload|reloadEnabled|remoteControl|remoteExec|remoteExecCall|remoteExecutedOwner|remove3DENConnection|remove3DENEventHandler|remove3DENLayer|removeAction|removeAll3DENEventHandlers|removeAllActions|removeAllAssignedItems|removeAllContainers|removeAllCuratorAddons|removeAllCuratorCameraAreas|removeAllCuratorEditingAreas|removeAllEventHandlers|removeAllHandgunItems|removeAllItems|removeAllItemsWithMagazines|removeAllMissionEventHandlers|removeAllMPEventHandlers|removeAllMusicEventHandlers|removeAllOwnedMines|removeAllPrimaryWeaponItems|removeAllWeapons|removeBackpack|removeBackpackGlobal|removeCuratorAddons|removeCuratorCameraArea|removeCuratorEditableObjects|removeCuratorEditingArea|removeDrawIcon|removeDrawLinks|removeEventHandler|removeFromRemainsCollector|removeGoggles|removeGroupIcon|removeHandgunItem|removeHeadgear|removeItem|removeItemFromBackpack|removeItemFromUniform|removeItemFromVest|removeItems|removeMagazine|removeMagazineGlobal|removeMagazines|removeMagazinesTurret|removeMagazineTurret|removeMenuItem|removeMissionEventHandler|removeMPEventHandler|removeMusicEventHandler|removeOwnedMine|removePrimaryWeaponItem|removeSecondaryWeaponItem|removeSimpleTask|removeSwitchableUnit|removeTeamMember|removeUniform|removeVest|removeWeapon|removeWeaponAttachmentCargo|removeWeaponCargo|removeWeaponGlobal|removeWeaponTurret|reportRemoteTarget|requiredVersion|resetCamShake|resetSubgroupDirection|resistance|resize|resources|respawnVehicle|restartEditorCamera|reveal|revealMine|reverse|reversedMouseY|roadAt|roadsConnectedTo|roleDescription|ropeAttachedObjects|ropeAttachedTo|ropeAttachEnabled|ropeAttachTo|ropeCreate|ropeCut|ropeDestroy|ropeDetach|ropeEndPosition|ropeLength|ropes|ropeUnwind|ropeUnwound|rotorsForcesRTD|rotorsRpmRTD|round|runInitScript|safeZoneH|safeZoneW|safeZoneWAbs|safeZoneX|safeZoneXAbs|safeZoneY|save3DENInventory|saveGame|saveIdentity|saveJoysticks|saveOverlay|saveProfileNamespace|saveStatus|saveVar|savingEnabled|say|say2D|say3D|score|scoreSide|screenshot|screenToWorld|scriptDone|scriptName|scriptNull|scudState|secondaryWeapon|secondaryWeaponItems|secondaryWeaponMagazine|select|selectBestPlaces|selectDiarySubject|selectedEditorObjects|selectEditorObject|selectionNames|selectionPosition|selectLeader|selectMax|selectMin|selectNoPlayer|selectPlayer|selectRandom|selectRandomWeighted|selectWeapon|selectWeaponTurret|sendAUMessage|sendSimpleCommand|sendTask|sendTaskResult|sendUDPMessage|serverCommand|serverCommandAvailable|serverCommandExecutable|serverName|serverTime|set|set3DENAttribute|set3DENAttributes|set3DENGrid|set3DENIconsVisible|set3DENLayer|set3DENLinesVisible|set3DENLogicType|set3DENMissionAttribute|set3DENMissionAttributes|set3DENModelsVisible|set3DENObjectType|set3DENSelected|setAccTime|setActualCollectiveRTD|setAirplaneThrottle|setAirportSide|setAmmo|setAmmoCargo|setAmmoOnPylon|setAnimSpeedCoef|setAperture|setApertureNew|setArmoryPoints|setAttributes|setAutonomous|setBehaviour|setBleedingRemaining|setBrakesRTD|setCameraInterest|setCamShakeDefParams|setCamShakeParams|setCamUseTI|setCaptive|setCenterOfMass|setCollisionLight|setCombatMode|setCompassOscillation|setConvoySeparation|setCuratorCameraAreaCeiling|setCuratorCoef|setCuratorEditingAreaType|setCuratorWaypointCost|setCurrentChannel|setCurrentTask|setCurrentWaypoint|setCustomAimCoef|setCustomWeightRTD|setDamage|setDammage|setDate|setDebriefingText|setDefaultCamera|setDestination|setDetailMapBlendPars|setDir|setDirection|setDrawIcon|setDriveOnPath|setDropInterval|setDynamicSimulationDistance|setDynamicSimulationDistanceCoef|setEditorMode|setEditorObjectScope|setEffectCondition|setEngineRpmRTD|setFace|setFaceAnimation|setFatigue|setFeatureType|setFlagAnimationPhase|setFlagOwner|setFlagSide|setFlagTexture|setFog|setForceGeneratorRTD|setFormation|setFormationTask|setFormDir|setFriend|setFromEditor|setFSMVariable|setFuel|setFuelCargo|setGroupIcon|setGroupIconParams|setGroupIconsSelectable|setGroupIconsVisible|setGroupId|setGroupIdGlobal|setGroupOwner|setGusts|setHideBehind|setHit|setHitIndex|setHitPointDamage|setHorizonParallaxCoef|setHUDMovementLevels|setIdentity|setImportance|setInfoPanel|setLeader|setLightAmbient|setLightAttenuation|setLightBrightness|setLightColor|setLightDayLight|setLightFlareMaxDistance|setLightFlareSize|setLightIntensity|setLightnings|setLightUseFlare|setLocalWindParams|setMagazineTurretAmmo|setMarkerAlpha|setMarkerAlphaLocal|setMarkerBrush|setMarkerBrushLocal|setMarkerColor|setMarkerColorLocal|setMarkerDir|setMarkerDirLocal|setMarkerPos|setMarkerPosLocal|setMarkerShape|setMarkerShapeLocal|setMarkerSize|setMarkerSizeLocal|setMarkerText|setMarkerTextLocal|setMarkerType|setMarkerTypeLocal|setMass|setMimic|setMousePosition|setMusicEffect|setMusicEventHandler|setName|setNameSound|setObjectArguments|setObjectMaterial|setObjectMaterialGlobal|setObjectProxy|setObjectTexture|setObjectTextureGlobal|setObjectViewDistance|setOvercast|setOwner|setOxygenRemaining|setParticleCircle|setParticleClass|setParticleFire|setParticleParams|setParticleRandom|setPilotCameraDirection|setPilotCameraRotation|setPilotCameraTarget|setPilotLight|setPiPEffect|setPitch|setPlateNumber|setPlayable|setPlayerRespawnTime|setPos|setPosASL|setPosASL2|setPosASLW|setPosATL|setPosition|setPosWorld|setPylonLoadOut|setPylonsPriority|setRadioMsg|setRain|setRainbow|setRandomLip|setRank|setRectangular|setRepairCargo|setRotorBrakeRTD|setShadowDistance|setShotParents|setSide|setSimpleTaskAlwaysVisible|setSimpleTaskCustomData|setSimpleTaskDescription|setSimpleTaskDestination|setSimpleTaskTarget|setSimpleTaskType|setSimulWeatherLayers|setSize|setSkill|setSlingLoad|setSoundEffect|setSpeaker|setSpeech|setSpeedMode|setStamina|setStaminaScheme|setStatValue|setSuppression|setSystemOfUnits|setTargetAge|setTaskMarkerOffset|setTaskResult|setTaskState|setTerrainGrid|setText|setTimeMultiplier|setTitleEffect|setToneMapping|setToneMappingParams|setTrafficDensity|setTrafficDistance|setTrafficGap|setTrafficSpeed|setTriggerActivation|setTriggerArea|setTriggerStatements|setTriggerText|setTriggerTimeout|setTriggerType|setType|setUnconscious|setUnitAbility|setUnitLoadout|setUnitPos|setUnitPosWeak|setUnitRank|setUnitRecoilCoefficient|setUnitTrait|setUnloadInCombat|setUserActionText|setUserMFDText|setUserMFDValue|setVariable|setVectorDir|setVectorDirAndUp|setVectorUp|setVehicleAmmo|setVehicleAmmoDef|setVehicleArmor|setVehicleCargo|setVehicleId|setVehicleInit|setVehicleLock|setVehiclePosition|setVehicleRadar|setVehicleReceiveRemoteTargets|setVehicleReportOwnPosition|setVehicleReportRemoteTargets|setVehicleTIPars|setVehicleVarName|setVelocity|setVelocityModelSpace|setVelocityTransformation|setViewDistance|setVisibleIfTreeCollapsed|setWantedRpmRTD|setWaves|setWaypointBehaviour|setWaypointCombatMode|setWaypointCompletionRadius|setWaypointDescription|setWaypointForceBehaviour|setWaypointFormation|setWaypointHousePosition|setWaypointLoiterRadius|setWaypointLoiterType|setWaypointName|setWaypointPosition|setWaypointScript|setWaypointSpeed|setWaypointStatements|setWaypointTimeout|setWaypointType|setWaypointVisible|setWeaponReloadingTime|setWind|setWindDir|setWindForce|setWindStr|setWingForceScaleRTD|setWPPos|show3DIcons|showChat|showCinemaBorder|showCommandingMenu|showCompass|showCuratorCompass|showGPS|showHUD|showLegend|showMap|shownArtilleryComputer|shownChat|shownCompass|shownCuratorCompass|showNewEditorObject|shownGPS|shownHUD|shownMap|shownPad|shownRadio|shownScoretable|shownUAVFeed|shownWarrant|shownWatch|showPad|showRadio|showScoretable|showSubtitles|showUAVFeed|showWarrant|showWatch|showWaypoint|showWaypoints|side|sideAmbientLife|sideChat|sideEmpty|sideEnemy|sideFriendly|sideLogic|sideRadio|sideUnknown|simpleTasks|simulationEnabled|simulCloudDensity|simulCloudOcclusion|simulInClouds|simulWeatherSync|sin|size|sizeOf|skill|skillFinal|skipTime|sleep|sliderPosition|sliderRange|sliderSetPosition|sliderSetRange|sliderSetSpeed|sliderSpeed|slingLoadAssistantShown|soldierMagazines|someAmmo|sort|soundVolume|speaker|speed|speedMode|splitString|sqrt|squadParams|stance|startLoadingScreen|stop|stopEngineRTD|stopped|str|sunOrMoon|supportInfo|suppressFor|surfaceIsWater|surfaceNormal|surfaceType|swimInDepth|switchableUnits|switchAction|switchCamera|switchGesture|switchLight|switchMove|synchronizedObjects|synchronizedTriggers|synchronizedWaypoints|synchronizeObjectsAdd|synchronizeObjectsRemove|synchronizeTrigger|synchronizeWaypoint|systemChat|systemOfUnits|tan|targetKnowledge|targets|targetsAggregate|targetsQuery|taskAlwaysVisible|taskChildren|taskCompleted|taskCustomData|taskDescription|taskDestination|taskHint|taskMarkerOffset|taskNull|taskParent|taskResult|taskState|taskType|teamMember|teamMemberNull|teamName|teams|teamSwitch|teamSwitchEnabled|teamType|terminate|terrainIntersect|terrainIntersectASL|terrainIntersectAtASL|text|textLog|textLogFormat|tg|time|timeMultiplier|titleCut|titleFadeOut|titleObj|titleRsc|titleText|toArray|toFixed|toLower|toString|toUpper|triggerActivated|triggerActivation|triggerArea|triggerAttachedVehicle|triggerAttachObject|triggerAttachVehicle|triggerDynamicSimulation|triggerStatements|triggerText|triggerTimeout|triggerTimeoutCurrent|triggerType|turretLocal|turretOwner|turretUnit|tvAdd|tvClear|tvCollapse|tvCollapseAll|tvCount|tvCurSel|tvData|tvDelete|tvExpand|tvExpandAll|tvPicture|tvPictureRight|tvSetColor|tvSetCurSel|tvSetData|tvSetPicture|tvSetPictureColor|tvSetPictureColorDisabled|tvSetPictureColorSelected|tvSetPictureRight|tvSetPictureRightColor|tvSetPictureRightColorDisabled|tvSetPictureRightColorSelected|tvSetSelectColor|tvSetText|tvSetTooltip|tvSetValue|tvSort|tvSortByValue|tvText|tvTooltip|tvValue|type|typeName|typeOf|UAVControl|uiNamespace|uiSleep|unassignCurator|unassignItem|unassignTeam|unassignVehicle|underwater|uniform|uniformContainer|uniformItems|uniformMagazines|unitAddons|unitAimPosition|unitAimPositionVisual|unitBackpack|unitIsUAV|unitPos|unitReady|unitRecoilCoefficient|units|unitsBelowHeight|unlinkItem|unlockAchievement|unregisterTask|updateDrawIcon|updateMenuItem|updateObjectTree|useAIOperMapObstructionTest|useAISteeringComponent|useAudioTimeForMoves|userInputDisabled|vectorAdd|vectorCos|vectorCrossProduct|vectorDiff|vectorDir|vectorDirVisual|vectorDistance|vectorDistanceSqr|vectorDotProduct|vectorFromTo|vectorMagnitude|vectorMagnitudeSqr|vectorModelToWorld|vectorModelToWorldVisual|vectorMultiply|vectorNormalized|vectorUp|vectorUpVisual|vectorWorldToModel|vectorWorldToModelVisual|vehicle|vehicleCargoEnabled|vehicleChat|vehicleRadio|vehicleReceiveRemoteTargets|vehicleReportOwnPosition|vehicleReportRemoteTargets|vehicles|vehicleVarName|velocity|velocityModelSpace|verifySignature|vest|vestContainer|vestItems|vestMagazines|viewDistance|visibleCompass|visibleGPS|visibleMap|visiblePosition|visiblePositionASL|visibleScoretable|visibleWatch|waitUntil|waves|waypointAttachedObject|waypointAttachedVehicle|waypointAttachObject|waypointAttachVehicle|waypointBehaviour|waypointCombatMode|waypointCompletionRadius|waypointDescription|waypointForceBehaviour|waypointFormation|waypointHousePosition|waypointLoiterRadius|waypointLoiterType|waypointName|waypointPosition|waypoints|waypointScript|waypointsEnabledUAV|waypointShow|waypointSpeed|waypointStatements|waypointTimeout|waypointTimeoutCurrent|waypointType|waypointVisible|weaponAccessories|weaponAccessoriesCargo|weaponCargo|weaponDirection|weaponInertia|weaponLowered|weapons|weaponsItems|weaponsItemsCargo|weaponState|weaponsTurret|weightRTD|west|WFSideText|wind|windDir|windRTD|windStr|wingsForcesRTD|worldName|worldSize|worldToModel|worldToModelVisual|worldToScreen)\b/i,
	number: /(?:\$|\b0x)[\da-f]+\b|(?:\B\.\d+|\b\d+(?:\.\d+)?)(?:e[+-]?\d+)?\b/i,
	operator: /##|>>|&&|\|\||[!=<>]=?|[-+*/%#^]|\b(?:and|mod|not|or)\b/i,
	"magic-variable": {
		pattern: /\b(?:_exception|_fnc_scriptName|_fnc_scriptNameParent|_forEachIndex|_this|_thisEventHandler|_thisFSM|_thisScript|_x|this|thisList|thisTrigger)\b/i,
		alias: "keyword"
	},
	constant: /\bDIK(?:_[a-z\d]+)+\b/i
}), Prism.languages.insertBefore("sqf", "string", {
	macro: {
		pattern: /(^\s*)#[a-z](?:[^\r\n\\]|\\(?:\r\n|[\s\S]))*/im,
		lookbehind: !0,
		greedy: !0,
		alias: "property",
		inside: {
			directive: {
				pattern: /#[a-z]+\b/i,
				alias: "keyword"
			},
			comment: Prism.languages.sqf.comment
		}
	}
}), delete Prism.languages.sqf["class-name"];
Prism.languages.squirrel = Prism.languages.extend("clike", {
	comment: [Prism.languages.clike.comment[0], {
		pattern: /(^|[^\\:])(?:\/\/|#).*/,
		lookbehind: !0,
		greedy: !0
	}],
	string: [{
		pattern: /(^|[^\\"'@])(?:@"(?:[^"]|"")*"(?!")|"(?:[^\\\r\n"]|\\.)*")/,
		lookbehind: !0,
		greedy: !0
	}, {
		pattern: /(^|[^\\"'])'(?:[^\\']|\\(?:[xuU][0-9a-fA-F]{0,8}|[^]))'/,
		lookbehind: !0,
		greedy: !0
	}],
	"class-name": {
		pattern: /(\b(?:class|enum|extends|instanceof)\s+)\w+(?:\.\w+)*/,
		lookbehind: !0,
		inside: {
			punctuation: /\./
		}
	},
	keyword: /\b(?:base|break|case|catch|class|clone|const|constructor|continue|default|delete|else|enum|extends|for|foreach|function|if|in|instanceof|local|null|resume|return|static|switch|this|throw|try|typeof|while|yield|__LINE__|__FILE__)\b/,
	number: /\b(?:0x[0-9a-fA-F]+|\d+(?:\.(?:\d+|[eE][+-]?\d+))?)\b/,
	operator: /\+\+|--|<=>|<[-<]|>>>?|&&?|\|\|?|[-+*/%!=<>]=?|[~^]|::?/,
	punctuation: /[(){}\[\],;.]/
}), Prism.languages.insertBefore("squirrel", "operator", {
	"attribute-punctuation": {
		pattern: /<\/|\/>/,
		alias: "important"
	},
	lambda: {
		pattern: /@(?=\()/,
		alias: "operator"
	}
});
Prism.languages.stan = {
	comment: /\/\/.*|\/\*[\s\S]*?\*\/|#(?!include).*/,
	string: {
		pattern: /"[\x20\x21\x23-\x5B\x5D-\x7E]*"/,
		greedy: !0
	},
	directive: {
		pattern: /^([ \t]*)#include\b.*/m,
		lookbehind: !0,
		alias: "property"
	},
	"function-arg": {
		pattern: /(\b(?:algebra_solver|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect)\s*\(\s*)[a-zA-Z]\w*/,
		lookbehind: !0,
		alias: "function"
	},
	constraint: {
		pattern: /(\b(?:int|matrix|real|row_vector|vector)\s*)<[^<>]*>/,
		lookbehind: !0,
		inside: {
			expression: {
				pattern: /(=\s*)\S(?:\S|\s+(?!\s))*?(?=\s*(?:>$|,\s*\w+\s*=))/,
				lookbehind: !0,
				inside: null
			},
			property: /\b[a-z]\w*(?=\s*=)/i,
			operator: /=/,
			punctuation: /^<|>$|[,]/
		}
	},
	keyword: [
		/\b(?:break|cholesky_factor_corr|cholesky_factor_cov|continue|corr_matrix|cov_matrix|data|else|for|functions|generated|if|in|increment_log_prob|int|matrix|model|ordered|parameters|positive_ordered|print|quantities|real|reject|return|row_vector|simplex|target|transformed|unit_vector|vector|void|while)\b/,
		/\b(?:algebra_solver|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect)\b/
	],
	function: /\b[a-z]\w*(?=\s*\()/i,
	number: /(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?\b/i,
	boolean: /\b(?:false|true)\b/,
	operator: /<-|\.[*/]=?|\|\|?|&&|[!=<>+\-*/]=?|['^%~?:]/,
	punctuation: /[()\[\]{},;]/
}, Prism.languages.stan.constraint.inside.expression.inside = Prism.languages.stan;
Prism.languages.iecst = {
	comment: [{
		pattern: /(^|[^\\])(?:\/\*[\s\S]*?(?:\*\/|$)|\(\*[\s\S]*?(?:\*\)|$)|\{[\s\S]*?(?:\}|$))/,
		lookbehind: !0
	}, {
		pattern: /(^|[^\\:])\/\/.*/,
		lookbehind: !0,
		greedy: !0
	}],
	string: {
		pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
		greedy: !0
	},
	"class-name": /\b(?:END_)?(?:PROGRAM|CONFIGURATION|INTERFACE|FUNCTION_BLOCK|FUNCTION|ACTION|TRANSITION|TYPE|STRUCT|(?:INITIAL_)?STEP|NAMESPACE|LIBRARY|CHANNEL|FOLDER|RESOURCE|VAR_(?:GLOBAL|INPUT|PUTPUT|IN_OUT|ACCESS|TEMP|EXTERNAL|CONFIG)|VAR|METHOD|PROPERTY)\b/i,
	keyword: /\b(?:(?:END_)?(?:IF|WHILE|REPEAT|CASE|FOR)|ELSE|FROM|THEN|ELSIF|DO|TO|BY|PRIVATE|PUBLIC|PROTECTED|CONSTANT|RETURN|EXIT|CONTINUE|GOTO|JMP|AT|RETAIN|NON_RETAIN|TASK|WITH|UNTIL|USING|EXTENDS|IMPLEMENTS|GET|SET|__TRY|__CATCH|__FINALLY|__ENDTRY)\b/,
	variable: /\b(?:AT|BOOL|BYTE|(?:D|L)?WORD|U?(?:S|D|L)?INT|L?REAL|TIME(?:_OF_DAY)?|TOD|DT|DATE(?:_AND_TIME)?|STRING|ARRAY|ANY|POINTER)\b/,
	symbol: /%[IQM][XBWDL][\d.]*|%[IQ][\d.]*/,
	number: /\b(?:16#[\da-f]+|2#[01_]+|0x[\da-f]+)\b|\b(?:T|D|DT|TOD)#[\d_shmd:]*|\b[A-Z]*\#[\d.,_]*|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,
	boolean: /\b(?:TRUE|FALSE|NULL)\b/,
	function: /\w+(?=\()/,
	operator: /(?:S?R?:?=>?|&&?|\*\*?|<=?|>=?|[-:^/+])|\b(?:OR|AND|MOD|NOT|XOR|LE|GE|EQ|NE|GT|LT)\b/,
	punctuation: /[();]/,
	type: {
		pattern: /#/,
		alias: "selector"
	}
};
! function(e) {
	var n = {
			pattern: /(\b\d+)(?:%|[a-z]+)/,
			lookbehind: !0
		},
		r = {
			pattern: /(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,
			lookbehind: !0
		},
		i = {
			comment: {
				pattern: /(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,
				lookbehind: !0
			},
			url: {
				pattern: /url\((["']?).*?\1\)/i,
				greedy: !0
			},
			string: {
				pattern: /("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,
				greedy: !0
			},
			interpolation: null,
			func: null,
			important: /\B!(?:important|optional)\b/i,
			keyword: {
				pattern: /(^|\s+)(?:(?:if|else|for|return|unless)(?=\s+|$)|@[\w-]+)/,
				lookbehind: !0
			},
			hexcode: /#[\da-f]{3,6}/i,
			color: [
				/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,
				{
					pattern: /\b(?:rgb|hsl)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:rgb|hsl)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,
					inside: {
						unit: n,
						number: r,
						function: /[\w-]+(?=\()/,
						punctuation: /[(),]/
					}
				}
			],
			entity: /\\[\da-f]{1,8}/i,
			unit: n,
			boolean: /\b(?:true|false)\b/,
			operator: [/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],
			number: r,
			punctuation: /[{}()\[\];:,]/
		};
	i.interpolation = {
		pattern: /\{[^\r\n}:]+\}/,
		alias: "variable",
		inside: {
			delimiter: {
				pattern: /^{|}$/,
				alias: "punctuation"
			},
			rest: i
		}
	}, i.func = {
		pattern: /[\w-]+\([^)]*\).*/,
		inside: {
			function: /^[^(]+/,
			rest: i
		}
	}, e.languages.stylus = {
		"atrule-declaration": {
			pattern: /(^\s*)@.+/m,
			lookbehind: !0,
			inside: {
				atrule: /^@[\w-]+/,
				rest: i
			}
		},
		"variable-declaration": {
			pattern: /(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,
			lookbehind: !0,
			inside: {
				variable: /^\S+/,
				rest: i
			}
		},
		statement: {
			pattern: /(^[ \t]*)(?:if|else|for|return|unless)[ \t].+/m,
			lookbehind: !0,
			inside: {
				keyword: /^\S+/,
				rest: i
			}
		},
		"property-declaration": {
			pattern: /((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,](?=$)(?!(?:\r?\n|\r)(?:\{|\2[ \t]+)))/m,
			lookbehind: !0,
			inside: {
				property: {
					pattern: /^[^\s:]+/,
					inside: {
						interpolation: i.interpolation
					}
				},
				rest: i
			}
		},
		selector: {
			pattern: /(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t]+)))/m,
			lookbehind: !0,
			inside: {
				interpolation: i.interpolation,
				comment: i.comment,
				punctuation: /[{},]/
			}
		},
		func: i.func,
		string: i.string,
		comment: {
			pattern: /(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,
			lookbehind: !0,
			greedy: !0
		},
		interpolation: i.interpolation,
		punctuation: /[{}()\[\];:.]/
	}
}(Prism);
Prism.languages.swift = Prism.languages.extend("clike", {
	string: {
		pattern: /("|')(?:\\(?:\((?:[^()]|\([^)]+\))+\)|\r\n|[^(])|(?!\1)[^\\\r\n])*\1/,
		greedy: !0,
		inside: {
			interpolation: {
				pattern: /\\\((?:[^()]|\([^)]+\))+\)/,
				inside: {
					delimiter: {
						pattern: /^\\\(|\)$/,
						alias: "variable"
					}
				}
			}
		}
	},
	keyword: /\b(?:as|associativity|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic(?:Type)?|else|enum|extension|fallthrough|final|for|func|get|guard|if|import|in|infix|init|inout|internal|is|lazy|left|let|mutating|new|none|nonmutating|operator|optional|override|postfix|precedence|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|Self|set|some|static|struct|subscript|super|switch|throws?|try|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|__(?:COLUMN__|FILE__|FUNCTION__|LINE__))\b/,
	number: /\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,
	constant: /\b(?:nil|[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,
	atrule: /@\b(?:IB(?:Outlet|Designable|Action|Inspectable)|class_protocol|exported|noreturn|NS(?:Copying|Managed)|objc|UIApplicationMain|auto_closure)\b/,
	builtin: /\b(?:[A-Z]\S+|abs|advance|alignof(?:Value)?|assert|contains|count(?:Elements)?|debugPrint(?:ln)?|distance|drop(?:First|Last)|dump|enumerate|equal|filter|find|first|getVaList|indices|isEmpty|join|last|lexicographicalCompare|map|max(?:Element)?|min(?:Element)?|numericCast|overlaps|partition|print(?:ln)?|reduce|reflect|reverse|sizeof(?:Value)?|sort(?:ed)?|split|startsWith|stride(?:of(?:Value)?)?|suffix|swap|toDebugString|toString|transcode|underestimateCount|unsafeBitCast|with(?:ExtendedLifetime|Unsafe(?:MutablePointers?|Pointers?)|VaList))\b/
}), Prism.languages.swift.string.inside.interpolation.inside.rest = Prism.languages.swift;
! function(n) {
	function i(e, t, a) {
		return {
			pattern: RegExp("<#" + e + "[\\s\\S]*?#>"),
			alias: "block",
			inside: {
				delimiter: {
					pattern: RegExp("^<#" + e + "|#>$"),
					alias: "important"
				},
				content: {
					pattern: /[\s\S]+/,
					inside: t,
					alias: a
				}
			}
		}
	}
	n.languages["t4-templating"] = Object.defineProperty({}, "createT4", {
		value: function(e) {
			var t = n.languages[e],
				a = "language-" + e;
			return {
				block: {
					pattern: /<#[\s\S]+?#>/,
					inside: {
						directive: i("@", {
							"attr-value": {
								pattern: /=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/,
								inside: {
									punctuation: /^=|^["']|["']$/
								}
							},
							keyword: /\w+(?=\s)/,
							"attr-name": /\w+/
						}),
						expression: i("=", t, a),
						"class-feature": i("\\+", t, a),
						standard: i("", t, a)
					}
				}
			}
		}
	})
}(Prism);
Prism.languages.t4 = Prism.languages["t4-cs"] = Prism.languages["t4-templating"].createT4("csharp");
Prism.languages.vbnet = Prism.languages.extend("basic", {
	comment: [{
		pattern: /(?:!|REM\b).+/i,
		inside: {
			keyword: /^REM/i
		}
	}, {
		pattern: /(^|[^\\:])'.*/,
		lookbehind: !0
	}],
	keyword: /(?:\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDEC|CDBL|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEFAULT|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LINE INPUT|LET|LIB|LIKE|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPERATOR|OPEN|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHORT|SINGLE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SYNCLOCK|SWAP|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\$|\b)/i
});
Prism.languages["t4-vb"] = Prism.languages["t4-templating"].createT4("vbnet");
! function(e) {
	var n = /[*&][^\s[\]{},]+/,
		r = /!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,
		t = "(?:" + r.source + "(?:[ \t]+" + n.source + ")?|" + n.source + "(?:[ \t]+" + r.source + ")?)",
		a =
		"(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*"
		.replace(/<PLAIN>/g, function() {
			return "[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]"
		}),
		d = "\"(?:[^\"\\\\\r\n]|\\\\.)*\"|'(?:[^'\\\\\r\n]|\\\\.)*'";

	function o(e, n) {
		n = (n || "").replace(/m/g, "") + "m";
		var r = "([:\\-,[{]\\s*(?:\\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|]|}|(?:[\r\n]\\s*)?#))".replace(
			/<<prop>>/g,
			function() {
				return t
			}).replace(/<<value>>/g, function() {
			return e
		});
		return RegExp(r, n)
	}
	e.languages.yaml = {
		scalar: {
			pattern: RegExp("([\\-:]\\s*(?:\\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\\S[^\r\n]*(?:\\2[^\r\n]+)*)".replace(
				/<<prop>>/g,
				function() {
					return t
				})),
			lookbehind: !0,
			alias: "string"
		},
		comment: /#.*/,
		key: {
			pattern: RegExp("((?:^|[:\\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\\s*:\\s)".replace(/<<prop>>/g, function() {
				return t
			}).replace(/<<key>>/g, function() {
				return "(?:" + a + "|" + d + ")"
			})),
			lookbehind: !0,
			greedy: !0,
			alias: "atrule"
		},
		directive: {
			pattern: /(^[ \t]*)%.+/m,
			lookbehind: !0,
			alias: "important"
		},
		datetime: {
			pattern: o(
				"\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?"
			),
			lookbehind: !0,
			alias: "number"
		},
		boolean: {
			pattern: o("true|false", "i"),
			lookbehind: !0,
			alias: "important"
		},
		null: {
			pattern: o("null|~", "i"),
			lookbehind: !0,
			alias: "important"
		},
		string: {
			pattern: o(d),
			lookbehind: !0,
			greedy: !0
		},
		number: {
			pattern: o("[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.?\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)", "i"),
			lookbehind: !0
		},
		tag: r,
		important: n,
		punctuation: /---|[:[\]{}\-,|>?]|\.\.\./
	}, e.languages.yml = e.languages.yaml
}(Prism);
Prism.languages.tap = {
	fail: /not ok[^#{\n\r]*/,
	pass: /ok[^#{\n\r]*/,
	pragma: /pragma [+-][a-z]+/,
	bailout: /bail out!.*/i,
	version: /TAP version \d+/i,
	plan: /\d+\.\.\d+(?: +#.*)?/,
	subtest: {
		pattern: /# Subtest(?:: .*)?/,
		greedy: !0
	},
	punctuation: /[{}]/,
	directive: /#.*/,
	yamlish: {
		pattern: /(^[ \t]*)---[\s\S]*?[\r\n][ \t]*\.\.\.$/m,
		lookbehind: !0,
		inside: Prism.languages.yaml,
		alias: "language-yaml"
	}
};
Prism.languages.tcl = {
	comment: {
		pattern: /(^|[^\\])#.*/,
		lookbehind: !0
	},
	string: {
		pattern: /"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"/,
		greedy: !0
	},
	variable: [{
		pattern: /(\$)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/,
		lookbehind: !0
	}, {
		pattern: /(\$){[^}]+}/,
		lookbehind: !0
	}, {
		pattern: /(^\s*set[ \t]+)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/m,
		lookbehind: !0
	}],
	function: {
		pattern: /(^\s*proc[ \t]+)[^\s]+/m,
		lookbehind: !0
	},
	builtin: [{
		pattern: /(^\s*)(?:proc|return|class|error|eval|exit|for|foreach|if|switch|while|break|continue)\b/m,
		lookbehind: !0
	}, /\b(?:elseif|else)\b/],
	scope: {
		pattern: /(^\s*)(?:global|upvar|variable)\b/m,
		lookbehind: !0,
		alias: "constant"
	},
	keyword: {
		pattern: /(^\s*|\[)(?:after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|Safe_Base|scan|seek|set|socket|source|split|string|subst|Tcl|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|wordBreak(?:After|Before)|test|vars)|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\b/m,
		lookbehind: !0
	},
	operator: /!=?|\*\*?|==|&&?|\|\|?|<[=<]?|>[=>]?|[-+~\/%?^]|\b(?:eq|ne|in|ni)\b/,
	punctuation: /[{}()\[\]]/
};
! function(t) {
	t.languages.tt2 = t.languages.extend("clike", {
		comment: /#.*|\[%#[\s\S]*?%\]/,
		keyword: /\b(?:BLOCK|CALL|CASE|CATCH|CLEAR|DEBUG|DEFAULT|ELSE|ELSIF|END|FILTER|FINAL|FOREACH|GET|IF|IN|INCLUDE|INSERT|LAST|MACRO|META|NEXT|PERL|PROCESS|RAWPERL|RETURN|SET|STOP|TAGS|THROW|TRY|SWITCH|UNLESS|USE|WHILE|WRAPPER)\b/,
		punctuation: /[[\]{},()]/
	}), t.languages.insertBefore("tt2", "number", {
		operator: /=[>=]?|!=?|<=?|>=?|&&|\|\|?|\b(?:and|or|not)\b/,
		variable: {
			pattern: /\b[a-z]\w*(?:\s*\.\s*(?:\d+|\$?[a-z]\w*))*\b/i
		}
	}), t.languages.insertBefore("tt2", "keyword", {
		delimiter: {
			pattern: /^(?:\[%|%%)-?|-?%]$/,
			alias: "punctuation"
		}
	}), t.languages.insertBefore("tt2", "string", {
		"single-quoted-string": {
			pattern: /'[^\\']*(?:\\[\s\S][^\\']*)*'/,
			greedy: !0,
			alias: "string"
		},
		"double-quoted-string": {
			pattern: /"[^\\"]*(?:\\[\s\S][^\\"]*)*"/,
			greedy: !0,
			alias: "string",
			inside: {
				variable: {
					pattern: /\$(?:[a-z]\w*(?:\.(?:\d+|\$?[a-z]\w*))*)/i
				}
			}
		}
	}), delete t.languages.tt2.string, t.hooks.add("before-tokenize", function(e) {
		t.languages["markup-templating"].buildPlaceholders(e, "tt2", /\[%[\s\S]+?%\]/g)
	}), t.hooks.add("after-tokenize", function(e) {
		t.languages["markup-templating"].tokenizePlaceholders(e, "tt2")
	})
}(Prism);
! function(n) {
	function e(n, e) {
		return RegExp(n.replace(/<MOD>/g, function() {
			return "(?:\\([^|()\n]+\\)|\\[[^\\]\n]+\\]|\\{[^}\n]+\\})"
		}).replace(/<PAR>/g, function() {
			return "(?:\\)|\\((?![^|()\n]+\\)))"
		}), e || "")
	}
	var i = {
			css: {
				pattern: /\{[^}]+\}/,
				inside: {
					rest: n.languages.css
				}
			},
			"class-id": {
				pattern: /(\()[^)]+(?=\))/,
				lookbehind: !0,
				alias: "attr-value"
			},
			lang: {
				pattern: /(\[)[^\]]+(?=\])/,
				lookbehind: !0,
				alias: "attr-value"
			},
			punctuation: /[\\\/]\d+|\S/
		},
		t = n.languages.textile = n.languages.extend("markup", {
			phrase: {
				pattern: /(^|\r|\n)\S[\s\S]*?(?=$|\r?\n\r?\n|\r\r)/,
				lookbehind: !0,
				inside: {
					"block-tag": {
						pattern: e("^[a-z]\\w*(?:<MOD>|<PAR>|[<>=])*\\."),
						inside: {
							modifier: {
								pattern: e("(^[a-z]\\w*)(?:<MOD>|<PAR>|[<>=])+(?=\\.)"),
								lookbehind: !0,
								inside: i
							},
							tag: /^[a-z]\w*/,
							punctuation: /\.$/
						}
					},
					list: {
						pattern: e("^[*#]+<MOD>*\\s+\\S.*", "m"),
						inside: {
							modifier: {
								pattern: e("(^[*#]+)<MOD>+"),
								lookbehind: !0,
								inside: i
							},
							punctuation: /^[*#]+/
						}
					},
					table: {
						pattern: e(
							"^(?:(?:<MOD>|<PAR>|[<>=^~])+\\.\\s*)?(?:\\|(?:(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+\\.|(?!(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+\\.))[^|]*)+\\|",
							"m"),
						inside: {
							modifier: {
								pattern: e("(^|\\|(?:\r?\n|\r)?)(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+(?=\\.)"),
								lookbehind: !0,
								inside: i
							},
							punctuation: /\||^\./
						}
					},
					inline: {
						pattern: e("(^|[^a-zA-Z\\d])(\\*\\*|__|\\?\\?|[*_%@+\\-^~])<MOD>*.+?\\2(?![a-zA-Z\\d])"),
						lookbehind: !0,
						inside: {
							bold: {
								pattern: e("(^(\\*\\*?)<MOD>*).+?(?=\\2)"),
								lookbehind: !0
							},
							italic: {
								pattern: e("(^(__?)<MOD>*).+?(?=\\2)"),
								lookbehind: !0
							},
							cite: {
								pattern: e("(^\\?\\?<MOD>*).+?(?=\\?\\?)"),
								lookbehind: !0,
								alias: "string"
							},
							code: {
								pattern: e("(^@<MOD>*).+?(?=@)"),
								lookbehind: !0,
								alias: "keyword"
							},
							inserted: {
								pattern: e("(^\\+<MOD>*).+?(?=\\+)"),
								lookbehind: !0
							},
							deleted: {
								pattern: e("(^-<MOD>*).+?(?=-)"),
								lookbehind: !0
							},
							span: {
								pattern: e("(^%<MOD>*).+?(?=%)"),
								lookbehind: !0
							},
							modifier: {
								pattern: e("(^\\*\\*|__|\\?\\?|[*_%@+\\-^~])<MOD>+"),
								lookbehind: !0,
								inside: i
							},
							punctuation: /[*_%?@+\-^~]+/
						}
					},
					"link-ref": {
						pattern: /^\[[^\]]+\]\S+$/m,
						inside: {
							string: {
								pattern: /(\[)[^\]]+(?=\])/,
								lookbehind: !0
							},
							url: {
								pattern: /(\])\S+$/,
								lookbehind: !0
							},
							punctuation: /[\[\]]/
						}
					},
					link: {
						pattern: e('"<MOD>*[^"]+":.+?(?=[^\\w/]?(?:\\s|$))'),
						inside: {
							text: {
								pattern: e('(^"<MOD>*)[^"]+(?=")'),
								lookbehind: !0
							},
							modifier: {
								pattern: e('(^")<MOD>+'),
								lookbehind: !0,
								inside: i
							},
							url: {
								pattern: /(:).+/,
								lookbehind: !0
							},
							punctuation: /[":]/
						}
					},
					image: {
						pattern: e("!(?:<MOD>|<PAR>|[<>=])*(?![<>=])[^!\\s()]+(?:\\([^)]+\\))?!(?::.+?(?=[^\\w/]?(?:\\s|$)))?"),
						inside: {
							source: {
								pattern: e("(^!(?:<MOD>|<PAR>|[<>=])*)(?![<>=])[^!\\s()]+(?:\\([^)]+\\))?(?=!)"),
								lookbehind: !0,
								alias: "url"
							},
							modifier: {
								pattern: e("(^!)(?:<MOD>|<PAR>|[<>=])+"),
								lookbehind: !0,
								inside: i
							},
							url: {
								pattern: /(:).+/,
								lookbehind: !0
							},
							punctuation: /[!:]/
						}
					},
					footnote: {
						pattern: /\b\[\d+\]/,
						alias: "comment",
						inside: {
							punctuation: /\[|\]/
						}
					},
					acronym: {
						pattern: /\b[A-Z\d]+\([^)]+\)/,
						inside: {
							comment: {
								pattern: /(\()[^)]+(?=\))/,
								lookbehind: !0
							},
							punctuation: /[()]/
						}
					},
					mark: {
						pattern: /\b\((?:TM|R|C)\)/,
						alias: "comment",
						inside: {
							punctuation: /[()]/
						}
					}
				}
			}
		}),
		a = t.phrase.inside,
		o = {
			inline: a.inline,
			link: a.link,
			image: a.image,
			footnote: a.footnote,
			acronym: a.acronym,
			mark: a.mark
		};
	t.tag.pattern = /<\/?(?!\d)[a-z0-9]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i;
	var r = a.inline.inside;
	r.bold.inside = o, r.italic.inside = o, r.inserted.inside = o, r.deleted.inside = o, r.span.inside = o;
	var d = a.table.inside;
	d.inline = o.inline, d.link = o.link, d.image = o.image, d.footnote = o.footnote, d.acronym = o.acronym, d.mark = o.mark
}(Prism);
! function(e) {
	function n(e) {
		return e.replace(/__/g, function() {
			return "(?:[\\w-]+|'[^'\n\r]*'|\"(?:\\\\.|[^\\\\\"\r\n])*\")"
		})
	}
	e.languages.toml = {
		comment: {
			pattern: /#.*/,
			greedy: !0
		},
		table: {
			pattern: RegExp(n("(^\\s*\\[\\s*(?:\\[\\s*)?)__(?:\\s*\\.\\s*__)*(?=\\s*\\])"), "m"),
			lookbehind: !0,
			greedy: !0,
			alias: "class-name"
		},
		key: {
			pattern: RegExp(n("(^\\s*|[{,]\\s*)__(?:\\s*\\.\\s*__)*(?=\\s*=)"), "m"),
			lookbehind: !0,
			greedy: !0,
			alias: "property"
		},
		string: {
			pattern: /"""(?:\\[\s\S]|[^\\])*?"""|'''[\s\S]*?'''|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*"/,
			greedy: !0
		},
		date: [{
			pattern: /\b\d{4}-\d{2}-\d{2}(?:[T\s]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?)?\b/i,
			alias: "number"
		}, {
			pattern: /\b\d{2}:\d{2}:\d{2}(?:\.\d+)?\b/,
			alias: "number"
		}],
		number: /(?:\b0(?:x[\da-zA-Z]+(?:_[\da-zA-Z]+)*|o[0-7]+(?:_[0-7]+)*|b[10]+(?:_[10]+)*))\b|[-+]?\b\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?\b|[-+]?\b(?:inf|nan)\b/,
		boolean: /\b(?:true|false)\b/,
		punctuation: /[.,=[\]{}]/
	}
}(Prism);
Prism.languages.twig = {
	comment: /\{#[\s\S]*?#\}/,
	tag: {
		pattern: /\{\{[\s\S]*?\}\}|\{%[\s\S]*?%\}/,
		inside: {
			ld: {
				pattern: /^(?:\{\{-?|\{%-?\s*\w+)/,
				inside: {
					punctuation: /^(?:\{\{|\{%)-?/,
					keyword: /\w+/
				}
			},
			rd: {
				pattern: /-?(?:%\}|\}\})$/,
				inside: {
					punctuation: /.+/
				}
			},
			string: {
				pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,
				inside: {
					punctuation: /^['"]|['"]$/
				}
			},
			keyword: /\b(?:even|if|odd)\b/,
			boolean: /\b(?:true|false|null)\b/,
			number: /\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,
			operator: [{
				pattern: /(\s)(?:and|b-and|b-xor|b-or|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,
				lookbehind: !0
			}, /[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],
			property: /\b[a-zA-Z_]\w*\b/,
			punctuation: /[()\[\]{}:.,]/
		}
	},
	other: {
		pattern: /\S(?:[\s\S]*\S)?/,
		inside: Prism.languages.markup
	}
};
! function(E) {
	var n =
		/\b(?:ACT|ACTIFSUB|CARRAY|CASE|CLEARGIF|COA|COA_INT|CONSTANTS|CONTENT|CUR|EDITPANEL|EFFECT|EXT|FILE|FLUIDTEMPLATE|FORM|FRAME|FRAMESET|GIFBUILDER|GMENU|GMENU_FOLDOUT|GMENU_LAYERS|GP|HMENU|HRULER|HTML|IENV|IFSUB|IMAGE|IMGMENU|IMGMENUITEM|IMGTEXT|IMG_RESOURCE|INCLUDE_TYPOSCRIPT|JSMENU|JSMENUITEM|LLL|LOAD_REGISTER|NO|PAGE|RECORDS|RESTORE_REGISTER|TEMPLATE|TEXT|TMENU|TMENUITEM|TMENU_LAYERS|USER|USER_INT|_GIFBUILDER|global|globalString|globalVar)\b/;
	E.languages.typoscript = {
		comment: [{
			pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,
			lookbehind: !0
		}, {
			pattern: /(^|[^\\:= \t]|(?:^|[^= \t])[ \t]+)\/\/.*/,
			lookbehind: !0,
			greedy: !0
		}, {
			pattern: /(^|[^"'])#.*/,
			lookbehind: !0,
			greedy: !0
		}],
		function: [{
			pattern: /<INCLUDE_TYPOSCRIPT:\s*source\s*=\s*(?:"[^"\r\n]*"|'[^'\r\n]*')\s*>/,
			inside: {
				string: {
					pattern: /"[^"\r\n]*"|'[^'\r\n]*'/,
					inside: {
						keyword: n
					}
				},
				keyword: {
					pattern: /INCLUDE_TYPOSCRIPT/
				}
			}
		}, {
			pattern: /@import\s*(?:"[^"\r\n]*"|'[^'\r\n]*')/,
			inside: {
				string: /"[^"\r\n]*"|'[^'\r\n]*'/
			}
		}],
		string: {
			pattern: /^([^=]*=[< ]?)(?:(?!]\n).)*/,
			lookbehind: !0,
			inside: {
				function: /{\$.*}/,
				keyword: n,
				number: /^[0-9]+$/,
				punctuation: /[,|:]/
			}
		},
		keyword: n,
		number: {
			pattern: /[0-9]+\s*[.{=]/,
			inside: {
				operator: /[.{=]/
			}
		},
		tag: {
			pattern: /\.?[\w-\\]+\.?/,
			inside: {
				punctuation: /\./
			}
		},
		punctuation: /[{}[\];(),.:|]/,
		operator: /[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/
	}, E.languages.tsconfig = E.languages.typoscript
}(Prism);
Prism.languages.unrealscript = {
	comment: /\/\/.*|\/\*[\s\S]*?\*\//,
	string: {
		pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
		greedy: !0
	},
	category: {
		pattern: /(\b(?:(?:autoexpand|hide|show)categories|var)\s*\()[^()]+(?=\))/,
		lookbehind: !0,
		greedy: !0,
		alias: "property"
	},
	metadata: {
		pattern: /(\w\s*)<\s*\w+\s*=[^<>|=\r\n]+(?:\|\s*\w+\s*=[^<>|=\r\n]+)*>/,
		lookbehind: !0,
		greedy: !0,
		inside: {
			property: /\w+(?=\s*=)/,
			operator: /=/,
			punctuation: /[<>|]/
		}
	},
	macro: {
		pattern: /`\w+/,
		alias: "property"
	},
	"class-name": {
		pattern: /(\b(?:class|enum|extends|interface|state(?:\(\))?|struct|within)\s+)\w+/,
		lookbehind: !0
	},
	keyword: /\b(?:abstract|actor|array|auto|autoexpandcategories|bool|break|byte|case|class|classgroup|client|coerce|collapsecategories|config|const|continue|default|defaultproperties|delegate|dependson|deprecated|do|dontcollapsecategories|editconst|editinlinenew|else|enum|event|exec|export|extends|final|float|for|forcescriptorder|foreach|function|goto|guid|hidecategories|hidedropdown|if|ignores|implements|inherits|input|int|interface|iterator|latent|local|material|name|native|nativereplication|noexport|nontransient|noteditinlinenew|notplaceable|operator|optional|out|pawn|perobjectconfig|perobjectlocalized|placeable|postoperator|preoperator|private|protected|reliable|replication|return|server|showcategories|simulated|singular|state|static|string|struct|structdefault|structdefaultproperties|switch|texture|transient|travel|unreliable|until|var|vector|while|within)\b/,
	function: /[a-z_]\w*(?=\s*\()/i,
	boolean: /\b(?:false|true)\b/,
	number: /\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,
	operator: />>|<<|--|\+\+|\*\*|[-+*/~!=<>$@]=?|&&?|\|\|?|\^\^?|[?:%]|\b(?:Cross|Dot|ClockwiseFrom)\b/,
	punctuation: /[()[\]{};,.]/
}, Prism.languages.uc = Prism.languages.uscript = Prism.languages.unrealscript;
Prism.languages.uri = {
	scheme: {
		pattern: /^[a-z][a-z0-9+.-]*:/im,
		greedy: !0,
		inside: {
			"scheme-delimiter": /:$/
		}
	},
	fragment: {
		pattern: /#[\w\-.~!$&'()*+,;=%:@/?]*/,
		inside: {
			"fragment-delimiter": /^#/
		}
	},
	query: {
		pattern: /\?[\w\-.~!$&'()*+,;=%:@/?]*/,
		inside: {
			"query-delimiter": {
				pattern: /^\?/,
				greedy: !0
			},
			"pair-delimiter": /[&;]/,
			pair: {
				pattern: /^[^=][\s\S]*/,
				inside: {
					key: /^[^=]+/,
					value: {
						pattern: /(^=)[\s\S]+/,
						lookbehind: !0
					}
				}
			}
		}
	},
	authority: {
		pattern: RegExp(
			"^//(?:[\\w\\-.~!$&'()*+,;=%:]*@)?(?:\\[(?:[0-9a-fA-F:.]{2,48}|v[0-9a-fA-F]+\\.[\\w\\-.~!$&'()*+,;=]+)\\]|[\\w\\-.~!$&'()*+,;=%]*)(?::\\d*)?",
			"m"),
		inside: {
			"authority-delimiter": /^\/\//,
			"user-info-segment": {
				pattern: /^[\w\-.~!$&'()*+,;=%:]*@/,
				inside: {
					"user-info-delimiter": /@$/,
					"user-info": /^[\w\-.~!$&'()*+,;=%:]+/
				}
			},
			"port-segment": {
				pattern: /:\d*$/,
				inside: {
					"port-delimiter": /^:/,
					port: /^\d+/
				}
			},
			host: {
				pattern: /[\s\S]+/,
				inside: {
					"ip-literal": {
						pattern: /^\[[\s\S]+\]$/,
						inside: {
							"ip-literal-delimiter": /^\[|\]$/,
							"ipv-future": /^v[\s\S]+/,
							"ipv6-address": /^[\s\S]+/
						}
					},
					"ipv4-address": /^(?:(?:[03-9]\d?|[12]\d{0,2})\.){3}(?:[03-9]\d?|[12]{0,2})$/
				}
			}
		}
	},
	path: {
		pattern: /^[\w\-.~!$&'()*+,;=%:@/]+/m,
		inside: {
			"path-separator": /\//
		}
	}
}, Prism.languages.url = Prism.languages.uri;
! function(e) {
	var n = {
		pattern: /[\s\S]+/,
		inside: null
	};
	e.languages.v = e.languages.extend("clike", {
		string: [{
			pattern: /`(?:\\\`|\\?[^\`]{1,2})`/,
			alias: "rune"
		}, {
			pattern: /r?(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
			alias: "quoted-string",
			greedy: !0,
			inside: {
				interpolation: {
					pattern: /((?:^|[^\\])(?:\\{2})*)\$(?:\{[^{}]*\}|\w+(?:\.\w+(?:\([^\(\)]*\))?|\[[^\[\]]+\])*)/,
					lookbehind: !0,
					inside: {
						"interpolation-variable": {
							pattern: /^\$\w[\s\S]*$/,
							alias: "variable"
						},
						"interpolation-punctuation": {
							pattern: /^\${|}$/,
							alias: "punctuation"
						},
						"interpolation-expression": n
					}
				}
			}
		}],
		"class-name": {
			pattern: /(\b(?:enum|interface|struct|type)\s+)(?:C\.)?[\w]+/,
			lookbehind: !0
		},
		keyword: /(?:\b(?:as|asm|assert|atomic|break|chan|const|continue|defer|else|embed|enum|fn|for|__global|go(?:to)?|if|import|in|interface|is|lock|match|module|mut|none|or|pub|return|rlock|select|shared|sizeof|static|struct|type(?:of)?|union|unsafe)|\$(?:if|else|for)|#(?:include|flag))\b/,
		number: /\b(?:0x[a-f\d]+(?:_[a-f\d]+)*|0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?)\b/i,
		operator: /~|\?|[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\.?/,
		builtin: /\b(?:any(?:_int|_float)?|bool|byte(?:ptr)?|charptr|f(?:32|64)|i(?:8|16|nt|64|128)|rune|size_t|string|u(?:16|32|64|128)|voidptr)\b/
	}), n.inside = e.languages.v, e.languages.insertBefore("v", "operator", {
		attribute: {
			pattern: /^\s*\[(?:deprecated|unsafe_fn|typedef|live|inline|flag|ref_only|windows_stdcall|direct_array_access)\]/m,
			alias: "annotation",
			inside: {
				punctuation: /[\[\]]/,
				keyword: /\w+/
			}
		},
		generic: {
			pattern: /\<\w+\>(?=\s*[\)\{])/,
			inside: {
				punctuation: /[<>]/,
				"class-name": /\w+/
			}
		}
	}), e.languages.insertBefore("v", "function", {
		"generic-function": {
			pattern: /\w+\s*<\w+>(?=\()/,
			inside: {
				function: /^\w+/,
				generic: {
					pattern: /<\w+>/,
					inside: e.languages.v.generic.inside
				}
			}
		}
	})
}(Prism);
Prism.languages.vala = Prism.languages.extend("clike", {
	"class-name": [{
		pattern: /\b[A-Z]\w*(?:\.\w+)*\b(?=(?:\?\s+|\*?\s+\*?)\w+)/,
		inside: {
			punctuation: /\./
		}
	}, {
		pattern: /(\[)[A-Z]\w*(?:\.\w+)*\b/,
		lookbehind: !0,
		inside: {
			punctuation: /\./
		}
	}, {
		pattern: /(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/,
		lookbehind: !0,
		inside: {
			punctuation: /\./
		}
	}, {
		pattern: /((?:\b(?:class|interface|new|struct|enum)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/,
		lookbehind: !0,
		inside: {
			punctuation: /\./
		}
	}],
	keyword: /\b(?:bool|char|double|float|null|size_t|ssize_t|string|unichar|void|int|int8|int16|int32|int64|long|short|uchar|uint|uint8|uint16|uint32|uint64|ulong|ushort|class|delegate|enum|errordomain|interface|namespace|struct|break|continue|do|for|foreach|return|while|else|if|switch|assert|case|default|abstract|const|dynamic|ensures|extern|inline|internal|override|private|protected|public|requires|signal|static|virtual|volatile|weak|async|owned|unowned|try|catch|finally|throw|as|base|construct|delete|get|in|is|lock|new|out|params|ref|sizeof|set|this|throws|typeof|using|value|var|yield)\b/i,
	function: /\w+(?=\s*\()/,
	number: /(?:\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)(?:f|u?l?)?/i,
	operator: /\+\+|--|&&|\|\||<<=?|>>=?|=>|->|~|[+\-*\/%&^|=!<>]=?|\?\??|\.\.\./,
	punctuation: /[{}[\];(),.:]/,
	constant: /\b[A-Z0-9_]+\b/
}), Prism.languages.insertBefore("vala", "string", {
	"raw-string": {
		pattern: /"""[\s\S]*?"""/,
		greedy: !0,
		alias: "string"
	},
	"template-string": {
		pattern: /@"[\s\S]*?"/,
		greedy: !0,
		inside: {
			interpolation: {
				pattern: /\$(?:\([^)]*\)|[a-zA-Z]\w*)/,
				inside: {
					delimiter: {
						pattern: /^\$\(?|\)$/,
						alias: "punctuation"
					},
					rest: Prism.languages.vala
				}
			},
			string: /[\s\S]+/
		}
	}
}), Prism.languages.insertBefore("vala", "keyword", {
	regex: {
		pattern: /\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[imsx]{0,4}(?=\s*(?:$|[\r\n,.;})\]]))/,
		greedy: !0,
		inside: {
			"regex-source": {
				pattern: /^(\/)[\s\S]+(?=\/[a-z]*$)/,
				lookbehind: !0,
				alias: "language-regex",
				inside: Prism.languages.regex
			},
			"regex-flags": /[a-z]+$/,
			"regex-delimiter": /^\/|\/$/
		}
	}
});
! function(e) {
	e.languages.velocity = e.languages.extend("markup", {});
	var n = {
		variable: {
			pattern: /(^|[^\\](?:\\\\)*)\$!?(?:[a-z][\w-]*(?:\([^)]*\))?(?:\.[a-z][\w-]*(?:\([^)]*\))?|\[[^\]]+])*|{[^}]+})/i,
			lookbehind: !0,
			inside: {}
		},
		string: {
			pattern: /"[^"]*"|'[^']*'/,
			greedy: !0
		},
		number: /\b\d+\b/,
		boolean: /\b(?:true|false)\b/,
		operator: /[=!<>]=?|[+*/%-]|&&|\|\||\.\.|\b(?:eq|g[et]|l[et]|n(?:e|ot))\b/,
		punctuation: /[(){}[\]:,.]/
	};
	n.variable.inside = {
		string: n.string,
		function: {
			pattern: /([^\w-])[a-z][\w-]*(?=\()/,
			lookbehind: !0
		},
		number: n.number,
		boolean: n.boolean,
		punctuation: n.punctuation
	}, e.languages.insertBefore("velocity", "comment", {
		unparsed: {
			pattern: /(^|[^\\])#\[\[[\s\S]*?]]#/,
			lookbehind: !0,
			greedy: !0,
			inside: {
				punctuation: /^#\[\[|]]#$/
			}
		},
		"velocity-comment": [{
			pattern: /(^|[^\\])#\*[\s\S]*?\*#/,
			lookbehind: !0,
			greedy: !0,
			alias: "comment"
		}, {
			pattern: /(^|[^\\])##.*/,
			lookbehind: !0,
			greedy: !0,
			alias: "comment"
		}],
		directive: {
			pattern: /(^|[^\\](?:\\\\)*)#@?(?:[a-z][\w-]*|{[a-z][\w-]*})(?:\s*\((?:[^()]|\([^()]*\))*\))?/i,
			lookbehind: !0,
			inside: {
				keyword: {
					pattern: /^#@?(?:[a-z][\w-]*|{[a-z][\w-]*})|\bin\b/,
					inside: {
						punctuation: /[{}]/
					}
				},
				rest: n
			}
		},
		variable: n.variable
	}), e.languages.velocity.tag.inside["attr-value"].inside.rest = e.languages.velocity
}(Prism);
Prism.languages.verilog = {
	comment: /\/\/.*|\/\*[\s\S]*?\*\//,
	string: {
		pattern: /"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,
		greedy: !0
	},
	property: /\B\$\w+\b/,
	constant: /\B`\w+\b/,
	function: /\w+(?=\()/,
	keyword: /\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|class|case|casex|casez|cell|chandle|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endspecify|endsequence|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_onevent|pulsestyle_ondetect|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\b/,
	important: /\b(?:always_latch|always_comb|always_ff|always)\b ?@?/,
	number: /\B##?\d+|(?:\b\d+)?'[odbh] ?[\da-fzx_?]+|\b(?:\d*[._])?\d+(?:e[-+]?\d+)?/i,
	operator: /[-+{}^~%*\/?=!<>&|]+/,
	punctuation: /[[\];(),.:]/
};
Prism.languages.vhdl = {
	comment: /--.+/,
	"vhdl-vectors": {
		pattern: /\b[oxb]"[\da-f_]+"|"[01uxzwlh-]+"/i,
		alias: "number"
	},
	"quoted-function": {
		pattern: /"\S+?"(?=\()/,
		alias: "function"
	},
	string: /"(?:[^\\"\r\n]|\\(?:\r\n|[\s\S]))*"/,
	constant: /\b(?:use|library)\b/i,
	keyword: /\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\b/i,
	boolean: /\b(?:true|false)\b/i,
	function: /\w+(?=\()/,
	number: /'[01uxzwlh-]'|\b(?:\d+#[\da-f_.]+#|\d[\d_.]*)(?:e[-+]?\d+)?/i,
	operator: /[<>]=?|:=|[-+*/&=]|\b(?:abs|not|mod|rem|sll|srl|sla|sra|rol|ror|and|or|nand|xnor|xor|nor)\b/i,
	punctuation: /[{}[\];(),.:]/
};
Prism.languages.vim = {
	string: /"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\r\n]|'')*'/,
	comment: /".*/,
	function: /\w+(?=\()/,
	keyword: /\b(?:ab|abbreviate|abc|abclear|abo|aboveleft|al|all|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|ar|args|argu|argument|as|ascii|bad|badd|ba|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bN|bNext|bo|botright|bp|bprevious|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|br|brewind|bro|browse|bufdo|b|buffer|buffers|bun|bunload|bw|bwipeout|ca|cabbrev|cabc|cabclear|caddb|caddbuffer|cad|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cgetb|cgetbuffer|cgete|cgetexpr|cg|cgetfile|c|change|changes|chd|chdir|che|checkpath|checkt|checktime|cla|clast|cl|clist|clo|close|cmapc|cmapclear|cnew|cnewer|cn|cnext|cN|cNext|cnf|cnfile|cNfcNfile|cnorea|cnoreabbrev|col|colder|colo|colorscheme|comc|comclear|comp|compiler|conf|confirm|con|continue|cope|copen|co|copy|cpf|cpfile|cp|cprevious|cq|cquit|cr|crewind|cuna|cunabbrev|cu|cunmap|cw|cwindow|debugg|debuggreedy|delc|delcommand|d|delete|delf|delfunction|delm|delmarks|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|di|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|earlier|echoe|echoerr|echom|echomsg|echon|e|edit|el|else|elsei|elseif|em|emenu|endfo|endfor|endf|endfunction|endfun|en|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fina|finally|fin|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|folddoc|folddoclosed|foldd|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|ha|hardcopy|h|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iuna|iunabbrev|iu|iunmap|j|join|ju|jumps|k|keepalt|keepj|keepjumps|kee|keepmarks|laddb|laddbuffer|lad|laddexpr|laddf|laddfile|lan|language|la|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|let|left|lefta|leftabove|lex|lexpr|lf|lfile|lfir|lfirst|lgetb|lgetbuffer|lgete|lgetexpr|lg|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|l|list|ll|lla|llast|lli|llist|lmak|lmake|lm|lmap|lmapc|lmapclear|lnew|lnewer|lne|lnext|lN|lNext|lnf|lnfile|lNf|lNfile|ln|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lpf|lpfile|lp|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|mak|make|ma|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkvie|mkview|mkv|mkvimrc|mod|mode|m|move|mzf|mzfile|mz|mzscheme|nbkey|new|n|next|N|Next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|omapc|omapclear|on|only|o|open|opt|options|ou|ounmap|pc|pclose|ped|pedit|pe|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|p|print|P|Print|profd|profdel|prof|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptN|ptNext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|pyf|pyfile|py|python|qa|qall|q|quit|quita|quitall|r|read|rec|recover|redi|redir|red|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|rub|ruby|rubyd|rubydo|rubyf|rubyfile|ru|runtime|rv|rviminfo|sal|sall|san|sandbox|sa|sargument|sav|saveas|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbN|sbNext|sbp|sbprevious|sbr|sbrewind|sb|sbuffer|scripte|scriptencoding|scrip|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sla|slast|sl|sleep|sm|smagic|smap|smapc|smapclear|sme|smenu|sn|snext|sN|sNext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|sor|sort|so|source|spelld|spelldump|spe|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|sp|split|spr|sprevious|sre|srewind|sta|stag|startg|startgreplace|star|startinsert|startr|startreplace|stj|stjump|st|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tab|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabnew|tabn|tabnext|tabN|tabNext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|ta|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tn|tnext|tN|tNext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|una|unabbreviate|u|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|verb|verbose|ve|version|vert|vertical|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|vi|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|wa|wall|wh|while|winc|wincmd|windo|winp|winpos|win|winsize|wn|wnext|wN|wNext|wp|wprevious|wq|wqa|wqall|w|write|ws|wsverb|wv|wviminfo|X|xa|xall|x|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|XMLent|XMLns|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\b/,
	builtin: /\b(?:autocmd|acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|t_AB|t_AF|t_al|t_AL|t_bc|t_cd|t_ce|t_Ce|t_cl|t_cm|t_Co|t_cs|t_Cs|t_CS|t_CV|t_da|t_db|t_dl|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_fs|t_IE|t_IS|t_k1|t_K1|t_k2|t_k3|t_K3|t_k4|t_K4|t_k5|t_K5|t_k6|t_K6|t_k7|t_K7|t_k8|t_K8|t_k9|t_K9|t_KA|t_kb|t_kB|t_KB|t_KC|t_kd|t_kD|t_KD|t_ke|t_KE|t_KF|t_KG|t_kh|t_KH|t_kI|t_KI|t_KJ|t_KK|t_kl|t_KL|t_kN|t_kP|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_RI|t_RV|t_Sb|t_se|t_Sf|t_SI|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_WP|t_WS|t_xs|t_ZH|t_ZR)\b/,
	number: /\b(?:0x[\da-f]+|\d+(?:\.\d+)?)\b/i,
	operator: /\|\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\/%?]|\b(?:is(?:not)?)\b/,
	punctuation: /[{}[\](),;:]/
};
Prism.languages["visual-basic"] = {
	comment: {
		pattern: /(?:['‘’]|REM\b)(?:[^\r\n_]|_(?:\r\n?|\n)?)*/i,
		inside: {
			keyword: /^REM/i
		}
	},
	directive: {
		pattern: /#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:[^\S\r\n]_[^\S\r\n]*(?:\r\n?|\n)|.)+/i,
		alias: "comment",
		greedy: !0
	},
	string: {
		pattern: /\$?["“”](?:["“”]{2}|[^"“”])*["“”]C?/i,
		greedy: !0
	},
	date: {
		pattern: /#[^\S\r\n]*(?:\d+([/-])\d+\1\d+(?:[^\S\r\n]+(?:\d+[^\S\r\n]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[^\S\r\n]*(?:AM|PM))?))?|\d+[^\S\r\n]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[^\S\r\n]*(?:AM|PM))?)[^\S\r\n]*#/i,
		alias: "builtin"
	},
	number: /(?:(?:\b\d+(?:\.\d+)?|\.\d+)(?:E[+-]?\d+)?|&[HO][\dA-F]+)(?:U?[ILS]|[FRD])?/i,
	boolean: /\b(?:True|False|Nothing)\b/i,
	keyword: /\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Currency|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|Out|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|SByte|Select|Set|Shadows|Shared|short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TryCast|Type|TypeOf|U(?:Integer|Long|Short)|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Until|Xor)\b/i,
	operator: [/[+\-*/\\^<=>&#@$%!]/, {
		pattern: /([^\S\r\n])_(?=[^\S\r\n]*[\r\n])/,
		lookbehind: !0
	}],
	punctuation: /[{}().,:?]/
}, Prism.languages.vb = Prism.languages["visual-basic"], Prism.languages.vba = Prism.languages["visual-basic"];
Prism.languages.warpscript = {
	comment: /#.*|\/\/.*|\/\*[\s\S]*?\*\//,
	string: {
		pattern: /"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'|<'(?:[^\\']|'(?!>)|\\.)*'>/,
		greedy: !0
	},
	variable: /\$\S+/,
	macro: {
		pattern: /@\S+/,
		alias: "property"
	},
	keyword: /\b(?:BREAK|CHECKMACRO|CONTINUE|CUDF|DEFINED|DEFINEDMACRO|EVAL|FAIL|FOR|FOREACH|FORSTEP|IFT|IFTE|MSGFAIL|NRETURN|RETHROW|RETURN|SWITCH|TRY|UDF|UNTIL|WHILE)\b/,
	number: /[+-]?\b(?:NaN|Infinity|\d+(?:\.\d*)?(?:[Ee][+-]?\d+)?|0x[\da-fA-F]+|0b[01]+)\b/,
	boolean: /\b(?:false|true|F|T)\b/,
	punctuation: /<%|%>|[{}[\]()]/,
	operator: /==|&&?|\|\|?|\*\*?|>>>?|<<|[<>!~]=?|[-/%^]|\+!?|\b(?:AND|NOT|OR)\b/
};
Prism.languages.wasm = {
	comment: [/\(;[\s\S]*?;\)/, {
		pattern: /;;.*/,
		greedy: !0
	}],
	string: {
		pattern: /"(?:\\[\s\S]|[^"\\])*"/,
		greedy: !0
	},
	keyword: [{
			pattern: /\b(?:align|offset)=/,
			inside: {
				operator: /=/
			}
		}, {
			pattern: /\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,
			inside: {
				punctuation: /\./
			}
		},
		/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/
	],
	variable: /\$[\w!#$%&'*+\-./:<=>?@\\^_`|~]+/i,
	number: /[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,
	punctuation: /[()]/
};
Prism.languages.wiki = Prism.languages.extend("markup", {
	"block-comment": {
		pattern: /(^|[^\\])\/\*[\s\S]*?\*\//,
		lookbehind: !0,
		alias: "comment"
	},
	heading: {
		pattern: /^(=+)[^=\r\n].*?\1/m,
		inside: {
			punctuation: /^=+|=+$/,
			important: /.+/
		}
	},
	emphasis: {
		pattern: /('{2,5}).+?\1/,
		inside: {
			"bold-italic": {
				pattern: /(''''').+?(?=\1)/,
				lookbehind: !0,
				alias: ["bold", "italic"]
			},
			bold: {
				pattern: /(''')[^'](?:.*?[^'])?(?=\1)/,
				lookbehind: !0
			},
			italic: {
				pattern: /('')[^'](?:.*?[^'])?(?=\1)/,
				lookbehind: !0
			},
			punctuation: /^''+|''+$/
		}
	},
	hr: {
		pattern: /^-{4,}/m,
		alias: "punctuation"
	},
	url: [/ISBN +(?:97[89][ -]?)?(?:\d[ -]?){9}[\dx]\b|(?:RFC|PMID) +\d+/i, /\[\[.+?\]\]|\[.+?\]/],
	variable: [/__[A-Z]+__/, /\{{3}.+?\}{3}/, /\{\{.+?\}\}/],
	symbol: [/^#redirect/im, /~{3,5}/],
	"table-tag": {
		pattern: /((?:^|[|!])[|!])[^|\r\n]+\|(?!\|)/m,
		lookbehind: !0,
		inside: {
			"table-bar": {
				pattern: /\|$/,
				alias: "punctuation"
			},
			rest: Prism.languages.markup.tag.inside
		}
	},
	punctuation: /^(?:\{\||\|\}|\|-|[*#:;!|])|\|\||!!/m
}), Prism.languages.insertBefore("wiki", "tag", {
	nowiki: {
		pattern: /<(nowiki|pre|source)\b[^>]*>[\s\S]*?<\/\1>/i,
		inside: {
			tag: {
				pattern: /<(?:nowiki|pre|source)\b[^>]*>|<\/(?:nowiki|pre|source)>/i,
				inside: Prism.languages.markup.tag.inside
			}
		}
	}
});
! function(n) {
	n.languages.xeora = n.languages.extend("markup", {
		constant: {
			pattern: /\$(?:DomainContents|PageRenderDuration)\$/,
			inside: {
				punctuation: {
					pattern: /\$/
				}
			}
		},
		variable: {
			pattern: /\$@?(?:#+|[-+*~=^])?[\w.]+\$/,
			inside: {
				punctuation: {
					pattern: /[$.]/
				},
				operator: {
					pattern: /#+|[-+*~=^@]/
				}
			}
		},
		"function-inline": {
			pattern: /\$F:[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\$/,
			inside: {
				variable: {
					pattern: /(?:[,|])@?(?:#+|[-+*~=^])?[\w.]+/,
					inside: {
						punctuation: {
							pattern: /[,.|]/
						},
						operator: {
							pattern: /#+|[-+*~=^@]/
						}
					}
				},
				punctuation: {
					pattern: /\$\w:|[$:?.,|]/
				}
			},
			alias: "function"
		},
		"function-block": {
			pattern: /\$XF:{[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?}:XF\$/,
			inside: {
				punctuation: {
					pattern: /[$:{}?.,|]/
				}
			},
			alias: "function"
		},
		"directive-inline": {
			pattern: /\$\w(?:#\d+\+?)?(?:\[[-\w.]+])?:[-\/\w.]+\$/,
			inside: {
				punctuation: {
					pattern: /\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,
					inside: {
						tag: {
							pattern: /#\d/
						}
					}
				}
			},
			alias: "function"
		},
		"directive-block-open": {
			pattern: /\$\w+:{|\$\w(?:#\d+\+?)?(?:\[[-\w.]+])?:[-\w.]+:{(?:![A-Z]+)?/,
			inside: {
				punctuation: {
					pattern: /\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,
					inside: {
						tag: {
							pattern: /#\d/
						}
					}
				},
				attribute: {
					pattern: /![A-Z]+$/,
					inside: {
						punctuation: {
							pattern: /!/
						}
					},
					alias: "keyword"
				}
			},
			alias: "function"
		},
		"directive-block-separator": {
			pattern: /}:[-\w.]+:{/,
			inside: {
				punctuation: {
					pattern: /[:{}]/
				}
			},
			alias: "function"
		},
		"directive-block-close": {
			pattern: /}:[-\w.]+\$/,
			inside: {
				punctuation: {
					pattern: /[:{}$]/
				}
			},
			alias: "function"
		}
	}), n.languages.insertBefore("inside", "punctuation", {
		variable: n.languages.xeora["function-inline"].inside.variable
	}, n.languages.xeora["function-block"]), n.languages.xeoracube = n.languages.xeora
}(Prism);
! function(n) {
	function a(a, e) {
		n.languages[a] && n.languages.insertBefore(a, "comment", {
			"doc-comment": e
		})
	}
	var e = n.languages.markup.tag,
		t = {
			pattern: /\/\/\/.*/,
			greedy: !0,
			alias: "comment",
			inside: {
				tag: e
			}
		},
		g = {
			pattern: /'''.*/,
			greedy: !0,
			alias: "comment",
			inside: {
				tag: e
			}
		};
	a("csharp", t), a("fsharp", t), a("vbnet", g)
}(Prism);
Prism.languages.xojo = {
	comment: {
		pattern: /(?:'|\/\/|Rem\b).+/i,
		inside: {
			keyword: /^Rem/i
		}
	},
	string: {
		pattern: /"(?:""|[^"])*"/,
		greedy: !0
	},
	number: [/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i, /&[bchou][a-z\d]+/i],
	symbol: /#(?:If|Else|ElseIf|Endif|Pragma)\b/i,
	keyword: /\b(?:AddHandler|App|Array|As(?:signs)?|By(?:Ref|Val)|Break|Call|Case|Catch|Const|Continue|CurrentMethodName|Declare|Dim|Do(?:wnTo)?|Each|Else(?:If)?|End|Exit|Extends|False|Finally|For|Global|If|In|Lib|Loop|Me|Next|Nil|Optional|ParamArray|Raise(?:Event)?|ReDim|Rem|RemoveHandler|Return|Select|Self|Soft|Static|Step|Super|Then|To|True|Try|Ubound|Until|Using|Wend|While)\b/i,
	operator: /<[=>]?|>=?|[+\-*\/\\^=]|\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|Xor|WeakAddressOf)\b/i,
	punctuation: /[.,;:()]/
};
! function(r) {
	r.languages.xquery = r.languages.extend("markup", {
			"xquery-comment": {
				pattern: /\(:[\s\S]*?:\)/,
				greedy: !0,
				alias: "comment"
			},
			string: {
				pattern: /(["'])(?:\1\1|(?!\1)[\s\S])*\1/,
				greedy: !0
			},
			extension: {
				pattern: /\(#.+?#\)/,
				alias: "symbol"
			},
			variable: /\$[\w-:]+/,
			axis: {
				pattern: /(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,
				lookbehind: !0,
				alias: "operator"
			},
			"keyword-operator": {
				pattern: /(^|[^:-])\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\b(?=$|[^:-])/,
				lookbehind: !0,
				alias: "operator"
			},
			keyword: {
				pattern: /(^|[^:-])\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\b(?=$|[^:-])/,
				lookbehind: !0
			},
			function: /[\w-]+(?::[\w-]+)*(?=\s*\()/,
			"xquery-element": {
				pattern: /(element\s+)[\w-]+(?::[\w-]+)*/,
				lookbehind: !0,
				alias: "tag"
			},
			"xquery-attribute": {
				pattern: /(attribute\s+)[\w-]+(?::[\w-]+)*/,
				lookbehind: !0,
				alias: "attr-name"
			},
			builtin: {
				pattern: /(^|[^:-])\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|ENTITIES|ENTITY|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|ID|IDREFS?|int|integer|language|long|Name|NCName|negativeInteger|NMTOKENS?|nonNegativeInteger|nonPositiveInteger|normalizedString|NOTATION|positiveInteger|QName|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\b(?=$|[^:-])/,
				lookbehind: !0
			},
			number: /\b\d+(?:\.\d+)?(?:E[+-]?\d+)?/,
			operator: [/[+*=?|@]|\.\.?|:=|!=|<[=<]?|>[=>]?/, {
				pattern: /(\s)-(?=\s)/,
				lookbehind: !0
			}],
			punctuation: /[[\](){},;:/]/
		}), r.languages.xquery.tag.pattern =
		/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|{(?!{)(?:{(?:{[^{}]*}|[^{}])*}|[^{}])+}|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,
		r.languages.xquery.tag.inside["attr-value"].pattern =
		/=(?:("|')(?:\\[\s\S]|{(?!{)(?:{(?:{[^{}]*}|[^{}])*}|[^{}])+}|(?!\1)[^\\])*\1|[^\s'">=]+)/i, r.languages.xquery.tag.inside[
			"attr-value"].inside.punctuation = /^="|"$/, r.languages.xquery.tag.inside["attr-value"].inside.expression = {
			pattern: /{(?!{)(?:{(?:{[^{}]*}|[^{}])*}|[^{}])+}/,
			inside: r.languages.xquery,
			alias: "language-xquery"
		};
	var s = function(e) {
			return "string" == typeof e ? e : "string" == typeof e.content ? e.content : e.content.map(s).join("")
		},
		l = function(e) {
			for (var t = [], n = 0; n < e.length; n++) {
				var a = e[n],
					o = !1;
				if ("string" != typeof a && ("tag" === a.type && a.content[0] && "tag" === a.content[0].type ? "</" === a.content[0]
						.content[0].content ? 0 < t.length && t[t.length - 1].tagName === s(a.content[0].content[1]) && t.pop() : "/>" ===
						a.content[a.content.length - 1].content || t.push({
							tagName: s(a.content[0].content[1]),
							openedBraces: 0
						}) : !(0 < t.length && "punctuation" === a.type && "{" === a.content) || e[n + 1] && "punctuation" === e[n + 1].type &&
						"{" === e[n + 1].content || e[n - 1] && "plain-text" === e[n - 1].type && "{" === e[n - 1].content ? 0 < t.length &&
						0 < t[t.length - 1].openedBraces && "punctuation" === a.type && "}" === a.content ? t[t.length - 1].openedBraces--
						: "comment" !== a.type && (o = !0) : t[t.length - 1].openedBraces++), (o || "string" == typeof a) && 0 < t.length &&
					0 === t[t.length - 1].openedBraces) {
					var i = s(a);
					n < e.length - 1 && ("string" == typeof e[n + 1] || "plain-text" === e[n + 1].type) && (i += s(e[n + 1]), e.splice(
						n + 1, 1)), 0 < n && ("string" == typeof e[n - 1] || "plain-text" === e[n - 1].type) && (i = s(e[n - 1]) + i, e.splice(
						n - 1, 1), n--), /^\s+$/.test(i) ? e[n] = i : e[n] = new r.Token("plain-text", i, null, i)
				}
				a.content && "string" != typeof a.content && l(a.content)
			}
		};
	r.hooks.add("after-tokenize", function(e) {
		"xquery" === e.language && l(e.tokens)
	})
}(Prism);
Prism.languages.yang = {
	comment: /\/\*[\s\S]*?\*\/|\/\/.*/,
	string: {
		pattern: /"(?:[^\\"]|\\.)*"|'[^']*'/,
		greedy: !0
	},
	keyword: {
		pattern: /(^|[{};\r\n][ \t]*)[a-z_][\w.-]*/i,
		lookbehind: !0
	},
	namespace: {
		pattern: /(\s)[a-z_][\w.-]*(?=:)/i,
		lookbehind: !0
	},
	boolean: /\b(?:false|true)\b/,
	operator: /\+/,
	punctuation: /[{};:]/
};
! function(n) {
	function e(e) {
		return function() {
			return e
		}
	}
	var r =
		/\b(?:align|allowzero|and|asm|async|await|break|cancel|catch|comptime|const|continue|defer|else|enum|errdefer|error|export|extern|fn|for|if|inline|linksection|nakedcc|noalias|null|or|orelse|packed|promise|pub|resume|return|stdcallcc|struct|suspend|switch|test|threadlocal|try|undefined|union|unreachable|usingnamespace|var|volatile|while)\b/,
		a = "\\b(?!" + r.source + ")(?!\\d)\\w+\\b",
		o = "align\\s*\\((?:[^()]|\\([^()]*\\))*\\)",
		s = "(?!\\s)(?:!?\\s*(?:" +
		"(?:\\?|\\bpromise->|(?:\\[[^[\\]]*\\]|\\*(?!\\*)|\\*\\*)(?:\\s*<ALIGN>|\\s*const\\b|\\s*volatile\\b|\\s*allowzero\\b)*)"
		.replace(/<ALIGN>/g, e(o)) + "\\s*)*" + "(?:\\bpromise\\b|(?:\\berror\\.)?<ID>(?:\\.<ID>)*(?!\\s+<ID>))".replace(
			/<ID>/g, e(a)) + ")+";
	n.languages.zig = {
		comment: [{
			pattern: /\/{3}.*/,
			alias: "doc-comment"
		}, /\/{2}.*/],
		string: [{
			pattern: /(^|[^\\@])c?"(?:[^"\\\r\n]|\\.)*"/,
			lookbehind: !0,
			greedy: !0
		}, {
			pattern: /([\r\n])([ \t]+c?\\{2}).*(?:(?:\r\n?|\n)\2.*)*/,
			lookbehind: !0,
			greedy: !0
		}, {
			pattern: /(^|[^\\])'(?:[^'\\\r\n]|\\(?:.|x[a-fA-F\d]{2}|u\{[a-fA-F\d]{1,6}\}))'/,
			lookbehind: !0,
			greedy: !0
		}],
		builtin: /\B@(?!\d)\w+(?=\s*\()/,
		label: {
			pattern: /(\b(?:break|continue)\s*:\s*)\w+\b|\b(?!\d)\w+\b(?=\s*:\s*(?:\{|while\b))/,
			lookbehind: !0
		},
		"class-name": [/\b(?!\d)\w+(?=\s*=\s*(?:(?:extern|packed)\s+)?(?:enum|struct|union)\s*[({])/, {
			pattern: RegExp("(:\\s*)<TYPE>(?=\\s*(?:<ALIGN>\\s*)?[=;,)])|<TYPE>(?=\\s*(?:<ALIGN>\\s*)?\\{)".replace(/<TYPE>/g,
				e(s)).replace(/<ALIGN>/g, e(o))),
			lookbehind: !0,
			inside: null
		}, {
			pattern: RegExp("(\\)\\s*)<TYPE>(?=\\s*(?:<ALIGN>\\s*)?;)".replace(/<TYPE>/g, e(s)).replace(/<ALIGN>/g, e(o))),
			lookbehind: !0,
			inside: null
		}],
		"builtin-types": {
			pattern: /\b(?:anyerror|bool|c_u?(?:short|int|long|longlong)|c_longdouble|c_void|comptime_(?:float|int)|[iu](?:8|16|32|64|128|size)|f(?:16|32|64|128)|noreturn|type|void)\b/,
			alias: "keyword"
		},
		keyword: r,
		function: /\b(?!\d)\w+(?=\s*\()/,
		number: /\b(?:0b[01]+|0o[0-7]+|0x[a-fA-F\d]+(?:\.[a-fA-F\d]*)?(?:[pP][+-]?[a-fA-F\d]+)?|\d+(?:\.\d*)?(?:[eE][+-]?\d+)?)\b/,
		boolean: /\b(?:false|true)\b/,
		operator: /\.[*?]|\.{2,3}|[-=]>|\*\*|\+\+|\|\||(?:<<|>>|[-+*]%|[-+*/%^&|<>!=])=?|[?~]/,
		punctuation: /[.:,;(){}[\]]/
	}, n.languages.zig["class-name"].forEach(function(e) {
		null === e.inside && (e.inside = n.languages.zig)
	})
}(Prism);
! function() {
	if ("undefined" != typeof self && self.Prism && self.document && document.querySelector) {
		var t, o = "line-numbers",
			s = "linkable-line-numbers",
			a = function() {
				if (void 0 === t) {
					var e = document.createElement("div");
					e.style.fontSize = "13px", e.style.lineHeight = "1.5", e.style.padding = "0", e.style.border = "0", e.innerHTML =
						"&nbsp;<br />&nbsp;", document.body.appendChild(e), t = 38 === e.offsetHeight, document.body.removeChild(e)
				}
				return t
			},
			l = !0,
			u = 0;
		Prism.hooks.add("before-sanity-check", function(e) {
			var t = e.element.parentElement;
			if (c(t)) {
				var n = 0;
				v(".line-highlight", t).forEach(function(e) {
					n += e.textContent.length, e.parentNode.removeChild(e)
				}), n && /^( \n)+$/.test(e.code.slice(-n)) && (e.code = e.code.slice(0, -n))
			}
		}), Prism.hooks.add("complete", function e(t) {
			var n = t.element.parentElement;
			if (c(n)) {
				clearTimeout(u);
				var i = Prism.plugins.lineNumbers,
					r = t.plugins && t.plugins.lineNumbers;
				if (b(n, o) && i && !r) Prism.hooks.add("line-numbers", e);
				else d(n)(), u = setTimeout(f, 1)
			}
		}), window.addEventListener("hashchange", f), window.addEventListener("resize", function() {
			v("pre").filter(c).map(function(e) {
				return d(e)
			}).forEach(y)
		})
	}

	function v(e, t) {
		return Array.prototype.slice.call((t || document).querySelectorAll(e))
	}

	function b(e, t) {
		return e.classList.contains(t)
	}

	function y(e) {
		e()
	}

	function c(e) {
		return !(!e || !/pre/i.test(e.nodeName)) && (!!e.hasAttribute("data-line") || !(!e.id || !Prism.util.isActive(e, s)))
	}

	function d(u, e, c) {
		var t = (e = "string" == typeof e ? e : u.getAttribute("data-line") || "").replace(/\s+/g, "").split(",").filter(
				Boolean),
			d = +u.getAttribute("data-line-offset") || 0,
			f = (a() ? parseInt : parseFloat)(getComputedStyle(u).lineHeight),
			p = Prism.util.isActive(u, o),
			n = u.querySelector("code"),
			h = p ? u : n || u,
			m = [],
			g = n && h != n ? function(e, t) {
				var n = getComputedStyle(e),
					i = getComputedStyle(t);

				function r(e) {
					return +e.substr(0, e.length - 2)
				}
				return t.offsetTop + r(i.borderTopWidth) + r(i.paddingTop) - r(n.paddingTop)
			}(u, n) : 0;
		t.forEach(function(e) {
			var t = e.split("-"),
				n = +t[0],
				i = +t[1] || n,
				r = u.querySelector('.line-highlight[data-range="' + e + '"]') || document.createElement("div");
			if (m.push(function() {
					r.setAttribute("aria-hidden", "true"), r.setAttribute("data-range", e), r.className = (c || "") +
						" line-highlight"
				}), p && Prism.plugins.lineNumbers) {
				var o = Prism.plugins.lineNumbers.getLine(u, n),
					s = Prism.plugins.lineNumbers.getLine(u, i);
				if (o) {
					var a = o.offsetTop + g + "px";
					m.push(function() {
						r.style.top = a
					})
				}
				if (s) {
					var l = s.offsetTop - o.offsetTop + s.offsetHeight + "px";
					m.push(function() {
						r.style.height = l
					})
				}
			} else m.push(function() {
				r.setAttribute("data-start", String(n)), n < i && r.setAttribute("data-end", String(i)), r.style.top = (n - d -
					1) * f + g + "px", r.textContent = new Array(i - n + 2).join(" \n")
			});
			m.push(function() {
				h.appendChild(r)
			})
		});
		var i = u.id;
		if (p && Prism.util.isActive(u, s) && i) {
			b(u, s) || m.push(function() {
				u.classList.add(s)
			});
			var r = parseInt(u.getAttribute("data-start") || "1");
			v(".line-numbers-rows > span", u).forEach(function(e, t) {
				var n = t + r;
				e.onclick = function() {
					var e = i + "." + n;
					l = !1, location.hash = e, setTimeout(function() {
						l = !0
					}, 1)
				}
			})
		}
		return function() {
			m.forEach(y)
		}
	}

	function f() {
		var e = location.hash.slice(1);
		v(".temporary.line-highlight").forEach(function(e) {
			e.parentNode.removeChild(e)
		});
		var t = (e.match(/\.([\d,-]+)$/) || [, ""])[1];
		if (t && !document.getElementById(e)) {
			var n = e.slice(0, e.lastIndexOf(".")),
				i = document.getElementById(n);
			if (i) i.hasAttribute("data-line") || i.setAttribute("data-line", ""), d(i, t, "temporary ")(), l && document.querySelector(
				".temporary.line-highlight").scrollIntoView()
		}
	}
}();
! function() {
	if ("undefined" != typeof self && self.Prism && self.document) {
		var o = "line-numbers",
			a = /\n(?!$)/g,
			e = Prism.plugins.lineNumbers = {
				getLine: function(e, n) {
					if ("PRE" === e.tagName && e.classList.contains(o)) {
						var t = e.querySelector(".line-numbers-rows");
						if (t) {
							var i = parseInt(e.getAttribute("data-start"), 10) || 1,
								r = i + (t.children.length - 1);
							n < i && (n = i), r < n && (n = r);
							var s = n - i;
							return t.children[s]
						}
					}
				},
				resize: function(e) {
					u([e])
				},
				assumeViewportIndependence: !0
			},
			t = function(e) {
				return e ? window.getComputedStyle ? getComputedStyle(e) : e.currentStyle || null : null
			},
			n = void 0;
		window.addEventListener("resize", function() {
			e.assumeViewportIndependence && n === window.innerWidth || (n = window.innerWidth, u(Array.prototype.slice.call(
				document.querySelectorAll("pre." + o))))
		}), Prism.hooks.add("complete", function(e) {
			if (e.code) {
				var n = e.element,
					t = n.parentNode;
				if (t && /pre/i.test(t.nodeName) && !n.querySelector(".line-numbers-rows") && Prism.util.isActive(n, o)) {
					n.classList.remove(o), t.classList.add(o);
					var i, r = e.code.match(a),
						s = r ? r.length + 1 : 1,
						l = new Array(s + 1).join("<span></span>");
					(i = document.createElement("span")).setAttribute("aria-hidden", "true"), i.className = "line-numbers-rows", i.innerHTML =
						l, t.hasAttribute("data-start") && (t.style.counterReset = "linenumber " + (parseInt(t.getAttribute(
							"data-start"), 10) - 1)), e.element.appendChild(i), u([t]), Prism.hooks.run("line-numbers", e)
				}
			}
		}), Prism.hooks.add("line-numbers", function(e) {
			e.plugins = e.plugins || {}, e.plugins.lineNumbers = !0
		})
	}

	function u(e) {
		if (0 != (e = e.filter(function(e) {
				var n = t(e)["white-space"];
				return "pre-wrap" === n || "pre-line" === n
			})).length) {
			var n = e.map(function(e) {
				var n = e.querySelector("code"),
					t = e.querySelector(".line-numbers-rows");
				if (n && t) {
					var i = e.querySelector(".line-numbers-sizer"),
						r = n.textContent.split(a);
					i || ((i = document.createElement("span")).className = "line-numbers-sizer", n.appendChild(i)), i.innerHTML =
						"0", i.style.display = "block";
					var s = i.getBoundingClientRect().height;
					return i.innerHTML = "", {
						element: e,
						lines: r,
						lineHeights: [],
						oneLinerHeight: s,
						sizer: i
					}
				}
			}).filter(Boolean);
			n.forEach(function(e) {
				var i = e.sizer,
					n = e.lines,
					r = e.lineHeights,
					s = e.oneLinerHeight;
				r[n.length - 1] = void 0, n.forEach(function(e, n) {
					if (e && 1 < e.length) {
						var t = i.appendChild(document.createElement("span"));
						t.style.display = "block", t.textContent = e
					} else r[n] = s
				})
			}), n.forEach(function(e) {
				for (var n = e.sizer, t = e.lineHeights, i = 0, r = 0; r < t.length; r++) void 0 === t[r] && (t[r] = n.children[i++]
					.getBoundingClientRect().height)
			}), n.forEach(function(e) {
				var n = e.sizer,
					t = e.element.querySelector(".line-numbers-rows");
				n.style.display = "none", n.innerHTML = "", e.lineHeights.forEach(function(e, n) {
					t.children[n].style.height = e + "px"
				})
			})
		}
	}
}();
! function() {
	if ("undefined" != typeof self && self.Prism || "undefined" != typeof global && global.Prism) {
		var a, e, t = "";
		Prism.plugins.customClass = {
			add: function(n) {
				a = n
			},
			map: function(s) {
				e = "function" == typeof s ? s : function(n) {
					return s[n] || n
				}
			},
			prefix: function(n) {
				t = n || ""
			}
		}, Prism.hooks.add("wrap", function(s) {
			if (a) {
				var n = a({
					content: s.content,
					type: s.type,
					language: s.language
				});
				Array.isArray(n) ? s.classes.push.apply(s.classes, n) : n && s.classes.push(n)
			}(e || t) && (s.classes = s.classes.map(function(n) {
				return t + (e ? e(n, s.language) : n)
			}))
		})
	}
}();
! function() {
	if ("undefined" != typeof self && self.Prism && self.document) {
		var c = [];
		t(function(t, e) {
			if (t && t.meta && t.data) {
				if (t.meta.status && 400 <= t.meta.status) return "Error: " + (t.data.message || t.meta.status);
				if ("string" == typeof t.data.content) return "function" == typeof atob ? atob(t.data.content.replace(/\s/g, "")) :
					"Your browser cannot decode base64"
			}
			return null
		}, "github"), t(function(t, e) {
			if (t && t.meta && t.data && t.data.files) {
				if (t.meta.status && 400 <= t.meta.status) return "Error: " + (t.data.message || t.meta.status);
				var n = t.data.files,
					a = e.getAttribute("data-filename");
				if (null == a)
					for (var r in n)
						if (n.hasOwnProperty(r)) {
							a = r;
							break
						} return void 0 !== n[a] ? n[a].content : "Error: unknown or missing gist file " + a
			}
			return null
		}, "gist"), t(function(t, e) {
			return t && t.node && "string" == typeof t.data ? t.data : null
		}, "bitbucket");
		var m = 0,
			p = "data-jsonp-status",
			g = "loading",
			h = "loaded",
			v = "failed",
			b = "pre[data-jsonp]:not([" + p + '="' + h + '"]):not([' + p + '="' + g + '"])';
		Prism.hooks.add("before-highlightall", function(t) {
			t.selector += ", " + b
		}), Prism.hooks.add("before-sanity-check", function(t) {
			var r = t.element;
			if (r.matches(b)) {
				t.code = "", r.setAttribute(p, g);
				var i = r.appendChild(document.createElement("CODE"));
				i.textContent = "Loading…";
				var e = t.language;
				i.className = "language-" + e;
				var n = Prism.plugins.autoloader;
				n && n.loadLanguages(e);
				var a = r.getAttribute("data-adapter"),
					o = null;
				if (a) {
					if ("function" != typeof window[a]) return r.setAttribute(p, v), void(i.textContent = function(t) {
						return '✖ Error: JSONP adapter function "' + t + "\" doesn't exist"
					}(a));
					o = window[a]
				}
				var u = "prismjsonp" + m++,
					s = document.createElement("a"),
					f = s.href = r.getAttribute("data-jsonp");
				s.href += (s.search ? "&" : "?") + (r.getAttribute("data-callback") || "callback") + "=" + u;
				var l = setTimeout(function() {
						r.setAttribute(p, v), i.textContent = function(t) {
							return "✖ Error: Timeout loading " + t
						}(f)
					}, Prism.plugins.jsonphighlight.timeout),
					d = document.createElement("script");
				d.src = s.href, window[u] = function(t) {
					document.head.removeChild(d), clearTimeout(l), delete window[u];
					var e = null;
					if (o) e = o(t, r);
					else
						for (var n = 0, a = c.length; n < a && null === (e = c[n].adapter(t, r)); n++);
					null === e ? (r.setAttribute(p, v), i.textContent =
						"✖ Error: Cannot parse response (perhaps you need an adapter function?)") : (r.setAttribute(p, h), i.textContent =
						e, Prism.highlightElement(i))
				}, document.head.appendChild(d)
			}
		}), Prism.plugins.jsonphighlight = {
			timeout: 5e3,
			registerAdapter: t,
			removeAdapter: function(e) {
				if ("string" == typeof e && (e = n(e)), "function" == typeof e) {
					var t = c.findIndex(function(t) {
						return t.adapter === e
					});
					0 <= t && c.splice(t, 1)
				}
			},
			highlight: function(t) {
				for (var e, n = (t || document).querySelectorAll(b), a = 0; e = n[a++];) Prism.highlightElement(e)
			}
		}
	}

	function t(t, e) {
		e = e || t.name, "function" != typeof t || n(t) || n(e) || c.push({
			adapter: t,
			name: e
		})
	}

	function n(t) {
		if ("function" == typeof t) {
			for (var e = 0; n = c[e++];)
				if (n.adapter.valueOf() === t.valueOf()) return n.adapter
		} else if ("string" == typeof t) {
			var n;
			for (e = 0; n = c[e++];)
				if (n.name === t) return n.adapter
		}
		return null
	}
}();
"undefined" != typeof self && !self.Prism || "undefined" != typeof global && !global.Prism || Prism.hooks.add("wrap",
	function(e) {
		"keyword" === e.type && e.classes.push("keyword-" + e.content)
	});
export default Prism
