!(function (t) { var e = {}; function i(n) { if (e[n]) return e[n].exports; var a = (e[n] = { i: n, l: !1, exports: {} }); return t[n].call(a.exports, a, a.exports, i), (a.l = !0), a.exports; } (i.m = t), (i.c = e), (i.d = function (t, e, n) { i.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: n }); }), (i.r = function (t) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t, "__esModule", { value: !0 }); }), (i.t = function (t, e) { if ((1 & e && (t = i(t)), 8 & e)) return t; if (4 & e && "object" == typeof t && t && t.__esModule) return t; var n = Object.create(null); if ( (i.r(n), Object.defineProperty(n, "default", { enumerable: !0, value: t }), 2 & e && "string" != typeof t) ) for (var a in t) i.d( n, a, function (e) { return t[e]; }.bind(null, a), ); return n; }), (i.n = function (t) { var e = t && t.__esModule ? function () { return t.default; } : function () { return t; }; return i.d(e, "a", e), e; }), (i.o = function (t, e) { return Object.prototype.hasOwnProperty.call(t, e); }), (i.p = ""), i((i.s = 16)); })([ function (t, e, i) { "use strict"; var n, a = (this && this.__extends) || ((n = function (t, e) { return (n = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (t, e) { t.__proto__ = e; }) || function (t, e) { for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]); })(t, e); }), function (t, e) { function i() { this.constructor = t; } n(t, e), (t.prototype = null === e ? Object.create(e) : ((i.prototype = e.prototype), new i())); }), s = (this && this.__assign) || function () { return (s = Object.assign || function (t) { for (var e, i = 1, n = arguments.length; i < n; i++) for (var a in (e = arguments[i])) Object.prototype.hasOwnProperty.call(e, a) && (t[a] = e[a]); return t; }).apply(this, arguments); }, r = (this && this.__read) || function (t, e) { var i = "function" == typeof Symbol && t[Symbol.iterator]; if (!i) return t; var n, a, s = i.call(t), r = []; try { for (; (void 0 === e || e-- > 0) && !(n = s.next()).done; ) r.push(n.value); } catch (t) { a = { error: t }; } finally { try { n && !n.done && (i = s.return) && i.call(s); } finally { if (a) throw a.error; } } return r; }; Object.defineProperty(e, "__esModule", { value: !0 }), (e.AsciiMath = void 0); var o = i(3), l = i(4), u = i(12), h = i(1), p = (function (t) { function e(i) { var n = this, a = r(u.separateOptions(i, h.FindAsciiMath.OPTIONS, e.OPTIONS), 3), s = a[1], o = a[2]; return ( ((n = t.call(this, o) || this).findAsciiMath = n.options.FindAsciiMath || new h.FindAsciiMath(s)), n ); } return ( a(e, t), (e.prototype.compile = function (t, e) { return l.LegacyAsciiMath.Compile(t.math, t.display); }), (e.prototype.findMath = function (t) { return this.findAsciiMath.findMath(t); }), (e.NAME = "AsciiMath"), (e.OPTIONS = s(s({}, o.AbstractInputJax.OPTIONS), { FindAsciiMath: null, })), e ); })(o.AbstractInputJax); e.AsciiMath = p; }, function (t, e, i) { "use strict"; var n, a = (this && this.__extends) || ((n = function (t, e) { return (n = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (t, e) { t.__proto__ = e; }) || function (t, e) { for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]); })(t, e); }), function (t, e) { function i() { this.constructor = t; } n(t, e), (t.prototype = null === e ? Object.create(e) : ((i.prototype = e.prototype), new i())); }), s = (this && this.__read) || function (t, e) { var i = "function" == typeof Symbol && t[Symbol.iterator]; if (!i) return t; var n, a, s = i.call(t), r = []; try { for (; (void 0 === e || e-- > 0) && !(n = s.next()).done; ) r.push(n.value); } catch (t) { a = { error: t }; } finally { try { n && !n.done && (i = s.return) && i.call(s); } finally { if (a) throw a.error; } } return r; }; Object.defineProperty(e, "__esModule", { value: !0 }), (e.FindAsciiMath = void 0); var r = i(13), o = i(14), l = i(15), u = (function (t) { function e(e) { var i = t.call(this, e) || this; return i.getPatterns(), i; } return ( a(e, t), (e.prototype.getPatterns = function () { var t = this, e = this.options, i = []; (this.end = {}), e.delimiters.forEach(function (e) { return t.addPattern(i, e, !1); }), (this.start = new RegExp(i.join("|"), "g")), (this.hasPatterns = i.length > 0); }), (e.prototype.addPattern = function (t, e, i) { var n = s(e, 2), a = n[0], r = n[1]; t.push(o.quotePattern(a)), (this.end[a] = [r, i, new RegExp(o.quotePattern(r), "g")]); }), (e.prototype.findEnd = function (t, e, i, n) { var a = s(n, 3), r = a[1], o = a[2], u = (o.lastIndex = i.index + i[0].length), h = o.exec(t); return h ? l.protoItem( i[0], t.substr(u, h.index - u), h[0], e, i.index, h.index + h[0].length, r, ) : null; }), (e.prototype.findMathInString = function (t, e, i) { var n, a; for (this.start.lastIndex = 0; (n = this.start.exec(i)); ) (a = this.findEnd(i, e, n, this.end[n[0]])) && (t.push(a), (this.start.lastIndex = a.end.n)); }), (e.prototype.findMath = function (t) { var e = []; if (this.hasPatterns) for (var i = 0, n = t.length; i < n; i++) this.findMathInString(e, i, t[i]); return e; }), (e.OPTIONS = { delimiters: [["`", "`"]] }), e ); })(r.AbstractFindMath); e.FindAsciiMath = u; }, function (t, e, i) { "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }), (e.isObject = MathJax._.components.global.isObject), (e.combineConfig = MathJax._.components.global.combineConfig), (e.combineDefaults = MathJax._.components.global.combineDefaults), (e.combineWithMathJax = MathJax._.components.global.combineWithMathJax), (e.MathJax = MathJax._.components.global.MathJax); }, function (t, e, i) { "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }), (e.AbstractInputJax = MathJax._.core.InputJax.AbstractInputJax); }, function (t, e, i) { (function (t) { (MathJax = Object.assign(t.MathJax || {}, i(6).MathJax)), MathJax.config && MathJax.config.asciimath && MathJax.Hub.Config({ AsciiMath: MathJax.config.asciimath }), MathJax.Ajax.Preloading( "[MathJax]/jax/input/AsciiMath/config.js", "[MathJax]/jax/input/AsciiMath/jax.js", "[MathJax]/jax/element/mml/jax.js", ), i(7), i(8), i(9), i(10); var n = new (0, i(11).MmlFactory)(); e.LegacyAsciiMath = { Compile: function (t, e) { var i = { type: "math/asciimath", innerText: t, MathJax: {} }, a = MathJax.InputJax.AsciiMath.Translate(i).root.toMmlNode(n); return a.setInheritedAttributes({}, e, 0, !1), a; }, Translate: function (t, e) { return this.Compile(t, e); }, }; }).call(this, i(5)); }, function (t, e) { var i; i = (function () { return this; })(); try { i = i || new Function("return this")(); } catch (t) { "object" == typeof window && (i = window); } t.exports = i; }, function (t, e) { var i, n, a, s, r, o, l = { debug: !0 }, u = { MathJax: l }, h = {}, p = null; (e.MathJax = l), (function (t) { var e = u.MathJax; e || (e = u.MathJax = {}); var i = [], n = function (t) { var e = t.constructor; for (var i in (e || (e = function () {}), t)) "constructor" !== i && t.hasOwnProperty(i) && (e[i] = t[i]); return e; }; (e.Object = n({ constructor: function () { return arguments.callee.Init.call(this, arguments); }, Subclass: function (t, e) { var n = function () { return arguments.callee.Init.call(this, arguments); }; return ( (n.SUPER = this), (n.Init = this.Init), (n.Subclass = this.Subclass), (n.Augment = this.Augment), (n.protoFunction = this.protoFunction), (n.can = this.can), (n.has = this.has), (n.isa = this.isa), (n.prototype = new this(i)), (n.prototype.constructor = n), n.Augment(t, e), n ); }, Init: function (t) { var e = this; return 1 === t.length && t[0] === i ? e : (e instanceof t.callee || (e = new t.callee(i)), e.Init.apply(e, t) || e); }, Augment: function (t, e) { var i; if (null != t) { for (i in t) t.hasOwnProperty(i) && this.protoFunction(i, t[i]); t.toString !== this.prototype.toString && t.toString !== {}.toString && this.protoFunction("toString", t.toString); } if (null != e) for (i in e) e.hasOwnProperty(i) && (this[i] = e[i]); return this; }, protoFunction: function (t, e) { (this.prototype[t] = e), "function" == typeof e && (e.SUPER = this.SUPER.prototype); }, prototype: { Init: function () {}, SUPER: function (t) { return t.callee.SUPER; }, can: function (t) { return "function" == typeof this[t]; }, has: function (t) { return void 0 !== this[t]; }, isa: function (t) { return t instanceof Object && this instanceof t; }, }, can: function (t) { return this.prototype.can.call(this, t); }, has: function (t) { return this.prototype.has.call(this, t); }, isa: function (t) { for (var e = this; e; ) { if (e === t) return !0; e = e.SUPER; } return !1; }, SimpleSUPER: n({ constructor: function (t) { return this.SimpleSUPER.define(t); }, define: function (t) { var e = {}; if (null != t) { for (var i in t) t.hasOwnProperty(i) && (e[i] = this.wrap(i, t[i])); t.toString !== this.prototype.toString && t.toString !== {}.toString && (e.toString = this.wrap("toString", t.toString)); } return e; }, wrap: function (t, e) { if ( "function" != typeof e || !e.toString().match(/\.\s*SUPER\s*\(/) ) return e; var i = function () { this.SUPER = i.SUPER[t]; try { var n = e.apply(this, arguments); } catch (t) { throw (delete this.SUPER, t); } return delete this.SUPER, n; }; return ( (i.toString = function () { return e.toString.apply(e, arguments); }), i ); }, }), })), (e.Object.isArray = Array.isArray || function (t) { return "[object Array]" === Object.prototype.toString.call(t); }), (e.Object.Array = Array); })(), (function (t) { var e = u.MathJax; e || (e = u.MathJax = {}); var i = function (t) { var e = function () { return arguments.callee.execute.apply(arguments.callee, arguments); }; for (var n in i.prototype) i.prototype.hasOwnProperty(n) && (e[n] = void 0 !== t[n] ? t[n] : i.prototype[n]); return (e.toString = i.prototype.toString), e; }; i.prototype = { isCallback: !0, hook: function () {}, data: [], object: u, execute: function () { if (!this.called || this.autoReset) return ( (this.called = !this.autoReset), this.hook.apply( this.object, this.data.concat([].slice.call(arguments, 0)), ) ); }, reset: function () { delete this.called; }, toString: function () { return this.hook.toString.apply(this.hook, arguments); }, }; var n = function (t) { return "function" == typeof t && t.isCallback; }, a = function (t) { return eval.call(u, t); }, s = function () { if ((a("var __TeSt_VaR__ = 1"), u.__TeSt_VaR__)) try { delete u.__TeSt_VaR__; } catch (t) { u.__TeSt_VaR__ = null; } else a = u.execScript ? function (t) { (e.__code = t), (t = "try {MathJax.__result = eval(MathJax.__code)} catch(err) {MathJax.__result = err}"), u.execScript(t); var i = e.__result; if ( (delete e.__result, delete e.__code, i instanceof Error) ) throw i; return i; } : function (t) { (e.__code = t), (t = "try {MathJax.__result = eval(MathJax.__code)} catch(err) {MathJax.__result = err}"); var i = p.getElementsByTagName("head")[0]; i || (i = p.body); var n = p.createElement("script"); n.appendChild(p.createTextNode(t)), i.appendChild(n), i.removeChild(n); var a = e.__result; if ( (delete e.__result, delete e.__code, a instanceof Error) ) throw a; return a; }; s = null; }, r = function (t, e) { if ( (arguments.length > 1 && (t = 2 === arguments.length && "function" != typeof arguments[0] && arguments[0] instanceof Object && "number" == typeof arguments[1] ? [].slice.call(t, e) : [].slice.call(arguments, 0)), t instanceof Array && 1 === t.length && (t = t[0]), "function" == typeof t) ) return t.execute === i.prototype.execute ? t : i({ hook: t }); if (t instanceof Array) { if ( "string" == typeof t[0] && t[1] instanceof Object && "function" == typeof t[1][t[0]] ) return i({ hook: t[1][t[0]], object: t[1], data: t.slice(2) }); if ("function" == typeof t[0]) return i({ hook: t[0], data: t.slice(1) }); if ("function" == typeof t[1]) return i({ hook: t[1], object: t[0], data: t.slice(2) }); } else { if ("string" == typeof t) return s && s(), i({ hook: a, data: [t] }); if (t instanceof Object) return i(t); if (void 0 === t) return i({}); } throw Error("Can't make callback from given data"); }, o = function (t, e) { (t = r(t)).called || (c(t, e), e.pending++); }, h = function () { var t = this.signal; delete this.signal, (this.execute = this.oldExecute), delete this.oldExecute; var e = this.execute.apply(this, arguments); if (n(e) && !e.called) c(e, t); else for (var i = 0, a = t.length; i < a; i++) t[i].pending--, t[i].pending <= 0 && t[i].call(); }, c = function (t, e) { e instanceof Array || (e = [e]), t.signal ? 1 === e.length ? t.signal.push(e[0]) : (t.signal = t.signal.concat(e)) : ((t.oldExecute = t.execute), (t.execute = h), (t.signal = e)); }, d = function (t) { (t = r(t)).pending = 0; for (var e = 1, i = arguments.length; e < i; e++) arguments[e] && o(arguments[e], t); if (0 === t.pending) { var a = t(); n(a) && (t = a); } return t; }, m = l.Object.Subclass({ Init: function (t) { (this.hooks = []), (this.remove = []), (this.reset = t), (this.running = !1); }, Add: function (t, e) { null == e && (e = 10), n(t) || (t = r(t)), (t.priority = e); for ( var i = this.hooks.length; i > 0 && e < this.hooks[i - 1].priority; ) i--; return this.hooks.splice(i, 0, t), t; }, Remove: function (t) { for (var e = 0, i = this.hooks.length; e < i; e++) if (this.hooks[e] === t) return void (this.running ? this.remove.push(e) : this.hooks.splice(e, 1)); }, Execute: function () { var t = [{}]; this.running = !0; for (var e = 0, i = this.hooks.length; e < i; e++) { this.reset && this.hooks[e].reset(); var a = this.hooks[e].apply(u, arguments); n(a) && !a.called && t.push(a); } return ( (this.running = !1), this.remove.length && this.RemovePending(), 1 === t.length ? null : 2 === t.length ? t[1] : d.apply({}, t) ); }, RemovePending: function () { this.remove = this.remove.sort(); for (var t = this.remove.length - 1; t >= 0; t--) this.hooks.splice(t, 1); this.remove = []; }, }), f = e.Object.Subclass({ Init: function () { (this.pending = this.running = 0), (this.queue = []), this.Push.apply(this, arguments); }, Push: function () { for (var t, e = 0, i = arguments.length; e < i; e++) (t = r(arguments[e])) !== arguments[e] || t.called || (t = r(["wait", this, t])), this.queue.push(t); return this.running || this.pending || this.Process(), t; }, Process: function (t) { for (; !this.running && !this.pending && this.queue.length; ) { var e = this.queue[0]; (t = this.queue.slice(1)), (this.queue = []), this.Suspend(); var i = e(); this.Resume(), t.length && (this.queue = t.concat(this.queue)), n(i) && !i.called && o(i, this); } }, Suspend: function () { this.running++; }, Resume: function () { this.running && this.running--; }, call: function () { this.Process.apply(this, arguments); }, wait: function (t) { return t; }, }), g = f.Subclass( { Init: function (t) { f.prototype.Init.call(this), (this.name = t), (this.posted = []), (this.listeners = m(!0)), (this.posting = !1), (this.callback = null); }, Post: function (t, e, i) { if (((e = r(e)), this.posting || this.pending)) this.Push(["Post", this, t, e, i]); else { (this.callback = e), e.reset(), i || this.posted.push(t), this.Suspend(), (this.posting = !0); var a = this.listeners.Execute(t); n(a) && !a.called && o(a, this), this.Resume(), (this.posting = !1), this.pending || this.call(); } return e; }, Clear: function (t) { return ( (t = r(t)), this.posting || this.pending ? (t = this.Push(["Clear", this, t])) : ((this.posted = []), t()), t ); }, call: function () { this.callback(this), this.Process(); }, Interest: function (t, e, i) { if (((t = r(t)), this.listeners.Add(t, i), !e)) for (var a = 0, s = this.posted.length; a < s; a++) { t.reset(); var l = t(this.posted[a]); n(l) && a === this.posted.length - 1 && o(l, this); } return t; }, NoInterest: function (t) { this.listeners.Remove(t); }, MessageHook: function (t, e, i) { (e = r(e)), this.hooks || ((this.hooks = {}), this.Interest(["ExecuteHooks", this])), this.hooks[t] || (this.hooks[t] = m(!0)), this.hooks[t].Add(e, i); for (var n = 0, a = this.posted.length; n < a; n++) this.posted[n] == t && (e.reset(), e(this.posted[n])); return (e.msg = t), e; }, ExecuteHooks: function (t) { var e = t instanceof Array ? t[0] : t; return this.hooks[e] ? this.hooks[e].Execute(t) : null; }, RemoveHook: function (t) { this.hooks[t.msg].Remove(t); }, }, { signals: {}, find: function (t) { return g.signals[t] || (g.signals[t] = new g(t)), g.signals[t]; }, }, ); (e.Callback = e.CallBack = r), (e.Callback.Delay = function (t, e) { return ((e = r(e)).timeout = setTimeout(e, t)), e; }), (e.Callback.After = d), (e.Callback.Queue = f), (e.Callback.Signal = g.find), (e.Callback.Hooks = m), (e.Callback.ExecuteHooks = function (t, e, i) { if (!t) return null; t instanceof Array || (t = [t]), e instanceof Array || (e = null == e ? [] : [e]); for (var n = m(i), a = 0, s = t.length; a < s; a++) n.Add(t[a]); return n.Execute.apply(n, e); }); })(), (function (t) { var e = u.MathJax; e || (e = u.MathJax = {}); var i = "Apple Computer, Inc." === h.vendor && void 0 === h.vendorSub, n = 0, a = [], s = function () { for (var t = 0, i = a.length; t < i; t++) e.Ajax.head.removeChild(a[t]); a = []; }, r = { MathJax: "" }; e.Ajax = { loaded: {}, loading: {}, loadHooks: {}, timeout: 15e3, styleDelay: 1, config: { root: "", path: r }, STATUS: { OK: 1, ERROR: -1 }, fileURL: function (t) { var e = t.match(/^\[([-._a-z0-9]+)\]/i); return ( e && e[1] in r && (t = (r[e[1]] || this.config.root) + t.substr(e[1].length + 2)), t ); }, fileName: function (t) { var e = this.config.root; if (t.substr(0, e.length) === e) t = "[MathJax]" + t.substr(e.length); else for (var i in r) if ( r.hasOwnProperty(i) && r[i] && t.substr(0, r[i].length) === r[i] ) { t = "[" + i + "]" + t.substr(r[i].length); break; } return t; }, fileRev: function (t) { var i = e.cdnFileVersions[name] || e.cdnVersion; return i && (i = "?rev=" + i), i; }, urlRev: function (t) { return this.fileURL(t) + this.fileRev(t); }, Require: function (t, i) { var n; if (((i = e.Callback(i)), t instanceof Object)) for (var a in t) t.hasOwnProperty(a) && ((n = a.toUpperCase()), (t = t[a])); else n = t.split(/\./).pop().toUpperCase(); if (((t = this.fileURL(t)), this.loaded[t])) i(this.loaded[t]); else { var s = {}; (s[n] = t), this.Load(s, i); } return i; }, Load: function (t, i) { var n; if (((i = e.Callback(i)), t instanceof Object)) for (var a in t) t.hasOwnProperty(a) && ((n = a.toUpperCase()), (t = t[a])); else n = t.split(/\./).pop().toUpperCase(); if (((t = this.fileURL(t)), this.loading[t])) this.addHook(t, i); else { if (((this.head = (this.head, null)), !this.loader[n])) throw Error("Can't load files of type " + n); this.loader[n].call(this, t, i); } return i; }, LoadHook: function (t, i, n) { if (((i = e.Callback(i)), t instanceof Object)) for (var a in t) t.hasOwnProperty(a) && (t = t[a]); return ( (t = this.fileURL(t)), this.loaded[t] ? i(this.loaded[t]) : this.addHook(t, i, n), i ); }, addHook: function (t, e, i) { this.loadHooks[t] || (this.loadHooks[t] = l.Callback.Hooks()), this.loadHooks[t].Add(e, i), (e.file = t); }, removeHook: function (t) { this.loadHooks[t.file] && (this.loadHooks[t.file].Remove(t), this.loadHooks[t.file].hooks.length || delete this.loadHooks[t.file]); }, Preloading: function () { for (var t = 0, e = arguments.length; t < e; t++) { var i = this.fileURL(arguments[t]); this.loading[i] || this.loaded[i] || (this.loading[i] = { preloaded: !0 }); } }, loader: { JS: function (t, i) { var n = this.fileName(t), a = e.Callback(["loadTimeout", this, t]); (this.loading[t] = { callback: i, timeout: setTimeout(a, this.timeout), status: this.STATUS.OK, script: null, }), (this.loading[t].message = e.Message.File(n)), u.System ? u.System.import(t).catch(a) : a(); }, CSS: function (t, i) { var n = this.fileName(t), a = p.createElement("link"); (a.rel = "stylesheet"), (a.type = "text/css"), (a.href = t + this.fileRev(n)), (this.loading[t] = { callback: i, message: e.Message.File(n), status: this.STATUS.OK, }), this.head.appendChild(a), this.timer.create.call(this, [this.timer.file, t], a); }, }, timer: { create: function (t, a) { return ( (t = e.Callback(t)), ("STYLE" === a.nodeName && a.styleSheet && void 0 !== a.styleSheet.cssText) || (u.chrome && "LINK" === a.nodeName) ? t(this.STATUS.OK) : i ? this.timer.start( this, [this.timer.checkSafari2, n++, t], this.styleDelay, ) : this.timer.start( this, [this.timer.checkLength, a, t], this.styleDelay, ), t ); }, start: function (t, i, n, a) { ((i = e.Callback(i)).execute = this.execute), (i.time = this.time), (i.STATUS = t.STATUS), (i.timeout = a || t.timeout), (i.delay = i.total = n || 0), n ? setTimeout(i, n) : i(); }, time: function (t) { return ( (this.total += this.delay), (this.delay = Math.floor(1.05 * this.delay + 5)), this.total >= this.timeout ? (t(this.STATUS.ERROR), 1) : 0 ); }, file: function (t, i) { i < 0 ? e.Ajax.loadTimeout(t) : e.Ajax.loadComplete(t); }, execute: function () { this.hook.call(this.object, this, this.data[0], this.data[1]); }, checkSafari2: function (t, e, i) { t.time(i) || (p.styleSheets.length > e && p.styleSheets[e].cssRules && p.styleSheets[e].cssRules.length ? i(t.STATUS.OK) : setTimeout(t, t.delay)); }, checkLength: function (t, i, n) { if (!t.time(n)) { var a = 0, s = i.sheet || i.styleSheet; try { (s.cssRules || s.rules || []).length > 0 && (a = 1); } catch (t) { (t.message.match(/protected variable|restricted URI/) || t.message.match(/Security error/)) && (a = 1); } a ? setTimeout(e.Callback([n, t.STATUS.OK]), 0) : setTimeout(t, t.delay); } }, }, loadComplete: function (t) { t = this.fileURL(t); var i = this.loading[t]; return ( i && !i.preloaded ? (e.Message.Clear(i.message), i.timeout && clearTimeout(i.timeout), i.script && (0 === a.length && setTimeout(s, 0), a.push(i.script)), (this.loaded[t] = i.status), delete this.loading[t], this.addHook(t, i.callback)) : (i && delete this.loading[t], (this.loaded[t] = this.STATUS.OK), (i = { status: this.STATUS.OK })), this.loadHooks[t] ? this.loadHooks[t].Execute(i.status) : null ); }, loadTimeout: function (t) { this.loading[t].timeout && clearTimeout(this.loading[t].timeout), (this.loading[t].status = this.STATUS.ERROR), this.loadError(t), this.loadComplete(t); }, loadError: function (t) { e.Message.Set( ["LoadFailed", "File failed to load: %1", t], null, 2e3, ), e.Hub.signal.Post(["file load error", t]); }, Styles: function (t, i) { var n = this.StyleString(t); if ("" === n) (i = e.Callback(i))(); else { var a = p.createElement("style"); (a.type = "text/css"), (this.head = (this.head, null)), this.head.appendChild(a), a.styleSheet && void 0 !== a.styleSheet.cssText ? (a.styleSheet.cssText = n) : a.appendChild(p.createTextNode(n)), (i = this.timer.create.call(this, i, a)); } return i; }, StyleString: function (t) { if ("string" == typeof t) return t; var e, i, n = ""; for (e in t) if (t.hasOwnProperty(e)) if ("string" == typeof t[e]) n += e + " {" + t[e] + "}\n"; else if (t[e] instanceof Array) for (var a = 0; a < t[e].length; a++) ((i = {})[e] = t[e][a]), (n += this.StyleString(i)); else if ("@media" === e.substr(0, 6)) n += e + " {" + this.StyleString(t[e]) + "}\n"; else if (null != t[e]) { for (var s in ((i = []), t[e])) t[e].hasOwnProperty(s) && null != t[e][s] && (i[i.length] = s + ": " + t[e][s]); n += e + " {" + i.join("; ") + "}\n"; } return n; }, }; })(), (l.HTML = { setDocument: function (t) { p = this.document = t; }, Element: function (t, e, i) { var n, a = p.createElement(t); if (e) { if (e.hasOwnProperty("style")) { var s = e.style; for (n in ((e.style = {}), s)) s.hasOwnProperty(n) && (e.style[n.replace(/-([a-z])/g, this.ucMatch)] = s[n]); } for (n in (l.Hub.Insert(a, e), e)) ("role" !== n && "aria-" !== n.substr(0, 5)) || a.setAttribute(n, e[n]); } if (i) { l.Object.isArray(i) || (i = [i]); for (var r = 0, o = i.length; r < o; r++) l.Object.isArray(i[r]) ? a.appendChild(this.Element(i[r][0], i[r][1], i[r][2])) : "script" === t ? this.setScript(a, i[r]) : a.appendChild(p.createTextNode(i[r])); } return a; }, ucMatch: function (t, e) { return e.toUpperCase(); }, addElement: function (t, e, i, n) { return t.appendChild(this.Element(e, i, n)); }, TextNode: function (t) { return p.createTextNode(t); }, addText: function (t, e) { return t.appendChild(this.TextNode(e)); }, setScript: function (t, e) { if (this.setScriptBug) t.text = e; else { for (; t.firstChild; ) t.removeChild(t.firstChild); this.addText(t, e); } }, getScript: function (t) { return t.innerText; }, }), (l.Localization = { locale: "en", directory: "[MathJax]/localization", strings: { ast: { menuTitle: "asturianu" }, bg: { menuTitle: "\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438", }, bcc: { menuTitle: "\u0628\u0644\u0648\u0686\u06cc" }, br: { menuTitle: "brezhoneg" }, ca: { menuTitle: "catal\xe0" }, cdo: { menuTitle: "M\xecng-d\u0115\u0324ng-ng\u1e73\u0304" }, cs: { menuTitle: "\u010de\u0161tina" }, da: { menuTitle: "dansk" }, de: { menuTitle: "Deutsch" }, en: { menuTitle: "English", isLoaded: !0 }, eo: { menuTitle: "Esperanto" }, es: { menuTitle: "espa\xf1ol" }, fa: { menuTitle: "\u0641\u0627\u0631\u0633\u06cc" }, fi: { menuTitle: "suomi" }, fr: { menuTitle: "fran\xe7ais" }, gl: { menuTitle: "galego" }, he: { menuTitle: "\u05e2\u05d1\u05e8\u05d9\u05ea" }, ia: { menuTitle: "interlingua" }, it: { menuTitle: "italiano" }, ja: { menuTitle: "\u65e5\u672c\u8a9e" }, kn: { menuTitle: "\u0c95\u0ca8\u0ccd\u0ca8\u0ca1" }, ko: { menuTitle: "\ud55c\uad6d\uc5b4" }, lb: { menuTitle: "L\xebtzebuergesch" }, lt: { menuTitle: "lietuvi\u0173" }, mk: { menuTitle: "\u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438", }, nl: { menuTitle: "Nederlands" }, oc: { menuTitle: "occitan" }, pl: { menuTitle: "polski" }, pt: { menuTitle: "portugus\xea" }, "pt-br": { menuTitle: "portugu\xeas do Brasil" }, ru: { menuTitle: "\u0440\u0443\u0441\u0441\u043a\u0438\u0439" }, sco: { menuTitle: "Scots" }, scn: { menuTitle: "sicilianu" }, sl: { menuTitle: "sloven\u0161\u010dina" }, sv: { menuTitle: "svenska" }, tr: { menuTitle: "T\xfcrk\xe7e" }, uk: { menuTitle: "\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430", }, vi: { menuTitle: "Ti\u1ebfng Vi\u1ec7t" }, "zh-hans": { menuTitle: "\u4e2d\u6587\uff08\u7b80\u4f53\uff09" }, }, pattern: /%(\d+|\{\d+\}|\{[a-z]+:\%\d+(?:\|(?:%\{\d+\}|%.|[^\}])*)+\}|.)/g, SPLIT: 3 === "axb".split(/(x)/).length ? function (t, e) { return t.split(e); } : function (t, e) { var i, n = [], a = 0; for (e.lastIndex = 0; (i = e.exec(t)); ) n.push(t.substr(a, i.index - a)), n.push.apply(n, i.slice(1)), (a = i.index + i[0].length); return n.push(t.substr(a)), n; }, _: function (t, e) { return e instanceof Array ? this.processSnippet(t, e) : this.processString( this.lookupPhrase(t, e), [].slice.call(arguments, 2), ); }, processString: function (t, e, i) { var n, a; for (n = 0, a = e.length; n < a; n++) i && e[n] instanceof Array && (e[n] = this.processSnippet(i, e[n])); var s = this.SPLIT(t, this.pattern); for (n = 1, a = s.length; n < a; n += 2) { var r = s[n].charAt(0); if (r >= "0" && r <= "9") (s[n] = e[s[n] - 1]), "number" == typeof s[n] && (s[n] = this.number(s[n])); else if ("{" === r) if ((r = s[n].substr(1)) >= "0" && r <= "9") (s[n] = e[s[n].substr(1, s[n].length - 2) - 1]), "number" == typeof s[n] && (s[n] = this.number(s[n])); else { var o = s[n].match(/^\{([a-z]+):%(\d+)\|(.*)\}$/); if (o) if ("plural" === o[1]) { var l = e[o[2] - 1]; if (void 0 === l) s[n] = "???"; else { l = this.plural(l) - 1; var u = o[3] .replace(/(^|[^%])(%%)*%\|/g, "$1$2%\uefef") .split(/\|/); l >= 0 && l < u.length ? (s[n] = this.processString( u[l].replace(/\uEFEF/g, "|"), e, i, )) : (s[n] = "???"); } } else s[n] = "%" + s[n]; } null == s[n] && (s[n] = "???"); } if (!i) return s.join(""); var h = [], p = ""; for (n = 0; n < a; n++) (p += s[n]), ++n < a && (s[n] instanceof Array ? (h.push(p), (h = h.concat(s[n])), (p = "")) : (p += s[n])); return "" !== p && h.push(p), h; }, processSnippet: function (t, e) { for (var i = [], n = 0, a = e.length; n < a; n++) if (e[n] instanceof Array) { var s = e[n]; if ("string" == typeof s[1]) { var r = s[0]; r instanceof Array || (r = [t, r]); var o = this.lookupPhrase(r, s[1]); i = i.concat(this.processMarkdown(o, s.slice(2), t)); } else s[1] instanceof Array ? (i = i.concat(this.processSnippet.apply(this, s))) : s.length >= 3 ? i.push([s[0], s[1], this.processSnippet(t, s[2])]) : i.push(e[n]); } else i.push(e[n]); return i; }, markdownPattern: /(%.)|(\*{1,3})((?:%.|.)+?)\2|(`+)((?:%.|.)+?)\4|\[((?:%.|.)+?)\]\(([^\s\)]+)\)/, processMarkdown: function (t, e, i) { for ( var n, a = [], s = t.split(this.markdownPattern), r = s[0], o = 1, l = s.length; o < l; o += 8 ) s[o + 1] ? ((n = this.processString(s[o + 2], e, i)) instanceof Array || (n = [n]), (n = [["b", "i", "i"][s[o + 1].length - 1], {}, n]), 3 === s[o + 1].length && (n = ["b", {}, n])) : s[o + 3] ? ((n = this.processString( s[o + 4].replace(/^\s/, "").replace(/\s$/, ""), e, i, )) instanceof Array || (n = [n]), (n = ["code", {}, n])) : s[o + 5] ? ((n = this.processString(s[o + 5], e, i)) instanceof Array || (n = [n]), (n = [ "a", { href: this.processString(s[o + 6], e), target: "_blank", }, n, ])) : ((r += s[o]), (n = null)), n && ((a = this.concatString(a, r, e, i)).push(n), (r = "")), "" !== s[o + 7] && (r += s[o + 7]); return (a = this.concatString(a, r, e, i)); }, concatString: function (t, e, i, n) { return ( "" != e && ((e = this.processString(e, i, n)) instanceof Array || (e = [e]), (t = t.concat(e))), t ); }, lookupPhrase: function (t, e, i) { i || (i = "_"), t instanceof Array && ((i = t[0] || "_"), (t = t[1] || "")); var n = this.loadDomain(i); n && l.Hub.RestartAfter(n); var a = this.strings[this.locale]; if (a && a.domains && i in a.domains) { var s = a.domains[i]; s.strings && t in s.strings && (e = s.strings[t]); } return e; }, loadFile: function (t, e, i) { ((i = l.Callback(i)), (t = e.file || t).match(/\.js$/) || (t += ".js"), t.match(/^([a-z]+:|\[MathJax\])/)) || (t = (this.strings[this.locale].directory || this.directory + "/" + this.locale || "[MathJax]/localization/" + this.locale) + "/" + t); var n = l.Ajax.Require(t, function () { return (e.isLoaded = !0), i(); }); return n.called ? null : n; }, loadDomain: function (t, e) { var i, n = this.strings[this.locale]; if (n) { if (!n.isLoaded && (i = this.loadFile(this.locale, n))) return l.Callback.Queue(i, ["loadDomain", this, t]).Push(e || {}); if (n.domains && t in n.domains) { var a = n.domains[t]; if (!a.isLoaded && (i = this.loadFile(t, a))) return l.Callback.Queue(i).Push(e); } } return l.Callback(e)(); }, Try: function (t) { (t = l.Callback(t)).autoReset = !0; try { t(); } catch (e) { if (!e.restart) throw e; l.Callback.After(["Try", this, t], e.restart); } }, resetLocale: function (t) { if (t) { for (t = t.toLowerCase(); !this.strings[t]; ) { var e = t.lastIndexOf("-"); if (-1 === e) return; t = t.substring(0, e); } var i = this.strings[t].remap; this.locale = i || t; } }, setLocale: function (t) { this.resetLocale(t), l.Menu && this.loadDomain("MathMenu"); }, addTranslation: function (t, e, i) { var n = this.strings[t], a = !1; n || ((n = this.strings[t] = {}), (a = !0)), n.domains || (n.domains = {}), e && (n.domains[e] || (n.domains[e] = {}), (n = n.domains[e])), l.Hub.Insert(n, i), a && l.Menu.menu && l.Menu.CreateLocaleMenu(); }, setCSS: function (t) { var e = this.strings[this.locale]; return ( e && (e.fontFamily && (t.style.fontFamily = e.fontFamily), e.fontDirection && ((t.style.direction = e.fontDirection), "rtl" === e.fontDirection && (t.style.textAlign = "right"))), t ); }, fontFamily: function () { var t = this.strings[this.locale]; return t ? t.fontFamily : null; }, fontDirection: function () { var t = this.strings[this.locale]; return t ? t.fontDirection : null; }, plural: function (t) { var e = this.strings[this.locale]; return e && e.plural ? e.plural(t) : 1 == t ? 1 : 2; }, number: function (t) { var e = this.strings[this.locale]; return e && e.number ? e.number(t) : t; }, }), (l.Message = { localize: function (t) { return l.Localization._(t, t); }, filterText: function (t, e, i) { return ( "simple" === l.Hub.config.messageStyle && ("LoadFile" === i ? (this.loading || (this.loading = this.localize("Loading") + " "), (t = this.loading), (this.loading += ".")) : "ProcessMath" === i ? (this.processing || (this.processing = this.localize("Processing") + " "), (t = this.processing), (this.processing += ".")) : "TypesetMath" === i && (this.typesetting || (this.typesetting = this.localize("Typesetting") + " "), (t = this.typesetting), (this.typesetting += "."))), t ); }, Set: function (t, e, i) { l.debug && (Array.isArray(t) && (t = l.Localization._.apply(l.Localization, t)), console.log("Message: " + t)); }, Clear: function (t, e) {}, Remove: function () {}, File: function (t) { return this.Set(["LoadFile", "Loading %1", t], null, null); }, Log: function () {}, }), (l.Hub = { config: { root: "./mathjax2/legacy", config: [], jax: [], extensions: [], preJax: null, postJax: null, displayAlign: "center", displayIndent: "0", preRemoveClass: "MathJax_Preview", showProcessingMessages: !0, messageStyle: "normal", delayStartupUntil: "none", skipStartupTypeset: !1, elements: [], positionToHash: !0, showMathMenu: !0, showMathMenuMSIE: !0, menuSettings: { zoom: "None", CTRL: !1, ALT: !1, CMD: !1, Shift: !1, discoverable: !1, zscale: "200%", renderer: null, font: "Auto", context: "MathJax", locale: null, mpContext: !1, mpMouse: !1, texHints: !0, FastPreview: null, assistiveMML: null, inTabOrder: !0, semantics: !1, }, errorSettings: { message: [ "[", ["MathProcessingError", "Math Processing Error"], "]", ], style: { color: "#CC0000", "font-style": "italic" }, }, ignoreMMLattributes: {}, }, preProcessors: l.Callback.Hooks(!0), inputJax: {}, outputJax: { order: {} }, processSectionDelay: 50, processUpdateTime: 250, processUpdateDelay: 10, signal: l.Callback.Signal("Hub"), Config: function (t) { this.Insert(this.config, t), this.config.Augment && this.Augment(this.config.Augment); }, CombineConfig: function (t, e) { for ( var i, n, a = this.config, s = 0, r = (t = t.split(/\./)).length; s < r; s++ ) a[(i = t[s])] || (a[i] = {}), (n = a), (a = a[i]); return (n[i] = a = this.Insert(e, a)), a; }, Register: { PreProcessor: function () { return l.Hub.preProcessors.Add.apply( l.Hub.preProcessors, arguments, ); }, MessageHook: function () { return l.Hub.signal.MessageHook.apply(l.Hub.signal, arguments); }, StartupHook: function () { return l.Hub.Startup.signal.MessageHook.apply( l.Hub.Startup.signal, arguments, ); }, LoadHook: function () { return l.Ajax.LoadHook.apply(l.Ajax, arguments); }, }, UnRegister: { PreProcessor: function (t) { l.Hub.preProcessors.Remove(t); }, MessageHook: function (t) { l.Hub.signal.RemoveHook(t); }, StartupHook: function (t) { l.Hub.Startup.signal.RemoveHook(t); }, LoadHook: function (t) { l.Ajax.removeHook(t); }, }, setRenderer: function (t, e) { if (t) { if (l.OutputJax[t]) { (this.config.menuSettings.renderer = t), null == e && (e = "jax/mml"); var i = this.outputJax; return i[e] && i[e].length && t !== i[e][0].id ? (i[e].unshift(l.OutputJax[t]), this.signal.Post(["Renderer Selected", t])) : null; } this.config.menuSettings.renderer = ""; var n = "[MathJax]/jax/output/" + t + "/config.js"; return l.Ajax.Require(n, ["setRenderer", this, t, e]); } }, Queue: function () { return this.queue.Push.apply(this.queue, arguments); }, RestartAfter: function (t) { throw this.Insert(Error("restart"), { restart: l.Callback(t) }); }, Insert: function (t, e) { for (var i in e) e.hasOwnProperty(i) && ("object" != typeof e[i] || e[i] instanceof Array || ("object" != typeof t[i] && "function" != typeof t[i]) ? (t[i] = e[i]) : this.Insert(t[i], e[i])); return t; }, SplitList: "trim" in String.prototype ? function (t) { return t.trim().split(/\s+/); } : function (t) { return t.replace(/^\s+/, "").replace(/\s+$/, "").split(/\s+/); }, }), (l.Extension = {}), (l.Hub.Startup = { queue: l.Callback.Queue(), signal: l.Callback.Signal("Startup"), }), (l.Ajax.config.root = l.Hub.config.root), (i = u.MathJax), (n = "[MathJax]"), (a = i.Hub), (s = i.Ajax), (r = i.Callback), (o = l.Object.Subclass( { JAXFILE: "jax.js", require: null, config: {}, Init: function (t, e) { return 0 === arguments.length ? this : this.constructor.Subclass(t, e)(); }, Augment: function (t, e) { var i = this.constructor, n = {}; if (null != t) { for (var s in t) t.hasOwnProperty(s) && ("function" == typeof t[s] ? i.protoFunction(s, t[s]) : (n[s] = t[s])); t.toString !== i.prototype.toString && t.toString !== {}.toString && i.protoFunction("toString", t.toString); } return a.Insert(i.prototype, n), i.Augment(null, e), this; }, Translate: function (t, e) { throw Error( this.directory + "/" + this.JAXFILE + " failed to define the Translate() method", ); }, Register: function (t) {}, Config: function () { (this.config = a.CombineConfig(this.id, this.config)), this.config.Augment && this.Augment(this.config.Augment); }, Startup: function () {}, loadComplete: function (t) { if ("config.js" === t) return s.loadComplete(this.directory + "/" + t); var e = r.Queue(); return ( e.Push( ["Post", a.Startup.signal, this.id + " Jax Config"], ["Config", this], ["Post", a.Startup.signal, this.id + " Jax Startup"], ["Startup", this], ["Post", a.Startup.signal, this.id + " Jax Ready"], ), this.copyTranslate && e.Push([ function (t) { (t.preProcess = t.preTranslate), (t.Process = t.Translate), (t.postProcess = t.postTranslate); }, this.constructor.prototype, ]), e.Push(["loadComplete", s, this.directory + "/" + t]) ); }, }, { id: "Jax", version: "2.6.0", directory: n + "/jax", extensionDir: n + "/extensions", }, )), (i.InputJax = o.Subclass( { elementJax: "mml", sourceMenuTitle: ["Original", "Original Form"], copyTranslate: !0, Process: function (t, e) { throw Error("Input jax failed to load properly"); }, needsUpdate: function (t) { var e = t.SourceElement(); return t.originalText !== i.HTML.getScript(e); }, Register: function (t) { a.inputJax || (a.inputJax = {}), (a.inputJax[t] = this); }, }, { id: "InputJax", version: "2.6.0", directory: o.directory + "/input", extensionDir: o.extensionDir, }, )), (i.OutputJax = o.Subclass( { copyTranslate: !0, preProcess: function (t) { throw Error("Output jax failed to load properly"); }, Register: function (t) { var e = a.outputJax; e[t] || (e[t] = []), e[t].length && (this.id === a.config.menuSettings.renderer || (e.order[this.id] || 0) < (e.order[e[t][0].id] || 0)) ? e[t].unshift(this) : e[t].push(this); }, Remove: function (t) {}, }, { id: "OutputJax", version: "2.6.0", directory: o.directory + "/output", extensionDir: o.extensionDir, fontDir: n + (i.isPacked ? "" : "/..") + "/fonts", imageDir: n + (i.isPacked ? "" : "/..") + "/images", }, )), (i.ElementJax = o.Subclass( { Init: function (t, e) { return this.constructor.Subclass(t, e); }, inputJax: null, outputJax: null, inputID: null, originalText: "", mimeType: "", sourceMenuTitle: ["MathMLcode", "MathML Code"], Text: function (t, e) { var n = this.SourceElement(); return ( i.HTML.setScript(n, t), (n.MathJax.state = this.STATE.UPDATE), a.Update(n, e) ); }, Reprocess: function (t) { var e = this.SourceElement(); return (e.MathJax.state = this.STATE.UPDATE), a.Reprocess(e, t); }, Update: function (t) { return this.Rerender(t); }, Rerender: function (t) { var e = this.SourceElement(); return (e.MathJax.state = this.STATE.OUTPUT), a.Process(e, t); }, Remove: function (t) { this.hover && this.hover.clear(this), i.OutputJax[this.outputJax].Remove(this), t || (a.signal.Post(["Remove Math", this.inputID]), this.Detach()); }, needsUpdate: function () { return i.InputJax[this.inputJax].needsUpdate(this); }, SourceElement: function () { return p.getElementById(this.inputID); }, Attach: function (t, e) { var n = t.MathJax.elementJax; return ( t.MathJax.state === this.STATE.UPDATE ? n.Clone(this) : ((n = t.MathJax.elementJax = this), t.id ? (this.inputID = t.id) : ((t.id = this.inputID = i.ElementJax.GetID()), (this.newID = 1))), (n.originalText = i.HTML.getScript(t)), (n.inputJax = e), n.root && (n.root.inputID = n.inputID), n ); }, Detach: function () { var t = this.SourceElement(); if (t) { try { delete t.MathJax; } catch (e) { t.MathJax = null; } this.newID && (t.id = ""); } }, Clone: function (t) { var e; for (e in this) this.hasOwnProperty(e) && void 0 === t[e] && "newID" !== e && delete this[e]; for (e in t) t.hasOwnProperty(e) && (void 0 === this[e] || (this[e] !== t[e] && "inputID" !== e)) && (this[e] = t[e]); }, }, { id: "ElementJax", version: "2.6.0", directory: o.directory + "/element", extensionDir: o.extensionDir, ID: 0, STATE: { PENDING: 1, PROCESSED: 2, UPDATE: 3, OUTPUT: 4 }, GetID: function () { return this.ID++, "MathJax-Element-" + this.ID; }, Subclass: function () { var t = o.Subclass.apply(this, arguments); return (t.loadComplete = this.prototype.loadComplete), t; }, }, )), (i.ElementJax.prototype.STATE = i.ElementJax.STATE), (l.Hub.Browser = { Select: function () {} }); }, function (t, e) { (MathJax.ElementJax.mml = MathJax.ElementJax( { mimeType: "jax/mml" }, { id: "mml", version: "2.7.2", directory: MathJax.ElementJax.directory + "/mml", extensionDir: MathJax.ElementJax.extensionDir + "/mml", optableDir: MathJax.ElementJax.directory + "/mml/optable", }, )), MathJax.ElementJax.mml.Augment( { Init: function () { if ( (1 === arguments.length && "math" === arguments[0].type ? (this.root = arguments[0]) : (this.root = MathJax.ElementJax.mml.math.apply( this, arguments, )), this.root.attr && this.root.attr.mode) ) { this.root.display || "display" !== this.root.attr.mode || ((this.root.display = "block"), this.root.attrNames.push("display")), delete this.root.attr.mode; for (var t = 0, e = this.root.attrNames.length; t < e; t++) if ("mode" === this.root.attrNames[t]) { this.root.attrNames.splice(t, 1); break; } } }, }, { INHERIT: "_inherit_", AUTO: "_auto_", SIZE: { INFINITY: "infinity", SMALL: "small", NORMAL: "normal", BIG: "big", }, COLOR: { TRANSPARENT: "transparent" }, VARIANT: { NORMAL: "normal", BOLD: "bold", ITALIC: "italic", BOLDITALIC: "bold-italic", DOUBLESTRUCK: "double-struck", FRAKTUR: "fraktur", BOLDFRAKTUR: "bold-fraktur", SCRIPT: "script", BOLDSCRIPT: "bold-script", SANSSERIF: "sans-serif", BOLDSANSSERIF: "bold-sans-serif", SANSSERIFITALIC: "sans-serif-italic", SANSSERIFBOLDITALIC: "sans-serif-bold-italic", MONOSPACE: "monospace", INITIAL: "inital", TAILED: "tailed", LOOPED: "looped", STRETCHED: "stretched", CALIGRAPHIC: "-tex-caligraphic", OLDSTYLE: "-tex-oldstyle", }, FORM: { PREFIX: "prefix", INFIX: "infix", POSTFIX: "postfix" }, LINEBREAK: { AUTO: "auto", NEWLINE: "newline", NOBREAK: "nobreak", GOODBREAK: "goodbreak", BADBREAK: "badbreak", }, LINEBREAKSTYLE: { BEFORE: "before", AFTER: "after", DUPLICATE: "duplicate", INFIXLINBREAKSTYLE: "infixlinebreakstyle", }, INDENTALIGN: { LEFT: "left", CENTER: "center", RIGHT: "right", AUTO: "auto", ID: "id", INDENTALIGN: "indentalign", }, INDENTSHIFT: { INDENTSHIFT: "indentshift" }, LINETHICKNESS: { THIN: "thin", MEDIUM: "medium", THICK: "thick" }, NOTATION: { LONGDIV: "longdiv", ACTUARIAL: "actuarial", RADICAL: "radical", BOX: "box", ROUNDEDBOX: "roundedbox", CIRCLE: "circle", LEFT: "left", RIGHT: "right", TOP: "top", BOTTOM: "bottom", UPDIAGONALSTRIKE: "updiagonalstrike", DOWNDIAGONALSTRIKE: "downdiagonalstrike", UPDIAGONALARROW: "updiagonalarrow", VERTICALSTRIKE: "verticalstrike", HORIZONTALSTRIKE: "horizontalstrike", PHASORANGLE: "phasorangle", MADRUWB: "madruwb", }, ALIGN: { TOP: "top", BOTTOM: "bottom", CENTER: "center", BASELINE: "baseline", AXIS: "axis", LEFT: "left", RIGHT: "right", }, LINES: { NONE: "none", SOLID: "solid", DASHED: "dashed" }, SIDE: { LEFT: "left", RIGHT: "right", LEFTOVERLAP: "leftoverlap", RIGHTOVERLAP: "rightoverlap", }, WIDTH: { AUTO: "auto", FIT: "fit" }, ACTIONTYPE: { TOGGLE: "toggle", STATUSLINE: "statusline", TOOLTIP: "tooltip", INPUT: "input", }, LENGTH: { VERYVERYTHINMATHSPACE: "veryverythinmathspace", VERYTHINMATHSPACE: "verythinmathspace", THINMATHSPACE: "thinmathspace", MEDIUMMATHSPACE: "mediummathspace", THICKMATHSPACE: "thickmathspace", VERYTHICKMATHSPACE: "verythickmathspace", VERYVERYTHICKMATHSPACE: "veryverythickmathspace", NEGATIVEVERYVERYTHINMATHSPACE: "negativeveryverythinmathspace", NEGATIVEVERYTHINMATHSPACE: "negativeverythinmathspace", NEGATIVETHINMATHSPACE: "negativethinmathspace", NEGATIVEMEDIUMMATHSPACE: "negativemediummathspace", NEGATIVETHICKMATHSPACE: "negativethickmathspace", NEGATIVEVERYTHICKMATHSPACE: "negativeverythickmathspace", NEGATIVEVERYVERYTHICKMATHSPACE: "negativeveryverythickmathspace", }, OVERFLOW: { LINBREAK: "linebreak", SCROLL: "scroll", ELIDE: "elide", TRUNCATE: "truncate", SCALE: "scale", }, UNIT: { EM: "em", EX: "ex", PX: "px", IN: "in", CM: "cm", MM: "mm", PT: "pt", PC: "pc", }, TEXCLASS: { ORD: 0, OP: 1, BIN: 2, REL: 3, OPEN: 4, CLOSE: 5, PUNCT: 6, INNER: 7, VCENTER: 8, NONE: -1, }, TEXCLASSNAMES: [ "ORD", "OP", "BIN", "REL", "OPEN", "CLOSE", "PUNCT", "INNER", "VCENTER", ], skipAttributes: { texClass: !0, useHeight: !0, texprimestyle: !0 }, copyAttributes: { displaystyle: 1, scriptlevel: 1, open: 1, close: 1, form: 1, actiontype: 1, fontfamily: !0, fontsize: !0, fontweight: !0, fontstyle: !0, color: !0, background: !0, id: !0, class: 1, href: !0, style: !0, }, copyAttributeNames: [ "displaystyle", "scriptlevel", "open", "close", "form", "actiontype", "fontfamily", "fontsize", "fontweight", "fontstyle", "color", "background", "id", "class", "href", "style", ], nocopyAttributes: { fontfamily: !0, fontsize: !0, fontweight: !0, fontstyle: !0, color: !0, background: !0, id: !0, class: !0, href: !0, style: !0, xmlns: !0, }, Error: function (t, e) { var i = this.merror(t), n = MathJax.Localization.fontDirection(), a = MathJax.Localization.fontFamily(); return ( e && (i = i.With(e)), (n || a) && ((i = this.mstyle(i)), n && (i.dir = n), a && (i.style.fontFamily = "font-family: " + a)), i ); }, }, ), (function (t) { (t.mbase = MathJax.Object.Subclass( { type: "base", isToken: !1, defaults: { mathbackground: t.INHERIT, mathcolor: t.INHERIT, dir: t.INHERIT, }, noInherit: {}, noInheritAttribute: { texClass: !0 }, getRemoved: {}, linebreakContainer: !1, Init: function () { (this.data = []), !this.inferRow || (1 === arguments.length && arguments[0].inferred) || this.Append(t.mrow().With({ inferred: !0, notParent: !0 })), this.Append.apply(this, arguments); }, With: function (t) { for (var e in t) t.hasOwnProperty(e) && (this[e] = t[e]); return this; }, Append: function () { if (this.inferRow && this.data.length) this.data[0].Append.apply(this.data[0], arguments); else for (var t = 0, e = arguments.length; t < e; t++) this.SetData(this.data.length, arguments[t]); }, SetData: function (e, i) { null != i && (i instanceof t.mbase || (i = this.isToken || this.isChars ? t.chars(i) : t.mtext(i)), (i.parent = this), i.setInherit(this.inheritFromMe ? this : this.inherit)), (this.data[e] = i); }, Parent: function () { for (var t = this.parent; t && t.notParent; ) t = t.parent; return t; }, Get: function (e, i, n) { if (!n) { if (null != this[e]) return this[e]; if (this.attr && null != this.attr[e]) return this.attr[e]; } var a = this.Parent(); if (a && null != a["adjustChild_" + e]) return a["adjustChild_" + e](this.childPosition(), i); for (var s = this.inherit, r = s; s; ) { var o = s[e]; if ( (null == o && s.attr && (o = s.attr[e]), s.removedStyles && s.getRemoved[e] && null == o && (o = s.removedStyles[s.getRemoved[e]]), null != o && s.noInheritAttribute && !s.noInheritAttribute[e]) ) { var l = s.noInherit[this.type]; if (!l || !l[e]) return o; } (r = s), (s = s.inherit); } if (!i) { if (this.defaults[e] === t.AUTO) return this.autoDefault(e); if (this.defaults[e] !== t.INHERIT && null != this.defaults[e]) return this.defaults[e]; if (r) return r.defaults[e]; } return null; }, hasValue: function (t) { return null != this.Get(t, !0); }, getValues: function () { for (var t = {}, e = 0, i = arguments.length; e < i; e++) t[arguments[e]] = this.Get(arguments[e]); return t; }, adjustChild_scriptlevel: function (t, e) { return this.Get("scriptlevel", e); }, adjustChild_displaystyle: function (t, e) { return this.Get("displaystyle", e); }, adjustChild_texprimestyle: function (t, e) { return this.Get("texprimestyle", e); }, childPosition: function () { for (var t = this, e = t.parent; e.notParent; ) e = (t = e).parent; for (var i = 0, n = e.data.length; i < n; i++) if (e.data[i] === t) return i; return null; }, setInherit: function (t) { if (t !== this.inherit && null == this.inherit) { this.inherit = t; for (var e = 0, i = this.data.length; e < i; e++) this.data[e] && this.data[e].setInherit && this.data[e].setInherit(t); } }, setTeXclass: function (t) { return this.getPrevClass(t), void 0 !== this.texClass ? this : t; }, getPrevClass: function (t) { t && ((this.prevClass = t.Get("texClass")), (this.prevLevel = t.Get("scriptlevel"))); }, updateTeXclass: function (t) { t && ((this.prevClass = t.prevClass), delete t.prevClass, (this.prevLevel = t.prevLevel), delete t.prevLevel, (this.texClass = t.Get("texClass"))); }, texSpacing: function () { var e = null != this.prevClass ? this.prevClass : t.TEXCLASS.NONE, i = this.Get("texClass") || t.TEXCLASS.ORD; if (e === t.TEXCLASS.NONE || i === t.TEXCLASS.NONE) return ""; e === t.TEXCLASS.VCENTER && (e = t.TEXCLASS.ORD), i === t.TEXCLASS.VCENTER && (i = t.TEXCLASS.ORD); var n = this.TEXSPACE[e][i]; return (this.prevLevel > 0 || this.Get("scriptlevel") > 0) && n >= 0 ? "" : this.TEXSPACELENGTH[Math.abs(n)]; }, TEXSPACELENGTH: [ "", t.LENGTH.THINMATHSPACE, t.LENGTH.MEDIUMMATHSPACE, t.LENGTH.THICKMATHSPACE, ], TEXSPACE: [ [0, -1, 2, 3, 0, 0, 0, 1], [-1, -1, 0, 3, 0, 0, 0, 1], [2, 2, 0, 0, 2, 0, 0, 2], [3, 3, 0, 0, 3, 0, 0, 3], [0, 0, 0, 0, 0, 0, 0, 0], [0, -1, 2, 3, 0, 0, 0, 1], [1, 1, 0, 1, 1, 1, 1, 1], [1, -1, 2, 3, 1, 0, 1, 1], ], autoDefault: function (t) { return ""; }, isSpacelike: function () { return !1; }, isEmbellished: function () { return !1; }, Core: function () { return this; }, CoreMO: function () { return this; }, childIndex: function (t) { if (null != t) for (var e = 0, i = this.data.length; e < i; e++) if (t === this.data[e]) return e; }, CoreIndex: function () { return ((this.inferRow && this.data[0]) || this).childIndex( this.Core(), ); }, hasNewline: function () { if (this.isEmbellished()) return this.CoreMO().hasNewline(); if (this.isToken || this.linebreakContainer) return !1; for (var t = 0, e = this.data.length; t < e; t++) if (this.data[t] && this.data[t].hasNewline()) return !0; return !1; }, array: function () { return this.inferred ? this.data : [this]; }, toString: function () { return this.type + "(" + this.data.join(",") + ")"; }, getAnnotation: function () { return null; }, }, { childrenSpacelike: function () { for (var t = 0, e = this.data.length; t < e; t++) if (!this.data[t].isSpacelike()) return !1; return !0; }, childEmbellished: function () { return this.data[0] && this.data[0].isEmbellished(); }, childCore: function () { return this.inferRow && this.data[0] ? this.data[0].Core() : this.data[0]; }, childCoreMO: function () { return this.data[0] ? this.data[0].CoreMO() : null; }, setChildTeXclass: function (t) { return ( this.data[0] && ((t = this.data[0].setTeXclass(t)), this.updateTeXclass(this.data[0])), t ); }, setBaseTeXclasses: function (e) { this.getPrevClass(e), (this.texClass = null), this.data[0] ? this.isEmbellished() || this.data[0].isa(t.mi) ? ((e = this.data[0].setTeXclass(e)), this.updateTeXclass(this.Core())) : (this.data[0].setTeXclass(), (e = this)) : (e = this); for (var i = 1, n = this.data.length; i < n; i++) this.data[i] && this.data[i].setTeXclass(); return e; }, setSeparateTeXclasses: function (t) { this.getPrevClass(t); for (var e = 0, i = this.data.length; e < i; e++) this.data[e] && this.data[e].setTeXclass(); return ( this.isEmbellished() && this.updateTeXclass(this.Core()), this ); }, }, )), (t.mi = t.mbase.Subclass({ type: "mi", isToken: !0, texClass: t.TEXCLASS.ORD, defaults: { mathvariant: t.AUTO, mathsize: t.INHERIT, mathbackground: t.INHERIT, mathcolor: t.INHERIT, dir: t.INHERIT, }, autoDefault: function (e) { if ("mathvariant" === e) { var i = (this.data[0] || "").toString(); return 1 === i.length || (2 === i.length && i.charCodeAt(0) >= 55296 && i.charCodeAt(0) < 56320) ? t.VARIANT.ITALIC : t.VARIANT.NORMAL; } return ""; }, setTeXclass: function (e) { this.getPrevClass(e); var i = this.data.join(""); return ( i.length > 1 && i.match(/^[a-z][a-z0-9]*$/i) && this.texClass === t.TEXCLASS.ORD && ((this.texClass = t.TEXCLASS.OP), (this.autoOP = !0)), this ); }, })), (t.mn = t.mbase.Subclass({ type: "mn", isToken: !0, texClass: t.TEXCLASS.ORD, defaults: { mathvariant: t.INHERIT, mathsize: t.INHERIT, mathbackground: t.INHERIT, mathcolor: t.INHERIT, dir: t.INHERIT, }, })), (t.mo = t.mbase.Subclass({ type: "mo", isToken: !0, defaults: { mathvariant: t.INHERIT, mathsize: t.INHERIT, mathbackground: t.INHERIT, mathcolor: t.INHERIT, dir: t.INHERIT, form: t.AUTO, fence: t.AUTO, separator: t.AUTO, lspace: t.AUTO, rspace: t.AUTO, stretchy: t.AUTO, symmetric: t.AUTO, maxsize: t.AUTO, minsize: t.AUTO, largeop: t.AUTO, movablelimits: t.AUTO, accent: t.AUTO, linebreak: t.LINEBREAK.AUTO, lineleading: t.INHERIT, linebreakstyle: t.AUTO, linebreakmultchar: t.INHERIT, indentalign: t.INHERIT, indentshift: t.INHERIT, indenttarget: t.INHERIT, indentalignfirst: t.INHERIT, indentshiftfirst: t.INHERIT, indentalignlast: t.INHERIT, indentshiftlast: t.INHERIT, texClass: t.AUTO, }, defaultDef: { form: t.FORM.INFIX, fence: !1, separator: !1, lspace: t.LENGTH.THICKMATHSPACE, rspace: t.LENGTH.THICKMATHSPACE, stretchy: !1, symmetric: !1, maxsize: t.SIZE.INFINITY, minsize: "0em", largeop: !1, movablelimits: !1, accent: !1, linebreak: t.LINEBREAK.AUTO, lineleading: "1ex", linebreakstyle: "before", indentalign: t.INDENTALIGN.AUTO, indentshift: "0", indenttarget: "", indentalignfirst: t.INDENTALIGN.INDENTALIGN, indentshiftfirst: t.INDENTSHIFT.INDENTSHIFT, indentalignlast: t.INDENTALIGN.INDENTALIGN, indentshiftlast: t.INDENTSHIFT.INDENTSHIFT, texClass: t.TEXCLASS.REL, }, SPACE_ATTR: { lspace: 1, rspace: 2, form: 4 }, useMMLspacing: 7, autoDefault: function (e, i) { var n = this.def; if (!n) { if ("form" === e) return ( (this.useMMLspacing &= ~this.SPACE_ATTR.form), this.getForm() ); for ( var a = this.data.join(""), s = [ this.Get("form"), t.FORM.INFIX, t.FORM.POSTFIX, t.FORM.PREFIX, ], r = 0, o = s.length; r < o; r++ ) { var l = this.OPTABLE[s[r]][a]; if (l) { n = this.makeDef(l); break; } } n || (n = this.CheckRange(a)), !n && i ? (n = {}) : (n || (n = MathJax.Hub.Insert({}, this.defaultDef)), this.parent ? (this.def = n) : (n = MathJax.Hub.Insert({}, n)), (n.form = s[0])); } return ( (this.useMMLspacing &= ~(this.SPACE_ATTR[e] || 0)), null != n[e] ? n[e] : i ? "" : this.defaultDef[e] ); }, CheckRange: function (e) { var i = e.charCodeAt(0); i >= 55296 && i < 56320 && (i = ((i - 55296) << 10) + (e.charCodeAt(1) - 56320) + 65536); for ( var n = 0, a = this.RANGES.length; n < a && this.RANGES[n][0] <= i; n++ ) if (i <= this.RANGES[n][1]) { if (this.RANGES[n][3]) { var s = t.optableDir + "/" + this.RANGES[n][3] + ".js"; (this.RANGES[n][3] = null), MathJax.Hub.RestartAfter(MathJax.Ajax.Require(s)); } var r = t.TEXCLASSNAMES[this.RANGES[n][2]]; return ( (r = this.OPTABLE.infix[e] = t.mo.OPTYPES["BIN" === r ? "BIN3" : r]), this.makeDef(r) ); } return null; }, makeDef: function (e) { null == e[2] && (e[2] = this.defaultDef.texClass), e[3] || (e[3] = {}); var i = MathJax.Hub.Insert({}, e[3]); return ( (i.lspace = this.SPACE[e[0]]), (i.rspace = this.SPACE[e[1]]), (i.texClass = e[2]), i.texClass === t.TEXCLASS.REL && (this.movablelimits || this.data.join("").match(/^[a-z]+$/i)) && (i.texClass = t.TEXCLASS.OP), i ); }, getForm: function () { for ( var e = this, i = this.parent, n = this.Parent(); n && n.isEmbellished(); ) (e = i), (i = n.parent), (n = n.Parent()); if (i && "mrow" === i.type && 1 !== i.NonSpaceLength()) { if (i.FirstNonSpace() === e) return t.FORM.PREFIX; if (i.LastNonSpace() === e) return t.FORM.POSTFIX; } return t.FORM.INFIX; }, isEmbellished: function () { return !0; }, hasNewline: function () { return this.Get("linebreak") === t.LINEBREAK.NEWLINE; }, CoreParent: function () { for ( var e = this; e && e.isEmbellished() && e.CoreMO() === this && !e.isa(t.math); ) e = e.Parent(); return e; }, CoreText: function (e) { if (!e) return ""; if (e.isEmbellished()) return e.CoreMO().data.join(""); for ( ; (((e.isa(t.mrow) || e.isa(t.TeXAtom) || e.isa(t.mstyle) || e.isa(t.mphantom)) && 1 === e.data.length) || e.isa(t.munderover)) && e.data[0]; ) e = e.data[0]; return e.isToken ? e.data.join("") : ""; }, remapChars: { "*": "\u2217", '"': "\u2033", "\xb0": "\u2218", "\xb2": "2", "\xb3": "3", "\xb4": "\u2032", "\xb9": "1", }, remap: function (t, e) { return ( (t = t.replace(/-/g, "\u2212")), e && 1 === (t = t.replace(/'/g, "\u2032").replace(/`/g, "\u2035")) .length && (t = e[t] || t), t ); }, setTeXclass: function (e) { var i = this.getValues("form", "lspace", "rspace", "fence"); return this.useMMLspacing ? ((this.texClass = t.TEXCLASS.NONE), this) : (i.fence && !this.texClass && (i.form === t.FORM.PREFIX && (this.texClass = t.TEXCLASS.OPEN), i.form === t.FORM.POSTFIX && (this.texClass = t.TEXCLASS.CLOSE)), (this.texClass = this.Get("texClass")), "\u2061" === this.data.join("") ? (e && ((e.texClass = t.TEXCLASS.OP), (e.fnOP = !0)), (this.texClass = this.prevClass = t.TEXCLASS.NONE), e) : this.adjustTeXclass(e)); }, adjustTeXclass: function (e) { if (this.texClass === t.TEXCLASS.NONE) return e; if ( (e ? (!e.autoOP || (this.texClass !== t.TEXCLASS.BIN && this.texClass !== t.TEXCLASS.REL) || (e.texClass = t.TEXCLASS.ORD), (this.prevClass = e.texClass || t.TEXCLASS.ORD), (this.prevLevel = e.Get("scriptlevel"))) : (this.prevClass = t.TEXCLASS.NONE), this.texClass !== t.TEXCLASS.BIN || (this.prevClass !== t.TEXCLASS.NONE && this.prevClass !== t.TEXCLASS.BIN && this.prevClass !== t.TEXCLASS.OP && this.prevClass !== t.TEXCLASS.REL && this.prevClass !== t.TEXCLASS.OPEN && this.prevClass !== t.TEXCLASS.PUNCT)) ) if ( this.prevClass !== t.TEXCLASS.BIN || (this.texClass !== t.TEXCLASS.REL && this.texClass !== t.TEXCLASS.CLOSE && this.texClass !== t.TEXCLASS.PUNCT) ) { if (this.texClass === t.TEXCLASS.BIN) { for ( var i = this, n = this.parent; n && n.parent && n.isEmbellished() && (1 === n.data.length || ("mrow" !== n.type && n.Core() === i)); ) (i = n), (n = n.parent); n.data[n.data.length - 1] === i && (this.texClass = t.TEXCLASS.ORD); } } else e.texClass = this.prevClass = t.TEXCLASS.ORD; else this.texClass = t.TEXCLASS.ORD; return this; }, })), (t.mtext = t.mbase.Subclass({ type: "mtext", isToken: !0, isSpacelike: function () { return !0; }, texClass: t.TEXCLASS.ORD, defaults: { mathvariant: t.INHERIT, mathsize: t.INHERIT, mathbackground: t.INHERIT, mathcolor: t.INHERIT, dir: t.INHERIT, }, })), (t.mspace = t.mbase.Subclass({ type: "mspace", isToken: !0, isSpacelike: function () { return !0; }, defaults: { mathbackground: t.INHERIT, mathcolor: t.INHERIT, width: "0em", height: "0ex", depth: "0ex", linebreak: t.LINEBREAK.AUTO, }, hasDimAttr: function () { return ( this.hasValue("width") || this.hasValue("height") || this.hasValue("depth") ); }, hasNewline: function () { return ( !this.hasDimAttr() && this.Get("linebreak") === t.LINEBREAK.NEWLINE ); }, })), (t.ms = t.mbase.Subclass({ type: "ms", isToken: !0, texClass: t.TEXCLASS.ORD, defaults: { mathvariant: t.INHERIT, mathsize: t.INHERIT, mathbackground: t.INHERIT, mathcolor: t.INHERIT, dir: t.INHERIT, lquote: '"', rquote: '"', }, })), (t.mglyph = t.mbase.Subclass({ type: "mglyph", isToken: !0, texClass: t.TEXCLASS.ORD, defaults: { mathbackground: t.INHERIT, mathcolor: t.INHERIT, alt: "", src: "", width: t.AUTO, height: t.AUTO, valign: "0em", }, })), (t.mrow = t.mbase.Subclass({ type: "mrow", isSpacelike: t.mbase.childrenSpacelike, inferred: !1, notParent: !1, isEmbellished: function () { for (var t = !1, e = 0, i = this.data.length; e < i; e++) if (null != this.data[e]) if (this.data[e].isEmbellished()) { if (t) return !1; (t = !0), (this.core = e); } else if (!this.data[e].isSpacelike()) return !1; return t; }, NonSpaceLength: function () { for (var t = 0, e = 0, i = this.data.length; e < i; e++) this.data[e] && !this.data[e].isSpacelike() && t++; return t; }, FirstNonSpace: function () { for (var t = 0, e = this.data.length; t < e; t++) if (this.data[t] && !this.data[t].isSpacelike()) return this.data[t]; return null; }, LastNonSpace: function () { for (var t = this.data.length - 1; t >= 0; t--) if (this.data[0] && !this.data[t].isSpacelike()) return this.data[t]; return null; }, Core: function () { return this.isEmbellished() && void 0 !== this.core ? this.data[this.core] : this; }, CoreMO: function () { return this.isEmbellished() && void 0 !== this.core ? this.data[this.core].CoreMO() : this; }, toString: function () { return this.inferred ? "[" + this.data.join(",") + "]" : this.SUPER(arguments).toString.call(this); }, setTeXclass: function (e) { var i, n = this.data.length; if ((!this.open && !this.close) || (e && e.fnOP)) { for (i = 0; i < n; i++) this.data[i] && (e = this.data[i].setTeXclass(e)); return this.data[0] && this.updateTeXclass(this.data[0]), e; } for (this.getPrevClass(e), e = null, i = 0; i < n; i++) this.data[i] && (e = this.data[i].setTeXclass(e)); return ( this.hasOwnProperty("texClass") || (this.texClass = t.TEXCLASS.INNER), this ); }, getAnnotation: function (t) { return 1 != this.data.length ? null : this.data[0].getAnnotation(t); }, })), (t.mfrac = t.mbase.Subclass({ type: "mfrac", num: 0, den: 1, linebreakContainer: !0, isEmbellished: t.mbase.childEmbellished, Core: t.mbase.childCore, CoreMO: t.mbase.childCoreMO, defaults: { mathbackground: t.INHERIT, mathcolor: t.INHERIT, linethickness: t.LINETHICKNESS.MEDIUM, numalign: t.ALIGN.CENTER, denomalign: t.ALIGN.CENTER, bevelled: !1, }, adjustChild_displaystyle: function (t) { return !1; }, adjustChild_scriptlevel: function (t) { var e = this.Get("scriptlevel"); return (!this.Get("displaystyle") || e > 0) && e++, e; }, adjustChild_texprimestyle: function (t) { return t == this.den || this.Get("texprimestyle"); }, setTeXclass: t.mbase.setSeparateTeXclasses, })), (t.msqrt = t.mbase.Subclass({ type: "msqrt", inferRow: !0, linebreakContainer: !0, texClass: t.TEXCLASS.ORD, setTeXclass: t.mbase.setSeparateTeXclasses, adjustChild_texprimestyle: function (t) { return !0; }, })), (t.mroot = t.mbase.Subclass({ type: "mroot", linebreakContainer: !0, texClass: t.TEXCLASS.ORD, adjustChild_displaystyle: function (t) { return 1 !== t && this.Get("displaystyle"); }, adjustChild_scriptlevel: function (t) { var e = this.Get("scriptlevel"); return 1 === t && (e += 2), e; }, adjustChild_texprimestyle: function (t) { return 0 === t || this.Get("texprimestyle"); }, setTeXclass: t.mbase.setSeparateTeXclasses, })), (t.mstyle = t.mbase.Subclass({ type: "mstyle", isSpacelike: t.mbase.childrenSpacelike, isEmbellished: t.mbase.childEmbellished, Core: t.mbase.childCore, CoreMO: t.mbase.childCoreMO, inferRow: !0, defaults: { scriptlevel: t.INHERIT, displaystyle: t.INHERIT, scriptsizemultiplier: Math.sqrt(0.5), scriptminsize: "8pt", mathbackground: t.INHERIT, mathcolor: t.INHERIT, dir: t.INHERIT, infixlinebreakstyle: t.LINEBREAKSTYLE.BEFORE, decimalseparator: ".", }, adjustChild_scriptlevel: function (t) { var e = this.scriptlevel; if (null == e) e = this.Get("scriptlevel"); else if (String(e).match(/^ *[-+]/)) { e = this.Get("scriptlevel", null, !0) + parseInt(e); } return e; }, inheritFromMe: !0, noInherit: { mpadded: { width: !0, height: !0, depth: !0, lspace: !0, voffset: !0, }, mtable: { width: !0, height: !0, depth: !0, align: !0 }, }, getRemoved: { fontfamily: "fontFamily", fontweight: "fontWeight", fontstyle: "fontStyle", fontsize: "fontSize", }, setTeXclass: t.mbase.setChildTeXclass, })), (t.merror = t.mbase.Subclass({ type: "merror", inferRow: !0, linebreakContainer: !0, texClass: t.TEXCLASS.ORD, })), (t.mpadded = t.mbase.Subclass({ type: "mpadded", inferRow: !0, isSpacelike: t.mbase.childrenSpacelike, isEmbellished: t.mbase.childEmbellished, Core: t.mbase.childCore, CoreMO: t.mbase.childCoreMO, defaults: { mathbackground: t.INHERIT, mathcolor: t.INHERIT, width: "", height: "", depth: "", lspace: 0, voffset: 0, }, setTeXclass: t.mbase.setChildTeXclass, })), (t.mphantom = t.mbase.Subclass({ type: "mphantom", texClass: t.TEXCLASS.ORD, inferRow: !0, isSpacelike: t.mbase.childrenSpacelike, isEmbellished: t.mbase.childEmbellished, Core: t.mbase.childCore, CoreMO: t.mbase.childCoreMO, setTeXclass: t.mbase.setChildTeXclass, })), (t.mfenced = t.mbase.Subclass({ type: "mfenced", defaults: { mathbackground: t.INHERIT, mathcolor: t.INHERIT, open: "(", close: ")", separators: ",", }, addFakeNodes: function () { var e = this.getValues("open", "close", "separators"); if ( ((e.open = e.open.replace(/[ \t\n\r]/g, "")), (e.close = e.close.replace(/[ \t\n\r]/g, "")), (e.separators = e.separators.replace(/[ \t\n\r]/g, "")), "" !== e.open && (this.SetData( "open", t.mo(e.open).With({ fence: !0, form: t.FORM.PREFIX, texClass: t.TEXCLASS.OPEN, }), ), (this.data.open.useMMLspacing = 0)), "" !== e.separators) ) { for (; e.separators.length < this.data.length; ) e.separators += e.separators.charAt(e.separators.length - 1); for (var i = 1, n = this.data.length; i < n; i++) this.data[i] && (this.SetData( "sep" + i, t.mo(e.separators.charAt(i - 1)).With({ separator: !0 }), ), (this.data["sep" + i].useMMLspacing = 0)); } "" !== e.close && (this.SetData( "close", t.mo(e.close).With({ fence: !0, form: t.FORM.POSTFIX, texClass: t.TEXCLASS.CLOSE, }), ), (this.data.close.useMMLspacing = 0)); }, texClass: t.TEXCLASS.OPEN, setTeXclass: function (e) { this.addFakeNodes(), this.getPrevClass(e), this.data.open && (e = this.data.open.setTeXclass(e)), this.data[0] && (e = this.data[0].setTeXclass(e)); for (var i = 1, n = this.data.length; i < n; i++) this.data["sep" + i] && (e = this.data["sep" + i].setTeXclass(e)), this.data[i] && (e = this.data[i].setTeXclass(e)); return ( this.data.close && (e = this.data.close.setTeXclass(e)), this.updateTeXclass(this.data.open), (this.texClass = t.TEXCLASS.INNER), e ); }, })), (t.menclose = t.mbase.Subclass({ type: "menclose", inferRow: !0, linebreakContainer: !0, defaults: { mathbackground: t.INHERIT, mathcolor: t.INHERIT, notation: t.NOTATION.LONGDIV, texClass: t.TEXCLASS.ORD, }, setTeXclass: t.mbase.setSeparateTeXclasses, })), (t.msubsup = t.mbase.Subclass({ type: "msubsup", base: 0, sub: 1, sup: 2, isEmbellished: t.mbase.childEmbellished, Core: t.mbase.childCore, CoreMO: t.mbase.childCoreMO, defaults: { mathbackground: t.INHERIT, mathcolor: t.INHERIT, subscriptshift: "", superscriptshift: "", texClass: t.AUTO, }, autoDefault: function (e) { return "texClass" === e ? this.isEmbellished() ? this.CoreMO().Get(e) : t.TEXCLASS.ORD : 0; }, adjustChild_displaystyle: function (t) { return !(t > 0) && this.Get("displaystyle"); }, adjustChild_scriptlevel: function (t) { var e = this.Get("scriptlevel"); return t > 0 && e++, e; }, adjustChild_texprimestyle: function (t) { return t === this.sub || this.Get("texprimestyle"); }, setTeXclass: t.mbase.setBaseTeXclasses, })), (t.msub = t.msubsup.Subclass({ type: "msub" })), (t.msup = t.msubsup.Subclass({ type: "msup", sub: 2, sup: 1 })), (t.mmultiscripts = t.msubsup.Subclass({ type: "mmultiscripts", adjustChild_texprimestyle: function (t) { return t % 2 == 1 || this.Get("texprimestyle"); }, })), (t.mprescripts = t.mbase.Subclass({ type: "mprescripts" })), (t.none = t.mbase.Subclass({ type: "none" })), (t.munderover = t.mbase.Subclass({ type: "munderover", base: 0, under: 1, over: 2, sub: 1, sup: 2, ACCENTS: ["", "accentunder", "accent"], linebreakContainer: !0, isEmbellished: t.mbase.childEmbellished, Core: t.mbase.childCore, CoreMO: t.mbase.childCoreMO, defaults: { mathbackground: t.INHERIT, mathcolor: t.INHERIT, accent: t.AUTO, accentunder: t.AUTO, align: t.ALIGN.CENTER, texClass: t.AUTO, subscriptshift: "", superscriptshift: "", }, autoDefault: function (e) { return "texClass" === e ? this.isEmbellished() ? this.CoreMO().Get(e) : t.TEXCLASS.ORD : "accent" === e && this.data[this.over] ? this.data[this.over].CoreMO().Get("accent") : !("accentunder" !== e || !this.data[this.under]) && this.data[this.under].CoreMO().Get("accent"); }, adjustChild_displaystyle: function (t) { return !(t > 0) && this.Get("displaystyle"); }, adjustChild_scriptlevel: function (t) { var e = this.Get("scriptlevel"), i = this.data[this.base] && !this.Get("displaystyle") && this.data[this.base].CoreMO().Get("movablelimits"); return ( t != this.under || (!i && this.Get("accentunder")) || e++, t != this.over || (!i && this.Get("accent")) || e++, e ); }, adjustChild_texprimestyle: function (t) { return ( !(t !== this.base || !this.data[this.over]) || this.Get("texprimestyle") ); }, setTeXclass: t.mbase.setBaseTeXclasses, })), (t.munder = t.munderover.Subclass({ type: "munder" })), (t.mover = t.munderover.Subclass({ type: "mover", over: 1, under: 2, sup: 1, sub: 2, ACCENTS: ["", "accent", "accentunder"], })), (t.mtable = t.mbase.Subclass({ type: "mtable", defaults: { mathbackground: t.INHERIT, mathcolor: t.INHERIT, align: t.ALIGN.AXIS, rowalign: t.ALIGN.BASELINE, columnalign: t.ALIGN.CENTER, groupalign: "{left}", alignmentscope: !0, columnwidth: t.WIDTH.AUTO, width: t.WIDTH.AUTO, rowspacing: "1ex", columnspacing: ".8em", rowlines: t.LINES.NONE, columnlines: t.LINES.NONE, frame: t.LINES.NONE, framespacing: "0.4em 0.5ex", equalrows: !1, equalcolumns: !1, displaystyle: !1, side: t.SIDE.RIGHT, minlabelspacing: "0.8em", texClass: t.TEXCLASS.ORD, useHeight: 1, }, adjustChild_displaystyle: function () { return null != this.displaystyle ? this.displaystyle : this.defaults.displaystyle; }, inheritFromMe: !0, noInherit: { mover: { align: !0 }, munder: { align: !0 }, munderover: { align: !0 }, mtable: { align: !0, rowalign: !0, columnalign: !0, groupalign: !0, alignmentscope: !0, columnwidth: !0, width: !0, rowspacing: !0, columnspacing: !0, rowlines: !0, columnlines: !0, frame: !0, framespacing: !0, equalrows: !0, equalcolumns: !0, displaystyle: !0, side: !0, minlabelspacing: !0, texClass: !0, useHeight: 1, }, }, linebreakContainer: !0, Append: function () { for (var e = 0, i = arguments.length; e < i; e++) arguments[e] instanceof t.mtr || arguments[e] instanceof t.mlabeledtr || (arguments[e] = t.mtr(arguments[e])); this.SUPER(arguments).Append.apply(this, arguments); }, setTeXclass: t.mbase.setSeparateTeXclasses, })), (t.mtr = t.mbase.Subclass({ type: "mtr", defaults: { mathbackground: t.INHERIT, mathcolor: t.INHERIT, rowalign: t.INHERIT, columnalign: t.INHERIT, groupalign: t.INHERIT, }, inheritFromMe: !0, noInherit: { mrow: { rowalign: !0, columnalign: !0, groupalign: !0 }, mtable: { rowalign: !0, columnalign: !0, groupalign: !0 }, }, linebreakContainer: !0, Append: function () { for (var e = 0, i = arguments.length; e < i; e++) arguments[e] instanceof t.mtd || (arguments[e] = t.mtd(arguments[e])); this.SUPER(arguments).Append.apply(this, arguments); }, setTeXclass: t.mbase.setSeparateTeXclasses, })), (t.mtd = t.mbase.Subclass({ type: "mtd", inferRow: !0, linebreakContainer: !0, isEmbellished: t.mbase.childEmbellished, Core: t.mbase.childCore, CoreMO: t.mbase.childCoreMO, defaults: { mathbackground: t.INHERIT, mathcolor: t.INHERIT, rowspan: 1, columnspan: 1, rowalign: t.INHERIT, columnalign: t.INHERIT, groupalign: t.INHERIT, }, setTeXclass: t.mbase.setSeparateTeXclasses, })), (t.maligngroup = t.mbase.Subclass({ type: "maligngroup", isSpacelike: function () { return !0; }, defaults: { mathbackground: t.INHERIT, mathcolor: t.INHERIT, groupalign: t.INHERIT, }, inheritFromMe: !0, noInherit: { mrow: { groupalign: !0 }, mtable: { groupalign: !0 } }, })), (t.malignmark = t.mbase.Subclass({ type: "malignmark", defaults: { mathbackground: t.INHERIT, mathcolor: t.INHERIT, edge: t.SIDE.LEFT, }, isSpacelike: function () { return !0; }, })), (t.mlabeledtr = t.mtr.Subclass({ type: "mlabeledtr" })), (t.maction = t.mbase.Subclass({ type: "maction", defaults: { mathbackground: t.INHERIT, mathcolor: t.INHERIT, actiontype: t.ACTIONTYPE.TOGGLE, selection: 1, }, selected: function () { return this.data[this.Get("selection") - 1] || t.NULL; }, isEmbellished: function () { return this.selected().isEmbellished(); }, isSpacelike: function () { return this.selected().isSpacelike(); }, Core: function () { return this.selected().Core(); }, CoreMO: function () { return this.selected().CoreMO(); }, setTeXclass: function (e) { this.Get("actiontype") === t.ACTIONTYPE.TOOLTIP && this.data[1] && this.data[1].setTeXclass(); var i = this.selected(); return (e = i.setTeXclass(e)), this.updateTeXclass(i), e; }, })), (t.semantics = t.mbase.Subclass({ type: "semantics", notParent: !0, isEmbellished: t.mbase.childEmbellished, Core: t.mbase.childCore, CoreMO: t.mbase.childCoreMO, defaults: { definitionURL: null, encoding: null }, setTeXclass: t.mbase.setChildTeXclass, getAnnotation: function (t) { var e = MathJax.Hub.config.MathMenu.semanticsAnnotations[t]; if (e) for (var i = 0, n = this.data.length; i < n; i++) { var a = this.data[i].Get("encoding"); if (a) for (var s = 0, r = e.length; s < r; s++) if (e[s] === a) return this.data[i]; } return null; }, })), (t.annotation = t.mbase.Subclass({ type: "annotation", isChars: !0, linebreakContainer: !0, defaults: { definitionURL: null, encoding: null, cd: "mathmlkeys", name: "", src: null, }, })), (t["annotation-xml"] = t.mbase.Subclass({ type: "annotation-xml", linebreakContainer: !0, defaults: { definitionURL: null, encoding: null, cd: "mathmlkeys", name: "", src: null, }, })), (t.math = t.mstyle.Subclass({ type: "math", defaults: { mathvariant: t.VARIANT.NORMAL, mathsize: t.SIZE.NORMAL, mathcolor: "", mathbackground: t.COLOR.TRANSPARENT, dir: "ltr", scriptlevel: 0, displaystyle: t.AUTO, display: "inline", maxwidth: "", overflow: t.OVERFLOW.LINEBREAK, altimg: "", "altimg-width": "", "altimg-height": "", "altimg-valign": "", alttext: "", cdgroup: "", scriptsizemultiplier: Math.sqrt(0.5), scriptminsize: "8px", infixlinebreakstyle: t.LINEBREAKSTYLE.BEFORE, lineleading: "1ex", indentshift: "auto", indentalign: t.INDENTALIGN.AUTO, indentalignfirst: t.INDENTALIGN.INDENTALIGN, indentshiftfirst: t.INDENTSHIFT.INDENTSHIFT, indentalignlast: t.INDENTALIGN.INDENTALIGN, indentshiftlast: t.INDENTSHIFT.INDENTSHIFT, decimalseparator: ".", texprimestyle: !1, }, autoDefault: function (t) { return "displaystyle" === t ? "block" === this.Get("display") : ""; }, linebreakContainer: !0, setTeXclass: t.mbase.setChildTeXclass, getAnnotation: function (t) { return 1 != this.data.length ? null : this.data[0].getAnnotation(t); }, })), (t.chars = t.mbase.Subclass({ type: "chars", Append: function () { this.data.push.apply(this.data, arguments); }, value: function () { return this.data.join(""); }, toString: function () { return this.data.join(""); }, })), (t.entity = t.mbase.Subclass({ type: "entity", Append: function () { this.data.push.apply(this.data, arguments); }, value: function () { return "#x" === this.data[0].substr(0, 2) ? parseInt(this.data[0].substr(2), 16) : "#" === this.data[0].substr(0, 1) ? parseInt(this.data[0].substr(1)) : 0; }, toString: function () { var t = this.value(); return t <= 65535 ? String.fromCharCode(t) : ((t -= 65536), String.fromCharCode(55296 + (t >> 10), 56320 + (1023 & t))); }, })), (t.xml = t.mbase.Subclass({ type: "xml", Init: function () { return ( (this.div = document.createElement("div")), this.SUPER(arguments).Init.apply(this, arguments) ); }, Append: function () { for (var t = 0, e = arguments.length; t < e; t++) { var i = this.Import(arguments[t]); this.data.push(i), this.div.appendChild(i); } }, Import: function (t) { if (document.importNode) return document.importNode(t, !0); var e, i, n; if (1 === t.nodeType) { for ( e = document.createElement(t.nodeName), i = 0, n = t.attributes.length; i < n; i++ ) { var a = t.attributes[i]; a.specified && null != a.nodeValue && "" != a.nodeValue && e.setAttribute(a.nodeName, a.nodeValue), "style" === a.nodeName && (e.style.cssText = a.nodeValue); } t.className && (e.className = t.className); } else if (3 === t.nodeType || 4 === t.nodeType) e = document.createTextNode(t.nodeValue); else { if (8 !== t.nodeType) return document.createTextNode(""); e = document.createComment(t.nodeValue); } for (i = 0, n = t.childNodes.length; i < n; i++) e.appendChild(this.Import(t.childNodes[i])); return e; }, value: function () { return this.div; }, toString: function () { return this.div.innerHTML; }, })), (t.TeXAtom = t.mbase.Subclass({ type: "texatom", linebreakContainer: !0, inferRow: !0, notParent: !0, texClass: t.TEXCLASS.ORD, Core: t.mbase.childCore, CoreMO: t.mbase.childCoreMO, isEmbellished: t.mbase.childEmbellished, setTeXclass: function (t) { return this.data[0].setTeXclass(), this.adjustTeXclass(t); }, adjustTeXclass: t.mo.prototype.adjustTeXclass, })), (t.NULL = t.mbase().With({ type: "null" })); var e = t.TEXCLASS, i = { ORD: [0, 0, e.ORD], ORD11: [1, 1, e.ORD], ORD21: [2, 1, e.ORD], ORD02: [0, 2, e.ORD], ORD55: [5, 5, e.ORD], OP: [1, 2, e.OP, { largeop: !0, movablelimits: !0, symmetric: !0 }], OPFIXED: [1, 2, e.OP, { largeop: !0, movablelimits: !0 }], INTEGRAL: [0, 1, e.OP, { largeop: !0, symmetric: !0 }], INTEGRAL2: [1, 2, e.OP, { largeop: !0, symmetric: !0 }], BIN3: [3, 3, e.BIN], BIN4: [4, 4, e.BIN], BIN01: [0, 1, e.BIN], BIN5: [5, 5, e.BIN], TALLBIN: [4, 4, e.BIN, { stretchy: !0 }], BINOP: [4, 4, e.BIN, { largeop: !0, movablelimits: !0 }], REL: [5, 5, e.REL], REL1: [1, 1, e.REL, { stretchy: !0 }], REL4: [4, 4, e.REL], RELSTRETCH: [5, 5, e.REL, { stretchy: !0 }], RELACCENT: [5, 5, e.REL, { accent: !0 }], WIDEREL: [5, 5, e.REL, { accent: !0, stretchy: !0 }], OPEN: [0, 0, e.OPEN, { fence: !0, stretchy: !0, symmetric: !0 }], CLOSE: [0, 0, e.CLOSE, { fence: !0, stretchy: !0, symmetric: !0 }], INNER: [0, 0, e.INNER], PUNCT: [0, 3, e.PUNCT], ACCENT: [0, 0, e.ORD, { accent: !0 }], WIDEACCENT: [0, 0, e.ORD, { accent: !0, stretchy: !0 }], }; t.mo.Augment( { SPACE: [ "0em", "0.1111em", "0.1667em", "0.2222em", "0.2667em", "0.3333em", ], RANGES: [ [32, 127, e.REL, "BasicLatin"], [160, 255, e.ORD, "Latin1Supplement"], [256, 383, e.ORD], [384, 591, e.ORD], [688, 767, e.ORD, "SpacingModLetters"], [768, 879, e.ORD, "CombDiacritMarks"], [880, 1023, e.ORD, "GreekAndCoptic"], [7680, 7935, e.ORD], [8192, 8303, e.PUNCT, "GeneralPunctuation"], [8304, 8351, e.ORD], [8352, 8399, e.ORD], [8400, 8447, e.ORD, "CombDiactForSymbols"], [8448, 8527, e.ORD, "LetterlikeSymbols"], [8528, 8591, e.ORD], [8592, 8703, e.REL, "Arrows"], [8704, 8959, e.BIN, "MathOperators"], [8960, 9215, e.ORD, "MiscTechnical"], [9312, 9471, e.ORD], [9472, 9631, e.ORD], [9632, 9727, e.ORD, "GeometricShapes"], [9984, 10175, e.ORD, "Dingbats"], [10176, 10223, e.ORD, "MiscMathSymbolsA"], [10224, 10239, e.REL, "SupplementalArrowsA"], [10496, 10623, e.REL, "SupplementalArrowsB"], [10624, 10751, e.ORD, "MiscMathSymbolsB"], [10752, 11007, e.BIN, "SuppMathOperators"], [11008, 11263, e.ORD, "MiscSymbolsAndArrows"], [119808, 120831, e.ORD], ], OPTABLE: { prefix: { "\u2200": i.ORD21, "\u2202": i.ORD21, "\u2203": i.ORD21, "\u2207": i.ORD21, "\u220f": i.OP, "\u2210": i.OP, "\u2211": i.OP, "\u2212": i.BIN01, "\u2213": i.BIN01, "\u221a": [1, 1, e.ORD, { stretchy: !0 }], "\u2220": i.ORD, "\u222b": i.INTEGRAL, "\u222e": i.INTEGRAL, "\u22c0": i.OP, "\u22c1": i.OP, "\u22c2": i.OP, "\u22c3": i.OP, "\u2308": i.OPEN, "\u230a": i.OPEN, "\u27e8": i.OPEN, "\u27ee": i.OPEN, "\u2a00": i.OP, "\u2a01": i.OP, "\u2a02": i.OP, "\u2a04": i.OP, "\u2a06": i.OP, "\xac": i.ORD21, "\xb1": i.BIN01, "(": i.OPEN, "+": i.BIN01, "-": i.BIN01, "[": i.OPEN, "{": i.OPEN, "|": i.OPEN, }, postfix: { "!": [1, 0, e.CLOSE], "&": i.ORD, "\u2032": i.ORD02, "\u203e": i.WIDEACCENT, "\u2309": i.CLOSE, "\u230b": i.CLOSE, "\u23de": i.WIDEACCENT, "\u23df": i.WIDEACCENT, "\u266d": i.ORD02, "\u266e": i.ORD02, "\u266f": i.ORD02, "\u27e9": i.CLOSE, "\u27ef": i.CLOSE, "\u02c6": i.WIDEACCENT, "\u02c7": i.WIDEACCENT, "\u02c9": i.WIDEACCENT, "\u02ca": i.ACCENT, "\u02cb": i.ACCENT, "\u02d8": i.ACCENT, "\u02d9": i.ACCENT, "\u02dc": i.WIDEACCENT, "\u0302": i.WIDEACCENT, "\xa8": i.ACCENT, "\xaf": i.WIDEACCENT, ")": i.CLOSE, "]": i.CLOSE, "^": i.WIDEACCENT, _: i.WIDEACCENT, "`": i.ACCENT, "|": i.CLOSE, "}": i.CLOSE, "~": i.WIDEACCENT, }, infix: { "": i.ORD, "%": [3, 3, e.ORD], "\u2022": i.BIN4, "\u2026": i.INNER, "\u2044": i.TALLBIN, "\u2061": i.ORD, "\u2062": i.ORD, "\u2063": [ 0, 0, e.ORD, { linebreakstyle: "after", separator: !0 }, ], "\u2064": i.ORD, "\u2190": i.WIDEREL, "\u2191": i.RELSTRETCH, "\u2192": i.WIDEREL, "\u2193": i.RELSTRETCH, "\u2194": i.WIDEREL, "\u2195": i.RELSTRETCH, "\u2196": i.RELSTRETCH, "\u2197": i.RELSTRETCH, "\u2198": i.RELSTRETCH, "\u2199": i.RELSTRETCH, "\u21a6": i.WIDEREL, "\u21a9": i.WIDEREL, "\u21aa": i.WIDEREL, "\u21bc": i.WIDEREL, "\u21bd": i.WIDEREL, "\u21c0": i.WIDEREL, "\u21c1": i.WIDEREL, "\u21cc": i.WIDEREL, "\u21d0": i.WIDEREL, "\u21d1": i.RELSTRETCH, "\u21d2": i.WIDEREL, "\u21d3": i.RELSTRETCH, "\u21d4": i.WIDEREL, "\u21d5": i.RELSTRETCH, "\u2208": i.REL, "\u2209": i.REL, "\u220b": i.REL, "\u2212": i.BIN4, "\u2213": i.BIN4, "\u2215": i.TALLBIN, "\u2216": i.BIN4, "\u2217": i.BIN4, "\u2218": i.BIN4, "\u2219": i.BIN4, "\u221d": i.REL, "\u2223": i.REL, "\u2225": i.REL, "\u2227": i.BIN4, "\u2228": i.BIN4, "\u2229": i.BIN4, "\u222a": i.BIN4, "\u223c": i.REL, "\u2240": i.BIN4, "\u2243": i.REL, "\u2245": i.REL, "\u2248": i.REL, "\u224d": i.REL, "\u2250": i.REL, "\u2260": i.REL, "\u2261": i.REL, "\u2264": i.REL, "\u2265": i.REL, "\u226a": i.REL, "\u226b": i.REL, "\u227a": i.REL, "\u227b": i.REL, "\u2282": i.REL, "\u2283": i.REL, "\u2286": i.REL, "\u2287": i.REL, "\u228e": i.BIN4, "\u2291": i.REL, "\u2292": i.REL, "\u2293": i.BIN4, "\u2294": i.BIN4, "\u2295": i.BIN4, "\u2296": i.BIN4, "\u2297": i.BIN4, "\u2298": i.BIN4, "\u2299": i.BIN4, "\u22a2": i.REL, "\u22a3": i.REL, "\u22a4": i.ORD55, "\u22a5": i.REL, "\u22a8": i.REL, "\u22c4": i.BIN4, "\u22c5": i.BIN4, "\u22c6": i.BIN4, "\u22c8": i.REL, "\u22ee": i.ORD55, "\u22ef": i.INNER, "\u22f1": [5, 5, e.INNER], "\u25b3": i.BIN4, "\u25b5": i.BIN4, "\u25b9": i.BIN4, "\u25bd": i.BIN4, "\u25bf": i.BIN4, "\u25c3": i.BIN4, "\u2758": i.REL, "\u27f5": i.WIDEREL, "\u27f6": i.WIDEREL, "\u27f7": i.WIDEREL, "\u27f8": i.WIDEREL, "\u27f9": i.WIDEREL, "\u27fa": i.WIDEREL, "\u27fc": i.WIDEREL, "\u2a2f": i.BIN4, "\u2a3f": i.BIN4, "\u2aaf": i.REL, "\u2ab0": i.REL, "\xb1": i.BIN4, "\xb7": i.BIN4, "\xd7": i.BIN4, "\xf7": i.BIN4, "*": i.BIN3, "+": i.BIN4, ",": [ 0, 3, e.PUNCT, { linebreakstyle: "after", separator: !0 }, ], "-": i.BIN4, ".": [3, 3, e.ORD], "/": i.ORD11, ":": [1, 2, e.REL], ";": [ 0, 3, e.PUNCT, { linebreakstyle: "after", separator: !0 }, ], "<": i.REL, "=": i.REL, ">": i.REL, "?": [1, 1, e.CLOSE], "\\": i.ORD, "^": i.ORD11, _: i.ORD11, "|": [2, 2, e.ORD, { fence: !0, stretchy: !0, symmetric: !0 }], "#": i.ORD, $: i.ORD, ".": [0, 3, e.PUNCT, { separator: !0 }], "\u02b9": i.ORD, "\u0300": i.ACCENT, "\u0301": i.ACCENT, "\u0303": i.WIDEACCENT, "\u0304": i.ACCENT, "\u0306": i.ACCENT, "\u0307": i.ACCENT, "\u0308": i.ACCENT, "\u030c": i.ACCENT, "\u0332": i.WIDEACCENT, "\u0338": i.REL4, "\u2015": [0, 0, e.ORD, { stretchy: !0 }], "\u2017": [0, 0, e.ORD, { stretchy: !0 }], "\u2020": i.BIN3, "\u2021": i.BIN3, "\u20d7": i.ACCENT, "\u2111": i.ORD, "\u2113": i.ORD, "\u2118": i.ORD, "\u211c": i.ORD, "\u2205": i.ORD, "\u221e": i.ORD, "\u2305": i.BIN3, "\u2306": i.BIN3, "\u2322": i.REL4, "\u2323": i.REL4, "\u2329": i.OPEN, "\u232a": i.CLOSE, "\u23aa": i.ORD, "\u23af": [0, 0, e.ORD, { stretchy: !0 }], "\u23b0": i.OPEN, "\u23b1": i.CLOSE, "\u2500": i.ORD, "\u25ef": i.BIN3, "\u2660": i.ORD, "\u2661": i.ORD, "\u2662": i.ORD, "\u2663": i.ORD, "\u3008": i.OPEN, "\u3009": i.CLOSE, "\ufe37": i.WIDEACCENT, "\ufe38": i.WIDEACCENT, }, }, }, { OPTYPES: i }, ); var n = t.mo.prototype.OPTABLE; (n.infix["^"] = i.WIDEREL), (n.infix._ = i.WIDEREL), (n.prefix["\u2223"] = i.OPEN), (n.prefix["\u2225"] = i.OPEN), (n.postfix["\u2223"] = i.CLOSE), (n.postfix["\u2225"] = i.CLOSE); })(MathJax.ElementJax.mml), MathJax.ElementJax.mml.loadComplete("jax.js"); }, function (t, e) { (MathJax.InputJax.AsciiMath = MathJax.InputJax({ id: "AsciiMath", version: "2.7.2", directory: MathJax.InputJax.directory + "/AsciiMath", extensionDir: MathJax.InputJax.extensionDir + "/AsciiMath", config: { fixphi: !0, useMathMLspacing: !0, displaystyle: !0, decimalsign: ".", }, })), MathJax.InputJax.AsciiMath.Register("math/asciimath"), MathJax.InputJax.AsciiMath.loadComplete("config.js"); }, function (t, e) { var i, n; !(function (t) { var e, i = MathJax.Object.Subclass({ firstChild: null, lastChild: null, Init: function () { this.childNodes = []; }, appendChild: function (t) { return ( t.parent && t.parent.removeChild(t), this.lastChild && (this.lastChild.nextSibling = t), this.firstChild || (this.firstChild = t), this.childNodes.push(t), (t.parent = this), (this.lastChild = t), t ); }, removeChild: function (t) { for ( var e = 0, i = this.childNodes.length; e < i && this.childNodes[e] !== t; e++ ); if (e !== i) return ( this.childNodes.splice(e, 1), t === this.firstChild && (this.firstChild = t.nextSibling), t === this.lastChild && (this.childNodes.length ? (this.lastChild = this.childNodes[this.childNodes.length - 1]) : (this.lastChild = null)), e && (this.childNodes[e - 1].nextSibling = t.nextSibling), (t.nextSibling = t.parent = null), t ); }, replaceChild: function (t, e) { for ( var i = 0, n = this.childNodes.length; i < n && this.childNodes[i] !== e; i++ ); return ( i ? (this.childNodes[i - 1].nextSibling = t) : (this.firstChild = t), i >= n - 1 && (this.lastChild = t), (this.childNodes[i] = t), (t.nextSibling = e.nextSibling), (e.nextSibling = e.parent = null), e ); }, hasChildNodes: function (t) { return this.childNodes.length > 0; }, toString: function () { return "{" + this.childNodes.join("") + "}"; }, }), n = { getElementById: !0, createElementNS: function (i, n) { var a = e[n](); return ( "mo" === n && t.config.useMathMLspacing && (a.useMMLspacing = 128), a ); }, createTextNode: function (t) { return e.chars(t).With({ nodeValue: t }); }, createDocumentFragment: function () { return i(); }, }, a = { appName: "MathJax" }, s = "blue", r = "serif", o = !0, l = !0, u = ".", h = "Microsoft" == a.appName.slice(0, 9); function p(t) { return h ? n.createElement(t) : n.createElementNS("http://www.w3.org/1999/xhtml", t); } var c = "http://www.w3.org/1998/Math/MathML"; function d(t) { return h ? n.createElement("m:" + t) : n.createElementNS(c, t); } function m(t, e) { var i; return ( (i = h ? n.createElement("m:" + t) : n.createElementNS(c, t)), e && i.appendChild(e), i ); } var f = [ "\ud835\udc9c", "\u212c", "\ud835\udc9e", "\ud835\udc9f", "\u2130", "\u2131", "\ud835\udca2", "\u210b", "\u2110", "\ud835\udca5", "\ud835\udca6", "\u2112", "\u2133", "\ud835\udca9", "\ud835\udcaa", "\ud835\udcab", "\ud835\udcac", "\u211b", "\ud835\udcae", "\ud835\udcaf", "\ud835\udcb0", "\ud835\udcb1", "\ud835\udcb2", "\ud835\udcb3", "\ud835\udcb4", "\ud835\udcb5", "\ud835\udcb6", "\ud835\udcb7", "\ud835\udcb8", "\ud835\udcb9", "\u212f", "\ud835\udcbb", "\u210a", "\ud835\udcbd", "\ud835\udcbe", "\ud835\udcbf", "\ud835\udcc0", "\ud835\udcc1", "\ud835\udcc2", "\ud835\udcc3", "\u2134", "\ud835\udcc5", "\ud835\udcc6", "\ud835\udcc7", "\ud835\udcc8", "\ud835\udcc9", "\ud835\udcca", "\ud835\udccb", "\ud835\udccc", "\ud835\udccd", "\ud835\udcce", "\ud835\udccf", ], g = [ "\ud835\udd04", "\ud835\udd05", "\u212d", "\ud835\udd07", "\ud835\udd08", "\ud835\udd09", "\ud835\udd0a", "\u210c", "\u2111", "\ud835\udd0d", "\ud835\udd0e", "\ud835\udd0f", "\ud835\udd10", "\ud835\udd11", "\ud835\udd12", "\ud835\udd13", "\ud835\udd14", "\u211c", "\ud835\udd16", "\ud835\udd17", "\ud835\udd18", "\ud835\udd19", "\ud835\udd1a", "\ud835\udd1b", "\ud835\udd1c", "\u2128", "\ud835\udd1e", "\ud835\udd1f", "\ud835\udd20", "\ud835\udd21", "\ud835\udd22", "\ud835\udd23", "\ud835\udd24", "\ud835\udd25", "\ud835\udd26", "\ud835\udd27", "\ud835\udd28", "\ud835\udd29", "\ud835\udd2a", "\ud835\udd2b", "\ud835\udd2c", "\ud835\udd2d", "\ud835\udd2e", "\ud835\udd2f", "\ud835\udd30", "\ud835\udd31", "\ud835\udd32", "\ud835\udd33", "\ud835\udd34", "\ud835\udd35", "\ud835\udd36", "\ud835\udd37", ], E = [ "\ud835\udd38", "\ud835\udd39", "\u2102", "\ud835\udd3b", "\ud835\udd3c", "\ud835\udd3d", "\ud835\udd3e", "\u210d", "\ud835\udd40", "\ud835\udd41", "\ud835\udd42", "\ud835\udd43", "\ud835\udd44", "\u2115", "\ud835\udd46", "\u2119", "\u211a", "\u211d", "\ud835\udd4a", "\ud835\udd4b", "\ud835\udd4c", "\ud835\udd4d", "\ud835\udd4e", "\ud835\udd4f", "\ud835\udd50", "\u2124", "\ud835\udd52", "\ud835\udd53", "\ud835\udd54", "\ud835\udd55", "\ud835\udd56", "\ud835\udd57", "\ud835\udd58", "\ud835\udd59", "\ud835\udd5a", "\ud835\udd5b", "\ud835\udd5c", "\ud835\udd5d", "\ud835\udd5e", "\ud835\udd5f", "\ud835\udd60", "\ud835\udd61", "\ud835\udd62", "\ud835\udd63", "\ud835\udd64", "\ud835\udd65", "\ud835\udd66", "\ud835\udd67", "\ud835\udd68", "\ud835\udd69", "\ud835\udd6a", "\ud835\udd6b", ], y = 8, x = { input: '"', tag: "mtext", output: "mbox", tex: null, ttype: 10 }, T = [ { input: "alpha", tag: "mi", output: "\u03b1", tex: null, ttype: 0 }, { input: "beta", tag: "mi", output: "\u03b2", tex: null, ttype: 0 }, { input: "chi", tag: "mi", output: "\u03c7", tex: null, ttype: 0 }, { input: "delta", tag: "mi", output: "\u03b4", tex: null, ttype: 0 }, { input: "Delta", tag: "mo", output: "\u0394", tex: null, ttype: 0 }, { input: "epsi", tag: "mi", output: "\u03b5", tex: "epsilon", ttype: 0, }, { input: "varepsilon", tag: "mi", output: "\u025b", tex: null, ttype: 0, }, { input: "eta", tag: "mi", output: "\u03b7", tex: null, ttype: 0 }, { input: "gamma", tag: "mi", output: "\u03b3", tex: null, ttype: 0 }, { input: "Gamma", tag: "mo", output: "\u0393", tex: null, ttype: 0 }, { input: "iota", tag: "mi", output: "\u03b9", tex: null, ttype: 0 }, { input: "kappa", tag: "mi", output: "\u03ba", tex: null, ttype: 0 }, { input: "lambda", tag: "mi", output: "\u03bb", tex: null, ttype: 0 }, { input: "Lambda", tag: "mo", output: "\u039b", tex: null, ttype: 0 }, { input: "lamda", tag: "mi", output: "\u03bb", tex: null, ttype: 0 }, { input: "Lamda", tag: "mo", output: "\u039b", tex: null, ttype: 0 }, { input: "mu", tag: "mi", output: "\u03bc", tex: null, ttype: 0 }, { input: "nu", tag: "mi", output: "\u03bd", tex: null, ttype: 0 }, { input: "omega", tag: "mi", output: "\u03c9", tex: null, ttype: 0 }, { input: "Omega", tag: "mo", output: "\u03a9", tex: null, ttype: 0 }, { input: "phi", tag: "mi", output: "\u03d5", tex: null, ttype: 0 }, { input: "varphi", tag: "mi", output: "\u03c6", tex: null, ttype: 0 }, { input: "Phi", tag: "mo", output: "\u03a6", tex: null, ttype: 0 }, { input: "pi", tag: "mi", output: "\u03c0", tex: null, ttype: 0 }, { input: "Pi", tag: "mo", output: "\u03a0", tex: null, ttype: 0 }, { input: "psi", tag: "mi", output: "\u03c8", tex: null, ttype: 0 }, { input: "Psi", tag: "mi", output: "\u03a8", tex: null, ttype: 0 }, { input: "rho", tag: "mi", output: "\u03c1", tex: null, ttype: 0 }, { input: "sigma", tag: "mi", output: "\u03c3", tex: null, ttype: 0 }, { input: "Sigma", tag: "mo", output: "\u03a3", tex: null, ttype: 0 }, { input: "tau", tag: "mi", output: "\u03c4", tex: null, ttype: 0 }, { input: "theta", tag: "mi", output: "\u03b8", tex: null, ttype: 0 }, { input: "vartheta", tag: "mi", output: "\u03d1", tex: null, ttype: 0, }, { input: "Theta", tag: "mo", output: "\u0398", tex: null, ttype: 0 }, { input: "upsilon", tag: "mi", output: "\u03c5", tex: null, ttype: 0, }, { input: "xi", tag: "mi", output: "\u03be", tex: null, ttype: 0 }, { input: "Xi", tag: "mo", output: "\u039e", tex: null, ttype: 0 }, { input: "zeta", tag: "mi", output: "\u03b6", tex: null, ttype: 0 }, { input: "*", tag: "mo", output: "\u22c5", tex: "cdot", ttype: 0 }, { input: "**", tag: "mo", output: "\u2217", tex: "ast", ttype: 0 }, { input: "***", tag: "mo", output: "\u22c6", tex: "star", ttype: 0 }, { input: "//", tag: "mo", output: "/", tex: null, ttype: 0 }, { input: "\\\\", tag: "mo", output: "\\", tex: "backslash", ttype: 0, }, { input: "setminus", tag: "mo", output: "\\", tex: null, ttype: 0 }, { input: "xx", tag: "mo", output: "\xd7", tex: "times", ttype: 0 }, { input: "|><", tag: "mo", output: "\u22c9", tex: "ltimes", ttype: 0, }, { input: "><|", tag: "mo", output: "\u22ca", tex: "rtimes", ttype: 0, }, { input: "|><|", tag: "mo", output: "\u22c8", tex: "bowtie", ttype: 0, }, { input: "-:", tag: "mo", output: "\xf7", tex: "div", ttype: 0 }, { input: "divide", tag: "mo", output: "-:", tex: null, ttype: y }, { input: "@", tag: "mo", output: "\u2218", tex: "circ", ttype: 0 }, { input: "o+", tag: "mo", output: "\u2295", tex: "oplus", ttype: 0 }, { input: "ox", tag: "mo", output: "\u2297", tex: "otimes", ttype: 0 }, { input: "o.", tag: "mo", output: "\u2299", tex: "odot", ttype: 0 }, { input: "sum", tag: "mo", output: "\u2211", tex: null, ttype: 7 }, { input: "prod", tag: "mo", output: "\u220f", tex: null, ttype: 7 }, { input: "^^", tag: "mo", output: "\u2227", tex: "wedge", ttype: 0 }, { input: "^^^", tag: "mo", output: "\u22c0", tex: "bigwedge", ttype: 7, }, { input: "vv", tag: "mo", output: "\u2228", tex: "vee", ttype: 0 }, { input: "vvv", tag: "mo", output: "\u22c1", tex: "bigvee", ttype: 7, }, { input: "nn", tag: "mo", output: "\u2229", tex: "cap", ttype: 0 }, { input: "nnn", tag: "mo", output: "\u22c2", tex: "bigcap", ttype: 7, }, { input: "uu", tag: "mo", output: "\u222a", tex: "cup", ttype: 0 }, { input: "uuu", tag: "mo", output: "\u22c3", tex: "bigcup", ttype: 7, }, { input: "!=", tag: "mo", output: "\u2260", tex: "ne", ttype: 0 }, { input: ":=", tag: "mo", output: ":=", tex: null, ttype: 0 }, { input: "lt", tag: "mo", output: "<", tex: null, ttype: 0 }, { input: "<=", tag: "mo", output: "\u2264", tex: "le", ttype: 0 }, { input: "lt=", tag: "mo", output: "\u2264", tex: "leq", ttype: 0 }, { input: "gt", tag: "mo", output: ">", tex: null, ttype: 0 }, { input: ">=", tag: "mo", output: "\u2265", tex: "ge", ttype: 0 }, { input: "gt=", tag: "mo", output: "\u2265", tex: "geq", ttype: 0 }, { input: "-<", tag: "mo", output: "\u227a", tex: "prec", ttype: 0 }, { input: "-lt", tag: "mo", output: "\u227a", tex: null, ttype: 0 }, { input: ">-", tag: "mo", output: "\u227b", tex: "succ", ttype: 0 }, { input: "-<=", tag: "mo", output: "\u2aaf", tex: "preceq", ttype: 0, }, { input: ">-=", tag: "mo", output: "\u2ab0", tex: "succeq", ttype: 0, }, { input: "in", tag: "mo", output: "\u2208", tex: null, ttype: 0 }, { input: "!in", tag: "mo", output: "\u2209", tex: "notin", ttype: 0 }, { input: "sub", tag: "mo", output: "\u2282", tex: "subset", ttype: 0, }, { input: "sup", tag: "mo", output: "\u2283", tex: "supset", ttype: 0, }, { input: "sube", tag: "mo", output: "\u2286", tex: "subseteq", ttype: 0, }, { input: "supe", tag: "mo", output: "\u2287", tex: "supseteq", ttype: 0, }, { input: "-=", tag: "mo", output: "\u2261", tex: "equiv", ttype: 0 }, { input: "~=", tag: "mo", output: "\u2245", tex: "cong", ttype: 0 }, { input: "~~", tag: "mo", output: "\u2248", tex: "approx", ttype: 0 }, { input: "prop", tag: "mo", output: "\u221d", tex: "propto", ttype: 0, }, { input: "and", tag: "mtext", output: "and", tex: null, ttype: 6 }, { input: "or", tag: "mtext", output: "or", tex: null, ttype: 6 }, { input: "not", tag: "mo", output: "\xac", tex: "neg", ttype: 0 }, { input: "=>", tag: "mo", output: "\u21d2", tex: "implies", ttype: 0, }, { input: "if", tag: "mo", output: "if", tex: null, ttype: 6 }, { input: "<=>", tag: "mo", output: "\u21d4", tex: "iff", ttype: 0 }, { input: "AA", tag: "mo", output: "\u2200", tex: "forall", ttype: 0 }, { input: "EE", tag: "mo", output: "\u2203", tex: "exists", ttype: 0 }, { input: "_|_", tag: "mo", output: "\u22a5", tex: "bot", ttype: 0 }, { input: "TT", tag: "mo", output: "\u22a4", tex: "top", ttype: 0 }, { input: "|--", tag: "mo", output: "\u22a2", tex: "vdash", ttype: 0 }, { input: "|==", tag: "mo", output: "\u22a8", tex: "models", ttype: 0, }, { input: "(", tag: "mo", output: "(", tex: null, ttype: 4 }, { input: ")", tag: "mo", output: ")", tex: null, ttype: 5 }, { input: "[", tag: "mo", output: "[", tex: null, ttype: 4 }, { input: "]", tag: "mo", output: "]", tex: null, ttype: 5 }, { input: "{", tag: "mo", output: "{", tex: null, ttype: 4 }, { input: "}", tag: "mo", output: "}", tex: null, ttype: 5 }, { input: "|", tag: "mo", output: "|", tex: null, ttype: 9 }, { input: "(:", tag: "mo", output: "\u2329", tex: "langle", ttype: 4 }, { input: ":)", tag: "mo", output: "\u232a", tex: "rangle", ttype: 5 }, { input: "<<", tag: "mo", output: "\u2329", tex: null, ttype: 4 }, { input: ">>", tag: "mo", output: "\u232a", tex: null, ttype: 5 }, { input: "{:", tag: "mo", output: "{:", tex: null, ttype: 4, invisible: !0, }, { input: ":}", tag: "mo", output: ":}", tex: null, ttype: 5, invisible: !0, }, { input: "int", tag: "mo", output: "\u222b", tex: null, ttype: 0 }, { input: "dx", tag: "mi", output: "{:d x:}", tex: null, ttype: y }, { input: "dy", tag: "mi", output: "{:d y:}", tex: null, ttype: y }, { input: "dz", tag: "mi", output: "{:d z:}", tex: null, ttype: y }, { input: "dt", tag: "mi", output: "{:d t:}", tex: null, ttype: y }, { input: "oint", tag: "mo", output: "\u222e", tex: null, ttype: 0 }, { input: "del", tag: "mo", output: "\u2202", tex: "partial", ttype: 0, }, { input: "grad", tag: "mo", output: "\u2207", tex: "nabla", ttype: 0, }, { input: "+-", tag: "mo", output: "\xb1", tex: "pm", ttype: 0 }, { input: "O/", tag: "mo", output: "\u2205", tex: "emptyset", ttype: 0, }, { input: "oo", tag: "mo", output: "\u221e", tex: "infty", ttype: 0 }, { input: "aleph", tag: "mo", output: "\u2135", tex: null, ttype: 0 }, { input: "...", tag: "mo", output: "...", tex: "ldots", ttype: 0 }, { input: ":.", tag: "mo", output: "\u2234", tex: "therefore", ttype: 0, }, { input: ":'", tag: "mo", output: "\u2235", tex: "because", ttype: 0, }, { input: "/_", tag: "mo", output: "\u2220", tex: "angle", ttype: 0 }, { input: "/_\\", tag: "mo", output: "\u25b3", tex: "triangle", ttype: 0, }, { input: "'", tag: "mo", output: "\u2032", tex: "prime", ttype: 0 }, { input: "tilde", tag: "mover", output: "~", tex: null, ttype: 1, acc: !0, }, { input: "\\ ", tag: "mo", output: "\xa0", tex: null, ttype: 0 }, { input: "frown", tag: "mo", output: "\u2322", tex: null, ttype: 0 }, { input: "quad", tag: "mo", output: "\xa0\xa0", tex: null, ttype: 0 }, { input: "qquad", tag: "mo", output: "\xa0\xa0\xa0\xa0", tex: null, ttype: 0, }, { input: "cdots", tag: "mo", output: "\u22ef", tex: null, ttype: 0 }, { input: "vdots", tag: "mo", output: "\u22ee", tex: null, ttype: 0 }, { input: "ddots", tag: "mo", output: "\u22f1", tex: null, ttype: 0 }, { input: "diamond", tag: "mo", output: "\u22c4", tex: null, ttype: 0, }, { input: "square", tag: "mo", output: "\u25a1", tex: null, ttype: 0 }, { input: "|__", tag: "mo", output: "\u230a", tex: "lfloor", ttype: 0, }, { input: "__|", tag: "mo", output: "\u230b", tex: "rfloor", ttype: 0, }, { input: "|~", tag: "mo", output: "\u2308", tex: "lceiling", ttype: 0, }, { input: "~|", tag: "mo", output: "\u2309", tex: "rceiling", ttype: 0, }, { input: "CC", tag: "mo", output: "\u2102", tex: null, ttype: 0 }, { input: "NN", tag: "mo", output: "\u2115", tex: null, ttype: 0 }, { input: "QQ", tag: "mo", output: "\u211a", tex: null, ttype: 0 }, { input: "RR", tag: "mo", output: "\u211d", tex: null, ttype: 0 }, { input: "ZZ", tag: "mo", output: "\u2124", tex: null, ttype: 0 }, { input: "f", tag: "mi", output: "f", tex: null, ttype: 1, func: !0 }, { input: "g", tag: "mi", output: "g", tex: null, ttype: 1, func: !0 }, { input: "lim", tag: "mo", output: "lim", tex: null, ttype: 7 }, { input: "Lim", tag: "mo", output: "Lim", tex: null, ttype: 7 }, { input: "sin", tag: "mo", output: "sin", tex: null, ttype: 1, func: !0, }, { input: "cos", tag: "mo", output: "cos", tex: null, ttype: 1, func: !0, }, { input: "tan", tag: "mo", output: "tan", tex: null, ttype: 1, func: !0, }, { input: "sinh", tag: "mo", output: "sinh", tex: null, ttype: 1, func: !0, }, { input: "cosh", tag: "mo", output: "cosh", tex: null, ttype: 1, func: !0, }, { input: "tanh", tag: "mo", output: "tanh", tex: null, ttype: 1, func: !0, }, { input: "cot", tag: "mo", output: "cot", tex: null, ttype: 1, func: !0, }, { input: "sec", tag: "mo", output: "sec", tex: null, ttype: 1, func: !0, }, { input: "csc", tag: "mo", output: "csc", tex: null, ttype: 1, func: !0, }, { input: "arcsin", tag: "mo", output: "arcsin", tex: null, ttype: 1, func: !0, }, { input: "arccos", tag: "mo", output: "arccos", tex: null, ttype: 1, func: !0, }, { input: "arctan", tag: "mo", output: "arctan", tex: null, ttype: 1, func: !0, }, { input: "coth", tag: "mo", output: "coth", tex: null, ttype: 1, func: !0, }, { input: "sech", tag: "mo", output: "sech", tex: null, ttype: 1, func: !0, }, { input: "csch", tag: "mo", output: "csch", tex: null, ttype: 1, func: !0, }, { input: "exp", tag: "mo", output: "exp", tex: null, ttype: 1, func: !0, }, { input: "abs", tag: "mo", output: "abs", tex: null, ttype: 1, rewriteleftright: ["|", "|"], }, { input: "norm", tag: "mo", output: "norm", tex: null, ttype: 1, rewriteleftright: ["\u2225", "\u2225"], }, { input: "floor", tag: "mo", output: "floor", tex: null, ttype: 1, rewriteleftright: ["\u230a", "\u230b"], }, { input: "ceil", tag: "mo", output: "ceil", tex: null, ttype: 1, rewriteleftright: ["\u2308", "\u2309"], }, { input: "log", tag: "mo", output: "log", tex: null, ttype: 1, func: !0, }, { input: "ln", tag: "mo", output: "ln", tex: null, ttype: 1, func: !0, }, { input: "det", tag: "mo", output: "det", tex: null, ttype: 1, func: !0, }, { input: "dim", tag: "mo", output: "dim", tex: null, ttype: 0 }, { input: "mod", tag: "mo", output: "mod", tex: null, ttype: 0 }, { input: "gcd", tag: "mo", output: "gcd", tex: null, ttype: 1, func: !0, }, { input: "lcm", tag: "mo", output: "lcm", tex: null, ttype: 1, func: !0, }, { input: "lub", tag: "mo", output: "lub", tex: null, ttype: 0 }, { input: "glb", tag: "mo", output: "glb", tex: null, ttype: 0 }, { input: "min", tag: "mo", output: "min", tex: null, ttype: 7 }, { input: "max", tag: "mo", output: "max", tex: null, ttype: 7 }, { input: "uarr", tag: "mo", output: "\u2191", tex: "uparrow", ttype: 0, }, { input: "darr", tag: "mo", output: "\u2193", tex: "downarrow", ttype: 0, }, { input: "rarr", tag: "mo", output: "\u2192", tex: "rightarrow", ttype: 0, }, { input: "->", tag: "mo", output: "\u2192", tex: "to", ttype: 0 }, { input: ">->", tag: "mo", output: "\u21a3", tex: "rightarrowtail", ttype: 0, }, { input: "->>", tag: "mo", output: "\u21a0", tex: "twoheadrightarrow", ttype: 0, }, { input: ">->>", tag: "mo", output: "\u2916", tex: "twoheadrightarrowtail", ttype: 0, }, { input: "|->", tag: "mo", output: "\u21a6", tex: "mapsto", ttype: 0, }, { input: "larr", tag: "mo", output: "\u2190", tex: "leftarrow", ttype: 0, }, { input: "harr", tag: "mo", output: "\u2194", tex: "leftrightarrow", ttype: 0, }, { input: "rArr", tag: "mo", output: "\u21d2", tex: "Rightarrow", ttype: 0, }, { input: "lArr", tag: "mo", output: "\u21d0", tex: "Leftarrow", ttype: 0, }, { input: "hArr", tag: "mo", output: "\u21d4", tex: "Leftrightarrow", ttype: 0, }, { input: "sqrt", tag: "msqrt", output: "sqrt", tex: null, ttype: 1 }, { input: "root", tag: "mroot", output: "root", tex: null, ttype: 2 }, { input: "frac", tag: "mfrac", output: "/", tex: null, ttype: 2 }, { input: "/", tag: "mfrac", output: "/", tex: null, ttype: 3 }, { input: "stackrel", tag: "mover", output: "stackrel", tex: null, ttype: 2, }, { input: "overset", tag: "mover", output: "stackrel", tex: null, ttype: 2, }, { input: "underset", tag: "munder", output: "stackrel", tex: null, ttype: 2, }, { input: "_", tag: "msub", output: "_", tex: null, ttype: 3 }, { input: "^", tag: "msup", output: "^", tex: null, ttype: 3 }, { input: "hat", tag: "mover", output: "^", tex: null, ttype: 1, acc: !0, }, { input: "bar", tag: "mover", output: "\xaf", tex: "overline", ttype: 1, acc: !0, }, { input: "vec", tag: "mover", output: "\u2192", tex: null, ttype: 1, acc: !0, }, { input: "dot", tag: "mover", output: ".", tex: null, ttype: 1, acc: !0, }, { input: "ddot", tag: "mover", output: "..", tex: null, ttype: 1, acc: !0, }, { input: "ul", tag: "munder", output: "\u0332", tex: "underline", ttype: 1, acc: !0, }, { input: "ubrace", tag: "munder", output: "\u23df", tex: "underbrace", ttype: 15, acc: !0, }, { input: "obrace", tag: "mover", output: "\u23de", tex: "overbrace", ttype: 15, acc: !0, }, { input: "text", tag: "mtext", output: "text", tex: null, ttype: 10 }, { input: "mbox", tag: "mtext", output: "mbox", tex: null, ttype: 10 }, { input: "color", tag: "mstyle", ttype: 2 }, { input: "cancel", tag: "menclose", output: "cancel", tex: null, ttype: 1, }, x, { input: "bb", tag: "mstyle", atname: "mathvariant", atval: "bold", output: "bb", tex: null, ttype: 1, }, { input: "mathbf", tag: "mstyle", atname: "mathvariant", atval: "bold", output: "mathbf", tex: null, ttype: 1, }, { input: "sf", tag: "mstyle", atname: "mathvariant", atval: "sans-serif", output: "sf", tex: null, ttype: 1, }, { input: "mathsf", tag: "mstyle", atname: "mathvariant", atval: "sans-serif", output: "mathsf", tex: null, ttype: 1, }, { input: "bbb", tag: "mstyle", atname: "mathvariant", atval: "double-struck", output: "bbb", tex: null, ttype: 1, codes: E, }, { input: "mathbb", tag: "mstyle", atname: "mathvariant", atval: "double-struck", output: "mathbb", tex: null, ttype: 1, codes: E, }, { input: "cc", tag: "mstyle", atname: "mathvariant", atval: "script", output: "cc", tex: null, ttype: 1, codes: f, }, { input: "mathcal", tag: "mstyle", atname: "mathvariant", atval: "script", output: "mathcal", tex: null, ttype: 1, codes: f, }, { input: "tt", tag: "mstyle", atname: "mathvariant", atval: "monospace", output: "tt", tex: null, ttype: 1, }, { input: "mathtt", tag: "mstyle", atname: "mathvariant", atval: "monospace", output: "mathtt", tex: null, ttype: 1, }, { input: "fr", tag: "mstyle", atname: "mathvariant", atval: "fraktur", output: "fr", tex: null, ttype: 1, codes: g, }, { input: "mathfrak", tag: "mstyle", atname: "mathvariant", atval: "fraktur", output: "mathfrak", tex: null, ttype: 1, codes: g, }, ]; function C(t, e) { return t.input > e.input ? 1 : -1; } var b, S, I, N = []; function A() { var t, e = T.length; for (t = 0; t < e; t++) T[t].tex && T.push({ input: T[t].tex, tag: T[t].tag, output: T[t].output, ttype: T[t].ttype, acc: T[t].acc || !1, }); v(); } function v() { var t; for (T.sort(C), t = 0; t < T.length; t++) N[t] = T[t].input; } function R(t, e) { var i; i = "\\" == t.charAt(e) && "\\" != t.charAt(e + 1) && " " != t.charAt(e + 1) ? t.slice(e + 1) : t.slice(e); for (var n = 0; n < i.length && i.charCodeAt(n) <= 32; n += 1); return i.slice(n); } function O(t, e, i) { if (0 == i) { var n, a; for (i = -1, n = t.length; i + 1 < n; ) t[(a = (i + n) >> 1)] < e ? (i = a) : (n = a); return n; } for (var s = i; s < t.length && t[s] < e; s++); return s; } function L(t) { for (var e, i, n, a = 0, s = "", r = !0, o = 1; o <= t.length && r; o++) (i = t.slice(0, o)), (a = O(N, i, a)) < N.length && t.slice(0, N[a].length) == N[a] && ((e = a), (o = (s = N[a]).length)), (r = a < N.length && t.slice(0, N[a].length) >= N[a]); if (((S = I), "" != s)) return (I = T[e].ttype), T[e]; (I = 0), (a = 1), (i = t.slice(0, 1)); for (var l = !0; "0" <= i && i <= "9" && a <= t.length; ) (i = t.slice(a, a + 1)), a++; if (i == u && "0" <= (i = t.slice(a, a + 1)) && i <= "9") for (l = !1, a++; "0" <= i && i <= "9" && a <= t.length; ) (i = t.slice(a, a + 1)), a++; return ( (l && a > 1) || a > 2 ? ((i = t.slice(0, a - 1)), (n = "mn")) : ((a = 2), (n = ("A" > (i = t.slice(0, 1)) || i > "Z") && ("a" > i || i > "z") ? "mo" : "mi")), "-" == i && 3 == S ? ((I = 3), { input: i, tag: n, output: i, ttype: 1, func: !0 }) : { input: i, tag: n, output: i, ttype: 0 } ); } function M(t) { var e; t.hasChildNodes() && (!t.firstChild.hasChildNodes() || ("mrow" != t.nodeName && "M:MROW" != t.nodeName) || ("(" != (e = t.firstChild.firstChild.nodeValue) && "[" != e && "{" != e) || t.removeChild(t.firstChild), !t.lastChild.hasChildNodes() || ("mrow" != t.nodeName && "M:MROW" != t.nodeName) || (")" != (e = t.lastChild.firstChild.nodeValue) && "]" != e && "}" != e) || t.removeChild(t.lastChild)); } function D(t) { var e, i, a, s, r, o = n.createDocumentFragment(); if (null == (e = L((t = R(t, 0)))) || (5 == e.ttype && b > 0)) return [null, t]; switch ( (e.ttype == y && (e = L((t = e.output + R(t, e.input.length)))), e.ttype) ) { case 7: case 0: return ( (t = R(t, e.input.length)), [m(e.tag, n.createTextNode(e.output)), t] ); case 4: return ( b++, (a = k((t = R(t, e.input.length)), !0)), b--, "boolean" == typeof e.invisible && e.invisible ? (i = m("mrow", a[0])) : ((i = m("mo", n.createTextNode(e.output))), (i = m("mrow", i)).appendChild(a[0])), [i, a[1]] ); case 10: return ( e != x && (t = R(t, e.input.length)), -1 == (s = "{" == t.charAt(0) ? t.indexOf("}") : "(" == t.charAt(0) ? t.indexOf(")") : "[" == t.charAt(0) ? t.indexOf("]") : e == x ? t.slice(1).indexOf('"') + 1 : 0) && (s = t.length), " " == (r = t.slice(1, s)).charAt(0) && ((i = m("mspace")).setAttribute("width", "1ex"), o.appendChild(i)), o.appendChild(m(e.tag, n.createTextNode(r))), " " == r.charAt(r.length - 1) && ((i = m("mspace")).setAttribute("width", "1ex"), o.appendChild(i)), (t = R(t, s + 1)), [m("mrow", o), t] ); case 15: case 1: if (null == (a = D((t = R(t, e.input.length))))[0]) return [m(e.tag, n.createTextNode(e.output)), t]; if ("boolean" == typeof e.func && e.func) return "^" == (r = t.charAt(0)) || "_" == r || "/" == r || "|" == r || "," == r || (1 == e.input.length && e.input.match(/\w/) && "(" != r) ? [m(e.tag, n.createTextNode(e.output)), t] : ((i = m( "mrow", m(e.tag, n.createTextNode(e.output)), )).appendChild(a[0]), [i, a[1]]); if ((M(a[0]), "sqrt" == e.input)) return [m(e.tag, a[0]), a[1]]; if (void 0 !== e.rewriteleftright) return ( (i = m( "mrow", m("mo", n.createTextNode(e.rewriteleftright[0])), )).appendChild(a[0]), i.appendChild(m("mo", n.createTextNode(e.rewriteleftright[1]))), [i, a[1]] ); if ("cancel" == e.input) return ( (i = m(e.tag, a[0])).setAttribute( "notation", "updiagonalstrike", ), [i, a[1]] ); if ("boolean" == typeof e.acc && e.acc) return ( (i = m(e.tag, a[0])).appendChild( m("mo", n.createTextNode(e.output)), ), [i, a[1]] ); if (!h && void 0 !== e.codes) for (s = 0; s < a[0].childNodes.length; s++) if ( "mi" == a[0].childNodes[s].nodeName || "mi" == a[0].nodeName ) { r = "mi" == a[0].nodeName ? a[0].firstChild.nodeValue : a[0].childNodes[s].firstChild.nodeValue; for (var l = [], u = 0; u < r.length; u++) r.charCodeAt(u) > 64 && r.charCodeAt(u) < 91 ? (l += e.codes[r.charCodeAt(u) - 65]) : r.charCodeAt(u) > 96 && r.charCodeAt(u) < 123 ? (l += e.codes[r.charCodeAt(u) - 71]) : (l += r.charAt(u)); "mi" == a[0].nodeName ? (a[0] = m("mo").appendChild(n.createTextNode(l))) : a[0].replaceChild( m("mo").appendChild(n.createTextNode(l)), a[0].childNodes[s], ); } return ( (i = m(e.tag, a[0])).setAttribute(e.atname, e.atval), [i, a[1]] ); case 2: if (null == (a = D((t = R(t, e.input.length))))[0]) return [m("mo", n.createTextNode(e.input)), t]; M(a[0]); var p = D(a[1]); return null == p[0] ? [m("mo", n.createTextNode(e.input)), t] : (M(p[0]), "color" == e.input ? ("{" == t.charAt(0) ? (s = t.indexOf("}")) : "(" == t.charAt(0) ? (s = t.indexOf(")")) : "[" == t.charAt(0) && (s = t.indexOf("]")), (r = t.slice(1, s)), (i = m(e.tag, p[0])).setAttribute("mathcolor", r), [i, p[1]]) : (("root" != e.input && "stackrel" != e.output) || o.appendChild(p[0]), o.appendChild(a[0]), "frac" == e.input && o.appendChild(p[0]), [m(e.tag, o), p[1]])); case 3: return ( (t = R(t, e.input.length)), [m("mo", n.createTextNode(e.output)), t] ); case 6: return ( (t = R(t, e.input.length)), (i = m("mspace")).setAttribute("width", "1ex"), o.appendChild(i), o.appendChild(m(e.tag, n.createTextNode(e.output))), (i = m("mspace")).setAttribute("width", "1ex"), o.appendChild(i), [m("mrow", o), t] ); case 9: return ( b++, (a = k((t = R(t, e.input.length)), !1)), b--, (r = ""), null != a[0].lastChild && (r = a[0].lastChild.firstChild.nodeValue), "|" == r ? ((i = m("mo", n.createTextNode(e.output))), (i = m("mrow", i)).appendChild(a[0]), [i, a[1]]) : ((i = m("mo", n.createTextNode("\u2223"))), [(i = m("mrow", i)), t]) ); default: return ( (t = R(t, e.input.length)), [m(e.tag, n.createTextNode(e.output)), t] ); } } function P(t) { var e, i, a, s, r, o; if ( ((i = L((t = R(t, 0)))), (s = (r = D(t))[0]), 3 == (e = L((t = r[1]))).ttype && "/" != e.input) ) { if ( (null == (r = D((t = R(t, e.input.length))))[0] ? (r[0] = m("mo", n.createTextNode("\u25a1"))) : M(r[0]), (t = r[1]), (o = 7 == i.ttype || 15 == i.ttype), "_" == e.input) ) if ("^" == (a = L(t)).input) { var l = D((t = R(t, a.input.length))); M(l[0]), (t = l[1]), (s = m(o ? "munderover" : "msubsup", s)).appendChild(r[0]), s.appendChild(l[0]), (s = m("mrow", s)); } else (s = m(o ? "munder" : "msub", s)).appendChild(r[0]); else "^" == e.input && o ? (s = m("mover", s)).appendChild(r[0]) : (s = m(e.tag, s)).appendChild(r[0]); void 0 !== i.func && i.func && 3 != (a = L(t)).ttype && 5 != a.ttype && ((r = P(t)), (s = m("mrow", s)).appendChild(r[0]), (t = r[1])); } return [s, t]; } function k(t, e) { var i, a, s, r, o = n.createDocumentFragment(); do { (a = (s = P((t = R(t, 0))))[0]), 3 == (i = L((t = s[1]))).ttype && "/" == i.input ? (null == (s = P((t = R(t, i.input.length))))[0] ? (s[0] = m("mo", n.createTextNode("\u25a1"))) : M(s[0]), (t = s[1]), M(a), (a = m(i.tag, a)).appendChild(s[0]), o.appendChild(a), (i = L(t))) : null != a && o.appendChild(a); } while ( ((5 != i.ttype && (9 != i.ttype || e)) || 0 == b) && null != i && "" != i.output ); if (5 == i.ttype || 9 == i.ttype) { var l = o.childNodes.length; if ( l > 0 && "mrow" == o.childNodes[l - 1].nodeName && o.childNodes[l - 1].lastChild && o.childNodes[l - 1].lastChild.firstChild ) { var u = o.childNodes[l - 1].lastChild.firstChild.nodeValue; if (")" == u || "]" == u) { var h = o.childNodes[l - 1].firstChild.firstChild.nodeValue; if ( ("(" == h && ")" == u && "}" != i.output) || ("[" == h && "]" == u) ) { var p = [], c = !0, d = o.childNodes.length; for (r = 0; c && r < d; r += 2) { if ( ((p[r] = []), (a = o.childNodes[r]), c && (c = "mrow" == a.nodeName && (r == d - 1 || ("mo" == a.nextSibling.nodeName && "," == a.nextSibling.firstChild.nodeValue)) && a.firstChild.firstChild.nodeValue == h && a.lastChild.firstChild.nodeValue == u), c) ) for (var f = 0; f < a.childNodes.length; f++) "," == a.childNodes[f].firstChild.nodeValue && (p[r][p[r].length] = f); c && r > 1 && (c = p[r].length == p[r - 2].length); } if ((c = c && (p.length > 1 || p[0].length > 0))) { var g, E, y, x, T = n.createDocumentFragment(); for (r = 0; r < d; r += 2) { for ( g = n.createDocumentFragment(), E = n.createDocumentFragment(), y = (a = o.firstChild).childNodes.length, x = 0, a.removeChild(a.firstChild), f = 1; f < y - 1; f++ ) void 0 !== p[r][x] && f == p[r][x] ? (a.removeChild(a.firstChild), g.appendChild(m("mtd", E)), x++) : E.appendChild(a.firstChild); g.appendChild(m("mtd", E)), o.childNodes.length > 2 && (o.removeChild(o.firstChild), o.removeChild(o.firstChild)), T.appendChild(m("mtr", g)); } (a = m("mtable", T)), "boolean" == typeof i.invisible && i.invisible && a.setAttribute("columnalign", "left"), o.replaceChild(a, o.firstChild); } } } } (t = R(t, i.input.length)), ("boolean" == typeof i.invisible && i.invisible) || ((a = m("mo", n.createTextNode(i.output))), o.appendChild(a)); } return [o, t]; } function H(t, e) { var i; return ( (b = 0), (i = m( "mstyle", k( (t = (t = (t = (t = t.replace(/ /g, "")).replace( />/g, ">", )).replace(/</g, "<")).replace( /(Sin|Cos|Tan|Arcsin|Arccos|Arctan|Sinh|Cosh|Tanh|Cot|Sec|Csc|Log|Ln|Abs)/g, function (t) { return t.toLowerCase(); }, )).replace(/^\s+/g, ""), !1, )[0], )), "" != s && i.setAttribute("mathcolor", s), "" != r && i.setAttribute("fontfamily", r), o && i.setAttribute("displaystyle", "true"), (i = m("math", i)), l && i.setAttribute("title", t.replace(/\s+/g, " ")), i ); } (l = !1), (r = ""), (s = ""), (function () { for (var t = 0, e = T.length; t < e; t++) T[t].codes && delete T[t].codes, T[t].func && (T[t].tag = "mi"); })(), t.Augment({ AM: { Init: function () { if ( ((o = t.config.displaystyle), (u = t.config.decimal || t.config.decimalsign), !t.config.fixphi) ) for (var n = 0, a = T.length; n < a; n++) "phi" === T[n].input && (T[n].output = "\u03c6"), "varphi" === T[n].input && ((T[n].output = "\u03d5"), (n = a)); var s; (s = (e = MathJax.ElementJax.mml).mbase.prototype.Init), e.mbase.Augment({ firstChild: null, lastChild: null, nodeValue: null, nextSibling: null, Init: function () { var t = s.apply(this, arguments) || this; return (t.childNodes = t.data), (t.nodeName = t.type), t; }, appendChild: function (t) { t.parent && t.parent.removeChild(t); var e = arguments; t.isa(i) && ((e = t.childNodes), (t.data = t.childNodes = []), (t.firstChild = t.lastChild = null)); for (var n = 0, a = e.length; n < a; n++) (t = e[n]), this.lastChild && (this.lastChild.nextSibling = t), this.firstChild || (this.firstChild = t), this.Append(t), (this.lastChild = t); return t; }, removeChild: function (t) { for ( var e = 0, i = this.childNodes.length; e < i && this.childNodes[e] !== t; e++ ); if (e !== i) return ( this.childNodes.splice(e, 1), t === this.firstChild && (this.firstChild = t.nextSibling), t === this.lastChild && (this.childNodes.length ? (this.lastChild = this.childNodes[this.childNodes.length - 1]) : (this.lastChild = null)), e && (this.childNodes[e - 1].nextSibling = t.nextSibling), (t.nextSibling = t.parent = null), t ); }, replaceChild: function (t, e) { for ( var i = 0, n = this.childNodes.length; i < n && this.childNodes[i] !== e; i++ ); return ( i ? (this.childNodes[i - 1].nextSibling = t) : (this.firstChild = t), i >= n - 1 && (this.lastChild = t), this.SetData(i, t), (t.nextSibling = e.nextSibling), (e.nextSibling = e.parent = null), e ); }, hasChildNodes: function (t) { return this.childNodes.length > 0; }, setAttribute: function (t, e) { this[t] = e; }, }), A(); }, Augment: function (t) { for (var e in t) if (t.hasOwnProperty(e)) { switch (e) { case "displaystyle": o = t[e]; break; case "decimal": decimal = t[e]; break; case "parseMath": H = t[e]; break; case "parseExpr": k = t[e]; break; case "parseIexpr": P = t[e]; break; case "parseSexpr": D = t[e]; break; case "removeBrackets": M = t[e]; break; case "getSymbol": L = t[e]; break; case "position": O = t[e]; break; case "removeCharsAndBlanks": R = t[e]; break; case "createMmlNode": m = t[e]; break; case "createElementMathML": d = t[e]; break; case "createElementXHTML": p = t[e]; break; case "initSymbols": A = t[e]; break; case "refreshSymbols": v = t[e]; break; case "compareNames": C = t[e]; } this[e] = t[e]; } }, parseMath: H, parseExpr: k, parseIexpr: P, parseSexr: D, removeBrackets: M, getSymbol: L, position: O, removeCharsAndBlanks: R, createMmlNode: m, createElementMathML: d, createElementXHTML: p, initSymbols: A, refreshSymbols: v, compareNames: C, createDocumentFragment: i, document: n, define: function (t, e) { T.push({ input: t, tag: "mo", output: e, tex: null, ttype: y }), v(); }, newcommand: function (t, e) { T.push({ input: t, tag: "mo", output: e, tex: null, ttype: y }), v(); }, newsymbol: function (t) { T.push(t), v(); }, symbols: T, names: N, TOKEN: { CONST: 0, UNARY: 1, BINARY: 2, INFIX: 3, LEFTBRACKET: 4, RIGHTBRACKET: 5, SPACE: 6, UNDEROVER: 7, DEFINITION: y, LEFTRIGHT: 9, TEXT: 10, UNARYUNDEROVER: 15, }, }, }); })(MathJax.InputJax.AsciiMath), (i = MathJax.InputJax.AsciiMath).Augment({ sourceMenuTitle: ["AsciiMathInput", "AsciiMath Input"], annotationEncoding: "text/x-asciimath", prefilterHooks: MathJax.Callback.Hooks(!0), postfilterHooks: MathJax.Callback.Hooks(!0), Translate: function (t) { var e, i = MathJax.HTML.getScript(t), a = { math: i, script: t }, s = this.prefilterHooks.Execute(a); if (s) return s; i = a.math; try { e = this.AM.parseMath(i); } catch (t) { if (!t.asciimathError) throw t; e = this.formatError(t, i); } return ( (a.math = n(e)), this.postfilterHooks.Execute(a), this.postfilterHooks.Execute(a) || a.math ); }, formatError: function (t, e, i) { var a = t.message.replace(/\n.*/, ""); return ( MathJax.Hub.signal.Post(["AsciiMath Jax - parse error", a, e, i]), n.Error(a) ); }, Error: function (t) { throw MathJax.Hub.Insert(Error(t), { asciimathError: !0 }); }, Startup: function () { (n = MathJax.ElementJax.mml), this.AM.Init(); }, }), i.loadComplete("jax.js"); }, function (t, e) { var i, n, a; (i = MathJax.ElementJax.mml), (n = [ "texWithDelims", "movesupsub", "subsupOK", "primes", "movablelimits", "scriptlevel", "open", "close", "isError", "multiline", "variantForm", "autoOP", "fnOP", ]), (a = { texWithDelims: "withDelims" }), i.mbase.Augment({ toMmlNode: function (t) { var e = this.type; "texatom" === e && (e = "TeXAtom"); var i = this.nodeMake(t, e); return "texClass" in this && (i.texClass = this.texClass), i; }, nodeMake: function (t, e) { for ( var i = t.MML["TeXmathchoice" === e ? "mathchoice" : e](), n = this.data[0] && this.data[0].inferred && this.inferRow ? this.data[0].data : this.data, a = 0, s = n.length; a < s; a++ ) { var r = n[a]; r && i.appendChild(r.toMmlNode(t)); } return this.nodeAddAttributes(i), this.nodeAddProperties(i), i; }, nodeAddAttributes: function (t) { var e = "mstyle" === this.type ? i.math.prototype.defaults : this.defaults, n = this.attrNames || i.copyAttributeNames, a = i.skipAttributes, s = i.copyAttributes; if (!this.attrNames) { for (var r in e) a[r] || s[r] || !e.hasOwnProperty(r) || (null != this[r] && this[r] !== e[r] && this.Get(r, null, 1) !== this[r] && t.attributes.set(r, this[r])); this.class && t.attributes.set("class", this.class); } for (var o = 0, l = n.length; o < l; o++) (1 !== s[n[o]] || e.hasOwnProperty(n[o])) && ((value = (this.attr || {})[n[o]]), null == value && (value = this[n[o]]), ("true" !== value && "false" !== value) || (value = "true" === value), null != value && t.attributes.set(n[o], value)); }, nodeAddProperties: function (t) { for (var e = 0, s = n.length; e < s; e++) { var r = n[e]; null == this[r] || (null != this.defaults[r] && this.defaults[r] !== i.AUTO) || t.setProperty(a[r] || r, this[r]); } }, }), i.chars.Augment({ toMmlNode: function (t) { return t.MML.text().setText(this.data.join("")); }, }), i.entity.Augment({ toMmlNode: function (t) { return t.MML.text().setText(this.toString()); }, }), i.msubsup.Augment({ toMmlNode: function (t) { var e = null == this.data[this.sub] ? "msup" : null == this.data[this.sup] ? "msub" : "msubsup"; return this.nodeMake(t, e); }, }), i.munderover.Augment({ toMmlNode: function (t) { var e = null == this.data[this.under] ? "mover" : null == this.data[this.over] ? "munder" : "munderover"; return this.nodeMake(t, e); }, }), i.xml.Augment({ toMmlNode: function (t) { return t.MML.xml(this.data); }, }); }, function (t, e, i) { "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }), (e.MmlFactory = MathJax._.core.MmlTree.MmlFactory.MmlFactory); }, function (t, e, i) { "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }), (e.APPEND = MathJax._.util.Options.APPEND), (e.REMOVE = MathJax._.util.Options.REMOVE), (e.Expandable = MathJax._.util.Options.Expandable), (e.expandable = MathJax._.util.Options.expandable), (e.makeArray = MathJax._.util.Options.makeArray), (e.keys = MathJax._.util.Options.keys), (e.copy = MathJax._.util.Options.copy), (e.insert = MathJax._.util.Options.insert), (e.defaultOptions = MathJax._.util.Options.defaultOptions), (e.userOptions = MathJax._.util.Options.userOptions), (e.selectOptions = MathJax._.util.Options.selectOptions), (e.selectOptionsFromKeys = MathJax._.util.Options.selectOptionsFromKeys), (e.separateOptions = MathJax._.util.Options.separateOptions); }, function (t, e, i) { "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }), (e.AbstractFindMath = MathJax._.core.FindMath.AbstractFindMath); }, function (t, e, i) { "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }), (e.sortLength = MathJax._.util.string.sortLength), (e.quotePattern = MathJax._.util.string.quotePattern), (e.unicodeChars = MathJax._.util.string.unicodeChars), (e.isPercent = MathJax._.util.string.isPercent), (e.split = MathJax._.util.string.split); }, function (t, e, i) { "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }), (e.protoItem = MathJax._.core.MathItem.protoItem), (e.AbstractMathItem = MathJax._.core.MathItem.AbstractMathItem), (e.STATE = MathJax._.core.MathItem.STATE), (e.newState = MathJax._.core.MathItem.newState); }, function (t, e, i) { "use strict"; i.r(e); var n = i(2), a = i(0), s = i(1); Object(n.combineWithMathJax)({ _: { input: { asciimath_ts: a, asciimath: { FindAsciiMath: s } } }, }), MathJax.startup && (MathJax.startup.registerConstructor("asciimath", a.AsciiMath), MathJax.startup.useInput("asciimath")); }, ]);