/*! * Knockout JavaScript library v3.5.1 * (c) The Knockout.js team - http://knockoutjs.com/ * License: MIT (http://www.opensource.org/licenses/mit-license.php) */ (function() { (function(n) { var A = this || (0, eval)("this"), w = A.document, R = A.navigator, v = A.jQuery, H = A.JSON; v || "undefined" === typeof jQuery || (v = jQuery); (function(n) { "function" === typeof define && define.amd ? define(["exports", "require"], n) : "object" === typeof exports && "object" === typeof module ? n(module.exports || exports) : n(A.ko = {}) })(function(S, T) { function K(a, c) { return null === a || typeof a in W ? a === c : !1 } function X(b, c) { var d; return function() { d || (d = a.a.setTimeout(function() { d = n; b() }, c)) } } function Y(b, c) { var d; return function() { clearTimeout(d); d = a.a.setTimeout(b, c) } } function Z(a, c) { c && "change" !== c ? "beforeChange" === c ? this.pc(a) : this.gb(a, c) : this.qc(a) } function aa(a, c) { null !== c && c.s && c.s() } function ba(a, c) { var d = this.qd, e = d[r]; e.ra || (this.Qb && this.mb[c] ? (d.uc(c, a, this.mb[c]), this.mb[c] = null, --this.Qb) : e.I[c] || d.uc(c, a, e.J ? { da: a } : d.$c(a)), a.Ja && a.gd()) } var a = "undefined" !== typeof S ? S : {}; a.b = function(b, c) { for (var d = b.split("."), e = a, f = 0; f < d.length - 1; f++) e = e[d[f]]; e[d[d.length - 1]] = c }; a.L = function(a, c, d) { a[c] = d }; a.version = "3.5.1"; a.b("version", a.version); a.options = { deferUpdates: !1, useOnlyNativeEvents: !1, foreachHidesDestroyed: !1 }; a.a = function() { function b(a, b) { for (var c in a) f.call(a, c) && b(c, a[c]) } function c(a, b) { if (b) for (var c in b) f.call(b, c) && (a[c] = b[c]); return a } function d(a, b) { a.__proto__ = b; return a } function e(b, c, d, e) { var l = b[c].match(q) || []; a.a.D(d.match(q), function(b) { a.a.Na(l, b, e) }); b[c] = l.join(" ") } var f = Object.prototype.hasOwnProperty, g = { __proto__: [] } instanceof Array, h = "function" === typeof Symbol, m = {}, k = {}; m[R && /Firefox\/2/i.test(R.userAgent) ? "KeyboardEvent" : "UIEvents"] = ["keyup", "keydown", "keypress"]; m.MouseEvents = "click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave".split(" "); b(m, function(a, b) { if (b.length) for (var c = 0, d = b.length; c < d; c++) k[b[c]] = a }); var l = { propertychange: !0 }, p = w && function() { for (var a = 3, b = w.createElement("div"), c = b.getElementsByTagName("i"); b.innerHTML = "\x3c!--[if gt IE " + ++a + "]> a.a.A(c, b) && c.push(b) }); return c }, Mb: function(a, b, c) { var d = []; if (a) for (var e = 0, l = a.length; e < l; e++) d.push(b.call(c, a[e], e)); return d }, jb: function(a, b, c) { var d = []; if (a) for (var e = 0, l = a.length; e < l; e++) b.call(c, a[e], e) && d.push(a[e]); return d }, Nb: function(a, b) { if (b instanceof Array) a.push.apply(a, b); else for (var c = 0, d = b.length; c < d; c++) a.push(b[c]); return a }, Na: function(b, c, d) { var e = a.a.A(a.a.bc(b), c); 0 > e ? d && b.push(c) : d || b.splice(e, 1) }, Ba: g, extend: c, setPrototypeOf: d, Ab: g ? d : c, P: b, Ga: function(a, b, c) { if (!a) return a; var d = {}, e; for (e in a) f.call(a, e) && (d[e] = b.call(c, a[e], e, a)); return d }, Tb: function(b) { for (; b.firstChild;) a.removeNode(b.firstChild) }, Yb: function(b) { b = a.a.la(b); for (var c = (b[0] && b[0].ownerDocument || w).createElement("div"), d = 0, e = b.length; d < e; d++) c.appendChild(a.oa(b[d])); return c }, Ca: function(b, c) { for (var d = 0, e = b.length, l = []; d < e; d++) { var k = b[d].cloneNode(!0); l.push(c ? a.oa(k) : k) } return l }, va: function(b, c) { a.a.Tb(b); if (c) for (var d = 0, e = c.length; d < e; d++) b.appendChild(c[d]) }, Xc: function(b, c) { var d = b.nodeType ? [b] : b; if (0 < d.length) { for (var e = d[0], l = e.parentNode, k = 0, f = c.length; k < f; k++) l.insertBefore(c[k], e); k = 0; for (f = d.length; k < f; k++) a.removeNode(d[k]) } }, Ua: function(a, b) { if (a.length) { for (b = 8 === b.nodeType && b.parentNode || b; a.length && a[0].parentNode !== b;) a.splice(0, 1); for (; 1 < a.length && a[a.length - 1].parentNode !== b;) a.length--; if (1 < a.length) { var c = a[0], d = a[a.length - 1]; for (a.length = 0; c !== d;) a.push(c), c = c.nextSibling; a.push(d) } } return a }, Zc: function(a, b) { 7 > p ? a.setAttribute("selected", b) : a.selected = b }, Db: function(a) { return null === a || a === n ? "" : a.trim ? a.trim() : a.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g, "") }, Ud: function(a, b) { a = a || ""; return b.length > a.length ? !1 : a.substring(0, b.length) === b }, vd: function(a, b) { if (a === b) return !0; if (11 === a.nodeType) return !1; if (b.contains) return b.contains(1 !== a.nodeType ? a.parentNode : a); if (b.compareDocumentPosition) return 16 == (b.compareDocumentPosition(a) & 16); for (; a && a != b;) a = a.parentNode; return !!a }, Sb: function(b) { return a.a.vd(b, b.ownerDocument.documentElement) }, kd: function(b) { return !!a.a.Lb(b, a.a.Sb) }, R: function(a) { return a && a.tagName && a.tagName.toLowerCase() }, Ac: function(b) { return a.onError ? function() { try { return b.apply(this, arguments) } catch (c) { throw a.onError && a.onError(c), c; } } : b }, setTimeout: function(b, c) { return setTimeout(a.a.Ac(b), c) }, Gc: function(b) { setTimeout(function() { a.onError && a.onError(b); throw b; }, 0) }, B: function(b, c, d) { var e = a.a.Ac(d); d = l[c]; if (a.options.useOnlyNativeEvents || d || !v) if (d || "function" != typeof b.addEventListener) if ("undefined" != typeof b.attachEvent) { var k = function(a) { e.call(b, a) }, f = "on" + c; b.attachEvent(f, k); a.a.K.za(b, function() { b.detachEvent(f, k) }) } else throw Error("Browser doesn't support addEventListener or attachEvent"); else b.addEventListener(c, e, !1); else t || (t = "function" == typeof v(b).on ? "on" : "bind"), v(b)[t](c, e) }, Fb: function(b, c) { if (!b || !b.nodeType) throw Error("element must be a DOM node when calling triggerEvent"); var d; "input" === a.a.R(b) && b.type && "click" == c.toLowerCase() ? (d = b.type, d = "checkbox" == d || "radio" == d) : d = !1; if (a.options.useOnlyNativeEvents || !v || d) if ("function" == typeof w.createEvent) if ("function" == typeof b.dispatchEvent) d = w.createEvent(k[c] || "HTMLEvents"), d.initEvent(c, !0, !0, A, 0, 0, 0, 0, 0, !1, !1, !1, !1, 0, b), b.dispatchEvent(d); else throw Error("The supplied element doesn't support dispatchEvent"); else if (d && b.click) b.click(); else if ("undefined" != typeof b.fireEvent) b.fireEvent("on" + c); else throw Error("Browser doesn't support triggering events"); else v(b).trigger(c) }, f: function(b) { return a.O(b) ? b() : b }, bc: function(b) { return a.O(b) ? b.v() : b }, Eb: function(b, c, d) { var l; c && ("object" === typeof b.classList ? (l = b.classList[d ? "add" : "remove"], a.a.D(c.match(q), function(a) { l.call(b.classList, a) })) : "string" === typeof b.className.baseVal ? e(b.className, "baseVal", c, d) : e(b, "className", c, d)) }, Bb: function(b, c) { var d = a.a.f(c); if (null === d || d === n) d = ""; var e = a.h.firstChild(b); !e || 3 != e.nodeType || a.h.nextSibling(e) ? a.h.va(b, [b.ownerDocument.createTextNode(d)]) : e.data = d; a.a.Ad(b) }, Yc: function(a, b) { a.name = b; if (7 >= p) try { var c = a.name.replace(/[&<>'"]/g, function(a) { return "&#" + a.charCodeAt(0) + ";" }); a.mergeAttributes(w.createElement(""), !1) } catch (d) {} }, Ad: function(a) { 9 <= p && (a = 1 == a.nodeType ? a : a.parentNode, a.style && (a.style.zoom = a.style.zoom)) }, wd: function(a) { if (p) { var b = a.style.width; a.style.width = 0; a.style.width = b } }, Pd: function(b, c) { b = a.a.f(b); c = a.a.f(c); for (var d = [], e = b; e <= c; e++) d.push(e); return d }, la: function(a) { for (var b = [], c = 0, d = a.length; c < d; c++) b.push(a[c]); return b }, Da: function(a) { return h ? Symbol(a) : a }, Zd: 6 === p, $d: 7 === p, W: p, Lc: function(b, c) { for (var d = a.a.la(b.getElementsByTagName("input")).concat(a.a.la(b.getElementsByTagName("textarea"))), e = "string" == typeof c ? function(a) { return a.name === c } : function(a) { return c.test(a.name) }, l = [], k = d.length - 1; 0 <= k; k--) e(d[k]) && l.push(d[k]); return l }, Nd: function(b) { return "string" == typeof b && (b = a.a.Db(b)) ? H && H.parse ? H.parse(b) : (new Function("return " + b))() : null }, hc: function(b, c, d) { if (!H || !H.stringify) throw Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js"); return H.stringify(a.a.f(b), c, d) }, Od: function(c, d, e) { e = e || {}; var l = e.params || {}, k = e.includeFields || this.Jc, f = c; if ("object" == typeof c && "form" === a.a.R(c)) for (var f = c.action, h = k.length - 1; 0 <= h; h--) for (var g = a.a.Lc(c, k[h]), m = g.length - 1; 0 <= m; m--) l[g[m].name] = g[m].value; d = a.a.f(d); var p = w.createElement("form"); p.style.display = "none"; p.action = f; p.method = "post"; for (var q in d) c = w.createElement("input"), c.type = "hidden", c.name = q, c.value = a.a.hc(a.a.f(d[q])), p.appendChild(c); b(l, function(a, b) { var c = w.createElement("input"); c.type = "hidden"; c.name = a; c.value = b; p.appendChild(c) }); w.body.appendChild(p); e.submitter ? e.submitter(p) : p.submit(); setTimeout(function() { p.parentNode.removeChild(p) }, 0) } } }(); a.b("utils", a.a); a.b("utils.arrayForEach", a.a.D); a.b("utils.arrayFirst", a.a.Lb); a.b("utils.arrayFilter", a.a.jb); a.b("utils.arrayGetDistinctValues", a.a.wc); a.b("utils.arrayIndexOf", a.a.A); a.b("utils.arrayMap", a.a.Mb); a.b("utils.arrayPushAll", a.a.Nb); a.b("utils.arrayRemoveItem", a.a.Pa); a.b("utils.cloneNodes", a.a.Ca); a.b("utils.createSymbolOrString", a.a.Da); a.b("utils.extend", a.a.extend); a.b("utils.fieldsIncludedWithJsonPost", a.a.Jc); a.b("utils.getFormFields", a.a.Lc); a.b("utils.objectMap", a.a.Ga); a.b("utils.peekObservable", a.a.bc); a.b("utils.postJson", a.a.Od); a.b("utils.parseJson", a.a.Nd); a.b("utils.registerEventHandler", a.a.B); a.b("utils.stringifyJson", a.a.hc); a.b("utils.range", a.a.Pd); a.b("utils.toggleDomNodeCssClass", a.a.Eb); a.b("utils.triggerEvent", a.a.Fb); a.b("utils.unwrapObservable", a.a.f); a.b("utils.objectForEach", a.a.P); a.b("utils.addOrRemoveItem", a.a.Na); a.b("utils.setTextContent", a.a.Bb); a.b("unwrap", a.a.f); Function.prototype.bind || (Function.prototype.bind = function(a) { var c = this; if (1 === arguments.length) return function() { return c.apply(a, arguments) }; var d = Array.prototype.slice.call(arguments, 1); return function() { var e = d.slice(0); e.push.apply(e, arguments); return c.apply(a, e) } }); a.a.g = new function() { var b = 0, c = "__ko__" + (new Date).getTime(), d = {}, e, f; a.a.W ? (e = function(a, e) { var f = a[c]; if (!f || "null" === f || !d[f]) { if (!e) return n; f = a[c] = "ko" + b++; d[f] = {} } return d[f] }, f = function(a) { var b = a[c]; return b ? (delete d[b], a[c] = null, !0) : !1 }) : (e = function(a, b) { var d = a[c]; !d && b && (d = a[c] = {}); return d }, f = function(a) { return a[c] ? (delete a[c], !0) : !1 }); return { get: function(a, b) { var c = e(a, !1); return c && c[b] }, set: function(a, b, c) { (a = e(a, c !== n)) && (a[b] = c) }, Ub: function(a, b, c) { a = e(a, !0); return a[b] || (a[b] = c) }, clear: f, Z: function() { return b++ + c } } }; a.b("utils.domData", a.a.g); a.b("utils.domData.clear", a.a.g.clear); a.a.K = new function() { function b(b, c) { var d = a.a.g.get(b, e); d === n && c && (d = [], a.a.g.set(b, e, d)); return d } function c(c) { var e = b(c, !1); if (e) for (var e = e.slice(0), k = 0; k < e.length; k++) e[k](c); a.a.g.clear(c); a.a.K.cleanExternalData(c); g[c.nodeType] && d(c.childNodes, !0) } function d(b, d) { for (var e = [], l, f = 0; f < b.length; f++) if (!d || 8 === b[f].nodeType) if (c(e[e.length] = l = b[f]), b[f] !== l) for (; f-- && -1 == a.a.A(e, b[f]);); } var e = a.a.g.Z(), f = { 1: !0, 8: !0, 9: !0 }, g = { 1: !0, 9: !0 }; return { za: function(a, c) { if ("function" != typeof c) throw Error("Callback must be a function"); b(a, !0).push(c) }, yb: function(c, d) { var f = b(c, !1); f && (a.a.Pa(f, d), 0 == f.length && a.a.g.set(c, e, n)) }, oa: function(b) { a.u.G(function() { f[b.nodeType] && (c(b), g[b.nodeType] && d(b.getElementsByTagName("*"))) }); return b }, removeNode: function(b) { a.oa(b); b.parentNode && b.parentNode.removeChild(b) }, cleanExternalData: function(a) { v && "function" == typeof v.cleanData && v.cleanData([a]) } } }; a.oa = a.a.K.oa; a.removeNode = a.a.K.removeNode; a.b("cleanNode", a.oa); a.b("removeNode", a.removeNode); a.b("utils.domNodeDisposal", a.a.K); a.b("utils.domNodeDisposal.addDisposeCallback", a.a.K.za); a.b("utils.domNodeDisposal.removeDisposeCallback", a.a.K.yb); (function() { var b = [0, "", ""], c = [1, "", "
"], d = [3, "", "
"], e = [1, ""], f = { thead: c, tbody: c, tfoot: c, tr: [2, "", "
"], td: d, th: d, option: e, optgroup: e }, g = 8 >= a.a.W; a.a.ua = function(c, d) { var e; if (v) if (v.parseHTML) e = v.parseHTML(c, d) || []; else { if ((e = v.clean([c], d)) && e[0]) { for (var l = e[0]; l.parentNode && 11 !== l.parentNode.nodeType;) l = l.parentNode; l.parentNode && l.parentNode.removeChild(l) } } else { (e = d) || (e = w); var l = e.parentWindow || e.defaultView || A, p = a.a.Db(c).toLowerCase(), q = e.createElement("div"), t; t = (p = p.match(/^(?:\x3c!--.*?--\x3e\s*?)*?<([a-z]+)[\s>]/)) && f[p[1]] || b; p = t[0]; t = "ignored
" + t[1] + c + t[2] + "
"; "function" == typeof l.innerShiv ? q.appendChild(l.innerShiv(t)) : (g && e.body.appendChild(q), q.innerHTML = t, g && q.parentNode.removeChild(q)); for (; p--;) q = q.lastChild; e = a.a.la(q.lastChild.childNodes) } return e }; a.a.Md = function(b, c) { var d = a.a.ua(b, c); return d.length && d[0].parentElement || a.a.Yb(d) }; a.a.fc = function(b, c) { a.a.Tb(b); c = a.a.f(c); if (null !== c && c !== n) if ("string" != typeof c && (c = c.toString()), v) v(b).html(c); else for (var d = a.a.ua(c, b.ownerDocument), e = 0; e < d.length; e++) b.appendChild(d[e]) } })(); a.b("utils.parseHtmlFragment", a.a.ua); a.b("utils.setHtml", a.a.fc); a.aa = function() { function b(c, e) { if (c) if (8 == c.nodeType) { var f = a.aa.Uc(c.nodeValue); null != f && e.push({ ud: c, Kd: f }) } else if (1 == c.nodeType) for (var f = 0, g = c.childNodes, h = g.length; f < h; f++) b(g[f], e) } var c = {}; return { Xb: function(a) { if ("function" != typeof a) throw Error("You can only pass a function to ko.memoization.memoize()"); var b = (4294967296 * (1 + Math.random()) | 0).toString(16).substring(1) + (4294967296 * (1 + Math.random()) | 0).toString(16).substring(1); c[b] = a; return "\x3c!--[ko_memo:" + b + "]--\x3e" }, bd: function(a, b) { var f = c[a]; if (f === n) throw Error("Couldn't find any memo with ID " + a + ". Perhaps it's already been unmemoized."); try { return f.apply(null, b || []), !0 } finally { delete c[a] } }, cd: function(c, e) { var f = []; b(c, f); for (var g = 0, h = f.length; g < h; g++) { var m = f[g].ud, k = [m]; e && a.a.Nb(k, e); a.aa.bd(f[g].Kd, k); m.nodeValue = ""; m.parentNode && m.parentNode.removeChild(m) } }, Uc: function(a) { return (a = a.match(/^\[ko_memo\:(.*?)\]$/)) ? a[1] : null } } }(); a.b("memoization", a.aa); a.b("memoization.memoize", a.aa.Xb); a.b("memoization.unmemoize", a.aa.bd); a.b("memoization.parseMemoText", a.aa.Uc); a.b("memoization.unmemoizeDomNodeAndDescendants", a.aa.cd); a.na = function() { function b() { if (f) for (var b = f, c = 0, d; h < f;) if (d = e[h++]) { if (h > b) { if (5E3 <= ++c) { h = f; a.a.Gc(Error("'Too much recursion' after processing " + c + " task groups.")); break } b = f } try { d() } catch (p) { a.a.Gc(p) } } } function c() { b(); h = f = e.length = 0 } var d, e = [], f = 0, g = 1, h = 0; A.MutationObserver ? d = function(a) { var b = w.createElement("div"); (new MutationObserver(a)).observe(b, { attributes: !0 }); return function() { b.classList.toggle("foo") } }(c) : d = w && "onreadystatechange" in w.createElement("script") ? function(a) { var b = w.createElement("script"); b.onreadystatechange = function() { b.onreadystatechange = null; w.documentElement.removeChild(b); b = null; a() }; w.documentElement.appendChild(b) } : function(a) { setTimeout(a, 0) }; return { scheduler: d, zb: function(b) { f || a.na.scheduler(c); e[f++] = b; return g++ }, cancel: function(a) { a = a - (g - f); a >= h && a < f && (e[a] = null) }, resetForTesting: function() { var a = f - h; h = f = e.length = 0; return a }, Sd: b } }(); a.b("tasks", a.na); a.b("tasks.schedule", a.na.zb); a.b("tasks.runEarly", a.na.Sd); a.Ta = { throttle: function(b, c) { b.throttleEvaluation = c; var d = null; return a.$({ read: b, write: function(e) { clearTimeout(d); d = a.a.setTimeout(function() { b(e) }, c) } }) }, rateLimit: function(a, c) { var d, e, f; "number" == typeof c ? d = c : (d = c.timeout, e = c.method); a.Hb = !1; f = "function" == typeof e ? e : "notifyWhenChangesStop" == e ? Y : X; a.ub(function(a) { return f(a, d, c) }) }, deferred: function(b, c) { if (!0 !== c) throw Error("The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled."); b.Hb || (b.Hb = !0, b.ub(function(c) { var e, f = !1; return function() { if (!f) { a.na.cancel(e); e = a.na.zb(c); try { f = !0, b.notifySubscribers(n, "dirty") } finally { f = !1 } } } })) }, notify: function(a, c) { a.equalityComparer = "always" == c ? null : K } }; var W = { undefined: 1, "boolean": 1, number: 1, string: 1 }; a.b("extenders", a.Ta); a.ic = function(b, c, d) { this.da = b; this.lc = c; this.mc = d; this.Ib = !1; this.fb = this.Jb = null; a.L(this, "dispose", this.s); a.L(this, "disposeWhenNodeIsRemoved", this.l) }; a.ic.prototype.s = function() { this.Ib || (this.fb && a.a.K.yb(this.Jb, this.fb), this.Ib = !0, this.mc(), this.da = this.lc = this.mc = this.Jb = this.fb = null) }; a.ic.prototype.l = function(b) { this.Jb = b; a.a.K.za(b, this.fb = this.s.bind(this)) }; a.T = function() { a.a.Ab(this, D); D.qb(this) }; var D = { qb: function(a) { a.U = { change: [] }; a.sc = 1 }, subscribe: function(b, c, d) { var e = this; d = d || "change"; var f = new a.ic(e, c ? b.bind(c) : b, function() { a.a.Pa(e.U[d], f); e.hb && e.hb(d) }); e.Qa && e.Qa(d); e.U[d] || (e.U[d] = []); e.U[d].push(f); return f }, notifySubscribers: function(b, c) { c = c || "change"; "change" === c && this.Gb(); if (this.Wa(c)) { var d = "change" === c && this.ed || this.U[c].slice(0); try { a.u.xc(); for (var e = 0, f; f = d[e]; ++e) f.Ib || f.lc(b) } finally { a.u.end() } } }, ob: function() { return this.sc }, Dd: function(a) { return this.ob() !== a }, Gb: function() { ++this.sc }, ub: function(b) { var c = this, d = a.O(c), e, f, g, h, m; c.gb || (c.gb = c.notifySubscribers, c.notifySubscribers = Z); var k = b(function() { c.Ja = !1; d && h === c && (h = c.nc ? c.nc() : c()); var a = f || m && c.sb(g, h); m = f = e = !1; a && c.gb(g = h) }); c.qc = function(a, b) { b && c.Ja || (m = !b); c.ed = c.U.change.slice(0); c.Ja = e = !0; h = a; k() }; c.pc = function(a) { e || (g = a, c.gb(a, "beforeChange")) }; c.rc = function() { m = !0 }; c.gd = function() { c.sb(g, c.v(!0)) && (f = !0) } }, Wa: function(a) { return this.U[a] && this.U[a].length }, Bd: function(b) { if (b) return this.U[b] && this.U[b].length || 0; var c = 0; a.a.P(this.U, function(a, b) { "dirty" !== a && (c += b.length) }); return c }, sb: function(a, c) { return !this.equalityComparer || !this.equalityComparer(a, c) }, toString: function() { return "[object Object]" }, extend: function(b) { var c = this; b && a.a.P(b, function(b, e) { var f = a.Ta[b]; "function" == typeof f && (c = f(c, e) || c) }); return c } }; a.L(D, "init", D.qb); a.L(D, "subscribe", D.subscribe); a.L(D, "extend", D.extend); a.L(D, "getSubscriptionsCount", D.Bd); a.a.Ba && a.a.setPrototypeOf(D, Function.prototype); a.T.fn = D; a.Qc = function(a) { return null != a && "function" == typeof a.subscribe && "function" == typeof a.notifySubscribers }; a.b("subscribable", a.T); a.b("isSubscribable", a.Qc); a.S = a.u = function() { function b(a) { d.push(e); e = a } function c() { e = d.pop() } var d = [], e, f = 0; return { xc: b, end: c, cc: function(b) { if (e) { if (!a.Qc(b)) throw Error("Only subscribable things can act as dependencies"); e.od.call(e.pd, b, b.fd || (b.fd = ++f)) } }, G: function(a, d, e) { try { return b(), a.apply(d, e || []) } finally { c() } }, qa: function() { if (e) return e.o.qa() }, Va: function() { if (e) return e.o.Va() }, Ya: function() { if (e) return e.Ya }, o: function() { if (e) return e.o } } }(); a.b("computedContext", a.S); a.b("computedContext.getDependenciesCount", a.S.qa); a.b("computedContext.getDependencies", a.S.Va); a.b("computedContext.isInitial", a.S.Ya); a.b("computedContext.registerDependency", a.S.cc); a.b("ignoreDependencies", a.Yd = a.u.G); var I = a.a.Da("_latestValue"); a.ta = function(b) { function c() { if (0 < arguments.length) return c.sb(c[I], arguments[0]) && (c.ya(), c[I] = arguments[0], c.xa()), this; a.u.cc(c); return c[I] } c[I] = b; a.a.Ba || a.a.extend(c, a.T.fn); a.T.fn.qb(c); a.a.Ab(c, F); a.options.deferUpdates && a.Ta.deferred(c, !0); return c }; var F = { equalityComparer: K, v: function() { return this[I] }, xa: function() { this.notifySubscribers(this[I], "spectate"); this.notifySubscribers(this[I]) }, ya: function() { this.notifySubscribers(this[I], "beforeChange") } }; a.a.Ba && a.a.setPrototypeOf(F, a.T.fn); var G = a.ta.Ma = "__ko_proto__"; F[G] = a.ta; a.O = function(b) { if ((b = "function" == typeof b && b[G]) && b !== F[G] && b !== a.o.fn[G]) throw Error("Invalid object that looks like an observable; possibly from another Knockout instance"); return !!b }; a.Za = function(b) { return "function" == typeof b && (b[G] === F[G] || b[G] === a.o.fn[G] && b.Nc) }; a.b("observable", a.ta); a.b("isObservable", a.O); a.b("isWriteableObservable", a.Za); a.b("isWritableObservable", a.Za); a.b("observable.fn", F); a.L(F, "peek", F.v); a.L(F, "valueHasMutated", F.xa); a.L(F, "valueWillMutate", F.ya); a.Ha = function(b) { b = b || []; if ("object" != typeof b || !("length" in b)) throw Error("The argument passed when initializing an observable array must be an array, or null, or undefined."); b = a.ta(b); a.a.Ab(b, a.Ha.fn); return b.extend({ trackArrayChanges: !0 }) }; a.Ha.fn = { remove: function(b) { for (var c = this.v(), d = [], e = "function" != typeof b || a.O(b) ? function(a) { return a === b } : b, f = 0; f < c.length; f++) { var g = c[f]; if (e(g)) { 0 === d.length && this.ya(); if (c[f] !== g) throw Error("Array modified during remove; cannot remove item"); d.push(g); c.splice(f, 1); f-- } } d.length && this.xa(); return d }, removeAll: function(b) { if (b === n) { var c = this.v(), d = c.slice(0); this.ya(); c.splice(0, c.length); this.xa(); return d } return b ? this.remove(function(c) { return 0 <= a.a.A(b, c) }) : [] }, destroy: function(b) { var c = this.v(), d = "function" != typeof b || a.O(b) ? function(a) { return a === b } : b; this.ya(); for (var e = c.length - 1; 0 <= e; e--) { var f = c[e]; d(f) && (f._destroy = !0) } this.xa() }, destroyAll: function(b) { return b === n ? this.destroy(function() { return !0 }) : b ? this.destroy(function(c) { return 0 <= a.a.A(b, c) }) : [] }, indexOf: function(b) { var c = this(); return a.a.A(c, b) }, replace: function(a, c) { var d = this.indexOf(a); 0 <= d && (this.ya(), this.v()[d] = c, this.xa()) }, sorted: function(a) { var c = this().slice(0); return a ? c.sort(a) : c.sort() }, reversed: function() { return this().slice(0).reverse() } }; a.a.Ba && a.a.setPrototypeOf(a.Ha.fn, a.ta.fn); a.a.D("pop push reverse shift sort splice unshift".split(" "), function(b) { a.Ha.fn[b] = function() { var a = this.v(); this.ya(); this.zc(a, b, arguments); var d = a[b].apply(a, arguments); this.xa(); return d === a ? this : d } }); a.a.D(["slice"], function(b) { a.Ha.fn[b] = function() { var a = this(); return a[b].apply(a, arguments) } }); a.Pc = function(b) { return a.O(b) && "function" == typeof b.remove && "function" == typeof b.push }; a.b("observableArray", a.Ha); a.b("isObservableArray", a.Pc); a.Ta.trackArrayChanges = function(b, c) { function d() { function c() { if (m) { var d = [].concat(b.v() || []), e; if (b.Wa("arrayChange")) { if (!f || 1 < m) f = a.a.Pb(k, d, b.Ob); e = f } k = d; f = null; m = 0; e && e.length && b.notifySubscribers(e, "arrayChange") } } e ? c() : (e = !0, h = b.subscribe(function() { ++m }, null, "spectate"), k = [].concat(b.v() || []), f = null, g = b.subscribe(c)) } b.Ob = {}; c && "object" == typeof c && a.a.extend(b.Ob, c); b.Ob.sparse = !0; if (!b.zc) { var e = !1, f = null, g, h, m = 0, k, l = b.Qa, p = b.hb; b.Qa = function(a) { l && l.call(b, a); "arrayChange" === a && d() }; b.hb = function(a) { p && p.call(b, a); "arrayChange" !== a || b.Wa("arrayChange") || (g && g.s(), h && h.s(), h = g = null, e = !1, k = n) }; b.zc = function(b, c, d) { function l(a, b, c) { return k[k.length] = { status: a, value: b, index: c } } if (e && !m) { var k = [], p = b.length, g = d.length, h = 0; switch (c) { case "push": h = p; case "unshift": for (c = 0; c < g; c++) l("added", d[c], h + c); break; case "pop": h = p - 1; case "shift": p && l("deleted", b[h], h); break; case "splice": c = Math.min(Math.max(0, 0 > d[0] ? p + d[0] : d[0]), p); for (var p = 1 === g ? p : Math.min(c + (d[1] || 0), p), g = c + g - 2, h = Math.max(p, g), U = [], L = [], n = 2; c < h; ++c, ++n) c < p && L.push(l("deleted", b[c], c)), c < g && U.push(l("added", d[n], c)); a.a.Kc(L, U); break; default: return } f = k } } } }; var r = a.a.Da("_state"); a.o = a.$ = function(b, c, d) { function e() { if (0 < arguments.length) { if ("function" === typeof f) f.apply(g.nb, arguments); else throw Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters."); return this } g.ra || a.u.cc(e); (g.ka || g.J && e.Xa()) && e.ha(); return g.X } "object" === typeof b ? d = b : (d = d || {}, b && (d.read = b)); if ("function" != typeof d.read) throw Error("Pass a function that returns the value of the ko.computed"); var f = d.write, g = { X: n, sa: !0, ka: !0, rb: !1, jc: !1, ra: !1, wb: !1, J: !1, Wc: d.read, nb: c || d.owner, l: d.disposeWhenNodeIsRemoved || d.l || null, Sa: d.disposeWhen || d.Sa, Rb: null, I: {}, V: 0, Ic: null }; e[r] = g; e.Nc = "function" === typeof f; a.a.Ba || a.a.extend(e, a.T.fn); a.T.fn.qb(e); a.a.Ab(e, C); d.pure ? (g.wb = !0, g.J = !0, a.a.extend(e, da)) : d.deferEvaluation && a.a.extend(e, ea); a.options.deferUpdates && a.Ta.deferred(e, !0); g.l && (g.jc = !0, g.l.nodeType || (g.l = null)); g.J || d.deferEvaluation || e.ha(); g.l && e.ja() && a.a.K.za(g.l, g.Rb = function() { e.s() }); return e }; var C = { equalityComparer: K, qa: function() { return this[r].V }, Va: function() { var b = []; a.a.P(this[r].I, function(a, d) { b[d.Ka] = d.da }); return b }, Vb: function(b) { if (!this[r].V) return !1; var c = this.Va(); return -1 !== a.a.A(c, b) ? !0 : !!a.a.Lb(c, function(a) { return a.Vb && a.Vb(b) }) }, uc: function(a, c, d) { if (this[r].wb && c === this) throw Error("A 'pure' computed must not be called recursively"); this[r].I[a] = d; d.Ka = this[r].V++; d.La = c.ob() }, Xa: function() { var a, c, d = this[r].I; for (a in d) if (Object.prototype.hasOwnProperty.call(d, a) && (c = d[a], this.Ia && c.da.Ja || c.da.Dd(c.La))) return !0 }, Jd: function() { this.Ia && !this[r].rb && this.Ia(!1) }, ja: function() { var a = this[r]; return a.ka || 0 < a.V }, Rd: function() { this.Ja ? this[r].ka && (this[r].sa = !0) : this.Hc() }, $c: function(a) { if (a.Hb) { var c = a.subscribe(this.Jd, this, "dirty"), d = a.subscribe(this.Rd, this); return { da: a, s: function() { c.s(); d.s() } } } return a.subscribe(this.Hc, this) }, Hc: function() { var b = this, c = b.throttleEvaluation; c && 0 <= c ? (clearTimeout(this[r].Ic), this[r].Ic = a.a.setTimeout(function() { b.ha(!0) }, c)) : b.Ia ? b.Ia(!0) : b.ha(!0) }, ha: function(b) { var c = this[r], d = c.Sa, e = !1; if (!c.rb && !c.ra) { if (c.l && !a.a.Sb(c.l) || d && d()) { if (!c.jc) { this.s(); return } } else c.jc = !1; c.rb = !0; try { e = this.zd(b) } finally { c.rb = !1 } return e } }, zd: function(b) { var c = this[r], d = !1, e = c.wb ? n : !c.V, d = { qd: this, mb: c.I, Qb: c.V }; a.u.xc({ pd: d, od: ba, o: this, Ya: e }); c.I = {}; c.V = 0; var f = this.yd(c, d); c.V ? d = this.sb(c.X, f) : (this.s(), d = !0); d && (c.J ? this.Gb() : this.notifySubscribers(c.X, "beforeChange"), c.X = f, this.notifySubscribers(c.X, "spectate"), !c.J && b && this.notifySubscribers(c.X), this.rc && this.rc()); e && this.notifySubscribers(c.X, "awake"); return d }, yd: function(b, c) { try { var d = b.Wc; return b.nb ? d.call(b.nb) : d() } finally { a.u.end(), c.Qb && !b.J && a.a.P(c.mb, aa), b.sa = b.ka = !1 } }, v: function(a) { var c = this[r]; (c.ka && (a || !c.V) || c.J && this.Xa()) && this.ha(); return c.X }, ub: function(b) { a.T.fn.ub.call(this, b); this.nc = function() { this[r].J || (this[r].sa ? this.ha() : this[r].ka = !1); return this[r].X }; this.Ia = function(a) { this.pc(this[r].X); this[r].ka = !0; a && (this[r].sa = !0); this.qc(this, !a) } }, s: function() { var b = this[r]; !b.J && b.I && a.a.P(b.I, function(a, b) { b.s && b.s() }); b.l && b.Rb && a.a.K.yb(b.l, b.Rb); b.I = n; b.V = 0; b.ra = !0; b.sa = !1; b.ka = !1; b.J = !1; b.l = n; b.Sa = n; b.Wc = n; this.Nc || (b.nb = n) } }, da = { Qa: function(b) { var c = this, d = c[r]; if (!d.ra && d.J && "change" == b) { d.J = !1; if (d.sa || c.Xa()) d.I = null, d.V = 0, c.ha() && c.Gb(); else { var e = []; a.a.P(d.I, function(a, b) { e[b.Ka] = a }); a.a.D(e, function(a, b) { var e = d.I[a], m = c.$c(e.da); m.Ka = b; m.La = e.La; d.I[a] = m }); c.Xa() && c.ha() && c.Gb() } d.ra || c.notifySubscribers(d.X, "awake") } }, hb: function(b) { var c = this[r]; c.ra || "change" != b || this.Wa("change") || (a.a.P(c.I, function(a, b) { b.s && (c.I[a] = { da: b.da, Ka: b.Ka, La: b.La }, b.s()) }), c.J = !0, this.notifySubscribers(n, "asleep")) }, ob: function() { var b = this[r]; b.J && (b.sa || this.Xa()) && this.ha(); return a.T.fn.ob.call(this) } }, ea = { Qa: function(a) { "change" != a && "beforeChange" != a || this.v() } }; a.a.Ba && a.a.setPrototypeOf(C, a.T.fn); var N = a.ta.Ma; C[N] = a.o; a.Oc = function(a) { return "function" == typeof a && a[N] === C[N] }; a.Fd = function(b) { return a.Oc(b) && b[r] && b[r].wb }; a.b("computed", a.o); a.b("dependentObservable", a.o); a.b("isComputed", a.Oc); a.b("isPureComputed", a.Fd); a.b("computed.fn", C); a.L(C, "peek", C.v); a.L(C, "dispose", C.s); a.L(C, "isActive", C.ja); a.L(C, "getDependenciesCount", C.qa); a.L(C, "getDependencies", C.Va); a.xb = function(b, c) { if ("function" === typeof b) return a.o(b, c, { pure: !0 }); b = a.a.extend({}, b); b.pure = !0; return a.o(b, c) }; a.b("pureComputed", a.xb); (function() { function b(a, f, g) { g = g || new d; a = f(a); if ("object" != typeof a || null === a || a === n || a instanceof RegExp || a instanceof Date || a instanceof String || a instanceof Number || a instanceof Boolean) return a; var h = a instanceof Array ? [] : {}; g.save(a, h); c(a, function(c) { var d = f(a[c]); switch (typeof d) { case "boolean": case "number": case "string": case "function": h[c] = d; break; case "object": case "undefined": var l = g.get(d); h[c] = l !== n ? l : b(d, f, g) } }); return h } function c(a, b) { if (a instanceof Array) { for (var c = 0; c < a.length; c++) b(c); "function" == typeof a.toJSON && b("toJSON") } else for (c in a) b(c) } function d() { this.keys = []; this.values = [] } a.ad = function(c) { if (0 == arguments.length) throw Error("When calling ko.toJS, pass the object you want to convert."); return b(c, function(b) { for (var c = 0; a.O(b) && 10 > c; c++) b = b(); return b }) }; a.toJSON = function(b, c, d) { b = a.ad(b); return a.a.hc(b, c, d) }; d.prototype = { constructor: d, save: function(b, c) { var d = a.a.A(this.keys, b); 0 <= d ? this.values[d] = c : (this.keys.push(b), this.values.push(c)) }, get: function(b) { b = a.a.A(this.keys, b); return 0 <= b ? this.values[b] : n } } })(); a.b("toJS", a.ad); a.b("toJSON", a.toJSON); a.Wd = function(b, c, d) { function e(c) { var e = a.xb(b, d).extend({ ma: "always" }), h = e.subscribe(function(a) { a && (h.s(), c(a)) }); e.notifySubscribers(e.v()); return h } return "function" !== typeof Promise || c ? e(c.bind(d)) : new Promise(e) }; a.b("when", a.Wd); (function() { a.w = { M: function(b) { switch (a.a.R(b)) { case "option": return !0 === b.__ko__hasDomDataOptionValue__ ? a.a.g.get(b, a.c.options.$b) : 7 >= a.a.W ? b.getAttributeNode("value") && b.getAttributeNode("value").specified ? b.value : b.text : b.value; case "select": return 0 <= b.selectedIndex ? a.w.M(b.options[b.selectedIndex]) : n; default: return b.value } }, cb: function(b, c, d) { switch (a.a.R(b)) { case "option": "string" === typeof c ? (a.a.g.set(b, a.c.options.$b, n), "__ko__hasDomDataOptionValue__" in b && delete b.__ko__hasDomDataOptionValue__, b.value = c) : (a.a.g.set(b, a.c.options.$b, c), b.__ko__hasDomDataOptionValue__ = !0, b.value = "number" === typeof c ? c : ""); break; case "select": if ("" === c || null === c) c = n; for (var e = -1, f = 0, g = b.options.length, h; f < g; ++f) if (h = a.w.M(b.options[f]), h == c || "" === h && c === n) { e = f; break } if (d || 0 <= e || c === n && 1 < b.size) b.selectedIndex = e, 6 === a.a.W && a.a.setTimeout(function() { b.selectedIndex = e }, 0); break; default: if (null === c || c === n) c = ""; b.value = c } } } })(); a.b("selectExtensions", a.w); a.b("selectExtensions.readValue", a.w.M); a.b("selectExtensions.writeValue", a.w.cb); a.m = function() { function b(b) { b = a.a.Db(b); 123 === b.charCodeAt(0) && (b = b.slice(1, -1)); b += "\n,"; var c = [], d = b.match(e), p, q = [], h = 0; if (1 < d.length) { for (var x = 0, B; B = d[x]; ++x) { var u = B.charCodeAt(0); if (44 === u) { if (0 >= h) { c.push(p && q.length ? { key: p, value: q.join("") } : { unknown: p || q.join("") }); p = h = 0; q = []; continue } } else if (58 === u) { if (!h && !p && 1 === q.length) { p = q.pop(); continue } } else if (47 === u && 1 < B.length && (47 === B.charCodeAt(1) || 42 === B.charCodeAt(1))) continue; else 47 === u && x && 1 < B.length ? (u = d[x - 1].match(f)) && !g[u[0]] && (b = b.substr(b.indexOf(B) + 1), d = b.match(e), x = -1, B = "/") : 40 === u || 123 === u || 91 === u ? ++h : 41 === u || 125 === u || 93 === u ? --h : p || q.length || 34 !== u && 39 !== u || (B = B.slice(1, -1)); q.push(B) } if (0 < h) throw Error("Unbalanced parentheses, braces, or brackets"); } return c } var c = ["true", "false", "null", "undefined"], d = /^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i, e = RegExp("\"(?:\\\\.|[^\"])*\"|'(?:\\\\.|[^'])*'|`(?:\\\\.|[^`])*`|/\\*(?:[^*]|\\*+[^*/])*\\*+/|//.*\n|/(?:\\\\.|[^/])+/w*|[^\\s:,/][^,\"'`{}()/:[\\]]*[^\\s,\"'`{}()/:[\\]]|[^\\s]", "g"), f = /[\])"'A-Za-z0-9_$]+$/, g = { "in": 1, "return": 1, "typeof": 1 }, h = {}; return { Ra: [], wa: h, ac: b, vb: function(e, f) { function l(b, e) { var f; if (!x) { var k = a.getBindingHandler(b); if (k && k.preprocess && !(e = k.preprocess(e, b, l))) return; if (k = h[b]) f = e, 0 <= a.a.A(c, f) ? f = !1 : (k = f.match(d), f = null === k ? !1 : k[1] ? "Object(" + k[1] + ")" + k[2] : f), k = f; k && q.push("'" + ("string" == typeof h[b] ? h[b] : b) + "':function(_z){" + f + "=_z}") } g && (e = "function(){return " + e + " }"); p.push("'" + b + "':" + e) } f = f || {}; var p = [], q = [], g = f.valueAccessors, x = f.bindingParams, B = "string" === typeof e ? b(e) : e; a.a.D(B, function(a) { l(a.key || a.unknown, a.value) }); q.length && l("_ko_property_writers", "{" + q.join(",") + " }"); return p.join(",") }, Id: function(a, b) { for (var c = 0; c < a.length; c++) if (a[c].key == b) return !0; return !1 }, eb: function(b, c, d, e, f) { if (b && a.O(b)) !a.Za(b) || f && b.v() === e || b(e); else if ((b = c.get("_ko_property_writers")) && b[d]) b[d](e) } } }(); a.b("expressionRewriting", a.m); a.b("expressionRewriting.bindingRewriteValidators", a.m.Ra); a.b("expressionRewriting.parseObjectLiteral", a.m.ac); a.b("expressionRewriting.preProcessBindings", a.m.vb); a.b("expressionRewriting._twoWayBindings", a.m.wa); a.b("jsonExpressionRewriting", a.m); a.b("jsonExpressionRewriting.insertPropertyAccessorsIntoJson", a.m.vb); (function() { function b(a) { return 8 == a.nodeType && g.test(f ? a.text : a.nodeValue) } function c(a) { return 8 == a.nodeType && h.test(f ? a.text : a.nodeValue) } function d(d, e) { for (var f = d, h = 1, g = []; f = f.nextSibling;) { if (c(f) && (a.a.g.set(f, k, !0), h--, 0 === h)) return g; g.push(f); b(f) && h++ } if (!e) throw Error("Cannot find closing comment tag to match: " + d.nodeValue); return null } function e(a, b) { var c = d(a, b); return c ? 0 < c.length ? c[c.length - 1].nextSibling : a.nextSibling : null } var f = w && "\x3c!--test--\x3e" === w.createComment("test").text, g = f ? /^\x3c!--\s*ko(?:\s+([\s\S]+))?\s*--\x3e$/ : /^\s*ko(?:\s+([\s\S]+))?\s*$/, h = f ? /^\x3c!--\s*\/ko\s*--\x3e$/ : /^\s*\/ko\s*$/, m = { ul: !0, ol: !0 }, k = "__ko_matchedEndComment__"; a.h = { ea: {}, childNodes: function(a) { return b(a) ? d(a) : a.childNodes }, Ea: function(c) { if (b(c)) { c = a.h.childNodes(c); for (var d = 0, e = c.length; d < e; d++) a.removeNode(c[d]) } else a.a.Tb(c) }, va: function(c, d) { if (b(c)) { a.h.Ea(c); for (var e = c.nextSibling, f = 0, k = d.length; f < k; f++) e.parentNode.insertBefore(d[f], e) } else a.a.va(c, d) }, Vc: function(a, c) { var d; b(a) ? (d = a.nextSibling, a = a.parentNode) : d = a.firstChild; d ? c !== d && a.insertBefore(c, d) : a.appendChild(c) }, Wb: function(c, d, e) { e ? (e = e.nextSibling, b(c) && (c = c.parentNode), e ? d !== e && c.insertBefore(d, e) : c.appendChild(d)) : a.h.Vc(c, d) }, firstChild: function(a) { if (b(a)) return !a.nextSibling || c(a.nextSibling) ? null : a.nextSibling; if (a.firstChild && c(a.firstChild)) throw Error("Found invalid end comment, as the first child of " + a); return a.firstChild }, nextSibling: function(d) { b(d) && (d = e(d)); if (d.nextSibling && c(d.nextSibling)) { var f = d.nextSibling; if (c(f) && !a.a.g.get(f, k)) throw Error("Found end comment without a matching opening comment, as child of " + d); return null } return d.nextSibling }, Cd: b, Vd: function(a) { return (a = (f ? a.text : a.nodeValue).match(g)) ? a[1] : null }, Sc: function(d) { if (m[a.a.R(d)]) { var f = d.firstChild; if (f) { do if (1 === f.nodeType) { var k; k = f.firstChild; var h = null; if (k) { do if (h) h.push(k); else if (b(k)) { var g = e(k, !0); g ? k = g : h = [k] } else c(k) && (h = [k]); while (k = k.nextSibling) } if (k = h) for (h = f.nextSibling, g = 0; g < k.length; g++) h ? d.insertBefore(k[g], h) : d.appendChild(k[g]) } while (f = f.nextSibling) } } } } })(); a.b("virtualElements", a.h); a.b("virtualElements.allowedBindings", a.h.ea); a.b("virtualElements.emptyNode", a.h.Ea); a.b("virtualElements.insertAfter", a.h.Wb); a.b("virtualElements.prepend", a.h.Vc); a.b("virtualElements.setDomNodeChildren", a.h.va); (function() { a.ga = function() { this.nd = {} }; a.a.extend(a.ga.prototype, { nodeHasBindings: function(b) { switch (b.nodeType) { case 1: return null != b.getAttribute("data-bind") || a.j.getComponentNameForNode(b); case 8: return a.h.Cd(b); default: return !1 } }, getBindings: function(b, c) { var d = this.getBindingsString(b, c), d = d ? this.parseBindingsString(d, c, b) : null; return a.j.tc(d, b, c, !1) }, getBindingAccessors: function(b, c) { var d = this.getBindingsString(b, c), d = d ? this.parseBindingsString(d, c, b, { valueAccessors: !0 }) : null; return a.j.tc(d, b, c, !0) }, getBindingsString: function(b) { switch (b.nodeType) { case 1: return b.getAttribute("data-bind"); case 8: return a.h.Vd(b); default: return null } }, parseBindingsString: function(b, c, d, e) { try { var f = this.nd, g = b + (e && e.valueAccessors || ""), h; if (!(h = f[g])) { var m, k = "with($context){with($data||{}){return{" + a.m.vb(b, e) + "}}}"; m = new Function("$context", "$element", k); h = f[g] = m } return h(c, d) } catch (l) { throw l.message = "Unable to parse bindings.\nBindings value: " + b + "\nMessage: " + l.message, l; } } }); a.ga.instance = new a.ga })(); a.b("bindingProvider", a.ga); (function() { function b(b) { var c = (b = a.a.g.get(b, z)) && b.N; c && (b.N = null, c.Tc()) } function c(c, d, e) { this.node = c; this.yc = d; this.kb = []; this.H = !1; d.N || a.a.K.za(c, b); e && e.N && (e.N.kb.push(c), this.Kb = e) } function d(a) { return function() { return a } } function e(a) { return a() } function f(b) { return a.a.Ga(a.u.G(b), function(a, c) { return function() { return b()[c] } }) } function g(b, c, e) { return "function" === typeof b ? f(b.bind(null, c, e)) : a.a.Ga(b, d) } function h(a, b) { return f(this.getBindings.bind(this, a, b)) } function m(b, c) { var d = a.h.firstChild(c); if (d) { var e, f = a.ga.instance, l = f.preprocessNode; if (l) { for (; e = d;) d = a.h.nextSibling(e), l.call(f, e); d = a.h.firstChild(c) } for (; e = d;) d = a.h.nextSibling(e), k(b, e) } a.i.ma(c, a.i.H) } function k(b, c) { var d = b, e = 1 === c.nodeType; e && a.h.Sc(c); if (e || a.ga.instance.nodeHasBindings(c)) d = p(c, null, b).bindingContextForDescendants; d && !u[a.a.R(c)] && m(d, c) } function l(b) { var c = [], d = {}, e = []; a.a.P(b, function ca(f) { if (!d[f]) { var k = a.getBindingHandler(f); k && (k.after && (e.push(f), a.a.D(k.after, function(c) { if (b[c]) { if (-1 !== a.a.A(e, c)) throw Error("Cannot combine the following bindings, because they have a cyclic dependency: " + e.join(", ")); ca(c) } }), e.length--), c.push({ key: f, Mc: k })); d[f] = !0 } }); return c } function p(b, c, d) { var f = a.a.g.Ub(b, z, {}), k = f.hd; if (!c) { if (k) throw Error("You cannot apply bindings multiple times to the same element."); f.hd = !0 } k || (f.context = d); f.Zb || (f.Zb = {}); var g; if (c && "function" !== typeof c) g = c; else { var p = a.ga.instance, q = p.getBindingAccessors || h, m = a.$(function() { if (g = c ? c(d, b) : q.call(p, b, d)) { if (d[t]) d[t](); if (d[B]) d[B]() } return g }, null, { l: b }); g && m.ja() || (m = null) } var x = d, u; if (g) { var J = function() { return a.a.Ga(m ? m() : g, e) }, r = m ? function(a) { return function() { return e(m()[a]) } } : function(a) { return g[a] }; J.get = function(a) { return g[a] && e(r(a)) }; J.has = function(a) { return a in g }; a.i.H in g && a.i.subscribe(b, a.i.H, function() { var c = (0, g[a.i.H])(); if (c) { var d = a.h.childNodes(b); d.length && c(d, a.Ec(d[0])) } }); a.i.pa in g && (x = a.i.Cb(b, d), a.i.subscribe(b, a.i.pa, function() { var c = (0, g[a.i.pa])(); c && a.h.firstChild(b) && c(b) })); f = l(g); a.a.D(f, function(c) { var d = c.Mc.init, e = c.Mc.update, f = c.key; if (8 === b.nodeType && !a.h.ea[f]) throw Error("The binding '" + f + "' cannot be used with virtual elements"); try { "function" == typeof d && a.u.G(function() { var a = d(b, r(f), J, x.$data, x); if (a && a.controlsDescendantBindings) { if (u !== n) throw Error("Multiple bindings (" + u + " and " + f + ") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element."); u = f } }), "function" == typeof e && a.$(function() { e(b, r(f), J, x.$data, x) }, null, { l: b }) } catch (k) { throw k.message = 'Unable to process binding "' + f + ": " + g[f] + '"\nMessage: ' + k.message, k; } }) } f = u === n; return { shouldBindDescendants: f, bindingContextForDescendants: f && x } } function q(b, c) { return b && b instanceof a.fa ? b : new a.fa(b, n, n, c) } var t = a.a.Da("_subscribable"), x = a.a.Da("_ancestorBindingInfo"), B = a.a.Da("_dataDependency"); a.c = {}; var u = { script: !0, textarea: !0, template: !0 }; a.getBindingHandler = function(b) { return a.c[b] }; var J = {}; a.fa = function(b, c, d, e, f) { function k() { var b = p ? h() : h, f = a.a.f(b); c ? (a.a.extend(l, c), x in c && (l[x] = c[x])) : (l.$parents = [], l.$root = f, l.ko = a); l[t] = q; g ? f = l.$data : (l.$rawData = b, l.$data = f); d && (l[d] = f); e && e(l, c, f); if (c && c[t] && !a.S.o().Vb(c[t])) c[t](); m && (l[B] = m); return l.$data } var l = this, g = b === J, h = g ? n : b, p = "function" == typeof h && !a.O(h), q, m = f && f.dataDependency; f && f.exportDependencies ? k() : (q = a.xb(k), q.v(), q.ja() ? q.equalityComparer = null : l[t] = n) }; a.fa.prototype.createChildContext = function(b, c, d, e) { !e && c && "object" == typeof c && (e = c, c = e.as, d = e.extend); if (c && e && e.noChildContext) { var f = "function" == typeof b && !a.O(b); return new a.fa(J, this, null, function(a) { d && d(a); a[c] = f ? b() : b }, e) } return new a.fa(b, this, c, function(a, b) { a.$parentContext = b; a.$parent = b.$data; a.$parents = (b.$parents || []).slice(0); a.$parents.unshift(a.$parent); d && d(a) }, e) }; a.fa.prototype.extend = function(b, c) { return new a.fa(J, this, null, function(c) { a.a.extend(c, "function" == typeof b ? b(c) : b) }, c) }; var z = a.a.g.Z(); c.prototype.Tc = function() { this.Kb && this.Kb.N && this.Kb.N.sd(this.node) }; c.prototype.sd = function(b) { a.a.Pa(this.kb, b); !this.kb.length && this.H && this.Cc() }; c.prototype.Cc = function() { this.H = !0; this.yc.N && !this.kb.length && (this.yc.N = null, a.a.K.yb(this.node, b), a.i.ma(this.node, a.i.pa), this.Tc()) }; a.i = { H: "childrenComplete", pa: "descendantsComplete", subscribe: function(b, c, d, e, f) { var k = a.a.g.Ub(b, z, {}); k.Fa || (k.Fa = new a.T); f && f.notifyImmediately && k.Zb[c] && a.u.G(d, e, [b]); return k.Fa.subscribe(d, e, c) }, ma: function(b, c) { var d = a.a.g.get(b, z); if (d && (d.Zb[c] = !0, d.Fa && d.Fa.notifySubscribers(b, c), c == a.i.H)) if (d.N) d.N.Cc(); else if (d.N === n && d.Fa && d.Fa.Wa(a.i.pa)) throw Error("descendantsComplete event not supported for bindings on this node"); }, Cb: function(b, d) { var e = a.a.g.Ub(b, z, {}); e.N || (e.N = new c(b, e, d[x])); return d[x] == e ? d : d.extend(function(a) { a[x] = e }) } }; a.Td = function(b) { return (b = a.a.g.get(b, z)) && b.context }; a.ib = function(b, c, d) { 1 === b.nodeType && a.h.Sc(b); return p(b, c, q(d)) }; a.ld = function(b, c, d) { d = q(d); return a.ib(b, g(c, d, b), d) }; a.Oa = function(a, b) { 1 !== b.nodeType && 8 !== b.nodeType || m(q(a), b) }; a.vc = function(a, b, c) { !v && A.jQuery && (v = A.jQuery); if (2 > arguments.length) { if (b = w.body, !b) throw Error("ko.applyBindings: could not find document.body; has the document been loaded?"); } else if (!b || 1 !== b.nodeType && 8 !== b.nodeType) throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node"); k(q(a, c), b) }; a.Dc = function(b) { return !b || 1 !== b.nodeType && 8 !== b.nodeType ? n : a.Td(b) }; a.Ec = function(b) { return (b = a.Dc(b)) ? b.$data : n }; a.b("bindingHandlers", a.c); a.b("bindingEvent", a.i); a.b("bindingEvent.subscribe", a.i.subscribe); a.b("bindingEvent.startPossiblyAsyncContentBinding", a.i.Cb); a.b("applyBindings", a.vc); a.b("applyBindingsToDescendants", a.Oa); a.b("applyBindingAccessorsToNode", a.ib); a.b("applyBindingsToNode", a.ld); a.b("contextFor", a.Dc); a.b("dataFor", a.Ec) })(); (function(b) { function c(c, e) { var k = Object.prototype.hasOwnProperty.call(f, c) ? f[c] : b, l; k ? k.subscribe(e) : (k = f[c] = new a.T, k.subscribe(e), d(c, function(b, d) { var e = !(!d || !d.synchronous); g[c] = { definition: b, Gd: e }; delete f[c]; l || e ? k.notifySubscribers(b) : a.na.zb(function() { k.notifySubscribers(b) }) }), l = !0) } function d(a, b) { e("getConfig", [a], function(c) { c ? e("loadComponent", [a, c], function(a) { b(a, c) }) : b(null, null) }) } function e(c, d, f, l) { l || (l = a.j.loaders.slice(0)); var g = l.shift(); if (g) { var q = g[c]; if (q) { var t = !1; if (q.apply(g, d.concat(function(a) { t ? f(null) : null !== a ? f(a) : e(c, d, f, l) })) !== b && (t = !0, !g.suppressLoaderExceptions)) throw Error("Component loaders must supply values by invoking the callback, not by returning values synchronously."); } else e(c, d, f, l) } else f(null) } var f = {}, g = {}; a.j = { get: function(d, e) { var f = Object.prototype.hasOwnProperty.call(g, d) ? g[d] : b; f ? f.Gd ? a.u.G(function() { e(f.definition) }) : a.na.zb(function() { e(f.definition) }) : c(d, e) }, Bc: function(a) { delete g[a] }, oc: e }; a.j.loaders = []; a.b("components", a.j); a.b("components.get", a.j.get); a.b("components.clearCachedDefinition", a.j.Bc) })(); (function() { function b(b, c, d, e) { function g() { 0 === --B && e(h) } var h = {}, B = 2, u = d.template; d = d.viewModel; u ? f(c, u, function(c) { a.j.oc("loadTemplate", [b, c], function(a) { h.template = a; g() }) }) : g(); d ? f(c, d, function(c) { a.j.oc("loadViewModel", [b, c], function(a) { h[m] = a; g() }) }) : g() } function c(a, b, d) { if ("function" === typeof b) d(function(a) { return new b(a) }); else if ("function" === typeof b[m]) d(b[m]); else if ("instance" in b) { var e = b.instance; d(function() { return e }) } else "viewModel" in b ? c(a, b.viewModel, d) : a("Unknown viewModel value: " + b) } function d(b) { switch (a.a.R(b)) { case "script": return a.a.ua(b.text); case "textarea": return a.a.ua(b.value); case "template": if (e(b.content)) return a.a.Ca(b.content.childNodes) } return a.a.Ca(b.childNodes) } function e(a) { return A.DocumentFragment ? a instanceof DocumentFragment : a && 11 === a.nodeType } function f(a, b, c) { "string" === typeof b.require ? T || A.require ? (T || A.require)([b.require], function(a) { a && "object" === typeof a && a.Xd && a["default"] && (a = a["default"]); c(a) }) : a("Uses require, but no AMD loader is present") : c(b) } function g(a) { return function(b) { throw Error("Component '" + a + "': " + b); } } var h = {}; a.j.register = function(b, c) { if (!c) throw Error("Invalid configuration for " + b); if (a.j.tb(b)) throw Error("Component " + b + " is already registered"); h[b] = c }; a.j.tb = function(a) { return Object.prototype.hasOwnProperty.call(h, a) }; a.j.unregister = function(b) { delete h[b]; a.j.Bc(b) }; a.j.Fc = { getConfig: function(b, c) { c(a.j.tb(b) ? h[b] : null) }, loadComponent: function(a, c, d) { var e = g(a); f(e, c, function(c) { b(a, e, c, d) }) }, loadTemplate: function(b, c, f) { b = g(b); if ("string" === typeof c) f(a.a.ua(c)); else if (c instanceof Array) f(c); else if (e(c)) f(a.a.la(c.childNodes)); else if (c.element) if (c = c.element, A.HTMLElement ? c instanceof HTMLElement : c && c.tagName && 1 === c.nodeType) f(d(c)); else if ("string" === typeof c) { var h = w.getElementById(c); h ? f(d(h)) : b("Cannot find element with ID " + c) } else b("Unknown element type: " + c); else b("Unknown template value: " + c) }, loadViewModel: function(a, b, d) { c(g(a), b, d) } }; var m = "createViewModel"; a.b("components.register", a.j.register); a.b("components.isRegistered", a.j.tb); a.b("components.unregister", a.j.unregister); a.b("components.defaultLoader", a.j.Fc); a.j.loaders.push(a.j.Fc); a.j.dd = h })(); (function() { function b(b, e) { var f = b.getAttribute("params"); if (f) { var f = c.parseBindingsString(f, e, b, { valueAccessors: !0, bindingParams: !0 }), f = a.a.Ga(f, function(c) { return a.o(c, null, { l: b }) }), g = a.a.Ga(f, function(c) { var e = c.v(); return c.ja() ? a.o({ read: function() { return a.a.f(c()) }, write: a.Za(e) && function(a) { c()(a) }, l: b }) : e }); Object.prototype.hasOwnProperty.call(g, "$raw") || (g.$raw = f); return g } return { $raw: {} } } a.j.getComponentNameForNode = function(b) { var c = a.a.R(b); if (a.j.tb(c) && (-1 != c.indexOf("-") || "[object HTMLUnknownElement]" == "" + b || 8 >= a.a.W && b.tagName === c)) return c }; a.j.tc = function(c, e, f, g) { if (1 === e.nodeType) { var h = a.j.getComponentNameForNode(e); if (h) { c = c || {}; if (c.component) throw Error('Cannot use the "component" binding on a custom element matching a component'); var m = { name: h, params: b(e, f) }; c.component = g ? function() { return m } : m } } return c }; var c = new a.ga; 9 > a.a.W && (a.j.register = function(a) { return function(b) { return a.apply(this, arguments) } }(a.j.register), w.createDocumentFragment = function(b) { return function() { var c = b(), f = a.j.dd, g; for (g in f); return c } }(w.createDocumentFragment)) })(); (function() { function b(b, c, d) { c = c.template; if (!c) throw Error("Component '" + b + "' has no template"); b = a.a.Ca(c); a.h.va(d, b) } function c(a, b, c) { var d = a.createViewModel; return d ? d.call(a, b, c) : b } var d = 0; a.c.component = { init: function(e, f, g, h, m) { function k() { var a = l && l.dispose; "function" === typeof a && a.call(l); q && q.s(); p = l = q = null } var l, p, q, t = a.a.la(a.h.childNodes(e)); a.h.Ea(e); a.a.K.za(e, k); a.o(function() { var g = a.a.f(f()), h, u; "string" === typeof g ? h = g : (h = a.a.f(g.name), u = a.a.f(g.params)); if (!h) throw Error("No component name specified"); var n = a.i.Cb(e, m), z = p = ++d; a.j.get(h, function(d) { if (p === z) { k(); if (!d) throw Error("Unknown component '" + h + "'"); b(h, d, e); var f = c(d, u, { element: e, templateNodes: t }); d = n.createChildContext(f, { extend: function(a) { a.$component = f; a.$componentTemplateNodes = t } }); f && f.koDescendantsComplete && (q = a.i.subscribe(e, a.i.pa, f.koDescendantsComplete, f)); l = f; a.Oa(d, e) } }) }, null, { l: e }); return { controlsDescendantBindings: !0 } } }; a.h.ea.component = !0 })(); var V = { "class": "className", "for": "htmlFor" }; a.c.attr = { update: function(b, c) { var d = a.a.f(c()) || {}; a.a.P(d, function(c, d) { d = a.a.f(d); var g = c.indexOf(":"), g = "lookupNamespaceURI" in b && 0 < g && b.lookupNamespaceURI(c.substr(0, g)), h = !1 === d || null === d || d === n; h ? g ? b.removeAttributeNS(g, c) : b.removeAttribute(c) : d = d.toString(); 8 >= a.a.W && c in V ? (c = V[c], h ? b.removeAttribute(c) : b[c] = d) : h || (g ? b.setAttributeNS(g, c, d) : b.setAttribute(c, d)); "name" === c && a.a.Yc(b, h ? "" : d) }) } }; (function() { a.c.checked = { after: ["value", "attr"], init: function(b, c, d) { function e() { var e = b.checked, f = g(); if (!a.S.Ya() && (e || !m && !a.S.qa())) { var k = a.u.G(c); if (l) { var q = p ? k.v() : k, z = t; t = f; z !== f ? e && (a.a.Na(q, f, !0), a.a.Na(q, z, !1)) : a.a.Na(q, f, e); p && a.Za(k) && k(q) } else h && (f === n ? f = e : e || (f = n)), a.m.eb(k, d, "checked", f, !0) } } function f() { var d = a.a.f(c()), e = g(); l ? (b.checked = 0 <= a.a.A(d, e), t = e) : b.checked = h && e === n ? !!d : g() === d } var g = a.xb(function() { if (d.has("checkedValue")) return a.a.f(d.get("checkedValue")); if (q) return d.has("value") ? a.a.f(d.get("value")) : b.value }), h = "checkbox" == b.type, m = "radio" == b.type; if (h || m) { var k = c(), l = h && a.a.f(k) instanceof Array, p = !(l && k.push && k.splice), q = m || l, t = l ? g() : n; m && !b.name && a.c.uniqueName.init(b, function() { return !0 }); a.o(e, null, { l: b }); a.a.B(b, "click", e); a.o(f, null, { l: b }); k = n } } }; a.m.wa.checked = !0; a.c.checkedValue = { update: function(b, c) { b.value = a.a.f(c()) } } })(); a.c["class"] = { update: function(b, c) { var d = a.a.Db(a.a.f(c())); a.a.Eb(b, b.__ko__cssValue, !1); b.__ko__cssValue = d; a.a.Eb(b, d, !0) } }; a.c.css = { update: function(b, c) { var d = a.a.f(c()); null !== d && "object" == typeof d ? a.a.P(d, function(c, d) { d = a.a.f(d); a.a.Eb(b, c, d) }) : a.c["class"].update(b, c) } }; a.c.enable = { update: function(b, c) { var d = a.a.f(c()); d && b.disabled ? b.removeAttribute("disabled") : d || b.disabled || (b.disabled = !0) } }; a.c.disable = { update: function(b, c) { a.c.enable.update(b, function() { return !a.a.f(c()) }) } }; a.c.event = { init: function(b, c, d, e, f) { var g = c() || {}; a.a.P(g, function(g) { "string" == typeof g && a.a.B(b, g, function(b) { var k, l = c()[g]; if (l) { try { var p = a.a.la(arguments); e = f.$data; p.unshift(e); k = l.apply(e, p) } finally { !0 !== k && (b.preventDefault ? b.preventDefault() : b.returnValue = !1) }!1 === d.get(g + "Bubble") && (b.cancelBubble = !0, b.stopPropagation && b.stopPropagation()) } }) }) } }; a.c.foreach = { Rc: function(b) { return function() { var c = b(), d = a.a.bc(c); if (!d || "number" == typeof d.length) return { foreach: c, templateEngine: a.ba.Ma }; a.a.f(c); return { foreach: d.data, as: d.as, noChildContext: d.noChildContext, includeDestroyed: d.includeDestroyed, afterAdd: d.afterAdd, beforeRemove: d.beforeRemove, afterRender: d.afterRender, beforeMove: d.beforeMove, afterMove: d.afterMove, templateEngine: a.ba.Ma } } }, init: function(b, c) { return a.c.template.init(b, a.c.foreach.Rc(c)) }, update: function(b, c, d, e, f) { return a.c.template.update(b, a.c.foreach.Rc(c), d, e, f) } }; a.m.Ra.foreach = !1; a.h.ea.foreach = !0; a.c.hasfocus = { init: function(b, c, d) { function e(e) { b.__ko_hasfocusUpdating = !0; var f = b.ownerDocument; if ("activeElement" in f) { var g; try { g = f.activeElement } catch (l) { g = f.body } e = g === b } f = c(); a.m.eb(f, d, "hasfocus", e, !0); b.__ko_hasfocusLastValue = e; b.__ko_hasfocusUpdating = !1 } var f = e.bind(null, !0), g = e.bind(null, !1); a.a.B(b, "focus", f); a.a.B(b, "focusin", f); a.a.B(b, "blur", g); a.a.B(b, "focusout", g); b.__ko_hasfocusLastValue = !1 }, update: function(b, c) { var d = !!a.a.f(c()); b.__ko_hasfocusUpdating || b.__ko_hasfocusLastValue === d || (d ? b.focus() : b.blur(), !d && b.__ko_hasfocusLastValue && b.ownerDocument.body.focus(), a.u.G(a.a.Fb, null, [b, d ? "focusin" : "focusout"])) } }; a.m.wa.hasfocus = !0; a.c.hasFocus = a.c.hasfocus; a.m.wa.hasFocus = "hasfocus"; a.c.html = { init: function() { return { controlsDescendantBindings: !0 } }, update: function(b, c) { a.a.fc(b, c()) } }; (function() { function b(b, d, e) { a.c[b] = { init: function(b, c, h, m, k) { var l, p, q = {}, t, x, n; if (d) { m = h.get("as"); var u = h.get("noChildContext"); n = !(m && u); q = { as: m, noChildContext: u, exportDependencies: n } } x = (t = "render" == h.get("completeOn")) || h.has(a.i.pa); a.o(function() { var h = a.a.f(c()), m = !e !== !h, u = !p, r; if (n || m !== l) { x && (k = a.i.Cb(b, k)); if (m) { if (!d || n) q.dataDependency = a.S.o(); r = d ? k.createChildContext("function" == typeof h ? h : c, q) : a.S.qa() ? k.extend(null, q) : k } u && a.S.qa() && (p = a.a.Ca(a.h.childNodes(b), !0)); m ? (u || a.h.va(b, a.a.Ca(p)), a.Oa(r, b)) : (a.h.Ea(b), t || a.i.ma(b, a.i.H)); l = m } }, null, { l: b }); return { controlsDescendantBindings: !0 } } }; a.m.Ra[b] = !1; a.h.ea[b] = !0 } b("if"); b("ifnot", !1, !0); b("with", !0) })(); a.c.let = { init: function(b, c, d, e, f) { c = f.extend(c); a.Oa(c, b); return { controlsDescendantBindings: !0 } } }; a.h.ea.let = !0; var Q = {}; a.c.options = { init: function(b) { if ("select" !== a.a.R(b)) throw Error("options binding applies only to SELECT elements"); for (; 0 < b.length;) b.remove(0); return { controlsDescendantBindings: !0 } }, update: function(b, c, d) { function e() { return a.a.jb(b.options, function(a) { return a.selected }) } function f(a, b, c) { var d = typeof b; return "function" == d ? b(a) : "string" == d ? a[b] : c } function g(c, d) { if (x && l) a.i.ma(b, a.i.H); else if (t.length) { var e = 0 <= a.a.A(t, a.w.M(d[0])); a.a.Zc(d[0], e); x && !e && a.u.G(a.a.Fb, null, [b, "change"]) } } var h = b.multiple, m = 0 != b.length && h ? b.scrollTop : null, k = a.a.f(c()), l = d.get("valueAllowUnset") && d.has("value"), p = d.get("optionsIncludeDestroyed"); c = {}; var q, t = []; l || (h ? t = a.a.Mb(e(), a.w.M) : 0 <= b.selectedIndex && t.push(a.w.M(b.options[b.selectedIndex]))); k && ("undefined" == typeof k.length && (k = [k]), q = a.a.jb(k, function(b) { return p || b === n || null === b || !a.a.f(b._destroy) }), d.has("optionsCaption") && (k = a.a.f(d.get("optionsCaption")), null !== k && k !== n && q.unshift(Q))); var x = !1; c.beforeRemove = function(a) { b.removeChild(a) }; k = g; d.has("optionsAfterRender") && "function" == typeof d.get("optionsAfterRender") && (k = function(b, c) { g(0, c); a.u.G(d.get("optionsAfterRender"), null, [c[0], b !== Q ? b : n]) }); a.a.ec(b, q, function(c, e, g) { g.length && (t = !l && g[0].selected ? [a.w.M(g[0])] : [], x = !0); e = b.ownerDocument.createElement("option"); c === Q ? (a.a.Bb(e, d.get("optionsCaption")), a.w.cb(e, n)) : (g = f(c, d.get("optionsValue"), c), a.w.cb(e, a.a.f(g)), c = f(c, d.get("optionsText"), g), a.a.Bb(e, c)); return [e] }, c, k); if (!l) { var B; h ? B = t.length && e().length < t.length : B = t.length && 0 <= b.selectedIndex ? a.w.M(b.options[b.selectedIndex]) !== t[0] : t.length || 0 <= b.selectedIndex; B && a.u.G(a.a.Fb, null, [b, "change"]) }(l || a.S.Ya()) && a.i.ma(b, a.i.H); a.a.wd(b); m && 20 < Math.abs(m - b.scrollTop) && (b.scrollTop = m) } }; a.c.options.$b = a.a.g.Z(); a.c.selectedOptions = { init: function(b, c, d) { function e() { var e = c(), f = []; a.a.D(b.getElementsByTagName("option"), function(b) { b.selected && f.push(a.w.M(b)) }); a.m.eb(e, d, "selectedOptions", f) } function f() { var d = a.a.f(c()), e = b.scrollTop; d && "number" == typeof d.length && a.a.D(b.getElementsByTagName("option"), function(b) { var c = 0 <= a.a.A(d, a.w.M(b)); b.selected != c && a.a.Zc(b, c) }); b.scrollTop = e } if ("select" != a.a.R(b)) throw Error("selectedOptions binding applies only to SELECT elements"); var g; a.i.subscribe(b, a.i.H, function() { g ? e() : (a.a.B(b, "change", e), g = a.o(f, null, { l: b })) }, null, { notifyImmediately: !0 }) }, update: function() {} }; a.m.wa.selectedOptions = !0; a.c.style = { update: function(b, c) { var d = a.a.f(c() || {}); a.a.P(d, function(c, d) { d = a.a.f(d); if (null === d || d === n || !1 === d) d = ""; if (v) v(b).css(c, d); else if (/^--/.test(c)) b.style.setProperty(c, d); else { c = c.replace(/-(\w)/g, function(a, b) { return b.toUpperCase() }); var g = b.style[c]; b.style[c] = d; d === g || b.style[c] != g || isNaN(d) || (b.style[c] = d + "px") } }) } }; a.c.submit = { init: function(b, c, d, e, f) { if ("function" != typeof c()) throw Error("The value for a submit binding must be a function"); a.a.B(b, "submit", function(a) { var d, e = c(); try { d = e.call(f.$data, b) } finally { !0 !== d && (a.preventDefault ? a.preventDefault() : a.returnValue = !1) } }) } }; a.c.text = { init: function() { return { controlsDescendantBindings: !0 } }, update: function(b, c) { a.a.Bb(b, c()) } }; a.h.ea.text = !0; (function() { if (A && A.navigator) { var b = function(a) { if (a) return parseFloat(a[1]) }, c = A.navigator.userAgent, d, e, f, g, h; (d = A.opera && A.opera.version && parseInt(A.opera.version())) || (h = b(c.match(/Edge\/([^ ]+)$/))) || b(c.match(/Chrome\/([^ ]+)/)) || (e = b(c.match(/Version\/([^ ]+) Safari/))) || (f = b(c.match(/Firefox\/([^ ]+)/))) || (g = a.a.W || b(c.match(/MSIE ([^ ]+)/))) || (g = b(c.match(/rv:([^ )]+)/))) } if (8 <= g && 10 > g) var m = a.a.g.Z(), k = a.a.g.Z(), l = function(b) { var c = this.activeElement; (c = c && a.a.g.get(c, k)) && c(b) }, p = function(b, c) { var d = b.ownerDocument; a.a.g.get(d, m) || (a.a.g.set(d, m, !0), a.a.B(d, "selectionchange", l)); a.a.g.set(b, k, c) }; a.c.textInput = { init: function(b, c, k) { function l(c, d) { a.a.B(b, c, d) } function m() { var d = a.a.f(c()); if (null === d || d === n) d = ""; L !== n && d === L ? a.a.setTimeout(m, 4) : b.value !== d && (y = !0, b.value = d, y = !1, v = b.value) } function r() { w || (L = b.value, w = a.a.setTimeout(z, 4)) } function z() { clearTimeout(w); L = w = n; var d = b.value; v !== d && (v = d, a.m.eb(c(), k, "textInput", d)) } var v = b.value, w, L, A = 9 == a.a.W ? r : z, y = !1; g && l("keypress", z); 11 > g && l("propertychange", function(a) { y || "value" !== a.propertyName || A(a) }); 8 == g && (l("keyup", z), l("keydown", z)); p && (p(b, A), l("dragend", r)); (!g || 9 <= g) && l("input", A); 5 > e && "textarea" === a.a.R(b) ? (l("keydown", r), l("paste", r), l("cut", r)) : 11 > d ? l("keydown", r) : 4 > f ? (l("DOMAutoComplete", z), l("dragdrop", z), l("drop", z)) : h && "number" === b.type && l("keydown", r); l("change", z); l("blur", z); a.o(m, null, { l: b }) } }; a.m.wa.textInput = !0; a.c.textinput = { preprocess: function(a, b, c) { c("textInput", a) } } })(); a.c.uniqueName = { init: function(b, c) { if (c()) { var d = "ko_unique_" + ++a.c.uniqueName.rd; a.a.Yc(b, d) } } }; a.c.uniqueName.rd = 0; a.c.using = { init: function(b, c, d, e, f) { var g; d.has("as") && (g = { as: d.get("as"), noChildContext: d.get("noChildContext") }); c = f.createChildContext(c, g); a.Oa(c, b); return { controlsDescendantBindings: !0 } } }; a.h.ea.using = !0; a.c.value = { init: function(b, c, d) { var e = a.a.R(b), f = "input" == e; if (!f || "checkbox" != b.type && "radio" != b.type) { var g = [], h = d.get("valueUpdate"), m = !1, k = null; h && ("string" == typeof h ? g = [h] : g = a.a.wc(h), a.a.Pa(g, "change")); var l = function() { k = null; m = !1; var e = c(), f = a.w.M(b); a.m.eb(e, d, "value", f) }; !a.a.W || !f || "text" != b.type || "off" == b.autocomplete || b.form && "off" == b.form.autocomplete || -1 != a.a.A(g, "propertychange") || (a.a.B(b, "propertychange", function() { m = !0 }), a.a.B(b, "focus", function() { m = !1 }), a.a.B(b, "blur", function() { m && l() })); a.a.D(g, function(c) { var d = l; a.a.Ud(c, "after") && (d = function() { k = a.w.M(b); a.a.setTimeout(l, 0) }, c = c.substring(5)); a.a.B(b, c, d) }); var p; p = f && "file" == b.type ? function() { var d = a.a.f(c()); null === d || d === n || "" === d ? b.value = "" : a.u.G(l) } : function() { var f = a.a.f(c()), g = a.w.M(b); if (null !== k && f === k) a.a.setTimeout(p, 0); else if (f !== g || g === n) "select" === e ? (g = d.get("valueAllowUnset"), a.w.cb(b, f, g), g || f === a.w.M(b) || a.u.G(l)) : a.w.cb(b, f) }; if ("select" === e) { var q; a.i.subscribe(b, a.i.H, function() { q ? d.get("valueAllowUnset") ? p() : l() : (a.a.B(b, "change", l), q = a.o(p, null, { l: b })) }, null, { notifyImmediately: !0 }) } else a.a.B(b, "change", l), a.o(p, null, { l: b }) } else a.ib(b, { checkedValue: c }) }, update: function() {} }; a.m.wa.value = !0; a.c.visible = { update: function(b, c) { var d = a.a.f(c()), e = "none" != b.style.display; d && !e ? b.style.display = "" : !d && e && (b.style.display = "none") } }; a.c.hidden = { update: function(b, c) { a.c.visible.update(b, function() { return !a.a.f(c()) }) } }; (function(b) { a.c[b] = { init: function(c, d, e, f, g) { return a.c.event.init.call(this, c, function() { var a = {}; a[b] = d(); return a }, e, f, g) } } })("click"); a.ca = function() {}; a.ca.prototype.renderTemplateSource = function() { throw Error("Override renderTemplateSource"); }; a.ca.prototype.createJavaScriptEvaluatorBlock = function() { throw Error("Override createJavaScriptEvaluatorBlock"); }; a.ca.prototype.makeTemplateSource = function(b, c) { if ("string" == typeof b) { c = c || w; var d = c.getElementById(b); if (!d) throw Error("Cannot find template with ID " + b); return new a.C.F(d) } if (1 == b.nodeType || 8 == b.nodeType) return new a.C.ia(b); throw Error("Unknown template type: " + b); }; a.ca.prototype.renderTemplate = function(a, c, d, e) { a = this.makeTemplateSource(a, e); return this.renderTemplateSource(a, c, d, e) }; a.ca.prototype.isTemplateRewritten = function(a, c) { return !1 === this.allowTemplateRewriting ? !0 : this.makeTemplateSource(a, c).data("isRewritten") }; a.ca.prototype.rewriteTemplate = function(a, c, d) { a = this.makeTemplateSource(a, d); c = c(a.text()); a.text(c); a.data("isRewritten", !0) }; a.b("templateEngine", a.ca); a.kc = function() { function b(b, c, d, h) { b = a.m.ac(b); for (var m = a.m.Ra, k = 0; k < b.length; k++) { var l = b[k].key; if (Object.prototype.hasOwnProperty.call(m, l)) { var p = m[l]; if ("function" === typeof p) { if (l = p(b[k].value)) throw Error(l); } else if (!p) throw Error("This template engine does not support the '" + l + "' binding within its templates"); } } d = "ko.__tr_ambtns(function($context,$element){return(function(){return{ " + a.m.vb(b, { valueAccessors: !0 }) + " } })()},'" + d.toLowerCase() + "')"; return h.createJavaScriptEvaluatorBlock(d) + c } var c = /(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'|[^>]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi, d = /\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g; return { xd: function(b, c, d) { c.isTemplateRewritten(b, d) || c.rewriteTemplate(b, function(b) { return a.kc.Ld(b, c) }, d) }, Ld: function(a, f) { return a.replace(c, function(a, c, d, e, l) { return b(l, c, d, f) }).replace(d, function(a, c) { return b(c, "\x3c!-- ko --\x3e", "#comment", f) }) }, md: function(b, c) { return a.aa.Xb(function(d, h) { var m = d.nextSibling; m && m.nodeName.toLowerCase() === c && a.ib(m, b, h) }) } } }(); a.b("__tr_ambtns", a.kc.md); (function() { a.C = {}; a.C.F = function(b) { if (this.F = b) { var c = a.a.R(b); this.ab = "script" === c ? 1 : "textarea" === c ? 2 : "template" == c && b.content && 11 === b.content.nodeType ? 3 : 4 } }; a.C.F.prototype.text = function() { var b = 1 === this.ab ? "text" : 2 === this.ab ? "value" : "innerHTML"; if (0 == arguments.length) return this.F[b]; var c = arguments[0]; "innerHTML" === b ? a.a.fc(this.F, c) : this.F[b] = c }; var b = a.a.g.Z() + "_"; a.C.F.prototype.data = function(c) { if (1 === arguments.length) return a.a.g.get(this.F, b + c); a.a.g.set(this.F, b + c, arguments[1]) }; var c = a.a.g.Z(); a.C.F.prototype.nodes = function() { var b = this.F; if (0 == arguments.length) { var e = a.a.g.get(b, c) || {}, f = e.lb || (3 === this.ab ? b.content : 4 === this.ab ? b : n); if (!f || e.jd) { var g = this.text(); g && g !== e.bb && (f = a.a.Md(g, b.ownerDocument), a.a.g.set(b, c, { lb: f, bb: g, jd: !0 })) } return f } e = arguments[0]; this.ab !== n && this.text(""); a.a.g.set(b, c, { lb: e }) }; a.C.ia = function(a) { this.F = a }; a.C.ia.prototype = new a.C.F; a.C.ia.prototype.constructor = a.C.ia; a.C.ia.prototype.text = function() { if (0 == arguments.length) { var b = a.a.g.get(this.F, c) || {}; b.bb === n && b.lb && (b.bb = b.lb.innerHTML); return b.bb } a.a.g.set(this.F, c, { bb: arguments[0] }) }; a.b("templateSources", a.C); a.b("templateSources.domElement", a.C.F); a.b("templateSources.anonymousTemplate", a.C.ia) })(); (function() { function b(b, c, d) { var e; for (c = a.h.nextSibling(c); b && (e = b) !== c;) b = a.h.nextSibling(e), d(e, b) } function c(c, d) { if (c.length) { var e = c[0], f = c[c.length - 1], g = e.parentNode, h = a.ga.instance, m = h.preprocessNode; if (m) { b(e, f, function(a, b) { var c = a.previousSibling, d = m.call(h, a); d && (a === e && (e = d[0] || b), a === f && (f = d[d.length - 1] || c)) }); c.length = 0; if (!e) return; e === f ? c.push(e) : (c.push(e, f), a.a.Ua(c, g)) } b(e, f, function(b) { 1 !== b.nodeType && 8 !== b.nodeType || a.vc(d, b) }); b(e, f, function(b) { 1 !== b.nodeType && 8 !== b.nodeType || a.aa.cd(b, [d]) }); a.a.Ua(c, g) } } function d(a) { return a.nodeType ? a : 0 < a.length ? a[0] : null } function e(b, e, f, h, m) { m = m || {}; var n = (b && d(b) || f || {}).ownerDocument, B = m.templateEngine || g; a.kc.xd(f, B, n); f = B.renderTemplate(f, h, m, n); if ("number" != typeof f.length || 0 < f.length && "number" != typeof f[0].nodeType) throw Error("Template engine must return an array of DOM nodes"); n = !1; switch (e) { case "replaceChildren": a.h.va(b, f); n = !0; break; case "replaceNode": a.a.Xc(b, f); n = !0; break; case "ignoreTargetNode": break; default: throw Error("Unknown renderMode: " + e); } n && (c(f, h), m.afterRender && a.u.G(m.afterRender, null, [f, h[m.as || "$data"]]), "replaceChildren" == e && a.i.ma(b, a.i.H)); return f } function f(b, c, d) { return a.O(b) ? b() : "function" === typeof b ? b(c, d) : b } var g; a.gc = function(b) { if (b != n && !(b instanceof a.ca)) throw Error("templateEngine must inherit from ko.templateEngine"); g = b }; a.dc = function(b, c, h, m, t) { h = h || {}; if ((h.templateEngine || g) == n) throw Error("Set a template engine before calling renderTemplate"); t = t || "replaceChildren"; if (m) { var x = d(m); return a.$(function() { var g = c && c instanceof a.fa ? c : new a.fa(c, null, null, null, { exportDependencies: !0 }), n = f(b, g.$data, g), g = e(m, t, n, g, h); "replaceNode" == t && (m = g, x = d(m)) }, null, { Sa: function() { return !x || !a.a.Sb(x) }, l: x && "replaceNode" == t ? x.parentNode : x }) } return a.aa.Xb(function(d) { a.dc(b, c, h, d, "replaceNode") }) }; a.Qd = function(b, d, g, h, m) { function x(b, c) { a.u.G(a.a.ec, null, [h, b, u, g, r, c]); a.i.ma(h, a.i.H) } function r(a, b) { c(b, v); g.afterRender && g.afterRender(b, a); v = null } function u(a, c) { v = m.createChildContext(a, { as: z, noChildContext: g.noChildContext, extend: function(a) { a.$index = c; z && (a[z + "Index"] = c) } }); var d = f(b, a, v); return e(h, "ignoreTargetNode", d, v, g) } var v, z = g.as, w = !1 === g.includeDestroyed || a.options.foreachHidesDestroyed && !g.includeDestroyed; if (w || g.beforeRemove || !a.Pc(d)) return a.$(function() { var b = a.a.f(d) || []; "undefined" == typeof b.length && (b = [b]); w && (b = a.a.jb(b, function(b) { return b === n || null === b || !a.a.f(b._destroy) })); x(b) }, null, { l: h }); x(d.v()); var A = d.subscribe(function(a) { x(d(), a) }, null, "arrayChange"); A.l(h); return A }; var h = a.a.g.Z(), m = a.a.g.Z(); a.c.template = { init: function(b, c) { var d = a.a.f(c()); if ("string" == typeof d || "name" in d) a.h.Ea(b); else if ("nodes" in d) { d = d.nodes || []; if (a.O(d)) throw Error('The "nodes" option must be a plain, non-observable array.'); var e = d[0] && d[0].parentNode; e && a.a.g.get(e, m) || (e = a.a.Yb(d), a.a.g.set(e, m, !0)); (new a.C.ia(b)).nodes(e) } else if (d = a.h.childNodes(b), 0 < d.length) e = a.a.Yb(d), (new a.C.ia(b)).nodes(e); else throw Error("Anonymous template defined, but no template content was provided"); return { controlsDescendantBindings: !0 } }, update: function(b, c, d, e, f) { var g = c(); c = a.a.f(g); d = !0; e = null; "string" == typeof c ? c = {} : (g = "name" in c ? c.name : b, "if" in c && (d = a.a.f(c["if"])), d && "ifnot" in c && (d = !a.a.f(c.ifnot)), d && !g && (d = !1)); "foreach" in c ? e = a.Qd(g, d && c.foreach || [], c, b, f) : d ? (d = f, "data" in c && (d = f.createChildContext(c.data, { as: c.as, noChildContext: c.noChildContext, exportDependencies: !0 })), e = a.dc(g, d, c, b)) : a.h.Ea(b); f = e; (c = a.a.g.get(b, h)) && "function" == typeof c.s && c.s(); a.a.g.set(b, h, !f || f.ja && !f.ja() ? n : f) } }; a.m.Ra.template = function(b) { b = a.m.ac(b); return 1 == b.length && b[0].unknown || a.m.Id(b, "name") ? null : "This template engine does not support anonymous templates nested within its templates" }; a.h.ea.template = !0 })(); a.b("setTemplateEngine", a.gc); a.b("renderTemplate", a.dc); a.a.Kc = function(a, c, d) { if (a.length && c.length) { var e, f, g, h, m; for (e = f = 0; (!d || e < d) && (h = a[f]); ++f) { for (g = 0; m = c[g]; ++g) if (h.value === m.value) { h.moved = m.index; m.moved = h.index; c.splice(g, 1); e = g = 0; break } e += g } } }; a.a.Pb = function() { function b(b, d, e, f, g) { var h = Math.min, m = Math.max, k = [], l, p = b.length, q, n = d.length, r = n - p || 1, v = p + n + 1, u, w, z; for (l = 0; l <= p; l++) for (w = u, k.push(u = []), z = h(n, l + r), q = m(0, l - 1); q <= z; q++) u[q] = q ? l ? b[l - 1] === d[q - 1] ? w[q - 1] : h(w[q] || v, u[q - 1] || v) + 1 : q + 1 : l + 1; h = []; m = []; r = []; l = p; for (q = n; l || q;) n = k[l][q] - 1, q && n === k[l][q - 1] ? m.push(h[h.length] = { status: e, value: d[--q], index: q }) : l && n === k[l - 1][q] ? r.push(h[h.length] = { status: f, value: b[--l], index: l }) : (--q, --l, g.sparse || h.push({ status: "retained", value: d[q] })); a.a.Kc(r, m, !g.dontLimitMoves && 10 * p); return h.reverse() } return function(a, d, e) { e = "boolean" === typeof e ? { dontLimitMoves: e } : e || {}; a = a || []; d = d || []; return a.length < d.length ? b(a, d, "added", "deleted", e) : b(d, a, "deleted", "added", e) } }(); a.b("utils.compareArrays", a.a.Pb); (function() { function b(b, c, d, h, m) { var k = [], l = a.$(function() { var l = c(d, m, a.a.Ua(k, b)) || []; 0 < k.length && (a.a.Xc(k, l), h && a.u.G(h, null, [d, l, m])); k.length = 0; a.a.Nb(k, l) }, null, { l: b, Sa: function() { return !a.a.kd(k) } }); return { Y: k, $: l.ja() ? l : n } } var c = a.a.g.Z(), d = a.a.g.Z(); a.a.ec = function(e, f, g, h, m, k) { function l(b) { y = { Aa: b, pb: a.ta(w++) }; v.push(y); r || F.push(y) } function p(b) { y = t[b]; w !== y.pb.v() && D.push(y); y.pb(w++); a.a.Ua(y.Y, e); v.push(y) } function q(b, c) { if (b) for (var d = 0, e = c.length; d < e; d++) a.a.D(c[d].Y, function(a) { b(a, d, c[d].Aa) }) } f = f || []; "undefined" == typeof f.length && (f = [f]); h = h || {}; var t = a.a.g.get(e, c), r = !t, v = [], u = 0, w = 0, z = [], A = [], C = [], D = [], F = [], y, I = 0; if (r) a.a.D(f, l); else { if (!k || t && t._countWaitingForRemove) { var E = a.a.Mb(t, function(a) { return a.Aa }); k = a.a.Pb(E, f, { dontLimitMoves: h.dontLimitMoves, sparse: !0 }) } for (var E = 0, G, H, K; G = k[E]; E++) switch (H = G.moved, K = G.index, G.status) { case "deleted": for (; u < K;) p(u++); H === n && (y = t[u], y.$ && (y.$.s(), y.$ = n), a.a.Ua(y.Y, e).length && (h.beforeRemove && (v.push(y), I++, y.Aa === d ? y = null : C.push(y)), y && z.push.apply(z, y.Y))); u++; break; case "added": for (; w < K;) p(u++); H !== n ? (A.push(v.length), p(H)) : l(G.value) } for (; w < f.length;) p(u++); v._countWaitingForRemove = I } a.a.g.set(e, c, v); q(h.beforeMove, D); a.a.D(z, h.beforeRemove ? a.oa : a.removeNode); var M, O, P; try { P = e.ownerDocument.activeElement } catch (N) {} if (A.length) for (; (E = A.shift()) != n;) { y = v[E]; for (M = n; E;) if ((O = v[--E].Y) && O.length) { M = O[O.length - 1]; break } for (f = 0; u = y.Y[f]; M = u, f++) a.h.Wb(e, u, M) } for (E = 0; y = v[E]; E++) { y.Y || a.a.extend(y, b(e, g, y.Aa, m, y.pb)); for (f = 0; u = y.Y[f]; M = u, f++) a.h.Wb(e, u, M); !y.Ed && m && (m(y.Aa, y.Y, y.pb), y.Ed = !0, M = y.Y[y.Y.length - 1]) } P && e.ownerDocument.activeElement != P && P.focus(); q(h.beforeRemove, C); for (E = 0; E < C.length; ++E) C[E].Aa = d; q(h.afterMove, D); q(h.afterAdd, F) } })(); a.b("utils.setDomNodeChildrenFromArrayMapping", a.a.ec); a.ba = function() { this.allowTemplateRewriting = !1 }; a.ba.prototype = new a.ca; a.ba.prototype.constructor = a.ba; a.ba.prototype.renderTemplateSource = function(b, c, d, e) { if (c = (9 > a.a.W ? 0 : b.nodes) ? b.nodes() : null) return a.a.la(c.cloneNode(!0).childNodes); b = b.text(); return a.a.ua(b, e) }; a.ba.Ma = new a.ba; a.gc(a.ba.Ma); a.b("nativeTemplateEngine", a.ba); (function() { a.$a = function() { var a = this.Hd = function() { if (!v || !v.tmpl) return 0; try { if (0 <= v.tmpl.tag.tmpl.open.toString().indexOf("__")) return 2 } catch (a) {} return 1 }(); this.renderTemplateSource = function(b, e, f, g) { g = g || w; f = f || {}; if (2 > a) throw Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later."); var h = b.data("precompiled"); h || (h = b.text() || "", h = v.template(null, "{{ko_with $item.koBindingContext}}" + h + "{{/ko_with}}"), b.data("precompiled", h)); b = [e.$data]; e = v.extend({ koBindingContext: e }, f.templateOptions); e = v.tmpl(h, b, e); e.appendTo(g.createElement("div")); v.fragments = {}; return e }; this.createJavaScriptEvaluatorBlock = function(a) { return "{{ko_code ((function() { return " + a + " })()) }}" }; this.addTemplate = function(a, b) { w.write("