vendor: 7,195 bytes, lines 1-215
1/*! jQuery v3.2.0 | (c) JS Foundation and other contributors | jquery.org/license */ 2/*! 3 * Bootstrap v3.3.7 (http://getbootstrap.com) 4 * Copyright 2011-2016 Twitter, Inc. 5 * Licensed under the MIT license 6 */ 7if (function(t, e) { 8 "use strict"; 9 "object" == typeof module && "object" == typeof module.exports ? module.exports = t.document ? e(t, !0) : function(t) { 10 if (!t.document) 11 throw new Error("jQuery requires a window with a document"); 12 return e(t) 13 } 14 : e(t) 15}("undefined" != typeof window ? window : this, function(t, e) { 16 "use strict"; 17 var n = [] 18 , r = t.document 19 , i = Object.getPrototypeOf 20 , o = n.slice 21 , a = n.concat 22 , s = n.push 23 , u = n.indexOf 24 , l = {} 25 , c = l.toString 26 , h = l.hasOwnProperty 27 , d = h.toString 28 , f = d.call(Object) 29 , p = {}; 30 function g(t, e) { 31 e = e || r; 32 var n = e.createElement("script"); 33 n.text = t, 34 e.head.appendChild(n).parentNode.removeChild(n) 35 } 36 var m = "3.2.0" 37 , y = function(t, e) { 38 return new y.fn.init(t,e) 39 } 40 , v = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g 41 , b = /^-ms-/ 42 , w = /-([a-z])/g 43 , x = function(t, e) { 44 return e.toUpperCase() 45 }; 46 y.fn = y.prototype = { 47 jquery: m, 48 constructor: y, 49 length: 0, 50 toArray: function() { 51 return o.call(this) 52 }, 53 get: function(t) { 54 return null == t ? o.call(this) : t < 0 ? this[t + this.length] : this[t] 55 }, 56 pushStack: function(t) { 57 var e = y.merge(this.constructor(), t); 58 return e.prevObject = this, 59 e 60 }, 61 each: function(t) { 62 return y.each(this, t) 63 }, 64 map: function(t) { 65 return this.pushStack(y.map(this, function(e, n) { 66 return t.call(e, n, e) 67 })) 68 }, 69 slice: function() { 70 return this.pushStack(o.apply(this, arguments)) 71 }, 72 first: function() { 73 return this.eq(0) 74 }, 75 last: function() { 76 return this.eq(-1) 77 }, 78 eq: function(t) { 79 var e = this.length 80 , n = +t + (t < 0 ? e : 0); 81 return this.pushStack(n >= 0 && n < e ? [this[n]] : []) 82 }, 83 end: function() { 84 return this.prevObject || this.constructor() 85 }, 86 push: s, 87 sort: n.sort, 88 splice: n.splice 89 }, 90 y.extend = y.fn.extend = function() { 91 var t, e, n, r, i, o, a = arguments[0] || {}, s = 1, u = arguments.length, l = !1; 92 for ("boolean" == typeof a && (l = a, 93 a = arguments[s] || {}, 94 s++), 95 "object" == typeof a || y.isFunction(a) || (a = {}), 96 s === u && (a = this, 97 s--); s < u; s++) 98 if (null != (t = arguments[s])) 99 for (e in t) 100 n = a[e], 101 r = t[e], 102 a !== r && (l && r && (y.isPlainObject(r) || (i = Array.isArray(r))) ? (i ? (i = !1, 103 o = n && Array.isArray(n) ? n : []) : o = n && y.isPlainObject(n) ? n : {}, 104 a[e] = y.extend(l, o, r)) : void 0 !== r && (a[e] = r)); 105 return a 106 } 107 , 108 y.extend({ 109 expando: "jQuery" + (m + Math.random()).replace(/\D/g, ""), 110 isReady: !0, 111 error: function(t) { 112 throw new Error(t) 113 }, 114 noop: function() {}, 115 isFunction: function(t) { 116 return "function" === y.type(t) 117 }, 118 isWindow: function(t) { 119 return null != t && t === t.window 120 }, 121 isNumeric: function(t) { 122 var e = y.type(t); 123 return ("number" === e || "string" === e) && !isNaN(t - parseFloat(t)) 124 }, 125 isPlainObject: function(t) { 126 var e, n; 127 return !(!t || "[object Object]" !== c.call(t) || (e = i(t)) && ("function" != typeof (n = h.call(e, "constructor") && e.constructor) || d.call(n) !== f)) 128 }, 129 isEmptyObject: function(t) { 130 var e; 131 for (e in t) 132 return !1; 133 return !0 134 }, 135 type: function(t) { 136 return null == t ? t + "" : "object" == typeof t || "function" == typeof t ? l[c.call(t)] || "object" : typeof t 137 }, 138 globalEval: function(t) { 139 g(t) 140 }, 141 camelCase: function(t) { 142 return t.replace(b, "ms-").replace(w, x) 143 }, 144 each: function(t, e) { 145 var n, r = 0; 146 if (_(t)) 147 for (n = t.length; r < n && !1 !== e.call(t[r], r, t[r]); r++) 148 ; 149 else 150 for (r in t) 151 if (!1 === e.call(t[r], r, t[r])) 152 break; 153 return t 154 }, 155 trim: function(t) { 156 return null == t ? "" : (t + "").replace(v, "") 157 }, 158 makeArray: function(t, e) { 159 var n = e || []; 160 return null != t && (_(Object(t)) ? y.merge(n, "string" == typeof t ? [t] : t) : s.call(n, t)), 161 n 162 }, 163 inArray: function(t, e, n) { 164 return null == e ? -1 : u.call(e, t, n) 165 }, 166 merge: function(t, e) { 167 for (var n = +e.length, r = 0, i = t.length; r < n; r++) 168 t[i++] = e[r]; 169 return t.length = i, 170 t 171 }, 172 grep: function(t, e, n) { 173 for (var r = [], i = 0, o = t.length, a = !n; i < o; i++) 174 !e(t[i], i) !== a && r.push(t[i]); 175 return r 176 }, 177 map: function(t, e, n) { 178 var r, i, o = 0, s = []; 179 if (_(t)) 180 for (r = t.length; o < r; o++) 181 null != (i = e(t[o], o, n)) && s.push(i); 182 else 183 for (o in t) 184 null != (i = e(t[o], o, n)) && s.push(i); 185 return a.apply([], s) 186 }, 187 guid: 1, 188 proxy: function(t, e) { 189 var n, r, i; 190 if ("string" == typeof e && (n = t[e], 191 e = t, 192 t = n), 193 y.isFunction(t)) 194 return r = o.call(arguments, 2), 195 i = function() { 196 return t.apply(e || this, r.concat(o.call(arguments))) 197 } 198 , 199 i.guid = t.guid = t.guid || y.guid++, 200 i 201 }, 202 now: Date.now, 203 support: p 204 }), 205 "function" == typeof Symbol && (y.fn[Symbol.iterator] = n[Symbol.iterator]), 206 y.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(t, e) { 207 l["[object " + e + "]"] = e.toLowerCase() 208 }); 209 function _(t) { 210 var e = !!t && "length"in t && t.length 211 , n = y.type(t); 212 return "function" !== n && !y.isWindow(t) && ("array" === n || 0 === e || "number" == typeof e && e > 0 && e - 1 in t) 213 } 214 var C = function(t) { 215 var e, n, r, i, o, a, s, u, l, c, h, d, f, p, g, m, y, v, b, w = "sizzle" + 1 * new Date, x = t.document, _ = 0, C = 0, k = at(
vendor: 31,940 bytes, lines 215-941
215), j = at(), T = at(), S = function(t, e) { 216 return t === e && (h = !0), 217 0 218 }, E = {}.hasOwnProperty, A = [], M = A.pop, Q = A.push, $ = A.push, D = A.slice, I = function(t, e) { 219 for (var n = 0, r = t.length; n < r; n++) 220 if (t[n] === e) 221 return n; 222 return -1 223 }, N = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", F = "[\\x20\\t\\r\\n\\f]", L = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", P = "\\[" + F + "*(" + L + ")(?:" + F + "*([*^$|!~]?=)" + F + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + L + "))|)" + F + "*\\]", O = ":(" + L + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + P + ")*)|.*)\\)|)", q = new RegExp(F + "+","g"), R = new RegExp("^" + F + "+|((?:^|[^\\\\])(?:\\\\.)*)" + F + "+$","g"), z = new RegExp("^" + F + "*," + F + "*"), H = new RegExp("^" + F + "*([>+~]|" + F + ")" + F + "*"), B = new RegExp("=" + F + "*([^\\]'\"]*?)" + F + "*\\]","g"), V = new RegExp(O), U = new RegExp("^" + L + "$"), W = { 224 ID: new RegExp("^#(" + L + ")"), 225 CLASS: new RegExp("^\\.(" + L + ")"), 226 TAG: new RegExp("^(" + L + "|[*])"), 227 ATTR: new RegExp("^" + P), 228 PSEUDO: new RegExp("^" + O), 229 CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + F + "*(even|odd|(([+-]|)(\\d*)n|)" + F + "*(?:([+-]|)" + F + "*(\\d+)|))" + F + "*\\)|)","i"), 230 bool: new RegExp("^(?:" + N + ")$","i"), 231 needsContext: new RegExp("^" + F + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + F + "*((?:-\\d)?\\d*)" + F + "*\\)|)(?=[^-]|$)","i") 232 }, K = /^(?:input|select|textarea|button)$/i, G = /^h\d$/i, Y = /^[^{]+\{\s*\[native \w/, J = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, X = /[+~]/, Z = new RegExp("\\\\([\\da-f]{1,6}" + F + "?|(" + F + ")|.)","ig"), tt = function(t, e, n) { 233 var r = "0x" + e - 65536; 234 return r !== r || n ? e : r < 0 ? String.fromCharCode(r + 65536) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320) 235 }, et = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, nt = function(t, e) { 236 return e ? "\0" === t ? "�" : t.slice(0, -1) + "\\" + t.charCodeAt(t.length - 1).toString(16) + " " : "\\" + t 237 }, rt = function() { 238 d() 239 }, it = mt(function(t) { 240 return !0 === t.disabled && ("form"in t || "label"in t) 241 }, { 242 dir: "parentNode", 243 next: "legend" 244 }); 245 try { 246 $.apply(A = D.call(x.childNodes), x.childNodes), 247 A[x.childNodes.length].nodeType 248 } catch (t) { 249 $ = { 250 apply: A.length ? function(t, e) { 251 Q.apply(t, D.call(e)) 252 } 253 : function(t, e) { 254 for (var n = t.length, r = 0; t[n++] = e[r++]; ) 255 ; 256 t.length = n - 1 257 } 258 } 259 } 260 function ot(t, e, r, i) { 261 var o, s, l, c, h, p, y, v = e && e.ownerDocument, _ = e ? e.nodeType : 9; 262 if (r = r || [], 263 "string" != typeof t || !t || 1 !== _ && 9 !== _ && 11 !== _) 264 return r; 265 if (!i && ((e ? e.ownerDocument || e : x) !== f && d(e), 266 e = e || f, 267 g)) { 268 if (11 !== _ && (h = J.exec(t))) 269 if (o = h[1]) { 270 if (9 === _) { 271 if (!(l = e.getElementById(o))) 272 return r; 273 if (l.id === o) 274 return r.push(l), 275 r 276 } else if (v && (l = v.getElementById(o)) && b(e, l) && l.id === o) 277 return r.push(l), 278 r 279 } else { 280 if (h[2]) 281 return $.apply(r, e.getElementsByTagName(t)), 282 r; 283 if ((o = h[3]) && n.getElementsByClassName && e.getElementsByClassName) 284 return $.apply(r, e.getElementsByClassName(o)), 285 r 286 } 287 if (n.qsa && !T[t + " "] && (!m || !m.test(t))) { 288 if (1 !== _) 289 v = e, 290 y = t; 291 else if ("object" !== e.nodeName.toLowerCase()) { 292 for ((c = e.getAttribute("id")) ? c = c.replace(et, nt) : e.setAttribute("id", c = w), 293 p = a(t), 294 s = p.length; s--; ) 295 p[s] = "#" + c + " " + gt(p[s]); 296 y = p.join(","), 297 v = X.test(t) && ft(e.parentNode) || e 298 } 299 if (y) 300 try { 301 return $.apply(r, v.querySelectorAll(y)), 302 r 303 } catch (t) {} finally { 304 c === w && e.removeAttribute("id") 305 } 306 } 307 } 308 return u(t.replace(R, "$1"), e, r, i) 309 } 310 function at() { 311 var t = []; 312 function e(n, i) { 313 return t.push(n + " ") > r.cacheLength && delete e[t.shift()], 314 e[n + " "] = i 315 } 316 return e 317 } 318 function st(t) { 319 return t[w] = !0, 320 t 321 } 322 function ut(t) { 323 var e = f.createElement("fieldset"); 324 try { 325 return !!t(e) 326 } catch (t) { 327 return !1 328 } finally { 329 e.parentNode && e.parentNode.removeChild(e), 330 e = null 331 } 332 } 333 function lt(t, e) { 334 for (var n = t.split("|"), i = n.length; i--; ) 335 r.attrHandle[n[i]] = e 336 } 337 function ct(t, e) { 338 var n = e && t 339 , r = n && 1 === t.nodeType && 1 === e.nodeType && t.sourceIndex - e.sourceIndex; 340 if (r) 341 return r; 342 if (n) 343 for (; n = n.nextSibling; ) 344 if (n === e) 345 return -1; 346 return t ? 1 : -1 347 } 348 function ht(t) { 349 return function(e) { 350 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 && it(e) === t : e.disabled === t : "label"in e && e.disabled === t 351 } 352 } 353 function dt(t) { 354 return st(function(e) { 355 return e = +e, 356 st(function(n, r) { 357 for (var i, o = t([], n.length, e), a = o.length; a--; ) 358 n[i = o[a]] && (n[i] = !(r[i] = n[i])) 359 }) 360 }) 361 } 362 function ft(t) { 363 return t && void 0 !== t.getElementsByTagName && t 364 } 365 n = ot.support = {}, 366 o = ot.isXML = function(t) { 367 var e = t && (t.ownerDocument || t).documentElement; 368 return !!e && "HTML" !== e.nodeName 369 } 370 , 371 d = ot.setDocument = function(t) { 372 var e, i, a = t ? t.ownerDocument || t : x; 373 return a !== f && 9 === a.nodeType && a.documentElement ? (f = a, 374 p = f.documentElement, 375 g = !o(f), 376 x !== f && (i = f.defaultView) && i.top !== i && (i.addEventListener ? i.addEventListener("unload", rt, !1) : i.attachEvent && i.attachEvent("onunload", rt)), 377 n.attributes = ut(function(t) { 378 return t.className = "i", 379 !t.getAttribute("className") 380 }), 381 n.getElementsByTagName = ut(function(t) { 382 return t.appendChild(f.createComment("")), 383 !t.getElementsByTagName("*").length 384 }), 385 n.getElementsByClassName = Y.test(f.getElementsByClassName), 386 n.getById = ut(function(t) { 387 return p.appendChild(t).id = w, 388 !f.getElementsByName || !f.getElementsByName(w).length 389 }), 390 n.getById ? (r.filter.ID = function(t) { 391 var e = t.replace(Z, tt); 392 return function(t) { 393 return t.getAttribute("id") === e 394 } 395 } 396 , 397 r.find.ID = function(t, e) { 398 if (void 0 !== e.getElementById && g) { 399 var n = e.getElementById(t); 400 return n ? [n] : [] 401 } 402 } 403 ) : (r.filter.ID = function(t) { 404 var e = t.replace(Z, tt); 405 return function(t) { 406 var n = void 0 !== t.getAttributeNode && t.getAttributeNode("id"); 407 return n && n.value === e 408 } 409 } 410 , 411 r.find.ID = function(t, e) { 412 if (void 0 !== e.getElementById && g) { 413 var n, r, i, o = e.getElementById(t); 414 if (o) { 415 if ((n = o.getAttributeNode("id")) && n.value === t) 416 return [o]; 417 for (i = e.getElementsByName(t), 418 r = 0; o = i[r++]; ) 419 if ((n = o.getAttributeNode("id")) && n.value === t) 420 return [o] 421 } 422 return [] 423 } 424 } 425 ), 426 r.find.TAG = n.getElementsByTagName ? function(t, e) { 427 return void 0 !== e.getElementsByTagName ? e.getElementsByTagName(t) : n.qsa ? e.querySelectorAll(t) : void 0 428 } 429 : function(t, e) { 430 var n, r = [], i = 0, o = e.getElementsByTagName(t); 431 if ("*" === t) { 432 for (; n = o[i++]; ) 433 1 === n.nodeType && r.push(n); 434 return r 435 } 436 return o 437 } 438 , 439 r.find.CLASS = n.getElementsByClassName && function(t, e) { 440 if (void 0 !== e.getElementsByClassName && g) 441 return e.getElementsByClassName(t) 442 } 443 , 444 y = [], 445 m = [], 446 (n.qsa = Y.test(f.querySelectorAll)) && (ut(function(t) { 447 p.appendChild(t).innerHTML = "<a id='" + w + "'></a><select id='" + w + "-\r\\' msallowcapture=''><option selected=''></option></select>", 448 t.querySelectorAll("[msallowcapture^='']").length && m.push("[*^$]=" + F + "*(?:''|\"\")"), 449 t.querySelectorAll("[selected]").length || m.push("\\[" + F + "*(?:value|" + N + ")"), 450 t.querySelectorAll("[id~=" + w + "-]").length || m.push("~="), 451 t.querySelectorAll(":checked").length || m.push(":checked"), 452 t.querySelectorAll("a#" + w + "+*").length || m.push(".#.+[+~]") 453 }), 454 ut(function(t) { 455 t.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>"; 456 var e = f.createElement("input"); 457 e.setAttribute("type", "hidden"), 458 t.appendChild(e).setAttribute("name", "D"), 459 t.querySelectorAll("[name=d]").length && m.push("name" + F + "*[*^$|!~]?="), 460 2 !== t.querySelectorAll(":enabled").length && m.push(":enabled", ":disabled"), 461 p.appendChild(t).disabled = !0, 462 2 !== t.querySelectorAll(":disabled").length && m.push(":enabled", ":disabled"), 463 t.querySelectorAll("*,:x"), 464 m.push(",.*:") 465 })), 466 (n.matchesSelector = Y.test(v = p.matches || p.webkitMatchesSelector || p.mozMatchesSelector || p.oMatchesSelector || p.msMatchesSelector)) && ut(function(t) { 467 n.disconnectedMatch = v.call(t, "*"), 468 v.call(t, "[s!='']:x"), 469 y.push("!=", O) 470 }), 471 m = m.length && new RegExp(m.join("|")), 472 y = y.length && new RegExp(y.join("|")), 473 e = Y.test(p.compareDocumentPosition), 474 b = e || Y.test(p.contains) ? function(t, e) { 475 var n = 9 === t.nodeType ? t.documentElement : t 476 , r = e && e.parentNode; 477 return t === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : t.compareDocumentPosition && 16 & t.compareDocumentPosition(r))) 478 } 479 : function(t, e) { 480 if (e) 481 for (; e = e.parentNode; ) 482 if (e === t) 483 return !0; 484 return !1 485 } 486 , 487 S = e ? function(t, e) { 488 if (t === e) 489 return h = !0, 490 0; 491 var r = !t.compareDocumentPosition - !e.compareDocumentPosition; 492 return r || (r = (t.ownerDocument || t) === (e.ownerDocument || e) ? t.compareDocumentPosition(e) : 1, 493 1 & r || !n.sortDetached && e.compareDocumentPosition(t) === r ? t === f || t.ownerDocument === x && b(x, t) ? -1 : e === f || e.ownerDocument === x && b(x, e) ? 1 : c ? I(c, t) - I(c, e) : 0 : 4 & r ? -1 : 1) 494 } 495 : function(t, e) { 496 if (t === e) 497 return h = !0, 498 0; 499 var n, r = 0, i = t.parentNode, o = e.parentNode, a = [t], s = [e]; 500 if (!i || !o) 501 return t === f ? -1 : e === f ? 1 : i ? -1 : o ? 1 : c ? I(c, t) - I(c, e) : 0; 502 if (i === o) 503 return ct(t, e); 504 for (n = t; n = n.parentNode; ) 505 a.unshift(n); 506 for (n = e; n = n.parentNode; ) 507 s.unshift(n); 508 for (; a[r] === s[r]; ) 509 r++; 510 return r ? ct(a[r], s[r]) : a[r] === x ? -1 : s[r] === x ? 1 : 0 511 } 512 , 513 f) : f 514 } 515 , 516 ot.matches = function(t, e) { 517 return ot(t, null, null, e) 518 } 519 , 520 ot.matchesSelector = function(t, e) { 521 if ((t.ownerDocument || t) !== f && d(t), 522 e = e.replace(B, "='$1']"), 523 n.matchesSelector && g && !T[e + " "] && (!y || !y.test(e)) && (!m || !m.test(e))) 524 try { 525 var r = v.call(t, e); 526 if (r || n.disconnectedMatch || t.document && 11 !== t.document.nodeType) 527 return r 528 } catch (t) {} 529 return ot(e, f, null, [t]).length > 0 530 } 531 , 532 ot.contains = function(t, e) { 533 return (t.ownerDocument || t) !== f && d(t), 534 b(t, e) 535 } 536 , 537 ot.attr = function(t, e) { 538 (t.ownerDocument || t) !== f && d(t); 539 var i = r.attrHandle[e.toLowerCase()] 540 , o = i && E.call(r.attrHandle, e.toLowerCase()) ? i(t, e, !g) : void 0; 541 return void 0 !== o ? o : n.attributes || !g ? t.getAttribute(e) : (o = t.getAttributeNode(e)) && o.specified ? o.value : null 542 } 543 , 544 ot.escape = function(t) { 545 return (t + "").replace(et, nt) 546 } 547 , 548 ot.error = function(t) { 549 throw new Error("Syntax error, unrecognized expression: " + t) 550 } 551 , 552 ot.uniqueSort = function(t) { 553 var e, r = [], i = 0, o = 0; 554 if (h = !n.detectDuplicates, 555 c = !n.sortStable && t.slice(0), 556 t.sort(S), 557 h) { 558 for (; e = t[o++]; ) 559 e === t[o] && (i = r.push(o)); 560 for (; i--; ) 561 t.splice(r[i], 1) 562 } 563 return c = null, 564 t 565 } 566 , 567 i = ot.getText = function(t) { 568 var e, n = "", r = 0, o = t.nodeType; 569 if (o) { 570 if (1 === o || 9 === o || 11 === o) { 571 if ("string" == typeof t.textContent) 572 return t.textContent; 573 for (t = t.firstChild; t; t = t.nextSibling) 574 n += i(t) 575 } else if (3 === o || 4 === o) 576 return t.nodeValue 577 } else 578 for (; e = t[r++]; ) 579 n += i(e); 580 return n 581 } 582 , 583 r = ot.selectors = { 584 cacheLength: 50, 585 createPseudo: st, 586 match: W, 587 attrHandle: {}, 588 find: {}, 589 relative: { 590 ">": { 591 dir: "parentNode", 592 first: !0 593 }, 594 " ": { 595 dir: "parentNode" 596 }, 597 "+": { 598 dir: "previousSibling", 599 first: !0 600 }, 601 "~": { 602 dir: "previousSibling" 603 } 604 }, 605 preFilter: { 606 ATTR: function(t) { 607 return t[1] = t[1].replace(Z, tt), 608 t[3] = (t[3] || t[4] || t[5] || "").replace(Z, tt), 609 "~=" === t[2] && (t[3] = " " + t[3] + " "), 610 t.slice(0, 4) 611 }, 612 CHILD: function(t) { 613 return t[1] = t[1].toLowerCase(), 614 "nth" === t[1].slice(0, 3) ? (t[3] || ot.error(t[0]), 615 t[4] = +(t[4] ? t[5] + (t[6] || 1) : 2 * ("even" === t[3] || "odd" === t[3])), 616 t[5] = +(t[7] + t[8] || "odd" === t[3])) : t[3] && ot.error(t[0]), 617 t 618 }, 619 PSEUDO: function(t) { 620 var e, n = !t[6] && t[2]; 621 return W.CHILD.test(t[0]) ? null : (t[3] ? t[2] = t[4] || t[5] || "" : n && V.test(n) && (e = a(n, !0)) && (e = n.indexOf(")", n.length - e) - n.length) && (t[0] = t[0].slice(0, e), 622 t[2] = n.slice(0, e)), 623 t.slice(0, 3)) 624 } 625 }, 626 filter: { 627 TAG: function(t) { 628 var e = t.replace(Z, tt).toLowerCase(); 629 return "*" === t ? function() { 630 return !0 631 } 632 : function(t) { 633 return t.nodeName && t.nodeName.toLowerCase() === e 634 } 635 }, 636 CLASS: function(t) { 637 var e = k[t + " "]; 638 return e || (e = new RegExp("(^|" + F + ")" + t + "(" + F + "|$)")) && k(t, function(t) { 639 return e.test("string" == typeof t.className && t.className || void 0 !== t.getAttribute && t.getAttribute("class") || "") 640 }) 641 }, 642 ATTR: function(t, e, n) { 643 return function(r) { 644 var i = ot.attr(r, t); 645 return null == i ? "!=" === e : !e || (i += "", 646 "=" === e ? i === n : "!=" === e ? i !== n : "^=" === e ? n && 0 === i.indexOf(n) : "*=" === e ? n && i.indexOf(n) > -1 : "$=" === e ? n && i.slice(-n.length) === n : "~=" === e ? (" " + i.replace(q, " ") + " ").indexOf(n) > -1 : "|=" === e && (i === n || i.slice(0, n.length + 1) === n + "-")) 647 } 648 }, 649 CHILD: function(t, e, n, r, i) { 650 var o = "nth" !== t.slice(0, 3) 651 , a = "last" !== t.slice(-4) 652 , s = "of-type" === e; 653 return 1 === r && 0 === i ? function(t) { 654 return !!t.parentNode 655 } 656 : function(e, n, u) { 657 var l, c, h, d, f, p, g = o !== a ? "nextSibling" : "previousSibling", m = e.parentNode, y = s && e.nodeName.toLowerCase(), v = !u && !s, b = !1; 658 if (m) { 659 if (o) { 660 for (; g; ) { 661 for (d = e; d = d[g]; ) 662 if (s ? d.nodeName.toLowerCase() === y : 1 === d.nodeType) 663 return !1; 664 p = g = "only" === t && !p && "nextSibling" 665 } 666 return !0 667 } 668 if (p = [a ? m.firstChild : m.lastChild], 669 a && v) { 670 for (d = m, 671 h = d[w] || (d[w] = {}), 672 c = h[d.uniqueID] || (h[d.uniqueID] = {}), 673 l = c[t] || [], 674 f = l[0] === _ && l[1], 675 b = f && l[2], 676 d = f && m.childNodes[f]; d = ++f && d && d[g] || (b = f = 0) || p.pop(); ) 677 if (1 === d.nodeType && ++b && d === e) { 678 c[t] = [_, f, b]; 679 break 680 } 681 } else if (v && (d = e, 682 h = d[w] || (d[w] = {}), 683 c = h[d.uniqueID] || (h[d.uniqueID] = {}), 684 l = c[t] || [], 685 f = l[0] === _ && l[1], 686 b = f), 687 !1 === b) 688 for (; (d = ++f && d && d[g] || (b = f = 0) || p.pop()) && ((s ? d.nodeName.toLowerCase() !== y : 1 !== d.nodeType) || !++b || (v && (h = d[w] || (d[w] = {}), 689 c = h[d.uniqueID] || (h[d.uniqueID] = {}), 690 c[t] = [_, b]), 691 d !== e)); ) 692 ; 693 return (b -= i) === r || b % r == 0 && b / r >= 0 694 } 695 } 696 }, 697 PSEUDO: function(t, e) { 698 var n, i = r.pseudos[t] || r.setFilters[t.toLowerCase()] || ot.error("unsupported pseudo: " + t); 699 return i[w] ? i(e) : i.length > 1 ? (n = [t, t, "", e], 700 r.setFilters.hasOwnProperty(t.toLowerCase()) ? st(function(t, n) { 701 for (var r, o = i(t, e), a = o.length; a--; ) 702 r = I(t, o[a]), 703 t[r] = !(n[r] = o[a]) 704 }) : function(t) { 705 return i(t, 0, n) 706 } 707 ) : i 708 } 709 }, 710 pseudos: { 711 not: st(function(t) { 712 var e = [] 713 , n = [] 714 , r = s(t.replace(R, "$1")); 715 return r[w] ? st(function(t, e, n, i) { 716 for (var o, a = r(t, null, i, []), s = t.length; s--; ) 717 (o = a[s]) && (t[s] = !(e[s] = o)) 718 }) : function(t, i, o) { 719 return e[0] = t, 720 r(e, null, o, n), 721 e[0] = null, 722 !n.pop() 723 } 724 }), 725 has: st(function(t) { 726 return function(e) { 727 return ot(t, e).length > 0 728 } 729 }), 730 contains: st(function(t) { 731 return t = t.replace(Z, tt), 732 function(e) { 733 return (e.textContent || e.innerText || i(e)).indexOf(t) > -1 734 } 735 }), 736 lang: st(function(t) { 737 return U.test(t || "") || ot.error("unsupported lang: " + t), 738 t = t.replace(Z, tt).toLowerCase(), 739 function(e) { 740 var n; 741 do { 742 if (n = g ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang")) 743 return (n = n.toLowerCase()) === t || 0 === n.indexOf(t + "-") 744 } while ((e = e.parentNode) && 1 === e.nodeType); 745 return !1 746 } 747 }), 748 target: function(e) { 749 var n = t.location && t.location.hash; 750 return n && n.slice(1) === e.id 751 }, 752 root: function(t) { 753 return t === p 754 }, 755 focus: function(t) { 756 return t === f.activeElement && (!f.hasFocus || f.hasFocus()) && !!(t.type || t.href || ~t.tabIndex) 757 }, 758 enabled: ht(!1), 759 disabled: ht(!0), 760 checked: function(t) { 761 var e = t.nodeName.toLowerCase(); 762 return "input" === e && !!t.checked || "option" === e && !!t.selected 763 }, 764 selected: function(t) { 765 return t.parentNode && t.parentNode.selectedIndex, 766 !0 === t.selected 767 }, 768 empty: function(t) { 769 for (t = t.firstChild; t; t = t.nextSibling) 770 if (t.nodeType < 6) 771 return !1; 772 return !0 773 }, 774 parent: function(t) { 775 return !r.pseudos.empty(t) 776 }, 777 header: function(t) { 778 return G.test(t.nodeName) 779 }, 780 input: function(t) { 781 return K.test(t.nodeName) 782 }, 783 button: function(t) { 784 var e = t.nodeName.toLowerCase(); 785 return "input" === e && "button" === t.type || "button" === e 786 }, 787 text: function(t) { 788 var e; 789 return "input" === t.nodeName.toLowerCase() && "text" === t.type && (null == (e = t.getAttribute("type")) || "text" === e.toLowerCase()) 790 }, 791 first: dt(function() { 792 return [0] 793 }), 794 last: dt(function(t, e) { 795 return [e - 1] 796 }), 797 eq: dt(function(t, e, n) { 798 return [n < 0 ? n + e : n] 799 }), 800 even: dt(function(t, e) { 801 for (var n = 0; n < e; n += 2) 802 t.push(n); 803 return t 804 }), 805 odd: dt(function(t, e) { 806 for (var n = 1; n < e; n += 2) 807 t.push(n); 808 return t 809 }), 810 lt: dt(function(t, e, n) { 811 for (var r = n < 0 ? n + e : n; --r >= 0; ) 812 t.push(r); 813 return t 814 }), 815 gt: dt(function(t, e, n) { 816 for (var r = n < 0 ? n + e : n; ++r < e; ) 817 t.push(r); 818 return t 819 }) 820 } 821 }, 822 r.pseudos.nth = r.pseudos.eq; 823 for (e in { 824 radio: !0, 825 checkbox: !0, 826 file: !0, 827 password: !0, 828 image: !0 829 }) 830 r.pseudos[e] = function(t) { 831 return function(e) { 832 return "input" === e.nodeName.toLowerCase() && e.type === t 833 } 834 }(e); 835 for (e in { 836 submit: !0, 837 reset: !0 838 }) 839 r.pseudos[e] = function(t) { 840 return function(e) { 841 var n = e.nodeName.toLowerCase(); 842 return ("input" === n || "button" === n) && e.type === t 843 } 844 }(e); 845 function pt() {} 846 pt.prototype = r.filters = r.pseudos, 847 r.setFilters = new pt, 848 a = ot.tokenize = function(t, e) { 849 var n, i, o, a, s, u, l, c = j[t + " "]; 850 if (c) 851 return e ? 0 : c.slice(0); 852 for (s = t, 853 u = [], 854 l = r.preFilter; s; ) { 855 n && !(i = z.exec(s)) || (i && (s = s.slice(i[0].length) || s), 856 u.push(o = [])), 857 n = !1, 858 (i = H.exec(s)) && (n = i.shift(), 859 o.push({ 860 value: n, 861 type: i[0].replace(R, " ") 862 }), 863 s = s.slice(n.length)); 864 for (a in r.filter) 865 !(i = W[a].exec(s)) || l[a] && !(i = l[a](i)) || (n = i.shift(), 866 o.push({ 867 value: n, 868 type: a, 869 matches: i 870 }), 871 s = s.slice(n.length)); 872 if (!n) 873 break 874 } 875 return e ? s.length : s ? ot.error(t) : j(t, u).slice(0) 876 } 877 ; 878 function gt(t) { 879 for (var e = 0, n = t.length, r = ""; e < n; e++) 880 r += t[e].value; 881 return r 882 } 883 function mt(t, e, n) { 884 var r = e.dir 885 , i = e.next 886 , o = i || r 887 , a = n && "parentNode" === o 888 , s = C++; 889 return e.first ? function(e, n, i) { 890 for (; e = e[r]; ) 891 if (1 === e.nodeType || a) 892 return t(e, n, i); 893 return !1 894 } 895 : function(e, n, u) { 896 var l, c, h, d = [_, s]; 897 if (u) { 898 for (; e = e[r]; ) 899 if ((1 === e.nodeType || a) && t(e, n, u)) 900 return !0 901 } else 902 for (; e = e[r]; ) 903 if (1 === e.nodeType || a) 904 if (h = e[w] || (e[w] = {}), 905 c = h[e.uniqueID] || (h[e.uniqueID] = {}), 906 i && i === e.nodeName.toLowerCase()) 907 e = e[r] || e; 908 else { 909 if ((l = c[o]) && l[0] === _ && l[1] === s) 910 return d[2] = l[2]; 911 if (c[o] = d, 912 d[2] = t(e, n, u)) 913 return !0 914 } 915 return !1 916 } 917 } 918 function yt(t) { 919 return t.length > 1 ? function(e, n, r) { 920 for (var i = t.length; i--; ) 921 if (!t[i](e, n, r)) 922 return !1; 923 return !0 924 } 925 : t[0] 926 } 927 function vt(t, e, n) { 928 for (var r = 0, i = e.length; r < i; r++) 929 ot(t, e[r], n); 930 return n 931 } 932 function bt(t, e, n, r, i) { 933 for (var o, a = [], s = 0, u = t.length, l = null != e; s < u; s++) 934 (o = t[s]) && (n && !n(o, r, i) || (a.push(o), 935 l && e.push(s))); 936 return a 937 } 938 function wt(t, e, n, r, i, o) { 939 return r && !r[w] && (r = wt(r)), 940 i && !i[w] && (i = wt(i, o)), 941 st(function(o, a, s, u) {
vendor: 4,526 bytes, lines 942-1047
942 var l, c, h, d = [], f = [], p = a.length, g = o || vt(e || "*", s.nodeType ? [s] : s, []), m = !t || !o && e ? g : bt(g, d, t, s, u), y = n ? i || (o ? t : p || r) ? [] : a : m; 943 if (n && n(m, y, s, u), 944 r) 945 for (l = bt(y, f), 946 r(l, [], s, u), 947 c = l.length; c--; ) 948 (h = l[c]) && (y[f[c]] = !(m[f[c]] = h)); 949 if (o) { 950 if (i || t) { 951 if (i) { 952 for (l = [], 953 c = y.length; c--; ) 954 (h = y[c]) && l.push(m[c] = h); 955 i(null, y = [], l, u) 956 } 957 for (c = y.length; c--; ) 958 (h = y[c]) && (l = i ? I(o, h) : d[c]) > -1 && (o[l] = !(a[l] = h)) 959 } 960 } else 961 y = bt(y === a ? y.splice(p, y.length) : y), 962 i ? i(null, a, y, u) : $.apply(a, y) 963 }) 964 } 965 function xt(t) { 966 for (var e, n, i, o = t.length, a = r.relative[t[0].type], s = a || r.relative[" "], u = a ? 1 : 0, c = mt(function(t) { 967 return t === e 968 }, s, !0), h = mt(function(t) { 969 return I(e, t) > -1 970 }, s, !0), d = [function(t, n, r) { 971 var i = !a && (r || n !== l) || ((e = n).nodeType ? c(t, n, r) : h(t, n, r)); 972 return e = null, 973 i 974 } 975 ]; u < o; u++) 976 if (n = r.relative[t[u].type]) 977 d = [mt(yt(d), n)]; 978 else { 979 if (n = r.filter[t[u].type].apply(null, t[u].matches), 980 n[w]) { 981 for (i = ++u; i < o && !r.relative[t[i].type]; i++) 982 ; 983 return wt(u > 1 && yt(d), u > 1 && gt(t.slice(0, u - 1).concat({ 984 value: " " === t[u - 2].type ? "*" : "" 985 })).replace(R, "$1"), n, u < i && xt(t.slice(u, i)), i < o && xt(t = t.slice(i)), i < o && gt(t)) 986 } 987 d.push(n) 988 } 989 return yt(d) 990 } 991 function _t(t, e) { 992 var n = e.length > 0 993 , i = t.length > 0 994 , o = function(o, a, s, u, c) { 995 var h, p, m, y = 0, v = "0", b = o && [], w = [], x = l, C = o || i && r.find.TAG("*", c), k = _ += null == x ? 1 : Math.random() || .1, j = C.length; 996 for (c && (l = a === f || a || c); v !== j && null != (h = C[v]); v++) { 997 if (i && h) { 998 for (p = 0, 999 a || h.ownerDocument === f || (d(h), 1000 s = !g); m = t[p++]; ) 1001 if (m(h, a || f, s)) { 1002 u.push(h); 1003 break 1004 } 1005 c && (_ = k) 1006 } 1007 n && ((h = !m && h) && y--, 1008 o && b.push(h)) 1009 } 1010 if (y += v, 1011 n && v !== y) { 1012 for (p = 0; m = e[p++]; ) 1013 m(b, w, a, s); 1014 if (o) { 1015 if (y > 0) 1016 for (; v--; ) 1017 b[v] || w[v] || (w[v] = M.call(u)); 1018 w = bt(w) 1019 } 1020 $.apply(u, w), 1021 c && !o && w.length > 0 && y + e.length > 1 && ot.uniqueSort(u) 1022 } 1023 return c && (_ = k, 1024 l = x), 1025 b 1026 }; 1027 return n ? st(o) : o 1028 } 1029 return s = ot.compile = function(t, e) { 1030 var n, r = [], i = [], o = T[t + " "]; 1031 if (!o) { 1032 for (e || (e = a(t)), 1033 n = e.length; n--; ) 1034 o = xt(e[n]), 1035 o[w] ? r.push(o) : i.push(o); 1036 o = T(t, _t(i, r)), 1037 o.selector = t 1038 } 1039 return o 1040 } 1041 , 1042 u = ot.select = function(t, e, n, i) { 1043 var o, u, l, c, h, d = "function" == typeof t && t, f = !i && a(t = d.selector || t); 1044 if (n = n || [], 1045 1 === f.length) { 1046 if (u = f[0] = f[0].slice(0), 1047 u.length >
vendor: 17,311 bytes, lines 1047-1507
1047 2 && "ID" === (l = u[0]).type && 9 === e.nodeType && g && r.relative[u[1].type]) { 1048 if (!(e = (r.find.ID(l.matches[0].replace(Z, tt), e) || [])[0])) 1049 return n; 1050 d && (e = e.parentNode), 1051 t = t.slice(u.shift().value.length) 1052 } 1053 for (o = W.needsContext.test(t) ? 0 : u.length; o-- && (l = u[o], 1054 !r.relative[c = l.type]); ) 1055 if ((h = r.find[c]) && (i = h(l.matches[0].replace(Z, tt), X.test(u[0].type) && ft(e.parentNode) || e))) { 1056 if (u.splice(o, 1), 1057 !(t = i.length && gt(u))) 1058 return $.apply(n, i), 1059 n; 1060 break 1061 } 1062 } 1063 return (d || s(t, f))(i, e, !g, n, !e || X.test(t) && ft(e.parentNode) || e), 1064 n 1065 } 1066 , 1067 n.sortStable = w.split("").sort(S).join("") === w, 1068 n.detectDuplicates = !!h, 1069 d(), 1070 n.sortDetached = ut(function(t) { 1071 return 1 & t.compareDocumentPosition(f.createElement("fieldset")) 1072 }), 1073 ut(function(t) { 1074 return t.innerHTML = "<a href='#'></a>", 1075 "#" === t.firstChild.getAttribute("href") 1076 }) || lt("type|href|height|width", function(t, e, n) { 1077 if (!n) 1078 return t.getAttribute(e, "type" === e.toLowerCase() ? 1 : 2) 1079 }), 1080 n.attributes && ut(function(t) { 1081 return t.innerHTML = "<input/>", 1082 t.firstChild.setAttribute("value", ""), 1083 "" === t.firstChild.getAttribute("value") 1084 }) || lt("value", function(t, e, n) { 1085 if (!n && "input" === t.nodeName.toLowerCase()) 1086 return t.defaultValue 1087 }), 1088 ut(function(t) { 1089 return null == t.getAttribute("disabled") 1090 }) || lt(N, function(t, e, n) { 1091 var r; 1092 if (!n) 1093 return !0 === t[e] ? e.toLowerCase() : (r = t.getAttributeNode(e)) && r.specified ? r.value : null 1094 }), 1095 ot 1096 }(t); 1097 y.find = C, 1098 y.expr = C.selectors, 1099 y.expr[":"] = y.expr.pseudos, 1100 y.uniqueSort = y.unique = C.uniqueSort, 1101 y.text = C.getText, 1102 y.isXMLDoc = C.isXML, 1103 y.contains = C.contains, 1104 y.escapeSelector = C.escape; 1105 var k = function(t, e, n) { 1106 for (var r = [], i = void 0 !== n; (t = t[e]) && 9 !== t.nodeType; ) 1107 if (1 === t.nodeType) { 1108 if (i && y(t).is(n)) 1109 break; 1110 r.push(t) 1111 } 1112 return r 1113 } 1114 , j = function(t, e) { 1115 for (var n = []; t; t = t.nextSibling) 1116 1 === t.nodeType && t !== e && n.push(t); 1117 return n 1118 } 1119 , T = y.expr.match.needsContext; 1120 function S(t, e) { 1121 return t.nodeName && t.nodeName.toLowerCase() === e.toLowerCase() 1122 } 1123 var E = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i 1124 , A = /^.[^:#\[\.,]*$/; 1125 function M(t, e, n) { 1126 return y.isFunction(e) ? y.grep(t, function(t, r) { 1127 return !!e.call(t, r, t) !== n 1128 }) : e.nodeType ? y.grep(t, function(t) { 1129 return t === e !== n 1130 }) : "string" != typeof e ? y.grep(t, function(t) { 1131 return u.call(e, t) > -1 !== n 1132 }) : A.test(e) ? y.filter(e, t, n) : (e = y.filter(e, t), 1133 y.grep(t, function(t) { 1134 return u.call(e, t) > -1 !== n && 1 === t.nodeType 1135 })) 1136 } 1137 y.filter = function(t, e, n) { 1138 var r = e[0]; 1139 return n && (t = ":not(" + t + ")"), 1140 1 === e.length && 1 === r.nodeType ? y.find.matchesSelector(r, t) ? [r] : [] : y.find.matches(t, y.grep(e, function(t) { 1141 return 1 === t.nodeType 1142 })) 1143 } 1144 , 1145 y.fn.extend({ 1146 find: function(t) { 1147 var e, n, r = this.length, i = this; 1148 if ("string" != typeof t) 1149 return this.pushStack(y(t).filter(function() { 1150 for (e = 0; e < r; e++) 1151 if (y.contains(i[e], this)) 1152 return !0 1153 })); 1154 for (n = this.pushStack([]), 1155 e = 0; e < r; e++) 1156 y.find(t, i[e], n); 1157 return r > 1 ? y.uniqueSort(n) : n 1158 }, 1159 filter: function(t) { 1160 return this.pushStack(M(this, t || [], !1)) 1161 }, 1162 not: function(t) { 1163 return this.pushStack(M(this, t || [], !0)) 1164 }, 1165 is: function(t) { 1166 return !!M(this, "string" == typeof t && T.test(t) ? y(t) : t || [], !1).length 1167 } 1168 }); 1169 var Q, $ = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/; 1170 (y.fn.init = function(t, e, n) { 1171 var i, o; 1172 if (!t) 1173 return this; 1174 if (n = n || Q, 1175 "string" == typeof t) { 1176 if (!(i = "<" === t[0] && ">" === t[t.length - 1] && t.length >= 3 ? [null, t, null] : $.exec(t)) || !i[1] && e) 1177 return !e || e.jquery ? (e || n).find(t) : this.constructor(e).find(t); 1178 if (i[1]) { 1179 if (e = e instanceof y ? e[0] : e, 1180 y.merge(this, y.parseHTML(i[1], e && e.nodeType ? e.ownerDocument || e : r, !0)), 1181 E.test(i[1]) && y.isPlainObject(e)) 1182 for (i in e) 1183 y.isFunction(this[i]) ? this[i](e[i]) : this.attr(i, e[i]); 1184 return this 1185 } 1186 return o = r.getElementById(i[2]), 1187 o && (this[0] = o, 1188 this.length = 1), 1189 this 1190 } 1191 return t.nodeType ? (this[0] = t, 1192 this.length = 1, 1193 this) : y.isFunction(t) ? void 0 !== n.ready ? n.ready(t) : t(y) : y.makeArray(t, this) 1194 } 1195 ).prototype = y.fn, 1196 Q = y(r); 1197 var D = /^(?:parents|prev(?:Until|All))/ 1198 , I = { 1199 children: !0, 1200 contents: !0, 1201 next: !0, 1202 prev: !0 1203 }; 1204 y.fn.extend({ 1205 has: function(t) { 1206 var e = y(t, this) 1207 , n = e.length; 1208 return this.filter(function() { 1209 for (var t = 0; t < n; t++) 1210 if (y.contains(this, e[t])) 1211 return !0 1212 }) 1213 }, 1214 closest: function(t, e) { 1215 var n, r = 0, i = this.length, o = [], a = "string" != typeof t && y(t); 1216 if (!T.test(t)) 1217 for (; r < i; r++) 1218 for (n = this[r]; n && n !== e; n = n.parentNode) 1219 if (n.nodeType < 11 && (a ? a.index(n) > -1 : 1 === n.nodeType && y.find.matchesSelector(n, t))) { 1220 o.push(n); 1221 break 1222 } 1223 return this.pushStack(o.length > 1 ? y.uniqueSort(o) : o) 1224 }, 1225 index: function(t) { 1226 return t ? "string" == typeof t ? u.call(y(t), this[0]) : u.call(this, t.jquery ? t[0] : t) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 1227 }, 1228 add: function(t, e) { 1229 return this.pushStack(y.uniqueSort(y.merge(this.get(), y(t, e)))) 1230 }, 1231 addBack: function(t) { 1232 return this.add(null == t ? this.prevObject : this.prevObject.filter(t)) 1233 } 1234 }); 1235 function N(t, e) { 1236 for (; (t = t[e]) && 1 !== t.nodeType; ) 1237 ; 1238 return t 1239 } 1240 y.each({ 1241 parent: function(t) { 1242 var e = t.parentNode; 1243 return e && 11 !== e.nodeType ? e : null 1244 }, 1245 parents: function(t) { 1246 return k(t, "parentNode") 1247 }, 1248 parentsUntil: function(t, e, n) { 1249 return k(t, "parentNode", n) 1250 }, 1251 next: function(t) { 1252 return N(t, "nextSibling") 1253 }, 1254 prev: function(t) { 1255 return N(t, "previousSibling") 1256 }, 1257 nextAll: function(t) { 1258 return k(t, "nextSibling") 1259 }, 1260 prevAll: function(t) { 1261 return k(t, "previousSibling") 1262 }, 1263 nextUntil: function(t, e, n) { 1264 return k(t, "nextSibling", n) 1265 }, 1266 prevUntil: function(t, e, n) { 1267 return k(t, "previousSibling", n) 1268 }, 1269 siblings: function(t) { 1270 return j((t.parentNode || {}).firstChild, t) 1271 }, 1272 children: function(t) { 1273 return j(t.firstChild) 1274 }, 1275 contents: function(t) { 1276 return S(t, "iframe") ? t.contentDocument : (S(t, "template") && (t = t.content || t), 1277 y.merge([], t.childNodes)) 1278 } 1279 }, function(t, e) { 1280 y.fn[t] = function(n, r) { 1281 var i = y.map(this, e, n); 1282 return "Until" !== t.slice(-5) && (r = n), 1283 r && "string" == typeof r && (i = y.filter(r, i)), 1284 this.length > 1 && (I[t] || y.uniqueSort(i), 1285 D.test(t) && i.reverse()), 1286 this.pushStack(i) 1287 } 1288 }); 1289 var F = /[^\x20\t\r\n\f]+/g; 1290 function L(t) { 1291 var e = {}; 1292 return y.each(t.match(F) || [], function(t, n) { 1293 e[n] = !0 1294 }), 1295 e 1296 } 1297 y.Callbacks = function(t) { 1298 t = "string" == typeof t ? L(t) : y.extend({}, t); 1299 var e, n, r, i, o = [], a = [], s = -1, u = function() { 1300 for (i = i || t.once, 1301 r = e = !0; a.length; s = -1) 1302 for (n = a.shift(); ++s < o.length; ) 1303 !1 === o[s].apply(n[0], n[1]) && t.stopOnFalse && (s = o.length, 1304 n = !1); 1305 t.memory || (n = !1), 1306 e = !1, 1307 i && (o = n ? [] : "") 1308 }, l = { 1309 add: function() { 1310 return o && (n && !e && (s = o.length - 1, 1311 a.push(n)), 1312 function e(n) { 1313 y.each(n, function(n, r) { 1314 y.isFunction(r) ? t.unique && l.has(r) || o.push(r) : r && r.length && "string" !== y.type(r) && e(r) 1315 }) 1316 }(arguments), 1317 n && !e && u()), 1318 this 1319 }, 1320 remove: function() { 1321 return y.each(arguments, function(t, e) { 1322 for (var n; (n = y.inArray(e, o, n)) > -1; ) 1323 o.splice(n, 1), 1324 n <= s && s-- 1325 }), 1326 this 1327 }, 1328 has: function(t) { 1329 return t ? y.inArray(t, o) > -1 : o.length > 0 1330 }, 1331 empty: function() { 1332 return o && (o = []), 1333 this 1334 }, 1335 disable: function() { 1336 return i = a = [], 1337 o = n = "", 1338 this 1339 }, 1340 disabled: function() { 1341 return !o 1342 }, 1343 lock: function() { 1344 return i = a = [], 1345 n || e || (o = n = ""), 1346 this 1347 }, 1348 locked: function() { 1349 return !!i 1350 }, 1351 fireWith: function(t, n) { 1352 return i || (n = n || [], 1353 n = [t, n.slice ? n.slice() : n], 1354 a.push(n), 1355 e || u()), 1356 this 1357 }, 1358 fire: function() { 1359 return l.fireWith(this, arguments), 1360 this 1361 }, 1362 fired: function() { 1363 return !!r 1364 } 1365 }; 1366 return l 1367 } 1368 ; 1369 function P(t) { 1370 return t 1371 } 1372 function O(t) { 1373 throw t 1374 } 1375 function q(t, e, n, r) { 1376 var i; 1377 try { 1378 t && y.isFunction(i = t.promise) ? i.call(t).done(e).fail(n) : t && y.isFunction(i = t.then) ? i.call(t, e, n) : e.apply(void 0, [t].slice(r)) 1379 } catch (t) { 1380 n.apply(void 0, [t]) 1381 } 1382 } 1383 y.extend({ 1384 Deferred: function(e) { 1385 var n = [["notify", "progress", y.Callbacks("memory"), y.Callbacks("memory"), 2], ["resolve", "done", y.Callbacks("once memory"), y.Callbacks("once memory"), 0, "resolved"], ["reject", "fail", y.Callbacks("once memory"), y.Callbacks("once memory"), 1, "rejected"]] 1386 , r = "pending" 1387 , i = { 1388 state: function() { 1389 return r 1390 }, 1391 always: function() { 1392 return o.done(arguments).fail(arguments), 1393 this 1394 }, 1395 catch: function(t) { 1396 return i.then(null, t) 1397 }, 1398 pipe: function() { 1399 var t = arguments; 1400 return y.Deferred(function(e) { 1401 y.each(n, function(n, r) { 1402 var i = y.isFunction(t[r[4]]) && t[r[4]]; 1403 o[r[1]](function() { 1404 var t = i && i.apply(this, arguments); 1405 t && y.isFunction(t.promise) ? t.promise().progress(e.notify).done(e.resolve).fail(e.reject) : e[r[0] + "With"](this, i ? [t] : arguments) 1406 }) 1407 }), 1408 t = null 1409 }).promise() 1410 }, 1411 then: function(e, r, i) { 1412 var o = 0; 1413 function a(e, n, r, i) { 1414 return function() { 1415 var s = this 1416 , u = arguments 1417 , l = function() { 1418 var t, l; 1419 if (!(e < o)) { 1420 if ((t = r.apply(s, u)) === n.promise()) 1421 throw new TypeError("Thenable self-resolution"); 1422 l = t && ("object" == typeof t || "function" == typeof t) && t.then, 1423 y.isFunction(l) ? i ? l.call(t, a(o, n, P, i), a(o, n, O, i)) : (o++, 1424 l.call(t, a(o, n, P, i), a(o, n, O, i), a(o, n, P, n.notifyWith))) : (r !== P && (s = void 0, 1425 u = [t]), 1426 (i || n.resolveWith)(s, u)) 1427 } 1428 } 1429 , c = i ? l : function() { 1430 try { 1431 l() 1432 } catch (t) { 1433 y.Deferred.exceptionHook && y.Deferred.exceptionHook(t, c.stackTrace), 1434 e + 1 >= o && (r !== O && (s = void 0, 1435 u = [t]), 1436 n.rejectWith(s, u)) 1437 } 1438 } 1439 ; 1440 e ? c() : (y.Deferred.getStackHook && (c.stackTrace = y.Deferred.getStackHook()), 1441 t.setTimeout(c)) 1442 } 1443 } 1444 return y.Deferred(function(t) { 1445 n[0][3].add(a(0, t, y.isFunction(i) ? i : P, t.notifyWith)), 1446 n[1][3].add(a(0, t, y.isFunction(e) ? e : P)), 1447 n[2][3].add(a(0, t, y.isFunction(r) ? r : O)) 1448 }).promise() 1449 }, 1450 promise: function(t) { 1451 return null != t ? y.extend(t, i) : i 1452 } 1453 } 1454 , o = {}; 1455 return y.each(n, function(t, e) { 1456 var a = e[2] 1457 , s = e[5]; 1458 i[e[1]] = a.add, 1459 s && a.add(function() { 1460 r = s 1461 }, n[3 - t][2].disable, n[0][2].lock), 1462 a.add(e[3].fire), 1463 o[e[0]] = function() { 1464 return o[e[0] + "With"](this === o ? void 0 : this, arguments), 1465 this 1466 } 1467 , 1468 o[e[0] + "With"] = a.fireWith 1469 }), 1470 i.promise(o), 1471 e && e.call(o, o), 1472 o 1473 }, 1474 when: function(t) { 1475 var e = arguments.length 1476 , n = e 1477 , r = Array(n) 1478 , i = o.call(arguments) 1479 , a = y.Deferred() 1480 , s = function(t) { 1481 return function(n) { 1482 r[t] = this, 1483 i[t] = arguments.length > 1 ? o.call(arguments) : n, 1484 --e || a.resolveWith(r, i) 1485 } 1486 }; 1487 if (e <= 1 && (q(t, a.done(s(n)).resolve, a.reject, !e), 1488 "pending" === a.state() || y.isFunction(i[n] && i[n].then))) 1489 return a.then(); 1490 for (; n--; ) 1491 q(i[n], s(n), a.reject); 1492 return a.promise() 1493 } 1494 }); 1495 var R = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; 1496 y.Deferred.exceptionHook = function(e, n) { 1497 t.console && t.console.warn && e && R.test(e.name) && t.console.warn("jQuery.Deferred exception: " + e.message, e.stack, n) 1498 } 1499 , 1500 y.readyException = function(e) { 1501 t.setTimeout(function() { 1502 throw e 1503 }) 1504 } 1505 ; 1506 var z = y.Deferred(); 1507 y.fn.ready = function(t) {
vendor: 9,640 bytes, lines 1508-1796
1508 return z.then(t).catch(function(t) { 1509 y.readyException(t) 1510 }), 1511 this 1512 } 1513 , 1514 y.extend({ 1515 isReady: !1, 1516 readyWait: 1, 1517 ready: function(t) { 1518 (!0 === t ? --y.readyWait : y.isReady) || (y.isReady = !0, 1519 !0 !== t && --y.readyWait > 0 || z.resolveWith(r, [y])) 1520 } 1521 }), 1522 y.ready.then = z.then; 1523 function H() { 1524 r.removeEventListener("DOMContentLoaded", H), 1525 t.removeEventListener("load", H), 1526 y.ready() 1527 } 1528 "complete" === r.readyState || "loading" !== r.readyState && !r.documentElement.doScroll ? t.setTimeout(y.ready) : (r.addEventListener("DOMContentLoaded", H), 1529 t.addEventListener("load", H)); 1530 var B = function(t, e, n, r, i, o, a) { 1531 var s = 0 1532 , u = t.length 1533 , l = null == n; 1534 if ("object" === y.type(n)) { 1535 i = !0; 1536 for (s in n) 1537 B(t, e, s, n[s], !0, o, a) 1538 } else if (void 0 !== r && (i = !0, 1539 y.isFunction(r) || (a = !0), 1540 l && (a ? (e.call(t, r), 1541 e = null) : (l = e, 1542 e = function(t, e, n) { 1543 return l.call(y(t), n) 1544 } 1545 )), 1546 e)) 1547 for (; s < u; s++) 1548 e(t[s], n, a ? r : r.call(t[s], s, e(t[s], n))); 1549 return i ? t : l ? e.call(t) : u ? e(t[0], n) : o 1550 } 1551 , V = function(t) { 1552 return 1 === t.nodeType || 9 === t.nodeType || !+t.nodeType 1553 }; 1554 function U() { 1555 this.expando = y.expando + U.uid++ 1556 } 1557 U.uid = 1, 1558 U.prototype = { 1559 cache: function(t) { 1560 var e = t[this.expando]; 1561 return e || (e = {}, 1562 V(t) && (t.nodeType ? t[this.expando] = e : Object.defineProperty(t, this.expando, { 1563 value: e, 1564 configurable: !0 1565 }))), 1566 e 1567 }, 1568 set: function(t, e, n) { 1569 var r, i = this.cache(t); 1570 if ("string" == typeof e) 1571 i[y.camelCase(e)] = n; 1572 else 1573 for (r in e) 1574 i[y.camelCase(r)] = e[r]; 1575 return i 1576 }, 1577 get: function(t, e) { 1578 return void 0 === e ? this.cache(t) : t[this.expando] && t[this.expando][y.camelCase(e)] 1579 }, 1580 access: function(t, e, n) { 1581 return void 0 === e || e && "string" == typeof e && void 0 === n ? this.get(t, e) : (this.set(t, e, n), 1582 void 0 !== n ? n : e) 1583 }, 1584 remove: function(t, e) { 1585 var n, r = t[this.expando]; 1586 if (void 0 !== r) { 1587 if (void 0 !== e) { 1588 Array.isArray(e) ? e = e.map(y.camelCase) : (e = y.camelCase(e), 1589 e = e in r ? [e] : e.match(F) || []), 1590 n = e.length; 1591 for (; n--; ) 1592 delete r[e[n]] 1593 } 1594 (void 0 === e || y.isEmptyObject(r)) && (t.nodeType ? t[this.expando] = void 0 : delete t[this.expando]) 1595 } 1596 }, 1597 hasData: function(t) { 1598 var e = t[this.expando]; 1599 return void 0 !== e && !y.isEmptyObject(e) 1600 } 1601 }; 1602 var W = new U 1603 , K = new U 1604 , G = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/ 1605 , Y = /[A-Z]/g; 1606 function J(t) { 1607 return "true" === t || "false" !== t && ("null" === t ? null : t === +t + "" ? +t : G.test(t) ? JSON.parse(t) : t) 1608 } 1609 function X(t, e, n) { 1610 var r; 1611 if (void 0 === n && 1 === t.nodeType) 1612 if (r = "data-" + e.replace(Y, "-$&").toLowerCase(), 1613 "string" == typeof (n = t.getAttribute(r))) { 1614 try { 1615 n = J(n) 1616 } catch (t) {} 1617 K.set(t, e, n) 1618 } else 1619 n = void 0; 1620 return n 1621 } 1622 y.extend({ 1623 hasData: function(t) { 1624 return K.hasData(t) || W.hasData(t) 1625 }, 1626 data: function(t, e, n) { 1627 return K.access(t, e, n) 1628 }, 1629 removeData: function(t, e) { 1630 K.remove(t, e) 1631 }, 1632 _data: function(t, e, n) { 1633 return W.access(t, e, n) 1634 }, 1635 _removeData: function(t, e) { 1636 W.remove(t, e) 1637 } 1638 }), 1639 y.fn.extend({ 1640 data: function(t, e) { 1641 var n, r, i, o = this[0], a = o && o.attributes; 1642 if (void 0 === t) { 1643 if (this.length && (i = K.get(o), 1644 1 === o.nodeType && !W.get(o, "hasDataAttrs"))) { 1645 for (n = a.length; n--; ) 1646 a[n] && (r = a[n].name, 1647 0 === r.indexOf("data-") && (r = y.camelCase(r.slice(5)), 1648 X(o, r, i[r]))); 1649 W.set(o, "hasDataAttrs", !0) 1650 } 1651 return i 1652 } 1653 return "object" == typeof t ? this.each(function() { 1654 K.set(this, t) 1655 }) : B(this, function(e) { 1656 var n; 1657 if (o && void 0 === e) { 1658 if (void 0 !== (n = K.get(o, t))) 1659 return n; 1660 if (void 0 !== (n = X(o, t))) 1661 return n 1662 } else 1663 this.each(function() { 1664 K.set(this, t, e) 1665 }) 1666 }, null, e, arguments.length > 1, null, !0) 1667 }, 1668 removeData: function(t) { 1669 return this.each(function() { 1670 K.remove(this, t) 1671 }) 1672 } 1673 }), 1674 y.extend({ 1675 queue: function(t, e, n) { 1676 var r; 1677 if (t) 1678 return e = (e || "fx") + "queue", 1679 r = W.get(t, e), 1680 n && (!r || Array.isArray(n) ? r = W.access(t, e, y.makeArray(n)) : r.push(n)), 1681 r || [] 1682 }, 1683 dequeue: function(t, e) { 1684 e = e || "fx"; 1685 var n = y.queue(t, e) 1686 , r = n.length 1687 , i = n.shift() 1688 , o = y._queueHooks(t, e) 1689 , a = function() { 1690 y.dequeue(t, e) 1691 }; 1692 "inprogress" === i && (i = n.shift(), 1693 r--), 1694 i && ("fx" === e && n.unshift("inprogress"), 1695 delete o.stop, 1696 i.call(t, a, o)), 1697 !r && o && o.empty.fire() 1698 }, 1699 _queueHooks: function(t, e) { 1700 var n = e + "queueHooks"; 1701 return W.get(t, n) || W.access(t, n, { 1702 empty: y.Callbacks("once memory").add(function() { 1703 W.remove(t, [e + "queue", n]) 1704 }) 1705 }) 1706 } 1707 }), 1708 y.fn.extend({ 1709 queue: function(t, e) { 1710 var n = 2; 1711 return "string" != typeof t && (e = t, 1712 t = "fx", 1713 n--), 1714 arguments.length < n ? y.queue(this[0], t) : void 0 === e ? this : this.each(function() { 1715 var n = y.queue(this, t, e); 1716 y._queueHooks(this, t), 1717 "fx" === t && "inprogress" !== n[0] && y.dequeue(this, t) 1718 }) 1719 }, 1720 dequeue: function(t) { 1721 return this.each(function() { 1722 y.dequeue(this, t) 1723 }) 1724 }, 1725 clearQueue: function(t) { 1726 return this.queue(t || "fx", []) 1727 }, 1728 promise: function(t, e) { 1729 var n, r = 1, i = y.Deferred(), o = this, a = this.length, s = function() { 1730 --r || i.resolveWith(o, [o]) 1731 }; 1732 for ("string" != typeof t && (e = t, 1733 t = void 0), 1734 t = t || "fx"; a--; ) 1735 (n = W.get(o[a], t + "queueHooks")) && n.empty && (r++, 1736 n.empty.add(s)); 1737 return s(), 1738 i.promise(e) 1739 } 1740 }); 1741 var Z = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source 1742 , tt = new RegExp("^(?:([+-])=|)(" + Z + ")([a-z%]*)$","i") 1743 , et = ["Top", "Right", "Bottom", "Left"] 1744 , nt = function(t, e) { 1745 return t = e || t, 1746 "none" === t.style.display || "" === t.style.display && y.contains(t.ownerDocument, t) && "none" === y.css(t, "display") 1747 } 1748 , rt = function(t, e, n, r) { 1749 var i, o, a = {}; 1750 for (o in e) 1751 a[o] = t.style[o], 1752 t.style[o] = e[o]; 1753 i = n.apply(t, r || []); 1754 for (o in e) 1755 t.style[o] = a[o]; 1756 return i 1757 }; 1758 function it(t, e, n, r) { 1759 var i, o = 1, a = 20, s = r ? function() { 1760 return r.cur() 1761 } 1762 : function() { 1763 return y.css(t, e, "") 1764 } 1765 , u = s(), l = n && n[3] || (y.cssNumber[e] ? "" : "px"), c = (y.cssNumber[e] || "px" !== l && +u) && tt.exec(y.css(t, e)); 1766 if (c && c[3] !== l) { 1767 l = l || c[3], 1768 n = n || [], 1769 c = +u || 1; 1770 do { 1771 o = o || ".5", 1772 c /= o, 1773 y.style(t, e, c + l) 1774 } while (o !== (o = s() / u) && 1 !== o && --a) 1775 } 1776 return n && (c = +c || +u || 0, 1777 i = n[1] ? c + (n[1] + 1) * n[2] : +n[2], 1778 r && (r.unit = l, 1779 r.start = c, 1780 r.end = i)), 1781 i 1782 } 1783 var ot = {}; 1784 function at(t) { 1785 var e, n = t.ownerDocument, r = t.nodeName, i = ot[r]; 1786 return i || (e = n.body.appendChild(n.createElement(r)), 1787 i = y.css(e, "display"), 1788 e.parentNode.removeChild(e), 1789 "none" === i && (i = "block"), 1790 ot[r] = i, 1791 i) 1792 } 1793 function st(t, e) { 1794 for (var n, r, i = [], o = 0, a = t.length; o < a; o++) 1795 r = t[o], 1796 r.style && (n = r.style.display,
vendor: 8,671 bytes, lines 1797-2004
1797 e ? ("none" === n && (i[o] = W.get(r, "display") || null, 1798 i[o] || (r.style.display = "")), 1799 "" === r.style.display && nt(r) && (i[o] = at(r))) : "none" !== n && (i[o] = "none", 1800 W.set(r, "display", n))); 1801 for (o = 0; o < a; o++) 1802 null != i[o] && (t[o].style.display = i[o]); 1803 return t 1804 } 1805 y.fn.extend({ 1806 show: function() { 1807 return st(this, !0) 1808 }, 1809 hide: function() { 1810 return st(this) 1811 }, 1812 toggle: function(t) { 1813 return "boolean" == typeof t ? t ? this.show() : this.hide() : this.each(function() { 1814 nt(this) ? y(this).show() : y(this).hide() 1815 }) 1816 } 1817 }); 1818 var ut = /^(?:checkbox|radio)$/i 1819 , lt = /<([a-z][^\/\0>\x20\t\r\n\f]+)/i 1820 , ct = /^$|\/(?:java|ecma)script/i 1821 , ht = { 1822 option: [1, "<select multiple='multiple'>", "</select>"], 1823 thead: [1, "<table>", "</table>"], 1824 col: [2, "<table><colgroup>", "</colgroup></table>"], 1825 tr: [2, "<table><tbody>", "</tbody></table>"], 1826 td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], 1827 _default: [0, "", ""] 1828 }; 1829 ht.optgroup = ht.option, 1830 ht.tbody = ht.tfoot = ht.colgroup = ht.caption = ht.thead, 1831 ht.th = ht.td; 1832 function dt(t, e) { 1833 var n; 1834 return n = void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e || "*") : void 0 !== t.querySelectorAll ? t.querySelectorAll(e || "*") : [], 1835 void 0 === e || e && S(t, e) ? y.merge([t], n) : n 1836 } 1837 function ft(t, e) { 1838 for (var n = 0, r = t.length; n < r; n++) 1839 W.set(t[n], "globalEval", !e || W.get(e[n], "globalEval")) 1840 } 1841 var pt = /<|&#?\w+;/; 1842 function gt(t, e, n, r, i) { 1843 for (var o, a, s, u, l, c, h = e.createDocumentFragment(), d = [], f = 0, p = t.length; f < p; f++) 1844 if ((o = t[f]) || 0 === o) 1845 if ("object" === y.type(o)) 1846 y.merge(d, o.nodeType ? [o] : o); 1847 else if (pt.test(o)) { 1848 for (a = a || h.appendChild(e.createElement("div")), 1849 s = (lt.exec(o) || ["", ""])[1].toLowerCase(), 1850 u = ht[s] || ht._default, 1851 a.innerHTML = u[1] + y.htmlPrefilter(o) + u[2], 1852 c = u[0]; c--; ) 1853 a = a.lastChild; 1854 y.merge(d, a.childNodes), 1855 a = h.firstChild, 1856 a.textContent = "" 1857 } else 1858 d.push(e.createTextNode(o)); 1859 for (h.textContent = "", 1860 f = 0; o = d[f++]; ) 1861 if (r && y.inArray(o, r) > -1) 1862 i && i.push(o); 1863 else if (l = y.contains(o.ownerDocument, o), 1864 a = dt(h.appendChild(o), "script"), 1865 l && ft(a), 1866 n) 1867 for (c = 0; o = a[c++]; ) 1868 ct.test(o.type || "") && n.push(o); 1869 return h 1870 } 1871 !function() { 1872 var t = r.createDocumentFragment() 1873 , e = t.appendChild(r.createElement("div")) 1874 , n = r.createElement("input"); 1875 n.setAttribute("type", "radio"), 1876 n.setAttribute("checked", "checked"), 1877 n.setAttribute("name", "t"), 1878 e.appendChild(n), 1879 p.checkClone = e.cloneNode(!0).cloneNode(!0).lastChild.checked, 1880 e.innerHTML = "<textarea>x</textarea>", 1881 p.noCloneChecked = !!e.cloneNode(!0).lastChild.defaultValue 1882 }(); 1883 var mt = r.documentElement 1884 , yt = /^key/ 1885 , vt = /^(?:mouse|pointer|contextmenu|drag|drop)|click/ 1886 , bt = /^([^.]*)(?:\.(.+)|)/; 1887 function wt() { 1888 return !0 1889 } 1890 function xt() { 1891 return !1 1892 } 1893 function _t() { 1894 try { 1895 return r.activeElement 1896 } catch (t) {} 1897 } 1898 function Ct(t, e, n, r, i, o) { 1899 var a, s; 1900 if ("object" == typeof e) { 1901 "string" != typeof n && (r = r || n, 1902 n = void 0); 1903 for (s in e) 1904 Ct(t, s, n, r, e[s], o); 1905 return t 1906 } 1907 if (null == r && null == i ? (i = n, 1908 r = n = void 0) : null == i && ("string" == typeof n ? (i = r, 1909 r = void 0) : (i = r, 1910 r = n, 1911 n = void 0)), 1912 !1 === i) 1913 i = xt; 1914 else if (!i) 1915 return t; 1916 return 1 === o && (a = i, 1917 i = function(t) { 1918 return y().off(t), 1919 a.apply(this, arguments) 1920 } 1921 , 1922 i.guid = a.guid || (a.guid = y.guid++)), 1923 t.each(function() { 1924 y.event.add(this, e, i, r, n) 1925 }) 1926 } 1927 y.event = { 1928 global: {}, 1929 add: function(t, e, n, r, i) { 1930 var o, a, s, u, l, c, h, d, f, p, g, m = W.get(t); 1931 if (m) 1932 for (n.handler && (o = n, 1933 n = o.handler, 1934 i = o.selector), 1935 i && y.find.matchesSelector(mt, i), 1936 n.guid || (n.guid = y.guid++), 1937 (u = m.events) || (u = m.events = {}), 1938 (a = m.handle) || (a = m.handle = function(e) { 1939 return void 0 !== y && y.event.triggered !== e.type ? y.event.dispatch.apply(t, arguments) : void 0 1940 } 1941 ), 1942 e = (e || "").match(F) || [""], 1943 l = e.length; l--; ) 1944 s = bt.exec(e[l]) || [], 1945 f = g = s[1], 1946 p = (s[2] || "").split(".").sort(), 1947 f && (h = y.event.special[f] || {}, 1948 f = (i ? h.delegateType : h.bindType) || f, 1949 h = y.event.special[f] || {}, 1950 c = y.extend({ 1951 type: f, 1952 origType: g, 1953 data: r, 1954 handler: n, 1955 guid: n.guid, 1956 selector: i, 1957 needsContext: i && y.expr.match.needsContext.test(i), 1958 namespace: p.join(".") 1959 }, o), 1960 (d = u[f]) || (d = u[f] = [], 1961 d.delegateCount = 0, 1962 h.setup && !1 !== h.setup.call(t, r, p, a) || t.addEventListener && t.addEventListener(f, a)), 1963 h.add && (h.add.call(t, c), 1964 c.handler.guid || (c.handler.guid = n.guid)), 1965 i ? d.splice(d.delegateCount++, 0, c) : d.push(c), 1966 y.event.global[f] = !0) 1967 }, 1968 remove: function(t, e, n, r, i) { 1969 var o, a, s, u, l, c, h, d, f, p, g, m = W.hasData(t) && W.get(t); 1970 if (m && (u = m.events)) { 1971 for (e = (e || "").match(F) || [""], 1972 l = e.length; l--; ) 1973 if (s = bt.exec(e[l]) || [], 1974 f = g = s[1], 1975 p = (s[2] || "").split(".").sort(), 1976 f) { 1977 for (h = y.event.special[f] || {}, 1978 f = (r ? h.delegateType : h.bindType) || f, 1979 d = u[f] || [], 1980 s = s[2] && new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)"), 1981 a = o = d.length; o--; ) 1982 c = d[o], 1983 !i && g !== c.origType || n && n.guid !== c.guid || s && !s.test(c.namespace) || r && r !== c.selector && ("**" !== r || !c.selector) || (d.splice(o, 1), 1984 c.selector && d.delegateCount--, 1985 h.remove && h.remove.call(t, c)); 1986 a && !d.length && (h.teardown && !1 !== h.teardown.call(t, p, m.handle) || y.removeEvent(t, f, m.handle), 1987 delete u[f]) 1988 } else 1989 for (f in u) 1990 y.event.remove(t, f + e[l], n, r, !0); 1991 y.isEmptyObject(u) && W.remove(t, "handle events") 1992 } 1993 }, 1994 dispatch: function(t) { 1995 var e, n, r, i, o, a, s = y.event.fix(t), u = new Array(arguments.length), l = (W.get(this, "events") || {})[s.type] || [], c = y.event.special[s.type] || {}; 1996 for (u[0] = s, 1997 e = 1; e < arguments.length; e++) 1998 u[e] = arguments[e]; 1999 if (s.delegateTarget = this, 2000 !c.preDispatch || !1 !== c.preDispatch.call(this, s)) { 2001 for (a = y.event.handlers.call(this, s, l), 2002 e = 0; (i = a[e++]) && !s.isPropagationStopped(); ) 2003 for (s.currentTarget = i.elem, 2004 n = 0; (o = i.handlers[n++]) && !s.isImmediatePropagationStopped(); )
vendor: 5,364 bytes, lines 2005-2149
2005 s.rnamespace && !s.rnamespace.test(o.namespace) || (s.handleObj = o, 2006 s.data = o.data, 2007 void 0 !== (r = ((y.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, u)) && !1 === (s.result = r) && (s.preventDefault(), 2008 s.stopPropagation())); 2009 return c.postDispatch && c.postDispatch.call(this, s), 2010 s.result 2011 } 2012 }, 2013 handlers: function(t, e) { 2014 var n, r, i, o, a, s = [], u = e.delegateCount, l = t.target; 2015 if (u && l.nodeType && !("click" === t.type && t.button >= 1)) 2016 for (; l !== this; l = l.parentNode || this) 2017 if (1 === l.nodeType && ("click" !== t.type || !0 !== l.disabled)) { 2018 for (o = [], 2019 a = {}, 2020 n = 0; n < u; n++) 2021 r = e[n], 2022 i = r.selector + " ", 2023 void 0 === a[i] && (a[i] = r.needsContext ? y(i, this).index(l) > -1 : y.find(i, this, null, [l]).length), 2024 a[i] && o.push(r); 2025 o.length && s.push({ 2026 elem: l, 2027 handlers: o 2028 }) 2029 } 2030 return l = this, 2031 u < e.length && s.push({ 2032 elem: l, 2033 handlers: e.slice(u) 2034 }), 2035 s 2036 }, 2037 addProp: function(t, e) { 2038 Object.defineProperty(y.Event.prototype, t, { 2039 enumerable: !0, 2040 configurable: !0, 2041 get: y.isFunction(e) ? function() { 2042 if (this.originalEvent) 2043 return e(this.originalEvent) 2044 } 2045 : function() { 2046 if (this.originalEvent) 2047 return this.originalEvent[t] 2048 } 2049 , 2050 set: function(e) { 2051 Object.defineProperty(this, t, { 2052 enumerable: !0, 2053 configurable: !0, 2054 writable: !0, 2055 value: e 2056 }) 2057 } 2058 }) 2059 }, 2060 fix: function(t) { 2061 return t[y.expando] ? t : new y.Event(t) 2062 }, 2063 special: { 2064 load: { 2065 noBubble: !0 2066 }, 2067 focus: { 2068 trigger: function() { 2069 if (this !== _t() && this.focus) 2070 return this.focus(), 2071 !1 2072 }, 2073 delegateType: "focusin" 2074 }, 2075 blur: { 2076 trigger: function() { 2077 if (this === _t() && this.blur) 2078 return this.blur(), 2079 !1 2080 }, 2081 delegateType: "focusout" 2082 }, 2083 click: { 2084 trigger: function() { 2085 if (ut.test(this.type) && this.click && S(this, "input")) 2086 return this.click(), 2087 !1 2088 }, 2089 _default: function(t) { 2090 return S(t.target, "a") 2091 } 2092 }, 2093 beforeunload: { 2094 postDispatch: function(t) { 2095 void 0 !== t.result && t.originalEvent && (t.originalEvent.returnValue = t.result) 2096 } 2097 } 2098 } 2099 }, 2100 y.removeEvent = function(t, e, n) { 2101 t.removeEventListener && t.removeEventListener(e, n) 2102 } 2103 , 2104 y.Event = function(t, e) { 2105 return this instanceof y.Event ? (t && t.type ? (this.originalEvent = t, 2106 this.type = t.type, 2107 this.isDefaultPrevented = t.defaultPrevented || void 0 === t.defaultPrevented && !1 === t.returnValue ? wt : xt, 2108 this.target = t.target && 3 === t.target.nodeType ? t.target.parentNode : t.target, 2109 this.currentTarget = t.currentTarget, 2110 this.relatedTarget = t.relatedTarget) : this.type = t, 2111 e && y.extend(this, e), 2112 this.timeStamp = t && t.timeStamp || y.now(), 2113 void (this[y.expando] = !0)) : new y.Event(t,e) 2114 } 2115 , 2116 y.Event.prototype = { 2117 constructor: y.Event, 2118 isDefaultPrevented: xt, 2119 isPropagationStopped: xt, 2120 isImmediatePropagationStopped: xt, 2121 isSimulated: !1, 2122 preventDefault: function() { 2123 var t = this.originalEvent; 2124 this.isDefaultPrevented = wt, 2125 t && !this.isSimulated && t.preventDefault() 2126 }, 2127 stopPropagation: function() { 2128 var t = this.originalEvent; 2129 this.isPropagationStopped = wt, 2130 t && !this.isSimulated && t.stopPropagation() 2131 }, 2132 stopImmediatePropagation: function() { 2133 var t = this.originalEvent; 2134 this.isImmediatePropagationStopped = wt, 2135 t && !this.isSimulated && t.stopImmediatePropagation(), 2136 this.stopPropagation() 2137 } 2138 }, 2139 y.each({ 2140 altKey: !0, 2141 bubbles: !0, 2142 cancelable: !0, 2143 changedTouches: !0, 2144 ctrlKey: !0, 2145 detail: !0, 2146 eventPhase: !0, 2147 metaKey: !0, 2148 pageX: !0, 2149 pageY: !0,
vendor: 4,490 bytes, lines 2150-2278
2150 shiftKey: !0, 2151 view: !0, 2152 char: !0, 2153 charCode: !0, 2154 key: !0, 2155 keyCode: !0, 2156 button: !0, 2157 buttons: !0, 2158 clientX: !0, 2159 clientY: !0, 2160 offsetX: !0, 2161 offsetY: !0, 2162 pointerId: !0, 2163 pointerType: !0, 2164 screenX: !0, 2165 screenY: !0, 2166 targetTouches: !0, 2167 toElement: !0, 2168 touches: !0, 2169 which: function(t) { 2170 var e = t.button; 2171 return null == t.which && yt.test(t.type) ? null != t.charCode ? t.charCode : t.keyCode : !t.which && void 0 !== e && vt.test(t.type) ? 1 & e ? 1 : 2 & e ? 3 : 4 & e ? 2 : 0 : t.which 2172 } 2173 }, y.event.addProp), 2174 y.each({ 2175 mouseenter: "mouseover", 2176 mouseleave: "mouseout", 2177 pointerenter: "pointerover", 2178 pointerleave: "pointerout" 2179 }, function(t, e) { 2180 y.event.special[t] = { 2181 delegateType: e, 2182 bindType: e, 2183 handle: function(t) { 2184 var n, r = this, i = t.relatedTarget, o = t.handleObj; 2185 return i && (i === r || y.contains(r, i)) || (t.type = o.origType, 2186 n = o.handler.apply(this, arguments), 2187 t.type = e), 2188 n 2189 } 2190 } 2191 }), 2192 y.fn.extend({ 2193 on: function(t, e, n, r) { 2194 return Ct(this, t, e, n, r) 2195 }, 2196 one: function(t, e, n, r) { 2197 return Ct(this, t, e, n, r, 1) 2198 }, 2199 off: function(t, e, n) { 2200 var r, i; 2201 if (t && t.preventDefault && t.handleObj) 2202 return r = t.handleObj, 2203 y(t.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), 2204 this; 2205 if ("object" == typeof t) { 2206 for (i in t) 2207 this.off(i, e, t[i]); 2208 return this 2209 } 2210 return !1 !== e && "function" != typeof e || (n = e, 2211 e = void 0), 2212 !1 === n && (n = xt), 2213 this.each(function() { 2214 y.event.remove(this, t, n, e) 2215 }) 2216 } 2217 }); 2218 var kt = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi 2219 , jt = /<script|<style|<link/i 2220 , Tt = /checked\s*(?:[^=]|=\s*.checked.)/i 2221 , St = /^true\/(.*)/ 2222 , Et = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; 2223 function At(t, e) { 2224 return S(t, "table") && S(11 !== e.nodeType ? e : e.firstChild, "tr") ? y(">tbody", t)[0] || t : t 2225 } 2226 function Mt(t) { 2227 return t.type = (null !== t.getAttribute("type")) + "/" + t.type, 2228 t 2229 } 2230 function Qt(t) { 2231 var e = St.exec(t.type); 2232 return e ? t.type = e[1] : t.removeAttribute("type"), 2233 t 2234 } 2235 function $t(t, e) { 2236 var n, r, i, o, a, s, u, l; 2237 if (1 === e.nodeType) { 2238 if (W.hasData(t) && (o = W.access(t), 2239 a = W.set(e, o), 2240 l = o.events)) { 2241 delete a.handle, 2242 a.events = {}; 2243 for (i in l) 2244 for (n = 0, 2245 r = l[i].length; n < r; n++) 2246 y.event.add(e, i, l[i][n]) 2247 } 2248 K.hasData(t) && (s = K.access(t), 2249 u = y.extend({}, s), 2250 K.set(e, u)) 2251 } 2252 } 2253 function Dt(t, e) { 2254 var n = e.nodeName.toLowerCase(); 2255 "input" === n && ut.test(t.type) ? e.checked = t.checked : "input" !== n && "textarea" !== n || (e.defaultValue = t.defaultValue) 2256 } 2257 function It(t, e, n, r) { 2258 e = a.apply([], e); 2259 var i, o, s, u, l, c, h = 0, d = t.length, f = d - 1, m = e[0], v = y.isFunction(m); 2260 if (v || d > 1 && "string" == typeof m && !p.checkClone && Tt.test(m)) 2261 return t.each(function(i) { 2262 var o = t.eq(i); 2263 v && (e[0] = m.call(this, i, o.html())), 2264 It(o, e, n, r) 2265 }); 2266 if (d && (i = gt(e, t[0].ownerDocument, !1, t, r), 2267 o = i.firstChild, 2268 1 === i.childNodes.length && (i = o), 2269 o || r)) { 2270 for (s = y.map(dt(i, "script"), Mt), 2271 u = s.length; h < d; h++) 2272 l = i, 2273 h !== f && (l = y.clone(l, !0, !0), 2274 u && y.merge(s, dt(l, "script"))), 2275 n.call(t[h], l, h); 2276 if (u) 2277 for (c = s[s.length - 1].ownerDocument, 2278 y.map(s, Qt),
vendor: 5,067 bytes, lines 2279-2412
2279 h = 0; h < u; h++) 2280 l = s[h], 2281 ct.test(l.type || "") && !W.access(l, "globalEval") && y.contains(c, l) && (l.src ? y._evalUrl && y._evalUrl(l.src) : g(l.textContent.replace(Et, ""), c)) 2282 } 2283 return t 2284 } 2285 function Nt(t, e, n) { 2286 for (var r, i = e ? y.filter(e, t) : t, o = 0; null != (r = i[o]); o++) 2287 n || 1 !== r.nodeType || y.cleanData(dt(r)), 2288 r.parentNode && (n && y.contains(r.ownerDocument, r) && ft(dt(r, "script")), 2289 r.parentNode.removeChild(r)); 2290 return t 2291 } 2292 y.extend({ 2293 htmlPrefilter: function(t) { 2294 return t.replace(kt, "<$1></$2>") 2295 }, 2296 clone: function(t, e, n) { 2297 var r, i, o, a, s = t.cloneNode(!0), u = y.contains(t.ownerDocument, t); 2298 if (!(p.noCloneChecked || 1 !== t.nodeType && 11 !== t.nodeType || y.isXMLDoc(t))) 2299 for (a = dt(s), 2300 o = dt(t), 2301 r = 0, 2302 i = o.length; r < i; r++) 2303 Dt(o[r], a[r]); 2304 if (e) 2305 if (n) 2306 for (o = o || dt(t), 2307 a = a || dt(s), 2308 r = 0, 2309 i = o.length; r < i; r++) 2310 $t(o[r], a[r]); 2311 else 2312 $t(t, s); 2313 return a = dt(s, "script"), 2314 a.length > 0 && ft(a, !u && dt(t, "script")), 2315 s 2316 }, 2317 cleanData: function(t) { 2318 for (var e, n, r, i = y.event.special, o = 0; void 0 !== (n = t[o]); o++) 2319 if (V(n)) { 2320 if (e = n[W.expando]) { 2321 if (e.events) 2322 for (r in e.events) 2323 i[r] ? y.event.remove(n, r) : y.removeEvent(n, r, e.handle); 2324 n[W.expando] = void 0 2325 } 2326 n[K.expando] && (n[K.expando] = void 0) 2327 } 2328 } 2329 }), 2330 y.fn.extend({ 2331 detach: function(t) { 2332 return Nt(this, t, !0) 2333 }, 2334 remove: function(t) { 2335 return Nt(this, t) 2336 }, 2337 text: function(t) { 2338 return B(this, function(t) { 2339 return void 0 === t ? y.text(this) : this.empty().each(function() { 2340 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = t) 2341 }) 2342 }, null, t, arguments.length) 2343 }, 2344 append: function() { 2345 return It(this, arguments, function(t) { 2346 if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { 2347 At(this, t).appendChild(t) 2348 } 2349 }) 2350 }, 2351 prepend: function() { 2352 return It(this, arguments, function(t) { 2353 if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { 2354 var e = At(this, t); 2355 e.insertBefore(t, e.firstChild) 2356 } 2357 }) 2358 }, 2359 before: function() { 2360 return It(this, arguments, function(t) { 2361 this.parentNode && this.parentNode.insertBefore(t, this) 2362 }) 2363 }, 2364 after: function() { 2365 return It(this, arguments, function(t) { 2366 this.parentNode && this.parentNode.insertBefore(t, this.nextSibling) 2367 }) 2368 }, 2369 empty: function() { 2370 for (var t, e = 0; null != (t = this[e]); e++) 2371 1 === t.nodeType && (y.cleanData(dt(t, !1)), 2372 t.textContent = ""); 2373 return this 2374 }, 2375 clone: function(t, e) { 2376 return t = null != t && t, 2377 e = null == e ? t : e, 2378 this.map(function() { 2379 return y.clone(this, t, e) 2380 }) 2381 }, 2382 html: function(t) { 2383 return B(this, function(t) { 2384 var e = this[0] || {} 2385 , n = 0 2386 , r = this.length; 2387 if (void 0 === t && 1 === e.nodeType) 2388 return e.innerHTML; 2389 if ("string" == typeof t && !jt.test(t) && !ht[(lt.exec(t) || ["", ""])[1].toLowerCase()]) { 2390 t = y.htmlPrefilter(t); 2391 try { 2392 for (; n < r; n++) 2393 e = this[n] || {}, 2394 1 === e.nodeType && (y.cleanData(dt(e, !1)), 2395 e.innerHTML = t); 2396 e = 0 2397 } catch (t) {} 2398 } 2399 e && this.empty().append(t) 2400 }, null, t, arguments.length) 2401 }, 2402 replaceWith: function() { 2403 var t = []; 2404 return It(this, arguments, function(e) { 2405 var n = this.parentNode; 2406 y.inArray(this, t) < 0 && (y.cleanData(dt(this)), 2407 n && n.replaceChild(e, this)) 2408 }, t) 2409 } 2410 }), 2411 y.each({ 2412 appendTo: "append",
vendor: 17,373 bytes, lines 2413-2886
2413 prependTo: "prepend", 2414 insertBefore: "before", 2415 insertAfter: "after", 2416 replaceAll: "replaceWith" 2417 }, function(t, e) { 2418 y.fn[t] = function(t) { 2419 for (var n, r = [], i = y(t), o = i.length - 1, a = 0; a <= o; a++) 2420 n = a === o ? this : this.clone(!0), 2421 y(i[a])[e](n), 2422 s.apply(r, n.get()); 2423 return this.pushStack(r) 2424 } 2425 }); 2426 var Ft = /^margin/ 2427 , Lt = new RegExp("^(" + Z + ")(?!px)[a-z%]+$","i") 2428 , Pt = function(e) { 2429 var n = e.ownerDocument.defaultView; 2430 return n && n.opener || (n = t), 2431 n.getComputedStyle(e) 2432 }; 2433 !function() { 2434 function e() { 2435 if (u) { 2436 u.style.cssText = "box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%", 2437 u.innerHTML = "", 2438 mt.appendChild(s); 2439 var e = t.getComputedStyle(u); 2440 n = "1%" !== e.top, 2441 a = "2px" === e.marginLeft, 2442 i = "4px" === e.width, 2443 u.style.marginRight = "50%", 2444 o = "4px" === e.marginRight, 2445 mt.removeChild(s), 2446 u = null 2447 } 2448 } 2449 var n, i, o, a, s = r.createElement("div"), u = r.createElement("div"); 2450 u.style && (u.style.backgroundClip = "content-box", 2451 u.cloneNode(!0).style.backgroundClip = "", 2452 p.clearCloneStyle = "content-box" === u.style.backgroundClip, 2453 s.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute", 2454 s.appendChild(u), 2455 y.extend(p, { 2456 pixelPosition: function() { 2457 return e(), 2458 n 2459 }, 2460 boxSizingReliable: function() { 2461 return e(), 2462 i 2463 }, 2464 pixelMarginRight: function() { 2465 return e(), 2466 o 2467 }, 2468 reliableMarginLeft: function() { 2469 return e(), 2470 a 2471 } 2472 })) 2473 }(); 2474 function Ot(t, e, n) { 2475 var r, i, o, a, s = t.style; 2476 return n = n || Pt(t), 2477 n && (a = n.getPropertyValue(e) || n[e], 2478 "" !== a || y.contains(t.ownerDocument, t) || (a = y.style(t, e)), 2479 !p.pixelMarginRight() && Lt.test(a) && Ft.test(e) && (r = s.width, 2480 i = s.minWidth, 2481 o = s.maxWidth, 2482 s.minWidth = s.maxWidth = s.width = a, 2483 a = n.width, 2484 s.width = r, 2485 s.minWidth = i, 2486 s.maxWidth = o)), 2487 void 0 !== a ? a + "" : a 2488 } 2489 function qt(t, e) { 2490 return { 2491 get: function() { 2492 return t() ? void delete this.get : (this.get = e).apply(this, arguments) 2493 } 2494 } 2495 } 2496 var Rt = /^(none|table(?!-c[ea]).+)/ 2497 , zt = /^--/ 2498 , Ht = { 2499 position: "absolute", 2500 visibility: "hidden", 2501 display: "block" 2502 } 2503 , Bt = { 2504 letterSpacing: "0", 2505 fontWeight: "400" 2506 } 2507 , Vt = ["Webkit", "Moz", "ms"] 2508 , Ut = r.createElement("div").style; 2509 function Wt(t) { 2510 if (t in Ut) 2511 return t; 2512 for (var e = t[0].toUpperCase() + t.slice(1), n = Vt.length; n--; ) 2513 if ((t = Vt[n] + e)in Ut) 2514 return t 2515 } 2516 function Kt(t) { 2517 var e = y.cssProps[t]; 2518 return e || (e = y.cssProps[t] = Wt(t) || t), 2519 e 2520 } 2521 function Gt(t, e, n) { 2522 var r = tt.exec(e); 2523 return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : e 2524 } 2525 function Yt(t, e, n, r, i) { 2526 var o, a = 0; 2527 for (o = n === (r ? "border" : "content") ? 4 : "width" === e ? 1 : 0; o < 4; o += 2) 2528 "margin" === n && (a += y.css(t, n + et[o], !0, i)), 2529 r ? ("content" === n && (a -= y.css(t, "padding" + et[o], !0, i)), 2530 "margin" !== n && (a -= y.css(t, "border" + et[o] + "Width", !0, i))) : (a += y.css(t, "padding" + et[o], !0, i), 2531 "padding" !== n && (a += y.css(t, "border" + et[o] + "Width", !0, i))); 2532 return a 2533 } 2534 function Jt(t, e, n) { 2535 var r, i = Pt(t), o = Ot(t, e, i), a = "border-box" === y.css(t, "boxSizing", !1, i); 2536 return Lt.test(o) ? o : (r = a && (p.boxSizingReliable() || o === t.style[e]), 2537 (o = parseFloat(o) || 0) + Yt(t, e, n || (a ? "border" : "content"), r, i) + "px") 2538 } 2539 y.extend({ 2540 cssHooks: { 2541 opacity: { 2542 get: function(t, e) { 2543 if (e) { 2544 var n = Ot(t, "opacity"); 2545 return "" === n ? "1" : n 2546 } 2547 } 2548 } 2549 }, 2550 cssNumber: { 2551 animationIterationCount: !0, 2552 columnCount: !0, 2553 fillOpacity: !0, 2554 flexGrow: !0, 2555 flexShrink: !0, 2556 fontWeight: !0, 2557 lineHeight: !0, 2558 opacity: !0, 2559 order: !0, 2560 orphans: !0, 2561 widows: !0, 2562 zIndex: !0, 2563 zoom: !0 2564 }, 2565 cssProps: { 2566 float: "cssFloat" 2567 }, 2568 style: function(t, e, n, r) { 2569 if (t && 3 !== t.nodeType && 8 !== t.nodeType && t.style) { 2570 var i, o, a, s = y.camelCase(e), u = zt.test(e), l = t.style; 2571 return u || (e = Kt(s)), 2572 a = y.cssHooks[e] || y.cssHooks[s], 2573 void 0 === n ? a && "get"in a && void 0 !== (i = a.get(t, !1, r)) ? i : l[e] : (o = typeof n, 2574 "string" === o && (i = tt.exec(n)) && i[1] && (n = it(t, e, i), 2575 o = "number"), 2576 void (null != n && n === n && ("number" === o && (n += i && i[3] || (y.cssNumber[s] ? "" : "px")), 2577 p.clearCloneStyle || "" !== n || 0 !== e.indexOf("background") || (l[e] = "inherit"), 2578 a && "set"in a && void 0 === (n = a.set(t, n, r)) || (u ? l.setProperty(e, n) : l[e] = n)))) 2579 } 2580 }, 2581 css: function(t, e, n, r) { 2582 var i, o, a, s = y.camelCase(e); 2583 return zt.test(e) || (e = Kt(s)), 2584 a = y.cssHooks[e] || y.cssHooks[s], 2585 a && "get"in a && (i = a.get(t, !0, n)), 2586 void 0 === i && (i = Ot(t, e, r)), 2587 "normal" === i && e in Bt && (i = Bt[e]), 2588 "" === n || n ? (o = parseFloat(i), 2589 !0 === n || isFinite(o) ? o || 0 : i) : i 2590 } 2591 }), 2592 y.each(["height", "width"], function(t, e) { 2593 y.cssHooks[e] = { 2594 get: function(t, n, r) { 2595 if (n) 2596 return !Rt.test(y.css(t, "display")) || t.getClientRects().length && t.getBoundingClientRect().width ? Jt(t, e, r) : rt(t, Ht, function() { 2597 return Jt(t, e, r) 2598 }) 2599 }, 2600 set: function(t, n, r) { 2601 var i, o = r && Pt(t), a = r && Yt(t, e, r, "border-box" === y.css(t, "boxSizing", !1, o), o); 2602 return a && (i = tt.exec(n)) && "px" !== (i[3] || "px") && (t.style[e] = n, 2603 n = y.css(t, e)), 2604 Gt(t, n, a) 2605 } 2606 } 2607 }), 2608 y.cssHooks.marginLeft = qt(p.reliableMarginLeft, function(t, e) { 2609 if (e) 2610 return (parseFloat(Ot(t, "marginLeft")) || t.getBoundingClientRect().left - rt(t, { 2611 marginLeft: 0 2612 }, function() { 2613 return t.getBoundingClientRect().left 2614 })) + "px" 2615 }), 2616 y.each({ 2617 margin: "", 2618 padding: "", 2619 border: "Width" 2620 }, function(t, e) { 2621 y.cssHooks[t + e] = { 2622 expand: function(n) { 2623 for (var r = 0, i = {}, o = "string" == typeof n ? n.split(" ") : [n]; r < 4; r++) 2624 i[t + et[r] + e] = o[r] || o[r - 2] || o[0]; 2625 return i 2626 } 2627 }, 2628 Ft.test(t) || (y.cssHooks[t + e].set = Gt) 2629 }), 2630 y.fn.extend({ 2631 css: function(t, e) { 2632 return B(this, function(t, e, n) { 2633 var r, i, o = {}, a = 0; 2634 if (Array.isArray(e)) { 2635 for (r = Pt(t), 2636 i = e.length; a < i; a++) 2637 o[e[a]] = y.css(t, e[a], !1, r); 2638 return o 2639 } 2640 return void 0 !== n ? y.style(t, e, n) : y.css(t, e) 2641 }, t, e, arguments.length > 1) 2642 } 2643 }); 2644 function Xt(t, e, n, r, i) { 2645 return new Xt.prototype.init(t,e,n,r,i) 2646 } 2647 y.Tween = Xt, 2648 Xt.prototype = { 2649 constructor: Xt, 2650 init: function(t, e, n, r, i, o) { 2651 this.elem = t, 2652 this.prop = n, 2653 this.easing = i || y.easing._default, 2654 this.options = e, 2655 this.start = this.now = this.cur(), 2656 this.end = r, 2657 this.unit = o || (y.cssNumber[n] ? "" : "px") 2658 }, 2659 cur: function() { 2660 var t = Xt.propHooks[this.prop]; 2661 return t && t.get ? t.get(this) : Xt.propHooks._default.get(this) 2662 }, 2663 run: function(t) { 2664 var e, n = Xt.propHooks[this.prop]; 2665 return this.options.duration ? this.pos = e = y.easing[this.easing](t, this.options.duration * t, 0, 1, this.options.duration) : this.pos = e = t, 2666 this.now = (this.end - this.start) * e + this.start, 2667 this.options.step && this.options.step.call(this.elem, this.now, this), 2668 n && n.set ? n.set(this) : Xt.propHooks._default.set(this), 2669 this 2670 } 2671 }, 2672 Xt.prototype.init.prototype = Xt.prototype, 2673 Xt.propHooks = { 2674 _default: { 2675 get: function(t) { 2676 var e; 2677 return 1 !== t.elem.nodeType || null != t.elem[t.prop] && null == t.elem.style[t.prop] ? t.elem[t.prop] : (e = y.css(t.elem, t.prop, ""), 2678 e && "auto" !== e ? e : 0) 2679 }, 2680 set: function(t) { 2681 y.fx.step[t.prop] ? y.fx.step[t.prop](t) : 1 !== t.elem.nodeType || null == t.elem.style[y.cssProps[t.prop]] && !y.cssHooks[t.prop] ? t.elem[t.prop] = t.now : y.style(t.elem, t.prop, t.now + t.unit) 2682 } 2683 } 2684 }, 2685 Xt.propHooks.scrollTop = Xt.propHooks.scrollLeft = { 2686 set: function(t) { 2687 t.elem.nodeType && t.elem.parentNode && (t.elem[t.prop] = t.now) 2688 } 2689 }, 2690 y.easing = { 2691 linear: function(t) { 2692 return t 2693 }, 2694 swing: function(t) { 2695 return .5 - Math.cos(t * Math.PI) / 2 2696 }, 2697 _default: "swing" 2698 }, 2699 y.fx = Xt.prototype.init, 2700 y.fx.step = {}; 2701 var Zt, te, ee = /^(?:toggle|show|hide)$/, ne = /queueHooks$/; 2702 function re() { 2703 te && (!1 === r.hidden && t.requestAnimationFrame ? t.requestAnimationFrame(re) : t.setTimeout(re, y.fx.interval), 2704 y.fx.tick()) 2705 } 2706 function ie() { 2707 return t.setTimeout(function() { 2708 Zt = void 0 2709 }), 2710 Zt = y.now() 2711 } 2712 function oe(t, e) { 2713 var n, r = 0, i = { 2714 height: t 2715 }; 2716 for (e = e ? 1 : 0; r < 4; r += 2 - e) 2717 n = et[r], 2718 i["margin" + n] = i["padding" + n] = t; 2719 return e && (i.opacity = i.width = t), 2720 i 2721 } 2722 function ae(t, e, n) { 2723 for (var r, i = (le.tweeners[e] || []).concat(le.tweeners["*"]), o = 0, a = i.length; o < a; o++) 2724 if (r = i[o].call(n, e, t)) 2725 return r 2726 } 2727 function se(t, e, n) { 2728 var r, i, o, a, s, u, l, c, h = "width"in e || "height"in e, d = this, f = {}, p = t.style, g = t.nodeType && nt(t), m = W.get(t, "fxshow"); 2729 n.queue || (a = y._queueHooks(t, "fx"), 2730 null == a.unqueued && (a.unqueued = 0, 2731 s = a.empty.fire, 2732 a.empty.fire = function() { 2733 a.unqueued || s() 2734 } 2735 ), 2736 a.unqueued++, 2737 d.always(function() { 2738 d.always(function() { 2739 a.unqueued--, 2740 y.queue(t, "fx").length || a.empty.fire() 2741 }) 2742 })); 2743 for (r in e) 2744 if (i = e[r], 2745 ee.test(i)) { 2746 if (delete e[r], 2747 o = o || "toggle" === i, 2748 i === (g ? "hide" : "show")) { 2749 if ("show" !== i || !m || void 0 === m[r]) 2750 continue; 2751 g = !0 2752 } 2753 f[r] = m && m[r] || y.style(t, r) 2754 } 2755 if ((u = !y.isEmptyObject(e)) || !y.isEmptyObject(f)) { 2756 h && 1 === t.nodeType && (n.overflow = [p.overflow, p.overflowX, p.overflowY], 2757 l = m && m.display, 2758 null == l && (l = W.get(t, "display")), 2759 c = y.css(t, "display"), 2760 "none" === c && (l ? c = l : (st([t], !0), 2761 l = t.style.display || l, 2762 c = y.css(t, "display"), 2763 st([t]))), 2764 ("inline" === c || "inline-block" === c && null != l) && "none" === y.css(t, "float") && (u || (d.done(function() { 2765 p.display = l 2766 }), 2767 null == l && (c = p.display, 2768 l = "none" === c ? "" : c)), 2769 p.display = "inline-block")), 2770 n.overflow && (p.overflow = "hidden", 2771 d.always(function() { 2772 p.overflow = n.overflow[0], 2773 p.overflowX = n.overflow[1], 2774 p.overflowY = n.overflow[2] 2775 })), 2776 u = !1; 2777 for (r in f) 2778 u || (m ? "hidden"in m && (g = m.hidden) : m = W.access(t, "fxshow", { 2779 display: l 2780 }), 2781 o && (m.hidden = !g), 2782 g && st([t], !0), 2783 d.done(function() { 2784 g || st([t]), 2785 W.remove(t, "fxshow"); 2786 for (r in f) 2787 y.style(t, r, f[r]) 2788 })), 2789 u = ae(g ? m[r] : 0, r, d), 2790 r in m || (m[r] = u.start, 2791 g && (u.end = u.start, 2792 u.start = 0)) 2793 } 2794 } 2795 function ue(t, e) { 2796 var n, r, i, o, a; 2797 for (n in t) 2798 if (r = y.camelCase(n), 2799 i = e[r], 2800 o = t[n], 2801 Array.isArray(o) && (i = o[1], 2802 o = t[n] = o[0]), 2803 n !== r && (t[r] = o, 2804 delete t[n]), 2805 (a = y.cssHooks[r]) && "expand"in a) { 2806 o = a.expand(o), 2807 delete t[r]; 2808 for (n in o) 2809 n in t || (t[n] = o[n], 2810 e[n] = i) 2811 } else 2812 e[r] = i 2813 } 2814 function le(t, e, n) { 2815 var r, i, o = 0, a = le.prefilters.length, s = y.Deferred().always(function() { 2816 delete u.elem 2817 }), u = function() { 2818 if (i) 2819 return !1; 2820 for (var e = Zt || ie(), n = Math.max(0, l.startTime + l.duration - e), r = n / l.duration || 0, o = 1 - r, a = 0, u = l.tweens.length; a < u; a++) 2821 l.tweens[a].run(o); 2822 return s.notifyWith(t, [l, o, n]), 2823 o < 1 && u ? n : (u || s.notifyWith(t, [l, 1, 0]), 2824 s.resolveWith(t, [l]), 2825 !1) 2826 }, l = s.promise({ 2827 elem: t, 2828 props: y.extend({}, e), 2829 opts: y.extend(!0, { 2830 specialEasing: {}, 2831 easing: y.easing._default 2832 }, n), 2833 originalProperties: e, 2834 originalOptions: n, 2835 startTime: Zt || ie(), 2836 duration: n.duration, 2837 tweens: [], 2838 createTween: function(e, n) { 2839 var r = y.Tween(t, l.opts, e, n, l.opts.specialEasing[e] || l.opts.easing); 2840 return l.tweens.push(r), 2841 r 2842 }, 2843 stop: function(e) { 2844 var n = 0 2845 , r = e ? l.tweens.length : 0; 2846 if (i) 2847 return this; 2848 for (i = !0; n < r; n++) 2849 l.tweens[n].run(1); 2850 return e ? (s.notifyWith(t, [l, 1, 0]), 2851 s.resolveWith(t, [l, e])) : s.rejectWith(t, [l, e]), 2852 this 2853 } 2854 }), c = l.props; 2855 for (ue(c, l.opts.specialEasing); o < a; o++) 2856 if (r = le.prefilters[o].call(l, t, c, l.opts)) 2857 return y.isFunction(r.stop) && (y._queueHooks(l.elem, l.opts.queue).stop = y.proxy(r.stop, r)), 2858 r; 2859 return y.map(c, ae, l), 2860 y.isFunction(l.opts.start) && l.opts.start.call(t, l), 2861 l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always), 2862 y.fx.timer(y.extend(u, { 2863 elem: t, 2864 anim: l, 2865 queue: l.opts.queue 2866 })), 2867 l 2868 } 2869 y.Animation = y.extend(le, { 2870 tweeners: { 2871 "*": [function(t, e) { 2872 var n = this.createTween(t, e); 2873 return it(n.elem, t, tt.exec(e), n), 2874 n 2875 } 2876 ] 2877 }, 2878 tweener: function(t, e) { 2879 y.isFunction(t) ? (e = t, 2880 t = ["*"]) : t = t.match(F); 2881 for (var n, r = 0, i = t.length; r < i; r++) 2882 n = t[r], 2883 le.tweeners[n] = le.tweeners[n] || [], 2884 le.tweeners[n].unshift(e) 2885 }, 2886 prefilters: [se],
vendor: 34,625 bytes, lines 2887-3823
2887 prefilter: function(t, e) { 2888 e ? le.prefilters.unshift(t) : le.prefilters.push(t) 2889 } 2890 }), 2891 y.speed = function(t, e, n) { 2892 var r = t && "object" == typeof t ? y.extend({}, t) : { 2893 complete: n || !n && e || y.isFunction(t) && t, 2894 duration: t, 2895 easing: n && e || e && !y.isFunction(e) && e 2896 }; 2897 return y.fx.off ? r.duration = 0 : "number" != typeof r.duration && (r.duration in y.fx.speeds ? r.duration = y.fx.speeds[r.duration] : r.duration = y.fx.speeds._default), 2898 null != r.queue && !0 !== r.queue || (r.queue = "fx"), 2899 r.old = r.complete, 2900 r.complete = function() { 2901 y.isFunction(r.old) && r.old.call(this), 2902 r.queue && y.dequeue(this, r.queue) 2903 } 2904 , 2905 r 2906 } 2907 , 2908 y.fn.extend({ 2909 fadeTo: function(t, e, n, r) { 2910 return this.filter(nt).css("opacity", 0).show().end().animate({ 2911 opacity: e 2912 }, t, n, r) 2913 }, 2914 animate: function(t, e, n, r) { 2915 var i = y.isEmptyObject(t) 2916 , o = y.speed(e, n, r) 2917 , a = function() { 2918 var e = le(this, y.extend({}, t), o); 2919 (i || W.get(this, "finish")) && e.stop(!0) 2920 }; 2921 return a.finish = a, 2922 i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a) 2923 }, 2924 stop: function(t, e, n) { 2925 var r = function(t) { 2926 var e = t.stop; 2927 delete t.stop, 2928 e(n) 2929 }; 2930 return "string" != typeof t && (n = e, 2931 e = t, 2932 t = void 0), 2933 e && !1 !== t && this.queue(t || "fx", []), 2934 this.each(function() { 2935 var e = !0 2936 , i = null != t && t + "queueHooks" 2937 , o = y.timers 2938 , a = W.get(this); 2939 if (i) 2940 a[i] && a[i].stop && r(a[i]); 2941 else 2942 for (i in a) 2943 a[i] && a[i].stop && ne.test(i) && r(a[i]); 2944 for (i = o.length; i--; ) 2945 o[i].elem !== this || null != t && o[i].queue !== t || (o[i].anim.stop(n), 2946 e = !1, 2947 o.splice(i, 1)); 2948 !e && n || y.dequeue(this, t) 2949 }) 2950 }, 2951 finish: function(t) { 2952 return !1 !== t && (t = t || "fx"), 2953 this.each(function() { 2954 var e, n = W.get(this), r = n[t + "queue"], i = n[t + "queueHooks"], o = y.timers, a = r ? r.length : 0; 2955 for (n.finish = !0, 2956 y.queue(this, t, []), 2957 i && i.stop && i.stop.call(this, !0), 2958 e = o.length; e--; ) 2959 o[e].elem === this && o[e].queue === t && (o[e].anim.stop(!0), 2960 o.splice(e, 1)); 2961 for (e = 0; e < a; e++) 2962 r[e] && r[e].finish && r[e].finish.call(this); 2963 delete n.finish 2964 }) 2965 } 2966 }), 2967 y.each(["toggle", "show", "hide"], function(t, e) { 2968 var n = y.fn[e]; 2969 y.fn[e] = function(t, r, i) { 2970 return null == t || "boolean" == typeof t ? n.apply(this, arguments) : this.animate(oe(e, !0), t, r, i) 2971 } 2972 }), 2973 y.each({ 2974 slideDown: oe("show"), 2975 slideUp: oe("hide"), 2976 slideToggle: oe("toggle"), 2977 fadeIn: { 2978 opacity: "show" 2979 }, 2980 fadeOut: { 2981 opacity: "hide" 2982 }, 2983 fadeToggle: { 2984 opacity: "toggle" 2985 } 2986 }, function(t, e) { 2987 y.fn[t] = function(t, n, r) { 2988 return this.animate(e, t, n, r) 2989 } 2990 }), 2991 y.timers = [], 2992 y.fx.tick = function() { 2993 var t, e = 0, n = y.timers; 2994 for (Zt = y.now(); e < n.length; e++) 2995 (t = n[e])() || n[e] !== t || n.splice(e--, 1); 2996 n.length || y.fx.stop(), 2997 Zt = void 0 2998 } 2999 , 3000 y.fx.timer = function(t) { 3001 y.timers.push(t), 3002 y.fx.start() 3003 } 3004 , 3005 y.fx.interval = 13, 3006 y.fx.start = function() { 3007 te || (te = !0, 3008 re()) 3009 } 3010 , 3011 y.fx.stop = function() { 3012 te = null 3013 } 3014 , 3015 y.fx.speeds = { 3016 slow: 600, 3017 fast: 200, 3018 _default: 400 3019 }, 3020 y.fn.delay = function(e, n) { 3021 return e = y.fx ? y.fx.speeds[e] || e : e, 3022 n = n || "fx", 3023 this.queue(n, function(n, r) { 3024 var i = t.setTimeout(n, e); 3025 r.stop = function() { 3026 t.clearTimeout(i) 3027 } 3028 }) 3029 } 3030 , 3031 function() { 3032 var t = r.createElement("input") 3033 , e = r.createElement("select") 3034 , n = e.appendChild(r.createElement("option")); 3035 t.type = "checkbox", 3036 p.checkOn = "" !== t.value, 3037 p.optSelected = n.selected, 3038 t = r.createElement("input"), 3039 t.value = "t", 3040 t.type = "radio", 3041 p.radioValue = "t" === t.value 3042 }(); 3043 var ce, he = y.expr.attrHandle; 3044 y.fn.extend({ 3045 attr: function(t, e) { 3046 return B(this, y.attr, t, e, arguments.length > 1) 3047 }, 3048 removeAttr: function(t) { 3049 return this.each(function() { 3050 y.removeAttr(this, t) 3051 }) 3052 } 3053 }), 3054 y.extend({ 3055 attr: function(t, e, n) { 3056 var r, i, o = t.nodeType; 3057 if (3 !== o && 8 !== o && 2 !== o) 3058 return void 0 === t.getAttribute ? y.prop(t, e, n) : (1 === o && y.isXMLDoc(t) || (i = y.attrHooks[e.toLowerCase()] || (y.expr.match.bool.test(e) ? ce : void 0)), 3059 void 0 !== n ? null === n ? void y.removeAttr(t, e) : i && "set"in i && void 0 !== (r = i.set(t, n, e)) ? r : (t.setAttribute(e, n + ""), 3060 n) : i && "get"in i && null !== (r = i.get(t, e)) ? r : (r = y.find.attr(t, e), 3061 null == r ? void 0 : r)) 3062 }, 3063 attrHooks: { 3064 type: { 3065 set: function(t, e) { 3066 if (!p.radioValue && "radio" === e && S(t, "input")) { 3067 var n = t.value; 3068 return t.setAttribute("type", e), 3069 n && (t.value = n), 3070 e 3071 } 3072 } 3073 } 3074 }, 3075 removeAttr: function(t, e) { 3076 var n, r = 0, i = e && e.match(F); 3077 if (i && 1 === t.nodeType) 3078 for (; n = i[r++]; ) 3079 t.removeAttribute(n) 3080 } 3081 }), 3082 ce = { 3083 set: function(t, e, n) { 3084 return !1 === e ? y.removeAttr(t, n) : t.setAttribute(n, n), 3085 n 3086 } 3087 }, 3088 y.each(y.expr.match.bool.source.match(/\w+/g), function(t, e) { 3089 var n = he[e] || y.find.attr; 3090 he[e] = function(t, e, r) { 3091 var i, o, a = e.toLowerCase(); 3092 return r || (o = he[a], 3093 he[a] = i, 3094 i = null != n(t, e, r) ? a : null, 3095 he[a] = o), 3096 i 3097 } 3098 }); 3099 var de = /^(?:input|select|textarea|button)$/i 3100 , fe = /^(?:a|area)$/i; 3101 y.fn.extend({ 3102 prop: function(t, e) { 3103 return B(this, y.prop, t, e, arguments.length > 1) 3104 }, 3105 removeProp: function(t) { 3106 return this.each(function() { 3107 delete this[y.propFix[t] || t] 3108 }) 3109 } 3110 }), 3111 y.extend({ 3112 prop: function(t, e, n) { 3113 var r, i, o = t.nodeType; 3114 if (3 !== o && 8 !== o && 2 !== o) 3115 return 1 === o && y.isXMLDoc(t) || (e = y.propFix[e] || e, 3116 i = y.propHooks[e]), 3117 void 0 !== n ? i && "set"in i && void 0 !== (r = i.set(t, n, e)) ? r : t[e] = n : i && "get"in i && null !== (r = i.get(t, e)) ? r : t[e] 3118 }, 3119 propHooks: { 3120 tabIndex: { 3121 get: function(t) { 3122 var e = y.find.attr(t, "tabindex"); 3123 return e ? parseInt(e, 10) : de.test(t.nodeName) || fe.test(t.nodeName) && t.href ? 0 : -1 3124 } 3125 } 3126 }, 3127 propFix: { 3128 for: "htmlFor", 3129 class: "className" 3130 } 3131 }), 3132 p.optSelected || (y.propHooks.selected = { 3133 get: function(t) { 3134 var e = t.parentNode; 3135 return e && e.parentNode && e.parentNode.selectedIndex, 3136 null 3137 }, 3138 set: function(t) { 3139 var e = t.parentNode; 3140 e && (e.selectedIndex, 3141 e.parentNode && e.parentNode.selectedIndex) 3142 } 3143 }), 3144 y.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() { 3145 y.propFix[this.toLowerCase()] = this 3146 }); 3147 function pe(t) { 3148 return (t.match(F) || []).join(" ") 3149 } 3150 function ge(t) { 3151 return t.getAttribute && t.getAttribute("class") || "" 3152 } 3153 y.fn.extend({ 3154 addClass: function(t) { 3155 var e, n, r, i, o, a, s, u = 0; 3156 if (y.isFunction(t)) 3157 return this.each(function(e) { 3158 y(this).addClass(t.call(this, e, ge(this))) 3159 }); 3160 if ("string" == typeof t && t) 3161 for (e = t.match(F) || []; n = this[u++]; ) 3162 if (i = ge(n), 3163 r = 1 === n.nodeType && " " + pe(i) + " ") { 3164 for (a = 0; o = e[a++]; ) 3165 r.indexOf(" " + o + " ") < 0 && (r += o + " "); 3166 s = pe(r), 3167 i !== s && n.setAttribute("class", s) 3168 } 3169 return this 3170 }, 3171 removeClass: function(t) { 3172 var e, n, r, i, o, a, s, u = 0; 3173 if (y.isFunction(t)) 3174 return this.each(function(e) { 3175 y(this).removeClass(t.call(this, e, ge(this))) 3176 }); 3177 if (!arguments.length) 3178 return this.attr("class", ""); 3179 if ("string" == typeof t && t) 3180 for (e = t.match(F) || []; n = this[u++]; ) 3181 if (i = ge(n), 3182 r = 1 === n.nodeType && " " + pe(i) + " ") { 3183 for (a = 0; o = e[a++]; ) 3184 for (; r.indexOf(" " + o + " ") > -1; ) 3185 r = r.replace(" " + o + " ", " "); 3186 s = pe(r), 3187 i !== s && n.setAttribute("class", s) 3188 } 3189 return this 3190 }, 3191 toggleClass: function(t, e) { 3192 var n = typeof t; 3193 return "boolean" == typeof e && "string" === n ? e ? this.addClass(t) : this.removeClass(t) : y.isFunction(t) ? this.each(function(n) { 3194 y(this).toggleClass(t.call(this, n, ge(this), e), e) 3195 }) : this.each(function() { 3196 var e, r, i, o; 3197 if ("string" === n) 3198 for (r = 0, 3199 i = y(this), 3200 o = t.match(F) || []; e = o[r++]; ) 3201 i.hasClass(e) ? i.removeClass(e) : i.addClass(e); 3202 else 3203 void 0 !== t && "boolean" !== n || (e = ge(this), 3204 e && W.set(this, "__className__", e), 3205 this.setAttribute && this.setAttribute("class", e || !1 === t ? "" : W.get(this, "__className__") || "")) 3206 }) 3207 }, 3208 hasClass: function(t) { 3209 var e, n, r = 0; 3210 for (e = " " + t + " "; n = this[r++]; ) 3211 if (1 === n.nodeType && (" " + pe(ge(n)) + " ").indexOf(e) > -1) 3212 return !0; 3213 return !1 3214 } 3215 }); 3216 var me = /\r/g; 3217 y.fn.extend({ 3218 val: function(t) { 3219 var e, n, r, i = this[0]; 3220 return arguments.length ? (r = y.isFunction(t), 3221 this.each(function(n) { 3222 var i; 3223 1 === this.nodeType && (i = r ? t.call(this, n, y(this).val()) : t, 3224 null == i ? i = "" : "number" == typeof i ? i += "" : Array.isArray(i) && (i = y.map(i, function(t) { 3225 return null == t ? "" : t + "" 3226 })), 3227 (e = y.valHooks[this.type] || y.valHooks[this.nodeName.toLowerCase()]) && "set"in e && void 0 !== e.set(this, i, "value") || (this.value = i)) 3228 })) : i ? (e = y.valHooks[i.type] || y.valHooks[i.nodeName.toLowerCase()], 3229 e && "get"in e && void 0 !== (n = e.get(i, "value")) ? n : (n = i.value, 3230 "string" == typeof n ? n.replace(me, "") : null == n ? "" : n)) : void 0 3231 } 3232 }), 3233 y.extend({ 3234 valHooks: { 3235 option: { 3236 get: function(t) { 3237 var e = y.find.attr(t, "value"); 3238 return null != e ? e : pe(y.text(t)) 3239 } 3240 }, 3241 select: { 3242 get: function(t) { 3243 var e, n, r, i = t.options, o = t.selectedIndex, a = "select-one" === t.type, s = a ? null : [], u = a ? o + 1 : i.length; 3244 for (r = o < 0 ? u : a ? o : 0; r < u; r++) 3245 if (n = i[r], 3246 (n.selected || r === o) && !n.disabled && (!n.parentNode.disabled || !S(n.parentNode, "optgroup"))) { 3247 if (e = y(n).val(), 3248 a) 3249 return e; 3250 s.push(e) 3251 } 3252 return s 3253 }, 3254 set: function(t, e) { 3255 for (var n, r, i = t.options, o = y.makeArray(e), a = i.length; a--; ) 3256 r = i[a], 3257 (r.selected = y.inArray(y.valHooks.option.get(r), o) > -1) && (n = !0); 3258 return n || (t.selectedIndex = -1), 3259 o 3260 } 3261 } 3262 } 3263 }), 3264 y.each(["radio", "checkbox"], function() { 3265 y.valHooks[this] = { 3266 set: function(t, e) { 3267 if (Array.isArray(e)) 3268 return t.checked = y.inArray(y(t).val(), e) > -1 3269 } 3270 }, 3271 p.checkOn || (y.valHooks[this].get = function(t) { 3272 return null === t.getAttribute("value") ? "on" : t.value 3273 } 3274 ) 3275 }); 3276 var ye = /^(?:focusinfocus|focusoutblur)$/; 3277 y.extend(y.event, { 3278 trigger: function(e, n, i, o) { 3279 var a, s, u, l, c, d, f, p = [i || r], g = h.call(e, "type") ? e.type : e, m = h.call(e, "namespace") ? e.namespace.split(".") : []; 3280 if (s = u = i = i || r, 3281 3 !== i.nodeType && 8 !== i.nodeType && !ye.test(g + y.event.triggered) && (g.indexOf(".") > -1 && (m = g.split("."), 3282 g = m.shift(), 3283 m.sort()), 3284 c = g.indexOf(":") < 0 && "on" + g, 3285 e = e[y.expando] ? e : new y.Event(g,"object" == typeof e && e), 3286 e.isTrigger = o ? 2 : 3, 3287 e.namespace = m.join("."), 3288 e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + m.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, 3289 e.result = void 0, 3290 e.target || (e.target = i), 3291 n = null == n ? [e] : y.makeArray(n, [e]), 3292 f = y.event.special[g] || {}, 3293 o || !f.trigger || !1 !== f.trigger.apply(i, n))) { 3294 if (!o && !f.noBubble && !y.isWindow(i)) { 3295 for (l = f.delegateType || g, 3296 ye.test(l + g) || (s = s.parentNode); s; s = s.parentNode) 3297 p.push(s), 3298 u = s; 3299 u === (i.ownerDocument || r) && p.push(u.defaultView || u.parentWindow || t) 3300 } 3301 for (a = 0; (s = p[a++]) && !e.isPropagationStopped(); ) 3302 e.type = a > 1 ? l : f.bindType || g, 3303 d = (W.get(s, "events") || {})[e.type] && W.get(s, "handle"), 3304 d && d.apply(s, n), 3305 (d = c && s[c]) && d.apply && V(s) && (e.result = d.apply(s, n), 3306 !1 === e.result && e.preventDefault()); 3307 return e.type = g, 3308 o || e.isDefaultPrevented() || f._default && !1 !== f._default.apply(p.pop(), n) || !V(i) || c && y.isFunction(i[g]) && !y.isWindow(i) && (u = i[c], 3309 u && (i[c] = null), 3310 y.event.triggered = g, 3311 i[g](), 3312 y.event.triggered = void 0, 3313 u && (i[c] = u)), 3314 e.result 3315 } 3316 }, 3317 simulate: function(t, e, n) { 3318 var r = y.extend(new y.Event, n, { 3319 type: t, 3320 isSimulated: !0 3321 }); 3322 y.event.trigger(r, null, e) 3323 } 3324 }), 3325 y.fn.extend({ 3326 trigger: function(t, e) { 3327 return this.each(function() { 3328 y.event.trigger(t, e, this) 3329 }) 3330 }, 3331 triggerHandler: function(t, e) { 3332 var n = this[0]; 3333 if (n) 3334 return y.event.trigger(t, e, n, !0) 3335 } 3336 }), 3337 y.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(t, e) { 3338 y.fn[e] = function(t, n) { 3339 return arguments.length > 0 ? this.on(e, null, t, n) : this.trigger(e) 3340 } 3341 }), 3342 y.fn.extend({ 3343 hover: function(t, e) { 3344 return this.mouseenter(t).mouseleave(e || t) 3345 } 3346 }), 3347 p.focusin = "onfocusin"in t, 3348 p.focusin || y.each({ 3349 focus: "focusin", 3350 blur: "focusout" 3351 }, function(t, e) { 3352 var n = function(t) { 3353 y.event.simulate(e, t.target, y.event.fix(t)) 3354 }; 3355 y.event.special[e] = { 3356 setup: function() { 3357 var r = this.ownerDocument || this 3358 , i = W.access(r, e); 3359 i || r.addEventListener(t, n, !0), 3360 W.access(r, e, (i || 0) + 1) 3361 }, 3362 teardown: function() { 3363 var r = this.ownerDocument || this 3364 , i = W.access(r, e) - 1; 3365 i ? W.access(r, e, i) : (r.removeEventListener(t, n, !0), 3366 W.remove(r, e)) 3367 } 3368 } 3369 }); 3370 var ve = t.location 3371 , be = y.now() 3372 , we = /\?/; 3373 y.parseXML = function(e) { 3374 var n; 3375 if (!e || "string" != typeof e) 3376 return null; 3377 try { 3378 n = (new t.DOMParser).parseFromString(e, "text/xml") 3379 } catch (t) { 3380 n = void 0 3381 } 3382 return n && !n.getElementsByTagName("parsererror").length || y.error("Invalid XML: " + e), 3383 n 3384 } 3385 ; 3386 var xe = /\[\]$/ 3387 , _e = /\r?\n/g 3388 , Ce = /^(?:submit|button|image|reset|file)$/i 3389 , ke = /^(?:input|select|textarea|keygen)/i; 3390 function je(t, e, n, r) { 3391 var i; 3392 if (Array.isArray(e)) 3393 y.each(e, function(e, i) { 3394 n || xe.test(t) ? r(t, i) : je(t + "[" + ("object" == typeof i && null != i ? e : "") + "]", i, n, r) 3395 }); 3396 else if (n || "object" !== y.type(e)) 3397 r(t, e); 3398 else 3399 for (i in e) 3400 je(t + "[" + i + "]", e[i], n, r) 3401 } 3402 y.param = function(t, e) { 3403 var n, r = [], i = function(t, e) { 3404 var n = y.isFunction(e) ? e() : e; 3405 r[r.length] = encodeURIComponent(t) + "=" + encodeURIComponent(null == n ? "" : n) 3406 }; 3407 if (Array.isArray(t) || t.jquery && !y.isPlainObject(t)) 3408 y.each(t, function() { 3409 i(this.name, this.value) 3410 }); 3411 else 3412 for (n in t) 3413 je(n, t[n], e, i); 3414 return r.join("&") 3415 } 3416 , 3417 y.fn.extend({ 3418 serialize: function() { 3419 return y.param(this.serializeArray()) 3420 }, 3421 serializeArray: function() { 3422 return this.map(function() { 3423 var t = y.prop(this, "elements"); 3424 return t ? y.makeArray(t) : this 3425 }).filter(function() { 3426 var t = this.type; 3427 return this.name && !y(this).is(":disabled") && ke.test(this.nodeName) && !Ce.test(t) && (this.checked || !ut.test(t)) 3428 }).map(function(t, e) { 3429 var n = y(this).val(); 3430 return null == n ? null : Array.isArray(n) ? y.map(n, function(t) { 3431 return { 3432 name: e.name, 3433 value: t.replace(_e, "\r\n") 3434 } 3435 }) : { 3436 name: e.name, 3437 value: n.replace(_e, "\r\n") 3438 } 3439 }).get() 3440 } 3441 }); 3442 var Te = /%20/g 3443 , Se = /#.*$/ 3444 , Ee = /([?&])_=[^&]*/ 3445 , Ae = /^(.*?):[ \t]*([^\r\n]*)$/gm 3446 , Me = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/ 3447 , Qe = /^(?:GET|HEAD)$/ 3448 , $e = /^\/\// 3449 , De = {} 3450 , Ie = {} 3451 , Ne = "*/".concat("*") 3452 , Fe = r.createElement("a"); 3453 Fe.href = ve.href; 3454 function Le(t) { 3455 return function(e, n) { 3456 "string" != typeof e && (n = e, 3457 e = "*"); 3458 var r, i = 0, o = e.toLowerCase().match(F) || []; 3459 if (y.isFunction(n)) 3460 for (; r = o[i++]; ) 3461 "+" === r[0] ? (r = r.slice(1) || "*", 3462 (t[r] = t[r] || []).unshift(n)) : (t[r] = t[r] || []).push(n) 3463 } 3464 } 3465 function Pe(t, e, n, r) { 3466 var i = {} 3467 , o = t === Ie; 3468 function a(s) { 3469 var u; 3470 return i[s] = !0, 3471 y.each(t[s] || [], function(t, s) { 3472 var l = s(e, n, r); 3473 return "string" != typeof l || o || i[l] ? o ? !(u = l) : void 0 : (e.dataTypes.unshift(l), 3474 a(l), 3475 !1) 3476 }), 3477 u 3478 } 3479 return a(e.dataTypes[0]) || !i["*"] && a("*") 3480 } 3481 function Oe(t, e) { 3482 var n, r, i = y.ajaxSettings.flatOptions || {}; 3483 for (n in e) 3484 void 0 !== e[n] && ((i[n] ? t : r || (r = {}))[n] = e[n]); 3485 return r && y.extend(!0, t, r), 3486 t 3487 } 3488 function qe(t, e, n) { 3489 for (var r, i, o, a, s = t.contents, u = t.dataTypes; "*" === u[0]; ) 3490 u.shift(), 3491 void 0 === r && (r = t.mimeType || e.getResponseHeader("Content-Type")); 3492 if (r) 3493 for (i in s) 3494 if (s[i] && s[i].test(r)) { 3495 u.unshift(i); 3496 break 3497 } 3498 if (u[0]in n) 3499 o = u[0]; 3500 else { 3501 for (i in n) { 3502 if (!u[0] || t.converters[i + " " + u[0]]) { 3503 o = i; 3504 break 3505 } 3506 a || (a = i) 3507 } 3508 o = o || a 3509 } 3510 if (o) 3511 return o !== u[0] && u.unshift(o), 3512 n[o] 3513 } 3514 function Re(t, e, n, r) { 3515 var i, o, a, s, u, l = {}, c = t.dataTypes.slice(); 3516 if (c[1]) 3517 for (a in t.converters) 3518 l[a.toLowerCase()] = t.converters[a]; 3519 for (o = c.shift(); o; ) 3520 if (t.responseFields[o] && (n[t.responseFields[o]] = e), 3521 !u && r && t.dataFilter && (e = t.dataFilter(e, t.dataType)), 3522 u = o, 3523 o = c.shift()) 3524 if ("*" === o) 3525 o = u; 3526 else if ("*" !== u && u !== o) { 3527 if (!(a = l[u + " " + o] || l["* " + o])) 3528 for (i in l) 3529 if (s = i.split(" "), 3530 s[1] === o && (a = l[u + " " + s[0]] || l["* " + s[0]])) { 3531 !0 === a ? a = l[i] : !0 !== l[i] && (o = s[0], 3532 c.unshift(s[1])); 3533 break 3534 } 3535 if (!0 !== a) 3536 if (a && t.throws) 3537 e = a(e); 3538 else 3539 try { 3540 e = a(e) 3541 } catch (t) { 3542 return { 3543 state: "parsererror", 3544 error: a ? t : "No conversion from " + u + " to " + o 3545 } 3546 } 3547 } 3548 return { 3549 state: "success", 3550 data: e 3551 } 3552 } 3553 y.extend({ 3554 active: 0, 3555 lastModified: {}, 3556 etag: {}, 3557 ajaxSettings: { 3558 url: ve.href, 3559 type: "GET", 3560 isLocal: Me.test(ve.protocol), 3561 global: !0, 3562 processData: !0, 3563 async: !0, 3564 contentType: "application/x-www-form-urlencoded; charset=UTF-8", 3565 accepts: { 3566 "*": Ne, 3567 text: "text/plain", 3568 html: "text/html", 3569 xml: "application/xml, text/xml", 3570 json: "application/json, text/javascript" 3571 }, 3572 contents: { 3573 xml: /\bxml\b/, 3574 html: /\bhtml/, 3575 json: /\bjson\b/ 3576 }, 3577 responseFields: { 3578 xml: "responseXML", 3579 text: "responseText", 3580 json: "responseJSON" 3581 }, 3582 converters: { 3583 "* text": String, 3584 "text html": !0, 3585 "text json": JSON.parse, 3586 "text xml": y.parseXML 3587 }, 3588 flatOptions: { 3589 url: !0, 3590 context: !0 3591 } 3592 }, 3593 ajaxSetup: function(t, e) { 3594 return e ? Oe(Oe(t, y.ajaxSettings), e) : Oe(y.ajaxSettings, t) 3595 }, 3596 ajaxPrefilter: Le(De), 3597 ajaxTransport: Le(Ie), 3598 ajax: function(e, n) { 3599 "object" == typeof e && (n = e, 3600 e = void 0), 3601 n = n || {}; 3602 var i, o, a, s, u, l, c, h, d, f, p = y.ajaxSetup({}, n), g = p.context || p, m = p.context && (g.nodeType || g.jquery) ? y(g) : y.event, v = y.Deferred(), b = y.Callbacks("once memory"), w = p.statusCode || {}, x = {}, _ = {}, C = "canceled", k = { 3603 readyState: 0, 3604 getResponseHeader: function(t) { 3605 var e; 3606 if (c) { 3607 if (!s) 3608 for (s = {}; e = Ae.exec(a); ) 3609 s[e[1].toLowerCase()] = e[2]; 3610 e = s[t.toLowerCase()] 3611 } 3612 return null == e ? null : e 3613 }, 3614 getAllResponseHeaders: function() { 3615 return c ? a : null 3616 }, 3617 setRequestHeader: function(t, e) { 3618 return null == c && (t = _[t.toLowerCase()] = _[t.toLowerCase()] || t, 3619 x[t] = e), 3620 this 3621 }, 3622 overrideMimeType: function(t) { 3623 return null == c && (p.mimeType = t), 3624 this 3625 }, 3626 statusCode: function(t) { 3627 var e; 3628 if (t) 3629 if (c) 3630 k.always(t[k.status]); 3631 else 3632 for (e in t) 3633 w[e] = [w[e], t[e]]; 3634 return this 3635 }, 3636 abort: function(t) { 3637 var e = t || C; 3638 return i && i.abort(e), 3639 j(0, e), 3640 this 3641 } 3642 }; 3643 if (v.promise(k), 3644 p.url = ((e || p.url || ve.href) + "").replace($e, ve.protocol + "//"), 3645 p.type = n.method || n.type || p.method || p.type, 3646 p.dataTypes = (p.dataType || "*").toLowerCase().match(F) || [""], 3647 null == p.crossDomain) { 3648 l = r.createElement("a"); 3649 try { 3650 l.href = p.url, 3651 l.href = l.href, 3652 p.crossDomain = Fe.protocol + "//" + Fe.host != l.protocol + "//" + l.host 3653 } catch (t) { 3654 p.crossDomain = !0 3655 } 3656 } 3657 if (p.data && p.processData && "string" != typeof p.data && (p.data = y.param(p.data, p.traditional)), 3658 Pe(De, p, n, k), 3659 c) 3660 return k; 3661 h = y.event && p.global, 3662 h && 0 == y.active++ && y.event.trigger("ajaxStart"), 3663 p.type = p.type.toUpperCase(), 3664 p.hasContent = !Qe.test(p.type), 3665 o = p.url.replace(Se, ""), 3666 p.hasContent ? p.data && p.processData && 0 === (p.contentType || "").indexOf("application/x-www-form-urlencoded") && (p.data = p.data.replace(Te, "+")) : (f = p.url.slice(o.length), 3667 p.data && (o += (we.test(o) ? "&" : "?") + p.data, 3668 delete p.data), 3669 !1 === p.cache && (o = o.replace(Ee, "$1"), 3670 f = (we.test(o) ? "&" : "?") + "_=" + be++ + f), 3671 p.url = o + f), 3672 p.ifModified && (y.lastModified[o] && k.setRequestHeader("If-Modified-Since", y.lastModified[o]), 3673 y.etag[o] && k.setRequestHeader("If-None-Match", y.etag[o])), 3674 (p.data && p.hasContent && !1 !== p.contentType || n.contentType) && k.setRequestHeader("Content-Type", p.contentType), 3675 k.setRequestHeader("Accept", p.dataTypes[0] && p.accepts[p.dataTypes[0]] ? p.accepts[p.dataTypes[0]] + ("*" !== p.dataTypes[0] ? ", " + Ne + "; q=0.01" : "") : p.accepts["*"]); 3676 for (d in p.headers) 3677 k.setRequestHeader(d, p.headers[d]); 3678 if (p.beforeSend && (!1 === p.beforeSend.call(g, k, p) || c)) 3679 return k.abort(); 3680 if (C = "abort", 3681 b.add(p.complete), 3682 k.done(p.success), 3683 k.fail(p.error), 3684 i = Pe(Ie, p, n, k)) { 3685 if (k.readyState = 1, 3686 h && m.trigger("ajaxSend", [k, p]), 3687 c) 3688 return k; 3689 p.async && p.timeout > 0 && (u = t.setTimeout(function() { 3690 k.abort("timeout") 3691 }, p.timeout)); 3692 try { 3693 c = !1, 3694 i.send(x, j) 3695 } catch (t) { 3696 if (c) 3697 throw t; 3698 j(-1, t) 3699 } 3700 } else 3701 j(-1, "No Transport"); 3702 function j(e, n, r, s) { 3703 var l, d, f, x, _, C = n; 3704 c || (c = !0, 3705 u && t.clearTimeout(u), 3706 i = void 0, 3707 a = s || "", 3708 k.readyState = e > 0 ? 4 : 0, 3709 l = e >= 200 && e < 300 || 304 === e, 3710 r && (x = qe(p, k, r)), 3711 x = Re(p, x, k, l), 3712 l ? (p.ifModified && (_ = k.getResponseHeader("Last-Modified"), 3713 _ && (y.lastModified[o] = _), 3714 (_ = k.getResponseHeader("etag")) && (y.etag[o] = _)), 3715 204 === e || "HEAD" === p.type ? C = "nocontent" : 304 === e ? C = "notmodified" : (C = x.state, 3716 d = x.data, 3717 f = x.error, 3718 l = !f)) : (f = C, 3719 !e && C || (C = "error", 3720 e < 0 && (e = 0))), 3721 k.status = e, 3722 k.statusText = (n || C) + "", 3723 l ? v.resolveWith(g, [d, C, k]) : v.rejectWith(g, [k, C, f]), 3724 k.statusCode(w), 3725 w = void 0, 3726 h && m.trigger(l ? "ajaxSuccess" : "ajaxError", [k, p, l ? d : f]), 3727 b.fireWith(g, [k, C]), 3728 h && (m.trigger("ajaxComplete", [k, p]), 3729 --y.active || y.event.trigger("ajaxStop"))) 3730 } 3731 return k 3732 }, 3733 getJSON: function(t, e, n) { 3734 return y.get(t, e, n, "json") 3735 }, 3736 getScript: function(t, e) { 3737 return y.get(t, void 0, e, "script") 3738 } 3739 }), 3740 y.each(["get", "post"], function(t, e) { 3741 y[e] = function(t, n, r, i) { 3742 return y.isFunction(n) && (i = i || r, 3743 r = n, 3744 n = void 0), 3745 y.ajax(y.extend({ 3746 url: t, 3747 type: e, 3748 dataType: i, 3749 data: n, 3750 success: r 3751 }, y.isPlainObject(t) && t)) 3752 } 3753 }), 3754 y._evalUrl = function(t) { 3755 return y.ajax({ 3756 url: t, 3757 type: "GET", 3758 dataType: "script", 3759 cache: !0, 3760 async: !1, 3761 global: !1, 3762 throws: !0 3763 }) 3764 } 3765 , 3766 y.fn.extend({ 3767 wrapAll: function(t) { 3768 var e; 3769 return this[0] && (y.isFunction(t) && (t = t.call(this[0])), 3770 e = y(t, this[0].ownerDocument).eq(0).clone(!0), 3771 this[0].parentNode && e.insertBefore(this[0]), 3772 e.map(function() { 3773 for (var t = this; t.firstElementChild; ) 3774 t = t.firstElementChild; 3775 return t 3776 }).append(this)), 3777 this 3778 }, 3779 wrapInner: function(t) { 3780 return y.isFunction(t) ? this.each(function(e) { 3781 y(this).wrapInner(t.call(this, e)) 3782 }) : this.each(function() { 3783 var e = y(this) 3784 , n = e.contents(); 3785 n.length ? n.wrapAll(t) : e.append(t) 3786 }) 3787 }, 3788 wrap: function(t) { 3789 var e = y.isFunction(t); 3790 return this.each(function(n) { 3791 y(this).wrapAll(e ? t.call(this, n) : t) 3792 }) 3793 }, 3794 unwrap: function(t) { 3795 return this.parent(t).not("body").each(function() { 3796 y(this).replaceWith(this.childNodes) 3797 }), 3798 this 3799 } 3800 }), 3801 y.expr.pseudos.hidden = function(t) { 3802 return !y.expr.pseudos.visible(t) 3803 } 3804 , 3805 y.expr.pseudos.visible = function(t) { 3806 return !!(t.offsetWidth || t.offsetHeight || t.getClientRects().length) 3807 } 3808 , 3809 y.ajaxSettings.xhr = function() { 3810 try { 3811 return new t.XMLHttpRequest 3812 } catch (t) {} 3813 } 3814 ; 3815 var ze = { 3816 0: 200, 3817 1223: 204 3818 } 3819 , He = y.ajaxSettings.xhr(); 3820 p.cors = !!He && "withCredentials"in He, 3821 p.ajax = He = !!He, 3822 y.ajaxTransport(function(e) { 3823 var n, r;
vendor: 4,081 bytes, lines 3824-3924
3824 if (p.cors || He && !e.crossDomain) 3825 return { 3826 send: function(i, o) { 3827 var a, s = e.xhr(); 3828 if (s.open(e.type, e.url, e.async, e.username, e.password), 3829 e.xhrFields) 3830 for (a in e.xhrFields) 3831 s[a] = e.xhrFields[a]; 3832 e.mimeType && s.overrideMimeType && s.overrideMimeType(e.mimeType), 3833 e.crossDomain || i["X-Requested-With"] || (i["X-Requested-With"] = "XMLHttpRequest"); 3834 for (a in i) 3835 s.setRequestHeader(a, i[a]); 3836 n = function(t) { 3837 return function() { 3838 n && (n = r = s.onload = s.onerror = s.onabort = s.onreadystatechange = null, 3839 "abort" === t ? s.abort() : "error" === t ? "number" != typeof s.status ? o(0, "error") : o(s.status, s.statusText) : o(ze[s.status] || s.status, s.statusText, "text" !== (s.responseType || "text") || "string" != typeof s.responseText ? { 3840 binary: s.response 3841 } : { 3842 text: s.responseText 3843 }, s.getAllResponseHeaders())) 3844 } 3845 } 3846 , 3847 s.onload = n(), 3848 r = s.onerror = n("error"), 3849 void 0 !== s.onabort ? s.onabort = r : s.onreadystatechange = function() { 3850 4 === s.readyState && t.setTimeout(function() { 3851 n && r() 3852 }) 3853 } 3854 , 3855 n = n("abort"); 3856 try { 3857 s.send(e.hasContent && e.data || null) 3858 } catch (t) { 3859 if (n) 3860 throw t 3861 } 3862 }, 3863 abort: function() { 3864 n && n() 3865 } 3866 } 3867 }), 3868 y.ajaxPrefilter(function(t) { 3869 t.crossDomain && (t.contents.script = !1) 3870 }), 3871 y.ajaxSetup({ 3872 accepts: { 3873 script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" 3874 }, 3875 contents: { 3876 script: /\b(?:java|ecma)script\b/ 3877 }, 3878 converters: { 3879 "text script": function(t) { 3880 return y.globalEval(t), 3881 t 3882 } 3883 } 3884 }), 3885 y.ajaxPrefilter("script", function(t) { 3886 void 0 === t.cache && (t.cache = !1), 3887 t.crossDomain && (t.type = "GET") 3888 }), 3889 y.ajaxTransport("script", function(t) { 3890 if (t.crossDomain) { 3891 var e, n; 3892 return { 3893 send: function(i, o) { 3894 e = y("<script>").prop({ 3895 charset: t.scriptCharset, 3896 src: t.url 3897 }).on("load error", n = function(t) { 3898 e.remove(), 3899 n = null, 3900 t && o("error" === t.type ? 404 : 200, t.type) 3901 } 3902 ), 3903 r.head.appendChild(e[0]) 3904 }, 3905 abort: function() { 3906 n && n() 3907 } 3908 } 3909 } 3910 }); 3911 var Be = [] 3912 , Ve = /(=)\?(?=&|$)|\?\?/; 3913 y.ajaxSetup({ 3914 jsonp: "callback", 3915 jsonpCallback: function() { 3916 var t = Be.pop() || y.expando + "_" + be++; 3917 return this[t] = !0, 3918 t 3919 } 3920 }), 3921 y.ajaxPrefilter("json jsonp", function(e, n, r) { 3922 var i, o, a, s = !1 !== e.jsonp && (Ve.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && Ve.test(e.data) && "data"); 3923 if (s || "jsonp" === e.dataTypes[0]) 3924 return i = e.jsonpCallback = y.isFunction(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback,
vendor: 5,939 bytes, lines 3925-4090
3925 s ? e[s] = e[s].replace(Ve, "$1" + i) : !1 !== e.jsonp && (e.url += (we.test(e.url) ? "&" : "?") + e.jsonp + "=" + i), 3926 e.converters["script json"] = function() { 3927 return a || y.error(i + " was not called"), 3928 a[0] 3929 } 3930 , 3931 e.dataTypes[0] = "json", 3932 o = t[i], 3933 t[i] = function() { 3934 a = arguments 3935 } 3936 , 3937 r.always(function() { 3938 void 0 === o ? y(t).removeProp(i) : t[i] = o, 3939 e[i] && (e.jsonpCallback = n.jsonpCallback, 3940 Be.push(i)), 3941 a && y.isFunction(o) && o(a[0]), 3942 a = o = void 0 3943 }), 3944 "script" 3945 }), 3946 p.createHTMLDocument = function() { 3947 var t = r.implementation.createHTMLDocument("").body; 3948 return t.innerHTML = "<form></form><form></form>", 3949 2 === t.childNodes.length 3950 }(), 3951 y.parseHTML = function(t, e, n) { 3952 if ("string" != typeof t) 3953 return []; 3954 "boolean" == typeof e && (n = e, 3955 e = !1); 3956 var i, o, a; 3957 return e || (p.createHTMLDocument ? (e = r.implementation.createHTMLDocument(""), 3958 i = e.createElement("base"), 3959 i.href = r.location.href, 3960 e.head.appendChild(i)) : e = r), 3961 o = E.exec(t), 3962 a = !n && [], 3963 o ? [e.createElement(o[1])] : (o = gt([t], e, a), 3964 a && a.length && y(a).remove(), 3965 y.merge([], o.childNodes)) 3966 } 3967 , 3968 y.fn.load = function(t, e, n) { 3969 var r, i, o, a = this, s = t.indexOf(" "); 3970 return s > -1 && (r = pe(t.slice(s)), 3971 t = t.slice(0, s)), 3972 y.isFunction(e) ? (n = e, 3973 e = void 0) : e && "object" == typeof e && (i = "POST"), 3974 a.length > 0 && y.ajax({ 3975 url: t, 3976 type: i || "GET", 3977 dataType: "html", 3978 data: e 3979 }).done(function(t) { 3980 o = arguments, 3981 a.html(r ? y("<div>").append(y.parseHTML(t)).find(r) : t) 3982 }).always(n && function(t, e) { 3983 a.each(function() { 3984 n.apply(this, o || [t.responseText, e, t]) 3985 }) 3986 } 3987 ), 3988 this 3989 } 3990 , 3991 y.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(t, e) { 3992 y.fn[e] = function(t) { 3993 return this.on(e, t) 3994 } 3995 }), 3996 y.expr.pseudos.animated = function(t) { 3997 return y.grep(y.timers, function(e) { 3998 return t === e.elem 3999 }).length 4000 } 4001 , 4002 y.offset = { 4003 setOffset: function(t, e, n) { 4004 var r, i, o, a, s, u, l, c = y.css(t, "position"), h = y(t), d = {}; 4005 "static" === c && (t.style.position = "relative"), 4006 s = h.offset(), 4007 o = y.css(t, "top"), 4008 u = y.css(t, "left"), 4009 l = ("absolute" === c || "fixed" === c) && (o + u).indexOf("auto") > -1, 4010 l ? (r = h.position(), 4011 a = r.top, 4012 i = r.left) : (a = parseFloat(o) || 0, 4013 i = parseFloat(u) || 0), 4014 y.isFunction(e) && (e = e.call(t, n, y.extend({}, s))), 4015 null != e.top && (d.top = e.top - s.top + a), 4016 null != e.left && (d.left = e.left - s.left + i), 4017 "using"in e ? e.using.call(t, d) : h.css(d) 4018 } 4019 }, 4020 y.fn.extend({ 4021 offset: function(t) { 4022 if (arguments.length) 4023 return void 0 === t ? this : this.each(function(e) { 4024 y.offset.setOffset(this, t, e) 4025 }); 4026 var e, n, r, i, o = this[0]; 4027 return o ? o.getClientRects().length ? (r = o.getBoundingClientRect(), 4028 e = o.ownerDocument, 4029 n = e.documentElement, 4030 i = e.defaultView, 4031 { 4032 top: r.top + i.pageYOffset - n.clientTop, 4033 left: r.left + i.pageXOffset - n.clientLeft 4034 }) : { 4035 top: 0, 4036 left: 0 4037 } : void 0 4038 }, 4039 position: function() { 4040 if (this[0]) { 4041 var t, e, n = this[0], r = { 4042 top: 0, 4043 left: 0 4044 }; 4045 return "fixed" === y.css(n, "position") ? e = n.getBoundingClientRect() : (t = this.offsetParent(), 4046 e = this.offset(), 4047 S(t[0], "html") || (r = t.offset()), 4048 r = { 4049 top: r.top + y.css(t[0], "borderTopWidth", !0), 4050 left: r.left + y.css(t[0], "borderLeftWidth", !0) 4051 }), 4052 { 4053 top: e.top - r.top - y.css(n, "marginTop", !0), 4054 left: e.left - r.left - y.css(n, "marginLeft", !0) 4055 } 4056 } 4057 }, 4058 offsetParent: function() { 4059 return this.map(function() { 4060 for (var t = this.offsetParent; t && "static" === y.css(t, "position"); ) 4061 t = t.offsetParent; 4062 return t || mt 4063 }) 4064 } 4065 }), 4066 y.each({ 4067 scrollLeft: "pageXOffset", 4068 scrollTop: "pageYOffset" 4069 }, function(t, e) { 4070 var n = "pageYOffset" === e; 4071 y.fn[t] = function(r) { 4072 return B(this, function(t, r, i) { 4073 var o; 4074 return y.isWindow(t) ? o = t : 9 === t.nodeType && (o = t.defaultView), 4075 void 0 === i ? o ? o[e] : t[r] : void (o ? o.scrollTo(n ? o.pageXOffset : i, n ? i : o.pageYOffset) : t[r] = i) 4076 }, t, r, arguments.length) 4077 } 4078 }), 4079 y.each(["top", "left"], function(t, e) { 4080 y.cssHooks[e] = qt(p.pixelPosition, function(t, n) { 4081 if (n) 4082 return n = Ot(t, e), 4083 Lt.test(n) ? y(t).position()[e] + "px" : n 4084 }) 4085 }), 4086 y.each({ 4087 Height: "height", 4088 Width: "width" 4089 }, function(t, e) { 4090 y.each({
4091 padding: "inner" + t, 4092 content: e, 4093 "": "outer" + t 4094 }, function(n, r) { 4095 y.fn[r] = function(i, o) { 4096 var a = arguments.length && (n || "boolean" != typeof i) 4097 , s = n || (!0 === i || !0 === o ? "margin" : "border"); 4098 return B(this, function(e, n, i) { 4099 var o; 4100 return y.isWindow(e) ? 0 === r.indexOf("outer") ? e["inner" + t] : e.document.documentElement["client" + t] : 9 === e.nodeType ? (o = e.documentElement, 4101 Math.max(e.body["scroll" + t], o["scroll" + t], e.body["offset" + t], o["offset" + t], o["client" + t])) : void 0 === i ? y.css(e, n, s) : y.style(e, n, i, s) 4102 }, e, a ? i : void 0, a) 4103 } 4104 }) 4105 }), 4106 y.fn.extend({ 4107 bind: function(t, e, n) { 4108 return this.on(t, null, e, n) 4109 }, 4110 unbind: function(t, e) { 4111 return this.off(t, null, e) 4112 }, 4113 delegate: function(t, e, n, r) { 4114 return this.on(e, t, n, r) 4115 }, 4116 undelegate: function(t, e, n) { 4117 return 1 === arguments.length ? this.off(t, "**") : this.off(e, t || "**", n) 4118 }, 4119 holdReady: function(t) { 4120 t ? y.readyWait++ : y.ready(!0) 4121 } 4122 }), 4123 y.isArray = Array.isArray, 4124 y.parseJSON = JSON.parse, 4125 y.nodeName = S, 4126 "function" == typeof define && define.amd && define("jquery", [], function() { 4127 return y 4128 }); 4129 var Ue = t.jQuery 4130 , We = t.$; 4131 return y.noConflict = function(e) { 4132 return t.$ === y && (t.$ = We), 4133 e && t.jQuery === y && (t.jQuery = Ue), 4134 y 4135 } 4136 , 4137 e || (t.jQuery = t.$ = y), 4138 y 4139}), 4140"undefined" == typeof jQuery) 4141 throw new Error("Bootstrap's JavaScript requires jQuery"); 4142+function(t) { 4143 "use strict"; 4144 var e = t.fn.jquery.split(" ")[0].split("."); 4145 if (e[0] < 2 && e[1] < 9 || 1 == e[0] && 9 == e[1] && e[2] < 1 || e[0] > 3) 4146 throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4") 4147}(jQuery), 4148function(t) { 4149 "use strict"; 4150 function e() { 4151 var t = document.createElement("bootstrap") 4152 , e = { 4153 WebkitTransition: "webkitTransitionEnd", 4154 MozTransition: "transitionend", 4155 OTransition: "oTransitionEnd otransitionend", 4156 transition: "transitionend" 4157 }; 4158 for (var n in e) 4159 if (void 0 !== t.style[n]) 4160 return { 4161 end: e[n] 4162 }; 4163 return !1 4164 } 4165 t.fn.emulateTransitionEnd = function(e) { 4166 var n = !1 4167 , r = this; 4168 t(this).one("bsTransitionEnd", function() { 4169 n = !0 4170 }); 4171 var i = function() { 4172 n || t(r).trigger(t.support.transition.end) 4173 }; 4174 return setTimeout(i, e), 4175 this 4176 } 4177 , 4178 t(function() { 4179 t.support.transition = e(), 4180 t.support.transition && (t.event.special.bsTransitionEnd = { 4181 bindType: t.support.transition.end, 4182 delegateType: t.support.transition.end, 4183 handle: function(e) { 4184 if (t(e.target).is(this)) 4185 return e.handleObj.handler.apply(this, arguments) 4186 } 4187 }) 4188 }) 4189}(jQuery), 4190function(t) { 4191 "use strict"; 4192 var e = '[data-dismiss="alert"]' 4193 , n = function(n) { 4194 t(n).on("click", e, this.close) 4195 }; 4196 n.VERSION = "3.3.7", 4197 n.TRANSITION_DURATION = 150, 4198 n.prototype.close = function(e) { 4199 var r = t(this) 4200 , i = r.attr("data-target"); 4201 i || (i = r.attr("href"), 4202 i = i && i.replace(/.*(?=#[^\s]*$)/, "")); 4203 var o = t("#" === i ? [] : i); 4204 e && e.preventDefault(), 4205 o.length || (o = r.closest(".alert")), 4206 o.trigger(e = t.Event("close.bs.alert")); 4207 function a() { 4208 o.detach().trigger("closed.bs.alert").remove() 4209 } 4210 e.isDefaultPrevented() || (o.removeClass("in"), 4211 t.support.transition && o.hasClass("fade") ? o.one("bsTransitionEnd", a).emulateTransitionEnd(n.TRANSITION_DURATION) : a()) 4212 } 4213 ; 4214 function r(e) { 4215 return this.each(function() { 4216 var r = t(this) 4217 , i = r.data("bs.alert"); 4218 i || r.data("bs.alert", i = new n(this)), 4219 "string" == typeof e && i[e].call(r) 4220 }) 4221 } 4222 var i = t.fn.alert; 4223 t.fn.alert = r, 4224 t.fn.alert.Constructor = n, 4225 t.fn.alert.noConflict = function() { 4226 return t.fn.alert = i, 4227 this 4228 } 4229 , 4230 t(document).on("click.bs.alert.data-api", e, n.prototype.close) 4231}(jQuery), 4232function(t) { 4233 "use strict"; 4234 var e = function(n, r) { 4235 this.$element = t(n), 4236 this.options = t.extend({}, e.DEFAULTS, r), 4237 this.isLoading = !1 4238 }; 4239 e.VERSION = "3.3.7", 4240 e.DEFAULTS = { 4241 loadingText: "loading..." 4242 }, 4243 e.prototype.setState = function(e) { 4244 var n = "disabled" 4245 , r = this.$element 4246 , i = r.is("input") ? "val" : "html" 4247 , o = r.data(); 4248 e += "Text", 4249 null == o.resetText && r.data("resetText", r[i]()), 4250 setTimeout(t.proxy(function() { 4251 r[i](null == o[e] ? this.options[e] : o[e]), 4252 "loadingText" == e ? (this.isLoading = !0, 4253 r.addClass(n).attr(n, n).prop(n, !0)) : this.isLoading && (this.isLoading = !1, 4254 r.removeClass(n).removeAttr(n).prop(n, !1)) 4255 }, this), 0) 4256 } 4257 , 4258 e.prototype.toggle = function() { 4259 var t = !0 4260 , e = this.$element.closest('[data-toggle="buttons"]'); 4261 if (e.length) { 4262 var n = this.$element.find("input"); 4263 "radio" == n.prop("type") ? (n.prop("checked") && (t = !1), 4264 e.find(".active").removeClass("active"), 4265 this.$element.addClass("active")) : "checkbox" == n.prop("type") && (n.prop("checked") !== this.$element.hasClass("active") && (t = !1), 4266 this.$element.toggleClass("active")), 4267 n.prop("checked", this.$element.hasClass("active")), 4268 t && n.trigger("change") 4269 } else 4270 this.$element.attr("aria-pressed", !this.$element.hasClass("active")), 4271 this.$element.toggleClass("active") 4272 } 4273 ; 4274 function n(n) { 4275 return this.each(function() { 4276 var r = t(this) 4277 , i = r.data("bs.button") 4278 , o = "object" == typeof n && n; 4279 i || r.data("bs.button", i = new e(this,o)), 4280 "toggle" == n ? i.toggle() : n && i.setState(n) 4281 }) 4282 } 4283 var r = t.fn.button; 4284 t.fn.button = n, 4285 t.fn.button.Constructor = e, 4286 t.fn.button.noConflict = function() { 4287 return t.fn.button = r, 4288 this 4289 } 4290 , 4291 t(document).on("click.bs.button.data-api", '[data-toggle^="button"]', function(e) { 4292 var r = t(e.target).closest(".btn"); 4293 n.call(r, "toggle"), 4294 t(e.target).is('input[type="radio"], input[type="checkbox"]') || (e.preventDefault(), 4295 r.is("input,button") ? r.trigger("focus") : r.find("input:visible,button:visible").first().trigger("focus")) 4296 }).on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', function(e) { 4297 t(e.target).closest(".btn").toggleClass("focus", /^focus(in)?$/.test(e.type)) 4298 }) 4299}(jQuery), 4300function(t) { 4301 "use strict"; 4302 var e = function(e, n) { 4303 this.$element = t(e), 4304 this.$indicators = this.$element.find(".carousel-indicators"), 4305 this.options = n, 4306 this.paused = null, 4307 this.sliding = null, 4308 this.interval = null, 4309 this.$active = null, 4310 this.$items = null,
vendor: 39,098 bytes, lines 4311-5346
4311 this.options.keyboard && this.$element.on("keydown.bs.carousel", t.proxy(this.keydown, this)), 4312 "hover" == this.options.pause && !("ontouchstart"in document.documentElement) && this.$element.on("mouseenter.bs.carousel", t.proxy(this.pause, this)).on("mouseleave.bs.carousel", t.proxy(this.cycle, this)) 4313 }; 4314 e.VERSION = "3.3.7", 4315 e.TRANSITION_DURATION = 600, 4316 e.DEFAULTS = { 4317 interval: 5e3, 4318 pause: "hover", 4319 wrap: !0, 4320 keyboard: !0 4321 }, 4322 e.prototype.keydown = function(t) { 4323 if (!/input|textarea/i.test(t.target.tagName)) { 4324 switch (t.which) { 4325 case 37: 4326 this.prev(); 4327 break; 4328 case 39: 4329 this.next(); 4330 break; 4331 default: 4332 return 4333 } 4334 t.preventDefault() 4335 } 4336 } 4337 , 4338 e.prototype.cycle = function(e) { 4339 return e || (this.paused = !1), 4340 this.interval && clearInterval(this.interval), 4341 this.options.interval && !this.paused && (this.interval = setInterval(t.proxy(this.next, this), this.options.interval)), 4342 this 4343 } 4344 , 4345 e.prototype.getItemIndex = function(t) { 4346 return this.$items = t.parent().children(".item"), 4347 this.$items.index(t || this.$active) 4348 } 4349 , 4350 e.prototype.getItemForDirection = function(t, e) { 4351 var n = this.getItemIndex(e); 4352 if (("prev" == t && 0 === n || "next" == t && n == this.$items.length - 1) && !this.options.wrap) 4353 return e; 4354 var r = "prev" == t ? -1 : 1 4355 , i = (n + r) % this.$items.length; 4356 return this.$items.eq(i) 4357 } 4358 , 4359 e.prototype.to = function(t) { 4360 var e = this 4361 , n = this.getItemIndex(this.$active = this.$element.find(".item.active")); 4362 if (!(t > this.$items.length - 1 || t < 0)) 4363 return this.sliding ? this.$element.one("slid.bs.carousel", function() { 4364 e.to(t) 4365 }) : n == t ? this.pause().cycle() : this.slide(t > n ? "next" : "prev", this.$items.eq(t)) 4366 } 4367 , 4368 e.prototype.pause = function(e) { 4369 return e || (this.paused = !0), 4370 this.$element.find(".next, .prev").length && t.support.transition && (this.$element.trigger(t.support.transition.end), 4371 this.cycle(!0)), 4372 this.interval = clearInterval(this.interval), 4373 this 4374 } 4375 , 4376 e.prototype.next = function() { 4377 if (!this.sliding) 4378 return this.slide("next") 4379 } 4380 , 4381 e.prototype.prev = function() { 4382 if (!this.sliding) 4383 return this.slide("prev") 4384 } 4385 , 4386 e.prototype.slide = function(n, r) { 4387 var i = this.$element.find(".item.active") 4388 , o = r || this.getItemForDirection(n, i) 4389 , a = this.interval 4390 , s = "next" == n ? "left" : "right" 4391 , u = this; 4392 if (o.hasClass("active")) 4393 return this.sliding = !1; 4394 var l = o[0] 4395 , c = t.Event("slide.bs.carousel", { 4396 relatedTarget: l, 4397 direction: s 4398 }); 4399 if (this.$element.trigger(c), 4400 !c.isDefaultPrevented()) { 4401 if (this.sliding = !0, 4402 a && this.pause(), 4403 this.$indicators.length) { 4404 this.$indicators.find(".active").removeClass("active"); 4405 var h = t(this.$indicators.children()[this.getItemIndex(o)]); 4406 h && h.addClass("active") 4407 } 4408 var d = t.Event("slid.bs.carousel", { 4409 relatedTarget: l, 4410 direction: s 4411 }); 4412 return t.support.transition && this.$element.hasClass("slide") ? (o.addClass(n), 4413 o[0].offsetWidth, 4414 i.addClass(s), 4415 o.addClass(s), 4416 i.one("bsTransitionEnd", function() { 4417 o.removeClass([n, s].join(" ")).addClass("active"), 4418 i.removeClass(["active", s].join(" ")), 4419 u.sliding = !1, 4420 setTimeout(function() { 4421 u.$element.trigger(d) 4422 }, 0) 4423 }).emulateTransitionEnd(e.TRANSITION_DURATION)) : (i.removeClass("active"), 4424 o.addClass("active"), 4425 this.sliding = !1, 4426 this.$element.trigger(d)), 4427 a && this.cycle(), 4428 this 4429 } 4430 } 4431 ; 4432 function n(n) { 4433 return this.each(function() { 4434 var r = t(this) 4435 , i = r.data("bs.carousel") 4436 , o = t.extend({}, e.DEFAULTS, r.data(), "object" == typeof n && n) 4437 , a = "string" == typeof n ? n : o.slide; 4438 i || r.data("bs.carousel", i = new e(this,o)), 4439 "number" == typeof n ? i.to(n) : a ? i[a]() : o.interval && i.pause().cycle() 4440 }) 4441 } 4442 var r = t.fn.carousel; 4443 t.fn.carousel = n, 4444 t.fn.carousel.Constructor = e, 4445 t.fn.carousel.noConflict = function() { 4446 return t.fn.carousel = r, 4447 this 4448 } 4449 ; 4450 var i = function(e) { 4451 var r, i = t(this), o = t(i.attr("data-target") || (r = i.attr("href")) && r.replace(/.*(?=#[^\s]+$)/, "")); 4452 if (o.hasClass("carousel")) { 4453 var a = t.extend({}, o.data(), i.data()) 4454 , s = i.attr("data-slide-to"); 4455 s && (a.interval = !1), 4456 n.call(o, a), 4457 s && o.data("bs.carousel").to(s), 4458 e.preventDefault() 4459 } 4460 }; 4461 t(document).on("click.bs.carousel.data-api", "[data-slide]", i).on("click.bs.carousel.data-api", "[data-slide-to]", i), 4462 t(window).on("load", function() { 4463 t('[data-ride="carousel"]').each(function() { 4464 var e = t(this); 4465 n.call(e, e.data()) 4466 }) 4467 }) 4468}(jQuery), 4469function(t) { 4470 "use strict"; 4471 var e = function(n, r) { 4472 this.$element = t(n), 4473 this.options = t.extend({}, e.DEFAULTS, r), 4474 this.$trigger = t('[data-toggle="collapse"][href="#' + n.id + '"],[data-toggle="collapse"][data-target="#' + n.id + '"]'), 4475 this.transitioning = null, 4476 this.options.parent ? this.$parent = this.getParent() : this.addAriaAndCollapsedClass(this.$element, this.$trigger), 4477 this.options.toggle && this.toggle() 4478 }; 4479 e.VERSION = "3.3.7", 4480 e.TRANSITION_DURATION = 350, 4481 e.DEFAULTS = { 4482 toggle: !0 4483 }, 4484 e.prototype.dimension = function() { 4485 return this.$element.hasClass("width") ? "width" : "height" 4486 } 4487 , 4488 e.prototype.show = function() { 4489 if (!this.transitioning && !this.$element.hasClass("in")) { 4490 var n, i = this.$parent && this.$parent.children(".panel").children(".in, .collapsing"); 4491 if (!(i && i.length && (n = i.data("bs.collapse")) && n.transitioning)) { 4492 var o = t.Event("show.bs.collapse"); 4493 if (this.$element.trigger(o), 4494 !o.isDefaultPrevented()) { 4495 i && i.length && (r.call(i, "hide"), 4496 n || i.data("bs.collapse", null)); 4497 var a = this.dimension(); 4498 this.$element.removeClass("collapse").addClass("collapsing")[a](0).attr("aria-expanded", !0), 4499 this.$trigger.removeClass("collapsed").attr("aria-expanded", !0), 4500 this.transitioning = 1; 4501 var s = function() { 4502 this.$element.removeClass("collapsing").addClass("collapse in")[a](""), 4503 this.transitioning = 0, 4504 this.$element.trigger("shown.bs.collapse") 4505 }; 4506 if (!t.support.transition) 4507 return s.call(this); 4508 var u = t.camelCase(["scroll", a].join("-")); 4509 this.$element.one("bsTransitionEnd", t.proxy(s, this)).emulateTransitionEnd(e.TRANSITION_DURATION)[a](this.$element[0][u]) 4510 } 4511 } 4512 } 4513 } 4514 , 4515 e.prototype.hide = function() { 4516 if (!this.transitioning && this.$element.hasClass("in")) { 4517 var n = t.Event("hide.bs.collapse"); 4518 if (this.$element.trigger(n), 4519 !n.isDefaultPrevented()) { 4520 var r = this.dimension(); 4521 this.$element[r](this.$element[r]())[0].offsetHeight, 4522 this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded", !1), 4523 this.$trigger.addClass("collapsed").attr("aria-expanded", !1), 4524 this.transitioning = 1; 4525 var i = function() { 4526 this.transitioning = 0, 4527 this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse") 4528 }; 4529 if (!t.support.transition) 4530 return i.call(this); 4531 this.$element[r](0).one("bsTransitionEnd", t.proxy(i, this)).emulateTransitionEnd(e.TRANSITION_DURATION) 4532 } 4533 } 4534 } 4535 , 4536 e.prototype.toggle = function() { 4537 this[this.$element.hasClass("in") ? "hide" : "show"]() 4538 } 4539 , 4540 e.prototype.getParent = function() { 4541 return t(this.options.parent).find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]').each(t.proxy(function(e, r) { 4542 var i = t(r); 4543 this.addAriaAndCollapsedClass(n(i), i) 4544 }, this)).end() 4545 } 4546 , 4547 e.prototype.addAriaAndCollapsedClass = function(t, e) { 4548 var n = t.hasClass("in"); 4549 t.attr("aria-expanded", n), 4550 e.toggleClass("collapsed", !n).attr("aria-expanded", n) 4551 } 4552 ; 4553 function n(e) { 4554 var n, r = e.attr("data-target") || (n = e.attr("href")) && n.replace(/.*(?=#[^\s]+$)/, ""); 4555 return t(r) 4556 } 4557 function r(n) { 4558 return this.each(function() { 4559 var r = t(this) 4560 , i = r.data("bs.collapse") 4561 , o = t.extend({}, e.DEFAULTS, r.data(), "object" == typeof n && n); 4562 !i && o.toggle && /show|hide/.test(n) && (o.toggle = !1), 4563 i || r.data("bs.collapse", i = new e(this,o)), 4564 "string" == typeof n && i[n]() 4565 }) 4566 } 4567 var i = t.fn.collapse; 4568 t.fn.collapse = r, 4569 t.fn.collapse.Constructor = e, 4570 t.fn.collapse.noConflict = function() { 4571 return t.fn.collapse = i, 4572 this 4573 } 4574 , 4575 t(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', function(e) { 4576 var i = t(this); 4577 i.attr("data-target") || e.preventDefault(); 4578 var o = n(i) 4579 , a = o.data("bs.collapse") 4580 , s = a ? "toggle" : i.data(); 4581 r.call(o, s) 4582 }) 4583}(jQuery), 4584function(t) { 4585 "use strict"; 4586 var e = ".dropdown-backdrop" 4587 , n = '[data-toggle="dropdown"]' 4588 , r = function(e) { 4589 t(e).on("click.bs.dropdown", this.toggle) 4590 }; 4591 r.VERSION = "3.3.7"; 4592 function i(e) { 4593 var n = e.attr("data-target"); 4594 n || (n = e.attr("href"), 4595 n = n && /#[A-Za-z]/.test(n) && n.replace(/.*(?=#[^\s]*$)/, "")); 4596 var r = n && t(n); 4597 return r && r.length ? r : e.parent() 4598 } 4599 function o(r) { 4600 r && 3 === r.which || (t(e).remove(), 4601 t(n).each(function() { 4602 var e = t(this) 4603 , n = i(e) 4604 , o = { 4605 relatedTarget: this 4606 }; 4607 n.hasClass("open") && (r && "click" == r.type && /input|textarea/i.test(r.target.tagName) && t.contains(n[0], r.target) || (n.trigger(r = t.Event("hide.bs.dropdown", o)), 4608 r.isDefaultPrevented() || (e.attr("aria-expanded", "false"), 4609 n.removeClass("open").trigger(t.Event("hidden.bs.dropdown", o))))) 4610 })) 4611 } 4612 r.prototype.toggle = function(e) { 4613 var n = t(this); 4614 if (!n.is(".disabled, :disabled")) { 4615 var r = i(n) 4616 , a = r.hasClass("open"); 4617 if (o(), 4618 !a) { 4619 "ontouchstart"in document.documentElement && !r.closest(".navbar-nav").length && t(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(t(this)).on("click", o); 4620 var s = { 4621 relatedTarget: this 4622 }; 4623 if (r.trigger(e = t.Event("show.bs.dropdown", s)), 4624 e.isDefaultPrevented()) 4625 return; 4626 n.trigger("focus").attr("aria-expanded", "true"), 4627 r.toggleClass("open").trigger(t.Event("shown.bs.dropdown", s)) 4628 } 4629 return !1 4630 } 4631 } 4632 , 4633 r.prototype.keydown = function(e) { 4634 if (/(38|40|27|32)/.test(e.which) && !/input|textarea/i.test(e.target.tagName)) { 4635 var r = t(this); 4636 if (e.preventDefault(), 4637 e.stopPropagation(), 4638 !r.is(".disabled, :disabled")) { 4639 var o = i(r) 4640 , a = o.hasClass("open"); 4641 if (!a && 27 != e.which || a && 27 == e.which) 4642 return 27 == e.which && o.find(n).trigger("focus"), 4643 r.trigger("click"); 4644 var s = o.find(".dropdown-menu li:not(.disabled):visible a"); 4645 if (s.length) { 4646 var u = s.index(e.target); 4647 38 == e.which && u > 0 && u--, 4648 40 == e.which && u < s.length - 1 && u++, 4649 ~u || (u = 0), 4650 s.eq(u).trigger("focus") 4651 } 4652 } 4653 } 4654 } 4655 ; 4656 function a(e) { 4657 return this.each(function() { 4658 var n = t(this) 4659 , i = n.data("bs.dropdown"); 4660 i || n.data("bs.dropdown", i = new r(this)), 4661 "string" == typeof e && i[e].call(n) 4662 }) 4663 } 4664 var s = t.fn.dropdown; 4665 t.fn.dropdown = a, 4666 t.fn.dropdown.Constructor = r, 4667 t.fn.dropdown.noConflict = function() { 4668 return t.fn.dropdown = s, 4669 this 4670 } 4671 , 4672 t(document).on("click.bs.dropdown.data-api", o).on("click.bs.dropdown.data-api", ".dropdown form", function(t) { 4673 t.stopPropagation() 4674 }).on("click.bs.dropdown.data-api", n, r.prototype.toggle).on("keydown.bs.dropdown.data-api", n, r.prototype.keydown).on("keydown.bs.dropdown.data-api", ".dropdown-menu", r.prototype.keydown) 4675}(jQuery), 4676function(t) { 4677 "use strict"; 4678 var e = function(e, n) { 4679 this.options = n, 4680 this.$body = t(document.body), 4681 this.$element = t(e), 4682 this.$dialog = this.$element.find(".modal-dialog"), 4683 this.$backdrop = null, 4684 this.isShown = null, 4685 this.originalBodyPad = null, 4686 this.scrollbarWidth = 0, 4687 this.ignoreBackdropClick = !1, 4688 this.options.remote && this.$element.find(".modal-content").load(this.options.remote, t.proxy(function() { 4689 this.$element.trigger("loaded.bs.modal") 4690 }, this)) 4691 }; 4692 e.VERSION = "3.3.7", 4693 e.TRANSITION_DURATION = 300, 4694 e.BACKDROP_TRANSITION_DURATION = 150, 4695 e.DEFAULTS = { 4696 backdrop: !0, 4697 keyboard: !0, 4698 show: !0 4699 }, 4700 e.prototype.toggle = function(t) { 4701 return this.isShown ? this.hide() : this.show(t) 4702 } 4703 , 4704 e.prototype.show = function(n) { 4705 var r = this 4706 , i = t.Event("show.bs.modal", { 4707 relatedTarget: n 4708 }); 4709 this.$element.trigger(i), 4710 this.isShown || i.isDefaultPrevented() || (this.isShown = !0, 4711 this.checkScrollbar(), 4712 this.setScrollbar(), 4713 this.$body.addClass("modal-open"), 4714 this.escape(), 4715 this.resize(), 4716 this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', t.proxy(this.hide, this)), 4717 this.$dialog.on("mousedown.dismiss.bs.modal", function() { 4718 r.$element.one("mouseup.dismiss.bs.modal", function(e) { 4719 t(e.target).is(r.$element) && (r.ignoreBackdropClick = !0) 4720 }) 4721 }), 4722 this.backdrop(function() { 4723 var i = t.support.transition && r.$element.hasClass("fade"); 4724 r.$element.parent().length || r.$element.appendTo(r.$body), 4725 r.$element.show().scrollTop(0), 4726 r.adjustDialog(), 4727 i && r.$element[0].offsetWidth, 4728 r.$element.addClass("in"), 4729 r.enforceFocus(); 4730 var o = t.Event("shown.bs.modal", { 4731 relatedTarget: n 4732 }); 4733 i ? r.$dialog.one("bsTransitionEnd", function() { 4734 r.$element.trigger("focus").trigger(o) 4735 }).emulateTransitionEnd(e.TRANSITION_DURATION) : r.$element.trigger("focus").trigger(o) 4736 })) 4737 } 4738 , 4739 e.prototype.hide = function(n) { 4740 n && n.preventDefault(), 4741 n = t.Event("hide.bs.modal"), 4742 this.$element.trigger(n), 4743 this.isShown && !n.isDefaultPrevented() && (this.isShown = !1, 4744 this.escape(), 4745 this.resize(), 4746 t(document).off("focusin.bs.modal"), 4747 this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"), 4748 this.$dialog.off("mousedown.dismiss.bs.modal"), 4749 t.support.transition && this.$element.hasClass("fade") ? this.$element.one("bsTransitionEnd", t.proxy(this.hideModal, this)).emulateTransitionEnd(e.TRANSITION_DURATION) : this.hideModal()) 4750 } 4751 , 4752 e.prototype.enforceFocus = function() { 4753 t(document).off("focusin.bs.modal").on("focusin.bs.modal", t.proxy(function(t) { 4754 document === t.target || this.$element[0] === t.target || this.$element.has(t.target).length || this.$element.trigger("focus") 4755 }, this)) 4756 } 4757 , 4758 e.prototype.escape = function() { 4759 this.isShown && this.options.keyboard ? this.$element.on("keydown.dismiss.bs.modal", t.proxy(function(t) { 4760 27 == t.which && this.hide() 4761 }, this)) : this.isShown || this.$element.off("keydown.dismiss.bs.modal") 4762 } 4763 , 4764 e.prototype.resize = function() { 4765 this.isShown ? t(window).on("resize.bs.modal", t.proxy(this.handleUpdate, this)) : t(window).off("resize.bs.modal") 4766 } 4767 , 4768 e.prototype.hideModal = function() { 4769 var t = this; 4770 this.$element.hide(), 4771 this.backdrop(function() { 4772 t.$body.removeClass("modal-open"), 4773 t.resetAdjustments(), 4774 t.resetScrollbar(), 4775 t.$element.trigger("hidden.bs.modal") 4776 }) 4777 } 4778 , 4779 e.prototype.removeBackdrop = function() { 4780 this.$backdrop && this.$backdrop.remove(), 4781 this.$backdrop = null 4782 } 4783 , 4784 e.prototype.backdrop = function(n) { 4785 var r = this 4786 , i = this.$element.hasClass("fade") ? "fade" : ""; 4787 if (this.isShown && this.options.backdrop) { 4788 var o = t.support.transition && i; 4789 if (this.$backdrop = t(document.createElement("div")).addClass("modal-backdrop " + i).appendTo(this.$body), 4790 this.$element.on("click.dismiss.bs.modal", t.proxy(function(t) { 4791 if (this.ignoreBackdropClick) 4792 return void (this.ignoreBackdropClick = !1); 4793 t.target === t.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus() : this.hide()) 4794 }, this)), 4795 o && this.$backdrop[0].offsetWidth, 4796 this.$backdrop.addClass("in"), 4797 !n) 4798 return; 4799 o ? this.$backdrop.one("bsTransitionEnd", n).emulateTransitionEnd(e.BACKDROP_TRANSITION_DURATION) : n() 4800 } else if (!this.isShown && this.$backdrop) { 4801 this.$backdrop.removeClass("in"); 4802 var a = function() { 4803 r.removeBackdrop(), 4804 n && n() 4805 }; 4806 t.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one("bsTransitionEnd", a).emulateTransitionEnd(e.BACKDROP_TRANSITION_DURATION) : a() 4807 } else 4808 n && n() 4809 } 4810 , 4811 e.prototype.handleUpdate = function() { 4812 this.adjustDialog() 4813 } 4814 , 4815 e.prototype.adjustDialog = function() { 4816 var t = this.$element[0].scrollHeight > document.documentElement.clientHeight; 4817 this.$element.css({ 4818 paddingLeft: !this.bodyIsOverflowing && t ? this.scrollbarWidth : "", 4819 paddingRight: this.bodyIsOverflowing && !t ? this.scrollbarWidth : "" 4820 }) 4821 } 4822 , 4823 e.prototype.resetAdjustments = function() { 4824 this.$element.css({ 4825 paddingLeft: "", 4826 paddingRight: "" 4827 }) 4828 } 4829 , 4830 e.prototype.checkScrollbar = function() { 4831 var t = window.innerWidth; 4832 if (!t) { 4833 var e = document.documentElement.getBoundingClientRect(); 4834 t = e.right - Math.abs(e.left) 4835 } 4836 this.bodyIsOverflowing = document.body.clientWidth < t, 4837 this.scrollbarWidth = this.measureScrollbar() 4838 } 4839 , 4840 e.prototype.setScrollbar = function() { 4841 var t = parseInt(this.$body.css("padding-right") || 0, 10); 4842 this.originalBodyPad = document.body.style.paddingRight || "", 4843 this.bodyIsOverflowing && this.$body.css("padding-right", t + this.scrollbarWidth) 4844 } 4845 , 4846 e.prototype.resetScrollbar = function() { 4847 this.$body.css("padding-right", this.originalBodyPad) 4848 } 4849 , 4850 e.prototype.measureScrollbar = function() { 4851 var t = document.createElement("div"); 4852 t.className = "modal-scrollbar-measure", 4853 this.$body.append(t); 4854 var e = t.offsetWidth - t.clientWidth; 4855 return this.$body[0].removeChild(t), 4856 e 4857 } 4858 ; 4859 function n(n, r) { 4860 return this.each(function() { 4861 var i = t(this) 4862 , o = i.data("bs.modal") 4863 , a = t.extend({}, e.DEFAULTS, i.data(), "object" == typeof n && n); 4864 o || i.data("bs.modal", o = new e(this,a)), 4865 "string" == typeof n ? o[n](r) : a.show && o.show(r) 4866 }) 4867 } 4868 var r = t.fn.modal; 4869 t.fn.modal = n, 4870 t.fn.modal.Constructor = e, 4871 t.fn.modal.noConflict = function() { 4872 return t.fn.modal = r, 4873 this 4874 } 4875 , 4876 t(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function(e) { 4877 var r = t(this) 4878 , i = r.attr("href") 4879 , o = t(r.attr("data-target") || i && i.replace(/.*(?=#[^\s]+$)/, "")) 4880 , a = o.data("bs.modal") ? "toggle" : t.extend({ 4881 remote: !/#/.test(i) && i 4882 }, o.data(), r.data()); 4883 r.is("a") && e.preventDefault(), 4884 o.one("show.bs.modal", function(t) { 4885 t.isDefaultPrevented() || o.one("hidden.bs.modal", function() { 4886 r.is(":visible") && r.trigger("focus") 4887 }) 4888 }), 4889 n.call(o, a, this) 4890 }) 4891}(jQuery), 4892function(t) { 4893 "use strict"; 4894 var e = function(t, e) { 4895 this.type = null, 4896 this.options = null, 4897 this.enabled = null, 4898 this.timeout = null, 4899 this.hoverState = null, 4900 this.$element = null, 4901 this.inState = null, 4902 this.init("tooltip", t, e) 4903 }; 4904 e.VERSION = "3.3.7", 4905 e.TRANSITION_DURATION = 150, 4906 e.DEFAULTS = { 4907 animation: !0, 4908 placement: "top", 4909 selector: !1, 4910 template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', 4911 trigger: "hover focus", 4912 title: "", 4913 delay: 0, 4914 html: !1, 4915 container: !1, 4916 viewport: { 4917 selector: "body", 4918 padding: 0 4919 } 4920 }, 4921 e.prototype.init = function(e, n, r) { 4922 if (this.enabled = !0, 4923 this.type = e, 4924 this.$element = t(n), 4925 this.options = this.getOptions(r), 4926 this.$viewport = this.options.viewport && t(t.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : this.options.viewport.selector || this.options.viewport), 4927 this.inState = { 4928 click: !1, 4929 hover: !1, 4930 focus: !1 4931 }, 4932 this.$element[0]instanceof document.constructor && !this.options.selector) 4933 throw new Error("`selector` option must be specified when initializing " + this.type + " on the window.document object!"); 4934 for (var i = this.options.trigger.split(" "), o = i.length; o--; ) { 4935 var a = i[o]; 4936 if ("click" == a) 4937 this.$element.on("click." + this.type, this.options.selector, t.proxy(this.toggle, this)); 4938 else if ("manual" != a) { 4939 var s = "hover" == a ? "mouseenter" : "focusin" 4940 , u = "hover" == a ? "mouseleave" : "focusout"; 4941 this.$element.on(s + "." + this.type, this.options.selector, t.proxy(this.enter, this)), 4942 this.$element.on(u + "." + this.type, this.options.selector, t.proxy(this.leave, this)) 4943 } 4944 } 4945 this.options.selector ? this._options = t.extend({}, this.options, { 4946 trigger: "manual", 4947 selector: "" 4948 }) : this.fixTitle() 4949 } 4950 , 4951 e.prototype.getDefaults = function() { 4952 return e.DEFAULTS 4953 } 4954 , 4955 e.prototype.getOptions = function(e) { 4956 return e = t.extend({}, this.getDefaults(), this.$element.data(), e), 4957 e.delay && "number" == typeof e.delay && (e.delay = { 4958 show: e.delay, 4959 hide: e.delay 4960 }), 4961 e 4962 } 4963 , 4964 e.prototype.getDelegateOptions = function() { 4965 var e = {} 4966 , n = this.getDefaults(); 4967 return this._options && t.each(this._options, function(t, r) { 4968 n[t] != r && (e[t] = r) 4969 }), 4970 e 4971 } 4972 , 4973 e.prototype.enter = function(e) { 4974 var n = e instanceof this.constructor ? e : t(e.currentTarget).data("bs." + this.type); 4975 return n || (n = new this.constructor(e.currentTarget,this.getDelegateOptions()), 4976 t(e.currentTarget).data("bs." + this.type, n)), 4977 e instanceof t.Event && (n.inState["focusin" == e.type ? "focus" : "hover"] = !0), 4978 n.tip().hasClass("in") || "in" == n.hoverState ? void (n.hoverState = "in") : (clearTimeout(n.timeout), 4979 n.hoverState = "in", 4980 n.options.delay && n.options.delay.show ? void (n.timeout = setTimeout(function() { 4981 "in" == n.hoverState && n.show() 4982 }, n.options.delay.show)) : n.show()) 4983 } 4984 , 4985 e.prototype.isInStateTrue = function() { 4986 for (var t in this.inState) 4987 if (this.inState[t]) 4988 return !0; 4989 return !1 4990 } 4991 , 4992 e.prototype.leave = function(e) { 4993 var n = e instanceof this.constructor ? e : t(e.currentTarget).data("bs." + this.type); 4994 if (n || (n = new this.constructor(e.currentTarget,this.getDelegateOptions()), 4995 t(e.currentTarget).data("bs." + this.type, n)), 4996 e instanceof t.Event && (n.inState["focusout" == e.type ? "focus" : "hover"] = !1), 4997 !n.isInStateTrue()) { 4998 if (clearTimeout(n.timeout), 4999 n.hoverState = "out", 5000 !n.options.delay || !n.options.delay.hide) 5001 return n.hide(); 5002 n.timeout = setTimeout(function() { 5003 "out" == n.hoverState && n.hide() 5004 }, n.options.delay.hide) 5005 } 5006 } 5007 , 5008 e.prototype.show = function() { 5009 var n = t.Event("show.bs." + this.type); 5010 if (this.hasContent() && this.enabled) { 5011 this.$element.trigger(n); 5012 var r = t.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]); 5013 if (n.isDefaultPrevented() || !r) 5014 return; 5015 var i = this 5016 , o = this.tip() 5017 , a = this.getUID(this.type); 5018 this.setContent(), 5019 o.attr("id", a), 5020 this.$element.attr("aria-describedby", a), 5021 this.options.animation && o.addClass("fade"); 5022 var s = "function" == typeof this.options.placement ? this.options.placement.call(this, o[0], this.$element[0]) : this.options.placement 5023 , u = /\s?auto?\s?/i 5024 , l = u.test(s); 5025 l && (s = s.replace(u, "") || "top"), 5026 o.detach().css({ 5027 top: 0, 5028 left: 0, 5029 display: "block" 5030 }).addClass(s).data("bs." + this.type, this), 5031 this.options.container ? o.appendTo(this.options.container) : o.insertAfter(this.$element), 5032 this.$element.trigger("inserted.bs." + this.type); 5033 var c = this.getPosition() 5034 , h = o[0].offsetWidth 5035 , d = o[0].offsetHeight; 5036 if (l) { 5037 var f = s 5038 , p = this.getPosition(this.$viewport); 5039 s = "bottom" == s && c.bottom + d > p.bottom ? "top" : "top" == s && c.top - d < p.top ? "bottom" : "right" == s && c.right + h > p.width ? "left" : "left" == s && c.left - h < p.left ? "right" : s, 5040 o.removeClass(f).addClass(s) 5041 } 5042 var g = this.getCalculatedOffset(s, c, h, d); 5043 this.applyPlacement(g, s); 5044 var m = function() { 5045 var t = i.hoverState; 5046 i.$element.trigger("shown.bs." + i.type), 5047 i.hoverState = null, 5048 "out" == t && i.leave(i) 5049 }; 5050 t.support.transition && this.$tip.hasClass("fade") ? o.one("bsTransitionEnd", m).emulateTransitionEnd(e.TRANSITION_DURATION) : m() 5051 } 5052 } 5053 , 5054 e.prototype.applyPlacement = function(e, n) { 5055 var r = this.tip() 5056 , i = r[0].offsetWidth 5057 , o = r[0].offsetHeight 5058 , a = parseInt(r.css("margin-top"), 10) 5059 , s = parseInt(r.css("margin-left"), 10); 5060 isNaN(a) && (a = 0), 5061 isNaN(s) && (s = 0), 5062 e.top += a, 5063 e.left += s, 5064 t.offset.setOffset(r[0], t.extend({ 5065 using: function(t) { 5066 r.css({ 5067 top: Math.round(t.top), 5068 left: Math.round(t.left) 5069 }) 5070 } 5071 }, e), 0), 5072 r.addClass("in"); 5073 var u = r[0].offsetWidth 5074 , l = r[0].offsetHeight; 5075 "top" == n && l != o && (e.top = e.top + o - l); 5076 var c = this.getViewportAdjustedDelta(n, e, u, l); 5077 c.left ? e.left += c.left : e.top += c.top; 5078 var h = /top|bottom/.test(n) 5079 , d = h ? 2 * c.left - i + u : 2 * c.top - o + l 5080 , f = h ? "offsetWidth" : "offsetHeight"; 5081 r.offset(e), 5082 this.replaceArrow(d, r[0][f], h) 5083 } 5084 , 5085 e.prototype.replaceArrow = function(t, e, n) { 5086 this.arrow().css(n ? "left" : "top", 50 * (1 - t / e) + "%").css(n ? "top" : "left", "") 5087 } 5088 , 5089 e.prototype.setContent = function() { 5090 var t = this.tip() 5091 , e = this.getTitle(); 5092 t.find(".tooltip-inner")[this.options.html ? "html" : "text"](e), 5093 t.removeClass("fade in top bottom left right") 5094 } 5095 , 5096 e.prototype.hide = function(n) { 5097 var r = this 5098 , i = t(this.$tip) 5099 , o = t.Event("hide.bs." + this.type); 5100 function a() { 5101 "in" != r.hoverState && i.detach(), 5102 r.$element && r.$element.removeAttr("aria-describedby").trigger("hidden.bs." + r.type), 5103 n && n() 5104 } 5105 if (this.$element.trigger(o), 5106 !o.isDefaultPrevented()) 5107 return i.removeClass("in"), 5108 t.support.transition && i.hasClass("fade") ? i.one("bsTransitionEnd", a).emulateTransitionEnd(e.TRANSITION_DURATION) : a(), 5109 this.hoverState = null, 5110 this 5111 } 5112 , 5113 e.prototype.fixTitle = function() { 5114 var t = this.$element; 5115 (t.attr("title") || "string" != typeof t.attr("data-original-title")) && t.attr("data-original-title", t.attr("title") || "").attr("title", "") 5116 } 5117 , 5118 e.prototype.hasContent = function() { 5119 return this.getTitle() 5120 } 5121 , 5122 e.prototype.getPosition = function(e) { 5123 e = e || this.$element; 5124 var n = e[0] 5125 , r = "BODY" == n.tagName 5126 , i = n.getBoundingClientRect(); 5127 null == i.width && (i = t.extend({}, i, { 5128 width: i.right - i.left, 5129 height: i.bottom - i.top 5130 })); 5131 var o = window.SVGElement && n instanceof window.SVGElement 5132 , a = r ? { 5133 top: 0, 5134 left: 0 5135 } : o ? null : e.offset() 5136 , s = { 5137 scroll: r ? document.documentElement.scrollTop || document.body.scrollTop : e.scrollTop() 5138 } 5139 , u = r ? { 5140 width: t(window).width(), 5141 height: t(window).height() 5142 } : null; 5143 return t.extend({}, i, s, u, a) 5144 } 5145 , 5146 e.prototype.getCalculatedOffset = function(t, e, n, r) { 5147 return "bottom" == t ? { 5148 top: e.top + e.height, 5149 left: e.left + e.width / 2 - n / 2 5150 } : "top" == t ? { 5151 top: e.top - r, 5152 left: e.left + e.width / 2 - n / 2 5153 } : "left" == t ? { 5154 top: e.top + e.height / 2 - r / 2, 5155 left: e.left - n 5156 } : { 5157 top: e.top + e.height / 2 - r / 2, 5158 left: e.left + e.width 5159 } 5160 } 5161 , 5162 e.prototype.getViewportAdjustedDelta = function(t, e, n, r) { 5163 var i = { 5164 top: 0, 5165 left: 0 5166 }; 5167 if (!this.$viewport) 5168 return i; 5169 var o = this.options.viewport && this.options.viewport.padding || 0 5170 , a = this.getPosition(this.$viewport); 5171 if (/right|left/.test(t)) { 5172 var s = e.top - o - a.scroll 5173 , u = e.top + o - a.scroll + r; 5174 s < a.top ? i.top = a.top - s : u > a.top + a.height && (i.top = a.top + a.height - u) 5175 } else { 5176 var l = e.left - o 5177 , c = e.left + o + n; 5178 l < a.left ? i.left = a.left - l : c > a.right && (i.left = a.left + a.width - c) 5179 } 5180 return i 5181 } 5182 , 5183 e.prototype.getTitle = function() { 5184 var t = this.$element 5185 , e = this.options; 5186 return t.attr("data-original-title") || ("function" == typeof e.title ? e.title.call(t[0]) : e.title) 5187 } 5188 , 5189 e.prototype.getUID = function(t) { 5190 do { 5191 t += ~~(1e6 * Math.random()) 5192 } while (document.getElementById(t)); 5193 return t 5194 } 5195 , 5196 e.prototype.tip = function() { 5197 if (!this.$tip && (this.$tip = t(this.options.template), 5198 1 != this.$tip.length)) 5199 throw new Error(this.type + " `template` option must consist of exactly 1 top-level element!"); 5200 return this.$tip 5201 } 5202 , 5203 e.prototype.arrow = function() { 5204 return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow") 5205 } 5206 , 5207 e.prototype.enable = function() { 5208 this.enabled = !0 5209 } 5210 , 5211 e.prototype.disable = function() { 5212 this.enabled = !1 5213 } 5214 , 5215 e.prototype.toggleEnabled = function() { 5216 this.enabled = !this.enabled 5217 } 5218 , 5219 e.prototype.toggle = function(e) { 5220 var n = this; 5221 e && ((n = t(e.currentTarget).data("bs." + this.type)) || (n = new this.constructor(e.currentTarget,this.getDelegateOptions()), 5222 t(e.currentTarget).data("bs." + this.type, n))), 5223 e ? (n.inState.click = !n.inState.click, 5224 n.isInStateTrue() ? n.enter(n) : n.leave(n)) : n.tip().hasClass("in") ? n.leave(n) : n.enter(n) 5225 } 5226 , 5227 e.prototype.destroy = function() { 5228 var t = this; 5229 clearTimeout(this.timeout), 5230 this.hide(function() { 5231 t.$element.off("." + t.type).removeData("bs." + t.type), 5232 t.$tip && t.$tip.detach(), 5233 t.$tip = null, 5234 t.$arrow = null, 5235 t.$viewport = null, 5236 t.$element = null 5237 }) 5238 } 5239 ; 5240 function n(n) { 5241 return this.each(function() { 5242 var r = t(this) 5243 , i = r.data("bs.tooltip") 5244 , o = "object" == typeof n && n; 5245 !i && /destroy|hide/.test(n) || (i || r.data("bs.tooltip", i = new e(this,o)), 5246 "string" == typeof n && i[n]()) 5247 }) 5248 } 5249 var r = t.fn.tooltip; 5250 t.fn.tooltip = n, 5251 t.fn.tooltip.Constructor = e, 5252 t.fn.tooltip.noConflict = function() { 5253 return t.fn.tooltip = r, 5254 this 5255 } 5256}(jQuery), 5257function(t) { 5258 "use strict"; 5259 var e = function(t, e) { 5260 this.init("popover", t, e) 5261 }; 5262 if (!t.fn.tooltip) 5263 throw new Error("Popover requires tooltip.js"); 5264 e.VERSION = "3.3.7", 5265 e.DEFAULTS = t.extend({}, t.fn.tooltip.Constructor.DEFAULTS, { 5266 placement: "right", 5267 trigger: "click", 5268 content: "", 5269 template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>' 5270 }), 5271 e.prototype = t.extend({}, t.fn.tooltip.Constructor.prototype), 5272 e.prototype.constructor = e, 5273 e.prototype.getDefaults = function() { 5274 return e.DEFAULTS 5275 } 5276 , 5277 e.prototype.setContent = function() { 5278 var t = this.tip() 5279 , e = this.getTitle() 5280 , n = this.getContent(); 5281 t.find(".popover-title")[this.options.html ? "html" : "text"](e), 5282 t.find(".popover-content").children().detach().end()[this.options.html ? "string" == typeof n ? "html" : "append" : "text"](n), 5283 t.removeClass("fade top bottom left right in"), 5284 t.find(".popover-title").html() || t.find(".popover-title").hide() 5285 } 5286 , 5287 e.prototype.hasContent = function() { 5288 return this.getTitle() || this.getContent() 5289 } 5290 , 5291 e.prototype.getContent = function() { 5292 var t = this.$element 5293 , e = this.options; 5294 return t.attr("data-content") || ("function" == typeof e.content ? e.content.call(t[0]) : e.content) 5295 } 5296 , 5297 e.prototype.arrow = function() { 5298 return this.$arrow = this.$arrow || this.tip().find(".arrow") 5299 } 5300 ; 5301 function n(n) { 5302 return this.each(function() { 5303 var r = t(this) 5304 , i = r.data("bs.popover") 5305 , o = "object" == typeof n && n; 5306 !i && /destroy|hide/.test(n) || (i || r.data("bs.popover", i = new e(this,o)), 5307 "string" == typeof n && i[n]()) 5308 }) 5309 } 5310 var r = t.fn.popover; 5311 t.fn.popover = n, 5312 t.fn.popover.Constructor = e, 5313 t.fn.popover.noConflict = function() { 5314 return t.fn.popover = r, 5315 this 5316 } 5317}(jQuery), 5318function(t) { 5319 "use strict"; 5320 function e(n, r) { 5321 this.$body = t(document.body), 5322 this.$scrollElement = t(t(n).is(document.body) ? window : n), 5323 this.options = t.extend({}, e.DEFAULTS, r), 5324 this.selector = (this.options.target || "") + " .nav li > a", 5325 this.offsets = [], 5326 this.targets = [], 5327 this.activeTarget = null, 5328 this.scrollHeight = 0, 5329 this.$scrollElement.on("scroll.bs.scrollspy", t.proxy(this.process, this)), 5330 this.refresh(), 5331 this.process() 5332 } 5333 e.VERSION = "3.3.7", 5334 e.DEFAULTS = { 5335 offset: 10 5336 }, 5337 e.prototype.getScrollHeight = function() { 5338 return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) 5339 } 5340 , 5341 e.prototype.refresh = function() { 5342 var e = this 5343 , n = "offset" 5344 , r = 0; 5345 this.offsets = [], 5346 this.targets = [],
vendor: 3,855 bytes, lines 5347-5453
5347 this.scrollHeight = this.getScrollHeight(), 5348 t.isWindow(this.$scrollElement[0]) || (n = "position", 5349 r = this.$scrollElement.scrollTop()), 5350 this.$body.find(this.selector).map(function() { 5351 var e = t(this) 5352 , i = e.data("target") || e.attr("href") 5353 , o = /^#./.test(i) && t(i); 5354 return o && o.length && o.is(":visible") && [[o[n]().top + r, i]] || null 5355 }).sort(function(t, e) { 5356 return t[0] - e[0] 5357 }).each(function() { 5358 e.offsets.push(this[0]), 5359 e.targets.push(this[1]) 5360 }) 5361 } 5362 , 5363 e.prototype.process = function() { 5364 var t, e = this.$scrollElement.scrollTop() + this.options.offset, n = this.getScrollHeight(), r = this.options.offset + n - this.$scrollElement.height(), i = this.offsets, o = this.targets, a = this.activeTarget; 5365 if (this.scrollHeight != n && this.refresh(), 5366 e >= r) 5367 return a != (t = o[o.length - 1]) && this.activate(t); 5368 if (a && e < i[0]) 5369 return this.activeTarget = null, 5370 this.clear(); 5371 for (t = i.length; t--; ) 5372 a != o[t] && e >= i[t] && (void 0 === i[t + 1] || e < i[t + 1]) && this.activate(o[t]) 5373 } 5374 , 5375 e.prototype.activate = function(e) { 5376 this.activeTarget = e, 5377 this.clear(); 5378 var n = this.selector + '[data-target="' + e + '"],' + this.selector + '[href="' + e + '"]' 5379 , r = t(n).parents("li").addClass("active"); 5380 r.parent(".dropdown-menu").length && (r = r.closest("li.dropdown").addClass("active")), 5381 r.trigger("activate.bs.scrollspy") 5382 } 5383 , 5384 e.prototype.clear = function() { 5385 t(this.selector).parentsUntil(this.options.target, ".active").removeClass("active") 5386 } 5387 ; 5388 function n(n) { 5389 return this.each(function() { 5390 var r = t(this) 5391 , i = r.data("bs.scrollspy") 5392 , o = "object" == typeof n && n; 5393 i || r.data("bs.scrollspy", i = new e(this,o)), 5394 "string" == typeof n && i[n]() 5395 }) 5396 } 5397 var r = t.fn.scrollspy; 5398 t.fn.scrollspy = n, 5399 t.fn.scrollspy.Constructor = e, 5400 t.fn.scrollspy.noConflict = function() { 5401 return t.fn.scrollspy = r, 5402 this 5403 } 5404 , 5405 t(window).on("load.bs.scrollspy.data-api", function() { 5406 t('[data-spy="scroll"]').each(function() { 5407 var e = t(this); 5408 n.call(e, e.data()) 5409 }) 5410 }) 5411}(jQuery), 5412function(t) { 5413 "use strict"; 5414 var e = function(e) { 5415 this.element = t(e) 5416 }; 5417 e.VERSION = "3.3.7", 5418 e.TRANSITION_DURATION = 150, 5419 e.prototype.show = function() { 5420 var e = this.element 5421 , n = e.closest("ul:not(.dropdown-menu)") 5422 , r = e.data("target"); 5423 if (r || (r = e.attr("href"), 5424 r = r && r.replace(/.*(?=#[^\s]*$)/, "")), 5425 !e.parent("li").hasClass("active")) { 5426 var i = n.find(".active:last a") 5427 , o = t.Event("hide.bs.tab", { 5428 relatedTarget: e[0] 5429 }) 5430 , a = t.Event("show.bs.tab", { 5431 relatedTarget: i[0] 5432 }); 5433 if (i.trigger(o), 5434 e.trigger(a), 5435 !a.isDefaultPrevented() && !o.isDefaultPrevented()) { 5436 var s = t(r); 5437 this.activate(e.closest("li"), n), 5438 this.activate(s, s.parent(), function() { 5439 i.trigger({ 5440 type: "hidden.bs.tab", 5441 relatedTarget: e[0] 5442 }), 5443 e.trigger({ 5444 type: "shown.bs.tab", 5445 relatedTarget: i[0] 5446 }) 5447 }) 5448 } 5449 } 5450 } 5451 , 5452 e.prototype.activate = function(n, r, i) { 5453 var o = r.find("> .active")
5454 , a = i && t.support.transition && (o.length && o.hasClass("fade") || !!r.find("> .fade").length); 5455 function s() { 5456 o.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !1), 5457 n.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded", !0), 5458 a ? (n[0].offsetWidth, 5459 n.addClass("in")) : n.removeClass("fade"), 5460 n.parent(".dropdown-menu").length && n.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !0), 5461 i && i() 5462 } 5463 o.length && a ? o.one("bsTransitionEnd", s).emulateTransitionEnd(e.TRANSITION_DURATION) : s(), 5464 o.removeClass("in") 5465 } 5466 ; 5467 function n(n) { 5468 return this.each(function() { 5469 var r = t(this) 5470 , i = r.data("bs.tab"); 5471 i || r.data("bs.tab", i = new e(this)), 5472 "string" == typeof n && i[n]() 5473 }) 5474 } 5475 var r = t.fn.tab; 5476 t.fn.tab = n, 5477 t.fn.tab.Constructor = e, 5478 t.fn.tab.noConflict = function() { 5479 return t.fn.tab = r, 5480 this 5481 } 5482 ; 5483 var i = function(e) { 5484 e.preventDefault(), 5485 n.call(t(this), "show") 5486 }; 5487 t(document).on("click.bs.tab.data-api", '[data-toggle="tab"]', i).on("click.bs.tab.data-api", '[data-toggle="pill"]', i) 5488}(jQuery), 5489function(t) { 5490 "use strict"; 5491 var e = function(n, r) { 5492 this.options = t.extend({}, e.DEFAULTS, r), 5493 this.$target = t(this.options.target).on("scroll.bs.affix.data-api", t.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", t.proxy(this.checkPositionWithEventLoop, this)), 5494 this.$element = t(n), 5495 this.affixed = null, 5496 this.unpin = null, 5497 this.pinnedOffset = null, 5498 this.checkPosition() 5499 }; 5500 e.VERSION = "3.3.7", 5501 e.RESET = "affix affix-top affix-bottom", 5502 e.DEFAULTS = { 5503 offset: 0, 5504 target: window 5505 }, 5506 e.prototype.getState = function(t, e, n, r) { 5507 var i = this.$target.scrollTop() 5508 , o = this.$element.offset() 5509 , a = this.$target.height(); 5510 if (null != n && "top" == this.affixed) 5511 return i < n && "top"; 5512 if ("bottom" == this.affixed) 5513 return null != n ? !(i + this.unpin <= o.top) && "bottom" : !(i + a <= t - r) && "bottom"; 5514 var s = null == this.affixed 5515 , u = s ? i : o.top 5516 , l = s ? a : e; 5517 return null != n && i <= n ? "top" : null != r && u + l >= t - r && "bottom" 5518 } 5519 , 5520 e.prototype.getPinnedOffset = function() { 5521 if (this.pinnedOffset) 5522 return this.pinnedOffset; 5523 this.$element.removeClass(e.RESET).addClass("affix"); 5524 var t = this.$target.scrollTop() 5525 , n = this.$element.offset(); 5526 return this.pinnedOffset = n.top - t 5527 } 5528 , 5529 e.prototype.checkPositionWithEventLoop = function() { 5530 setTimeout(t.proxy(this.checkPosition, this), 1) 5531 } 5532 , 5533 e.prototype.checkPosition = function() { 5534 if (this.$element.is(":visible")) { 5535 var n = this.$element.height() 5536 , r = this.options.offset 5537 , i = r.top 5538 , o = r.bottom 5539 , a = Math.max(t(document).height(), t(document.body).height()); 5540 "object" != typeof r && (o = i = r), 5541 "function" == typeof i && (i = r.top(this.$element)), 5542 "function" == typeof o && (o = r.bottom(this.$element)); 5543 var s = this.getState(a, n, i, o); 5544 if (this.affixed != s) { 5545 null != this.unpin && this.$element.css("top", ""); 5546 var u = "affix" + (s ? "-" + s : "") 5547 , l = t.Event(u + ".bs.affix"); 5548 if (this.$element.trigger(l), 5549 l.isDefaultPrevented()) 5550 return; 5551 this.affixed = s, 5552 this.unpin = "bottom" == s ? this.getPinnedOffset() : null, 5553 this.$element.removeClass(e.RESET).addClass(u).trigger(u.replace("affix", "affixed") + ".bs.affix") 5554 } 5555 "bottom" == s && this.$element.offset({ 5556 top: a - n - o 5557 }) 5558 } 5559 } 5560 ; 5561 function n(n) { 5562 return this.each(function() { 5563 var r = t(this) 5564 , i = r.data("bs.affix") 5565 , o = "object" == typeof n && n; 5566 i || r.data("bs.affix", i = new e(this,o)), 5567 "string" == typeof n && i[n]() 5568 }) 5569 } 5570 var r = t.fn.affix; 5571 t.fn.affix = n, 5572 t.fn.affix.Constructor = e, 5573 t.fn.affix.noConflict = function() { 5574 return t.fn.affix = r, 5575 this 5576 } 5577 , 5578 t(window).on("load", function() { 5579 t('[data-spy="affix"]').each(function() { 5580 var e = t(this) 5581 , r = e.data(); 5582 r.offset = r.offset || {}, 5583 null != r.offsetBottom && (r.offset.bottom = r.offsetBottom), 5584 null != r.offsetTop && (r.offset.top = r.offsetTop), 5585 n.call(e, r) 5586 }) 5587 }) 5588}(jQuery); 5589/*! 5590* Parsley.js 5591* Version 2.4.4 - built Thu, Aug 4th 2016, 9:54 pm 5592* http://parsleyjs.org 5593* Guillaume Potier - <[email protected]> 5594* Marc-Andre Lafortune - <[email protected]> 5595* MIT Licensed 5596*/ 5597var _slice = Array.prototype.slice; 5598function _toConsumableArray(t) { 5599 if (Array.isArray(t)) { 5600 for (var e = 0, n = Array(t.length); e < t.length; e++) 5601 n[e] = t[e]; 5602 return n 5603 } 5604 return Array.from(t) 5605} 5606if (function(t, e) { 5607 "object" == typeof exports && "undefined" != typeof module ? module.exports = e(require("jquery")) : "function" == typeof define && define.amd ? define(["jquery"], e) : t.parsley = e(t.jQuery) 5608}(this, function(t) { 5609 "use strict"; 5610 var e = 1 5611 , n = {} 5612 , r = { 5613 attr: function(t, e, n) { 5614 var r, i, o, a = new RegExp("^" + e,"i"); 5615 if (void 0 === n) 5616 n = {}; 5617 else 5618 for (r in n) 5619 n.hasOwnProperty(r) && delete n[r]; 5620 if (void 0 === t || void 0 === t[0]) 5621 return n; 5622 for (o = t[0].attributes, 5623 r = o.length; r--; ) 5624 (i = o[r]) && i.specified && a.test(i.name) && (n[this.camelize(i.name.slice(e.length))] = this.deserializeValue(i.value)); 5625 return n 5626 }, 5627 checkAttr: function(t, e, n) { 5628 return t.is("[" + e + n + "]") 5629 }, 5630 setAttr: function(t, e, n, r) { 5631 t[0].setAttribute(this.dasherize(e + n), String(r)) 5632 }, 5633 generateID: function() { 5634 return "" + e++ 5635 }, 5636 deserializeValue: function(e) { 5637 var n; 5638 try { 5639 return e ? "true" == e || "false" != e && ("null" == e ? null : isNaN(n = Number(e)) ? /^[\[\{]/.test(e) ? t.parseJSON(e)
5639: e : n) : e 5640 } catch (t) { 5641 return e 5642 } 5643 }, 5644 camelize: function(t) { 5645 return t.replace(/-+(.)?/g, function(t, e) { 5646 return e ? e.toUpperCase() : "" 5647 }) 5648 }, 5649 dasherize: function(t) { 5650 return t.replace(/::/g, "/").replace(/([A-Z]+)([A-Z][a-z])/g, "$1_$2").replace(/([a-z\d])([A-Z])/g, "$1_$2").replace(/_/g, "-").toLowerCase() 5651 }, 5652 warn: function() { 5653 var t; 5654 window.console && "function" == typeof window.console.warn && (t = window.console).warn.apply(t, arguments) 5655 }, 5656 warnOnce: function(t) { 5657 n[t] || (n[t] = !0, 5658 this.warn.apply(this, arguments)) 5659 }, 5660 _resetWarnings: function() { 5661 n = {} 5662 }, 5663 trimString: function(t) { 5664 return t.replace(/^\s+|\s+$/g, "") 5665 }, 5666 namespaceEvents: function(e, n) { 5667 return e = this.trimString(e || "").split(/\s+/), 5668 e[0] ? t.map(e, function(t) { 5669 return t + "." + n 5670 }).join(" ") : "" 5671 }, 5672 difference: function(e, n) { 5673 var r = []; 5674 return t.each(e, function(t, e) { 5675 -1 == n.indexOf(e) && r.push(e) 5676 }), 5677 r 5678 }, 5679 all: function(e) { 5680 return t.when.apply(t, _toConsumableArray(e).concat([42, 42])) 5681 }, 5682 objectCreate: Object.create || function() { 5683 var t = function() {}; 5684 return function(e) { 5685 if (arguments.length > 1) 5686 throw Error("Second argument not supported"); 5687 if ("object" != typeof e) 5688 throw TypeError("Argument must be an object"); 5689 t.prototype = e; 5690 var n = new t; 5691 return t.prototype = null, 5692 n 5693 } 5694 }(), 5695 _SubmitSelector: 'input[type="submit"], button:submit' 5696 } 5697 , i = r 5698 , o = { 5699 namespace: "data-parsley-", 5700 inputs: "input, textarea, select", 5701 excluded: "input[type=button], input[type=submit], input[type=reset], input[type=hidden]", 5702 priorityEnabled: !0, 5703 multiple: null, 5704 group: null, 5705 uiEnabled: !0, 5706 validationThreshold: 3, 5707 focus: "first", 5708 trigger: !1, 5709 triggerAfterFailure: "input", 5710 errorClass: "parsley-error", 5711 successClass: "parsley-success", 5712 classHandler: function(t) {}, 5713 errorsContainer: function(t) {}, 5714 errorsWrapper: '<ul class="parsley-errors-list"></ul>', 5715 errorTemplate: "<li></li>" 5716 } 5717 , a = function() { 5718 this.__id__ = i.generateID() 5719 }; 5720 a.prototype = { 5721 asyncSupport: !0, 5722 _pipeAccordingToValidationResult: function() { 5723 var e = this 5724 , n = function() { 5725 var n = t.Deferred(); 5726 return !0 !== e.validationResult && n.reject(), 5727 n.resolve().promise() 5728 }; 5729 return [n, n] 5730 }, 5731 actualizeOptions: function() { 5732 return i.attr(this.$element, this.options.namespace, this.domOptions), 5733 this.parent && this.parent.actualizeOptions && this.parent.actualizeOptions(), 5734 this 5735 }, 5736 _resetOptions: function(t) { 5737 this.domOptions = i.objectCreate(this.parent.options), 5738 this.options = i.objectCreate(this.domOptions); 5739 for (var e in t) 5740 t.hasOwnProperty(e) && (this.options[e] = t[e]); 5741 this.actualizeOptions() 5742 }, 5743 _listeners: null, 5744 on: function(t, e) { 5745 return this._listeners = this._listeners || {}, 5746 (this._listeners[t] = this._listeners[t] || []).push(e), 5747 this 5748 }, 5749 subscribe: function(e, n) { 5750 t.listenTo(this, e.toLowerCase(), n) 5751 }, 5752 off: function(t, e) { 5753 var n = this._listeners && this._listeners[t]; 5754 if (n) 5755 if (e) 5756 for (var r = n.length; r--; ) 5757 n[r] === e && n.splice(r, 1); 5758 else 5759 delete this._listeners[t]; 5760 return this 5761 }, 5762 unsubscribe: function(e, n) { 5763 t.unsubscribeTo(this, e.toLowerCase()) 5764 }, 5765 trigger: function(t, e, n) { 5766 e = e || this; 5767 var r, i = this._listeners && this._listeners[t]; 5768 if (i) 5769 for (var o = i.length; o--; ) 5770 if (!1 === (r = i[o].call(e, e, n))) 5771 return r; 5772 return !this.parent || this.parent.trigger(t, e, n) 5773 }, 5774 reset: function() { 5775 if ("ParsleyForm" !== this.__class__) 5776 return this._resetUI(), 5777 this._trigger("reset"); 5778 for (var t = 0; t < this.fields.length; t++) 5779 this.fields[t].reset(); 5780 this._trigger("reset") 5781 }, 5782 destroy: function() { 5783 if (this._destroyUI(), 5784 "ParsleyForm" !== this.__class__) 5785 return this.$element.removeData("Parsley"), 5786 this.$element.removeData("ParsleyFieldMultiple"), 5787 void this._trigger("destroy"); 5788 for (var t = 0; t < this.fields.length; t++) 5789 this.fields[t].destroy(); 5790 this.$element.removeData("Parsley"), 5791 this._trigger("destroy") 5792 }, 5793 asyncIsValid: function(t, e) { 5794 return i.warnOnce("asyncIsValid is deprecated; please use whenValid instead"), 5795 this.whenValid({ 5796 group: t, 5797 force: e 5798 }) 5799 }, 5800 _findRelated: function() { 5801 return this.options.multiple ? this.parent.$element.find("[" + this.options.namespace + 'multiple="' + this.options.multiple + '"]') : this.$element 5802 } 5803 }; 5804 var s = {
5805 string: function(t) { 5806 return t 5807 }, 5808 integer: function(t) { 5809 if (isNaN(t)) 5810 throw 'Requirement is not an integer: "' + t + '"'; 5811 return parseInt(t, 10) 5812 }, 5813 number: function(t) { 5814 if (isNaN(t)) 5815 throw 'Requirement is not a number: "' + t + '"'; 5816 return parseFloat(t) 5817 }, 5818 reference: function(e) { 5819 var n = t(e); 5820 if (0 === n.length) 5821 throw 'No such reference: "' + e + '"'; 5822 return n 5823 }, 5824 boolean: function(t) { 5825 return "false" !== t 5826 }, 5827 object: function(t) { 5828 return i.deserializeValue(t) 5829 }, 5830 regexp: function(t) { 5831 var e = ""; 5832 return /^\/.*\/(?:[gimy]*)$/.test(t) ? (e = t.replace(/.*\/([gimy]*)$/, "$1"), 5833 t = t.replace(new RegExp("^/(.*?)/" + e + "$"), "$1")) : t = "^" + t + "$", 5834 new RegExp(t,e) 5835 } 5836 } 5837 , u = function(t, e) { 5838 var n = t.match(/^\s*\[(.*)\]\s*$/); 5839 if (!n) 5840 throw 'Requirement is not an array: "' + t + '"'; 5841 var r = n[1].split(",").map(i.trimString); 5842 if (r.length !== e) 5843 throw "Requirement has " + r.length + " values when " + e + " are needed"; 5844 return r 5845 } 5846 , l = function(t, e) { 5847 var n = s[t || "string"]; 5848 if (!n) 5849 throw 'Unknown requirement specification: "' + t + '"'; 5850 return n(e) 5851 } 5852 , c = function(t, e, n) { 5853 var r = null 5854 , i = {}; 5855 for (var o in t) 5856 if (o) { 5857 var a = n(o); 5858 "string" == typeof a && (a = l(t[o], a)), 5859 i[o] = a 5860 } else 5861 r = l(t[o], e); 5862 return [r, i] 5863 } 5864 , h = function(e) { 5865 t.extend(!0, this, e) 5866 }; 5867 h.prototype = { 5868 validate: function(e, n) { 5869 if (this.fn) 5870 return arguments.length > 3 && (n = [].slice.call(arguments, 1, -1)), 5871 this.fn.call(this, e, n); 5872 if (t.isArray(e)) { 5873 if (!this.validateMultiple) 5874 throw "Validator `" + this.name + "` does not handle multiple values"; 5875 return this.validateMultiple.apply(this, arguments) 5876 } 5877 if (this.validateNumber) 5878 return !isNaN(e) && (arguments[0] = parseFloat(arguments[0]), 5879 this.validateNumber.apply(this, arguments)); 5880 if (this.validateString) 5881 return this.validateString.apply(this, arguments); 5882 throw "Validator `" + this.name + "` only handles multiple values" 5883 }, 5884 parseRequirements: function(e, n) { 5885 if ("string" != typeof e) 5886 return t.isArray(e) ? e : [e]; 5887 var r = this.requirementType; 5888 if (t.isArray(r)) { 5889 for (var i = u(e, r.length), o = 0; o < i.length; o++) 5890 i[o] = l(r[o], i[o]); 5891 return i 5892 } 5893 return t.isPlainObject(r) ? c(r, e, n) : [l(r, e)] 5894 }, 5895 requirementType: "string", 5896 priority: 2 5897 }; 5898 var d = function(t, e) { 5899 this.__class__ = "ParsleyValidatorRegistry", 5900 this.locale = "en", 5901 this.init(t || {}, e || {}) 5902 } 5903 , f = { 5904 email: /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i, 5905 number: /^-?(\d*\.)?\d+(e[-+]?\d+)?$/i, 5906 integer: /^-?\d+$/, 5907 digits: /^\d+$/, 5908 alphanum: /^\w+$/i, 5909 url: new RegExp("^(?:(?:https?|ftp)://)?(?:\\S+(?::\\S*)?@)?(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:/\\S*)?$","i") 5910 }; 5911 f.range = f.number; 5912 var p = function(t) { 5913 var e = ("" + t).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/); 5914 return e ? Math.max(0, (e[1] ? e[1].length : 0) - (e[2] ? +e[2] : 0)) : 0 5915 }; 5916 d.prototype = { 5917 init: function(e, n) { 5918 this.catalog = n, 5919 this.validators = t.extend({}, this.validators); 5920 for (var r in e) 5921 this.addValidator(r, e[r].fn, e[r].priority); 5922 window.Parsley.trigger("parsley:validator:init") 5923 }, 5924 setLocale: function(t) { 5925 if (void 0 === this.catalog[t]) 5926 throw new Error(t + " is not available in the catalog"); 5927 return this.locale = t, 5928 this 5929 }, 5930 addCatalog: function(t, e, n) { 5931 return "object" == typeof e && (this.catalog[t] = e), 5932 !0 === n ? this.setLocale(t) : this 5933 }, 5934 addMessage: function(t, e, n) { 5935 return void 0 === this.catalog[t] && (this.catalog[t] = {}), 5936 this.catalog[t][e] = n, 5937 this 5938 }, 5939 addMessages: function(t, e) { 5940 for (var n in e) 5941 this.addMessage(t, n, e[n]); 5942 return this 5943 }, 5944 addValidator: function(t, e, n) { 5945 if (this.validators[t]) 5946 i.warn('Validator "' + t + '" is already defined.'); 5947 else if (o.hasOwnProperty(t)) 5948 return void i.warn('"' + t + '" is a restricted keyword and is not a valid validator name.'); 5949 return this._setValidator.apply(this, arguments) 5950 },
5951 updateValidator: function(t, e, n) { 5952 return this.validators[t] ? this._setValidator.apply(this, arguments) : (i.warn('Validator "' + t + '" is not already defined.'), 5953 this.addValidator.apply(this, arguments)) 5954 }, 5955 removeValidator: function(t) { 5956 return this.validators[t] || i.warn('Validator "' + t + '" is not defined.'), 5957 delete this.validators[t], 5958 this 5959 }, 5960 _setValidator: function(t, e, n) { 5961 "object" != typeof e && (e = { 5962 fn: e, 5963 priority: n 5964 }), 5965 e.validate || (e = new h(e)), 5966 this.validators[t] = e; 5967 for (var r in e.messages || {}) 5968 this.addMessage(r, t, e.messages[r]); 5969 return this 5970 }, 5971 getErrorMessage: function(t) { 5972 var e; 5973 if ("type" === t.name) { 5974 e = (this.catalog[this.locale][t.name] || {})[t.requirements] 5975 } else 5976 e = this.formatMessage(this.catalog[this.locale][t.name], t.requirements); 5977 return e || this.catalog[this.locale].defaultMessage || this.catalog.en.defaultMessage 5978 }, 5979 formatMessage: function(t, e) { 5980 if ("object" == typeof e) { 5981 for (var n in e) 5982 t = this.formatMessage(t, e[n]); 5983 return t 5984 } 5985 return "string" == typeof t ? t.replace(/%s/i, e) : "" 5986 }, 5987 validators: { 5988 notblank: { 5989 validateString: function(t) { 5990 return /\S/.test(t) 5991 }, 5992 priority: 2 5993 }, 5994 required: { 5995 validateMultiple: function(t) { 5996 return t.length > 0 5997 }, 5998 validateString: function(t) { 5999 return /\S/.test(t) 6000 }, 6001 priority: 512 6002 }, 6003 type: { 6004 validateString: function(t, e) { 6005 var n = arguments.length <= 2 || void 0 === arguments[2] ? {} : arguments[2] 6006 , r = n.step 6007 , i = void 0 === r ? "1" : r 6008 , o = n.base 6009 , a = void 0 === o ? 0 : o 6010 , s = f[e]; 6011 if (!s) 6012 throw new Error("validator type `" + e + "` is not supported"); 6013 if (!s.test(t)) 6014 return !1; 6015 if ("number" === e && !/^any$/i.test(i || "")) { 6016 var u = Number(t) 6017 , l = Math.max(p(i), p(a)); 6018 if (p(u) > l) 6019 return !1; 6020 var c = function(t) { 6021 return Math.round(t * Math.pow(10, l)) 6022 }; 6023 if ((c(u) - c(a)) % c(i) != 0) 6024 return !1 6025 } 6026 return !0 6027 }, 6028 requirementType: { 6029 "": "string", 6030 step: "string", 6031 base: "number" 6032 }, 6033 priority: 256 6034 }, 6035 pattern: { 6036 validateString: function(t, e) { 6037 return e.test(t) 6038 }, 6039 requirementType: "regexp", 6040 priority: 64 6041 }, 6042 minlength: { 6043 validateString: function(t, e) { 6044 return t.length >= e 6045 }, 6046 requirementType: "integer", 6047 priority: 30 6048 }, 6049 maxlength: { 6050 validateString: function(t, e) { 6051 return t.length <= e 6052 }, 6053 requirementType: "integer", 6054 priority: 30 6055 }, 6056 length: { 6057 validateString: function(t, e, n) { 6058 return t.length >= e && t.length <= n 6059 }, 6060 requirementType: ["integer", "integer"], 6061 priority: 30 6062 }, 6063 mincheck: { 6064 validateMultiple: function(t, e) { 6065 return t.length >= e 6066 }, 6067 requirementType: "integer", 6068 priority: 30 6069 }, 6070 maxcheck: { 6071 validateMultiple: function(t, e) { 6072 return t.length <= e 6073 }, 6074 requirementType: "integer", 6075 priority: 30 6076 }, 6077 check: { 6078 validateMultiple: function(t, e, n) { 6079 return t.length >= e && t.length <= n 6080 }, 6081 requirementType: ["integer", "integer"], 6082 priority: 30 6083 }, 6084 min: { 6085 validateNumber: function(t, e) { 6086 return t >= e 6087 }, 6088 requirementType: "number", 6089 priority: 30 6090 }, 6091 max: { 6092 validateNumber: function(t, e) { 6093 return t <= e 6094 }, 6095 requirementType: "number", 6096 priority: 30 6097 }, 6098 range: { 6099 validateNumber: function(t, e, n) { 6100 return t >= e && t <= n 6101 }, 6102 requirementType: ["number", "number"], 6103 priority: 30 6104 }, 6105 equalto: { 6106 validateString: function(e, n) { 6107 var r = t(n); 6108 return r.length ? e === r.val() : e === n 6109 }, 6110 priority: 256 6111 } 6112 } 6113 }; 6114 var g = {} 6115 , m = function t(e, n, r) { 6116 for (var i = [], o = [], a = 0; a < e.length; a++) { 6117 for (var s = !1, u = 0; u < n.length; u++) 6118 if (e[a].assert.name === n[u].assert.name) { 6119 s = !0; 6120 break 6121 } 6122 s ? o.push(e[a]) : i.push(e[a]) 6123 } 6124 return { 6125 kept: o, 6126 added: i, 6127 removed: r ? [] : t(n, e, !0).added 6128 } 6129 }; 6130 g.Form = { 6131 _actualizeTriggers: function() { 6132 var t = this; 6133 this.$element.on("submit.Parsley", function(e) { 6134 t.onSubmitValidate(e) 6135 }), 6136 this.$element.on("click.Parsley", i._SubmitSelector, function(e) { 6137 t.onSubmitButton(e) 6138 }), 6139 !1 !== this.options.uiEnabled && this.$element.attr("novalidate", "") 6140 }, 6141 focus: function() { 6142 if (this._focusedField = null, 6143 !0 === this.validationResult || "none" === this.options.focus) 6144 return null; 6145 for (var t = 0; t < this.fields.length; t++) { 6146 var e = this.fields[t]; 6147 if (!0 !== e.validationResult && e.validationResult.length > 0 && void 0 === e.options.noFocus && (this._focusedField = e.$element, 6148 "first" === this.options.focus)) 6149 break 6150 } 6151 return null === this._focusedField ? null : this._focusedField.focus() 6152 }, 6153 _destroyUI: function() { 6154 this.$element.off(".Parsley") 6155 } 6156 }, 6157 g.Field = { 6158 _reflowUI: function() { 6159 if (this._buildUI(), 6160 this._ui) { 6161 var t = m(this.validationResult, this._ui.lastValidationResult); 6162 this._ui.lastValidationResult = this.validationResult, 6163 this._manageStatusClass(), 6164 this._manageErrorsMessages(t), 6165 this._actualizeTriggers(), 6166 !t.kept.length && !t.added.length || this._failedOnce || (this._failedOnce = !0, 6167 this._actualizeTriggers()) 6168 } 6169 }, 6170 getErrorsMessages: function() { 6171 if (!0 === this.validationResult) 6172 return []; 6173 for (var t = [], e = 0; e < this.validationResult.length; e++) 6174 t.push(this.validationResult[e].errorMessage || this._getErrorMessage(this.validationResult[e].assert)); 6175 return t 6176 }, 6177 addError: function(t) { 6178 var e = arguments.length <= 1 || void 0 === arguments[1] ? {}
6178 : arguments[1] 6179 , n = e.message 6180 , r = e.assert 6181 , i = e.updateClass 6182 , o = void 0 === i || i; 6183 this._buildUI(), 6184 this._addError(t, { 6185 message: n, 6186 assert: r 6187 }), 6188 o && this._errorClass() 6189 }, 6190 updateError: function(t) { 6191 var e = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1] 6192 , n = e.message 6193 , r = e.assert 6194 , i = e.updateClass 6195 , o = void 0 === i || i; 6196 this._buildUI(), 6197 this._updateError(t, { 6198 message: n, 6199 assert: r 6200 }), 6201 o && this._errorClass() 6202 }, 6203 removeError: function(t) { 6204 var e = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1] 6205 , n = e.updateClass 6206 , r = void 0 === n || n; 6207 this._buildUI(), 6208 this._removeError(t), 6209 r && this._manageStatusClass() 6210 }, 6211 _manageStatusClass: function() { 6212 this.hasConstraints() && this.needsValidation() && !0 === this.validationResult ? this._successClass() : this.validationResult.length > 0 ? this._errorClass() : this._resetClass() 6213 }, 6214 _manageErrorsMessages: function(e) { 6215 if (void 0 === this.options.errorsMessagesDisabled) { 6216 if (void 0 !== this.options.errorMessage) 6217 return e.added.length || e.kept.length ? (this._insertErrorWrapper(), 6218 0 === this._ui.$errorsWrapper.find(".parsley-custom-error-message").length && this._ui.$errorsWrapper.append(t(this.options.errorTemplate).addClass("parsley-custom-error-message")), 6219 this._ui.$errorsWrapper.addClass("filled").find(".parsley-custom-error-message").html(this.options.errorMessage)) : this._ui.$errorsWrapper.removeClass("filled").find(".parsley-custom-error-message").remove(); 6220 for (var n = 0; n < e.removed.length; n++) 6221 this._removeError(e.removed[n].assert.name); 6222 for (n = 0; n < e.added.length; n++) 6223 this._addError(e.added[n].assert.name, { 6224 message: e.added[n].errorMessage, 6225 assert: e.added[n].assert 6226 }); 6227 for (n = 0; n < e.kept.length; n++) 6228 this._updateError(e.kept[n].assert.name, { 6229 message: e.kept[n].errorMessage, 6230 assert: e.kept[n].assert 6231 }) 6232 } 6233 }, 6234 _addError: function(e, n) { 6235 var r = n.message 6236 , i = n.assert; 6237 this._insertErrorWrapper(), 6238 this._ui.$errorsWrapper.addClass("filled").append(t(this.options.errorTemplate).addClass("parsley-" + e).html(r || this._getErrorMessage(i))) 6239 }, 6240 _updateError: function(t, e) { 6241 var n = e.message 6242 , r = e.assert; 6243 this._ui.$errorsWrapper.addClass("filled").find(".parsley-" + t).html(n || this._getErrorMessage(r)) 6244 }, 6245 _removeError: function(t) { 6246 this._ui.$errorsWrapper.removeClass("filled").find(".parsley-" + t).remove() 6247 }, 6248 _getErrorMessage: function(t) { 6249 var e = t.name + "Message"; 6250 return void 0 !== this.options[e] ? window.Parsley.formatMessage(this.options[e], t.requirements) : window.Parsley.getErrorMessage(t) 6251 }, 6252 _buildUI: function() { 6253 if (!this._ui && !1 !== this.options.uiEnabled) { 6254 var e = {}; 6255 this.$element.attr(this.options.namespace + "id", this.__id__), 6256 e.$errorClassHandler = this._manageClassHandler(), 6257 e.errorsWrapperId = "parsley-id-" + (this.options.multiple ? "multiple-" + this.options.multiple : this.__id__), 6258 e.$errorsWrapper = t(this.options.errorsWrapper).attr("id", e.errorsWrapperId), 6259 e.lastValidationResult = [], 6260 e.validationInformationVisible = !1, 6261 this._ui = e 6262 } 6263 }, 6264 _manageClassHandler: function() { 6265 if ("string" == typeof this.options.classHandler && t(this.options.classHandler).length) 6266 return t(this.options.classHandler); 6267 var e = this.options.classHandler.call(this, this); 6268 return void 0 !== e && e.length ? e : this._inputHolder() 6269 }, 6270 _inputHolder: function() { 6271 return !this.options.multiple || this.$element.is("select") ? this.$element : this.$element.parent() 6272 }, 6273 _insertErrorWrapper: function() { 6274 var e; 6275 if (0 !== this._ui.$errorsWrapper.parent().length) 6276 return this._ui.$errorsWrapper.parent(); 6277 if ("string" == typeof this.options.errorsContainer) { 6278 if (t(this.options.errorsContainer).length) 6279 return t(this.options.errorsContainer).append(this._ui.$errorsWrapper); 6280 i.warn("The errors container `" + this.options.errorsContainer + "` does not exist in DOM") 6281 } else 6282 "function" == typeof this.options.errorsContainer && (e = this.options.errorsContainer.call(this, this)); 6283 return void 0 !== e && e.length ? e.append(this._ui.$errorsWrapper) : this._inputHolder().after(this._ui.$errorsWrapper) 6284 }, 6285 _actualizeTriggers: function() { 6286 var t, e = this, n = this._findRelated(); 6287 n.off(".Parsley"), 6288 this._failedOnce ? n.on(i.namespaceEvents(this.options.triggerAfterFailure, "Parsley"), function() { 6289 e.validate() 6290 }) : (t = i.namespaceEvents(this.options.trigger, "Parsley")) && n.on(t, function(t) { 6291 e._eventValidate(t) 6292 }) 6293 }, 6294 _eventValidate: function(t) { 6295 !(!/key|input/.test(t.type) || this._ui && this._ui.validationInformationVisible) && this.getValue().length <= this.options.validationThreshold || this.validate() 6296 }, 6297 _resetUI: function() { 6298 this._failedOnce = !1, 6299 this._actualizeTriggers(), 6300 void 0 !== this._ui && (this._ui.$errorsWrapper.removeClass("filled").children().remove(), 6301 this._resetClass(), 6302 this._ui.lastValidationResult = [], 6303 this._ui.validationInformationVisible = !1) 6304 }, 6305 _destroyUI: function() { 6306 this._resetUI(), 6307 void 0 !== this._ui && this._ui.$errorsWrapper.remove(), 6308 delete this._ui 6309 }, 6310 _successClass: function() { 6311 this._ui.validationInformationVisible = !0, 6312 this._ui.$errorClassHandler.removeClass(this.options.errorClass).addClass(this.options.successClass) 6313 }, 6314 _errorClass: function() { 6315 this._ui.validationInformationVisible = !0, 6316 this._ui.$errorClassHandler.removeClass(this.options.successClass).addClass(this.options.errorClass) 6317 }, 6318 _resetClass: function() { 6319 this._ui.$errorClassHandler.removeClass(this.options.successClass).removeClass(this.options.errorClass) 6320 } 6321 }; 6322 var y = function(e, n, r) { 6323 this.__class__ = "ParsleyForm", 6324 this.$element = t(e), 6325 this.domOptions = n, 6326 this.options = r, 6327 this.parent = window.Parsley, 6328 this.fields = [], 6329 this.validationResult = null 6330 } 6331 , v = { 6332 pending: null, 6333 resolved: !0, 6334 rejected: !1 6335 }; 6336 y.prototype = { 6337 onSubmitValidate: function(t) { 6338 var e = this; 6339 if (!0 !== t.parsley) { 6340 var n = this._$submitSource || this.$element.find(i._SubmitSelector).first(); 6341 if (this._$submitSource = null, 6342 this.$element.find(".parsley-synthetic-submit-button").prop("disabled", !0), 6343 !n.is("[formnovalidate]")) { 6344 var r = this.whenValidate({ 6345 event: t 6346 }); 6347 "resolved" === r.state() && !1 !== this._trigger("submit") || (t.stopImmediatePropagation(), 6348 t.preventDefault(), 6349 "pending" === r.state() && r.done(function() { 6350 e._submit(n) 6351 })) 6352 } 6353 } 6354 }, 6355 onSubmitButton: function(e) { 6356 this._$submitSource = t(e.currentTarget) 6357 }, 6358 _submit: function(e) { 6359 if (!1 !== this._trigger("submit")) { 6360 if (e) { 6361 var n = this.$element.find(".parsley-synthetic-submit-button").prop("disabled", !1); 6362 0 === n.length && (n = t('<input class="parsley-synthetic-submit-button" type="hidden">').appendTo(this.$element)), 6363 n.attr({ 6364 name: e.attr("name"), 6365 value: e.attr("value") 6366 }) 6367 } 6368 this.$element.trigger(t.extend(t.Event("submit"), { 6369 parsley: !0 6370 })) 6371 } 6372 }, 6373 validate: function(e) { 6374 if (arguments.length >= 1 && !t.isPlainObject(e)) { 6375 i.warnOnce("Calling validate on a parsley form without passing arguments as an object is deprecated."); 6376 var n = _slice.call(arguments); 6377 e = { 6378 group: n[0], 6379 force: n[1], 6380 event: n[2] 6381 } 6382 } 6383 return v[this.whenValidate(e).state()] 6384 }, 6385 whenValidate: function() { 6386 var e, n = this, r = arguments.length <= 0 || void 0 === arguments[0] ? {}
6386 : arguments[0], o = r.group, a = r.force, s = r.event; 6387 this.submitEvent = s, 6388 s && (this.submitEvent = t.extend({}, s, { 6389 preventDefault: function() { 6390 i.warnOnce("Using `this.submitEvent.preventDefault()` is deprecated; instead, call `this.validationResult = false`"), 6391 n.validationResult = !1 6392 } 6393 })), 6394 this.validationResult = !0, 6395 this._trigger("validate"), 6396 this._refreshFields(); 6397 var u = this._withoutReactualizingFormOptions(function() { 6398 return t.map(n.fields, function(t) { 6399 return t.whenValidate({ 6400 force: a, 6401 group: o 6402 }) 6403 }) 6404 }); 6405 return (e = i.all(u).done(function() { 6406 n._trigger("success") 6407 }).fail(function() { 6408 n.validationResult = !1, 6409 n.focus(), 6410 n._trigger("error") 6411 }).always(function() { 6412 n._trigger("validated") 6413 })).pipe.apply(e, _toConsumableArray(this._pipeAccordingToValidationResult())) 6414 }, 6415 isValid: function(e) { 6416 if (arguments.length >= 1 && !t.isPlainObject(e)) { 6417 i.warnOnce("Calling isValid on a parsley form without passing arguments as an object is deprecated."); 6418 var n = _slice.call(arguments); 6419 e = { 6420 group: n[0], 6421 force: n[1] 6422 } 6423 } 6424 return v[this.whenValid(e).state()] 6425 }, 6426 whenValid: function() { 6427 var e = this 6428 , n = arguments.length <= 0 || void 0 === arguments[0] ? {} : arguments[0] 6429 , r = n.group 6430 , o = n.force; 6431 this._refreshFields(); 6432 var a = this._withoutReactualizingFormOptions(function() { 6433 return t.map(e.fields, function(t) { 6434 return t.whenValid({ 6435 group: r, 6436 force: o 6437 }) 6438 }) 6439 }); 6440 return i.all(a) 6441 }, 6442 _refreshFields: function() { 6443 return this.actualizeOptions()._bindFields() 6444 }, 6445 _bindFields: function() { 6446 var e = this 6447 , n = this.fields; 6448 return this.fields = [], 6449 this.fieldsMappedById = {}, 6450 this._withoutReactualizingFormOptions(function() { 6451 e.$element.find(e.options.inputs).not(e.options.excluded).each(function(t, n) { 6452 var r = new window.Parsley.Factory(n,{},e); 6453 "ParsleyField" !== r.__class__ && "ParsleyFieldMultiple" !== r.__class__ || !0 === r.options.excluded || void 0 === e.fieldsMappedById[r.__class__ + "-" + r.__id__] && (e.fieldsMappedById[r.__class__ + "-" + r.__id__] = r, 6454 e.fields.push(r)) 6455 }), 6456 t.each(i.difference(n, e.fields), function(t, e) { 6457 e._trigger("reset") 6458 }) 6459 }), 6460 this 6461 }, 6462 _withoutReactualizingFormOptions: function(t) { 6463 var e = this.actualizeOptions; 6464 this.actualizeOptions = function() { 6465 return this 6466 } 6467 ; 6468 var n = t(); 6469 return this.actualizeOptions = e, 6470 n 6471 }, 6472 _trigger: function(t) { 6473 return this.trigger("form:" + t) 6474 } 6475 }; 6476 var b = function(e, n, r, i, o) { 6477 if (!/ParsleyField/.test(e.__class__)) 6478 throw new Error("ParsleyField or ParsleyFieldMultiple instance expected"); 6479 var a = window.Parsley._validatorRegistry.validators[n] 6480 , s = new h(a); 6481 t.extend(this, { 6482 validator: s, 6483 name: n, 6484 requirements: r, 6485 priority: i || e.options[n + "Priority"] || s.priority, 6486 isDomConstraint: !0 === o 6487 }), 6488 this._parseRequirements(e.options) 6489 } 6490 , w = function(t) { 6491 return t[0].toUpperCase() + t.slice(1) 6492 }; 6493 b.prototype = { 6494 validate: function(t, e) { 6495 var n; 6496 return (n = this.validator).validate.apply(n, [t].concat(_toConsumableArray(this.requirementList), [e])) 6497 }, 6498 _parseRequirements: function(t) { 6499 var e = this; 6500 this.requirementList = this.validator.parseRequirements(this.requirements, function(n) { 6501 return t[e.name + w(n)] 6502 }) 6503 } 6504 }; 6505 var x = function(e, n, r, i) { 6506 this.__class__ = "ParsleyField", 6507 this.$element = t(e), 6508 void 0 !== i && (this.parent = i), 6509 this.options = r, 6510 this.domOptions = n, 6511 this.constraints = [], 6512 this.constraintsByName = {}, 6513 this.validationResult = !0, 6514 this._bindConstraints() 6515 } 6516 , _ = { 6517 pending: null, 6518 resolved: !0, 6519 rejected: !1 6520 }; 6521 x.prototype = { 6522 validate: function(e) { 6523 arguments.length >= 1 && !t.isPlainObject(e) && (i.warnOnce("Calling validate on a parsley field without passing arguments as an object is deprecated."), 6524 e = { 6525 options: e 6526 }); 6527 var n = this.whenValidate(e); 6528 if (!n) 6529 return !0; 6530 switch (n.state()) { 6531 case "pending": 6532 return null; 6533 case "resolved": 6534 return !0; 6535 case "rejected": 6536 return this.validationResult 6537 } 6538 }, 6539 whenValidate: function() { 6540 var t, e = this, n = arguments.length <= 0 || void 0 === arguments[0] ? {}
vendor: 15,080 bytes, lines 6540-6844
6540 : arguments[0], r = n.force, i = n.group; 6541 if (this.refreshConstraints(), 6542 !i || this._isInGroup(i)) 6543 return this.value = this.getValue(), 6544 this._trigger("validate"), 6545 (t = this.whenValid({ 6546 force: r, 6547 value: this.value, 6548 _refreshed: !0 6549 }).always(function() { 6550 e._reflowUI() 6551 }).done(function() { 6552 e._trigger("success") 6553 }).fail(function() { 6554 e._trigger("error") 6555 }).always(function() { 6556 e._trigger("validated") 6557 })).pipe.apply(t, _toConsumableArray(this._pipeAccordingToValidationResult())) 6558 }, 6559 hasConstraints: function() { 6560 return 0 !== this.constraints.length 6561 }, 6562 needsValidation: function(t) { 6563 return void 0 === t && (t = this.getValue()), 6564 !(!t.length && !this._isRequired() && void 0 === this.options.validateIfEmpty) 6565 }, 6566 _isInGroup: function(e) { 6567 return t.isArray(this.options.group) ? -1 !== t.inArray(e, this.options.group) : this.options.group === e 6568 }, 6569 isValid: function(e) { 6570 if (arguments.length >= 1 && !t.isPlainObject(e)) { 6571 i.warnOnce("Calling isValid on a parsley field without passing arguments as an object is deprecated."); 6572 var n = _slice.call(arguments); 6573 e = { 6574 force: n[0], 6575 value: n[1] 6576 } 6577 } 6578 var r = this.whenValid(e); 6579 return !r || _[r.state()] 6580 }, 6581 whenValid: function() { 6582 var e = this 6583 , n = arguments.length <= 0 || void 0 === arguments[0] ? {} : arguments[0] 6584 , r = n.force 6585 , o = void 0 !== r && r 6586 , a = n.value 6587 , s = n.group; 6588 if (n._refreshed || this.refreshConstraints(), 6589 !s || this._isInGroup(s)) { 6590 if (this.validationResult = !0, 6591 !this.hasConstraints()) 6592 return t.when(); 6593 if (void 0 !== a && null !== a || (a = this.getValue()), 6594 !this.needsValidation(a) && !0 !== o) 6595 return t.when(); 6596 var u = this._getGroupedConstraints() 6597 , l = []; 6598 return t.each(u, function(n, r) { 6599 var o = i.all(t.map(r, function(t) { 6600 return e._validateConstraint(a, t) 6601 })); 6602 if (l.push(o), 6603 "rejected" === o.state()) 6604 return !1 6605 }), 6606 i.all(l) 6607 } 6608 }, 6609 _validateConstraint: function(e, n) { 6610 var r = this 6611 , o = n.validate(e, this); 6612 return !1 === o && (o = t.Deferred().reject()), 6613 i.all([o]).fail(function(t) { 6614 r.validationResult instanceof Array || (r.validationResult = []), 6615 r.validationResult.push({ 6616 assert: n, 6617 errorMessage: "string" == typeof t && t 6618 }) 6619 }) 6620 }, 6621 getValue: function() { 6622 var t; 6623 return t = "function" == typeof this.options.value ? this.options.value(this) : void 0 !== this.options.value ? this.options.value : this.$element.val(), 6624 void 0 === t || null === t ? "" : this._handleWhitespace(t) 6625 }, 6626 refreshConstraints: function() { 6627 return this.actualizeOptions()._bindConstraints() 6628 }, 6629 addConstraint: function(t, e, n, r) { 6630 if (window.Parsley._validatorRegistry.validators[t]) { 6631 var i = new b(this,t,e,n,r); 6632 "undefined" !== this.constraintsByName[i.name] && this.removeConstraint(i.name), 6633 this.constraints.push(i), 6634 this.constraintsByName[i.name] = i 6635 } 6636 return this 6637 }, 6638 removeConstraint: function(t) { 6639 for (var e = 0; e < this.constraints.length; e++) 6640 if (t === this.constraints[e].name) { 6641 this.constraints.splice(e, 1); 6642 break 6643 } 6644 return delete this.constraintsByName[t], 6645 this 6646 }, 6647 updateConstraint: function(t, e, n) { 6648 return this.removeConstraint(t).addConstraint(t, e, n) 6649 }, 6650 _bindConstraints: function() { 6651 for (var t = [], e = {}, n = 0; n < this.constraints.length; n++) 6652 !1 === this.constraints[n].isDomConstraint && (t.push(this.constraints[n]), 6653 e[this.constraints[n].name] = this.constraints[n]); 6654 this.constraints = t, 6655 this.constraintsByName = e; 6656 for (var r in this.options) 6657 this.addConstraint(r, this.options[r], void 0, !0); 6658 return this._bindHtml5Constraints() 6659 }, 6660 _bindHtml5Constraints: function() { 6661 (this.$element.hasClass("required") || this.$element.attr("required")) && this.addConstraint("required", !0, void 0, !0), 6662 "string" == typeof this.$element.attr("pattern") && this.addConstraint("pattern", this.$element.attr("pattern"), void 0, !0), 6663 void 0 !== this.$element.attr("min") && void 0 !== this.$element.attr("max") ? this.addConstraint("range", [this.$element.attr("min"), this.$element.attr("max")], void 0, !0) : void 0 !== this.$element.attr("min") ? this.addConstraint("min", this.$element.attr("min"), void 0, !0) : void 0 !== this.$element.attr("max") && this.addConstraint("max", this.$element.attr("max"), void 0, !0), 6664 void 0 !== this.$element.attr("minlength") && void 0 !== this.$element.attr("maxlength") ? this.addConstraint("length", [this.$element.attr("minlength"), this.$element.attr("maxlength")], void 0, !0) : void 0 !== this.$element.attr("minlength") ? this.addConstraint("minlength", this.$element.attr("minlength"), void 0, !0) : void 0 !== this.$element.attr("maxlength") && this.addConstraint("maxlength", this.$element.attr("maxlength"), void 0, !0); 6665 var t = this.$element.attr("type"); 6666 return void 0 === t ? this : "number" === t ? this.addConstraint("type", ["number", { 6667 step: this.$element.attr("step"), 6668 base: this.$element.attr("min") || this.$element.attr("value") 6669 }], void 0, !0) : /^(email|url|range)$/i.test(t) ? this.addConstraint("type", t, void 0, !0) : this 6670 }, 6671 _isRequired: function() { 6672 return void 0 !== this.constraintsByName.required && !1 !== this.constraintsByName.required.requirements 6673 }, 6674 _trigger: function(t) { 6675 return this.trigger("field:" + t) 6676 }, 6677 _handleWhitespace: function(t) { 6678 return !0 === this.options.trimValue && i.warnOnce('data-parsley-trim-value="true" is deprecated, please use data-parsley-whitespace="trim"'), 6679 "squish" === this.options.whitespace && (t = t.replace(/\s{2,}/g, " ")), 6680 "trim" !== this.options.whitespace && "squish" !== this.options.whitespace && !0 !== this.options.trimValue || (t = i.trimString(t)), 6681 t 6682 }, 6683 _getGroupedConstraints: function() { 6684 if (!1 === this.options.priorityEnabled) 6685 return [this.constraints]; 6686 for (var t = [], e = {}, n = 0; n < this.constraints.length; n++) { 6687 var r = this.constraints[n].priority; 6688 e[r] || t.push(e[r] = []), 6689 e[r].push(this.constraints[n]) 6690 } 6691 return t.sort(function(t, e) { 6692 return e[0].priority - t[0].priority 6693 }), 6694 t 6695 } 6696 }; 6697 var C = x 6698 , k = function() { 6699 this.__class__ = "ParsleyFieldMultiple" 6700 }; 6701 k.prototype = { 6702 addElement: function(t) { 6703 return this.$elements.push(t), 6704 this 6705 }, 6706 refreshConstraints: function() { 6707 var e; 6708 if (this.constraints = [], 6709 this.$element.is("select")) 6710 return this.actualizeOptions()._bindConstraints(), 6711 this; 6712 for (var n = 0; n < this.$elements.length; n++) 6713 if (t("html").has(this.$elements[n]).length) { 6714 e = this.$elements[n].data("ParsleyFieldMultiple").refreshConstraints().constraints; 6715 for (var r = 0; r < e.length; r++) 6716 this.addConstraint(e[r].name, e[r].requirements, e[r].priority, e[r].isDomConstraint) 6717 } else 6718 this.$elements.splice(n, 1); 6719 return this 6720 }, 6721 getValue: function() { 6722 if ("function" == typeof this.options.value) 6723 return this.options.value(this); 6724 if (void 0 !== this.options.value) 6725 return this.options.value; 6726 if (this.$element.is("input[type=radio]")) 6727 return this._findRelated().filter(":checked").val() || ""; 6728 if (this.$element.is("input[type=checkbox]")) { 6729 var e = []; 6730 return this._findRelated().filter(":checked").each(function() { 6731 e.push(t(this).val()) 6732 }), 6733 e 6734 } 6735 return this.$element.is("select") && null === this.$element.val() ? [] : this.$element.val() 6736 }, 6737 _init: function() { 6738 return this.$elements = [this.$element], 6739 this 6740 } 6741 }; 6742 var j = function(e, n, r) { 6743 this.$element = t(e); 6744 var i = this.$element.data("Parsley"); 6745 if (i) 6746 return void 0 !== r && i.parent === window.Parsley && (i.parent = r, 6747 i._resetOptions(i.options)), 6748 "object" == typeof n && t.extend(i.options, n), 6749 i; 6750 if (!this.$element.length) 6751 throw new Error("You must bind Parsley on an existing element."); 6752 if (void 0 !== r && "ParsleyForm" !== r.__class__) 6753 throw new Error("Parent instance must be a ParsleyForm instance"); 6754 return this.parent = r || window.Parsley, 6755 this.init(n) 6756 }; 6757 j.prototype = { 6758 init: function(t) { 6759 return this.__class__ = "Parsley", 6760 this.__version__ = "2.4.4", 6761 this.__id__ = i.generateID(), 6762 this._resetOptions(t), 6763 this.$element.is("form") || i.checkAttr(this.$element, this.options.namespace, "validate") && !this.$element.is(this.options.inputs) ? this.bind("parsleyForm") : this.isMultiple() ? this.handleMultiple() : this.bind("parsleyField") 6764 }, 6765 isMultiple: function() { 6766 return this.$element.is("input[type=radio], input[type=checkbox]") || this.$element.is("select") && void 0 !== this.$element.attr("multiple") 6767 }, 6768 handleMultiple: function() { 6769 var e, n, r = this; 6770 if (this.options.multiple || (void 0 !== this.$element.attr("name") && this.$element.attr("name").length ? this.options.multiple = e = this.$element.attr("name") : void 0 !== this.$element.attr("id") && this.$element.attr("id").length && (this.options.multiple = this.$element.attr("id"))), 6771 this.$element.is("select") && void 0 !== this.$element.attr("multiple")) 6772 return this.options.multiple = this.options.multiple || this.__id__, 6773 this.bind("parsleyFieldMultiple"); 6774 if (!this.options.multiple) 6775 return i.warn("To be bound by Parsley, a radio, a checkbox and a multiple select input must have either a name or a multiple option.", this.$element), 6776 this; 6777 this.options.multiple = this.options.multiple.replace(/(:|\.|\[|\]|\{|\}|\$)/g, ""), 6778 void 0 !== e && t('input[name="' + e + '"]').each(function(e, n) { 6779 t(n).is("input[type=radio], input[type=checkbox]") && t(n).attr(r.options.namespace + "multiple", r.options.multiple) 6780 }); 6781 for (var o = this._findRelated(), a = 0; a < o.length; a++) 6782 if (void 0 !== (n = t(o.get(a)).data("Parsley"))) { 6783 this.$element.data("ParsleyFieldMultiple") || n.addElement(this.$element); 6784 break 6785 } 6786 return this.bind("parsleyField", !0), 6787 n || this.bind("parsleyFieldMultiple") 6788 }, 6789 bind: function(e, n) { 6790 var r; 6791 switch (e) { 6792 case "parsleyForm": 6793 r = t.extend(new y(this.$element,this.domOptions,this.options), new a, window.ParsleyExtend)._bindFields(); 6794 break; 6795 case "parsleyField": 6796 r = t.extend(new C(this.$element,this.domOptions,this.options,this.parent), new a, window.ParsleyExtend); 6797 break; 6798 case "parsleyFieldMultiple": 6799 r = t.extend(new C(this.$element,this.domOptions,this.options,this.parent), new k, new a, window.ParsleyExtend)._init(); 6800 break; 6801 default: 6802 throw new Error(e + "is not a supported Parsley type") 6803 } 6804 return this.options.multiple && i.setAttr(this.$element, this.options.namespace, "multiple", this.options.multiple), 6805 void 0 !== n ? (this.$element.data("ParsleyFieldMultiple", r), 6806 r) : (this.$element.data("Parsley", r), 6807 r._actualizeTriggers(), 6808 r._trigger("init"), 6809 r) 6810 } 6811 }; 6812 var T = t.fn.jquery.split("."); 6813 if (parseInt(T[0]) <= 1 && parseInt(T[1]) < 8) 6814 throw "The loaded version of jQuery is too old. Please upgrade to 1.8.x or better."; 6815 T.forEach || i.warn("Parsley requires ES5 to run properly. Please include https://github.com/es-shims/es5-shim"); 6816 var S = t.extend(new a, { 6817 $element: t(document), 6818 actualizeOptions: null, 6819 _resetOptions: null, 6820 Factory: j, 6821 version: "2.4.4" 6822 }); 6823 t.extend(C.prototype, g.Field, a.prototype), 6824 t.extend(y.prototype, g.Form, a.prototype), 6825 t.extend(j.prototype, a.prototype), 6826 t.fn.parsley = t.fn.psly = function(e) { 6827 if (this.length > 1) { 6828 var n = []; 6829 return this.each(function() { 6830 n.push(t(this).parsley(e)) 6831 }), 6832 n 6833 } 6834 return t(this).length ? new j(this,e) : void i.warn("You must bind Parsley on an existing element.") 6835 } 6836 , 6837 void 0 === window.ParsleyExtend && (window.ParsleyExtend = {}), 6838 S.options = t.extend(i.objectCreate(o), window.ParsleyConfig), 6839 window.ParsleyConfig = S.options, 6840 window.Parsley = window.psly = S, 6841 window.ParsleyUtils = i; 6842 var E = window.Parsley._validatorRegistry = new d(window.ParsleyConfig.validators,window.ParsleyConfig.i18n); 6843 window.ParsleyValidator = {}, 6844 t.each("setLocale addCatalog addMessage addMessages getErrorMessage formatMessage addValidator updateV
6844alidator removeValidator".split(" "), function(e, n) { 6845 window.Parsley[n] = t.proxy(E, n), 6846 window.ParsleyValidator[n] = function() { 6847 var t; 6848 return i.warnOnce("Accessing the method '" + n + "' through ParsleyValidator is deprecated. Simply call 'window.Parsley." + n + "(...)'"), 6849 (t = window.Parsley)[n].apply(t, arguments) 6850 } 6851 }), 6852 window.Parsley.UI = g, 6853 window.ParsleyUI = { 6854 removeError: function(t, e, n) { 6855 var r = !0 !== n; 6856 return i.warnOnce("Accessing ParsleyUI is deprecated. Call 'removeError' on the instance directly. Please comment in issue 1073 as to your need to call this method."), 6857 t.removeError(e, { 6858 updateClass: r 6859 }) 6860 }, 6861 getErrorsMessages: function(t) { 6862 return i.warnOnce("Accessing ParsleyUI is deprecated. Call 'getErrorsMessages' on the instance directly."), 6863 t.getErrorsMessages() 6864 } 6865 }, 6866 t.each("addError updateError".split(" "), function(t, e) { 6867 window.ParsleyUI[e] = function(t, n, r, o, a) { 6868 var s = !0 !== a; 6869 return i.warnOnce("Accessing ParsleyUI is deprecated. Call '" + e + "' on the instance directly. Please comment in issue 1073 as to your need to call this method."), 6870 t[e](n, { 6871 message: r, 6872 assert: o, 6873 updateClass: s 6874 }) 6875 } 6876 }), 6877 !1 !== window.ParsleyConfig.autoBind && t(function() { 6878 t("[data-parsley-validate]").length && t("[data-parsley-validate]").parsley() 6879 }); 6880 var A = t({}) 6881 , M = function() { 6882 i.warnOnce("Parsley's pubsub module is deprecated; use the 'on' and 'off' methods on parsley instances or window.Parsley") 6883 }; 6884 function Q(t, e) { 6885 return t.parsleyAdaptedCallback || (t.parsleyAdaptedCallback = function() { 6886 var n = Array.prototype.slice.call(arguments, 0); 6887 n.unshift(this), 6888 t.apply(e || A, n) 6889 } 6890 ), 6891 t.parsleyAdaptedCallback 6892 } 6893 var $ = "parsley:"; 6894 function D(t) { 6895 return 0 === t.lastIndexOf($, 0) ? t.substr($.length) : t 6896 } 6897 t.listen = function(t, e) { 6898 var n; 6899 if (M(), 6900 "object" == typeof arguments[1] && "function" == typeof arguments[2] && (n = arguments[1], 6901 e = arguments[2]), 6902 "function" != typeof e) 6903 throw new Error("Wrong parameters"); 6904 window.Parsley.on(D(t), Q(e, n)) 6905 } 6906 , 6907 t.listenTo = function(t, e, n) { 6908 if (M(), 6909 !(t instanceof C || t instanceof y))
6910 throw new Error("Must give Parsley instance"); 6911 if ("string" != typeof e || "function" != typeof n) 6912 throw new Error("Wrong parameters"); 6913 t.on(D(e), Q(n)) 6914 } 6915 , 6916 t.unsubscribe = function(t, e) { 6917 if (M(), 6918 "string" != typeof t || "function" != typeof e) 6919 throw new Error("Wrong arguments"); 6920 window.Parsley.off(D(t), e.parsleyAdaptedCallback) 6921 } 6922 , 6923 t.unsubscribeTo = function(t, e) { 6924 if (M(), 6925 !(t instanceof C || t instanceof y)) 6926 throw new Error("Must give Parsley instance"); 6927 t.off(D(e)) 6928 } 6929 , 6930 t.unsubscribeAll = function(e) { 6931 M(), 6932 window.Parsley.off(D(e)), 6933 t("form,input,textarea,select").each(function() { 6934 var n = t(this).data("Parsley"); 6935 n && n.off(D(e)) 6936 }) 6937 } 6938 , 6939 t.emit = function(t, e) { 6940 var n; 6941 M(); 6942 var r = e instanceof C || e instanceof y 6943 , i = Array.prototype.slice.call(arguments, r ? 2 : 1); 6944 i.unshift(D(t)), 6945 r || (e = window.Parsley), 6946 (n = e).trigger.apply(n, _toConsumableArray(i)) 6947 } 6948 ; 6949 t.extend(!0, S, { 6950 asyncValidators: { 6951 default: { 6952 fn: function(t) { 6953 return t.status >= 200 && t.status < 300 6954 }, 6955 url: !1 6956 }, 6957 reverse: { 6958 fn: function(t) { 6959 return t.status < 200 || t.status >= 300 6960 }, 6961 url: !1 6962 } 6963 }, 6964 addAsyncValidator: function(t, e, n, r) { 6965 return S.asyncValidators[t] = { 6966 fn: e, 6967 url: n || !1, 6968 options: r || {} 6969 }, 6970 this 6971 } 6972 }), 6973 S.addValidator("remote", { 6974 requirementType: { 6975 "": "string", 6976 validator: "string", 6977 reverse: "boolean", 6978 options: "object" 6979 }, 6980 validateString: function(e, n, r, i) { 6981 var o, a, s = {}, u = r.validator || (!0 === r.reverse ? "reverse" : "default"); 6982 if (void 0 === S.asyncValidators[u]) 6983 throw new Error("Calling an undefined async validator: `" + u + "`"); 6984 n = S.asyncValidators[u].url || n, 6985 n.indexOf("{value}") > -1 ? n = n.replace("{value}", encodeURIComponent(e)) : s[i.$element.attr("name") || i.$element.attr("id")] = e; 6986 var l = t.extend(!0, r.options || {}, S.asyncValidators[u].options); 6987 o = t.extend(!0, {}, { 6988 url: n, 6989 data: s, 6990 type: "GET" 6991 }, l), 6992 i.trigger("field:ajaxoptions", i, o), 6993 a = t.param(o), 6994 void 0 === S._remoteCache && (S._remoteCache = {}); 6995 var c = S._remoteCache[a] = S._remoteCache[a] || t.ajax(o) 6996 , h = function() { 6997 var e = S.asyncValidators[u].fn.call(i, c, n, r); 6998 return e || (e = t.Deferred().reject()), 6999 t.when(e) 7000 }; 7001 return c.then(h, h) 7002 }, 7003 priority: -1 7004 }), 7005 S.on("form:submit", function() { 7006 S._remoteCache = {} 7007 }), 7008 window.ParsleyExtend.addAsyncValidator = function() { 7009 return ParsleyUtils.warnOnce("Accessing the method `addAsyncValidator` through an instance is deprecated. Simply call `Parsley.addAsyncValidator(...)`"), 7010 S.addAsyncValidator.apply(S, arguments) 7011 } 7012 , 7013 S.addMessages("en", { 7014 defaultMessage: "This value seems to be invalid.", 7015 type: { 7016 email: "This value should be a valid email.", 7017 url: "This value should be a valid url.", 7018 number: "This value should be a valid number.", 7019 integer: "This value should be a valid integer.", 7020 digits: "This value should be digits.", 7021 alphanum: "This value should be alphanumeric." 7022 }, 7023 notblank: "This value should not be blank.", 7024 required: "This value is required.", 7025 pattern: "This value seems to be invalid.", 7026 min: "This value should be greater than or equal to %s.", 7027 max: "This value should be lower than or equal to %s.", 7028 range: "This value should be between %s and %s.", 7029 minlength: "This value is too short. It should have %s characters or more.", 7030 maxlength: "This value is too long. It should have %s characters or fewer.",
7031 length: "This value length is invalid. It should be between %s and %s characters long.", 7032 mincheck: "You must select at least %s choices.", 7033 maxcheck: "You must select %s choices or fewer.", 7034 check: "You must select between %s and %s choices.", 7035 equalto: "This value should be the same." 7036 }), 7037 S.setLocale("en"); 7038 /** 7039 * inputevent - Alleviate browser bugs for input events 7040 * https://github.com/marcandre/inputevent 7041 * @version v0.0.3 - (built Thu, Apr 14th 2016, 5:58 pm) 7042 * @author Marc-Andre Lafortune <[email protected]> 7043 * @license MIT 7044 */ 7045 function I() { 7046 var e = this 7047 , n = window || global; 7048 t.extend(this, { 7049 isNativeEvent: function(t) { 7050 return t.originalEvent && !1 !== t.originalEvent.isTrusted 7051 }, 7052 fakeInputEvent: function(n) { 7053 e.isNativeEvent(n) && t(n.target).trigger("input") 7054 }, 7055 misbehaves: function(n) { 7056 e.isNativeEvent(n) && (e.behavesOk(n), 7057 t(document).on("change.inputevent", n.data.selector, e.fakeInputEvent), 7058 e.fakeInputEvent(n)) 7059 }, 7060 behavesOk: function(n) { 7061 e.isNativeEvent(n) && t(document).off("input.inputevent", n.data.selector, e.behavesOk).off("change.inputevent", n.data.selector, e.misbehaves) 7062 }, 7063 install: function() { 7064 if (!n.inputEventPatched) { 7065 n.inputEventPatched = "0.0.3"; 7066 for (var r = ["select", 'input[type="checkbox"]', 'input[type="radio"]', 'input[type="file"]'], i = 0; i < r.length; i++) { 7067 var o = r[i]; 7068 t(document).on("input.inputevent", o, { 7069 selector: o 7070 }, e.behavesOk).on("change.inputevent", o, { 7071 selector: o 7072 }, e.misbehaves) 7073 } 7074 } 7075 }, 7076 uninstall: function() { 7077 delete n.inputEventPatched, 7078 t(document).off(".inputevent") 7079 } 7080 }) 7081 } 7082 return (new I).install(), 7083 S 7084}), 7085/*! 7086 * classie v1.0.0 7087 * class helper functions 7088 * from bonzo https://github.com/ded/bonzo 7089 * MIT license 7090 * 7091 * classie.has( elem, 'my-class' ) -> true/false 7092 * classie.add( elem, 'my-new-class' ) 7093 * classie.remove( elem, 'my-unwanted-class' ) 7094 * classie.toggle( elem, 'my-class' ) 7095 */ 7096function(t) { 7097 "use strict"; 7098 function e(t) { 7099 return new RegExp("(^|\\s+)" + t + "(\\s+|$)") 7100 } 7101 var n, r, i; 7102 "classList"in document.documentElement ? (n = function(t, e) { 7103 return t.classList.contains(e) 7104 } 7105 , 7106 r = function(t, e) { 7107 t.classList.add(e) 7108 } 7109 , 7110 i = function(t, e) { 7111 t.classList.remove(e) 7112 } 7113 ) : (n = function(t, n) { 7114 return e(n).test(t.className) 7115 } 7116 , 7117 r = function(t, e) { 7118 n(t, e) || (t.className = t.className + " " + e) 7119 } 7120 , 7121 i = function(t, n) { 7122 t.className = t.className.replace(e(n), " ") 7123 } 7124 ); 7125 function o(t, e) { 7126 (n(t, e) ? i : r)(t, e) 7127 } 7128 var a = { 7129 hasClass: n, 7130 addClass: r, 7131 removeClass: i, 7132 toggleClass: o, 7133 has: n, 7134 add: r, 7135 remove: i, 7136 toggle: o 7137 }; 7138 "function" == typeof define && define.amd ? define(a) : t.classie = a 7139}(window), 7140/*! 7141 * IE10 viewport hack for Surface/desktop Windows 8 bug 7142 * Copyright 2014-2015 Twitter, Inc. 7143 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 7144 */ 7145function() { 7146 "use strict"; 7147 if (navigator.userAgent.match(/IEMobile\/10\.0/)) { 7148 var t = document.createElement("style"); 7149 t.appendChild(document.createTextNode("@-ms-viewport{width:auto!important}")), 7150 document.querySelector("head").appendChild(t) 7151 } 7152}(), 7153jQuery(".show-more").click(function() { 7154 var t = $(this); 7155 t.toggleClass("SeeMore2"), 7156 t.hasClass("SeeMore2") ? t.text("View full profile") : t.text("Hide full profile") 7157}), 7158jQuery("path").click(function() {}),
7159jQuery(document).ready(function() { 7160 setTimeout(function() { 7161 jQuery("#iframe-realex-join").contents().find("#realexForm").submit() 7162 }, 600), 7163 setTimeout(function() { 7164 jQuery("#iframe-realex").contents().find("#realexForm").submit() 7165 }, 600); 7166 var t = $(".cd-timeline-block"); 7167 !function(t, e) { 7168 t.each(function() { 7169 $(this).offset().top > $(window).scrollTop() + $(window).height() * e && $(this).find(".cd-timeline-img, .cd-timeline-content").addClass("is-hidden") 7170 }) 7171 }(t, .8), 7172 $(window).on("scroll", function() { 7173 window.requestAnimationFrame ? window.requestAnimationFrame(function() { 7174 e(t, .8) 7175 }) : setTimeout(function() { 7176 e(t, .8) 7177 }, 100) 7178 }); 7179 function e(t, e) { 7180 t.each(function() { 7181 $(this).offset().top <= $(window).scrollTop() + $(window).height() * e && $(this).find(".cd-timeline-img").hasClass("is-hidden") && $(this).find(".cd-timeline-img, .cd-timeline-content").removeClass("is-hidden").addClass("bounce-in") 7182 }) 7183 } 7184 var n = new Bloodhound({ 7185 datumTokenizer: Bloodhound.tokenizers.obj.whitespace("name", "role", "area", "brief", "link"), 7186 queryTokenizer: Bloodhound.tokenizers.whitespace, 7187 prefetch: { 7188 cache: !1, 7189 url: "https://www.finegael.ie/people.json", 7190 filter: function(t) { 7191 return $.map(t, function(t) { 7192 return { 7193 name: t.name, 7194 brief: t.brief, 7195 area: t.area, 7196 link: t.link 7197 } 7198 }) 7199 } 7200 } 7201 }); 7202 n.initialize(), 7203 $(".typeahead").typeahead({ 7204 highlight: !0, 7205 minLength: 2, 7206 hint: !0, 7207 highlight: !0, 7208 selectable: !1 7209 }, { 7210 displayKey: "name", 7211 source: n.ttAdapter(), 7212 limit: 100, 7213 templates: { 7214 empty: ['<div class="search-entry">', "<p>Unable to find any result</p>", "</div>"].join("\n"), 7215 suggestion: function(t) { 7216 var e = ""; 7217 return null != t.brief && (e = ' <div class="title">' + t.brief + " </div>"), 7218 '<div class="search-entry"> <a href="' + t.link + '"> <div class="name">' + t.name + '</div> <div class="constituency"> ' + t.area + "</div> " + e + " </a> </div>" 7219 } 7220 } 7221 }), 7222 jQuery(".map-view").length && jQuery("html, body").animate({ 7223 scrollTop: jQuery(".map-view").offset().top 7224 }, "fast"), 7225 jQuery("#jump-top").on("click", function() { 7226 console.log("to top"), 7227 jQuery("html, body").animate({ 7228 scrollTop: jQuery("#top").offset().top 7229 }, "slow") 7230 }), 7231 jQuery(".join-payment").length && jQuery("html, body").animate({ 7232 scrollTop: jQuery(".join-payment").offset().top 7233 }, "slow"), 7234 jQuery(".amount-button label").click(function() { 7235 jQuery(".amount-button label").removeClass("selected"), 7236 jQuery(this).addClass("selected"), 7237 jQuery("#otherAmountInput").val(""), 7238 jQuery("#hiddenAmount").val(jQuery(this).data("value")) 7239 }), 7240 jQuery("#otherAmountInput").focus(function() { 7241 jQuery(".amount-button label").removeClass("selected"), 7242 jQuery(".amount-button input").prop("checked", !1) 7243 }), 7244 jQuery("#otherAmountInput").keyup(function() { 7245 jQuery("#hiddenAmount").val(this.value) 7246 }), 7247 jQuery(window).bind("scroll", function() { 7248 jQuery(window).scrollTop() > 55 && jQuery(window).width() >= 992 ? jQuery(".navbar").addClass("navbar-fixed-top") : jQuery(".navbar").removeClass("navbar-fixed-top") 7249 }); 7250 window.onload = function() { 7251 window.addEventListener("scroll", function(t) { 7252 var e = window.pageYOffset || document.documentElement.scrollTop 7253 , n = document.querySelector(".navbar"); 7254 e > 560 ? classie.add(n, "smaller") : classie.has(n, "smaller") && classie.remove(n, "smaller") 7255 }) 7256 }(), 7257 jQuery("#form-join-finegael").length && jQuery("#form-join-finegael").parsley().on("field:validated", function() { 7258 var t = 0 === jQuery(".parsley-error").length; 7259 jQuery(".bs-callout-warning").toggleClass("hidden", t) 7260 }).on("form:submit", function() { 7261 var t = jQuery("#prefix").val() 7262 , e = jQuery("#fname").val() 7263 , n = jQuery("#surname").val() 7264 , r = jQuery("#dob-dd").val() + "/" + jQuery("#dob-mm").val() + "/" + jQuery("#dob-yyyy").val() 7265 , i = jQuery("#mobile-prefix").val() + jQuery("#mobile-number").val() 7266 , o = jQuery("#telephone-number").val() 7267 , a = jQuery("#email").val() 7268 , s = jQuery("#constituency").val() 7269 , u = jQuery("#address1").val() 7270 , l = jQuery("#address2").val() 7271 , l = jQuery("#address2").val() 7272 , c = jQuery("#address3").val() 7273 , h = jQuery("#address4").val() 7274 , d = jQuery("#eircode").val() 7275 , f = jQuery("#comments").val() 7276 , p = jQuery("#_wpnonce").val() 7277 , g = jQuery("input[name=fee]:checked", "#form-join-finegael").val() 7278 , m = jQuery("input[name=fee]:checked", "#form-join-finegael").attr("id") 7279 , y = jQuery("input[name=latest-information]:checked", "#form-join-finegael").val() 7280 , v = { 7281 title: t, 7282 firstname: e, 7283 lastname: n, 7284 dateOfBirth: r, 7285 email: a, 7286 mobile: i, 7287 homePhone: o, 7288 constituency: s, 7289 address1: u, 7290 address2: l, 7291 address3: c, 7292 address4: h, 7293 eircode: d, 7294 comments: f, 7295 fee: g, 7296 affiliation_status: m, 7297 receiveInfo: y, 7298 _wpnonce: p 7299 }; 7300 jQuery.post("/app/themes/finegael/app/form-actions/submit-join-finegael.php", v, function(t) { 7301 if ("success" == t.return) 7302 window.location.href = "/get-involved/join-fine-gael/payment/"; 7303 else if ("email_exists" == t.return) { 7304 var e = "<div class='failure'><h2>Sorry</h2><p>This email address is already registered</p></div>"; 7305 jQuery(".bs-callout-warning").toggleClass("hidden", !1), 7306 jQuery(".bs-callout-warning").html(e), 7307 jQuery("html, body").animate({ 7308 scrollTop: jQuery(".failure").offset().top 7309 }, "fast") 7310 } else { 7311 var e = "<div class='failure'><h2>Sorry</h2><p>Something went wrong, please try again</p></div>"; 7312 jQuery(".bs-callout-warning").toggleClass("hidden", !1), 7313 jQuery(".bs-callout-warning").html(e), 7314 jQuery("html, body").animate({ 7315 scrollTop: jQuery(".failure").offset().top 7316 }, "fast") 7317 } 7318 }) 7319 }), 7320 jQuery("#form-donate").length && jQuery("#form-donate").parsley().on("field:validated", function() { 7321 var t = 0 === jQuery(".parsley-error").length; 7322 jQuery(".bs-callout-warning").toggleClass("hidden", t) 7323 }).on("form:submit", function() { 7324 var t = jQuery("#first-name").val() 7325 , e = jQuery("#last-name").val() 7326 , n = jQuery("#country-code :selected").text() 7327 , r = jQuery("#email").val() 7328 , i = jQuery("#address1").val() 7329 , o = jQuery("#_wpnonce").val() 7330 , a = jQuery("#amount").val(), 7331 recaptcha = jQuery("#g-recaptcha-response").val() 7332 , s = { 7333 firstname: t, 7334 lastname: e, 7335 email: r, 7336 country: n, 7337 donationAmount: a, 7338 address: i, 7339 _wpnonce: o, 7340 recaptcha: recaptcha, 7341 }; 7342 7343 if (jQuery("#g-recaptcha-response").val() == "") {
7344 jQuery("#recaptcha-errors").toggleClass("hidden", !1); 7345 return false; 7346 } 7347 jQuery.post("/app/themes/finegael/app/form-actions/submit-donation-details.php", s, function(t) { 7348 if (null != t.return || "" != t.return) 7349 if ("success" == t.return) 7350 window.location.href = "/donate/details/payment/"; 7351 else { 7352 jQuery(".bs-callout-warning").toggleClass("hidden", !1), 7353 jQuery(".bs-callout-warning").html("<div class='failure'><h2>Sorry</h2><p>Something went wrong, please try again</p></div>") 7354 } 7355 }) 7356 }), 7357 jQuery("#donate-select-amount").length && jQuery("#donate-select-amount").parsley().on("form:validate", function(t) { 7358 var e = t.isValid({ 7359 group: "block1", 7360 force: !0 7361 }) || t.isValid({ 7362 group: "block2", 7363 force: !0 7364 }); 7365 if (jQuery(".invalid-form-error-message").html(e ? "" : "<p>Please select an amount before continuing</p>").toggleClass("filled", !e), 7366 !e) 7367 return t.validationResult = !1, 7368 !1 7369 }), 7370 jQuery("#air-your-views").length && jQuery("#air-your-views").parsley().on("field:validated", function() { 7371 var t = 0 === jQuery(".parsley-error").length; 7372 jQuery(".bs-callout-warning").toggleClass("hidden", t) 7373 }).on("form:submit", function() { 7374 jQuery("#send-air-your-views").text("Processing"), 7375 jQuery("#send-air-your-views").addClass("disabled"); 7376 var t = jQuery("#fname").val() 7377 , e = jQuery("#surname").val() 7378 , n = jQuery("#mobile-prefix").val() + jQuery("#mobile-number").val() 7379 , r = jQuery("#email").val() 7380 , i = jQuery("#address1").val() 7381 , o = jQuery("#address2").val() 7382 , a = jQuery("#city-town").val() 7383 , s = jQuery("#_wpnonce").val() 7384 , u = jQuery("#comments").val() 7385 , l = { 7386 firstname: t, 7387 lastname: e, 7388 email: r, 7389 mobile: n, 7390 address1: i, 7391 address2: o, 7392 cityTown: a, 7393 comments: u, 7394 _wpnonce: s 7395 }; 7396 jQuery.post("/app/themes/finegael/app/form-actions/submit-air-your-views.php", l, function(t) { 7397 if ("success" == t.return) { 7398 var e = "<div class='thank-you has-success'><h2>Thank you</h2><p>Thank you for taking the time to share your views with Fine Gael. Join the conversation on the Fine Gael <a href='https://www.facebook.com/FineGael/'>Facebook</a> and <a href='https://twitter.com/finegael'>Twitter</a> accounts.</p></div>"; 7399 jQuery("#air-your-views").html(e) 7400 } else { 7401 var e = "<div class='failure'><h2>Sorry</h2><p>Something went wrong, please try again</p></div>"; 7402 jQuery(".bs-callout-warning").toggleClass("hidden", !1), 7403 jQuery(".bs-callout-warning").html(e) 7404 } 7405 }) 7406 }), 7407 jQuery("#form-in-your-area").length && jQuery("#form-in-your-area").parsley().on("field:validated", function() { 7408 var t = 0 === jQuery(".parsley-error").length; 7409 jQuery(".bs-callout-warning").toggleClass("hidden", t) 7410 }).on("form:submit", function() { 7411 "0" == jQuery("#emailCookieSet").val() && (setInYourAreaCookies(), 7412 jQuery.ajax({ 7413 url: "https://finegael.newsweaver.com/WeeklyMessageFromAnTaoiseachEndaKennynewsletter/subscribe/1gmw52l9ewa/submit.html", 7414 type: "post", 7415 data: jQuery("#form-in-your-area").serialize(), 7416 success: function() {}, 7417 error: function() { 7418 var t = jQuery("#county-select option:selected").text(); 7419 window.location.replace("/" + t) 7420 } 7421 })); 7422 var t = { 7423 "county-URL": jQuery("#county-select option:selected").val(), 7424 county: jQuery("#county-select option:selected").text(), 7425 email: jQuery("#email").val(), 7426 _wpnonce: jQuery("#_wpnonce").val() 7427 }; 7428 jQuery.post("/app/themes/finegael/app/form-actions/submit-in-your-area.php", t, function(t) { 7429 (t.return = "redirect") && (window.location.href = t.area) 7430 }) 7431 }), 7432 jQuery("#stay-up-to-date").length && jQuery("#stay-up-to-date").parsley().on("field:validated", function() { 7433 var t = 0 === jQuery(".parsley-error").length; 7434 jQuery(".bs-callout-warning").toggleClass("hidden", t) 7435 }).on("form:submit", function() { 7436 var t = { 7437 name: jQuery("#fname").val(), 7438 email: jQuery("#email").val(), 7439 _wpnonce: jQuery("#_wpnonce").val() 7440 }; 7441 jQuery.post("/app/themes/finegael/app/form-actions/submit-stay-up-to-date.php", t, function(t) { 7442 if ("success" == t.return) { 7443 jQuery("#stay-up-to-date").html("<div class='thank-you has-success'><h2>Thank you</h2><p>Nearly there! An email has been sent to your inbox. Please click on the link to activate your email subscription to Fine Gael's exclusive updates.</p></div>") 7444 } 7445 }) 7446 }), 7447 jQuery("#stay-up-to-date-master").length && jQuery("#stay-up-to-date-master").parsley().on("field:validated", function() { 7448 var t = 0 === jQuery(".parsley-error").length; 7449 jQuery(".bs-callout-warning").toggleClass("hidden", t) 7450 }).on("form:submit", function() { 7451 var t = { 7452 name: jQuery("#fname-master").val(), 7453 email: jQuery("#email-master").val(), 7454 _wpnonce: jQuery("#_wpnonce").val(), 7455 url: jQuery("#url").val() 7456 }; 7457 jQuery.post("/app/themes/finegael/app/form-actions/submit-stay-up-to-date.php", t, function(t) { 7458 if ("success" == t.return) { 7459 var e = new Date; 7460 e.setTime(e.getTime() + 864e5); 7461 var n = "expires=" + e.toUTCString(); 7462 document.cookie = "back_button=" + t.url + "; expires=" + n + "; path=/", 7463 window.location.href = "/get-involved/stay-up-to-date/?result=subscribed" 7464 } 7465 }) 7466 }), 7467 jQuery("#members-hub-visitors").length && jQuery("#members-hub-visitors").parsley().on("field:validated", function() { 7468 var t = 0 === jQuery(".parsley-error").length; 7469 jQuery(".bs-callout-warning").toggleClass("hidden", t) 7470 }).on("form:submit", function() { 7471 var t = { 7472 email: jQuery("#hub-email").val(), 7473 _wpnonce: jQuery("#_wpnonce").val() 7474 }; 7475 jQuery.post("/app/themes/finegael/app/form-actions/submit-members-hub.php", t, function(t) { 7476 if ("success" == t.return) { 7477 jQuery("#members-hub-visitors").html("<div class='thank-you has-success'><h2>Thank you</h2><p></p></div>") 7478 } 7479 }) 7480 }) 7481}), 7482function(t) { 7483 t.fn.countTo = function(e) { 7484 return e = e || {}, 7485 t(this).each(function() { 7486 var n = t.extend({}, t.fn.countTo.defaults, { 7487 from: t(this).data("from"), 7488 to: t(this).data("to"), 7489 speed: t(this).data("speed"), 7490 refreshInterval: t(this).data("refresh-interval"), 7491 decimals: t(this).data("decimals") 7492 }, e)
7493 , r = Math.ceil(n.speed / n.refreshInterval) 7494 , i = (n.to - n.from) / r 7495 , o = this 7496 , a = t(this) 7497 , s = 0 7498 , u = n.from 7499 , l = a.data("countTo") || {}; 7500 a.data("countTo", l), 7501 l.interval && clearInterval(l.interval), 7502 l.interval = setInterval(c, n.refreshInterval), 7503 h(u); 7504 function c() { 7505 u += i, 7506 s++, 7507 h(u), 7508 "function" == typeof n.onUpdate && n.onUpdate.call(o, u), 7509 s >= r && (a.removeData("countTo"), 7510 clearInterval(l.interval), 7511 u = n.to, 7512 "function" == typeof n.onComplete && n.onComplete.call(o, u)) 7513 } 7514 function h(t) { 7515 var e = n.formatter.call(o, t, n); 7516 a.html(e) 7517 } 7518 }) 7519 } 7520 , 7521 t.fn.countTo.defaults = { 7522 from: 0, 7523 to: 0, 7524 speed: 1e3, 7525 refreshInterval: 100, 7526 decimals: 0, 7527 formatter: e, 7528 onUpdate: null, 7529 onComplete: null 7530 }; 7531 function e(t, e) { 7532 return t.toFixed(e.decimals) 7533 } 7534}(jQuery), 7535jQuery(function(t) { 7536 t(".count-number").data("countToOptions", { 7537 formatter: function(t, e) { 7538 return t.toFixed(e.decimals).replace(/\B(?=(?:\d{3})+(?!\d))/g, ",") 7539 } 7540 }), 7541 t(".timer").each(e); 7542 function e(e) { 7543 var n = t(this); 7544 e = t.extend({}, e || {}, n.data("countToOptions") || {}), 7545 n.countTo(e) 7546 } 7547}), 7548jQuery("#form-presidential-dinner").length) { 7549 jQuery("#form-presidential-dinner").parsley().on("form:error", function() { 7550 var t = 0 === jQuery(".parsley-error").length; 7551 jQuery(".bs-callout-warning").toggleClass("hidden", t), 7552 jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-danger") 7553 }).on("form:submit", function() { 7554 var t = jQuery("#fname").val() 7555 , e = jQuery("#lname").val() 7556 , n = jQuery("#mobile-number").val() 7557 , r = jQuery("#email").val() 7558 , i = jQuery("#address1").val() 7559 , o = jQuery("#address2").val() 7560 , a = jQuery("#eircode").val() 7561 , s = jQuery("#total-amount").val() 7562 , u = jQuery("#reserve-table").val() 7563 , l = jQuery("#individual").val() 7564 , c = jQuery("input[name=optin]:checked", "#form-presidential-dinner").val() ? 1 : 0 7565 , h = jQuery("#_wpnonce").val() 7566 , d = { 7567 fname: t, 7568 lname: e, 7569 email: r, 7570 mobile: n, 7571 address1: i, 7572 address2: o, 7573 eircode: a, 7574 _wpnonce: h, 7575 reserveTableOf10: parseInt(u), 7576 individualTickets: parseInt(l), 7577 totalAmount: parseInt(s), 7578 optin: c 7579 }; 7580 console.log(d), 7581 jQuery.post("/app/themes/finegael/app/form-actions/submit-presidential-dinner.php", d, function(t) { 7582 var e = ""; 7583 "success" == t.return ? window.location.href = "/lunch/payment/" : (e = "<div class='failure'><h2>Sorry</h2><p>Something went wrong, please try again</p></div>", 7584 jQuery(".bs-callout-warning").toggleClass("hidden", !1), 7585 jQuery(".bs-callout-warning").html(e)) 7586 }) 7587 }); 7588 function calculateTotal() { 7589 var t = jQuery("#reserve-table").val() 7590 , e = jQuery("#individual").val() 7591 , n = 0; 7592 n = parseInt(t) + parseInt(e) + parseInt(0); 7593 var r = document.getElementById("totalPrice"); 7594 r.style.display = "block", 7595 r.innerHTML = "Total booking € " + n, 7596 jQuery("#total-amount").val(n), 7597 jQuery("form#form-presidential-dinner").parsley().validate({ 7598 group: "total-booking" 7599 }) 7600 } 7601 jQuery("input[type=radio][name=reserve-10]").change(function() { 7602 calculateTotal() 7603 }), 7604 jQuery("input[type=radio][name=reserve-12]").change(function() { 7605 calculateTotal() 7606 }), 7607 jQuery(".btn-reset").click(function() { 7608 jQuery("#form-presidential-dinner")[0].reset(), 7609 document.getElementById("totalPrice").style.display = "none" 7610 }) 7611} 7612jQuery("#form-flex-payment").length && jQuery("#form-flex-payment").parsley().on("field:validated", function() { 7613 var t = 0 === jQuery(".parsley-error").length; 7614 jQuery(".bs-callout-warning").toggleClass("hidden", t) 7615}).on("form:submit", function() { 7616 var t = jQuery("#first-name").val() 7617 , e = jQuery("#last-name").val() 7618 , n = jQuery("#country-code :selected").text() 7619 , r = jQuery("#email").val() 7620 , i = jQuery("#address").val() 7621 , o = jQuery("#product :selected").text() 7622 , a = jQuery("#_wpnonce").val() 7623 , s = jQuery("#amount").val() 7624 , 7625 _county = jQuery("#county").val() 7626 , _eircode = jQuery("#eircode").val() 7627 7628 , u = { 7629 county: _county, 7630 eircode: _eircode, 7631 firstname: t, 7632 lastname: e, 7633 email: r, 7634 country: n, 7635 amount: s, 7636 product: o, 7637 product_other: jQuery("#otherta").val(), 7638 address: i, 7639 _wpnonce: a 7640 }; 7641 console.log(u, 'Data'); 7642 jQuery.post("/app/themes/finegael/app/form-actions/submit-flexible-payment-details.php", u, function(t) { 7643 null == t.return && "" == t.return || ("success" == t.return ? window.location.href = "/payment/details/payment/" : (jQuery(".bs-callout-warning").toggleClass("hidden", !1), 7644 jQuery(".bs-callout-warning").html("<div class='failure'><h2>Sorry</h2><p>Something went wrong, please try again</p></div>"))) 7645 }) 7646}), 7647jQuery("#form-superdraw").length && (jQuery("#form-superdraw").parsley().on("field:validated", function() { 7648 0 !== jQuery(".parsley-error").length && (jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-warning"), 7649 jQuery(".bs-callout-warning").html("<p>There are errors on the form. Please fix them before continuing </p>")) 7650}
7650).on("form:submit", function() { 7651 jQuery(".bs-callout-warning").toggleClass("alert alert-warning", !1), 7652 jQuery(".bs-callout-warning").html(""); 7653 var t = jQuery("#fname").val() 7654 , e = jQuery("#lname").val() 7655 , n = jQuery("#email").val() 7656 , r = jQuery("#address1").val() 7657 , i = jQuery("#address2").val() 7658 , o = jQuery("#eircode").val() 7659 , a = $("#form-superdraw input[name=credit-card]:checked").val() 7660 , s = jQuery("#_wpnonce").val() 7661 , u = !!jQuery("input[name=optin]:checked", "#form-superdraw").val() 7662 , l = !!jQuery("input[name=contact-SMS]:checked", "#form-superdraw").val() 7663 , c = jQuery("#mobile-number").val() 7664 , h = jQuery("#constituency").val() 7665 , d = jQuery("#number-of-tickets").val() 7666 , f = jQuery("#seller").val() 7667 , p = { 7668 creditCardType: a, 7669 constituency: h, 7670 numberOfTickets: d, 7671 fname: t, 7672 lname: e, 7673 address1: r, 7674 address2: i, 7675 eircode: o, 7676 email: n, 7677 mobile: c, 7678 contactViaSMS: l, 7679 optin: u, 7680 seller: f, 7681 _wpnonce: s 7682 }; 7683 console.log(p), 7684 jQuery.post("/app/themes/finegael/app/form-actions/submit-superdraw.php", p, function(t) { 7685 if (null != t.return || "" != t.return) 7686 if ("success" == t.return) 7687 window.location.href = "/sd/payment/"; 7688 else { 7689 jQuery(".bs-callout-warning").toggleClass("hidden", !1), 7690 jQuery(".bs-callout-warning").html("<div class='failure'><h2>Sorry</h2><p>Something went wrong, please try again</p></div>") 7691 } 7692 }) 7693}), 7694jQuery(".btn-reset").click(function() { 7695 jQuery("#form-superdraw")[0].reset() 7696}), 7697jQuery("input[type=radio][name=credit-card]").change(function() { 7698 "personal" == this.value ? (jQuery(".personal-tickets-dropdown").show(), 7699 jQuery(".corporate-tickets-dropdown").hide()) : (jQuery(".personal-tickets-dropdown").hide(), 7700 jQuery(".corporate-tickets-dropdown").show()) 7701})), 7702jQuery(document).ready(function() { 7703 function t() { 7704 for (var t, e = [], n = window.location.href.slice(window.location.href.indexOf("?") + 1).split("&"), r = 0; r < n.length; r++) 7705 t = n[r].split("="), 7706 e.push(t[0]), 7707 e[t[0]] = t[1]; 7708 return e 7709 } 7710 this.memberSearchSingleClicked = function(t) { 7711 var e = { 7712 memberID: t 7713 }; 7714 jQuery.post("/app/themes/finegael/app/form-actions/members-hub/submit-events-admin-single-member.php", e, function(t) { 7715 var e = t[0][0]; 7716 if (void 0 !== t[1] && void 0 !== t[1][0] && "undefined" !== t[1][0].Attended) { 7717 var n = "<p>This member is already registered.</p>"; 7718 0 != t[1][0].Attended && (n = n.concat("<br><p>Scanned " + t[1][0].Attended + "</p>")), 7719 jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-danger"), 7720 jQuery(".bs-callout-warning").html(n) 7721 } 7722 var r = jQuery("#form-events-admin-member-registration") 7723 , i = ""; 7724 switch (parseInt(e.TitleID)) { 7725 case 1: 7726 i = "Mr."; 7727 break; 7728 case 2: 7729 i = "Ms."; 7730 break; 7731 case 3: 7732 i = "Mrs."; 7733 break; 7734 case 4: 7735 i = "Cllr."; 7736 break; 7737 case 5: 7738 i = "Dr."; 7739 break; 7740 case 6: 7741 i = "Sen."; 7742 break; 7743 case 7: 7744 i = "Rev."; 7745 break; 7746 case 8: 7747 i = "Fr."; 7748 break; 7749 case 9: 7750 i = "Prof."; 7751 break; 7752 case 10: 7753 i = "Sr."; 7754 break; 7755 case 11: 7756 i = "Lt."; 7757 break; 7758 case 12: 7759 i = "Capt."; 7760 break; 7761 case 13: 7762 i = "Lt. Col."; 7763 break; 7764 case 15: 7765 i = "An tUas"; 7766 break; 7767 case 16: 7768 i = "Col."; 7769 break; 7770 case 17: 7771 i = "The"; 7772 break; 7773 case 18: 7774 i = "Ald."; 7775 break; 7776 case 19: 7777 i = "Minister"; 7778 break; 7779 case 20: 7780 i = "His Excellency"; 7781 break; 7782 case 21: 7783 i = "Her Excellency"; 7784 break; 7785 case 22: 7786 i = "Miss"; 7787 break; 7788 case 23: 7789 i = "Mx." 7790 } 7791 jQuery("#form-events-admin-member-registration #firstname").val(e.Forename), 7792 jQuery("#form-events-admin-member-registration #surname").val(e.Surname), 7793 jQuery("#form-events-admin-member-registration #email").val(e.HomeEmail), 7794 jQuery("#form-events-admin-member-registration #phone").val(e.HomeMobile), 7795 jQuery("#form-events-admin-member-registration #address-1").val(e.Address1), 7796 jQuery("#form-events-admin-member-registration #address-2").val(e.Address2), 7797 jQuery("#form-events-admin-member-registration #address-3").val(e.Address3), 7798 jQuery("#form-events-admin-member-registration #address-4").val(e.Address4), 7799 jQuery("#form-events-admin-member-registration #address-5").val(e.Address
77995), 7800 jQuery("#form-events-admin-member-registration #mid").val(e.MemberID), 7801 jQuery("#form-events-admin-member-registration #title").val(i), 7802 jQuery("#form-events-admin-member-registration #constituency").val(e.ConstituencyPrefix), 7803 r.removeClass("hidden"), 7804 jQuery("html, body").animate({ 7805 scrollTop: r.offset().top - 70 7806 }, 2e3) 7807 }) 7808 } 7809 , 7810 this.formatDate = function(t) { 7811 var e = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] 7812 , n = new Array(7); 7813 n[0] = "Sunday", 7814 n[1] = "Monday", 7815 n[2] = "Tuesday", 7816 n[3] = "Wednesday", 7817 n[4] = "Thursday", 7818 n[5] = "Friday", 7819 n[6] = "Saturday"; 7820 var r = t.getDate() 7821 , i = t.getMonth() 7822 , o = t.getFullYear(); 7823 return n[t.getDay()] + ", " + r + " " + e[i] + " " + o 7824 } 7825 , 7826 this.print = function(t) { 7827 var e = jQuery("#container-barcode").html() 7828 , n = window.open("", "page content", "height=600,width=800") 7829 , r = t.Surname.replace("#", "'") 7830 , i = t.Forename.replace("#", "'");
7831 n.document.write('<!doctype html><html><head> <meta charset="utf-8">\n<title>Page Content</title><link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous"></head>'), 7832 n.document.write("<style>body{font-size: 12px;}header {margin-top: 2.5vh;height: 17.5vh;}article {height: 55vh;}footer {height: 25vh;;}@media print {.container {max-width: 80%;}}</style>"), 7833 n.document.write('<body><header><div class="container h-100"><div class="row h-100">'), 7834 n.document.write('<div class="col-6 h-100"><address><b>' + t.Title + " " + i + " " + r + "</b><br>" + t.Address1 + "<br>" + t.Address2 + "<br>" + t.Address3 + "<br>" + t.Address4 + "<br>" + t.Address5 + '</address></div><div class="col-6 h-100"></div></div></div></header>'), 7835 n.document.write('<article><div class="container h-100"><div class="row h-100"><div class="col h-100"><p>Dear ' + i + ",</p><p>Thank you for Registering for the National Spring Conference 2019 which takes place in Clayton Whiteâs Hotel, Abbey Street, Wexford on Friday 22nd and Saturday 23rd March 2019. The Conference will discuss the latest version of Building a Republic of Opportunity and, as agreed at the Ãrd Fheis, constitutional amendments providing for a new means of dealing with disciplinary issues.</p><p>This will be a significant event for the Party, coming as it does, eight weeks before the Local and European Elections, and, of course, it is likely that Brexit will still be highly topical and relevant. Our Conference agenda will also reflect these priorities.</p><p>The Conference will begin with the Opening Ceremony at 7.30pm on Friday night and will run all day on Saturday, including the live TV session on Saturday, 11am to 1pm. The final programme is attached and will also be available in the Membersâ Hub on our website - finegael.ie.</p><p>We will have a crèche facility a short drive away from the Hotel; if you wish to book a place, please contact Eileen Bradley (01 619 8444 / <a href='mailto:[email protected]'>[email protected]</a>).</p><p>Your Registration Pass is included at the bottom of this page; please take good care of it. Before you arrive at the Hotel you should detach your Pass, by bending it carefully and peeling it off; then, you simply insert it in the plastic pouch enclosed. You will need to have your Registration Pass attached to the lanyard to gain access to the Conference. Please wear your lanyard around your neck, to speed things up. You must also bring your current Membership Card and a form of photo ID. The Registration Pass enclosed will guarantee ease of access to the Conference for you and you alone. It is not transferrable. </p> <p>Any companions will also need a Registration Pass. If they have not registered yet, they will have an opportunity to do so in the Registration Unit â which is located in the Hotel reception area from 3.30pm-8.00pm on Friday and 9.00am-8.00pm on Saturday. Further information is available from National Office at 01-6198444. If anyone travelling with you is not a Member of the Party, they will have to be accompanied to the Registration Unit by a current Member, who can vouch for them. They will also need to bring photo I.D. Please be advised that only those who have registered will gain access to the Conference. </p> <p>I hope you enjoy the weekend and I look forward to seeing you at the event. </p></div></div></div></article>"),
7836 n.document.write('<footer><div class="container h-100"><div class="row h-100"><div class="col-6 h-100"><p>Yours sincerely,</p><img id="signature" style="width: 50%;" src="https://www.finegael.ie/app/uploads/2017/11/TC-signature.jpg"><p><strong>Tom Curran</strong><br><strong>General Secretary</strong></p></div>'), 7837 n.document.write('<div class="col-6 h-100"><div class="p-4"><h2><b>' + t.Category + "</b></h2><p><strong>" + t.Title + " " + i + " " + r + "</strong><br><strong>" + t.Constituency + "</strong></p>" + e + "</div></div>"), 7838 n.document.write("</div></div></footer></body></html>"), 7839 n.document.close(), 7840 n.focus(), 7841 setTimeout(function() { 7842 n.print(), 7843 n.close() 7844 }, 250) 7845 } 7846 , 7847 this.printMemberPass = function(t) { 7848 console.log(t.Barcode), 7849 JsBarcode("#barcode", t.Barcode, { 7850 format: "CODE39", 7851 displayValue: !1, 7852 height: 30, 7853 width: 1 7854 }), 7855 this.print(t) 7856 } 7857 , 7858 jQuery(".payment-type label").click(function() { 7859 jQuery(".payment-type label").removeClass("selected"), 7860 jQuery(this).addClass("selected"), 7861 jQuery("#hidden-amount").val(jQuery(this).data("value")), 7862 jQuery("#hidden-type").val(jQuery(this).next().attr("id")) 7863 }), 7864 jQuery("#form-membershub-login").length && jQuery("#form-membershub-login").parsley().on("field:validated", function() { 7865 0 === jQuery(".parsley-error").length ? jQuery(".bs-callout-warning").attr("class", "bs-callout-warning hidden") : (jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-warning"), 7866 jQuery(".bs-callout-warning").html("<p>There are errors on the form. Please fix them before continuing </p>")) 7867 }).on("form:submit", function() { 7868 var e = { 7869 email: jQuery("#email").val(), 7870 password: jQuery("#password").val(), 7871 _wpnonce: jQuery("#_wpnonce").val() 7872 } 7873 , n = t().redirect_to; 7874 jQuery.post("/app/themes/finegael/app/form-actions/members-hub/submit-login.php", e, function(t) { 7875 if (console.log("submit login", t.return), 7876 "success" == t.return) 7877 null == n || "" == n ? (console.log(n), 7878 window.location.href = "/members-hub-home/") : window.location.href = n; 7879 else if ("notConfirmed" == t.return) { 7880 var e = "<p>Please confirm your email before trying to login</p>"; 7881 jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-danger"), 7882 jQuery(".bs-callout-warning").html(e) 7883 } else if ("needRenewal" == t.return) { 7884 var e = "<p><b>Your membership has expired. <a href='/members-hub/membership/renewal/'>Click here to renew!</a></b></p>"; 7885 jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-danger"), 7886 jQuery(".bs-callout-warning").html(e) 7887 } else { 7888 var e = "<p>The password you entered for the email address " + t.email + " is incorrect. <a href='/members-hub/members-hub-forgot-password/'>Lost your password?</a></p>"; 7889 jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-danger"), 7890 jQuery(".bs-callout-warning").html(e) 7891 } 7892 }) 7893 }), 7894 jQuery("#form-membershub-change-password").length && jQuery("#form-membershub-change-password").parsley().on("field:validated", function() { 7895 0 === jQuery(".parsley-error").length ? jQuery(".bs-callout-warning").attr("class", "bs-callout-warning hidden") : (jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-warning"), 7896 jQuery(".bs-callout-warning").html("<p>There are errors on the form. Please fix them before continuing </p>")) 7897 }).on("form:submit", function() { 7898 var t = { 7899 password: jQuery("#password").val(), 7900 mid: jQuery("#mid").val(), 7901 _wpnonce: jQuery("#_wpnonce").val() 7902 }; 7903 jQuery.post("/app/themes/finegael/app/form-actions/members-hub/submit-set-password.php", t, function(t) { 7904 if ("success" == t.return) 7905 window.location.href = "/members-hub-home/"; 7906 else { 7907 jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-danger"), 7908 jQuery(".bs-callout-warning").html("<h2>Oh no!</h2><p>Something went wrong, please try again</p>") 7909 } 7910 }) 7911 }), 7912 jQuery("#form-membershub-forgot-password").length && jQuery("#form-membershub-forgot-password").parsley().on("field:validated", function() { 7913 0 === jQuery(".parsley-error").length ? jQuery(".bs-callout-warning").attr("class", "bs-callout-warning hidden") : (jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-warning"), 7914 jQuery(".bs-callout-warning").html("<p>There are errors on the form. Please fix them before continuing </p>")) 7915 }).on("form:submit", function() { 7916 var t = { 7917 email: jQuery("#email").val(), 7918 mid: jQuery("#mid").val(), 7919 _wpnonce: jQuery("#_wpnonce").val() 7920 }; 7921 console.log(t), 7922 jQuery.post("/app/themes/finegael/app/form-actions/members-hub/submit-forgot-password.php", t, function(t) { 7923 if ("success" == t.return) { 7924 var e = "<p>An email has been sent you to reset your password.</p>"; 7925 jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-success"), 7926 jQuery(".bs-callout-warning").html(e) 7927 } else { 7928 var e = "<h2>Oh no!</h2><p>Please try again</p>"; 7929 jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-danger"), 7930 jQuery(".bs-callout-warning").html(e) 7931 } 7932 }) 7933 }), 7934 jQuery("#form-membershub-set-password").length && jQuery("#form-membershub-set-password").parsley().on("field:validated", function() { 7935 0 === jQuery(".parsley-error").length ? jQuery(".bs-callout-warning").attr("class", "bs-callout-warning hidden") : (jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-warning"), 7936 jQuery(".bs-callout-warning").html("<p>There are errors on the form. Please fix them before continuing </p>")) 7937 }).on("form:submit", function() { 7938 var t = jQuery("#password").val() 7939 , e = jQuery("#mid").val() 7940 , n = { 7941 password: t, 7942 mid: e, 7943 _wpnonce: jQuery("#_wpnonce").val() 7944 }; 7945 jQuery.post("/app/themes/finegael/app/form-actions/members-hub/submit-set-password.php", n, function(t) { 7946 if (console.log(t), 7947 "success" == t.return) { 7948 var e = "<p>Password is set correctly. You can login <a class='alert-link' href='/members-hub/login/'>here</a> </p>"; 7949 jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-success"), 7950 jQuery(".bs-callout-warning").html(e) 7951 } else { 7952 var e = "<h2>Oh no!</h2><p>Something went wrong, please try again</p>"; 7953 jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-danger"), 7954 jQuery(".bs-callout-warning").html(e) 7955 } 7956 }) 7957 }), 7958 jQuery("#form-membershub-registration-1").length && jQuery("#form-membershub-registration-1").parsley().on("field:validated", function() { 7959 0 === jQuery(".parsley-error").length ? jQuery(".bs-callout-warning").attr("class", "bs-callout-warning hidden") : (jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-warning"), 7960 jQuery(".bs-callout-warning").html("<p>There are errors on the form. Please fix them before continuing </p>")) 7961 }).on("form:submit", function() { 7962 var t = { 7963 surname: jQuery("#surname").val(), 7964 card_number_prefix: jQuery("#card-number-prefix").val(), 7965 card_number_year: jQuery("#card-number-year").val(), 7966 card_number_member_no: jQuery("#card-number-member-no").val(), 7967 _wpnonce: jQuery("#_wpnonce").val() 7968 }; 7969 jQuery.post("/app/themes/finegael/app/form-actions/members-hub/submit-registration-step1.php", t, function(t) { 7970 if ("success" == t.return) 7971 window.location.href = "/members-hub/members-hub-registration-step-2/"; 7972 else { 7973 jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-danger"), 7974 jQuery(".bs-callout-warning").html("<h4>Something's not right!</h4><p>Please ensure that you enter your details exactly as they're displayed on your membership card. For example, any apostrophes, space
7974s or capital letters must be entered exactly as they're displayed.</p>") 7975 } 7976 }) 7977 }), 7978 jQuery("#form-membershub-registration-2").length && jQuery("#form-membershub-registration-2").parsley().on("field:validated", function() { 7979 0 === jQuery(".parsley-error").length ? jQuery(".bs-callout-warning").attr("class", "bs-callout-warning hidden") : (jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-warning"), 7980 jQuery(".bs-callout-warning").html("<p>There are errors on the form. Please fix them before continuing </p>")) 7981 }).on("form:submit", function() { 7982 var t = { 7983 surname: jQuery("#surname").val(), 7984 email: jQuery("#email").val(), 7985 phone: jQuery("#phone").val(), 7986 password: jQuery("#password").val(), 7987 memberId: jQuery("#member-id").val(), 7988 _wpnonce: jQuery("#_wpnonce").val() 7989 }; 7990 jQuery.post("/app/themes/finegael/app/form-actions/members-hub/submit-registration-step2.php", t, function(t) { 7991 if (console.log(t.return), 7992 "success" == t.return) { 7993 jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-info"), 7994 jQuery(".bs-callout-warning").html("<h3>Thank you for updating your details!</h3><p>We have sent a confirmation email to the address you provided us with. Please follow the instructions contained in the email to complete the registration process.</p><p>If you need to amend the email address you provided us with, please do so below:</p>") 7995 } 7996 }) 7997 }), 7998 jQuery("#form-membership-update-details").length && jQuery("#form-membership-update-details").parsley().on("field:validated", function() { 7999 0 === jQuery(".parsley-error").length ? jQuery(".bs-callout-warning").attr("class", "bs-callout-warning hidden") : (jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-warning"), 8000 jQuery(".bs-callout-warning").html("<p>There are errors on the form. Please fix them before continuing </p>")) 8001 }).on("form:submit", function() { 8002 var t = { 8003 firstname: jQuery("#firstname").val(), 8004 surname: jQuery("#surname").val(), 8005 email: jQuery("#email").val(), 8006 phone: jQuery("#phone").val(), 8007 address1: jQuery("#address-1").val(), 8008 address2: jQuery("#address-2").val(), 8009 address3: jQuery("#address-3").val(), 8010 mid: jQuery("#mid").val(), 8011 _wpnonce: jQuery("#_wpnonce").val() 8012 }; 8013 jQuery.post("/app/themes/finegael/app/form-actions/members-hub/submit-update-details.php", t, function(t) { 8014 if ("success" == t.return) { 8015 jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-info"), 8016 jQuery(".bs-callout-warning").html("<p>Your new details have been submitted for approval. We will let you know
8016when these changes have been accepted.</p><p>Please note that you will still see your previous details here until the changes have been approved.</p>") 8017 } 8018 }) 8019 }), 8020 jQuery("#form-superdraw-details").length && jQuery("#form-superdraw-details").parsley().on("field:validated", function() { 8021 0 !== jQuery(".parsley-error").length && (jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-warning"), 8022 jQuery(".bs-callout-warning").html("<p>There are errors on the form. Please fix them before continuing </p>")) 8023 }).on("form:submit", function() { 8024 jQuery(".bs-callout-warning").toggleClass("alert alert-warning", !1), 8025 jQuery(".bs-callout-warning").html(""); 8026 var t = jQuery("#first-name").val() 8027 , e = jQuery("#last-name").val() 8028 , n = jQuery("#phone").val() 8029 , r = jQuery("#email").val() 8030 , i = jQuery("#address1").val() 8031 , o = jQuery("#eircode").val() 8032 , a = jQuery("#_wpnonce").val() 8033 , s = jQuery("#amount").val() 8034 , u = { 8035 firstname: t, 8036 lastname: e, 8037 email: r, 8038 phone: n, 8039 amount: s, 8040 address: i, 8041 eircode: o, 8042 _wpnonce: a 8043 }; 8044 jQuery.post("/app/themes/finegael/app/form-actions/submit-superdraw-details.php", u, function(t) { 8045 if (null != t.return || "" != t.return) 8046 if ("success" == t.return) 8047 ; 8048 else { 8049 jQuery(".bs-callout-warning").toggleClass("hidden", !1), 8050 jQuery(".bs-callout-warning").html("<div class='failure'><h2>Sorry</h2><p>Something went wrong, please try again</p></div>") 8051 } 8052 }) 8053 }), 8054 jQuery("#form-membership-renewal").length && jQuery("#form-membership-renewal").parsley().on("field:validated", function() { 8055 var t = 0 === jQuery(".parsley-error").length; 8056 jQuery(".bs-callout-warning").toggleClass("hidden", t) 8057 }).on("form:submit", function() { 8058 var t = jQuery("#prefix").val() 8059 , e = jQuery("#member-id").val() 8060 , n = jQuery("#fname").val() 8061 , r = jQuery("#surname").val() 8062 , i = jQuery("#mobile-prefix").val() + jQuery("#mobile-number").val() 8063 , o = jQuery("#email").val() 8064 , a = jQuery("#constituency").val() 8065 , s = jQuery("#address1").val() 8066 , u = jQuery("#address2").val() 8067 , u = jQuery("#address2").val() 8068 , l = jQuery("#address3").val() 8069 , c = jQuery("#address4").val() 8070 , h = jQuery("#eircode").val() 8071 , d = jQuery("#comments").val() 8072 , f = jQuery("#_wpnonce").val() 8073 , p = jQuery("input[name=fee]:checked", "#form-membership-renewal").val() 8074 , g = jQuery("input[name=fee]:checked", "#form-membership-renewal").attr("id") 8075 , m = jQuery("input[name=latest-information]:checked", "#form-membership-renewal").val() 8076 , y = { 8077 memberID: e, 8078 title: t, 8079 firstname: n, 8080 lastname: r, 8081 email: o, 8082 mobile: i, 8083 constituency: a, 8084 address1: s, 8085 address2: u, 8086 address3: l, 8087 address4: c, 8088 eircode: h, 8089 comments: d, 8090 fee: p, 8091 affiliation_status: g, 8092 receiveInfo: m, 8093 _wpnonce: f 8094 }; 8095 jQuery.post("/app/themes/finegael/app/form-actions/members-hub/submit-membership-renewal.php", y, function(t) { 8096 if ("success" == t.return) 8097 window.location.href = "/members-hub/membership/renewal/payment/"; 8098 else if ("email_exists" == t.return) { 8099 var e = "<div class='failure'><h2>Sorry</h2><p>This email address is already registered</p></div>"; 8100 jQuery(".bs-callout-warning").toggleClass("hidden", !1), 8101 jQuery(".bs-callout-warning").html(e), 8102 jQuery("html, body").animate({ 8103 scrollTop: jQuery(".failure").offset().top 8104 }, "fast") 8105 } else { 8106 var e = "<div class='failure'><h2>Sorry</h2><p>Something went wrong, please try again</p></div>"; 8107 jQuery(".bs-callout-warning").toggleClass("hidden", !1), 8108 jQuery(".bs-callout-warning").html(e), 8109 jQuery("html, body").animate({ 8110 scrollTop: jQuery(".failure").offset().top 8111 }, "fast") 8112 } 8113 }) 8114 }), 8115 jQuery("#form-admin-nonmember-event-registration").length && jQuery("#form-admin-nonmember-event-registration").parsley().on("field:validated", function() { 8116 0 === jQuery(".parsley-error").length ? jQuery(".bs-callout-warning").attr("class", "bs-callout-warning hidden") : (jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-warning"), 8117 jQuery(".bs-callout-warning").html("<p>There are errors on the form. Please fix them before continuing </p>")) 8118 }).on("form:submit", function() { 8119 var t = { 8120 category: jQuery("#category").val(), 8121 title: jQuery("#prefix").val(), 8122 firstname: jQuery("#firstname").val(), 8123 surname: jQuery("#surname").val(), 8124 email: jQuery("#email").val(), 8125 phone: jQuery("#phone").val(), 8126 address1: jQuery("#address-1").val(), 8127 address2: jQuery("#address-2").val(), 8128 address3: jQuery("#address-3").val(), 8129 address4: jQuery("#address-4").val(), 8130 address5: jQuery("#address-5").val(), 8131 company: jQuery("#company").val(), 8132 _wpnonce: jQuery("#_wpnonce").val(), 8133 wheelchair: jQuery("input#wheelchair").is(":checked") ? "YES" : "NO", 8134 friday: jQuery("input#friday").is(":checked") ? "YES" : "NO", 8135 saturday: jQuery("input#saturday").is(":checked") ? "YES" : "NO", 8136 leader_speech: jQuery("input#leader-speech").is(":checked") ? "YES" : "NO" 8137 }; 8138 jQuery.post("/app/themes/finegael/app/form-actions/members-hub/submit-admin-nonmember-event-registration.php", t, function(t) { 8139 var e = t.response; 8140 if ("success" === t.return) { 8141 var n = "<p>Registration is completed.</p><br><p>Print Pass?</p><button class='btn btn-default' onClick='printMemberPass(" + JSON.stringify(e).replace(/'/g, "#") + ")'>Yes</button> <button class='btn btn-default' onClick='window.location.reload()'>No</button><div id='container-barcode' style='display: none;'><svg id='barcode'></svg></div>"; 8142 jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-success"), 8143 jQuery(".bs-callout-warning").html(n), 8144 jQuery("form#form-admin-nonmember-event-registration").css("display", "none") 8145 } else { 8146 var n = "<h4>Something's not right!</h4>"; 8147 jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-error"), 8148 jQuery(".bs-callout-warning").html(n) 8149 } 8150 }) 8151 }), 8152 jQuery("#form-events-admin-member-registration").length && jQuery("#form-events-admin-member-registration").parsley().on("field:validated", function() { 8153 0 === jQuery(".parsley-error").length ? jQuery(".bs-callout-warning").attr("class", "bs-callout-warning hidden") : (jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-warning"), 8154 jQuery(".bs-callout-warning").html("<p>There are errors on the form. Please fix them before continuing </p>")) 8155 }).on("form:submit", function() { 8156 var t = ""; 8157 switch (jQuery("#title").val()) { 8158 case "Mr.": 8159 t = 1; 8160 break; 8161 case "Ms.": 8162 t = 2; 8163 break; 8164 case "Mrs.": 8165 t = 3; 8166 break; 8167 case "Cllr.": 8168 t = 4; 8169 break; 8170 case "Dr.": 8171 t = 5; 8172 break; 8173 case "Sen.": 8174 t = 6; 8175 break;
8176 case "Rev.": 8177 t = 7; 8178 break; 8179 case "Fr.": 8180 t = 8; 8181 break; 8182 case "Prof.": 8183 t = 9; 8184 break; 8185 case "Sr.": 8186 t = 10; 8187 break; 8188 case "Lt.": 8189 t = 11; 8190 break; 8191 case "Capt.": 8192 t = 12; 8193 break; 8194 case "Lt. Col.": 8195 t = 13; 8196 break; 8197 case "An tUas": 8198 t = 15; 8199 break; 8200 case "Col.": 8201 t = 16; 8202 break; 8203 case "The": 8204 t = 17; 8205 break; 8206 case "Ald.": 8207 t = 18; 8208 break; 8209 case "Minister": 8210 t = 19; 8211 break; 8212 case "His Excellency": 8213 t = 20; 8214 break; 8215 case "Her Excellency": 8216 t = 21; 8217 break; 8218 case "Miss": 8219 t = 22; 8220 break; 8221 case "Mx.": 8222 t = 23 8223 } 8224 var e = { 8225 title: t, 8226 firstname: jQuery("#firstname").val(), 8227 constituency: jQuery("#constituency").val(), 8228 surname: jQuery("#surname").val(), 8229 email: jQuery("#email").val(), 8230 phone: jQuery("#phone").val(), 8231 address1: jQuery("#address-1").val(), 8232 address2: jQuery("#address-2").val(), 8233 address3: jQuery("#address-3").val(), 8234 address4: jQuery("#address-4").val(), 8235 address5: jQuery("#address-5").val(), 8236 _wpnonce: jQuery("#_wpnonce").val(), 8237 wheelchair: jQuery("input#wheelchair").is(":checked") ? "YES" : "NO", 8238 mid: jQuery("#mid").val(), 8239 friday: jQuery("input#friday").is(":checked") ? "YES" : "NO", 8240 saturday: jQuery("input#saturday").is(":checked") ? "YES" : "NO", 8241 leader_speech: jQuery("input#leader-speech").is(":checked") ? "YES" : "NO" 8242 }; 8243 jQuery.post("/app/themes/finegael/app/form-actions/members-hub/submit-admin-events-register.php", e, function(t) { 8244 var e = t.response 8245 , n = "" 8246 , r = jQuery(".bs-callout-warning"); 8247 "success" === t.return ? (n = "<p>The member is registered to attend our National Conference.</p><br><p>Print Pass?</p><button class='btn btn-default' onClick='printMemberPass(" + JSON.stringify(e).replace(/'/g, "#") + ")'>Yes</button> <button class='btn btn-default' onClick='window.location.reload()'>No</button><div id='container-barcode' style='display: none;'><svg id='barcode'></svg></div>", 8248 r.attr("class", "bs-callout-warning alert alert-success")) : "alreadyRegistered" === t.return ? (n = "<p>This member has been re-registered to attend our National Conference.</p><br><p>Print Pass?</p><button class='btn btn-default' onClick='printMemberPass(" + JSON.stringify(e).replace(/'/g, "#") + ")'>Yes</button> <button class='btn btn-default' onClick='window.location.reload()'>No</button><br><div id='container-barcode' style='display: none;'><svg id='barcode'></svg></div>", 8249 r.attr("class", "bs-callout-warning alert alert-warning")) : (n = "<p>Something went wrong. Please try again.</p>", 8250 r.attr("class", "bs-callout-warning alert alert-danger")), 8251 r.html(n), 8252 jQuery("form#form-events-admin-member-registration").css("display", "none") 8253 }) 8254 }), 8255 jQuery("#form-membershub-events-admin").length && jQuery("#form-membershub-events-admin").parsley().on("field:validated", function() { 8256 0 === jQuery(".parsley-error").length ? jQuery(".bs-callout-warning").attr("class", "bs-callout-warning hidden") : (jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-warning"), 8257 jQuery(".bs-callout-warning").html("<p>There are errors on the form. Please fix them before continuing </p>")) 8258 }).on("form:submit", function() { 8259 var t = { 8260 firstname: jQuery("#fname").val(), 8261 surname: jQuery("#surname").val(), 8262 constituencyPrefix: jQuery("#constituency-prefix").val() 8263 }; 8264 window.location.href = "/members-hub/admin-search-result/?fname=" + t.firstname + "&surname=" + t.surname + "&prefix=" + t.constituencyPrefix 8265 }), 8266 jQuery("#form-nonmember-event-registration").length && jQuery("#form-nonmember-event-registration").parsley().on("field:validated", function() { 8267 0 === jQuery(".parsley-error").length ? jQuery(".bs-callout-warning").attr("class", "bs-callout-warning hidden") : (jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-warning"), 8268 jQuery(".bs-callout-warning").html("<p>There are errors on the form. Please fix them before continuing </p>")) 8269 }).on("form:submit", function() { 8270 var t = { 8271 title: jQuery("#prefix").val(), 8272 firstname: jQuery("#firstname").val(), 8273 surname: jQuery("#surname").val(), 8274 email: jQuery("#email").val(), 8275 phone: jQuery("#phone").val(), 8276 address1: jQuery("#address-1").val(), 8277 address2: jQuery("#address-2").val(), 8278 address3: jQuery("#address-3").val(), 8279 address4: jQuery("#address-4").val(), 8280 address5: jQuery("#address-5").val(), 8281 _wpnonce: jQuery("#_wpnonce").val(), 8282 wheelchair: jQuery("input#wheelchair").is(":checked") ? "YES" : "NO", 8283 mid: jQuery("#mid").val(), 8284 friday: jQuery("input#friday").is(":checked") ? "YES" : "NO", 8285 saturday: jQuery("input#saturday").is(":checked") ? "YES" : "NO", 8286 leader_speech: jQuery("input#leader-speech").is(":checked") ? "YES" : "NO" 8287 }; 8288 console.log(t), 8289 jQuery.post("/app/themes/finegael/app/form-actions/members-hub/submit-nonmember-event-registration.php", t, function(t) { 8290 if ("success" == t.return) { 8291 var e = "<p>Thank you for registering to attend our National Conference.</p><p>We will send an email to confirm that weâve received your registration. (If you donât receive an email, please check your Spam/Junk folder)</p><p>Please click <a href='/members-hub/events/national-conference/'>here</a>, if you want more information on the National Conference.</p><p>If you would like to add a spouse or friend to attend, please click <a href='/members-hub/non-member-event-registration/'>here</a></p><p>If you have any queries, you can contact us by email (<a href='mailto:[email protected]'>[email protected]</a>) or at 01-6198466</p>"; 8292 jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-success"), 8293 jQuery(".bs-callout-warning").html(e), 8294 jQuery("form#form-nonmember-event-registration").css("display", "none") 8295 } else { 8296 var e = "<h4>Something's not right!</h4><p>Please contact Fine Gael by email <a href='mailto:[email protected]'>[email protected]</a> or Phone 01 6198444</p>"; 8297 jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-error"), 8298 jQuery(".bs-callout-warning").html(e) 8299 } 8300 }) 8301 }), 8302 jQuery("#form-national-conf-registration").length && jQuery("#form-national-conf-registration").parsley().on("field:validated", function() { 8303 0 === jQuery(".parsley-error").length ? jQuery(".bs-callout-warning").attr("class", "bs-callout-warning hidden") : (jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-warning"), 8304 jQuery(".bs-callout-warning").html("<p>There are errors on the form. Please fix them before continuing </p>")) 8305 }).on("form:submit", function() { 8306 var t = { 8307 title: jQuery("#title").val(), 8308 firstname: jQuery("#firstname").val(), 8309 constituency: jQuery("#constituency").val(), 8310 surname: jQuery("#surname").val(), 8311 email: jQuery("#email").val(), 8312 phone: jQuery("#phone").val(), 8313 address1: jQuery("#address-1").val(), 8314 address2: jQuery("#address-2").val(), 8315 address3: jQuery("#address-3").val(), 8316 address4: jQuery("#address-4").val(), 8317 address5: jQuery("#address-5").val(), 8318 _wpnonce: jQuery("#_wpnonce").val(), 8319 wheelchair: jQuery("input#wheelchair").is(":checked") ? "YES" : "NO", 8320 mid: jQuery("#mid").val(), 8321 friday: jQuery("input#friday").is(":checked") ? "YES" : "NO", 8322 saturday: jQuery("input#saturday").is(":checked") ? "YES" : "NO", 8323 leader_speech: jQuery("input#leader-speech").is(":checked") ? "YES" : "NO", 8324 event: "National conference" 8325 }; 8326 jQuery.post("/app/themes/finegael/app/form-actions/members-hub/submit-event-registration.php", t, function(t) { 8327 if ("success" == t.return) { 8328 var e = "<p>Thank you for registering to attend our National Conference.</p><p>We will send an email to confirm that weâve received your registration. (If you donât receive an email, please check your Spam/Junk folder)</p><p>Please click <a href='/members-hub/events/national-conference/'>here</a>, if you want more information on the National Conference.</p><p>If you would like to add a spouse or friend to attend, please click <a href='/members-hub/non-member-event-registration/'>here</a></p><p>If you have any queries, you can contact us by email (<a href='mailto:[email protected]'>[email protected]</a>) or at 01-6198466</p>"; 8329 jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-success"), 8330 jQuery(".bs-callout-warning").html(e), 8331 jQuery("form#form-national-conf-registration").css("display", "none") 8332 } else if ("alreadyRegistered" == t.return) { 8333 var e = "<p>You have already registered to attend our National Conference.</p>"; 8334 jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-warning"), 8335 jQuery(".bs-callout-warning").html(e), 8336 jQuery("form#form-national-conf-registration").css("display", "none") 8337 } else { 8338 var e = "<p>Something went wrong. Please try again.</p>"; 8339 jQuery(".bs-callout-warning").attr("class", "bs-callout-warning alert alert-danger"), 8340 jQuery(".bs-callout-warning").html(e), 8341 jQuery("form#form-national-conf-registration").css("display", "none") 8342 } 8343 }) 8344 }) 8345}), 8346/*! 8347 * typeahead.js 0.11.1 8348 * https://github.com/twitter/typeahead.js 8349 * Copyright 2013-2015 Twitter, Inc. and other contributors; Licensed MIT 8350 */ 8351function(t, e) { 8352 "function" == typeof define && define.amd ? define("bloodhound", ["jquery"], function(n) { 8353 return t.Bloodhound = e(n) 8354 }) : "object" == typeof exports ? module.exports = e(require("jquery")) : t.Bloodhound = e(jQuery) 8355}(this, function(t) { 8356 var e = function() { 8357 "use strict"; 8358 return { 8359 isMsie: function() { 8360 return !!/(msie|trident)/i.test(navigator.userAgent) && navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2] 8361 }, 8362 isBlankString: function(t) { 8363 return !t || /^\s*$/.test(t) 8364 }, 8365 escapeRegExChars: function(t) { 8366 return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&") 8367 }, 8368 isString: function(t) { 8369 return "string" == typeof t 8370 }, 8371 isNumber: function(t) { 8372 return "number" == typeof t 8373 }, 8374 isArray: t.isArray, 8375 isFunction: t.isFunction, 8376 isObject: t.isPlainObject, 8377 isUndefined: function(t) { 8378 return void 0 === t 8379 }, 8380 isElement: function(t) { 8381 return !(!t || 1 !== t.nodeType) 8382 }, 8383 isJQuery: function(e) { 8384 return e instanceof t 8385 }, 8386 toStr: function(t) { 8387 return e.isUndefined(t) || null === t ? "" : t + "" 8388 }, 8389 bind: t.proxy, 8390 each: function(e, n) { 8391 t.each(e, r); 8392 function r(t, e) { 8393 return n(e, t) 8394 } 8395 }, 8396 map: t.map, 8397 filter: t.grep, 8398 every: function(e, n) { 8399 var r = !0; 8400 return e ? (t.each(e, function(t, i) { 8401 if (!(r = n.call(null, i, t, e))) 8402 return !1 8403 }), 8404 !!r) : r 8405 }, 8406 some: function(e, n) { 8407 var r = !1; 8408 return e ? (t.each(e, function(t, i) { 8409 if (r = n.call(null, i, t, e)) 8410 return !1 8411 }), 8412 !!r) : r 8413 }, 8414 mixin: t.extend, 8415 identity: function(t) { 8416 return t 8417 }, 8418 clone: function(e) { 8419 return t.extend(!0, {}, e) 8420 }, 8421 getIdGenerator: function() { 8422 var t = 0; 8423 return function() { 8424 return t++ 8425 } 8426 }, 8427 templatify: function(e) { 8428 return t.isFunction(e) ? e : n; 8429 function n() { 8430 return String(e) 8431 } 8432 }, 8433 defer: function(t) { 8434 setTimeout(t, 0) 8435 }, 8436 debounce: function(t, e, n) { 8437 var r, i; 8438 return function() { 8439 var o, a, s = this, u = arguments; 8440 return o = function() { 8441 r = null, 8442 n || (i = t.apply(s, u)) 8443 } 8444 , 8445 a = n && !r, 8446 clearTimeout(r), 8447 r = setTimeout(o, e), 8448 a && (i = t.apply(s, u)), 8449 i 8450 } 8451 }, 8452 throttle: function(t, e) { 8453 var n, r, i, o, a, s; 8454 return a = 0, 8455 s = function() { 8456 a = new Date, 8457 i = null, 8458 o = t.apply(n, r) 8459 } 8460 , 8461 function() { 8462 var u = new Date 8463 , l = e - (u - a); 8464 return n = this, 8465 r = arguments, 8466 l <= 0 ? (clearTimeout(i), 8467 i = null, 8468 a = u, 8469 o = t.apply(n, r)) : i || (i = setTimeout(s, l)), 8470 o 8471 } 8472 },
vendor: 5,789 bytes, lines 8473-8657
8473 stringify: function(t) { 8474 return e.isString(t) ? t : JSON.stringify(t) 8475 }, 8476 noop: function() {} 8477 } 8478 }() 8479 , n = "0.11.1" 8480 , r = function() { 8481 "use strict"; 8482 return { 8483 nonword: n, 8484 whitespace: t, 8485 obj: { 8486 nonword: r(n), 8487 whitespace: r(t) 8488 } 8489 }; 8490 function t(t) { 8491 return t = e.toStr(t), 8492 t ? t.split(/\s+/) : [] 8493 } 8494 function n(t) { 8495 return t = e.toStr(t), 8496 t ? t.split(/\W+/) : [] 8497 } 8498 function r(t) { 8499 return function(n) { 8500 return n = e.isArray(n) ? n : [].slice.call(arguments, 0), 8501 function(r) { 8502 var i = []; 8503 return e.each(n, function(n) { 8504 i = i.concat(t(e.toStr(r[n]))) 8505 }), 8506 i 8507 } 8508 } 8509 } 8510 }() 8511 , i = function() { 8512 "use strict"; 8513 function n(n) { 8514 this.maxSize = e.isNumber(n) ? n : 100, 8515 this.reset(), 8516 this.maxSize <= 0 && (this.set = this.get = t.noop) 8517 } 8518 e.mixin(n.prototype, { 8519 set: function(t, e) { 8520 var n, r = this.list.tail; 8521 this.size >= this.maxSize && (this.list.remove(r), 8522 delete this.hash[r.key], 8523 this.size--), 8524 (n = this.hash[t]) ? (n.val = e, 8525 this.list.moveToFront(n)) : (n = new i(t,e), 8526 this.list.add(n), 8527 this.hash[t] = n, 8528 this.size++) 8529 }, 8530 get: function(t) { 8531 var e = this.hash[t]; 8532 if (e) 8533 return this.list.moveToFront(e), 8534 e.val 8535 }, 8536 reset: function() { 8537 this.size = 0, 8538 this.hash = {}, 8539 this.list = new r 8540 } 8541 }); 8542 function r() { 8543 this.head = this.tail = null 8544 } 8545 e.mixin(r.prototype, { 8546 add: function(t) { 8547 this.head && (t.next = this.head, 8548 this.head.prev = t), 8549 this.head = t, 8550 this.tail = this.tail || t 8551 }, 8552 remove: function(t) { 8553 t.prev ? t.prev.next = t.next : this.head = t.next, 8554 t.next ? t.next.prev = t.prev : this.tail = t.prev 8555 }, 8556 moveToFront: function(t) { 8557 this.remove(t), 8558 this.add(t) 8559 } 8560 }); 8561 function i(t, e) { 8562 this.key = t, 8563 this.val = e, 8564 this.prev = this.next = null 8565 } 8566 return n 8567 }() 8568 , o = function() { 8569 "use strict"; 8570 var n; 8571 try { 8572 n = window.localStorage, 8573 n.setItem("~~~", "!"), 8574 n.removeItem("~~~") 8575 } catch (t) { 8576 n = null 8577 } 8578 function r(t, r) { 8579 this.prefix = ["__", t, "__"].join(""), 8580 this.ttlKey = "__ttl__", 8581 this.keyMatcher = new RegExp("^" + e.escapeRegExChars(this.prefix)), 8582 this.ls = r || n, 8583 !this.ls && this._noop() 8584 } 8585 return e.mixin(r.prototype, { 8586 _prefix: function(t) { 8587 return this.prefix + t 8588 }, 8589 _ttlKey: function(t) { 8590 return this._prefix(t) + this.ttlKey 8591 }, 8592 _noop: function() { 8593 this.get = this.set = this.remove = this.clear = this.isExpired = e.noop 8594 }, 8595 _safeSet: function(t, e) { 8596 try { 8597 this.ls.setItem(t, e) 8598 } catch (t) { 8599 "QuotaExceededError" === t.name && (this.clear(), 8600 this._noop()) 8601 } 8602 }, 8603 get: function(t) { 8604 return this.isExpired(t) && this.remove(t), 8605 a(this.ls.getItem(this._prefix(t))) 8606 }, 8607 set: function(t, n, r) { 8608 return e.isNumber(r) ? this._safeSet(this._ttlKey(t), o(i() + r)) : this.ls.removeItem(this._ttlKey(t)), 8609 this._safeSet(this._prefix(t), o(n)) 8610 }, 8611 remove: function(t) { 8612 return this.ls.removeItem(this._ttlKey(t)), 8613 this.ls.removeItem(this._prefix(t)), 8614 this 8615 }, 8616 clear: function() { 8617 var t, e = s(this.keyMatcher); 8618 for (t = e.length; t--; ) 8619 this.remove(e[t]); 8620 return this 8621 }, 8622 isExpired: function(t) { 8623 var n = a(this.ls.getItem(this._ttlKey(t))); 8624 return !!(e.isNumber(n) && i() > n) 8625 } 8626 }), 8627 r; 8628 function i() { 8629 return (new Date).getTime() 8630 } 8631 function o(t) { 8632 return JSON.stringify(e.isUndefined(t) ? null : t) 8633 } 8634 function a(e) { 8635 return t.parseJSON(e) 8636 } 8637 function s(t) { 8638 var e, r, i = [], o = n.length; 8639 for (e = 0; e < o; e++) 8640 (r = n.key(e)).match(t) && i.push(r.replace(t, "")); 8641 return i 8642 } 8643 }() 8644 , a = function() { 8645 "use strict"; 8646 var n = 0 8647 , r = {} 8648 , o = 6 8649 , a = new i(10); 8650 function s(t) { 8651 t = t || {}, 8652 this.cancelled = !1, 8653 this.lastReq = null, 8654 this._send = t.transport, 8655 this._get = t.limiter ? t.limiter(this._get) : this._get, 8656 this._cache = !1 === t.cache ? new i(0) : a 8657 }
8658 return s.setMaxPendingRequests = function(t) { 8659 o = t 8660 } 8661 , 8662 s.resetCache = function() { 8663 a.reset() 8664 } 8665 , 8666 e.mixin(s.prototype, { 8667 _fingerprint: function(e) { 8668 return e = e || {}, 8669 e.url + e.type + t.param(e.data || {}) 8670 }, 8671 _get: function(t, e) { 8672 var i, a, s = this; 8673 i = this._fingerprint(t); 8674 function u(t) { 8675 e(null, t), 8676 s._cache.set(i, t) 8677 } 8678 function l() { 8679 e(!0) 8680 } 8681 function c() { 8682 n--, 8683 delete r[i], 8684 s.onDeckRequestArgs && (s._get.apply(s, s.onDeckRequestArgs), 8685 s.onDeckRequestArgs = null) 8686 } 8687 this.cancelled || i !== this.lastReq || ((a = r[i]) ? a.done(u).fail(l) : n < o ? (n++, 8688 r[i] = this._send(t).done(u).fail(l).always(c)) : this.onDeckRequestArgs = [].slice.call(arguments, 0)) 8689 }, 8690 get: function(n, r) { 8691 var i, o; 8692 r = r || t.noop, 8693 n = e.isString(n) ? { 8694 url: n 8695 } : n || {}, 8696 o = this._fingerprint(n), 8697 this.cancelled = !1, 8698 this.lastReq = o, 8699 (i = this._cache.get(o)) ? r(null, i) : this._get(n, r) 8700 }, 8701 cancel: function() { 8702 this.cancelled = !0 8703 } 8704 }), 8705 s 8706 }() 8707 , s = window.SearchIndex = function() { 8708 "use strict"; 8709 var n = "c" 8710 , r = "i"; 8711 function i(n) { 8712 n = n || {}, 8713 n.datumTokenizer && n.queryTokenizer || t.error("datumTokenizer and queryTokenizer are both required"), 8714 this.identify = n.identify || e.stringify, 8715 this.datumTokenizer = n.datumTokenizer, 8716 this.queryTokenizer = n.queryTokenizer, 8717 this.reset() 8718 } 8719 return e.mixin(i.prototype, { 8720 bootstrap: function(t) { 8721 this.datums = t.datums, 8722 this.trie = t.trie 8723 }, 8724 add: function(t) { 8725 var i = this; 8726 t = e.isArray(t) ? t : [t], 8727 e.each(t, function(t) { 8728 var s, u; 8729 i.datums[s = i.identify(t)] = t, 8730 u = o(i.datumTokenizer(t)), 8731 e.each(u, function(t) { 8732 var e, o, u; 8733 for (e = i.trie, 8734 o = t.split(""); u = o.shift(); ) 8735 e = e[n][u] || (e[n][u] = a()), 8736 e[r].push(s) 8737 }) 8738 }) 8739 }, 8740 get: function(t) { 8741 var n = this; 8742 return e.map(t, function(t) { 8743 return n.datums[t] 8744 }) 8745 }, 8746 search: function(t) { 8747 var i, a, l = this; 8748 return i = o(this.queryTokenizer(t)), 8749 e.each(i, function(t) { 8750 var e, i, o, s; 8751 if (a && 0 === a.length) 8752 return !1; 8753 for (e = l.trie, 8754 i = t.split(""); e && (o = i.shift()); ) 8755 e = e[n][o]; 8756 if (!e || 0 !== i.length) 8757 return a = [], 8758 !1; 8759 s = e[r].slice(0), 8760 a = a ? u(a, s) : s 8761 }), 8762 a ? e.map(s(a), function(t) { 8763 return l.datums[t] 8764 }) : [] 8765 }, 8766 all: function() { 8767 var t = []; 8768 for (var e in this.datums) 8769 t.push(this.datums[e]); 8770 return t 8771 }, 8772 reset: function() { 8773 this.datums = {}, 8774 this.trie = a() 8775 }, 8776 serialize: function() { 8777 return { 8778 datums: this.datums, 8779 trie: this.trie 8780 } 8781 } 8782 }), 8783 i; 8784 function o(t) { 8785 return t = e.filter(t, function(t) { 8786 return !!t 8787 }), 8788 t = e.map(t, function(t) { 8789 return t.toLowerCase() 8790 }) 8791 } 8792 function a() { 8793 var t = {}; 8794 return t[r] = [], 8795 t[n] = {}, 8796 t 8797 } 8798 function s(t) { 8799 for (var e = {}, n = [], r = 0, i = t.length; r < i; r++) 8800 e[t[r]] || (e[t[r]] = !0, 8801 n.push(t[r])); 8802 return n 8803 } 8804 function u(t, e) { 8805 var n = 0 8806 , r = 0 8807 , i = []; 8808 t = t.sort(), 8809 e = e.sort(); 8810 for (var o = t.length, a = e.length; n < o && r < a; ) 8811 t[n] < e[r] ? n++ : t[n] >
vendor: 5,744 bytes, lines 8811-8987
8811 e[r] ? r++ : (i.push(t[n]), 8812 n++, 8813 r++); 8814 return i 8815 } 8816 }() 8817 , u = function() { 8818 "use strict"; 8819 var t; 8820 t = { 8821 data: "data", 8822 protocol: "protocol", 8823 thumbprint: "thumbprint" 8824 }; 8825 function n(t) { 8826 this.url = t.url, 8827 this.ttl = t.ttl, 8828 this.cache = t.cache, 8829 this.prepare = t.prepare, 8830 this.transform = t.transform, 8831 this.transport = t.transport, 8832 this.thumbprint = t.thumbprint, 8833 this.storage = new o(t.cacheKey) 8834 } 8835 return e.mixin(n.prototype, { 8836 _settings: function() { 8837 return { 8838 url: this.url, 8839 type: "GET", 8840 dataType: "json" 8841 } 8842 }, 8843 store: function(e) { 8844 this.cache && (this.storage.set(t.data, e, this.ttl), 8845 this.storage.set(t.protocol, location.protocol, this.ttl), 8846 this.storage.set(t.thumbprint, this.thumbprint, this.ttl)) 8847 }, 8848 fromCache: function() { 8849 var e, n = {}; 8850 return this.cache ? (n.data = this.storage.get(t.data), 8851 n.protocol = this.storage.get(t.protocol), 8852 n.thumbprint = this.storage.get(t.thumbprint), 8853 e = n.thumbprint !== this.thumbprint || n.protocol !== location.protocol, 8854 n.data && !e ? n.data : null) : null 8855 }, 8856 fromNetwork: function(t) { 8857 var e, n = this; 8858 function r() { 8859 t(!0) 8860 } 8861 function i(e) { 8862 t(null, n.transform(e)) 8863 } 8864 t && (e = this.prepare(this._settings()), 8865 this.transport(e).fail(r).done(i)) 8866 }, 8867 clear: function() { 8868 return this.storage.clear(), 8869 this 8870 } 8871 }), 8872 n 8873 }() 8874 , l = function() { 8875 "use strict"; 8876 function t(t) { 8877 this.url = t.url, 8878 this.prepare = t.prepare, 8879 this.transform = t.transform, 8880 this.transport = new a({ 8881 cache: t.cache, 8882 limiter: t.limiter, 8883 transport: t.transport 8884 }) 8885 } 8886 return e.mixin(t.prototype, { 8887 _settings: function() { 8888 return { 8889 url: this.url, 8890 type: "GET", 8891 dataType: "json" 8892 } 8893 }, 8894 get: function(t, e) { 8895 var n, r = this; 8896 function i(t, n) { 8897 e(t ? [] : r.transform(n)) 8898 } 8899 if (e) 8900 return t = t || "", 8901 n = this.prepare(t, this._settings()), 8902 this.transport.get(n, i) 8903 }, 8904 cancelLastRequest: function() { 8905 this.transport.cancel() 8906 } 8907 }), 8908 t 8909 }() 8910 , c = function() { 8911 "use strict"; 8912 return function(n) { 8913 var o, a; 8914 return o = { 8915 initialize: !0, 8916 identify: e.stringify, 8917 datumTokenizer: null, 8918 queryTokenizer: null, 8919 sufficient: 5, 8920 sorter: null, 8921 local: [], 8922 prefetch: null, 8923 remote: null 8924 }, 8925 n = e.mixin(o, n || {}), 8926 !n.datumTokenizer && t.error("datumTokenizer is required"), 8927 !n.queryTokenizer && t.error("queryTokenizer is required"), 8928 a = n.sorter, 8929 n.sorter = a ? function(t) { 8930 return t.sort(a) 8931 } 8932 : e.identity, 8933 n.local = e.isFunction(n.local) ? n.local() : n.local, 8934 n.prefetch = r(n.prefetch), 8935 n.remote = i(n.remote), 8936 n 8937 } 8938 ; 8939 function r(r) { 8940 var i; 8941 return r ? (i = { 8942 url: null, 8943 ttl: 864e5, 8944 cache: !0, 8945 cacheKey: null, 8946 thumbprint: "", 8947 prepare: e.identity, 8948 transform: e.identity, 8949 transport: null 8950 }, 8951 r = e.isString(r) ? { 8952 url: r 8953 } : r, 8954 r = e.mixin(i, r), 8955 !r.url && t.error("prefetch requires url to be set"), 8956 r.transform = r.filter || r.transform, 8957 r.cacheKey = r.cacheKey || r.url, 8958 r.thumbprint = n + r.thumbprint, 8959 r.transport = r.transport ? s(r.transport) : t.ajax, 8960 r) : null 8961 } 8962 function i(n) { 8963 var r; 8964 if (n) 8965 return r = { 8966 url: null, 8967 cache: !0, 8968 prepare: null, 8969 replace: null, 8970 wildcard: null, 8971 limiter: null, 8972 rateLimitBy: "debounce", 8973 rateLimitWait: 300, 8974 transform: e.identity, 8975 transport: null 8976 }, 8977 n = e.isString(n) ? { 8978 url: n 8979 } : n, 8980 n = e.mixin(r, n), 8981 !n.url && t.error("remote requires url to be set"), 8982 n.transform = n.filter || n.transform, 8983 n.prepare = o(n), 8984 n.limiter = a(n), 8985 n.transport = n.transport ? s(n.transport) : t.ajax, 8986 delete n.replace, 8987 delete n.wildcard,
8988 delete n.rateLimitBy, 8989 delete n.rateLimitWait, 8990 n 8991 } 8992 function o(t) { 8993 var e, n, r; 8994 return e = t.prepare, 8995 n = t.replace, 8996 r = t.wildcard, 8997 e || (e = n ? i : t.wildcard ? o : a); 8998 function i(t, e) { 8999 return e.url = n(e.url, t), 9000 e 9001 } 9002 function o(t, e) { 9003 return e.url = e.url.replace(r, encodeURIComponent(t)), 9004 e 9005 } 9006 function a(t, e) { 9007 return e 9008 } 9009 } 9010 function a(t) { 9011 var n, r, i; 9012 return n = t.limiter, 9013 r = t.rateLimitBy, 9014 i = t.rateLimitWait, 9015 n || (n = /^throttle$/i.test(r) ? function(t) { 9016 return function n(r) { 9017 return e.throttle(r, t) 9018 } 9019 }(i) : function(t) { 9020 return function n(r) { 9021 return e.debounce(r, t) 9022 } 9023 }(i)), 9024 n 9025 } 9026 function s(n) { 9027 return function(r) { 9028 var i = t.Deferred(); 9029 return n(r, o, a), 9030 i; 9031 function o(t) { 9032 e.defer(function() { 9033 i.resolve(t) 9034 }) 9035 } 9036 function a(t) { 9037 e.defer(function() { 9038 i.reject(t) 9039 }) 9040 } 9041 } 9042 } 9043 }(); 9044 return function() { 9045 "use strict"; 9046 var n; 9047 n = window && window.Bloodhound; 9048 function i(t) { 9049 t = c(t), 9050 this.sorter = t.sorter, 9051 this.identify = t.identify, 9052 this.sufficient = t.sufficient, 9053 this.local = t.local, 9054 this.remote = t.remote ? new l(t.remote) : null, 9055 this.prefetch = t.prefetch ? new u(t.prefetch) : null, 9056 this.index = new s({ 9057 identify: this.identify, 9058 datumTokenizer: t.datumTokenizer, 9059 queryTokenizer: t.queryTokenizer 9060 }), 9061 !1 !== t.initialize && this.initialize() 9062 } 9063 return i.noConflict = function() { 9064 return window && (window.Bloodhound = n), 9065 i 9066 } 9067 , 9068 i.tokenizers = r, 9069 e.mixin(i.prototype, {
9070 __ttAdapter: function() { 9071 var t = this; 9072 return this.remote ? e : n; 9073 function e(e, n, r) { 9074 return t.search(e, n, r) 9075 } 9076 function n(e, n) { 9077 return t.search(e, n) 9078 } 9079 }, 9080 _loadPrefetch: function() { 9081 var e, n, r = this; 9082 return e = t.Deferred(), 9083 this.prefetch ? (n = this.prefetch.fromCache()) ? (this.index.bootstrap(n), 9084 e.resolve()) : this.prefetch.fromNetwork(i) : e.resolve(), 9085 e.promise(); 9086 function i(t, n) { 9087 if (t) 9088 return e.reject(); 9089 r.add(n), 9090 r.prefetch.store(r.index.serialize()), 9091 e.resolve() 9092 } 9093 }, 9094 _initialize: function() { 9095 var t = this; 9096 return this.clear(), 9097 (this.initPromise = this._loadPrefetch()).done(e), 9098 this.initPromise; 9099 function e() { 9100 t.add(t.local) 9101 } 9102 }, 9103 initialize: function(t) { 9104 return !this.initPromise || t ? this._initialize() : this.initPromise 9105 }, 9106 add: function(t) { 9107 return this.index.add(t), 9108 this 9109 }, 9110 get: function(t) { 9111 return t = e.isArray(t) ? t : [].slice.call(arguments), 9112 this.index.get(t) 9113 }, 9114 search: function(t, n, r) { 9115 var i, o = this; 9116 return i = this.sorter(this.index.search(t)), 9117 n(this.remote ? i.slice() : i), 9118 this.remote && i.length < this.sufficient ? this.remote.get(t, a) : this.remote && this.remote.cancelLastRequest(), 9119 this; 9120 function a(t) { 9121 var n = []; 9122 e.each(t, function(t) { 9123 !e.some(i, function(e) { 9124 return o.identify(t) === o.identify(e) 9125 }) && n.push(t) 9126 }), 9127 r && r(n) 9128 } 9129 }, 9130 all: function() { 9131 return this.index.all() 9132 }, 9133 clear: function() { 9134 return this.index.reset(), 9135 this 9136 }, 9137 clearPrefetchCache: function() { 9138 return this.prefetch && this.prefetch.clear(), 9139 this 9140 }, 9141 clearRemoteCache: function() { 9142 return a.resetCache(), 9143 this 9144 },
9145 ttAdapter: function() { 9146 return this.__ttAdapter() 9147 } 9148 }), 9149 i 9150 }() 9151}), 9152jQuery(function() { 9153 jQuery('a[href*="#"]:not([href="#"])').click(function() { 9154 if (location.pathname.replace(/^\//, "") == this.pathname.replace(/^\//, "") && location.hostname == this.hostname) { 9155 var t = jQuery(this.hash); 9156 if (t = t.length ? t : jQuery("[name=" + this.hash.slice(1) + "]"), 9157 t.length) 9158 return jQuery("html, body").animate({ 9159 scrollTop: t.offset().top 9160 }, 1e3), 9161 !1 9162 } 9163 }) 9164}), 9165jQuery(window).bind("scroll", function() { 9166 jQuery(window).scrollTop() > 55 && jQuery(window).width() >= 992 ? jQuery(".navbar").addClass("navbar-fixed-top") : jQuery(".navbar").removeClass("navbar-fixed-top") 9167}); 9168function init() { 9169 window.addEventListener("scroll", function(t) { 9170 var e = window.pageYOffset || document.documentElement.scrollTop 9171 , n = document.querySelector(".navbar"); 9172 e > 560 ? classie.add(n, "smaller") : classie.has(n, "smaller") && classie.remove(n, "smaller") 9173 }) 9174} 9175window.onload = init(), 9176function() { 9177 function t(t) { 9178 for (var e = -1, n = t.length, r = []; ++e < n; ) 9179 r.push(t[e]); 9180 return r 9181 } 9182 function e(t) { 9183 return Array.prototype.slice.call(t) 9184 } 9185 function n() {} 9186 function r(t) { 9187 return t 9188 } 9189 function i() { 9190 return this 9191 } 9192 function o() { 9193 return !0 9194 } 9195 function a(t) { 9196 return "function" == typeof t ? t : function() { 9197 return t 9198 } 9199 } 9200 function s(t, e, n) { 9201 return function() { 9202 var r = n.apply(e, arguments); 9203 return arguments.length ? t : r 9204 } 9205 } 9206 function u(t) { 9207 return null != t && !isNaN(t) 9208 } 9209 function l(t) { 9210 return t.length 9211 } 9212 function c(t) { 9213 return null == t 9214 } 9215 function h(t) { 9216 return t.trim().replace(/\s+/g, " ") 9217 } 9218 function d(t) { 9219 for (var e = 1; t * e % 1; ) 9220 e *= 10; 9221 return e 9222 } 9223 function f() {} 9224 function p(t) { 9225 function e() { 9226 for (var e, n = r, i = -1, o = n.length; ++i < o; ) 9227 (e = n[i].on) && e.apply(this, arguments); 9228 return t 9229 } 9230 var r = [] 9231 , i = new n; 9232 return e.on = function(e, n) { 9233 var o, a = i.get(e); 9234 return arguments.length < 2 ? a && a.on : (a && (a.on = null, 9235 r = r.slice(0, o = r.indexOf(a)).concat(r.slice(o + 1)), 9236 i.remove(e)), 9237 n && r.push(i.set(e, { 9238 on: n 9239 })), 9240 t) 9241 } 9242 , 9243 e 9244 } 9245 function g(t, e) { 9246 return e - (t ? 1 + Math.floor(Math.log(t + Math.pow(10, 1 + Math.floor(Math.log(t) / Math.LN10) - e)) / Math.LN10) : 1) 9247 } 9248 function m(t) { 9249 return t + "" 9250 } 9251 function y(t) { 9252 for (var e = t.lastIndexOf("."), n = e >= 0 ? t.substring(e) : (e = t.length, 9253 ""), r = []; e > 0; ) 9254 r.push(t.substring(e -= 3, e + 3)); 9255 return r.reverse().join(",") + n 9256 } 9257 function v(t, e) { 9258 var n = Math.pow(10, 3 * Math.abs(8 - e)); 9259 return { 9260 scale: e > 8 ? function(t) { 9261 return t / n 9262 } 9263 : function(t) { 9264 return t * n 9265 } 9266 , 9267 symbol: t 9268 } 9269 } 9270 function b(t) { 9271 return function(e) { 9272 return e <= 0 ? 0 : e >= 1 ? 1 : t(e) 9273 } 9274 } 9275 function w(t) { 9276 return function(e) { 9277 return 1 - t(1 - e) 9278 } 9279 } 9280 function x(t) { 9281 return function(e) { 9282 return .5 * (e < .5 ? t(2 * e) : 2 - t(2 - 2 * e)) 9283 } 9284 } 9285 function _(t) { 9286 return t 9287 } 9288 function C(t) { 9289 return function(e) { 9290 return Math.pow(e, t) 9291 } 9292 } 9293 function k(t) { 9294 return 1 - Math.cos(t * Math.PI / 2) 9295 } 9296 function j(t) { 9297 return Math.pow(2, 10 * (t - 1)) 9298 } 9299 function T(t) { 9300 return 1 - Math.sqrt(1 - t * t) 9301 } 9302 function S(t, e) { 9303 var n; 9304 return arguments.length < 2 && (e = .45), 9305 arguments.length < 1 ? (t = 1, 9306 n = e / 4) : n = e / (2 * Math.PI) * Math.asin(1 / t), 9307 function(r) { 9308 return 1 + t * Math.pow(2, 10 * -r) * Math.sin(2 * (r - n) * Math.PI / e) 9309 } 9310 } 9311 function E(t) { 9312 return t || (t = 1.70158), 9313 function(e) { 9314 return e * e * ((t + 1) * e - t) 9315 } 9316 } 9317 function A(t) { 9318 return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375 9319 } 9320 function M() { 9321 d3.event.stopPropagation(), 9322 d3.event.preventDefault() 9323 } 9324 function Q() { 9325 for (var t, e = d3.event; t = e.sourceEvent; ) 9326 e = t; 9327 return e 9328 } 9329 function $(t) { 9330 for (var e = new f, n = 0, r = arguments.length; ++n < r; ) 9331 e[arguments[n]] = p(e); 9332 return e.of = function(n, r) { 9333 return function(i) { 9334 try { 9335 var o = i.sourceEvent = d3.event; 9336 i.target = t, 9337 d3.event = i, 9338 e[i.type].apply(n, r) 9339 } finally { 9340 d3.event = o 9341 } 9342 } 9343 } 9344 , 9345 e 9346 } 9347 function D(t) { 9348 var e = [t.a, t.b] 9349 , n = [t.c, t.d] 9350 , r = N(e) 9351 , i = I(e, n) 9352 , o = N(F(n, e, -i)) || 0; 9353 e[0] * n[1] < n[0] * e[1] && (e[0] *= -1, 9354 e[1] *= -1, 9355 r *= -1, 9356 i *= -1), 9357 this.rotate = (r ? Math.atan2(e[1], e[0]) : Math.atan2(-n[0], n[1])) * ii, 9358 this.translate = [t.e, t.f], 9359 this.scale = [r, o], 9360 this.skew = o ? Math.atan2(i, o) * ii : 0 9361 } 9362 function I(t, e) { 9363 return t[0] * e[0] + t[1] * e[1] 9364 } 9365 function N(t) { 9366 var e = Math.sqrt(I(t, t)); 9367 return e && (t[0] /= e, 9368 t[1] /= e), 9369 e 9370 } 9371 function F(t, e, n) { 9372 return t[0] += n * e[0], 9373 t[1] += n * e[1], 9374 t 9375 } 9376 function L(t) { 9377 return "transform" == t ? d3.interpolateTransform : d3.interpolate 9378 } 9379 function P(t, e) { 9380 return e = e - (t = +t) ? 1 / (e - t) : 0, 9381 function(n) { 9382 return (n - t) * e 9383 } 9384 } 9385 function O(t, e) { 9386 return e = e - (t = +t) ? 1 / (e - t) : 0, 9387 function(n) { 9388 return Math.max(0, Math.min(1, (n - t) * e)) 9389 } 9390 } 9391 function q() {} 9392 function R(t, e, n) { 9393 return new z(t,e,n) 9394 } 9395 function z(t, e, n) { 9396 this.r = t, 9397 this.g = e, 9398 this.b = n 9399 } 9400 function H(t) { 9401 return t < 16 ? "0" + Math.max(0, t).toString(16) : Math.min(255, t).toString(16) 9402 } 9403 function B(t, e, n) { 9404 var r, i, o, a = 0, s = 0, u = 0; 9405 if (r = /([a-z]+)\((.*)\)/i.exec(t)) 9406 switch (i = r[2].split(","), 9407 r[1]) { 9408 case "hsl": 9409 return n(parseFloat(i[0]), parseFloat(i[1]) / 100, parseFloat(i[2]) / 100); 9410 case "rgb": 9411 return e(K(i[0]), K(i[1]), K(i[2])) 9412 } 9413 return (o = ui.get(t)) ? e(o.r, o.g, o.b) : (null != t && "#" === t.charAt(0) && (4 === t.length ? (a = t.charAt(1), 9414 a += a, 9415 s = t.charAt(2), 9416 s += s, 9417 u = t.charAt(3), 9418 u += u) : 7 === t.length && (a = t.substring(1, 3), 9419 s = t.substring(3, 5), 9420 u = t.substring(5, 7)), 9421 a = parseInt(a, 16), 9422 s = parseInt(s, 16), 9423 u = parseInt(u, 16)), 9424 e(a, s, u)) 9425 } 9426 function V(t, e, n) {
9427 var r, i, o = Math.min(t /= 255, e /= 255, n /= 255), a = Math.max(t, e, n), s = a - o, u = (a + o) / 2; 9428 return s ? (i = u < .5 ? s / (a + o) : s / (2 - a - o), 9429 r = t == a ? (e - n) / s + (e < n ? 6 : 0) : e == a ? (n - t) / s + 2 : (t - e) / s + 4, 9430 r *= 60) : i = r = 0, 9431 G(r, i, u) 9432 } 9433 function U(t, e, n) { 9434 t = W(t), 9435 e = W(e), 9436 n = W(n); 9437 var r = at((.4124564 * t + .3575761 * e + .1804375 * n) / di) 9438 , i = at((.2126729 * t + .7151522 * e + .072175 * n) / fi); 9439 return et(116 * i - 16, 500 * (r - i), 200 * (i - at((.0193339 * t + .119192 * e + .9503041 * n) / pi))) 9440 } 9441 function W(t) { 9442 return (t /= 255) <= .04045 ? t / 12.92 : Math.pow((t + .055) / 1.055, 2.4) 9443 } 9444 function K(t) { 9445 var e = parseFloat(t); 9446 return "%" === t.charAt(t.length - 1) ? Math.round(2.55 * e) : e 9447 } 9448 function G(t, e, n) { 9449 return new Y(t,e,n) 9450 } 9451 function Y(t, e, n) { 9452 this.h = t, 9453 this.s = e, 9454 this.l = n 9455 } 9456 function J(t, e, n) { 9457 function r(t) { 9458 return t > 360 ? t -= 360 : t < 0 && (t += 360), 9459 t < 60 ? o + (a - o) * t / 60 : t < 180 ? a : t < 240 ? o + (a - o) * (240 - t) / 60 : o 9460 } 9461 function i(t) { 9462 return Math.round(255 * r(t)) 9463 } 9464 var o, a; 9465 return t %= 360, 9466 t < 0 && (t += 360), 9467 e = e < 0 ? 0 : e > 1 ? 1 : e, 9468 n = n < 0 ? 0 : n > 1 ? 1 : n, 9469 a = n <= .5 ? n * (1 + e) : n + e - n * e, 9470 o = 2 * n - a, 9471 R(i(t + 120), i(t), i(t - 120)) 9472 } 9473 function X(t, e, n) { 9474 return new Z(t,e,n) 9475 } 9476 function Z(t, e, n) { 9477 this.h = t, 9478 this.c = e, 9479 this.l = n 9480 } 9481 function tt(t, e, n) { 9482 return et(n, Math.cos(t *= Math.PI / 180) * e, Math.sin(t) * e) 9483 } 9484 function et(t, e, n) { 9485 return new nt(t,e,n) 9486 } 9487 function nt(t, e, n) { 9488 this.l = t, 9489 this.a = e, 9490 this.b = n 9491 } 9492 function rt(t, e, n) { 9493 var r = (t + 16) / 116 9494 , i = r + e / 500 9495 , o = r - n / 200; 9496 return i = ot(i) * di, 9497 r = ot(r) * fi, 9498 o = ot(o) * pi, 9499 R(st(3.2404542 * i - 1.5371385 * r - .4985314 * o), st(-.969266 * i + 1.8760108 * r + .041556 * o), st(.0556434 * i - .2040259 * r + 1.0572252 * o)) 9500 } 9501 function it(t, e, n) { 9502 return X(Math.atan2(n, e) / Math.PI * 180, Math.sqrt(e * e + n * n), t) 9503 } 9504 function ot(t) { 9505 return t > .206893034 ? t * t * t : (t - 4 / 29) / 7.787037 9506 } 9507 function at(t) { 9508 return t > .008856 ? Math.pow(t, 1 / 3) : 7.787037 * t + 4 / 29 9509 } 9510 function st(t) { 9511 return Math.round(255 * (t <= .00304 ? 12.92 * t : 1.055 * Math.pow(t, 1 / 2.4) - .055)) 9512 } 9513 function ut(t) { 9514 return Br(t, xi), 9515 t 9516 } 9517 function lt(t) { 9518 return function() { 9519 return mi(t, this) 9520 } 9521 } 9522 function ct(t) { 9523 return function() { 9524 return yi(t, this) 9525 } 9526 } 9527 function ht(t, e) { 9528 function n() { 9529 this.removeAttribute(t) 9530 } 9531 function r() { 9532 this.removeAttributeNS(t.space, t.local) 9533 } 9534 function i() { 9535 this.setAttribute(t, e) 9536 } 9537 function o() { 9538 this.setAttributeNS(t.space, t.local, e) 9539 } 9540 function a() { 9541 var n = e.apply(this, arguments); 9542 null == n ? this.removeAttribute(t) : this.setAttribute(t, n) 9543 } 9544 function s() { 9545 var n = e.apply(this, arguments); 9546 null == n ? this.removeAttributeNS(t.space, t.local) : this.setAttributeNS(t.space, t.local, n) 9547 } 9548 return t = d3.ns.qualify(t), 9549 null == e ? t.local ? r : n : "function" == typeof e ? t.local ? s : a : t.local ? o : i 9550 } 9551 function dt(t) { 9552 return new RegExp("(?:^|\\s+)" + d3.requote(t) + "(?:\\s+|$)","g") 9553 } 9554 function ft(t, e) { 9555 function n() { 9556 for (var n = -1; ++n < i; ) 9557 t[n](this, e) 9558 } 9559 function r() { 9560 for (var n = -1, r = e.apply(this, arguments); ++n < i; ) 9561 t[n](this, r) 9562 } 9563 t = t.trim().split(/\s+/).map(pt); 9564 var i = t.length; 9565 return "function" == typeof e ? r : n 9566 } 9567 function pt(t) { 9568 var e = dt(t); 9569 return function(n, r) { 9570 if (i = n.classList) 9571 return r ? i.add(t) : i.remove(t); 9572 var i = n.className 9573 , o = null != i.baseVal 9574 , a = o ? i.baseVal : i; 9575 r ? (e.lastIndex = 0, 9576 e.test(a) || (a = h(a + " " + t), 9577 o ? i.baseVal = a : n.className = a)) : a && (a = h(a.replace(e, " ")), 9578 o ? i.baseVal = a : n.className = a) 9579 } 9580 } 9581 function gt(t, e, n) { 9582 function r() { 9583 this.style.removeProperty(t) 9584 } 9585 function i() { 9586 this.style.setProperty(t, e, n) 9587 } 9588 function o() { 9589 var r = e.apply(this, arguments); 9590 null == r ? this.style.removeProperty(t) : this.style.setProperty(t, r, n) 9591 } 9592 return null == e ? r : "function" == typeof e ? o : i 9593 } 9594 function mt(t, e) { 9595 function n() { 9596 delete this[t] 9597 } 9598 function r() { 9599 this[t] = e 9600 } 9601 function i() { 9602 var n = e.apply(this, arguments); 9603 null == n ? delete this[t] : this[t] = n 9604 } 9605 return null == e ? n : "function" == typeof e ? i : r 9606 } 9607 function yt(t) { 9608 return { 9609 __data__: t 9610 } 9611 } 9612 function vt(t) { 9613 return function() { 9614 return wi(this, t) 9615 } 9616 } 9617 function bt(t) { 9618 return arguments.length || (t = d3.ascending), 9619 function(e, n) { 9620 return t(e && e.__data__, n && n.__data__) 9621 } 9622 } 9623 function wt(t, e, n) { 9624 function r() { 9625 var e = this[o]; 9626 e && (this.removeEventListener(t, e, e.$), 9627 delete this[o]) 9628 } 9629 function i() { 9630 function i(t) { 9631 var n = d3.event; 9632 d3.event = t, 9633 s[0] = a.__data__; 9634 try { 9635 e.apply(a, s) 9636 } finally { 9637 d3.event = n 9638 } 9639 } 9640 var a = this 9641 , s = arguments; 9642 r.call(this), 9643 this.addEventListener(t, this[o] = i, i.$ = n), 9644 i._ = e 9645 } 9646 var o = "__on" + t 9647 , a = t.indexOf("."); 9648 return a > 0 && (t = t.substring(0, a)), 9649 e ? i : r 9650 } 9651 function xt(t, e) { 9652 for (var n = 0, r = t.length; n < r; n++) 9653 for (var i, o = t[n], a = 0, s = o.length; a < s; a++) 9654 (i = o[a]) && e(i, a, n); 9655 return t 9656 } 9657 function _t(t) { 9658 return Br(t, Ci), 9659 t 9660 } 9661 function Ct(t, e, r) { 9662 Br(t, ki); 9663 var i = new n 9664 , o = d3.dispatch("start", "end") 9665 , a = Mi; 9666 return t.id = e, 9667 t.time = r, 9668 t.tween = function(e, n) { 9669 return arguments.length < 2 ? i.get(e) : (null == n ? i.remove(e) : i.set(e, n), 9670 t) 9671 } 9672 , 9673 t.ease = function(e) { 9674 return arguments.length ? (a = "function" == typeof e ? e : d3.ease.apply(d3, arguments), 9675 t) : a 9676 } 9677 , 9678 t.each = function(e, n) { 9679 return arguments.length < 2 ? kt.call(t, e) : (o.on(e, n), 9680 t) 9681 } 9682 , 9683 d3.timer(function(n) { 9684 return xt(t, function(t, s, u) { 9685 function l(n) { 9686 return g.active > e ? h() : (g.active = e,
9687 i.forEach(function(e, n) { 9688 (n = n.call(t, m, s)) && d.push(n) 9689 }), 9690 o.start.call(t, m, s), 9691 c(n) || d3.timer(c, 0, r), 9692 1) 9693 } 9694 function c(n) { 9695 if (g.active !== e) 9696 return h(); 9697 for (var r = (n - f) / p, i = a(r), u = d.length; u > 0; ) 9698 d[--u].call(t, i); 9699 return r >= 1 ? (h(), 9700 Ti = e, 9701 o.end.call(t, m, s), 9702 Ti = 0, 9703 1) : void 0 9704 } 9705 function h() { 9706 return --g.count || delete t.__transition__, 9707 1 9708 } 9709 var d = [] 9710 , f = t.delay 9711 , p = t.duration 9712 , g = (t = t.node).__transition__ || (t.__transition__ = { 9713 active: 0, 9714 count: 0 9715 }) 9716 , m = t.__data__; 9717 ++g.count, 9718 f <= n ? l(n) : d3.timer(l, f, r) 9719 }) 9720 }, 0, r), 9721 t 9722 } 9723 function kt(t) { 9724 var e = Ti 9725 , n = Mi 9726 , r = Ei 9727 , i = Ai; 9728 return Ti = this.id, 9729 Mi = this.ease(), 9730 xt(this, function(e, n, r) { 9731 Ei = e.delay, 9732 Ai = e.duration, 9733 t.call(e = e.node, e.__data__, n, r) 9734 }), 9735 Ti = e, 9736 Mi = n, 9737 Ei = r, 9738 Ai = i, 9739 this 9740 } 9741 function jt(t, e, n) { 9742 return "" != n && Di 9743 } 9744 function Tt(t, e) { 9745 return d3.tween(t, L(e)) 9746 } 9747 function St() { 9748 for (var t, e = Date.now(), n = Fi; n; ) 9749 t = e - n.then, 9750 t >= n.delay && (n.flush = n.callback(t)), 9751 n = n.next; 9752 var r = Et() - e; 9753 r > 24 ? (isFinite(r) && (clearTimeout($i), 9754 $i = setTimeout(St, r)), 9755 Qi = 0) : (Qi = 1, 9756 Li(St)) 9757 } 9758 function Et() { 9759 for (var t = null, e = Fi, n = 1 / 0; e; ) 9760 e.flush ? (delete Ni[e.callback.id], 9761 e = t ? t.next = e.next : Fi = e.next) : (n = Math.min(n, e.then + e.delay), 9762 e = (t = e).next); 9763 return n 9764 } 9765 function At(t, e) { 9766 var n = t.ownerSVGElement || t; 9767 if (n.createSVGPoint) { 9768 var r = n.createSVGPoint(); 9769 if (Pi < 0 && (window.scrollX || window.scrollY)) { 9770 n = d3.select(document.body).append("svg").style("position", "absolute").style("top", 0).style("left", 0); 9771 var i = n[0][0].getScreenCTM(); 9772 Pi = !(i.f || i.e), 9773 n.remove() 9774 } 9775 return Pi ? (r.x = e.pageX, 9776 r.y = e.pageY) : (r.x = e.clientX, 9777 r.y = e.clientY), 9778 r = r.matrixTransform(t.getScreenCTM().inverse()), 9779 [r.x, r.y] 9780 } 9781 var o = t.getBoundingClientRect(); 9782 return [e.clientX - o.left - t.clientLeft, e.clientY - o.top - t.clientTop] 9783 } 9784 function Mt(t) { 9785 var e = t[0] 9786 , n = t[t.length - 1]; 9787 return e < n ? [e, n] : [n, e] 9788 } 9789 function Qt(t) { 9790 return t.rangeExtent ? t.rangeExtent() : Mt(t.range()) 9791 } 9792 function $t(t, e) { 9793 var n, r = 0, i = t.length - 1, o = t[r], a = t[i]; 9794 return a < o && (n = r, 9795 r = i, 9796 i = n, 9797 n = o, 9798 o = a, 9799 a = n), 9800 (e = e(a - o)) && (t[r] = e.floor(o), 9801 t[i] = e.ceil(a)), 9802 t 9803 } 9804 function Dt() { 9805 return Math 9806 } 9807 function It(t, e, n, r) { 9808 function i() { 9809 var i = Math.min(t.length, e.length) > 2 ? Rt : qt 9810 , u = r ? O : P; 9811 return a = i(t, e, u, n), 9812 s = i(e, t, u, d3.interpolate), 9813 o 9814 } 9815 function o(t) { 9816 return a(t) 9817 } 9818 var a, s; 9819 return o.invert = function(t) { 9820 return s(t) 9821 } 9822 , 9823 o.domain = function(e) { 9824 return arguments.length ? (t = e.map(Number), 9825 i()) : t 9826 } 9827 , 9828 o.range = function(t) { 9829 return arguments.length ? (e = t, 9830 i()) : e 9831 } 9832 , 9833 o.rangeRound = function(t) { 9834 return o.range(t).interpolate(d3.interpolateRound) 9835 } 9836 , 9837 o.clamp = function(t) { 9838 return arguments.length ? (r = t, 9839 i()) : r 9840 } 9841 , 9842 o.interpolate = function(t) { 9843 return arguments.length ? (n = t, 9844 i()) : n 9845 } 9846 , 9847 o.ticks = function(e) { 9848 return Pt(t, e) 9849 } 9850 , 9851 o.tickFormat = function(e) { 9852 return Ot(t, e) 9853 } 9854 , 9855 o.nice = function() { 9856 return $t(t, Ft), 9857 i() 9858 } 9859 , 9860 o.copy = function() { 9861 return It(t, e, n, r) 9862 } 9863 , 9864 i() 9865 } 9866 function Nt(t, e) { 9867 return d3.rebind(t, e, "range", "rangeRound", "interpolate", "clamp") 9868 } 9869 function Ft(t) { 9870 return (t = Math.pow(10, Math.round(Math.log(t) / Math.LN10) - 1)) && { 9871 floor: function(e) { 9872 return Math.floor(e / t) * t 9873 }, 9874 ceil: function(e) { 9875 return Math.ceil(e / t) * t 9876 } 9877 } 9878 } 9879 function Lt(t, e) { 9880 var n = Mt(t) 9881 , r = n[1] - n[0] 9882 , i = Math.pow(10, Math.floor(Math.log(r / e) / Math.LN10)) 9883 , o = e / r * i; 9884 return o <= .15 ? i *= 10 : o <= .35 ? i *= 5 : o <= .75 && (i *= 2), 9885 n[0] = Math.ceil(n[0] / i) * i, 9886 n[1] = Math.floor(n[1] / i) * i + .5 * i, 9887 n[2] = i, 9888 n 9889 } 9890 function Pt(t, e) { 9891 return d3.range.apply(d3, Lt(t, e)) 9892 } 9893 function Ot(t, e) { 9894 return d3.format(",." + Math.max(0, -Math.floor(Math.log(Lt(t, e)[2]) / Math.LN10 + .01)) + "f") 9895 } 9896 function qt(t, e, n, r) { 9897 var i = n(t[0], t[1]) 9898 , o = r(e[0], e[1]); 9899 return function(t) { 9900 return o(i(t)) 9901 } 9902 } 9903 function Rt(t, e, n, r) { 9904 var i = [] 9905 , o = [] 9906 , a = 0 9907 , s = Math.min(t.length, e.length) - 1; 9908 for (t[s] < t[0] && (t = t.slice().reverse(), 9909 e = e.slice().reverse()); ++a <= s; ) 9910 i.push(n(t[a - 1], t[a])), 9911 o.push(r(e[a - 1], e[a])); 9912 return function(e) { 9913 var n = d3.bisect(t, e, 1, s) - 1; 9914 return o[n](i[n](e)) 9915 } 9916 } 9917 function zt(t, e) { 9918 function n(n) { 9919 return t(e(n)) 9920 } 9921 var r = e.pow; 9922 return n.invert = function(e) { 9923 return r(t.invert(e)) 9924 } 9925 , 9926 n.domain = function(i) { 9927 return arguments.length ? (e = i[0] < 0 ? Bt : Ht, 9928 r = e.pow, 9929 t.domain(i.map(e)), 9930 n) : t.domain().map(r) 9931 } 9932 , 9933 n.nice = function() { 9934 return t.domain($t(t.domain(), Dt)), 9935 n 9936 } 9937 , 9938 n.ticks = function() { 9939 var n = Mt(t.domain()) 9940 , i = []; 9941 if (n.every(isFinite)) { 9942 var o = Math.floor(n[0]) 9943 , a = Math.ceil(n[1]) 9944 , s = r(n[0]) 9945 , u = r(n[1]); 9946 if (e === Bt) 9947 for (i.push(r(o)); o++ < a; ) 9948 for (var l = 9; l > 0; l--)
vendor: 17,606 bytes, lines 9949-10589
9949 i.push(r(o) * l); 9950 else { 9951 for (; o < a; o++) 9952 for (var l = 1; l < 10; l++) 9953 i.push(r(o) * l); 9954 i.push(r(o)) 9955 } 9956 for (o = 0; i[o] < s; o++) 9957 ; 9958 for (a = i.length; i[a - 1] > u; a--) 9959 ; 9960 i = i.slice(o, a) 9961 } 9962 return i 9963 } 9964 , 9965 n.tickFormat = function(t, i) { 9966 if (arguments.length < 2 && (i = Oi), 9967 arguments.length < 1) 9968 return i; 9969 var o, a = Math.max(.1, t / n.ticks().length), s = e === Bt ? (o = -1e-12, 9970 Math.floor) : (o = 1e-12, 9971 Math.ceil); 9972 return function(t) { 9973 return t / r(s(e(t) + o)) <= a ? i(t) : "" 9974 } 9975 } 9976 , 9977 n.copy = function() { 9978 return zt(t.copy(), e) 9979 } 9980 , 9981 Nt(n, t) 9982 } 9983 function Ht(t) { 9984 return Math.log(t < 0 ? 0 : t) / Math.LN10 9985 } 9986 function Bt(t) { 9987 return -Math.log(t > 0 ? 0 : -t) / Math.LN10 9988 } 9989 function Vt(t, e) { 9990 function n(e) { 9991 return t(r(e)) 9992 } 9993 var r = Ut(e) 9994 , i = Ut(1 / e); 9995 return n.invert = function(e) { 9996 return i(t.invert(e)) 9997 } 9998 , 9999 n.domain = function(e) { 10000 return arguments.length ? (t.domain(e.map(r)), 10001 n) : t.domain().map(i) 10002 } 10003 , 10004 n.ticks = function(t) { 10005 return Pt(n.domain(), t) 10006 } 10007 , 10008 n.tickFormat = function(t) { 10009 return Ot(n.domain(), t) 10010 } 10011 , 10012 n.nice = function() { 10013 return n.domain($t(n.domain(), Ft)) 10014 } 10015 , 10016 n.exponent = function(t) { 10017 if (!arguments.length) 10018 return e; 10019 var o = n.domain(); 10020 return r = Ut(e = t), 10021 i = Ut(1 / e), 10022 n.domain(o) 10023 } 10024 , 10025 n.copy = function() { 10026 return Vt(t.copy(), e) 10027 } 10028 , 10029 Nt(n, t) 10030 } 10031 function Ut(t) { 10032 return function(e) { 10033 return e < 0 ? -Math.pow(-e, t) : Math.pow(e, t) 10034 } 10035 } 10036 function Wt(t, e) { 10037 function r(e) { 10038 return a[((o.get(e) || o.set(e, t.push(e))) - 1) % a.length] 10039 } 10040 function i(e, n) { 10041 return d3.range(t.length).map(function(t) { 10042 return e + n * t 10043 }) 10044 } 10045 var o, a, s; 10046 return r.domain = function(i) { 10047 if (!arguments.length) 10048 return t; 10049 t = [], 10050 o = new n; 10051 for (var a, s = -1, u = i.length; ++s < u; ) 10052 o.has(a = i[s]) || o.set(a, t.push(a)); 10053 return r[e.t].apply(r, e.a) 10054 } 10055 , 10056 r.range = function(t) { 10057 return arguments.length ? (a = t, 10058 s = 0, 10059 e = { 10060 t: "range", 10061 a: arguments 10062 }, 10063 r) : a 10064 } 10065 , 10066 r.rangePoints = function(n, o) { 10067 arguments.length < 2 && (o = 0); 10068 var u = n[0] 10069 , l = n[1] 10070 , c = (l - u) / (Math.max(1, t.length - 1) + o); 10071 return a = i(t.length < 2 ? (u + l) / 2 : u + c * o / 2, c), 10072 s = 0, 10073 e = { 10074 t: "rangePoints", 10075 a: arguments 10076 }, 10077 r 10078 } 10079 , 10080 r.rangeBands = function(n, o, u) { 10081 arguments.length < 2 && (o = 0), 10082 arguments.length < 3 && (u = o); 10083 var l = n[1] < n[0] 10084 , c = n[l - 0] 10085 , h = n[1 - l] 10086 , d = (h - c) / (t.length - o + 2 * u); 10087 return a = i(c + d * u, d), 10088 l && a.reverse(), 10089 s = d * (1 - o), 10090 e = { 10091 t: "rangeBands", 10092 a: arguments 10093 }, 10094 r 10095 } 10096 , 10097 r.rangeRoundBands = function(n, o, u) { 10098 arguments.length < 2 && (o = 0), 10099 arguments.length < 3 && (u = o); 10100 var l = n[1] < n[0] 10101 , c = n[l - 0] 10102 , h = n[1 - l] 10103 , d = Math.floor((h - c) / (t.length - o + 2 * u)) 10104 , f = h - c - (t.length - o) * d; 10105 return a = i(c + Math.round(f / 2), d), 10106 l && a.reverse(), 10107 s = Math.round(d * (1 - o)), 10108 e = { 10109 t: "rangeRoundBands", 10110 a: arguments 10111 }, 10112 r 10113 } 10114 , 10115 r.rangeBand = function() { 10116 return s 10117 } 10118 , 10119 r.rangeExtent = function() { 10120 return Mt(e.a[0]) 10121 } 10122 , 10123 r.copy = function() { 10124 return Wt(t, e) 10125 } 10126 , 10127 r.domain(t) 10128 } 10129 function Kt(t, e) { 10130 function n() { 10131 var n = 0 10132 , o = (t.length, 10133 e.length); 10134 for (i = []; ++n < o; ) 10135 i[n - 1] = d3.quantile(t, n / o); 10136 return r 10137 } 10138 function r(t) { 10139 return isNaN(t = +t) ? NaN : e[d3.bisect(i, t)] 10140 } 10141 var i; 10142 return r.domain = function(e) { 10143 return arguments.length ? (t = e.filter(function(t) { 10144 return !isNaN(t) 10145 }).sort(d3.ascending), 10146 n()) : t 10147 } 10148 , 10149 r.range = function(t) { 10150 return arguments.length ? (e = t, 10151 n()) : e 10152 } 10153 , 10154 r.quantiles = function() { 10155 return i 10156 } 10157 , 10158 r.copy = function() { 10159 return Kt(t, e) 10160 } 10161 , 10162 n() 10163 } 10164 function Gt(t, e, n) { 10165 function r(e) { 10166 return n[Math.max(0, Math.min(a, Math.floor(o * (e - t))))] 10167 } 10168 function i() { 10169 return o = n.length / (e - t), 10170 a = n.length - 1, 10171 r 10172 } 10173 var o, a; 10174 return r.domain = function(n) { 10175 return arguments.length ? (t = +n[0], 10176 e = +n[n.length - 1], 10177 i()) : [t, e] 10178 } 10179 , 10180 r.range = function(t) { 10181 return arguments.length ? (n = t, 10182 i()) : n 10183 } 10184 , 10185 r.copy = function() { 10186 return Gt(t, e, n) 10187 } 10188 , 10189 i() 10190 } 10191 function Yt(t, e) { 10192 function n(n) { 10193 return e[d3.bisect(t, n)] 10194 } 10195 return n.domain = function(e) { 10196 return arguments.length ? (t = e, 10197 n) : t 10198 } 10199 , 10200 n.range = function(t) { 10201 return arguments.length ? (e = t, 10202 n) : e 10203 } 10204 , 10205 n.copy = function() { 10206 return Yt(t, e) 10207 } 10208 , 10209 n 10210 } 10211 function Jt(t) { 10212 function e(t) { 10213 return +t 10214 } 10215 return e.invert = e, 10216 e.domain = e.range = function(n) { 10217 return arguments.length ? (t = n.map(e), 10218 e) : t 10219 } 10220 , 10221 e.ticks = function(e) { 10222 return Pt(t, e) 10223 } 10224 , 10225 e.tickFormat = function(e) { 10226 return Ot(t, e) 10227 } 10228 , 10229 e.copy = function() { 10230 return Jt(t) 10231 } 10232 , 10233 e 10234 } 10235 function Xt(t) { 10236 return t.innerRadius 10237 } 10238 function Zt(t) { 10239 return t.outerRadius 10240 } 10241 function te(t) { 10242 return t.startAngle 10243 } 10244 function ee(t) { 10245 return t.endAngle 10246 } 10247 function ne(t) { 10248 function e(e) { 10249 function o() { 10250 c.push("M", s(t(h), l)) 10251 } 10252 for (var u, c = [], h = [], d = -1, f = e.length, p = a(n), g = a(r); ++d < f; ) 10253 i.call(this, u = e[d], d) ? h.push([+p.call(this, u, d), +g.call(this, u, d)]) : h.length && (o(), 10254 h = []); 10255 return h.length && o(), 10256 c.length ? c.join("") : null 10257 } 10258 var n = re 10259 , r = ie 10260 , i = o 10261 , s = oe 10262 , u = s.key 10263 , l = .7; 10264 return e.x = function(t) { 10265 return arguments.length ? (n = t, 10266 e) : n 10267 } 10268 , 10269 e.y = function(t) { 10270 return arguments.length ? (r = t, 10271 e) : r 10272 } 10273 , 10274 e.defined = function(t) { 10275 return arguments.length ? (i = t, 10276 e) : i 10277 } 10278 , 10279 e.interpolate = function(t) { 10280 return arguments.length ? (u = "function" == typeof t ? s = t : (s = Ui.get(t) || oe).key, 10281 e) : u 10282 } 10283 , 10284 e.tension = function(t) { 10285 return arguments.length ? (l = t, 10286 e) : l 10287 } 10288 , 10289 e 10290 } 10291 function re(t) { 10292 return t[0] 10293 } 10294 function ie(t) { 10295 return t[1] 10296 } 10297 function oe(t) { 10298 return t.join("L") 10299 } 10300 function ae(t) { 10301 return oe(t) + "Z" 10302 } 10303 function se(t) { 10304 for (var e = 0, n = t.length, r = t[0], i = [r[0], ",", r[1]]; ++e < n; ) 10305 i.push("V", (r = t[e])[1], "H", r[0]); 10306 return i.join("") 10307 } 10308 function ue(t) { 10309 for (var e = 0, n = t.length, r = t[0], i = [r[0], ",", r[1]]; ++e < n; ) 10310 i.push("H", (r = t[e])[0], "V", r[1]); 10311 return i.join("") 10312 } 10313 function le(t, e) { 10314 return t.length < 4 ? oe(t) : t[1] + de(t.slice(1, t.length - 1), fe(t, e)) 10315 } 10316 function ce(t, e) { 10317 return t.length < 3 ? oe(t) : t[0] + de((t.push(t[0]), 10318 t), fe([t[t.length - 2]].concat(t, [t[1]]), e)) 10319 } 10320 function he(t, e, n) { 10321 return t.length < 3 ? oe(t) : t[0] + de(t, fe(t, e)) 10322 } 10323 function de(t, e) { 10324 if (e.length < 1 || t.length != e.length && t.length != e.length + 2) 10325 return oe(t); 10326 var n = t.length != e.length 10327 , r = "" 10328 , i = t[0] 10329 , o = t[1] 10330 , a = e[0] 10331 , s = a 10332 , u = 1; 10333 if (n && (r += "Q" + (o[0] - 2 * a[0] / 3) + "," + (o[1] - 2 * a[1] / 3) + "," + o[0] + "," + o[1], 10334 i = t[1], 10335 u = 2), 10336 e.length > 1) { 10337 s = e[1], 10338 o = t[u], 10339 u++, 10340 r += "C" + (i[0] + a[0]) + "," + (i[1] + a[1]) + "," + (o[0] - s[0]) + "," + (o[1] - s[1]) + "," + o[0] + "," + o[1]; 10341 for (var l = 2; l < e.length; l++, 10342 u++) 10343 o = t[u], 10344 s = e[l], 10345 r += "S" + (o[0] - s[0]) + "," + (o[1] - s[1]) + "," + o[0] + "," + o[1] 10346 } 10347 if (n) { 10348 var c = t[u]; 10349 r += "Q" + (o[0] + 2 * s[0] / 3) + "," + (o[1] + 2 * s[1] / 3) + "," + c[0] + "," + c[1] 10350 } 10351 return r 10352 } 10353 function fe(t, e) { 10354 for (var n, r = [], i = (1 - e) / 2, o = t[0], a = t[1], s = 1, u = t.length; ++s < u; ) 10355 n = o, 10356 o = a, 10357 a = t[s], 10358 r.push([i * (a[0] - n[0]), i * (a[1] - n[1])]); 10359 return r 10360 } 10361 function pe(t) { 10362 if (t.length < 3) 10363 return oe(t); 10364 var e = 1 10365 , n = t.length 10366 , r = t[0] 10367 , i = r[0] 10368 , o = r[1] 10369 , a = [i, i, i, (r = t[1])[0]] 10370 , s = [o, o, o, r[1]] 10371 , u = [i, ",", o]; 10372 for (be(u, a, s); ++e < n; ) 10373 r = t[e], 10374 a.shift(), 10375 a.push(r[0]), 10376 s.shift(), 10377 s.push(r[1]), 10378 be(u, a, s); 10379 for (e = -1; ++e < 2; ) 10380 a.shift(), 10381 a.push(r[0]), 10382 s.shift(), 10383 s.push(r[1]), 10384 be(u, a, s); 10385 return u.join("") 10386 } 10387 function ge(t) { 10388 if (t.length < 4) 10389 return oe(t); 10390 for (var e, n = [], r = -1, i = t.length, o = [0], a = [0]; ++r < 3; ) 10391 e = t[r], 10392 o.push(e[0]), 10393 a.push(e[1]); 10394 for (n.push(ve(Gi, o) + "," + ve(Gi, a)), 10395 --r; ++r < i; ) 10396 e = t[r], 10397 o.shift(), 10398 o.push(e[0]), 10399 a.shift(), 10400 a.push(e[1]), 10401 be(n, o, a); 10402 return n.join("") 10403 } 10404 function me(t) { 10405 for (var e, n, r = -1, i = t.length, o = i + 4, a = [], s = []; ++r < 4; ) 10406 n = t[r % i], 10407 a.push(n[0]), 10408 s.push(n[1]); 10409 for (e = [ve(Gi, a), ",", ve(Gi, s)], 10410 --r; ++r < o; ) 10411 n = t[r % i], 10412 a.shift(), 10413 a.push(n[0]), 10414 s.shift(), 10415 s.push(n[1]), 10416 be(e, a, s); 10417 return e.join("") 10418 } 10419 function ye(t, e) { 10420 var n = t.length - 1; 10421 if (n) 10422 for (var r, i, o = t[0][0], a = t[0][1], s = t[n][0] - o, u = t[n][1] - a, l = -1; ++l <= n; ) 10423 r = t[l], 10424 i = l / n, 10425 r[0] = e * r[0] + (1 - e) * (o + i * s), 10426 r[1] = e * r[1] + (1 - e) * (a + i * u); 10427 return pe(t) 10428 } 10429 function ve(t, e) { 10430 return t[0] * e[0] + t[1] * e[1] + t[2] * e[2] + t[3] * e[3] 10431 } 10432 function be(t, e, n) { 10433 t.push("C", ve(Wi, e), ",", ve(Wi, n), ",", ve(Ki, e), ",", ve(Ki, n), ",", ve(Gi, e), ",", ve(Gi, n)) 10434 } 10435 function we(t, e) { 10436 return (e[1] - t[1]) / (e[0] - t[0]) 10437 } 10438 function xe(t) { 10439 for (var e = 0, n = t.length - 1, r = [], i = t[0], o = t[1], a = r[0] = we(i, o); ++e < n; ) 10440 r[e] = (a + (a = we(i = o, o = t[e + 1]))) / 2; 10441 return r[e] = a, 10442 r 10443 } 10444 function _e(t) { 10445 for (var e, n, r, i, o = [], a = xe(t), s = -1, u = t.length - 1; ++s < u; ) 10446 e = we(t[s], t[s + 1]), 10447 Math.abs(e) < 1e-6 ? a[s] = a[s + 1] = 0 : (n = a[s] / e, 10448 r = a[s + 1] / e, 10449 (i = n * n + r * r) > 9 && (i = 3 * e / Math.sqrt(i), 10450 a[s] = i * n, 10451 a[s + 1] = i * r)); 10452 for (s = -1; ++s <= u; ) 10453 i = (t[Math.min(u, s + 1)][0] - t[Math.max(0, s - 1)][0]) / (6 * (1 + a[s] * a[s])), 10454 o.push([i || 0, a[s] * i || 0]); 10455 return o 10456 } 10457 function Ce(t) { 10458 return t.length < 3 ? oe(t) : t[0] + de(t, _e(t)) 10459 } 10460 function ke(t) { 10461 for (var e, n, r, i = -1, o = t.length; ++i < o; ) 10462 e = t[i], 10463 n = e[0], 10464 r = e[1] + Bi, 10465 e[0] = n * Math.cos(r), 10466 e[1] = n * Math.sin(r); 10467 return t 10468 } 10469 function je(t) { 10470 function e(e) { 10471 function o() { 10472 m.push("M", l(t(v), f), d, h(t(y.reverse()), f), "Z") 10473 } 10474 for (var c, p, g, m = [], y = [], v = [], b = -1, w = e.length, x = a(n), _ = a(i), C = n === r ? function() { 10475 return p 10476 } 10477 : a(r), k = i === s ? function() { 10478 return g 10479 } 10480 : a(s); ++b < w; ) 10481 u.call(this, c = e[b], b) ? (y.push([p = +x.call(this, c, b), g = +_.call(this, c, b)]), 10482 v.push([+C.call(this, c, b), +k.call(this, c, b)])) : y.length && (o(), 10483 y = [], 10484 v = []); 10485 return y.length && o(), 10486 m.length ? m.join("") : null 10487 } 10488 var n = re 10489 , r = re 10490 , i = 0 10491 , s = ie 10492 , u = o 10493 , l = oe 10494 , c = l.key 10495 , h = l 10496 , d = "L" 10497 , f = .7; 10498 return e.x = function(t) { 10499 return arguments.length ? (n = r = t, 10500 e) : r 10501 } 10502 , 10503 e.x0 = function(t) { 10504 return arguments.length ? (n = t, 10505 e) : n 10506 } 10507 , 10508 e.x1 = function(t) { 10509 return arguments.length ? (r = t, 10510 e) : r 10511 } 10512 , 10513 e.y = function(t) { 10514 return arguments.length ? (i = s = t, 10515 e) : s 10516 } 10517 , 10518 e.y0 = function(t) { 10519 return arguments.length ? (i = t, 10520 e) : i 10521 } 10522 , 10523 e.y1 = function(t) { 10524 return arguments.length ? (s = t, 10525 e) : s 10526 } 10527 , 10528 e.defined = function(t) { 10529 return arguments.length ? (u = t, 10530 e) : u 10531 } 10532 , 10533 e.interpolate = function(t) { 10534 return arguments.length ? (c = "function" == typeof t ? l = t : (l = Ui.get(t) || oe).key, 10535 h = l.reverse || l, 10536 d = l.closed ? "M" : "L", 10537 e) : c 10538 } 10539 , 10540 e.tension = function(t) { 10541 return arguments.length ? (f = t, 10542 e) : f 10543 } 10544 , 10545 e 10546 } 10547 function Te(t) { 10548 return t.source 10549 } 10550 function Se(t) { 10551 return t.target 10552 } 10553 function Ee(t) { 10554 return t.radius 10555 } 10556 function Ae(t) { 10557 return [t.x, t.y] 10558 } 10559 function Me(t) { 10560 return function() { 10561 var e = t.apply(this, arguments) 10562 , n = e[0] 10563 , r = e[1] + Bi; 10564 return [n * Math.cos(r), n * Math.sin(r)] 10565 } 10566 } 10567 function Qe() { 10568 return 64 10569 } 10570 function $e() { 10571 return "circle" 10572 } 10573 function De(t) { 10574 var e = Math.sqrt(t / Math.PI); 10575 return "M0," + e + "A" + e + "," + e + " 0 1,1 0," + -e + "A" + e + "," + e + " 0 1,1 0," + e + "Z" 10576 } 10577 function Ie(t, e) { 10578 t.attr("transform", function(t) { 10579 return "translate(" + e(t) + ",0)" 10580 }) 10581 } 10582 function Ne(t, e) { 10583 t.attr("transform", function(t) { 10584 return "translate(0," + e(t) + ")" 10585 }) 10586 } 10587 function Fe(t, e, n) { 10588 if (r = [], 10589 n && e.length > 1) {
10590 for (var r, i, o, a = Mt(t.domain()), s = -1, u = e.length, l = (e[1] - e[0]) / ++n; ++s < u; ) 10591 for (i = n; --i > 0; ) 10592 (o = +e[s] - i * l) >= a[0] && r.push(o); 10593 for (--s, 10594 i = 0; ++i < n && (o = +e[s] + i * l) < a[1]; ) 10595 r.push(o) 10596 } 10597 return r 10598 } 10599 function Le() { 10600 eo || (eo = d3.select("body").append("div").style("visibility", "hidden").style("top", 0).style("height", 0).style("width", 0).style("overflow-y", "scroll").append("div").style("height", "2000px").node().parentNode); 10601 var t, e = d3.event; 10602 try { 10603 eo.scrollTop = 1e3, 10604 eo.dispatchEvent(e), 10605 t = 1e3 - eo.scrollTop 10606 } catch (n) { 10607 t = e.wheelDelta || 5 * -e.detail 10608 } 10609 return t 10610 } 10611 function Pe(t) { 10612 for (var e = t.source, n = t.target, r = qe(e, n), i = [e]; e !== r; ) 10613 e = e.parent, 10614 i.push(e); 10615 for (var o = i.length; n !== r; ) 10616 i.splice(o, 0, n), 10617 n = n.parent; 10618 return i 10619 } 10620 function Oe(t) { 10621 for (var e = [], n = t.parent; null != n; ) 10622 e.push(t), 10623 t = n, 10624 n = n.parent; 10625 return e.push(t), 10626 e 10627 } 10628 function qe(t, e) { 10629 if (t === e) 10630 return t; 10631 for (var n = Oe(t), r = Oe(e), i = n.pop(), o = r.pop(), a = null; i === o; ) 10632 a = i, 10633 i = n.pop(), 10634 o = r.pop(); 10635 return a 10636 } 10637 function Re(t) { 10638 t.fixed |= 2 10639 } 10640 function ze(t) { 10641 t.fixed &= 1 10642 } 10643 function He(t) { 10644 t.fixed |= 4 10645 } 10646 function Be(t) { 10647 t.fixed &= 3 10648 } 10649 function Ve(t, e, n) { 10650 var r = 0 10651 , i = 0; 10652 if (t.charge = 0, 10653 !t.leaf) 10654 for (var o, a = t.nodes, s = a.length, u = -1; ++u < s; ) 10655 null != (o = a[u]) && (Ve(o, e, n), 10656 t.charge += o.charge, 10657 r += o.charge * o.cx, 10658 i += o.charge * o.cy); 10659 if (t.point) { 10660 t.leaf || (t.point.x += Math.random() - .5, 10661 t.point.y += Math.random() - .5); 10662 var l = e * n[t.point.index]; 10663 t.charge += t.pointCharge = l, 10664 r += l * t.point.x, 10665 i += l * t.point.y 10666 } 10667 t.cx = r / t.charge, 10668 t.cy = i / t.charge 10669 } 10670 function Ue(t) { 10671 return 20 10672 } 10673 function We(t) { 10674 return 1 10675 } 10676 function Ke(t) { 10677 return t.x 10678 } 10679 function Ge(t) { 10680 return t.y 10681 } 10682 function Ye(t, e, n) { 10683 t.y0 = e, 10684 t.y = n 10685 } 10686 function Je(t) { 10687 return d3.range(t.length) 10688 } 10689 function Xe(t) { 10690 for (var e = -1, n = t[0].length, r = []; ++e < n; ) 10691 r[e] = 0; 10692 return r 10693 } 10694 function Ze(t) { 10695 for (var e, n = 1, r = 0, i = t[0][1], o = t.length; n < o; ++n) 10696 (e = t[n][1]) > i && (r = n, 10697 i = e); 10698 return r 10699 } 10700 function tn(t) { 10701 return t.reduce(en, 0) 10702 } 10703 function en(t, e) { 10704 return t + e[1] 10705 } 10706 function nn(t, e) { 10707 return rn(t, Math.ceil(Math.log(e.length) / Math.LN2 + 1)) 10708 } 10709 function rn(t, e) { 10710 for (var n = -1, r = +t[0], i = (t[1] - r) / e, o = []; ++n <= e; ) 10711 o[n] = i * n + r; 10712 return o 10713 } 10714 function on(t) { 10715 return [d3.min(t), d3.max(t)] 10716 } 10717 function an(t, e) { 10718 return d3.rebind(t, e, "sort", "children", "value"), 10719 t.links = cn, 10720 t.nodes = function(e) { 10721 return ao = !0, 10722 (t.nodes = t)(e) 10723 } 10724 , 10725 t 10726 } 10727 function sn(t) { 10728 return t.children 10729 } 10730 function un(t) { 10731 return t.value 10732 } 10733 function ln(t, e) { 10734 return e.value - t.value 10735 } 10736 function cn(t) { 10737 return d3.merge(t.map(function(t) { 10738 return (t.children || []).map(function(e) { 10739 return { 10740 source: t, 10741 target: e 10742 } 10743 }) 10744 })) 10745 } 10746 function hn(t, e) { 10747 return t.value - e.value 10748 } 10749 function dn(t, e) { 10750 var n = t._pack_next; 10751 t._pack_next = e, 10752 e._pack_prev = t, 10753 e._pack_next = n, 10754 n._pack_prev = e 10755 } 10756 function fn(t, e) { 10757 t._pack_next = e, 10758 e._pack_prev = t 10759 } 10760 function pn(t, e) { 10761 var n = e.x - t.x
vendor: 6,030 bytes, lines 10762-10977
10762 , r = e.y - t.y 10763 , i = t.r + e.r; 10764 return i * i - n * n - r * r > .001 10765 } 10766 function gn(t) { 10767 function e(t) { 10768 c = Math.min(t.x - t.r, c), 10769 h = Math.max(t.x + t.r, h), 10770 d = Math.min(t.y - t.r, d), 10771 f = Math.max(t.y + t.r, f) 10772 } 10773 if ((n = t.children) && (l = n.length)) { 10774 var n, r, i, o, a, s, u, l, c = 1 / 0, h = -1 / 0, d = 1 / 0, f = -1 / 0; 10775 if (n.forEach(mn), 10776 r = n[0], 10777 r.x = -r.r, 10778 r.y = 0, 10779 e(r), 10780 l > 1 && (i = n[1], 10781 i.x = i.r, 10782 i.y = 0, 10783 e(i), 10784 l > 2)) 10785 for (o = n[2], 10786 bn(r, i, o), 10787 e(o), 10788 dn(r, o), 10789 r._pack_prev = o, 10790 dn(o, i), 10791 i = r._pack_next, 10792 a = 3; a < l; a++) { 10793 bn(r, i, o = n[a]); 10794 var p = 0 10795 , g = 1 10796 , m = 1; 10797 for (s = i._pack_next; s !== i; s = s._pack_next, 10798 g++) 10799 if (pn(s, o)) { 10800 p = 1; 10801 break 10802 } 10803 if (1 == p) 10804 for (u = r._pack_prev; u !== s._pack_prev && !pn(u, o); u = u._pack_prev, 10805 m++) 10806 ; 10807 p ? (g < m || g == m && i.r < r.r ? fn(r, i = s) : fn(r = u, i), 10808 a--) : (dn(r, o), 10809 i = o, 10810 e(o)) 10811 } 10812 var y = (c + h) / 2 10813 , v = (d + f) / 2 10814 , b = 0; 10815 for (a = 0; a < l; a++) 10816 o = n[a], 10817 o.x -= y, 10818 o.y -= v, 10819 b = Math.max(b, o.r + Math.sqrt(o.x * o.x + o.y * o.y)); 10820 t.r = b, 10821 n.forEach(yn) 10822 } 10823 } 10824 function mn(t) { 10825 t._pack_next = t._pack_prev = t 10826 } 10827 function yn(t) { 10828 delete t._pack_next, 10829 delete t._pack_prev 10830 } 10831 function vn(t, e, n, r) { 10832 var i = t.children; 10833 if (t.x = e += r * t.x, 10834 t.y = n += r * t.y, 10835 t.r *= r, 10836 i) 10837 for (var o = -1, a = i.length; ++o < a; ) 10838 vn(i[o], e, n, r) 10839 } 10840 function bn(t, e, n) { 10841 var r = t.r + n.r 10842 , i = e.x - t.x 10843 , o = e.y - t.y; 10844 if (r && (i || o)) { 10845 var a = e.r + n.r 10846 , s = i * i + o * o; 10847 a *= a, 10848 r *= r; 10849 var u = .5 + (r - a) / (2 * s) 10850 , l = Math.sqrt(Math.max(0, 2 * a * (r + s) - (r -= s) * r - a * a)) / (2 * s); 10851 n.x = t.x + u * i + l * o, 10852 n.y = t.y + u * o - l * i 10853 } else 10854 n.x = t.x + r, 10855 n.y = t.y 10856 } 10857 function wn(t) { 10858 return 1 + d3.max(t, function(t) { 10859 return t.y 10860 }) 10861 } 10862 function xn(t) { 10863 return t.reduce(function(t, e) { 10864 return t + e.x 10865 }, 0) / t.length 10866 } 10867 function _n(t) { 10868 var e = t.children; 10869 return e && e.length ? _n(e[0]) : t 10870 } 10871 function Cn(t) { 10872 var e, n = t.children; 10873 return n && (e = n.length) ? Cn(n[e - 1]) : t 10874 } 10875 function kn(t, e) { 10876 return t.parent == e.parent ? 1 : 2 10877 } 10878 function jn(t) { 10879 var e = t.children; 10880 return e && e.length ? e[0] : t._tree.thread 10881 } 10882 function Tn(t) { 10883 var e, n = t.children; 10884 return n && (e = n.length) ? n[e - 1] : t._tree.thread 10885 } 10886 function Sn(t, e) { 10887 var n = t.children; 10888 if (n && (i = n.length)) 10889 for (var r, i, o = -1; ++o < i; ) 10890 e(r = Sn(n[o], e), t) > 0 && (t = r); 10891 return t 10892 } 10893 function En(t, e) { 10894 return t.x - e.x 10895 } 10896 function An(t, e) { 10897 return e.x - t.x 10898 } 10899 function Mn(t, e) { 10900 return t.depth - e.depth 10901 } 10902 function Qn(t, e) { 10903 function n(t, r) { 10904 var i = t.children; 10905 if (i && (a = i.length)) 10906 for (var o, a, s = null, u = -1; ++u < a; ) 10907 o = i[u], 10908 n(o, s), 10909 s = o; 10910 e(t, r) 10911 } 10912 n(t, null) 10913 } 10914 function $n(t) { 10915 for (var e, n = 0, r = 0, i = t.children, o = i.length; --o >= 0; ) 10916 e = i[o]._tree, 10917 e.prelim += n, 10918 e.mod += n, 10919 n += e.shift + (r += e.change) 10920 } 10921 function Dn(t, e, n) { 10922 t = t._tree, 10923 e = e._tree; 10924 var r = n / (e.number - t.number); 10925 t.change += r, 10926 e.change -= r, 10927 e.shift += n, 10928 e.prelim += n, 10929 e.mod += n 10930 } 10931 function In(t, e, n) { 10932 return t._tree.ancestor.parent == e.parent ? t._tree.ancestor : n 10933 } 10934 function Nn(t) { 10935 return { 10936 x: t.x, 10937 y: t.y, 10938 dx: t.dx, 10939 dy: t.dy 10940 } 10941 } 10942 function Fn(t, e) { 10943 var n = t.x + e[3] 10944 , r = t.y + e[0] 10945 , i = t.dx - e[1] - e[3] 10946 , o = t.dy - e[0] - e[2]; 10947 return i < 0 && (n += i / 2, 10948 i = 0), 10949 o < 0 && (r += o / 2, 10950 o = 0), 10951 { 10952 x: n, 10953 y: r, 10954 dx: i, 10955 dy: o 10956 } 10957 } 10958 function Ln(t, e) { 10959 function n(t, r) { 10960 d3.text(t, e, function(t) { 10961 r(t && n.parse(t)) 10962 }) 10963 } 10964 function r(e) { 10965 return e.map(i).join(t) 10966 } 10967 function i(t) { 10968 return a.test(t) ? '"' + t.replace(/\"/g, '""') + '"' : t 10969 } 10970 var o = new RegExp("\r\n|[" + t + "\r\n]","g") 10971 , a = new RegExp('["' + t + "\n]") 10972 , s = t.charCodeAt(0); 10973 return n.parse = function(t) { 10974 var e; 10975 return n.parseRows(t, function(t, n) { 10976 if (n) { 10977 for (var r = {}
10977, i = -1, o = e.length; ++i < o; ) 10978 r[e[i]] = t[i]; 10979 return r 10980 } 10981 return e = t, 10982 null 10983 }) 10984 } 10985 , 10986 n.parseRows = function(t, e) { 10987 function n() { 10988 if (o.lastIndex >= t.length) 10989 return u; 10990 if (i) 10991 return i = !1, 10992 a; 10993 var e = o.lastIndex; 10994 if (34 === t.charCodeAt(e)) { 10995 for (var n = e; n++ < t.length; ) 10996 if (34 === t.charCodeAt(n)) { 10997 if (34 !== t.charCodeAt(n + 1)) 10998 break; 10999 n++ 11000 } 11001 o.lastIndex = n + 2; 11002 var r = t.charCodeAt(n + 1); 11003 return 13 === r ? (i = !0, 11004 10 === t.charCodeAt(n + 2) && o.lastIndex++) : 10 === r && (i = !0), 11005 t.substring(e + 1, n).replace(/""/g, '"') 11006 } 11007 var l = o.exec(t); 11008 return l ? (i = l[0].charCodeAt(0) !== s, 11009 t.substring(e, l.index)) : (o.lastIndex = t.length, 11010 t.substring(e)) 11011 } 11012 var r, i, a = {}, u = {}, l = [], c = 0; 11013 for (o.lastIndex = 0; (r = n()) !== u; ) { 11014 for (var h = []; r !== a && r !== u; ) 11015 h.push(r), 11016 r = n(); 11017 e && !(h = e(h, c++)) || l.push(h) 11018 } 11019 return l 11020 } 11021 , 11022 n.format = function(t) { 11023 return t.map(r).join("\n") 11024 } 11025 , 11026 n 11027 } 11028 function Pn(t, e) { 11029 return function(n) { 11030 return n && t.hasOwnProperty(n.type) ? t[n.type](n) : e 11031 } 11032 } 11033 function On(t) { 11034 return "m0," + t + "a" + t + "," + t + " 0 1,1 0," + -2 * t + "a" + t + "," + t + " 0 1,1 0," + 2 * t + "z" 11035 } 11036 function qn(t, e) { 11037 uo.hasOwnProperty(t.type) && uo[t.type](t, e) 11038 } 11039 function Rn(t, e) { 11040 qn(t.geometry, e) 11041 } 11042 function zn(t, e) { 11043 for (var n = t.features, r = 0, i = n.length; r < i; r++) 11044 qn(n[r].geometry, e) 11045 } 11046 function Hn(t, e) { 11047 for (var n = t.geometries, r = 0, i = n.length; r < i; r++) 11048 qn(n[r], e) 11049 } 11050 function Bn(t, e) { 11051 for (var n = t.coordinates, r = 0, i = n.length; r < i; r++) 11052 e.apply(null, n[r]) 11053 } 11054 function Vn(t, e) { 11055 for (var n = t.coordinates, r = 0, i = n.length; r < i; r++) 11056 for (var o = n[r], a = 0, s = o.length; a < s; a++) 11057 e.apply(null, o[a]) 11058 } 11059 function Un(t, e) { 11060 for (var n = t.coordinates, r = 0, i = n.length; r < i; r++) 11061 for (var o = n[r][0], a = 0, s = o.length; a < s; a++) 11062 e.apply(null, o[a]) 11063 } 11064 function Wn(t, e) { 11065 e.apply(null, t.coordinates) 11066 } 11067 function Kn(t, e) { 11068 for (var n = t.coordinates[0], r = 0, i = n.length; r < i; r++) 11069 e.apply(null, n[r]) 11070 } 11071 function Gn(t) { 11072 return t.source 11073 } 11074 function Yn(t) { 11075 return t.target 11076 } 11077 function Jn() { 11078 function t(t) { 11079 var e = Math.sin(t *= f) * p 11080 , n = Math.sin(f - t) * p 11081 , r = n * o + e * h 11082 , s = n * a + e * d 11083 , u = n * i + e * c; 11084 return [Math.atan2(s, r) / so, Math.atan2(u, Math.sqrt(r * r + s * s)) / so] 11085 } 11086 var e, n, r, i, o, a, s, u, l, c, h, d, f, p; 11087 return t.distance = function() { 11088 return null == f && (p = 1 / Math.sin(f = Math.acos(Math.max(-1, Math.min(1, i * c + r * l * Math.cos(s - e)))))), 11089 f 11090 } 11091 , 11092 t.source = function(s) { 11093 var u = Math.cos(e = s[0] * so) 11094 , l = Math.sin(e); 11095 return r = Math.cos(n = s[1] * so), 11096 i = Math.sin(n), 11097 o = r * u, 11098 a = r * l, 11099 f = null, 11100 t 11101 } 11102 , 11103 t.target = function(e) { 11104 var n = Math.cos(s = e[0] * so) 11105 , r = Math.sin(s);
11106 return l = Math.cos(u = e[1] * so), 11107 c = Math.sin(u), 11108 h = l * n, 11109 d = l * r, 11110 f = null, 11111 t 11112 } 11113 , 11114 t 11115 } 11116 function Xn(t, e) { 11117 var n = Jn().source(t).target(e); 11118 return n.distance(), 11119 n 11120 } 11121 function Zn(t) { 11122 for (var e = 0, n = 0; ; ) { 11123 if (t(e, n)) 11124 return [e, n]; 11125 0 === e ? (e = n + 1, 11126 n = 0) : (e -= 1, 11127 n += 1) 11128 } 11129 } 11130 function tr(t, e, n, r) { 11131 var i, o, a, s, u, l; 11132 return i = r[t], 11133 o = i[0], 11134 a = i[1], 11135 i = r[e], 11136 s = i[0], 11137 u = i[1], 11138 i = r[n], 11139 l = i[0], 11140 (i[1] - a) * (s - o) - (u - a) * (l - o) > 0 11141 } 11142 function er(t, e, n) { 11143 return (n[0] - e[0]) * (t[1] - e[1]) < (n[1] - e[1]) * (t[0] - e[0]) 11144 } 11145 function nr(t, e, n, r) { 11146 var i = t[0] 11147 , o = e[0] 11148 , a = n[0] 11149 , s = r[0] 11150 , u = t[1] 11151 , l = e[1] 11152 , c = n[1] 11153 , h = r[1] 11154 , d = i - a 11155 , f = o - i 11156 , p = s - a 11157 , g = u - c 11158 , m = l - u 11159 , y = h - c 11160 , v = (p * g - y * d) / (y * f - p * m); 11161 return [i + v * f, u + v * m] 11162 } 11163 function rr(t, e) { 11164 var n = { 11165 list: t.map(function(t, e) { 11166 return { 11167 index: e, 11168 x: t[0], 11169 y: t[1] 11170 } 11171 }).sort(function(t, e) { 11172 return t.y < e.y ? -1 : t.y > e.y ? 1 : t.x < e.x ? -1 : t.x > e.x ? 1 : 0 11173 }), 11174 bottomSite: null 11175 } 11176 , r = { 11177 list: [], 11178 leftEnd: null, 11179 rightEnd: null, 11180 init: function() { 11181 r.leftEnd = r.createHalfEdge(null, "l"), 11182 r.rightEnd = r.createHalfEdge(null, "l"), 11183 r.leftEnd.r = r.rightEnd, 11184 r.rightEnd.l = r.leftEnd, 11185 r.list.unshift(r.leftEnd, r.rightEnd) 11186 }, 11187 createHalfEdge: function(t, e) { 11188 return { 11189 edge: t, 11190 side: e, 11191 vertex: null, 11192 l: null, 11193 r: null 11194 } 11195 }, 11196 insert: function(t, e) { 11197 e.l = t, 11198 e.r = t.r, 11199 t.r.l = e, 11200 t.r = e 11201 }, 11202 leftBound: function(t) { 11203 var e = r.leftEnd; 11204 do { 11205 e = e.r 11206 } while (e != r.rightEnd && i.rightOf(e, t)); 11207 return e = e.l 11208 }, 11209 del: function(t) { 11210 t.l.r = t.r, 11211 t.r.l = t.l, 11212 t.edge = null 11213 }, 11214 right: function(t) { 11215 return t.r 11216 }, 11217 left: function(t) { 11218 return t.l 11219 }, 11220 leftRegion: function(t) { 11221 return null == t.edge ? n.bottomSite : t.edge.region[t.side] 11222 }, 11223 rightRegion: function(t) { 11224 return null == t.edge ? n.bottomSite : t.edge.region[ho[t.side]] 11225 } 11226 } 11227 , i = { 11228 bisect: function(t, e) { 11229 var n = { 11230 region: { 11231 l: t, 11232 r: e 11233 }, 11234 ep: { 11235 l: null, 11236 r: null 11237 } 11238 } 11239 , r = e.x - t.x 11240 , i = e.y - t.y 11241 , o = r > 0 ? r : -r 11242 , a = i > 0 ? i : -i; 11243 return n.c = t.x * r + t.y * i + .5 * (r * r + i * i), 11244 o > a ? (n.a = 1, 11245 n.b = i / r, 11246 n.c /= r) : (n.b = 1, 11247 n.a = r / i, 11248 n.c /= i), 11249 n 11250 }, 11251 intersect: function(t, e) { 11252 var n = t.edge 11253 , r = e.edge; 11254 if (!n || !r || n.region.r == r.region.r) 11255 return null; 11256 var i = n.a * r.b - n.b * r.a; 11257 if (Math.abs(i) < 1e-10) 11258 return null; 11259 var o, a, s = (n.c * r.b - r.c * n.b) / i, u = (r.c * n.a - n.c * r.a) / i, l = n.region.r, c = r.region.r; 11260 l.y < c.y || l.y == c.y && l.x < c.x ? (o = t, 11261 a = n) : (o = e, 11262 a = r); 11263 var h = s >= a.region.r.x; 11264 return h && "l" === o.side || !h && "r" === o.side ? null : { 11265 x: s, 11266 y: u 11267 } 11268 }, 11269 rightOf: function(t, e) { 11270 var n = t.edge 11271 , r = n.region.r 11272 , i = e.x > r.x; 11273 if (i && "l" === t.side) 11274 return 1; 11275 if (!i && "r" === t.side) 11276 return 0; 11277 if (1 === n.a) { 11278 var o = e.y - r.y 11279 , a = e.x - r.x 11280 , s = 0 11281 , u = 0; 11282 if (!i && n.b < 0 || i && n.b >= 0 ? u = s = o >= n.b * a : (u = e.x + e.y * n.b > n.c, 11283 n.b < 0 && (u = !u), 11284 u || (s = 1)), 11285 !s) { 11286 var l = r.x - n.region.l.x; 11287 u = n.b * (a * a - o * o) < l * o * (1 + 2 * a / l + n.b * n.b), 11288 n.b < 0 && (u = !u) 11289 } 11290 } else { 11291 var c = n.c - n.a * e.x 11292 , h = e.y - c 11293 , d = e.x - r.x 11294 , f = c - r.y; 11295 u = h * h > d * d + f * f 11296 } 11297 return "l" === t.side ? u : !u 11298 }, 11299 endPoint: function(t, n, r) { 11300 t.ep[n] = r, 11301 t.ep[ho[n]] && e(t) 11302 }, 11303 distance: function(t, e) { 11304 var n = t.x - e.x 11305 , r = t.y - e.y; 11306 return Math.sqrt(n * n + r * r) 11307 } 11308 } 11309 , o = { 11310 list: [], 11311 insert: function(t, e, n) { 11312 t.vertex = e, 11313 t.ystar = e.y + n; 11314 for (var r = 0, i = o.list, a = i.length; r < a; r++) { 11315 var s = i[r]; 11316 if (!(t.ystar > s.ystar || t.ystar == s.ystar && e.x > s.vertex.x)) 11317 break 11318 } 11319 i.splice(r, 0, t) 11320 }, 11321 del: function(t) { 11322 for (var e = 0, n = o.list, r = n.length; e < r && n[e] != t; ++e) 11323 ; 11324 n.splice(e, 1) 11325 }, 11326 empty: function() { 11327 return 0 === o.list.length 11328 }, 11329 nextEvent: function(t) { 11330 for (var e = 0, n = o.list, r = n.length; e < r; ++e) 11331 if (n[e] == t) 11332 return n[e + 1]; 11333 return null 11334 }, 11335 min: function() { 11336 var t = o.list[0]; 11337 return { 11338 x: t.vertex.x, 11339 y: t.ystar 11340 } 11341 }, 11342 extractMin: function() { 11343 return o.list.shift() 11344 } 11345 }; 11346 r.init(), 11347 n.bottomSite = n.list.shift(); 11348 for (var a, s, u, l, c, h, d, f, p, g, m, y, v, b = n.list.shift(); ; ) 11349 if (o.empty() || (a = o.min()), 11350 b && (o.empty() || b.y < a.y || b.y == a.y && b.x < a.x)) 11351 s = r.leftBound(b), 11352 u = r.right(s), 11353 d = r.rightRegion(s), 11354 y = i.bisect(d, b), 11355 h = r.createHalfEdge(y, "l"), 11356 r.insert(s, h), 11357 g = i.intersect(s, h), 11358 g && (o.del(s), 11359 o.insert(s, g, i.distance(g, b))), 11360 s = h, 11361 h = r.createHalfEdge(y, "r"), 11362 r.insert(s, h), 11363 g = i.intersect(h, u), 11364 g && o.insert(h, g, i.distance(g, b)), 11365 b = n.list.shift(); 11366 else { 11367 if (o.empty()) 11368 break; 11369 s = o.extractMin(), 11370 l = r.left(s), 11371 u = r.right(s), 11372 c = r.right(u), 11373 d = r.leftRegion(s), 11374 f = r.rightRegion(u), 11375 m = s.vertex, 11376 i.endPoint(s.edge, s.side, m), 11377 i.endPoint(u.edge, u.side, m), 11378 r.del(s), 11379 o.del(u), 11380 r.del(u), 11381 v = "l", 11382 d.y > f.y && (p = d, 11383 d = f, 11384 f = p, 11385 v = "r"), 11386 y = i.bisect(d, f), 11387 h = r.createHalfEdge(y, v), 11388 r.insert(l, h), 11389 i.endPoint(y, ho[v], m), 11390 g = i.intersect(l, h), 11391 g && (o.del(l), 11392 o.insert(l, g, i.distance(g, d))),
11393 (g = i.intersect(h, c)) && o.insert(h, g, i.distance(g, d)) 11394 } 11395 for (s = r.right(r.leftEnd); s != r.rightEnd; s = r.right(s)) 11396 e(s.edge) 11397 } 11398 function ir() { 11399 return { 11400 leaf: !0, 11401 nodes: [], 11402 point: null 11403 } 11404 } 11405 function or(t, e, n, r, i, o) { 11406 if (!t(e, n, r, i, o)) { 11407 var a = .5 * (n + i) 11408 , s = .5 * (r + o) 11409 , u = e.nodes; 11410 u[0] && or(t, u[0], n, r, a, s), 11411 u[1] && or(t, u[1], a, r, i, s), 11412 u[2] && or(t, u[2], n, s, a, o), 11413 u[3] && or(t, u[3], a, s, i, o) 11414 } 11415 } 11416 function ar(t) { 11417 return { 11418 x: t[0], 11419 y: t[1] 11420 } 11421 } 11422 function sr() { 11423 this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]) 11424 } 11425 function ur(t) { 11426 return t.substring(0, 3) 11427 } 11428 function lr(t, e, n, r) { 11429 for (var i, o, a = 0, s = e.length, u = n.length; a < s; ) { 11430 if (r >= u) 11431 return -1; 11432 if (37 == (i = e.charCodeAt(a++))) { 11433 if (!(o = Qo[e.charAt(a++)]) || (r = o(t, n, r)) < 0) 11434 return -1 11435 } else if (i != n.charCodeAt(r++)) 11436 return -1 11437 } 11438 return r 11439 } 11440 function cr(t) { 11441 return new RegExp("^(?:" + t.map(d3.requote).join("|") + ")","i") 11442 } 11443 function hr(t) { 11444 for (var e = new n, r = -1, i = t.length; ++r < i; ) 11445 e.set(t[r].toLowerCase(), r); 11446 return e 11447 } 11448 function dr(t, e, n) { 11449 jo.lastIndex = 0; 11450 var r = jo.exec(e.substring(n)); 11451 return r ? n += r[0].length : -1 11452 } 11453 function fr(t, e, n) { 11454 ko.lastIndex = 0; 11455 var r = ko.exec(e.substring(n)); 11456 return r ? n += r[0].length : -1 11457 } 11458 function pr(t, e, n) { 11459 Eo.lastIndex = 0; 11460 var r = Eo.exec(e.substring(n)); 11461 return r ? (t.m = Ao.get(r[0].toLowerCase()), 11462 n += r[0].length) : -1 11463 } 11464 function gr(t, e, n) { 11465 To.lastIndex = 0; 11466 var r = To.exec(e.substring(n)); 11467 return r ? (t.m = So.get(r[0].toLowerCase()), 11468 n += r[0].length) : -1 11469 } 11470 function mr(t, e, n) { 11471 return lr(t, Mo.c.toString(), e, n) 11472 } 11473 function yr(t, e, n) { 11474 return lr(t, Mo.x.toString(), e, n) 11475 } 11476 function vr(t, e, n) { 11477 return lr(t, Mo.X.toString(), e, n) 11478 } 11479 function br(t, e, n) { 11480 $o.lastIndex = 0; 11481 var r = $o.exec(e.substring(n, n + 4)); 11482 return r ? (t.y = +r[0], 11483 n += r[0].length) : -1 11484 } 11485 function wr(t, e, n) { 11486 $o.lastIndex = 0; 11487 var r = $o.exec(e.substring(n, n + 2)); 11488 return r ? (t.y = xr(+r[0]), 11489 n += r[0].length) : -1 11490 } 11491 function xr(t) { 11492 return t + (t > 68 ? 1900 : 2e3) 11493 } 11494 function _r(t, e, n) { 11495 $o.lastIndex = 0; 11496 var r = $o.exec(e.substring(n, n + 2)); 11497 return r ? (t.m = r[0] - 1, 11498 n += r[0].length) : -1 11499 } 11500 function Cr(t, e, n) { 11501 $o.lastIndex = 0; 11502 var r = $o.exec(e.substring(n, n + 2)); 11503 return r ? (t.d = +r[0], 11504 n += r[0].length) : -1 11505 } 11506 function kr(t, e, n) { 11507 $o.lastIndex = 0; 11508 var r = $o.exec(e.substring(n, n + 2)); 11509 return r ? (t.H = +r[0], 11510 n += r[0].length) : -1 11511 } 11512 function jr(t, e, n) { 11513 $o.lastIndex = 0; 11514 var r = $o.exec(e.substring(n, n + 2)); 11515 return r ? (t.M = +r[0], 11516 n += r[0].length) : -1 11517 } 11518 function Tr(t, e, n) { 11519 $o.lastIndex = 0; 11520 var r = $o.exec(e.substring(n, n + 2)); 11521 return r ? (t.S = +r[0], 11522 n += r[0].length) : -1 11523 } 11524 function Sr(t, e, n) { 11525 $o.lastIndex = 0; 11526 var r = $o.exec(e.substring(n, n + 3)); 11527 return r ? (t.L = +r[0], 11528 n += r[0].length) : -1 11529 } 11530 function Er(t, e, n) { 11531 var r = Do.get(e.substring(n, n += 2).toLowerCase()); 11532 return null == r ? -1 : (t.p = r, 11533 n) 11534 } 11535 function Ar(t) { 11536 var e = t.getTimezoneOffset() 11537 , n = e > 0 ? "-" : "+" 11538 , r = ~~(Math.abs(e) / 60) 11539 , i = Math.abs(e) % 60; 11540 return n + wo(r) + wo(i) 11541 } 11542 function Mr(t) { 11543 return t.toISOString() 11544 } 11545 function Qr(t, e, n) { 11546 function r(e) { 11547 var n = t(e) 11548 , r = o(n, 1); 11549 return e - n < r - e ? n : r 11550 } 11551 function i(n) { 11552 return e(n = t(new fo(n - 1)), 1), 11553 n 11554 } 11555 function o(t, n) { 11556 return e(t = new fo(+t), n), 11557 t 11558 } 11559 function a(t, r, o) { 11560 var a = i(t) 11561 , s = []; 11562 if (o > 1) 11563 for (; a < r; ) 11564 n(a) % o || s.push(new Date(+a)), 11565 e(a, 1); 11566 else 11567 for (; a < r; ) 11568 s.push(new Date(+a)), 11569 e(a, 1); 11570 return s 11571 } 11572 function s(t, e, n) { 11573 try { 11574 fo = sr; 11575 var r = new sr; 11576 return r._ = t, 11577 a(r, e, n) 11578 } finally { 11579 fo = Date 11580 } 11581 } 11582 t.floor = t, 11583 t.round = r, 11584 t.ceil = i, 11585 t.offset = o, 11586 t.range = a; 11587 var u = t.utc = $r(t); 11588 return u.floor = u, 11589 u.round = $r(r), 11590 u.ceil = $r(i), 11591 u.offset = $r(o), 11592 u.range = s, 11593 t 11594 } 11595 function $r(t) { 11596 return function(e, n) { 11597 try { 11598 fo = sr; 11599 var r = new sr; 11600 return r._ = e, 11601 t(r, n)._ 11602 } finally { 11603 fo = Date 11604 } 11605 } 11606 } 11607 function Dr(t, e, n) { 11608 function r(e) { 11609 return t(e) 11610 } 11611 return r.invert = function(e) { 11612 return Nr(t.invert(e)) 11613 } 11614 , 11615 r.domain = function(e) { 11616 return arguments.length ? (t.domain(e), 11617 r) : t.domain().map(Nr) 11618 } 11619 , 11620 r.nice = function(t) { 11621 return r.domain($t(r.domain(), function() { 11622 return t 11623 })) 11624 } 11625 , 11626 r.ticks = function(n, i) { 11627 var o = Ir(r.domain()); 11628 if ("function" != typeof n) { 11629 var a = o[1] - o[0]
11630 , s = a / n 11631 , u = d3.bisect(No, s); 11632 if (u == No.length) 11633 return e.year(o, n); 11634 if (!u) 11635 return t.ticks(n).map(Nr); 11636 Math.log(s / No[u - 1]) < Math.log(No[u] / s) && --u, 11637 n = e[u], 11638 i = n[1], 11639 n = n[0].range 11640 } 11641 return n(o[0], new Date(+o[1] + 1), i) 11642 } 11643 , 11644 r.tickFormat = function() { 11645 return n 11646 } 11647 , 11648 r.copy = function() { 11649 return Dr(t.copy(), e, n) 11650 } 11651 , 11652 d3.rebind(r, t, "range", "rangeRound", "interpolate", "clamp") 11653 } 11654 function Ir(t) { 11655 var e = t[0] 11656 , n = t[t.length - 1]; 11657 return e < n ? [e, n] : [n, e] 11658 } 11659 function Nr(t) { 11660 return new Date(t) 11661 } 11662 function Fr(t) { 11663 return function(e) { 11664 for (var n = t.length - 1, r = t[n]; !r[1](e); ) 11665 r = t[--n]; 11666 return r[0](e) 11667 } 11668 } 11669 function Lr(t) { 11670 var e = new Date(t,0,1); 11671 return e.setFullYear(t), 11672 e 11673 } 11674 function Pr(t) { 11675 var e = t.getFullYear() 11676 , n = Lr(e); 11677 return e + (t - n) / (Lr(e + 1) - n) 11678 } 11679 function Or(t) { 11680 var e = new Date(Date.UTC(t, 0, 1)); 11681 return e.setUTCFullYear(t), 11682 e 11683 } 11684 function qr(t) { 11685 var e = t.getUTCFullYear() 11686 , n = Or(e); 11687 return e + (t - n) / (Or(e + 1) - n) 11688 } 11689 Date.now || (Date.now = function() { 11690 return +new Date 11691 } 11692 ); 11693 try { 11694 document.createElement("div").style.setProperty("opacity", 0, "") 11695 } catch (t) { 11696 var Rr = CSSStyleDeclaration.prototype 11697 , zr = Rr.setProperty; 11698 Rr.setProperty = function(t, e, n) { 11699 zr.call(this, t, e + "", n) 11700 } 11701 } 11702 d3 = { 11703 version: "2.10.3" 11704 }; 11705 var Hr = e; 11706 try { 11707 Hr(document.documentElement.childNodes)[0].nodeType 11708 } catch (e) { 11709 Hr = t 11710 } 11711 var Br = [].__proto__ ? function(t, e) { 11712 t.__proto__ = e 11713 } 11714 : function(t, e) { 11715 for (var n in e) 11716 t[n] = e[n] 11717 } 11718 ; 11719 d3.map = function(t) { 11720 var e = new n; 11721 for (var r in t) 11722 e.set(r, t[r]); 11723 return e 11724 } 11725 , 11726 function(t, e) { 11727 try { 11728 for (var n in e) 11729 Object.defineProperty(t.prototype, n, { 11730 value: e[n], 11731 enumerable: !1 11732 }) 11733 } catch (n) { 11734 t.prototype = e 11735 } 11736 }(n, { 11737 has: function(t) { 11738 return Vr + t in this 11739 }, 11740 get: function(t) { 11741 return this[Vr + t] 11742 }, 11743 set: function(t, e) { 11744 return this[Vr + t] = e 11745 }, 11746 remove: function(t) { 11747 return (t = Vr + t)in this && delete this[t] 11748 }, 11749 keys: function() { 11750 var t = []; 11751 return this.forEach(function(e) { 11752 t.push(e) 11753 }), 11754 t 11755 }, 11756 values: function() { 11757 var t = []; 11758 return this.forEach(function(e, n) { 11759 t.push(n) 11760 }), 11761 t 11762 }, 11763 entries: function() { 11764 var t = []; 11765 return this.forEach(function(e, n) { 11766 t.push({ 11767 key: e, 11768 value: n 11769 }) 11770 }), 11771 t 11772 }, 11773 forEach: function(t) { 11774 for (var e in this) 11775 e.charCodeAt(0) === Ur && t.call(this, e.substring(1), this[e]) 11776 } 11777 }); 11778 var Vr = "\0" 11779 , Ur = Vr.charCodeAt(0); 11780 d3.functor = a, 11781 d3.rebind = function(t, e) { 11782 for (var n, r = 1, i = arguments.length; ++r < i; ) 11783 t[n = arguments[r]] = s(t, e, e[n]); 11784 return t 11785 } 11786 , 11787 d3.ascending = function(t, e) { 11788 return t < e ? -1 : t > e ? 1 : t >= e ? 0 : NaN 11789 } 11790 , 11791 d3.descending = function(t, e) { 11792 return e < t ? -1 : e > t ? 1 : e >= t ? 0 : NaN 11793 } 11794 , 11795 d3.mean = function(t, e) { 11796 var n, r = t.length, i = 0, o = -1, a = 0; 11797 if (1 === arguments.length) 11798 for (; ++o < r; ) 11799 u(n = t[o]) && (i += (n - i) / ++a); 11800 else 11801 for (; ++o < r; ) 11802 u(n = e.call(t, t[o], o)) && (i += (n - i) / ++a); 11803 return a ? i : void 0 11804 } 11805 , 11806 d3.median = function(t, e) { 11807 return arguments.length > 1 && (t = t.map(e)), 11808 t = t.filter(u), 11809 t.length ? d3.quantile(t.sort(d3.ascending), .5) : void 0 11810 } 11811 , 11812 d3.min = function(t, e) { 11813 var n, r, i = -1, o = t.length; 11814 if (1 === arguments.length) { 11815 for (; ++i < o && (null == (n = t[i]) || n != n); ) 11816 n = void 0; 11817 for (; ++i < o; ) 11818 null != (r = t[i]) && n > r && (n = r) 11819 } else { 11820 for (; ++i < o && (null == (n = e.call(t, t[i], i)) || n != n); ) 11821 n = void 0; 11822 for (; ++i < o; ) 11823 null != (r = e.call(t, t[i], i)) && n > r && (n = r) 11824 } 11825 return n 11826 } 11827 , 11828 d3.max = function(t, e) { 11829 var n, r, i = -1, o = t.length; 11830 if (1 === arguments.length) { 11831 for (; ++i < o && (null == (n = t[i]) || n != n); ) 11832 n = void 0; 11833 for (; ++i < o; ) 11834 null != (r = t[i]) && r > n && (n = r) 11835 } else { 11836 for (; ++i < o && (null == (n = e.call(t, t[i], i)) || n != n); ) 11837 n = void 0; 11838 for (; ++i < o; ) 11839 null != (r = e.call(t, t[i], i)) && r > n && (n = r) 11840 } 11841 return n 11842 } 11843 , 11844 d3.extent = function(t, e) { 11845 var n, r, i, o = -1, a = t.length; 11846 if (1 === arguments.length) { 11847 for (; ++o < a && (null == (n = i = t[o]) || n != n); ) 11848 n = i = void 0; 11849 for (; ++o < a; ) 11850 null != (r = t[o]) && (n > r && (n = r), 11851 i < r && (i = r)) 11852 } else { 11853 for (; ++o < a && (null == (n = i = e.call(t, t[o], o)) || n != n); ) 11854 n = void 0; 11855 for (; ++o < a; ) 11856 null != (r = e.call(t, t[o], o)) && (n > r && (n = r), 11857 i < r && (i = r)) 11858 } 11859 return [n, i] 11860 } 11861 , 11862 d3.random = { 11863 normal: function(t, e) { 11864 var n = arguments.length; 11865 return n < 2 && (e = 1), 11866 n < 1 && (t = 0), 11867 function() { 11868 var n, r, i; 11869 do { 11870 n = 2 * Math.random() - 1, 11871 r = 2 * Math.random() - 1, 11872 i = n * n + r * r 11873 } while (!i || i > 1); 11874 return t + e * n * Math.sqrt(-2 * Math.log(i) / i) 11875 } 11876 }, 11877 logNormal: function(t, e) { 11878 var n = arguments.length; 11879 n < 2 && (e = 1), 11880 n < 1 && (t = 0); 11881 var r = d3.random.normal(); 11882 return function() { 11883 return Math.exp(t + e * r()) 11884 } 11885 }, 11886 irwinHall: function(t) { 11887 return function() { 11888 for (var e = 0, n = 0; n < t; n++) 11889 e += Math.random(); 11890 return e / t 11891 } 11892 } 11893 }, 11894 d3.sum = function(t, e) { 11895 var n, r = 0, i = t.length, o = -1; 11896 if (1 === arguments.length) 11897 for (; ++o < i; ) 11898 isNaN(n = +t[o]) || (r += n); 11899 else 11900 for (; ++o < i; ) 11901 isNaN(n = +e.call(t, t[o], o)) || (r += n); 11902 return r 11903 } 11904 , 11905 d3.quantile = function(t, e) { 11906 var n = (t.length - 1) * e + 1 11907 , r = Math.floor(n) 11908 , i = t[r - 1] 11909 , o = n - r; 11910 return o ? i + o * (t[r] - i) : i 11911 } 11912 , 11913 d3.transpose = function(t) { 11914 return d3.zip.apply(d3, t) 11915 } 11916 , 11917 d3.zip = function() { 11918 if (!(r = arguments.length)) 11919 return []; 11920 for (var t = -1, e = d3.min(arguments, l), n = new Array(e); ++t < e; ) 11921 for (var r, i = -1, o = n[t] = new Array(r); ++i < r; ) 11922 o[i] = arguments[i][t]; 11923 return n 11924 } 11925 , 11926 d3.bisector = function(t) { 11927 return { 11928 left: function(e, n, r, i) { 11929 for (arguments.length < 3 && (r = 0), 11930 arguments.length < 4 && (i = e.length); r < i; ) { 11931 var o = r + i >>> 1; 11932 t.call(e, e[o], o) < n ? r = o + 1 : i = o 11933 } 11934 return r 11935 }, 11936 right: function(e, n, r, i) { 11937 for (arguments.length < 3 && (r = 0), 11938 arguments.length < 4 && (i = e.length); r < i; ) { 11939 var o = r + i >>> 1; 11940 n < t.call(e, e[o], o) ? i = o : r = o + 1 11941 } 11942 return r 11943 } 11944 } 11945 } 11946 ; 11947 var Wr = d3.bisector(function(t) { 11948 return t 11949 }); 11950 d3.bisectLeft = Wr.left, 11951 d3.bisect = d3.bisectRight = Wr.right, 11952 d3.first = function(t, e) { 11953 var n, r = 0, i = t.length, o = t[0]; 11954 for (1 === arguments.length && (e = d3.ascending); ++r < i; ) 11955 e.call(t, o, n = t[r]) > 0 && (o = n); 11956 return o 11957 } 11958 , 11959 d3.last = function(t, e) { 11960 var n, r = 0, i = t.length, o = t[0]; 11961 for (1 === arguments.length && (e = d3.ascending); ++r < i; ) 11962 e.call(t, o, n = t[r]) <= 0 && (o = n); 11963 return o 11964 } 11965 , 11966 d3.nest = function() { 11967 function t(e, s) { 11968 if (s >= a.length) 11969 return i ? i.call(o, e) : r ? e.sort(r) : e; 11970 for (var u, l, c, h = -1, d = e.length, f = a[s++], p = new n, g = {}; ++h < d; ) 11971 (c = p.get(u = f(l = e[h]))) ? c.push(l) : p.set(u, [l]); 11972 return p.forEach(function(e, n) { 11973 g[e] = t(n, s) 11974 }), 11975 g 11976 } 11977 function e(t, n) { 11978 if (n >= a.length) 11979 return t; 11980 var r, i = [], o = s[n++]; 11981 for (r in t) 11982 i.push({ 11983 key: r, 11984 values: e(t[r], n) 11985 }); 11986 return o && i.sort(function(t, e) { 11987 return o(t.key, e.key) 11988 }), 11989 i 11990 } 11991 var r, i, o = {}, a = [], s = []; 11992 return o.map = function(e) { 11993 return t(e, 0) 11994 } 11995 , 11996 o.entries = function(n) { 11997 return e(t(n, 0), 0) 11998 } 11999 , 12000 o.key = function(t) { 12001 return a.push(t), 12002 o 12003 } 12004 , 12005 o.sortKeys = function(t) { 12006 return s[a.length - 1] = t, 12007 o 12008 } 12009 , 12010 o.sortValues = function(t) { 12011 return r = t, 12012 o 12013 } 12014 , 12015 o.rollup = function(t) { 12016 return i = t, 12017 o 12018 } 12019 , 12020 o 12021 } 12022 , 12023 d3.keys = function(t) { 12024 var e = []; 12025 for (var n in t) 12026 e.push(n); 12027 return e 12028 } 12029 , 12030 d3.values = function(t) { 12031 var e = []; 12032 for (var n in t) 12033 e.push(t[n]); 12034 return e 12035 } 12036 , 12037 d3.entries = function(t) { 12038 var e = []; 12039 for (var n in t) 12040 e.push({ 12041 key: n, 12042 value: t[n] 12043 }); 12044 return e 12045 } 12046 , 12047 d3.permute = function(t, e) { 12048 for (var n = [], r = -1, i = e.length; ++r < i; ) 12049 n[r] = t[e[r]]; 12050 return n 12051 } 12052 , 12053 d3.merge = function(t) { 12054 return Array.prototype.concat.apply([], t) 12055 } 12056 , 12057 d3.split = function(t, e) { 12058 var n, r = [], i = [], o = -1, a = t.length; 12059 for (arguments.length < 2 && (e = c); ++o < a; ) 12060 e.call(i, n = t[o], o) ? i = [] : (i.length || r.push(i), 12061 i.push(n)); 12062 return r 12063 } 12064 , 12065 d3.range = function(t, e, n) { 12066 if (arguments.length < 3 && (n = 1, 12067 arguments.length < 2 && (e = t, 12068 t = 0)), 12069 (e - t) / n == 1 / 0) 12070 throw new Error("infinite range"); 12071 var r, i = [], o = d(Math.abs(n)), a = -1; 12072 if (t *= o, 12073 e *= o, 12074 n *= o, 12075 n < 0) 12076 for (; (r = t + n * ++a) > e; ) 12077 i.push(r / o); 12078 else 12079 for (; (r = t + n * ++a) < e; ) 12080 i.push(r / o); 12081 return i 12082 } 12083 , 12084 d3.requote = function(t) { 12085 return t.replace(Kr, "\\$&") 12086 } 12087 ; 12088 var Kr = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g; 12089 d3.round = function(t, e) { 12090 return e ? Math.round(t * (e = Math.pow(10, e))) / e : Math.round(t) 12091 } 12092 , 12093 d3.xhr = function(t, e, n) { 12094 var r = new XMLHttpRequest; 12095 arguments.length < 3 ? (n = e, 12096 e = null) : e && r.overrideMimeType && r.overrideMimeType(e), 12097 r.open("GET", t, !0), 12098 e && r.setRequestHeader("Accept", e), 12099 r.onreadystatechange = function() { 12100 if (4 === r.readyState) { 12101 var t = r.status; 12102 n(!t && r.response || t >= 200 && t < 300 || 304 === t ? r : null) 12103 } 12104 } 12105 , 12106 r.send(null) 12107 } 12108 , 12109 d3.text = function(t, e, n) { 12110 function r(t) { 12111 n(t && t.responseText) 12112 } 12113 arguments.length < 3 && (n = e, 12114 e = null),
12115 d3.xhr(t, e, r) 12116 } 12117 , 12118 d3.json = function(t, e) { 12119 d3.text(t, "application/json", function(t) { 12120 e(t ? JSON.parse(t) : null) 12121 }) 12122 } 12123 , 12124 d3.html = function(t, e) { 12125 d3.text(t, "text/html", function(t) { 12126 if (null != t) { 12127 var n = document.createRange(); 12128 n.selectNode(document.body), 12129 t = n.createContextualFragment(t) 12130 } 12131 e(t) 12132 }) 12133 } 12134 , 12135 d3.xml = function(t, e, n) { 12136 function r(t) { 12137 n(t && t.responseXML) 12138 } 12139 arguments.length < 3 && (n = e, 12140 e = null), 12141 d3.xhr(t, e, r) 12142 } 12143 ; 12144 var Gr = { 12145 svg: "http://www.w3.org/2000/svg", 12146 xhtml: "http://www.w3.org/1999/xhtml", 12147 xlink: "http://www.w3.org/1999/xlink", 12148 xml: "http://www.w3.org/XML/1998/namespace", 12149 xmlns: "http://www.w3.org/2000/xmlns/" 12150 }; 12151 d3.ns = { 12152 prefix: Gr, 12153 qualify: function(t) { 12154 var e = t.indexOf(":") 12155 , n = t; 12156 return e >= 0 && (n = t.substring(0, e), 12157 t = t.substring(e + 1)), 12158 Gr.hasOwnProperty(n) ? { 12159 space: Gr[n], 12160 local: t 12161 } : t 12162 } 12163 }, 12164 d3.dispatch = function() { 12165 for (var t = new f, e = -1, n = arguments.length; ++e < n; ) 12166 t[arguments[e]] = p(t); 12167 return t 12168 } 12169 , 12170 f.prototype.on = function(t, e) { 12171 var n = t.indexOf(".") 12172 , r = ""; 12173 return n > 0 && (r = t.substring(n + 1), 12174 t = t.substring(0, n)), 12175 arguments.length < 2 ? this[t].on(r) : this[t].on(r, e) 12176 } 12177 , 12178 d3.format = function(t) { 12179 var e = Yr.exec(t) 12180 , n = e[1] || " " 12181 , r = e[3] || "" 12182 , i = e[5] 12183 , o = +e[6] 12184 , a = e[7] 12185 , s = e[8] 12186 , u = e[9] 12187 , l = 1 12188 , c = "" 12189 , h = !1; 12190 switch (s && (s = +s.substring(1)), 12191 i && (n = "0", 12192 a && (o -= Math.floor((o - 1) / 4))), 12193 u) { 12194 case "n": 12195 a = !0, 12196 u = "g"; 12197 break; 12198 case "%": 12199 l = 100, 12200 c = "%", 12201 u = "f"; 12202 break; 12203 case "p": 12204 l = 100, 12205 c = "%", 12206 u = "r"; 12207 break; 12208 case "d": 12209 h = !0, 12210 s = 0; 12211 break; 12212 case "s": 12213 l = -1, 12214 u = "r" 12215 } 12216 return "r" != u || s || (u = "g"), 12217 u = Jr.get(u) || m, 12218 function(t) { 12219 if (h && t % 1) 12220 return ""; 12221 var e = t < 0 && (t = -t) ? "-" : r; 12222 if (l < 0) { 12223 var d = d3.formatPrefix(t, s); 12224 t = d.scale(t), 12225 c = d.symbol 12226 } else 12227 t *= l; 12228 if (t = u(t, s), 12229 i) { 12230 var f = t.length + e.length; 12231 f < o && (t = new Array(o - f + 1).join(n) + t), 12232 a && (t = y(t)), 12233 t = e + t 12234 } else { 12235 a && (t = y(t)), 12236 t = e + t; 12237 var f = t.length; 12238 f < o && (t = new Array(o - f + 1).join(n) + t) 12239 } 12240 return t + c 12241 } 12242 } 12243 ; 12244 var Yr = /(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/ 12245 , Jr = d3.map({ 12246 g: function(t, e) { 12247 return t.toPrecision(e) 12248 }, 12249 e: function(t, e) { 12250 return t.toExponential(e) 12251 }, 12252 f: function(t, e) { 12253 return t.toFixed(e) 12254 }, 12255 r: function(t, e) { 12256 return d3.round(t, e = g(t, e)).toFixed(Math.max(0, Math.min(20, e))) 12257 } 12258 }) 12259 , Xr = ["y", "z", "a", "f", "p", "n", "μ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"].map(v); 12260 d3.formatPrefix = function(t, e) { 12261 var n = 0; 12262 return t && (t < 0 && (t *= -1), 12263 e && (t = d3.round(t, g(t, e))), 12264 n = 1 + Math.floor(1e-12 + Math.log(t) / Math.LN10), 12265 n = Math.max(-24, Math.min(24, 3 * Math.floor((n <= 0 ? n + 1 : n - 1) / 3)))), 12266 Xr[8 + n / 3] 12267 } 12268 ; 12269 var Zr = C(2) 12270 , ti = C(3) 12271 , ei = function() { 12272 return _ 12273 } 12274 , ni = d3.map({ 12275 linear: ei, 12276 poly: C, 12277 quad: function() { 12278 return Zr 12279 }, 12280 cubic: function() { 12281 return ti 12282 }, 12283 sin: function() { 12284 return k 12285 }, 12286 exp: function() { 12287 return j 12288 }, 12289 circle: function() { 12290 return T 12291 }, 12292 elastic: S, 12293 back: E, 12294 bounce: function() { 12295 return A 12296 } 12297 }) 12298 , ri = d3.map({ 12299 in: _, 12300 out: w, 12301 "in-out": x, 12302 "out-in": function(t) { 12303 return x(w(t)) 12304 } 12305 }); 12306 d3.ease = function(t) { 12307 var e = t.indexOf("-") 12308 , n = e >= 0 ? t.substring(0, e) : t 12309 , r = e >= 0 ? t.substring(e + 1) : "in"; 12310 return n = ni.get(n) || ei, 12311 r = ri.get(r) || _, 12312 b(r(n.apply(null, Array.prototype.slice.call(arguments, 1)))) 12313 } 12314 , 12315 d3.event = null, 12316 d3.transform = function(t) { 12317 var e = document.createElementNS(d3.ns.prefix.svg, "g"); 12318 return (d3.transform = function(t) { 12319 e.setAttribute("transform", t); 12320 var n = e.transform.baseVal.consolidate(); 12321 return new D(n ? n.matrix : oi) 12322 } 12323 )(t) 12324 } 12325 , 12326 D.prototype.toString = function() { 12327 return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")" 12328 } 12329 ; 12330 var ii = 180 / Math.PI 12331 , oi = { 12332 a: 1, 12333 b: 0, 12334 c: 0, 12335 d: 1, 12336 e: 0, 12337 f: 0 12338 }; 12339 d3.interpolate = function(t, e) { 12340 for (var n, r = d3.interpolators.length; --r >= 0 && !(n = d3.interpolators[r](t, e)); ) 12341 ; 12342 return n 12343 } 12344 , 12345 d3.interpolateNumber = function(t, e) { 12346 return e -= t, 12347 function(n) { 12348 return t + e * n 12349 } 12350 } 12351 , 12352 d3.interpolateRound = function(t, e) { 12353 return e -= t, 12354 function(n) { 12355 return Math.round(t + e * n) 12356 } 12357 } 12358 , 12359 d3.interpolateString = function(t, e) { 12360 var n, r, i, o, a, s = 0, u = [], l = []; 12361 for (ai.lastIndex = 0, 12362 r = 0; n = ai.exec(e); ++r) 12363 n.index && u.push(e.substring(s, n.index)), 12364 l.push({ 12365 i: u.length, 12366 x: n[0] 12367 }), 12368 u.push(null), 12369 s = ai.lastIndex; 12370 for (s < e.length && u.push(e.substring(s)), 12371 r = 0, 12372 o = l.length; (n = ai.exec(t)) && r < o; ++r) 12373 if (a = l[r], 12374 a.x == n[0]) { 12375 if (a.i) 12376 if (null == u[a.i + 1]) 12377 for (u[a.i - 1] += a.x, 12378 u.splice(a.i, 1), 12379 i = r + 1; i < o; ++i) 12380 l[i].i--; 12381 else 12382 for (u[a.i - 1] += a.x + u[a.i + 1], 12383 u.splice(a.i, 2), 12384 i = r + 1; i < o; ++i) 12385 l[i].i -= 2; 12386 else if (null == u[a.i + 1]) 12387 u[a.i] = a.x; 12388 else 12389 for (u[a.i] = a.x + u[a.i + 1], 12390 u.splice(a.i + 1, 1), 12391 i = r + 1; i < o; ++i) 12392 l[i].i--; 12393 l.splice(r, 1), 12394 o--, 12395 r-- 12396 } else 12397 a.x = d3.interpolateNumber(parseFloat(n[0]), parseFloat(a.x)); 12398 for (; r < o; ) 12399 a = l.pop(), 12400 null == u[a.i + 1] ? u[a.i] = a.x : (u[a.i] = a.x + u[a.i + 1], 12401 u.splice(a.i + 1, 1)), 12402 o--; 12403 return 1 === u.length ? null == u[0] ? l[0].x : function() { 12404 return e 12405 } 12406 : function(t) { 12407 for (r = 0; r < o; ++r) 12408 u[(a = l[r]).i] = a.x(t); 12409 return u.join("") 12410 } 12411 } 12412 , 12413 d3.interpolateTransform = function(t, e) { 12414 var n, r = [], i = [], o = d3.transform(t), a = d3.transform(e), s = o.translate, u = a.translate, l = o.rotate, c = a.rotate, h = o.skew, d = a.skew, f = o.scale, p = a.scale; 12415 return s[0] != u[0] || s[1] != u[1] ? (r.push("translate(", null, ",", null, ")"), 12416 i.push({ 12417 i: 1, 12418 x: d3.interpolateNumber(s[0], u[0]) 12419 }, { 12420 i: 3, 12421 x: d3.interpolateNumber(s[1], u[1]) 12422 })) : u[0] || u[1] ? r.push("translate(" + u + ")") : r.push(""), 12423 l != c ? (l - c >
12423 180 ? c += 360 : c - l > 180 && (l += 360), 12424 i.push({ 12425 i: r.push(r.pop() + "rotate(", null, ")") - 2, 12426 x: d3.interpolateNumber(l, c) 12427 })) : c && r.push(r.pop() + "rotate(" + c + ")"), 12428 h != d ? i.push({ 12429 i: r.push(r.pop() + "skewX(", null, ")") - 2, 12430 x: d3.interpolateNumber(h, d) 12431 }) : d && r.push(r.pop() + "skewX(" + d + ")"), 12432 f[0] != p[0] || f[1] != p[1] ? (n = r.push(r.pop() + "scale(", null, ",", null, ")"), 12433 i.push({ 12434 i: n - 4, 12435 x: d3.interpolateNumber(f[0], p[0]) 12436 }, { 12437 i: n - 2, 12438 x: d3.interpolateNumber(f[1], p[1]) 12439 })) : 1 == p[0] && 1 == p[1] || r.push(r.pop() + "scale(" + p + ")"), 12440 n = i.length, 12441 function(t) { 12442 for (var e, o = -1; ++o < n; ) 12443 r[(e = i[o]).i] = e.x(t); 12444 return r.join("") 12445 } 12446 } 12447 , 12448 d3.interpolateRgb = function(t, e) { 12449 t = d3.rgb(t), 12450 e = d3.rgb(e); 12451 var n = t.r 12452 , r = t.g 12453 , i = t.b 12454 , o = e.r - n 12455 , a = e.g - r 12456 , s = e.b - i; 12457 return function(t) { 12458 return "#" + H(Math.round(n + o * t)) + H(Math.round(r + a * t)) + H(Math.round(i + s * t)) 12459 } 12460 } 12461 , 12462 d3.interpolateHsl = function(t, e) { 12463 t = d3.hsl(t), 12464 e = d3.hsl(e); 12465 var n = t.h 12466 , r = t.s 12467 , i = t.l 12468 , o = e.h - n 12469 , a = e.s - r 12470 , s = e.l - i; 12471 return o > 180 ? o -= 360 : o < -180 && (o += 360), 12472 function(t) { 12473 return J(n + o * t, r + a * t, i + s * t) + "" 12474 } 12475 } 12476 , 12477 d3.interpolateLab = function(t, e) { 12478 t = d3.lab(t), 12479 e = d3.lab(e); 12480 var n = t.l 12481 , r = t.a 12482 , i = t.b 12483 , o = e.l - n 12484 , a = e.a - r 12485 , s = e.b - i; 12486 return function(t) { 12487 return rt(n + o * t, r + a * t, i + s * t) + "" 12488 } 12489 } 12490 , 12491 d3.interpolateHcl = function(t, e) { 12492 t = d3.hcl(t), 12493 e = d3.hcl(e); 12494 var n = t.h 12495 , r = t.c 12496 , i = t.l 12497 , o = e.h - n 12498 , a = e.c - r 12499 , s = e.l - i; 12500 return o > 180 ? o -= 360 : o < -180 && (o += 360), 12501 function(t) { 12502 return tt(n + o * t, r + a * t, i + s * t) + "" 12503 } 12504 } 12505 , 12506 d3.interpolateArray = function(t, e) { 12507 var n, r = [], i = [], o = t.length, a = e.length, s = Math.min(t.length, e.length); 12508 for (n = 0; n < s; ++n) 12509 r.push(d3.interpolate(t[n], e[n])); 12510 for (; n < o; ++n) 12511 i[n] = t[n]; 12512 for (; n < a; ++n) 12513 i[n] = e[n]; 12514 return function(t) { 12515 for (n = 0; n < s; ++n) 12516 i[n] = r[n](t); 12517 return i 12518 } 12519 } 12520 , 12521 d3.interpolateObject = function(t, e) { 12522 var n, r = {}, i = {}; 12523 for (n in t) 12524 n in e ? r[n] = L(n)(t[n], e[n]) : i[n] = t[n]; 12525 for (n in e) 12526 n in t || (i[n] = e[n]); 12527 return function(t) { 12528 for (n in r) 12529 i[n] = r[n](t); 12530 return i 12531 } 12532 } 12533 ; 12534 var ai = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g; 12535 d3.interpolators = [d3.interpolateObject, function(t, e) { 12536 return e instanceof Array && d3.interpolateArray(t, e) 12537 } 12538 , function(t, e) { 12539 return ("string" == typeof t || "string" == typeof e) && d3.interpolateString(t + "", e + "") 12540 } 12541 , function(t, e) { 12542 return ("string" == typeof e ? ui.has(e) || /^(#|rgb\(|hsl\()/.test(e) : e instanceof q) && d3.interpolateRgb(t, e) 12543 } 12544 , function(t, e) { 12545 return !isNaN(t = +t) && !isNaN(e = +e) && d3.interpolateNumber(t, e) 12546 } 12547 ], 12548 q.prototype.toString = function() { 12549 return this.rgb() + "" 12550 } 12551 , 12552 d3.rgb = function(t, e, n) { 12553 return 1 === arguments.length ? t instanceof z ? R(t.r, t.g, t.b) : B("" + t, R, J) : R(~~t, ~~e, ~~n) 12554 } 12555 ; 12556 var si = z.prototype = new q; 12557 si.brighter = function(t) { 12558 t = Math.pow(.7, arguments.length ? t : 1); 12559 var e = this.r 12560 , n = this.g 12561 , r = this.b 12562 , i = 30; 12563 return e || n || r ? (e && e < i && (e = i), 12564 n && n < i && (n = i), 12565 r && r < i && (r = i), 12566 R(Math.min(255, Math.floor(e / t)), Math.min(255, Math.floor(n / t)), Math.min(255, Math.floor(r / t)))) : R(i, i, i) 12567 } 12568 , 12569 si.darker = function(t) { 12570 return t = Math.pow(.7, arguments.length ? t : 1), 12571 R(Math.floor(t * this.r), Math.floor(t * this.g), Math.floor(t * this.b)) 12572 } 12573 , 12574 si.hsl = function() { 12575 return V(this.r, this.g, this.b) 12576 } 12577 , 12578 si.toString = function() { 12579 return "#" + H(this.r) + H(this.g) + H(this.b) 12580 } 12581 ; 12582 var ui = d3.map({ 12583 aliceblue: "#f0f8ff", 12584 antiquewhite: "#faebd7", 12585 aqua: "#00ffff", 12586 aquamarine: "#7fffd4", 12587 azure: "#f0ffff", 12588 beige: "#f5f5dc", 12589 bisque: "#ffe4c4", 12590 black: "#000000", 12591 blanchedalmond: "#ffebcd", 12592 blue: "#0000ff", 12593 blueviolet: "#8a2be2", 12594 brown: "#a52a2a", 12595 burlywood: "#deb887", 12596 cadetblue: "#5f9ea0", 12597 chartreuse: "#7fff00", 12598 chocolate: "#d2691e", 12599 coral: "#ff7f50", 12600 cornflowerblue: "#6495ed", 12601 cornsilk: "#fff8dc", 12602 crimson: "#dc143c", 12603 cyan: "#00ffff", 12604 darkblue: "#00008b", 12605 darkcyan: "#008b8b", 12606 darkgoldenrod: "#b8860b", 12607 darkgray: "#a9a9a9", 12608 darkgreen: "#006400", 12609 darkgrey: "#a9a9a9", 12610 darkkhaki: "#bdb76b", 12611 darkmagenta: "#8b008b", 12612 darkolivegreen: "#556b2f", 12613 darkorange: "#ff8c00", 12614 darkorchid: "#9932cc", 12615 darkred: "#8b0000", 12616 darksalmon: "#e9967a", 12617 darkseagreen: "#8fbc8f", 12618 darkslateblue: "#483d8b", 12619 darkslategray: "#2f4f4f", 12620 darkslategrey: "#2f4f4f", 12621 darkturquoise: "#00ced1", 12622 darkviolet: "#9400d3", 12623 deeppink: "#ff1493", 12624 deepskyblue: "#00bfff", 12625 dimgray: "#696969", 12626 dimgrey: "#696969", 12627 dodgerblue: "#1e90ff", 12628 firebrick: "#b22222", 12629 floralwhite: "#fffaf0", 12630 forestgreen: "#228b22", 12631 fuchsia: "#ff00ff", 12632 gainsboro: "#dcdcdc", 12633 ghostwhite: "#f8f8ff", 12634 gold: "#ffd700", 12635 goldenrod: "#daa520", 12636 gray: "#808080", 12637 green: "#008000", 12638 greenyellow: "#adff2f", 12639 grey: "#808080", 12640 honeydew: "#f0fff0", 12641 hotpink: "#ff69b4", 12642 indianred: "#cd5c5c", 12643 indigo: "#4b0082", 12644 ivory: "#fffff0", 12645 khaki: "#f0e68c", 12646 lavender: "#e6e6fa", 12647 lavenderblush: "#fff0f5", 12648 lawngreen: "#7cfc00", 12649 lemonchiffon: "#fffacd", 12650 lightblue: "#add8e6", 12651 lightcoral: "#f08080", 12652 lightcyan: "#e0ffff", 12653 lightgoldenrodyellow: "#fafad2", 12654 lightgray: "#d3d3d3", 12655 lightgreen: "#90ee90", 12656 lightgrey: "#d3d3d3", 12657 lightpink: "#ffb6c1", 12658 lightsalmon: "#ffa07a", 12659 lightseagreen: "#20b2aa", 12660 lightskyblue: "#87cefa", 12661 lightslategray: "#778899", 12662 lightslategrey: "#778899", 12663 lightsteelblue: "#b0c4de", 12664 lightyellow: "#ffffe0", 12665 lime: "#00ff00", 12666 limegreen: "#32cd32", 12667 linen: "#faf0e6", 12668 magenta: "#ff00ff", 12669 maroon: "#800000", 12670 mediumaquamarine: "#66cdaa", 12671 mediumblue: "#0000cd", 12672 mediumorchid: "#ba55d3", 12673 mediumpurple: "#9370db", 12674 mediumseagreen: "#3cb371", 12675 mediumslateblue: "#7b68ee", 12676 mediumspringgreen: "#00fa9a", 12677 mediumturquoise: "#48d1cc", 12678 mediumvioletred: "#c71585", 12679 midnightblue: "#191970", 12680 mintcream: "#f5fffa", 12681 mistyrose: "#ffe4e1", 12682 moccasin: "#ffe4b5", 12683 navajowhite: "#ffdead", 12684 navy: "#000080", 12685 oldlace: "#fdf5e6", 12686 olive: "#808000", 12687 olivedrab: "#6b8e23", 12688 orange: "#ffa500", 12689 orangered: "#ff4500", 12690 orchid: "#da70d6", 12691 palegoldenrod: "#eee8aa", 12692 palegreen: "#98fb98", 12693 paleturquoise: "#afeeee", 12694 palevioletred: "#db7093", 12695 papayawhip: "#ffefd5", 12696 peachpuff: "#ffdab9", 12697 peru: "#cd853f", 12698 pink: "#ffc0cb", 12699 plum: "#dda0dd", 12700 powderblue: "#b0e0e6", 12701 purple: "#800080", 12702 red: "#ff0000", 12703 rosybrown: "#bc8f8f", 12704 royalblue: "#4169e1", 12705 saddlebrown: "#8b4513", 12706 salmon: "#fa8072", 12707 sandybrown: "#f4a460", 12708 seagreen: "#2e8b57", 12709 seashell: "#fff5ee", 12710 sienna: "#a0522d", 12711 silver: "#c0c0c0", 12712 skyblue: "#87ceeb", 12713 slateblue: "#6a5acd", 12714 slategray: "#708090", 12715 slategrey: "#708090", 12716 snow: "#fffafa", 12717 springgreen: "#00ff7f", 12718 steelblue: "#4682b4", 12719 tan: "#d2b48c", 12720 teal: "#008080", 12721 thistle: "#d8bfd8", 12722 tomato: "#ff6347", 12723 turquoise: "#40e0d0", 12724 violet: "#ee82ee", 12725 wheat: "#f5deb3", 12726 white: "#ffffff", 12727 whitesmoke: "#f5f5f5", 12728 yellow: "#ffff00", 12729 yellowgreen: "#9acd32" 12730 });
12731 ui.forEach(function(t, e) { 12732 ui.set(t, B(e, R, J)) 12733 }), 12734 d3.hsl = function(t, e, n) { 12735 return 1 === arguments.length ? t instanceof Y ? G(t.h, t.s, t.l) : B("" + t, V, G) : G(+t, +e, +n) 12736 } 12737 ; 12738 var li = Y.prototype = new q; 12739 li.brighter = function(t) { 12740 return t = Math.pow(.7, arguments.length ? t : 1), 12741 G(this.h, this.s, this.l / t) 12742 } 12743 , 12744 li.darker = function(t) { 12745 return t = Math.pow(.7, arguments.length ? t : 1), 12746 G(this.h, this.s, t * this.l) 12747 } 12748 , 12749 li.rgb = function() { 12750 return J(this.h, this.s, this.l) 12751 } 12752 , 12753 d3.hcl = function(t, e, n) { 12754 return 1 === arguments.length ? t instanceof Z ? X(t.h, t.c, t.l) : t instanceof nt ? it(t.l, t.a, t.b) : it((t = U((t = d3.rgb(t)).r, t.g, t.b)).l, t.a, t.b) : X(+t, +e, +n) 12755 } 12756 ; 12757 var ci = Z.prototype = new q; 12758 ci.brighter = function(t) { 12759 return X(this.h, this.c, Math.min(100, this.l + hi * (arguments.length ? t : 1))) 12760 } 12761 , 12762 ci.darker = function(t) { 12763 return X(this.h, this.c, Math.max(0, this.l - hi * (arguments.length ? t : 1))) 12764 } 12765 , 12766 ci.rgb = function() { 12767 return tt(this.h, this.c, this.l).rgb() 12768 } 12769 , 12770 d3.lab = function(t, e, n) { 12771 return 1 === arguments.length ? t instanceof nt ? et(t.l, t.a, t.b) : t instanceof Z ? tt(t.l, t.c, t.h) : U((t = d3.rgb(t)).r, t.g, t.b) : et(+t, +e, +n) 12772 } 12773 ; 12774 var hi = 18 12775 , di = .95047 12776 , fi = 1 12777 , pi = 1.08883 12778 , gi = nt.prototype = new q; 12779 gi.brighter = function(t) { 12780 return et(Math.min(100, this.l + hi * (arguments.length ? t : 1)), this.a, this.b) 12781 } 12782 , 12783 gi.darker = function(t) { 12784 return et(Math.max(0, this.l - hi * (arguments.length ? t : 1)), this.a, this.b) 12785 } 12786 , 12787 gi.rgb = function() { 12788 return rt(this.l, this.a, this.b) 12789 } 12790 ; 12791 var mi = function(t, e) { 12792 return e.querySelector(t) 12793 } 12794 , yi = function(t, e) { 12795 return e.querySelectorAll(t) 12796 } 12797 , vi = document.documentElement 12798 , bi = vi.matchesSelector || vi.webkitMatchesSelector || vi.mozMatchesSelector || vi.msMatchesSelector || vi.oMatchesSelector 12799 , wi = function(t, e) { 12800 return bi.call(t, e) 12801 }; 12802 "function" == typeof Sizzle && (mi = function(t, e) { 12803 return Sizzle(t, e)[0] || null 12804 } 12805 , 12806 yi = function(t, e) { 12807 return Sizzle.uniqueSort(Sizzle(t, e)) 12808 } 12809 , 12810 wi = Sizzle.matchesSelector); 12811 var xi = []; 12812 d3.selection = function() { 12813 return _i 12814 } 12815 , 12816 d3.selection.prototype = xi, 12817 xi.select = function(t) { 12818 var e, n, r, i, o = []; 12819 "function" != typeof t && (t = lt(t)); 12820 for (var a = -1, s = this.length; ++a < s; ) { 12821 o.push(e = []), 12822 e.parentNode = (r = this[a]).parentNode; 12823 for (var u = -1, l = r.length; ++u < l; ) 12824 (i = r[u]) ? (e.push(n = t.call(i, i.__data__, u)), 12825 n && "__data__"in i && (n.__data__ = i.__data__)) : e.push(null) 12826 } 12827 return ut(o) 12828 } 12829 , 12830 xi.selectAll = function(t) { 12831 var e, n, r = []; 12832 "function" != typeof t && (t = ct(t)); 12833 for (var i = -1, o = this.length; ++i < o; ) 12834 for (var a = this[i], s = -1, u = a.length; ++s < u; ) 12835 (n = a[s]) && (r.push(e = Hr(t.call(n, n.__data__, s))), 12836 e.parentNode = n); 12837 return ut(r) 12838 } 12839 , 12840 xi.attr = function(t, e) { 12841 if (arguments.length < 2) { 12842 if ("string" == typeof t) { 12843 var n = this.node(); 12844 return t = d3.ns.qualify(t), 12845 t.local ? n.getAttributeNS(t.space, t.local) : n.getAttribute(t) 12846 } 12847 for (e in t) 12848 this.each(ht(e, t[e])); 12849 return this 12850 } 12851 return this.each(ht(t, e)) 12852 } 12853 , 12854 xi.classed = function(t, e) { 12855 if (arguments.length < 2) { 12856 if ("string" == typeof t) { 12857 var n = this.node() 12858 , r = (t = t.trim().split(/^|\s+/g)).length 12859 , i = -1; 12860 if (e = n.classList) { 12861 for (; ++i < r; ) 12862 if (!e.contains(t[i])) 12863 return !1 12864 } else 12865 for (e = n.className, 12866 null != e.baseVal && (e = e.baseVal); ++i < r; ) 12867 if (!dt(t[i]).test(e)) 12868 return !1; 12869 return !0 12870 } 12871 for (e in t) 12872 this.each(ft(e, t[e])); 12873 return this 12874 } 12875 return this.each(ft(t, e)) 12876 } 12877 , 12878 xi.style = function(t, e, n) { 12879 var r = arguments.length; 12880 if (r < 3) { 12881 if ("string" != typeof t) { 12882 r < 2 && (e = ""); 12883 for (n in t) 12884 this.each(gt(n, t[n], e)); 12885 return this 12886 } 12887 if (r < 2) 12888 return window.getComputedStyle(this.node(), null).getPropertyValue(t); 12889 n = "" 12890 } 12891 return this.each(gt(t, e, n)) 12892 } 12893 , 12894 xi.property = function(t, e) { 12895 if (arguments.length < 2) { 12896 if ("string" == typeof t) 12897 return this.node()[t]; 12898 for (e in t) 12899 this.each(mt(e, t[e])); 12900 return this 12901 } 12902 return this.each(mt(t, e)) 12903 } 12904 , 12905 xi.text = function(t) { 12906 return arguments.length < 1 ? this.node().textContent : this.each("function" == typeof t ? function() { 12907 var e = t.apply(this, arguments); 12908 this.textContent = null == e ? "" : e 12909 } 12910 : null == t ? function() { 12911 this.textContent = "" 12912 } 12913 : function() { 12914 this.textContent = t 12915 } 12916 ) 12917 } 12918 , 12919 xi.html = function(t) { 12920 return arguments.length < 1 ? this.node().innerHTML : this.each("function" == typeof t ? function() { 12921 var e = t.apply(this, arguments); 12922 this.innerHTML = null == e ? "" : e 12923 } 12924 : null == t ? function() { 12925 this.innerHTML = "" 12926 } 12927 : function() { 12928 this.innerHTML = t 12929 } 12930 ) 12931 } 12932 , 12933 xi.append = function(t) { 12934 function e() { 12935 return this.appendChild(document.createElementNS(this.namespaceURI, t)) 12936 } 12937 function n() { 12938 return this.appendChild(document.createElementNS(t.space, t.local)) 12939 } 12940 return t = d3.ns.qualify(t), 12941 this.select(t.local ? n : e) 12942 } 12943 , 12944 xi.insert = function(t, e) { 12945 function n() { 12946 return this.insertBefore(document.createElementNS(this.namespaceURI, t), mi(e, this)) 12947 } 12948 function r() { 12949 return this.insertBefore(document.createElementNS(t.space, t.local), mi(e, this)) 12950 } 12951 return t = d3.ns.qualify(t), 12952 this.select(t.local ? r : n) 12953 } 12954 , 12955 xi.remove = function() { 12956 return this.each(function() { 12957 var t = this.parentNode; 12958 t && t.removeChild(this) 12959 }) 12960 } 12961 , 12962 xi.data = function(t, e) { 12963 function r(t, r) {
12964 var i, o, a, s = t.length, h = r.length, d = Math.min(s, h), f = Math.max(s, h), p = [], g = [], m = []; 12965 if (e) { 12966 var y, v = new n, b = [], w = r.length; 12967 for (i = -1; ++i < s; ) 12968 y = e.call(o = t[i], o.__data__, i), 12969 v.has(y) ? m[w++] = o : v.set(y, o), 12970 b.push(y); 12971 for (i = -1; ++i < h; ) 12972 y = e.call(r, a = r[i], i), 12973 v.has(y) ? (p[i] = o = v.get(y), 12974 o.__data__ = a, 12975 g[i] = m[i] = null) : (g[i] = yt(a), 12976 p[i] = m[i] = null), 12977 v.remove(y); 12978 for (i = -1; ++i < s; ) 12979 v.has(b[i]) && (m[i] = t[i]) 12980 } else { 12981 for (i = -1; ++i < d; ) 12982 o = t[i], 12983 a = r[i], 12984 o ? (o.__data__ = a, 12985 p[i] = o, 12986 g[i] = m[i] = null) : (g[i] = yt(a), 12987 p[i] = m[i] = null); 12988 for (; i < h; ++i) 12989 g[i] = yt(r[i]), 12990 p[i] = m[i] = null; 12991 for (; i < f; ++i) 12992 m[i] = t[i], 12993 g[i] = p[i] = null 12994 } 12995 g.update = p, 12996 g.parentNode = p.parentNode = m.parentNode = t.parentNode, 12997 u.push(g), 12998 l.push(p), 12999 c.push(m) 13000 } 13001 var i, o, a = -1, s = this.length; 13002 if (!arguments.length) { 13003 for (t = new Array(s = (i = this[0]).length); ++a < s; ) 13004 (o = i[a]) && (t[a] = o.__data__); 13005 return t 13006 } 13007 var u = _t([]) 13008 , l = ut([]) 13009 , c = ut([]); 13010 if ("function" == typeof t) 13011 for (; ++a < s; ) 13012 r(i = this[a], t.call(i, i.parentNode.__data__, a)); 13013 else 13014 for (; ++a < s; ) 13015 r(i = this[a], t); 13016 return l.enter = function() { 13017 return u 13018 } 13019 , 13020 l.exit = function() { 13021 return c 13022 } 13023 , 13024 l 13025 } 13026 , 13027 xi.datum = xi.map = function(t) { 13028 return arguments.length < 1 ? this.property("__data__") : this.property("__data__", t) 13029 } 13030 , 13031 xi.filter = function(t) { 13032 var e, n, r, i = []; 13033 "function" != typeof t && (t = vt(t)); 13034 for (var o = 0, a = this.length; o < a; o++) { 13035 i.push(e = []), 13036 e.parentNode = (n = this[o]).parentNode; 13037 for (var s = 0, u = n.length; s < u; s++) 13038 (r = n[s]) && t.call(r, r.__data__, s) && e.push(r) 13039 } 13040 return ut(i) 13041 } 13042 , 13043 xi.order = function() { 13044 for (var t = -1, e = this.length; ++t < e; ) 13045 for (var n, r = this[t], i = r.length - 1, o = r[i]; --i >= 0; ) 13046 (n = r[i]) && (o && o !== n.nextSibling && o.parentNode.insertBefore(n, o), 13047 o = n); 13048 return this 13049 } 13050 , 13051 xi.sort = function(t) { 13052 t = bt.apply(this, arguments); 13053 for (var e = -1, n = this.length; ++e < n; ) 13054 this[e].sort(t); 13055 return this.order() 13056 } 13057 , 13058 xi.on = function(t, e, n) { 13059 var r = arguments.length; 13060 if (r < 3) { 13061 if ("string" != typeof t) { 13062 r < 2 && (e = !1); 13063 for (n in t) 13064 this.each(wt(n, t[n], e)); 13065 return this 13066 } 13067 if (r < 2) 13068 return (r = this.node()["__on" + t]) && r._; 13069 n = !1 13070 } 13071 return this.each(wt(t, e, n)) 13072 } 13073 , 13074 xi.each = function(t) { 13075 return xt(this, function(e, n, r) { 13076 t.call(e, e.__data__, n, r) 13077 }) 13078 } 13079 , 13080 xi.call = function(t) { 13081 return t.apply(this, (arguments[0] = this, 13082 arguments)), 13083 this 13084 } 13085 , 13086 xi.empty = function() { 13087 return !this.node() 13088 } 13089 , 13090 xi.node = function(t) { 13091 for (var e = 0, n = this.length; e < n; e++) 13092 for (var r = this[e], i = 0, o = r.length; i < o; i++) { 13093 var a = r[i]; 13094 if (a) 13095 return a 13096 } 13097 return null 13098 } 13099 , 13100 xi.transition = function() { 13101 for (var t, e, n = [], r = -1, i = this.length; ++r < i; ) { 13102 n.push(t = []); 13103 for (var o = this[r], a = -1, s = o.length; ++a < s; ) 13104 t.push((e = o[a]) ? { 13105 node: e, 13106 delay: Ei, 13107 duration: Ai 13108 } : null) 13109 } 13110 return Ct(n, Ti || ++ji, Date.now()) 13111 } 13112 ; 13113 var _i = ut([[document]]); 13114 _i[0].parentNode = vi, 13115 d3.select = function(t) { 13116 return "string" == typeof t ? _i.select(t) : ut([[t]]) 13117 } 13118 , 13119 d3.selectAll = function(t) { 13120 return "string" == typeof t ? _i.selectAll(t) : ut([Hr(t)]) 13121 } 13122 ; 13123 var Ci = []; 13124 d3.selection.enter = _t, 13125 d3.selection.enter.prototype = Ci, 13126 Ci.append = xi.append, 13127 Ci.insert = xi.insert, 13128 Ci.empty = xi.empty, 13129 Ci.node = xi.node, 13130 Ci.select = function(t) { 13131 for (var e, n, r, i, o, a = [], s = -1, u = this.length; ++s < u; ) { 13132 r = (i = this[s]).update, 13133 a.push(e = []), 13134 e.parentNode = i.parentNode; 13135 for (var l = -1, c = i.length; ++l < c; ) 13136 (o = i[l]) ? (e.push(r[l] = n = t.call(i.parentNode, o.__data__, l)), 13137 n.__data__ = o.__data__) : e.push(null) 13138 } 13139 return ut(a) 13140 } 13141 ; 13142 var ki = [] 13143 , ji = 0 13144 , Ti = 0 13145 , Si = d3.ease("cubic-in-out") 13146 , Ei = 0 13147 , Ai = 250 13148 , Mi = Si; 13149 ki.call = xi.call, 13150 d3.transition = function(t) { 13151 return arguments.length ? Ti ? t.transition() : t : _i.transition() 13152 } 13153 , 13154 d3.transition.prototype = ki, 13155 ki.select = function(t) { 13156 var e, n, r, i = []; 13157 "function" != typeof t && (t = lt(t)); 13158 for (var o = -1, a = this.length; ++o < a; ) { 13159 i.push(e = []); 13160 for (var s = this[o], u = -1, l = s.length; ++u < l; ) 13161 (r = s[u]) && (n = t.call(r.node, r.node.__data__, u)) ? ("__data__"in r.node && (n.__data__ = r.node.__data__), 13162 e.push({ 13163 node: n, 13164 delay: r.delay, 13165 duration: r.duration 13166 })) : e.push(null) 13167 } 13168 return Ct(i, this.id, this.time).ease(this.ease()) 13169 } 13170 , 13171 ki.selectAll = function(t) { 13172 var e, n, r, i = []; 13173 "function" != typeof t && (t = ct(t)); 13174 for (var o = -1, a = this.length; ++o < a; ) 13175 for (var s = this[o], u = -1, l = s.length; ++u < l; ) 13176 if (r = s[u]) { 13177 n = t.call(r.node, r.node.__data__, u), 13178 i.push(e = []); 13179 for (var c = -1, h = n.length; ++c < h; ) 13180 e.push({ 13181 node: n[c], 13182 delay: r.delay, 13183 duration: r.duration 13184 }) 13185 } 13186 return Ct(i, this.id, this.time).ease(this.ease()) 13187 } 13188 , 13189 ki.filter = function(t) { 13190 var e, n, r, i = []; 13191 "function" != typeof t && (t = vt(t)); 13192 for (var o = 0, a = this.length; o < a; o++) { 13193 i.push(e = []); 13194 for (var n = this[o], s = 0, u = n.length; s < u; s++) 13195 (r = n[s]) && t.call(r.node, r.node.__data__, s) && e.push(r) 13196 } 13197 return Ct(i, this.id, this.time).ease(this.ease()) 13198 } 13199 , 13200 ki.attr = function(t, e) { 13201 if (arguments.length < 2) { 13202 for (e in t) 13203 this.attrTween(e, Tt(t[e], e)); 13204 return this 13205 } 13206 return this.attrTween(t, Tt(e, t)) 13207 } 13208 , 13209 ki.attrTween = function(t, e) { 13210 function n(t, n) { 13211 var r = e.call(this, t, n, this.getAttribute(i)); 13212 return r === Di ? (this.removeAttribute(i), 13213 null) : r && function(t) { 13214 this.setAttribute(i, r(t)) 13215 } 13216 } 13217 function r(t, n) { 13218 var r = e.call(this, t, n, this.getAttributeNS(i.space, i.local)); 13219 return r === Di ? (this.removeAttributeNS(i.space, i.local), 13220 null) : r && function(t) { 13221 this.setAttributeNS(i.space, i.local, r(t)) 13222 } 13223 } 13224 var i = d3.ns.qualify(t); 13225 return this.tween("attr." + t, i.local ? r : n) 13226 } 13227 , 13228 ki.style = function(t, e, n) { 13229 var r = arguments.length; 13230 if (r < 3) { 13231 if ("string" != typeof t) { 13232 r < 2 && (e = ""); 13233 for (n in t) 13234 this.styleTween(n, Tt(t[n], n), e); 13235 return this 13236 } 13237 n = "" 13238 } 13239 return this.styleTween(t, Tt(e, t), n) 13240 } 13241 , 13242 ki.styleTween = function(t, e, n) { 13243 return arguments.length < 3 && (n = ""), 13244 this.tween("style." + t, function(r, i) { 13245 var o = e.call(this, r, i, window.getComputedStyle(this, null).getPropertyValue(t)); 13246 return o === Di ? (this.style.removeProperty(t), 13247 null) : o && function(e) { 13248 this.style.setProperty(t, o(e), n) 13249 } 13250 }) 13251 } 13252 , 13253 ki.text = function(t) { 13254 return this.tween("text", function(e, n) { 13255 this.textContent = "function" == typeof t ? t.call(this, e, n) : t 13256 }) 13257 } 13258 , 13259 ki.remove = function() { 13260 return this.each("end.transition", function() { 13261 var t; 13262 !this.__transition__ && (t = this.parentNode) && t.removeChild(this) 13263 }) 13264 } 13265 , 13266 ki.delay = function(t) { 13267 return xt(this, "function" == typeof t ? function(e, n, r) { 13268 e.delay = 0 | t.call(e = e.node, e.__data__, n, r) 13269 } 13270 : (t |= 0, 13271 function(e) { 13272 e.delay = t 13273 } 13274 )) 13275 } 13276 , 13277 ki.duration = function(t) { 13278 return xt(this, "function" == typeof t ? function(e, n, r) { 13279 e.duration = Math.max(1, 0 | t.call(e = e.node, e.__data__, n, r)) 13280 } 13281 : (t = Math.max(1, 0 | t), 13282 function(e) { 13283 e.duration = t 13284 } 13285 )) 13286 } 13287 , 13288 ki.transition = function() { 13289 return this.select(i) 13290 } 13291 , 13292 d3.tween = function(t, e) { 13293 function n(n, r, i) { 13294 var o = t.call(this, n, r); 13295 return null == o ? "" != i && Di : i != o && e(i, o + "") 13296 } 13297 function r(n, r, i) { 13298 return i != t && e(i, t) 13299 } 13300 return "function" == typeof t ? n : null == t ? jt : (t += "", 13301 r) 13302 } 13303 ; 13304 var Qi, $i, Di = {}, Ii = 0, Ni = {}, Fi = null; 13305 d3.timer = function(t, e, n) { 13306 if (arguments.length < 3) { 13307 if (arguments.length < 2) 13308 e = 0; 13309 else if (!isFinite(e)) 13310 return; 13311 n = Date.now() 13312 } 13313 var r = Ni[t.id]; 13314 r && r.callback === t ? (r.then = n, 13315 r.delay = e) : Ni[t.id = ++Ii] = Fi = { 13316 callback: t, 13317 then: n, 13318 delay: e, 13319 next: Fi 13320 }, 13321 Qi || ($i = clearTimeout($i), 13322 Qi = 1, 13323 Li(St)) 13324 } 13325 , 13326 d3.timer.flush = function() { 13327 for (var t, e = Date.now(), n = Fi; n; ) 13328 t = e - n.then, 13329 n.delay || (n.flush = n.callback(t)), 13330 n = n.next; 13331 Et() 13332 } 13333 ; 13334 var Li = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(t) { 13335 setTimeout(t, 17) 13336 } 13337 ; 13338 d3.mouse = function(t) { 13339 return At(t, Q()) 13340 } 13341 ; 13342 var Pi = /WebKit/.test(navigator.userAgent) ? -1 : 0; 13343 d3.touches = function(t, e) { 13344 return arguments.length < 2 && (e = Q().touches), 13345 e ? Hr(e).map(function(e) { 13346 var n = At(t, e); 13347 return n.identifier = e.identifier, 13348 n 13349 }) : [] 13350 } 13351 , 13352 d3.scale = {}, 13353 d3.scale.linear = function() { 13354 return It([0, 1], [0, 1], d3.interpolate, !1) 13355 } 13356 , 13357 d3.scale.log = function() { 13358 return zt(d3.scale.linear(), Ht) 13359 } 13360 ; 13361 var Oi = d3.format(".0e"); 13362 Ht.pow = function(t) { 13363 return Math.pow(10, t) 13364 } 13365 , 13366 Bt.pow = function(t) { 13367 return -Math.pow(10, -t) 13368 } 13369 , 13370 d3.scale.pow = function() { 13371 return Vt(d3.scale.linear(), 1) 13372 } 13373 , 13374 d3.scale.sqrt = function() { 13375 return d3.scale.pow().exponent(.5) 13376 } 13377 , 13378 d3.scale.ordinal = function() { 13379 return Wt([], { 13380 t: "range", 13381 a: [[]] 13382 }) 13383 } 13384 , 13385 d3.scale.category10 = function() { 13386 return d3.scale.ordinal().range(qi) 13387 } 13388 , 13389 d3.scale.category20 = function() { 13390 return d3.scale.ordinal().range(Ri) 13391 } 13392 , 13393 d3.scale.category20b = function() { 13394 return d3.scale.ordinal().range(zi) 13395 } 13396 , 13397 d3.scale.category20c = function() { 13398 return d3.scale.ordinal().range(Hi) 13399 } 13400 ; 13401 var qi = ["#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf"] 13402 , Ri = ["#1f77b4", "#aec7e8", "#ff7f0e", "#ffbb78", "#2ca02c", "#98df8a", "#d62728", "#ff989
vendor: 11,177 bytes, lines 13402-13724
134026", "#9467bd", "#c5b0d5", "#8c564b", "#c49c94", "#e377c2", "#f7b6d2", "#7f7f7f", "#c7c7c7", "#bcbd22", "#dbdb8d", "#17becf", "#9edae5"] 13403 , zi = ["#393b79", "#5254a3", "#6b6ecf", "#9c9ede", "#637939", "#8ca252", "#b5cf6b", "#cedb9c", "#8c6d31", "#bd9e39", "#e7ba52", "#e7cb94", "#843c39", "#ad494a", "#d6616b", "#e7969c", "#7b4173", "#a55194", "#ce6dbd", "#de9ed6"] 13404 , Hi = ["#3182bd", "#6baed6", "#9ecae1", "#c6dbef", "#e6550d", "#fd8d3c", "#fdae6b", "#fdd0a2", "#31a354", "#74c476", "#a1d99b", "#c7e9c0", "#756bb1", "#9e9ac8", "#bcbddc", "#dadaeb", "#636363", "#969696", "#bdbdbd", "#d9d9d9"]; 13405 d3.scale.quantile = function() { 13406 return Kt([], []) 13407 } 13408 , 13409 d3.scale.quantize = function() { 13410 return Gt(0, 1, [0, 1]) 13411 } 13412 , 13413 d3.scale.threshold = function() { 13414 return Yt([.5], [0, 1]) 13415 } 13416 , 13417 d3.scale.identity = function() { 13418 return Jt([0, 1]) 13419 } 13420 , 13421 d3.svg = {}, 13422 d3.svg.arc = function() { 13423 function t() { 13424 var t = e.apply(this, arguments) 13425 , o = n.apply(this, arguments) 13426 , a = r.apply(this, arguments) + Bi 13427 , s = i.apply(this, arguments) + Bi 13428 , u = (s < a && (u = a, 13429 a = s, 13430 s = u), 13431 s - a) 13432 , l = u < Math.PI ? "0" : "1" 13433 , c = Math.cos(a) 13434 , h = Math.sin(a) 13435 , d = Math.cos(s) 13436 , f = Math.sin(s); 13437 return u >= Vi ? t ? "M0," + o + "A" + o + "," + o + " 0 1,1 0," + -o + "A" + o + "," + o + " 0 1,1 0," + o + "M0," + t + "A" + t + "," + t + " 0 1,0 0," + -t + "A" + t + "," + t + " 0 1,0 0," + t + "Z" : "M0," + o + "A" + o + "," + o + " 0 1,1 0," + -o + "A" + o + "," + o + " 0 1,1 0," + o + "Z" : t ? "M" + o * c + "," + o * h + "A" + o + "," + o + " 0 " + l + ",1 " + o * d + "," + o * f + "L" + t * d + "," + t * f + "A" + t + "," + t + " 0 " + l + ",0 " + t * c + "," + t * h + "Z" : "M" + o * c + "," + o * h + "A" + o + "," + o + " 0 " + l + ",1 " + o * d + "," + o * f + "L0,0Z" 13438 } 13439 var e = Xt 13440 , n = Zt 13441 , r = te 13442 , i = ee; 13443 return t.innerRadius = function(n) { 13444 return arguments.length ? (e = a(n), 13445 t) : e 13446 } 13447 , 13448 t.outerRadius = function(e) { 13449 return arguments.length ? (n = a(e), 13450 t) : n 13451 } 13452 , 13453 t.startAngle = function(e) { 13454 return arguments.length ? (r = a(e), 13455 t) : r 13456 } 13457 , 13458 t.endAngle = function(e) { 13459 return arguments.length ? (i = a(e), 13460 t) : i 13461 } 13462 , 13463 t.centroid = function() { 13464 var t = (e.apply(this, arguments) + n.apply(this, arguments)) / 2 13465 , o = (r.apply(this, arguments) + i.apply(this, arguments)) / 2 + Bi; 13466 return [Math.cos(o) * t, Math.sin(o) * t] 13467 } 13468 , 13469 t 13470 } 13471 ; 13472 var Bi = -Math.PI / 2 13473 , Vi = 2 * Math.PI - 1e-6; 13474 d3.svg.line = function() { 13475 return ne(r) 13476 } 13477 ; 13478 var Ui = d3.map({ 13479 linear: oe, 13480 "linear-closed": ae, 13481 "step-before": se, 13482 "step-after": ue, 13483 basis: pe, 13484 "basis-open": ge, 13485 "basis-closed": me, 13486 bundle: ye, 13487 cardinal: he, 13488 "cardinal-open": le, 13489 "cardinal-closed": ce, 13490 monotone: Ce 13491 }); 13492 Ui.forEach(function(t, e) { 13493 e.key = t, 13494 e.closed = /-closed$/.test(t) 13495 }); 13496 var Wi = [0, 2 / 3, 1 / 3, 0] 13497 , Ki = [0, 1 / 3, 2 / 3, 0] 13498 , Gi = [0, 1 / 6, 2 / 3, 1 / 6]; 13499 d3.svg.line.radial = function() { 13500 var t = ne(ke); 13501 return t.radius = t.x, 13502 delete t.x, 13503 t.angle = t.y, 13504 delete t.y, 13505 t 13506 } 13507 , 13508 se.reverse = ue, 13509 ue.reverse = se, 13510 d3.svg.area = function() { 13511 return je(r) 13512 } 13513 , 13514 d3.svg.area.radial = function() { 13515 var t = je(ke); 13516 return t.radius = t.x, 13517 delete t.x, 13518 t.innerRadius = t.x0, 13519 delete t.x0, 13520 t.outerRadius = t.x1, 13521 delete t.x1, 13522 t.angle = t.y, 13523 delete t.y, 13524 t.startAngle = t.y0, 13525 delete t.y0, 13526 t.endAngle = t.y1, 13527 delete t.y1, 13528 t 13529 } 13530 , 13531 d3.svg.chord = function() { 13532 function t(t, a) { 13533 var u = e(this, o, t, a) 13534 , l = e(this, s, t, a); 13535 return "M" + u.p0 + r(u.r, u.p1, u.a1 - u.a0) + (n(u, l) ? i(u.r, u.p1, u.r, u.p0) : i(u.r, u.p1, l.r, l.p0) + r(l.r, l.p1, l.a1 - l.a0) + i(l.r, l.p1, u.r, u.p0)) + "Z" 13536 } 13537 function e(t, e, n, r) { 13538 var i = e.call(t, n, r) 13539 , o = u.call(t, i, r) 13540 , a = l.call(t, i, r) + Bi 13541 , s = c.call(t, i, r) + Bi; 13542 return { 13543 r: o, 13544 a0: a, 13545 a1: s, 13546 p0: [o * Math.cos(a), o * Math.sin(a)], 13547 p1: [o * Math.cos(s), o * Math.sin(s)] 13548 } 13549 } 13550 function n(t, e) { 13551 return t.a0 == e.a0 && t.a1 == e.a1 13552 } 13553 function r(t, e, n) { 13554 return "A" + t + "," + t + " 0 " + +(n > Math.PI) + ",1 " + e 13555 } 13556 function i(t, e, n, r) { 13557 return "Q 0,0 " + r 13558 } 13559 var o = Te 13560 , s = Se 13561 , u = Ee 13562 , l = te 13563 , c = ee; 13564 return t.radius = function(e) { 13565 return arguments.length ? (u = a(e), 13566 t) : u 13567 } 13568 , 13569 t.source = function(e) { 13570 return arguments.length ? (o = a(e), 13571 t) : o 13572 } 13573 , 13574 t.target = function(e) { 13575 return arguments.length ? (s = a(e), 13576 t) : s 13577 } 13578 , 13579 t.startAngle = function(e) { 13580 return arguments.length ? (l = a(e), 13581 t) : l 13582 } 13583 , 13584 t.endAngle = function(e) { 13585 return arguments.length ? (c = a(e), 13586 t) : c 13587 } 13588 , 13589 t 13590 } 13591 , 13592 d3.svg.diagonal = function() { 13593 function t(t, i) { 13594 var o = e.call(this, t, i) 13595 , a = n.call(this, t, i) 13596 , s = (o.y + a.y) / 2 13597 , u = [o, { 13598 x: o.x, 13599 y: s 13600 }, { 13601 x: a.x, 13602 y: s 13603 }, a]; 13604 return u = u.map(r), 13605 "M" + u[0] + "C" + u[1] + " " + u[2] + " " + u[3] 13606 } 13607 var e = Te 13608 , n = Se 13609 , r = Ae; 13610 return t.source = function(n) { 13611 return arguments.length ? (e = a(n), 13612 t) : e 13613 } 13614 , 13615 t.target = function(e) { 13616 return arguments.length ? (n = a(e), 13617 t) : n 13618 } 13619 , 13620 t.projection = function(e) { 13621 return arguments.length ? (r = e, 13622 t) : r 13623 } 13624 , 13625 t 13626 } 13627 , 13628 d3.svg.diagonal.radial = function() { 13629 var t = d3.svg.diagonal() 13630 , e = Ae 13631 , n = t.projection; 13632 return t.projection = function(t) { 13633 return arguments.length ? n(Me(e = t)) : e 13634 } 13635 , 13636 t 13637 } 13638 , 13639 d3.svg.mouse = d3.mouse, 13640 d3.svg.touches = d3.touches, 13641 d3.svg.symbol = function() { 13642 function t(t, r) { 13643 return (Yi.get(e.call(this, t, r)) || De)(n.call(this, t, r)) 13644 } 13645 var e = $e 13646 , n = Qe; 13647 return t.type = function(n) { 13648 return arguments.length ? (e = a(n), 13649 t) : e 13650 } 13651 , 13652 t.size = function(e) { 13653 return arguments.length ? (n = a(e), 13654 t) : n 13655 } 13656 , 13657 t 13658 } 13659 ; 13660 var Yi = d3.map({ 13661 circle: De, 13662 cross: function(t) { 13663 var e = Math.sqrt(t / 5) / 2; 13664 return "M" + -3 * e + "," + -e + "H" + -e + "V" + -3 * e + "H" + e + "V" + -e + "H" + 3 * e + "V" + e + "H" + e + "V" + 3 * e + "H" + -e + "V" + e + "H" + -3 * e + "Z" 13665 }, 13666 diamond: function(t) { 13667 var e = Math.sqrt(t / (2 * Xi)) 13668 , n = e * Xi; 13669 return "M0," + -e + "L" + n + ",0 0," + e + " " + -n + ",0Z" 13670 }, 13671 square: function(t) { 13672 var e = Math.sqrt(t) / 2; 13673 return "M" + -e + "," + -e + "L" + e + "," + -e + " " + e + "," + e + " " + -e + "," + e + "Z" 13674 }, 13675 "triangle-down": function(t) { 13676 var e = Math.sqrt(t / Ji) 13677 , n = e * Ji / 2; 13678 return "M0," + n + "L" + e + "," + -n + " " + -e + "," + -n + "Z" 13679 }, 13680 "triangle-up": function(t) { 13681 var e = Math.sqrt(t / Ji) 13682 , n = e * Ji / 2; 13683 return "M0," + -n + "L" + e + "," + n + " " + -e + "," + n + "Z" 13684 } 13685 }); 13686 d3.svg.symbolTypes = Yi.keys(); 13687 var Ji = Math.sqrt(3) 13688 , Xi = Math.tan(30 * Math.PI / 180); 13689 d3.svg.axis = function() { 13690 function t(t) { 13691 t.each(function() { 13692 var t, h = d3.select(this), d = null == l ? n.ticks ? n.ticks.apply(n, u) : n.domain() : l, f = null == e ? n.tickFormat ? n.tickFormat.apply(n, u) : String : e, p = Fe(n, d, c), g = h.selectAll(".minor").data(p, String), m = g.enter().insert("line", "g").attr("class", "tick minor").style("opacity", 1e-6), y = d3.transition(g.exit()).style("opacity", 1e-6).remove(), v = d3.transition(g).style("opacity", 1), b = h.selectAll("g").data(d, String), w = b.enter().insert("g", "path").style("opacity", 1e-6), x = d3.transition(b.exit()).style("opacity", 1e-6).remove(), _ = d3.transition(b).style("opacity", 1), C = Qt(n), k = h.selectAll(".domain").data([0]), j = (k.enter().append("path").attr("class", "domain"), 13693 d3.transition(k)), T = n.copy(), S = this.__chart__ || T; 13694 this.__chart__ = T, 13695 w.append("line").attr("class", "tick"), 13696 w.append("text"); 13697 var E = w.select("line") 13698 , A = _.select("line") 13699 , M = b.select("text").text(f) 13700 , Q = w.select("text") 13701 , $ = _.select("text"); 13702 switch (r) { 13703 case "bottom": 13704 t = Ie, 13705 m.attr("y2", o), 13706 v.attr("x2", 0).attr("y2", o), 13707 E.attr("y2", i), 13708 Q.attr("y", Math.max(i, 0) + s), 13709 A.attr("x2", 0).attr("y2", i), 13710 $.attr("x", 0).attr("y", Math.max(i, 0) + s), 13711 M.attr("dy", ".71em").attr("text-anchor", "middle"), 13712 j.attr("d", "M" + C[0] + "," + a + "V0H" + C[1] + "V" + a); 13713 break; 13714 case "top": 13715 t = Ie, 13716 m.attr("y2", -o), 13717 v.attr("x2", 0).attr("y2", -o), 13718 E.attr("y2", -i), 13719 Q.attr("y", -(Math.max(i, 0) + s)), 13720 A.attr("x2", 0).attr("y2", -i), 13721 $.attr("x", 0).attr("y", -(Math.max(i, 0) + s)), 13722 M.attr("dy", "0em").attr("text-anchor", "middle"), 13723 j.attr("d", "M" + C[0] + "," + -a + "V0H" + C[1] + "V" + -a); 13724 break;
13725 case "left": 13726 t = Ne, 13727 m.attr("x2", -o), 13728 v.attr("x2", -o).attr("y2", 0), 13729 E.attr("x2", -i), 13730 Q.attr("x", -(Math.max(i, 0) + s)), 13731 A.attr("x2", -i).attr("y2", 0), 13732 $.attr("x", -(Math.max(i, 0) + s)).attr("y", 0), 13733 M.attr("dy", ".32em").attr("text-anchor", "end"), 13734 j.attr("d", "M" + -a + "," + C[0] + "H0V" + C[1] + "H" + -a); 13735 break; 13736 case "right": 13737 t = Ne, 13738 m.attr("x2", o), 13739 v.attr("x2", o).attr("y2", 0), 13740 E.attr("x2", i), 13741 Q.attr("x", Math.max(i, 0) + s), 13742 A.attr("x2", i).attr("y2", 0), 13743 $.attr("x", Math.max(i, 0) + s).attr("y", 0), 13744 M.attr("dy", ".32em").attr("text-anchor", "start"), 13745 j.attr("d", "M" + a + "," + C[0] + "H0V" + C[1] + "H" + a) 13746 } 13747 if (n.ticks) 13748 w.call(t, S), 13749 _.call(t, T), 13750 x.call(t, T), 13751 m.call(t, S), 13752 v.call(t, T), 13753 y.call(t, T); 13754 else { 13755 var D = T.rangeBand() / 2 13756 , I = function(t) { 13757 return T(t) + D 13758 }; 13759 w.call(t, I), 13760 _.call(t, I) 13761 } 13762 }) 13763 } 13764 var e, n = d3.scale.linear(), r = "bottom", i = 6, o = 6, a = 6, s = 3, u = [10], l = null, c = 0; 13765 return t.scale = function(e) { 13766 return arguments.length ? (n = e, 13767 t) : n 13768 } 13769 , 13770 t.orient = function(e) { 13771 return arguments.length ? (r = e, 13772 t) : r 13773 } 13774 , 13775 t.ticks = function() { 13776 return arguments.length ? (u = arguments, 13777 t) : u 13778 } 13779 , 13780 t.tickValues = function(e) { 13781 return arguments.length ? (l = e, 13782 t) : l 13783 } 13784 , 13785 t.tickFormat = function(n) { 13786 return arguments.length ? (e = n, 13787 t) : e 13788 } 13789 , 13790 t.tickSize = function(e, n, r) { 13791 if (!arguments.length) 13792 return i; 13793 var s = arguments.length - 1; 13794 return i = +e, 13795 o = s > 1 ? +n : i, 13796 a = s > 0 ? +arguments[s] : i, 13797 t 13798 } 13799 , 13800 t.tickPadding = function(e) { 13801 return arguments.length ? (s = +e, 13802 t) : s 13803 } 13804 , 13805 t.tickSubdivide = function(e) { 13806 return arguments.length ? (c = +e, 13807 t) : c 13808 } 13809 , 13810 t 13811 } 13812 , 13813 d3.svg.brush = function() { 13814 function t(o) { 13815 o.each(function() { 13816 var o, a = d3.select(this), c = a.selectAll(".background").data([0]), h = a.selectAll(".extent").data([0]), d = a.selectAll(".resize").data(l, String); 13817 a.style("pointer-events", "all").on("mousedown.brush", i).on("touchstart.brush", i), 13818 c.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair"), 13819 h.enter().append("rect").attr("class", "extent").style("cursor", "move"), 13820 d.enter().append("g").attr("class", function(t) { 13821 return "resize " + t 13822 }).style("cursor", function(t) { 13823 return Zi[t] 13824 }).append("rect").attr("x", function(t) { 13825 return /[ew]$/.test(t) ? -3 : null 13826 }).attr("y", function(t) { 13827 return /^[ns]/.test(t) ? -3 : null 13828 }).attr("width", 6).attr("height", 6).style("visibility", "hidden"), 13829 d.style("display", t.empty() ? "none" : null), 13830 d.exit().remove(), 13831 s && (o = Qt(s), 13832 c.attr("x", o[0]).attr("width", o[1] - o[0]), 13833 n(a)), 13834 u && (o = Qt(u), 13835 c.attr("y", o[0]).attr("height", o[1] - o[0]), 13836 r(a)), 13837 e(a) 13838 }) 13839 } 13840 function e(t) { 13841 t.selectAll(".resize").attr("transform", function(t) { 13842 return "translate(" + c[+/e$/.test(t)][0] + "," + c[+/^
13842s/.test(t)][1] + ")" 13843 }) 13844 } 13845 function n(t) { 13846 t.select(".extent").attr("x", c[0][0]), 13847 t.selectAll(".extent,.n>rect,.s>rect").attr("width", c[1][0] - c[0][0]) 13848 } 13849 function r(t) { 13850 t.select(".extent").attr("y", c[0][1]), 13851 t.selectAll(".extent,.e>rect,.w>rect").attr("height", c[1][1] - c[0][1]) 13852 } 13853 function i() { 13854 function i() { 13855 var t = d3.event.changedTouches; 13856 return t ? d3.touches(y, t)[0] : d3.mouse(y) 13857 } 13858 function l() { 13859 32 == d3.event.keyCode && (k || (g = null, 13860 j[0] -= c[1][0], 13861 j[1] -= c[1][1], 13862 k = 2), 13863 M()) 13864 } 13865 function h() { 13866 32 == d3.event.keyCode && 2 == k && (j[0] += c[1][0], 13867 j[1] += c[1][1], 13868 k = 0, 13869 M()) 13870 } 13871 function d() { 13872 var t = i() 13873 , o = !1; 13874 m && (t[0] += m[0], 13875 t[1] += m[1]), 13876 k || (d3.event.altKey ? (g || (g = [(c[0][0] + c[1][0]) / 2, (c[0][1] + c[1][1]) / 2]), 13877 j[0] = c[+(t[0] < g[0])][0], 13878 j[1] = c[+(t[1] < g[1])][1]) : g = null), 13879 _ && f(t, s, 0) && (n(w), 13880 o = !0), 13881 C && f(t, u, 1) && (r(w), 13882 o = !0), 13883 o && (e(w), 13884 b({ 13885 type: "brush", 13886 mode: k ? "move" : "resize" 13887 })) 13888 } 13889 function f(t, e, n) { 13890 var r, i, a = Qt(e), s = a[0], u = a[1], l = j[n], h = c[1][n] - c[0][n]; 13891 if (k && (s -= l, 13892 u -= h + l), 13893 r = Math.max(s, Math.min(u, t[n])), 13894 k ? i = (r += l) + h : (g && (l = Math.max(s, Math.min(u, 2 * g[n] - r))), 13895 l < r ? (i = r, 13896 r = l) : i = l), 13897 c[0][n] !== r || c[1][n] !== i) 13898 return o = null, 13899 c[0][n] = r, 13900 c[1][n] = i, 13901 !0 13902 } 13903 function p() { 13904 d(), 13905 w.style("pointer-events", "all").selectAll(".resize").style("display", t.empty() ? "none" : null), 13906 d3.select("body").style("cursor", null), 13907 T.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null), 13908 b({ 13909 type: "brushend" 13910 }), 13911 M() 13912 } 13913 var g, m, y = this, v = d3.select(d3.event.target), b = a.of(y, arguments), w = d3.select(y), x = v.datum(), _ = !/^(n|s)$/.test(x) && s, C = !/^(e|w)$/.test(x) && u, k = v.classed("extent"), j = i(), T = d3.select(window).on("mousemove.brush", d).on("mouseup.brush", p).on("touchmove.brush", d).on("touchend.brush", p).on("keydown.brush", l).on("keyup.brush", h); 13914 if (k) 13915 j[0] = c[0][0] - j[0], 13916 j[1] = c[0][1] - j[1]; 13917 else if (x) { 13918 var S = +/w$/.test(x) 13919 , E = +/^n/.test(x); 13920 m = [c[1 - S][0] - j[0], c[1 - E][1] - j[1]], 13921 j[0] = c[S][0], 13922 j[1] = c[E][1] 13923 } else 13924 d3.event.altKey && (g = j.slice()); 13925 w.style("pointer-events", "none").selectAll(".resize").style("display", null), 13926 d3.select("body").style("cursor", v.style("cursor")), 13927 b({ 13928 type: "brushstart" 13929 }), 13930 d(), 13931 M() 13932 } 13933 var o, a = $(t, "brushstart", "brush", "brushend"), s = null, u = null, l = to[0], c = [[0, 0], [0, 0]]; 13934 return t.x = function(e) { 13935 return arguments.length ? (s = e, 13936 l = to[!s << 1 | !u], 13937 t) : s 13938 } 13939 , 13940 t.y = function(e) { 13941 return arguments.length ? (u = e, 13942 l = to[!s << 1 | !u], 13943 t) : u 13944 } 13945 , 13946 t.extent = function(e) { 13947 var n, r, i, a, l; 13948 return arguments.length ? (o = [[0, 0], [0, 0]], 13949 s && (n = e[0], 13950 r = e[1], 13951 u && (n = n[0], 13952 r = r[0]), 13953 o[0][0] = n, 13954 o[1][0] = r, 13955 s.invert && (n = s(n), 13956 r = s(r)), 13957 r < n && (l = n, 13958 n = r, 13959 r = l), 13960 c[0][0] = 0 | n, 13961 c[1][0] = 0 | r), 13962 u && (i = e[0], 13963 a = e[1], 13964 s && (i = i[1], 13965 a = a[1]), 13966 o[0][1] = i, 13967 o[1][1] = a, 13968 u.invert && (i = u(i), 13969 a = u(a)), 13970 a < i && (l = i, 13971 i = a, 13972 a = l), 13973 c[0][1] = 0 | i, 13974 c[1][1] = 0 | a), 13975 t) : (e = o || c, 13976 s && (n = e[0][0], 13977 r = e[1][0], 13978 o || (n = c[0][0], 13979 r = c[1][0], 13980 s.invert && (n = s.invert(n), 13981 r = s.invert(r)), 13982 r < n && (l = n, 13983 n = r, 13984 r = l))), 13985 u && (i = e[0][1], 13986 a = e[1][1], 13987 o || (i = c[0][1], 13988 a = c[1][1], 13989 u.invert && (i = u.invert(i), 13990 a = u.invert(a)), 13991 a < i && (l = i, 13992 i = a, 13993 a = l))), 13994 s && u ? [[n, i], [r, a]] : s ? [n, r] : u && [i, a]) 13995 } 13996 , 13997 t.clear = function() { 13998 return o = null, 13999 c[0][0] = c[0][1] = c[1][0] = c[1][1] = 0, 14000 t 14001 } 14002 , 14003 t.empty = function() { 14004 return s && c[0][0] === c[1][0] || u && c[0][1] === c[1][1] 14005 } 14006 , 14007 d3.rebind(t, a, "on") 14008 } 14009 ; 14010 var Zi = { 14011 n: "ns-resize", 14012 e: "ew-resize", 14013 s: "ns-resize", 14014 w: "ew-resize", 14015 nw: "nwse-resize", 14016 ne: "nesw-resize", 14017 se: "nwse-resize", 14018 sw: "nesw-resize" 14019 } 14020 , to = [["n", "e", "s", "w", "nw", "ne", "se", "sw"], ["e", "w"], ["n", "s"], []]; 14021 d3.behavior = {}, 14022 d3.behavior.drag = function() { 14023 function t() { 14024 this.on("mousedown.drag", e).on("touchstart.drag", e) 14025 } 14026 function e() { 14027 function t() { 14028 var t = s.parentNode; 14029 return c ? d3.touches(t).filter(function(t) { 14030 return t.identifier === c 14031 })[0] : d3.mouse(t) 14032 } 14033 function e() { 14034 if (!s.parentNode) 14035 return i(); 14036 var e = t() 14037 , n = e[0] - h[0] 14038 , r = e[1] - h[1]; 14039 d |= n | r, 14040 h = e, 14041 M(), 14042 u({ 14043 type: "drag", 14044 x: e[0] + a[0], 14045 y: e[1] + a[1], 14046 dx: n, 14047 dy: r 14048 }) 14049 } 14050 function i() { 14051 u({ 14052 type: "dragend" 14053 }), 14054 d && (M(), 14055 d3.event.target === l && f.on("click.drag", o, !0)), 14056 f.on(c ? "touchmove.drag-" + c : "mousemove.drag", null).on(c ? "touchend.drag-" + c : "mouseup.drag", null) 14057 } 14058 function o() { 14059 M(), 14060 f.on("click.drag", null) 14061 } 14062 var a, s = this, u = n.of(s, arguments), l = d3.event.target, c = d3.event.touches && d3.event.changedTouches[0].identifier, h = t(), d = 0, f = d3.select(window).on(c ? "touchmove.drag-" + c : "mousemove.drag", e).on(c ? "touchend.drag-" + c : "mouseup.drag", i, !0); 14063 r ? (a = r.apply(s, arguments), 14064 a = [a.x - h[0], a.y - h[1]]) : a = [0, 0], 14065 c || M(), 14066 u({ 14067 type: "dragstart" 14068 }) 14069 } 14070 var n = $(t, "drag", "dragstart", "dragend") 14071 , r = null; 14072 return t.origin = function(e) { 14073 return arguments.length ? (r = e, 14074 t) : r 14075 } 14076 , 14077 d3.rebind(t, n, "on") 14078 } 14079 , 14080 d3.behavior.zoom = function() { 14081 function t() { 14082 this.on("mousedown.zoom", a).on("mousewheel.zoom", s).on("mousemove.zoom", u).on("DOMMouseScroll.zoom", s).on("dblclick.zoom", l).on("touchstart.zoom", c).on("touchmove.zoom", h).on("touchend.zoom", c) 14083 } 14084 function e(t) { 14085 return [(t[0] - b[0]) / w, (t[1] - b[1]) / w] 14086 } 14087 function n(t) { 14088 return [t[0] * w + b[0], t[1] * w + b[1]] 14089 } 14090 function r(t) { 14091 w = Math.max(x[0], Math.min(x[1], t)) 14092 } 14093 function i(t, e) { 14094 e = n(e), 14095 b[0] += t[0] - e[0], 14096 b[1] += t[1] - e[1] 14097 } 14098 function o(t) { 14099 g && g.domain(p.range().map(function(t) { 14100 return (t - b[0]) / w 14101 }).map(p.invert)), 14102 y && y.domain(m.range().map(function(t) { 14103 return (t - b[1]) / w 14104 }).map(m.invert)), 14105 d3.event.preventDefault(), 14106 t({ 14107 type: "zoom", 14108 scale: w, 14109 translate: b 14110 }) 14111 } 14112 function a() { 14113 function t() { 14114 l = 1, 14115 i(d3.mouse(a), h), 14116 o(s) 14117 } 14118 function n() { 14119 l && M(), 14120 c.on("mousemove.zoom", null).on("mouseup.zoom", null), 14121 l && d3.event.target === u && c.on("click.zoom", r, !0) 14122 } 14123 function r() { 14124 M(), 14125 c.on("click.zoom", null) 14126 } 14127 var a = this 14128 , s = _.of(a, arguments) 14129 , u = d3.event.target 14130 , l = 0 14131 , c = d3.select(window).on("mousemove.zoom", t).on("mouseup.zoom", n) 14132 , h = e(d3.mouse(a)); 14133 window.focus(), 14134 M() 14135 } 14136 function s() { 14137 d || (d = e(d3.mouse(this))), 14138 r(Math.pow(2, .002 * Le()) * w), 14139 i(d3.mouse(this), d), 14140 o(_.of(this, arguments)) 14141 } 14142 function u() { 14143 d = null 14144 } 14145 function l() { 14146 var t = d3.mouse(this) 14147 , n = e(t); 14148 r(d3.event.shiftKey ? w / 2 : 2 * w), 14149 i(t, n), 14150 o(_.of(this, arguments)) 14151 } 14152 function c() { 14153 var t = d3.touches(this) 14154 , n = Date.now(); 14155 if (f = w, 14156 d = {}, 14157 t.forEach(function(t) { 14158 d[t.identifier] = e(t) 14159 }), 14160 M(), 14161 1 === t.length) { 14162 if (n - v < 500) { 14163 var a = t[0] 14164 , s = e(t[0]); 14165 r(2 * w), 14166 i(a, s), 14167 o(_.of(this, arguments)) 14168 } 14169 v = n 14170 } 14171 } 14172 function h() { 14173 var t = d3.touches(this) 14174 , e = t[0]
vendor: 32,489 bytes, lines 14175-15213
14175 , n = d[e.identifier]; 14176 if (a = t[1]) { 14177 var a, s = d[a.identifier]; 14178 e = [(e[0] + a[0]) / 2, (e[1] + a[1]) / 2], 14179 n = [(n[0] + s[0]) / 2, (n[1] + s[1]) / 2], 14180 r(d3.event.scale * f) 14181 } 14182 i(e, n), 14183 v = null, 14184 o(_.of(this, arguments)) 14185 } 14186 var d, f, p, g, m, y, v, b = [0, 0], w = 1, x = no, _ = $(t, "zoom"); 14187 return t.translate = function(e) { 14188 return arguments.length ? (b = e.map(Number), 14189 t) : b 14190 } 14191 , 14192 t.scale = function(e) { 14193 return arguments.length ? (w = +e, 14194 t) : w 14195 } 14196 , 14197 t.scaleExtent = function(e) { 14198 return arguments.length ? (x = null == e ? no : e.map(Number), 14199 t) : x 14200 } 14201 , 14202 t.x = function(e) { 14203 return arguments.length ? (g = e, 14204 p = e.copy(), 14205 t) : g 14206 } 14207 , 14208 t.y = function(e) { 14209 return arguments.length ? (y = e, 14210 m = e.copy(), 14211 t) : y 14212 } 14213 , 14214 d3.rebind(t, _, "on") 14215 } 14216 ; 14217 var eo, no = [0, 1 / 0]; 14218 d3.layout = {}, 14219 d3.layout.bundle = function() { 14220 return function(t) { 14221 for (var e = [], n = -1, r = t.length; ++n < r; ) 14222 e.push(Pe(t[n])); 14223 return e 14224 } 14225 } 14226 , 14227 d3.layout.chord = function() { 14228 function t() { 14229 var t, l, h, d, f, p = {}, g = [], m = d3.range(o), y = []; 14230 for (n = [], 14231 r = [], 14232 t = 0, 14233 d = -1; ++d < o; ) { 14234 for (l = 0, 14235 f = -1; ++f < o; ) 14236 l += i[d][f]; 14237 g.push(l), 14238 y.push(d3.range(o)), 14239 t += l 14240 } 14241 for (a && m.sort(function(t, e) { 14242 return a(g[t], g[e]) 14243 }), 14244 s && y.forEach(function(t, e) { 14245 t.sort(function(t, n) { 14246 return s(i[e][t], i[e][n]) 14247 }) 14248 }), 14249 t = (2 * Math.PI - c * o) / t, 14250 l = 0, 14251 d = -1; ++d < o; ) { 14252 for (h = l, 14253 f = -1; ++f < o; ) { 14254 var v = m[d] 14255 , b = y[v][f] 14256 , w = i[v][b] 14257 , x = l 14258 , _ = l += w * t; 14259 p[v + "-" + b] = { 14260 index: v, 14261 subindex: b, 14262 startAngle: x, 14263 endAngle: _, 14264 value: w 14265 } 14266 } 14267 r[v] = { 14268 index: v, 14269 startAngle: h, 14270 endAngle: l, 14271 value: (l - h) / t 14272 }, 14273 l += c 14274 } 14275 for (d = -1; ++d < o; ) 14276 for (f = d - 1; ++f < o; ) { 14277 var C = p[d + "-" + f] 14278 , k = p[f + "-" + d]; 14279 (C.value || k.value) && n.push(C.value < k.value ? { 14280 source: k, 14281 target: C 14282 } : { 14283 source: C, 14284 target: k 14285 }) 14286 } 14287 u && e() 14288 } 14289 function e() { 14290 n.sort(function(t, e) { 14291 return u((t.source.value + t.target.value) / 2, (e.source.value + e.target.value) / 2) 14292 }) 14293 } 14294 var n, r, i, o, a, s, u, l = {}, c = 0; 14295 return l.matrix = function(t) { 14296 return arguments.length ? (o = (i = t) && i.length, 14297 n = r = null, 14298 l) : i 14299 } 14300 , 14301 l.padding = function(t) { 14302 return arguments.length ? (c = t, 14303 n = r = null, 14304 l) : c 14305 } 14306 , 14307 l.sortGroups = function(t) { 14308 return arguments.length ? (a = t, 14309 n = r = null, 14310 l) : a 14311 } 14312 , 14313 l.sortSubgroups = function(t) { 14314 return arguments.length ? (s = t, 14315 n = null, 14316 l) : s 14317 } 14318 , 14319 l.sortChords = function(t) { 14320 return arguments.length ? (u = t, 14321 n && e(), 14322 l) : u 14323 } 14324 , 14325 l.chords = function() { 14326 return n || t(), 14327 n 14328 } 14329 , 14330 l.groups = function() { 14331 return r || t(), 14332 r 14333 } 14334 , 14335 l 14336 } 14337 , 14338 d3.layout.force = function() { 14339 function t(t) { 14340 return function(e, n, r, i, o) { 14341 if (e.point !== t) { 14342 var a = e.cx - t.x 14343 , s = e.cy - t.y 14344 , u = 1 / Math.sqrt(a * a + s * s); 14345 if ((i - n) * u < y) { 14346 var l = e.charge * u * u; 14347 return t.px -= a * l, 14348 t.py -= s * l, 14349 !0 14350 } 14351 if (e.point && isFinite(u)) { 14352 var l = e.pointCharge * u * u; 14353 t.px -= a * l, 14354 t.py -= s * l 14355 } 14356 } 14357 return !e.charge 14358 } 14359 } 14360 function e(t) { 14361 t.px = d3.event.x, 14362 t.py = d3.event.y, 14363 l.resume() 14364 } 14365 var n, i, o, s, u, l = {}, c = d3.dispatch("start", "tick", "end"), h = [1, 1], d = .9, f = Ue, p = We, g = -30, m = .1, y = .8, v = [], b = []; 14366 return l.tick = function() { 14367 if ((i *= .99) < .005) 14368 return c.end({ 14369 type: "end", 14370 alpha: i = 0 14371 }), 14372 !0; 14373 var e, n, r, a, l, f, p, y, w, x = v.length, _ = b.length; 14374 for (n = 0; n < _; ++n) 14375 r = b[n], 14376 a = r.source, 14377 l = r.target, 14378 y = l.x - a.x, 14379 w = l.y - a.y, 14380 (f = y * y + w * w) && (f = i * s[n] * ((f = Math.sqrt(f)) - o[n]) / f, 14381 y *= f, 14382 w *= f, 14383 l.x -= y * (p = a.weight / (l.weight + a.weight)), 14384 l.y -= w * p, 14385 a.x += y * (p = 1 - p), 14386 a.y += w * p); 14387 if ((p = i * m) && (y = h[0] / 2, 14388 w = h[1] / 2, 14389 n = -1, 14390 p)) 14391 for (; ++n < x; ) 14392 r = v[n], 14393 r.x += (y - r.x) * p, 14394 r.y += (w - r.y) * p; 14395 if (g) 14396 for (Ve(e = d3.geom.quadtree(v), i, u), 14397 n = -1; ++n < x; ) 14398 (r = v[n]).fixed || e.visit(t(r)); 14399 for (n = -1; ++n < x; ) 14400 r = v[n], 14401 r.fixed ? (r.x = r.px, 14402 r.y = r.py) : (r.x -= (r.px - (r.px = r.x)) * d, 14403 r.y -= (r.py - (r.py = r.y)) * d); 14404 c.tick({ 14405 type: "tick", 14406 alpha: i 14407 }) 14408 } 14409 , 14410 l.nodes = function(t) { 14411 return arguments.length ? (v = t, 14412 l) : v 14413 } 14414 , 14415 l.links = function(t) { 14416 return arguments.length ? (b = t, 14417 l) : b 14418 } 14419 , 14420 l.size = function(t) { 14421 return arguments.length ? (h = t, 14422 l) : h 14423 } 14424 , 14425 l.linkDistance = function(t) { 14426 return arguments.length ? (f = a(t), 14427 l) : f 14428 } 14429 , 14430 l.distance = l.linkDistance, 14431 l.linkStrength = function(t) { 14432 return arguments.length ? (p = a(t), 14433 l) : p 14434 } 14435 , 14436 l.friction = function(t) { 14437 return arguments.length ? (d = t, 14438 l) : d 14439 } 14440 , 14441 l.charge = function(t) { 14442 return arguments.length ? (g = "function" == typeof t ? t : +t, 14443 l) : g 14444 } 14445 , 14446 l.gravity = function(t) { 14447 return arguments.length ? (m = t, 14448 l) : m 14449 } 14450 , 14451 l.theta = function(t) { 14452 return arguments.length ? (y = t, 14453 l) : y 14454 } 14455 , 14456 l.alpha = function(t) { 14457 return arguments.length ? (i ? i = t > 0 ? t : 0 : t > 0 && (c.start({ 14458 type: "start", 14459 alpha: i = t 14460 }), 14461 d3.timer(l.tick)), 14462 l) : i 14463 } 14464 , 14465 l.start = function() { 14466 function t(t, n) { 14467 for (var r, i = e(), o = -1, a = i.length; ++o < a; ) 14468 if (!isNaN(r = i[o][t])) 14469 return r; 14470 return Math.random() * n 14471 } 14472 function e() { 14473 if (!i) { 14474 for (i = [], 14475 r = 0; r < c; ++r) 14476 i[r] = []; 14477 for (r = 0; r < d; ++r) { 14478 var t = b[r]; 14479 i[t.source.index].push(t.target), 14480 i[t.target.index].push(t.source) 14481 } 14482 } 14483 return i[n] 14484 } 14485 var n, r, i, a, c = v.length, d = b.length, m = h[0], y = h[1]; 14486 for (n = 0; n < c; ++n) 14487 (a = v[n]).index = n, 14488 a.weight = 0; 14489 for (o = [], 14490 s = [], 14491 n = 0; n < d; ++n) 14492 a = b[n], 14493 "number" == typeof a.source && (a.source = v[a.source]), 14494 "number" == typeof a.target && (a.target = v[a.target]), 14495 o[n] = f.call(this, a, n), 14496 s[n] = p.call(this, a, n), 14497 ++a.source.weight, 14498 ++a.target.weight; 14499 for (n = 0; n < c; ++n) 14500 a = v[n], 14501 isNaN(a.x) && (a.x = t("x", m)), 14502 isNaN(a.y) && (a.y = t("y", y)), 14503 isNaN(a.px) && (a.px = a.x), 14504 isNaN(a.py) && (a.py = a.y); 14505 if (u = [], 14506 "function" == typeof g) 14507 for (n = 0; n < c; ++n) 14508 u[n] = +g.call(this, v[n], n); 14509 else 14510 for (n = 0; n < c; ++n) 14511 u[n] = g; 14512 return l.resume() 14513 } 14514 , 14515 l.resume = function() { 14516 return l.alpha(.1) 14517 } 14518 , 14519 l.stop = function() { 14520 return l.alpha(0) 14521 } 14522 , 14523 l.drag = function() { 14524 n || (n = d3.behavior.drag().origin(r).on("dragstart", Re).on("drag", e).on("dragend", ze)), 14525 this.on("mouseover.force", He).on("mouseout.force", Be).call(n) 14526 } 14527 , 14528 d3.rebind(l, c, "on") 14529 } 14530 , 14531 d3.layout.partition = function() { 14532 function t(e, n, r, i) { 14533 var o = e.children; 14534 if (e.x = n, 14535 e.y = e.depth * i, 14536 e.dx = r, 14537 e.dy = i, 14538 o && (a = o.length)) { 14539 var a, s, u, l = -1; 14540 for (r = e.value ? r / e.value : 0; ++l < a; ) 14541 t(s = o[l], n, u = s.value * r, i), 14542 n += u 14543 } 14544 } 14545 function e(t) { 14546 var n = t.children 14547 , r = 0; 14548 if (n && (i = n.length)) 14549 for (var i, o = -1; ++o < i; ) 14550 r = Math.max(r, e(n[o])); 14551 return 1 + r 14552 } 14553 function n(n, o) { 14554 var a = r.call(this, n, o); 14555 return t(a[0], 0, i[0], i[1] / e(a[0])), 14556 a 14557 } 14558 var r = d3.layout.hierarchy() 14559 , i = [1, 1]; 14560 return n.size = function(t) { 14561 return arguments.length ? (i = t, 14562 n) : i 14563 } 14564 , 14565 an(n, r) 14566 } 14567 , 14568 d3.layout.pie = function() { 14569 function t(o, a) { 14570 var s = o.map(function(n, r) { 14571 return +e.call(t, n, r) 14572 }) 14573 , u = +("function" == typeof r ? r.apply(this, arguments) : r) 14574 , l = (("function" == typeof i ? i.apply(this, arguments) : i) - r) / d3.sum(s) 14575 , c = d3.range(o.length); 14576 null != n && c.sort(n === ro ? function(t, e) { 14577 return s[e] - s[t] 14578 } 14579 : function(t, e) { 14580 return n(o[t], o[e]) 14581 } 14582 ); 14583 var h = []; 14584 return c.forEach(function(t) { 14585 var e; 14586 h[t] = { 14587 data: o[t], 14588 value: e = s[t], 14589 startAngle: u, 14590 endAngle: u += e * l 14591 } 14592 }), 14593 h 14594 } 14595 var e = Number 14596 , n = ro 14597 , r = 0 14598 , i = 2 * Math.PI; 14599 return t.value = function(n) { 14600 return arguments.length ? (e = n, 14601 t) : e 14602 } 14603 , 14604 t.sort = function(e) { 14605 return arguments.length ? (n = e, 14606 t) : n 14607 } 14608 , 14609 t.startAngle = function(e) { 14610 return arguments.length ? (r = e, 14611 t) : r 14612 } 14613 , 14614 t.endAngle = function(e) { 14615 return arguments.length ? (i = e, 14616 t) : i 14617 } 14618 , 14619 t 14620 } 14621 ; 14622 var ro = {}; 14623 d3.layout.stack = function() { 14624 function t(r, u) { 14625 var l = r.map(function(n, r) { 14626 return e.call(t, n, r) 14627 }) 14628 , c = l.map(function(e, n) { 14629 return e.map(function(e, n) { 14630 return [a.call(t, e, n), s.call(t, e, n)] 14631 }) 14632 }) 14633 , h = n.call(t, c, u); 14634 l = d3.permute(l, h), 14635 c = d3.permute(c, h); 14636 var d, f, p, g = i.call(t, c, u), m = l.length, y = l[0].length; 14637 for (f = 0; f < y; ++f) 14638 for (o.call(t, l[0][f], p = g[f], c[0][f][1]), 14639 d = 1; d < m; ++d) 14640 o.call(t, l[d][f], p += c[d - 1][f][1], c[d][f][1]); 14641 return r 14642 } 14643 var e = r 14644 , n = Je 14645 , i = Xe 14646 , o = Ye 14647 , a = Ke 14648 , s = Ge; 14649 return t.values = function(n) { 14650 return arguments.length ? (e = n, 14651 t) : e 14652 } 14653 , 14654 t.order = function(e) { 14655 return arguments.length ? (n = "function" == typeof e ? e : io.get(e) || Je, 14656 t) : n 14657 } 14658 , 14659 t.offset = function(e) { 14660 return arguments.length ? (i = "function" == typeof e ? e : oo.get(e) || Xe, 14661 t) : i 14662 } 14663 , 14664 t.x = function(e) { 14665 return arguments.length ? (a = e, 14666 t) : a 14667 } 14668 , 14669 t.y = function(e) { 14670 return arguments.length ? (s = e, 14671 t) : s 14672 } 14673 , 14674 t.out = function(e) { 14675 return arguments.length ? (o = e, 14676 t) : o 14677 } 14678 , 14679 t 14680 } 14681 ; 14682 var io = d3.map({ 14683 "inside-out": function(t) { 14684 var e, n, r = t.length, i = t.map(Ze), o = t.map(tn), a = d3.range(r).sort(function(t, e) { 14685 return i[t] - i[e] 14686 }), s = 0, u = 0, l = [], c = []; 14687 for (e = 0; e < r; ++e) 14688 n = a[e], 14689 s < u ? (s += o[n], 14690 l.push(n)) : (u += o[n], 14691 c.push(n)); 14692 return c.reverse().concat(l) 14693 }, 14694 reverse: function(t) { 14695 return d3.range(t.length).reverse() 14696 }, 14697 default: Je 14698 }) 14699 , oo = d3.map({ 14700 silhouette: function(t) { 14701 var e, n, r, i = t.length, o = t[0].length, a = [], s = 0, u = []; 14702 for (n = 0; n < o; ++n) { 14703 for (e = 0, 14704 r = 0; e < i; e++) 14705 r += t[e][n][1]; 14706 r > s && (s = r), 14707 a.push(r) 14708 } 14709 for (n = 0; n < o; ++n) 14710 u[n] = (s - a[n]) / 2; 14711 return u 14712 }, 14713 wiggle: function(t) { 14714 var e, n, r, i, o, a, s, u, l, c = t.length, h = t[0], d = h.length, f = []; 14715 for (f[0] = u = l = 0, 14716 n = 1; n < d; ++n) { 14717 for (e = 0, 14718 i = 0; e < c; ++e) 14719 i += t[e][n][1]; 14720 for (e = 0, 14721 o = 0, 14722 s = h[n][0] - h[n - 1][0]; e < c; ++e) { 14723 for (r = 0, 14724 a = (t[e][n][1] - t[e][n - 1][1]) / (2 * s); r < e; ++r) 14725 a += (t[r][n][1] - t[r][n - 1][1]) / s; 14726 o += a * t[e][n][1] 14727 } 14728 f[n] = u -= i ? o / i * s : 0, 14729 u < l && (l = u) 14730 } 14731 for (n = 0; n < d; ++n) 14732 f[n] -= l; 14733 return f 14734 }, 14735 expand: function(t) { 14736 var e, n, r, i = t.length, o = t[0].length, a = 1 / i, s = []; 14737 for (n = 0; n < o; ++n) { 14738 for (e = 0, 14739 r = 0; e < i; e++) 14740 r += t[e][n][1]; 14741 if (r) 14742 for (e = 0; e < i; e++) 14743 t[e][n][1] /= r; 14744 else 14745 for (e = 0; e < i; e++) 14746 t[e][n][1] = a 14747 } 14748 for (n = 0; n < o; ++n) 14749 s[n] = 0; 14750 return s 14751 }, 14752 zero: Xe 14753 }); 14754 d3.layout.histogram = function() { 14755 function t(t, o) { 14756 for (var a, s, u = [], l = t.map(n, this), c = r.call(this, l, o), h = i.call(this, c, l, o), o = -1, d = l.length, f = h.length - 1, p = e ? 1 : 1 / d; ++o < f; ) 14757 a = u[o] = [], 14758 a.dx = h[o + 1] - (a.x = h[o]), 14759 a.y = 0; 14760 if (f > 0) 14761 for (o = -1; ++o < d; ) 14762 (s = l[o]) >= c[0] && s <= c[1] && (a = u[d3.bisect(h, s, 1, f) - 1], 14763 a.y += p, 14764 a.push(t[o])); 14765 return u 14766 } 14767 var e = !0 14768 , n = Number 14769 , r = on 14770 , i = nn; 14771 return t.value = function(e) { 14772 return arguments.length ? (n = e, 14773 t) : n 14774 } 14775 , 14776 t.range = function(e) { 14777 return arguments.length ? (r = a(e), 14778 t) : r 14779 } 14780 , 14781 t.bins = function(e) { 14782 return arguments.length ? (i = "number" == typeof e ? function(t) { 14783 return rn(t, e) 14784 } 14785 : a(e), 14786 t) : i 14787 } 14788 , 14789 t.frequency = function(n) { 14790 return arguments.length ? (e = !!n, 14791 t) : e 14792 } 14793 , 14794 t 14795 } 14796 , 14797 d3.layout.hierarchy = function() { 14798 function t(e, a, s) { 14799 var u = i.call(n, e, a) 14800 , l = ao ? e : { 14801 data: e 14802 }; 14803 if (l.depth = a, 14804 s.push(l), 14805 u && (c = u.length)) { 14806 for (var c, h, d = -1, f = l.children = [], p = 0, g = a + 1; ++d < c; ) 14807 h = t(u[d], g, s), 14808 h.parent = l, 14809 f.push(h), 14810 p += h.value; 14811 r && f.sort(r), 14812 o && (l.value = p) 14813 } else 14814 o && (l.value = +o.call(n, e, a) || 0); 14815 return l 14816 } 14817 function e(t, r) { 14818 var i = t.children 14819 , a = 0; 14820 if (i && (s = i.length)) 14821 for (var s, u = -1, l = r + 1; ++u < s; ) 14822 a += e(i[u], l); 14823 else 14824 o && (a = +o.call(n, ao ? t : t.data, r) || 0); 14825 return o && (t.value = a), 14826 a 14827 } 14828 function n(e) { 14829 var n = []; 14830 return t(e, 0, n), 14831 n 14832 } 14833 var r = ln 14834 , i = sn 14835 , o = un; 14836 return n.sort = function(t) { 14837 return arguments.length ? (r = t, 14838 n) : r 14839 } 14840 , 14841 n.children = function(t) { 14842 return arguments.length ? (i = t, 14843 n) : i 14844 } 14845 , 14846 n.value = function(t) { 14847 return arguments.length ? (o = t, 14848 n) : o 14849 } 14850 , 14851 n.revalue = function(t) { 14852 return e(t, 0), 14853 t 14854 } 14855 , 14856 n 14857 } 14858 ; 14859 var ao = !1; 14860 d3.layout.pack = function() { 14861 function t(t, i) { 14862 var o = e.call(this, t, i) 14863 , a = o[0]; 14864 a.x = 0, 14865 a.y = 0, 14866 Qn(a, function(t) { 14867 t.r = Math.sqrt(t.value) 14868 }), 14869 Qn(a, gn); 14870 var s = r[0] 14871 , u = r[1] 14872 , l = Math.max(2 * a.r / s, 2 * a.r / u); 14873 if (n > 0) { 14874 var c = n * l / 2; 14875 Qn(a, function(t) { 14876 t.r += c 14877 }), 14878 Qn(a, gn), 14879 Qn(a, function(t) { 14880 t.r -= c 14881 }), 14882 l = Math.max(2 * a.r / s, 2 * a.r / u) 14883 } 14884 return vn(a, s / 2, u / 2, 1 / l), 14885 o 14886 } 14887 var e = d3.layout.hierarchy().sort(hn) 14888 , n = 0 14889 , r = [1, 1]; 14890 return t.size = function(e) { 14891 return arguments.length ? (r = e, 14892 t) : r 14893 } 14894 , 14895 t.padding = function(e) { 14896 return arguments.length ? (n = +e, 14897 t) : n 14898 } 14899 , 14900 an(t, e) 14901 } 14902 , 14903 d3.layout.cluster = function() { 14904 function t(t, i) { 14905 var o, a = e.call(this, t, i), s = a[0], u = 0; 14906 Qn(s, function(t) { 14907 var e = t.children; 14908 e && e.length ? (t.x = xn(e), 14909 t.y = wn(e)) : (t.x = o ? u += n(t, o) : 0, 14910 t.y = 0, 14911 o = t) 14912 }); 14913 var l = _n(s) 14914 , c = Cn(s) 14915 , h = l.x - n(l, c) / 2 14916 , d = c.x + n(c, l) / 2; 14917 return Qn(s, function(t) { 14918 t.x = (t.x - h) / (d - h) * r[0], 14919 t.y = (1 - (s.y ? t.y / s.y : 1)) * r[1] 14920 }), 14921 a 14922 } 14923 var e = d3.layout.hierarchy().sort(null).value(null) 14924 , n = kn 14925 , r = [1, 1]; 14926 return t.separation = function(e) { 14927 return arguments.length ? (n = e, 14928 t) : n 14929 } 14930 , 14931 t.size = function(e) { 14932 return arguments.length ? (r = e, 14933 t) : r 14934 } 14935 , 14936 an(t, e) 14937 } 14938 , 14939 d3.layout.tree = function() { 14940 function t(t, i) { 14941 function o(t, e) { 14942 var r = t.children 14943 , i = t._tree; 14944 if (r && (a = r.length)) { 14945 for (var a, u, l, c = r[0], h = c, d = -1; ++d < a; ) 14946 l = r[d], 14947 o(l, u), 14948 h = s(l, u, h), 14949 u = l; 14950 $n(t); 14951 var f = .5 * (c._tree.prelim + l._tree.prelim); 14952 e ? (i.prelim = e._tree.prelim + n(t, e), 14953 i.mod = i.prelim - f) : i.prelim = f 14954 } else 14955 e && (i.prelim = e._tree.prelim + n(t, e)) 14956 } 14957 function a(t, e) { 14958 t.x = t._tree.prelim + e; 14959 var n = t.children; 14960 if (n && (r = n.length)) { 14961 var r, i = -1; 14962 for (e += t._tree.mod; ++i < r; ) 14963 a(n[i], e) 14964 } 14965 } 14966 function s(t, e, r) { 14967 if (e) { 14968 for (var i, o = t, a = t, s = e, u = t.parent.children[0], l = o._tree.mod, c = a._tree.mod, h = s._tree.mod, d = u._tree.mod; s = Tn(s), 14969 o = jn(o), 14970 s && o; ) 14971 u = jn(u), 14972 a = Tn(a), 14973 a._tree.ancestor = t, 14974 i = s._tree.prelim + h - o._tree.prelim - l + n(s, o), 14975 i > 0 && (Dn(In(s, t, r), t, i), 14976 l += i, 14977 c += i), 14978 h += s._tree.mod, 14979 l += o._tree.mod, 14980 d += u._tree.mod, 14981 c += a._tree.mod; 14982 s && !Tn(a) && (a._tree.thread = s, 14983 a._tree.mod += h - c), 14984 o && !jn(u) && (u._tree.thread = o, 14985 u._tree.mod += l - d, 14986 r = t) 14987 } 14988 return r 14989 } 14990 var u = e.call(this, t, i) 14991 , l = u[0]; 14992 Qn(l, function(t, e) { 14993 t._tree = { 14994 ancestor: t, 14995 prelim: 0, 14996 mod: 0, 14997 change: 0, 14998 shift: 0, 14999 number: e ? e._tree.number + 1 : 0 15000 } 15001 }), 15002 o(l), 15003 a(l, -l._tree.prelim); 15004 var c = Sn(l, An) 15005 , h = Sn(l, En) 15006 , d = Sn(l, Mn) 15007 , f = c.x - n(c, h) / 2 15008 , p = h.x + n(h, c) / 2 15009 , g = d.depth || 1; 15010 return Qn(l, function(t) { 15011 t.x = (t.x - f) / (p - f) * r[0], 15012 t.y = t.depth / g * r[1], 15013 delete t._tree 15014 }), 15015 u 15016 } 15017 var e = d3.layout.hierarchy().sort(null).value(null) 15018 , n = kn 15019 , r = [1, 1]; 15020 return t.separation = function(e) { 15021 return arguments.length ? (n = e, 15022 t) : n 15023 } 15024 , 15025 t.size = function(e) { 15026 return arguments.length ? (r = e, 15027 t) : r 15028 } 15029 , 15030 an(t, e) 15031 } 15032 , 15033 d3.layout.treemap = function() { 15034 function t(t, e) { 15035 for (var n, r, i = -1, o = t.length; ++i < o; ) 15036 r = (n = t[i]).value * (e < 0 ? 0 : e), 15037 n.area = isNaN(r) || r <= 0 ? 0 : r 15038 } 15039 function e(n) { 15040 var o = n.children; 15041 if (o && o.length) { 15042 var a, s, u, l = h(n), c = [], d = o.slice(), f = 1 / 0, p = Math.min(l.dx, l.dy); 15043 for (t(d, l.dx * l.dy / n.value), 15044 c.area = 0; (u = d.length) > 0; ) 15045 c.push(a = d[u - 1]), 15046 c.area += a.area, 15047 (s = r(c, p)) <= f ? (d.pop(), 15048 f = s) : (c.area -= c.pop().area, 15049 i(c, p, l, !1), 15050 p = Math.min(l.dx, l.dy), 15051 c.length = c.area = 0, 15052 f = 1 / 0); 15053 c.length && (i(c, p, l, !0), 15054 c.length = c.area = 0), 15055 o.forEach(e) 15056 } 15057 } 15058 function n(e) { 15059 var r = e.children; 15060 if (r && r.length) { 15061 var o, a = h(e), s = r.slice(), u = []; 15062 for (t(s, a.dx * a.dy / e.value), 15063 u.area = 0; o = s.pop(); ) 15064 u.push(o), 15065 u.area += o.area, 15066 null != o.z && (i(u, o.z ? a.dx : a.dy, a, !s.length), 15067 u.length = u.area = 0); 15068 r.forEach(n) 15069 } 15070 } 15071 function r(t, e) { 15072 for (var n, r = t.area, i = 0, o = 1 / 0, a = -1, s = t.length; ++a < s; ) 15073 (n = t[a].area) && (n < o && (o = n), 15074 n > i && (i = n)); 15075 return r *= r, 15076 e *= e, 15077 r ? Math.max(e * i * f / r, r / (e * o * f)) : 1 / 0 15078 } 15079 function i(t, e, n, r) { 15080 var i, o = -1, a = t.length, s = n.x, l = n.y, c = e ? u(t.area / e) : 0; 15081 if (e == n.dx) { 15082 for ((r || c > n.dy) && (c = n.dy); ++o < a; ) 15083 i = t[o], 15084 i.x = s, 15085 i.y = l, 15086 i.dy = c, 15087 s += i.dx = Math.min(n.x + n.dx - s, c ? u(i.area / c) : 0); 15088 i.z = !0, 15089 i.dx += n.x + n.dx - s, 15090 n.y += c, 15091 n.dy -= c 15092 } else { 15093 for ((r || c > n.dx) && (c = n.dx); ++o < a; ) 15094 i = t[o], 15095 i.x = s, 15096 i.y = l, 15097 i.dx = c, 15098 l += i.dy = Math.min(n.y + n.dy - l, c ? u(i.area / c) : 0); 15099 i.z = !1, 15100 i.dy += n.y + n.dy - l, 15101 n.x += c, 15102 n.dx -= c 15103 } 15104 } 15105 function o(r) { 15106 var i = a || s(r) 15107 , o = i[0]; 15108 return o.x = 0, 15109 o.y = 0, 15110 o.dx = l[0], 15111 o.dy = l[1], 15112 a && s.revalue(o), 15113 t([o], o.dx * o.dy / o.value), 15114 (a ? n : e)(o), 15115 d && (a = i), 15116 i 15117 } 15118 var a, s = d3.layout.hierarchy(), u = Math.round, l = [1, 1], c = null, h = Nn, d = !1, f = .5 * (1 + Math.sqrt(5)); 15119 return o.size = function(t) { 15120 return arguments.length ? (l = t, 15121 o) : l 15122 } 15123 , 15124 o.padding = function(t) { 15125 function e(e) { 15126 var n = t.call(o, e, e.depth); 15127 return null == n ? Nn(e) : Fn(e, "number" == typeof n ? [n, n, n, n] : n) 15128 } 15129 function n(e) { 15130 return Fn(e, t) 15131 } 15132 if (!arguments.length) 15133 return c; 15134 var r; 15135 return h = null == (c = t) ? Nn : "function" == (r = typeof t) ? e : "number" === r ? (t = [t, t, t, t], 15136 n) : n, 15137 o 15138 } 15139 , 15140 o.round = function(t) { 15141 return arguments.length ? (u = t ? Math.round : Number, 15142 o) : u != Number 15143 } 15144 , 15145 o.sticky = function(t) { 15146 return arguments.length ? (d = t, 15147 a = null, 15148 o) : d 15149 } 15150 , 15151 o.ratio = function(t) { 15152 return arguments.length ? (f = t, 15153 o) : f 15154 } 15155 , 15156 an(o, s) 15157 } 15158 , 15159 d3.csv = Ln(",", "text/csv"), 15160 d3.tsv = Ln("\t", "text/tab-separated-values"), 15161 d3.geo = {}; 15162 var so = Math.PI / 180; 15163 d3.geo.azimuthal = function() { 15164 function t(t) { 15165 var e, r = t[0] * so - n, l = t[1] * so, c = Math.cos(r), h = Math.sin(r), d = Math.cos(l), f = Math.sin(l), p = "orthographic" !== a ? o * f + i * d * c : null, g = "stereographic" === a ? 1 / (1 + p) : "gnomonic" === a ? 1 / p : "equidistant" === a ? (e = Math.acos(p), 15166 e ? e / Math.sin(e) : 0) : "equalarea" === a ? Math.sqrt(2 / (1 + p)) : 1, m = g * d * h, y = g * (o * d * c - i * f); 15167 return [s * m + u[0], s * y + u[1]] 15168 } 15169 var e, n, r, i, o, a = "orthographic", s = 200, u = [480, 250]; 15170 return t.invert = function(t) { 15171 var e = (t[0] - u[0]) / s 15172 , r = (t[1] - u[1]) / s 15173 , l = Math.sqrt(e * e + r * r) 15174 , c = "stereographic" === a ? 2 * Math.atan(l) : "gnomonic" === a ? Math.atan(l) : "equidistant" === a ? l : "equalarea" === a ? 2 * Math.asin(.5 * l) : Math.asin(l) 15175 , h = Math.sin(c) 15176 , d = Math.cos(c); 15177 return [(n + Math.atan2(e * h, l * i * d + r * o * h)) / so, Math.asin(d * o - (l ? r * h * i / l : 0)) / so] 15178 } 15179 , 15180 t.mode = function(e) { 15181 return arguments.length ? (a = e + "", 15182 t) : a 15183 } 15184 , 15185 t.origin = function(a) { 15186 return arguments.length ? (e = a, 15187 n = e[0] * so, 15188 r = e[1] * so, 15189 i = Math.cos(r), 15190 o = Math.sin(r), 15191 t) : e 15192 } 15193 , 15194 t.scale = function(e) { 15195 return arguments.length ? (s = +e, 15196 t) : s 15197 } 15198 , 15199 t.translate = function(e) { 15200 return arguments.length ? (u = [+e[0], +e[1]], 15201 t) : u 15202 } 15203 , 15204 t.origin([0, 0]) 15205 } 15206 , 15207 d3.geo.albers = function() { 15208 function t(t) { 15209 var e = r * (so * t[0] - n) 15210 , a = Math.sqrt(i - 2 * r * Math.sin(so * t[1])) / r; 15211 return [u * a * Math.sin(e) + l[0], u * (a * Math.cos(e) - o) + l[1]] 15212 } 15213 function e() {
15214 var e = so * s[0] 15215 , u = so * s[1] 15216 , l = so * a[1] 15217 , c = Math.sin(e) 15218 , h = Math.cos(e); 15219 return n = so * a[0], 15220 r = .5 * (c + Math.sin(u)), 15221 i = h * h + 2 * r * c, 15222 o = Math.sqrt(i - 2 * r * Math.sin(l)) / r, 15223 t 15224 } 15225 var n, r, i, o, a = [-98, 38], s = [29.5, 45.5], u = 1e3, l = [480, 250]; 15226 return t.invert = function(t) { 15227 var e = (t[0] - l[0]) / u 15228 , a = (t[1] - l[1]) / u 15229 , s = o + a 15230 , c = Math.atan2(e, s) 15231 , h = Math.sqrt(e * e + s * s); 15232 return [(n + c / r) / so, Math.asin((i - h * h * r * r) / (2 * r)) / so] 15233 } 15234 , 15235 t.origin = function(t) { 15236 return arguments.length ? (a = [+t[0], +t[1]], 15237 e()) : a 15238 } 15239 , 15240 t.parallels = function(t) { 15241 return arguments.length ? (s = [+t[0], +t[1]], 15242 e()) : s 15243 } 15244 , 15245 t.scale = function(e) { 15246 return arguments.length ? (u = +e, 15247 t) : u 15248 } 15249 , 15250 t.translate = function(e) { 15251 return arguments.length ? (l = [+e[0], +e[1]], 15252 t) : l 15253 } 15254 , 15255 e() 15256 } 15257 , 15258 d3.geo.albersUsa = function() { 15259 function t(t) { 15260 var o = t[0] 15261 , a = t[1]; 15262 return (a > 50 ? n : o < -140 ? r : a < 21 ? i : e)(t) 15263 } 15264 var e = d3.geo.albers() 15265 , n = d3.geo.albers().origin([-160, 60]).parallels([55, 65]) 15266 , r = d3.geo.albers().origin([-160, 20]).parallels([8, 18]) 15267 , i = d3.geo.albers().origin([-60, 10]).parallels([8, 18]); 15268 return t.scale = function(o) { 15269 return arguments.length ? (e.scale(o), 15270 n.scale(.6 * o), 15271 r.scale(o), 15272 i.scale(1.5 * o), 15273 t.translate(e.translate())) : e.scale() 15274 } 15275 , 15276 t.translate = function(o) { 15277 if (!arguments.length) 15278 return e.translate(); 15279 var a = e.scale() / 1e3 15280 , s = o[0] 15281 , u = o[1]; 15282 return e.translate(o), 15283 n.translate([s - 400 * a, u + 170 * a]), 15284 r.translate([s - 190 * a, u + 200 * a]), 15285 i.translate([s + 580 * a, u + 430 * a]), 15286 t 15287 } 15288 , 15289 t.scale(e.scale()) 15290 } 15291 , 15292 d3.geo.bonne = function() { 15293 function t(t) { 15294 var s = t[0] * so - e 15295 , u = t[1] * so - n; 15296 if (r) { 15297 var l = i + r - u 15298 , c = s * Math.cos(u) / l; 15299 s = l * Math.sin(c), 15300 u = l * Math.cos(c) - i 15301 } else 15302 s *= Math.cos(u), 15303 u *= -1; 15304 return [o * s + a[0], o * u + a[1]] 15305 } 15306 var e, n, r, i, o = 200, a = [480, 250]; 15307 return t.invert = function(t) { 15308 var n = (t[0] - a[0]) / o 15309 , s = (t[1] - a[1]) / o; 15310 if (r) { 15311 var u = i + s 15312 , l = Math.sqrt(n * n + u * u); 15313 s = i + r - l, 15314 n = e + l * Math.atan2(n, u) / Math.cos(s) 15315 } else 15316 s *= -1, 15317 n /= Math.cos(s); 15318 return [n / so, s / so] 15319 } 15320 , 15321 t.parallel = function(e) { 15322 return arguments.length ? (i = 1 / Math.tan(r = e * so), 15323 t) : r / so 15324 } 15325 , 15326 t.origin = function(r) { 15327 return arguments.length ? (e = r[0] * so, 15328 n = r[1] * so, 15329 t) : [e / so, n / so] 15330 } 15331 , 15332 t.scale = function(e) { 15333 return arguments.length ? (o = +e, 15334 t) : o 15335 } 15336 , 15337 t.translate = function(e) { 15338 return arguments.length ? (a = [+e[0], +e[1]], 15339 t) : a 15340 } 15341 , 15342 t.origin([0, 0]).parallel(45) 15343 } 15344 , 15345 d3.geo.equirectangular = function() { 15346 function t(t) { 15347 var r = t[0] / 360 15348 , i = -t[1] / 360; 15349 return [e * r + n[0], e * i + n[1]] 15350 } 15351 var e = 500 15352 , n = [480, 250]; 15353 return t.invert = function(t) { 15354 return [(t[0] - n[0]) / e * 360, (t[1] - n[1]) / e * -360] 15355 } 15356 , 15357 t.scale = function(n) { 15358 return arguments.length ? (e = +n, 15359 t) : e 15360 } 15361 , 15362 t.translate = function(e) { 15363 return arguments.length ? (n = [+e[0], +e[1]], 15364 t) : n 15365 } 15366 , 15367 t 15368 } 15369 , 15370 d3.geo.mercator = function() { 15371 function t(t) { 15372 var r = t[0] / 360 15373 , i = -Math.log(Math.tan(Math.PI / 4 + t[1] * so / 2)) / so / 360; 15374 return [e * r + n[0], e * Math.max(-.5, Math.min(.5, i)) + n[1]] 15375 } 15376 var e = 500 15377 , n = [480, 250]; 15378 return t.invert = function(t) { 15379 var r = (t[0] - n[0]) / e 15380 , i = (t[1] - n[1]) / e; 15381 return [360 * r, 2 * Math.atan(Math.exp(-360 * i * so)) / so - 90] 15382 } 15383 , 15384 t.scale = function(n) { 15385 return arguments.length ? (e = +n, 15386 t) : e 15387 } 15388 , 15389 t.translate = function(e) { 15390 return arguments.length ? (n = [+e[0], +e[1]], 15391 t) : n 15392 } 15393 , 15394 t 15395 } 15396 , 15397 d3.geo.path = function() { 15398 function t(t, e) { 15399 "function" == typeof o && (a = On(o.apply(this, arguments))), 15400 l(t); 15401 var n = u.length ? u.join("") : null; 15402 return u = [], 15403 n 15404 } 15405 function e(t) { 15406 return s(t).join(",") 15407 } 15408 function n(t) { 15409 for (var e = i(t[0]), n = 0, r = t.length; ++n < r; ) 15410 e -= i(t[n]); 15411 return e 15412 } 15413 function r(t) { 15414 for (var e = d3.geom.polygon(t[0].map(s)), n = e.area(), r = e.centroid(n < 0 ? (n *= -1, 15415 1) : -1), i = r[0], o = r[1], a = n, u = 0, l = t.length; ++u < l; ) 15416 e = d3.geom.polygon(t[u].map(s)), 15417 n = e.area(), 15418 r = e.centroid(n < 0 ? (n *= -1, 15419 1) : -1), 15420 i -= r[0], 15421 o -= r[1], 15422 a -= n; 15423 return [i, o, 6 * a] 15424 } 15425 function i(t) { 15426 return Math.abs(d3.geom.polygon(t.map(s)).area()) 15427 } 15428 var o = 4.5 15429 , a = On(o) 15430 , s = d3.geo.albersUsa() 15431 , u = [] 15432 , l = Pn({ 15433 FeatureCollection: function(t) { 15434 for (var e = t.features, n = -1, r = e.length; ++n < r; ) 15435 u.push(l(e[n].geometry)) 15436 }, 15437 Feature: function(t) { 15438 l(t.geometry) 15439 }, 15440 Point: function(t) { 15441 u.push("M", e(t.coordinates), a) 15442 }, 15443 MultiPoint: function(t) { 15444 for (var n = t.coordinates, r = -1, i = n.length; ++r < i; ) 15445 u.push("M", e(n[r]), a) 15446 }, 15447 LineString: function(t) { 15448 var n = t.coordinates 15449 , r = -1 15450 , i = n.length; 15451 for (u.push("M"); ++r < i; ) 15452 u.push(e(n[r]), "L"); 15453 u.pop() 15454 }, 15455 MultiLineString: function(t) { 15456 for (var n, r, i, o = t.coordinates, a = -1, s = o.length; ++a < s; ) { 15457 for (n = o[a], 15458 r = -1, 15459 i = n.length, 15460 u.push("M"); ++r < i; ) 15461 u.push(e(n[r]), "L"); 15462 u.pop() 15463 } 15464 }, 15465 Polygon: function(t) { 15466 for (var n, r, i, o = t.coordinates, a = -1, s = o.length; ++a < s; ) 15467 if (n = o[a], 15468 r = -1, 15469 (i = n.length - 1) > 0) { 15470 for (u.push("M"); ++r < i; ) 15471 u.push(e(n[r]), "L"); 15472 u[u.length - 1] = "Z" 15473 } 15474 }, 15475 MultiPolygon: function(t) { 15476 for (var n, r, i, o, a, s, l = t.coordinates, c = -1, h = l.length; ++c < h; ) 15477 for (n = l[c], 15478 r = -1, 15479 i = n.length; ++r < i; ) 15480 if (o = n[r], 15481 a = -1, 15482 (s = o.length - 1) > 0) { 15483 for (u.push("M"); ++a < s; ) 15484 u.push(e(o[a]), "L"); 15485 u[u.length - 1] = "Z" 15486 } 15487 }, 15488 GeometryCollection: function(t) {
15489 for (var e = t.geometries, n = -1, r = e.length; ++n < r; ) 15490 u.push(l(e[n])) 15491 } 15492 }) 15493 , c = t.area = Pn({ 15494 FeatureCollection: function(t) { 15495 for (var e = 0, n = t.features, r = -1, i = n.length; ++r < i; ) 15496 e += c(n[r]); 15497 return e 15498 }, 15499 Feature: function(t) { 15500 return c(t.geometry) 15501 }, 15502 Polygon: function(t) { 15503 return n(t.coordinates) 15504 }, 15505 MultiPolygon: function(t) { 15506 for (var e = 0, r = t.coordinates, i = -1, o = r.length; ++i < o; ) 15507 e += n(r[i]); 15508 return e 15509 }, 15510 GeometryCollection: function(t) { 15511 for (var e = 0, n = t.geometries, r = -1, i = n.length; ++r < i; ) 15512 e += c(n[r]); 15513 return e 15514 } 15515 }, 0) 15516 , h = t.centroid = Pn({ 15517 Feature: function(t) { 15518 return h(t.geometry) 15519 }, 15520 Polygon: function(t) { 15521 var e = r(t.coordinates); 15522 return [e[0] / e[2], e[1] / e[2]] 15523 }, 15524 MultiPolygon: function(t) { 15525 for (var e, n = t.coordinates, i = 0, o = 0, a = 0, s = -1, u = n.length; ++s < u; ) 15526 e = r(n[s]), 15527 i += e[0], 15528 o += e[1], 15529 a += e[2]; 15530 return [i / a, o / a] 15531 } 15532 }); 15533 return t.projection = function(e) { 15534 return s = e, 15535 t 15536 } 15537 , 15538 t.pointRadius = function(e) { 15539 return "function" == typeof e ? o = e : (o = +e, 15540 a = On(o)), 15541 t 15542 } 15543 , 15544 t 15545 } 15546 , 15547 d3.geo.bounds = function(t) { 15548 var e = 1 / 0 15549 , n = 1 / 0 15550 , r = -1 / 0 15551 , i = -1 / 0; 15552 return qn(t, function(t, o) { 15553 t < e && (e = t), 15554 t > r && (r = t), 15555 o < n && (n = o), 15556 o > i && (i = o) 15557 }), 15558 [[e, n], [r, i]] 15559 } 15560 ; 15561 var uo = { 15562 Feature: Rn, 15563 FeatureCollection: zn, 15564 GeometryCollection: Hn, 15565 LineString: Bn, 15566 MultiLineString: Vn, 15567 MultiPoint: Bn, 15568 MultiPolygon: Un, 15569 Point: Wn, 15570 Polygon: Kn 15571 }; 15572 d3.geo.circle = function() { 15573 function t() {} 15574 function e(t) { 15575 return u.distance(t) < s 15576 } 15577 function n(t) {
15578 for (var e, n, r, o, a, l = -1, c = t.length, h = []; ++l < c; ) 15579 a = u.distance(r = t[l]), 15580 a < s ? (n && h.push(Xn(n, r)((o - s) / (o - a))), 15581 h.push(r), 15582 e = n = null) : (n = r, 15583 !e && h.length && (h.push(Xn(h[h.length - 1], n)((s - o) / (a - o))), 15584 e = n)), 15585 o = a; 15586 return e = t[0], 15587 n = h[0], 15588 !n || r[0] !== e[0] || r[1] !== e[1] || r[0] === n[0] && r[1] === n[1] || h.push(n), 15589 i(h) 15590 } 15591 function i(t) { 15592 for (var e, n, r, i = 0, o = t.length, a = o ? [t[0]] : t, s = u.source(); ++i < o; ) 15593 for (r = u.source(t[i - 1])(t[i]).coordinates, 15594 e = 0, 15595 n = r.length; ++e < n; ) 15596 a.push(r[e]); 15597 return u.source(s), 15598 a 15599 } 15600 var o = [0, 0] 15601 , a = 89.99 15602 , s = a * so 15603 , u = d3.geo.greatArc().source(o).target(r); 15604 t.clip = function(t) { 15605 return "function" == typeof o && u.source(o.apply(this, arguments)), 15606 l(t) || null 15607 } 15608 ; 15609 var l = Pn({ 15610 FeatureCollection: function(t) { 15611 var e = t.features.map(l).filter(r); 15612 return e && (t = Object.create(t), 15613 t.features = e, 15614 t) 15615 }, 15616 Feature: function(t) { 15617 var e = l(t.geometry); 15618 return e && (t = Object.create(t), 15619 t.geometry = e, 15620 t) 15621 }, 15622 Point: function(t) { 15623 return e(t.coordinates) && t 15624 }, 15625 MultiPoint: function(t) { 15626 var n = t.coordinates.filter(e); 15627 return n.length && { 15628 type: t.type, 15629 coordinates: n 15630 } 15631 }, 15632 LineString: function(t) { 15633 var e = n(t.coordinates); 15634 return e.length && (t = Object.create(t), 15635 t.coordinates = e, 15636 t) 15637 }, 15638 MultiLineString: function(t) { 15639 var e = t.coordinates.map(n).filter(function(t) { 15640 return t.length 15641 }); 15642 return e.length && (t = Object.create(t), 15643 t.coordinates = e, 15644 t) 15645 }, 15646 Polygon: function(t) { 15647 var e = t.coordinates.map(n); 15648 return e[0].length && (t = Object.create(t), 15649 t.coordinates = e, 15650 t) 15651 }, 15652 MultiPolygon: function(t) { 15653 var e = t.coordinates.map(function(t) { 15654 return t.map(n) 15655 }).filter(function(t) { 15656 return t[0].length 15657 }); 15658 return e.length && (t = Object.create(t), 15659 t.coordinates = e, 15660 t) 15661 }, 15662 GeometryCollection: function(t) { 15663 var e = t.geometries.map(l).filter(r); 15664 return e.length && (t = Object.create(t), 15665 t.geometries = e, 15666 t) 15667 } 15668 }); 15669 return t.origin = function(e) { 15670 return arguments.length ? (o = e, 15671 "function" != typeof o && u.source(o), 15672 t) : o 15673 } 15674 , 15675 t.angle = function(e) { 15676 return arguments.length ? (s = (a = +e) * so, 15677 t) : a 15678 } 15679 , 15680 d3.rebind(t, u, "precision") 15681 } 15682 , 15683 d3.geo.greatArc = function() { 15684 function t() { 15685 for (var r = t.distance.apply(this, arguments), i = 0, s = o / r, u = [e]; (i += s) < 1; ) 15686 u.push(a(i)); 15687 return u.push(n), 15688 { 15689 type: "LineString", 15690 coordinates: u 15691 } 15692 } 15693 var e, n, r = Gn, i = Yn, o = 6 * so, a = Jn(); 15694 return t.distance = function() { 15695 return "function" == typeof r && a.source(e = r.apply(this, arguments)), 15696 "function" == typeof i && a.target(n = i.apply(this, arguments)), 15697 a.distance() 15698 } 15699 , 15700 t.source = function(n) { 15701 return arguments.length ? (r = n, 15702 "function" != typeof r && a.source(e = r), 15703 t) : r 15704 } 15705 , 15706 t.target = function(e) { 15707 return arguments.length ? (i = e, 15708 "function" != typeof i && a.target(n = i), 15709 t) : i 15710 } 15711 , 15712 t.precision = function(e) { 15713 return arguments.length ? (o = e * so, 15714 t) : o / so 15715 } 15716 , 15717 t 15718 } 15719 , 15720 d3.geo.greatCircle = d3.geo.circle, 15721 d3.geom = {}, 15722 d3.geom.contour = function(t, e) { 15723 var n = e || Zn(t) 15724 , r = [] 15725 , i = n[0] 15726 , o = n[1] 15727 , a = 0 15728 , s = 0 15729 , u = NaN 15730 , l = NaN 15731 , c = 0; 15732 do { 15733 c = 0, 15734 t(i - 1, o - 1) && (c += 1), 15735 t(i, o - 1) && (c += 2), 15736 t(i - 1, o) && (c += 4), 15737 t(i, o) && (c += 8), 15738 6 === c ? (a = -1 === l ? -1 : 1, 15739 s = 0) : 9 === c ? (a = 0, 15740 s = 1 === u ? -1 : 1) : (a = lo[c], 15741 s = co[c]), 15742 a != u && s != l && (r.push([i, o]), 15743 u = a, 15744 l = s), 15745 i += a, 15746 o += s 15747 } while (n[0] != i || n[1] != o); 15748 return r 15749 } 15750 ; 15751 var lo = [1, 0, 1, 1, -1, 0, -1, 1, 0, 0, 0, 0, -1, 0, -1, NaN] 15752 , co = [0, -1, 0, 0, 0, -1, 0, 0, 1, -1, 1, 1, 0, -1, 0, NaN]; 15753 d3.geom.hull = function(t) { 15754 if (t.length < 3) 15755 return []; 15756 var e, n, r, i, o, a, s, u, l, c, h = t.length, d = h - 1, f = [], p
15756= [], g = 0; 15757 for (e = 1; e < h; ++e) 15758 t[e][1] < t[g][1] ? g = e : t[e][1] == t[g][1] && (g = t[e][0] < t[g][0] ? e : g); 15759 for (e = 0; e < h; ++e) 15760 e !== g && (i = t[e][1] - t[g][1], 15761 r = t[e][0] - t[g][0], 15762 f.push({ 15763 angle: Math.atan2(i, r), 15764 index: e 15765 })); 15766 for (f.sort(function(t, e) { 15767 return t.angle - e.angle 15768 }), 15769 l = f[0].angle, 15770 u = f[0].index, 15771 s = 0, 15772 e = 1; e < d; ++e) 15773 n = f[e].index, 15774 l == f[e].angle ? (r = t[u][0] - t[g][0], 15775 i = t[u][1] - t[g][1], 15776 o = t[n][0] - t[g][0], 15777 a = t[n][1] - t[g][1], 15778 r * r + i * i >= o * o + a * a ? f[e].index = -1 : (f[s].index = -1, 15779 l = f[e].angle, 15780 s = e, 15781 u = n)) : (l = f[e].angle, 15782 s = e, 15783 u = n); 15784 for (p.push(g), 15785 e = 0, 15786 n = 0; e < 2; ++n) 15787 -1 !== f[n].index && (p.push(f[n].index), 15788 e++); 15789 for (c = p.length; n < d; ++n) 15790 if (-1 !== f[n].index) { 15791 for (; !tr(p[c - 2], p[c - 1], f[n].index, t); ) 15792 --c; 15793 p[c++] = f[n].index 15794 } 15795 var m = []; 15796 for (e = 0; e < c; ++e) 15797 m.push(t[p[e]]); 15798 return m 15799 } 15800 , 15801 d3.geom.polygon = function(t) { 15802 return t.area = function() { 15803 for (var e = 0, n = t.length, r = t[n - 1][0] * t[0][1], i = t[n - 1][1] * t[0][0]; ++e < n; ) 15804 r += t[e - 1][0] * t[e][1], 15805 i += t[e - 1][1] * t[e][0]; 15806 return .5 * (i - r) 15807 } 15808 , 15809 t.centroid = function(e) { 15810 var n, r, i = -1, o = t.length, a = 0, s = 0, u = t[o - 1]; 15811 for (arguments.length || (e = -1 / (6 * t.area())); ++i < o; ) 15812 n = u, 15813 u = t[i], 15814 r = n[0] * u[1] - u[0] * n[1], 15815 a += (n[0] + u[0]) * r, 15816 s += (n[1] + u[1]) * r; 15817 return [a * e, s * e] 15818 } 15819 , 15820 t.clip = function(e) { 15821 for (var n, r, i, o, a, s, u = -1, l = t.length, c = t[l - 1]; ++u < l; ) { 15822 for (n = e.slice(), 15823 e.length = 0, 15824 o = t[u], 15825 a = n[(i = n.length) - 1], 15826 r = -1; ++r < i; ) 15827 s = n[r], 15828 er(s, c, o) ? (er(a, c, o) || e.push(nr(a, s, c, o)), 15829 e.push(s)) : er(a, c, o) && e.push(nr(a, s, c, o)), 15830 a = s; 15831 c = o 15832 } 15833 return e 15834 } 15835 , 15836 t 15837 } 15838 , 15839 d3.geom.voronoi = function(t) { 15840 var e = t.map(function() { 15841 return [] 15842 }); 15843 return rr(t, function(t) { 15844 var n, r, i, o, a, s; 15845 1 === t.a && t.b >= 0 ? (n = t.ep.r, 15846 r = t.ep.l) : (n = t.ep.l, 15847 r = t.ep.r), 15848 1 === t.a ? (a = n ? n.y : -1e6, 15849 i = t.c - t.b * a, 15850 s = r ? r.y : 1e6, 15851 o = t.c - t.b * s) : (i = n ? n.x : -1e6, 15852 a = t.c - t.a * i, 15853 o = r ? r.x : 1e6, 15854 s = t.c - t.a * o); 15855 var u = [i, a] 15856 , l = [o, s]; 15857 e[t.region.l.index].push(u, l), 15858 e[t.region.r.index].push(u, l) 15859 }), 15860 e.map(function(e, n) { 15861 var r = t[n][0] 15862 , i = t[n][1]; 15863 return e.forEach(function(t) { 15864 t.angle = Math.atan2(t[0] - r, t[1] - i) 15865 }), 15866 e.sort(function(t, e) { 15867 return t.angle - e.angle 15868 }).filter(function(t, n) { 15869 return !n || t.angle - e[n - 1].angle > 1e-10 15870 }) 15871 }) 15872 } 15873 ; 15874 var ho = { 15875 l: "r", 15876 r: "l" 15877 }; 15878 d3.geom.delaunay = function(t) { 15879 var e = t.map(function() { 15880 return [] 15881 }) 15882 , n = []; 15883 return rr(t, function(n) { 15884 e[n.region.l.index].push(t[n.region.r.index]) 15885 }), 15886 e.forEach(function(e, r) { 15887 var i = t[r] 15888 , o = i[0] 15889 , a = i[1]; 15890 e.forEach(function(t) { 15891 t.angle = Math.atan2(t[0] - o, t[1] - a) 15892 }), 15893 e.sort(function(t, e) { 15894 return t.angle - e.angle 15895 }); 15896 for (var s = 0, u = e.length - 1; s < u; s++) 15897 n.push([i, e[s], e[s + 1]]) 15898 }), 15899 n 15900 } 15901 , 15902 d3.geom.quadtree = function(t, e, n, r, i) { 15903 function o(t, e, n, r, i, o) { 15904 if (!isNaN(e.x) && !isNaN(e.y)) 15905 if (t.leaf) { 15906 var s = t.point; 15907 s ? Math.abs(s.x - e.x) + Math.abs(s.y - e.y) < .01 ? a(t, e, n, r, i, o) : (t.point = null, 15908 a(t, s, n, r, i, o), 15909 a(t, e, n, r, i, o)) : t.point = e 15910 } else 15911 a(t, e, n, r, i, o) 15912 } 15913 function a(t, e, n, r, i, a) { 15914 var s = .5 * (n + i) 15915 , u = .5 * (r + a) 15916 , l = e.x >= s 15917 , c = e.y >= u 15918 , h = (c << 1) + l; 15919 t.leaf = !1, 15920 t = t.nodes[h] || (t.nodes[h] = ir()), 15921 l ? n = s : i = s, 15922 c ? r = u : a = u, 15923 o(t, e, n, r, i, a) 15924 } 15925 var s, u = -1, l = t.length; 15926 if (l && isNaN(t[0].x) && (t = t.map(ar)), 15927 arguments.length < 5) 15928 if (3 === arguments.length) 15929 i = r = n, 15930 n = e; 15931 else { 15932 for (e = n = 1 / 0, 15933 r = i = -1 / 0; ++u < l; ) 15934 s = t[u], 15935 s.x < e && (e = s.x), 15936 s.y < n && (n = s.y), 15937 s.x > r && (r = s.x), 15938 s.y > i && (i = s.y); 15939 var c = r - e 15940 , h = i - n; 15941 c > h ? i = n + c : r = e + h 15942 } 15943 var d = ir(); 15944 return d.add = function(t) { 15945 o(d, t, e, n, r, i) 15946 } 15947 , 15948 d.visit = function(t) { 15949 or(t, d, e, n, r, i) 15950 } 15951 , 15952 t.forEach(d.add), 15953 d 15954 } 15955 , 15956 d3.time = {}; 15957 var fo = Date 15958 , po = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; 15959 sr.prototype = { 15960 getDate: function() { 15961 return this._.getUTCDate() 15962 }, 15963 getDay: function() { 15964 return this._.getUTCDay() 15965 }, 15966 getFullYear: function() { 15967 return this._.getUTCFullYear() 15968 }, 15969 getHours: function() { 15970 return this._.getUTCHours() 15971 }, 15972 getMilliseconds: function() { 15973 return this._.getUTCMilliseconds() 15974 }, 15975 getMinutes: function() { 15976 return this._.getUTCMinutes() 15977 }, 15978 getMonth: function() { 15979 return this._.getUTCMonth() 15980 }, 15981 getSeconds: function() { 15982 return this._.getUTCSeconds() 15983 }, 15984 getTime: function() { 15985 return this._.getTime() 15986 }, 15987 getTimezoneOffset: function() { 15988 return 0 15989 },
15990 valueOf: function() { 15991 return this._.valueOf() 15992 }, 15993 setDate: function() { 15994 go.setUTCDate.apply(this._, arguments) 15995 }, 15996 setDay: function() { 15997 go.setUTCDay.apply(this._, arguments) 15998 }, 15999 setFullYear: function() { 16000 go.setUTCFullYear.apply(this._, arguments) 16001 }, 16002 setHours: function() { 16003 go.setUTCHours.apply(this._, arguments) 16004 }, 16005 setMilliseconds: function() { 16006 go.setUTCMilliseconds.apply(this._, arguments) 16007 }, 16008 setMinutes: function() { 16009 go.setUTCMinutes.apply(this._, arguments) 16010 }, 16011 setMonth: function() { 16012 go.setUTCMonth.apply(this._, arguments) 16013 }, 16014 setSeconds: function() { 16015 go.setUTCSeconds.apply(this._, arguments) 16016 }, 16017 setTime: function() { 16018 go.setTime.apply(this._, arguments) 16019 } 16020 }; 16021 var go = Date.prototype 16022 , mo = po 16023 , yo = mo.map(ur) 16024 , vo = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "
16024November", "December"] 16025 , bo = vo.map(ur); 16026 d3.time.format = function(t) { 16027 function e(e) { 16028 for (var r, i, o = [], a = -1, s = 0; ++a < n; ) 16029 37 == t.charCodeAt(a) && (o.push(t.substring(s, a), (i = Mo[r = t.charAt(++a)]) ? i(e) : r), 16030 s = a + 1); 16031 return o.push(t.substring(s, a)), 16032 o.join("") 16033 } 16034 var n = t.length; 16035 return e.parse = function(e) { 16036 var n = { 16037 y: 1900, 16038 m: 0, 16039 d: 1, 16040 H: 0, 16041 M: 0, 16042 S: 0, 16043 L: 0 16044 }; 16045 if (lr(n, t, e, 0) != e.length) 16046 return null; 16047 "p"in n && (n.H = n.H % 12 + 12 * n.p); 16048 var r = new fo; 16049 return r.setFullYear(n.y, n.m, n.d), 16050 r.setHours(n.H, n.M, n.S, n.L), 16051 r 16052 } 16053 , 16054 e.toString = function() { 16055 return t 16056 } 16057 , 16058 e 16059 } 16060 ; 16061 var wo = d3.format("02d") 16062 , xo = d3.format("03d") 16063 , _o = d3.format("04d") 16064 , Co = d3.format("2d") 16065 , ko = cr(mo) 16066 , jo = cr(yo) 16067 , To = cr(vo) 16068 , So = hr(vo) 16069 , Eo = cr(bo) 16070 , Ao = hr(bo) 16071 , Mo = { 16072 a: function(t) { 16073 return yo[t.getDay()] 16074 }, 16075 A: function(t) { 16076 return mo[t.getDay()] 16077 }, 16078 b: function(t) { 16079 return bo[t.getMonth()] 16080 }, 16081 B: function(t) { 16082 return vo[t.getMonth()] 16083 }, 16084 c: d3.time.format("%a %b %e %H:%M:%S %Y"), 16085 d: function(t) { 16086 return wo(t.getDate()) 16087 }, 16088 e: function(t) { 16089 return Co(t.getDate()) 16090 }, 16091 H: function(t) { 16092 return wo(t.getHours()) 16093 }, 16094 I: function(t) { 16095 return wo(t.getHours() % 12 || 12) 16096 }, 16097 j: function(t) { 16098 return xo(1 + d3.time.dayOfYear(t)) 16099 }, 16100 L: function(t) { 16101 return xo(t.getMilliseconds()) 16102 }, 16103 m: function(t) { 16104 return wo(t.getMonth() + 1) 16105 }, 16106 M: function(t) { 16107 return wo(t.getMinutes()) 16108 }, 16109 p: function(t) { 16110 return t.getHours() >= 12 ? "PM" : "AM" 16111 }, 16112 S: function(t) { 16113 return wo(t.getSeconds()) 16114 }, 16115 U: function(t) { 16116 return wo(d3.time.sundayOfYear(t)) 16117 }, 16118 w: function(t) { 16119 return t.getDay() 16120 }, 16121 W: function(t) { 16122 return wo(d3.time.mondayOfYear(t)) 16123 }, 16124 x: d3.time.format("%m/%d/%y"), 16125 X: d3.time.format("%H:%M:%S"), 16126 y: function(t) { 16127 return wo(t.getFullYear() % 100) 16128 }, 16129 Y: function(t) { 16130 return _o(t.getFullYear() % 1e4) 16131 }, 16132 Z: Ar, 16133 "%": function(t) { 16134 return "%" 16135 } 16136 } 16137 , Qo = { 16138 a: dr, 16139 A: fr, 16140 b: pr, 16141 B: gr, 16142 c: mr, 16143 d: Cr, 16144 e: Cr, 16145 H: kr, 16146 I: kr, 16147 L: Sr, 16148 m: _r, 16149 M: jr, 16150 p: Er, 16151 S: Tr, 16152 x: yr, 16153 X: vr, 16154 y: wr, 16155 Y: br 16156 } 16157 , $o = /^\s*\d+/ 16158 , Do = d3.map({ 16159 am: 0, 16160 pm: 1 16161 }); 16162 d3.time.format.utc = function(t) { 16163 function e(t) { 16164 try { 16165 fo = sr; 16166 var e = new fo; 16167 return e._ = t, 16168 n(e) 16169 } finally { 16170 fo = Date 16171 } 16172 } 16173 var n = d3.time.format(t); 16174 return e.parse = function(t) { 16175 try { 16176 fo = sr; 16177 var e = n.parse(t); 16178 return e && e._ 16179 } finally { 16180 fo = Date 16181 } 16182 } 16183 , 16184 e.toString = n.toString, 16185 e 16186 } 16187 ; 16188 var Io = d3.time.format.utc("%Y-%m-%dT%H:%M:%S.%LZ"); 16189 d3.time.format.iso = Date.prototype.toISOString ? Mr : Io, 16190 Mr.parse = function(t) { 16191 var e = new Date(t); 16192 return isNaN(e) ? null : e 16193 } 16194 , 16195 Mr.toString = Io.toString, 16196 d3.time.second = Qr(function(t) { 16197 return new fo(1e3 * Math.floor(t / 1e3)) 16198 }, function(t, e) { 16199 t.setTime(t.getTime() + 1e3 * Math.floor(e)) 16200 }, function(t) { 16201 return t.getSeconds() 16202 }), 16203 d3.time.seconds = d3.time.second.range, 16204 d3.time.seconds.utc = d3.time.second.utc.range, 16205 d3.time.minute = Qr(function(t) { 16206 return new fo(6e4 * Math.floor(t / 6e4)) 16207 }, function(t, e) { 16208 t.setTime(t.getTime() + 6e4 * Math.floor(e)) 16209 }, function(t) { 16210 return t.getMinutes() 16211 }), 16212 d3.time.minutes = d3.time.minute.range, 16213 d3.time.minutes.utc = d3.time.minute.utc.range, 16214 d3.time.hour = Qr(function(t) { 16215 var e = t.getTimezoneOffset() / 60; 16216 return new fo(36e5 * (Math.floor(t / 36e5 - e) + e)) 16217 }, function(t, e) { 16218 t.setTime(t.getTime() + 36e5 * Math.floor(e)) 16219 }, function(t) { 16220 return t.getHours() 16221 }), 16222 d3.time.hours = d3.time.hour.range, 16223 d3.time.hours.utc = d3.time.hour.utc.range, 16224 d3.time.day = Qr(function(t) { 16225 var e = new fo(1970,0); 16226 return e.setFullYear(t.getFullYear(), t.getMonth(), t.getDate()), 16227 e 16228 }, function(t, e) { 16229 t.setDate(t.getDate() + e) 16230 }, function(t) { 16231 return t.getDate() - 1 16232 }), 16233 d3.time.days = d3.time.day.range, 16234 d3.time.days.utc = d3.time.day.utc.range, 16235 d3.time.dayOfYear = function(t) { 16236 var e = d3.time.year(t); 16237 return Math.floor((t - e - 6e4 * (t.getTimezoneOffset() - e.getTimezoneOffset())) / 864e5) 16238 } 16239 ,
16240 po.forEach(function(t, e) { 16241 t = t.toLowerCase(), 16242 e = 7 - e; 16243 var n = d3.time[t] = Qr(function(t) { 16244 return (t = d3.time.day(t)).setDate(t.getDate() - (t.getDay() + e) % 7), 16245 t 16246 }, function(t, e) { 16247 t.setDate(t.getDate() + 7 * Math.floor(e)) 16248 }, function(t) { 16249 var n = d3.time.year(t).getDay(); 16250 return Math.floor((d3.time.dayOfYear(t) + (n + e) % 7) / 7) - (n !== e) 16251 }); 16252 d3.time[t + "s"] = n.range, 16253 d3.time[t + "s"].utc = n.utc.range, 16254 d3.time[t + "OfYear"] = function(t) { 16255 var n = d3.time.year(t).getDay(); 16256 return Math.floor((d3.time.dayOfYear(t) + (n + e) % 7) / 7) 16257 } 16258 }), 16259 d3.time.week = d3.time.sunday, 16260 d3.time.weeks = d3.time.sunday.range, 16261 d3.time.weeks.utc = d3.time.sunday.utc.range, 16262 d3.time.weekOfYear = d3.time.sundayOfYear, 16263 d3.time.month = Qr(function(t) { 16264 return t = d3.time.day(t), 16265 t.setDate(1), 16266 t 16267 }, function(t, e) { 16268 t.setMonth(t.getMonth() + e) 16269 }, function(t) { 16270 return t.getMonth() 16271 }), 16272 d3.time.months = d3.time.month.range, 16273 d3.time.months.utc = d3.time.month.utc.range, 16274 d3.time.year = Qr(function(t) { 16275 return t = d3.time.day(t), 16276 t.setMonth(0, 1), 16277 t 16278 }, function(t, e) { 16279 t.setFullYear(t.getFullYear() + e) 16280 }, function(t) { 16281 return t.getFullYear() 16282 }), 16283 d3.time.years = d3.time.year.range, 16284 d3.time.years.utc = d3.time.year.utc.range; 16285 var No = [1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6] 16286 , Fo = [[d3.time.second, 1], [d3.time.second, 5], [d3.time.second, 15], [d3.time.second, 30], [d3.time.minute, 1], [d3.time.minute, 5], [d3.time.minute, 15], [d3.time.minute, 30], [d3.time.hour, 1], [d3.time.hour, 3], [d3.time.hour, 6], [d3.time.hour, 12], [d3.time.day, 1], [d3.time.day, 2], [d3.time.week, 1], [d3.time.month, 1], [d3.time.month, 3], [d3.time.year, 1]] 16287 , Lo = [[d3.time.format("%Y"), function(t) { 16288 return !0 16289 } 16290 ], [d3.time.format("%B"), function(t) { 16291 return t.getMonth() 16292 } 16293 ], [d3.time.format("%b %d"), function(t) { 16294 return 1 != t.getDate() 16295 } 16296 ], [d3.time.format("%a %d"), function(t) { 16297 return t.getDay() && 1 != t.getDate() 16298 } 16299 ], [d3.time.format("%I %p"), function(t) { 16300 return t.getHours() 16301 } 16302 ], [d3.time.format("%I:%M"), function(t) { 16303 return t.getMinutes() 16304 } 16305 ], [d3.time.format(":%S"), function(t) { 16306 return t.getSeconds() 16307 } 16308 ], [d3.time.format(".%L"), function(t) { 16309 return t.getMilliseconds() 16310 } 16311 ]] 16312 , Po = d3.scale.linear() 16313 , Oo = Fr(Lo); 16314 Fo.year = function(t, e) { 16315 return Po.domain(t.map(Pr)).ticks(e).map(Lr) 16316 } 16317 , 16318 d3.time.scale = function() { 16319 return Dr(d3.scale.linear(), Fo, Oo) 16320 } 16321 ; 16322 var qo = Fo.map(function(t) { 16323 return [t[0].utc, t[1]] 16324 }) 16325 , Ro = [[d3.time.format.utc("%Y"), function(t) { 16326 return !0 16327 } 16328 ], [d3.time.format.utc("%B"), function(t) { 16329 return t.getUTCMonth() 16330 } 16331 ], [d3.time.format.utc("%b %d"), function(t) { 16332 return 1 != t.getUTCDate() 16333 } 16334 ], [d3.time.format.utc("%a %d"), function(t) { 16335 return t.getUTCDay() && 1 != t.getUTCDate() 16336 } 16337 ], [d3.time.format.utc("%I %p"), function(t) { 16338 return t.getUTCHours() 16339 } 16340 ], [d3.time.format.utc("%I:%M"), function(t) { 16341 return t.getUTCMinutes() 16342 } 16343 ], [d3.time.format.utc(":%S"), function(t) { 16344 return t.getUTCSeconds() 16345 } 16346 ], [d3.time.format.utc(".%L"), function(t) { 16347 return t.getUTCMilliseconds() 16348 } 16349 ]] 16350 , zo = Fr(Ro); 16351 qo.year = function(t, e) { 16352 return Po.domain(t.map(qr)).ticks(e).map(Or) 16353 } 16354 , 16355 d3.time.scale.utc = function() { 16356 return Dr(d3.scale.linear(), qo, zo) 16357 } 16358}(), 16359function(t, e) { 16360 function n(t, e) { 16361 var n = t.createElement("p") 16362 , r = t.getElementsByTagName("head")[0] || t.documentElement; 16363 return n.innerHTML = "x<style>" + e + "</style>", 16364 r.insertBefore(n.lastChild, r.firstChild) 16365 } 16366 function r() { 16367 var t = v.elements; 16368 return "string" == typeof t ? t.split(" ") : t 16369 } 16370 function i(t, e) { 16371 var n = v.elements; 16372 "string" != typeof n && (n = n.join(" ")), 16373 "string" != typeof t && (t = t.join(" ")), 16374 v.elements = n + " " + t, 16375 l(e) 16376 } 16377 function o(t) { 16378 var e = y[t[g]]; 16379 return e || (e = {}, 16380 m++, 16381 t[g] = m, 16382 y[m] = e), 16383 e 16384 } 16385 function a(t, n, r) { 16386 if (n || (n = e), 16387 h) 16388 return n.createElement(t); 16389 r || (r = o(n)); 16390 var i; 16391 return i = r.cache[t] ? r.cache[t].cloneNode() : p.test(t) ? (r.cache[t] = r.createElem(t)).cloneNode() : r.createElem(t), 16392 !i.canHaveChildren || f.test(t) || i.tagUrn ? i : r.frag.appendChild(i) 16393 } 16394 function s(t, n) { 16395 if (t || (t = e), 16396 h) 16397 return t.createDocumentFragment(); 16398 n = n || o(t); 16399 for (var i = n.frag.cloneNode(), a = 0, s = r(), u = s.length; u > a; a++) 16400 i.createElement(s[a]); 16401 return i 16402 } 16403 function u(t, e) { 16404 e.cache || (e.cache = {}, 16405 e.createElem = t.createElement, 16406 e.createFrag = t.createDocumentFragment, 16407 e.frag = e.createFrag()), 16408 t.createElement = function(n) { 16409 return v.shivMethods ? a(n, t, e) : e.createElem(n) 16410 } 16411 , 16412 t.createDocumentFragment = Function("h,f", "return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" + r().join().replace(/[\w\-:]+/g, function(t) { 16413 return e.createElem(t), 16414 e.frag.createElement(t), 16415 'c("' + t + '")' 16416 }) + ");return n}")(v, e.frag) 16417 } 16418 function l(t) { 16419 t || (t = e); 16420 var r = o(t); 16421 return !v.shivCSS || c || r.hasCSS || (r.hasCSS = !!n(t, "article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{dis
16421play:block}mark{background:#FF0;color:#000}template{display:none}")), 16422 h || u(t, r), 16423 t 16424 } 16425 var c, h, d = t.html5 || {}, f = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i, p = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i, g = "_html5shiv", m = 0, y = {}; 16426 !function() { 16427 try { 16428 var t = e.createElement("a"); 16429 t.innerHTML = "<xyz></xyz>", 16430 c = "hidden"in t, 16431 h = 1 == t.childNodes.length || function() { 16432 e.createElement("a"); 16433 var t = e.createDocumentFragment(); 16434 return void 0 === t.cloneNode || void 0 === t.createDocumentFragment || void 0 === t.createElement 16435 }() 16436 } catch (t) { 16437 c = !0, 16438 h = !0 16439 } 16440 }(); 16441 var v = { 16442 elements: d.elements || "abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video", 16443 version: "3.7.3", 16444 shivCSS: !1 !== d.shivCSS, 16445 supportsUnknownElements: h, 16446 shivMethods: !1 !== d.shivMethods, 16447 type: "default", 16448 shivDocument: l, 16449 createElement: a, 16450 createDocumentFragment: s, 16451 addElements: i 16452 }; 16453 t.html5 = v, 16454 l(e), 16455 "object" == typeof module && module.exports && (module.exports = v) 16456}("undefined" != typeof window ? window : this, document), 16457/* 16458 * International Telephone Input v17.0.0 16459 * https://github.com/jackocnr/intl-tel-input.git 16460 * Licensed under the MIT license 16461 */ 16462function(t) { 16463 "object" == typeof module && module.exports ? module.exports = t() : window.intlTelInput = t() 16464}(function(t) { 16465 "use strict"; 16466 return function() { 16467 for (var e = [["Afghanistan (â«Ø§ÙØºØ§ÙØ³ØªØ§Ùâ¬â)", "af", "93"], ["Albania (Shqipëri)", "al", "355"], ["Algeria (â«Ø§Ùجزائرâ¬â)", "dz", "213"], ["American Samoa", "as", "1", 5, ["684"]], ["Andorra", "ad", "376"], ["Angola", "ao", "244"], ["Anguilla", "ai", "1", 6, ["264"]], ["Antigua and Barbuda", "ag", "1", 7, ["268"]], ["Argentina", "ar", "54"], ["Armenia (ÕÕ¡ÕµÕ¡Õ½Õ¿Õ¡Õ¶)", "am", "374"], ["Aruba", "aw", "297"], ["Australia", "au", "61", 0], ["Austria (Ãsterreich)", "at", "43"], ["Azerbaijan (AzÉrbaycan)", "az", "994"], ["Bahamas", "bs", "1", 8, ["242"]], ["Bahrain (â«Ø§ÙØ¨ØØ±ÙÙâ¬â)", "bh", "973"], ["Bangladesh (বাà¦à¦²à¦¾à¦¦à§à¦¶)", "bd", "880"], ["Barbados", "bb", "1", 9, ["246"]], ["Belarus (ÐелаÑÑÑÑ)", "by", "375"], ["Belgium (België)", "be", "32"], ["Belize", "bz", "501"], ["Benin (Bénin)", "bj", "229"], ["Bermuda", "bm", "1", 10, ["441"]], ["Bhutan (འà½à¾²à½´à½)", "bt", "975"], ["Bolivia", "bo", "591"], ["Bosnia and Herzegovina (ÐоÑна и ХеÑÑеговина)", "ba", "387"], ["Botswana", "bw", "267"], ["Brazil (Brasil)", "br", "55"], ["British Indian Ocean Territory", "io", "246"], ["British Virgin Islands", "vg", "1", 11, ["284"]], ["Brunei", "bn", "673"], ["Bulgaria (ÐÑлгаÑиÑ)", "bg", "359"], ["Burkina Faso", "bf", "226"], ["Burundi (Uburundi)", "bi", "257"], ["Cambodia (ááááá»áá¶)", "kh", "855"], ["Cameroon (Cameroun)", "cm", "237"], ["Canada", "ca", "1", 1, ["204", "226", "236", "249", "250", "289", "306", "343", "365", "387", "403", "416", "418", "431", "437", "438", "450", "506", "514", "519", "548", "579", "581", "587", "604", "613", "639", "647", "672", "705", "709", "742", "778", "780", "782", "807", "819", "825", "867", "873", "902", "905"]], ["Cape Verde (Kabu Verdi)", "cv", "238"], ["Caribbean Netherlands", "bq", "599", 1, ["3", "4", "7"]], ["Cayman Islands", "ky", "1", 12, ["345"]], ["Central African Republic (République centrafricaine)", "cf", "236"], ["Chad (Tchad)", "td", "235"], ["Chile", "cl", "56"], ["China (ä¸å½)", "cn", "86"], ["Christmas Island", "cx", "61", 2], ["Cocos (Keeling) Islands", "cc", "61", 1], ["Colombia", "co", "57"], ["Comoros (â«Ø¬Ø²Ø± اÙÙ٠رâ¬â)", "km", "269"], ["Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)", "cd", "243"], ["Congo (Republic) (Congo-Brazzaville)", "cg", "242"], ["Cook Islands", "ck", "682"], ["Costa Rica", "cr", "506"], ["Côte dâIvoire", "ci", "225"], ["Croatia (Hrvatska)", "hr", "385"], ["Cuba", "cu", "53"], ["Curaçao", "cw", "599", 0], ["Cyprus (ÎÏÏÏοÏ)", "cy", "357"], ["Czech Republic (Äeská republika)", "cz", "420"], ["Denmark (Danmark)", "dk", "45"], ["Djibouti", "dj", "253"], ["Dominica", "dm", "1", 13, ["767"]], ["Dominican Republic (República Dominicana)", "do", "1", 2, ["809", "829", "849"]], ["Ecuador", "ec", "593"], ["Egypt (â«Ù صرâ¬â)", "eg", "20"], ["
16467El Salvador", "sv", "503"], ["Equatorial Guinea (Guinea Ecuatorial)", "gq", "240"], ["Eritrea", "er", "291"], ["Estonia (Eesti)", "ee", "372"], ["Ethiopia", "et", "251"], ["Falkland Islands (Islas Malvinas)", "fk", "500"], ["Faroe Islands (Føroyar)", "fo", "298"], ["Fiji", "fj", "679"], ["Finland (Suomi)", "fi", "358", 0], ["France", "fr", "33"], ["French Guiana (Guyane française)", "gf", "594"], ["French Polynesia (Polynésie française)", "pf", "689"], ["Gabon", "ga", "241"], ["Gambia", "gm", "220"], ["Georgia (á¡áá¥áá ááááá)", "ge", "995"], ["Germany (Deutschland)", "de", "49"], ["Ghana (Gaana)", "gh", "233"], ["Gibraltar", "gi", "350"], ["Greece (Îλλάδα)", "gr", "30"], ["Greenland (Kalaallit Nunaat)", "gl", "299"], ["Grenada", "gd", "1", 14, ["473"]], ["Guadeloupe", "gp", "590", 0], ["Guam", "gu", "1", 15, ["671"]], ["Guatemala", "gt", "502"], ["Guernsey", "gg", "44", 1, ["1481", "7781", "7839", "7911"]], ["Guinea (Guinée)", "gn", "224"], ["Guinea-Bissau (Guiné Bissau)", "gw", "245"], ["Guyana", "gy", "592"], ["Haiti", "ht", "509"], ["Honduras", "hn", "504"], ["Hong Kong (馿¸¯)", "hk", "852"], ["Hungary (Magyarország)", "hu", "36"], ["Iceland (Ãsland)", "is", "354"], ["India (à¤à¤¾à¤°à¤¤)", "in", "91"], ["Indonesia", "id", "62"], ["Iran (â«Ø§ÛراÙâ¬â)", "ir", "98"], ["Iraq (â«Ø§ÙعراÙâ¬â)", "iq", "964"], ["Ireland", "ie", "353"], ["Isle of Man", "im", "44", 2, ["1624", "74576", "7524", "7924", "7624"]], ["Israel (â«×שר××â¬â)", "il", "972"], ["Italy (Italia)", "it", "39", 0], ["Jamaica", "jm", "1", 4, ["876", "658"]], ["Japan (æ¥æ¬)", "jp", "81"], ["Jersey", "je", "44", 3, ["1534", "7509", "7700", "7797", "7829", "7937"]], ["Jordan (â«Ø§ÙأردÙâ¬â)", "jo", "962"], ["Kazakhstan (ÐазаÑ
ÑÑан)", "kz", "7", 1, ["33", "7"]], ["Kenya", "ke", "254"], ["Kiribati", "ki", "686"], ["Kosovo", "xk", "383"], ["Kuwait (â«Ø§ÙÙÙÙØªâ¬â)", "kw", "965"], ["Kyrgyzstan (ÐÑÑгÑзÑÑан)", "kg", "996"], ["Laos (ລາວ)", "la", "856"], ["Latvia (Latvija)", "lv", "371"], ["Lebanon (â«ÙØ¨ÙØ§Ùâ¬â)", "lb", "961"], ["Lesotho", "ls", "266"], ["Liberia", "lr", "231"], ["Libya (â«ÙÙØ¨Ùاâ¬â)", "ly", "218"], ["Liechtenstein", "li", "423"], ["Lithuania (Lietuva)", "lt", "370"], ["Luxembourg", "lu", "352"], ["Macau (æ¾³é)", "mo", "853"], ["Macedonia (FYROM) (ÐакедониÑа)", "mk", "389"], ["Madagascar (Madagasikara)", "mg", "261"], ["Malawi", "mw", "265"], ["Malaysia", "my", "60"], ["Maldives", "mv", "960"], ["Mali", "ml", "223"], ["Malta", "mt", "356"], ["Marshall Islands", "mh", "692"], ["Martinique", "mq", "596"], ["Mauritania (â«Ù
ÙØ±ÙتاÙÙØ§â¬â)", "mr", "222"], ["Mauritius (Moris)", "mu", "230"], ["Mayotte", "yt", "262", 1, ["269", "639"]], ["Mexico (México)", "mx", "52"], ["Micronesia", "fm", "691"], ["Moldova (Republica Moldova)", "md", "373"], ["Monaco", "mc", "377"], ["Mongolia (Ðонгол)", "mn", "976"], ["Montenegro (Crna Gora)", "me", "382"], ["Montserrat", "ms", "1", 16, ["664"]], ["Morocco (â«Ø§ÙÙ
غربâ¬â)", "ma", "212", 0], ["Mozambique (Moçambique)", "mz", "258"], ["Myanmar (Burma) (áá¼ááºáá¬)", "mm", "95"], ["Namibia (Namibië)", "na", "264"], ["Nauru", "nr", "674"], ["Nepal (नà¥à¤ªà¤¾à¤²)", "np", "977"], ["Netherlands (Nederland)", "nl", "31"], ["New Caledonia (Nouvelle-Calédonie)", "nc", "687"], ["New Zealand", "nz", "64"], ["Nicaragua", "ni", "505"], ["Niger (Nijar)", "ne", "227"], ["Nigeria", "ng", "234"], ["Niue", "nu", "683"], ["Norfolk Island", "nf", "672"], ["North Korea (ì¡°ì 민주주ì ì¸ë¯¼ ê³µíêµ)", "kp", "850"], ["Northern Mariana Islands", "mp", "1", 17, ["670"]], ["Norway (Norge)", "no", "47", 0], ["Oman (â«Ø¹ÙÙ
اÙâ¬â)", "om", "968"], ["Pakistan (â«Ù¾Ø§Ú©Ø³ØªØ§Ùâ¬â)", "pk", "92"], ["Palau", "pw", "680"], ["Palestine (â«ÙÙØ³Ø·ÙÙâ¬â)", "ps", "970"], ["Panama (Panamá)", "pa", "507"], ["Papua New Guinea", "pg", "675"], ["Paraguay", "py", "595"], ["Peru (Perú)", "pe", "51"], ["Philippines", "ph", "63"], ["Poland (Polska)", "pl", "48"], ["Portugal", "pt", "351"], ["Puerto Rico", "pr", "1", 3, ["787", "939"]], ["Qatar (â«Ùطرâ¬â)", "qa", "974"], ["Réunion (La Réunion)", "re", "262", 0], ["Romania (România)", "ro", "40"], ["Russia (РоÑÑиÑ)", "ru", "7", 0], ["Rwanda", "rw", "250"], ["Saint Barthélemy", "bl", "590", 1], ["Saint Helena", "sh", "290"], ["Saint Kitts and Nevis", "kn", "1", 18, ["869"]], ["Saint Lucia", "lc", "1", 19, ["758"]], ["Saint Martin (Saint-Martin (partie française))", "mf", "590", 2], ["Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)", "pm", "508"], ["Saint Vincent and the Grenadines", "vc", "1", 20, ["784"]], ["Samoa", "ws", "685"], ["San Marino", "sm", "378"], ["São Tomé and PrÃncipe (São Tomé e PrÃncipe)", "st", "239"], ["Saudi Arabia (â«Ø§ÙÙ
Ù
ÙÙØ© Ø§ÙØ¹Ø±Ø¨ÙØ© Ø§ÙØ³Ø¹ÙØ¯ÙØ©â¬â)", "sa", "966"], ["Senegal (Sénégal)", "sn", "221"], ["Serbia (СÑбиÑа)", "rs", "381"], ["Seychelles", "sc", "248"], ["Sierra Leone", "sl", "232"], ["Singapore", "sg", "65"], ["Sint Maarten", "sx", "1", 21, ["721"]], ["Slovakia (Slovensko)", "sk", "421"], ["Slovenia (Slovenija)", "si", "386"], ["Solomon Islands", "sb", "677"], ["Somalia (Soomaaliya)", "so", "252"], ["South Africa", "za", "27"], ["South Korea (ëí민êµ)", "kr", "82"], ["South Sudan (â«Ø¬ÙÙØ¨ Ø§ÙØ³ÙداÙâ¬â)", "ss", "211"], ["Spain (España)", "es", "34"], ["Sri Lanka (à·à·âර෠ලà¶à¶à·à·)", "lk", "94"], ["Sudan (â«Ø§ÙØ³ÙØ¯Ø§Ùâ¬â)", "sd", "249"], ["Suriname", "sr", "597"], ["Svalbard and Jan Mayen", "sj", "47", 1, ["79"]], ["Swaziland", "sz", "268"], ["Swede
16467n (Sverige)", "se", "46"], ["Switzerland (Schweiz)", "ch", "41"], ["Syria (â«Ø³ÙØ±ÙØ§â¬â)", "sy", "963"], ["Taiwan (å°ç£)", "tw", "886"], ["Tajikistan", "tj", "992"], ["Tanzania", "tz", "255"], ["Thailand (à¹à¸à¸¢)", "th", "66"], ["Timor-Leste", "tl", "670"], ["Togo", "tg", "228"], ["Tokelau", "tk", "690"], ["Tonga", "to", "676"], ["Trinidad and Tobago", "tt", "1", 22, ["868"]], ["Tunisia (â«ØªÙÙØ³â¬â)", "tn", "216"], ["Turkey (Türkiye)", "tr", "90"], ["Turkmenistan", "tm", "993"], ["Turks and Caicos Islands", "tc", "1", 23, ["649"]], ["Tuvalu", "tv", "688"], ["U.S. Virgin Islands", "vi", "1", 24, ["340"]], ["Uganda", "ug", "256"], ["Ukraine (УкÑаÑна)", "ua", "380"], ["United Arab Emirates (â«Ø§Ùإ٠ارات Ø§ÙØ¹Ø±Ø¨ÙØ© اÙÙ ØªØØ¯Ø©â¬â)", "ae", "971"], ["United Kingdom", "gb", "44", 0], ["United States", "us", "1", 0], ["Uruguay", "uy", "598"], ["Uzbekistan (OÊ»zbekiston)", "uz", "998"], ["Vanuatu", "vu", "678"], ["Vatican City (Città del Vaticano)", "va", "39", 1, ["06698"]], ["Venezuela", "ve", "58"], ["Vietnam (Viá»t Nam)", "vn", "84"], ["Wallis and Futuna (Wallis-et-Futuna)", "wf", "681"], ["Western Sahara (â«Ø§ÙØµØØ±Ø§Ø¡ Ø§ÙØºØ±Ø¨ÙØ©â¬â)", "eh", "212", 1, ["5288", "5289"]], ["Yemen (â«Ø§ÙÙÙ Ùâ¬â)", "ye", "967"], ["Zambia", "zm", "260"], ["Zimbabwe", "zw", "263"], ["à land Islands", "ax", "358", 1, ["18"]]], n = 0; n < e.length; n++) { 16468 var r = e[n]; 16469 e[n] = { 16470 name: r[0], 16471 iso2: r[1], 16472 dialCode: r[2], 16473 priority: r[3] || 0, 16474 areaCodes: r[4] || null 16475 } 16476 } 16477 function i(t, e) { 16478 if (!(t instanceof e)) 16479 throw new TypeError("Cannot call a class as a function") 16480 } 16481 function o(t, e) { 16482 for (var n = 0; n < e.length; n++) { 16483 var r = e[n]; 16484 r.enumerable = r.enumerable || !1, 16485 r.configurable = !0, 16486 "value"in r && (r.writable = !0), 16487 Object.defineProperty(t, r.key, r) 16488 } 16489 } 16490 function a(t, e, n) { 16491 return e && o(t.prototype, e), 16492 n && o(t, n), 16493 t 16494 } 16495 var s = { 16496 getInstance: function(t) { 16497 var e = t.getAttribute("data-intl-tel-input-id"); 16498 return window.intlTelInputGlobals.instances[e] 16499 }, 16500 instances: {} 16501 }; 16502 "object" == typeof window && (window.intlTelInputGlobals = s); 16503 var u = 0 16504 , l = { 16505 allowDropdown: !0, 16506 autoHideDialCode: !0, 16507 autoPlaceholder: "polite", 16508 customContainer: "", 16509 customPlaceholder: null, 16510 dropdownContainer: null, 16511 excludeCountries: [], 16512 formatOnDisplay: !0, 16513 geoIpLookup: null, 16514 hiddenInput: "", 16515 initialCountry: "", 16516 localizedCountries: null, 16517 nationalMode: !0, 16518 onlyCountries: [], 16519 placeholderNumberType: "MOBILE", 16520 preferredCountries: ["us", "gb"], 16521 separateDialCode: !1, 16522 utilsScript: "" 16523 } 16524 , c = ["800", "822", "833", "844", "855", "866", "877", "880", "881", "882", "883", "884", "885", "886", "887", "888", "889"]; 16525 "object" == typeof window && window.addEventListener("load", function() { 16526 window.intlTelInputGlobals.windowLoaded = !0 16527 }); 16528 var h = function(t, e) { 16529 for (var n = Object.keys(t), r = 0; r < n.length; r++) 16530 e(n[r], t[n[r]]) 16531 } 16532 , d = function(t) { 16533 h(window.intlTelInputGlobals.instances, function(e) { 16534 window.intlTelInputGlobals.instances[e][t]() 16535 }) 16536 } 16537 , f = function() { 16538 function n(t, e) { 16539 var r = this; 16540 i(this, n), 16541 this.id = u++, 16542 this.telInput = t, 16543 this.activeItem = null, 16544 this.highlightedItem = null; 16545 var o = e || {}; 16546 this.options = {}, 16547 h(l, function(t, e) { 16548 r.options[t] = o.hasOwnProperty(t) ? o[t] : e 16549 }), 16550 this.hadInitialPlaceholder = Boolean(t.getAttribute("placeholder")) 16551 } 16552 return a(n, [{ 16553 key: "_init", 16554 value: function() { 16555 var t = this; 16556 if (this.options.nationalMode && (this.options.autoHideDialCode = !1), 16557 this.options.separateDialCode && (this.options.autoHideDialCode = this.options.nationalMode = !1), 16558 this.isMobile = /Android.+Mobile|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent), 16559 this.isMobile && (document.body.classList.add("iti-mobile"), 16560 this.options.dropdownContainer || (this.options.dropdownContainer = document.body)), 16561 "undefined" != typeof Promise) { 16562 var e = new Promise(function(e, n) { 16563 t.resolveAutoCountryPromise = e, 16564 t.rejectAutoCountryPromise = n 16565 } 16566 ) 16567 , n = new Promise(function(e, n) { 16568 t.resolveUtilsScriptPromise = e, 16569 t.rejectUtilsScriptPromise = n 16570 } 16571 ); 16572 this.promise = Promise.all([e, n]) 16573 } else 16574 this.resolveAutoCountryPromise = this.rejectAutoCountryPromise = function() {} 16575 , 16576 this.resolveUtilsScriptPromise = this.rejectUtilsScriptPromise = function() {} 16577 ; 16578 this.selectedCountryData = {}, 16579 this._processCountryData(), 16580 this._generateMarkup(), 16581 this._setInitialState(), 16582 this._initListeners(), 16583 this._initRequests() 16584 } 16585 }, { 16586 key: "_processCountryData", 16587 value: function() { 16588 this._processAllCountries(), 16589 this._processCountryCodes(), 16590 this._processPreferredCountries(), 16591 this.options.localizedCountries && this._translateCountriesByLocale(), 16592 (this.options.onlyCountries.length || this.options.localizedCountries) && this.countries.sort(this._countryNameSort) 16593 } 16594 }, { 16595 key: "_addCountryCode", 16596 value: function(e, n, r) { 16597 n.length > this.dialCodeMaxLen && (this.dialCodeMaxLen = n.length), 16598 this.countryCodes.hasOwnProperty(n) || (this.countryCodes[n] = []); 16599 for (var i = 0; i < this.countryCodes[n].length; i++) 16600 if (this.countryCodes[n][i] === e) 16601 return; 16602 var o = r !== t ? r : this.countryCodes[n].length; 16603 this.countryCodes[n][o] = e 16604 } 16605 }, { 16606 key: "_processAllCountries", 16607 value: function() { 16608 if (this.options.onlyCountries.length) { 16609 var t = this.options.onlyCountries.map(function(t) { 16610 return t.toLowerCase() 16611 }); 16612 this.countries = e.filter(function(e) { 16613 return t.indexOf(e.iso2) > -1 16614 }) 16615 } else if (this.options.excludeCountries.length) { 16616 var n = this.options.excludeCountries.map(function(t) { 16617 return t.toLowerCase() 16618 }); 16619 this.countries = e.filter(function(t) { 16620 return -1 === n.indexOf(t.iso2) 16621 }) 16622 } else 16623 this.countries = e 16624 } 16625 }, { 16626 key: "_translateCountriesByLocale", 16627 value: function() { 16628 for (var t = 0; t < this.countries.length; t++) { 16629 var e = this.countries[t].iso2.toLowerCase(); 16630 this.options.localizedCountries.hasOwnProperty(e) && (this.countries[t].name = this.options.localizedCountries[e]) 16631 } 16632 } 16633 }, { 16634 key: "_countryNameSort", 16635 value: function(t, e) { 16636 return t.name.localeCompare(e.name) 16637 } 16638 }, { 16639 key: "_processCountryCodes", 16640 value: function() { 16641 this.dialCodeMaxLen = 0, 16642 this.countryCodes = {}; 16643 for (var t = 0; t < this.countries.length; t++) { 16644 var e = this.countries[t]; 16645 this._addCountryCode(e.iso2, e.dialCode, e.priority) 16646 } 16647 for (var n = 0; n < this.countries.length; n++) { 16648 var r = this.countries[n]; 16649 if (r.areaCodes) 16650 for (var i = this.countryCodes[r.dialCode][0], o = 0; o < r.areaCodes.length; o++) { 16651 for (var a = r.areaCodes[o], s = 1; s < a.length; s++) { 16652 var u = r.dialCode + a.substr(0, s); 16653 this._addCountryCode(i, u), 16654 this._addCountryCode(r.iso2, u) 16655 } 16656 this._addCountryCode(r.iso2, r.dialCode + a) 16657 } 16658 } 16659 } 16660 }, { 16661 key: "_processPreferredCountries", 16662 value: function() { 16663 this.preferredCountries = []; 16664 for (var t = 0; t < this.options.preferredCountries.length; t++) { 16665 var e = this.options.preferredCountries[t].toLowerCase() 16666 , n = this._getCountryData(e, !1, !0); 16667 n && this.preferredCountries.push(n) 16668 } 16669 } 16670 }, { 16671 key: "_createEl", 16672 value: function(t, e, n) { 16673 var r = document.createElement(t); 16674 return e && h(e, function(t, e) { 16675 return r.setAttribute(t, e) 16676 }), 16677 n && n.appendChild(r), 16678 r 16679 } 16680 }, { 16681 key: "_generateMarkup", 16682 value: function() { 16683 this.telInput.hasAttribute("autocomplete") || this.telInput.form && this.telInput.form.hasAttribute("autocomplete") || this.telInput.setAttribute("autocomplete", "off"); 16684 var t = "iti"; 16685 this.options.allowDropdown && (t += " iti--allow-dropdown"), 16686 this.options.separateDialCode && (t += " iti--separate-dial-code"), 16687 this.options.customContainer && (t += " ", 16688 t += this.options.customContainer); 16689 var e = this._createEl("div", { 16690 class: t 16691 }); 16692 if (this.telInput.parentNode.insertBefore(e, this.telInput), 16693 this.flagsContainer = this._createEl("div", { 16694 class: "iti__flag-container" 16695 }, e), 16696 e.appendChild(this.telInput), 16697 this.selectedFlag = this._createEl("div", { 16698 class: "iti__selected-flag", 16699 role: "combobox", 16700 "aria-owns": "iti-".concat(this.id, "__country-listbox"), 16701 "aria-expanded": "false" 16702 }, this.flagsContainer), 16703 this.selectedFlagInner = this._createEl("div", { 16704 class: "iti__flag" 16705 }, this.selectedFlag), 16706 this.options.separateDialCode && (this.selectedDialCode = this._createEl("div", { 16707 class: "iti__selected-dial-code" 16708 }, this.selectedFlag)), 16709 this.options.allowDropdown && (this.selectedFlag.setAttribute("tabindex", "0"), 16710 this.dropdownArrow = this._createEl("div", { 16711 class: "iti__arrow" 16712 }, this.selectedFlag), 16713 this.countryList = this._createEl("ul", { 16714 class: "iti__country-list iti__hide", 16715 id: "iti-".concat(this.id, "__country-listbox"), 16716 role: "listbox"
vendor: 15,509 bytes, lines 16717-17011
16717 }), 16718 this.preferredCountries.length && (this._appendListItems(this.preferredCountries, "iti__preferred", !0), 16719 this._createEl("li", { 16720 class: "iti__divider", 16721 role: "separator", 16722 "aria-disabled": "true" 16723 }, this.countryList)), 16724 this._appendListItems(this.countries, "iti__standard"), 16725 this.options.dropdownContainer ? (this.dropdown = this._createEl("div", { 16726 class: "iti iti--container" 16727 }), 16728 this.dropdown.appendChild(this.countryList)) : this.flagsContainer.appendChild(this.countryList)), 16729 this.options.hiddenInput) { 16730 var n = this.options.hiddenInput 16731 , r = this.telInput.getAttribute("name"); 16732 if (r) { 16733 var i = r.lastIndexOf("["); 16734 -1 !== i && (n = "".concat(r.substr(0, i), "[").concat(n, "]")) 16735 } 16736 this.hiddenInput = this._createEl("input", { 16737 type: "hidden", 16738 name: n 16739 }), 16740 e.appendChild(this.hiddenInput) 16741 } 16742 } 16743 }, { 16744 key: "_appendListItems", 16745 value: function(t, e, n) { 16746 for (var r = "", i = 0; i < t.length; i++) { 16747 var o = t[i] 16748 , a = n ? "-preferred" : ""; 16749 r += "<li class='iti__country ".concat(e, "' tabIndex='-1' id='iti-").concat(this.id, "__item-").concat(o.iso2).concat(a, "' role='option' data-dial-code='").concat(o.dialCode, "' data-country-code='").concat(o.iso2, "'>"), 16750 r += "<div class='iti__flag-box'><div class='iti__flag iti__".concat(o.iso2, "'></div></div>"), 16751 r += "<span class='iti__country-name'>".concat(o.name, "</span>"), 16752 r += "<span class='iti__dial-code'>+".concat(o.dialCode, "</span>"), 16753 r += "</li>" 16754 } 16755 this.countryList.insertAdjacentHTML("beforeend", r) 16756 } 16757 }, { 16758 key: "_setInitialState", 16759 value: function() { 16760 var t = this.telInput.value 16761 , e = this._getDialCode(t) 16762 , n = this._isRegionlessNanp(t) 16763 , r = this.options 16764 , i = r.initialCountry 16765 , o = r.nationalMode 16766 , a = r.autoHideDialCode 16767 , s = r.separateDialCode; 16768 e && !n ? this._updateFlagFromNumber(t) : "auto" !== i && (i ? this._setFlag(i.toLowerCase()) : e && n ? this._setFlag("us") : (this.defaultCountry = this.preferredCountries.length ? this.preferredCountries[0].iso2 : this.countries[0].iso2, 16769 t || this._setFlag(this.defaultCountry)), 16770 t || o || a || s || (this.telInput.value = "+".concat(this.selectedCountryData.dialCode))), 16771 t && this._updateValFromNumber(t) 16772 } 16773 }, { 16774 key: "_initListeners", 16775 value: function() { 16776 this._initKeyListeners(), 16777 this.options.autoHideDialCode && this._initBlurListeners(), 16778 this.options.allowDropdown && this._initDropdownListeners(), 16779 this.hiddenInput && this._initHiddenInputListener() 16780 } 16781 }, { 16782 key: "_initHiddenInputListener", 16783 value: function() { 16784 var t = this; 16785 this._handleHiddenInputSubmit = function() { 16786 t.hiddenInput.value = t.getNumber() 16787 } 16788 , 16789 this.telInput.form && this.telInput.form.addEventListener("submit", this._handleHiddenInputSubmit) 16790 } 16791 }, { 16792 key: "_getClosestLabel", 16793 value: function() { 16794 for (var t = this.telInput; t && "LABEL" !== t.tagName; ) 16795 t = t.parentNode; 16796 return t 16797 } 16798 }, { 16799 key: "_initDropdownListeners", 16800 value: function() { 16801 var t = this; 16802 this._handleLabelClick = function(e) { 16803 t.countryList.classList.contains("iti__hide") ? t.telInput.focus() : e.preventDefault() 16804 } 16805 ; 16806 var e = this._getClosestLabel(); 16807 e && e.addEventListener("click", this._handleLabelClick), 16808 this._handleClickSelectedFlag = function() { 16809 !t.countryList.classList.contains("iti__hide") || t.telInput.disabled || t.telInput.readOnly || t._showDropdown() 16810 } 16811 , 16812 this.selectedFlag.addEventListener("click", this._handleClickSelectedFlag), 16813 this._handleFlagsContainerKeydown = function(e) { 16814 t.countryList.classList.contains("iti__hide") && -1 !== ["ArrowUp", "Up", "ArrowDown", "Down", " ", "Enter"].indexOf(e.key) && (e.preventDefault(), 16815 e.stopPropagation(), 16816 t._showDropdown()), 16817 "Tab" === e.key && t._closeDropdown() 16818 } 16819 , 16820 this.flagsContainer.addEventListener("keydown", this._handleFlagsContainerKeydown) 16821 } 16822 }, { 16823 key: "_initRequests", 16824 value: function() { 16825 var t = this; 16826 this.options.utilsScript && !window.intlTelInputUtils ? window.intlTelInputGlobals.windowLoaded ? window.intlTelInputGlobals.loadUtils(this.options.utilsScript) : window.addEventListener("load", function() { 16827 window.intlTelInputGlobals.loadUtils(t.options.utilsScript) 16828 }) : this.resolveUtilsScriptPromise(), 16829 "auto" === this.options.initialCountry ? this._loadAutoCountry() : this.resolveAutoCountryPromise() 16830 } 16831 }, { 16832 key: "_loadAutoCountry", 16833 value: function() { 16834 window.intlTelInputGlobals.autoCountry ? this.handleAutoCountry() : window.intlTelInputGlobals.startedLoadingAutoCountry || (window.intlTelInputGlobals.startedLoadingAutoCountry = !0, 16835 "function" == typeof this.options.geoIpLookup && this.options.geoIpLookup(function(t) { 16836 window.intlTelInputGlobals.autoCountry = t.toLowerCase(), 16837 setTimeout(function() { 16838 return d("handleAutoCountry") 16839 }) 16840 }, function() { 16841 return d("rejectAutoCountryPromise") 16842 })) 16843 } 16844 }, { 16845 key: "_initKeyListeners", 16846 value: function() { 16847 var t = this; 16848 this._handleKeyupEvent = function() { 16849 t._updateFlagFromNumber(t.telInput.value) && t._triggerCountryChange() 16850 } 16851 , 16852 this.telInput.addEventListener("keyup", this._handleKeyupEvent), 16853 this._handleClipboardEvent = function() { 16854 setTimeout(t._handleKeyupEvent) 16855 } 16856 , 16857 this.telInput.addEventListener("cut", this._handleClipboardEvent), 16858 this.telInput.addEventListener("paste", this._handleClipboardEvent) 16859 } 16860 }, { 16861 key: "_cap", 16862 value: function(t) { 16863 var e = this.telInput.getAttribute("maxlength"); 16864 return e && t.length > e ? t.substr(0, e) : t 16865 } 16866 }, { 16867 key: "_initBlurListeners", 16868 value: function() { 16869 var t = this; 16870 this._handleSubmitOrBlurEvent = function() { 16871 t._removeEmptyDialCode() 16872 } 16873 , 16874 this.telInput.form && this.telInput.form.addEventListener("submit", this._handleSubmitOrBlurEvent), 16875 this.telInput.addEventListener("blur", this._handleSubmitOrBlurEvent) 16876 } 16877 }, { 16878 key: "_removeEmptyDialCode", 16879 value: function() { 16880 if ("+" === this.telInput.value.charAt(0)) { 16881 var t = this._getNumeric(this.telInput.value); 16882 t && this.selectedCountryData.dialCode !== t || (this.telInput.value = "") 16883 } 16884 } 16885 }, { 16886 key: "_getNumeric", 16887 value: function(t) { 16888 return t.replace(/\D/g, "") 16889 } 16890 }, { 16891 key: "_trigger", 16892 value: function(t) { 16893 var e = document.createEvent("Event"); 16894 e.initEvent(t, !0, !0), 16895 this.telInput.dispatchEvent(e) 16896 } 16897 }, { 16898 key: "_showDropdown", 16899 value: function() { 16900 this.countryList.classList.remove("iti__hide"), 16901 this.selectedFlag.setAttribute("aria-expanded", "true"), 16902 this._setDropdownPosition(), 16903 this.activeItem && (this._highlightListItem(this.activeItem, !1), 16904 this._scrollTo(this.activeItem, !0)), 16905 this._bindDropdownListeners(), 16906 this.dropdownArrow.classList.add("iti__arrow--up"), 16907 this._trigger("open:countrydropdown") 16908 } 16909 }, { 16910 key: "_toggleClass", 16911 value: function(t, e, n) { 16912 n && !t.classList.contains(e) ? t.classList.add(e) : !n && t.classList.contains(e) && t.classList.remove(e) 16913 } 16914 }, { 16915 key: "_setDropdownPosition", 16916 value: function() { 16917 var t = this; 16918 if (this.options.dropdownContainer && this.options.dropdownContainer.appendChild(this.dropdown), 16919 !this.isMobile) { 16920 var e = this.telInput.getBoundingClientRect() 16921 , n = window.pageYOffset || document.documentElement.scrollTop 16922 , r = e.top + n 16923 , i = this.countryList.offsetHeight 16924 , o = r + this.telInput.offsetHeight + i < n + window.innerHeight 16925 , a = r - i > n; 16926 if (this._toggleClass(this.countryList, "iti__country-list--dropup", !o && a), 16927 this.options.dropdownContainer) { 16928 var s = !o && a ? 0 : this.telInput.offsetHeight; 16929 this.dropdown.style.top = "".concat(r + s, "px"), 16930 this.dropdown.style.left = "".concat(e.left + document.body.scrollLeft, "px"), 16931 this._handleWindowScroll = function() { 16932 return t._closeDropdown() 16933 } 16934 , 16935 window.addEventListener("scroll", this._handleWindowScroll) 16936 } 16937 } 16938 } 16939 }, { 16940 key: "_getClosestListItem", 16941 value: function(t) { 16942 for (var e = t; e && e !== this.countryList && !e.classList.contains("iti__country"); ) 16943 e = e.parentNode; 16944 return e === this.countryList ? null : e 16945 } 16946 }, { 16947 key: "_bindDropdownListeners", 16948 value: function() { 16949 var t = this; 16950 this._handleMouseoverCountryList = function(e) { 16951 var n = t._getClosestListItem(e.target); 16952 n && t._highlightListItem(n, !1) 16953 } 16954 , 16955 this.countryList.addEventListener("mouseover", this._handleMouseoverCountryList), 16956 this._handleClickCountryList = function(e) { 16957 var n = t._getClosestListItem(e.target); 16958 n && t._selectListItem(n) 16959 } 16960 , 16961 this.countryList.addEventListener("click", this._handleClickCountryList); 16962 var e = !0; 16963 this._handleClickOffToClose = function() { 16964 e || t._closeDropdown(), 16965 e = !1 16966 } 16967 , 16968 document.documentElement.addEventListener("click", this._handleClickOffToClose); 16969 var n = "" 16970 , r = null; 16971 this._handleKeydownOnDropdown = function(e) { 16972 e.preventDefault(), 16973 "ArrowUp" === e.key || "Up" === e.key || "ArrowDown" === e.key || "Down" === e.key ? t._handleUpDownKey(e.key) : "Enter" === e.key ? t._handleEnterKey() : "Escape" === e.key ? t._closeDropdown() : /^[a-zA-ZÃ-ÿа-ÑÐ-Я ]$/.test(e.key) && (r && clearTimeout(r), 16974 n += e.key.toLowerCase(), 16975 t._searchForCountry(n), 16976 r = setTimeout(function() { 16977 n = "" 16978 }, 1e3)) 16979 } 16980 , 16981 document.addEventListener("keydown", this._handleKeydownOnDropdown) 16982 } 16983 }, { 16984 key: "_handleUpDownKey", 16985 value: function(t) { 16986 var e = "ArrowUp" === t || "Up" === t ? this.highlightedItem.previousElementSibling : this.highlightedItem.nextElementSibling; 16987 e && (e.classList.contains("iti__divider") && (e = "ArrowUp" === t || "Up" === t ? e.previousElementSibling : e.nextElementSibling), 16988 this._highlightListItem(e, !0)) 16989 } 16990 }, { 16991 key: "_handleEnterKey", 16992 value: function() { 16993 this.highlightedItem && this._selectListItem(this.highlightedItem) 16994 } 16995 }, { 16996 key: "_searchForCountry", 16997 value: function(t) { 16998 for (var e = 0; e < this.countries.length; e++) 16999 if (this._startsWith(this.countries[e].name, t)) { 17000 var n = this.countryList.querySelector("#iti-".concat(this.id, "__item-").concat(this.countries[e].iso2)); 17001 this._highlightListItem(n, !1), 17002 this._scrollTo(n, !0); 17003 break 17004 } 17005 } 17006 }, { 17007 key: "_startsWith", 17008 value: function(t, e) { 17009 return t.substr(0, e.length).toLowerCase() === e 17010 } 17011 }, {
17012 key: "_updateValFromNumber", 17013 value: function(t) { 17014 var e = t; 17015 if (this.options.formatOnDisplay && window.intlTelInputUtils && this.selectedCountryData) { 17016 var n = !this.options.separateDialCode && (this.options.nationalMode || "+" !== e.charAt(0)) 17017 , r = intlTelInputUtils.numberFormat 17018 , i = r.NATIONAL 17019 , o = r.INTERNATIONAL 17020 , a = n ? i : o; 17021 e = intlTelInputUtils.formatNumber(e, this.selectedCountryData.iso2, a) 17022 } 17023 e = this._beforeSetNumber(e), 17024 this.telInput.value = e 17025 } 17026 }, { 17027 key: "_updateFlagFromNumber", 17028 value: function(t) { 17029 var e = t 17030 , n = this.selectedCountryData.dialCode 17031 , r = "1" === n; 17032 e && this.options.nationalMode && r && "+" !== e.charAt(0) && ("1" !== e.charAt(0) && (e = "1".concat(e)), 17033 e = "+".concat(e)), 17034 this.options.separateDialCode && n && "+" !== e.charAt(0) && (e = "+".concat(n).concat(e)); 17035 var i = this._getDialCode(e) 17036 , o = this._getNumeric(e) 17037 , a = null; 17038 if (i) { 17039 var s = this.countryCodes[this._getNumeric(i)] 17040 , u = -1 !== s.indexOf(this.selectedCountryData.iso2) && o.length <= i.length - 1; 17041 if (!("1" === n && this._isRegionlessNanp(o)) && !u) 17042 for (var l = 0; l < s.length; l++) 17043 if (s[l]) { 17044 a = s[l]; 17045 break 17046 } 17047 } else 17048 "+" === e.charAt(0) && o.length ? a = "" : e && "+" !== e || (a = this.defaultCountry); 17049 return null !== a && this._setFlag(a) 17050 } 17051 }, { 17052 key: "_isRegionlessNanp", 17053 value: function(t) { 17054 var e = this._getNumeric(t); 17055 if ("1" === e.charAt(0)) { 17056 var n = e.substr(1, 3); 17057 return -1 !== c.indexOf(n) 17058 } 17059 return !1 17060 } 17061 }, { 17062 key: "_highlightListItem", 17063 value: function(t, e) { 17064 var n = this.highlightedItem; 17065 n && n.classList.remove("iti__highlight"), 17066 this.highlightedItem = t, 17067 this.highlightedItem.classList.add("iti__highlight"), 17068 e && this.highlightedItem.focus() 17069 } 17070 }, { 17071 key: "_getCountryData", 17072 value: function(t, n, r) { 17073 for (var i = n ? e : this.countries, o = 0; o < i.length; o++) 17074 if (i[o].iso2 === t) 17075 return i[o]; 17076 if (r) 17077 return null; 17078 throw new Error("No country data for '".concat(t, "'")) 17079 } 17080 }, { 17081 key: "_setFlag", 17082 value: function(t) { 17083 var e = this.selectedCountryData.iso2 ? this.selectedCountryData : {}; 17084 this.selectedCountryData = t ? this._getCountryData(t, !1, !1) : {}, 17085 this.selectedCountryData.iso2 && (this.defaultCountry = this.selectedCountryData.iso2), 17086 this.selectedFlagInner.setAttribute("class", "iti__flag iti__".concat(t)); 17087 var n = t ? "".concat(this.selectedCountryData.name, ": +").concat(this.selectedCountryData.dialCode) : "Unknown"; 17088 if (this.selectedFlag.setAttribute("title", n), 17089 this.options.separateDialCode) { 17090 var r = this.selectedCountryData.dialCode ? "+".concat(this.selectedCountryData.dialCode) : ""; 17091 this.selectedDialCode.innerHTML = r; 17092 var i = this.selectedFlag.offsetWidth || this._getHiddenSelectedFlagWidth(); 17093 this.telInput.style.paddingLeft = "".concat(i + 6, "px") 17094 } 17095 if (this._updatePlaceholder(), 17096 this.options.allowDropdown) { 17097 var o = this.activeItem; 17098 if (o && (o.classList.remove("iti__active"), 17099 o.setAttribute("aria-selected", "false")), 17100 t) { 17101 var a = this.countryList.querySelector("#iti-".concat(this.id, "__item-").concat(t, "-preferred")) || this.countryList.querySelector("#iti-".concat(this.id, "__item-").concat(t)); 17102 a.setAttribute("aria-selected", "true"), 17103 a.classList.add("iti__active"), 17104 this.activeItem = a, 17105 this.selectedFlag.setAttribute("aria-activedescendant", a.getAttribute("id")) 17106 } 17107 } 17108 return e.iso2 !== t 17109 } 17110 }, { 17111 key: "_getHiddenSelectedFlagWidth", 17112 value: function() { 17113 var t = this.telInput.parentNode.cloneNode(); 17114 t.style.visibility = "hidden", 17115 document.body.appendChild(t); 17116 var e = this.selectedFlag.cloneNode(!0); 17117 t.appendChild(e); 17118 var n = e.offsetWidth; 17119 return t.parentNode.removeChild(t), 17120 n 17121 } 17122 }, { 17123 key: "_updatePlaceholder", 17124 value: function() { 17125 var t = "aggressive" === this.options.autoPlaceholder || !this.hadInitialPlaceholder && "polite" === this.options.autoPlaceholder; 17126 if (window.intlTelInputUtils && t) { 17127 var e = intlTelInputUtils.numberType[this.options.placeholderNumberType] 17128 , n = this.selectedCountryData.iso2 ? intlTelInputUtils.getExampleNumber(this.selectedCountryData.iso2, this.options.nationalMode, e) : ""; 17129 n = this._beforeSetNumber(n), 17130 "function" == typeof this.options.customPlaceholder && (n = this.options.customPlaceholder(n, this.selectedCountryData)), 17131 this.telInput.setAttribute("placeholder", n) 17132 } 17133 } 17134 }, { 17135 key: "_selectListItem", 17136 value: function(t) { 17137 var e = this._setFlag(t.getAttribute("data-country-code")); 17138 this._closeDropdown(), 17139 this._updateDialCode(t.getAttribute("data-dial-code"), !0), 17140 this.telInput.focus(); 17141 var n = this.telInput.value.length; 17142 this.telInput.setSelectionRange(n, n), 17143 e && this._triggerCountryChange() 17144 } 17145 }, { 17146 key: "_closeDropdown", 17147 value: function() { 17148 this.countryList.classList.add("iti__hide"), 17149 this.selectedFlag.setAttribute("aria-expanded", "false"), 17150 this.dropdownArrow.classList.remove("iti__arrow--up"), 17151 document.removeEventListener("keydown", this._handleKeydownOnDropdown), 17152 document.documentElement.removeEventListener("click", this._handleClickOffToClose), 17153 this.countryList.removeEventListener("mouseover", this._handleMouseoverCountryList), 17154 this.countryList.removeEventListener("click", this._handleClickCountryList), 17155 this.options.dropdownContainer && (this.isMobile || window.removeEventListener("scroll", this._handleWindowScroll), 17156 this.dropdown.parentNode && this.dropdown.parentNode.removeChild(this.dropdown)), 17157 this._trigger("close:countrydropdown") 17158 } 17159 }, { 17160 key: "_scrollTo", 17161 value: function(t, e) { 17162 var n = this.countryList 17163 , r = window.pageYOffset || document.documentElement.scrollTop 17164 , i = n.offsetHeight 17165 , o = n.getBoundingClientRect().top + r 17166 , a = o + i 17167 , s = t.offsetHeight 17168 , u = t.getBoundingClientRect().top + r 17169 , l = u + s 17170 , c = u - o + n.scrollTop 17171 , h = i / 2 - s / 2; 17172 if (u < o) 17173 e && (c -= h), 17174 n.scrollTop = c; 17175 else if (l > a) { 17176 e && (c += h); 17177 var d = i - s; 17178 n.scrollTop = c - d 17179 } 17180 } 17181 }, { 17182 key: "_updateDialCode", 17183 value: function(t, e) { 17184 var n, r = this.telInput.value, i = "+".concat(t); 17185 if ("+" === r.charAt(0)) { 17186 var o = this._getDialCode(r); 17187 n = o ? r.replace(o, i) : i 17188 } else { 17189 if (this.options.nationalMode || this.options.separateDialCode) 17190 return; 17191 if (r) 17192 n = i + r; 17193 else { 17194 if (!e && this.options.autoHideDialCode) 17195 return; 17196 n = i 17197 } 17198 } 17199 this.telInput.value = n 17200 } 17201 }, { 17202 key: "_getDialCode", 17203 value: function(t) { 17204 var e = ""; 17205 if ("+" === t.charAt(0)) 17206 for (var n = "", r = 0; r < t.length; r++) { 17207 var i = t.charAt(r); 17208 if (!isNaN(parseInt(i, 10)) && (n += i, 17209 this.countryCodes[n] && (e = t.substr(0, r + 1)), 17210 n.length === this.dialCodeMaxLen)) 17211 break 17212 } 17213 return e 17214 } 17215 }, { 17216 key: "_getFullNumber", 17217 value: function() { 17218 var t = this.telInput.value.trim() 17219 , e = this.selectedCountryData.dialCode 17220 , n = this._getNumeric(t); 17221 return (this.options.separateDialCode && "+" !== t.charAt(0) && e && n ? "+".concat(e) : "") + t 17222 } 17223 }, { 17224 key: "_beforeSetNumber", 17225 value: function(t) { 17226 var e = t; 17227 if (this.options.separateDialCode) { 17228 var n = this._getDialCode(e); 17229 if (n) { 17230 n = "+".concat(this.selectedCountryData.dialCode); 17231 var r = " " === e[n.length] || "-" === e[n.length] ? n.length + 1 : n.length; 17232 e = e.substr(r) 17233 } 17234 } 17235 return this._cap(e) 17236 } 17237 }, { 17238 key: "_triggerCountryChange", 17239 value: function() { 17240 this._trigger("countrychange") 17241 } 17242 }, { 17243 key: "handleAutoCountry", 17244 value: function() { 17245 "auto" === this.options.initialCountry && (this.defaultCountry = window.intlTelInputGlobals.autoCountry, 17246 this.telInput.value || this.setCountry(this.defaultCountry), 17247 this.resolveAutoCountryPromise()) 17248 } 17249 }, { 17250 key: "handleUtils", 17251 value: function() { 17252 window.intlTelInputUtils && (this.telInput.value && this._updateV
17252alFromNumber(this.telInput.value), 17253 this._updatePlaceholder()), 17254 this.resolveUtilsScriptPromise() 17255 } 17256 }, { 17257 key: "destroy", 17258 value: function() { 17259 var t = this.telInput.form; 17260 if (this.options.allowDropdown) { 17261 this._closeDropdown(), 17262 this.selectedFlag.removeEventListener("click", this._handleClickSelectedFlag), 17263 this.flagsContainer.removeEventListener("keydown", this._handleFlagsContainerKeydown); 17264 var e = this._getClosestLabel(); 17265 e && e.removeEventListener("click", this._handleLabelClick) 17266 } 17267 this.hiddenInput && t && t.removeEventListener("submit", this._handleHiddenInputSubmit), 17268 this.options.autoHideDialCode && (t && t.removeEventListener("submit", this._handleSubmitOrBlurEvent), 17269 this.telInput.removeEventListener("blur", this._handleSubmitOrBlurEvent)), 17270 this.telInput.removeEventListener("keyup", this._handleKeyupEvent), 17271 this.telInput.removeEventListener("cut", this._handleClipboardEvent), 17272 this.telInput.removeEventListener("paste", this._handleClipboardEvent), 17273 this.telInput.removeAttribute("data-intl-tel-input-id"); 17274 var n = this.telInput.parentNode; 17275 n.parentNode.insertBefore(this.telInput, n), 17276 n.parentNode.removeChild(n), 17277 delete window.intlTelInputGlobals.instances[this.id] 17278 } 17279 }, { 17280 key: "getExtension", 17281 value: function() { 17282 return window.intlTelInputUtils ? intlTelInputUtils.getExtension(this._getFullNumber(), this.selectedCountryData.iso2) : "" 17283 } 17284 }, { 17285 key: "getNumber", 17286 value: function(t) { 17287 if (window.intlTelInputUtils) { 17288 var e = this.selectedCountryData.iso2; 17289 return intlTelInputUtils.formatNumber(this._getFullNumber(), e, t) 17290 } 17291 return "" 17292 } 17293 }, { 17294 key: "getNumberType", 17295 value: function() { 17296 return window.intlTelInputUtils ? intlTelInputUtils.getNumberType(this._getFullNumber(), this.selectedCountryData.iso2) : -99 17297 } 17298 }, { 17299 key: "getSelectedCountryData", 17300 value: function() { 17301 return this.selectedCountryData 17302 } 17303 }, { 17304 key: "getValidationError", 17305 value: function() { 17306 if (window.intlTelInputUtils) { 17307 var t = this.selectedCountryData.iso2; 17308 return intlTelInputUtils.getValidationError(this._getFullNumber(), t) 17309 } 17310 return -99 17311 } 17312 }, { 17313 key: "isValidNumber", 17314 value: function() { 17315 var t = this._getFullNumber().trim() 17316 , e = this.options.nationalMode ? this.selectedCountryData.iso2 : ""; 17317 return window.intlTelInputUtils ? intlTelInputUtils.isValidNumber(t, e) : null 17318 } 17319 }, { 17320 key: "setCountry", 17321 value: function(t) { 17322 var e = t.toLowerCase(); 17323 this.selectedFlagInner.classList.contains("iti__".concat(e)) || (this._setFlag(e), 17324 this._updateDialCode(this.selectedCountryData.dialCode, !1), 17325 this._triggerCountryChange()) 17326 } 17327 }, { 17328 key: "setNumber", 17329 value: function(t) { 17330 var e = this._updateFlagFromNumber(t); 17331 this._updateValFromNumber(t), 17332 e && this._triggerCountryChange() 17333 } 17334 }, { 17335 key: "setPlaceholderNumberType", 17336 value: function(t) { 17337 this.options.placeholderNumberType = t, 17338 this._updatePlaceholder() 17339 } 17340 }]), 17341 n 17342 }(); 17343 s.getCountryData = function() { 17344 return e 17345 } 17346 ; 17347 var p = function(t, e, n) { 17348 var r = document.createElement("script"); 17349 r.onload = function() { 17350 d("handleUtils"), 17351 e && e() 17352 } 17353 , 17354 r.onerror = function() { 17355 d("rejectUtilsScriptPromise"), 17356 n && n() 17357 } 17358 , 17359 r.className = "iti-load-utils", 17360 r.async = !0, 17361 r.src = t, 17362 document.body.appendChild(r) 17363 }; 17364 return s.loadUtils = function(t) { 17365 if (!window.intlTelInputUtils && !window.intlTelInputGlobals.startedLoadingUtilsScript) { 17366 if (window.intlTelInputGlobals.startedLoadingUtilsScript = !0, 17367 "undefined" != typeof Promise) 17368 return new Promise(function(e, n) { 17369 return p(t, e, n) 17370 } 17371 ); 17372 p(t) 17373 } 17374 return null 17375 } 17376 , 17377 s.defaults = l, 17378 s.version = "17.0.0", 17379 function(t, e) { 17380 var n = new f(t,e); 17381 return n._init(), 17382 t.setAttribute("data-intl-tel-input-id", n.id), 17383 window.intlTelInputGlobals.instances[n.id] = n, 17384 n 17385 } 17386 }() 17387}), 17388// (c) 2008-2010 jason frame [[email protected]] 17389// releated under the MIT license 17390function(t) { 17391 function e(t) { 17392 (t.attr("title") || "string" != typeof t.attr("original-title")) && t.attr("original-title", t.attr("title") || "").removeAttr("title") 17393 } 17394 function n(n, r) { 17395 this.$element = t(n), 17396 this.options = r, 17397 this.enabled = !0, 17398 e(this.$element) 17399 } 17400 n.prototype = { 17401 show: function() { 17402 var e = this.getTitle(); 17403 if (e && this.enabled) { 17404 var n = this.tip(); 17405 n.find(".tipsy-inner")[this.options.html ? "html" : "text"](e), 17406 n[0].className = "tipsy", 17407 n.remove().css({ 17408 top: 0, 17409 left: 0, 17410 visibility: "hidden", 17411 display: "block" 17412 }).appendTo(document.body); 17413 var r, i = t.extend({}, this.$element.offset(), { 17414 width: this.$element[0].offsetWidth, 17415 height: this.$element[0].offsetHeight 17416 }), o = n[0].offsetWidth, a = n[0].offsetHeight, s = "function" == typeof this.options.gravity ? this.options.gravity.call(this.$element[0]) : this.options.gravity; 17417 switch (s.charAt(0)) { 17418 case "n": 17419 r = { 17420 top: i.top + i.height + this.options.offset, 17421 left: i.left + i.width / 2 - o / 2 17422 }; 17423 break; 17424 case "s": 17425 r = { 17426 top: i.top - a - this.options.offset, 17427 left: i.left + i.width / 2 - o / 2 17428 }; 17429 break; 17430 case "e": 17431 r = { 17432 top: i.top + i.height / 2 - a / 2, 17433 left: i.left - o - this.options.offset 17434 }; 17435 break; 17436 case "w": 17437 r = { 17438 top: i.top + i.height / 2 - a / 2, 17439 left: i.left + i.width + this.options.offset 17440 } 17441 } 17442 2 == s.length && ("w" == s.charAt(1) ? r.left = i.left + i.width / 2 - 15 : r.left = i.left + i.width / 2 - o + 15), 17443 n.css(r).addClass("tipsy-" + s), 17444 this.options.fade ? n.stop().css({ 17445 opacity: 0, 17446 display: "block", 17447 visibility: "visible" 17448 }).animate({ 17449 opacity: this.options.opacity 17450 }) : n.css({ 17451 visibility: "visible", 17452 opacity: this.options.opacity 17453 }) 17454 } 17455 }, 17456 hide: function() { 17457 this.options.fade ? this.tip().stop().fadeOut(function() { 17458 t(this).remove() 17459 }) : this.tip().remove() 17460 }, 17461 getTitle: function() { 17462 var t, n = this.$element, r = this.options; 17463 e(n); 17464 var t, r = this.options; 17465 return "string" == typeof r.title ? t = n.attr("title" == r.title ? "original-title" : r.title) : "function" == typeof r.title && (t = r.title.call(n[0])), 17466 (t = ("" + t).replace(/(^\s*|\s*$)/, "")) || r.fallback 17467 }, 17468 tip: function() { 17469 return this.$tip || (this.$tip = t('<div class="tipsy"></div>').html('<div class="tipsy-arrow"></div><div class="tipsy-inner"/></div>')), 17470 this.$tip 17471 }, 17472 validate: function() { 17473 this.$element[0].parentNode || (this.hide(), 17474 this.$element = null, 17475 this.options = null) 17476 }, 17477 enable: function() { 17478 this.enabled = !0 17479 }, 17480 disable: function() { 17481 this.enabled = !1 17482 }, 17483 toggleEnabled: function() { 17484 this.enabled = !this.enabled 17485 } 17486 }, 17487 t.fn.tipsy = function(e) { 17488 if (!0 === e) 17489 return this.data("tipsy"); 17490 if ("string" == typeof e) 17491 return this.data("tipsy")[e](); 17492 e = t.extend({}, t.fn.tipsy.defaults, e); 17493 function r(r) { 17494 var i = t.data(r, "tipsy"); 17495 return i || (i = new n(r,t.fn.tipsy.elementOptions(r, e)), 17496 t.data(r, "tipsy", i)), 17497 i 17498 } 17499 function i() { 17500 var t = r(this); 17501 t.hoverState = "in", 17502 0 == e.delayIn ? t.show() : setTimeout(function() { 17503 "in" == t.hoverState && t.show() 17504 }, e.delayIn) 17505 } 17506 function o() { 17507 var t = r(this); 17508 t.hoverState = "out", 17509 0 == e.delayOut ? t.hide() : setTimeout(function() { 17510 "out" == t.hoverState && t.hide() 17511 }, e.delayOut) 17512 } 17513 if (e.live || this.each(function() { 17514 r(this) 17515 }), 17516 "manual" != e.trigger) { 17517 var a = e.live ? "live" : "bind" 17518 , s = "hover" == e.trigger ? "mouseenter" : "focus" 17519 , u = "hover" == e.trigger ? "mouseleave" : "blur"; 17520 this[a](s, i)[a](u, o) 17521 } 17522 return this 17523 } 17524 , 17525 t.fn.tipsy.defaults = { 17526 delayIn: 0, 17527 delayOut: 0, 17528 fade: !1, 17529 fallback: "", 17530 gravity: "n", 17531 html: !1, 17532 live: !1, 17533 offset: 0, 17534 opacity: .8, 17535 title: "title", 17536 trigger: "hover" 17537 }, 17538 t.fn.tipsy.elementOptions = function(e, n) { 17539 return t.metadata ? t.extend({}, n, t(e).metadata()) : n 17540 } 17541 , 17542 t.fn.tipsy.autoNS = function() { 17543 return t(this).offset().top >
17543 t(document).scrollTop() + t(window).height() / 2 ? "s" : "n" 17544 } 17545 , 17546 t.fn.tipsy.autoWE = function() { 17547 return t(this).offset().left > t(document).scrollLeft() + t(window).width() / 2 ? "e" : "w" 17548 } 17549}(jQuery), 17550/*! Respond.js v1.4.2: min/max-width media query polyfill * Copyright 2013 Scott Jehl 17551 * Licensed under https://github.com/scottjehl/Respond/blob/master/LICENSE-MIT 17552 * */ 17553function(t) { 17554 "use strict"; 17555 t.matchMedia = t.matchMedia || function(t) { 17556 var e, n = t.documentElement, r = n.firstElementChild || n.firstChild, i = t.createElement("body"), o = t.createElement("div"); 17557 return o.id = "mq-test-1", 17558 o.style.cssText = "position:absolute;top:-100em", 17559 i.style.background = "none", 17560 i.appendChild(o), 17561 function(t) { 17562 return o.innerHTML = '­<style media="' + t + '"> #mq-test-1 { width: 42px; }</style>', 17563 n.insertBefore(i, r), 17564 e = 42 === o.offsetWidth, 17565 n.removeChild(i), 17566 { 17567 matches: e, 17568 media: t 17569 } 17570 } 17571 }(t.document) 17572}(this), 17573function(t) { 17574 "use strict"; 17575 function e() { 17576 b(!0) 17577 } 17578 var n = {}; 17579 t.respond = n, 17580 n.update = function() {} 17581 ; 17582 var r = [] 17583 , i = function() { 17584 var e = !1; 17585 try { 17586 e = new t.XMLHttpRequest 17587 } catch (n) { 17588 e = new t.ActiveXObject("Microsoft.XMLHTTP") 17589 } 17590 return function() { 17591 return e 17592 } 17593 }() 17594 , o = function(t, e) { 17595 var n = i(); 17596 n && (n.open("GET", t, !0), 17597 n.onreadystatechange = function() { 17598 4 !== n.readyState || 200 !== n.status && 304 !== n.status || e(n.responseText) 17599 } 17600 , 17601 4 !== n.readyState && n.send(null)) 17602 }; 17603 if (n.ajax = o, 17604 n.queue = r, 17605 n.regex = { 17606 media: /@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi, 17607 keyframes: /@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi, 17608 urls: /(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g, 17609 findStyles: /@media *([^\{]+)\{([\S\s]+?)$/, 17610 only: /(only\s+)?([a-zA-Z]+)\s?/, 17611 minw: /\([\s]*min\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/, 17612 maxw: /\([\s]*max\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/ 17613 }, 17614 n.mediaQueriesSupported = t.matchMedia && null !== t.matchMedia("only all") && t.matchMedia("only all").matches, 17615 !n.mediaQueriesSupported) { 17616 var a, s, u, l = t.document, c = l.documentElement, h = [], d = [], f = [], p = {}, g = l.getElementsByTagName("head")[0] || c, m = l.getElementsByTagName("base")[0], y = g.getElementsByTagName("link"), v = function() { 17617 var t, e = l.createElement("div"), n = l.body, r = c.style.fontSize, i = n && n.style.fontSize, o = !1; 17618 return e.style.cssText = "position:absolute;font-size:1em;width:1em", 17619 n || (n = o = l.createElement("body"), 17620 n.style.background = "none"), 17621 c.style.fontSize = "100%", 17622 n.style.fontSize = "100%", 17623 n.appendChild(e), 17624 o && c.insertBefore(n, c.firstChild), 17625 t = e.offsetWidth, 17626 o ? c.removeChild(n) : n.removeChild(e), 17627 c.style.fontSize = r, 17628 i && (n.style.fontSize = i), 17629 t = u = parseFloat(t) 17630 }, b = function(e) { 17631 var n = "clientWidth" 17632 , r = c[n] 17633 , i = "CSS1Compat" === l.compatMode && r || l.body[n] || r 17634 , o = {} 17635 , p = y[y.length - 1] 17636 , m = (new Date).getTime(); 17637 if (e && a && 30 > m - a) 17638 return t.clearTimeout(s), 17639 void (s = t.setTimeout(b, 30)); 17640 a = m; 17641 for (var w in h) 17642 if (h.hasOwnProperty(w)) { 17643 var x = h[w] 17644 , _ = x.minw 17645 , C = x.maxw 17646 , k = null === _ 17647 , j = null === C; 17648 _ && (_ = parseFloat(_) * (_.indexOf("em") > -1 ? u || v() : 1)), 17649 C && (C = parseFloat(C) * (C.indexOf("em") > -1 ? u || v() : 1)), 17650 x.hasquery && (k && j || !(k || i >= _) || !(j || C >= i)) || (o[x.media] || (o[x.media] = []), 17651 o[x.media].push(d[x.rules])) 17652 } 17653 for (var T in f) 17654 f.hasOwnProperty(T) && f[T] && f[T].parentNode === g && g.removeChild(f[T]); 17655 f.length = 0; 17656 for (var S in o) 17657 if (o.hasOwnProperty(S)) { 17658 var E = l.createElement("style") 17659 , A = o[S].join("\n"); 17660 E.type = "text/css", 17661 E.media = S, 17662 g.insertBefore(E, p.nextSibling), 17663 E.styleSheet ? E.styleSheet.cssText = A : E.appendChild(l.createTextNode(A)), 17664 f.push(E) 17665 } 17666 }, w = function(t, e, r) { 17667 var i = t.replace(n.regex.keyframes, "").match(n.regex.media) 17668 , o = i && i.length || 0; 17669 e = e.substring(0, e.lastIndexOf("/")); 17670 var a = function(t) { 17671 return t.replace(n.regex.urls, "$1" + e + "$2$3") 17672 } 17673 , s = !o && r; 17674 e.length && (e += "/"), 17675 s && (o = 1); 17676 for (var u = 0; o > u; u++) { 17677 var l, c, f, p; 17678 s ? (l = r, 17679 d.push(a(t))) : (l = i[u].match(n.regex.findStyles) && RegExp.$1, 17680 d.push(RegExp.$2 && a(RegExp.$2))), 17681 f = l.split(","), 17682 p = f.length; 17683 for (var g = 0; p > g; g++) 17684 c = f[g], 17685 h.push({ 17686 media: c.split("(")[0].match(n.regex.only) && RegExp.$2 || "all", 17687 rules: d.length - 1, 17688 hasquery: c.indexOf("(") > -1, 17689 minw: c.match(n.regex.minw) && parseFloat(RegExp.$1) + (RegExp.$2 || ""), 17690 maxw: c.match(n.regex.maxw) && parseFloat(RegExp.$1) + (RegExp.$2 || "") 17691 }) 17692 } 17693 b() 17694 }, x = function() { 17695 if (r.length) { 17696 var e = r.shift(); 17697 o(e.href, function(n) { 17698 w(n, e.href, e.media), 17699 p[e.href] = !0, 17700 t.setTimeout(function() { 17701 x() 17702 }, 0) 17703 }) 17704 } 17705 }, _ = function() { 17706 for (var e = 0; e < y.length; e++) { 17707 var n = y[e] 17708 , i = n.href 17709 , o = n.media 17710 , a = n.rel && "stylesheet" === n.rel.toLowerCase(); 17711 i && a && !p[i] && (n.styleSheet && n.styleSheet.rawCssText ? (w(n.styleSheet.rawCssText, i, o), 17712 p[i] = !0) : (!/^([a-zA-Z:]*\/\/)/.test(i) && !m || i.replace(RegExp.$1, "").split("/")[0] === t.location.host) && ("//" === i.substring(0, 2) && (i = t.location.protocol + i), 17713 r.push({ 17714 href: i, 17715 media: o 17716 }))) 17717 } 17718 x() 17719 }; 17720 _(), 17721 n.update = _, 17722 n.getEmValue = v, 17723 t.addEventListener ? t.addEventListener("resize", e, !1) : t.attachEvent && t.attachEvent("onresize", e) 17724 } 17725}(this), 17726/*! 17727 * typeahead.js 0.11.1 17728 * https://github.com/twitter/typeahead.js 17729 * Copyright 2013-2015 Twitter, Inc. and other contributors; Licensed MIT 17730 */ 17731function(t, e) { 17732 "function" == typeof define && define.amd ? define("bloodhound", ["jquery"], function(n) { 17733 return t.Bloodhound = e(n) 17734 }) : "object" == typeof exports ? module.exports = e(require("jquery")) : t.Bloodhound = e(jQuery) 17735}(this, function(t) { 17736 var e = function() { 17737 "use strict"; 17738 return { 17739 isMsie: function() { 17740 return !!/(msie|trident)/i.test(navigator.userAgent) && navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2] 17741 }, 17742 isBlankString: function(t) { 17743 return !t || /^\s*$/.test(t) 17744 }, 17745 escapeRegExChars: function(t) { 17746 return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&") 17747 }, 17748 isString: function(t) { 17749 return "string" == typeof t 17750 }, 17751 isNumber: function(t) { 17752 return "number" == typeof t 17753 }, 17754 isArray: t.isArray, 17755 isFunction: t.isFunction, 17756 isObject: t.isPlainObject, 17757 isUndefined: function(t) { 17758 return void 0 === t 17759 }, 17760 isElement: function(t) { 17761 return !(!t || 1 !== t.nodeType) 17762 }, 17763 isJQuery: function(e) { 17764 return e instanceof t 17765 }, 17766 toStr: function(t) { 17767 return e.isUndefined(t) || null === t ? "" : t + "" 17768 }, 17769 bind: t.proxy, 17770 each: function(e, n) { 17771 t.each(e, r); 17772 function r(t, e) { 17773 return n(e, t) 17774 } 17775 }, 17776 map: t.map, 17777 filter: t.grep, 17778 every: function(e, n) { 17779 var r = !0; 17780 return e ? (t.each(e, function(t, i) { 17781 if (!(r = n.call(null, i, t, e))) 17782 return !1 17783 }), 17784 !!r) : r 17785 }, 17786 some: function(e, n) { 17787 var r = !1; 17788 return e ? (t.each(e, function(t, i) { 17789 if (r = n.call(null, i, t, e)) 17790 return !1 17791 }), 17792 !!r) : r 17793 }, 17794 mixin: t.extend, 17795 identity: function(t) { 17796 return t 17797 }, 17798 clone: function(e) { 17799 return t.extend(!0, {}, e) 17800 }, 17801 getIdGenerator: function() { 17802 var t = 0; 17803 return function() { 17804 return t++ 17805 } 17806 }, 17807 templatify: function(e) { 17808 return t.isFunction(e) ? e : n; 17809 function n() { 17810 return String(e) 17811 } 17812 }, 17813 defer: function(t) { 17814 setTimeout(t, 0) 17815 }, 17816 debounce: function(t, e, n) { 17817 var r, i; 17818 return function() { 17819 var o, a, s = this, u = arguments; 17820 return o = function() { 17821 r = null, 17822 n || (i = t.apply(s, u)) 17823 } 17824 , 17825 a = n && !r, 17826 clearTimeout(r), 17827 r = setTimeout(o, e), 17828 a && (i = t.apply(s, u)), 17829 i 17830 } 17831 }, 17832 throttle: function(t, e) { 17833 var n, r, i, o, a, s; 17834 return a = 0, 17835 s = function() { 17836 a = new Date, 17837 i = null, 17838 o = t.apply(n, r) 17839 } 17840 , 17841 function() { 17842 var u = new Date 17843 , l = e - (u - a); 17844 return n = this, 17845 r = arguments, 17846 l <= 0 ? (clearTimeout(i), 17847 i = null, 17848 a = u, 17849 o = t.apply(n, r)) : i || (i = setTimeout(s, l)), 17850 o 17851 } 17852 },
vendor: 5,789 bytes, lines 17853-18037
17853 stringify: function(t) { 17854 return e.isString(t) ? t : JSON.stringify(t) 17855 }, 17856 noop: function() {} 17857 } 17858 }() 17859 , n = "0.11.1" 17860 , r = function() { 17861 "use strict"; 17862 return { 17863 nonword: n, 17864 whitespace: t, 17865 obj: { 17866 nonword: r(n), 17867 whitespace: r(t) 17868 } 17869 }; 17870 function t(t) { 17871 return t = e.toStr(t), 17872 t ? t.split(/\s+/) : [] 17873 } 17874 function n(t) { 17875 return t = e.toStr(t), 17876 t ? t.split(/\W+/) : [] 17877 } 17878 function r(t) { 17879 return function(n) { 17880 return n = e.isArray(n) ? n : [].slice.call(arguments, 0), 17881 function(r) { 17882 var i = []; 17883 return e.each(n, function(n) { 17884 i = i.concat(t(e.toStr(r[n]))) 17885 }), 17886 i 17887 } 17888 } 17889 } 17890 }() 17891 , i = function() { 17892 "use strict"; 17893 function n(n) { 17894 this.maxSize = e.isNumber(n) ? n : 100, 17895 this.reset(), 17896 this.maxSize <= 0 && (this.set = this.get = t.noop) 17897 } 17898 e.mixin(n.prototype, { 17899 set: function(t, e) { 17900 var n, r = this.list.tail; 17901 this.size >= this.maxSize && (this.list.remove(r), 17902 delete this.hash[r.key], 17903 this.size--), 17904 (n = this.hash[t]) ? (n.val = e, 17905 this.list.moveToFront(n)) : (n = new i(t,e), 17906 this.list.add(n), 17907 this.hash[t] = n, 17908 this.size++) 17909 }, 17910 get: function(t) { 17911 var e = this.hash[t]; 17912 if (e) 17913 return this.list.moveToFront(e), 17914 e.val 17915 }, 17916 reset: function() { 17917 this.size = 0, 17918 this.hash = {}, 17919 this.list = new r 17920 } 17921 }); 17922 function r() { 17923 this.head = this.tail = null 17924 } 17925 e.mixin(r.prototype, { 17926 add: function(t) { 17927 this.head && (t.next = this.head, 17928 this.head.prev = t), 17929 this.head = t, 17930 this.tail = this.tail || t 17931 }, 17932 remove: function(t) { 17933 t.prev ? t.prev.next = t.next : this.head = t.next, 17934 t.next ? t.next.prev = t.prev : this.tail = t.prev 17935 }, 17936 moveToFront: function(t) { 17937 this.remove(t), 17938 this.add(t) 17939 } 17940 }); 17941 function i(t, e) { 17942 this.key = t, 17943 this.val = e, 17944 this.prev = this.next = null 17945 } 17946 return n 17947 }() 17948 , o = function() { 17949 "use strict"; 17950 var n; 17951 try { 17952 n = window.localStorage, 17953 n.setItem("~~~", "!"), 17954 n.removeItem("~~~") 17955 } catch (t) { 17956 n = null 17957 } 17958 function r(t, r) { 17959 this.prefix = ["__", t, "__"].join(""), 17960 this.ttlKey = "__ttl__", 17961 this.keyMatcher = new RegExp("^" + e.escapeRegExChars(this.prefix)), 17962 this.ls = r || n, 17963 !this.ls && this._noop() 17964 } 17965 return e.mixin(r.prototype, { 17966 _prefix: function(t) { 17967 return this.prefix + t 17968 }, 17969 _ttlKey: function(t) { 17970 return this._prefix(t) + this.ttlKey 17971 }, 17972 _noop: function() { 17973 this.get = this.set = this.remove = this.clear = this.isExpired = e.noop 17974 }, 17975 _safeSet: function(t, e) { 17976 try { 17977 this.ls.setItem(t, e) 17978 } catch (t) { 17979 "QuotaExceededError" === t.name && (this.clear(), 17980 this._noop()) 17981 } 17982 }, 17983 get: function(t) { 17984 return this.isExpired(t) && this.remove(t), 17985 a(this.ls.getItem(this._prefix(t))) 17986 }, 17987 set: function(t, n, r) { 17988 return e.isNumber(r) ? this._safeSet(this._ttlKey(t), o(i() + r)) : this.ls.removeItem(this._ttlKey(t)), 17989 this._safeSet(this._prefix(t), o(n)) 17990 }, 17991 remove: function(t) { 17992 return this.ls.removeItem(this._ttlKey(t)), 17993 this.ls.removeItem(this._prefix(t)), 17994 this 17995 }, 17996 clear: function() { 17997 var t, e = s(this.keyMatcher); 17998 for (t = e.length; t--; ) 17999 this.remove(e[t]); 18000 return this 18001 }, 18002 isExpired: function(t) { 18003 var n = a(this.ls.getItem(this._ttlKey(t))); 18004 return !!(e.isNumber(n) && i() > n) 18005 } 18006 }), 18007 r; 18008 function i() { 18009 return (new Date).getTime() 18010 } 18011 function o(t) { 18012 return JSON.stringify(e.isUndefined(t) ? null : t) 18013 } 18014 function a(e) { 18015 return t.parseJSON(e) 18016 } 18017 function s(t) { 18018 var e, r, i = [], o = n.length; 18019 for (e = 0; e < o; e++) 18020 (r = n.key(e)).match(t) && i.push(r.replace(t, "")); 18021 return i 18022 } 18023 }() 18024 , a = function() { 18025 "use strict"; 18026 var n = 0 18027 , r = {} 18028 , o = 6 18029 , a = new i(10); 18030 function s(t) { 18031 t = t || {}, 18032 this.cancelled = !1, 18033 this.lastReq = null, 18034 this._send = t.transport, 18035 this._get = t.limiter ? t.limiter(this._get) : this._get, 18036 this._cache = !1 === t.cache ? new i(0) : a 18037 }
18038 return s.setMaxPendingRequests = function(t) { 18039 o = t 18040 } 18041 , 18042 s.resetCache = function() { 18043 a.reset() 18044 } 18045 , 18046 e.mixin(s.prototype, { 18047 _fingerprint: function(e) { 18048 return e = e || {}, 18049 e.url + e.type + t.param(e.data || {}) 18050 }, 18051 _get: function(t, e) { 18052 var i, a, s = this; 18053 i = this._fingerprint(t); 18054 function u(t) { 18055 e(null, t), 18056 s._cache.set(i, t) 18057 } 18058 function l() { 18059 e(!0) 18060 } 18061 function c() { 18062 n--, 18063 delete r[i], 18064 s.onDeckRequestArgs && (s._get.apply(s, s.onDeckRequestArgs), 18065 s.onDeckRequestArgs = null) 18066 } 18067 this.cancelled || i !== this.lastReq || ((a = r[i]) ? a.done(u).fail(l) : n < o ? (n++, 18068 r[i] = this._send(t).done(u).fail(l).always(c)) : this.onDeckRequestArgs = [].slice.call(arguments, 0)) 18069 }, 18070 get: function(n, r) { 18071 var i, o; 18072 r = r || t.noop, 18073 n = e.isString(n) ? { 18074 url: n 18075 } : n || {}, 18076 o = this._fingerprint(n), 18077 this.cancelled = !1, 18078 this.lastReq = o, 18079 (i = this._cache.get(o)) ? r(null, i) : this._get(n, r) 18080 }, 18081 cancel: function() { 18082 this.cancelled = !0 18083 } 18084 }), 18085 s 18086 }() 18087 , s = window.SearchIndex = function() { 18088 "use strict"; 18089 var n = "c" 18090 , r = "i"; 18091 function i(n) { 18092 n = n || {}, 18093 n.datumTokenizer && n.queryTokenizer || t.error("datumTokenizer and queryTokenizer are both required"), 18094 this.identify = n.identify || e.stringify, 18095 this.datumTokenizer = n.datumTokenizer, 18096 this.queryTokenizer = n.queryTokenizer, 18097 this.reset() 18098 } 18099 return e.mixin(i.prototype, { 18100 bootstrap: function(t) { 18101 this.datums = t.datums, 18102 this.trie = t.trie 18103 }, 18104 add: function(t) { 18105 var i = this; 18106 t = e.isArray(t) ? t : [t], 18107 e.each(t, function(t) { 18108 var s, u; 18109 i.datums[s = i.identify(t)] = t, 18110 u = o(i.datumTokenizer(t)), 18111 e.each(u, function(t) { 18112 var e, o, u; 18113 for (e = i.trie, 18114 o = t.split(""); u = o.shift(); ) 18115 e = e[n][u] || (e[n][u] = a()), 18116 e[r].push(s) 18117 }) 18118 }) 18119 }, 18120 get: function(t) { 18121 var n = this; 18122 return e.map(t, function(t) { 18123 return n.datums[t] 18124 }) 18125 }, 18126 search: function(t) { 18127 var i, a, l = this; 18128 return i = o(this.queryTokenizer(t)), 18129 e.each(i, function(t) { 18130 var e, i, o, s; 18131 if (a && 0 === a.length) 18132 return !1; 18133 for (e = l.trie, 18134 i = t.split(""); e && (o = i.shift()); ) 18135 e = e[n][o]; 18136 if (!e || 0 !== i.length) 18137 return a = [], 18138 !1; 18139 s = e[r].slice(0), 18140 a = a ? u(a, s) : s 18141 }), 18142 a ? e.map(s(a), function(t) { 18143 return l.datums[t] 18144 }) : [] 18145 }, 18146 all: function() { 18147 var t = []; 18148 for (var e in this.datums) 18149 t.push(this.datums[e]); 18150 return t 18151 }, 18152 reset: function() { 18153 this.datums = {}, 18154 this.trie = a() 18155 }, 18156 serialize: function() { 18157 return { 18158 datums: this.datums, 18159 trie: this.trie 18160 } 18161 } 18162 }), 18163 i; 18164 function o(t) { 18165 return t = e.filter(t, function(t) { 18166 return !!t 18167 }), 18168 t = e.map(t, function(t) { 18169 return t.toLowerCase() 18170 }) 18171 } 18172 function a() { 18173 var t = {}; 18174 return t[r] = [], 18175 t[n] = {}, 18176 t 18177 } 18178 function s(t) { 18179 for (var e = {}, n = [], r = 0, i = t.length; r < i; r++) 18180 e[t[r]] || (e[t[r]] = !0, 18181 n.push(t[r])); 18182 return n 18183 } 18184 function u(t, e) { 18185 var n = 0 18186 , r = 0 18187 , i = []; 18188 t = t.sort(), 18189 e = e.sort(); 18190 for (var o = t.length, a = e.length; n < o && r < a; ) 18191 t[n] < e[r] ? n++ : t[n] >
vendor: 5,744 bytes, lines 18191-18367
18191 e[r] ? r++ : (i.push(t[n]), 18192 n++, 18193 r++); 18194 return i 18195 } 18196 }() 18197 , u = function() { 18198 "use strict"; 18199 var t; 18200 t = { 18201 data: "data", 18202 protocol: "protocol", 18203 thumbprint: "thumbprint" 18204 }; 18205 function n(t) { 18206 this.url = t.url, 18207 this.ttl = t.ttl, 18208 this.cache = t.cache, 18209 this.prepare = t.prepare, 18210 this.transform = t.transform, 18211 this.transport = t.transport, 18212 this.thumbprint = t.thumbprint, 18213 this.storage = new o(t.cacheKey) 18214 } 18215 return e.mixin(n.prototype, { 18216 _settings: function() { 18217 return { 18218 url: this.url, 18219 type: "GET", 18220 dataType: "json" 18221 } 18222 }, 18223 store: function(e) { 18224 this.cache && (this.storage.set(t.data, e, this.ttl), 18225 this.storage.set(t.protocol, location.protocol, this.ttl), 18226 this.storage.set(t.thumbprint, this.thumbprint, this.ttl)) 18227 }, 18228 fromCache: function() { 18229 var e, n = {}; 18230 return this.cache ? (n.data = this.storage.get(t.data), 18231 n.protocol = this.storage.get(t.protocol), 18232 n.thumbprint = this.storage.get(t.thumbprint), 18233 e = n.thumbprint !== this.thumbprint || n.protocol !== location.protocol, 18234 n.data && !e ? n.data : null) : null 18235 }, 18236 fromNetwork: function(t) { 18237 var e, n = this; 18238 function r() { 18239 t(!0) 18240 } 18241 function i(e) { 18242 t(null, n.transform(e)) 18243 } 18244 t && (e = this.prepare(this._settings()), 18245 this.transport(e).fail(r).done(i)) 18246 }, 18247 clear: function() { 18248 return this.storage.clear(), 18249 this 18250 } 18251 }), 18252 n 18253 }() 18254 , l = function() { 18255 "use strict"; 18256 function t(t) { 18257 this.url = t.url, 18258 this.prepare = t.prepare, 18259 this.transform = t.transform, 18260 this.transport = new a({ 18261 cache: t.cache, 18262 limiter: t.limiter, 18263 transport: t.transport 18264 }) 18265 } 18266 return e.mixin(t.prototype, { 18267 _settings: function() { 18268 return { 18269 url: this.url, 18270 type: "GET", 18271 dataType: "json" 18272 } 18273 }, 18274 get: function(t, e) { 18275 var n, r = this; 18276 function i(t, n) { 18277 e(t ? [] : r.transform(n)) 18278 } 18279 if (e) 18280 return t = t || "", 18281 n = this.prepare(t, this._settings()), 18282 this.transport.get(n, i) 18283 }, 18284 cancelLastRequest: function() { 18285 this.transport.cancel() 18286 } 18287 }), 18288 t 18289 }() 18290 , c = function() { 18291 "use strict"; 18292 return function(n) { 18293 var o, a; 18294 return o = { 18295 initialize: !0, 18296 identify: e.stringify, 18297 datumTokenizer: null, 18298 queryTokenizer: null, 18299 sufficient: 5, 18300 sorter: null, 18301 local: [], 18302 prefetch: null, 18303 remote: null 18304 }, 18305 n = e.mixin(o, n || {}), 18306 !n.datumTokenizer && t.error("datumTokenizer is required"), 18307 !n.queryTokenizer && t.error("queryTokenizer is required"), 18308 a = n.sorter, 18309 n.sorter = a ? function(t) { 18310 return t.sort(a) 18311 } 18312 : e.identity, 18313 n.local = e.isFunction(n.local) ? n.local() : n.local, 18314 n.prefetch = r(n.prefetch), 18315 n.remote = i(n.remote), 18316 n 18317 } 18318 ; 18319 function r(r) { 18320 var i; 18321 return r ? (i = { 18322 url: null, 18323 ttl: 864e5, 18324 cache: !0, 18325 cacheKey: null, 18326 thumbprint: "", 18327 prepare: e.identity, 18328 transform: e.identity, 18329 transport: null 18330 }, 18331 r = e.isString(r) ? { 18332 url: r 18333 } : r, 18334 r = e.mixin(i, r), 18335 !r.url && t.error("prefetch requires url to be set"), 18336 r.transform = r.filter || r.transform, 18337 r.cacheKey = r.cacheKey || r.url, 18338 r.thumbprint = n + r.thumbprint, 18339 r.transport = r.transport ? s(r.transport) : t.ajax, 18340 r) : null 18341 } 18342 function i(n) { 18343 var r; 18344 if (n) 18345 return r = { 18346 url: null, 18347 cache: !0, 18348 prepare: null, 18349 replace: null, 18350 wildcard: null, 18351 limiter: null, 18352 rateLimitBy: "debounce", 18353 rateLimitWait: 300, 18354 transform: e.identity, 18355 transport: null 18356 }, 18357 n = e.isString(n) ? { 18358 url: n 18359 } : n, 18360 n = e.mixin(r, n), 18361 !n.url && t.error("remote requires url to be set"), 18362 n.transform = n.filter || n.transform, 18363 n.prepare = o(n), 18364 n.limiter = a(n), 18365 n.transport = n.transport ? s(n.transport) : t.ajax, 18366 delete n.replace, 18367 delete n.wildcard,
18368 delete n.rateLimitBy, 18369 delete n.rateLimitWait, 18370 n 18371 } 18372 function o(t) { 18373 var e, n, r; 18374 return e = t.prepare, 18375 n = t.replace, 18376 r = t.wildcard, 18377 e || (e = n ? i : t.wildcard ? o : a); 18378 function i(t, e) { 18379 return e.url = n(e.url, t), 18380 e 18381 } 18382 function o(t, e) { 18383 return e.url = e.url.replace(r, encodeURIComponent(t)), 18384 e 18385 } 18386 function a(t, e) { 18387 return e 18388 } 18389 } 18390 function a(t) { 18391 var n, r, i; 18392 return n = t.limiter, 18393 r = t.rateLimitBy, 18394 i = t.rateLimitWait, 18395 n || (n = /^throttle$/i.test(r) ? function(t) { 18396 return function n(r) { 18397 return e.throttle(r, t) 18398 } 18399 }(i) : function(t) { 18400 return function n(r) { 18401 return e.debounce(r, t) 18402 } 18403 }(i)), 18404 n 18405 } 18406 function s(n) { 18407 return function(r) { 18408 var i = t.Deferred(); 18409 return n(r, o, a), 18410 i; 18411 function o(t) { 18412 e.defer(function() { 18413 i.resolve(t) 18414 }) 18415 } 18416 function a(t) { 18417 e.defer(function() { 18418 i.reject(t) 18419 }) 18420 } 18421 } 18422 } 18423 }(); 18424 return function() { 18425 "use strict"; 18426 var n; 18427 n = window && window.Bloodhound; 18428 function i(t) { 18429 t = c(t), 18430 this.sorter = t.sorter, 18431 this.identify = t.identify, 18432 this.sufficient = t.sufficient, 18433 this.local = t.local, 18434 this.remote = t.remote ? new l(t.remote) : null, 18435 this.prefetch = t.prefetch ? new u(t.prefetch) : null, 18436 this.index = new s({ 18437 identify: this.identify, 18438 datumTokenizer: t.datumTokenizer, 18439 queryTokenizer: t.queryTokenizer 18440 }), 18441 !1 !== t.initialize && this.initialize() 18442 } 18443 return i.noConflict = function() { 18444 return window && (window.Bloodhound = n), 18445 i 18446 } 18447 , 18448 i.tokenizers = r, 18449 e.mixin(i.prototype, {
18450 __ttAdapter: function() { 18451 var t = this; 18452 return this.remote ? e : n; 18453 function e(e, n, r) { 18454 return t.search(e, n, r) 18455 } 18456 function n(e, n) { 18457 return t.search(e, n) 18458 } 18459 }, 18460 _loadPrefetch: function() { 18461 var e, n, r = this; 18462 return e = t.Deferred(), 18463 this.prefetch ? (n = this.prefetch.fromCache()) ? (this.index.bootstrap(n), 18464 e.resolve()) : this.prefetch.fromNetwork(i) : e.resolve(), 18465 e.promise(); 18466 function i(t, n) { 18467 if (t) 18468 return e.reject(); 18469 r.add(n), 18470 r.prefetch.store(r.index.serialize()), 18471 e.resolve() 18472 } 18473 }, 18474 _initialize: function() { 18475 var t = this; 18476 return this.clear(), 18477 (this.initPromise = this._loadPrefetch()).done(e), 18478 this.initPromise; 18479 function e() { 18480 t.add(t.local) 18481 } 18482 }, 18483 initialize: function(t) { 18484 return !this.initPromise || t ? this._initialize() : this.initPromise 18485 }, 18486 add: function(t) { 18487 return this.index.add(t), 18488 this 18489 }, 18490 get: function(t) { 18491 return t = e.isArray(t) ? t : [].slice.call(arguments), 18492 this.index.get(t) 18493 }, 18494 search: function(t, n, r) { 18495 var i, o = this; 18496 return i = this.sorter(this.index.search(t)), 18497 n(this.remote ? i.slice() : i), 18498 this.remote && i.length < this.sufficient ? this.remote.get(t, a) : this.remote && this.remote.cancelLastRequest(), 18499 this; 18500 function a(t) { 18501 var n = []; 18502 e.each(t, function(t) { 18503 !e.some(i, function(e) { 18504 return o.identify(t) === o.identify(e) 18505 }) && n.push(t) 18506 }), 18507 r && r(n) 18508 } 18509 }, 18510 all: function() { 18511 return this.index.all() 18512 }, 18513 clear: function() { 18514 return this.index.reset(), 18515 this 18516 }, 18517 clearPrefetchCache: function() { 18518 return this.prefetch && this.prefetch.clear(), 18519 this 18520 }, 18521 clearRemoteCache: function() { 18522 return a.resetCache(), 18523 this 18524 },
vendor: 4,181 bytes, lines 18525-18653
18525 ttAdapter: function() { 18526 return this.__ttAdapter() 18527 } 18528 }), 18529 i 18530 }() 18531}), 18532function(t, e) { 18533 "function" == typeof define && define.amd ? define("typeahead.js", ["jquery"], function(t) { 18534 return e(t) 18535 }) : "object" == typeof exports ? module.exports = e(require("jquery")) : e(jQuery) 18536}(0, function(t) { 18537 var e = function() { 18538 "use strict"; 18539 return { 18540 isMsie: function() { 18541 return !!/(msie|trident)/i.test(navigator.userAgent) && navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2] 18542 }, 18543 isBlankString: function(t) { 18544 return !t || /^\s*$/.test(t) 18545 }, 18546 escapeRegExChars: function(t) { 18547 return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&") 18548 }, 18549 isString: function(t) { 18550 return "string" == typeof t 18551 }, 18552 isNumber: function(t) { 18553 return "number" == typeof t 18554 }, 18555 isArray: t.isArray, 18556 isFunction: t.isFunction, 18557 isObject: t.isPlainObject, 18558 isUndefined: function(t) { 18559 return void 0 === t 18560 }, 18561 isElement: function(t) { 18562 return !(!t || 1 !== t.nodeType) 18563 }, 18564 isJQuery: function(e) { 18565 return e instanceof t 18566 }, 18567 toStr: function(t) { 18568 return e.isUndefined(t) || null === t ? "" : t + "" 18569 }, 18570 bind: t.proxy, 18571 each: function(e, n) { 18572 t.each(e, r); 18573 function r(t, e) { 18574 return n(e, t) 18575 } 18576 }, 18577 map: t.map, 18578 filter: t.grep, 18579 every: function(e, n) { 18580 var r = !0; 18581 return e ? (t.each(e, function(t, i) { 18582 if (!(r = n.call(null, i, t, e))) 18583 return !1 18584 }), 18585 !!r) : r 18586 }, 18587 some: function(e, n) { 18588 var r = !1; 18589 return e ? (t.each(e, function(t, i) { 18590 if (r = n.call(null, i, t, e)) 18591 return !1 18592 }), 18593 !!r) : r 18594 }, 18595 mixin: t.extend, 18596 identity: function(t) { 18597 return t 18598 }, 18599 clone: function(e) { 18600 return t.extend(!0, {}, e) 18601 }, 18602 getIdGenerator: function() { 18603 var t = 0; 18604 return function() { 18605 return t++ 18606 } 18607 }, 18608 templatify: function(e) { 18609 return t.isFunction(e) ? e : n; 18610 function n() { 18611 return String(e) 18612 } 18613 }, 18614 defer: function(t) { 18615 setTimeout(t, 0) 18616 }, 18617 debounce: function(t, e, n) { 18618 var r, i; 18619 return function() { 18620 var o, a, s = this, u = arguments; 18621 return o = function() { 18622 r = null, 18623 n || (i = t.apply(s, u)) 18624 } 18625 , 18626 a = n && !r, 18627 clearTimeout(r), 18628 r = setTimeout(o, e), 18629 a && (i = t.apply(s, u)), 18630 i 18631 } 18632 }, 18633 throttle: function(t, e) { 18634 var n, r, i, o, a, s; 18635 return a = 0, 18636 s = function() { 18637 a = new Date, 18638 i = null, 18639 o = t.apply(n, r) 18640 } 18641 , 18642 function() { 18643 var u = new Date 18644 , l = e - (u - a); 18645 return n = this, 18646 r = arguments, 18647 l <= 0 ? (clearTimeout(i), 18648 i = null, 18649 a = u, 18650 o = t.apply(n, r)) : i || (i = setTimeout(s, l)), 18651 o 18652 } 18653 },
vendor: 17,182 bytes, lines 18654-19144
18654 stringify: function(t) { 18655 return e.isString(t) ? t : JSON.stringify(t) 18656 }, 18657 noop: function() {} 18658 } 18659 }() 18660 , n = function() { 18661 "use strict"; 18662 var t = { 18663 wrapper: "twitter-typeahead", 18664 input: "tt-input", 18665 hint: "tt-hint", 18666 menu: "tt-menu", 18667 dataset: "tt-dataset", 18668 suggestion: "tt-suggestion", 18669 selectable: "tt-selectable", 18670 empty: "tt-empty", 18671 open: "tt-open", 18672 cursor: "tt-cursor", 18673 highlight: "tt-highlight" 18674 }; 18675 return n; 18676 function n(n) { 18677 var a, s; 18678 return s = e.mixin({}, t, n), 18679 a = { 18680 css: o(), 18681 classes: s, 18682 html: r(s), 18683 selectors: i(s) 18684 }, 18685 { 18686 css: a.css, 18687 html: a.html, 18688 classes: a.classes, 18689 selectors: a.selectors, 18690 mixin: function(t) { 18691 e.mixin(t, a) 18692 } 18693 } 18694 } 18695 function r(t) { 18696 return { 18697 wrapper: '<span class="' + t.wrapper + '"></span>', 18698 menu: '<div class="' + t.menu + '"></div>' 18699 } 18700 } 18701 function i(t) { 18702 var n = {}; 18703 return e.each(t, function(t, e) { 18704 n[e] = "." + t 18705 }), 18706 n 18707 } 18708 function o() { 18709 var t = { 18710 wrapper: { 18711 position: "relative", 18712 display: "inline-block" 18713 }, 18714 hint: { 18715 position: "absolute", 18716 top: "0", 18717 left: "0", 18718 borderColor: "transparent", 18719 boxShadow: "none", 18720 opacity: "1" 18721 }, 18722 input: { 18723 position: "relative", 18724 verticalAlign: "top", 18725 backgroundColor: "transparent" 18726 }, 18727 inputWithNoHint: { 18728 position: "relative", 18729 verticalAlign: "top" 18730 }, 18731 menu: { 18732 position: "absolute", 18733 top: "100%", 18734 left: "0", 18735 zIndex: "100", 18736 display: "none" 18737 }, 18738 ltr: { 18739 left: "0", 18740 right: "auto" 18741 }, 18742 rtl: { 18743 left: "auto", 18744 right: " 0" 18745 } 18746 }; 18747 return e.isMsie() && e.mixin(t.input, { 18748 backgroundImage: "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)" 18749 }), 18750 t 18751 } 18752 }() 18753 , r = function() { 18754 "use strict"; 18755 var n, r; 18756 n = "typeahead:", 18757 r = { 18758 render: "rendered", 18759 cursorchange: "cursorchanged", 18760 select: "selected", 18761 autocomplete: "autocompleted" 18762 }; 18763 function i(e) { 18764 e && e.el || t.error("EventBus initialized without el"), 18765 this.$el = t(e.el) 18766 } 18767 return e.mixin(i.prototype, { 18768 _trigger: function(e, r) { 18769 var i; 18770 return i = t.Event(n + e), 18771 (r = r || []).unshift(i), 18772 this.$el.trigger.apply(this.$el, r), 18773 i 18774 }, 18775 before: function(t) { 18776 var e, n; 18777 return e = [].slice.call(arguments, 1), 18778 n = this._trigger("before" + t, e), 18779 n.isDefaultPrevented() 18780 }, 18781 trigger: function(t) { 18782 var e; 18783 this._trigger(t, [].slice.call(arguments, 1)), 18784 (e = r[t]) && this._trigger(e, [].slice.call(arguments, 1)) 18785 } 18786 }), 18787 i 18788 }() 18789 , i = function() { 18790 "use strict"; 18791 var t = /\s+/ 18792 , e = function() { 18793 var t; 18794 if (window.setImmediate) { 18795 t = function t(e) { 18796 setImmediate(function() { 18797 e() 18798 }) 18799 } 18800 } else { 18801 t = function t(e) { 18802 setTimeout(function() { 18803 e() 18804 }, 0) 18805 } 18806 } 18807 return t 18808 }(); 18809 return { 18810 onSync: i, 18811 onAsync: r, 18812 off: o, 18813 trigger: a 18814 }; 18815 function n(e, n, r, i) { 18816 var o; 18817 if (!r) 18818 return this; 18819 for (n = n.split(t), 18820 r = i ? u(r, i) : r, 18821 this._callbacks = this._callbacks || {}; o = n.shift(); ) 18822 this._callbacks[o] = this._callbacks[o] || { 18823 sync: [], 18824 async: [] 18825 }, 18826 this._callbacks[o][e].push(r); 18827 return this 18828 } 18829 function r(t, e, r) { 18830 return n.call(this, "async", t, e, r) 18831 } 18832 function i(t, e, r) { 18833 return n.call(this, "sync", t, e, r) 18834 } 18835 function o(e) { 18836 var n; 18837 if (!this._callbacks) 18838 return this; 18839 for (e = e.split(t); n = e.shift(); ) 18840 delete this._callbacks[n]; 18841 return this 18842 } 18843 function a(n) { 18844 var r, i, o, a, u; 18845 if (!this._callbacks) 18846 return this; 18847 for (n = n.split(t), 18848 o = [].slice.call(arguments, 1); (r = n.shift()) && (i = this._callbacks[r]); ) 18849 a = s(i.sync, this, [r].concat(o)), 18850 u = s(i.async, this, [r].concat(o)), 18851 a() && e(u); 18852 return this 18853 } 18854 function s(t, e, n) { 18855 return r; 18856 function r() { 18857 for (var r, i = 0, o = t.length; !r && i < o; i += 1) 18858 r = !1 === t[i].apply(e, n); 18859 return !r 18860 } 18861 } 18862 function u(t, e) { 18863 return t.bind ? t.bind(e) : function() { 18864 t.apply(e, [].slice.call(arguments, 0)) 18865 } 18866 } 18867 }() 18868 , o = function(t) { 18869 "use strict"; 18870 var n = { 18871 node: null, 18872 pattern: null, 18873 tagName: "strong", 18874 className: null, 18875 wordsOnly: !1, 18876 caseSensitive: !1 18877 }; 18878 return function(i) { 18879 var o; 18880 i = e.mixin({}, n, i); 18881 function a(e) { 18882 var n, r, a; 18883 return (n = o.exec(e.data)) && (a = t.createElement(i.tagName), 18884 i.className && (a.className = i.className), 18885 r = e.splitText(n.index), 18886 r.splitText(n[0].length), 18887 a.appendChild(r.cloneNode(!0)), 18888 e.parentNode.replaceChild(a, r)), 18889 !!n 18890 } 18891 function s(t, e) { 18892 for (var n, r = 0; r < t.childNodes.length; r++) 18893 n = t.childNodes[r], 18894 3 === n.nodeType ? r += e(n) ? 1 : 0 : s(n, e) 18895 } 18896 i.node && i.pattern && (i.pattern = e.isArray(i.pattern) ? i.pattern : [i.pattern], 18897 o = r(i.pattern, i.caseSensitive, i.wordsOnly), 18898 s(i.node, a)) 18899 } 18900 ; 18901 function r(t, n, r) { 18902 for (var i, o = [], a = 0, s = t.length; a < s; a++) 18903 o.push(e.escapeRegExChars(t[a])); 18904 return i = r ? "\\b(" + o.join("|") + ")\\b" : "(" + o.join("|") + ")", 18905 n ? new RegExp(i) : new RegExp(i,"i") 18906 } 18907 }(window.document) 18908 , a = function() { 18909 "use strict"; 18910 var n; 18911 n = { 18912 9: "tab", 18913 27: "esc", 18914 37: "left", 18915 39: "right", 18916 13: "enter", 18917 38: "up", 18918 40: "down" 18919 }; 18920 function r(n, r) { 18921 n = n || {}, 18922 n.input || t.error("input is missing"), 18923 r.mixin(this), 18924 this.$hint = t(n.hint), 18925 this.$input = t(n.input), 18926 this.query = this.$input.val(), 18927 this.queryWhenFocused = this.hasFocus() ? this.query : null, 18928 this.$overflowHelper = o(this.$input), 18929 this._checkLanguageDirection(), 18930 0 === this.$hint.length && (this.setHint = this.getHint = this.clearHint = this.clearHintIfInvalid = e.noop) 18931 } 18932 return r.normalizeQuery = function(t) { 18933 return e.toStr(t).replace(/^\s*/g, "").replace(/\s{2,}/g, " ") 18934 } 18935 , 18936 e.mixin(r.prototype, i, { 18937 _onBlur: function() { 18938 this.resetInputValue(), 18939 this.trigger("blurred") 18940 }, 18941 _onFocus: function() { 18942 this.queryWhenFocused = this.query, 18943 this.trigger("focused") 18944 }, 18945 _onKeydown: function(t) { 18946 var e = n[t.which || t.keyCode]; 18947 this._managePreventDefault(e, t), 18948 e && this._shouldTrigger(e, t) && this.trigger(e + "Keyed", t) 18949 }, 18950 _onInput: function() { 18951 this._setQuery(this.getInputValue()), 18952 this.clearHintIfInvalid(), 18953 this._checkLanguageDirection() 18954 }, 18955 _managePreventDefault: function(t, e) { 18956 var n; 18957 switch (t) { 18958 case "up": 18959 case "down": 18960 n = !s(e); 18961 break; 18962 default: 18963 n = !1 18964 } 18965 n && e.preventDefault() 18966 }, 18967 _shouldTrigger: function(t, e) { 18968 var n; 18969 switch (t) { 18970 case "tab": 18971 n = !s(e); 18972 break; 18973 default: 18974 n = !0 18975 } 18976 return n 18977 }, 18978 _checkLanguageDirection: function() { 18979 var t = (this.$input.css("direction") || "ltr").toLowerCase(); 18980 this.dir !== t && (this.dir = t, 18981 this.$hint.attr("dir", t), 18982 this.trigger("langDirChanged", t)) 18983 }, 18984 _setQuery: function(t, e) { 18985 var n, r; 18986 n = a(t, this.query), 18987 r = !!n && this.query.length !== t.length, 18988 this.query = t, 18989 e || n ? !e && r && this.trigger("whitespaceChanged", this.query) : this.trigger("queryChanged", this.query) 18990 }, 18991 bind: function() { 18992 var t, r, i, o, a = this; 18993 return t = e.bind(this._onBlur, this), 18994 r = e.bind(this._onFocus, this), 18995 i = e.bind(this._onKeydown, this), 18996 o = e.bind(this._onInput, this), 18997 this.$input.on("blur.tt", t).on("focus.tt", r).on("keydown.tt", i), 18998 !e.isMsie() || e.isMsie() > 9 ? this.$input.on("input.tt", o) : this.$input.on("keydown.tt keypress.tt cut.tt paste.tt", function(t) { 18999 n[t.which || t.keyCode] || e.defer(e.bind(a._onInput, a, t)) 19000 }), 19001 this 19002 }, 19003 focus: function() { 19004 this.$input.focus() 19005 }, 19006 blur: function() { 19007 this.$input.blur() 19008 }, 19009 getLangDir: function() { 19010 return this.dir 19011 }, 19012 getQuery: function() { 19013 return this.query || "" 19014 }, 19015 setQuery: function(t, e) { 19016 this.setInputValue(t), 19017 this._setQuery(t, e) 19018 }, 19019 hasQueryChangedSinceLastFocus: function() { 19020 return this.query !== this.queryWhenFocused 19021 }, 19022 getInputValue: function() { 19023 return this.$input.val() 19024 }, 19025 setInputValue: function(t) { 19026 this.$input.val(t), 19027 this.clearHintIfInvalid(), 19028 this._checkLanguageDirection() 19029 }, 19030 resetInputValue: function() { 19031 this.setInputValue(this.query) 19032 }, 19033 getHint: function() { 19034 return this.$hint.val() 19035 }, 19036 setHint: function(t) { 19037 this.$hint.val(t) 19038 }, 19039 clearHint: function() { 19040 this.setHint("") 19041 }, 19042 clearHintIfInvalid: function() { 19043 var t, e, n, r; 19044 t = this.getInputValue(), 19045 e = this.getHint(), 19046 n = t !== e && 0 === e.indexOf(t), 19047 !(r = "" !== t && n && !this.hasOverflow()) && this.clearHint() 19048 }, 19049 hasFocus: function() { 19050 return this.$input.is(":focus") 19051 }, 19052 hasOverflow: function() { 19053 var t = this.$input.width() - 2; 19054 return this.$overflowHelper.text(this.getInputValue()), 19055 this.$overflowHelper.width() >= t 19056 }, 19057 isCursorAtEnd: function() { 19058 var t, n, r; 19059 return t = this.$input.val().length, 19060 n = this.$input[0].selectionStart, 19061 e.isNumber(n) ? n === t : !document.selection || (r = document.selection.createRange(), 19062 r.moveStart("character", -t), 19063 t === r.text.length) 19064 }, 19065 destroy: function() { 19066 this.$hint.off(".tt"), 19067 this.$input.off(".tt"), 19068 this.$overflowHelper.remove(), 19069 this.$hint = this.$input = this.$overflowHelper = t("<div>") 19070 } 19071 }), 19072 r; 19073 function o(e) { 19074 return t('<pre aria-hidden="true"></pre>').css({ 19075 position: "absolute", 19076 visibility: "hidden", 19077 whiteSpace: "pre", 19078 fontFamily: e.css("font-family"), 19079 fontSize: e.css("font-size"), 19080 fontStyle: e.css("font-style"), 19081 fontVariant: e.css("font-variant"), 19082 fontWeight: e.css("font-weight"), 19083 wordSpacing: e.css("word-spacing"), 19084 letterSpacing: e.css("letter-spacing"), 19085 textIndent: e.css("text-indent"), 19086 textRendering: e.css("text-rendering"), 19087 textTransform: e.css("text-transform") 19088 }).insertAfter(e) 19089 } 19090 function a(t, e) { 19091 return r.normalizeQuery(t) === r.normalizeQuery(e) 19092 } 19093 function s(t) { 19094 return t.altKey || t.ctrlKey || t.metaKey || t.shiftKey 19095 } 19096 }() 19097 , s = function() { 19098 "use strict"; 19099 var n, r; 19100 n = { 19101 val: "tt-selectable-display", 19102 obj: "tt-selectable-object" 19103 }, 19104 r = e.getIdGenerator(); 19105 function a(n, i) { 19106 n = n || {}, 19107 n.templates = n.templates || {}, 19108 n.templates.notFound = n.templates.notFound || n.templates.empty, 19109 n.source || t.error("missing source"), 19110 n.node || t.error("missing node"), 19111 n.name && !l(n.name) && t.error("invalid dataset name: " + n.name), 19112 i.mixin(this), 19113 this.highlight = !!n.highlight, 19114 this.name = n.name || r(), 19115 this.limit = n.limit || 5, 19116 this.displayFn = s(n.display || n.displayKey), 19117 this.templates = u(n.templates, this.displayFn), 19118 this.source = n.source.__ttAdapter ? n.source.__ttAdapter() : n.source, 19119 this.async = e.isUndefined(n.async) ? this.source.length > 2 : !!n.async, 19120 this._resetLastSuggestion(), 19121 this.$el = t(n.node).addClass(this.classes.dataset).addClass(this.classes.dataset + "-" + this.name) 19122 } 19123 return a.extractData = function(e) { 19124 var r = t(e); 19125 return r.data(n.obj) ? { 19126 val: r.data(n.val) || "", 19127 obj: r.data(n.obj) || null 19128 } : null 19129 } 19130 , 19131 e.mixin(a.prototype, i, { 19132 _overwrite: function(t, e) { 19133 e = e || [], 19134 e.length ? this._renderSuggestions(t, e) : this.async && this.templates.pending ? this._renderPending(t) : !this.async && this.templates.notFound ? this._renderNotFound(t) : this._empty(), 19135 this.trigger("rendered", this.name, e, !1) 19136 }, 19137 _append: function(t, e) { 19138 e = e || [], 19139 e.length && this.$lastSuggestion.length ? this._appendSuggestions(t, e) : e.length ? this._renderSuggestions(t, e) : !this.$lastSuggestion.length && this.templates.notFound && this._renderNotFound(t), 19140 this.trigger("rendered", this.name, e, !0) 19141 }, 19142 _renderSuggestions: function(t, e) { 19143 var n; 19144 n = this._getSuggestionsFragment(t, e),
19145 this.$lastSuggestion = n.children().last(), 19146 this.$el.html(n).prepend(this._getHeader(t, e)).append(this._getFooter(t, e)) 19147 }, 19148 _appendSuggestions: function(t, e) { 19149 var n, r; 19150 n = this._getSuggestionsFragment(t, e), 19151 r = n.children().last(), 19152 this.$lastSuggestion.after(n), 19153 this.$lastSuggestion = r 19154 }, 19155 _renderPending: function(t) { 19156 var e = this.templates.pending; 19157 this._resetLastSuggestion(), 19158 e && this.$el.html(e({ 19159 query: t, 19160 dataset: this.name 19161 })) 19162 }, 19163 _renderNotFound: function(t) { 19164 var e = this.templates.notFound; 19165 this._resetLastSuggestion(), 19166 e && this.$el.html(e({ 19167 query: t, 19168 dataset: this.name 19169 })) 19170 }, 19171 _empty: function() { 19172 this.$el.empty(), 19173 this._resetLastSuggestion() 19174 }, 19175 _getSuggestionsFragment: function(r, i) { 19176 var a, s = this; 19177 return a = document.createDocumentFragment(), 19178 e.each(i, function(e) { 19179 var i, o; 19180 o = s._injectQuery(r, e), 19181 i = t(s.templates.suggestion(o)).data(n.obj, e).data(n.val, s.displayFn(e)).addClass(s.classes.suggestion + " " + s.classes.selectable), 19182 a.appendChild(i[0]) 19183 }), 19184 this.highlight && o({ 19185 className: this.classes.highlight, 19186 node: a, 19187 pattern: r 19188 }), 19189 t(a) 19190 }, 19191 _getFooter: function(t, e) { 19192 return this.templates.footer ? this.templates.footer({ 19193 query: t, 19194 suggestions: e, 19195 dataset: this.name 19196 }) : null 19197 }, 19198 _getHeader: function(t, e) { 19199 return this.templates.header ? this.templates.header({ 19200 query: t, 19201 suggestions: e, 19202 dataset: this.name 19203 }) : null 19204 }, 19205 _resetLastSuggestion: function() { 19206 this.$lastSuggestion = t() 19207 }, 19208 _injectQuery: function(t, n) { 19209 return e.isObject(n) ? e.mixin({ 19210 _query: t 19211 }, n) : n 19212 }, 19213 update: function(e) { 19214 var n = this 19215 , r = !1 19216 , i = !1 19217 , o = 0; 19218 this.cancel(), 19219 this.cancel = function() { 19220 r = !0, 19221 n.cancel = t.noop, 19222 n.async && n.trigger("asyncCanceled", e) 19223 } 19224 , 19225 this.source(e, a, s), 19226 !i && a([]); 19227 function a(t) { 19228 i || (i = !0, 19229 t = (t || []).slice(0, n.limit), 19230 o = t.length, 19231 n._overwrite(e, t), 19232 o < n.limit && n.async && n.trigger("asyncRequested", e)) 19233 } 19234 function s(i) { 19235 i = i || [], 19236 !r && o < n.limit && (n.cancel = t.noop, 19237 o += i.length, 19238 n._append(e, i.slice(0, n.limit - o)), 19239 n.async && n.trigger("asyncReceived", e)) 19240 } 19241 }, 19242 cancel: t.noop, 19243 clear: function() { 19244 this._empty(), 19245 this.cancel(), 19246 this.trigger("cleared") 19247 }, 19248 isEmpty: function() { 19249 return this.$el.is(":empty") 19250 }, 19251 destroy: function() { 19252 this.$el = t("<div>") 19253 } 19254 }), 19255 a; 19256 function s(t) { 19257 return t = t || e.stringify, 19258 e.isFunction(t) ? t : n; 19259 function n(e) { 19260 return e[t] 19261 } 19262 } 19263 function u(n, r) { 19264 return { 19265 notFound: n.notFound && e.templatify(n.notFound), 19266 pending: n.pending && e.templatify(n.pending), 19267 header: n.header && e.templatify(n.header), 19268 footer: n.footer && e.templatify(n.footer), 19269 suggestion: n.suggestion || i 19270 }; 19271 function i(e) { 19272 return t("<div>").text(r(e)) 19273 } 19274 } 19275 function l(t) { 19276 return /^[_a-zA-Z0-9-]+$/.test(t) 19277 } 19278 }() 19279 , u = function() { 19280 "use strict"; 19281 function n(n, r) { 19282 var i = this; 19283 n = n || {}, 19284 n.node || t.error("node is required"), 19285 r.mixin(this), 19286 this.$node = t(n.node), 19287 this.query = null, 19288 this.datasets = e.map(n.datasets, o); 19289 function o(e) { 19290 var n = i.$node.find(e.node).first();
19291 return e.node = n.length ? n : t("<div>").appendTo(i.$node), 19292 new s(e,r) 19293 } 19294 } 19295 return e.mixin(n.prototype, i, { 19296 _onSelectableClick: function(e) { 19297 this.trigger("selectableClicked", t(e.currentTarget)) 19298 }, 19299 _onRendered: function(t, e, n, r) { 19300 this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()), 19301 this.trigger("datasetRendered", e, n, r) 19302 }, 19303 _onCleared: function() { 19304 this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()), 19305 this.trigger("datasetCleared") 19306 }, 19307 _propagate: function() { 19308 this.trigger.apply(this, arguments) 19309 }, 19310 _allDatasetsEmpty: function() { 19311 return e.every(this.datasets, t); 19312 function t(t) { 19313 return t.isEmpty() 19314 } 19315 }, 19316 _getSelectables: function() { 19317 return this.$node.find(this.selectors.selectable) 19318 }, 19319 _removeCursor: function() { 19320 var t = this.getActiveSelectable(); 19321 t && t.removeClass(this.classes.cursor) 19322 }, 19323 _ensureVisible: function(t) { 19324 var e, n, r, i; 19325 e = t.position().top, 19326 n = e + t.outerHeight(!0), 19327 r = this.$node.scrollTop(), 19328 i = this.$node.height() + parseInt(this.$node.css("paddingTop"), 10) + parseInt(this.$node.css("paddingBottom"), 10), 19329 e < 0 ? this.$node.scrollTop(r + e) : i < n && this.$node.scrollTop(r + (n - i)) 19330 }, 19331 bind: function() { 19332 var t, n = this; 19333 return t = e.bind(this._onSelectableClick, this), 19334 this.$node.on("click.tt", this.selectors.selectable, t), 19335 e.each(this.datasets, function(t) { 19336 t.onSync("asyncRequested", n._propagate, n).onSync("asyncCanceled", n._propagate, n).onSync("asyncReceived", n._propagate, n).onSync("rendered", n._onRendered, n).onSync("cleared", n._onCleared, n) 19337 }), 19338 this 19339 }, 19340 isOpen: function() { 19341 return this.$node.hasClass(this.classes.open) 19342 }, 19343 open: function() { 19344 this.$node.addClass(this.classes.open) 19345 }, 19346 close: function() { 19347 this.$node.removeClass(this.classes.open), 19348 this._removeCursor() 19349 }, 19350 setLanguageDirection: function(t) { 19351 this.$node.attr("dir", t) 19352 }, 19353 selectableRelativeToCursor: function(t) { 19354 var e, n, r, i; 19355 return n = this.getActiveSelectable(), 19356 e = this._getSelectables(), 19357 r = n ? e.index(n) : -1, 19358 i = r + t, 19359 i = (i + 1) % (e.length + 1) - 1, 19360 i = i < -1 ? e.length - 1 : i, 19361 -1 === i ? null : e.eq(i) 19362 }, 19363 setCursor: function(t) { 19364 this._removeCursor(), 19365 (t = t && t.first()) && (t.addClass(this.classes.cursor), 19366 this._ensureVisible(t)) 19367 }, 19368 getSelectableData: function(t) { 19369 return t && t.length ? s.extractData(t) : null 19370 }, 19371 getActiveSelectable: function() { 19372 var t = this._getSelectables().filter(this.selectors.cursor).first(); 19373 return t.length ? t : null 19374 }, 19375 getTopSelectable: function() { 19376 var t = this._getSelectables().first(); 19377 return t.length ? t : null 19378 }, 19379 update: function(t) { 19380 var n = t !== this.query; 19381 return n && (this.query = t, 19382 e.each(this.datasets, r)), 19383 n; 19384 function r(e) { 19385 e.update(t) 19386 } 19387 }, 19388 empty: function() { 19389 e.each(this.datasets, t), 19390 this.query = null, 19391 this.$node.addClass(this.classes.empty); 19392 function t(t) { 19393 t.clear() 19394 } 19395 }, 19396 destroy: function() { 19397 this.$node.off(".tt"), 19398 this.$node = t("<div>"), 19399 e.each(this.datasets, n); 19400 function n(t) { 19401 t.destroy() 19402 } 19403 } 19404 }), 19405 n 19406 }() 19407 , l = function() { 19408 "use strict"; 19409 var t = u.prototype; 19410 function n() { 19411 u.apply(this, [].slice.call(arguments, 0)) 19412 } 19413 return e.mixin(n.prototype, u.prototype, { 19414 open: function() { 19415 return !this._allDatasetsEmpty() && this._show(), 19416 t.open.apply(this, [].slice.call(arguments, 0)) 19417 }, 19418 close: function() { 19419 return this._hide(), 19420 t.close.apply(this, [].slice.call(arguments, 0)) 19421 }, 19422 _onRendered: function() { 19423 return this._allDatasetsEmpty() ? this._hide() : this.isOpen() && this._show(), 19424 t._onRendered.apply(this, [].slice.call(arguments, 0)) 19425 }, 19426 _onCleared: function() { 19427 return this._allDatasetsEmpty() ? this._hide() : this.isOpen() && this._show(), 19428 t._onCleared.apply(this, [].slice.call(arguments, 0)) 19429 }, 19430 setLanguageDirection: function(e) {
vendor: 6,553 bytes, lines 19431-19568
19431 return this.$node.css("ltr" === e ? this.css.ltr : this.css.rtl), 19432 t.setLanguageDirection.apply(this, [].slice.call(arguments, 0)) 19433 }, 19434 _hide: function() { 19435 this.$node.hide() 19436 }, 19437 _show: function() { 19438 this.$node.css("display", "block") 19439 } 19440 }), 19441 n 19442 }() 19443 , c = function() { 19444 "use strict"; 19445 function n(n, i) { 19446 var o, a, s, u, l, c, h, d, f, p, g; 19447 n = n || {}, 19448 n.input || t.error("missing input"), 19449 n.menu || t.error("missing menu"), 19450 n.eventBus || t.error("missing event bus"), 19451 i.mixin(this), 19452 this.eventBus = n.eventBus, 19453 this.minLength = e.isNumber(n.minLength) ? n.minLength : 1, 19454 this.input = n.input, 19455 this.menu = n.menu, 19456 this.enabled = !0, 19457 this.active = !1, 19458 this.input.hasFocus() && this.activate(), 19459 this.dir = this.input.getLangDir(), 19460 this._hacks(), 19461 this.menu.bind().onSync("selectableClicked", this._onSelectableClicked, this).onSync("asyncRequested", this._onAsyncRequested, this).onSync("asyncCanceled", this._onAsyncCanceled, this).onSync("asyncReceived", this._onAsyncReceived, this).onSync("datasetRendered", this._onDatasetRendered, this).onSync("datasetCleared", this._onDatasetCleared, this), 19462 o = r(this, "activate", "open", "_onFocused"), 19463 a = r(this, "deactivate", "_onBlurred"), 19464 s = r(this, "isActive", "isOpen", "_onEnterKeyed"), 19465 u = r(this, "isActive", "isOpen", "_onTabKeyed"), 19466 l = r(this, "isActive", "_onEscKeyed"), 19467 c = r(this, "isActive", "open", "_onUpKeyed"), 19468 h = r(this, "isActive", "open", "_onDownKeyed"), 19469 d = r(this, "isActive", "isOpen", "_onLeftKeyed"), 19470 f = r(this, "isActive", "isOpen", "_onRightKeyed"), 19471 p = r(this, "_openIfActive", "_onQueryChanged"), 19472 g = r(this, "_openIfActive", "_onWhitespaceChanged"), 19473 this.input.bind().onSync("focused", o, this).onSync("blurred", a, this).onSync("enterKeyed", s, this).onSync("tabKeyed", u, this).onSync("escKeyed", l, this).onSync("upKeyed", c, this).onSync("downKeyed", h, this).onSync("leftKeyed", d, this).onSync("rightKeyed", f, this).onSync("queryChanged", p, this).onSync("whitespaceChanged", g, this).onSync("langDirChanged", this._onLangDirChanged, this) 19474 } 19475 return e.mixin(n.prototype, { 19476 _hacks: function() { 19477 var n, r; 19478 n = this.input.$input || t("<div>"), 19479 r = this.menu.$node || t("<div>"), 19480 n.on("blur.tt", function(t) { 19481 var i, o, a; 19482 i = document.activeElement, 19483 o = r.is(i), 19484 a = r.has(i).length > 0, 19485 e.isMsie() && (o || a) && (t.preventDefault(), 19486 t.stopImmediatePropagation(), 19487 e.defer(function() { 19488 n.focus() 19489 })) 19490 }), 19491 r.on("mousedown.tt", function(t) { 19492 t.preventDefault() 19493 }) 19494 }, 19495 _onSelectableClicked: function(t, e) { 19496 this.select(e) 19497 }, 19498 _onDatasetCleared: function() { 19499 this._updateHint() 19500 }, 19501 _onDatasetRendered: function(t, e, n, r) { 19502 this._updateHint(), 19503 this.eventBus.trigger("render", n, r, e) 19504 }, 19505 _onAsyncRequested: function(t, e, n) { 19506 this.eventBus.trigger("asyncrequest", n, e) 19507 }, 19508 _onAsyncCanceled: function(t, e, n) { 19509 this.eventBus.trigger("asynccancel", n, e) 19510 }, 19511 _onAsyncReceived: function(t, e, n) { 19512 this.eventBus.trigger("asyncreceive", n, e) 19513 }, 19514 _onFocused: function() { 19515 this._minLengthMet() && this.menu.update(this.input.getQuery()) 19516 }, 19517 _onBlurred: function() { 19518 this.input.hasQueryChangedSinceLastFocus() && this.eventBus.trigger("change", this.input.getQuery()) 19519 }, 19520 _onEnterKeyed: function(t, e) { 19521 var n; 19522 (n = this.menu.getActiveSelectable()) && this.select(n) && e.preventDefault() 19523 }, 19524 _onTabKeyed: function(t, e) { 19525 var n; 19526 (n = this.menu.getActiveSelectable()) ? this.select(n) && e.preventDefault() : (n = this.menu.getTopSelectable()) && this.autocomplete(n) && e.preventDefault() 19527 }, 19528 _onEscKeyed: function() { 19529 this.close() 19530 }, 19531 _onUpKeyed: function() { 19532 this.moveCursor(-1) 19533 }, 19534 _onDownKeyed: function() { 19535 this.moveCursor(1) 19536 }, 19537 _onLeftKeyed: function() { 19538 "rtl" === this.dir && this.input.isCursorAtEnd() && this.autocomplete(this.menu.getTopSelectable()) 19539 }, 19540 _onRightKeyed: function() { 19541 "ltr" === this.dir && this.input.isCursorAtEnd() && this.autocomplete(this.menu.getTopSelectable()) 19542 }, 19543 _onQueryChanged: function(t, e) { 19544 this._minLengthMet(e) ? this.menu.update(e) : this.menu.empty() 19545 }, 19546 _onWhitespaceChanged: function() { 19547 this._updateHint() 19548 }, 19549 _onLangDirChanged: function(t, e) { 19550 this.dir !== e && (this.dir = e, 19551 this.menu.setLanguageDirection(e)) 19552 }, 19553 _openIfActive: function() { 19554 this.isActive() && this.open() 19555 }, 19556 _minLengthMet: function(t) { 19557 return t = e.isString(t) ? t : this.input.getQuery() || "", 19558 t.length >= this.minLength 19559 }, 19560 _updateHint: function() { 19561 var t, n, r, i, o, s, u; 19562 t = this.menu.getTopSelectable(), 19563 n = this.menu.getSelectableData(t), 19564 r = this.input.getInputValue(), 19565 !n || e.isBlankString(r) || this.input.hasOverflow() ? this.input.clearHint() : (i = a.normalizeQuery(r), 19566 o = e.escapeRegExChars(i), 19567 s = new RegExp("^(?:" + o + ")(.+$)","i"), 19568 (u = s.exec(n.val)) && this.input.setHint(r + u[1])
19568) 19569 }, 19570 isEnabled: function() { 19571 return this.enabled 19572 }, 19573 enable: function() { 19574 this.enabled = !0 19575 }, 19576 disable: function() { 19577 this.enabled = !1 19578 }, 19579 isActive: function() { 19580 return this.active 19581 }, 19582 activate: function() { 19583 return !!this.isActive() || !(!this.isEnabled() || this.eventBus.before("active")) && (this.active = !0, 19584 this.eventBus.trigger("active"), 19585 !0) 19586 }, 19587 deactivate: function() { 19588 return !this.isActive() || !this.eventBus.before("idle") && (this.active = !1, 19589 this.close(), 19590 this.eventBus.trigger("idle"), 19591 !0) 19592 }, 19593 isOpen: function() { 19594 return this.menu.isOpen() 19595 }, 19596 open: function() { 19597 return this.isOpen() || this.eventBus.before("open") || (this.menu.open(), 19598 this._updateHint(), 19599 this.eventBus.trigger("open")), 19600 this.isOpen() 19601 }, 19602 close: function() { 19603 return this.isOpen() && !this.eventBus.before("close") && (this.menu.close(), 19604 this.input.clearHint(), 19605 this.input.resetInputValue(), 19606 this.eventBus.trigger("close")), 19607 !this.isOpen() 19608 }, 19609 setVal: function(t) { 19610 this.input.setQuery(e.toStr(t)) 19611 }, 19612 getVal: function() { 19613 return this.input.getQuery() 19614 }, 19615 select: function(t) { 19616 var e = this.menu.getSelectableData(t); 19617 return !(!e || this.eventBus.before("select", e.obj)) && (this.input.setQuery(e.val, !0), 19618 this.eventBus.trigger("select", e.obj), 19619 this.close(), 19620 !0) 19621 }, 19622 autocomplete: function(t) { 19623 var e, n; 19624 return e = this.input.getQuery(), 19625 n = this.menu.getSelectableData(t), 19626 !(!(n && e !== n.val) || this.eventBus.before("autocomplete", n.obj)) && (this.input.setQuery(n.val), 19627 this.eventBus.trigger("autocomplete", n.obj), 19628 !0) 19629 }, 19630 moveCursor: function(t) { 19631 var e, n, r, i; 19632 return e = this.input.getQuery(), 19633 n = this.menu.selectableRelativeToCursor(t), 19634 r = this.menu.getSelectableData(n), 19635 i = r ? r.obj : null, 19636 !(this._minLengthMet() && this.menu.update(e)) && !this.eventBus.before("cursorchange", i) && (this.menu.setCursor(n), 19637 r ? this.input.setInputValue(r.val) : (this.input.resetInputValue(), 19638 this._updateHint()), 19639 this.eventBus.trigger("cursorchange", i), 19640 !0) 19641 }, 19642 destroy: function() { 19643 this.input.destroy(), 19644 this.menu.destroy() 19645 } 19646 }), 19647 n; 19648 function r(t) { 19649 var n = [].slice.call(arguments, 1); 19650 return function() { 19651 var r = [].slice.call(arguments); 19652 e.each(n, function(e) { 19653 return t[e].apply(t, r) 19654 }) 19655 } 19656 } 19657 }(); 19658 !function() { 19659 "use strict"; 19660 var i, o, s; 19661 i = t.fn.typeahead, 19662 o = { 19663 www: "tt-www", 19664 attrs: "tt-attrs", 19665 typeahead: "tt-typeahead" 19666 }, 19667 s = { 19668 initialize: function(i, s) { 19669 var h; 19670 return s = e.isArray(s) ? s : [].slice.call(arguments, 1), 19671 i = i || {}, 19672 h = n(i.classNames), 19673 this.each(p); 19674 function p() { 19675 var n, p, g, y, v, b, w, x, _, C, k; 19676 e.each(s, function(t) { 19677 t.highlight = !!i.highlight 19678 }), 19679 n = t(this), 19680 p = t(h.html.wrapper), 19681 g = m(i.hint),
vendor: 10,731 bytes, lines 19682-20007
19682 y = m(i.menu), 19683 v = !1 !== i.hint && !g, 19684 b = !1 !== i.menu && !y, 19685 v && (g = d(n, h)), 19686 b && (y = t(h.html.menu).css(h.css.menu)), 19687 g && g.val(""), 19688 n = f(n, h), 19689 (v || b) && (p.css(h.css.wrapper), 19690 n.css(v ? h.css.input : h.css.inputWithNoHint), 19691 n.wrap(p).parent().prepend(v ? g : null).append(b ? y : null)), 19692 k = b ? l : u, 19693 w = new r({ 19694 el: n 19695 }), 19696 x = new a({ 19697 hint: g, 19698 input: n 19699 },h), 19700 _ = new k({ 19701 node: y, 19702 datasets: s 19703 },h), 19704 C = new c({ 19705 input: x, 19706 menu: _, 19707 eventBus: w, 19708 minLength: i.minLength 19709 },h), 19710 n.data(o.www, h), 19711 n.data(o.typeahead, C) 19712 } 19713 }, 19714 isEnabled: function() { 19715 var t; 19716 return h(this.first(), function(e) { 19717 t = e.isEnabled() 19718 }), 19719 t 19720 }, 19721 enable: function() { 19722 return h(this, function(t) { 19723 t.enable() 19724 }), 19725 this 19726 }, 19727 disable: function() { 19728 return h(this, function(t) { 19729 t.disable() 19730 }), 19731 this 19732 }, 19733 isActive: function() { 19734 var t; 19735 return h(this.first(), function(e) { 19736 t = e.isActive() 19737 }), 19738 t 19739 }, 19740 activate: function() { 19741 return h(this, function(t) { 19742 t.activate() 19743 }), 19744 this 19745 }, 19746 deactivate: function() { 19747 return h(this, function(t) { 19748 t.deactivate() 19749 }), 19750 this 19751 }, 19752 isOpen: function() { 19753 var t; 19754 return h(this.first(), function(e) { 19755 t = e.isOpen() 19756 }), 19757 t 19758 }, 19759 open: function() { 19760 return h(this, function(t) { 19761 t.open() 19762 }), 19763 this 19764 }, 19765 close: function() { 19766 return h(this, function(t) { 19767 t.close() 19768 }), 19769 this 19770 }, 19771 select: function(e) { 19772 var n = !1 19773 , r = t(e); 19774 return h(this.first(), function(t) { 19775 n = t.select(r) 19776 }), 19777 n 19778 }, 19779 autocomplete: function(e) { 19780 var n = !1 19781 , r = t(e); 19782 return h(this.first(), function(t) { 19783 n = t.autocomplete(r) 19784 }), 19785 n 19786 }, 19787 moveCursor: function(t) { 19788 var e = !1; 19789 return h(this.first(), function(n) { 19790 e = n.moveCursor(t) 19791 }), 19792 e 19793 }, 19794 val: function(t) { 19795 var e; 19796 return arguments.length ? (h(this, function(e) { 19797 e.setVal(t) 19798 }), 19799 this) : (h(this.first(), function(t) { 19800 e = t.getVal() 19801 }), 19802 e) 19803 }, 19804 destroy: function() { 19805 return h(this, function(t, e) { 19806 g(e), 19807 t.destroy() 19808 }), 19809 this 19810 } 19811 }, 19812 t.fn.typeahead = function(t) { 19813 return s[t] ? s[t].apply(this, [].slice.call(arguments, 1)) : s.initialize.apply(this, arguments) 19814 } 19815 , 19816 t.fn.typeahead.noConflict = function() { 19817 return t.fn.typeahead = i, 19818 this 19819 } 19820 ; 19821 function h(e, n) { 19822 e.each(function() { 19823 var e, r = t(this); 19824 (e = r.data(o.typeahead)) && n(e, r) 19825 }) 19826 } 19827 function d(t, e) { 19828 return t.clone().addClass(e.classes.hint).removeData().css(e.css.hint).css(p(t)).prop("readonly", !0).removeAttr("id name placeholder required").attr({ 19829 autocomplete: "off", 19830 spellcheck: "false", 19831 tabindex: -1 19832 }) 19833 } 19834 function f(t, e) { 19835 t.data(o.attrs, { 19836 dir: t.attr("dir"), 19837 autocomplete: t.attr("autocomplete"), 19838 spellcheck: t.attr("spellcheck"), 19839 style: t.attr("style") 19840 }), 19841 t.addClass(e.classes.input).attr({ 19842 autocomplete: "off", 19843 spellcheck: !1 19844 }); 19845 try { 19846 !t.attr("dir") && t.attr("dir", "auto") 19847 } catch (t) {} 19848 return t 19849 } 19850 function p(t) { 19851 return { 19852 backgroundAttachment: t.css("background-attachment"), 19853 backgroundClip: t.css("background-clip"), 19854 backgroundColor: t.css("background-color"), 19855 backgroundImage: t.css("background-image"), 19856 backgroundOrigin: t.css("background-origin"), 19857 backgroundPosition: t.css("background-position"), 19858 backgroundRepeat: t.css("background-repeat"), 19859 backgroundSize: t.css("background-size") 19860 } 19861 } 19862 function g(t) { 19863 var n, r; 19864 n = t.data(o.www), 19865 r = t.parent().filter(n.selectors.wrapper), 19866 e.each(t.data(o.attrs), function(n, r) { 19867 e.isUndefined(n) ? t.removeAttr(r) : t.attr(r, n) 19868 }), 19869 t.removeData(o.typeahead).removeData(o.www).removeData(o.attr).removeClass(n.classes.input), 19870 r.length && (t.detach().insertAfter(r), 19871 r.remove()) 19872 } 19873 function m(n) { 19874 var r, i; 19875 return r = e.isJQuery(n) || e.isElement(n), 19876 i = r ? t(n).first() : [], 19877 i.length ? i : null 19878 } 19879 }() 19880}), 19881/*! 19882 * typeahead.js 0.11.1 19883 * https://github.com/twitter/typeahead.js 19884 * Copyright 2013-2015 Twitter, Inc. and other contributors; Licensed MIT 19885 */ 19886function(t, e) { 19887 "function" == typeof define && define.amd ? define("typeahead.js", ["jquery"], function(t) { 19888 return e(t) 19889 }) : "object" == typeof exports ? module.exports = e(require("jquery")) : e(jQuery) 19890}(0, function(t) { 19891 var e = function() { 19892 "use strict"; 19893 return { 19894 isMsie: function() { 19895 return !!/(msie|trident)/i.test(navigator.userAgent) && navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2] 19896 }, 19897 isBlankString: function(t) { 19898 return !t || /^\s*$/.test(t) 19899 }, 19900 escapeRegExChars: function(t) { 19901 return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&") 19902 }, 19903 isString: function(t) { 19904 return "string" == typeof t 19905 }, 19906 isNumber: function(t) { 19907 return "number" == typeof t 19908 }, 19909 isArray: t.isArray, 19910 isFunction: t.isFunction, 19911 isObject: t.isPlainObject, 19912 isUndefined: function(t) { 19913 return void 0 === t 19914 }, 19915 isElement: function(t) { 19916 return !(!t || 1 !== t.nodeType) 19917 }, 19918 isJQuery: function(e) { 19919 return e instanceof t 19920 }, 19921 toStr: function(t) { 19922 return e.isUndefined(t) || null === t ? "" : t + "" 19923 }, 19924 bind: t.proxy, 19925 each: function(e, n) { 19926 t.each(e, r); 19927 function r(t, e) { 19928 return n(e, t) 19929 } 19930 }, 19931 map: t.map, 19932 filter: t.grep, 19933 every: function(e, n) { 19934 var r = !0; 19935 return e ? (t.each(e, function(t, i) { 19936 if (!(r = n.call(null, i, t, e))) 19937 return !1 19938 }), 19939 !!r) : r 19940 }, 19941 some: function(e, n) { 19942 var r = !1; 19943 return e ? (t.each(e, function(t, i) { 19944 if (r = n.call(null, i, t, e)) 19945 return !1 19946 }), 19947 !!r) : r 19948 }, 19949 mixin: t.extend, 19950 identity: function(t) { 19951 return t 19952 }, 19953 clone: function(e) { 19954 return t.extend(!0, {}, e) 19955 }, 19956 getIdGenerator: function() { 19957 var t = 0; 19958 return function() { 19959 return t++ 19960 } 19961 }, 19962 templatify: function(e) { 19963 return t.isFunction(e) ? e : n; 19964 function n() { 19965 return String(e) 19966 } 19967 }, 19968 defer: function(t) { 19969 setTimeout(t, 0) 19970 }, 19971 debounce: function(t, e, n) { 19972 var r, i; 19973 return function() { 19974 var o, a, s = this, u = arguments; 19975 return o = function() { 19976 r = null, 19977 n || (i = t.apply(s, u)) 19978 } 19979 , 19980 a = n && !r, 19981 clearTimeout(r), 19982 r = setTimeout(o, e), 19983 a && (i = t.apply(s, u)), 19984 i 19985 } 19986 }, 19987 throttle: function(t, e) { 19988 var n, r, i, o, a, s; 19989 return a = 0, 19990 s = function() { 19991 a = new Date, 19992 i = null, 19993 o = t.apply(n, r) 19994 } 19995 , 19996 function() { 19997 var u = new Date 19998 , l = e - (u - a); 19999 return n = this, 20000 r = arguments, 20001 l <= 0 ? (clearTimeout(i), 20002 i = null, 20003 a = u, 20004 o = t.apply(n, r)) : i || (i = setTimeout(s, l)), 20005 o 20006 } 20007 },
vendor: 17,182 bytes, lines 20008-20498
20008 stringify: function(t) { 20009 return e.isString(t) ? t : JSON.stringify(t) 20010 }, 20011 noop: function() {} 20012 } 20013 }() 20014 , n = function() { 20015 "use strict"; 20016 var t = { 20017 wrapper: "twitter-typeahead", 20018 input: "tt-input", 20019 hint: "tt-hint", 20020 menu: "tt-menu", 20021 dataset: "tt-dataset", 20022 suggestion: "tt-suggestion", 20023 selectable: "tt-selectable", 20024 empty: "tt-empty", 20025 open: "tt-open", 20026 cursor: "tt-cursor", 20027 highlight: "tt-highlight" 20028 }; 20029 return n; 20030 function n(n) { 20031 var a, s; 20032 return s = e.mixin({}, t, n), 20033 a = { 20034 css: o(), 20035 classes: s, 20036 html: r(s), 20037 selectors: i(s) 20038 }, 20039 { 20040 css: a.css, 20041 html: a.html, 20042 classes: a.classes, 20043 selectors: a.selectors, 20044 mixin: function(t) { 20045 e.mixin(t, a) 20046 } 20047 } 20048 } 20049 function r(t) { 20050 return { 20051 wrapper: '<span class="' + t.wrapper + '"></span>', 20052 menu: '<div class="' + t.menu + '"></div>' 20053 } 20054 } 20055 function i(t) { 20056 var n = {}; 20057 return e.each(t, function(t, e) { 20058 n[e] = "." + t 20059 }), 20060 n 20061 } 20062 function o() { 20063 var t = { 20064 wrapper: { 20065 position: "relative", 20066 display: "inline-block" 20067 }, 20068 hint: { 20069 position: "absolute", 20070 top: "0", 20071 left: "0", 20072 borderColor: "transparent", 20073 boxShadow: "none", 20074 opacity: "1" 20075 }, 20076 input: { 20077 position: "relative", 20078 verticalAlign: "top", 20079 backgroundColor: "transparent" 20080 }, 20081 inputWithNoHint: { 20082 position: "relative", 20083 verticalAlign: "top" 20084 }, 20085 menu: { 20086 position: "absolute", 20087 top: "100%", 20088 left: "0", 20089 zIndex: "100", 20090 display: "none" 20091 }, 20092 ltr: { 20093 left: "0", 20094 right: "auto" 20095 }, 20096 rtl: { 20097 left: "auto", 20098 right: " 0" 20099 } 20100 }; 20101 return e.isMsie() && e.mixin(t.input, { 20102 backgroundImage: "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)" 20103 }), 20104 t 20105 } 20106 }() 20107 , r = function() { 20108 "use strict"; 20109 var n, r; 20110 n = "typeahead:", 20111 r = { 20112 render: "rendered", 20113 cursorchange: "cursorchanged", 20114 select: "selected", 20115 autocomplete: "autocompleted" 20116 }; 20117 function i(e) { 20118 e && e.el || t.error("EventBus initialized without el"), 20119 this.$el = t(e.el) 20120 } 20121 return e.mixin(i.prototype, { 20122 _trigger: function(e, r) { 20123 var i; 20124 return i = t.Event(n + e), 20125 (r = r || []).unshift(i), 20126 this.$el.trigger.apply(this.$el, r), 20127 i 20128 }, 20129 before: function(t) { 20130 var e, n; 20131 return e = [].slice.call(arguments, 1), 20132 n = this._trigger("before" + t, e), 20133 n.isDefaultPrevented() 20134 }, 20135 trigger: function(t) { 20136 var e; 20137 this._trigger(t, [].slice.call(arguments, 1)), 20138 (e = r[t]) && this._trigger(e, [].slice.call(arguments, 1)) 20139 } 20140 }), 20141 i 20142 }() 20143 , i = function() { 20144 "use strict"; 20145 var t = /\s+/ 20146 , e = function() { 20147 var t; 20148 if (window.setImmediate) { 20149 t = function t(e) { 20150 setImmediate(function() { 20151 e() 20152 }) 20153 } 20154 } else { 20155 t = function t(e) { 20156 setTimeout(function() { 20157 e() 20158 }, 0) 20159 } 20160 } 20161 return t 20162 }(); 20163 return { 20164 onSync: i, 20165 onAsync: r, 20166 off: o, 20167 trigger: a 20168 }; 20169 function n(e, n, r, i) { 20170 var o; 20171 if (!r) 20172 return this; 20173 for (n = n.split(t), 20174 r = i ? u(r, i) : r, 20175 this._callbacks = this._callbacks || {}; o = n.shift(); ) 20176 this._callbacks[o] = this._callbacks[o] || { 20177 sync: [], 20178 async: [] 20179 }, 20180 this._callbacks[o][e].push(r); 20181 return this 20182 } 20183 function r(t, e, r) { 20184 return n.call(this, "async", t, e, r) 20185 } 20186 function i(t, e, r) { 20187 return n.call(this, "sync", t, e, r) 20188 } 20189 function o(e) { 20190 var n; 20191 if (!this._callbacks) 20192 return this; 20193 for (e = e.split(t); n = e.shift(); ) 20194 delete this._callbacks[n]; 20195 return this 20196 } 20197 function a(n) { 20198 var r, i, o, a, u; 20199 if (!this._callbacks) 20200 return this; 20201 for (n = n.split(t), 20202 o = [].slice.call(arguments, 1); (r = n.shift()) && (i = this._callbacks[r]); ) 20203 a = s(i.sync, this, [r].concat(o)), 20204 u = s(i.async, this, [r].concat(o)), 20205 a() && e(u); 20206 return this 20207 } 20208 function s(t, e, n) { 20209 return r; 20210 function r() { 20211 for (var r, i = 0, o = t.length; !r && i < o; i += 1) 20212 r = !1 === t[i].apply(e, n); 20213 return !r 20214 } 20215 } 20216 function u(t, e) { 20217 return t.bind ? t.bind(e) : function() { 20218 t.apply(e, [].slice.call(arguments, 0)) 20219 } 20220 } 20221 }() 20222 , o = function(t) { 20223 "use strict"; 20224 var n = { 20225 node: null, 20226 pattern: null, 20227 tagName: "strong", 20228 className: null, 20229 wordsOnly: !1, 20230 caseSensitive: !1 20231 }; 20232 return function(i) { 20233 var o; 20234 i = e.mixin({}, n, i); 20235 function a(e) { 20236 var n, r, a; 20237 return (n = o.exec(e.data)) && (a = t.createElement(i.tagName), 20238 i.className && (a.className = i.className), 20239 r = e.splitText(n.index), 20240 r.splitText(n[0].length), 20241 a.appendChild(r.cloneNode(!0)), 20242 e.parentNode.replaceChild(a, r)), 20243 !!n 20244 } 20245 function s(t, e) { 20246 for (var n, r = 0; r < t.childNodes.length; r++) 20247 n = t.childNodes[r], 20248 3 === n.nodeType ? r += e(n) ? 1 : 0 : s(n, e) 20249 } 20250 i.node && i.pattern && (i.pattern = e.isArray(i.pattern) ? i.pattern : [i.pattern], 20251 o = r(i.pattern, i.caseSensitive, i.wordsOnly), 20252 s(i.node, a)) 20253 } 20254 ; 20255 function r(t, n, r) { 20256 for (var i, o = [], a = 0, s = t.length; a < s; a++) 20257 o.push(e.escapeRegExChars(t[a])); 20258 return i = r ? "\\b(" + o.join("|") + ")\\b" : "(" + o.join("|") + ")", 20259 n ? new RegExp(i) : new RegExp(i,"i") 20260 } 20261 }(window.document) 20262 , a = function() { 20263 "use strict"; 20264 var n; 20265 n = { 20266 9: "tab", 20267 27: "esc", 20268 37: "left", 20269 39: "right", 20270 13: "enter", 20271 38: "up", 20272 40: "down" 20273 }; 20274 function r(n, r) { 20275 n = n || {}, 20276 n.input || t.error("input is missing"), 20277 r.mixin(this), 20278 this.$hint = t(n.hint), 20279 this.$input = t(n.input), 20280 this.query = this.$input.val(), 20281 this.queryWhenFocused = this.hasFocus() ? this.query : null, 20282 this.$overflowHelper = o(this.$input), 20283 this._checkLanguageDirection(), 20284 0 === this.$hint.length && (this.setHint = this.getHint = this.clearHint = this.clearHintIfInvalid = e.noop) 20285 } 20286 return r.normalizeQuery = function(t) { 20287 return e.toStr(t).replace(/^\s*/g, "").replace(/\s{2,}/g, " ") 20288 } 20289 , 20290 e.mixin(r.prototype, i, { 20291 _onBlur: function() { 20292 this.resetInputValue(), 20293 this.trigger("blurred") 20294 }, 20295 _onFocus: function() { 20296 this.queryWhenFocused = this.query, 20297 this.trigger("focused") 20298 }, 20299 _onKeydown: function(t) { 20300 var e = n[t.which || t.keyCode]; 20301 this._managePreventDefault(e, t), 20302 e && this._shouldTrigger(e, t) && this.trigger(e + "Keyed", t) 20303 }, 20304 _onInput: function() { 20305 this._setQuery(this.getInputValue()), 20306 this.clearHintIfInvalid(), 20307 this._checkLanguageDirection() 20308 }, 20309 _managePreventDefault: function(t, e) { 20310 var n; 20311 switch (t) { 20312 case "up": 20313 case "down": 20314 n = !s(e); 20315 break; 20316 default: 20317 n = !1 20318 } 20319 n && e.preventDefault() 20320 }, 20321 _shouldTrigger: function(t, e) { 20322 var n; 20323 switch (t) { 20324 case "tab": 20325 n = !s(e); 20326 break; 20327 default: 20328 n = !0 20329 } 20330 return n 20331 }, 20332 _checkLanguageDirection: function() { 20333 var t = (this.$input.css("direction") || "ltr").toLowerCase(); 20334 this.dir !== t && (this.dir = t, 20335 this.$hint.attr("dir", t), 20336 this.trigger("langDirChanged", t)) 20337 }, 20338 _setQuery: function(t, e) { 20339 var n, r; 20340 n = a(t, this.query), 20341 r = !!n && this.query.length !== t.length, 20342 this.query = t, 20343 e || n ? !e && r && this.trigger("whitespaceChanged", this.query) : this.trigger("queryChanged", this.query) 20344 }, 20345 bind: function() { 20346 var t, r, i, o, a = this; 20347 return t = e.bind(this._onBlur, this), 20348 r = e.bind(this._onFocus, this), 20349 i = e.bind(this._onKeydown, this), 20350 o = e.bind(this._onInput, this), 20351 this.$input.on("blur.tt", t).on("focus.tt", r).on("keydown.tt", i), 20352 !e.isMsie() || e.isMsie() > 9 ? this.$input.on("input.tt", o) : this.$input.on("keydown.tt keypress.tt cut.tt paste.tt", function(t) { 20353 n[t.which || t.keyCode] || e.defer(e.bind(a._onInput, a, t)) 20354 }), 20355 this 20356 }, 20357 focus: function() { 20358 this.$input.focus() 20359 }, 20360 blur: function() { 20361 this.$input.blur() 20362 }, 20363 getLangDir: function() { 20364 return this.dir 20365 }, 20366 getQuery: function() { 20367 return this.query || "" 20368 }, 20369 setQuery: function(t, e) { 20370 this.setInputValue(t), 20371 this._setQuery(t, e) 20372 }, 20373 hasQueryChangedSinceLastFocus: function() { 20374 return this.query !== this.queryWhenFocused 20375 }, 20376 getInputValue: function() { 20377 return this.$input.val() 20378 }, 20379 setInputValue: function(t) { 20380 this.$input.val(t), 20381 this.clearHintIfInvalid(), 20382 this._checkLanguageDirection() 20383 }, 20384 resetInputValue: function() { 20385 this.setInputValue(this.query) 20386 }, 20387 getHint: function() { 20388 return this.$hint.val() 20389 }, 20390 setHint: function(t) { 20391 this.$hint.val(t) 20392 }, 20393 clearHint: function() { 20394 this.setHint("") 20395 }, 20396 clearHintIfInvalid: function() { 20397 var t, e, n, r; 20398 t = this.getInputValue(), 20399 e = this.getHint(), 20400 n = t !== e && 0 === e.indexOf(t), 20401 !(r = "" !== t && n && !this.hasOverflow()) && this.clearHint() 20402 }, 20403 hasFocus: function() { 20404 return this.$input.is(":focus") 20405 }, 20406 hasOverflow: function() { 20407 var t = this.$input.width() - 2; 20408 return this.$overflowHelper.text(this.getInputValue()), 20409 this.$overflowHelper.width() >= t 20410 }, 20411 isCursorAtEnd: function() { 20412 var t, n, r; 20413 return t = this.$input.val().length, 20414 n = this.$input[0].selectionStart, 20415 e.isNumber(n) ? n === t : !document.selection || (r = document.selection.createRange(), 20416 r.moveStart("character", -t), 20417 t === r.text.length) 20418 }, 20419 destroy: function() { 20420 this.$hint.off(".tt"), 20421 this.$input.off(".tt"), 20422 this.$overflowHelper.remove(), 20423 this.$hint = this.$input = this.$overflowHelper = t("<div>") 20424 } 20425 }), 20426 r; 20427 function o(e) { 20428 return t('<pre aria-hidden="true"></pre>').css({ 20429 position: "absolute", 20430 visibility: "hidden", 20431 whiteSpace: "pre", 20432 fontFamily: e.css("font-family"), 20433 fontSize: e.css("font-size"), 20434 fontStyle: e.css("font-style"), 20435 fontVariant: e.css("font-variant"), 20436 fontWeight: e.css("font-weight"), 20437 wordSpacing: e.css("word-spacing"), 20438 letterSpacing: e.css("letter-spacing"), 20439 textIndent: e.css("text-indent"), 20440 textRendering: e.css("text-rendering"), 20441 textTransform: e.css("text-transform") 20442 }).insertAfter(e) 20443 } 20444 function a(t, e) { 20445 return r.normalizeQuery(t) === r.normalizeQuery(e) 20446 } 20447 function s(t) { 20448 return t.altKey || t.ctrlKey || t.metaKey || t.shiftKey 20449 } 20450 }() 20451 , s = function() { 20452 "use strict"; 20453 var n, r; 20454 n = { 20455 val: "tt-selectable-display", 20456 obj: "tt-selectable-object" 20457 }, 20458 r = e.getIdGenerator(); 20459 function a(n, i) { 20460 n = n || {}, 20461 n.templates = n.templates || {}, 20462 n.templates.notFound = n.templates.notFound || n.templates.empty, 20463 n.source || t.error("missing source"), 20464 n.node || t.error("missing node"), 20465 n.name && !l(n.name) && t.error("invalid dataset name: " + n.name), 20466 i.mixin(this), 20467 this.highlight = !!n.highlight, 20468 this.name = n.name || r(), 20469 this.limit = n.limit || 5, 20470 this.displayFn = s(n.display || n.displayKey), 20471 this.templates = u(n.templates, this.displayFn), 20472 this.source = n.source.__ttAdapter ? n.source.__ttAdapter() : n.source, 20473 this.async = e.isUndefined(n.async) ? this.source.length > 2 : !!n.async, 20474 this._resetLastSuggestion(), 20475 this.$el = t(n.node).addClass(this.classes.dataset).addClass(this.classes.dataset + "-" + this.name) 20476 } 20477 return a.extractData = function(e) { 20478 var r = t(e); 20479 return r.data(n.obj) ? { 20480 val: r.data(n.val) || "", 20481 obj: r.data(n.obj) || null 20482 } : null 20483 } 20484 , 20485 e.mixin(a.prototype, i, { 20486 _overwrite: function(t, e) { 20487 e = e || [], 20488 e.length ? this._renderSuggestions(t, e) : this.async && this.templates.pending ? this._renderPending(t) : !this.async && this.templates.notFound ? this._renderNotFound(t) : this._empty(), 20489 this.trigger("rendered", this.name, e, !1) 20490 }, 20491 _append: function(t, e) { 20492 e = e || [], 20493 e.length && this.$lastSuggestion.length ? this._appendSuggestions(t, e) : e.length ? this._renderSuggestions(t, e) : !this.$lastSuggestion.length && this.templates.notFound && this._renderNotFound(t), 20494 this.trigger("rendered", this.name, e, !0) 20495 }, 20496 _renderSuggestions: function(t, e) { 20497 var n; 20498 n = this._getSuggestionsFragment(t, e),
20499 this.$lastSuggestion = n.children().last(), 20500 this.$el.html(n).prepend(this._getHeader(t, e)).append(this._getFooter(t, e)) 20501 }, 20502 _appendSuggestions: function(t, e) { 20503 var n, r; 20504 n = this._getSuggestionsFragment(t, e), 20505 r = n.children().last(), 20506 this.$lastSuggestion.after(n), 20507 this.$lastSuggestion = r 20508 }, 20509 _renderPending: function(t) { 20510 var e = this.templates.pending; 20511 this._resetLastSuggestion(), 20512 e && this.$el.html(e({ 20513 query: t, 20514 dataset: this.name 20515 })) 20516 }, 20517 _renderNotFound: function(t) { 20518 var e = this.templates.notFound; 20519 this._resetLastSuggestion(), 20520 e && this.$el.html(e({ 20521 query: t, 20522 dataset: this.name 20523 })) 20524 }, 20525 _empty: function() { 20526 this.$el.empty(), 20527 this._resetLastSuggestion() 20528 }, 20529 _getSuggestionsFragment: function(r, i) { 20530 var a, s = this; 20531 return a = document.createDocumentFragment(), 20532 e.each(i, function(e) { 20533 var i, o; 20534 o = s._injectQuery(r, e), 20535 i = t(s.templates.suggestion(o)).data(n.obj, e).data(n.val, s.displayFn(e)).addClass(s.classes.suggestion + " " + s.classes.selectable), 20536 a.appendChild(i[0]) 20537 }), 20538 this.highlight && o({ 20539 className: this.classes.highlight, 20540 node: a, 20541 pattern: r 20542 }), 20543 t(a) 20544 }, 20545 _getFooter: function(t, e) { 20546 return this.templates.footer ? this.templates.footer({ 20547 query: t, 20548 suggestions: e, 20549 dataset: this.name 20550 }) : null 20551 }, 20552 _getHeader: function(t, e) { 20553 return this.templates.header ? this.templates.header({ 20554 query: t, 20555 suggestions: e, 20556 dataset: this.name 20557 }) : null 20558 }, 20559 _resetLastSuggestion: function() { 20560 this.$lastSuggestion = t() 20561 }, 20562 _injectQuery: function(t, n) { 20563 return e.isObject(n) ? e.mixin({ 20564 _query: t 20565 }, n) : n 20566 }, 20567 update: function(e) { 20568 var n = this 20569 , r = !1 20570 , i = !1 20571 , o = 0; 20572 this.cancel(), 20573 this.cancel = function() { 20574 r = !0, 20575 n.cancel = t.noop, 20576 n.async && n.trigger("asyncCanceled", e) 20577 } 20578 , 20579 this.source(e, a, s), 20580 !i && a([]); 20581 function a(t) { 20582 i || (i = !0, 20583 t = (t || []).slice(0, n.limit), 20584 o = t.length, 20585 n._overwrite(e, t), 20586 o < n.limit && n.async && n.trigger("asyncRequested", e)) 20587 } 20588 function s(i) { 20589 i = i || [], 20590 !r && o < n.limit && (n.cancel = t.noop, 20591 o += i.length, 20592 n._append(e, i.slice(0, n.limit - o)), 20593 n.async && n.trigger("asyncReceived", e)) 20594 } 20595 }, 20596 cancel: t.noop, 20597 clear: function() { 20598 this._empty(), 20599 this.cancel(), 20600 this.trigger("cleared") 20601 }, 20602 isEmpty: function() { 20603 return this.$el.is(":empty") 20604 }, 20605 destroy: function() { 20606 this.$el = t("<div>") 20607 } 20608 }), 20609 a; 20610 function s(t) { 20611 return t = t || e.stringify, 20612 e.isFunction(t) ? t : n; 20613 function n(e) { 20614 return e[t] 20615 } 20616 } 20617 function u(n, r) { 20618 return { 20619 notFound: n.notFound && e.templatify(n.notFound), 20620 pending: n.pending && e.templatify(n.pending), 20621 header: n.header && e.templatify(n.header), 20622 footer: n.footer && e.templatify(n.footer), 20623 suggestion: n.suggestion || i 20624 }; 20625 function i(e) { 20626 return t("<div>").text(r(e)) 20627 } 20628 } 20629 function l(t) { 20630 return /^[_a-zA-Z0-9-]+$/.test(t) 20631 } 20632 }() 20633 , u = function() { 20634 "use strict"; 20635 function n(n, r) { 20636 var i = this; 20637 n = n || {}, 20638 n.node || t.error("node is required"), 20639 r.mixin(this), 20640 this.$node = t(n.node), 20641 this.query = null, 20642 this.datasets = e.map(n.datasets, o); 20643 function o(e) { 20644 var n = i.$node.find(e.node).first();
20645 return e.node = n.length ? n : t("<div>").appendTo(i.$node), 20646 new s(e,r) 20647 } 20648 } 20649 return e.mixin(n.prototype, i, { 20650 _onSelectableClick: function(e) { 20651 this.trigger("selectableClicked", t(e.currentTarget)) 20652 }, 20653 _onRendered: function(t, e, n, r) { 20654 this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()), 20655 this.trigger("datasetRendered", e, n, r) 20656 }, 20657 _onCleared: function() { 20658 this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()), 20659 this.trigger("datasetCleared") 20660 }, 20661 _propagate: function() { 20662 this.trigger.apply(this, arguments) 20663 }, 20664 _allDatasetsEmpty: function() { 20665 return e.every(this.datasets, t); 20666 function t(t) { 20667 return t.isEmpty() 20668 } 20669 }, 20670 _getSelectables: function() { 20671 return this.$node.find(this.selectors.selectable) 20672 }, 20673 _removeCursor: function() { 20674 var t = this.getActiveSelectable(); 20675 t && t.removeClass(this.classes.cursor) 20676 }, 20677 _ensureVisible: function(t) { 20678 var e, n, r, i; 20679 e = t.position().top, 20680 n = e + t.outerHeight(!0), 20681 r = this.$node.scrollTop(), 20682 i = this.$node.height() + parseInt(this.$node.css("paddingTop"), 10) + parseInt(this.$node.css("paddingBottom"), 10), 20683 e < 0 ? this.$node.scrollTop(r + e) : i < n && this.$node.scrollTop(r + (n - i)) 20684 }, 20685 bind: function() { 20686 var t, n = this; 20687 return t = e.bind(this._onSelectableClick, this), 20688 this.$node.on("click.tt", this.selectors.selectable, t), 20689 e.each(this.datasets, function(t) { 20690 t.onSync("asyncRequested", n._propagate, n).onSync("asyncCanceled", n._propagate, n).onSync("asyncReceived", n._propagate, n).onSync("rendered", n._onRendered, n).onSync("cleared", n._onCleared, n) 20691 }), 20692 this 20693 }, 20694 isOpen: function() { 20695 return this.$node.hasClass(this.classes.open) 20696 }, 20697 open: function() { 20698 this.$node.addClass(this.classes.open) 20699 }, 20700 close: function() { 20701 this.$node.removeClass(this.classes.open), 20702 this._removeCursor() 20703 }, 20704 setLanguageDirection: function(t) { 20705 this.$node.attr("dir", t) 20706 }, 20707 selectableRelativeToCursor: function(t) { 20708 var e, n, r, i; 20709 return n = this.getActiveSelectable(), 20710 e = this._getSelectables(), 20711 r = n ? e.index(n) : -1, 20712 i = r + t, 20713 i = (i + 1) % (e.length + 1) - 1, 20714 i = i < -1 ? e.length - 1 : i, 20715 -1 === i ? null : e.eq(i) 20716 }, 20717 setCursor: function(t) { 20718 this._removeCursor(), 20719 (t = t && t.first()) && (t.addClass(this.classes.cursor), 20720 this._ensureVisible(t)) 20721 }, 20722 getSelectableData: function(t) { 20723 return t && t.length ? s.extractData(t) : null 20724 }, 20725 getActiveSelectable: function() { 20726 var t = this._getSelectables().filter(this.selectors.cursor).first(); 20727 return t.length ? t : null 20728 }, 20729 getTopSelectable: function() { 20730 var t = this._getSelectables().first(); 20731 return t.length ? t : null 20732 }, 20733 update: function(t) { 20734 var n = t !== this.query; 20735 return n && (this.query = t, 20736 e.each(this.datasets, r)), 20737 n; 20738 function r(e) { 20739 e.update(t) 20740 } 20741 }, 20742 empty: function() { 20743 e.each(this.datasets, t), 20744 this.query = null, 20745 this.$node.addClass(this.classes.empty); 20746 function t(t) { 20747 t.clear() 20748 } 20749 }, 20750 destroy: function() { 20751 this.$node.off(".tt"), 20752 this.$node = t("<div>"), 20753 e.each(this.datasets, n); 20754 function n(t) { 20755 t.destroy() 20756 } 20757 } 20758 }), 20759 n 20760 }() 20761 , l = function() { 20762 "use strict"; 20763 var t = u.prototype; 20764 function n() { 20765 u.apply(this, [].slice.call(arguments, 0)) 20766 } 20767 return e.mixin(n.prototype, u.prototype, { 20768 open: function() { 20769 return !this._allDatasetsEmpty() && this._show(), 20770 t.open.apply(this, [].slice.call(arguments, 0)) 20771 }, 20772 close: function() { 20773 return this._hide(), 20774 t.close.apply(this, [].slice.call(arguments, 0)) 20775 }, 20776 _onRendered: function() { 20777 return this._allDatasetsEmpty() ? this._hide() : this.isOpen() && this._show(), 20778 t._onRendered.apply(this, [].slice.call(arguments, 0)) 20779 }, 20780 _onCleared: function() { 20781 return this._allDatasetsEmpty() ? this._hide() : this.isOpen() && this._show(), 20782 t._onCleared.apply(this, [].slice.call(arguments, 0)) 20783 }, 20784 setLanguageDirection: function(e) {
vendor: 6,553 bytes, lines 20785-20922
20785 return this.$node.css("ltr" === e ? this.css.ltr : this.css.rtl), 20786 t.setLanguageDirection.apply(this, [].slice.call(arguments, 0)) 20787 }, 20788 _hide: function() { 20789 this.$node.hide() 20790 }, 20791 _show: function() { 20792 this.$node.css("display", "block") 20793 } 20794 }), 20795 n 20796 }() 20797 , c = function() { 20798 "use strict"; 20799 function n(n, i) { 20800 var o, a, s, u, l, c, h, d, f, p, g; 20801 n = n || {}, 20802 n.input || t.error("missing input"), 20803 n.menu || t.error("missing menu"), 20804 n.eventBus || t.error("missing event bus"), 20805 i.mixin(this), 20806 this.eventBus = n.eventBus, 20807 this.minLength = e.isNumber(n.minLength) ? n.minLength : 1, 20808 this.input = n.input, 20809 this.menu = n.menu, 20810 this.enabled = !0, 20811 this.active = !1, 20812 this.input.hasFocus() && this.activate(), 20813 this.dir = this.input.getLangDir(), 20814 this._hacks(), 20815 this.menu.bind().onSync("selectableClicked", this._onSelectableClicked, this).onSync("asyncRequested", this._onAsyncRequested, this).onSync("asyncCanceled", this._onAsyncCanceled, this).onSync("asyncReceived", this._onAsyncReceived, this).onSync("datasetRendered", this._onDatasetRendered, this).onSync("datasetCleared", this._onDatasetCleared, this), 20816 o = r(this, "activate", "open", "_onFocused"), 20817 a = r(this, "deactivate", "_onBlurred"), 20818 s = r(this, "isActive", "isOpen", "_onEnterKeyed"), 20819 u = r(this, "isActive", "isOpen", "_onTabKeyed"), 20820 l = r(this, "isActive", "_onEscKeyed"), 20821 c = r(this, "isActive", "open", "_onUpKeyed"), 20822 h = r(this, "isActive", "open", "_onDownKeyed"), 20823 d = r(this, "isActive", "isOpen", "_onLeftKeyed"), 20824 f = r(this, "isActive", "isOpen", "_onRightKeyed"), 20825 p = r(this, "_openIfActive", "_onQueryChanged"), 20826 g = r(this, "_openIfActive", "_onWhitespaceChanged"), 20827 this.input.bind().onSync("focused", o, this).onSync("blurred", a, this).onSync("enterKeyed", s, this).onSync("tabKeyed", u, this).onSync("escKeyed", l, this).onSync("upKeyed", c, this).onSync("downKeyed", h, this).onSync("leftKeyed", d, this).onSync("rightKeyed", f, this).onSync("queryChanged", p, this).onSync("whitespaceChanged", g, this).onSync("langDirChanged", this._onLangDirChanged, this) 20828 } 20829 return e.mixin(n.prototype, { 20830 _hacks: function() { 20831 var n, r; 20832 n = this.input.$input || t("<div>"), 20833 r = this.menu.$node || t("<div>"), 20834 n.on("blur.tt", function(t) { 20835 var i, o, a; 20836 i = document.activeElement, 20837 o = r.is(i), 20838 a = r.has(i).length > 0, 20839 e.isMsie() && (o || a) && (t.preventDefault(), 20840 t.stopImmediatePropagation(), 20841 e.defer(function() { 20842 n.focus() 20843 })) 20844 }), 20845 r.on("mousedown.tt", function(t) { 20846 t.preventDefault() 20847 }) 20848 }, 20849 _onSelectableClicked: function(t, e) { 20850 this.select(e) 20851 }, 20852 _onDatasetCleared: function() { 20853 this._updateHint() 20854 }, 20855 _onDatasetRendered: function(t, e, n, r) { 20856 this._updateHint(), 20857 this.eventBus.trigger("render", n, r, e) 20858 }, 20859 _onAsyncRequested: function(t, e, n) { 20860 this.eventBus.trigger("asyncrequest", n, e) 20861 }, 20862 _onAsyncCanceled: function(t, e, n) { 20863 this.eventBus.trigger("asynccancel", n, e) 20864 }, 20865 _onAsyncReceived: function(t, e, n) { 20866 this.eventBus.trigger("asyncreceive", n, e) 20867 }, 20868 _onFocused: function() { 20869 this._minLengthMet() && this.menu.update(this.input.getQuery()) 20870 }, 20871 _onBlurred: function() { 20872 this.input.hasQueryChangedSinceLastFocus() && this.eventBus.trigger("change", this.input.getQuery()) 20873 }, 20874 _onEnterKeyed: function(t, e) { 20875 var n; 20876 (n = this.menu.getActiveSelectable()) && this.select(n) && e.preventDefault() 20877 }, 20878 _onTabKeyed: function(t, e) { 20879 var n; 20880 (n = this.menu.getActiveSelectable()) ? this.select(n) && e.preventDefault() : (n = this.menu.getTopSelectable()) && this.autocomplete(n) && e.preventDefault() 20881 }, 20882 _onEscKeyed: function() { 20883 this.close() 20884 }, 20885 _onUpKeyed: function() { 20886 this.moveCursor(-1) 20887 }, 20888 _onDownKeyed: function() { 20889 this.moveCursor(1) 20890 }, 20891 _onLeftKeyed: function() { 20892 "rtl" === this.dir && this.input.isCursorAtEnd() && this.autocomplete(this.menu.getTopSelectable()) 20893 }, 20894 _onRightKeyed: function() { 20895 "ltr" === this.dir && this.input.isCursorAtEnd() && this.autocomplete(this.menu.getTopSelectable()) 20896 }, 20897 _onQueryChanged: function(t, e) { 20898 this._minLengthMet(e) ? this.menu.update(e) : this.menu.empty() 20899 }, 20900 _onWhitespaceChanged: function() { 20901 this._updateHint() 20902 }, 20903 _onLangDirChanged: function(t, e) { 20904 this.dir !== e && (this.dir = e, 20905 this.menu.setLanguageDirection(e)) 20906 }, 20907 _openIfActive: function() { 20908 this.isActive() && this.open() 20909 }, 20910 _minLengthMet: function(t) { 20911 return t = e.isString(t) ? t : this.input.getQuery() || "", 20912 t.length >= this.minLength 20913 }, 20914 _updateHint: function() { 20915 var t, n, r, i, o, s, u; 20916 t = this.menu.getTopSelectable(), 20917 n = this.menu.getSelectableData(t), 20918 r = this.input.getInputValue(), 20919 !n || e.isBlankString(r) || this.input.hasOverflow() ? this.input.clearHint() : (i = a.normalizeQuery(r), 20920 o = e.escapeRegExChars(i), 20921 s = new RegExp("^(?:" + o + ")(.+$)","i"), 20922 (u = s.exec(n.val)) && this.input.setHint(r + u[1])
20922) 20923 }, 20924 isEnabled: function() { 20925 return this.enabled 20926 }, 20927 enable: function() { 20928 this.enabled = !0 20929 }, 20930 disable: function() { 20931 this.enabled = !1 20932 }, 20933 isActive: function() { 20934 return this.active 20935 }, 20936 activate: function() { 20937 return !!this.isActive() || !(!this.isEnabled() || this.eventBus.before("active")) && (this.active = !0, 20938 this.eventBus.trigger("active"), 20939 !0) 20940 }, 20941 deactivate: function() { 20942 return !this.isActive() || !this.eventBus.before("idle") && (this.active = !1, 20943 this.close(), 20944 this.eventBus.trigger("idle"), 20945 !0) 20946 }, 20947 isOpen: function() { 20948 return this.menu.isOpen() 20949 }, 20950 open: function() { 20951 return this.isOpen() || this.eventBus.before("open") || (this.menu.open(), 20952 this._updateHint(), 20953 this.eventBus.trigger("open")), 20954 this.isOpen() 20955 }, 20956 close: function() { 20957 return this.isOpen() && !this.eventBus.before("close") && (this.menu.close(), 20958 this.input.clearHint(), 20959 this.input.resetInputValue(), 20960 this.eventBus.trigger("close")), 20961 !this.isOpen() 20962 }, 20963 setVal: function(t) { 20964 this.input.setQuery(e.toStr(t)) 20965 }, 20966 getVal: function() { 20967 return this.input.getQuery() 20968 }, 20969 select: function(t) { 20970 var e = this.menu.getSelectableData(t); 20971 return !(!e || this.eventBus.before("select", e.obj)) && (this.input.setQuery(e.val, !0), 20972 this.eventBus.trigger("select", e.obj), 20973 this.close(), 20974 !0) 20975 }, 20976 autocomplete: function(t) { 20977 var e, n; 20978 return e = this.input.getQuery(), 20979 n = this.menu.getSelectableData(t), 20980 !(!(n && e !== n.val) || this.eventBus.before("autocomplete", n.obj)) && (this.input.setQuery(n.val), 20981 this.eventBus.trigger("autocomplete", n.obj), 20982 !0) 20983 }, 20984 moveCursor: function(t) { 20985 var e, n, r, i; 20986 return e = this.input.getQuery(), 20987 n = this.menu.selectableRelativeToCursor(t), 20988 r = this.menu.getSelectableData(n), 20989 i = r ? r.obj : null, 20990 !(this._minLengthMet() && this.menu.update(e)) && !this.eventBus.before("cursorchange", i) && (this.menu.setCursor(n), 20991 r ? this.input.setInputValue(r.val) : (this.input.resetInputValue(), 20992 this._updateHint()), 20993 this.eventBus.trigger("cursorchange", i), 20994 !0) 20995 }, 20996 destroy: function() { 20997 this.input.destroy(), 20998 this.menu.destroy() 20999 } 21000 }), 21001 n; 21002 function r(t) { 21003 var n = [].slice.call(arguments, 1); 21004 return function() { 21005 var r = [].slice.call(arguments); 21006 e.each(n, function(e) { 21007 return t[e].apply(t, r) 21008 }) 21009 } 21010 } 21011 }(); 21012 !function() { 21013 "use strict"; 21014 var i, o, s; 21015 i = t.fn.typeahead, 21016 o = { 21017 www: "tt-www", 21018 attrs: "tt-attrs", 21019 typeahead: "tt-typeahead" 21020 }, 21021 s = { 21022 initialize: function(i, s) { 21023 var h; 21024 return s = e.isArray(s) ? s : [].slice.call(arguments, 1), 21025 i = i || {}, 21026 h = n(i.classNames), 21027 this.each(p); 21028 function p() { 21029 var n, p, g, y, v, b, w, x, _, C, k; 21030 e.each(s, function(t) { 21031 t.highlight = !!i.highlight 21032 }), 21033 n = t(this), 21034 p = t(h.html.wrapper), 21035 g = m(i.hint),
vendor: 4,613 bytes, lines 21036-21182
21036 y = m(i.menu), 21037 v = !1 !== i.hint && !g, 21038 b = !1 !== i.menu && !y, 21039 v && (g = d(n, h)), 21040 b && (y = t(h.html.menu).css(h.css.menu)), 21041 g && g.val(""), 21042 n = f(n, h), 21043 (v || b) && (p.css(h.css.wrapper), 21044 n.css(v ? h.css.input : h.css.inputWithNoHint), 21045 n.wrap(p).parent().prepend(v ? g : null).append(b ? y : null)), 21046 k = b ? l : u, 21047 w = new r({ 21048 el: n 21049 }), 21050 x = new a({ 21051 hint: g, 21052 input: n 21053 },h), 21054 _ = new k({ 21055 node: y, 21056 datasets: s 21057 },h), 21058 C = new c({ 21059 input: x, 21060 menu: _, 21061 eventBus: w, 21062 minLength: i.minLength 21063 },h), 21064 n.data(o.www, h), 21065 n.data(o.typeahead, C) 21066 } 21067 }, 21068 isEnabled: function() { 21069 var t; 21070 return h(this.first(), function(e) { 21071 t = e.isEnabled() 21072 }), 21073 t 21074 }, 21075 enable: function() { 21076 return h(this, function(t) { 21077 t.enable() 21078 }), 21079 this 21080 }, 21081 disable: function() { 21082 return h(this, function(t) { 21083 t.disable() 21084 }), 21085 this 21086 }, 21087 isActive: function() { 21088 var t; 21089 return h(this.first(), function(e) { 21090 t = e.isActive() 21091 }), 21092 t 21093 }, 21094 activate: function() { 21095 return h(this, function(t) { 21096 t.activate() 21097 }), 21098 this 21099 }, 21100 deactivate: function() { 21101 return h(this, function(t) { 21102 t.deactivate() 21103 }), 21104 this 21105 }, 21106 isOpen: function() { 21107 var t; 21108 return h(this.first(), function(e) { 21109 t = e.isOpen() 21110 }), 21111 t 21112 }, 21113 open: function() { 21114 return h(this, function(t) { 21115 t.open() 21116 }), 21117 this 21118 }, 21119 close: function() { 21120 return h(this, function(t) { 21121 t.close() 21122 }), 21123 this 21124 }, 21125 select: function(e) { 21126 var n = !1 21127 , r = t(e); 21128 return h(this.first(), function(t) { 21129 n = t.select(r) 21130 }), 21131 n 21132 }, 21133 autocomplete: function(e) { 21134 var n = !1 21135 , r = t(e); 21136 return h(this.first(), function(t) { 21137 n = t.autocomplete(r) 21138 }), 21139 n 21140 }, 21141 moveCursor: function(t) { 21142 var e = !1; 21143 return h(this.first(), function(n) { 21144 e = n.moveCursor(t) 21145 }), 21146 e 21147 }, 21148 val: function(t) { 21149 var e; 21150 return arguments.length ? (h(this, function(e) { 21151 e.setVal(t) 21152 }), 21153 this) : (h(this.first(), function(t) { 21154 e = t.getVal() 21155 }), 21156 e) 21157 }, 21158 destroy: function() { 21159 return h(this, function(t, e) { 21160 g(e), 21161 t.destroy() 21162 }), 21163 this 21164 } 21165 }, 21166 t.fn.typeahead = function(t) { 21167 return s[t] ? s[t].apply(this, [].slice.call(arguments, 1)) : s.initialize.apply(this, arguments) 21168 } 21169 , 21170 t.fn.typeahead.noConflict = function() { 21171 return t.fn.typeahead = i, 21172 this 21173 } 21174 ; 21175 function h(e, n) { 21176 e.each(function() { 21177 var e, r = t(this); 21178 (e = r.data(o.typeahead)) && n(e, r) 21179 }) 21180 } 21181 function d(t, e) { 21182 return t.clone().addClass(e.classes.hint).removeData().css(e.css.hint).css(p(t)).prop("readonly",
vendor: 1,915 bytes, lines 21182-21234
21182!0).removeAttr("id name placeholder required").attr({ 21183 autocomplete: "off", 21184 spellcheck: "false", 21185 tabindex: -1 21186 }) 21187 } 21188 function f(t, e) { 21189 t.data(o.attrs, { 21190 dir: t.attr("dir"), 21191 autocomplete: t.attr("autocomplete"), 21192 spellcheck: t.attr("spellcheck"), 21193 style: t.attr("style") 21194 }), 21195 t.addClass(e.classes.input).attr({ 21196 autocomplete: "off", 21197 spellcheck: !1 21198 }); 21199 try { 21200 !t.attr("dir") && t.attr("dir", "auto") 21201 } catch (t) {} 21202 return t 21203 } 21204 function p(t) { 21205 return { 21206 backgroundAttachment: t.css("background-attachment"), 21207 backgroundClip: t.css("background-clip"), 21208 backgroundColor: t.css("background-color"), 21209 backgroundImage: t.css("background-image"), 21210 backgroundOrigin: t.css("background-origin"), 21211 backgroundPosition: t.css("background-position"), 21212 backgroundRepeat: t.css("background-repeat"), 21213 backgroundSize: t.css("background-size") 21214 } 21215 } 21216 function g(t) { 21217 var n, r; 21218 n = t.data(o.www), 21219 r = t.parent().filter(n.selectors.wrapper), 21220 e.each(t.data(o.attrs), function(n, r) { 21221 e.isUndefined(n) ? t.removeAttr(r) : t.attr(r, n) 21222 }), 21223 t.removeData(o.typeahead).removeData(o.www).removeData(o.attr).removeClass(n.classes.input), 21224 r.length && (t.detach().insertAfter(r), 21225 r.remove()) 21226 } 21227 function m(n) { 21228 var r, i; 21229 return r = e.isJQuery(n) || e.isElement(n), 21230 i = r ? t(n).first() : [], 21231 i.length ? i : null 21232 } 21233 }() 21234});
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.