/*! highlight.js v9.15.10 | BSD3 License | git.io/hljslicense */ ! function(e) { var t = "object" == typeof window && window || "object" == typeof self && self; "undefined" == typeof exports || exports.nodeType ? t && (t.hljs = e({}), "function" == typeof define && define.amd && define([], function() { return t.hljs })) : e(exports) }(function(n) { var d = [], o = Object.keys, h = {}, c = {}, t = /^(no-?highlight|plain|text)$/i, l = /\blang(?:uage)?-([\w-]+)\b/i, r = /((^(<[^>]+>|\t|)+|(?:\n)))/gm, a = { case_insensitive: "cI", lexemes: "l", contains: "c", keywords: "k", subLanguage: "sL", className: "cN", begin: "b", beginKeywords: "bK", end: "e", endsWithParent: "eW", illegal: "i", excludeBegin: "eB", excludeEnd: "eE", returnBegin: "rB", returnEnd: "rE", relevance: "r", variants: "v", IDENT_RE: "IR", UNDERSCORE_IDENT_RE: "UIR", NUMBER_RE: "NR", C_NUMBER_RE: "CNR", BINARY_NUMBER_RE: "BNR", RE_STARTERS_RE: "RSR", BACKSLASH_ESCAPE: "BE", APOS_STRING_MODE: "ASM", QUOTE_STRING_MODE: "QSM", PHRASAL_WORDS_MODE: "PWM", C_LINE_COMMENT_MODE: "CLCM", C_BLOCK_COMMENT_MODE: "CBCM", HASH_COMMENT_MODE: "HCM", NUMBER_MODE: "NM", C_NUMBER_MODE: "CNM", BINARY_NUMBER_MODE: "BNM", CSS_NUMBER_MODE: "CSSNM", REGEXP_MODE: "RM", TITLE_MODE: "TM", UNDERSCORE_TITLE_MODE: "UTM", COMMENT: "C", beginRe: "bR", endRe: "eR", illegalRe: "iR", lexemesRe: "lR", terminators: "t", terminator_end: "tE" }, N = "", v = { classPrefix: "hljs-", tabReplace: null, useBR: !1, languages: void 0 }; function y(e) { return e.replace(/&/g, "&").replace(//g, ">") } function b(e) { return e.nodeName.toLowerCase() } function w(e, t) { var r = e && e.exec(t); return r && 0 === r.index } function u(e) { return t.test(e) } function p(e) { var t, r = {}, a = Array.prototype.slice.call(arguments, 1); for (t in e) r[t] = e[t]; return a.forEach(function(e) { for (t in e) r[t] = e[t] }), r } function m(e) { var n = []; return function e(t, r) { for (var a = t.firstChild; a; a = a.nextSibling) 3 === a.nodeType ? r += a.nodeValue.length : 1 === a.nodeType && (n.push({ event: "start", offset: r, node: a }), r = e(a, r), b(a).match(/br|hr|img|input/) || n.push({ event: "stop", offset: r, node: a })); return r }(e, 0), n } function i(e) { if (a && !e.langApiRestored) { for (var t in e.langApiRestored = !0, a) e[t] && (e[a[t]] = e[t]); (e.c || []).concat(e.v || []).forEach(i) } } function E(s) { function l(e) { return e && e.source || e } function c(e, t) { return new RegExp(l(e), "m" + (s.cI ? "i" : "") + (t ? "g" : "")) }! function t(r, e) { if (!r.compiled) { if (r.compiled = !0, r.k = r.k || r.bK, r.k) { function a(r, e) { s.cI && (e = e.toLowerCase()), e.split(" ").forEach(function(e) { var t = e.split("|"); n[t[0]] = [r, t[1] ? Number(t[1]) : 1] }) } var n = {}; "string" == typeof r.k ? a("keyword", r.k) : o(r.k).forEach(function(e) { a(e, r.k[e]) }), r.k = n } r.lR = c(r.l || /\w+/, !0), e && (r.bK && (r.b = "\\b(" + r.bK.split(" ").join("|") + ")\\b"), r.b || (r.b = /\B|\b/), r.bR = c(r.b), r.endSameAsBegin && (r.e = r.b), r.e || r.eW || (r.e = /\B|\b/), r.e && (r.eR = c(r.e)), r.tE = l(r.e) || "", r.eW && e.tE && (r.tE += (r.e ? "|" : "") + e.tE)), r.i && (r.iR = c(r.i)), null == r.r && (r.r = 1), r.c || (r.c = []), r.c = Array.prototype.concat.apply([], r.c.map(function(e) { return function(t) { return t.v && !t.cached_variants && (t.cached_variants = t.v.map(function(e) { return p(t, { v: null }, e) })), t.cached_variants || t.eW && [p(t)] || [t] }("self" === e ? r : e) })), r.c.forEach(function(e) { t(e, r) }), r.starts && t(r.starts, e); var i = r.c.map(function(e) { return e.bK ? "\\.?(?:" + e.b + ")\\.?" : e.b }).concat([r.tE, r.i]).map(l).filter(Boolean); r.t = i.length ? c(function(e, t) { for (var r = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./, a = 0, n = "", i = 0; i < e.length; i++) { var s = a, c = l(e[i]); for (0 < i && (n += t); 0 < c.length;) { var o = r.exec(c); if (null == o) { n += c; break } n += c.substring(0, o.index), c = c.substring(o.index + o[0].length), "\\" == o[0][0] && o[1] ? n += "\\" + String(Number(o[1]) + s) : (n += o[0], "(" == o[0] && a++) } } return n }(i, "|"), !0) : { exec: function() { return null } } } }(s) } function k(e, t, i, r) { function c(e, t, r, a) { var n = '') + t + (r ? "" : N) : t } function s() { b += null != u.sL ? function() { var e = "string" == typeof u.sL; if (e && !h[u.sL]) return y(p); var t = e ? k(u.sL, p, !0, d[u.sL]) : x(p, u.sL.length ? u.sL : void 0); return 0 < u.r && (m += t.r), e && (d[u.sL] = t.top), c(t.language, t.value, !1, !0) }() : function() { var e, t, r, a, n, i, s; if (!u.k) return y(p); for (a = "", t = 0, u.lR.lastIndex = 0, r = u.lR.exec(p); r;) a += y(p.substring(t, r.index)), n = u, i = r, void 0, s = l.cI ? i[0].toLowerCase() : i[0], (e = n.k.hasOwnProperty(s) && n.k[s]) ? (m += e[1], a += c(e[0], y(r[0]))) : a += y(r[0]), t = u.lR.lastIndex, r = u.lR.exec(p); return a + y(p.substr(t)) }(), p = "" } function o(e) { b += e.cN ? c(e.cN, "", !0) : "", u = Object.create(e, { parent: { value: u } }) } function a(e, t) { if (p += e, null == t) return s(), 0; var r = function(e, t) { var r, a, n; for (r = 0, a = t.c.length; r < a; r++) if (w(t.c[r].bR, e)) return t.c[r].endSameAsBegin && (t.c[r].eR = (n = t.c[r].bR.exec(e)[0], new RegExp(n.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"), "m"))), t.c[r] }(t, u); if (r) return r.skip ? p += t : (r.eB && (p += t), s(), r.rB || r.eB || (p = t)), o(r), r.rB ? 0 : t.length; var a = function e(t, r) { if (w(t.eR, r)) { for (; t.endsParent && t.parent;) t = t.parent; return t } if (t.eW) return e(t.parent, r) }(u, t); if (a) { var n = u; for (n.skip ? p += t : (n.rE || n.eE || (p += t), s(), n.eE && (p = t)); u.cN && (b += N), u.skip || u.sL || (m += u.r), (u = u.parent) !== a.parent;); return a.starts && (a.endSameAsBegin && (a.starts.eR = a.eR), o(a.starts)), n.rE ? 0 : t.length } if (function(e, t) { return !i && w(t.iR, e) }(t, u)) throw new Error('Illegal lexeme "' + t + '" for mode "' + (u.cN || "") + '"'); return p += t, t.length || 1 } var l = M(e); if (!l) throw new Error('Unknown language: "' + e + '"'); E(l); var n, u = r || l, d = {}, b = ""; for (n = u; n !== l; n = n.parent) n.cN && (b = c(n.cN, "", !0) + b); var p = "", m = 0; try { for (var f, g, _ = 0; u.t.lastIndex = _, f = u.t.exec(t);) g = a(t.substring(_, f.index), f[0]), _ = f.index + g; for (a(t.substr(_)), n = u; n.parent; n = n.parent) n.cN && (b += N); return { r: m, value: b, language: e, top: u } } catch (e) { if (e.message && -1 !== e.message.indexOf("Illegal")) return { r: 0, value: y(t) }; throw e } } function x(r, e) { e = e || v.languages || o(h); var a = { r: 0, value: y(r) }, n = a; return e.filter(M).filter(_).forEach(function(e) { var t = k(e, r, !1); t.language = e, t.r > n.r && (n = t), t.r > a.r && (n = a, a = t) }), n.language && (a.second_best = n), a } function f(e) { return v.tabReplace || v.useBR ? e.replace(r, function(e, t) { return v.useBR && "\n" === e ? "
" : v.tabReplace ? t.replace(/\t/g, v.tabReplace) : "" }) : e } function s(e) { var t, r, a, n, i, s = function(e) { var t, r, a, n, i = e.className + " "; if (i += e.parentNode ? e.parentNode.className : "", r = l.exec(i)) return M(r[1]) ? r[1] : "no-highlight"; for (t = 0, a = (i = i.split(/\s+/)).length; t < a; t++) if (u(n = i[t]) || M(n)) return n }(e); u(s) || (v.useBR ? (t = document.createElementNS("http://www.w3.org/1999/xhtml", "div")).innerHTML = e.innerHTML.replace(/\n/g, "").replace(//g, "\n") : t = e, i = t.textContent, a = s ? k(s, i, !0) : x(i), (r = m(t)).length && ((n = document.createElementNS("http://www.w3.org/1999/xhtml", "div")).innerHTML = a.value, a.value = function(e, t, r) { var a = 0, n = "", i = []; function s() { return e.length && t.length ? e[0].offset !== t[0].offset ? e[0].offset < t[0].offset ? e : t : "start" === t[0].event ? e : t : e.length ? e : t } function c(e) { n += "<" + b(e) + d.map.call(e.attributes, function(e) { return " " + e.nodeName + '="' + y(e.value).replace('"', """) + '"' }).join("") + ">" } function o(e) { n += "" } function l(e) { ("start" === e.event ? c : o)(e.node) } for (; e.length || t.length;) { var u = s(); if (n += y(r.substring(a, u[0].offset)), a = u[0].offset, u === e) { for (i.reverse().forEach(o); l(u.splice(0, 1)[0]), (u = s()) === e && u.length && u[0].offset === a;); i.reverse().forEach(c) } else "start" === u[0].event ? i.push(u[0].node) : i.pop(), l(u.splice(0, 1)[0]) } return n + y(r.substr(a)) }(r, m(n), i)), a.value = f(a.value), e.innerHTML = a.value, e.className = function(e, t, r) { var a = t ? c[t] : r, n = [e.trim()]; return e.match(/\bhljs\b/) || n.push("hljs"), -1 === e.indexOf(a) && n.push(a), n.join(" ").trim() }(e.className, s, a.language), e.result = { language: a.language, re: a.r }, a.second_best && (e.second_best = { language: a.second_best.language, re: a.second_best.r })) } function g() { if (!g.called) { g.called = !0; var e = document.querySelectorAll("pre code"); d.forEach.call(e, s) } } function M(e) { return e = (e || "").toLowerCase(), h[e] || h[c[e]] } function _(e) { var t = M(e); return t && !t.disableAutodetect } return n.highlight = k, n.highlightAuto = x, n.fixMarkup = f, n.highlightBlock = s, n.configure = function(e) { v = p(v, e) }, n.initHighlighting = g, n.initHighlightingOnLoad = function() { addEventListener("DOMContentLoaded", g, !1), addEventListener("load", g, !1) }, n.registerLanguage = function(t, e) { var r = h[t] = e(n); i(r), r.aliases && r.aliases.forEach(function(e) { c[e] = t }) }, n.listLanguages = function() { return o(h) }, n.getLanguage = M, n.autoDetection = _, n.inherit = p, n.IR = n.IDENT_RE = "[a-zA-Z]\\w*", n.UIR = n.UNDERSCORE_IDENT_RE = "[a-zA-Z_]\\w*", n.NR = n.NUMBER_RE = "\\b\\d+(\\.\\d+)?", n.CNR = n.C_NUMBER_RE = "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)", n.BNR = n.BINARY_NUMBER_RE = "\\b(0b[01]+)", n.RSR = n.RE_STARTERS_RE = "!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", n.BE = n.BACKSLASH_ESCAPE = { b: "\\\\[\\s\\S]", r: 0 }, n.ASM = n.APOS_STRING_MODE = { cN: "string", b: "'", e: "'", i: "\\n", c: [n.BE] }, n.QSM = n.QUOTE_STRING_MODE = { cN: "string", b: '"', e: '"', i: "\\n", c: [n.BE] }, n.PWM = n.PHRASAL_WORDS_MODE = { b: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ }, n.C = n.COMMENT = function(e, t, r) { var a = n.inherit({ cN: "comment", b: e, e: t, c: [] }, r || {}); return a.c.push(n.PWM), a.c.push({ cN: "doctag", b: "(?:TODO|FIXME|NOTE|BUG|XXX):", r: 0 }), a }, n.CLCM = n.C_LINE_COMMENT_MODE = n.C("//", "$"), n.CBCM = n.C_BLOCK_COMMENT_MODE = n.C("/\\*", "\\*/"), n.HCM = n.HASH_COMMENT_MODE = n.C("#", "$"), n.NM = n.NUMBER_MODE = { cN: "number", b: n.NR, r: 0 }, n.CNM = n.C_NUMBER_MODE = { cN: "number", b: n.CNR, r: 0 }, n.BNM = n.BINARY_NUMBER_MODE = { cN: "number", b: n.BNR, r: 0 }, n.CSSNM = n.CSS_NUMBER_MODE = { cN: "number", b: n.NR + "(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", r: 0 }, n.RM = n.REGEXP_MODE = { cN: "regexp", b: /\//, e: /\/[gimuy]*/, i: /\n/, c: [n.BE, { b: /\[/, e: /\]/, r: 0, c: [n.BE] }] }, n.TM = n.TITLE_MODE = { cN: "title", b: n.IR, r: 0 }, n.UTM = n.UNDERSCORE_TITLE_MODE = { cN: "title", b: n.UIR, r: 0 }, n.METHOD_GUARD = { b: "\\.\\s*" + n.UIR, r: 0 }, n.registerLanguage("javascript", function(e) { var t = "[A-Za-z$_][0-9A-Za-z$_]*", r = { keyword: "in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as", literal: "true false null undefined NaN Infinity", built_in: "eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise" }, a = { cN: "number", v: [{ b: "\\b(0[bB][01]+)" }, { b: "\\b(0[oO][0-7]+)" }, { b: e.CNR }], r: 0 }, n = { cN: "subst", b: "\\$\\{", e: "\\}", k: r, c: [] }, i = { b: "html`", e: "", starts: { e: "`", rE: !1, c: [e.BE, n], sL: "xml" } }, s = { b: "css`", e: "", starts: { e: "`", rE: !1, c: [e.BE, n], sL: "css" } }, c = { cN: "string", b: "`", e: "`", c: [e.BE, n] }; n.c = [e.ASM, e.QSM, i, s, c, a, e.RM]; var o = n.c.concat([e.CBCM, e.CLCM]); return { aliases: ["js", "jsx"], k: r, c: [{ cN: "meta", r: 10, b: /^\s*['"]use (strict|asm)['"]/ }, { cN: "meta", b: /^#!/, e: /$/ }, e.ASM, e.QSM, i, s, c, e.CLCM, e.CBCM, a, { b: /[{,]\s*/, r: 0, c: [{ b: t + "\\s*:", rB: !0, r: 0, c: [{ cN: "attr", b: t, r: 0 }] }] }, { b: "(" + e.RSR + "|\\b(case|return|throw)\\b)\\s*", k: "return throw case", c: [e.CLCM, e.CBCM, e.RM, { cN: "function", b: "(\\(.*?\\)|" + t + ")\\s*=>", rB: !0, e: "\\s*=>", c: [{ cN: "params", v: [{ b: t }, { b: /\(\s*\)/ }, { b: /\(/, e: /\)/, eB: !0, eE: !0, k: r, c: o }] }] }, { cN: "", b: /\s/, e: /\s*/, skip: !0 }, { b: //, sL: "xml", c: [{ b: /<[A-Za-z0-9\\._:-]+\s*\/>/, skip: !0 }, { b: /<[A-Za-z0-9\\._:-]+/, e: /(\/[A-Za-z0-9\\._:-]+|[A-Za-z0-9\\._:-]+\/)>/, skip: !0, c: [{ b: /<[A-Za-z0-9\\._:-]+\s*\/>/, skip: !0 }, "self"] }] }], r: 0 }, { cN: "function", bK: "function", e: /\{/, eE: !0, c: [e.inherit(e.TM, { b: t }), { cN: "params", b: /\(/, e: /\)/, eB: !0, eE: !0, c: o }], i: /\[|%/ }, { b: /\$[(.]/ }, e.METHOD_GUARD, { cN: "class", bK: "class", e: /[{;=]/, eE: !0, i: /[:"\[\]]/, c: [{ bK: "extends" }, e.UTM] }, { bK: "constructor get set", e: /\{/, eE: !0 }], i: /#(?!!)/ } }), n });