https://id.engl.co.uk/id.engl.co.uk/b2c_1a_englweb/oauth2/v2.0/aut…=ID_NET10_0&x-client-ver=8.22.0.0
1<!DOCTYPE html> 2<!-- Build: 1.1.795.0 --> 3<!-- StateVersion: 2.1.1 --> 4<!-- DeploymentMode: Production --> 5<!-- CorrelationId: 1a3ec32f-1d0a-4367-ad6d-16b93553c595 --> 6<!-- DataCenter: AM3 --> 7<!-- Slice: 001-000 --> 8<html lang="en-US"><head><link rel="icon" href="data:;base64,iVBORw0KGgo=">
8<script data-container="true" nonce="cj4UYjqXC2rPgHGh8O1GTA==">var CP = {"list":[{"id":"ForgotPasswordExchange","description":"Forgot your password?"}]}; 9var SA_FIELDS = {"AttributeFields":[{"UX_INPUT_TYPE":"TextBox","USER_INPUT_TYPE":"TextBox","IS_TEXT":true,"IS_EMAIL":false,"IS_PASSWORD":false,"IS_DATE":false,"IS_RADIO":false,"IS_DROP":false,"IS_TEXT_IN_PARAGRAPH":false,"IS_CHECK_MULTI":false,"IS_LINK":false,"VERIFY":false,"DN":"Email address","ID":"signInName","U_HELP":"","DAY_PRE":"0","MONTH_PRE":"0","YEAR_PRE":"0","IS_REQ":true,"IS_RDO":false,"OPTIONS":[]},{"UX_INPUT_TYPE":"Password","USER_INPUT_TYPE":"Password","IS_TEXT":false,"IS_EMAIL":false,"IS_PASSWORD":true,"IS_DATE":false,"IS_RADIO":false,"IS_DROP":false,"IS_TEXT_IN_PARAGRAPH":false,"IS_CHECK_MULTI":false,"IS_LINK":false,"VERIFY":false,"DN":"Password","ID":"password","U_HELP":"Enter password","DAY_PRE":"0","MONTH_PRE":"0","YEAR_PRE":"0","IS_REQ":true,"IS_RDO":false,"OPTIONS":[]}]}; 10 11 12var CONTENT = {"remember_me":"Keep me signed in","invalid_generic":"Please enter a valid {0}","createaccount_one_link":"Sign up now","forgotpassword_link":"Forgot your password?","createaccount_three_links":"Sign up with {0}, {1}, or {2}","requiredField_generic":"Please enter your {0}","local_intro_generic":"Sign in with your {0}","unknown_error":"We are having trouble signing you in. Please try again later.","requiredField_password":"Please enter your password","divider_title":"OR","createaccount_intro":"Don't have an account?","social_intro":"Sign in with your social account","button_signin":"Sign in","heading":"Sign in","createaccount_two_links":"Sign up with {0} or {1}"}; 13 14var SETTINGS = {"remoteResource":"https://englsoftware.blob.core.windows.net/website/bootstrap/custom-ui.html","retryLimit":3,"trimSpacesInPassword":true,"api":"CombinedSigninAndSignup","csrf":"R3hQdGp4aHBZN0s2RzZkTFlEdlhDQVVha1J5WmhoMGFIV1UxVWtlT3lVay84WnRhcVlhK3RaTTE1M3Z4MHpoQzJKWkNxZW93NWtjZ3hzYy9XWk1ldlE9PTsyMDI2LTA5LTI2VDA4OjAwOjU4Ljc4NjM4MjNaO3E0SmtLQkxudnV3ZzJ3OUtWaXJKd0E9PTt7Ik9yY2hlc3RyYXRpb25TdGVwIjoxfQ==","transId":"StateProperties=eyJUSUQiOiIxYTNlYzMyZi0xZDBhLTQzNjctYWQ2ZC0xNmI5MzU1M2M1OTUifQ","pageViewId":"fc8b7ddd-933b-44f8-b697-29658712f7ce","suppressElementCss":false,"isPageViewIdSentWithHeader":false,"allowAutoFocusOnPasswordField":true,"pageMode":1,"config":{"showSignupLink":"True","sendHintOnSignup":"False","includePasswordRequirements":"true","enableRememberMe":"True","forgotPasswordLinkLocation":"AfterInput","forgotPasswordLinkOverride":"ForgotPasswordExchange","operatingMode":"Email","announceVerCompleteMsg":"True"},"hosts":{"tenant":"/id.engl.co.uk/B2C_1A_ENGLWeb","policy":"B2C_1A_ENGLWeb","static":"https://id.engl.co.uk/static/"},"locale":{"lang":"en","country":"US"},"tenantBranding":{"Locale":"0","backgroundColor":""},"xhrSettings":{"retryEnabled":true,"retryMaxAttempts":3,"retryDelay":200,"retryExponent":2,"retryOn":["error","timeout"]}}; 15 16</script>
16<script nonce="cj4UYjqXC2rPgHGh8O1GTA==">window.staticHost="https://id.engl.co.uk/static";window.targetSlice="001-000";window.targetDc="AM3";window.initializationTimeout=30000;window.diagsAlways=true;window.maxTrace=1000</script>
vendor: 16,451 bytes, lines 16-21
16<script id="element" data-script="element" nonce="cj4UYjqXC2rPgHGh8O1GTA==">/* inject:qrcodejs.qrcode.js */ 17/* endinject */ 18 19/* inject:jquery-3.4.1.min.js */ 20/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ 21!function (e, t) { "use strict"; "object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e, !0) : function (e) { if (!e.document) throw new Error("jQuery requires a window with a document"); return t(e) } : t(e) }("undefined" != typeof window ? window : this, function (C, e) { "use strict"; var t = [], E = C.document, r = Object.getPrototypeOf, s = t.slice, g = t.concat, u = t.push, i = t.indexOf, n = {}, o = n.toString, v = n.hasOwnProperty, a = v.toString, l = a.call(Object), y = {}, m = function (e) { return "function" == typeof e && "number" != typeof e.nodeType }, x = function (e) { return null != e && e === e.window }, c = { type: !0, src: !0, nonce: !0, noModule: !0 }; function b(e, t, n) { var r, i, o = (n = n || E).createElement("script"); if (o.text = e, t) for (r in c) (i = t[r] || t.getAttribute && t.getAttribute(r)) && o.setAttribute(r, i); n.head.appendChild(o).parentNode.removeChild(o) } function w(e) { return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? n[o.call(e)] || "object" : typeof e } var f = "3.4.1", k = function (e, t) { return new k.fn.init(e, t) }, p = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; function d(e) { var t = !!e && "length" in e && e.length, n = w(e); return !m(e) && !x(e) && ("array" === n || 0 === t || "number" == typeof t && 0 < t && t - 1 in e) } k.fn = k.prototype = { jquery: f, constructor: k, length: 0, toArray: function () { return s.call(this) }, get: function (e) { return null == e ? s.call(this) : e < 0 ? this[e + this.length] : this[e] }, pushStack: function (e) { var t = k.merge(this.constructor(), e); return t.prevObject = this, t }, each: function (e) { return k.each(this, e) }, map: function (n) { return this.pushStack(k.map(this, function (e, t) { return n.call(e, t, e) })) }, slice: function () { return this.pushStack(s.apply(this, arguments)) }, first: function () { return this.eq(0) }, last: function () { return this.eq(-1) }, eq: function (e) { var t = this.length, n = +e + (e < 0 ? t : 0); return this.pushStack(0 <= n && n < t ? [this[n]] : []) }, end: function () { return this.prevObject || this.constructor() }, push: u, sort: t.sort, splice: t.splice }, k.extend = k.fn.extend = function () { var e, t, n, r, i, o, a = arguments[0] || {}, s = 1, u = arguments.length, l = !1; for ("boolean" == typeof a && (l = a, a = arguments[s] || {}, s++), "object" == typeof a || m(a) || (a = {}), s === u && (a = this, s--); s < u; s++)if (null != (e = arguments[s])) for (t in e) r = e[t], "__proto__" !== t && a !== r && (l && r && (k.isPlainObject(r) || (i = Array.isArray(r))) ? (n = a[t], o = i && !Array.isArray(n) ? [] : i || k.isPlainObject(n) ? n : {}, i = !1, a[t] = k.extend(l, o, r)) : void 0 !== r && (a[t] = r)); return a }, k.extend({ expando: "jQuery" + (f + Math.random()).replace(/\D/g, ""), isReady: !0, error: function (e) { throw new Error(e) }, noop: function () { }, isPlainObject: function (e) { var t, n; return !(!e || "[object Object]" !== o.call(e)) && (!(t = r(e)) || "function" == typeof (n = v.call(t, "constructor") && t.constructor) && a.call(n) === l) }, isEmptyObject: function (e) { var t; for (t in e) return !1; return !0 }, globalEval: function (e, t) { b(e, { nonce: t && t.nonce }) }, each: function (e, t) { var n, r = 0; if (d(e)) { for (n = e.length; r < n; r++)if (!1 === t.call(e[r], r, e[r])) break } else for (r in e) if (!1 === t.call(e[r], r, e[r])) break; return e }, trim: function (e) { return null == e ? "" : (e + "").replace(p, "") }, makeArray: function (e, t) { var n = t || []; return null != e && (d(Object(e)) ? k.merge(n, "string" == typeof e ? [e] : e) : u.call(n, e)), n }, inArray: function (e, t, n) { return null == t ? -1 : i.call(t, e, n) }, merge: function (e, t) { for (var n = +t.length, r = 0, i = e.length; r < n; r++)e[i++] = t[r]; return e.length = i, e }, grep: function (e, t, n) { for (var r = [], i = 0, o = e.length, a = !n; i < o; i++)!t(e[i], i) !== a && r.push(e[i]); return r }, map: function (e, t, n) { var r, i, o = 0, a = []; if (d(e)) for (r = e.length; o < r; o++)null != (i = t(e[o], o, n)) && a.push(i); else for (o in e) null != (i = t(e[o], o, n)) && a.push(i); return g.apply([], a) }, guid: 1, support: y }), "function" == typeof Symbol && (k.fn[Symbol.iterator] = t[Symbol.iterator]), k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (e, t) { n["[object " + t + "]"] = t.toLowerCase() }); var h = function (n) { var e, d, b, o, i, h, f, g, w, u, l, T, C, a, E, v, s, c, y, k = "sizzle" + 1 * new Date, m = n.document, S = 0, r = 0, p = ue(), x = ue(), N = ue(), A = ue(), D = function (e, t) { return e === t && (l = !0), 0 }, j = {}.hasOwnProperty, t = [], q = t.pop, L = t.push, H = t.push, O = t.slice, P = function (e, t) { for (var n = 0, r = e.length; n < r; n++)if (e[n] === t) return n; return -1 }, R = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", M = "[\\x20\\t\\r\\n\\f]", I = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", W = "\\[" + M + "*(" + I + ")(?:" + M + "*([*^$|!~]?=)" + M + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + I + "))|)" + M + "*\\]", $ = ":(" + I + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + W + ")*)|.*)\\)|)", F = new RegExp(M + "+", "g"), B = new RegExp("^" + M + "+|((?:^|[^\\\\])(?:\\\\.)*)" + M + "+$", "g"), _ = new RegExp("^" + M + "*," + M + "*"), z = new RegExp("^" + M + "*([>+~]|" + M + ")" + M + "*"), U = new RegExp(M + "|>"), X = new RegExp($), V = new RegExp("^" + I + "$"), G = { ID: new RegExp("^#(" + I + ")"), CLASS: new RegExp("^\\.(" + I + ")"), TAG: new RegExp("^(" + I + "|[*])"), ATTR: new RegExp("^" + W), PSEUDO: new RegExp("^" + $), CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + M + "*(even|odd|(([+-]|)(\\d*)n|)" + M + "*(?:([+-]|)" + M + "*(\\d+)|))" + M + "*\\)|)", "i"), bool: new RegExp("^(?:" + R + ")$", "i"), needsContext: new RegExp("^" + M + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + M + "*((?:-\\d)?\\d*)" + M + "*\\)|)(?=[^-]|$)", "i") }, Y = /HTML$/i, Q = /^(?:input|select|textarea|button)$/i, J = /^h\d$/i, K = /^[^{]+\{\s*\[native \w/, Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, ee = /[+~]/, te = new RegExp("\\\\([\\da-f]{1,6}" + M + "?|(" + M + ")|.)", "ig"), ne = function (e, t, n) { var r = "0x" + t - 65536; return r != r || n ? t : r < 0 ? String.fromCharCode(r + 65536) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320) }, re = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, ie = function (e, t) { return t ? "\0" === e ? "\ufffd" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e }, oe = function () { T() }, ae = be(function (e) { return !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase() }, { dir: "parentNode", next: "legend" }); try { H.apply(t = O.call(m.childNodes), m.childNodes), t[m.childNodes.length].nodeType } catch (e) { H = { apply: t.length ? function (e, t) { L.apply(e, O.call(t)) } : function (e, t) { var n = e.length, r = 0; while (e[n++] = t[r++]); e.length = n - 1 } } } function se(t, e, n, r) { var i, o, a, s, u, l, c, f = e && e.ownerDocument, p = e ? e.nodeType : 9; if (n = n || [], "string" != typeof t || !t || 1 !== p && 9 !== p && 11 !== p) return n; if (!r && ((e ? e.ownerDocument || e : m) !== C && T(e), e = e || C, E)) { if (11 !== p && (u = Z.exec(t))) if (i = u[1]) { if (9 === p) { if (!(a = e.getElementById(i))) return n; if (a.id === i) return n.push(a), n } else if (f && (a = f.getElementById(i)) && y(e, a) && a.id === i) return n.push(a), n } else { if (u[2]) return H.apply(n, e.getElementsByTagName(t)), n; if ((i = u[3]) && d.getElementsByClassName && e.getElementsByClassName) return H.apply(n, e.getElementsByClassName(i)), n } if (d.qsa && !A[t + " "] && (!v || !v.test(t)) && (1 !== p || "object" !== e.nodeName.toLowerCase())) { if (c = t, f = e, 1 === p && U.test(t)) { (s = e.getAttribute("id")) ? s = s.replace(re, ie) : e.setAttribute("id", s = k), o = (l = h(t)).length; while (o--) l[o] = "#" + s + " " + xe(l[o]); c = l.join(","), f = ee.test(t) && ye(e.parentNode) || e } try { return H.apply(n, f.querySelectorAll(c)), n } catch (e) { A(t, !0) } finally { s === k && e.removeAttribute("id") } } } return g(t.replace(B, "$1"), e, n, r) } function ue() { var r = []; return function e(t, n) { return r.push(t + " ") > b.cacheLength && delete e[r.shift()], e[t + " "] = n } } function le(e) { return e[k] = !0, e } function ce(e) { var t = C.createElement("fieldset"); try { return !!e(t) } catch (e) { return !1 } finally { t.parentNode && t.parentNode.removeChild(t), t = null } } function fe(e, t) { var n = e.split("|"), r = n.length; while (r--) b.attrHandle[n[r]] = t } function pe(e, t) { var n = t && e, r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex; if (r) return r; if (n) while (n = n.nextSibling) if (n === t) return -1; return e ? 1 : -1 } function de(t) { return function (e) { return "input" === e.nodeName.toLowerCase() && e.type === t } } function he(n) { return function (e) { var t = e.nodeName.toLowerCase(); return ("input" === t || "button" === t) && e.type === n } } function ge(t) { return function (e) { return "form" in e ? e.parentNode && !1 === e.disabled ? "label" in e ? "label" in e.parentNode ? e.parentNode.disabled === t : e.disabled === t : e.isDisabled === t || e.isDisabled !== !t && ae(e) === t : e.disabled === t : "label" in e && e.disabled === t } } function ve(a) { return le(function (o) { return o = +o, le(function (e, t) { var n, r = a([], e.length, o), i = r.length; while (i--) e[n = r[i]] && (e[n] = !(t[n] = e[n])) }) }) } function ye(e) { return e && "undefined" != typeof e.getElementsByTagName && e } for (e in d = se.support = {}, i = se.isXML = function (e) { var t = e.namespaceURI, n = (e.ownerDocument || e).documentElement; return !Y.test(t || n && n.nodeName || "HTML") }, T = se.setDocument = function (e) { var t, n, r = e ? e.ownerDocument || e : m; return r !== C && 9 === r.nodeType && r.documentElement && (a = (C = r).documentElement, E = !i(C), m !== C && (n = C.defaultView) && n.top !== n && (n.addEventListener ? n.addEventListener("unload", oe, !1) : n.attachEvent && n.attachEvent("onunload", oe)), d.attributes = ce(function (e) { return e.className = "i", !e.getAttribute("className") }), d.getElementsByTagName = ce(function (e) { return e.appendChild(C.createComment("")), !e.getElementsByTagName("*").length }), d.getElementsByClassName = K.test(C.getElementsByClassName), d.getById = ce(function (e) { return a.appendChild(e).id = k, !C.getElementsByName || !C.getElementsByName(k).length }), d.getById ? (b.filter.ID = function (e) { var t = e.replace(te, ne); return function (e) { return e.getAttribute("id") === t } }, b.find.ID = function (e, t) { if ("undefined" != typeof t.getElementById && E) { var n = t.getElementById(e); return n ? [n] : [] } }) : (b.filter.ID = function (e) { var n = e.replace(te, ne); return function (e) { var t = "undefined" != typeof e.getAttributeNode && e.getAttributeNode("id"); return t && t.value === n } }, b.find.ID = function (e, t) { if ("undefined" != typeof t.getElementById && E) { var n, r, i, o = t.getElementById(e); if (o) { if ((n = o.getAttributeNode("id")) && n.value === e) return [o]; i = t.getElementsByName(e), r = 0; while (o = i[r++]) if ((n = o.getAttributeNode("id")) && n.value === e) return [o] } return [] } }), b.find.TAG = d.getElementsByTagName ? function (e, t) { return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e) : d.qsa ? t.querySelectorAll(e) : void 0 } : function (e, t) { var n, r = [], i = 0, o = t.getElementsByTagName(e); if ("*" === e) { while (n = o[i++]) 1 === n.nodeType && r.push(n); return r } return o }, b.find.CLASS = d.getElementsByClassName && function (e, t) { if ("undefined" != typeof t.getElementsByClassName && E) return t.getElementsByClassName(e) }, s = [], v = [], (d.qsa = K.test(C.querySelectorAll)) && (ce(function (e) { a.appendChild(e).innerHTML = "<a id='" + k + "'></a><select id='" + k + "-\r\\' msallowcapture=''><option selected=''></option></select>", e.querySelectorAll("[msallowcapture^='']").length && v.push("[*^$]=" + M + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || v.push("\\[" + M + "*(?:value|" + R + ")"), e.querySelectorAll("[id~=" + k + "-]").length || v.push("~="), e.querySelectorAll(":checked").length || v.push(":checked"), e.querySelectorAll("a#" + k + "+*").length || v.push(".#.+[+~]") }), ce(function (e) { e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>"; var t = C.createElement("input"); t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && v.push("name" + M + "*[*^$|!~]?="), 2 !== e.querySelectorAll(":enabled").length && v.push(":enabled", ":disabled"), a.appendChild(e).disabled = !0, 2 !== e.querySelectorAll(":disabled").length && v.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), v.push(",.*:") })), (d.matchesSelector = K.test(c = a.matches || a.webkitMatchesSelector || a.mozMatchesSelector || a.oMatchesSelector || a.msMatchesSelector)) && ce(function (e) { d.disconnectedMatch = c.call(e, "*"), c.call(e, "[s!='']:x"), s.push("!=", $) }), v = v.length && new RegExp(v.join("|")), s = s.length && new RegExp(s.join("|")), t = K.test(a.compareDocumentPosition), y = t || K.test(a.contains) ? function (e, t) { var n = 9 === e.nodeType ? e.documentElement : e, r = t && t.parentNode; return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r))) } : function (e, t) { if (t) while (t = t.parentNode) if (t === e) return !0; return !1 }, D = t ? function (e, t) { if (e === t) return l = !0, 0; var n = !e.compareDocumentPosition - !t.compareDocumentPosition; return n || (1 & (n = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !d.sortDetached && t.compareDocumentPosition(e) === n ? e === C || e.ownerDocument === m && y(m, e) ? -1 : t === C || t.ownerDocument === m && y(m, t) ? 1 : u ? P(u, e) - P(u, t) : 0 : 4 & n ? -1 : 1) } : function (e, t) { if (e === t) return l = !0, 0; var n, r = 0, i = e.parentNode, o = t.parentNode, a = [e], s = [t]; if (!i || !o) return e === C ? -1 : t === C ? 1 : i ? -1 : o ? 1 : u ? P(u, e) - P(u, t) : 0; if (i === o) return pe(e, t); n = e; while (n = n.parentNode) a.unshift(n); n = t; while (n = n.parentNode) s.unshift(n); while (a[r] === s[r]) r++; return r ? pe(a[r], s[r]) : a[r] === m ? -1 : s[r] === m ? 1 : 0 }), C }, se.matches = function (e, t) { return se(e, null, null, t) }, se.matchesSelector = function (e, t) { if ((e.ownerDocument || e) !== C && T(e), d.matchesSelector && E && !A[t + " "] && (!s || !s.test(t)) && (!v || !v.test(t))) try { var n = c.call(e, t); if (n || d.disconnectedMatch || e.document && 11 !== e.document.nodeType) return n } catch (e) { A(t, !0) } return 0 < se(t, C, null, [e]).length }, se.contains = function (e, t) { return (e.ownerDocument || e) !== C && T(e), y(e, t) }, se.attr = function (e, t) { (e.ownerDocument || e) !== C && T(e); var n = b.attrHandle[t.toLowerCase()], r = n && j.call(b.attrHandle, t.toLowerCase()) ? n(e, t, !E) : void 0; return void 0 !== r ? r : d.attributes || !E ? e.getAttribute(t) : (r = e.getAttributeNode(t)) && r.specified ? r.value : null }, se.escape = function (e) { return (e + "").replace(re, ie) }, se.error = function (e) { throw new Error("Syntax error, unrecognized expression: " + e) }, se.uniqueSort = function (e) { var t, n = [], r = 0, i = 0; if (l = !d.detectDuplicates, u = !d.sortStable && e.slice(0), e.sort(D), l) { while (t = e[i++]) t === e[i] && (r = n.push(i)); while (r--) e.splice(n[r], 1) } return u = null, e }, o = se.getText = function (e) { var t, n = "", r = 0, i = e.nodeType; if (i) { if (1 === i || 9 === i || 11 === i) { if ("string" == typeof e.textContent) return e.textContent; for (e = e.firstChild; e; e = e.nextSibling)n += o(e) }
vendor: 9,884 bytes, line 21
21 else if (3 === i || 4 === i) return e.nodeValue } else while (t = e[r++]) n += o(t); return n }, (b = se.selectors = { cacheLength: 50, createPseudo: le, match: G, attrHandle: {}, find: {}, relative: { ">": { dir: "parentNode", first: !0 }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: !0 }, "~": { dir: "previousSibling" } }, preFilter: { ATTR: function (e) { return e[1] = e[1].replace(te, ne), e[3] = (e[3] || e[4] || e[5] || "").replace(te, ne), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4) }, CHILD: function (e) { return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || se.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && se.error(e[0]), e }, PSEUDO: function (e) { var t, n = !e[6] && e[2]; return G.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && X.test(n) && (t = h(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3)) } }, filter: { TAG: function (e) { var t = e.replace(te, ne).toLowerCase(); return "*" === e ? function () { return !0 } : function (e) { return e.nodeName && e.nodeName.toLowerCase() === t } }, CLASS: function (e) { var t = p[e + " "]; return t || (t = new RegExp("(^|" + M + ")" + e + "(" + M + "|$)")) && p(e, function (e) { return t.test("string" == typeof e.className && e.className || "undefined" != typeof e.getAttribute && e.getAttribute("class") || "") }) }, ATTR: function (n, r, i) { return function (e) { var t = se.attr(e, n); return null == t ? "!=" === r : !r || (t += "", "=" === r ? t === i : "!=" === r ? t !== i : "^=" === r ? i && 0 === t.indexOf(i) : "*=" === r ? i && -1 < t.indexOf(i) : "$=" === r ? i && t.slice(-i.length) === i : "~=" === r ? -1 < (" " + t.replace(F, " ") + " ").indexOf(i) : "|=" === r && (t === i || t.slice(0, i.length + 1) === i + "-")) } }, CHILD: function (h, e, t, g, v) { var y = "nth" !== h.slice(0, 3), m = "last" !== h.slice(-4), x = "of-type" === e; return 1 === g && 0 === v ? function (e) { return !!e.parentNode } : function (e, t, n) { var r, i, o, a, s, u, l = y !== m ? "nextSibling" : "previousSibling", c = e.parentNode, f = x && e.nodeName.toLowerCase(), p = !n && !x, d = !1; if (c) { if (y) { while (l) { a = e; while (a = a[l]) if (x ? a.nodeName.toLowerCase() === f : 1 === a.nodeType) return !1; u = l = "only" === h && !u && "nextSibling" } return !0 } if (u = [m ? c.firstChild : c.lastChild], m && p) { d = (s = (r = (i = (o = (a = c)[k] || (a[k] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] || [])[0] === S && r[1]) && r[2], a = s && c.childNodes[s]; while (a = ++s && a && a[l] || (d = s = 0) || u.pop()) if (1 === a.nodeType && ++d && a === e) { i[h] = [S, s, d]; break } } else if (p && (d = s = (r = (i = (o = (a = e)[k] || (a[k] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] || [])[0] === S && r[1]), !1 === d) while (a = ++s && a && a[l] || (d = s = 0) || u.pop()) if ((x ? a.nodeName.toLowerCase() === f : 1 === a.nodeType) && ++d && (p && ((i = (o = a[k] || (a[k] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] = [S, d]), a === e)) break; return (d -= v) === g || d % g == 0 && 0 <= d / g } } }, PSEUDO: function (e, o) { var t, a = b.pseudos[e] || b.setFilters[e.toLowerCase()] || se.error("unsupported pseudo: " + e); return a[k] ? a(o) : 1 < a.length ? (t = [e, e, "", o], b.setFilters.hasOwnProperty(e.toLowerCase()) ? le(function (e, t) { var n, r = a(e, o), i = r.length; while (i--) e[n = P(e, r[i])] = !(t[n] = r[i]) }) : function (e) { return a(e, 0, t) }) : a } }, pseudos: { not: le(function (e) { var r = [], i = [], s = f(e.replace(B, "$1")); return s[k] ? le(function (e, t, n, r) { var i, o = s(e, null, r, []), a = e.length; while (a--) (i = o[a]) && (e[a] = !(t[a] = i)) }) : function (e, t, n) { return r[0] = e, s(r, null, n, i), r[0] = null, !i.pop() } }), has: le(function (t) { return function (e) { return 0 < se(t, e).length } }), contains: le(function (t) { return t = t.replace(te, ne), function (e) { return -1 < (e.textContent || o(e)).indexOf(t) } }), lang: le(function (n) { return V.test(n || "") || se.error("unsupported lang: " + n), n = n.replace(te, ne).toLowerCase(), function (e) { var t; do { if (t = E ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang")) return (t = t.toLowerCase()) === n || 0 === t.indexOf(n + "-") } while ((e = e.parentNode) && 1 === e.nodeType); return !1 } }), target: function (e) { var t = n.location && n.location.hash; return t && t.slice(1) === e.id }, root: function (e) { return e === a }, focus: function (e) { return e === C.activeElement && (!C.hasFocus || C.hasFocus()) && !!(e.type || e.href || ~e.tabIndex) }, enabled: ge(!1), disabled: ge(!0), checked: function (e) { var t = e.nodeName.toLowerCase(); return "input" === t && !!e.checked || "option" === t && !!e.selected }, selected: function (e) { return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected }, empty: function (e) { for (e = e.firstChild; e; e = e.nextSibling)if (e.nodeType < 6) return !1; return !0 }, parent: function (e) { return !b.pseudos.empty(e) }, header: function (e) { return J.test(e.nodeName) }, input: function (e) { return Q.test(e.nodeName) }, button: function (e) { var t = e.nodeName.toLowerCase(); return "input" === t && "button" === e.type || "button" === t }, text: function (e) { var t; return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase()) }, first: ve(function () { return [0] }), last: ve(function (e, t) { return [t - 1] }), eq: ve(function (e, t, n) { return [n < 0 ? n + t : n] }), even: ve(function (e, t) { for (var n = 0; n < t; n += 2)e.push(n); return e }), odd: ve(function (e, t) { for (var n = 1; n < t; n += 2)e.push(n); return e }), lt: ve(function (e, t, n) { for (var r = n < 0 ? n + t : t < n ? t : n; 0 <= --r;)e.push(r); return e }), gt: ve(function (e, t, n) { for (var r = n < 0 ? n + t : n; ++r < t;)e.push(r); return e }) } }).pseudos.nth = b.pseudos.eq, { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) b.pseudos[e] = de(e); for (e in { submit: !0, reset: !0 }) b.pseudos[e] = he(e); function me() { } function xe(e) { for (var t = 0, n = e.length, r = ""; t < n; t++)r += e[t].value; return r } function be(s, e, t) { var u = e.dir, l = e.next, c = l || u, f = t && "parentNode" === c, p = r++; return e.first ? function (e, t, n) { while (e = e[u]) if (1 === e.nodeType || f) return s(e, t, n); return !1 } : function (e, t, n) { var r, i, o, a = [S, p]; if (n) { while (e = e[u]) if ((1 === e.nodeType || f) && s(e, t, n)) return !0 } else while (e = e[u]) if (1 === e.nodeType || f) if (i = (o = e[k] || (e[k] = {}))[e.uniqueID] || (o[e.uniqueID] = {}), l && l === e.nodeName.toLowerCase()) e = e[u] || e; else { if ((r = i[c]) && r[0] === S && r[1] === p) return a[2] = r[2]; if ((i[c] = a)[2] = s(e, t, n)) return !0 } return !1 } } function we(i) { return 1 < i.length ? function (e, t, n) { var r = i.length; while (r--) if (!i[r](e, t, n)) return !1; return !0 } : i[0] } function Te(e, t, n, r, i) { for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++)(o = e[s]) && (n && !n(o, r, i) || (a.push(o), l && t.push(s))); return a } function Ce(d, h, g, v, y, e) { return v && !v[k] && (v = Ce(v)), y && !y[k] && (y = Ce(y, e)), le(function (e, t, n, r) { var i, o, a, s = [], u = [], l = t.length, c = e || function (e, t, n) { for (var r = 0, i = t.length; r < i; r++)se(e, t[r], n); return n }(h || "*", n.nodeType ? [n] : n, []), f = !d || !e && h ? c : Te(c, s, d, n, r), p = g ? y || (e ? d : l || v) ? [] : t : f; if (g && g(f, p, n, r), v) { i = Te(p, u), v(i, [], n, r), o = i.length; while (o--) (a = i[o]) && (p[u[o]] = !(f[u[o]] = a)) } if (e) { if (y || d) { if (y) { i = [], o = p.length; while (o--) (a = p[o]) && i.push(f[o] = a); y(null, p = [], i, r) } o = p.length; while (o--) (a = p[o]) && -1 < (i = y ? P(e, a) : s[o]) && (e[i] = !(t[i] = a)) } } else p = Te(p === t ? p.splice(l, p.length) : p), y ? y(null, t, p, r) : H.apply(t, p) }) } function Ee(e) { for (var i, t, n, r = e.length, o = b.relative[e[0].type], a = o || b.relative[" "], s = o ? 1 : 0, u = be(function (e) { return e === i }, a, !0), l = be(function (e) { return -1 < P(i, e) }, a, !0), c = [function (e, t, n) { var r = !o && (n || t !== w) || ((i = t).nodeType ? u(e, t, n) : l(e, t, n)); return i = null, r }]; s < r; s++)if (t = b.relative[e[s].type]) c = [be(we(c), t)]; else { if ((t = b.filter[e[s].type].apply(null, e[s].matches))[k]) { for (n = ++s; n < r; n++)if (b.relative[e[n].type]) break; return Ce(1 < s && we(c), 1 < s && xe(e.slice(0, s - 1).concat({ value: " " === e[s - 2].type ? "*" : "" })).replace(B, "$1"), t, s < n && Ee(e.slice(s, n)), n < r && Ee(e = e.slice(n)), n < r && xe(e)) } c.push(t) } return we(c) } return me.prototype = b.filters = b.pseudos, b.setFilters = new me, h = se.tokenize = function (e, t) { var n, r, i, o, a, s, u, l = x[e + " "]; if (l) return t ? 0 : l.slice(0); a = e, s = [], u = b.preFilter; while (a) { for (o in n && !(r = _.exec(a)) || (r && (a = a.slice(r[0].length) || a), s.push(i = [])), n = !1, (r = z.exec(a)) && (n = r.shift(), i.push({ value: n, type: r[0].replace(B, " ") }), a = a.slice(n.length)), b.filter) !(r = G[o].exec(a)) || u[o] && !(r = u[o](r)) || (n = r.shift(), i.push({ value: n, type: o, matches: r }), a = a.slice(n.length)); if (!n) break } return t ? a.length : a ? se.error(e) : x(e, s).slice(0) }, f = se.compile = function (e, t) { var n, v, y, m, x, r, i = [], o = [], a = N[e + " "]; if (!a) { t || (t = h(e)), n = t.length; while (n--) (a = Ee(t[n]))[k] ? i.push(a) : o.push(a); (a = N(e, (v = o, m = 0 < (y = i).length, x = 0 < v.length, r = function (e, t, n, r, i) { var o, a, s, u = 0, l = "0", c = e && [], f = [], p
vendor: 9,885 bytes, line 21
21= w, d = e || x && b.find.TAG("*", i), h = S += null == p ? 1 : Math.random() || .1, g = d.length; for (i && (w = t === C || t || i); l !== g && null != (o = d[l]); l++) { if (x && o) { a = 0, t || o.ownerDocument === C || (T(o), n = !E); while (s = v[a++]) if (s(o, t || C, n)) { r.push(o); break } i && (S = h) } m && ((o = !s && o) && u-- , e && c.push(o)) } if (u += l, m && l !== u) { a = 0; while (s = y[a++]) s(c, f, t, n); if (e) { if (0 < u) while (l--) c[l] || f[l] || (f[l] = q.call(r)); f = Te(f) } H.apply(r, f), i && !e && 0 < f.length && 1 < u + y.length && se.uniqueSort(r) } return i && (S = h, w = p), c }, m ? le(r) : r))).selector = e } return a }, g = se.select = function (e, t, n, r) { var i, o, a, s, u, l = "function" == typeof e && e, c = !r && h(e = l.selector || e); if (n = n || [], 1 === c.length) { if (2 < (o = c[0] = c[0].slice(0)).length && "ID" === (a = o[0]).type && 9 === t.nodeType && E && b.relative[o[1].type]) { if (!(t = (b.find.ID(a.matches[0].replace(te, ne), t) || [])[0])) return n; l && (t = t.parentNode), e = e.slice(o.shift().value.length) } i = G.needsContext.test(e) ? 0 : o.length; while (i--) { if (a = o[i], b.relative[s = a.type]) break; if ((u = b.find[s]) && (r = u(a.matches[0].replace(te, ne), ee.test(o[0].type) && ye(t.parentNode) || t))) { if (o.splice(i, 1), !(e = r.length && xe(o))) return H.apply(n, r), n; break } } } return (l || f(e, c))(r, t, !E, n, !t || ee.test(e) && ye(t.parentNode) || t), n }, d.sortStable = k.split("").sort(D).join("") === k, d.detectDuplicates = !!l, T(), d.sortDetached = ce(function (e) { return 1 & e.compareDocumentPosition(C.createElement("fieldset")) }), ce(function (e) { return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href") }) || fe("type|href|height|width", function (e, t, n) { if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2) }), d.attributes && ce(function (e) { return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value") }) || fe("value", function (e, t, n) { if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue }), ce(function (e) { return null == e.getAttribute("disabled") }) || fe(R, function (e, t, n) { var r; if (!n) return !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null }), se }(C); k.find = h, k.expr = h.selectors, k.expr[":"] = k.expr.pseudos, k.uniqueSort = k.unique = h.uniqueSort, k.text = h.getText, k.isXMLDoc = h.isXML, k.contains = h.contains, k.escapeSelector = h.escape; var T = function (e, t, n) { var r = [], i = void 0 !== n; while ((e = e[t]) && 9 !== e.nodeType) if (1 === e.nodeType) { if (i && k(e).is(n)) break; r.push(e) } return r }, S = function (e, t) { for (var n = []; e; e = e.nextSibling)1 === e.nodeType && e !== t && n.push(e); return n }, N = k.expr.match.needsContext; function A(e, t) { return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase() } var D = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; function j(e, n, r) { return m(n) ? k.grep(e, function (e, t) { return !!n.call(e, t, e) !== r }) : n.nodeType ? k.grep(e, function (e) { return e === n !== r }) : "string" != typeof n ? k.grep(e, function (e) { return -1 < i.call(n, e) !== r }) : k.filter(n, e, r) } k.filter = function (e, t, n) { var r = t[0]; return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? k.find.matchesSelector(r, e) ? [r] : [] : k.find.matches(e, k.grep(t, function (e) { return 1 === e.nodeType })) }, k.fn.extend({ find: function (e) { var t, n, r = this.length, i = this; if ("string" != typeof e) return this.pushStack(k(e).filter(function () { for (t = 0; t < r; t++)if (k.contains(i[t], this)) return !0 })); for (n = this.pushStack([]), t = 0; t < r; t++)k.find(e, i[t], n); return 1 < r ? k.uniqueSort(n) : n }, filter: function (e) { return this.pushStack(j(this, e || [], !1)) }, not: function (e) { return this.pushStack(j(this, e || [], !0)) }, is: function (e) { return !!j(this, "string" == typeof e && N.test(e) ? k(e) : e || [], !1).length } }); var q, L = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/; (k.fn.init = function (e, t, n) { var r, i; if (!e) return this; if (n = n || q, "string" == typeof e) { if (!(r = "<" === e[0] && ">" === e[e.length - 1] && 3 <= e.length ? [null, e, null] : L.exec(e)) || !r[1] && t) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e); if (r[1]) { if (t = t instanceof k ? t[0] : t, k.merge(this, k.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : E, !0)), D.test(r[1]) && k.isPlainObject(t)) for (r in t) m(this[r]) ? this[r](t[r]) : this.attr(r, t[r]); return this } return (i = E.getElementById(r[2])) && (this[0] = i, this.length = 1), this } return e.nodeType ? (this[0] = e, this.length = 1, this) : m(e) ? void 0 !== n.ready ? n.ready(e) : e(k) : k.makeArray(e, this) }).prototype = k.fn, q = k(E); var H = /^(?:parents|prev(?:Until|All))/, O = { children: !0, contents: !0, next: !0, prev: !0 }; function P(e, t) { while ((e = e[t]) && 1 !== e.nodeType); return e } k.fn.extend({ has: function (e) { var t = k(e, this), n = t.length; return this.filter(function () { for (var e = 0; e < n; e++)if (k.contains(this, t[e])) return !0 }) }, closest: function (e, t) { var n, r = 0, i = this.length, o = [], a = "string" != typeof e && k(e); if (!N.test(e)) for (; r < i; r++)for (n = this[r]; n && n !== t; n = n.parentNode)if (n.nodeType < 11 && (a ? -1 < a.index(n) : 1 === n.nodeType && k.find.matchesSelector(n, e))) { o.push(n); break } return this.pushStack(1 < o.length ? k.uniqueSort(o) : o) }, index: function (e) { return e ? "string" == typeof e ? i.call(k(e), this[0]) : i.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 }, add: function (e, t) { return this.pushStack(k.uniqueSort(k.merge(this.get(), k(e, t)))) }, addBack: function (e) { return this.add(null == e ? this.prevObject : this.prevObject.filter(e)) } }), k.each({ parent: function (e) { var t = e.parentNode; return t && 11 !== t.nodeType ? t : null }, parents: function (e) { return T(e, "parentNode") }, parentsUntil: function (e, t, n) { return T(e, "parentNode", n) }, next: function (e) { return P(e, "nextSibling") }, prev: function (e) { return P(e, "previousSibling") }, nextAll: function (e) { return T(e, "nextSibling") }, prevAll: function (e) { return T(e, "previousSibling") }, nextUntil: function (e, t, n) { return T(e, "nextSibling", n) }, prevUntil: function (e, t, n) { return T(e, "previousSibling", n) }, siblings: function (e) { return S((e.parentNode || {}).firstChild, e) }, children: function (e) { return S(e.firstChild) }, contents: function (e) { return "undefined" != typeof e.contentDocument ? e.contentDocument : (A(e, "template") && (e = e.content || e), k.merge([], e.childNodes)) } }, function (r, i) { k.fn[r] = function (e, t) { var n = k.map(this, i, e); return "Until" !== r.slice(-5) && (t = e), t && "string" == typeof t && (n = k.filter(t, n)), 1 < this.length && (O[r] || k.uniqueSort(n), H.test(r) && n.reverse()), this.pushStack(n) } }); var R = /[^\x20\t\r\n\f]+/g; function M(e) { return e } function I(e) { throw e } function W(e, t, n, r) { var i; try { e && m(i = e.promise) ? i.call(e).done(t).fail(n) : e && m(i = e.then) ? i.call(e, t, n) : t.apply(void 0, [e].slice(r)) } catch (e) { n.apply(void 0, [e]) } } k.Callbacks = function (r) { var e, n; r = "string" == typeof r ? (e = r, n = {}, k.each(e.match(R) || [], function (e, t) { n[t] = !0 }), n) : k.extend({}, r); var i, t, o, a, s = [], u = [], l = -1, c = function () { for (a = a || r.once, o = i = !0; u.length; l = -1) { t = u.shift(); while (++l < s.length) !1 === s[l].apply(t[0], t[1]) && r.stopOnFalse && (l = s.length, t = !1) } r.memory || (t = !1), i = !1, a && (s = t ? [] : "") }, f = { add: function () { return s && (t && !i && (l = s.length - 1, u.push(t)), function n(e) { k.each(e, function (e, t) { m(t) ? r.unique && f.has(t) || s.push(t) : t && t.length && "string" !== w(t) && n(t) }) }(arguments), t && !i && c()), this }, remove: function () { return k.each(arguments, function (e, t) { var n; while (-1 < (n = k.inArray(t, s, n))) s.splice(n, 1), n <= l && l-- }), this }, has: function (e) { return e ? -1 < k.inArray(e, s) : 0 < s.length }, empty: function () { return s && (s = []), this }, disable: function () { return a = u = [], s = t = "", this }, disabled: function () { return !s }, lock: function () { return a = u = [], t || i || (s = t = ""), this }, locked: function () { return !!a }, fireWith: function (e, t) { return a || (t = [e, (t = t || []).slice ? t.slice() : t], u.push(t), i || c()), this }, fire: function () { return f.fireWith(this, arguments), this }, fired: function () { return !!o } }; return f }, k.extend({ Deferred: function (e) { var o = [["notify", "progress", k.Callbacks("memory"), k.Callbacks("memory"), 2], ["resolve", "done", k.Callbacks("once memory"), k.Callbacks("once memory"), 0, "resolved"], ["reject", "fail", k.Callbacks("once memory"), k.Callbacks("once memory"), 1, "rejected"]], i = "pending", a = { state: function () { return i }, always: function () { return s.done(arguments).fail(arguments), this }, "catch": function (e) { return a.then(null, e) }, pipe: function () { var i = arguments; return k.Deferred(function (r) { k.each(o, function (e, t) { var n = m(i[t[4]]) && i[t[4]]; s[t[1]](function () { var e = n && n.apply(this, arguments); e && m(e.promise) ? e.promise().progress(r.notify).done(r.resolve).fail(r.reject) : r[t[0] + "With"](this, n ? [e] : arguments) }) }), i = null }).promise() }, then: function (t, n, r) { var u = 0; function l(i, o, a, s) { return function () { var n = this, r = arguments, e = function () { var e, t; if (!(i < u)) { if ((e = a.apply(n, r)) === o.promise()) throw new TypeError("Thenable self
21-resolution"); t = e && ("object" == typeof e || "function" == typeof e) && e.then, m(t) ? s ? t.call(e, l(u, o, M, s), l(u, o, I, s)) : (u++ , t.call(e, l(u, o, M, s), l(u, o, I, s), l(u, o, M, o.notifyWith))) : (a !== M && (n = void 0, r = [e]), (s || o.resolveWith)(n, r)) } }, t = s ? e : function () { try { e() } catch (e) { k.Deferred.exceptionHook && k.Deferred.exceptionHook(e, t.stackTrace), u <= i + 1 && (a !== I && (n = void 0, r = [e]), o.rejectWith(n, r)) } }; i ? t() : (k.Deferred.getStackHook && (t.stackTrace = k.Deferred.getStackHook()), C.setTimeout(t)) } } return k.Deferred(function (e) { o[0][3].add(l(0, e, m(r) ? r : M, e.notifyWith)), o[1][3].add(l(0, e, m(t) ? t : M)), o[2][3].add(l(0, e, m(n) ? n : I)) }).promise() }, promise: function (e) { return null != e ? k.extend(e, a) : a } }, s = {}; return k.each(o, function (e, t) { var n = t[2], r = t[5]; a[t[1]] = n.add, r && n.add(function () { i = r }, o[3 - e][2].disable, o[3 - e][3].disable, o[0][2].lock, o[0][3].lock), n.add(t[3].fire), s[t[0]] = function () { return s[t[0] + "With"](this === s ? void 0 : this, arguments), this }, s[t[0] + "With"] = n.fireWith }), a.promise(s), e && e.call(s, s), s }, when: function (e) { var n = arguments.length, t = n, r = Array(t), i = s.call(arguments), o = k.Deferred(), a = function (t) { return function (e) { r[t] = this, i[t] = 1 < arguments.length ? s.call(arguments) : e, --n || o.resolveWith(r, i) } }; if (n <= 1 && (W(e, o.done(a(t)).resolve, o.reject, !n), "pending" === o.state() || m(i[t] && i[t].then))) return o.then(); while (t--) W(i[t], a(t), o.reject); return o.promise() } }); var $ = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; k.Deferred.exceptionHook = function (e, t) { C.console && C.console.warn && e && $.test(e.name) && C.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t) }, k.readyException = function (e) { C.setTimeout(function () { throw e }) }; var F = k.Deferred(); function B() { E.removeEventListener("DOMContentLoaded", B), C.removeEventListener("load", B), k.ready() } k.fn.ready = function (e) { return F.then(e)["catch"](function (e) { k.readyException(e) }), this }, k.extend({ isReady: !1, readyWait: 1, ready: function (e) { (!0 === e ? --k.readyWait : k.isReady) || (k.isReady = !0) !== e && 0 < --k.readyWait || F.resolveWith(E, [k]) } }), k.ready.then = F.then, "complete" === E.readyState || "loading" !== E.readyState && !E.documentElement.doScroll ? C.setTimeout(k.ready) : (E.addEventListener("DOMContentLoaded", B), C.addEventListener("load", B)); var _ = function (e, t, n, r, i, o, a) { var s = 0, u = e.length, l = null == n; if ("object" === w(n)) for (s in i = !0, n) _(e, t, s, n[s], !0, o, a); else if (void 0 !== r && (i = !0, m(r) || (a = !0), l && (a ? (t.call(e, r), t = null) : (l = t, t = function (e, t, n) { return l.call(k(e), n) })), t)) for (; s < u; s++)t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n))); return i ? e : l ? t.call(e) : u ? t(e[0], n) : o }, z = /^-ms-/, U = /-([a-z])/g; function X(e, t) { return t.toUpperCase() } function V(e) { return e.replace(z, "ms-").replace(U, X) } var G = function (e) { return 1 === e.nodeType || 9 === e.nodeType || !+e.n
vendor: 3,404 bytes, line 21
21odeType }; function Y() { this.expando = k.expando + Y.uid++ } Y.uid = 1, Y.prototype = { cache: function (e) { var t = e[this.expando]; return t || (t = {}, G(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, { value: t, configurable: !0 }))), t }, set: function (e, t, n) { var r, i = this.cache(e); if ("string" == typeof t) i[V(t)] = n; else for (r in t) i[V(r)] = t[r]; return i }, get: function (e, t) { return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][V(t)] }, access: function (e, t, n) { return void 0 === t || t && "string" == typeof t && void 0 === n ? this.get(e, t) : (this.set(e, t, n), void 0 !== n ? n : t) }, remove: function (e, t) { var n, r = e[this.expando]; if (void 0 !== r) { if (void 0 !== t) { n = (t = Array.isArray(t) ? t.map(V) : (t = V(t)) in r ? [t] : t.match(R) || []).length; while (n--) delete r[t[n]] } (void 0 === t || k.isEmptyObject(r)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando]) } }, hasData: function (e) { var t = e[this.expando]; return void 0 !== t && !k.isEmptyObject(t) } }; var Q = new Y, J = new Y, K = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, Z = /[A-Z]/g; function ee(e, t, n) { var r, i; if (void 0 === n && 1 === e.nodeType) if (r = "data-" + t.replace(Z, "-$&").toLowerCase(), "string" == typeof (n = e.getAttribute(r))) { try { n = "true" === (i = n) || "false" !== i && ("null" === i ? null : i === +i + "" ? +i : K.test(i) ? JSON.parse(i) : i) } catch (e) { } J.set(e, t, n) } else n = void 0; return n } k.extend({ hasData: function (e) { return J.hasData(e) || Q.hasData(e) }, data: function (e, t, n) { return J.access(e, t, n) }, removeData: function (e, t) { J.remove(e, t) }, _data: function (e, t, n) { return Q.access(e, t, n) }, _removeData: function (e, t) { Q.remove(e, t) } }), k.fn.extend({ data: function (n, e) { var t, r, i, o = this[0], a = o && o.attributes; if (void 0 === n) { if (this.length && (i = J.get(o), 1 === o.nodeType && !Q.get(o, "hasDataAttrs"))) { t = a.length; while (t--) a[t] && 0 === (r = a[t].name).indexOf("data-") && (r = V(r.slice(5)), ee(o, r, i[r])); Q.set(o, "hasDataAttrs", !0) } return i } return "object" == typeof n ? this.each(function () { J.set(this, n) }) : _(this, function (e) { var t; if (o && void 0 === e) return void 0 !== (t = J.get(o, n)) ? t : void 0 !== (t = ee(o, n)) ? t : void 0; this.each(function () { J.set(this, n, e) }) }, null, e, 1 < arguments.length, null, !0) }, removeData: function (e) { return this.each(function () { J.remove(this, e) }) } }), k.extend({ queue: function (e, t, n) { var r; if (e) return t = (t || "fx") + "queue", r = Q.get(e, t), n && (!r || Array.isArray(n) ? r = Q.access(e, t, k.makeArray(n)) : r.push(n)), r || [] }, dequeue: function (e, t) { t = t || "fx"; var n = k.queue(e, t), r = n.length, i = n.shift(), o = k._queueHooks(e, t); "inprogress" === i && (i = n.shift(), r--), i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call(e, function () { k.dequeue(e, t) }, o)), !r && o && o.empty.fire() }, _queueHooks: function (e, t) { var n = t + "queueHooks"; return Q.get(e, n) || Q.access(e, n, { empty: k.Callbacks("once memory").add(function () { Q.remove(e, [t + "queue", n]) }) }) } }), k.fn.extend({ queue: function (t, n) { var e = 2; return "string" != typeof t && (n = t, t = "fx", e--), arguments.length < e ? k.queue(this[0], t) : void 0 === n ? this
vendor: 11,441 bytes, line 21
21: this.each(function () { var e = k.queue(this, t, n); k._queueHooks(this, t), "fx" === t && "inprogress" !== e[0] && k.dequeue(this, t) }) }, dequeue: function (e) { return this.each(function () { k.dequeue(this, e) }) }, clearQueue: function (e) { return this.queue(e || "fx", []) }, promise: function (e, t) { var n, r = 1, i = k.Deferred(), o = this, a = this.length, s = function () { --r || i.resolveWith(o, [o]) }; "string" != typeof e && (t = e, e = void 0), e = e || "fx"; while (a--) (n = Q.get(o[a], e + "queueHooks")) && n.empty && (r++ , n.empty.add(s)); return s(), i.promise(t) } }); var te = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, ne = new RegExp("^(?:([+-])=|)(" + te + ")([a-z%]*)$", "i"), re = ["Top", "Right", "Bottom", "Left"], ie = E.documentElement, oe = function (e) { return k.contains(e.ownerDocument, e) }, ae = { composed: !0 }; ie.getRootNode && (oe = function (e) { return k.contains(e.ownerDocument, e) || e.getRootNode(ae) === e.ownerDocument }); var se = function (e, t) { return "none" === (e = t || e).style.display || "" === e.style.display && oe(e) && "none" === k.css(e, "display") }, ue = function (e, t, n, r) { var i, o, a = {}; for (o in t) a[o] = e.style[o], e.style[o] = t[o]; for (o in i = n.apply(e, r || []), t) e.style[o] = a[o]; return i }; function le(e, t, n, r) { var i, o, a = 20, s = r ? function () { return r.cur() } : function () { return k.css(e, t, "") }, u = s(), l = n && n[3] || (k.cssNumber[t] ? "" : "px"), c = e.nodeType && (k.cssNumber[t] || "px" !== l && +u) && ne.exec(k.css(e, t)); if (c && c[3] !== l) { u /= 2, l = l || c[3], c = +u || 1; while (a--) k.style(e, t, c + l), (1 - o) * (1 - (o = s() / u || .5)) <= 0 && (a = 0), c /= o; c *= 2, k.style(e, t, c + l), n = n || [] } return n && (c = +c || +u || 0, i = n[1] ? c + (n[1] + 1) * n[2] : +n[2], r && (r.unit = l, r.start = c, r.end = i)), i } var ce = {}; function fe(e, t) { for (var n, r, i, o, a, s, u, l = [], c = 0, f = e.length; c < f; c++)(r = e[c]).style && (n = r.style.display, t ? ("none" === n && (l[c] = Q.get(r, "display") || null, l[c] || (r.style.display = "")), "" === r.style.display && se(r) && (l[c] = (u = a = o = void 0, a = (i = r).ownerDocument, s = i.nodeName, (u = ce[s]) || (o = a.body.appendChild(a.createElement(s)), u = k.css(o, "display"), o.parentNode.removeChild(o), "none" === u && (u = "block"), ce[s] = u)))) : "none" !== n && (l[c] = "none", Q.set(r, "display", n))); for (c = 0; c < f; c++)null != l[c] && (e[c].style.display = l[c]); return e } k.fn.extend({ show: function () { return fe(this, !0) }, hide: function () { return fe(this) }, toggle: function (e) { return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function () { se(this) ? k(this).show() : k(this).hide() }) } }); var pe = /^(?:checkbox|radio)$/i, de = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i, he = /^$|^module$|\/(?:java|ecma)script/i, ge = { option: [1, "<select multiple='multiple'>", "</select>"], thead: [1, "<table>", "</table>"], col: [2, "<table><colgroup>", "</colgroup></table>"], tr: [2, "<table><tbody>", "</tbody></table>"], td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], _default: [0, "", ""] }; function ve(e, t) { var n; return n = "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t || "*") : "undefined" != typeof e.querySelectorAll ? e.querySelectorAll(t || "*") : [], void 0 === t || t && A(e, t) ? k.merge([e], n) : n } function ye(e, t) { for (var n = 0, r = e.length; n < r; n++)Q.set(e[n], "globalEval", !t || Q.get(t[n], "globalEval")) } ge.optgroup = ge.option, ge.tbody = ge.tfoot = ge.colgroup = ge.caption = ge.thead, ge.th = ge.td; var me, xe, be = /<|&#?\w+;/; function we(e, t, n, r, i) { for (var o, a, s, u, l, c, f = t.createDocumentFragment(), p = [], d = 0, h = e.length; d < h; d++)if ((o = e[d]) || 0 === o) if ("object" === w(o)) k.merge(p, o.nodeType ? [o] : o); else if (be.test(o)) { a = a || f.appendChild(t.createElement("div")), s = (de.exec(o) || ["", ""])[1].toLowerCase(), u = ge[s] || ge._default, a.innerHTML = u[1] + k.htmlPrefilter(o) + u[2], c = u[0]; while (c--) a = a.lastChild; k.merge(p, a.childNodes), (a = f.firstChild).textContent = "" } else p.push(t.createTextNode(o)); f.textContent = "", d = 0; while (o = p[d++]) if (r && -1 < k.inArray(o, r)) i && i.push(o); else if (l = oe(o), a = ve(f.appendChild(o), "script"), l && ye(a), n) { c = 0; while (o = a[c++]) he.test(o.type || "") && n.push(o) } return f } me = E.createDocumentFragment().appendChild(E.createElement("div")), (xe = E.createElement("input")).setAttribute("type", "radio"), xe.setAttribute("checked", "checked"), xe.setAttribute("name", "t"), me.appendChild(xe), y.checkClone = me.cloneNode(!0).cloneNode(!0).lastChild.checked, me.innerHTML = "<textarea>x</textarea>", y.noCloneChecked = !!me.cloneNode(!0).lastChild.defaultValue; var Te = /^key/, Ce = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, Ee = /^([^.]*)(?:\.(.+)|)/; function ke() { return !0 } function Se() { return !1 } function Ne(e, t) { return e === function () { try { return E.activeElement } catch (e) { } }() == ("focus" === t) } function Ae(e, t, n, r, i, o) { var a, s; if ("object" == typeof t) { for (s in "string" != typeof n && (r = r || n, n = void 0), t) Ae(e, s, n, r, t[s], o); return e } if (null == r && null == i ? (i = n, r = n = void 0) : null == i && ("string" == typeof n ? (i = r, r = void 0) : (i = r, r = n, n = void 0)), !1 === i) i = Se; else if (!i) return e; return 1 === o && (a = i, (i = function (e) { return k().off(e), a.apply(this, arguments) }).guid = a.guid || (a.guid = k.guid++)), e.each(function () { k.event.add(this, t, i, r, n) }) } function De(e, i, o) { o ? (Q.set(e, i, !1), k.event.add(e, i, { namespace: !1, handler: function (e) { var t, n, r = Q.get(this, i); if (1 & e.isTrigger && this[i]) { if (r.length) (k.event.special[i] || {}).delegateType && e.stopPropagation(); else if (r = s.call(arguments), Q.set(this, i, r), t = o(this, i), this[i](), r !== (n = Q.get(this, i)) || t ? Q.set(this, i, !1) : n = {}, r !== n) return e.stopImmediatePropagation(), e.preventDefault(), n.value } else r.length && (Q.set(this, i, { value: k.event.trigger(k.extend(r[0], k.Event.prototype), r.slice(1), this) }), e.stopImmediatePropagation()) } })) : void 0 === Q.get(e, i) && k.event.add(e, i, ke) } k.event = { global: {}, add: function (t, e, n, r, i) { var o, a, s, u, l, c, f, p, d, h, g, v = Q.get(t); if (v) { n.handler && (n = (o = n).handler, i = o.selector), i && k.find.matchesSelector(ie, i), n.guid || (n.guid = k.guid++), (u = v.events) || (u = v.events = {}), (a = v.handle) || (a = v.handle = function (e) { return "undefined" != typeof k && k.event.triggered !== e.type ? k.event.dispatch.apply(t, arguments) : void 0 }), l = (e = (e || "").match(R) || [""]).length; while (l--) d = g = (s = Ee.exec(e[l]) || [])[1], h = (s[2] || "").split(".").sort(), d && (f = k.event.special[d] || {}, d = (i ? f.delegateType : f.bindType) || d, f = k.event.special[d] || {}, c = k.extend({ type: d, origType: g, data: r, handler: n, guid: n.guid, selector: i, needsContext: i && k.expr.match.needsContext.test(i), namespace: h.join(".") }, o), (p = u[d]) || ((p = u[d] = []).delegateCount = 0, f.setup && !1 !== f.setup.call(t, r, h, a) || t.addEventListener && t.addEventListener(d, a)), f.add && (f.add.call(t, c), c.handler.guid || (c.handler.guid = n.guid)), i ? p.splice(p.delegateCount++, 0, c) : p.push(c), k.event.global[d] = !0) } }, remove: function (e, t, n, r, i) { var o, a, s, u, l, c, f, p, d, h, g, v = Q.hasData(e) && Q.get(e); if (v && (u = v.events)) { l = (t = (t || "").match(R) || [""]).length; while (l--) if (d = g = (s = Ee.exec(t[l]) || [])[1], h = (s[2] || "").split(".").sort(), d) { f = k.event.special[d] || {}, p = u[d = (r ? f.delegateType : f.bindType) || d] || [], s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), a = o = p.length; while (o--) c = p[o], !i && g !== c.origType || n && n.guid !== c.guid || s && !s.test(c.namespace) || r && r !== c.selector && ("**" !== r || !c.selector) || (p.splice(o, 1), c.selector && p.delegateCount-- , f.remove && f.remove.call(e, c)); a && !p.length && (f.teardown && !1 !== f.teardown.call(e, h, v.handle) || k.removeEvent(e, d, v.handle), delete u[d]) } else for (d in u) k.event.remove(e, d + t[l], n, r, !0); k.isEmptyObject(u) && Q.remove(e, "handle events") } }, dispatch: function (e) { var t, n, r, i, o, a, s = k.event.fix(e), u = new Array(arguments.length), l = (Q.get(this, "events") || {})[s.type] || [], c = k.event.special[s.type] || {}; for (u[0] = s, t = 1; t < arguments.length; t++)u[t] = arguments[t]; if (s.delegateTarget = this, !c.preDispatch || !1 !== c.preDispatch.call(this, s)) { a = k.event.handlers.call(this, s, l), t = 0; while ((i = a[t++]) && !s.isPropagationStopped()) { s.currentTarget = i.elem, n = 0; while ((o = i.handlers[n++]) && !s.isImmediatePropagationStopped()) s.rnamespace && !1 !== o.namespace && !s.rnamespace.test(o.namespace) || (s.handleObj = o, s.data = o.data, void 0 !== (r = ((k.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, u)) && !1 === (s.result = r) && (s.preventDefault(), s.stopPropagation())) } return c.postDispatch && c.postDispatch.call(this, s), s.result } }, handlers: function (e, t) { var n, r, i, o, a, s = [], u = t.delegateCount, l = e.target; if (u && l.nodeType && !("click" === e.type && 1 <= e.button)) for (; l !== this; l = l.parentNode || this)if (1 === l.nodeType && ("click" !== e.type || !0 !== l.disabled)) { for (o = [], a = {}, n = 0; n < u; n++)void 0 === a[i = (r = t[n]).selector + " "] && (a[i] = r.needsContext ? -1 < k(i, this).index(l) : k.find(i, this, null, [l]).length), a[i] && o.push(r); o.length && s.push({ elem: l, handlers: o }) } return l = this, u < t.length && s.push({ elem: l, handlers: t.slice(u) }), s }, addProp: function (t, e) { Object.defineProperty(k.Event.prototype, t, { enumerable: !0, configurable: !0, get: m(e) ? function () { if (this.originalEvent) return e(this.originalEvent) } : function () { if (this.originalEvent) return this.originalEvent[t] }, set: function (e) { Object.defineProperty(this, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) } }) }, fix: function (e) { return e[k.expando] ? e : new k.Event(e) }, special: { load: { noBubble: !0 }, click: { setup: function (e) { var t = this || e; return pe.test(t.type) && t.click && A(t, "input") && De(t, "click", ke), !1 }, trigger: function (e) { var t = this || e; return pe.test(t.type) && t.click && A(t, "input") && De(t, "click"), !0 }, _default: function (e) { var t = e.target; return pe.test(t.type) && t.click && A(t, "input") && Q.get(t, "click") || A(t, "a") } }, beforeunload: { postDispatch: function (e) { void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result) } } } }, k.removeEvent = function (e, t, n) { e.removeEventListener && e.removeEventListener(t, n) }, k.Event = function (e, t) { if (!(this instanceof k.Event)) return new k.Event(e, t); e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? ke : Se, this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target, this.currentTarget = e.currentTarget, this.relatedTarget = e.relatedTarget) : this.type = e, t && k.extend(this, t), this.timeStamp = e && e.t
vendor: 2,609 bytes, line 21
21imeStamp || Date.now(), this[k.expando] = !0 }, k.Event.prototype = { constructor: k.Event, isDefaultPrevented: Se, isPropagationStopped: Se, isImmediatePropagationStopped: Se, isSimulated: !1, preventDefault: function () { var e = this.originalEvent; this.isDefaultPrevented = ke, e && !this.isSimulated && e.preventDefault() }, stopPropagation: function () { var e = this.originalEvent; this.isPropagationStopped = ke, e && !this.isSimulated && e.stopPropagation() }, stopImmediatePropagation: function () { var e = this.originalEvent; this.isImmediatePropagationStopped = ke, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation() } }, k.each({ altKey: !0, bubbles: !0, cancelable: !0, changedTouches: !0, ctrlKey: !0, detail: !0, eventPhase: !0, metaKey: !0, pageX: !0, pageY: !0, shiftKey: !0, view: !0, "char": !0, code: !0, charCode: !0, key: !0, keyCode: !0, button: !0, buttons: !0, clientX: !0, clientY: !0, offsetX: !0, offsetY: !0, pointerId: !0, pointerType: !0, screenX: !0, screenY: !0, targetTouches: !0, toElement: !0, touches: !0, which: function (e) { var t = e.button; return null == e.which && Te.test(e.type) ? null != e.charCode ? e.charCode : e.keyCode : !e.which && void 0 !== t && Ce.test(e.type) ? 1 & t ? 1 : 2 & t ? 3 : 4 & t ? 2 : 0 : e.which } }, k.event.addProp), k.each({ focus: "focusin", blur: "focusout" }, function (e, t) { k.event.special[e] = { setup: function () { return De(this, e, Ne), !1 }, trigger: function () { return De(this, e), !0 }, delegateType: t } }), k.each({ mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, function (e, i) { k.event.special[e] = { delegateType: i, bindType: i, handle: function (e) { var t, n = e.relatedTarget, r = e.handleObj; return n && (n === this || k.contains(this, n)) || (e.type = r.origType, t = r.handler.apply(this, arguments), e.type = i), t } } }), k.fn.extend({ on: function (e, t, n, r) { return Ae(this, e, t, n, r) }, one: function (e, t, n, r) { return Ae(this, e, t, n, r, 1) }, off: function (e, t, n) { var r, i; if (e && e.preventDefault && e.handleObj) return r = e.handleObj, k(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this; if ("object" == typeof e) { for (i in e) this.off(i, t, e[i]); return this } return !1 !== t && "function" != typeof t || (n = t, t = void 0), !1 === n && (n = Se), this.each(function () { k.event.remove(this, e, n, t) }) } }); var je = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, qe = /
vendor: 10,177 bytes, line 21
21<script|<style|<link/i, Le = /checked\s*(?:[^=]|=\s*.checked.)/i, He = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; function Oe(e, t) { return A(e, "table") && A(11 !== t.nodeType ? t : t.firstChild, "tr") && k(e).children("tbody")[0] || e } function Pe(e) { return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e } function Re(e) { return "true/" === (e.type || "").slice(0, 5) ? e.type = e.type.slice(5) : e.removeAttribute("type"), e } function Me(e, t) { var n, r, i, o, a, s, u, l; if (1 === t.nodeType) { if (Q.hasData(e) && (o = Q.access(e), a = Q.set(t, o), l = o.events)) for (i in delete a.handle, a.events = {}, l) for (n = 0, r = l[i].length; n < r; n++)k.event.add(t, i, l[i][n]); J.hasData(e) && (s = J.access(e), u = k.extend({}, s), J.set(t, u)) } } function Ie(n, r, i, o) { r = g.apply([], r); var e, t, a, s, u, l, c = 0, f = n.length, p = f - 1, d = r[0], h = m(d); if (h || 1 < f && "string" == typeof d && !y.checkClone && Le.test(d)) return n.each(function (e) { var t = n.eq(e); h && (r[0] = d.call(this, e, t.html())), Ie(t, r, i, o) }); if (f && (t = (e = we(r, n[0].ownerDocument, !1, n, o)).firstChild, 1 === e.childNodes.length && (e = t), t || o)) { for (s = (a = k.map(ve(e, "script"), Pe)).length; c < f; c++)u = e, c !== p && (u = k.clone(u, !0, !0), s && k.merge(a, ve(u, "script"))), i.call(n[c], u, c); if (s) for (l = a[a.length - 1].ownerDocument, k.map(a, Re), c = 0; c < s; c++)u = a[c], he.test(u.type || "") && !Q.access(u, "globalEval") && k.contains(l, u) && (u.src && "module" !== (u.type || "").toLowerCase() ? k._evalUrl && !u.noModule && k._evalUrl(u.src, { nonce: u.nonce || u.getAttribute("nonce") }) : b(u.textContent.replace(He, ""), u, l)) } return n } function We(e, t, n) { for (var r, i = t ? k.filter(t, e) : e, o = 0; null != (r = i[o]); o++)n || 1 !== r.nodeType || k.cleanData(ve(r)), r.parentNode && (n && oe(r) && ye(ve(r, "script")), r.parentNode.removeChild(r)); return e } k.extend({ htmlPrefilter: function (e) { return e.replace(je, "<$1></$2>") }, clone: function (e, t, n) { var r, i, o, a, s, u, l, c = e.cloneNode(!0), f = oe(e); if (!(y.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || k.isXMLDoc(e))) for (a = ve(c), r = 0, i = (o = ve(e)).length; r < i; r++)s = o[r], u = a[r], void 0, "input" === (l = u.nodeName.toLowerCase()) && pe.test(s.type) ? u.checked = s.checked : "input" !== l && "textarea" !== l || (u.defaultValue = s.defaultValue); if (t) if (n) for (o = o || ve(e), a = a || ve(c), r = 0, i = o.length; r < i; r++)Me(o[r], a[r]); else Me(e, c); return 0 < (a = ve(c, "script")).length && ye(a, !f && ve(e, "script")), c }, cleanData: function (e) { for (var t, n, r, i = k.event.special, o = 0; void 0 !== (n = e[o]); o++)if (G(n)) { if (t = n[Q.expando]) { if (t.events) for (r in t.events) i[r] ? k.event.remove(n, r) : k.removeEvent(n, r, t.handle); n[Q.expando] = void 0 } n[J.expando] && (n[J.expando] = void 0) } } }), k.fn.extend({ detach: function (e) { return We(this, e, !0) }, remove: function (e) { return We(this, e) }, text: function (e) { return _(this, function (e) { return void 0 === e ? k.text(this) : this.empty().each(function () { 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e) }) }, null, e, arguments.length) }, append: function () { return Ie(this, arguments, function (e) { 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Oe(this, e).appendChild(e) }) }, prepend: function () { return Ie(this, arguments, function (e) { if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { var t = Oe(this, e); t.insertBefore(e, t.firstChild) } }) }, before: function () { return Ie(this, arguments, function (e) { this.parentNode && this.parentNode.insertBefore(e, this) }) }, after: function () { return Ie(this, arguments, function (e) { this.parentNode && this.parentNode.insertBefore(e, this.nextSibling) }) }, empty: function () { for (var e, t = 0; null != (e = this[t]); t++)1 === e.nodeType && (k.cleanData(ve(e, !1)), e.textContent = ""); return this }, clone: function (e, t) { return e = null != e && e, t = null == t ? e : t, this.map(function () { return k.clone(this, e, t) }) }, html: function (e) { return _(this, function (e) { var t = this[0] || {}, n = 0, r = this.length; if (void 0 === e && 1 === t.nodeType) return t.innerHTML; if ("string" == typeof e && !qe.test(e) && !ge[(de.exec(e) || ["", ""])[1].toLowerCase()]) { e = k.htmlPrefilter(e); try { for (; n < r; n++)1 === (t = this[n] || {}).nodeType && (k.cleanData(ve(t, !1)), t.innerHTML = e); t = 0 } catch (e) { } } t && this.empty().append(e) }, null, e, arguments.length) }, replaceWith: function () { var n = []; return Ie(this, arguments, function (e) { var t = this.parentNode; k.inArray(this, n) < 0 && (k.cleanData(ve(this)), t && t.replaceChild(e, this)) }, n) } }), k.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function (e, a) { k.fn[e] = function (e) { for (var t, n = [], r = k(e), i = r.length - 1, o = 0; o <= i; o++)t = o === i ? this : this.clone(!0), k(r[o])[a](t), u.apply(n, t.get()); return this.pushStack(n) } }); var $e = new RegExp("^(" + te + ")(?!px)[a-z%]+$", "i"), Fe = function (e) { var t = e.ownerDocument.defaultView; return t && t.opener || (t = C), t.getComputedStyle(e) }, Be = new RegExp(re.join("|"), "i"); function _e(e, t, n) { var r, i, o, a, s = e.style; return (n = n || Fe(e)) && ("" !== (a = n.getPropertyValue(t) || n[t]) || oe(e) || (a = k.style(e, t)), !y.pixelBoxStyles() && $e.test(a) && Be.test(t) && (r = s.width, i = s.minWidth, o = s.maxWidth, s.minWidth = s.maxWidth = s.width = a, a = n.width, s.width = r, s.minWidth = i, s.maxWidth = o)), void 0 !== a ? a + "" : a } function ze(e, t) { return { get: function () { if (!e()) return (this.get = t).apply(this, arguments); delete this.get } } } !function () { function e() { if (u) { s.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0", u.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%", ie.appendChild(s).appendChild(u); var e = C.getComputedStyle(u); n = "1%" !== e.top, a = 12 === t(e.marginLeft), u.style.right = "60%", o = 36 === t(e.right), r = 36 === t(e.width), u.style.position = "absolute", i = 12 === t(u.offsetWidth / 3), ie.removeChild(s), u = null } } function t(e) { return Math.round(parseFloat(e)) } var n, r, i, o, a, s = E.createElement("div"), u = E.createElement("div"); u.style && (u.style.backgroundClip = "content-box", u.cloneNode(!0).style.backgroundClip = "", y.clearCloneStyle = "content-box" === u.style.backgroundClip, k.extend(y, { boxSizingReliable: function () { return e(), r }, pixelBoxStyles: function () { return e(), o }, pixelPosition: function () { return e(), n }, reliableMarginLeft: function () { return e(), a }, scrollboxSize: function () { return e(), i } })) }(); var Ue = ["Webkit", "Moz", "ms"], Xe = E.createElement("div").style, Ve = {}; function Ge(e) { var t = k.cssProps[e] || Ve[e]; return t || (e in Xe ? e : Ve[e] = function (e) { var t = e[0].toUpperCase() + e.slice(1), n = Ue.length; while (n--) if ((e = Ue[n] + t) in Xe) return e }(e) || e) } var Ye = /^(none|table(?!-c[ea]).+)/, Qe = /^--/, Je = { position: "absolute", visibility: "hidden", display: "block" }, Ke = { letterSpacing: "0", fontWeight: "400" }; function Ze(e, t, n) { var r = ne.exec(t); return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t } function et(e, t, n, r, i, o) { var a = "width" === t ? 1 : 0, s = 0, u = 0; if (n === (r ? "border" : "content")) return 0; for (; a < 4; a += 2)"margin" === n && (u += k.css(e, n + re[a], !0, i)), r ? ("content" === n && (u -= k.css(e, "padding" + re[a], !0, i)), "margin" !== n && (u -= k.css(e, "border" + re[a] + "Width", !0, i))) : (u += k.css(e, "padding" + re[a], !0, i), "padding" !== n ? u += k.css(e, "border" + re[a] + "Width", !0, i) : s += k.css(e, "border" + re[a] + "Width", !0, i)); return !r && 0 <= o && (u += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - u - s - .5)) || 0), u } function tt(e, t, n) { var r = Fe(e), i = (!y.boxSizingReliable() || n) && "border-box" === k.css(e, "boxSizing", !1, r), o = i, a = _e(e, t, r), s = "offset" + t[0].toUpperCase() + t.slice(1); if ($e.test(a)) { if (!n) return a; a = "auto" } return (!y.boxSizingReliable() && i || "auto" === a || !parseFloat(a) && "inline" === k.css(e, "display", !1, r)) && e.getClientRects().length && (i = "border-box" === k.css(e, "boxSizing", !1, r), (o = s in e) && (a = e[s])), (a = parseFloat(a) || 0) + et(e, t, n || (i ? "border" : "content"), o, r, a) + "px" } function nt(e, t, n, r, i) { return new nt.prototype.init(e, t, n, r, i) } k.extend({ cssHooks: { opacity: { get: function (e, t) { if (t) { var n = _e(e, "opacity"); return "" === n ? "1" : n } } } }, cssNumber: { animationIterationCount: !0, columnCount: !0, fillOpacity: !0, flexGrow: !0, flexShrink: !0, fontWeight: !0, gridArea: !0, gridColumn: !0, gridColumnEnd: !0, gridColumnStart: !0, gridRow: !0, gridRowEnd: !0, gridRowStart: !0, lineHeight: !0, opacity: !0, order: !0, orphans: !0, widows: !0, zIndex: !0, zoom: !0 }, cssProps: {}, style: function (e, t, n, r) { if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { var i, o, a, s = V(t), u = Qe.test(t), l = e.style; if (u || (t = Ge(s)), a = k.cssHooks[t] || k.cssHooks[s], void 0 === n) return a && "get" in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t]; "string" === (o = typeof n) && (i = ne.exec(n)) && i[1] && (n = le(e, t, i), o = "number"), null != n && n == n && ("number" !== o || u || (n += i && i[3] || (k.cssNumber[s] ? "" : "px")), y.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"), a && "set" in a && void 0 === (n = a.set(e, n, r)) || (u ? l.setProperty(t, n) : l[t] = n)) } }, css: function (e, t, n, r) { var i, o, a, s = V(t); return Qe.test(t) || (t = Ge(s)), (a = k.cssHooks[t] || k.cssHooks[s]) && "get" in a && (i = a.get(e, !0, n)), void 0 === i && (i = _e(e, t, r)), "n
21ormal" === i && t in Ke && (i = Ke[t]), "" === n || n ? (o = parseFloat(i), !0 === n || isFinite(o) ? o || 0 : i) : i } }), k.each(["height", "width"], function (e, u) { k.cssHooks[u] = { get: function (e, t, n) { if (t) return !Ye.test(k.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? tt(e, u, n) : ue(e, Je, function () { return tt(e, u, n) }) }, set: function (e, t, n) { var r, i = Fe(e), o = !y.scrollboxSize() && "absolute" === i.position, a = (o || n) && "border-box" === k.css(e, "boxSizing", !1, i), s = n ? et(e, u, n, a, i) : 0; return a && o && (s -= Math.ceil(e["offset" + u[0].toUpperCase() + u.slice(1)] - parseFloat(i[u]) - et(e, u, "border", !1, i) - .5)), s && (r = ne.exec(t)) && "px" !== (r[3] || "px") && (e.style[u] = t, t = k.css(e, u)), Ze(0, t, s) } } }), k.cssHooks.marginLeft = ze(y.reliableMarginLeft, function (e, t) { if (t) return (parseFloat(_e(e, "marginLeft")) || e.getBoundingClientRect().left - ue(e, { marginLeft: 0 }, function () { return e.getBoundingClientRect().left })) + "px" }), k.each({ margin: "", padding: "", border: "Width" }, function (i, o) { k.cssHooks[i + o] = { expand: function (e) { for (var t = 0, n = {}, r = "string" == typeof e ? e.split(" ") : [e]; t < 4; t++)n[i + re[t] + o] = r[t] || r[t - 2] || r[0]; return n } }, "margin" !== i && (k.cssHooks[i + o].set = Ze) }), k.fn.extend({ css: function (e, t) { return _(this, function (e, t, n) { var r, i, o = {}, a = 0; if (Array.isArray(t)) { for (r = Fe(e), i = t.length; a < i; a++)o[t[a]] = k.css(e, t[a], !1, r); return o } return void 0 !== n ? k.style(e, t, n) : k.css(e, t) }, e, t, 1 < arguments.length) } }), ((k.Tween = nt).prototype = { constructor: nt, init: function (e, t, n, r, i, o) { this.elem = e, this.prop = n, this.easing = i || k.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = o || (k.cssNumber[n] ? "" : "px") }, cur: function () { var e = nt.propHooks[this.prop]; return e && e.get ? e.get(this) : nt.propHooks._default.get(this) }, run: function (e) { var t, n = nt.propHooks[this.prop]; return this.options.duration ? this.pos = t = k.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : nt.propHooks._default.set(this), this } }).init.prototype = nt.prototype, (nt.propHooks = { _default: { get: function (e) { var t; return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = k.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0 }, set: function (e) { k.fx.step[e.prop] ? k.fx.step[e.prop](e) : 1 !== e.elem.nodeType || !k.cssHooks[e.prop] && null == e.elem.style[Ge(e.prop)] ? e.elem[e.prop] = e.now : k.style(e.elem, e.prop, e.now + e.unit) } } }).scrollTop = nt.propHooks.scrollLeft = { set: function (e) { e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now) } }, k.easing = { linear: function (e) { return e }, swing: function (e) { return .5 - Math.cos(e * Math.PI) / 2 }, _default: "swing" }, k.fx = nt.prototype.init, k.fx.step = {}; var rt, it, ot, at, st = /^(?:toggle|show|hide)$/, ut = /queueHooks$/; function lt() { it && (!1 === E.hidden && C.requestAnimationFrame ? C.requestAnimationFrame(lt) : C.setTimeout(lt, k.fx.interval), k.fx.tick()) } function ct() { return C.setTimeout(function () { rt = void 0 }), rt = Date.now() } function ft(e, t) { var n, r = 0, i = { height: e }; for (t = t ? 1 : 0; r < 4; r += 2 - t)i["margin" + (n = re[r])] = i["padding" + n] = e; return t && (i.opacity = i.width = e), i } function pt(e, t, n) { for (var r, i = (dt.tweeners[t] || []).concat(dt.tweeners["*"]), o = 0, a = i.length; o < a; o++)if (r = i[o].call(n, t, e)) return r } function dt(o, e, t) { var n, a, r = 0, i = dt.prefilters.length, s = k.Deferred().always(function () { delete u.elem }), u = function () { if (a) return !1; for (var e = rt || ct(), t = Math.max(0, l.startTime + l.duration - e), n = 1 - (t / l.duration || 0), r = 0, i = l.tweens.length; r < i; r++)l.tweens[r].run(n); return s.notifyWith(o, [l, n, t]), n < 1 && i ? t : (i || s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l]), !1) }, l = s.promise({ elem: o, props: k.extend({}, e), opts: k.extend(!0, { specialEasing: {}, easing: k.easing._default }, t), originalProperties: e, originalOptions: t, startTime: rt || ct(), duration: t.duration, tweens: [], createTween: function (e, t) { var n = k.Tween(o, l.opts, e, t, l.opts.specialEasing[e] || l.opts.easing); return l.tweens.push(n), n }, stop: function (e) { var t = 0, n = e ? l.tweens.length : 0; if (a) return this; for (a = !0; t < n; t++)l.tweens[t].run(1); return e ? (s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l, e])) : s.rejectWith(o, [l, e]), this } }), c = l.props; for (!function (e, t) { var n, r, i, o, a; for (n in e) if (i = t[r = V(n)], o = e[n], Array.isArray(o) && (i = o[1], o = e[n] = o[0]), n !== r && (e[r] = o, delete e[n]), (a = k.cssHooks[r]) && "expand" in a) for (n in o = a.expand(o), delete e[r], o) n in e || (e[n] = o[n], t[n] = i); else t[r] = i }(c, l.opts.specialEasing); r < i;
vendor: 5,340 bytes, line 21
21 r++)if (n = dt.prefilters[r].call(l, o, c, l.opts)) return m(n.stop) && (k._queueHooks(l.elem, l.opts.queue).stop = n.stop.bind(n)), n; return k.map(c, pt, l), m(l.opts.start) && l.opts.start.call(o, l), l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always), k.fx.timer(k.extend(u, { elem: o, anim: l, queue: l.opts.queue })), l } k.Animation = k.extend(dt, { tweeners: { "*": [function (e, t) { var n = this.createTween(e, t); return le(n.elem, e, ne.exec(t), n), n }] }, tweener: function (e, t) { m(e) ? (t = e, e = ["*"]) : e = e.match(R); for (var n, r = 0, i = e.length; r < i; r++)n = e[r], dt.tweeners[n] = dt.tweeners[n] || [], dt.tweeners[n].unshift(t) }, prefilters: [function (e, t, n) { var r, i, o, a, s, u, l, c, f = "width" in t || "height" in t, p = this, d = {}, h = e.style, g = e.nodeType && se(e), v = Q.get(e, "fxshow"); for (r in n.queue || (null == (a = k._queueHooks(e, "fx")).unqueued && (a.unqueued = 0, s = a.empty.fire, a.empty.fire = function () { a.unqueued || s() }), a.unqueued++ , p.always(function () { p.always(function () { a.unqueued-- , k.queue(e, "fx").length || a.empty.fire() }) })), t) if (i = t[r], st.test(i)) { if (delete t[r], o = o || "toggle" === i, i === (g ? "hide" : "show")) { if ("show" !== i || !v || void 0 === v[r]) continue; g = !0 } d[r] = v && v[r] || k.style(e, r) } if ((u = !k.isEmptyObject(t)) || !k.isEmptyObject(d)) for (r in f && 1 === e.nodeType && (n.overflow = [h.overflow, h.overflowX, h.overflowY], null == (l = v && v.display) && (l = Q.get(e, "display")), "none" === (c = k.css(e, "display")) && (l ? c = l : (fe([e], !0), l = e.style.display || l, c = k.css(e, "display"), fe([e]))), ("inline" === c || "inline-block" === c && null != l) && "none" === k.css(e, "float") && (u || (p.done(function () { h.display = l }), null == l && (c = h.display, l = "none" === c ? "" : c)), h.display = "inline-block")), n.overflow && (h.overflow = "hidden", p.always(function () { h.overflow = n.overflow[0], h.overflowX = n.overflow[1], h.overflowY = n.overflow[2] })), u = !1, d) u || (v ? "hidden" in v && (g = v.hidden) : v = Q.access(e, "fxshow", { display: l }), o && (v.hidden = !g), g && fe([e], !0), p.done(function () { for (r in g || fe([e]), Q.remove(e, "fxshow"), d) k.style(e, r, d[r]) })), u = pt(g ? v[r] : 0, r, p), r in v || (v[r] = u.start, g && (u.end = u.start, u.start = 0)) }], prefilter: function (e, t) { t ? dt.prefilters.unshift(e) : dt.prefilters.push(e) } }), k.speed = function (e, t, n) { var r = e && "object" == typeof e ? k.extend({}, e) : { complete: n || !n && t || m(e) && e, duration: e, easing: n && t || t && !m(t) && t }; return k.fx.off ? r.duration = 0 : "number" != typeof r.duration && (r.duration in k.fx.speeds ? r.duration = k.fx.speeds[r.duration] : r.duration = k.fx.speeds._default), null != r.queue && !0 !== r.queue || (r.queue = "fx"), r.old = r.complete, r.complete = function () { m(r.old) && r.old.call(this), r.queue && k.dequeue(this, r.queue) }, r }, k.fn.extend({ fadeTo: function (e, t, n, r) { return this.filter(se).css("opacity", 0).show().end().animate({ opacity: t }, e, n, r) }, animate: function (t, e, n, r) { var i = k.isEmptyObject(t), o = k.speed(e, n, r), a = function () { var e = dt(this, k.extend({}, t), o); (i || Q.get(this, "finish")) && e.stop(!0) }; return a.finish = a, i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a) }, stop: function (i, e, o) { var a = function (e) { var t = e.stop; delete e.stop, t(o) }; return "string" != typeof i && (o = e, e = i, i = void 0), e && !1 !== i && this.queue(i || "fx", []), this.each(function () { var e = !0, t = null != i && i + "queueHooks", n = k.timers, r = Q.get(this); if (t) r[t] && r[t].stop && a(r[t]); else for (t in r) r[t] && r[t].stop && ut.test(t) && a(r[t]); for (t = n.length; t--;)n[t].elem !== this || null != i && n[t].queue !== i || (n[t].anim.stop(o), e = !1, n.splice(t, 1)); !e && o || k.dequeue(this, i) }) }, finish: function (a) { return !1 !== a && (a = a || "fx"), this.each(function () { var e, t = Q.get(this), n = t[a + "queue"], r = t[a + "queueHooks"], i = k.timers, o = n ? n.length : 0; for (t.finish = !0, k.queue(this, a, []), r && r.stop && r.stop.call(this, !0), e = i.length; e--;)i[e].elem === this && i[e].queue === a && (i[e].anim.stop(!0), i.splice(e, 1)); for (e = 0; e < o; e++)n[e] && n[e].finish && n[e].finish.call(this); delete t.finish }) } }), k.each(["toggle", "show", "hide"], function (e, r) { var i = k.fn[r]; k.fn[r] = function (e, t, n) { return null == e || "boolean" == typeof e ? i.apply(this, arguments) : this.animate(ft(r, !0), e, t, n) } }), k.each({ slideDown: ft("show"), slideUp: ft("hide"), slideToggle: ft("toggle"), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" } }, function (e, r) { k.fn[e] = function (e, t, n) { return this.animate(r, e, t, n) } }), k.timers = [], k.fx.tick = function () { var e, t = 0, n = k.timers; for (rt = Date.now(); t < n.length; t++)(e = n[t])() || n[t] !== e || n.splice(t--, 1); n.length || k.fx.stop(), rt = void 0 }, k.fx.timer = function (e) { k.timers.push(e), k.fx.start() }, k.fx.interval = 13, k.fx.start = function () { it || (it = !0, lt()) }, k.fx.stop = function () { it = null }, k.fx.speeds = { slow: 600, fast: 200, _default: 400 }
vendor: 4,476 bytes, line 21
21, k.fn.delay = function (r, e) { return r = k.fx && k.fx.speeds[r] || r, e = e || "fx", this.queue(e, function (e, t) { var n = C.setTimeout(e, r); t.stop = function () { C.clearTimeout(n) } }) }, ot = E.createElement("input"), at = E.createElement("select").appendChild(E.createElement("option")), ot.type = "checkbox", y.checkOn = "" !== ot.value, y.optSelected = at.selected, (ot = E.createElement("input")).value = "t", ot.type = "radio", y.radioValue = "t" === ot.value; var ht, gt = k.expr.attrHandle; k.fn.extend({ attr: function (e, t) { return _(this, k.attr, e, t, 1 < arguments.length) }, removeAttr: function (e) { return this.each(function () { k.removeAttr(this, e) }) } }), k.extend({ attr: function (e, t, n) { var r, i, o = e.nodeType; if (3 !== o && 8 !== o && 2 !== o) return "undefined" == typeof e.getAttribute ? k.prop(e, t, n) : (1 === o && k.isXMLDoc(e) || (i = k.attrHooks[t.toLowerCase()] || (k.expr.match.bool.test(t) ? ht : void 0)), void 0 !== n ? null === n ? void k.removeAttr(e, t) : i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : (e.setAttribute(t, n + ""), n) : i && "get" in i && null !== (r = i.get(e, t)) ? r : null == (r = k.find.attr(e, t)) ? void 0 : r) }, attrHooks: { type: { set: function (e, t) { if (!y.radioValue && "radio" === t && A(e, "input")) { var n = e.value; return e.setAttribute("type", t), n && (e.value = n), t } } } }, removeAttr: function (e, t) { var n, r = 0, i = t && t.match(R); if (i && 1 === e.nodeType) while (n = i[r++]) e.removeAttribute(n) } }), ht = { set: function (e, t, n) { return !1 === t ? k.removeAttr(e, n) : e.setAttribute(n, n), n } }, k.each(k.expr.match.bool.source.match(/\w+/g), function (e, t) { var a = gt[t] || k.find.attr; gt[t] = function (e, t, n) { var r, i, o = t.toLowerCase(); return n || (i = gt[o], gt[o] = r, r = null != a(e, t, n) ? o : null, gt[o] = i), r } }); var vt = /^(?:input|select|textarea|button)$/i, yt = /^(?:a|area)$/i; function mt(e) { return (e.match(R) || []).join(" ") } function xt(e) { return e.getAttribute && e.getAttribute("class") || "" } function bt(e) { return Array.isArray(e) ? e : "string" == typeof e && e.match(R) || [] } k.fn.extend({ prop: function (e, t) { return _(this, k.prop, e, t, 1 < arguments.length) }, removeProp: function (e) { return this.each(function () { delete this[k.propFix[e] || e] }) } }), k.extend({ prop: function (e, t, n) { var r, i, o = e.nodeType; if (3 !== o && 8 !== o && 2 !== o) return 1 === o && k.isXMLDoc(e) || (t = k.propFix[t] || t, i = k.propHooks[t]), void 0 !== n ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : e[t] = n : i && "get" in i && null !== (r = i.get(e, t)) ? r : e[t] }, propHooks: { tabIndex: { get: function (e) { var t = k.find.attr(e, "tabindex"); return t ? parseInt(t, 10) : vt.test(e.nodeName) || yt.test(e.nodeName) && e.href ? 0 : -1 } } }, propFix: { "for": "htmlFor", "class": "className" } }), y.optSelected || (k.propHooks.selected = { get: function (e) { var t = e.parentNode; return t && t.parentNode && t.parentNode.selectedIndex, null }, set: function (e) { var t = e.parentNode; t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex) } }), k.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () { k.propFix[this.toLowerCase()] = this }), k.fn.extend({ addClass: function (t) { var e, n, r, i, o, a, s, u = 0; if (m(t)) return this.each(function (e) { k(this).addClass(t.call(this, e, xt(this))) }); if ((e = bt(t)).length) while (n = this[u++]) if (i = xt(n), r = 1 === n.nodeType && " " + mt(i) + " ") { a = 0; while (o = e[a++]) r.indexOf(" " + o + " ") < 0 && (r += o + " "); i !== (s = mt(r)) && n.setAttribute("class", s) } return this }, removeClass: function (t) { var e, n, r, i, o, a, s, u = 0; if (m(t)) return this.each(function (e) { k(this).removeClass(t.call(this, e, xt(this))) }); if (!arguments.length) return this.attr("class", ""); if ((e = bt(t)).length) while (n = this[u++]) if (i = xt(n), r = 1 === n.nodeType && " " + mt(i) + " ") { a = 0; while (o = e[a++]) while (-1 < r.indexOf(" " + o + " ")) r = r.replace(" " + o + " ", " "); i !== (s = mt(r)) && n.setAttribute("class", s) } return this }, toggleClass: function (i, t) { var o = typeof i, a = "string" === o || Array.isArray(i); return "boolean" == typeof t && a ? t ? this.addClass(i) : this.removeClass(i) : m(i) ? this.each(function (e) { k(this).toggleClass(i.
vendor: 17,170 bytes, line 21
21call(this, e, xt(this), t), t) }) : this.each(function () { var e, t, n, r; if (a) { t = 0, n = k(this), r = bt(i); while (e = r[t++]) n.hasClass(e) ? n.removeClass(e) : n.addClass(e) } else void 0 !== i && "boolean" !== o || ((e = xt(this)) && Q.set(this, "__className__", e), this.setAttribute && this.setAttribute("class", e || !1 === i ? "" : Q.get(this, "__className__") || "")) }) }, hasClass: function (e) { var t, n, r = 0; t = " " + e + " "; while (n = this[r++]) if (1 === n.nodeType && -1 < (" " + mt(xt(n)) + " ").indexOf(t)) return !0; return !1 } }); var wt = /\r/g; k.fn.extend({ val: function (n) { var r, e, i, t = this[0]; return arguments.length ? (i = m(n), this.each(function (e) { var t; 1 === this.nodeType && (null == (t = i ? n.call(this, e, k(this).val()) : n) ? t = "" : "number" == typeof t ? t += "" : Array.isArray(t) && (t = k.map(t, function (e) { return null == e ? "" : e + "" })), (r = k.valHooks[this.type] || k.valHooks[this.nodeName.toLowerCase()]) && "set" in r && void 0 !== r.set(this, t, "value") || (this.value = t)) })) : t ? (r = k.valHooks[t.type] || k.valHooks[t.nodeName.toLowerCase()]) && "get" in r && void 0 !== (e = r.get(t, "value")) ? e : "string" == typeof (e = t.value) ? e.replace(wt, "") : null == e ? "" : e : void 0 } }), k.extend({ valHooks: { option: { get: function (e) { var t = k.find.attr(e, "value"); return null != t ? t : mt(k.text(e)) } }, select: { get: function (e) { var t, n, r, i = e.options, o = e.selectedIndex, a = "select-one" === e.type, s = a ? null : [], u = a ? o + 1 : i.length; for (r = o < 0 ? u : a ? o : 0; r < u; r++)if (((n = i[r]).selected || r === o) && !n.disabled && (!n.parentNode.disabled || !A(n.parentNode, "optgroup"))) { if (t = k(n).val(), a) return t; s.push(t) } return s }, set: function (e, t) { var n, r, i = e.options, o = k.makeArray(t), a = i.length; while (a--) ((r = i[a]).selected = -1 < k.inArray(k.valHooks.option.get(r), o)) && (n = !0); return n || (e.selectedIndex = -1), o } } } }), k.each(["radio", "checkbox"], function () { k.valHooks[this] = { set: function (e, t) { if (Array.isArray(t)) return e.checked = -1 < k.inArray(k(e).val(), t) } }, y.checkOn || (k.valHooks[this].get = function (e) { return null === e.getAttribute("value") ? "on" : e.value }) }), y.focusin = "onfocusin" in C; var Tt = /^(?:focusinfocus|focusoutblur)$/, Ct = function (e) { e.stopPropagation() }; k.extend(k.event, { trigger: function (e, t, n, r) { var i, o, a, s, u, l, c, f, p = [n || E], d = v.call(e, "type") ? e.type : e, h = v.call(e, "namespace") ? e.namespace.split(".") : []; if (o = f = a = n = n || E, 3 !== n.nodeType && 8 !== n.nodeType && !Tt.test(d + k.event.triggered) && (-1 < d.indexOf(".") && (d = (h = d.split(".")).shift(), h.sort()), u = d.indexOf(":") < 0 && "on" + d, (e = e[k.expando] ? e : new k.Event(d, "object" == typeof e && e)).isTrigger = r ? 2 : 3, e.namespace = h.join("."), e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, e.result = void 0, e.target || (e.target = n), t = null == t ? [e] : k.makeArray(t, [e]), c = k.event.special[d] || {}, r || !c.trigger || !1 !== c.trigger.apply(n, t))) { if (!r && !c.noBubble && !x(n)) { for (s = c.delegateType || d, Tt.test(s + d) || (o = o.parentNode); o; o = o.parentNode)p.push(o), a = o; a === (n.ownerDocument || E) && p.push(a.defaultView || a.parentWindow || C) } i = 0; while ((o = p[i++]) && !e.isPropagationStopped()) f = o, e.type = 1 < i ? s : c.bindType || d, (l = (Q.get(o, "events") || {})[e.type] && Q.get(o, "handle")) && l.apply(o, t), (l = u && o[u]) && l.apply && G(o) && (e.result = l.apply(o, t), !1 === e.result && e.preventDefault()); return e.type = d, r || e.isDefaultPrevented() || c._default && !1 !== c._default.apply(p.pop(), t) || !G(n) || u && m(n[d]) && !x(n) && ((a = n[u]) && (n[u] = null), k.event.triggered = d, e.isPropagationStopped() && f.addEventListener(d, Ct), n[d](), e.isPropagationStopped() && f.removeEventListener(d, Ct), k.event.triggered = void 0, a && (n[u] = a)), e.result } }, simulate: function (e, t, n) { var r = k.extend(new k.Event, n, { type: e, isSimulated: !0 }); k.event.trigger(r, null, t) } }), k.fn.extend({ trigger: function (e, t) { return this.each(function () { k.event.trigger(e, t, this) }) }, triggerHandler: function (e, t) { var n = this[0]; if (n) return k.event.trigger(e, t, n, !0) } }), y.focusin || k.each({ focus: "focusin", blur: "focusout" }, function (n, r) { var i = function (e) { k.event.simulate(r, e.target, k.event.fix(e)) }; k.event.special[r] = { setup: function () { var e = this.ownerDocument || this, t = Q.access(e, r); t || e.addEventListener(n, i, !0), Q.access(e, r, (t || 0) + 1) }, teardown: function () { var e = this.ownerDocument || this, t = Q.access(e, r) - 1; t ? Q.access(e, r, t) : (e.removeEventListener(n, i, !0), Q.remove(e, r)) } } }); var Et = C.location, kt = Date.now(), St = /\?/; k.parseXML = function (e) { var t; if (!e || "string" != typeof e) return null; try { t = (new C.DOMParser).parseFromString(e, "text/xml") } catch (e) { t = void 0 } return t && !t.getElementsByTagName("parsererror").length || k.error("Invalid XML: " + e), t }; var Nt = /\[\]$/, At = /\r?\n/g, Dt = /^(?:submit|button|image|reset|file)$/i, jt = /^(?:input|select|textarea|keygen)/i; function qt(n, e, r, i) { var t; if (Array.isArray(e)) k.each(e, function (e, t) { r || Nt.test(n) ? i(n, t) : qt(n + "[" + ("object" == typeof t && null != t ? e : "") + "]", t, r, i) }); else if (r || "object" !== w(e)) i(n, e); else for (t in e) qt(n + "[" + t + "]", e[t], r, i) } k.param = function (e, t) { var n, r = [], i = function (e, t) { var n = m(t) ? t() : t; r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n) }; if (null == e) return ""; if (Array.isArray(e) || e.jquery && !k.isPlainObject(e)) k.each(e, function () { i(this.name, this.value) }); else for (n in e) qt(n, e[n], t, i); return r.join("&") }, k.fn.extend({ serialize: function () { return k.param(this.serializeArray()) }, serializeArray: function () { return this.map(function () { var e = k.prop(this, "elements"); return e ? k.makeArray(e) : this }).filter(function () { var e = this.type; return this.name && !k(this).is(":disabled") && jt.test(this.nodeName) && !Dt.test(e) && (this.checked || !pe.test(e)) }).map(function (e, t) { var n = k(this).val(); return null == n ? null : Array.isArray(n) ? k.map(n, function (e) { return { name: t.name, value: e.replace(At, "\r\n") } }) : { name: t.name, value: n.replace(At, "\r\n") } }).get() } }); var Lt = /%20/g, Ht = /#.*$/, Ot = /([?&])_=[^&]*/, Pt = /^(.*?):[ \t]*([^\r\n]*)$/gm, Rt = /^(?:GET|HEAD)$/, Mt = /^\/\//, It = {}, Wt = {}, $t = "*/".concat("*"), Ft = E.createElement("a"); function Bt(o) { return function (e, t) { "string" != typeof e && (t = e, e = "*"); var n, r = 0, i = e.toLowerCase().match(R) || []; if (m(t)) while (n = i[r++]) "+" === n[0] ? (n = n.slice(1) || "*", (o[n] = o[n] || []).unshift(t)) : (o[n] = o[n] || []).push(t) } } function _t(t, i, o, a) { var s = {}, u = t === Wt; function l(e) { var r; return s[e] = !0, k.each(t[e] || [], function (e, t) { var n = t(i, o, a); return "string" != typeof n || u || s[n] ? u ? !(r = n) : void 0 : (i.dataTypes.unshift(n), l(n), !1) }), r } return l(i.dataTypes[0]) || !s["*"] && l("*") } function zt(e, t) { var n, r, i = k.ajaxSettings.flatOptions || {}; for (n in t) void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]); return r && k.extend(!0, e, r), e } Ft.href = Et.href, k.extend({ active: 0, lastModified: {}, etag: {}, ajaxSettings: { url: Et.href, type: "GET", isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol), global: !0, processData: !0, async: !0, contentType: "application/x-www-form-urlencoded; charset=UTF-8", accepts: { "*": $t, text: "text/plain", html: "text/html", xml: "application/xml, text/xml", json: "application/json, text/javascript" }, contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ }, responseFields: { xml: "responseXML", text: "responseText", json: "responseJSON" }, converters: { "* text": String, "text html": !0, "text json": JSON.parse, "text xml": k.parseXML }, flatOptions: { url: !0, context: !0 } }, ajaxSetup: function (e, t) { return t ? zt(zt(e, k.ajaxSettings), t) : zt(k.ajaxSettings, e) }, ajaxPrefilter: Bt(It), ajaxTransport: Bt(Wt), ajax: function (e, t) { "object" == typeof e && (t = e, e = void 0), t = t || {}; var c, f, p, n, d, r, h, g, i, o, v = k.ajaxSetup({}, t), y = v.context || v, m = v.context && (y.nodeType || y.jquery) ? k(y) : k.event, x = k.Deferred(), b = k.Callbacks("once memory"), w = v.statusCode || {}, a = {}, s = {}, u = "canceled", T = { readyState: 0, getResponseHeader: function (e) { var t; if (h) { if (!n) { n = {}; while (t = Pt.exec(p)) n[t[1].toLowerCase() + " "] = (n[t[1].toLowerCase() + " "] || []).concat(t[2]) } t = n[e.toLowerCase() + " "] } return null == t ? null : t.join(", ") }, getAllResponseHeaders: function () { return h ? p : null }, setRequestHeader: function (e, t) { return null == h && (e = s[e.toLowerCase()] = s[e.toLowerCase()] || e, a[e] = t), this }, overrideMimeType: function (e) { return null == h && (v.mimeType = e), this }, statusCode: function (e) { var t; if (e) if (h) T.always(e[T.status]); else for (t in e) w[t] = [w[t], e[t]]; return this }, abort: function (e) { var t = e || u; return c && c.abort(t), l(0, t), this } }; if (x.promise(T), v.url = ((e || v.url || Et.href) + "").replace(Mt, Et.protocol + "//"), v.type = t.method || t.type || v.method || v.type, v.dataTypes = (v.dataType || "*").toLowerCase().match(R) || [""], null == v.crossDomain) { r = E.createElement("a"); try { r.href = v.url, r.href = r.href, v.crossDomain = Ft.protocol + "//" + Ft.host != r.protocol + "//" + r.host } catch (e) { v.crossDomain = !0 } } if (v.data && v.processData && "string" != typeof v.data && (v.data = k.param(v.data, v.traditional)), _t(It, v, t, T), h) return T; for (i in (g = k.event && v.global) && 0 == k.active++ && k.event.trigger("ajaxStart"), v.type = v.type.toUpperCase(), v.hasContent = !Rt.test(v.type), f = v.url.replace(Ht, ""), v.hasContent ? v.data && v.processData && 0 === (v.contentType || "").indexOf("application/x-www-form-urlencoded") && (v.data = v.data.replace(Lt, "+")) : (o = v.url.slice(f.length), v.data && (v.processData || "string" == typeof v.data) && (f += (St.test(f) ? "&" : "?") + v.data, delete v.data), !1 === v.cache && (f = f.replace(Ot, "$1"), o = (St.test(f) ? "&" : "?") + "_=" + kt++ + o), v.url = f + o), v.ifModified && (k.lastModified[f] && T.setRequestHeader("If-Modified-Since", k.lastModified[f]), k.etag[f] && T.setRequestHeader("If-None-Match", k.etag[f])), (v.data && v.hasContent && !1 !== v.contentType || t.contentType) && T.setRequestHeader("Content-Type", v.contentType), T.setRequestHeader("Accept", v.dataTypes[0] && v.accepts[v.dataTypes[0]] ? v.accepts[v.dataTypes[0]] + ("*" !== v.dataTypes[0] ? ", " + $t + "; q=0.01" : "") : v.accepts["*"]), v.headers) T.setRequestHeader(i, v.headers[i]); if (v.beforeSend && (!1 === v.beforeSend.call(y, T, v) || h)) return T.abort(); if (u = "abort", b.add(v.complete), T.done(v.success), T.fail(v.error), c = _t(Wt, v, t, T)) { if (T.readyState = 1, g && m.trigger("ajaxSend", [T, v]), h) return T; v.async && 0 < v.timeout && (d = C.setTimeout(function () { T.abort("timeout") }, v.timeout)); try { h = !1, c.send(a, l) } catch (e) { if (h) throw e; l(-1, e) } } else l(-1, "No Transport"); function l(e, t, n, r) { var i, o, a, s, u, l = t; h || (h = !0, d && C.clearTimeout(d), c = void 0, p = r || "", T.readyState = 0 < e ? 4 : 0, i = 200 <= e && e < 300 || 304 === e, n && (s = function (e, t, n) { var r, i, o, a, s = e.contents, u = e.dataTypes; while ("*" === u[0]) u.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type")); if (r) for (i in s) if (s[i] && s[i].test(r)) { u.unshift(i); break } if (u[0] in n) o = u[0]; else { for (i in n) { if (!u[0] || e.converters[i + " " + u[0]]) { o = i; break } a || (a = i) } o = o || a } if (o) return o !== u[0] && u.unshift(o), n[o] }(v, T, n)), s = function (e, t, n, r) { var i, o, a, s, u, l = {}, c = e.dataTypes.slice(); if (c[1]) for (a in e.converters) l[a.toLowerCase()] = e.converters[a]; o = c.shift(); while (o) if (e.responseFields[o] && (n[e.responseFields[o]] = t), !u && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), u = o, o = c.shift()) if ("*" === o) o = u; else if ("*" !== u && u !== o) { if (!(a = l[u + " " + o] || l["* " + o])) for (i in l) if ((s = i.split(" "))[1] === o && (a = l[u + " " + s[0]] || l["* " + s[0]])) { !0 === a ? a = l[i] : !0 !== l[i] && (o = s[0], c.unshift(s[1])); break } if (!0 !== a) if (a && e["throws"]) t = a(t); else try { t = a(t) } catch (e) { return { state: "parsererror", error: a ? e : "No conversion from " + u + " to " + o } } } return { state: "success", data: t } }(v, s, T, i), i ? (v.ifModified && ((u = T.getResponseHeader("Last-Modified")) && (k.lastModified[f] = u), (u = T.getResponseHeader("etag")) && (k.etag[f] = u)), 204 === e || "HEAD" === v.type ? l = "nocontent" : 304 === e ? l = "notmodified" : (l = s.state, o = s.data, i = !(a = s.error))) : (a = l, !e && l || (l = "error", e < 0 && (e = 0))), T.status = e, T.statusText = (t || l) + "", i ? x.resolveWith(y, [o, l, T]) : x.rejectWith(y, [T, l, a]), T.statusCode(w), w = void 0, g && m.trigger(i ? "ajaxSuccess" : "ajaxError", [T, v, i ? o : a]), b.fireWith(y, [T, l]), g && (m.trigger("ajaxComplete", [T, v]), --k.active || k.event.trigger("ajaxStop"))) } return T }, getJSON: function (e, t, n) { return k.get(e, t, n, "json") }, getScript: function (e, t) { return k.get(e, void 0, t, "script") } }), k.each(["get", "post"], function (e, i) { k[i] = function (e, t, n, r) { return m(t) && (r = r || n, n = t, t = void 0), k.ajax(k.extend({ url: e, type: i, dataType: r, data: t, success: n }, k.isPlainObject(e) && e)) } }), k._evalUrl = function (e, t) { return k.ajax({ url: e, type: "GET", dataType: "script", cache: !0, async: !1, global: !1, converters: { "text script": function () { } }, dataFilter: function (e) { k.globalEval(e, t) } }) }, k.fn.extend({ wrapAll: function (e) { var t; return this[0] && (m(e) && (e = e.call(this[0])), t = k(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function () { var e = this; while (e.firstElementChild) e = e.firstElementChild; return e }).append(this)), this }, wrapInner: function (n) { return m(n) ? this.each(function (e) { k(this).wrapInner(n.call(this, e)) }) : this.each(function () { var e = k(this), t = e.contents(); t.length ? t.wrapAll(n) : e.append(n) }) }, wrap: function (t) { var n = m(t); return this.each(function (e) { k(this).wrapAll(n ? t.call(this, e) : t) }) }, unwrap: function (e) { return this.parent(e).not("body").each(function () { k(this).replaceWith(this.childNodes) }), this } }), k.expr.pseudos.hidden = function (e) { return !k.expr.pseudos.visible(e) }, k.expr.pseudos.visible = function (e) { return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length) }, k.ajaxSettings.xhr = function () { try { return new C.XMLHttpRequest } catch (e) { } }; var Ut = { 0: 200, 1223: 204 }, Xt = k.ajaxSettings.xhr(); y.cors = !!Xt && "withCredentials" in Xt, y.ajax = Xt = !!Xt, k.ajaxTransport(function (i) { var o, a; if (y.cors || Xt && !i.crossDomain) return { send: function (e, t) { var n, r = i.xhr(); if (r.open(i.type, i.url, i.async, i.username, i.password), i.xhrFields) for (n in i.xhrFields) r[n] = i.xhrFields[n]; for (n in i.mimeType && r.overrideMimeType && r.overrideMimeType(i.mimeType), i.crossDomain || e["X-Requested-With"] || (e["X-Requested-With"] = "XMLHttpRequest"), e) r.setRequestHeader(n, e[n]); o = function (e) { return function () { o && (o = a = r.onload = r.onerror = r.onabort = r.ontimeout = r.onreadystatechange = null, "abort" === e ? r.abort() : "error" === e ? "number" != typeof r.status ? t(0, "error") : t(r.status, r.statusText) : t(Ut[r.status] || r.status, r.statusText, "text" !== (r.responseType || "text") || "string" != typeof r.responseText ? { binary: r.response } : { text: r.responseText }, r.getAllResponseHeaders())) } }, r.onload = o(), a = r.onerror = r.ontimeout = o("error"), void 0 !== r.onabort ? r.onabort = a : r.onreadystatechange = function () { 4 === r.readyState && C.setTimeout(function () { o && a() }) }, o = o("abort"); try { r.send(i.hasContent && i.data || null) } catch (e) { if (o) throw e } }, abort: function () { o && o() } } }), k.ajaxPrefilter(function (e) { e.crossDomain && (e.contents.script = !1) }), k.ajaxSetup({ accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, contents: { script: /\b(?:java|ecma)script\b/ }, converters: { "text script": function (e) { return k.globalEval(e), e } } }), k.ajaxPrefilter("script", function (e) { void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET") }), k.ajaxTransport("script", function (n) { var r, i; if (n.crossDomain || n.scriptAttrs) return { send: function (e, t) { r = k("
21<script>").attr(n.scriptAttrs || {}).prop({ charset: n.scriptCharset, src: n.url }).on("load error", i = function (e) { r.remove(), i = null, e && t("error" === e.type ? 404 : 200, e.type) }), E.head.appendChild(r[0]) }, abort: function () { i && i() } } }); var Vt, Gt = [], Yt = /(=)\?(?=&|$)|\?\?/; k.ajaxSetup({ jsonp: "callback", jsonpCallback: function () { var e = Gt.pop() || k.expando + "_" + kt++; return this[e] = !0, e } }), k.ajaxPrefilter("json jsonp", function (e, t, n) { var r, i, o, a = !1 !== e.jsonp && (Yt.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && Yt.test(e.data) && "data"); if (a || "jsonp" === e.dataTypes[0]) return r = e.jsonpCallback = m(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback, a ? e[a] = e[a].replace(Yt, "$1" + r) : !1 !== e.jsonp && (e.url += (St.test(e.url) ? "&" : "?") + e.jsonp + "=" + r), e.converters["script json"] = function () { return o || k.error(r + " was not called"), o[0] }, e.dataTypes[0] = "json", i = C[r], C[r] = function () { o = arguments }, n.always(function () { void 0 === i ? k(C).removeProp(r) : C[r] = i, e[r] && (e.jsonpCallback = t.jsonpCallback, Gt.push(r)), o && m(i) && i(o[0]), o = i = void 0 }), "script" }), y.createHTMLDocument = ((Vt = E.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>", 2 === Vt.childNodes.length), k.parseHTML = function (e, t, n) { return "string" != typeof e ? [] : ("boolean" == typeof t && (n = t, t = !1), t || (y.createHTMLDocument ? ((r = (t = E.implementation.createHTMLDocument("")).createElement("base")).href = E.location.href, t.head.appendChild(r)) : t = E), o = !n && [], (i = D.exec(e)) ? [t.createElement(i[1])] : (i = we([e], t, o), o && o.length && k(o).remove(), k.merge([], i.childNodes))); var r, i, o }, k.fn.load = function (e, t, n) { var r, i, o, a = this, s = e.indexOf(" "); return -1 < s && (r = mt(e.slice(s)), e = e.slice(0, s)), m(t) ? (n = t, t = void 0) : t && "object" == typeof t && (i = "POST"), 0 < a.length && k.ajax({ url: e, type: i || "GET", dataType: "html", data: t }).done(function (e) { o = arguments, a.html(r ? k("<div>").append(k.parseHTML(e)).find(r) : e) }).always(n && function (e, t) { a.each(function () { n.apply(this, o || [e.responseText, t, e]) }) }), this }, k.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (e, t) { k.fn[t] = function (e) { return this.on(t, e) } }), k.expr.pseudos.animated = function (t) { return k.grep(k.timers, function (e) { return t === e.elem }).length }, k.offset = { setOffset: function (e, t, n) { var r, i, o, a, s, u, l = k.css(e, "position"), c = k(e), f = {}; "static" === l && (e.style.position = "relative"), s = c.offset(), o = k.css(e, "top"), u = k.css(e, "left"), ("absolute" === l || "fixed" === l) && -1 < (o + u).indexOf("auto") ? (a = (r = c.position()).top, i = r.left) : (a = parseFloat(o) || 0, i = parseFloat(u) || 0), m(t) && (t = t.call(e, n, k.extend({}, s))), null != t.top && (f.top = t.top - s.top + a), null != t.left && (f.left = t.left - s.left + i), "using" in t ? t.using.call(e, f) : c.css(f) } }, k.fn.extend({ offset: function (t) { if (arguments.length) return void 0 === t ? this : this.each(function (e) { k.offset.setOffset(this, t, e) }); var e, n, r = this[0]; return r ? r.getClientRects().length ? (e = r.getBoundingClientRect(), n = r.ownerDocument.defaultView, { top: e.top + n.pageYOffset, left: e.left + n.pageXOffset }) : { top: 0, left: 0 } : void 0 }, position: function () { if (this[0]) { var e, t, n, r = this[0], i = { top: 0, left: 0 }; if ("fixed" === k.css(r, "position")) t = r.getBoundingClientRect(); else { t = this.offset(), n = r.ownerDocument, e = r.offsetParent || n.documentElement; while (e && (e === n.body || e === n.documentElement) && "static" === k.css(e, "position")) e = e.parentNode; e && e !== r && 1 === e.nodeType && ((i = k(e).offset()).top += k.css(e, "borderTopWidth", !0), i.left += k.css(e, "borderLeftWidth", !0)) } return { top: t.top - i.top - k.css(r, "marginTop", !0), left: t.left - i.left - k.css(r, "marginLeft", !0) } } }, offsetParent: function () { return this.map(function () { var e = this.offsetParent; while (e && "static" === k.css(e, "position")) e = e.offsetParent; return e || ie }) } }), k.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function (t, i) { var o = "pageYOffset" === i; k.fn[t] = function (e) { return _(this, function (e, t, n) { var r;
vendor: 4,151 bytes, lines 21-74
21 if (x(e) ? r = e : 9 === e.nodeType && (r = e.defaultView), void 0 === n) return r ? r[i] : e[t]; r ? r.scrollTo(o ? r.pageXOffset : n, o ? n : r.pageYOffset) : e[t] = n }, t, e, arguments.length) } }), k.each(["top", "left"], function (e, n) { k.cssHooks[n] = ze(y.pixelPosition, function (e, t) { if (t) return t = _e(e, n), $e.test(t) ? k(e).position()[n] + "px" : t }) }), k.each({ Height: "height", Width: "width" }, function (a, s) { k.each({ padding: "inner" + a, content: s, "": "outer" + a }, function (r, o) { k.fn[o] = function (e, t) { var n = arguments.length && (r || "boolean" != typeof e), i = r || (!0 === e || !0 === t ? "margin" : "border"); return _(this, function (e, t, n) { var r; return x(e) ? 0 === o.indexOf("outer") ? e["inner" + a] : e.document.documentElement["client" + a] : 9 === e.nodeType ? (r = e.documentElement, Math.max(e.body["scroll" + a], r["scroll" + a], e.body["offset" + a], r["offset" + a], r["client" + a])) : void 0 === n ? k.css(e, t, i) : k.style(e, t, n, i) }, s, n ? e : void 0, n) } }) }), k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function (e, n) { k.fn[n] = function (e, t) { return 0 < arguments.length ? this.on(n, null, e, t) : this.trigger(n) } }), k.fn.extend({ hover: function (e, t) { return this.mouseenter(e).mouseleave(t || e) } }), k.fn.extend({ bind: function (e, t, n) { return this.on(e, null, t, n) }, unbind: function (e, t) { return this.off(e, null, t) }, delegate: function (e, t, n, r) { return this.on(t, e, n, r) }, undelegate: function (e, t, n) { return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n) } }), k.proxy = function (e, t) { var n, r, i; if ("string" == typeof t && (n = e[t], t = e, e = n), m(e)) return r = s.call(arguments, 2), (i = function () { return e.apply(t || this, r.concat(s.call(arguments))) }).guid = e.guid = e.guid || k.guid++ , i }, k.holdReady = function (e) { e ? k.readyWait++ : k.ready(!0) }, k.isArray = Array.isArray, k.parseJSON = JSON.parse, k.nodeName = A, k.isFunction = m, k.isWindow = x, k.camelCase = V, k.type = w, k.now = Date.now, k.isNumeric = function (e) { var t = k.type(e); return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e)) }, "function" == typeof define && define.amd && define("jquery", [], function () { return k }); var Qt = C.jQuery, Jt = C.$; return k.noConflict = function (e) { return C.$ === k && (C.$ = Jt), e && C.jQuery === k && (C.jQuery = Qt), k }, e || (C.jQuery = C.$ = k), k }); 22/* endinject */ 23 24/* inject:pageLoadTime.js */ 25"use strict"; 26function PageLoadTime() { 27} 28 29PageLoadTime.prototype.getPerformanceData = function () { 30 var performance = window.performance || {}; 31 var perfData = {}; 32 33 if (performance.navigation) { 34 perfData.navigation = _getPerformanceObjectData(performance.navigation); 35 } 36 37 if (performance.timing) { 38 perfData.timing = _getPerformanceObjectData(performance.timing); 39 } 40 41 // report all entries 42 if (performance.getEntries) { 43 perfData.entries = _mapObject(performance.getEntries(), _getPerformanceObjectData); 44 } 45 46 // Chrome has a new experimental connection speed Api 47 if (navigator.connection) { 48 perfData.connection = _getPerformanceObjectData(navigator.connection); 49 } 50 51 return perfData; 52} 53 54function _isFunction(f) { return 'function' == (typeof (f)); } 55 56function _mapObject(array, mapping) { 57 var result = []; 58 var array = array || []; 59 for (var i = 0, j = array.length; i < j; i++) { 60 result.push(mapping(array[i], i)); 61 } 62 return result; 63} 64 65function _getPerformanceObjectData(object) { 66 var result = {}; 67 68 // In some browsers, some of the PerformanceTiming objects have a native toJSON method 69 // that returns a JS object with all of the properties of the PerformanceTiming object. 70 if (object.toJSON) { 71 return object.toJSON(); 72 } 73 74 // PerformanceTiming objects are not regular JS objects. Calling Ob
74ject.hasOwnProperty 75 // on them does not work. 76 for (var property in object) { 77 if (!_isFunction(object[property])) { 78 result[property] = object[property]; 79 } 80 } 81 82 return result; 83} 84/* endinject */ 85 86/* inject:ief-diagnostics.js */ 87"use strict"; 88 89// Object for holding trace information 90// and timing 91var $trace = function(trace, time) { 92 var _trace = trace; 93 // Always log start time 94 var _startTime = new Date().getTime(); 95 var _time = time; 96 var _timeElapsed = 0; 97 98 return { 99 // Outputs the trace as object, 100 // ending the timer if one was started 101 // when trace creates 102 toJson: function () { 103 104 // If the trace was a timed trace 105 if (_time) { 106 var elapsed = new Date() - _startTime; 107 _timeElapsed = elapsed; 108 } 109 110 return { 111 // action 112 ac: _trace, 113 // actionStartTime in milliseconds. 114 acST: Math.floor(_startTime / 1000), 115 // actionDuration in milliseconds. 116 acD: _timeElapsed 117 }; 118 }, 119 120 // Appends the specified trace 121 // to the existing trace info 122 append: function(trace){ 123 _trace += trace; 124 } 125 } 126}; 127 128var $diags = (function ($trace, settings) { 129 // Array to hold trace diagnostics 130 var _trace = []; 131 var _initializationSuccessful = false; 132 133 // Start a timer that will fire after 10s 134 // and check if the initializationSuccessful flag 135 // is true. If the initializationSuccessful flag 136 // is not true by the time the timer fires, we send 137 // back a response to the service indicating that 138 // a load failure has occurred. This function has a dependency 139 // on the Settings JSON. 140 setTimeout(function () { 141 142 if (!window.$diags.initializationSuccessful) { 143 144 // Configure the default trace 145 var trace = new $trace("T000", false); 146 var diagnosticsCode = "UX001" 147 var failedScript = ""; 148 149 if (!window.jQuery || typeof $element === "undefined") { 150 trace = new $trace("T025", false); 151 var scriptLookup = !window.jQuery ? "jQuery" : "element"; 152 153 // Get the script source using the data-script attribute 154 var scriptNode = document.querySelectorAll('[data-script="' + scriptLookup + '"]'); 155 failedScript = scriptNode[0].src || scriptLookup; 156 157 trace.append(" - " + failedScript); 158 diagnosticsCode = "UX002"; 159 } 160 161 window.$diags.trace(trace); 162 window.$diags.sendDiagnostics(diagnosticsCode, failedScript); 163 } 164 165 }, window.initializationTimeout || 7000); 166 167 return { 168 VERSION: "2.0.0", 169 170 // Export the flag 171 initializationSuccessful: _initializationSuccessful, 172 173 // Sends the specified info as diagnostics 174 // information on the service 175 sendDiagnostics: function (code, description, stack) { 176 window.location.replace(this.toDiagnosticsPath(code, description, stack)); 177 }, 178 179 // Sends the specified info as diagnostics 180 // information on the service asynchronously 181 sendQuietDiagnostics: function (code, description, stack) { 182 $.ajax({ url: this.toDiagnosticsPath(code, description, stack) }); 183 }, 184 185 // Convert diagnostics to a request path. 186 toDiagnosticsPath: function (code, description, stack) { 187 // Wrap the diagnostics in the version wrapper 188 var diagsJson = this.toJson(code, stack); 189 var path = settings.hosts.tenant + "/api/" + settings.api + "/error?code=" + code + "&diags=" + encodeURIComponent(diagsJson) + "&csrf_token=" + settings.csrf + "&tx=" + settings.transId + "&p=" + settings.hosts.policy; 190 191 // Add any information to the path 192 if (description) { 193 path += "&desc=" + encodeURIComponent(description); 194 } 195 196 return path; 197 }, 198 199 // Returns the diagnostics trace 200 // as json 201 toJson: function (code, stack) { 202 // Check the length of the trace to ensure that it is below the max trace 203 var jsonTrace = JSON.stringify(_trace); 204 var truncated = false; 205 206 while (_trace.length !== 0 && jsonTrace.length > window.maxTrace) 207 { 208 // Remove the first trace, since it is less likely to contain the actual error 209 _trace.shift(); 210 jsonTrace = JSON.stringify(_trace); 211 truncated = true; 212 } 213 214 var baseDiagnostics = { 215 "pageViewId": settings.pageViewId, 216 "pageId": settings.api, 217 "trace": _trace 218 }; 219 220 if (truncated) 221 { 222 baseDiagnostics.truncated = truncated; 223 } 224 225 // If an error add details to diagnostics 226 if (code) 227 { 228 baseDiagnostics.code = code; 229 } 230 231 // Add any stack detail to the diagnostics 232 // information 233 if (stack) 234 { 235 baseDiagnostics.info = stack; 236 } 237 238 return JSON.stringify(baseDiagnostics); 239 }, 240 241 // Adds the trace information to the 242 // trace stack 243 trace: function (trace) { 244 _trace.push(trace.toJson()); 245 return; 246 }, 247 248 // Outputs the contents of the trace 249 // to the console 250 toConsole: function () { 251 for (var i = 0, len = _trace.length; i < len; i++) { 252 console.log(_trace[i]); 253 } 254 return; 255 }, 256 257 // Show the current stack trace 258 traceStack: _trace 259 } 260}($trace, SETTINGS)); 261 262// Listen to online and offline event and append it to the client side traces. 263(function () { 264 var appendOnlineStatusToTrace = function() { 265 var status = window.navigator !== undefined && window.navigator.onLine !== undefined ? (window.navigator.onLine ? "Online" : "Offline") : "NotSupported"; 266 var trace = new $trace("T030", true); 267 trace.append(status); 268 $diags.trace(trace); 269 } 270 window.addEventListener('online', appendOnlineStatusToTrace); 271 window.addEventListener('offline', appendOnlineStatusToTrace); 272}()); 273/* endinject */ 274 275/* inject:ief-sanitizer.js */ 276var $santizer = (function ($cors, settings) { 277 // Processes the cross origin document, santizing 278 // the content before setting as the document 279 var _santize = function (input) { 280 281 // If no sanitization needed, return input 282 if (settings.pageMode === 1) { 283 return input 284 } 285 286 return (function (trace) { 287 try { 288 return sanitizeHtml(input, SETTINGS.sanitizerPolicy); 289 } 290 catch (error) { 291 trace.append(" - err:" + error.message); 292 $diags.trace(trace); 293 // Send diagnostics to the service 294 $diags.sendDiagnostics("UX017", SETTINGS.remoteResource); 295 } 296 finally { 297 $diags.trace(trace); 298 } 299 }(new $trace("T029", true))); 300 }; 301 302 // Export the santize function 303 return { 304 santize: _santize 305 }; 306}($santizer, SETTINGS)); 307/* endinject */ 308 309/* inject:ief-initializer.js */ 310if (typeof navigator.cookieEnabled === "undefined") { 311 document.cookie = "probe"; 312 navigator.cookieEnabled = (document.cookie.indexOf("probe") !== -1) ? true : false; 313}; 314
315if (!navigator.cookieEnabled) document.getElementById('no_cookie').className = ''; if (typeof $diags !== 'undefined') $diags.initializationSuccessful = true; 316 317// Globals for indicating the various stages 318// of page readiness. 319// window.contentReady: indicates that the 320// cross origin document has been downloaded 321// and can be processed. 322// window.pageReady: indicates that the cross 323// origin content has been processed and DOM 324// updated, ready for initialization 325window.contentReady, window.pageReady = false; 326 327(function () { 328 // Add the querySelectorAll polyfill for IE6 & IE7 329 if (!document.querySelectorAll) { 330 console.log("Creating polyfill for querySelectorAll."); 331 document.querySelectorAll = function (selector, maxCount) { 332 var style = style = document.createStyleSheet() 333 var all = document.all, 334 l = all.length, 335 i, 336 resultSet = []; 337 338 style.addRule(selector, "k:v"); 339 for (i = 0; i < l; i += 1) { 340 if (all[i].currentStyle.k === "v") { 341 resultSet.push(all[i]); 342 if (resultSet.length > Infinity) { 343 break; 344 } 345 } 346 } 347 style.removeRule(0); 348 return resultSet; 349 } 350 } 351 352 // Add the trim polyfill for IE6 & IE7 353 if (!String.prototype.trim) { 354 console.log("Creating polyfill for String.prototype.trim."); 355 (function () { 356 // Make sure we trim BOM and NBSP 357 var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; 358 String.prototype.trim = function () { 359 return this.replace(rtrim, ''); 360 }; 361 })(); 362 } 363}()); 364 365// Only kick off sript downloads and page 366// processing if the user agent supports 367// cookies and javascript 368if (navigator.cookieEnabled) { 369 370 var preloadCssLink = []; 371 372 // Convert any undefined console functions to a noop. 373 (function () { 374 var method; 375 var noop = function () { }; 376 var methods = [ 377 'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error', 378 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', 379 'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd', 380 'timeStamp', 'trace', 'warn' 381 ]; 382 var length = methods.length; 383 var console = (window.console = window.console || {}); 384 385 while (length--) { 386 method = methods[length]; 387 if (!console[method]) { 388 console[method] = noop; 389 } 390 } 391 }()); 392 393 if (!String.prototype.endsWith) { 394 String.prototype.endsWith = function (pattern) { 395 var d = this.length - pattern.length; 396 return d >= 0 && this.lastIndexOf(pattern) === d; 397 }; 398 } 399 400 var checkCssPreloaded = function () { 401 preloadCssLink = preloadCssLink.filter(function (cssLink) { 402 for (var i = 0; i < document.styleSheets.length; i++) { 403 try { 404 // cssRules is a common property that can be used to check if css link is loaded. 405 // It has full support on all major browsers. https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet 406 if (document.styleSheets[i].href != null && document.styleSheets[i].href.endsWith(cssLink) && document.styleSheets[i].cssRules) { 407 return false; 408 } 409 } catch (e) { 410 // Initially, on Firefox, cssRules won't be accessible, thus it could throw errors. 411 if (e.code !== DOMException.INVALID_ACCESS_ERR && e.name !== "Error") { 412 throw e; 413 } else { 414 return true; 415 } 416 } 417 } 418 419 return true; 420 }); 421 422 if (preloadCssLink.length === 0) { 423 $("body").show(); 424 } else { 425 setTimeout(function () { checkCssPreloaded(); }, 0); 426 } 427 }; 428 429 var preloadJavaScript = function (scriptTags) { 430 var injectScriptInline = function (index) { 431 var scriptTag = $(scriptTags[index]); 432 var url = scriptTag.attr("src"); 433 if (url) { 434 return $.ajax({
435 method: "GET", 436 url: url, 437 dataType: "text" 438 }).done(function (data) { 439 scriptTag.text(data); 440 scriptTag.removeAttr("src"); 441 console.log("Finish pre-loading JavaScript: " + url); 442 }).fail(function (XMLHttpRequest, textStatus, errorThrown) { 443 console.log("Loading JavaScript failed: " + url + " " + textStatus + " " + errorThrown); 444 }); 445 } 446 }; 447 448 var ajaxCalls = []; 449 if (scriptTags) { 450 for (var i = 0; i < scriptTags.length; i++) { 451 ajaxCalls.push(injectScriptInline(i)); 452 } 453 } 454 455 return $.when.apply($, ajaxCalls); 456 }; 457 458 var $cors = (function ($cors, settings) { 459 var _crossOriginDocument; 460 461 // Processes the cross origin document, santizing 462 // the content before setting as the document 463 var _process = function (callback) { 464 (function (trace) { 465 try { 466 var html = document.createElement('html'); 467 html.innerHTML = $santizer.santize(_crossOriginDocument); 468 var sanitizedHead = $(html).find('head:first'); 469 var sanitizedBody = $(html).find('body:first'); 470
471 // Get script tags with data-preload 472 var scriptTags = sanitizedHead.find("script"); 473 var preloadScripts = []; 474 for (var i = 0; i < scriptTags.length; i++) { 475 var script = scriptTags[i]; 476 if (script.getAttribute('src') && 477 script.getAttribute('data-preload') && 478 script.getAttribute('data-preload').toLowerCase() === 'true') { 479 preloadScripts.push(script); 480 } 481 } 482 483 preloadJavaScript(preloadScripts).then(function () { 484 485 // Replace the title 486 if (sanitizedHead.find("title").length > 0) { 487 $("title").remove(); 488 } 489 490 // If the favicon contains an empty href, set 491 // href a base64 image of an empty png. This avoid the 492 // favicon request coming back to I2E resulting in the 404s 493 var faviconLink = "link[rel$='icon']", 494 favicon = sanitizedHead.find(faviconLink), 495 defaultIcon = "data:;base64,iVBORw0KGgo="; 496 497 if (favicon && favicon[0]) { 498 if (favicon[0].getAttribute("href") === undefined) { 499 favicon[0].setAttribute("href", defaultIcon); 500 } 501 502 // Remove default favicon 503 $("head").find(faviconLink).remove(); 504 } 505 506 // Check if any stylesheet links need to be pre-loaded before showing the page 507 var links = sanitizedHead.find("link"); 508 for (var i = 0; i < links.length; i++) { 509 var link = links[i]; 510 if (link.getAttribute('rel') === 'stylesheet' && 511 link.getAttribute('href') && 512 link.getAttribute('data-preload') && 513 link.getAttribute('data-preload').toLowerCase() === 'true') {
514 // Without this setup, SecurityError could appear when accessing styleSheets.cssRules. 515 link.setAttribute('crossorigin', 'anonymous'); 516 $("body").hide(); 517 preloadCssLink.push(link.getAttribute('href')); 518 } 519 } 520 521 // Add custom template head section into current html head section 522 $("head").prepend(sanitizedHead.html()); 523 524 // Apply tenant/company branding settings to the theme 525 // this will customize the theme to look closer to the customer's brand 526 applyTenantBranding(sanitizedBody); 527 528 // Merge the element content into the customer 529 // content 530 (function (subTrace) { 531 var api = sanitizedBody.find("#api"); 532 var elementContent = $($element.getElementContent()).html(); 533 534 // Get all existing attributes, before replacing 535 var existingAttributes = api[0].attributes; 536 api.replaceWith($(elementContent)); 537 538 // Now add back the existing attributes 539 // excluding the id attribute back onto 540 // the api node. Grab the updated #api first. 541 api = sanitizedBody.find("#api"); 542 $.each(existingAttributes, function () { 543 if (this.name !== "id") { 544 api.attr(this.name, this.value); 545 } 546 }); 547 548 sanitizedBody = $(sanitizedBody.html()); 549 550 $diags.trace(subTrace); 551 }(new $trace("T004", true))); 552 553 setTimeout(function () { 554 // Add custom template body section into current html body section 555 $("body").append(sanitizedBody); 556 if ($.isFunction(callback)) { 557 callback(); 558 } 559 }, 0); 560 561 // Make sure screen reader to announce the page name, also prevent reading "table". 562 $("table[class=panel_layout]").attr({ "aria-label": document.title }); 563 }); 564 } 565 catch (error) { 566 trace.append(" - err:" + error.message); 567 } 568 finally { 569 $diags.trace(trace); 570 } 571 }(new $trace("T019", true))); 572 }; 573 574 // So as the this script has loaded, attempt 575 // to get the cross origin document 576 (function getCrossOriginDocument() { 577 (function (trace) { 578 var usingXhr = !window.XDomainRequest; 579 var requestor = usingXhr ? new XMLHttpRequest() : new XDomainRequest(); 580 var remoteResource = SETTINGS.remoteResource; 581 582 // If the resource being fetched is from the I2E static service, 583 // add the slice/dc query string 584 if (remoteResource.indexOf(window.staticHost) === 0) { 585 var initialPrepend = remoteResource.indexOf("?") === -1 ? "?" : "&"; 586 remoteResource += initialPrepend + "slice=" + window.targetSlice; 587 remoteResource += "&dc=" + window.targetDc; 588 } 589 590 requestor.open("GET", remoteResource); 591
592 // Wire up the event handlers 593 requestor.onload = function () { 594 if (!usingXhr || usingXhr && requestor.status === 200) { 595 _crossOriginDocument = requestor.responseText; 596 597 // Update the global flag to indicate that the cross 598 // origin content has been now been downloaded 599 window.contentReady = true; 600 // Add remote resource URL to indicate if UI is customized on client side. 601 trace.append(' - URL:' + remoteResource); 602 $diags.trace(trace); 603 return; 604 } 605 606 // If the resource hasn't been found 607 if (requestor.status === 404) { 608 var errorTrace = new $trace("T028", false); 609 $diags.trace(errorTrace); 610 $diags.trace(trace); 611 // Send diagnostics to the service 612 $diags.sendDiagnostics("UX005", SETTINGS.remoteResource); 613 } 614 615 return; 616 } 617 618 // On error gets fired when there is not network or an issue connecting to 619 // the host 620 requestor.onerror = function () { 621 // We don't get a status back from XDomainRequest, either get 622 // sent to onload or onerror as is the case here 623 var status = 0; 624 625 if (usingXhr) { 626 status = requestor.status; 627 } 628 629 var errorTrace = new $trace("T027", false); 630 $diags.trace(errorTrace); 631 $diags.trace(trace); 632 // Send diagnostics to the service 633 $diags.sendDiagnostics("UX004", SETTINGS.remoteResource); 634 return; 635 } 636 637 // Handle timeout fetching the cross-origin resource 638 requestor.timeout = function () { 639 // On timeout we retry 640 this.tryCount++; 641 if (this.tryCount <= this.retryLimit) { 642 // Try again 643 getCrossOriginDocument(); 644 return; 645 } 646 647 var timeoutTrace = new $trace("T026", false); 648 $diags.trace(timeoutTrace); 649 $diags.trace(trace); 650 // Send diagnostics to the service 651 $diags.sendDiagnostics("UX003", SETTINGS.remoteResource); 652 return; 653 } 654 655 // Required by XDomainRequest, but don't do anthing with this 656 requestor.onprogress = function () { 657 } 658 659 // Set the request timeout to match the initializtion timeout -0.2s, 660 // so that we explicitly catch timeout issues with remote resources 661 requestor.timeout = (window.initializationTimeout || 7000) - 200; 662 663 // Send the request 664 requestor.send(); 665 }(new $trace("T021", true))); 666 }()); 667 668 // Export the process function 669 return { 670 process: _process 671 }; 672 }($cors, SETTINGS)); 673 674 var applyTenantBranding = function (templateBody) { 675 // If tenant branding is not set return 676 var tenantBrandingKey = "tenantBranding"; 677 if (!SETTINGS[tenantBrandingKey]) { 678 return; 679 } 680 681 var brandingData = SETTINGS[tenantBrandingKey]; 682 var backgroundColorKey = "backgroundColor"; 683 var backgroundImageUrlKey = "backgroundImageUrl"; 684 var bannerLogoUrlKey = "bannerLogoUrl"; 685 var $backgroundContainer = templateBody.find("div[data-tenant-branding-background-color=true]"); 686 if (brandingData[backgroundColorKey] && $backgroundContainer.length > 0) { 687 var styleEl = document.createElement("style"); 688 styleEl.innerHTML = "div[data-tenant-branding-background-color=true]#background_branding_container {background:" + brandingData[backgroundColorKe
688y] + "}"; 689 $("head").append(styleEl); 690 } 691 692 var $backgroundImage = templateBody.find("img[data-tenant-branding-background=true]"); 693 if (brandingData[backgroundImageUrlKey] && $backgroundImage.length > 0) { 694 $backgroundImage.attr("src", brandingData[backgroundImageUrlKey]); 695 } 696 697 var $companyLogo = templateBody.find("img[data-tenant-branding-logo=true]"); 698 if (brandingData[bannerLogoUrlKey] && $companyLogo.length > 0) { 699 $companyLogo.attr("src", brandingData[bannerLogoUrlKey]) 700 .show(); 701 } 702 }; 703 704 var sendPageLoadTime = function () { 705 var pageLoadTime = new PageLoadTime(); 706 var pltData = JSON.stringify(pageLoadTime.getPerformanceData()); 707 var localSettings = jQuery.extend(true, {}, window.SETTINGS); // Deep copy of original settings object 708 localSettings.contentType = 'application/json; charset=utf-8'; 709 localSettings.api = "client"; 710 $i2e.sendDataWithRetry( 711 pltData, 712 function (response) { 713 }, 714 function (xmlHttpRequest, textStatus, errorThrown) { 715 $diags.trace(new $trace("T035", false)); 716 }, 717 function () { 718 }, 719 "perftrace", 720 localSettings 721 ); 722 }; 723 724 // Wait for jQuery to load 725 (function defer() { 726 if (window.jQuery && typeof $element !== "undefined") { 727 // We need to wait on the remote 728 // content before we can update the DOM. 729 // Script is ready when the script 730 // download is complete, not execution 731 // of the script. 732 (function waitOnContentReady() { 733 if (window.contentReady) { 734 // Cross origin content can 735 // now be processed, which if successful 736 // sets the window.pageReady flag 737 $cors.process(function () { 738 // Now wait for body and page are ready. 739 // This ensures that any initialization 740 // that requires visible elements such as focus work 741 // as intended 742 $element.initialize(); 743 744 // Update the initialization flag to prevent diganostics 745 // phoning home 746 $diags.initializationSuccessful = true; 747 748 // Update the global flag indicating that the cross origin 749 // document has now been set 750 window.pageReady = true; 751 752 // Calling asynchronously to avoid potentials issue to block page from rendering. 753 setTimeout(sendPageLoadTime, 0); 754 755 checkCssPreloaded(); 756 }); 757 } 758 else { 759 setTimeout(waitOnContentReady, 0); 760 } 761 }()); 762 } else { 763 setTimeout(function () { defer(); }, 50); 764 } 765 })(); 766} 767 768/* endinject */ 769 770/* inject:handlebars.runtime-4.0.12.min.js */ 771/**! 772 773 @license 774 handlebars v4.0.12 775 776Copyright (C) 2011-2017 by Yehuda Katz 777 778Permission is hereby granted, free of charge, to any person obtaining a copy 779of this software and associated documentation files (the "Software"), to deal 780in the Software without restriction, including without limitation the rights 781to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 782copies of the Software, and to permit persons to whom the Software is 783furnished to do so, subject to the following conditions: 784 785The above copyright notice and this permission notice shall be included in 786all copies or substantial portions of the Software. 787 788THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 789IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 790FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 791AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 792LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 793OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 794THE SOFTWARE. 795 796*/ 797!function (a, b) { "object" == typeof exports && "object" == typeof module ? module.exports = b() : "function" == typeof define && define.amd ? define([], b) : "object" == typeof exports ? exports.Handlebars = b() : a.Handlebars = b() }(this, function () { return function (a) { function b(d) { if (c[d]) return c[d].exports; var e = c[d] = { exports: {}, id: d, loaded: !1 }; return a[d].call(e.exports, e, e.exports, b), e.loaded = !0, e.exports } var c = {}; return b.m = a, b.c = c, b.p = "", b(0) }([function (a, b, c) { "use strict"; function d() { var a = new h.HandlebarsEnvironment; return n.extend(a, h), a.SafeString = j["default"], a.Exception = l["default"], a.Utils = n, a.escapeExpression = n.escapeExpression, a.VM = p, a.template = function (b) { return p.template(b, a) }, a } var e = c(1)["default"], f = c(2)["default"]; b.__esModule = !0; var g = c(3), h = e(g), i = c(20), j = f(i), k = c(5), l = f(k), m = c(4), n = e(m), o = c(21), p = e(o), q = c(33), r = f(q), s = d(); s.create = d, r["default"](s), s["default"] = s, b["default"] = s, a.exports = b["default"] }, function (a, b) { "use strict"; b["default"] = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b["default"] = a, b }, b.__esModule = !0 }, function (a, b) { "use strict"; b["default"] = function (a) { return a && a.__esModule ? a : { "default": a } }, b.__esModule = !0 }, function (a, b, c) { "use strict"; function d(a, b, c) { this.helpers = a || {}, this.partials = b || {}, this.decorators = c || {}, i.registerDefaultHelpers(this), j.registerDefaultDecorators(this) } var e = c(2)["default"]; b.__esModule = !0, b.HandlebarsEnvironment = d; var f = c(4), g = c(5), h = e(g), i = c(9), j = c(17), k = c(19), l = e(k), m = "4.0.12"; b.VERSION = m; var n = 7; b.COMPILER_REVISION = n; var o = { 1: "<= 1.0.rc.2", 2: "== 1.0.0-rc.3", 3: "== 1.0.0-rc.4", 4
vendor: 16,504 bytes, line 797
797: "== 1.x.x", 5: "== 2.0.0-alpha.x", 6: ">= 2.0.0-beta.1", 7: ">= 4.0.0" }; b.REVISION_CHANGES = o; var p = "[object Object]"; d.prototype = { constructor: d, logger: l["default"], log: l["default"].log, registerHelper: function (a, b) { if (f.toString.call(a) === p) { if (b) throw new h["default"]("Arg not supported with multiple helpers"); f.extend(this.helpers, a) } else this.helpers[a] = b }, unregisterHelper: function (a) { delete this.helpers[a] }, registerPartial: function (a, b) { if (f.toString.call(a) === p) f.extend(this.partials, a); else { if ("undefined" == typeof b) throw new h["default"]('Attempting to register a partial called "' + a + '" as undefined'); this.partials[a] = b } }, unregisterPartial: function (a) { delete this.partials[a] }, registerDecorator: function (a, b) { if (f.toString.call(a) === p) { if (b) throw new h["default"]("Arg not supported with multiple decorators"); f.extend(this.decorators, a) } else this.decorators[a] = b }, unregisterDecorator: function (a) { delete this.decorators[a] } }; var q = l["default"].log; b.log = q, b.createFrame = f.createFrame, b.logger = l["default"] }, function (a, b) { "use strict"; function c(a) { return k[a] } function d(a) { for (var b = 1; b < arguments.length; b++)for (var c in arguments[b]) Object.prototype.hasOwnProperty.call(arguments[b], c) && (a[c] = arguments[b][c]); return a } function e(a, b) { for (var c = 0, d = a.length; c < d; c++)if (a[c] === b) return c; return -1 } function f(a) { if ("string" != typeof a) { if (a && a.toHTML) return a.toHTML(); if (null == a) return ""; if (!a) return a + ""; a = "" + a } return m.test(a) ? a.replace(l, c) : a } function g(a) { return !a && 0 !== a || !(!p(a) || 0 !== a.length) } function h(a) { var b = d({}, a); return b._parent = a, b } function i(a, b) { return a.path = b, a } function j(a, b) { return (a ? a + "." : "") + b } b.__esModule = !0, b.extend = d, b.indexOf = e, b.escapeExpression = f, b.isEmpty = g, b.createFrame = h, b.blockParams = i, b.appendContextPath = j; var k = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'", "`": "`", "=": "=" }, l = /[&<>"'`=]/g, m = /[&<>"'`=]/, n = Object.prototype.toString; b.toString = n; var o = function (a) { return "function" == typeof a }; o(/x/) && (b.isFunction = o = function (a) { return "function" == typeof a && "[object Function]" === n.call(a) }), b.isFunction = o; var p = Array.isArray || function (a) { return !(!a || "object" != typeof a) && "[object Array]" === n.call(a) }; b.isArray = p }, function (a, b, c) { "use strict"; function d(a, b) { var c = b && b.loc, g = void 0, h = void 0; c && (g = c.start.line, h = c.start.column, a += " - " + g + ":" + h); for (var i = Error.prototype.constructor.call(this, a), j = 0; j < f.length; j++)this[f[j]] = i[f[j]]; Error.captureStackTrace && Error.captureStackTrace(this, d); try { c && (this.lineNumber = g, e ? Object.defineProperty(this, "column", { value: h, enumerable: !0 }) : this.column = h) } catch (k) { } } var e = c(6)["default"]; b.__esModule = !0; var f = ["description", "fileName", "lineNumber", "message", "name", "number", "stack"]; d.prototype = new Error, b["default"] = d, a.exports = b["default"] }, function (a, b, c) { a.exports = { "default": c(7), __esModule: !0 } }, function (a, b, c) { var d = c(8); a.exports = function (a, b, c) { return d.setDesc(a, b, c) } }, function (a, b) { var c = Object; a.exports = { create: c.create, getProto: c.getPrototypeOf, isEnum: {}.propertyIsEnumerable, getDesc: c.getOwnPropertyDescriptor, setDesc: c.defineProperty, setDescs: c.defineProperties, getKeys: c.keys, getNames: c.getOwnPropertyNames, getSymbols: c.getOwnPropertySymbols, each: [].forEach } }, function (a, b, c) { "use strict"; function d(a) { g["default"](a), i["default"](a), k["default"](a), m["default"](a), o["default"](a), q["default"](a), s["default"](a) } var e = c(2)["default"]; b.__esModule = !0, b.registerDefaultHelpers = d; var f = c(10), g = e(f), h = c(11), i = e(h), j = c(12), k = e(j), l = c(13), m = e(l), n = c(14), o = e(n), p = c(15), q = e(p), r = c(16), s = e(r) }, function (a, b, c) { "use strict"; b.__esModule = !0; var d = c(4); b["default"] = function (a) { a.registerHelper("blockHelperMissing", function (b, c) { var e = c.inverse, f = c.fn; if (b === !0) return f(this); if (b === !1 || null == b) return e(this); if (d.isArray(b)) return b.length > 0 ? (c.ids && (c.ids = [c.name]), a.helpers.each(b, c)) : e(this); if (c.data && c.ids) { var g = d.createFrame(c.data); g.contextPath = d.appendContextPath(c.data.contextPath, c.name), c = { data: g } } return f(b, c) }) }, a.exports = b["default"] }, function (a, b, c) { "use strict"; var d = c(2)["default"]; b.__esModule = !0; var e = c(4), f = c(5), g = d(f); b["default"] = function (a) { a.registerHelper("each", function (a, b) { function c(b, c, f) { j && (j.key = b, j.index = c, j.first = 0 === c, j.last = !!f, k && (j.contextPath = k + b)), i += d(a[b], { data: j, blockParams: e.blockParams([a[b], b], [k + b, null]) }) } if (!b) throw new g["default"]("Must pass iterator to #each"); var d = b.fn, f = b.inverse, h = 0, i = "", j = void 0, k = void 0; if (b.data && b.ids && (k = e.appendContextPath(b.data.contextPath, b.ids[0]) + "."), e.isFunction(a) && (a = a.call(this)), b.data && (j = e.createFrame(b.data)), a && "object" == typeof a) if (e.isArray(a)) for (var l = a.length; h < l; h++)h in a && c(h, h, h === a.length - 1); else { var m = void 0; for (var n in a) a.hasOwnProperty(n) && (void 0 !== m && c(m, h - 1), m = n, h++); void 0 !== m && c(m, h - 1, !0) } return 0 === h && (i = f(this)), i }) }, a.exports = b["default"] }, function (a, b, c) { "use strict"; var d = c(2)["default"]; b.__esModule = !0; var e = c(5), f = d(e); b["default"] = function (a) { a.registerHelper("helperMissing", function () { if (1 !== arguments.length) throw new f["default"]('Missing helper: "' + arguments[arguments.length - 1].name + '"') }) }, a.exports = b["default"] }, function (a, b, c) { "use strict"; b.__esModule = !0; var d = c(4); b["default"] = function (a) { a.registerHelper("if", function (a, b) { return d.isFunction(a) && (a = a.call(this)), !b.hash.includeZero && !a || d.isEmpty(a) ? b.inverse(this) : b.fn(this) }), a.registerHelper("unless", function (b, c) { return a.helpers["if"].call(this, b, { fn: c.inverse, inverse: c.fn, hash: c.hash }) }) }, a.exports = b["default"] }, function (a, b) { "use strict"; b.__esModule = !0, b["default"] = function (a) { a.registerHelper("log", function () { for (var b = [void 0], c = arguments[arguments.length - 1], d = 0; d < arguments.length - 1; d++)b.push(arguments[d]); var e = 1; null != c.hash.level ? e = c.hash.level : c.data && null != c.data.level && (e = c.data.level), b[0] = e, a.log.apply(a, b) }) }, a.exports = b["default"] }, function (a, b) { "use strict"; b.__esModule = !0, b["default"] = function (a) { a.registerHelper("lookup", function (a, b) { return a && a[b] }) }, a.exports = b["default"] }, function (a, b, c) { "use strict"; b.__esModule = !0; var d = c(4); b["default"] = function (a) { a.registerHelper("with", function (a, b) { d.isFunction(a) && (a = a.call(this)); var c = b.fn; if (d.isEmpty(a)) return b.inverse(this); var e = b.data; return b.data && b.ids && (e = d.createFrame(b.data), e.contextPath = d.appendContextPath(b.data.contextPath, b.ids[0])), c(a, { data: e, blockParams: d.blockParams([a], [e && e.contextPath]) }) }) }, a.exports = b["default"] }, function (a, b, c) { "use strict"; function d(a) { g["default"](a) } var e = c(2)["default"]; b.__esModule = !0, b.registerDefaultDecorators = d; var f = c(18), g = e(f) }, function (a, b, c) { "use strict"; b.__esModule = !0; var d = c(4); b["default"] = function (a) { a.registerDecorator("inline", function (a, b, c, e) { var f = a; return b.partials || (b.partials = {}, f = function (e, f) { var g = c.partials; c.partials = d.extend({}, g, b.partials); var h = a(e, f); return c.partials = g, h }), b.partials[e.args[0]] = e.fn, f }) }, a.exports = b["default"] }, function (a, b, c) { "use strict"; b.__esModule = !0; var d = c(4), e = { methodMap: ["debug", "info", "warn", "error"], level: "info", lookupLevel: function (a) { if ("string" == typeof a) { var b = d.indexOf(e.methodMap, a.toLowerCase()); a = b >= 0 ? b : parseInt(a, 10) } return a }, log: function (a) { if (a = e.lookupLevel(a), "undefined" != typeof console && e.lookupLevel(e.level) <= a) { var b = e.methodMap[a]; console[b] || (b = "log"); for (var c = arguments.length, d = Array(c > 1 ? c - 1 : 0), f = 1; f < c; f++)d[f - 1] = arguments[f]; console[b].apply(console, d) } } }; b["default"] = e, a.exports = b["default"] }, function (a, b) { "use strict"; function c(a) { this.string = a } b.__esModule = !0, c.prototype.toString = c.prototype.toHTML = function () { return "" + this.string }, b["default"] = c, a.exports = b["default"] }, function (a, b, c) { "use strict"; function d(a) { var b = a && a[0] || 1, c = s.COMPILER_REVISION; if (b !== c) { if (b < c) { var d = s.REVISION_CHANGES[c], e = s.REVISION_CHANGES[b]; throw new r["default"]("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version (" + d + ") or downgrade your runtime to an older version (" + e + ").") } throw new r["default"]("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version (" + a[1] + ").") } } function e(a, b) { function c(c, d, e) { e.hash && (d = p.extend({}, d, e.hash), e.ids && (e.ids[0] = !0)), c = b.VM.resolvePartial.call(this, c, d, e); var f = b.VM.invokePartial.call(this, c, d, e); if (null == f && b.compile && (e.partials[e.name] = b.compile(c, a.compilerOptions, b), f = e.partials[e.name](d, e)), null != f) { if (e.indent) { for (var g = f.split("\n"), h = 0, i = g.length; h < i && (g[h] || h + 1 !== i); h++)g[h] = e.indent + g[h]; f = g.join("\n") } return f } throw new r["default"]("The partial " + e.name + " could not be compiled when running in runtime-only mode") } function d(b) { function c(b) { return "" + a.main(e, b, e.helpers, e.partials, g, i, h) } var f = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1], g = f.data; d._setup(f), !f.partial && a.useData && (g = j(b, g)); var h = void 0, i = a.useBlockParams ? [] : void 0; return a.useDepths && (h = f.depths ? b != f.depths[0] ? [b].concat(f.depths) : f.depths : [b]), (c = k(a.main, c, e, f.depths || [], g, i))(b, f) } if (!b) throw new r["default"]("No environment passed to template"); if (!a || !a.main) throw new r["default"]("Unknown template object: " + typeof a); a.main.decorator = a.main_d, b.VM.checkRevision(a.compiler); var e = { strict: function (a, b) { if (!(b in a)) throw new r["default"]('"' + b + '" not defined in ' + a); return a[b] }, lookup: function (a, b) { for (var c = a.length, d = 0; d < c; d++)if (a[d] && null != a[d][b]) return a[d][b] }, lambda: function (a, b) { return "function" == typeof a ? a.call(b) : a }, escapeExpression: p.escapeExpression, invokePartial: c, fn: function (b) { var c = a[b]; return c.decorator = a[b + "_d"], c }, programs: [], program: function (a, b, c, d, e) { var g = this.programs[a], h = this.fn(a); return b || e || d || c ? g = f(this, a, h, b, c, d, e) : g || (g = this.programs[a] = f(this, a, h)), g }, data: function (a, b) { for (; a && b--;)a = a._parent; return a }, merge: function (a, b) { var c = a || b; return a && b && a !== b && (c = p.extend({}, b, a)), c }, nullContext: l({}), noop: b.VM.noop, compilerInfo: a.compiler }; return d.isTop = !0, d._setup = function (c) { c.partial ? (e.helpers = c.helpers, e.partials = c.partials, e.decorators = c.decorators) : (e.helpers = e.merge(c.helpers, b.helpers), a.usePartial && (e.partials = e.merge(c.partials, b.partials)), (a.usePartial || a.useDecorators) && (e.decorators = e.merge(c.decorators, b.decorators))) }, d._child = function (b, c, d, g) { if (a.useBlockParams && !d) throw new r["default"]("must pass block params"); if (a.useDepths && !g) throw new r["default"]("must pass parent depths"); return f(e, b, a[b], c, 0, d, g) }, d } function f(a, b, c, d, e, f, g) { function h(b) { var e = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1], h = g; return !g || b == g[0] || b === a.nullContext && null === g[0] || (h = [b].concat(g)), c(a, b, a.helpers, a.partials, e.data || d, f && [e.blockParams].concat(f), h) } return h = k(c, h, a, g, d, f), h.program = b, h.depth = g ? g.length : 0, h.blockParams = e || 0, h } function g(a, b, c) { return a ? a.call || c.name || (c.name = a, a = c.partials[a]) : a = "@partial-block" === c.name ? c.data["partial-block"] : c.partials[c.name], a } function h(a, b, c) { var d = c.data && c.data["partial-block"]; c.partial = !0, c.ids && (c.data.contextPath = c.ids[0] || c.data.contextPath); var e = void 0; if (c.fn && c.fn !== i && !function () { c.data = s.createFrame(c.data); var a = c.fn; e = c.data["partial-block"] = function (b) { var c = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1]; return c.data = s.createFrame(c.data), c.data["partial-block"] = d, a(b, c) }, a.partials && (c.partials = p.extend({}, c.partials, a.partials)) }(), void 0 === a && e && (a = e), void 0 === a) throw new r["default"]("The partial " + c.name + " could not be found"); if (a instanceof Function) return a(b, c) } function i() { return "" } function j(a, b) { return b && "root" in b || (b = b ? s.createFrame(b) : {}, b.root = a), b } function k(a, b, c, d, e, f) { if (a.decorator) { var g = {}; b = a.decorator(b, g, c, d && d[0], e, f, d), p.extend(b, g) } return b } var l = c(22)["default"], m = c(1)["default"], n = c(2)["default"]; b.__esModule = !0, b.checkRevision = d, b.template = e, b.wrapProgram = f, b.resolvePartial = g, b.invokePartial = h, b.noop = i; var o = c(4), p = m(o), q = c(5), r = n(q), s = c(3) }, function (a, b, c) { a.exports = { "default": c(23), __esModule: !0 } }, function (a, b, c) { c(24), a.exports = c(29).Object.seal }, function (a, b, c) { var d = c(25); c(26)("seal", function (a) { return function (b) { return a && d(b) ? a(b) : b } }) }, function (a, b) { a.exports = function (a) { return "object" == typeof a ? null !== a : "function" == typeof a } }, function (a, b, c) { var d = c(27), e = c(29), f = c(32); a.exports = function (a, b) { var c = (e.Object || {})[a] || Object[a], g = {}; g[a] = b(c), d(d.S + d.F * f(function () { c(1) }), "Object", g) } }, function (a, b, c) { var d = c(28), e = c(29), f = c(30), g = "prototype", h = function (a, b, c) { var i, j, k, l = a & h.F, m = a & h.G, n = a & h.S, o = a & h.P, p = a & h.B, q = a & h.W, r = m ? e : e[b] || (e[b] = {}), s = m ? d : n ? d[b] : (d[b] || {})[g]; m && (c = b); for (i in c) j = !l && s && i in s, j && i in r || (k = j ? s[i] : c[i], r[i] = m && "function" != typeof s[i] ? c[i] : p && j ? f(k, d) : q && s[i] == k ? function (a) { var b = function (b) { return this instanceof a ? new a(b) : a(b) }; return b[g] = a[g], b }(k) : o && "function" == typeof k ? f(Function.call, k) : k, o && ((r[g] || (r[g] = {}))[i] = k)) }; h.F = 1, h.G = 2, h.S = 4, h.P = 8, h.B = 16, h.W = 32, a.exports = h }, function (a, b) { var c = a.exports = "undefined" != typeof window && window.Math == Math ? window : "undefined" != typeof self && self.Math == Math ? self : Function("return this")(); "number" == typeof __g && (__g = c) }, function (a, b) { var c = a.exports = { version: "1.2.6" }; "number" == typeof __e && (__e = c) }, function (a, b, c) { var d = c(31); a.exports = function (a, b, c) { if (d(a), void 0 === b) return a; switch (c) { case 1: return function (c) { return a.call(b, c) }; case 2: return function (c, d) { return a.call(b, c, d) }; case 3: return function (c, d, e) { return a.call(b, c, d, e) } }return function () { return a.apply(b, arguments) } } }, function (a, b) { a.exports = function (a) { if ("function" != typeof a) throw TypeError(a + " is not a function!"); return a } }, function (a, b) { a.exports = function (a) { try { return !!a() } catch (b) { return !0 } } }, function (a, b) { (function (c) { "use strict"; b.__esModule = !0, b["default"] = function (a) { var b = "undefined" != typeof c ? c : window, d = b.Handlebars; a.noConflict = function () { return b.Handlebars === a && (b.Handlebars = d), a } }, a.exports = b["default"] }).call(b, function () { return this }()) }]) });
798/* endinject */ 799 800/* inject:ief-core.js */ 801"use strict"; 802var $i2e = (function (content, settings) { 803 return { 804 VERSION: "2.0.0", 805 APPLE_IDP_PATH_REGEX: new RegExp(/\?claimsexchange=.*apple.*/i), 806 // Sends a request to the server using window.location.replace or window.location.assign 807 // Note: Can only be executed once per page 808 // @parameter path {string} the URL to redirect to 809 // @parameter preserveSessionHistory {boolean} whether to keep the current URL in the browser's session history so that the user can navigate to it with the back button 810 redirectToServer: function (path, preserveSessionHistory) { 811 // Prevent this method from being executed again. This is done to help prevent additional redirects while the first 812 // redirect is in progress (such as what would happen if a button was pressed twice quickly) 813 // Applies it on non Apple IDP cases only. Since apple idp on Safari allows user to stay on the screen with a native pop up. 814 if (!this.isSafari() || !this.APPLE_IDP_PATH_REGEX.test(path)) { 815 this.redirectToServer = function () { }; 816 } 817 $diags.trace(new $trace("T002", false)); 818 var link = this.getRedirectLink(path); 819 $(document).ready(function () { 820 821 // Check if diagnostics are being returned on success 822 if (window.diagsAlways) 823 { 824 link += "&diags=" + encodeURIComponent($diags.toJson()); 825 } 826 827 preserveSessionHistory ? window.location.assign(link) : window.location.replace(link); 828 }); 829 }, 830 831 // Returns a path that can be used in an href or by the redirectToServer function 832 // @parameter {string} the URL to redirect to 833 getRedirectLink: function (path) { 834 path = path + ((path.indexOf("?") === -1) ? "?" : "&") + "csrf_token=" + settings.csrf + "&tx=" + settings.transId; 835 836 // Check if we have metrics 837 if (window.Metrics !== undefined) { 838 path += "&metrics=" + encodeURIComponent(window.Metrics.serialize()); 839 } 840 841 return settings.hosts.tenant + "/api/" + settings.api + "/" + path + "&p=" + settings.hosts.policy; 842 }, 843 844 // Sends the data to the CPIM service for verification and storage 845 // @parameter {string} the URL encoded form data entered by the user 846 // @parameter {string} the path to include after the API definition in the URL 847 // @parameter {object} an optional local settings object to build the request from 848 sendData: function (data, path, localSettings) { 849 // Use global settings if localSettings was not provided 850 localSettings = localSettings !== undefined ? localSettings : settings; 851 852 var url = localSettings.hosts.tenant + "/" 853 + localSettings.api 854 + (path !== undefined ? "/" + path : "") 855 + "?tx=" + localSettings.transId + "&p=" + localSettings.hosts.policy; 856 857 var headers = { 858 "X-CSRF-TOKEN": settings.csrf 859 }; 860 861 if (settings.isPageViewIdSentWithHeader) { 862 headers["x-ms-cpim-pageviewid"] = settings.pageViewId; 863 } 864 865 return $.ajax({ 866 type: "POST", 867 dataType: "json", 868 headers: headers, 869 timeout: localSettings.config.timeout || 90000, 870 url: url, 871 cache: false, 872 data: data 873 }); 874 }, 875 876 // Sends the data to the CPIM service for verification and storage 877 // @parameter {string} the URL encoded form data entered by the user 878 // @parameter {function} the function to call on success 879 // @parameter {function} the function to call on error 880 // @parameter {function} the function to call when request complete 881 // @parameter {string} the path to include after the API definition in the URL 882 // @parameter {object} an optional local settings object to build the request from 883 sendDataWithRetry: function (data, onSuccess, onError, onComplete, path, localSettings) { 884 // Use global settings if localSettings was not provided 885 localSettings = localSettings !== undefined ? localSettings : settings; 886 887 var url = localSettings.hosts.tenant + "/" 888 + localSettings.api 889 + (path !== undefined ? "/" + path : "") 890 + "?tx=" + localSettings.transId + "&p=" + localSettings.hosts.policy; 891 892 var headers = { 893 "X-CSRF-TOKEN": settings.csrf 894 }; 895 896 if (settings.isPageViewIdSentWithHeader) { 897 headers["x-ms-cpim-pageviewid"] = settings.pageViewId; 898 } 899 900 var localXhrSettings = localSettings.xhrSettings; 901 902 return $.ajax({
903 type: "POST", 904 dataType: "json", 905 headers: headers, 906 retryMaxAttempts: localXhrSettings && localXhrSettings.hasOwnProperty("retryMaxAttempts") ? localXhrSettings.retryMaxAttempts : 3, 907 retryDelay: localXhrSettings && localXhrSettings.hasOwnProperty("retryDelay") ? localXhrSettings.retryDelay : 200, 908 retryExponent: localXhrSettings && localXhrSettings.hasOwnProperty("retryExponent") ? localXhrSettings.retryExponent : 2, 909 retryEnabled: localXhrSettings && localXhrSettings.hasOwnProperty("retryEnabled") ? localXhrSettings.retryEnabled : false, 910 retryOn: localXhrSettings && localXhrSettings.hasOwnProperty("retryOn") ? localXhrSettings.retryOn : [], 911 retryAttempt: 0, 912 timeout: localSettings.config.timeout || 90000, 913 url: url, 914 cache: false, 915 contentType: localSettings.contentType !== undefined ? localSettings.contentType : 'application/x-www-form-urlencoded; charset=UTF-8', 916 data: data, 917 success: onSuccess, 918 error: function (xhr, textStatus, errorThrown) { 919 // Check if retry is enabled and if the error is a re-tryable error, 920 // if not call the onError 921 if (this.retryEnabled === false || this.retryOn.indexOf(textStatus) === -1) onError(xhr, textStatus, errorThrown); 922 923 // Check if the agent is online, and if not 924 // setup the retry 925 var isOnline = (window.navigator !== undefined && window.navigator.onLine !== undefined) ? window.navigator.onLine : true; 926 927 // Trace the online status attempt 928 var onlineTrace = new $trace("T030", false); 929 onlineTrace.append(isOnline ? "Online" : "Offline"); 930 $diags.trace(onlineTrace); 931 932 if (isOnline === false) { 933 // If there are still attempts left 934 if (this.retryAttempt < this.retryMaxAttempts) { 935 936 // Prepare the settings for subsequent 937 // attempts; 938 this.retryAttempt++; // bump the attempt count 939 this.retryDelay = this.retryAttempt === 1 ? this.retryDelay : this.retryDelay * this.retryExponent; 940 941 // Trace the retry attempt 942 var retryTrace = new $trace("T031", false); 943 retryTrace.append(" '" + textStatus + ": ' - retryAttempt: " + this.retryAttempt + " - retryDelay: " + this.retryDelay + " - retryExponent:" + this.retryExponent); 944 $diags.trace(retryTrace); 945 946 // Now set up the delay before retrying 947 setTimeout(function (ajaxContext) { 948 return $.ajax(ajaxContext); 949 }, this.retryDelay, this); 950 } else { 951 // Run out of attempts, handover to the onError 952 $diags.trace(new $trace("T032", false)); 953 onError(xhr, textStatus, errorThrown); 954 } 955 } 956 }, 957 complete: onComplete 958 }); 959 }, 960 961 // Complies the template and binds to the specified 962 // data, returning the bound template 963 generateServiceContent: function (templateName, data) { 964 //var compiled = Handlebars.compile(template); 965 var template = Handlebars.templates[templateName]; 966 return template(data); 967 }, 968 969 // Inserts the service content to the page 970 // using the api div as the anchor point 971 insertServiceContent: function (serviceContent){ 972 var $serviceContent = $(serviceContent);
973 var api = $("#api"); 974 975 // Get all existing attributes 976 var existingAttributes = api[0].attributes; 977 api.replaceWith($serviceContent.html()); 978 979 // Now add back the existing attributes 980 // excluding the id attribute 981 $.each(existingAttributes, function () { 982 if (this.name !== "id") { 983 $("#api").attr(this.name, this.value); 984 } 985 }); 986 }, 987 988 // Returns the text from page CONTENT using the specified key 989 lookupLanguage: function (key) { 990 return content[key]; 991 }, 992 993 // Uses the static content url from settings to 994 // bind the host to the provided path 995 bindHost: function (path) { 996 return settings.hosts.static + path; 997 }, 998 999 isSafari: function () { 1000 var ua = navigator.userAgent.toLowerCase(); 1001 if (ua.indexOf('safari') !== -1) { 1002 if (ua.indexOf('chrome') > -1) { 1003 return false; // Chrome 1004 } else { 1005 return true; // Safari 1006 } 1007 } 1008 } 1009 } 1010}(CONTENT, SETTINGS)); 1011/* endinject */ 1012 1013/* inject:ief-handlebar-helpers.js */ 1014"use strict"; 1015(function (content, settings) { 1016 // Register handlebars helpers 1017 // Langauge helper 1018 Handlebars.registerHelper('getContent', function (contentName) { 1019 return new Handlebars.SafeString(content[contentName]); 1020 }); 1021 1022 // Returns content without converting to a SafeString 1023 Handlebars.registerHelper('getRawContent', function (contentName) { 1024 return content[contentName]; 1025 }); 1026
1027 Handlebars.registerHelper('getSettingAsBoolean', function (settingName) { 1028 var value = settings.config[settingName]; 1029 return value && value.toLowerCase() === 'true'; 1030 }); 1031 1032 // Url helper 1033 Handlebars.registerHelper('getHostQualfiedUrl', function (path) { 1034 return settings.hosts.static + path; 1035 }); 1036 1037 // Block helper for outputing a template block if the specified setting is true 1038 Handlebars.registerHelper('isSettingTrue', function (settingName, options) { 1039 var value = settings.config[settingName]; 1040 1041 if (value && value.toLowerCase() === 'true') { 1042 return options.fn(this); 1043 } 1044 1045 return null; 1046 }); 1047 1048 // Block helper for outputing a template block if the specified setting is equal to the specified 1049 // value of if not present the default 1050 Handlebars.registerHelper('isSettingEqual', function (settingName, equals, defaultValue, options) { 1051 var value = settings.config[settingName] || defaultValue; 1052 var eqArray = equals.split(','); 1053 var arrayLength = eqArray.length; 1054 1055 for (var i = 0; i < arrayLength; i++) { 1056 if (eqArray[i] && eqArray[i].toLowerCase() === value.toLowerCase()) { 1057 return options.fn(this); 1058 } 1059 } 1060 1061 return null; 1062 }); 1063 1064 // Block helper for outputing a template block if the specified setting exists
1065 Handlebars.registerHelper('doesSettingExist', function (settingName, options) { 1066 var value = settings.config[settingName]; 1067 if (value) { 1068 return options.fn(this); 1069 } 1070 else { 1071 return options.inverse(this); 1072 } 1073 }); 1074 1075 // Block helper for outputing a template block if the specified setting contains the specified 1076 // value 1077 Handlebars.registerHelper('doesSettingContain', function (settingName, contains, defaultValue, options) { 1078 var value = settings.config[settingName] || defaultValue; 1079 var valueArray = value.split(','); 1080 var arrayLength = valueArray.length; 1081 1082 for (var i = 0; i < arrayLength; i++) { 1083 if (valueArray[i] && valueArray[i].toLowerCase() === contains.toLowerCase()) { 1084 return options.fn(this); 1085 } 1086 } 1087 1088 return options.inverse(this); 1089 }); 1090 1091 // Block helper for outputing a template block if the collection only contains a single item 1092 Handlebars.registerHelper('isSingle', function (collection, options) { 1093 if (collection.length === 1) { 1094 return options.fn(this); 1095 } 1096 1097 return null; 1098 }); 1099 1100 // Block helper for outputing a template block if the collection only contains a single item 1101 Handlebars.registerHelper('isMultiple', function (collection, options) { 1102 if (collection.length > 1) { 1103 return options.fn(this); 1104 } 1105 1106 return null; 1107 }); 1108 1109 // Block helper for outputing an array 1110 Handlebars.registerHelper('getCountryDialingCodeOptionList', function () { 1111 var optionList = ""; 1112 var localeCountry = settings.locale.country; 1113 1114 var elem = document.createElement('textarea'); 1115 elem.innerHTML = $i2e.lookupLanguage("countryList"); 1116 var processingList = JSON.parse(elem.value); 1117 1118 // Iterate through the isolocalized.countryByLang as this ensures that 1119 // countries appear in the correct alphabetical order. 1120 for (var entry in processingList) { 1121 // Get the dialing code from the data
1122 var dialingCode = $isoData.countryByIso[entry]["dc"]; 1123 optionList += "<option value='+" + dialingCode + (localeCountry === entry ? "' selected>" : "'>") + processingList[entry] + (dialingCode ? " (+" + dialingCode + ")" : "") + "</option>"; 1124 } 1125 return optionList; 1126 }); 1127}(CONTENT, SETTINGS)); 1128/* endinject */ 1129 1130/* inject:ief-modal.js */ 1131/* endinject */ 1132 1133/* inject:predicateValidation.js */ 1134"use strict"; 1135var $predicateValidation = function ($diags, content, settings) { 1136 1137 /** 1138 * UNKNOWN - the method passed was not defined in the xml 1139 * INCLUDES_CHARACTERS - validates that a character set exists in the claim value 1140 * MATCHES_REGEX - check the claim value against a regular expression 1141 * IS_LENGTH_RANGE - check if claim value has length in a specific range 1142 */ 1143 var PREDICATE_METHODS = { 1144 UNKNOWN: 0, INCLUDES_CHARACTERS: 1, MATCHES_REGEX: 2, IS_LENGTH_RANGE: 3, IS_DATE_RANGE: 4 1145 }; 1146 1147 /** 1148 * MINIMUM - the minimum length 1149 * MAXIMUM - the maximum length 1150 * CHARACTER_SET - the character set to validate against 1151 * REGULAR_EXPRESSION - the regular expression to check against 1152 */ 1153 var PREDICATE_PARAMETERS = { 1154 MINIMUM: 1, MAXIMUM: 2, CHARACTER_SET: 3, REGULAR_EXPRESSION: 4 1155 }; 1156 1157 // Returns the first object in the Attribute fields who has the same claimID, including those inside display control 1158 var _findAttributeFieldByClaimId = function(claimId) { 1159 if (!Array.isArray(SA_FIELDS.AttributeFields)) return null; 1160 for (var i = 0; i < SA_FIELDS.AttributeFields.length; i++) { 1161 if (SA_FIELDS.AttributeFields[i].ID === claimId) { 1162 return SA_FIELDS.AttributeFields[i]; 1163 } 1164 1165 if (SA_FIELDS.AttributeFields[i].USER_INPUT_TYPE === "DisplayControl") { 1166 if (!Array.isArray(SA_FIELDS.AttributeFields[i].DISPLAY_FIELDS)) return null; 1167 for (var j = 0; j < SA_FIELDS.AttributeFields[i].DISPLAY_FIELDS.length; j++) { 1168 if (SA_FIELDS.AttributeFields[i].DISPLAY_FIELDS[j].ID === claimId) { 1169 return SA_FIELDS.AttributeFields[i].DISPLAY_FIELDS[j]; 1170 } 1171 } 1172 } 1173 } 1174 1175 return null; 1176 } 1177 1178 // Returns the first object in an array that has a key with a specific value 1179 // @parameter arr is an array of objects 1180 // @parameter key is the key we will be looking at 1181 // @parameter value is the value that the key must have 1182 var _findBy = function (arr, key, value) { 1183 if (!Array.isArray(arr)) return null; 1184 1185 for (var i = 0; i < arr.length; i++) { 1186 var item = arr[i]; 1187 if (item[key] != null && item[key] == value) { 1188 return item; 1189 } 1190 } 1191 1192 return null; 1193 } 1194 1195 // Unescape html charaters to use in regex 1196 // Note: this is for fullproffing the client side (the server side should always send characters unescaped) 1197 var _unescapeHtml = function (unsafe) { 1198 return unsafe 1199 .replace(/&/g, "&") 1200 .replace(/</g, "<") 1201 .replace(/>/g, ">") 1202 .replace(/"/g, "\"") 1203 .replace(/'/g, "'") 1204 .replace(/'/g, "'"); 1205 } 1206 1207 // Escape characters used in regex as character set 1208 var _escapeRegExpCharaterSet = function (str) { 1209 return str.replace(/([\/^$*+?.()|[\]{}])/g, "\\$1") 1210 } 1211 1212 // Returns a list of validation methods 1213 // The same methods are implemented on the server side for security reasons 1214 var _validationMethods = function () { 1215 var self = this; 1216 var validationMethods = []; 1217 1218 // Do nothing in case the method is unknown 1219 validationMethods[PREDICATE_METHODS.UNKNOWN] = function (claimValue, params) { 1220 return true; 1221 }; 1222 1223 validationMethods[PREDICATE_METHODS.INCLUDES_CHARACTERS] = function (claimValue, params) { 1224 // Escape regular expression characters, so that we only allow character sets 1225 var chars = _unescapeHtml(params[0].VALUE); 1226 var regexValid = new RegExp("[" + _escapeRegExpCharaterSet(chars) + "]+"); 1227 1228 return regexValid.test(claimValue); 1229 }; 1230 1231 validationMethods[PREDICATE_METHODS.IS_LENGTH_RANGE] = function (claimValue, params) { 1232 var minimum = parseInt($predicateValidation.findBy(params, "NAME", PREDICATE_PARAMETERS.MINIMUM).VALUE); 1233 var maximum = parseInt($predicateValidation.findBy(params, "NAME", PREDICATE_PARAMETERS.MAXIMUM).VALUE); 1234 1235 return minimum <= claimValue.length && claimValue.length <= maximum; 1236 }; 1237 1238 validationMethods[PREDICATE_METHODS.IS_DATE_RANGE] = function (claimValue, params) { 1239 var minimum = new Date($predicateValidation.findBy(params, "NAME", PREDICATE_PARAMETERS.MINIMUM).VALUE); 1240 var maximum = new Date($predicateValidation.findBy(params, "NAME", PREDICATE_PARAMETERS.MAXIMUM).VALUE); 1241 var minimumDate = new Date(minimum.getUTCFullYear(), minimum.getUTCMonth(), minimum.getUTCDate()); 1242 var maximumDate = new Date(maximum.getUTCFullYear(), maximum.getUTCMonth(), maximum.getUTCDate()); 1243 return minimumDate <= claimValue && claimValue <= maximumDate; 1244 }; 1245 1246 validationMethods[PREDICATE_METHODS.MATCHES_REGEX] = function (claimValue, params) { 1247 var regex = _unescapeHtml($predicateValidation.findBy(params, "NAME", PREDICATE_PARAMETERS.REGULAR_EXPRESSION).VALUE); 1248 var regexValid = new RegExp(regex); 1249 1250 return regexValid.test(claimValue); 1251 }; 1252 1253 return validationMethods; 1254 } 1255 1256 var _computeClaimValueError = function (mainHelpText, invalidPredicates, errorPrefix) { 1257 var hasMain = (mainHelpText != "" && mainHelpText != null); 1258 // Add a new line, spaces and dash for list of errors 1259 var dashPrefix = hasMain ? errorPrefix : ""; 1260 var errorMessage = hasMain ? mainHelpText : ""; 1261 for (var i = 0; i < invalidPredicates.length; i++) { 1262 errorMessage += dashPrefix + invalidPredicates[i].HELP_TEXT; 1263 } 1264 return errorMessage; 1265 } 1266 1267 var _generateValidationDict = function (claimID, claimValue, errorPrefix) { 1268 var errorMsgs = []; 1269 var passwordValidationDict = { isValid: true, errorMsgs: errorMsgs }; 1270 1271 var claimById = $predicateValidation.findAttributeFieldByClaimId(claimID); 1272 if (null == claimById) return passwordValidationDict; 1273 1274 var claimValidation = claimById.INPUT_VALIDATION; 1275 if (null == claimValidation) return passwordValidationDict; 1276
1277 var validationMethods = _validationMethods(); 1278 1279 // Validate predicates 1280 var isValid = true; 1281 if (claimValidation.PREDICATES != null) { 1282 for (var i = 0; i < claimValidation.PREDICATES.length; i++) { 1283 var predicate = claimValidation.PREDICATES[i]; 1284 if (!validationMethods[predicate.METHOD](claimValue, predicate.PARAMS)) { 1285 errorMsgs.push(_computeClaimValueError("", [predicate], errorPrefix)); 1286 isValid = false; 1287 } 1288 } 1289 } 1290 1291 // Validate predicate groups 1292 if (claimValidation.PREDICATE_GROUPS != null) { 1293 for (var i = 0; i < claimValidation.PREDICATE_GROUPS.length; i++) { 1294 var predicateGroup = claimValidation.PREDICATE_GROUPS[i]; 1295 1296 var countValid = 0; 1297 for (var j = 0; j < predicateGroup.PREDICATES.length; j++) { 1298 var predicate = predicateGroup.PREDICATES[j]; 1299 var localValid = validationMethods[predicate.METHOD](claimValue, predicate.PARAMS); 1300 1301 if (localValid) { 1302 countValid++; 1303 } 1304 } 1305 1306 // If there where errors in the predicate group 1307 var matchesMinimum = (countValid >= predicateGroup.MATCH_AT_LEAST); 1308 if ((matchesMinimum && predicateGroup.REJECT === true) || 1309 (!matchesMinimum && predicateGroup.REJECT !== true)) { 1310 errorMsgs.push(_computeClaimValueError(predicateGroup.HELP_TEXT, predicateGroup.PREDICATES, errorPrefix)); 1311 isValid = false; 1312 } 1313 } 1314 } 1315 1316 passwordValidationDict.isValid = isValid; 1317 passwordValidationDict.errorMsgs = errorMsgs; 1318 1319 return passwordValidationDict; 1320 } 1321 1322 // Export the public methods 1323 return { 1324 findAttributeFieldByClaimId: _findAttributeFieldByClaimId, 1325 findBy: _findBy, 1326 generateValidationDict: _generateValidationDict, 1327 validationMethods: _validationMethods, 1328 unescapeHtml: _unescapeHtml, 1329 PREDICATE_METHODS: PREDICATE_METHODS, 1330 PREDICATE_PARAMETERS: PREDICATE_PARAMETERS 1331 }; 1332}($diags, CONTENT, SETTINGS); 1333 1334 1335/* endinject */ 1336 1337/* inject:element */ 1338// Note: This is the SSP with KMSI. 1339"use strict"; 1340/* inject:handlebar */ 1341this.Handlebars=this.Handlebars||{},this.Handlebars.templates=this.Handlebars.templates||{},this.Handlebars.templates.unifiedssp=Handlebars.template({1:function(n,t,l,e,a){var i;return' <div class="heading">\r\n <h1 role="heading">'+(null!=(i=(l.getContent||t&&t.getContent||l.helperMissing).call(null!=t?t:n.nullContext||{},"heading",{name:"getContent",hash:{},data:a}))?i:"")+"</h1>\r\n </div>\r\n"},3:function(n,t,l,e,a){var i;return null!=(i=l.if.call(null!=t?t:n.nullContext||{},null!=t?t.buttonList:t,{name:"if",hash:{},fn:n.program(4,a,0),inverse:n.noop,data:a}))?i:""},4:function(n,t,l,e,a){var i,r=null!=t?t:n.nullContext||{},o=l.helperMissing;return' <div class="claims-provider-list-buttons social" aria-label="'+(null!=(i=(l.getContent||t&&t.getContent||o).call(r,"social_intro",{name:"getContent",hash:{},data:a}))?i:"")+'" role="form">\r\n <div class="intro">\r\n <h2 aria-level="1">'+(null!=(i=(l.getContent||t&&t.getContent||o).call(r,"social_intro",{name:"getContent",hash:{},data:a}))?i:"")+'</h2>\r\n </div>\r\n <div class="options">\r\n'+(null!=(i=l.each.call(r,null!=t?t.buttonList:t,{name:"each",hash:{},fn:n.program(5,a,0),inverse:n.noop,data:a}))?i:"")+" </div>\r\n </div>\r\n\r\n"+(null!=(i=l.if.call(r,null!=t?t.AttributeFields:t,{name:"if",hash:{},fn:n.program(15,a,0),inverse:n.noop,data:a}))?i:"")},5:function(n,t,l,e,a){var i;return null!=(i=(l.doesSettingContain||t&&t.doesSettingContain||l.helperMissing).call(null!=t?t:n.nullContext||{},"forgotPasswordLinkOverride",null!=t?t.id:t,"",{name:"doesSettingContain",hash:{},fn:n.program(6,a,0),inverse:n.program(8,a,0),data:a}))?i:""},6:function(n,t,l,e,a){return""},8:function(n,t,l,e,a){var i;return null!=(i=(l.doesSettingContain||t&&t.doesSettingContain||l.helperMissing).call(null!=t?t:n.nullContext||{},"bottomClaimsProviderSelections",null!=t?t.id:t,"",{name:"doesSettingContain",hash:{},fn:n.program(6,a,0),inverse:n.program(9,a,0),data:a}))?i:""},9:function(n,t,l,e,a){var i;return null!=(i=(l.doesSettingContain||t&&t.doesSettingContain||l.helperMissing).call(null!=t?t:n.nullContext||{},"bottomUnderFormClaimsProviderSelections",null!=t?t.id:t,"",{name:"doesSettingContain",hash:{},fn:n.program(6,a,0),inverse:n.program(10,a,0),data:a}))?i:""},10:function(n,t,l,e,a){var i;return" <div>\r\n"+(null!=(i=l.if.call(null!=t?t:n.nullContext||{},a&&a.first,{name:"if",hash:{},fn:n.program(11,a,0),inverse:n.program(13,a,0),data:a}))?i:"")+" </div>\r\n "},11:function(n,t,l,e,a){var i,r=n.lambda;return' <button class="accountButton firstButton claims-provider-selection" id="'+(null!=(i=r(null!=t?t.id:t,t))?i:"")+'" role="link" autofocus>'+(null!=(i=r(null!=t?t.description:t,t))?i:"")+"</button>\r\n"},13:function(n,t,l,e,a){var i,r=n.lambda;return' <button class="accountButton claims-provider-selection" id="'+(null!=(i=r(null!=t?t.id:t,t))?i:"")+'" role="link">'+(null!=(i=r(null!=t?t.description:t,t))?i:"")+"</button>\r\n"},15:function(n,t,l,e,a){var i;return' <div class="divider">\r\n <h2>'+(null!=(i=(l.getContent||t&&t.getContent||l.helperMissing).call(null!=t?t:n.nullContext||{},"divider_title",{name:"getContent",hash:{},data:a}))?i:"")+"</h2>\r\n </div>\r\n"},17:function(n,t,l,e,a){var i,r=null!=t?t:n.nullContext||{},o=l.helperMissing;return' <form id="localAccountForm" action="JavaScript:void(0);" class="localAccount" aria-label="'+(null!=(i=(l.buildIntroString||t&&t.buildIntroString||o).call(r,null!=(i=null!=(i=null!=t?t.AttributeFields:t)?i[0]:i)?i.DN:i,{name:"buildIntroString",hash:{},data:a}))?i:"")+'">\r\n <div class="intro">\r\n <h2 aria-level="1">\r\n '+(null!=(i=(l.buildIntroString||t&&t.buildIntroString||o).call(r,null!=(i=null!=(i=null!=t?t.AttributeFields:t)?i[0]:i)?i.DN:i,{name:"buildIntroString",hash:{},data:a}))?i:"")+'\r\n </h2>\r\n </div>\r\n <div class="error pageLevel" aria-hidden="true" role="alert">\r\n <p></p>\r\n </div>\r\n <div class="entry">\r\n <div class="entry-item">\r\n'+(null!=(i=(l.isSettingEqual||t&&t.isSettingEqual||o).call(r,"pageFlavor","classic","None",{name:"isSettingEqual",hash:{},fn:n.program(18,a,0),inverse:n.noop,data:a}))?i:"")+' <div class="error itemLevel" aria-hidden="true" role="alert">\r\n <p ></p>\r\n </div>\r\n '+n.escapeExpression((l.buildInput||t&&t.buildInput||o).call(r,null!=(i=null!=t?t.AttributeFields:t)?i[0]:i,null!=t?t.buttonList:t,{name:"buildInput",hash:{},data:a}))+"\r\n </div>\r\n"+(null!=(i=l.if.call(r,null!=(i=null!=t?t.AttributeFields:t)?i[1]:i,{name:"if",hash:{},fn:n.program(20,a,0),inverse:n.noop,data:a}))?i:"")+' <div class="working"></div>\r\n'+(null!=(i=(l.isSettingTrue||t&&t.isSettingTrue||o).call(r,"enableRememberMe",{name:"isSettingTrue",hash:{},fn:n.program(36,a,0),inverse:n.noop,data:a}))?i:"")+"\r\n"+(null!=(i=l.if.call(r,null!=t?t.textLinkList:t,{name:"if",hash:{},fn:n.program(38,a,0),inverse:n.noop,data:a}))?i:"")+'\r\n <div class="buttons">\r\n <button id="next" type="submit" form="localAccountForm" >'+(null!=(i=(l.getContent||t&&t.getContent||o).call(r,"button_signin",{name:"getContent",hash:{},data:a}))?i:"")+"</button>\r\n </div>
1341\r\n"+(null!=(i=(l.doesSettingExist||t&&t.doesSettingExist||o).call(r,"forgotPasswordLinkLocation",{name:"doesSettingExist",hash:{},fn:n.program(43,a,0),inverse:n.noop,data:a}))?i:"")+" </div>\r\n"+(null!=(i=(l.ifSignUpLink||t&&t.ifSignUpLink||o).call(r,null!=t?t.textLinkList:t,{name:"ifSignUpLink",hash:{},fn:n.program(46,a,0),inverse:n.program(48,a,0),data:a}))?i:"")+" </form>\r\n"},18:function(n,t,l,e,a){var i,r=n.lambda;return' <label for="'+(null!=(i=r(null!=(i=null!=(i=null!=t?t.AttributeFields:t)?i[0]:i)?i.ID:i,t))?i:"")+'">\r\n '+(null!=(i=r(null!=(i=null!=(i=null!=t?t.AttributeFields:t)?i[0]:i)?i.DN:i,t))?i:"")+"\r\n </label>\r\n"},20:function(n,t,l,e,a){var i,r=null!=t?t:n.nullContext||{},o=l.helperMissing,s=n.lambda;return' <div class="entry-item">\r\n <div class="password-label">\r\n'+(null!=(i=(l.isSettingEqual||t&&t.isSettingEqual||o).call(r,"pageFlavor","classic","None",{name:"isSettingEqual",hash:{},fn:n.program(21,a,0),inverse:n.noop,data:a}
1341))?i:"")+(null!=(i=(l.doesSettingExist||t&&t.doesSettingExist||o).call(r,"forgotPasswordLinkLocation",{name:"doesSettingExist",hash:{},fn:n.program(23,a,0),inverse:n.program(26,a,0),data:a}))?i:"")+' </div>\r\n <div class="error itemLevel" aria-hidden="true">\r\n <p role="alert"></p>\r\n </div>\r\n <input type="password" id="'+(null!=(i=s(null!=(i=null!=(i=null!=t?t.AttributeFields:t)?i[1]:i)?i.ID:i,t))?i:"")+'" name="'+(null!=(i=s(null!=(i=null!=(i=null!=t?t.AttributeFields:t)?i[1]:i)?i.DN:i,t))?i:"")+'" placeholder="'+(null!=(i=s(null!=(i=null!=(i=null!=t?t.AttributeFields:t)?i[1]:i)?i.DN:i,t))?i:"")+'" aria-label="'+(null!=(i=s(null!=(i=null!=(i=null!=t?t.AttributeFields:t)?i[1]:i)?i.DN:i,t))?i:"")+'" autocomplete="current-password" aria-required="true"/>\r\n'+(null!=(i=(l.doesSettingExist||t&&t.doesSettingExist||o).call(r,"forgotPasswordLinkLocation",{name:"doesSettingExist",hash:{},fn:n.program(29,a,0),inverse:n.program(32,a,0),data:a}))?i:"")+" </div>\r\n"},21:function(n,t,l,e,a){var i,r=n.lambda;return' <label for="'+(null!=(i=r(null!=(i=null!=(i=null!=t?t.AttributeFields:t)?i[1]:i)?i.ID:i,t))?i:"")+'">'+(null!=(i=r(null!=(i=null!=(i=null!=t?t.AttributeFields:t)?i[1]:i)?i.DN:i,t))?i:"")+"</label>\r\n"},23:function(n,t,l,e,a){var i;return null!=(i=(l.isSettingEqual||t&&t.isSettingEqual||l.helperMissing).call(null!=t?t:n.nullContext||{},"forgotPasswordLinkLocation","AfterLabel","None",{name:"isSettingEqual",hash:{},fn:n.program(24,a,0),inverse:n.noop,data:a}))?i:""},24:function(n,t,l,e,a){var i;return' <a id="forgotPassword" >'+(null!=(i=(l.getContent||t&&t.getContent||l.helperMissing).call(null!=t?t:n.nullContext||{},"forgotpassword_link",{name:"getContent",hash:{},data:a}))?i:"")+"</a>\r\n"},26:function(n,t,l,e,a){var i;
1341return null!=(i=(l.doesSettingExist||t&&t.doesSettingExist||l.helperMissing).call(null!=t?t:n.nullContext||{},"pageFlavor",{name:"doesSettingExist",hash:{},fn:n.program(27,a,0),inverse:n.noop,data:a}))?i:""},27:function(n,t,l,e,a){var i;return(null!=(i=(l.isSettingEqual||t&&t.isSettingEqual||l.helperMissing).call(null!=t?t:n.nullContext||{},"pageFlavor","classic","None",{name:"isSettingEqual",hash:{},fn:n.program(24,a,0),inverse:n.noop,data:a}))?i:"")+" "},29:function(n,t,l,e,a){var i;return null!=(i=(l.isSettingEqual||t&&t.isSettingEqual||l.helperMissing).call(null!=t?t:n.nullContext||{},"forgotPasswordLinkLocation","AfterInput","None",{name:"isSettingEqual",hash:{},fn:n.program(30,a,0),inverse:n.noop,data:a}))?i:""},30:function(n,t,l,e,a){var i;return' <a id="forgotPassword" >'+(null!=(i=(l.getContent||t&&t.getContent||l.helperMissing).call(null!=t?t:n.nullContext||{},"forgotpassword_link",{name:"getContent",hash:{},data:a}))?i:"")+"</a>\r\n"},32:function(n,t,l,e,a){var i;return null!=(i=(l.doesSettingE
vendor: 6,379 bytes, line 1341
1341xist||t&&t.doesSettingExist||l.helperMissing).call(null!=t?t:n.nullContext||{},"pageFlavor",{name:"doesSettingExist",hash:{},fn:n.program(33,a,0),inverse:n.noop,data:a}))?i:""},33:function(n,t,l,e,a){var i;return(null!=(i=(l.isSettingEqual||t&&t.isSettingEqual||l.helperMissing).call(null!=t?t:n.nullContext||{},"pageFlavor","oceanBlue,slateGray","None",{name:"isSettingEqual",hash:{},fn:n.program(34,a,0),inverse:n.noop,data:a}))?i:"")+" "},34:function(n,t,l,e,a){var i;return' <div class="forgot-password center-height">\r\n <a id="forgotPassword" >'+(null!=(i=(l.getContent||t&&t.getContent||l.helperMissing).call(null!=t?t:n.nullContext||{},"forgotpassword_link",{name:"getContent",hash:{},data:a}))?i:"")+"</a>\r\n </div>\r\n"},36:function(n,t,l,e,a){var i,r=null!=t?t:n.nullContext||{},o=l.helperMissing;return' <div class="'+(null!=(i=(l.getRememberMeClass||t&&t.getRememberMeClass||o).call(r,null!=t?t.AttributeFields:t,{name:"getRememberMeClass",hash:{},data:a}))?i:"")+'">\r\n <input id="rememberMe" type="checkbox" name="rememberMe" />\r\n <label for="rememberMe">'+(null!=(i=(l.getContent||t&&t.getContent||o).call(r,"remember_me",{name:"getContent",hash:{},data:a}))?i:"")+"</label>\r\n </div>\r\n"},38:function(n,t,l,e,a){var i;return null!=(i=(l.doesSettingExist||t&&t.doesSettingExist||l.helperMissing).call(null!=t?t:n.nullContext||{},"bottomClaimsProviderSelections",{name:"doesSettingExist",hash:{},fn:n.program(39,a,0),inverse:n.noop,data:a}))?i:""},39:function(n,t,l,e,a){var i;return' <div class="claims-provider-list-text-links-bottom">\r\n'+(null!=(i=l.each.call(null!=t?t:n.nullContext||{},null!=t?t.textLinkList:t,{name:"each",hash:{},fn:n.program(40,a,0),inverse:n.noop,data:a}))?i:"")+" </div>\r\n"},40:function(n,t,l,e,a){var i;return null!=(i=(l.doesSettingContain||t&&t.doesSettingContain||l.helperMissing).call(null!=t?t:n.nullContext||{},"bottomClaimsProviderSelections",null!=t?t.id:t,"",{name:"doesSettingContain",hash:{},fn:n.program(41,a,0),inverse:n.noop,data:a}))?i:""},41:function(n,t,l,e,a){var i,r=n.lambda;return' <div>\r\n <a id="'+(null!=(i=r(null!=t?t.id:t,t))?i:"")+'" class="text-link">'+(null!=(i=r(null!=t?t.description:t,t))?i:"")+"</a>\r\n </div>\r\n"},43:function(n,t,l,e,a){var i;return null!=(i=(l.isSettingEqual||t&&t.isSettingEqual||l.helperMissing).call(null!=t?t:n.nullContext||{},"forgotPasswordLinkLocation","AfterButtons","None",{name:"isSettingEqual",hash:{},fn:n.program(44,a,0),inverse:n.noop,data:a}))?i:""},44:function(n,t,l,e,a){var i;return' <a id="forgotPassword" >'+(null!=(i=(l.getContent||t&&t.getContent||l.helperMissing).call(null!=t?t:n.nullContext||{},"forgotpassword_link",{name:"getContent",hash:{},data:a}))?i:"")+"</a>\r\n"},46:function(n,t,l,e,a){var i,r=null!=t?t:n.nullContext||{},o=l.helperMissing;return' <div class="claims-provider-list-text-links">\r\n <p>\r\n '+(null!=(i=(l.getContent||t&&t.getContent||o).call(r,"createaccount_intro",{name:"getContent",hash:{},data:a}))?i:"")+" "+(null!=(i=(l.buildTextLinks||t&&t.buildTextLinks||o).call(r,null!=t?t.textLinkList:t,{name:"buildTextLinks",hash:{},data:a}))?i:"")+"\r\n </p>\r\n </div>\r\n"},48:function(n,t,l,e,a){var i;return null!=(i=l.if.call(null!=t?t:n.nullContext||{},null!=t?t.AttributeFields:t,{name:"if",hash:{},fn:n.program(49,a,0),inverse:n.noop,data:a}))?i:""},49:function(n,t,l,e,a){var i;return null!=(i=(l.isSettingTrue||t&&t.isSettingTrue||l.helperMissing).call(null!=t?t:n.nullContext||{},"showSignupLink",{name:"isSettingTrue",hash:{},fn:n.program(50,a,0),inverse:n.noop,data:a}))?i:""},50:function(n,t,l,e,a){var i,r=null!=t?t:n.nullContext||{},o=l.helperMissing;return' <div class="divider">\r\n <h2>'+(null!=(i=(l.getContent||t&&t.getContent||o).call(r,"divider_title",{name:"getContent",hash:{},data:a}))?i:"")+'</h2>\r\n </div>\r\n <div class="create">\r\n <p>\r\n '+(null!=(i=(l.getContent||t&&t.getContent||o).call(r,"createaccount_intro",{name:"getContent",hash:{},data:a}))?i:"")+'<a id="createAccount" >'+(null!=(i=(l.getContent||t&&t.getContent||o).call(r,"createaccount_one_link",{name:"getContent",hash:{},data:a}))?i:"")+"</a>\r\n </p>\r\n </div>\r\n"},52:function(n,t,l,e,a,i,r){var o,s=null!=t?t:n.nullContext||{};return(null!=(o=l.if.call(s,null!=t?t.AttributeFields:t,{name:"if",hash:{},fn:n.program(15,a,0,i,r),inverse:n.noop,data:a}))?o:"")+(null!=(o=l.if.call(s,null!=t?t.buttonList:t,{name:"if",hash:{},fn:n.program(53,a,0,i,r),inverse:n.noop,data:a}))?o:"")},53:function(n,t,l,e,a,i,r){var o,s=null!=t?t:n.nullContext||{},u=l.helperMissing;return' <div class="claims-provider-list-buttons social" aria-label="'+(null!=(o=(l.getContent||t&&t.getContent||u).call(s,"social_intro",{name:"getContent",hash:{},data:a}))?o:"")+'" role="form">\r\n <div class="intro">\r\n <h2 aria-level="1">'+(null!=(o=(l.getContent||t&&t.getContent||u).call(s,"social_intro",{name:"getContent",hash:{},data:a}))?o:"")+'</h2>\r\n </div>\r\n <div class="options">\r\n'+(null!=(o=l.each.call(s,null!=t?t.buttonList:t,{name:"each",hash:{},fn:n.program(54,a,0,i,r),inverse:n.noop,data:a}))?o:"")+" </div>\r\n </div>\r\n"},54:function(n,t,l,e,a,i,r){var o;return null!=(o=(l.doesSettingContain||t&&t.doesSettingContain||l.helperMissing).call(null!=t?t:n.nullContext||{},"forgotPasswordLinkOverride",null!=t?t.id:t,"",{name:"doesSettingContain",hash:{},fn:n.program(6,a,0,i,r),inverse:n.program(55,a,0,i,r),data:a}))?o:""},55:function(n,t,l,e,a,i,r){var o;return null!=(o=(l.doesSettingContain||t&&t.doesSettingContain||l.helperMissing).call(null!=t?t:n.nullContext||{},"bottomClaimsProviderSelections",null!=t?t.id:t,"",{name:"doesSettingContain",hash:{},fn:n.program(6,a,0,i,r),inverse:n.program(56,a,0,i,r),data:a}))?o:""},56:function(n,t,l,e,a,i,r){var o;return" <div>\r\n"+(null!=(o=l.if.call(null!=t?t:n.nullContext||{},a&&a.first,{name:"if",hash:{},fn:n.program(57,a,0,i,r),inverse:n.program(60,a,0,i,r),data:a}))?o:"")+" </div>\r\n "}
vendor: 1,914 bytes, line 1341
1341,57:function(n,t,l,e,a,i,r){var o,s=n.lambda;return' <button class="accountButton firstButton claims-provider-selection" id="'+(null!=(o=s(null!=t?t.id:t,t))?o:"")+'" role="link" '+(null!=(o=l.if.call(null!=t?t:n.nullContext||{},null!=r[1]?r[1].AttributeFields:r[1],{name:"if",hash:{},fn:n.program(6,a,0,i,r),inverse:n.program(58,a,0,i,r),data:a}))?o:"")+" >"+(null!=(o=s(null!=t?t.description:t,t))?o:"")+"</button>\r\n"},58:function(n,t,l,e,a){return"autofocus"},60:function(n,t,l,e,a){var i,r=n.lambda;return' <button class="accountButton claims-provider-selection" id="'+(null!=(i=r(null!=t?t.id:t,t))?i:"")+'" role="link">'+(null!=(i=r(null!=t?t.description:t,t))?i:"")+"</button>\r\n"},62:function(n,t,l,e,a){var i;return null!=(i=(l.doesSettingExist||t&&t.doesSettingExist||l.helperMissing).call(null!=t?t:n.nullContext||{},"bottomUnderFormClaimsProviderSelections",{name:"doesSettingExist",hash:{},fn:n.program(63,a,0),inverse:n.noop,data:a}))?i:""},63:function(n,t,l,e,a){var i;return' <div class="claims-provider-list-text-links-bottom-under-form">\r\n'+(null!=(i=l.each.call(null!=t?t:n.nullContext||{},null!=t?t.textLinkList:t,{name:"each",hash:{},fn:n.program(64,a,0),inverse:n.noop,data:a}))?i:"")+" </div>\r\n"},64:function(n,t,l,e,a){var i;return null!=(i=(l.doesSettingContain||t&&t.doesSettingContain||l.helperMissing).call(null!=t?t:n.nullContext||{},"bottomUnderFormClaimsProviderSelections",null!=t?t.id:t,"",{name:"doesSettingContain",hash:{},fn:n.program(65,a,0),inverse:n.noop,data:a}))?i:""},65:function(n,t,l,e,a){var i,r=n.lambda;return' <div>\r\n <a id="'+(null!=(i=r(null!=t?t.id:t,t))?i:"")+'" class="text-link">'+(null!=(i=r(null!=t?t.description:t,t))?i:"")+"</a>\r\n </div>\r\n"},compiler:[7,">= 4.0.0"],main:function(n,t,l,e,a,i,r){var o,s=null!=t?t:n.nullContext||{},u=l.helperMissing;return'
1341<script id="Unified" type="text/x-handlebars-template">\r\n <div id="api" data-name="Unified">\r\n'+(null!=(o=(l.isSettingTrue||t&&t.isSettingTrue||u).call(s,"showHeading",{name:"isSettingTrue",hash:{},fn:n.program(1,a,0,i,r),inverse:n.noop,data:a}))?o:"")+(null!=(o=(l.isSettingEqual||t&&t.isSettingEqual||u).call(s,"pageFlavor","classic","None",{name:"isSettingEqual",hash:{},fn:n.program(3,a,0,i,r),inverse:n.noop,data:a}))?o:"")+(null!=(o=l.if.call(s,null!=t?t.AttributeFields:t,{name:"if",hash:{},fn:n.program(17,a,0,i,r),inverse:n.noop,data:a}))?o:"")+(null!=(o=(l.isSettingEqual||t&&t.isSettingEqual||u).call(s,"pageFlavor","oceanBlue,slateGray","None",{name:"isSettingEqual",hash:{},fn:n.program(52,a,0,i,r),inverse:n.noop,data:a}))?o:"")+(null!=(o=l.if.call(s,null!=t?t.textLinkList:t,{name:"if",hash:{},fn:n.program(62,a,0,i,r),inverse:n.noop,data:a}))?o:"")+" </div>\r\n<\/script>"},useData:!0,useDepths:!0}); 1342/* endinject */ 1343 1344/* inject:element-handlebar-helpers.js */ 1345(function (content, settings) { 1346 // Takes array of text links and uses a string template from the window content to build text and links 1347 Handlebars.registerHelper('buildTextLinks', function (textLinksList) { 1348 var signupLinks = getSignUpLinks(textLinksList); 1349 1350 if (signupLinks.length === 1) { 1351 // The text for one link can have a {0}, but it is not required as with 2/3 links. 1352 var displayText = content.createaccount_one_link.replace('{0}', signupLinks[0].description); 1353 return new Handlebars.SafeString(getTextLink(displayText, signupLinks[0].id)); 1354 } 1355 1356 var textLinksContent = ''; 1357 if (signupLinks.length === 2) { 1358 textLinksContent = content.createaccount_two_links; 1359 } else if (signupLinks.length === 3) { 1360 textLinksContent = content.createaccount_three_links; 1361 } 1362 1363 signupLinks.forEach(function (linkData, idx) { 1364 var linkEl = getTextLink(linkData.description, linkData.id); 1365 textLinksContent = textLinksContent.replace('{' + idx + '}', linkEl); 1366 }); 1367 1368 return new Handlebars.SafeString(textLinksContent); 1369 1370 function getTextLink(displayText, id) { 1371 displayText = Handlebars.Utils.escapeExpression(displayText); 1372 id = Handlebars.Utils.escapeExpression(id); 1373 var linkEl = '<a class="text-link" id="' + id + '">' + displayText + '</a>'; 1374 return linkEl; 1375 } 1376 }); 1377 1378 // returns boolean indicating whether the list of text links includes a sign up link 1379 Handlebars.registerHelper('ifSignUpLink', function (textLinksList, options) { 1380 return getSignUpLinks(textLinksList).length ? options.fn(this) : options.inverse(this); 1381 }); 1382 1383 Handlebars.registerHelper('buildIntroString', function (attributeId) { 1384 var introString = content.local_intro_generic.replace('{0}', attributeId.toLowerCase()); 1385 return new Handlebars.SafeString(introString); 1386 }); 1387 1388 function getControlType (type) { 1389 var controlType = null; 1390 1391 switch (type) { 1392 case "TextBox": 1393 controlType = "text"; 1394 break; 1395 case "EmailBox": 1396 controlType = "email"; 1397 break; 1398 default: 1399 controlType = "text"; 1400 } 1401 1402 return new Handlebars.SafeString(controlType); 1403 } 1404 1405 Handlebars.registerHelper('getControlType', getControlType); 1406 1407 Handlebars.registerHelper('buildInput', function (attributeFields, buttonList) { 1408 var type = getControlType(attributeFields.UX_INPUT_TYPE); 1409 var id = attributeFields.ID; 1410 var name = attributeFields.DN; 1411 var pattern = attributeFields.PAT; 1412 var value = attributeFields.PRE; 1413 1414 var inputElement = '<input'; 1415 inputElement += ' type="' + type + '"'; 1416 inputElement += ' id="' + id + '"'; 1417 inputElement += ' name="' + name + '"'; 1418 inputElement += ' title="' + CONTENT.invalid_generic.replace("{0}", name) + '"'; 1419 if (attributeFields.PAT) { 1420 inputElement += ' pattern="' + pattern + '"'; 1421 } 1422 1423 if (buttonList && (SETTINGS.config.pageFlavor === "oceanBlue" || SETTINGS.config.pageFlavor === "slateGray")) { 1424 inputElement += 'autofocus'; 1425 } else if (SETTINGS.config.pageFlavor === "classic") { 1426 inputElement += 'autofocus'; 1427 } 1428 1429 inputElement += ' placeholder="' + name + '"'; 1430 if (value) { 1431 inputElement += ' value="' + value + '"'; 1432 } 1433 1434 inputElement += ' aria-label="' + name + '"'; 1435 inputElement += ' />'; 1436 return new Handlebars.SafeString(inputElement); 1437 });
1438 1439 // helper to extract the text links that should be rendered as sign up links 1440 function getSignUpLinks (textLinksList) { 1441 var config = settings.config; 1442 var bottomClaimsProviderSelectionsSetting = config.bottomClaimsProviderSelections || ''; 1443 var bottomClaimsProviderSelections = bottomClaimsProviderSelectionsSetting.split(','); 1444 var bottomUnderFormClaimsProviderSelectionsSetting = config.bottomUnderFormClaimsProviderSelections || ''; 1445 var bottomUnderFormClaimsProviderSelections = bottomUnderFormClaimsProviderSelectionsSetting.split(','); 1446 1447 return textLinksList.filter(function(link) { 1448 return bottomClaimsProviderSelections.indexOf(link.id) < 0 && bottomUnderFormClaimsProviderSelections.indexOf(link.id) < 0; 1449 }); 1450 } 1451 1452 // helper to choose which rememberMe styling to use 1453 function getRememberMeClass (attributeFields) { 1454 var attributeID = attributeFields && attributeFields[0].ID; 1455 var leftAlign = "align-to-left"; 1456 var rememberMe = "rememberMe"; 1457 1458 if (attributeID == 'phoneNumber' || attributeID == 'signInNamePhoneEmail') { 1459 return rememberMe + " " + leftAlign; 1460 } else { 1461 return rememberMe; 1462 } 1463 } 1464 1465 Handlebars.registerHelper('getRememberMeClass', getRememberMeClass); 1466}(CONTENT, SETTINGS)); 1467/* endinject */ 1468 1469var $element = function ($diags, content, settings) { 1470 var _loginIdentifier, _loginPwd; 1471 var _serviceContentSet = false; 1472 var _serviceContent; 1473 1474 // Javascript is single-threaded, and works on a message queue system, where each message is processed 1475 // completely before any other message is processed. For example, the callbacks for AJAX calls are added as 1476 // messages to the queue, allowing them to be processed later. 1477 // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop 1478 // This page may involve multiple roundtrips to the service in different scenarios, each of which may 1479 // change the state of the cookies. The intermediate states of some scenarios on this page are not 1480 // compatible with others (for example, waiting for the service to verify the user's username and password 1481 // may not play well with informing the service to redirect to a social IdP, as both write over cookie 1482 // state). On this page, we invoke a simple state mechanism, to cause buttons that trigger new calls to the 1483 // service to be considered no-ops while we wait for the last call to the service to complete. Given the 1484 // single-threaded nature of JavaScript, quickly setting the state to disable these buttons works so long as 1485 // the setting occurs within the context of a single message in the queue. 1486 // Note that this approach of setting up the event handlers exactly once during page initialization, and 1487 // having each handler check state in this manner allows for RPs with custom javascript to still attach to 1488 // the button click events without our code disabling such events as we change state. This also prevents 1489 // us from setting certain attributes after page inititalization, which would otherwise impact screen 1490 // readers and accessibility programs. If a service call is in progress, the click event should be handled 1491 // in such a manner that the event does not propagate (trigger the RPs events). This is done in javascript 1492 // by either calling event.stopImmediatePropagation(), and returning "false" from the event handler function. 1493 var _serviceCallInProgress = false; 1494 1495 var _isRememberMeChecked = function () { 1496 var rememberMe = false; 1497 var rememberMeElement = document.getElementById('rememberMe'); 1498 if (rememberMeElement) { 1499 rememberMe = rememberMeElement.checked; 1500 } 1501 1502 return rememberMe; 1503 }; 1504 1505 // Makes a call to the service to see if the hint 1506 // is known to the tenant. 1507 var _signIn = function (event) { 1508 if (_serviceCallInProgress) { 1509 event.stopImmediatePropagation(); 1510 return false; 1511 } 1512 1513 _serviceCallInProgress = true; 1514 1515 // Show the working div 1516 var working = document.querySelectorAll("div .working"); 1517 $(working).css("display", "block"); 1518 1519 // We need to switch to using the selfasserted api for validating the hint 1520 var localSettings = jQuery.extend(true, {}, settings); // Deep copy of original settings object 1521 localSettings.api = "SelfAsserted"; 1522 1523 var requestData = buildRequestUri();
1524 1525 (function (trace) { 1526 $i2e.sendDataWithRetry( 1527 requestData, 1528 function (response) { 1529 // 200 means the user exists so send the 1530 // response forwarding the user to signin 1531 if (response.status == 200) { 1532 trace.append("T010"); 1533 var rememberMe = _isRememberMeChecked(); 1534 $i2e.redirectToServer("confirmed?rememberMe=" + rememberMe, true); 1535 return false; 1536 } 1537 // Toggles error unknown for all non-200 responses 1538 trace.append(response.message); 1539 _showGeneralError(response.message); 1540 }, 1541 function (error) { 1542 trace.append(error.text); 1543 _showGeneralError(error.text); 1544 }, 1545 function () { 1546 _serviceCallInProgress = false; 1547 1548 // Hide the working div 1549 $(working).css("display", "none"); 1550 1551 $diags.trace(trace); 1552 }, 1553 undefined, 1554 localSettings); 1555 }(new $trace("T018", true))); 1556 }; 1557 1558 // Builds AJAX request based on user inputs 1559 var buildRequestUri = function () { 1560 var requestData = "request_type=RESPONSE&" + _loginIdentifier.id + "=" + encodeURIComponent(_loginIdentifier.value); 1561 if (_loginPwd) { 1562 requestData += "&" + _loginPwd.id + "=" + encodeURIComponent(_loginPwd.value); 1563 } 1564 return requestData; 1565 } 1566 1567 // Shows the general error using the errorText 1568 // as the content 1569 var _showGeneralError = function (errorText) { 1570 var errorDiv = $("#api .localAccount").children(".error.pageLevel"); 1571 1572 // Set the error text 1573 if (errorText) { 1574 errorDiv.children("p:first").text(errorText); 1575 } 1576 else { 1577 errorDiv.children("p:first").html(content.unknown_error); 1578 } 1579 1580 // Set the aria-hidden and then show the error 1581 errorDiv.attr("aria-hidden", "false"); 1582 errorDiv.css("display", "block"); 1583 }; 1584 1585 // Shows the input error div using the error text 1586 // as the content 1587 var _showError = function (parent, errorText) { 1588 var errorDiv = $(parent).children(".error.itemLevel"); 1589 1590 // Set the error text 1591 errorDiv.children("p:first").html(errorText); 1592 1593 // Set the aria-hidden and then show the error 1594 errorDiv.attr("aria-hidden", "false"); 1595 errorDiv.css("display", "block"); 1596 1597 // Now highlight the input 1598 $(parent).children("input").addClass("highlightError"); 1599 }; 1600 1601 // Resets all visible errors 1602 var _resetErrors = function () { 1603 $("#api .error").css("display", "none"); 1604 $("#api .error").attr("aria-hidden", "true"); 1605 1606 // Remove any input highlights 1607 $("#api .highlightError").removeClass("highlightError"); 1608 }; 1609 1610 // Resets the specific input 1611 var _resetError = function (parent) { 1612 // Reset the input 1613 var errorDiv = $(parent).children(".error.itemLevel"); 1614 1615 // Set the aria-hidden and then show the error 1616 errorDiv.attr("aria-hidden", "true"); 1617 errorDiv.css("display", "none"); 1618 1619 // Now highlight the input 1620 $(parent).children("input").removeClass("highlightError"); 1621 }; 1622 1623 // Validate the loginIdentifier has been correctly populated 1624 var _validateLoginIdentifier = function () { 1625 // Reset the input 1626 _resetError(_loginIdentifier.parentElement); 1627 1628 // Check if loginIdentifier has been populated 1629 if (!_loginIdentifier.value) { 1630 1631 // Note: Do not reference displayName from html as it is unsafe. 1632 var errorText = content.requiredField_generic.replace('{0}', SA_FIELDS.AttributeFields[0].DN); 1633 _showError(_loginIdentifier.parentElement, errorText); 1634 return false; 1635 } 1636 1637 // Predicate validation. 1638 var htmlErrorPrefix = "<br /> - ";
1639 var validationDict = $predicateValidation.generateValidationDict(_loginIdentifier.id, _loginIdentifier.value, htmlErrorPrefix); 1640 var msg = validationDict.errorMsgs.join(","); 1641 if (!validationDict.isValid) { 1642 _showError(_loginIdentifier.parentElement, msg); 1643 return false; 1644 } 1645 else { 1646 // Check if loginIdentifier has valid text 1647 if (_loginIdentifier.pattern) { 1648 var valid = new RegExp(_loginIdentifier.pattern).exec(_loginIdentifier.value); 1649 if (!valid) { 1650 // Show the invalid error 1651 var claimById = $predicateValidation.findAttributeFieldByClaimId(_loginIdentifier.id); 1652 _showError(_loginIdentifier.parentElement, claimById.PAT_DESC); 1653 1654 return false; 1655 } 1656 } 1657 } 1658 1659 return true; 1660 }; 1661 1662 // Validate the loginPwd has been correctly populated if the password field is shown 1663 var _validatePasswordIfFieldExists = function () { 1664 if (_loginPwd) { 1665 // Reset the input 1666 _resetError(_loginPwd.parentElement); 1667 1668 // Check if loginPwd has been populated 1669 if (!_loginPwd.value) { 1670 _showError(_loginPwd.parentElement, content.requiredField_password); 1671 return false; 1672 } 1673 } 1674 1675 return true; 1676 }; 1677 1678 // Returns whether the left mouse key or enter button has been pressed 1679 // and specifically for buttons if the space bar has been pressed 1680 var _isEnter = function (event) { 1681 var key = event.keyCode || event.which; 1682 return (key === 0) || (key === 1 || key === 13) || ($(event.target).is("button") && key === 32); 1683 }; 1684 1685 // Checks to see if the form is ready for 1686 // submission. Uses input validation to determine 1687 // if form is ok to submit 1688 var _doSubmit = function (event) { 1689 // Handle the left click of the mouse, the press of the enter button 1690 if (_isEnter(event)) { 1691 1692 // Reset all errors 1693 _resetErrors(); 1694 1695 var identifierResult = _validateLoginIdentifier(); 1696 var pswResult = _validatePasswordIfFieldExists(); 1697 if (!identifierResult) { 1698 _loginIdentifier.focus(); 1699 } else if(!pswResult) { 1700 _loginPwd.focus(); 1701 } else { 1702 // Try sign the user in 1703 _signIn(event); 1704 } 1705 } 1706 }; 1707 1708 // If one of the social provider or local account signup buttons is selected, 1709 // redirect back using the alternative flow and the id of the 1710 // selected provider 1711 var _initializeClaimsProviderLinksAndButtons = function () { 1712 $("#api .accountButton").click(function (event) { 1713 if (_serviceCallInProgress) { 1714 event.stopImmediatePropagation(); 1715 return false; 1716 } 1717 var id = $(this).attr("id"); 1718 1719 if (!$i2e.isSafari() || id.toLowerCase().indexOf("apple") < 0) { 1720 _serviceCallInProgress = true; 1721 } 1722 1723 var url = "unified?claimsexchange=" + $(this).attr("id"); 1724 $i2e.redirectToServer(url, true); 1725 return; 1726 }); 1727 1728 $("#api .text-link") 1729 .attr("href", function () { 1730 return $i2e.getRedirectLink("unified?claimsexchange=" + $(this).attr("id")); 1731 }) 1732 .click(function (event) { 1733 if (_serviceCallInProgress) { 1734 event.stopImmediatePropagation(); 1735 return false; 1736 } 1737 1738 _serviceCallInProgress = true; 1739 }); 1740 } 1741 1742 // Initializes the api, merging the api template and 1743 // the data followed by injection into the resource. On 1744 // successful injection, the eventhandlers are wired up 1745 var _initialize = function () { 1746 (function (trace) { 1747 _initializeClaimsProviderLinksAndButtons(); 1748 var forgotPasswordLinkOverride = SETTINGS.config["forgotPasswordLinkOverride"];
1749 var forgotPasswordClick = function (event) { 1750 if (_serviceCallInProgress) { 1751 event.stopImmediatePropagation(); 1752 return false; 1753 } 1754 _serviceCallInProgress = true; 1755 if (_loginIdentifier.value) { 1756 // If the user has entered a logon identifier, include 1757 // in the redirect 1758 var current = $("#forgotPassword").attr("href"); 1759 $("#forgotPassword").attr("href", current + "&hint=" + encodeURI(_loginIdentifier.value)); 1760 } 1761 }; 1762 1763 // If forgotPasswordLinkOverride is set in the policy, link the forgot password link to that claims exchange 1764 if (forgotPasswordLinkOverride) { 1765 $("#forgotPassword") 1766 .attr("href", $i2e.getRedirectLink("unified?claimsexchange=" + forgotPasswordLinkOverride)) 1767 .click(forgotPasswordClick); 1768 } 1769 // If forgotPasswordLinkOverride is not set in the policy, send the error to relying party when clicked 1770 else { 1771 // Pregenerate the href and add to the link. When clicked 1772 // check if we need to append the hint 1773 $("#forgotPassword") 1774 .attr("href", $i2e.getRedirectLink("forgotPassword")) 1775 .click(forgotPasswordClick); 1776 } 1777 1778 if (SA_FIELDS.AttributeFields) { 1779 // Set the loginIdentifier and password fields 1780 _loginIdentifier = document.querySelectorAll("#" + SA_FIELDS.AttributeFields[0].ID)[0]; 1781 _loginIdentifier.value = $.trim(_loginIdentifier.value); 1782 1783 if (SA_FIELDS.AttributeFields[1]) { 1784 _loginPwd = document.querySelectorAll("#" + SA_FIELDS.AttributeFields[1].ID)[0]; 1785 } 1786 1787 // Reset all errors 1788 _resetErrors(); 1789 1790 // Handle the enter event loginPwd 1791 _loginPwd && $(_loginPwd).on("keypress", function (event) { 1792 if (_serviceCallInProgress) { 1793 event.stopImmediatePropagation(); 1794 return false; 1795 } 1796 1797 // Setting _serviceCallInProgress to true is handled in this method if the proper user inputs 1798 // have been entered 1799 _doSubmit(event); 1800 }); 1801 1802 // Continue (next) button has been click 1803 $("#next").click(function (event) { 1804 if (_serviceCallInProgress) { 1805 event.stopImmediatePropagation(); 1806 return false; 1807 } 1808 1809 // Setting _serviceCallInProgress to true is handled in this method if the proper user inputs 1810 // have been entered 1811 _doSubmit(event); 1812 }); 1813 1814 // Pregenerate the href and add to the link. When clicked 1815 // check if we need to append the hint 1816 $("#createAccount") 1817 .attr("href", $i2e.getRedirectLink("unified?local=signup")) 1818 .click(function (event) { 1819 if (_serviceCallInProgress) { 1820 event.stopImmediatePropagation(); 1821 return false; 1822 } 1823 1824 _serviceCallInProgress = true; 1825 if (settings.config.sendHintOnSignup === "true" && _loginIdentifier.value) { 1826 var current = $("#createAccount").attr("href"); 1827 $("#createAccount").attr("href", current + "&hint=" + encodeURI(_loginIdentifier.value)); 1828 } 1829 }); 1830 } 1831 1832 $diags.trace(trace); 1833 }(new $trace("T003", true))); 1834 }; 1835 1836 // Gets the generated service content 1837 var _getElementContent = function () { 1838 return _serviceContent; 1839 }; 1840 1841 // Binds the template to the data and then 1842 // injects into the page 1843 var _generateServiceContent = function (handlebars) { 1844 (function (trace) { 1845 var list = CP.list || []; 1846 var buttonList = list.filter(function (provider) { 1847 return !provider.displayType || provider.displayType === "Button"; 1848 }); 1849 1850 var textLinkList = list.filter(function(provider) { 1851 return provider.displayType === "SignUpLink" || provider.displayType === "TextLink"; 1852 }); 1853 1854 // Checking pageFlavor is set in policy. 1855 var pageFlavor = SETTINGS.config["pageFlavor"]; 1856 1857 if (!pageFlavor) { 1858 // See if it is set in query string parameter. 1859 var remoteResource = SETTINGS.remoteResource.toLowerCase(); 1860 pageFlavor = remoteResource.match(/pageFlavor=(\w+)/i); 1861 if (pageFlavor) { 1862 SETTINGS.config["pageFlavor"] = pageFlavor[1];
1863 } 1864 } 1865 1866 if (!pageFlavor) { 1867 SETTINGS.config["pageFlavor"] = "classic"; 1868 if (SETTINGS.remoteResource.toLowerCase().lastIndexOf("tenant/templates/azureblue/unified.cshtml") > 0) { 1869 SETTINGS.config["pageFlavor"] = "oceanBlue"; 1870 } else if (SETTINGS.remoteResource.toLowerCase().lastIndexOf("tenant/templates/msa/unified.cshtml") > 0) { 1871 SETTINGS.config["pageFlavor"] = "slateGray"; 1872 } 1873 } 1874 1875 _serviceContent = $i2e.generateServiceContent( 1876 "unifiedssp", 1877 { 1878 buttonList: buttonList, 1879 AttributeFields: SA_FIELDS.AttributeFields, 1880 textLinkList: textLinkList 1881 }); 1882 $diags.trace(trace); 1883 }(new $trace("T005", true))); 1884 }; 1885 1886 // Export the public methods 1887 return { 1888 initialize: _initialize, 1889 generateServiceContent: _generateServiceContent, 1890 getElementContent: _getElementContent, 1891 version: "unifiedssp-2.1.2" 1892 }; 1893}($diags, CONTENT, SETTINGS); 1894/* endinject */ 1895 1896// This files gets bundled with the element module. Once the element module has 1897// loaded this script calls the generateServiceContent method on the element 1898// in preparartion for initialization post CORS request. 1899$element.generateServiceContent(); 1900 1901/* inject:jquery.simplemodal-1.4.5.min.js */ 1902/* endinject */ 1903 1904/* inject:b2b-extension */ 1905/* endinject */</script>
1905<title>Loading...</title><style>.no_display{display:none}.error_container h1{color:#333;font-size:1.2em;font-family:'Segoe UI Light',Segoe,'Segoe UI',SegoeUI-Light-final,Tahoma,Helvetica,Arial,sans-serif;font-weight:lighter}.error_container p{color:#333;font-size:.8em;font-family:'Segoe UI',Segoe,SegoeUI-Regular-final,Tahoma,Helvetica,Arial,sans-serif;margin:14px 0}</style></head><body><noscript><div id="no_js" ><div class="error_container"><div><h1>We can't sign you in</h1><p>Your browser is currently set to block JavaScript. You need to allow JavaScript to use this service.</p><p>To learn how to allow JavaScript or to find out whether your browser supports JavaScript, check the online help in your web browser.</p></div></div></div></noscript><div id="no_cookie" class="no_display"><div class="error_container"><div><h1>We can't sign you in</h1><p>Your browser is currently set to block cookies. You need to allow cookies to use this service.</p><p>Cookies are small text files stored on your computer that tell us when you're signed in. To learn how to allow cookies, check the online help in your web browser.</p>
1905<script nonce="cj4UYjqXC2rPgHGh8O1GTA==">if (!navigator.cookieEnabled) document.getElementById('no_cookie').className = ''; if (typeof $diags !== 'undefined') $diags.initializationSuccessful = true;</script>
1905</div></div></div></body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.