var hljs = new function () { var p = {}; var a = {}; function n(c) { return c.replace(/&/gm, "&").replace(//gm, ">") } function k(s, r) { if (!s) { return false } for (var c = 0; c < s.length; c++) { if (s[c] == r) { return true } } return false } function g(K, E) { function L(P, O) { P.sm = []; for (var N = 0; N < P.c.length; N++) { for (var r = 0; r < O.m.length; r++) { if (O.m[r].cN == P.c[N]) { P.sm[P.sm.length] = O.m[r] } } } } function A(r, O) { if (!O.c) { return null } if (!O.sm) { L(O, I) } for (var N = 0; N < O.sm.length; N++) { if (O.sm[N].bR.test(r)) { return O.sm[N] } } return null } function x(N, r) { if (D[N].e && D[N].eR.test(r)) { return 1 } if (D[N].eW) { var O = x(N - 1, r); return O ? O + 1 : 0 } return 0 } function y(r, N) { return N.iR && N.iR.test(r) } function B(S, Q) { var O = []; function R(T) { if (!k(O, T)) { O[O.length] = T } } if (S.c) { for (var N = 0; N < Q.m.length; N++) { if (k(S.c, Q.m[N].cN)) { R(Q.m[N].b) } } } var r = D.length - 1; do { if (D[r].e) { R(D[r].e) } r-- } while (D[r + 1].eW); if (S.i) { R(S.i) } var P = "(" + O[0]; for (var N = 0; N < O.length; N++) { P += "|" + O[N] } P += ")"; return e(Q, P) } function t(O, N) { var P = D[D.length - 1]; if (!P.t) { P.t = B(P, I) } O = O.substr(N); var r = P.t.exec(O); if (!r) { return [O, "", true] } if (r.index == 0) { return ["", r[0], false] } else { return [O.substr(0, r.index), r[0], false] } } function s(Q, r) { var N = I.cI ? r[0].toLowerCase() : r[0]; for (var P in Q.keywordGroups) { if (!Q.keywordGroups.hasOwnProperty(P)) { continue } var O = Q.keywordGroups[P].hasOwnProperty(N); if (O) { return [P, O] } } return false } function G(P, S) { if (!S.k || !S.l) { return n(P) } if (!S.lR) { var R = "(" + S.l[0]; for (var O = 1; O < S.l.length; O++) { R += "|" + S.l[O] } R += ")"; S.lR = e(I, R, true) } var Q = ""; var T = 0; S.lR.lastIndex = 0; var N = S.lR.exec(P); while (N) { Q += n(P.substr(T, N.index - T)); var r = s(S, N); if (r) { u += r[1]; Q += '' + n(N[0]) + "" } else { Q += n(N[0]) } T = S.lR.lastIndex; N = S.lR.exec(P) } Q += n(P.substr(T, P.length - T)); return Q } function M(r, O) { if (O.subLanguage && a[O.subLanguage]) { var N = g(O.subLanguage, r); u += N.keyword_count; C += N.r; return N.value } else { return G(r, O) } } function J(O, r) { var N = O.nM ? "": ''; if (O.rB) { c += N; O.buffer = "" } else { if (O.eB) { c += n(r) + N; O.buffer = "" } else { c += N; O.buffer = r } } D[D.length] = O } function F(R, N, S) { var T = D[D.length - 1]; if (S) { c += M(T.buffer + R, T); return false } var O = A(N, T); if (O) { c += M(T.buffer + R, T); J(O, N); C += O.r; return O.rB } var r = x(D.length - 1, N); if (r) { var Q = T.nM ? "": ""; if (T.rE) { c += M(T.buffer + R, T) + Q } else { if (T.eE) { c += M(T.buffer + R, T) + Q + n(N) } else { c += M(T.buffer + R + N, T) + Q } } while (r > 1) { Q = D[D.length - 2].nM ? "": ""; c += Q; r--; D.length-- } D.length--; D[D.length - 1].buffer = ""; if (T.starts) { for (var P = 0; P < I.m.length; P++) { if (I.m[P].cN == T.starts) { J(I.m[P], ""); break } } } return T.rE } if (y(N, T)) { throw "Illegal" } } var I = p[K]; var D = [I.dM]; var C = 0; var u = 0; var c = ""; try { var w = 0; I.dM.buffer = ""; do { var z = t(E, w); var v = F(z[0], z[1], z[2]); w += z[0].length; if (!v) { w += z[1].length } } while (!z[2]); if (D.length > 1) { throw "Illegal" } return { r: C, keyword_count: u, value: c } } catch(H) { if (H == "Illegal") { return { r: 0, keyword_count: 0, value: n(E) } } else { throw H } } } function h(s) { var r = ""; for (var c = 0; c < s.childNodes.length; c++) { if (s.childNodes[c].nodeType == 3) { r += s.childNodes[c].nodeValue } else { if (s.childNodes[c].nodeName == "BR") { r += "\n" } else { r += h(s.childNodes[c]) } } } return r } function b(t) { var r = t.className.split(/\s+/); r = r.concat(t.parentNode.className.split(/\s+/)); for (var c = 0; c < r.length; c++) { var s = r[c].replace(/^language-/, ""); if (s == "no-highlight") { throw "No highlight" } if (p[s]) { return s } } } function d(c) { var r = []; (function (t, u) { for (var s = 0; s < t.childNodes.length; s++) { if (t.childNodes[s].nodeType == 3) { u += t.childNodes[s].nodeValue.length } else { if (t.childNodes[s].nodeName == "BR") { u += 1 } else { r.push({ event: "start", offset: u, node: t.childNodes[s] }); u = arguments.callee(t.childNodes[s], u); r.push({ event: "stop", offset: u, node: t.childNodes[s] }) } } } return u })(c, 0); return r } function m(z, A, y) { var s = 0; var x = ""; var u = []; function v() { if (z.length && A.length) { if (z[0].offset != A[0].offset) { return (z[0].offset < A[0].offset) ? z: A } else { return (z[0].event == "start" && A[0].event == "stop") ? A: z } } else { return z.length ? z: A } } function t(D) { var E = "<" + D.nodeName.toLowerCase(); for (var C = 0; C < D.attributes.length; C++) { E += " " + D.attributes[C].nodeName.toLowerCase() + '="' + n(D.attributes[C].nodeValue) + '"' } return E + ">" } function B(C) { return "" + C.nodeName.toLowerCase() + ">" } while (z.length || A.length) { var w = v().splice(0, 1)[0]; x += n(y.substr(s, w.offset - s)); s = w.offset; if (w.event == "start") { x += t(w.node); u.push(w.node) } else { if (w.event == "stop") { var r = u.length; do { r--; var c = u[r]; x += B(c) } while (c != w.node); u.splice(r, 1); while (r < u.length) { x += t(u[r]); r++ } } } } x += y.substr(s); return x } function q(y, C) { try { var F = h(y); var v = b(y) } catch(z) { if (z == "No highlight") { return } } if (v) { var B = g(v, F).value } else { var D = 0; for (var E in a) { if (!a.hasOwnProperty(E)) { continue } var t = g(E, F); var c = t.keyword_count + t.r; if (c > D) { D = c; var B = t.value; v = E } } } if (B) { if (C) { B = B.replace(/^(\t+)/gm, function (r, I, H, G) { return I.replace(/\t/g, C) }) } var x = y.className; if (!x.match(v)) { x += " " + v } var s = d(y); if (s.length) { var u = document.createElement("pre"); u.innerHTML = B; B = m(s, d(u), F) } var A = document.createElement("div"); A.innerHTML = '
' + B + "";
var w = y.parentNode.parentNode;
w.replaceChild(A.firstChild, y.parentNode)
}
}
function e(s, r, c) {
var t = "m" + (s.cI ? "i": "") + (c ? "g": "");
return new RegExp(r, t)
}
function j() {
for (var r in p) {
if (!p.hasOwnProperty(r)) {
continue
}
var s = p[r];
for (var c = 0; c < s.m.length; c++) {
if (s.m[c].b) {
s.m[c].bR = e(s, "^" + s.m[c].b)
}
if (s.m[c].e) {
s.m[c].eR = e(s, "^" + s.m[c].e)
}
if (s.m[c].i) {
s.m[c].iR = e(s, "^(?:" + s.m[c].i + ")")
}
s.dM.iR = e(s, "^(?:" + s.dM.i + ")");
if (s.m[c].r == undefined) {
s.m[c].r = 1
}
}
}
}
function f() {
function s(v) {
if (!v.keywordGroups) {
for (var u in v.k) {
if (!v.k.hasOwnProperty(u)) {
continue
}
if (v.k[u] instanceof Object) {
v.keywordGroups = v.k
} else {
v.keywordGroups = {
keyword: v.k
}
}
break
}
}
}
for (var r in p) {
if (!p.hasOwnProperty(r)) {
continue
}
var t = p[r];
s(t.dM);
for (var c = 0; c < t.m.length; c++) {
s(t.m[c])
}
}
}
function i(r) {
for (var c = 0; c < r.childNodes.length; c++) {
node = r.childNodes[c];
if (node.nodeName == "CODE") {
return node
}
if (! (node.nodeType == 3 && node.nodeValue.match(/\s+/))) {
return null
}
}
}
function l() {
if (l.called) {
return
}
l.called = true;
j();
f();
if (arguments.length) {
for (var c = 0; c < arguments.length; c++) {
if (p[arguments[c]]) {
a[arguments[c]] = p[arguments[c]]
}
}
} else {
a = p
}
var s = document.getElementsByTagName("pre");
for (var c = 0; c < s.length; c++) {
var r = i(s[c]);
if (r) {
q(r, hljs.tabReplace)
}
}
}
function o() {
var c = arguments;
var r = function () {
l.apply(null, c)
};
if (window.addEventListener) {
window.addEventListener("DOMContentLoaded", r, false);
window.addEventListener("load", r, false)
} else {
if (window.attachEvent) {
window.attachEvent("onload", r)
} else {
window.onload = r
}
}
}
this.LANGUAGES = p;
this.initHighlightingOnLoad = o;
this.highlightBlock = q;
this.initHighlighting = l;
this.IR = "[a-zA-Z][a-zA-Z0-9_]*";
this.UIR = "[a-zA-Z_][a-zA-Z0-9_]*";
this.NR = "\\b\\d+(\\.\\d+)?";
this.CNR = "\\b(0x[A-Za-z0-9]+|\\d+(\\.\\d+)?)";
this.RSR = "!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";
this.ASM = {
cN: "string",
b: "'",
e: "'",
i: "\\n",
c: ["escape"],
r: 0
};
this.QSM = {
cN: "string",
b: '"',
e: '"',
i: "\\n",
c: ["escape"],
r: 0
};
this.BE = {
cN: "escape",
b: "\\\\.",
e: "^",
nM: true,
r: 0
};
this.CLCM = {
cN: "comment",
b: "//",
e: "$",
r: 0
};
this.CBLCLM = {
cN: "comment",
b: "/\\*",
e: "\\*/"
};
this.HCM = {
cN: "comment",
b: "#",
e: "$"
};
this.CNM = {
cN: "number",
b: this.CNR,
e: "^",
r: 0
}
} ();
var initHighlightingOnLoad = hljs.initHighlightingOnLoad;
hljs.XML_COMMENT = {
cN: "comment",
b: ""
};
hljs.XML_ATTR = {
cN: "attribute",
b: "\\s[a-zA-Z\\:-]+=",
e: "^",
c: ["value"]
};
hljs.XML_VALUE_QUOT = {
cN: "value",
b: '"',
e: '"'
};
hljs.XML_VALUE_APOS = {
cN: "value",
b: "'",
e: "'"
};
hljs.LANGUAGES.xml = {
dM: {
c: ["pi", "comment", "cdata", "tag"]
},
cI: true,
m: [{
cN: "pi",
b: "<\\?",
e: "\\?>",
r: 10
},
hljs.XML_COMMENT, {
cN: "cdata",
b: "<\\!\\[CDATA\\[",
e: "\\]\\]>"
},
{
cN: "tag",
b: "