text: var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  
  /*! jQuery v1.11.0 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
  !function (a, b) {
      "object" == (typeof module === "undefined" ? "undefined" : _typeof(module)) && "object" == _typeof(module.exports) ? module.exports = a.document ? b(a, !0) : function (a) {
          if (!a.document) throw new Error("jQuery requires a window with a document");return b(a);
      } : b(a);
  }("undefined" != typeof window ? window : this, function (a, b) {
      var c = [],
          d = c.slice,
          e = c.concat,
          f = c.push,
          g = c.indexOf,
          h = {},
          i = h.toString,
          j = h.hasOwnProperty,
          k = "".trim,
          l = {},
          m = "1.11.0",
          n = function n(a, b) {
          return new n.fn.init(a, b);
      },
          o = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
          p = /^-ms-/,
          q = /-([\da-z])/gi,
          r = function r(a, b) {
          return b.toUpperCase();
      };n.fn = n.prototype = { jquery: m, constructor: n, selector: "", length: 0, toArray: function toArray() {
              return d.call(this);
          }, get: function get(a) {
              return null != a ? 0 > a ? this[a + this.length] : this[a] : d.call(this);
          }, pushStack: function pushStack(a) {
              var b = n.merge(this.constructor(), a);return b.prevObject = this, b.context = this.context, b;
          }, each: function each(a, b) {
              return n.each(this, a, b);
          }, map: function map(a) {
              return this.pushStack(n.map(this, function (b, c) {
                  return a.call(b, c, b);
              }));
          }, slice: function slice() {
              return this.pushStack(d.apply(this, arguments));
          }, first: function first() {
              return this.eq(0);
          }, last: function last() {
              return this.eq(-1);
          }, eq: function eq(a) {
              var b = this.length,
                  c = +a + (0 > a ? b : 0);return this.pushStack(c >= 0 && b > c ? [this[c]] : []);
          }, end: function end() {
              return this.prevObject || this.constructor(null);
          }, push: f, sort: c.sort, splice: c.splice }, n.extend = n.fn.extend = function () {
          var a,
              b,
              c,
              d,
              e,
              f,
              g = arguments[0] || {},
              h = 1,
              i = arguments.length,
              j = !1;for ("boolean" == typeof g && (j = g, g = arguments[h] || {}, h++), "object" == (typeof g === "undefined" ? "undefined" : _typeof(g)) || n.isFunction(g) || (g = {}), h === i && (g = this, h--); i > h; h++) {
              if (null != (e = arguments[h])) for (d in e) {
                  a = g[d], c = e[d], g !== c && (j && c && (n.isPlainObject(c) || (b = n.isArray(c))) ? (b ? (b = !1, f = a && n.isArray(a) ? a : []) : f = a && n.isPlainObject(a) ? a : {}, g[d] = n.extend(j, f, c)) : void 0 !== c && (g[d] = c));
              }
          }return g;
      }, n.extend({ expando: "jQuery" + (m + Math.random()).replace(/\D/g, ""), isReady: !0, error: function error(a) {
              throw new Error(a);
          }, noop: function noop() {}, isFunction: function isFunction(a) {
              return "function" === n.type(a);
          }, isArray: Array.isArray || function (a) {
              return "array" === n.type(a);
          }, isWindow: function isWindow(a) {
              return null != a && a == a.window;
          }, isNumeric: function isNumeric(a) {
              return a - parseFloat(a) >= 0;
          }, isEmptyObject: function isEmptyObject(a) {
              var b;for (b in a) {
                  return !1;
              }return !0;
          }, isPlainObject: function isPlainObject(a) {
              var b;if (!a || "object" !== n.type(a) || a.nodeType || n.isWindow(a)) return !1;try {
                  if (a.constructor && !j.call(a, "constructor") && !j.call(a.constructor.prototype, "isPrototypeOf")) return !1;
              } catch (c) {
                  return !1;
              }if (l.ownLast) for (b in a) {
                  return j.call(a, b);
              }for (b in a) {}return void 0 === b || j.call(a, b);
          }, type: function type(a) {
              return null == a ? a + "" : "object" == (typeof a === "undefined" ? "undefined" : _typeof(a)) || "function" == typeof a ? h[i.call(a)] || "object" : typeof a === "undefined" ? "undefined" : _typeof(a);
          }, globalEval: function globalEval(b) {
              b && n.trim(b) && (a.execScript || function (b) {
                  a.eval.call(a, b);
              })(b);
          }, camelCase: function camelCase(a) {
              return a.replace(p, "ms-").replace(q, r);
          }, nodeName: function nodeName(a, b) {
              return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase();
          }, each: function each(a, b, c) {
              var d,
                  e = 0,
                  f = a.length,
                  g = s(a);if (c) {
                  if (g) {
                      for (; f > e; e++) {
                          if (d = b.apply(a[e], c), d === !1) break;
                      }
                  } else for (e in a) {
                      if (d = b.apply(a[e], c), d === !1) break;
                  }
              } else if (g) {
                  for (; f > e; e++) {
                      if (d = b.call(a[e], e, a[e]), d === !1) break;
                  }
              } else for (e in a) {
                  if (d = b.call(a[e], e, a[e]), d === !1) break;
              }return a;
          }, trim: k && !k.call("\uFEFF\xA0") ? function (a) {
              return null == a ? "" : k.call(a);
          } : function (a) {
              return null == a ? "" : (a + "").replace(o, "");
          }, makeArray: function makeArray(a, b) {
              var c = b || [];return null != a && (s(Object(a)) ? n.merge(c, "string" == typeof a ? [a] : a) : f.call(c, a)), c;
          }, inArray: function inArray(a, b, c) {
              var d;if (b) {
                  if (g) return g.call(b, a, c);for (d = b.length, c = c ? 0 > c ? Math.max(0, d + c) : c : 0; d > c; c++) {
                      if (c in b && b[c] === a) return c;
                  }
              }return -1;
          }, merge: function merge(a, b) {
              var c = +b.length,
                  d = 0,
                  e = a.length;while (c > d) {
                  a[e++] = b[d++];
              }if (c !== c) while (void 0 !== b[d]) {
                  a[e++] = b[d++];
              }return a.length = e, a;
          }, grep: function grep(a, b, c) {
              for (var d, e = [], f = 0, g = a.length, h = !c; g > f; f++) {
                  d = !b(a[f], f), d !== h && e.push(a[f]);
              }return e;
          }, map: function map(a, b, c) {
              var d,
                  f = 0,
                  g = a.length,
                  h = s(a),
                  i = [];if (h) for (; g > f; f++) {
                  d = b(a[f], f, c), null != d && i.push(d);
              } else for (f in a) {
                  d = b(a[f], f, c), null != d && i.push(d);
              }return e.apply([], i);
          }, guid: 1, proxy: function proxy(a, b) {
              var c, e, f;return "string" == typeof b && (f = a[b], b = a, a = f), n.isFunction(a) ? (c = d.call(arguments, 2), e = function e() {
                  return a.apply(b || this, c.concat(d.call(arguments)));
              }, e.guid = a.guid = a.guid || n.guid++, e) : void 0;
          }, now: function now() {
              return +new Date();
          }, support: l }), n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function (a, b) {
          h["[object " + b + "]"] = b.toLowerCase();
      });function s(a) {
          var b = a.length,
              c = n.type(a);return "function" === c || n.isWindow(a) ? !1 : 1 === a.nodeType && b ? !0 : "array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a;
      }var t = function (a) {
          var b,
              c,
              d,
              e,
              f,
              g,
              h,
              i,
              j,
              k,
              l,
              m,
              n,
              o,
              p,
              q,
              r,
              s = "sizzle" + -new Date(),
              t = a.document,
              u = 0,
              v = 0,
              w = eb(),
              x = eb(),
              y = eb(),
              z = function z(a, b) {
              return a === b && (j = !0), 0;
          },
              A = "undefined",
              B = 1 << 31,
              C = {}.hasOwnProperty,
              D = [],
              E = D.pop,
              F = D.push,
              G = D.push,
              H = D.slice,
              I = D.indexOf || function (a) {
              for (var b = 0, c = this.length; c > b; b++) {
                  if (this[b] === a) return b;
              }return -1;
          },
              J = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
              K = "[\\x20\\t\\r\\n\\f]",
              L = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
              M = L.replace("w", "w#"),
              N = "\\[" + K + "*(" + L + ")" + K + "*(?:([*^$|!~]?=)" + K + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + M + ")|)|)" + K + "*\\]",
              O = ":(" + L + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + N.replace(3, 8) + ")*)|.*)\\)|)",
              P = new RegExp("^" + K + "+|((?:^|[^\\\\])(?:\\\\.)*)" + K + "+$", "g"),
              Q = new RegExp("^" + K + "*," + K + "*"),
              R = new RegExp("^" + K + "*([>+~]|" + K + ")" + K + "*"),
              S = new RegExp("=" + K + "*([^\\]'\"]*?)" + K + "*\\]", "g"),
              T = new RegExp(O),
              U = new RegExp("^" + M + "$"),
              V = { ID: new RegExp("^#(" + L + ")"), CLASS: new RegExp("^\\.(" + L + ")"), TAG: new RegExp("^(" + L.replace("w", "w*") + ")"), ATTR: new RegExp("^" + N), PSEUDO: new RegExp("^" + O), CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + K + "*(even|odd|(([+-]|)(\\d*)n|)" + K + "*(?:([+-]|)" + K + "*(\\d+)|))" + K + "*\\)|)", "i"), bool: new RegExp("^(?:" + J + ")$", "i"), needsContext: new RegExp("^" + K + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + K + "*((?:-\\d)?\\d*)" + K + "*\\)|)(?=[^-]|$)", "i") },
              W = /^(?:input|select|textarea|button)$/i,
              X = /^h\d$/i,
              Y = /^[^{]+\{\s*\[native \w/,
              Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
              $ = /[+~]/,
              _ = /'|\\/g,
              ab = new RegExp("\\\\([\\da-f]{1,6}" + K + "?|(" + K + ")|.)", "ig"),
              bb = function bb(a, b, c) {
              var d = "0x" + b - 65536;return d !== d || c ? b : 0 > d ? String.fromCharCode(d + 65536) : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320);
          };try {
              G.apply(D = H.call(t.childNodes), t.childNodes), D[t.childNodes.length].nodeType;
          } catch (cb) {
              G = { apply: D.length ? function (a, b) {
                      F.apply(a, H.call(b));
                  } : function (a, b) {
                      var c = a.length,
                          d = 0;while (a[c++] = b[d++]) {}a.length = c - 1;
                  } };
          }function db(a, b, d, e) {
              var f, g, h, i, j, m, p, q, u, v;if ((b ? b.ownerDocument || b : t) !== l && k(b), b = b || l, d = d || [], !a || "string" != typeof a) return d;if (1 !== (i = b.nodeType) && 9 !== i) return [];if (n && !e) {
                  if (f = Z.exec(a)) if (h = f[1]) {
                      if (9 === i) {
                          if (g = b.getElementById(h), !g || !g.parentNode) return d;if (g.id === h) return d.push(g), d;
                      } else if (b.ownerDocument && (g = b.ownerDocument.getElementById(h)) && r(b, g) && g.id === h) return d.push(g), d;
                  } else {
                      if (f[2]) return G.apply(d, b.getElementsByTagName(a)), d;if ((h = f[3]) && c.getElementsByClassName && b.getElementsByClassName) return G.apply(d, b.getElementsByClassName(h)), d;
                  }if (c.qsa && (!o || !o.test(a))) {
                      if (q = p = s, u = b, v = 9 === i && a, 1 === i && "object" !== b.nodeName.toLowerCase()) {
                          m = ob(a), (p = b.getAttribute("id")) ? q = p.replace(_, "\\$&") : b.setAttribute("id", q), q = "[id='" + q + "'] ", j = m.length;while (j--) {
                              m[j] = q + pb(m[j]);
                          }u = $.test(a) && mb(b.parentNode) || b, v = m.join(",");
                      }if (v) try {
                          return G.apply(d, u.querySelectorAll(v)), d;
                      } catch (w) {} finally {
                          p || b.removeAttribute("id");
                      }
                  }
              }return xb(a.replace(P, "$1"), b, d, e);
          }function eb() {
              var a = [];function b(c, e) {
                  return a.push(c + " ") > d.cacheLength && delete b[a.shift()], b[c + " "] = e;
              }return b;
          }function fb(a) {
              return a[s] = !0, a;
          }function gb(a) {
              var b = l.createElement("div");try {
                  return !!a(b);
              } catch (c) {
                  return !1;
              } finally {
                  b.parentNode && b.parentNode.removeChild(b), b = null;
              }
          }function hb(a, b) {
              var c = a.split("|"),
                  e = a.length;while (e--) {
                  d.attrHandle[c[e]] = b;
              }
          }function ib(a, b) {
              var c = b && a,
                  d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || B) - (~a.sourceIndex || B);if (d) return d;if (c) while (c = c.nextSibling) {
                  if (c === b) return -1;
              }return a ? 1 : -1;
          }function jb(a) {
              return function (b) {
                  var c = b.nodeName.toLowerCase();return "input" === c && b.type === a;
              };
          }function kb(a) {
              return function (b) {
                  var c = b.nodeName.toLowerCase();return ("input" === c || "button" === c) && b.type === a;
              };
          }function lb(a) {
              return fb(function (b) {
                  return b = +b, fb(function (c, d) {
                      var e,
                          f = a([], c.length, b),
                          g = f.length;while (g--) {
                          c[e = f[g]] && (c[e] = !(d[e] = c[e]));
                      }
                  });
              });
          }function mb(a) {
              return a && _typeof(a.getElementsByTagName) !== A && a;
          }c = db.support = {}, f = db.isXML = function (a) {
              var b = a && (a.ownerDocument || a).documentElement;return b ? "HTML" !== b.nodeName : !1;
          }, k = db.setDocument = function (a) {
              var b,
                  e = a ? a.ownerDocument || a : t,
                  g = e.defaultView;return e !== l && 9 === e.nodeType && e.documentElement ? (l = e, m = e.documentElement, n = !f(e), g && g !== g.top && (g.addEventListener ? g.addEventListener("unload", function () {
                  k();
              }, !1) : g.attachEvent && g.attachEvent("onunload", function () {
                  k();
              })), c.attributes = gb(function (a) {
                  return a.className = "i", !a.getAttribute("className");
              }), c.getElementsByTagName = gb(function (a) {
                  return a.appendChild(e.createComment("")), !a.getElementsByTagName("*").length;
              }), c.getElementsByClassName = Y.test(e.getElementsByClassName) && gb(function (a) {
                  return a.innerHTML = "<div class='a'></div><div class='a i'></div>", a.firstChild.className = "i", 2 === a.getElementsByClassName("i").length;
              }), c.getById = gb(function (a) {
                  return m.appendChild(a).id = s, !e.getElementsByName || !e.getElementsByName(s).length;
              }), c.getById ? (d.find.ID = function (a, b) {
                  if (_typeof(b.getElementById) !== A && n) {
                      var c = b.getElementById(a);return c && c.parentNode ? [c] : [];
                  }
              }, d.filter.ID = function (a) {
                  var b = a.replace(ab, bb);return function (a) {
                      return a.getAttribute("id") === b;
                  };
              }) : (delete d.find.ID, d.filter.ID = function (a) {
                  var b = a.replace(ab, bb);return function (a) {
                      var c = _typeof(a.getAttributeNode) !== A && a.getAttributeNode("id");return c && c.value === b;
                  };
              }), d.find.TAG = c.getElementsByTagName ? function (a, b) {
                  return _typeof(b.getElementsByTagName) !== A ? b.getElementsByTagName(a) : void 0;
              } : function (a, b) {
                  var c,
                      d = [],
                      e = 0,
                      f = b.getElementsByTagName(a);if ("*" === a) {
                      while (c = f[e++]) {
                          1 === c.nodeType && d.push(c);
                      }return d;
                  }return f;
              }, d.find.CLASS = c.getElementsByClassName && function (a, b) {
                  return _typeof(b.getElementsByClassName) !== A && n ? b.getElementsByClassName(a) : void 0;
              }, p = [], o = [], (c.qsa = Y.test(e.querySelectorAll)) && (gb(function (a) {
                  a.innerHTML = "<select t=''><option selected=''></option></select>", a.querySelectorAll("[t^='']").length && o.push("[*^$]=" + K + "*(?:''|\"\")"), a.querySelectorAll("[selected]").length || o.push("\\[" + K + "*(?:value|" + J + ")"), a.querySelectorAll(":checked").length || o.push(":checked");
              }), gb(function (a) {
                  var b = e.createElement("input");b.setAttribute("type", "hidden"), a.appendChild(b).setAttribute("name", "D"), a.querySelectorAll("[name=d]").length && o.push("name" + K + "*[*^$|!~]?="), a.querySelectorAll(":enabled").length || o.push(":enabled", ":disabled"), a.querySelectorAll("*,:x"), o.push(",.*:");
              })), (c.matchesSelector = Y.test(q = m.webkitMatchesSelector || m.mozMatchesSelector || m.oMatchesSelector || m.msMatchesSelector)) && gb(function (a) {
                  c.disconnectedMatch = q.call(a, "div"), q.call(a, "[s!='']:x"), p.push("!=", O);
              }), o = o.length && new RegExp(o.join("|")), p = p.length && new RegExp(p.join("|")), b = Y.test(m.compareDocumentPosition), r = b || Y.test(m.contains) ? function (a, b) {
                  var c = 9 === a.nodeType ? a.documentElement : a,
                      d = b && b.parentNode;return a === d || !(!d || 1 !== d.nodeType || !(c.contains ? c.contains(d) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d)));
              } : function (a, b) {
                  if (b) while (b = b.parentNode) {
                      if (b === a) return !0;
                  }return !1;
              }, z = b ? function (a, b) {
                  if (a === b) return j = !0, 0;var d = !a.compareDocumentPosition - !b.compareDocumentPosition;return d ? d : (d = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1, 1 & d || !c.sortDetached && b.compareDocumentPosition(a) === d ? a === e || a.ownerDocument === t && r(t, a) ? -1 : b === e || b.ownerDocument === t && r(t, b) ? 1 : i ? I.call(i, a) - I.call(i, b) : 0 : 4 & d ? -1 : 1);
              } : function (a, b) {
                  if (a === b) return j = !0, 0;var c,
                      d = 0,
                      f = a.parentNode,
                      g = b.parentNode,
                      h = [a],
                      k = [b];if (!f || !g) return a === e ? -1 : b === e ? 1 : f ? -1 : g ? 1 : i ? I.call(i, a) - I.call(i, b) : 0;if (f === g) return ib(a, b);c = a;while (c = c.parentNode) {
                      h.unshift(c);
                  }c = b;while (c = c.parentNode) {
                      k.unshift(c);
                  }while (h[d] === k[d]) {
                      d++;
                  }return d ? ib(h[d], k[d]) : h[d] === t ? -1 : k[d] === t ? 1 : 0;
              }, e) : l;
          }, db.matches = function (a, b) {
              return db(a, null, null, b);
          }, db.matchesSelector = function (a, b) {
              if ((a.ownerDocument || a) !== l && k(a), b = b.replace(S, "='$1']"), !(!c.matchesSelector || !n || p && p.test(b) || o && o.test(b))) try {
                  var d = q.call(a, b);if (d || c.disconnectedMatch || a.document && 11 !== a.document.nodeType) return d;
              } catch (e) {}return db(b, l, null, [a]).length > 0;
          }, db.contains = function (a, b) {
              return (a.ownerDocument || a) !== l && k(a), r(a, b);
          }, db.attr = function (a, b) {
              (a.ownerDocument || a) !== l && k(a);var e = d.attrHandle[b.toLowerCase()],
                  f = e && C.call(d.attrHandle, b.toLowerCase()) ? e(a, b, !n) : void 0;return void 0 !== f ? f : c.attributes || !n ? a.getAttribute(b) : (f = a.getAttributeNode(b)) && f.specified ? f.value : null;
          }, db.error = function (a) {
              throw new Error("Syntax error, unrecognized expression: " + a);
          }, db.uniqueSort = function (a) {
              var b,
                  d = [],
                  e = 0,
                  f = 0;if (j = !c.detectDuplicates, i = !c.sortStable && a.slice(0), a.sort(z), j) {
                  while (b = a[f++]) {
                      b === a[f] && (e = d.push(f));
                  }while (e--) {
                      a.splice(d[e], 1);
                  }
              }return i = null, a;
          }, e = db.getText = function (a) {
              var b,
                  c = "",
                  d = 0,
                  f = a.nodeType;if (f) {
                  if (1 === f || 9 === f || 11 === f) {
                      if ("string" == typeof a.textContent) return a.textContent;for (a = a.firstChild; a; a = a.nextSibling) {
                          c += e(a);
                      }
                  } else if (3 === f || 4 === f) return a.nodeValue;
              } else while (b = a[d++]) {
                  c += e(b);
              }return c;
          }, d = db.selectors = { cacheLength: 50, createPseudo: fb, match: V, attrHandle: {}, find: {}, relative: { ">": { dir: "parentNode", first: !0 }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: !0 }, "~": { dir: "previousSibling" } }, preFilter: { ATTR: function ATTR(a) {
                      return a[1] = a[1].replace(ab, bb), a[3] = (a[4] || a[5] || "").replace(ab, bb), "~=" === a[2] && (a[3] = " " + a[3] + " "), a.slice(0, 4);
                  }, CHILD: function CHILD(a) {
                      return a[1] = a[1].toLowerCase(), "nth" === a[1].slice(0, 3) ? (a[3] || db.error(a[0]), a[4] = +(a[4] ? a[5] + (a[6] || 1) : 2 * ("even" === a[3] || "odd" === a[3])), a[5] = +(a[7] + a[8] || "odd" === a[3])) : a[3] && db.error(a[0]), a;
                  }, PSEUDO: function PSEUDO(a) {
                      var b,
                          c = !a[5] && a[2];return V.CHILD.test(a[0]) ? null : (a[3] && void 0 !== a[4] ? a[2] = a[4] : c && T.test(c) && (b = ob(c, !0)) && (b = c.indexOf(")", c.length - b) - c.length) && (a[0] = a[0].slice(0, b), a[2] = c.slice(0, b)), a.slice(0, 3));
                  } }, filter: { TAG: function TAG(a) {
                      var b = a.replace(ab, bb).toLowerCase();return "*" === a ? function () {
                          return !0;
                      } : function (a) {
                          return a.nodeName && a.nodeName.toLowerCase() === b;
                      };
                  }, CLASS: function CLASS(a) {
                      var b = w[a + " "];return b || (b = new RegExp("(^|" + K + ")" + a + "(" + K + "|$)")) && w(a, function (a) {
                          return b.test("string" == typeof a.className && a.className || _typeof(a.getAttribute) !== A && a.getAttribute("class") || "");
                      });
                  }, ATTR: function ATTR(a, b, c) {
                      return function (d) {
                          var e = db.attr(d, a);return null == e ? "!=" === b : b ? (e += "", "=" === b ? e === c : "!=" === b ? e !== c : "^=" === b ? c && 0 === e.indexOf(c) : "*=" === b ? c && e.indexOf(c) > -1 : "$=" === b ? c && e.slice(-c.length) === c : "~=" === b ? (" " + e + " ").indexOf(c) > -1 : "|=" === b ? e === c || e.slice(0, c.length + 1) === c + "-" : !1) : !0;
                      };
                  }, CHILD: function CHILD(a, b, c, d, e) {
                      var f = "nth" !== a.slice(0, 3),
                          g = "last" !== a.slice(-4),
                          h = "of-type" === b;return 1 === d && 0 === e ? function (a) {
                          return !!a.parentNode;
                      } : function (b, c, i) {
                          var j,
                              k,
                              l,
                              m,
                              n,
                              o,
                              p = f !== g ? "nextSibling" : "previousSibling",
                              q = b.parentNode,
                              r = h && b.nodeName.toLowerCase(),
                              t = !i && !h;if (q) {
                              if (f) {
                                  while (p) {
                                      l = b;while (l = l[p]) {
                                          if (h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) return !1;
                                      }o = p = "only" === a && !o && "nextSibling";
                                  }return !0;
                              }if (o = [g ? q.firstChild : q.lastChild], g && t) {
                                  k = q[s] || (q[s] = {}), j = k[a] || [], n = j[0] === u && j[1], m = j[0] === u && j[2], l = n && q.childNodes[n];while (l = ++n && l && l[p] || (m = n = 0) || o.pop()) {
                                      if (1 === l.nodeType && ++m && l === b) {
                                          k[a] = [u, n, m];break;
                                      }
                                  }
                              } else if (t && (j = (b[s] || (b[s] = {}))[a]) && j[0] === u) m = j[1];else while (l = ++n && l && l[p] || (m = n = 0) || o.pop()) {
                                  if ((h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) && ++m && (t && ((l[s] || (l[s] = {}))[a] = [u, m]), l === b)) break;
                              }return m -= e, m === d || m % d === 0 && m / d >= 0;
                          }
                      };
                  }, PSEUDO: function PSEUDO(a, b) {
                      var c,
                          e = d.pseudos[a] || d.setFilters[a.toLowerCase()] || db.error("unsupported pseudo: " + a);return e[s] ? e(b) : e.length > 1 ? (c = [a, a, "", b], d.setFilters.hasOwnProperty(a.toLowerCase()) ? fb(function (a, c) {
                          var d,
                              f = e(a, b),
                              g = f.length;while (g--) {
                              d = I.call(a, f[g]), a[d] = !(c[d] = f[g]);
                          }
                      }) : function (a) {
                          return e(a, 0, c);
                      }) : e;
                  } }, pseudos: { not: fb(function (a) {
                      var b = [],
                          c = [],
                          d = g(a.replace(P, "$1"));return d[s] ? fb(function (a, b, c, e) {
                          var f,
                              g = d(a, null, e, []),
                              h = a.length;while (h--) {
                              (f = g[h]) && (a[h] = !(b[h] = f));
                          }
                      }) : function (a, e, f) {
                          return b[0] = a, d(b, null, f, c), !c.pop();
                      };
                  }), has: fb(function (a) {
                      return function (b) {
                          return db(a, b).length > 0;
                      };
                  }), contains: fb(function (a) {
                      return function (b) {
                          return (b.textContent || b.innerText || e(b)).indexOf(a) > -1;
                      };
                  }), lang: fb(function (a) {
                      return U.test(a || "") || db.error("unsupported lang: " + a), a = a.replace(ab, bb).toLowerCase(), function (b) {
                          var c;do {
                              if (c = n ? b.lang : b.getAttribute("xml:lang") || b.getAttribute("lang")) return c = c.toLowerCase(), c === a || 0 === c.indexOf(a + "-");
                          } while ((b = b.parentNode) && 1 === b.nodeType);return !1;
                      };
                  }), target: function target(b) {
                      var c = a.location && a.location.hash;return c && c.slice(1) === b.id;
                  }, root: function root(a) {
                      return a === m;
                  }, focus: function focus(a) {
                      return a === l.activeElement && (!l.hasFocus || l.hasFocus()) && !!(a.type || a.href || ~a.tabIndex);
                  }, enabled: function enabled(a) {
                      return a.disabled === !1;
                  }, disabled: function disabled(a) {
                      return a.disabled === !0;
                  }, checked: function checked(a) {
                      var b = a.nodeName.toLowerCase();return "input" === b && !!a.checked || "option" === b && !!a.selected;
                  }, selected: function selected(a) {
                      return a.parentNode && a.parentNode.selectedIndex, a.selected === !0;
                  }, empty: function empty(a) {
                      for (a = a.firstChild; a; a = a.nextSibling) {
                          if (a.nodeType < 6) return !1;
                      }return !0;
                  }, parent: function parent(a) {
                      return !d.pseudos.empty(a);
                  }, header: function header(a) {
                      return X.test(a.nodeName);
                  }, input: function input(a) {
                      return W.test(a.nodeName);
                  }, button: function button(a) {
                      var b = a.nodeName.toLowerCase();return "input" === b && "button" === a.type || "button" === b;
                  }, text: function text(a) {
                      var b;return "input" === a.nodeName.toLowerCase() && "text" === a.type && (null == (b = a.getAttribute("type")) || "text" === b.toLowerCase());
                  }, first: lb(function () {
                      return [0];
                  }), last: lb(function (a, b) {
                      return [b - 1];
                  }), eq: lb(function (a, b, c) {
                      return [0 > c ? c + b : c];
                  }), even: lb(function (a, b) {
                      for (var c = 0; b > c; c += 2) {
                          a.push(c);
                      }return a;
                  }), odd: lb(function (a, b) {
                      for (var c = 1; b > c; c += 2) {
                          a.push(c);
                      }return a;
                  }), lt: lb(function (a, b, c) {
                      for (var d = 0 > c ? c + b : c; --d >= 0;) {
                          a.push(d);
                      }return a;
                  }), gt: lb(function (a, b, c) {
                      for (var d = 0 > c ? c + b : c; ++d < b;) {
                          a.push(d);
                      }return a;
                  }) } }, d.pseudos.nth = d.pseudos.eq;for (b in { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) {
              d.pseudos[b] = jb(b);
          }for (b in { submit: !0, reset: !0 }) {
              d.pseudos[b] = kb(b);
          }function nb() {}nb.prototype = d.filters = d.pseudos, d.setFilters = new nb();function ob(a, b) {
              var c,
                  e,
                  f,
                  g,
                  h,
                  i,
                  j,
                  k = x[a + " "];if (k) return b ? 0 : k.slice(0);h = a, i = [], j = d.preFilter;while (h) {
                  (!c || (e = Q.exec(h))) && (e && (h = h.slice(e[0].length) || h), i.push(f = [])), c = !1, (e = R.exec(h)) && (c = e.shift(), f.push({ value: c, type: e[0].replace(P, " ") }), h = h.slice(c.length));for (g in d.filter) {
                      !(e = V[g].exec(h)) || j[g] && !(e = j[g](e)) || (c = e.shift(), f.push({ value: c, type: g, matches: e }), h = h.slice(c.length));
                  }if (!c) break;
              }return b ? h.length : h ? db.error(a) : x(a, i).slice(0);
          }function pb(a) {
              for (var b = 0, c = a.length, d = ""; c > b; b++) {
                  d += a[b].value;
              }return d;
          }function qb(a, b, c) {
              var d = b.dir,
                  e = c && "parentNode" === d,
                  f = v++;return b.first ? function (b, c, f) {
                  while (b = b[d]) {
                      if (1 === b.nodeType || e) return a(b, c, f);
                  }
              } : function (b, c, g) {
                  var h,
                      i,
                      j = [u, f];if (g) {
                      while (b = b[d]) {
                          if ((1 === b.nodeType || e) && a(b, c, g)) return !0;
                      }
                  } else while (b = b[d]) {
                      if (1 === b.nodeType || e) {
                          if (i = b[s] || (b[s] = {}), (h = i[d]) && h[0] === u && h[1] === f) return j[2] = h[2];if (i[d] = j, j[2] = a(b, c, g)) return !0;
                      }
                  }
              };
          }function rb(a) {
              return a.length > 1 ? function (b, c, d) {
                  var e = a.length;while (e--) {
                      if (!a[e](b, c, d)) return !1;
                  }return !0;
              } : a[0];
          }function sb(a, b, c, d, e) {
              for (var f, g = [], h = 0, i = a.length, j = null != b; i > h; h++) {
                  (f = a[h]) && (!c || c(f, d, e)) && (g.push(f), j && b.push(h));
              }return g;
          }function tb(a, b, c, d, e, f) {
              return d && !d[s] && (d = tb(d)), e && !e[s] && (e = tb(e, f)), fb(function (f, g, h, i) {
                  var j,
                      k,
                      l,
                      m = [],
                      n = [],
                      o = g.length,
                      p = f || wb(b || "*", h.nodeType ? [h] : h, []),
                      q = !a || !f && b ? p : sb(p, m, a, h, i),
                      r = c ? e || (f ? a : o || d) ? [] : g : q;if (c && c(q, r, h, i), d) {
                      j = sb(r, n), d(j, [], h, i), k = j.length;while (k--) {
                          (l = j[k]) && (r[n[k]] = !(q[n[k]] = l));
                      }
                  }if (f) {
                      if (e || a) {
                          if (e) {
                              j = [], k = r.length;while (k--) {
                                  (l = r[k]) && j.push(q[k] = l);
                              }e(null, r = [], j, i);
                          }k = r.length;while (k--) {
                              (l = r[k]) && (j = e ? I.call(f, l) : m[k]) > -1 && (f[j] = !(g[j] = l));
                          }
                      }
                  } else r = sb(r === g ? r.splice(o, r.length) : r), e ? e(null, g, r, i) : G.apply(g, r);
              });
          }function ub(a) {
              for (var b, c, e, f = a.length, g = d.relative[a[0].type], i = g || d.relative[" "], j = g ? 1 : 0, k = qb(function (a) {
                  return a === b;
              }, i, !0), l = qb(function (a) {
                  return I.call(b, a) > -1;
              }, i, !0), m = [function (a, c, d) {
                  return !g && (d || c !== h) || ((b = c).nodeType ? k(a, c, d) : l(a, c, d));
              }]; f > j; j++) {
                  if (c = d.relative[a[j].type]) m = [qb(rb(m), c)];else {
                      if (c = d.filter[a[j].type].apply(null, a[j].matches), c[s]) {
                          for (e = ++j; f > e; e++) {
                              if (d.relative[a[e].type]) break;
                          }return tb(j > 1 && rb(m), j > 1 && pb(a.slice(0, j - 1).concat({ value: " " === a[j - 2].type ? "*" : "" })).replace(P, "$1"), c, e > j && ub(a.slice(j, e)), f > e && ub(a = a.slice(e)), f > e && pb(a));
                      }m.push(c);
                  }
              }return rb(m);
          }function vb(a, b) {
              var c = b.length > 0,
                  e = a.length > 0,
                  f = function f(_f, g, i, j, k) {
                  var m,
                      n,
                      o,
                      p = 0,
                      q = "0",
                      r = _f && [],
                      s = [],
                      t = h,
                      v = _f || e && d.find.TAG("*", k),
                      w = u += null == t ? 1 : Math.random() || .1,
                      x = v.length;for (k && (h = g !== l && g); q !== x && null != (m = v[q]); q++) {
                      if (e && m) {
                          n = 0;while (o = a[n++]) {
                              if (o(m, g, i)) {
                                  j.push(m);break;
                              }
                          }k && (u = w);
                      }c && ((m = !o && m) && p--, _f && r.push(m));
                  }if (p += q, c && q !== p) {
                      n = 0;while (o = b[n++]) {
                          o(r, s, g, i);
                      }if (_f) {
                          if (p > 0) while (q--) {
                              r[q] || s[q] || (s[q] = E.call(j));
                          }s = sb(s);
                      }G.apply(j, s), k && !_f && s.length > 0 && p + b.length > 1 && db.uniqueSort(j);
                  }return k && (u = w, h = t), r;
              };return c ? fb(f) : f;
          }g = db.compile = function (a, b) {
              var c,
                  d = [],
                  e = [],
                  f = y[a + " "];if (!f) {
                  b || (b = ob(a)), c = b.length;while (c--) {
                      f = ub(b[c]), f[s] ? d.push(f) : e.push(f);
                  }f = y(a, vb(e, d));
              }return f;
          };function wb(a, b, c) {
              for (var d = 0, e = b.length; e > d; d++) {
                  db(a, b[d], c);
              }return c;
          }function xb(a, b, e, f) {
              var h,
                  i,
                  j,
                  k,
                  l,
                  m = ob(a);if (!f && 1 === m.length) {
                  if (i = m[0] = m[0].slice(0), i.length > 2 && "ID" === (j = i[0]).type && c.getById && 9 === b.nodeType && n && d.relative[i[1].type]) {
                      if (b = (d.find.ID(j.matches[0].replace(ab, bb), b) || [])[0], !b) return e;a = a.slice(i.shift().value.length);
                  }h = V.needsContext.test(a) ? 0 : i.length;while (h--) {
                      if (j = i[h], d.relative[k = j.type]) break;if ((l = d.find[k]) && (f = l(j.matches[0].replace(ab, bb), $.test(i[0].type) && mb(b.parentNode) || b))) {
                          if (i.splice(h, 1), a = f.length && pb(i), !a) return G.apply(e, f), e;break;
                      }
                  }
              }return g(a, m)(f, b, !n, e, $.test(a) && mb(b.parentNode) || b), e;
          }return c.sortStable = s.split("").sort(z).join("") === s, c.detectDuplicates = !!j, k(), c.sortDetached = gb(function (a) {
              return 1 & a.compareDocumentPosition(l.createElement("div"));
          }), gb(function (a) {
              return a.innerHTML = "<a href='#'></a>", "#" === a.firstChild.getAttribute("href");
          }) || hb("type|href|height|width", function (a, b, c) {
              return c ? void 0 : a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2);
          }), c.attributes && gb(function (a) {
              return a.innerHTML = "<input/>", a.firstChild.setAttribute("value", ""), "" === a.firstChild.getAttribute("value");
          }) || hb("value", function (a, b, c) {
              return c || "input" !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue;
          }), gb(function (a) {
              return null == a.getAttribute("disabled");
          }) || hb(J, function (a, b, c) {
              var d;return c ? void 0 : a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null;
          }), db;
      }(a);n.find = t, n.expr = t.selectors, n.expr[":"] = n.expr.pseudos, n.unique = t.uniqueSort, n.text = t.getText, n.isXMLDoc = t.isXML, n.contains = t.contains;var u = n.expr.match.needsContext,
          v = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
          w = /^.[^:#\[\.,]*$/;function x(a, b, c) {
          if (n.isFunction(b)) return n.grep(a, function (a, d) {
              return !!b.call(a, d, a) !== c;
          });if (b.nodeType) return n.grep(a, function (a) {
              return a === b !== c;
          });if ("string" == typeof b) {
              if (w.test(b)) return n.filter(b, a, c);b = n.filter(b, a);
          }return n.grep(a, function (a) {
              return n.inArray(a, b) >= 0 !== c;
          });
      }n.filter = function (a, b, c) {
          var d = b[0];return c && (a = ":not(" + a + ")"), 1 === b.length && 1 === d.nodeType ? n.find.matchesSelector(d, a) ? [d] : [] : n.find.matches(a, n.grep(b, function (a) {
              return 1 === a.nodeType;
          }));
      }, n.fn.extend({ find: function find(a) {
              var b,
                  c = [],
                  d = this,
                  e = d.length;if ("string" != typeof a) return this.pushStack(n(a).filter(function () {
                  for (b = 0; e > b; b++) {
                      if (n.contains(d[b], this)) return !0;
                  }
              }));for (b = 0; e > b; b++) {
                  n.find(a, d[b], c);
              }return c = this.pushStack(e > 1 ? n.unique(c) : c), c.selector = this.selector ? this.selector + " " + a : a, c;
          }, filter: function filter(a) {
              return this.pushStack(x(this, a || [], !1));
          }, not: function not(a) {
              return this.pushStack(x(this, a || [], !0));
          }, is: function is(a) {
              return !!x(this, "string" == typeof a && u.test(a) ? n(a) : a || [], !1).length;
          } });var y,
          z = a.document,
          A = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
          B = n.fn.init = function (a, b) {
          var c, d;if (!a) return this;if ("string" == typeof a) {
              if (c = "<" === a.charAt(0) && ">" === a.charAt(a.length - 1) && a.length >= 3 ? [null, a, null] : A.exec(a), !c || !c[1] && b) return !b || b.jquery ? (b || y).find(a) : this.constructor(b).find(a);if (c[1]) {
                  if (b = b instanceof n ? b[0] : b, n.merge(this, n.parseHTML(c[1], b && b.nodeType ? b.ownerDocument || b : z, !0)), v.test(c[1]) && n.isPlainObject(b)) for (c in b) {
                      n.isFunction(this[c]) ? this[c](b[c]) : this.attr(c, b[c]);
                  }return this;
              }if (d = z.getElementById(c[2]), d && d.parentNode) {
                  if (d.id !== c[2]) return y.find(a);this.length = 1, this[0] = d;
              }return this.context = z, this.selector = a, this;
          }return a.nodeType ? (this.context = this[0] = a, this.length = 1, this) : n.isFunction(a) ? "undefined" != typeof y.ready ? y.ready(a) : a(n) : (void 0 !== a.selector && (this.selector = a.selector, this.context = a.context), n.makeArray(a, this));
      };B.prototype = n.fn, y = n(z);var C = /^(?:parents|prev(?:Until|All))/,
          D = { children: !0, contents: !0, next: !0, prev: !0 };n.extend({ dir: function dir(a, b, c) {
              var d = [],
                  e = a[b];while (e && 9 !== e.nodeType && (void 0 === c || 1 !== e.nodeType || !n(e).is(c))) {
                  1 === e.nodeType && d.push(e), e = e[b];
              }return d;
          }, sibling: function sibling(a, b) {
              for (var c = []; a; a = a.nextSibling) {
                  1 === a.nodeType && a !== b && c.push(a);
              }return c;
          } }), n.fn.extend({ has: function has(a) {
              var b,
                  c = n(a, this),
                  d = c.length;return this.filter(function () {
                  for (b = 0; d > b; b++) {
                      if (n.contains(this, c[b])) return !0;
                  }
              });
          }, closest: function closest(a, b) {
              for (var c, d = 0, e = this.length, f = [], g = u.test(a) || "string" != typeof a ? n(a, b || this.context) : 0; e > d; d++) {
                  for (c = this[d]; c && c !== b; c = c.parentNode) {
                      if (c.nodeType < 11 && (g ? g.index(c) > -1 : 1 === c.nodeType && n.find.matchesSelector(c, a))) {
                          f.push(c);break;
                      }
                  }
              }return this.pushStack(f.length > 1 ? n.unique(f) : f);
          }, index: function index(a) {
              return a ? "string" == typeof a ? n.inArray(this[0], n(a)) : n.inArray(a.jquery ? a[0] : a, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1;
          }, add: function add(a, b) {
              return this.pushStack(n.unique(n.merge(this.get(), n(a, b))));
          }, addBack: function addBack(a) {
              return this.add(null == a ? this.prevObject : this.prevObject.filter(a));
          } });function E(a, b) {
          do {
              a = a[b];
          } while (a && 1 !== a.nodeType);return a;
      }n.each({ parent: function parent(a) {
              var b = a.parentNode;return b && 11 !== b.nodeType ? b : null;
          }, parents: function parents(a) {
              return n.dir(a, "parentNode");
          }, parentsUntil: function parentsUntil(a, b, c) {
              return n.dir(a, "parentNode", c);
          }, next: function next(a) {
              return E(a, "nextSibling");
          }, prev: function prev(a) {
              return E(a, "previousSibling");
          }, nextAll: function nextAll(a) {
              return n.dir(a, "nextSibling");
          }, prevAll: function prevAll(a) {
              return n.dir(a, "previousSibling");
          }, nextUntil: function nextUntil(a, b, c) {
              return n.dir(a, "nextSibling", c);
          }, prevUntil: function prevUntil(a, b, c) {
              return n.dir(a, "previousSibling", c);
          }, siblings: function siblings(a) {
              return n.sibling((a.parentNode || {}).firstChild, a);
          }, children: function children(a) {
              return n.sibling(a.firstChild);
          }, contents: function contents(a) {
              return n.nodeName(a, "iframe") ? a.contentDocument || a.contentWindow.document : n.merge([], a.childNodes);
          } }, function (a, b) {
          n.fn[a] = function (c, d) {
              var e = n.map(this, b, c);return "Until" !== a.slice(-5) && (d = c), d && "string" == typeof d && (e = n.filter(d, e)), this.length > 1 && (D[a] || (e = n.unique(e)), C.test(a) && (e = e.reverse())), this.pushStack(e);
          };
      });var F = /\S+/g,
          G = {};function H(a) {
          var b = G[a] = {};return n.each(a.match(F) || [], function (a, c) {
              b[c] = !0;
          }), b;
      }n.Callbacks = function (a) {
          a = "string" == typeof a ? G[a] || H(a) : n.extend({}, a);var b,
              c,
              d,
              e,
              f,
              g,
              h = [],
              i = !a.once && [],
              j = function j(l) {
              for (c = a.memory && l, d = !0, f = g || 0, g = 0, e = h.length, b = !0; h && e > f; f++) {
                  if (h[f].apply(l[0], l[1]) === !1 && a.stopOnFalse) {
                      c = !1;break;
                  }
              }b = !1, h && (i ? i.length && j(i.shift()) : c ? h = [] : k.disable());
          },
              k = { add: function add() {
                  if (h) {
                      var d = h.length;!function f(b) {
                          n.each(b, function (b, c) {
                              var d = n.type(c);"function" === d ? a.unique && k.has(c) || h.push(c) : c && c.length && "string" !== d && f(c);
                          });
                      }(arguments), b ? e = h.length : c && (g = d, j(c));
                  }return this;
              }, remove: function remove() {
                  return h && n.each(arguments, function (a, c) {
                      var d;while ((d = n.inArray(c, h, d)) > -1) {
                          h.splice(d, 1), b && (e >= d && e--, f >= d && f--);
                      }
                  }), this;
              }, has: function has(a) {
                  return a ? n.inArray(a, h) > -1 : !(!h || !h.length);
              }, empty: function empty() {
                  return h = [], e = 0, this;
              }, disable: function disable() {
                  return h = i = c = void 0, this;
              }, disabled: function disabled() {
                  return !h;
              }, lock: function lock() {
                  return i = void 0, c || k.disable(), this;
              }, locked: function locked() {
                  return !i;
              }, fireWith: function fireWith(a, c) {
                  return !h || d && !i || (c = c || [], c = [a, c.slice ? c.slice() : c], b ? i.push(c) : j(c)), this;
              }, fire: function fire() {
                  return k.fireWith(this, arguments), this;
              }, fired: function fired() {
                  return !!d;
              } };return k;
      }, n.extend({ Deferred: function Deferred(a) {
              var b = [["resolve", "done", n.Callbacks("once memory"), "resolved"], ["reject", "fail", n.Callbacks("once memory"), "rejected"], ["notify", "progress", n.Callbacks("memory")]],
                  c = "pending",
                  d = { state: function state() {
                      return c;
                  }, always: function always() {
                      return e.done(arguments).fail(arguments), this;
                  }, then: function then() {
                      var a = arguments;return n.Deferred(function (c) {
                          n.each(b, function (b, f) {
                              var g = n.isFunction(a[b]) && a[b];e[f[1]](function () {
                                  var a = g && g.apply(this, arguments);a && n.isFunction(a.promise) ? a.promise().done(c.resolve).fail(c.reject).progress(c.notify) : c[f[0] + "With"](this === d ? c.promise() : this, g ? [a] : arguments);
                              });
                          }), a = null;
                      }).promise();
                  }, promise: function promise(a) {
                      return null != a ? n.extend(a, d) : d;
                  } },
                  e = {};return d.pipe = d.then, n.each(b, function (a, f) {
                  var g = f[2],
                      h = f[3];d[f[1]] = g.add, h && g.add(function () {
                      c = h;
                  }, b[1 ^ a][2].disable, b[2][2].lock), e[f[0]] = function () {
                      return e[f[0] + "With"](this === e ? d : this, arguments), this;
                  }, e[f[0] + "With"] = g.fireWith;
              }), d.promise(e), a && a.call(e, e), e;
          }, when: function when(a) {
              var b = 0,
                  c = d.call(arguments),
                  e = c.length,
                  f = 1 !== e || a && n.isFunction(a.promise) ? e : 0,
                  g = 1 === f ? a : n.Deferred(),
                  h = function h(a, b, c) {
                  return function (e) {
                      b[a] = this, c[a] = arguments.length > 1 ? d.call(arguments) : e, c === i ? g.notifyWith(b, c) : --f || g.resolveWith(b, c);
                  };
              },
                  i,
                  j,
                  k;if (e > 1) for (i = new Array(e), j = new Array(e), k = new Array(e); e > b; b++) {
                  c[b] && n.isFunction(c[b].promise) ? c[b].promise().done(h(b, k, c)).fail(g.reject).progress(h(b, j, i)) : --f;
              }return f || g.resolveWith(k, c), g.promise();
          } });var I;n.fn.ready = function (a) {
          return n.ready.promise().done(a), this;
      }, n.extend({ isReady: !1, readyWait: 1, holdReady: function holdReady(a) {
              a ? n.readyWait++ : n.ready(!0);
          }, ready: function ready(a) {
              if (a === !0 ? ! --n.readyWait : !n.isReady) {
                  if (!z.body) return setTimeout(n.ready);n.isReady = !0, a !== !0 && --n.readyWait > 0 || (I.resolveWith(z, [n]), n.fn.trigger && n(z).trigger("ready").off("ready"));
              }
          } });function J() {
          z.addEventListener ? (z.removeEventListener("DOMContentLoaded", K, !1), a.removeEventListener("load", K, !1)) : (z.detachEvent("onreadystatechange", K), a.detachEvent("onload", K));
      }function K() {
          (z.addEventListener || "load" === event.type || "complete" === z.readyState) && (J(), n.ready());
      }n.ready.promise = function (b) {
          if (!I) if (I = n.Deferred(), "complete" === z.readyState) setTimeout(n.ready);else if (z.addEventListener) z.addEventListener("DOMContentLoaded", K, !1), a.addEventListener("load", K, !1);else {
              z.attachEvent("onreadystatechange", K), a.attachEvent("onload", K);var c = !1;try {
                  c = null == a.frameElement && z.documentElement;
              } catch (d) {}c && c.doScroll && !function e() {
                  if (!n.isReady) {
                      try {
                          c.doScroll("left");
                      } catch (a) {
                          return setTimeout(e, 50);
                      }J(), n.ready();
                  }
              }();
          }return I.promise(b);
      };var L = "undefined",
          M;for (M in n(l)) {
          break;
      }l.ownLast = "0" !== M, l.inlineBlockNeedsLayout = !1, n(function () {
          var a,
              b,
              c = z.getElementsByTagName("body")[0];c && (a = z.createElement("div"), a.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px", b = z.createElement("div"), c.appendChild(a).appendChild(b), _typeof(b.style.zoom) !== L && (b.style.cssText = "border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1", (l.inlineBlockNeedsLayout = 3 === b.offsetWidth) && (c.style.zoom = 1)), c.removeChild(a), a = b = null);
      }), function () {
          var a = z.createElement("div");if (null == l.deleteExpando) {
              l.deleteExpando = !0;try {
                  delete a.test;
              } catch (b) {
                  l.deleteExpando = !1;
              }
          }a = null;
      }(), n.acceptData = function (a) {
          var b = n.noData[(a.nodeName + " ").toLowerCase()],
              c = +a.nodeType || 1;return 1 !== c && 9 !== c ? !1 : !b || b !== !0 && a.getAttribute("classid") === b;
      };var N = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
          O = /([A-Z])/g;function P(a, b, c) {
          if (void 0 === c && 1 === a.nodeType) {
              var d = "data-" + b.replace(O, "-$1").toLowerCase();if (c = a.getAttribute(d), "string" == typeof c) {
                  try {
                      c = "true" === c ? !0 : "false" === c ? !1 : "null" === c ? null : +c + "" === c ? +c : N.test(c) ? n.parseJSON(c) : c;
                  } catch (e) {}n.data(a, b, c);
              } else c = void 0;
          }return c;
      }function Q(a) {
          var b;for (b in a) {
              if (("data" !== b || !n.isEmptyObject(a[b])) && "toJSON" !== b) return !1;
          }return !0;
      }function R(a, b, d, e) {
          if (n.acceptData(a)) {
              var f,
                  g,
                  h = n.expando,
                  i = a.nodeType,
                  j = i ? n.cache : a,
                  k = i ? a[h] : a[h] && h;if (k && j[k] && (e || j[k].data) || void 0 !== d || "string" != typeof b) return k || (k = i ? a[h] = c.pop() || n.guid++ : h), j[k] || (j[k] = i ? {} : { toJSON: n.noop }), ("object" == (typeof b === "undefined" ? "undefined" : _typeof(b)) || "function" == typeof b) && (e ? j[k] = n.extend(j[k], b) : j[k].data = n.extend(j[k].data, b)), g = j[k], e || (g.data || (g.data = {}), g = g.data), void 0 !== d && (g[n.camelCase(b)] = d), "string" == typeof b ? (f = g[b], null == f && (f = g[n.camelCase(b)])) : f = g, f;
          }
      }function S(a, b, c) {
          if (n.acceptData(a)) {
              var d,
                  e,
                  f = a.nodeType,
                  g = f ? n.cache : a,
                  h = f ? a[n.expando] : n.expando;if (g[h]) {
                  if (b && (d = c ? g[h] : g[h].data)) {
                      n.isArray(b) ? b = b.concat(n.map(b, n.camelCase)) : b in d ? b = [b] : (b = n.camelCase(b), b = b in d ? [b] : b.split(" ")), e = b.length;while (e--) {
                          delete d[b[e]];
                      }if (c ? !Q(d) : !n.isEmptyObject(d)) return;
                  }(c || (delete g[h].data, Q(g[h]))) && (f ? n.cleanData([a], !0) : l.deleteExpando || g != g.window ? delete g[h] : g[h] = null);
              }
          }
      }n.extend({ cache: {}, noData: { "applet ": !0, "embed ": !0, "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" }, hasData: function hasData(a) {
              return a = a.nodeType ? n.cache[a[n.expando]] : a[n.expando], !!a && !Q(a);
          }, data: function data(a, b, c) {
              return R(a, b, c);
          }, removeData: function removeData(a, b) {
              return S(a, b);
          }, _data: function _data(a, b, c) {
              return R(a, b, c, !0);
          }, _removeData: function _removeData(a, b) {
              return S(a, b, !0);
          } }), n.fn.extend({ data: function data(a, b) {
              var c,
                  d,
                  e,
                  f = this[0],
                  g = f && f.attributes;if (void 0 === a) {
                  if (this.length && (e = n.data(f), 1 === f.nodeType && !n._data(f, "parsedAttrs"))) {
                      c = g.length;while (c--) {
                          d = g[c].name, 0 === d.indexOf("data-") && (d = n.camelCase(d.slice(5)), P(f, d, e[d]));
                      }n._data(f, "parsedAttrs", !0);
                  }return e;
              }return "object" == (typeof a === "undefined" ? "undefined" : _typeof(a)) ? this.each(function () {
                  n.data(this, a);
              }) : arguments.length > 1 ? this.each(function () {
                  n.data(this, a, b);
              }) : f ? P(f, a, n.data(f, a)) : void 0;
          }, removeData: function removeData(a) {
              return this.each(function () {
                  n.removeData(this, a);
              });
          } }), n.extend({ queue: function queue(a, b, c) {
              var d;return a ? (b = (b || "fx") + "queue", d = n._data(a, b), c && (!d || n.isArray(c) ? d = n._data(a, b, n.makeArray(c)) : d.push(c)), d || []) : void 0;
          }, dequeue: function dequeue(a, b) {
              b = b || "fx";var c = n.queue(a, b),
                  d = c.length,
                  e = c.shift(),
                  f = n._queueHooks(a, b),
                  g = function g() {
                  n.dequeue(a, b);
              };"inprogress" === e && (e = c.shift(), d--), e && ("fx" === b && c.unshift("inprogress"), delete f.stop, e.call(a, g, f)), !d && f && f.empty.fire();
          }, _queueHooks: function _queueHooks(a, b) {
              var c = b + "queueHooks";return n._data(a, c) || n._data(a, c, { empty: n.Callbacks("once memory").add(function () {
                      n._removeData(a, b + "queue"), n._removeData(a, c);
                  }) });
          } }), n.fn.extend({ queue: function queue(a, b) {
              var c = 2;return "string" != typeof a && (b = a, a = "fx", c--), arguments.length < c ? n.queue(this[0], a) : void 0 === b ? this : this.each(function () {
                  var c = n.queue(this, a, b);n._queueHooks(this, a), "fx" === a && "inprogress" !== c[0] && n.dequeue(this, a);
              });
          }, dequeue: function dequeue(a) {
              return this.each(function () {
                  n.dequeue(this, a);
              });
          }, clearQueue: function clearQueue(a) {
              return this.queue(a || "fx", []);
          }, promise: function promise(a, b) {
              var c,
                  d = 1,
                  e = n.Deferred(),
                  f = this,
                  g = this.length,
                  h = function h() {
                  --d || e.resolveWith(f, [f]);
              };"string" != typeof a && (b = a, a = void 0), a = a || "fx";while (g--) {
                  c = n._data(f[g], a + "queueHooks"), c && c.empty && (d++, c.empty.add(h));
              }return h(), e.promise(b);
          } });var T = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
          U = ["Top", "Right", "Bottom", "Left"],
          V = function V(a, b) {
          return a = b || a, "none" === n.css(a, "display") || !n.contains(a.ownerDocument, a);
      },
          W = n.access = function (a, b, c, d, e, f, g) {
          var h = 0,
              i = a.length,
              j = null == c;if ("object" === n.type(c)) {
              e = !0;for (h in c) {
                  n.access(a, b, h, c[h], !0, f, g);
              }
          } else if (void 0 !== d && (e = !0, n.isFunction(d) || (g = !0), j && (g ? (b.call(a, d), b = null) : (j = b, b = function b(a, _b2, c) {
              return j.call(n(a), c);
          })), b)) for (; i > h; h++) {
              b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c)));
          }return e ? a : j ? b.call(a) : i ? b(a[0], c) : f;
      },
          X = /^(?:checkbox|radio)$/i;!function () {
          var a = z.createDocumentFragment(),
              b = z.createElement("div"),
              c = z.createElement("input");if (b.setAttribute("className", "t"), b.innerHTML = "  <link/><table></table><a href='/a'>a</a>", l.leadingWhitespace = 3 === b.firstChild.nodeType, l.tbody = !b.getElementsByTagName("tbody").length, l.htmlSerialize = !!b.getElementsByTagName("link").length, l.html5Clone = "<:nav></:nav>" !== z.createElement("nav").cloneNode(!0).outerHTML, c.type = "checkbox", c.checked = !0, a.appendChild(c), l.appendChecked = c.checked, b.innerHTML = "<textarea>x</textarea>", l.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue, a.appendChild(b), b.innerHTML = "<input type='radio' checked='checked' name='t'/>", l.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked, l.noCloneEvent = !0, b.attachEvent && (b.attachEvent("onclick", function () {
              l.noCloneEvent = !1;
          }), b.cloneNode(!0).click()), null == l.deleteExpando) {
              l.deleteExpando = !0;try {
                  delete b.test;
              } catch (d) {
                  l.deleteExpando = !1;
              }
          }a = b = c = null;
      }(), function () {
          var b,
              c,
              d = z.createElement("div");for (b in { submit: !0, change: !0, focusin: !0 }) {
              c = "on" + b, (l[b + "Bubbles"] = c in a) || (d.setAttribute(c, "t"), l[b + "Bubbles"] = d.attributes[c].expando === !1);
          }d = null;
      }();var Y = /^(?:input|select|textarea)$/i,
          Z = /^key/,
          $ = /^(?:mouse|contextmenu)|click/,
          _ = /^(?:focusinfocus|focusoutblur)$/,
          ab = /^([^.]*)(?:\.(.+)|)$/;function bb() {
          return !0;
      }function cb() {
          return !1;
      }function db() {
          try {
              return z.activeElement;
          } catch (a) {}
      }n.event = { global: {}, add: function add(a, b, c, d, e) {
              var f,
                  g,
                  h,
                  i,
                  j,
                  k,
                  l,
                  m,
                  o,
                  p,
                  q,
                  r = n._data(a);if (r) {
                  c.handler && (i = c, c = i.handler, e = i.selector), c.guid || (c.guid = n.guid++), (g = r.events) || (g = r.events = {}), (k = r.handle) || (k = r.handle = function (a) {
                      return (typeof n === "undefined" ? "undefined" : _typeof(n)) === L || a && n.event.triggered === a.type ? void 0 : n.event.dispatch.apply(k.elem, arguments);
                  }, k.elem = a), b = (b || "").match(F) || [""], h = b.length;while (h--) {
                      f = ab.exec(b[h]) || [], o = q = f[1], p = (f[2] || "").split(".").sort(), o && (j = n.event.special[o] || {}, o = (e ? j.delegateType : j.bindType) || o, j = n.event.special[o] || {}, l = n.extend({ type: o, origType: q, data: d, handler: c, guid: c.guid, selector: e, needsContext: e && n.expr.match.needsContext.test(e), namespace: p.join(".") }, i), (m = g[o]) || (m = g[o] = [], m.delegateCount = 0, j.setup && j.setup.call(a, d, p, k) !== !1 || (a.addEventListener ? a.addEventListener(o, k, !1) : a.attachEvent && a.attachEvent("on" + o, k))), j.add && (j.add.call(a, l), l.handler.guid || (l.handler.guid = c.guid)), e ? m.splice(m.delegateCount++, 0, l) : m.push(l), n.event.global[o] = !0);
                  }a = null;
              }
          }, remove: function remove(a, b, c, d, e) {
              var f,
                  g,
                  h,
                  i,
                  j,
                  k,
                  l,
                  m,
                  o,
                  p,
                  q,
                  r = n.hasData(a) && n._data(a);if (r && (k = r.events)) {
                  b = (b || "").match(F) || [""], j = b.length;while (j--) {
                      if (h = ab.exec(b[j]) || [], o = q = h[1], p = (h[2] || "").split(".").sort(), o) {
                          l = n.event.special[o] || {}, o = (d ? l.delegateType : l.bindType) || o, m = k[o] || [], h = h[2] && new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)"), i = f = m.length;while (f--) {
                              g = m[f], !e && q !== g.origType || c && c.guid !== g.guid || h && !h.test(g.namespace) || d && d !== g.selector && ("**" !== d || !g.selector) || (m.splice(f, 1), g.selector && m.delegateCount--, l.remove && l.remove.call(a, g));
                          }i && !m.length && (l.teardown && l.teardown.call(a, p, r.handle) !== !1 || n.removeEvent(a, o, r.handle), delete k[o]);
                      } else for (o in k) {
                          n.event.remove(a, o + b[j], c, d, !0);
                      }
                  }n.isEmptyObject(k) && (delete r.handle, n._removeData(a, "events"));
              }
          }, trigger: function trigger(b, c, d, e) {
              var f,
                  g,
                  h,
                  i,
                  k,
                  l,
                  m,
                  o = [d || z],
                  p = j.call(b, "type") ? b.type : b,
                  q = j.call(b, "namespace") ? b.namespace.split(".") : [];if (h = l = d = d || z, 3 !== d.nodeType && 8 !== d.nodeType && !_.test(p + n.event.triggered) && (p.indexOf(".") >= 0 && (q = p.split("."), p = q.shift(), q.sort()), g = p.indexOf(":") < 0 && "on" + p, b = b[n.expando] ? b : new n.Event(p, "object" == (typeof b === "undefined" ? "undefined" : _typeof(b)) && b), b.isTrigger = e ? 2 : 3, b.namespace = q.join("."), b.namespace_re = b.namespace ? new RegExp("(^|\\.)" + q.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, b.result = void 0, b.target || (b.target = d), c = null == c ? [b] : n.makeArray(c, [b]), k = n.event.special[p] || {}, e || !k.trigger || k.trigger.apply(d, c) !== !1)) {
                  if (!e && !k.noBubble && !n.isWindow(d)) {
                      for (i = k.delegateType || p, _.test(i + p) || (h = h.parentNode); h; h = h.parentNode) {
                          o.push(h), l = h;
                      }l === (d.ownerDocument || z) && o.push(l.defaultView || l.parentWindow || a);
                  }m = 0;while ((h = o[m++]) && !b.isPropagationStopped()) {
                      b.type = m > 1 ? i : k.bindType || p, f = (n._data(h, "events") || {})[b.type] && n._data(h, "handle"), f && f.apply(h, c), f = g && h[g], f && f.apply && n.acceptData(h) && (b.result = f.apply(h, c), b.result === !1 && b.preventDefault());
                  }if (b.type = p, !e && !b.isDefaultPrevented() && (!k._default || k._default.apply(o.pop(), c) === !1) && n.acceptData(d) && g && d[p] && !n.isWindow(d)) {
                      l = d[g], l && (d[g] = null), n.event.triggered = p;try {
                          d[p]();
                      } catch (r) {}n.event.triggered = void 0, l && (d[g] = l);
                  }return b.result;
              }
          }, dispatch: function dispatch(a) {
              a = n.event.fix(a);var b,
                  c,
                  e,
                  f,
                  g,
                  h = [],
                  i = d.call(arguments),
                  j = (n._data(this, "events") || {})[a.type] || [],
                  k = n.event.special[a.type] || {};if (i[0] = a, a.delegateTarget = this, !k.preDispatch || k.preDispatch.call(this, a) !== !1) {
                  h = n.event.handlers.call(this, a, j), b = 0;while ((f = h[b++]) && !a.isPropagationStopped()) {
                      a.currentTarget = f.elem, g = 0;while ((e = f.handlers[g++]) && !a.isImmediatePropagationStopped()) {
                          (!a.namespace_re || a.namespace_re.test(e.namespace)) && (a.handleObj = e, a.data = e.data, c = ((n.event.special[e.origType] || {}).handle || e.handler).apply(f.elem, i), void 0 !== c && (a.result = c) === !1 && (a.preventDefault(), a.stopPropagation()));
                      }
                  }return k.postDispatch && k.postDispatch.call(this, a), a.result;
              }
          }, handlers: function handlers(a, b) {
              var c,
                  d,
                  e,
                  f,
                  g = [],
                  h = b.delegateCount,
                  i = a.target;if (h && i.nodeType && (!a.button || "click" !== a.type)) for (; i != this; i = i.parentNode || this) {
                  if (1 === i.nodeType && (i.disabled !== !0 || "click" !== a.type)) {
                      for (e = [], f = 0; h > f; f++) {
                          d = b[f], c = d.selector + " ", void 0 === e[c] && (e[c] = d.needsContext ? n(c, this).index(i) >= 0 : n.find(c, this, null, [i]).length), e[c] && e.push(d);
                      }e.length && g.push({ elem: i, handlers: e });
                  }
              }return h < b.length && g.push({ elem: this, handlers: b.slice(h) }), g;
          }, fix: function fix(a) {
              if (a[n.expando]) return a;var b,
                  c,
                  d,
                  e = a.type,
                  f = a,
                  g = this.fixHooks[e];g || (this.fixHooks[e] = g = $.test(e) ? this.mouseHooks : Z.test(e) ? this.keyHooks : {}), d = g.props ? this.props.concat(g.props) : this.props, a = new n.Event(f), b = d.length;while (b--) {
                  c = d[b], a[c] = f[c];
              }return a.target || (a.target = f.srcElement || z), 3 === a.target.nodeType && (a.target = a.target.parentNode), a.metaKey = !!a.metaKey, g.filter ? g.filter(a, f) : a;
          }, props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), fixHooks: {}, keyHooks: { props: "char charCode key keyCode".split(" "), filter: function filter(a, b) {
                  return null == a.which && (a.which = null != b.charCode ? b.charCode : b.keyCode), a;
              } }, mouseHooks: { props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), filter: function filter(a, b) {
                  var c,
                      d,
                      e,
                      f = b.button,
                      g = b.fromElement;return null == a.pageX && null != b.clientX && (d = a.target.ownerDocument || z, e = d.documentElement, c = d.body, a.pageX = b.clientX + (e && e.scrollLeft || c && c.scrollLeft || 0) - (e && e.clientLeft || c && c.clientLeft || 0), a.pageY = b.clientY + (e && e.scrollTop || c && c.scrollTop || 0) - (e && e.clientTop || c && c.clientTop || 0)), !a.relatedTarget && g && (a.relatedTarget = g === a.target ? b.toElement : g), a.which || void 0 === f || (a.which = 1 & f ? 1 : 2 & f ? 3 : 4 & f ? 2 : 0), a;
              } }, special: { load: { noBubble: !0 }, focus: { trigger: function trigger() {
                      if (this !== db() && this.focus) try {
                          return this.focus(), !1;
                      } catch (a) {}
                  }, delegateType: "focusin" }, blur: { trigger: function trigger() {
                      return this === db() && this.blur ? (this.blur(), !1) : void 0;
                  }, delegateType: "focusout" }, click: { trigger: function trigger() {
                      return n.nodeName(this, "input") && "checkbox" === this.type && this.click ? (this.click(), !1) : void 0;
                  }, _default: function _default(a) {
                      return n.nodeName(a.target, "a");
                  } }, beforeunload: { postDispatch: function postDispatch(a) {
                      void 0 !== a.result && (a.originalEvent.returnValue = a.result);
                  } } }, simulate: function simulate(a, b, c, d) {
              var e = n.extend(new n.Event(), c, { type: a, isSimulated: !0, originalEvent: {} });d ? n.event.trigger(e, null, b) : n.event.dispatch.call(b, e), e.isDefaultPrevented() && c.preventDefault();
          } }, n.removeEvent = z.removeEventListener ? function (a, b, c) {
          a.removeEventListener && a.removeEventListener(b, c, !1);
      } : function (a, b, c) {
          var d = "on" + b;a.detachEvent && (_typeof(a[d]) === L && (a[d] = null), a.detachEvent(d, c));
      }, n.Event = function (a, b) {
          return this instanceof n.Event ? (a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && (a.returnValue === !1 || a.getPreventDefault && a.getPreventDefault()) ? bb : cb) : this.type = a, b && n.extend(this, b), this.timeStamp = a && a.timeStamp || n.now(), void (this[n.expando] = !0)) : new n.Event(a, b);
      }, n.Event.prototype = { isDefaultPrevented: cb, isPropagationStopped: cb, isImmediatePropagationStopped: cb, preventDefault: function preventDefault() {
              var a = this.originalEvent;this.isDefaultPrevented = bb, a && (a.preventDefault ? a.preventDefault() : a.returnValue = !1);
          }, stopPropagation: function stopPropagation() {
              var a = this.originalEvent;this.isPropagationStopped = bb, a && (a.stopPropagation && a.stopPropagation(), a.cancelBubble = !0);
          }, stopImmediatePropagation: function stopImmediatePropagation() {
              this.isImmediatePropagationStopped = bb, this.stopPropagation();
          } }, n.each({ mouseenter: "mouseover", mouseleave: "mouseout" }, function (a, b) {
          n.event.special[a] = { delegateType: b, bindType: b, handle: function handle(a) {
                  var c,
                      d = this,
                      e = a.relatedTarget,
                      f = a.handleObj;return (!e || e !== d && !n.contains(d, e)) && (a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b), c;
              } };
      }), l.submitBubbles || (n.event.special.submit = { setup: function setup() {
              return n.nodeName(this, "form") ? !1 : void n.event.add(this, "click._submit keypress._submit", function (a) {
                  var b = a.target,
                      c = n.nodeName(b, "input") || n.nodeName(b, "button") ? b.form : void 0;c && !n._data(c, "submitBubbles") && (n.event.add(c, "submit._submit", function (a) {
                      a._submit_bubble = !0;
                  }), n._data(c, "submitBubbles", !0));
              });
          }, postDispatch: function postDispatch(a) {
              a._submit_bubble && (delete a._submit_bubble, this.parentNode && !a.isTrigger && n.event.simulate("submit", this.parentNode, a, !0));
          }, teardown: function teardown() {
              return n.nodeName(this, "form") ? !1 : void n.event.remove(this, "._submit");
          } }), l.changeBubbles || (n.event.special.change = { setup: function setup() {
              return Y.test(this.nodeName) ? (("checkbox" === this.type || "radio" === this.type) && (n.event.add(this, "propertychange._change", function (a) {
                  "checked" === a.originalEvent.propertyName && (this._just_changed = !0);
              }), n.event.add(this, "click._change", function (a) {
                  this._just_changed && !a.isTrigger && (this._just_changed = !1), n.event.simulate("change", this, a, !0);
              })), !1) : void n.event.add(this, "beforeactivate._change", function (a) {
                  var b = a.target;Y.test(b.nodeName) && !n._data(b, "changeBubbles") && (n.event.add(b, "change._change", function (a) {
                      !this.parentNode || a.isSimulated || a.isTrigger || n.event.simulate("change", this.parentNode, a, !0);
                  }), n._data(b, "changeBubbles", !0));
              });
          }, handle: function handle(a) {
              var b = a.target;return this !== b || a.isSimulated || a.isTrigger || "radio" !== b.type && "checkbox" !== b.type ? a.handleObj.handler.apply(this, arguments) : void 0;
          }, teardown: function teardown() {
              return n.event.remove(this, "._change"), !Y.test(this.nodeName);
          } }), l.focusinBubbles || n.each({ focus: "focusin", blur: "focusout" }, function (a, b) {
          var c = function c(a) {
              n.event.simulate(b, a.target, n.event.fix(a), !0);
          };n.event.special[b] = { setup: function setup() {
                  var d = this.ownerDocument || this,
                      e = n._data(d, b);e || d.addEventListener(a, c, !0), n._data(d, b, (e || 0) + 1);
              }, teardown: function teardown() {
                  var d = this.ownerDocument || this,
                      e = n._data(d, b) - 1;e ? n._data(d, b, e) : (d.removeEventListener(a, c, !0), n._removeData(d, b));
              } };
      }), n.fn.extend({ on: function on(a, b, c, d, e) {
              var f, g;if ("object" == (typeof a === "undefined" ? "undefined" : _typeof(a))) {
                  "string" != typeof b && (c = c || b, b = void 0);for (f in a) {
                      this.on(f, b, c, a[f], e);
                  }return this;
              }if (null == c && null == d ? (d = b, c = b = void 0) : null == d && ("string" == typeof b ? (d = c, c = void 0) : (d = c, c = b, b = void 0)), d === !1) d = cb;else if (!d) return this;return 1 === e && (g = d, d = function d(a) {
                  return n().off(a), g.apply(this, arguments);
              }, d.guid = g.guid || (g.guid = n.guid++)), this.each(function () {
                  n.event.add(this, a, d, c, b);
              });
          }, one: function one(a, b, c, d) {
              return this.on(a, b, c, d, 1);
          }, off: function off(a, b, c) {
              var d, e;if (a && a.preventDefault && a.handleObj) return d = a.handleObj, n(a.delegateTarget).off(d.namespace ? d.origType + "." + d.namespace : d.origType, d.selector, d.handler), this;if ("object" == (typeof a === "undefined" ? "undefined" : _typeof(a))) {
                  for (e in a) {
                      this.off(e, b, a[e]);
                  }return this;
              }return (b === !1 || "function" == typeof b) && (c = b, b = void 0), c === !1 && (c = cb), this.each(function () {
                  n.event.remove(this, a, c, b);
              });
          }, trigger: function trigger(a, b) {
              return this.each(function () {
                  n.event.trigger(a, b, this);
              });
          }, triggerHandler: function triggerHandler(a, b) {
              var c = this[0];return c ? n.event.trigger(a, b, c, !0) : void 0;
          } });function eb(a) {
          var b = fb.split("|"),
              c = a.createDocumentFragment();if (c.createElement) while (b.length) {
              c.createElement(b.pop());
          }return c;
      }var fb = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
          gb = / jQuery\d+="(?:null|\d+)"/g,
          hb = new RegExp("<(?:" + fb + ")[\\s/>]", "i"),
          ib = /^\s+/,
          jb = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
          kb = /<([\w:]+)/,
          lb = /<tbody/i,
          mb = /<|&#?\w+;/,
          nb = /<(?:script|style|link)/i,
          ob = /checked\s*(?:[^=]|=\s*.checked.)/i,
          pb = /^$|\/(?:java|ecma)script/i,
          qb = /^true\/(.*)/,
          rb = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
          sb = { option: [1, "<select multiple='multiple'>", "</select>"], legend: [1, "<fieldset>", "</fieldset>"], area: [1, "<map>", "</map>"], param: [1, "<object>", "</object>"], thead: [1, "<table>", "</table>"], tr: [2, "<table><tbody>", "</tbody></table>"], col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"], td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], _default: l.htmlSerialize ? [0, "", ""] : [1, "X<div>", "</div>"] },
          tb = eb(z),
          ub = tb.appendChild(z.createElement("div"));sb.optgroup = sb.option, sb.tbody = sb.tfoot = sb.colgroup = sb.caption = sb.thead, sb.th = sb.td;function vb(a, b) {
          var c,
              d,
              e = 0,
              f = _typeof(a.getElementsByTagName) !== L ? a.getElementsByTagName(b || "*") : _typeof(a.querySelectorAll) !== L ? a.querySelectorAll(b || "*") : void 0;if (!f) for (f = [], c = a.childNodes || a; null != (d = c[e]); e++) {
              !b || n.nodeName(d, b) ? f.push(d) : n.merge(f, vb(d, b));
          }return void 0 === b || b && n.nodeName(a, b) ? n.merge([a], f) : f;
      }function wb(a) {
          X.test(a.type) && (a.defaultChecked = a.checked);
      }function xb(a, b) {
          return n.nodeName(a, "table") && n.nodeName(11 !== b.nodeType ? b : b.firstChild, "tr") ? a.getElementsByTagName("tbody")[0] || a.appendChild(a.ownerDocument.createElement("tbody")) : a;
      }function yb(a) {
          return a.type = (null !== n.find.attr(a, "type")) + "/" + a.type, a;
      }function zb(a) {
          var b = qb.exec(a.type);return b ? a.type = b[1] : a.removeAttribute("type"), a;
      }function Ab(a, b) {
          for (var c, d = 0; null != (c = a[d]); d++) {
              n._data(c, "globalEval", !b || n._data(b[d], "globalEval"));
          }
      }function Bb(a, b) {
          if (1 === b.nodeType && n.hasData(a)) {
              var c,
                  d,
                  e,
                  f = n._data(a),
                  g = n._data(b, f),
                  h = f.events;if (h) {
                  delete g.handle, g.events = {};for (c in h) {
                      for (d = 0, e = h[c].length; e > d; d++) {
                          n.event.add(b, c, h[c][d]);
                      }
                  }
              }g.data && (g.data = n.extend({}, g.data));
          }
      }function Cb(a, b) {
          var c, d, e;if (1 === b.nodeType) {
              if (c = b.nodeName.toLowerCase(), !l.noCloneEvent && b[n.expando]) {
                  e = n._data(b);for (d in e.events) {
                      n.removeEvent(b, d, e.handle);
                  }b.removeAttribute(n.expando);
              }"script" === c && b.text !== a.text ? (yb(b).text = a.text, zb(b)) : "object" === c ? (b.parentNode && (b.outerHTML = a.outerHTML), l.html5Clone && a.innerHTML && !n.trim(b.innerHTML) && (b.innerHTML = a.innerHTML)) : "input" === c && X.test(a.type) ? (b.defaultChecked = b.checked = a.checked, b.value !== a.value && (b.value = a.value)) : "option" === c ? b.defaultSelected = b.selected = a.defaultSelected : ("input" === c || "textarea" === c) && (b.defaultValue = a.defaultValue);
          }
      }n.extend({ clone: function clone(a, b, c) {
              var d,
                  e,
                  f,
                  g,
                  h,
                  i = n.contains(a.ownerDocument, a);if (l.html5Clone || n.isXMLDoc(a) || !hb.test("<" + a.nodeName + ">") ? f = a.cloneNode(!0) : (ub.innerHTML = a.outerHTML, ub.removeChild(f = ub.firstChild)), !(l.noCloneEvent && l.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || n.isXMLDoc(a))) for (d = vb(f), h = vb(a), g = 0; null != (e = h[g]); ++g) {
                  d[g] && Cb(e, d[g]);
              }if (b) if (c) for (h = h || vb(a), d = d || vb(f), g = 0; null != (e = h[g]); g++) {
                  Bb(e, d[g]);
              } else Bb(a, f);return d = vb(f, "script"), d.length > 0 && Ab(d, !i && vb(a, "script")), d = h = e = null, f;
          }, buildFragment: function buildFragment(a, b, c, d) {
              for (var e, f, g, h, i, j, k, m = a.length, o = eb(b), p = [], q = 0; m > q; q++) {
                  if (f = a[q], f || 0 === f) if ("object" === n.type(f)) n.merge(p, f.nodeType ? [f] : f);else if (mb.test(f)) {
                      h = h || o.appendChild(b.createElement("div")), i = (kb.exec(f) || ["", ""])[1].toLowerCase(), k = sb[i] || sb._default, h.innerHTML = k[1] + f.replace(jb, "<$1></$2>") + k[2], e = k[0];while (e--) {
                          h = h.lastChild;
                      }if (!l.leadingWhitespace && ib.test(f) && p.push(b.createTextNode(ib.exec(f)[0])), !l.tbody) {
                          f = "table" !== i || lb.test(f) ? "<table>" !== k[1] || lb.test(f) ? 0 : h : h.firstChild, e = f && f.childNodes.length;while (e--) {
                              n.nodeName(j = f.childNodes[e], "tbody") && !j.childNodes.length && f.removeChild(j);
                          }
                      }n.merge(p, h.childNodes), h.textContent = "";while (h.firstChild) {
                          h.removeChild(h.firstChild);
                      }h = o.lastChild;
                  } else p.push(b.createTextNode(f));
              }h && o.removeChild(h), l.appendChecked || n.grep(vb(p, "input"), wb), q = 0;while (f = p[q++]) {
                  if ((!d || -1 === n.inArray(f, d)) && (g = n.contains(f.ownerDocument, f), h = vb(o.appendChild(f), "script"), g && Ab(h), c)) {
                      e = 0;while (f = h[e++]) {
                          pb.test(f.type || "") && c.push(f);
                      }
                  }
              }return h = null, o;
          }, cleanData: function cleanData(a, b) {
              for (var d, e, f, g, h = 0, i = n.expando, j = n.cache, k = l.deleteExpando, m = n.event.special; null != (d = a[h]); h++) {
                  if ((b || n.acceptData(d)) && (f = d[i], g = f && j[f])) {
                      if (g.events) for (e in g.events) {
                          m[e] ? n.event.remove(d, e) : n.removeEvent(d, e, g.handle);
                      }j[f] && (delete j[f], k ? delete d[i] : _typeof(d.removeAttribute) !== L ? d.removeAttribute(i) : d[i] = null, c.push(f));
                  }
              }
          } }), n.fn.extend({ text: function text(a) {
              return W(this, function (a) {
                  return void 0 === a ? n.text(this) : this.empty().append((this[0] && this[0].ownerDocument || z).createTextNode(a));
              }, null, a, arguments.length);
          }, append: function append() {
              return this.domManip(arguments, function (a) {
                  if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
                      var b = xb(this, a);b.appendChild(a);
                  }
              });
          }, prepend: function prepend() {
              return this.domManip(arguments, function (a) {
                  if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
                      var b = xb(this, a);b.insertBefore(a, b.firstChild);
                  }
              });
          }, before: function before() {
              return this.domManip(arguments, function (a) {
                  this.parentNode && this.parentNode.insertBefore(a, this);
              });
          }, after: function after() {
              return this.domManip(arguments, function (a) {
                  this.parentNode && this.parentNode.insertBefore(a, this.nextSibling);
              });
          }, remove: function remove(a, b) {
              for (var c, d = a ? n.filter(a, this) : this, e = 0; null != (c = d[e]); e++) {
                  b || 1 !== c.nodeType || n.cleanData(vb(c)), c.parentNode && (b && n.contains(c.ownerDocument, c) && Ab(vb(c, "script")), c.parentNode.removeChild(c));
              }return this;
          }, empty: function empty() {
              for (var a, b = 0; null != (a = this[b]); b++) {
                  1 === a.nodeType && n.cleanData(vb(a, !1));while (a.firstChild) {
                      a.removeChild(a.firstChild);
                  }a.options && n.nodeName(a, "select") && (a.options.length = 0);
              }return this;
          }, clone: function clone(a, b) {
              return a = null == a ? !1 : a, b = null == b ? a : b, this.map(function () {
                  return n.clone(this, a, b);
              });
          }, html: function html(a) {
              return W(this, function (a) {
                  var b = this[0] || {},
                      c = 0,
                      d = this.length;if (void 0 === a) return 1 === b.nodeType ? b.innerHTML.replace(gb, "") : void 0;if (!("string" != typeof a || nb.test(a) || !l.htmlSerialize && hb.test(a) || !l.leadingWhitespace && ib.test(a) || sb[(kb.exec(a) || ["", ""])[1].toLowerCase()])) {
                      a = a.replace(jb, "<$1></$2>");try {
                          for (; d > c; c++) {
                              b = this[c] || {}, 1 === b.nodeType && (n.cleanData(vb(b, !1)), b.innerHTML = a);
                          }b = 0;
                      } catch (e) {}
                  }b && this.empty().append(a);
              }, null, a, arguments.length);
          }, replaceWith: function replaceWith() {
              var a = arguments[0];return this.domManip(arguments, function (b) {
                  a = this.parentNode, n.cleanData(vb(this)), a && a.replaceChild(b, this);
              }), a && (a.length || a.nodeType) ? this : this.remove();
          }, detach: function detach(a) {
              return this.remove(a, !0);
          }, domManip: function domManip(a, b) {
              a = e.apply([], a);var c,
                  d,
                  f,
                  g,
                  h,
                  i,
                  j = 0,
                  k = this.length,
                  m = this,
                  o = k - 1,
                  p = a[0],
                  q = n.isFunction(p);if (q || k > 1 && "string" == typeof p && !l.checkClone && ob.test(p)) return this.each(function (c) {
                  var d = m.eq(c);q && (a[0] = p.call(this, c, d.html())), d.domManip(a, b);
              });if (k && (i = n.buildFragment(a, this[0].ownerDocument, !1, this), c = i.firstChild, 1 === i.childNodes.length && (i = c), c)) {
                  for (g = n.map(vb(i, "script"), yb), f = g.length; k > j; j++) {
                      d = i, j !== o && (d = n.clone(d, !0, !0), f && n.merge(g, vb(d, "script"))), b.call(this[j], d, j);
                  }if (f) for (h = g[g.length - 1].ownerDocument, n.map(g, zb), j = 0; f > j; j++) {
                      d = g[j], pb.test(d.type || "") && !n._data(d, "globalEval") && n.contains(h, d) && (d.src ? n._evalUrl && n._evalUrl(d.src) : n.globalEval((d.text || d.textContent || d.innerHTML || "").replace(rb, "")));
                  }i = c = null;
              }return this;
          } }), n.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function (a, b) {
          n.fn[a] = function (a) {
              for (var c, d = 0, e = [], g = n(a), h = g.length - 1; h >= d; d++) {
                  c = d === h ? this : this.clone(!0), n(g[d])[b](c), f.apply(e, c.get());
              }return this.pushStack(e);
          };
      });var Db,
          Eb = {};function Fb(b, c) {
          var d = n(c.createElement(b)).appendTo(c.body),
              e = a.getDefaultComputedStyle ? a.getDefaultComputedStyle(d[0]).display : n.css(d[0], "display");return d.detach(), e;
      }function Gb(a) {
          var b = z,
              c = Eb[a];return c || (c = Fb(a, b), "none" !== c && c || (Db = (Db || n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement), b = (Db[0].contentWindow || Db[0].contentDocument).document, b.write(), b.close(), c = Fb(a, b), Db.detach()), Eb[a] = c), c;
      }!function () {
          var a,
              b,
              c = z.createElement("div"),
              d = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";c.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", a = c.getElementsByTagName("a")[0], a.style.cssText = "float:left;opacity:.5", l.opacity = /^0.5/.test(a.style.opacity), l.cssFloat = !!a.style.cssFloat, c.style.backgroundClip = "content-box", c.cloneNode(!0).style.backgroundClip = "", l.clearCloneStyle = "content-box" === c.style.backgroundClip, a = c = null, l.shrinkWrapBlocks = function () {
              var a, c, e, f;if (null == b) {
                  if (a = z.getElementsByTagName("body")[0], !a) return;f = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px", c = z.createElement("div"), e = z.createElement("div"), a.appendChild(c).appendChild(e), b = !1, _typeof(e.style.zoom) !== L && (e.style.cssText = d + ";width:1px;padding:1px;zoom:1", e.innerHTML = "<div></div>", e.firstChild.style.width = "5px", b = 3 !== e.offsetWidth), a.removeChild(c), a = c = e = null;
              }return b;
          };
      }();var Hb = /^margin/,
          Ib = new RegExp("^(" + T + ")(?!px)[a-z%]+$", "i"),
          Jb,
          Kb,
          Lb = /^(top|right|bottom|left)$/;a.getComputedStyle ? (Jb = function Jb(a) {
          return a.ownerDocument.defaultView.getComputedStyle(a, null);
      }, Kb = function Kb(a, b, c) {
          var d,
              e,
              f,
              g,
              h = a.style;return c = c || Jb(a), g = c ? c.getPropertyValue(b) || c[b] : void 0, c && ("" !== g || n.contains(a.ownerDocument, a) || (g = n.style(a, b)), Ib.test(g) && Hb.test(b) && (d = h.width, e = h.minWidth, f = h.maxWidth, h.minWidth = h.maxWidth = h.width = g, g = c.width, h.width = d, h.minWidth = e, h.maxWidth = f)), void 0 === g ? g : g + "";
      }) : z.documentElement.currentStyle && (Jb = function Jb(a) {
          return a.currentStyle;
      }, Kb = function Kb(a, b, c) {
          var d,
              e,
              f,
              g,
              h = a.style;return c = c || Jb(a), g = c ? c[b] : void 0, null == g && h && h[b] && (g = h[b]), Ib.test(g) && !Lb.test(b) && (d = h.left, e = a.runtimeStyle, f = e && e.left, f && (e.left = a.currentStyle.left), h.left = "fontSize" === b ? "1em" : g, g = h.pixelLeft + "px", h.left = d, f && (e.left = f)), void 0 === g ? g : g + "" || "auto";
      });function Mb(a, b) {
          return { get: function get() {
                  var c = a();if (null != c) return c ? void delete this.get : (this.get = b).apply(this, arguments);
              } };
      }!function () {
          var b,
              c,
              d,
              e,
              f,
              g,
              h = z.createElement("div"),
              i = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px",
              j = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";h.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", b = h.getElementsByTagName("a")[0], b.style.cssText = "float:left;opacity:.5", l.opacity = /^0.5/.test(b.style.opacity), l.cssFloat = !!b.style.cssFloat, h.style.backgroundClip = "content-box", h.cloneNode(!0).style.backgroundClip = "", l.clearCloneStyle = "content-box" === h.style.backgroundClip, b = h = null, n.extend(l, { reliableHiddenOffsets: function reliableHiddenOffsets() {
                  if (null != c) return c;var a,
                      b,
                      d,
                      e = z.createElement("div"),
                      f = z.getElementsByTagName("body")[0];if (f) return e.setAttribute("className", "t"), e.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", a = z.createElement("div"), a.style.cssText = i, f.appendChild(a).appendChild(e), e.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", b = e.getElementsByTagName("td"), b[0].style.cssText = "padding:0;margin:0;border:0;display:none", d = 0 === b[0].offsetHeight, b[0].style.display = "", b[1].style.display = "none", c = d && 0 === b[0].offsetHeight, f.removeChild(a), e = f = null, c;
              }, boxSizing: function boxSizing() {
                  return null == d && k(), d;
              }, boxSizingReliable: function boxSizingReliable() {
                  return null == e && k(), e;
              }, pixelPosition: function pixelPosition() {
                  return null == f && k(), f;
              }, reliableMarginRight: function reliableMarginRight() {
                  var b, c, d, e;if (null == g && a.getComputedStyle) {
                      if (b = z.getElementsByTagName("body")[0], !b) return;c = z.createElement("div"), d = z.createElement("div"), c.style.cssText = i, b.appendChild(c).appendChild(d), e = d.appendChild(z.createElement("div")), e.style.cssText = d.style.cssText = j, e.style.marginRight = e.style.width = "0", d.style.width = "1px", g = !parseFloat((a.getComputedStyle(e, null) || {}).marginRight), b.removeChild(c);
                  }return g;
              } });function k() {
              var b,
                  c,
                  h = z.getElementsByTagName("body")[0];h && (b = z.createElement("div"), c = z.createElement("div"), b.style.cssText = i, h.appendChild(b).appendChild(c), c.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;display:block;padding:1px;border:1px;width:4px;margin-top:1%;top:1%", n.swap(h, null != h.style.zoom ? { zoom: 1 } : {}, function () {
                  d = 4 === c.offsetWidth;
              }), e = !0, f = !1, g = !0, a.getComputedStyle && (f = "1%" !== (a.getComputedStyle(c, null) || {}).top, e = "4px" === (a.getComputedStyle(c, null) || { width: "4px" }).width), h.removeChild(b), c = h = null);
          }
      }(), n.swap = function (a, b, c, d) {
          var e,
              f,
              g = {};for (f in b) {
              g[f] = a.style[f], a.style[f] = b[f];
          }e = c.apply(a, d || []);for (f in b) {
              a.style[f] = g[f];
          }return e;
      };var Nb = /alpha\([^)]*\)/i,
          Ob = /opacity\s*=\s*([^)]*)/,
          Pb = /^(none|table(?!-c[ea]).+)/,
          Qb = new RegExp("^(" + T + ")(.*)$", "i"),
          Rb = new RegExp("^([+-])=(" + T + ")", "i"),
          Sb = { position: "absolute", visibility: "hidden", display: "block" },
          Tb = { letterSpacing: 0, fontWeight: 400 },
          Ub = ["Webkit", "O", "Moz", "ms"];function Vb(a, b) {
          if (b in a) return b;var c = b.charAt(0).toUpperCase() + b.slice(1),
              d = b,
              e = Ub.length;while (e--) {
              if (b = Ub[e] + c, b in a) return b;
          }return d;
      }function Wb(a, b) {
          for (var c, d, e, f = [], g = 0, h = a.length; h > g; g++) {
              d = a[g], d.style && (f[g] = n._data(d, "olddisplay"), c = d.style.display, b ? (f[g] || "none" !== c || (d.style.display = ""), "" === d.style.display && V(d) && (f[g] = n._data(d, "olddisplay", Gb(d.nodeName)))) : f[g] || (e = V(d), (c && "none" !== c || !e) && n._data(d, "olddisplay", e ? c : n.css(d, "display"))));
          }for (g = 0; h > g; g++) {
              d = a[g], d.style && (b && "none" !== d.style.display && "" !== d.style.display || (d.style.display = b ? f[g] || "" : "none"));
          }return a;
      }function Xb(a, b, c) {
          var d = Qb.exec(b);return d ? Math.max(0, d[1] - (c || 0)) + (d[2] || "px") : b;
      }function Yb(a, b, c, d, e) {
          for (var f = c === (d ? "border" : "content") ? 4 : "width" === b ? 1 : 0, g = 0; 4 > f; f += 2) {
              "margin" === c && (g += n.css(a, c + U[f], !0, e)), d ? ("content" === c && (g -= n.css(a, "padding" + U[f], !0, e)), "margin" !== c && (g -= n.css(a, "border" + U[f] + "Width", !0, e))) : (g += n.css(a, "padding" + U[f], !0, e), "padding" !== c && (g += n.css(a, "border" + U[f] + "Width", !0, e)));
          }return g;
      }function Zb(a, b, c) {
          var d = !0,
              e = "width" === b ? a.offsetWidth : a.offsetHeight,
              f = Jb(a),
              g = l.boxSizing() && "border-box" === n.css(a, "boxSizing", !1, f);if (0 >= e || null == e) {
              if (e = Kb(a, b, f), (0 > e || null == e) && (e = a.style[b]), Ib.test(e)) return e;d = g && (l.boxSizingReliable() || e === a.style[b]), e = parseFloat(e) || 0;
          }return e + Yb(a, b, c || (g ? "border" : "content"), d, f) + "px";
      }n.extend({ cssHooks: { opacity: { get: function get(a, b) {
                      if (b) {
                          var c = Kb(a, "opacity");return "" === c ? "1" : c;
                      }
                  } } }, cssNumber: { columnCount: !0, fillOpacity: !0, fontWeight: !0, lineHeight: !0, opacity: !0, order: !0, orphans: !0, widows: !0, zIndex: !0, zoom: !0 }, cssProps: { "float": l.cssFloat ? "cssFloat" : "styleFloat" }, style: function style(a, b, c, d) {
              if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) {
                  var e,
                      f,
                      g,
                      h = n.camelCase(b),
                      i = a.style;if (b = n.cssProps[h] || (n.cssProps[h] = Vb(i, h)), g = n.cssHooks[b] || n.cssHooks[h], void 0 === c) return g && "get" in g && void 0 !== (e = g.get(a, !1, d)) ? e : i[b];if (f = typeof c === "undefined" ? "undefined" : _typeof(c), "string" === f && (e = Rb.exec(c)) && (c = (e[1] + 1) * e[2] + parseFloat(n.css(a, b)), f = "number"), null != c && c === c && ("number" !== f || n.cssNumber[h] || (c += "px"), l.clearCloneStyle || "" !== c || 0 !== b.indexOf("background") || (i[b] = "inherit"), !(g && "set" in g && void 0 === (c = g.set(a, c, d))))) try {
                      i[b] = "", i[b] = c;
                  } catch (j) {}
              }
          }, css: function css(a, b, c, d) {
              var e,
                  f,
                  g,
                  h = n.camelCase(b);return b = n.cssProps[h] || (n.cssProps[h] = Vb(a.style, h)), g = n.cssHooks[b] || n.cssHooks[h], g && "get" in g && (f = g.get(a, !0, c)), void 0 === f && (f = Kb(a, b, d)), "normal" === f && b in Tb && (f = Tb[b]), "" === c || c ? (e = parseFloat(f), c === !0 || n.isNumeric(e) ? e || 0 : f) : f;
          } }), n.each(["height", "width"], function (a, b) {
          n.cssHooks[b] = { get: function get(a, c, d) {
                  return c ? 0 === a.offsetWidth && Pb.test(n.css(a, "display")) ? n.swap(a, Sb, function () {
                      return Zb(a, b, d);
                  }) : Zb(a, b, d) : void 0;
              }, set: function set(a, c, d) {
                  var e = d && Jb(a);return Xb(a, c, d ? Yb(a, b, d, l.boxSizing() && "border-box" === n.css(a, "boxSizing", !1, e), e) : 0);
              } };
      }), l.opacity || (n.cssHooks.opacity = { get: function get(a, b) {
              return Ob.test((b && a.currentStyle ? a.currentStyle.filter : a.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : b ? "1" : "";
          }, set: function set(a, b) {
              var c = a.style,
                  d = a.currentStyle,
                  e = n.isNumeric(b) ? "alpha(opacity=" + 100 * b + ")" : "",
                  f = d && d.filter || c.filter || "";c.zoom = 1, (b >= 1 || "" === b) && "" === n.trim(f.replace(Nb, "")) && c.removeAttribute && (c.removeAttribute("filter"), "" === b || d && !d.filter) || (c.filter = Nb.test(f) ? f.replace(Nb, e) : f + " " + e);
          } }), n.cssHooks.marginRight = Mb(l.reliableMarginRight, function (a, b) {
          return b ? n.swap(a, { display: "inline-block" }, Kb, [a, "marginRight"]) : void 0;
      }), n.each({ margin: "", padding: "", border: "Width" }, function (a, b) {
          n.cssHooks[a + b] = { expand: function expand(c) {
                  for (var d = 0, e = {}, f = "string" == typeof c ? c.split(" ") : [c]; 4 > d; d++) {
                      e[a + U[d] + b] = f[d] || f[d - 2] || f[0];
                  }return e;
              } }, Hb.test(a) || (n.cssHooks[a + b].set = Xb);
      }), n.fn.extend({ css: function css(a, b) {
              return W(this, function (a, b, c) {
                  var d,
                      e,
                      f = {},
                      g = 0;if (n.isArray(b)) {
                      for (d = Jb(a), e = b.length; e > g; g++) {
                          f[b[g]] = n.css(a, b[g], !1, d);
                      }return f;
                  }return void 0 !== c ? n.style(a, b, c) : n.css(a, b);
              }, a, b, arguments.length > 1);
          }, show: function show() {
              return Wb(this, !0);
          }, hide: function hide() {
              return Wb(this);
          }, toggle: function toggle(a) {
              return "boolean" == typeof a ? a ? this.show() : this.hide() : this.each(function () {
                  V(this) ? n(this).show() : n(this).hide();
              });
          } });function $b(a, b, c, d, e) {
          return new $b.prototype.init(a, b, c, d, e);
      }n.Tween = $b, $b.prototype = { constructor: $b, init: function init(a, b, c, d, e, f) {
              this.elem = a, this.prop = c, this.easing = e || "swing", this.options = b, this.start = this.now = this.cur(), this.end = d, this.unit = f || (n.cssNumber[c] ? "" : "px");
          }, cur: function cur() {
              var a = $b.propHooks[this.prop];return a && a.get ? a.get(this) : $b.propHooks._default.get(this);
          }, run: function run(a) {
              var b,
                  c = $b.propHooks[this.prop];return this.pos = b = this.options.duration ? n.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) : a, this.now = (this.end - this.start) * b + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), c && c.set ? c.set(this) : $b.propHooks._default.set(this), this;
          } }, $b.prototype.init.prototype = $b.prototype, $b.propHooks = { _default: { get: function get(a) {
                  var b;return null == a.elem[a.prop] || a.elem.style && null != a.elem.style[a.prop] ? (b = n.css(a.elem, a.prop, ""), b && "auto" !== b ? b : 0) : a.elem[a.prop];
              }, set: function set(a) {
                  n.fx.step[a.prop] ? n.fx.step[a.prop](a) : a.elem.style && (null != a.elem.style[n.cssProps[a.prop]] || n.cssHooks[a.prop]) ? n.style(a.elem, a.prop, a.now + a.unit) : a.elem[a.prop] = a.now;
              } } }, $b.propHooks.scrollTop = $b.propHooks.scrollLeft = { set: function set(a) {
              a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now);
          } }, n.easing = { linear: function linear(a) {
              return a;
          }, swing: function swing(a) {
              return .5 - Math.cos(a * Math.PI) / 2;
          } }, n.fx = $b.prototype.init, n.fx.step = {};var _b,
          ac,
          bc = /^(?:toggle|show|hide)$/,
          cc = new RegExp("^(?:([+-])=|)(" + T + ")([a-z%]*)$", "i"),
          dc = /queueHooks$/,
          ec = [jc],
          fc = { "*": [function (a, b) {
              var c = this.createTween(a, b),
                  d = c.cur(),
                  e = cc.exec(b),
                  f = e && e[3] || (n.cssNumber[a] ? "" : "px"),
                  g = (n.cssNumber[a] || "px" !== f && +d) && cc.exec(n.css(c.elem, a)),
                  h = 1,
                  i = 20;if (g && g[3] !== f) {
                  f = f || g[3], e = e || [], g = +d || 1;do {
                      h = h || ".5", g /= h, n.style(c.elem, a, g + f);
                  } while (h !== (h = c.cur() / d) && 1 !== h && --i);
              }return e && (g = c.start = +g || +d || 0, c.unit = f, c.end = e[1] ? g + (e[1] + 1) * e[2] : +e[2]), c;
          }] };function gc() {
          return setTimeout(function () {
              _b = void 0;
          }), _b = n.now();
      }function hc(a, b) {
          var c,
              d = { height: a },
              e = 0;for (b = b ? 1 : 0; 4 > e; e += 2 - b) {
              c = U[e], d["margin" + c] = d["padding" + c] = a;
          }return b && (d.opacity = d.width = a), d;
      }function ic(a, b, c) {
          for (var d, e = (fc[b] || []).concat(fc["*"]), f = 0, g = e.length; g > f; f++) {
              if (d = e[f].call(c, b, a)) return d;
          }
      }function jc(a, b, c) {
          var d,
              e,
              f,
              g,
              h,
              i,
              j,
              k,
              m = this,
              o = {},
              p = a.style,
              q = a.nodeType && V(a),
              r = n._data(a, "fxshow");c.queue || (h = n._queueHooks(a, "fx"), null == h.unqueued && (h.unqueued = 0, i = h.empty.fire, h.empty.fire = function () {
              h.unqueued || i();
          }), h.unqueued++, m.always(function () {
              m.always(function () {
                  h.unqueued--, n.queue(a, "fx").length || h.empty.fire();
              });
          })), 1 === a.nodeType && ("height" in b || "width" in b) && (c.overflow = [p.overflow, p.overflowX, p.overflowY], j = n.css(a, "display"), k = Gb(a.nodeName), "none" === j && (j = k), "inline" === j && "none" === n.css(a, "float") && (l.inlineBlockNeedsLayout && "inline" !== k ? p.zoom = 1 : p.display = "inline-block")), c.overflow && (p.overflow = "hidden", l.shrinkWrapBlocks() || m.always(function () {
              p.overflow = c.overflow[0], p.overflowX = c.overflow[1], p.overflowY = c.overflow[2];
          }));for (d in b) {
              if (e = b[d], bc.exec(e)) {
                  if (delete b[d], f = f || "toggle" === e, e === (q ? "hide" : "show")) {
                      if ("show" !== e || !r || void 0 === r[d]) continue;q = !0;
                  }o[d] = r && r[d] || n.style(a, d);
              }
          }if (!n.isEmptyObject(o)) {
              r ? "hidden" in r && (q = r.hidden) : r = n._data(a, "fxshow", {}), f && (r.hidden = !q), q ? n(a).show() : m.done(function () {
                  n(a).hide();
              }), m.done(function () {
                  var b;n._removeData(a, "fxshow");for (b in o) {
                      n.style(a, b, o[b]);
                  }
              });for (d in o) {
                  g = ic(q ? r[d] : 0, d, m), d in r || (r[d] = g.start, q && (g.end = g.start, g.start = "width" === d || "height" === d ? 1 : 0));
              }
          }
      }function kc(a, b) {
          var c, d, e, f, g;for (c in a) {
              if (d = n.camelCase(c), e = b[d], f = a[c], n.isArray(f) && (e = f[1], f = a[c] = f[0]), c !== d && (a[d] = f, delete a[c]), g = n.cssHooks[d], g && "expand" in g) {
                  f = g.expand(f), delete a[d];for (c in f) {
                      c in a || (a[c] = f[c], b[c] = e);
                  }
              } else b[d] = e;
          }
      }function lc(a, b, c) {
          var d,
              e,
              f = 0,
              g = ec.length,
              h = n.Deferred().always(function () {
              delete i.elem;
          }),
              i = function i() {
              if (e) return !1;for (var b = _b || gc(), c = Math.max(0, j.startTime + j.duration - b), d = c / j.duration || 0, f = 1 - d, g = 0, i = j.tweens.length; i > g; g++) {
                  j.tweens[g].run(f);
              }return h.notifyWith(a, [j, f, c]), 1 > f && i ? c : (h.resolveWith(a, [j]), !1);
          },
              j = h.promise({ elem: a, props: n.extend({}, b), opts: n.extend(!0, { specialEasing: {} }, c), originalProperties: b, originalOptions: c, startTime: _b || gc(), duration: c.duration, tweens: [], createTween: function createTween(b, c) {
                  var d = n.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing);return j.tweens.push(d), d;
              }, stop: function stop(b) {
                  var c = 0,
                      d = b ? j.tweens.length : 0;if (e) return this;for (e = !0; d > c; c++) {
                      j.tweens[c].run(1);
                  }return b ? h.resolveWith(a, [j, b]) : h.rejectWith(a, [j, b]), this;
              } }),
              k = j.props;for (kc(k, j.opts.specialEasing); g > f; f++) {
              if (d = ec[f].call(j, a, k, j.opts)) return d;
          }return n.map(k, ic, j), n.isFunction(j.opts.start) && j.opts.start.call(a, j), n.fx.timer(n.extend(i, { elem: a, anim: j, queue: j.opts.queue })), j.progress(j.opts.progress).done(j.opts.done, j.opts.complete).fail(j.opts.fail).always(j.opts.always);
      }n.Animation = n.extend(lc, { tweener: function tweener(a, b) {
              n.isFunction(a) ? (b = a, a = ["*"]) : a = a.split(" ");for (var c, d = 0, e = a.length; e > d; d++) {
                  c = a[d], fc[c] = fc[c] || [], fc[c].unshift(b);
              }
          }, prefilter: function prefilter(a, b) {
              b ? ec.unshift(a) : ec.push(a);
          } }), n.speed = function (a, b, c) {
          var d = a && "object" == (typeof a === "undefined" ? "undefined" : _typeof(a)) ? n.extend({}, a) : { complete: c || !c && b || n.isFunction(a) && a, duration: a, easing: c && b || b && !n.isFunction(b) && b };return d.duration = n.fx.off ? 0 : "number" == typeof d.duration ? d.duration : d.duration in n.fx.speeds ? n.fx.speeds[d.duration] : n.fx.speeds._default, (null == d.queue || d.queue === !0) && (d.queue = "fx"), d.old = d.complete, d.complete = function () {
              n.isFunction(d.old) && d.old.call(this), d.queue && n.dequeue(this, d.queue);
          }, d;
      }, n.fn.extend({ fadeTo: function fadeTo(a, b, c, d) {
              return this.filter(V).css("opacity", 0).show().end().animate({ opacity: b }, a, c, d);
          }, animate: function animate(a, b, c, d) {
              var e = n.isEmptyObject(a),
                  f = n.speed(b, c, d),
                  g = function g() {
                  var b = lc(this, n.extend({}, a), f);(e || n._data(this, "finish")) && b.stop(!0);
              };return g.finish = g, e || f.queue === !1 ? this.each(g) : this.queue(f.queue, g);
          }, stop: function stop(a, b, c) {
              var d = function d(a) {
                  var b = a.stop;delete a.stop, b(c);
              };return "string" != typeof a && (c = b, b = a, a = void 0), b && a !== !1 && this.queue(a || "fx", []), this.each(function () {
                  var b = !0,
                      e = null != a && a + "queueHooks",
                      f = n.timers,
                      g = n._data(this);if (e) g[e] && g[e].stop && d(g[e]);else for (e in g) {
                      g[e] && g[e].stop && dc.test(e) && d(g[e]);
                  }for (e = f.length; e--;) {
                      f[e].elem !== this || null != a && f[e].queue !== a || (f[e].anim.stop(c), b = !1, f.splice(e, 1));
                  }(b || !c) && n.dequeue(this, a);
              });
          }, finish: function finish(a) {
              return a !== !1 && (a = a || "fx"), this.each(function () {
                  var b,
                      c = n._data(this),
                      d = c[a + "queue"],
                      e = c[a + "queueHooks"],
                      f = n.timers,
                      g = d ? d.length : 0;for (c.finish = !0, n.queue(this, a, []), e && e.stop && e.stop.call(this, !0), b = f.length; b--;) {
                      f[b].elem === this && f[b].queue === a && (f[b].anim.stop(!0), f.splice(b, 1));
                  }for (b = 0; g > b; b++) {
                      d[b] && d[b].finish && d[b].finish.call(this);
                  }delete c.finish;
              });
          } }), n.each(["toggle", "show", "hide"], function (a, b) {
          var c = n.fn[b];n.fn[b] = function (a, d, e) {
              return null == a || "boolean" == typeof a ? c.apply(this, arguments) : this.animate(hc(b, !0), a, d, e);
          };
      }), n.each({ slideDown: hc("show"), slideUp: hc("hide"), slideToggle: hc("toggle"), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" } }, function (a, b) {
          n.fn[a] = function (a, c, d) {
              return this.animate(b, a, c, d);
          };
      }), n.timers = [], n.fx.tick = function () {
          var a,
              b = n.timers,
              c = 0;for (_b = n.now(); c < b.length; c++) {
              a = b[c], a() || b[c] !== a || b.splice(c--, 1);
          }b.length || n.fx.stop(), _b = void 0;
      }, n.fx.timer = function (a) {
          n.timers.push(a), a() ? n.fx.start() : n.timers.pop();
      }, n.fx.interval = 13, n.fx.start = function () {
          ac || (ac = setInterval(n.fx.tick, n.fx.interval));
      }, n.fx.stop = function () {
          clearInterval(ac), ac = null;
      }, n.fx.speeds = { slow: 600, fast: 200, _default: 400 }, n.fn.delay = function (a, b) {
          return a = n.fx ? n.fx.speeds[a] || a : a, b = b || "fx", this.queue(b, function (b, c) {
              var d = setTimeout(b, a);c.stop = function () {
                  clearTimeout(d);
              };
          });
      }, function () {
          var a,
              b,
              c,
              d,
              e = z.createElement("div");e.setAttribute("className", "t"), e.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", a = e.getElementsByTagName("a")[0], c = z.createElement("select"), d = c.appendChild(z.createElement("option")), b = e.getElementsByTagName("input")[0], a.style.cssText = "top:1px", l.getSetAttribute = "t" !== e.className, l.style = /top/.test(a.getAttribute("style")), l.hrefNormalized = "/a" === a.getAttribute("href"), l.checkOn = !!b.value, l.optSelected = d.selected, l.enctype = !!z.createElement("form").enctype, c.disabled = !0, l.optDisabled = !d.disabled, b = z.createElement("input"), b.setAttribute("value", ""), l.input = "" === b.getAttribute("value"), b.value = "t", b.setAttribute("type", "radio"), l.radioValue = "t" === b.value, a = b = c = d = e = null;
      }();var mc = /\r/g;n.fn.extend({ val: function val(a) {
              var b,
                  c,
                  d,
                  e = this[0];{
                  if (arguments.length) return d = n.isFunction(a), this.each(function (c) {
                      var e;1 === this.nodeType && (e = d ? a.call(this, c, n(this).val()) : a, null == e ? e = "" : "number" == typeof e ? e += "" : n.isArray(e) && (e = n.map(e, function (a) {
                          return null == a ? "" : a + "";
                      })), b = n.valHooks[this.type] || n.valHooks[this.nodeName.toLowerCase()], b && "set" in b && void 0 !== b.set(this, e, "value") || (this.value = e));
                  });if (e) return b = n.valHooks[e.type] || n.valHooks[e.nodeName.toLowerCase()], b && "get" in b && void 0 !== (c = b.get(e, "value")) ? c : (c = e.value, "string" == typeof c ? c.replace(mc, "") : null == c ? "" : c);
              }
          } }), n.extend({ valHooks: { option: { get: function get(a) {
                      var b = n.find.attr(a, "value");return null != b ? b : n.text(a);
                  } }, select: { get: function get(a) {
                      for (var b, c, d = a.options, e = a.selectedIndex, f = "select-one" === a.type || 0 > e, g = f ? null : [], h = f ? e + 1 : d.length, i = 0 > e ? h : f ? e : 0; h > i; i++) {
                          if (c = d[i], !(!c.selected && i !== e || (l.optDisabled ? c.disabled : null !== c.getAttribute("disabled")) || c.parentNode.disabled && n.nodeName(c.parentNode, "optgroup"))) {
                              if (b = n(c).val(), f) return b;g.push(b);
                          }
                      }return g;
                  }, set: function set(a, b) {
                      var c,
                          d,
                          e = a.options,
                          f = n.makeArray(b),
                          g = e.length;while (g--) {
                          if (d = e[g], n.inArray(n.valHooks.option.get(d), f) >= 0) try {
                              d.selected = c = !0;
                          } catch (h) {
                              d.scrollHeight;
                          } else d.selected = !1;
                      }return c || (a.selectedIndex = -1), e;
                  } } } }), n.each(["radio", "checkbox"], function () {
          n.valHooks[this] = { set: function set(a, b) {
                  return n.isArray(b) ? a.checked = n.inArray(n(a).val(), b) >= 0 : void 0;
              } }, l.checkOn || (n.valHooks[this].get = function (a) {
              return null === a.getAttribute("value") ? "on" : a.value;
          });
      });var nc,
          oc,
          pc = n.expr.attrHandle,
          qc = /^(?:checked|selected)$/i,
          rc = l.getSetAttribute,
          sc = l.input;n.fn.extend({ attr: function attr(a, b) {
              return W(this, n.attr, a, b, arguments.length > 1);
          }, removeAttr: function removeAttr(a) {
              return this.each(function () {
                  n.removeAttr(this, a);
              });
          } }), n.extend({ attr: function attr(a, b, c) {
              var d,
                  e,
                  f = a.nodeType;if (a && 3 !== f && 8 !== f && 2 !== f) return _typeof(a.getAttribute) === L ? n.prop(a, b, c) : (1 === f && n.isXMLDoc(a) || (b = b.toLowerCase(), d = n.attrHooks[b] || (n.expr.match.bool.test(b) ? oc : nc)), void 0 === c ? d && "get" in d && null !== (e = d.get(a, b)) ? e : (e = n.find.attr(a, b), null == e ? void 0 : e) : null !== c ? d && "set" in d && void 0 !== (e = d.set(a, c, b)) ? e : (a.setAttribute(b, c + ""), c) : void n.removeAttr(a, b));
          }, removeAttr: function removeAttr(a, b) {
              var c,
                  d,
                  e = 0,
                  f = b && b.match(F);if (f && 1 === a.nodeType) while (c = f[e++]) {
                  d = n.propFix[c] || c, n.expr.match.bool.test(c) ? sc && rc || !qc.test(c) ? a[d] = !1 : a[n.camelCase("default-" + c)] = a[d] = !1 : n.attr(a, c, ""), a.removeAttribute(rc ? c : d);
              }
          }, attrHooks: { type: { set: function set(a, b) {
                      if (!l.radioValue && "radio" === b && n.nodeName(a, "input")) {
                          var c = a.value;return a.setAttribute("type", b), c && (a.value = c), b;
                      }
                  } } } }), oc = { set: function set(a, b, c) {
              return b === !1 ? n.removeAttr(a, c) : sc && rc || !qc.test(c) ? a.setAttribute(!rc && n.propFix[c] || c, c) : a[n.camelCase("default-" + c)] = a[c] = !0, c;
          } }, n.each(n.expr.match.bool.source.match(/\w+/g), function (a, b) {
          var c = pc[b] || n.find.attr;pc[b] = sc && rc || !qc.test(b) ? function (a, b, d) {
              var e, f;return d || (f = pc[b], pc[b] = e, e = null != c(a, b, d) ? b.toLowerCase() : null, pc[b] = f), e;
          } : function (a, b, c) {
              return c ? void 0 : a[n.camelCase("default-" + b)] ? b.toLowerCase() : null;
          };
      }), sc && rc || (n.attrHooks.value = { set: function set(a, b, c) {
              return n.nodeName(a, "input") ? void (a.defaultValue = b) : nc && nc.set(a, b, c);
          } }), rc || (nc = { set: function set(a, b, c) {
              var d = a.getAttributeNode(c);return d || a.setAttributeNode(d = a.ownerDocument.createAttribute(c)), d.value = b += "", "value" === c || b === a.getAttribute(c) ? b : void 0;
          } }, pc.id = pc.name = pc.coords = function (a, b, c) {
          var d;return c ? void 0 : (d = a.getAttributeNode(b)) && "" !== d.value ? d.value : null;
      }, n.valHooks.button = { get: function get(a, b) {
              var c = a.getAttributeNode(b);return c && c.specified ? c.value : void 0;
          }, set: nc.set }, n.attrHooks.contenteditable = { set: function set(a, b, c) {
              nc.set(a, "" === b ? !1 : b, c);
          } }, n.each(["width", "height"], function (a, b) {
          n.attrHooks[b] = { set: function set(a, c) {
                  return "" === c ? (a.setAttribute(b, "auto"), c) : void 0;
              } };
      })), l.style || (n.attrHooks.style = { get: function get(a) {
              return a.style.cssText || void 0;
          }, set: function set(a, b) {
              return a.style.cssText = b + "";
          } });var tc = /^(?:input|select|textarea|button|object)$/i,
          uc = /^(?:a|area)$/i;n.fn.extend({ prop: function prop(a, b) {
              return W(this, n.prop, a, b, arguments.length > 1);
          }, removeProp: function removeProp(a) {
              return a = n.propFix[a] || a, this.each(function () {
                  try {
                      this[a] = void 0, delete this[a];
                  } catch (b) {}
              });
          } }), n.extend({ propFix: { "for": "htmlFor", "class": "className" }, prop: function prop(a, b, c) {
              var d,
                  e,
                  f,
                  g = a.nodeType;if (a && 3 !== g && 8 !== g && 2 !== g) return f = 1 !== g || !n.isXMLDoc(a), f && (b = n.propFix[b] || b, e = n.propHooks[b]), void 0 !== c ? e && "set" in e && void 0 !== (d = e.set(a, c, b)) ? d : a[b] = c : e && "get" in e && null !== (d = e.get(a, b)) ? d : a[b];
          }, propHooks: { tabIndex: { get: function get(a) {
                      var b = n.find.attr(a, "tabindex");return b ? parseInt(b, 10) : tc.test(a.nodeName) || uc.test(a.nodeName) && a.href ? 0 : -1;
                  } } } }), l.hrefNormalized || n.each(["href", "src"], function (a, b) {
          n.propHooks[b] = { get: function get(a) {
                  return a.getAttribute(b, 4);
              } };
      }), l.optSelected || (n.propHooks.selected = { get: function get(a) {
              var b = a.parentNode;return b && (b.selectedIndex, b.parentNode && b.parentNode.selectedIndex), null;
          } }), n.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () {
          n.propFix[this.toLowerCase()] = this;
      }), l.enctype || (n.propFix.enctype = "encoding");var vc = /[\t\r\n\f]/g;n.fn.extend({ addClass: function addClass(a) {
              var b,
                  c,
                  d,
                  e,
                  f,
                  g,
                  h = 0,
                  i = this.length,
                  j = "string" == typeof a && a;if (n.isFunction(a)) return this.each(function (b) {
                  n(this).addClass(a.call(this, b, this.className));
              });if (j) for (b = (a || "").match(F) || []; i > h; h++) {
                  if (c = this[h], d = 1 === c.nodeType && (c.className ? (" " + c.className + " ").replace(vc, " ") : " ")) {
                      f = 0;while (e = b[f++]) {
                          d.indexOf(" " + e + " ") < 0 && (d += e + " ");
                      }g = n.trim(d), c.className !== g && (c.className = g);
                  }
              }return this;
          }, removeClass: function removeClass(a) {
              var b,
                  c,
                  d,
                  e,
                  f,
                  g,
                  h = 0,
                  i = this.length,
                  j = 0 === arguments.length || "string" == typeof a && a;if (n.isFunction(a)) return this.each(function (b) {
                  n(this).removeClass(a.call(this, b, this.className));
              });if (j) for (b = (a || "").match(F) || []; i > h; h++) {
                  if (c = this[h], d = 1 === c.nodeType && (c.className ? (" " + c.className + " ").replace(vc, " ") : "")) {
                      f = 0;while (e = b[f++]) {
                          while (d.indexOf(" " + e + " ") >= 0) {
                              d = d.replace(" " + e + " ", " ");
                          }
                      }g = a ? n.trim(d) : "", c.className !== g && (c.className = g);
                  }
              }return this;
          }, toggleClass: function toggleClass(a, b) {
              var c = typeof a === "undefined" ? "undefined" : _typeof(a);return "boolean" == typeof b && "string" === c ? b ? this.addClass(a) : this.removeClass(a) : this.each(n.isFunction(a) ? function (c) {
                  n(this).toggleClass(a.call(this, c, this.className, b), b);
              } : function () {
                  if ("string" === c) {
                      var b,
                          d = 0,
                          e = n(this),
                          f = a.match(F) || [];while (b = f[d++]) {
                          e.hasClass(b) ? e.removeClass(b) : e.addClass(b);
                      }
                  } else (c === L || "boolean" === c) && (this.className && n._data(this, "__className__", this.className), this.className = this.className || a === !1 ? "" : n._data(this, "__className__") || "");
              });
          }, hasClass: function hasClass(a) {
              for (var b = " " + a + " ", c = 0, d = this.length; d > c; c++) {
                  if (1 === this[c].nodeType && (" " + this[c].className + " ").replace(vc, " ").indexOf(b) >= 0) return !0;
              }return !1;
          } }), n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function (a, b) {
          n.fn[b] = function (a, c) {
              return arguments.length > 0 ? this.on(b, null, a, c) : this.trigger(b);
          };
      }), n.fn.extend({ hover: function hover(a, b) {
              return this.mouseenter(a).mouseleave(b || a);
          }, bind: function bind(a, b, c) {
              return this.on(a, null, b, c);
          }, unbind: function unbind(a, b) {
              return this.off(a, null, b);
          }, delegate: function delegate(a, b, c, d) {
              return this.on(b, a, c, d);
          }, undelegate: function undelegate(a, b, c) {
              return 1 === arguments.length ? this.off(a, "**") : this.off(b, a || "**", c);
          } });var wc = n.now(),
          xc = /\?/,
          yc = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;n.parseJSON = function (b) {
          if (a.JSON && a.JSON.parse) return a.JSON.parse(b + "");var c,
              d = null,
              e = n.trim(b + "");return e && !n.trim(e.replace(yc, function (a, b, e, f) {
              return c && b && (d = 0), 0 === d ? a : (c = e || b, d += !f - !e, "");
          })) ? Function("return " + e)() : n.error("Invalid JSON: " + b);
      }, n.parseXML = function (b) {
          var c, d;if (!b || "string" != typeof b) return null;try {
              a.DOMParser ? (d = new DOMParser(), c = d.parseFromString(b, "text/xml")) : (c = new ActiveXObject("Microsoft.XMLDOM"), c.async = "false", c.loadXML(b));
          } catch (e) {
              c = void 0;
          }return c && c.documentElement && !c.getElementsByTagName("parsererror").length || n.error("Invalid XML: " + b), c;
      };var zc,
          Ac,
          Bc = /#.*$/,
          Cc = /([?&])_=[^&]*/,
          Dc = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
          Ec = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
          Fc = /^(?:GET|HEAD)$/,
          Gc = /^\/\//,
          Hc = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
          Ic = {},
          Jc = {},
          Kc = "*/".concat("*");try {
          Ac = location.href;
      } catch (Lc) {
          Ac = z.createElement("a"), Ac.href = "", Ac = Ac.href;
      }zc = Hc.exec(Ac.toLowerCase()) || [];function Mc(a) {
          return function (b, c) {
              "string" != typeof b && (c = b, b = "*");var d,
                  e = 0,
                  f = b.toLowerCase().match(F) || [];if (n.isFunction(c)) while (d = f[e++]) {
                  "+" === d.charAt(0) ? (d = d.slice(1) || "*", (a[d] = a[d] || []).unshift(c)) : (a[d] = a[d] || []).push(c);
              }
          };
      }function Nc(a, b, c, d) {
          var e = {},
              f = a === Jc;function g(h) {
              var i;return e[h] = !0, n.each(a[h] || [], function (a, h) {
                  var j = h(b, c, d);return "string" != typeof j || f || e[j] ? f ? !(i = j) : void 0 : (b.dataTypes.unshift(j), g(j), !1);
              }), i;
          }return g(b.dataTypes[0]) || !e["*"] && g("*");
      }function Oc(a, b) {
          var c,
              d,
              e = n.ajaxSettings.flatOptions || {};for (d in b) {
              void 0 !== b[d] && ((e[d] ? a : c || (c = {}))[d] = b[d]);
          }return c && n.extend(!0, a, c), a;
      }function Pc(a, b, c) {
          var d,
              e,
              f,
              g,
              h = a.contents,
              i = a.dataTypes;while ("*" === i[0]) {
              i.shift(), void 0 === e && (e = a.mimeType || b.getResponseHeader("Content-Type"));
          }if (e) for (g in h) {
              if (h[g] && h[g].test(e)) {
                  i.unshift(g);break;
              }
          }if (i[0] in c) f = i[0];else {
              for (g in c) {
                  if (!i[0] || a.converters[g + " " + i[0]]) {
                      f = g;break;
                  }d || (d = g);
              }f = f || d;
          }return f ? (f !== i[0] && i.unshift(f), c[f]) : void 0;
      }function Qc(a, b, c, d) {
          var e,
              f,
              g,
              h,
              i,
              j = {},
              k = a.dataTypes.slice();if (k[1]) for (g in a.converters) {
              j[g.toLowerCase()] = a.converters[g];
          }f = k.shift();while (f) {
              if (a.responseFields[f] && (c[a.responseFields[f]] = b), !i && d && a.dataFilter && (b = a.dataFilter(b, a.dataType)), i = f, f = k.shift()) if ("*" === f) f = i;else if ("*" !== i && i !== f) {
                  if (g = j[i + " " + f] || j["* " + f], !g) for (e in j) {
                      if (h = e.split(" "), h[1] === f && (g = j[i + " " + h[0]] || j["* " + h[0]])) {
                          g === !0 ? g = j[e] : j[e] !== !0 && (f = h[0], k.unshift(h[1]));break;
                      }
                  }if (g !== !0) if (g && a["throws"]) b = g(b);else try {
                      b = g(b);
                  } catch (l) {
                      return { state: "parsererror", error: g ? l : "No conversion from " + i + " to " + f };
                  }
              }
          }return { state: "success", data: b };
      }n.extend({ active: 0, lastModified: {}, etag: {}, ajaxSettings: { url: Ac, type: "GET", isLocal: Ec.test(zc[1]), global: !0, processData: !0, async: !0, contentType: "application/x-www-form-urlencoded; charset=UTF-8", accepts: { "*": Kc, text: "text/plain", html: "text/html", xml: "application/xml, text/xml", json: "application/json, text/javascript" }, contents: { xml: /xml/, html: /html/, json: /json/ }, responseFields: { xml: "responseXML", text: "responseText", json: "responseJSON" }, converters: { "* text": String, "text html": !0, "text json": n.parseJSON, "text xml": n.parseXML }, flatOptions: { url: !0, context: !0 } }, ajaxSetup: function ajaxSetup(a, b) {
              return b ? Oc(Oc(a, n.ajaxSettings), b) : Oc(n.ajaxSettings, a);
          }, ajaxPrefilter: Mc(Ic), ajaxTransport: Mc(Jc), ajax: function ajax(a, b) {
              "object" == (typeof a === "undefined" ? "undefined" : _typeof(a)) && (b = a, a = void 0), b = b || {};var c,
                  d,
                  e,
                  f,
                  g,
                  h,
                  i,
                  j,
                  k = n.ajaxSetup({}, b),
                  l = k.context || k,
                  m = k.context && (l.nodeType || l.jquery) ? n(l) : n.event,
                  o = n.Deferred(),
                  p = n.Callbacks("once memory"),
                  q = k.statusCode || {},
                  r = {},
                  s = {},
                  t = 0,
                  u = "canceled",
                  v = { readyState: 0, getResponseHeader: function getResponseHeader(a) {
                      var b;if (2 === t) {
                          if (!j) {
                              j = {};while (b = Dc.exec(f)) {
                                  j[b[1].toLowerCase()] = b[2];
                              }
                          }b = j[a.toLowerCase()];
                      }return null == b ? null : b;
                  }, getAllResponseHeaders: function getAllResponseHeaders() {
                      return 2 === t ? f : null;
                  }, setRequestHeader: function setRequestHeader(a, b) {
                      var c = a.toLowerCase();return t || (a = s[c] = s[c] || a, r[a] = b), this;
                  }, overrideMimeType: function overrideMimeType(a) {
                      return t || (k.mimeType = a), this;
                  }, statusCode: function statusCode(a) {
                      var b;if (a) if (2 > t) for (b in a) {
                          q[b] = [q[b], a[b]];
                      } else v.always(a[v.status]);return this;
                  }, abort: function abort(a) {
                      var b = a || u;return i && i.abort(b), x(0, b), this;
                  } };if (o.promise(v).complete = p.add, v.success = v.done, v.error = v.fail, k.url = ((a || k.url || Ac) + "").replace(Bc, "").replace(Gc, zc[1] + "//"), k.type = b.method || b.type || k.method || k.type, k.dataTypes = n.trim(k.dataType || "*").toLowerCase().match(F) || [""], null == k.crossDomain && (c = Hc.exec(k.url.toLowerCase()), k.crossDomain = !(!c || c[1] === zc[1] && c[2] === zc[2] && (c[3] || ("http:" === c[1] ? "80" : "443")) === (zc[3] || ("http:" === zc[1] ? "80" : "443")))), k.data && k.processData && "string" != typeof k.data && (k.data = n.param(k.data, k.traditional)), Nc(Ic, k, b, v), 2 === t) return v;h = k.global, h && 0 === n.active++ && n.event.trigger("ajaxStart"), k.type = k.type.toUpperCase(), k.hasContent = !Fc.test(k.type), e = k.url, k.hasContent || (k.data && (e = k.url += (xc.test(e) ? "&" : "?") + k.data, delete k.data), k.cache === !1 && (k.url = Cc.test(e) ? e.replace(Cc, "$1_=" + wc++) : e + (xc.test(e) ? "&" : "?") + "_=" + wc++)), k.ifModified && (n.lastModified[e] && v.setRequestHeader("If-Modified-Since", n.lastModified[e]), n.etag[e] && v.setRequestHeader("If-None-Match", n.etag[e])), (k.data && k.hasContent && k.contentType !== !1 || b.contentType) && v.setRequestHeader("Content-Type", k.contentType), v.setRequestHeader("Accept", k.dataTypes[0] && k.accepts[k.dataTypes[0]] ? k.accepts[k.dataTypes[0]] + ("*" !== k.dataTypes[0] ? ", " + Kc + "; q=0.01" : "") : k.accepts["*"]);for (d in k.headers) {
                  v.setRequestHeader(d, k.headers[d]);
              }if (k.beforeSend && (k.beforeSend.call(l, v, k) === !1 || 2 === t)) return v.abort();u = "abort";for (d in { success: 1, error: 1, complete: 1 }) {
                  v[d](k[d]);
              }if (i = Nc(Jc, k, b, v)) {
                  v.readyState = 1, h && m.trigger("ajaxSend", [v, k]), k.async && k.timeout > 0 && (g = setTimeout(function () {
                      v.abort("timeout");
                  }, k.timeout));try {
                      t = 1, i.send(r, x);
                  } catch (w) {
                      if (!(2 > t)) throw w;x(-1, w);
                  }
              } else x(-1, "No Transport");function x(a, b, c, d) {
                  var j,
                      r,
                      s,
                      u,
                      w,
                      x = b;2 !== t && (t = 2, g && clearTimeout(g), i = void 0, f = d || "", v.readyState = a > 0 ? 4 : 0, j = a >= 200 && 300 > a || 304 === a, c && (u = Pc(k, v, c)), u = Qc(k, u, v, j), j ? (k.ifModified && (w = v.getResponseHeader("Last-Modified"), w && (n.lastModified[e] = w), w = v.getResponseHeader("etag"), w && (n.etag[e] = w)), 204 === a || "HEAD" === k.type ? x = "nocontent" : 304 === a ? x = "notmodified" : (x = u.state, r = u.data, s = u.error, j = !s)) : (s = x, (a || !x) && (x = "error", 0 > a && (a = 0))), v.status = a, v.statusText = (b || x) + "", j ? o.resolveWith(l, [r, x, v]) : o.rejectWith(l, [v, x, s]), v.statusCode(q), q = void 0, h && m.trigger(j ? "ajaxSuccess" : "ajaxError", [v, k, j ? r : s]), p.fireWith(l, [v, x]), h && (m.trigger("ajaxComplete", [v, k]), --n.active || n.event.trigger("ajaxStop")));
              }return v;
          }, getJSON: function getJSON(a, b, c) {
              return n.get(a, b, c, "json");
          }, getScript: function getScript(a, b) {
              return n.get(a, void 0, b, "script");
          } }), n.each(["get", "post"], function (a, b) {
          n[b] = function (a, c, d, e) {
              return n.isFunction(c) && (e = e || d, d = c, c = void 0), n.ajax({ url: a, type: b, dataType: e, data: c, success: d });
          };
      }), n.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (a, b) {
          n.fn[b] = function (a) {
              return this.on(b, a);
          };
      }), n._evalUrl = function (a) {
          return n.ajax({ url: a, type: "GET", dataType: "script", async: !1, global: !1, "throws": !0 });
      }, n.fn.extend({ wrapAll: function wrapAll(a) {
              if (n.isFunction(a)) return this.each(function (b) {
                  n(this).wrapAll(a.call(this, b));
              });if (this[0]) {
                  var b = n(a, this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode && b.insertBefore(this[0]), b.map(function () {
                      var a = this;while (a.firstChild && 1 === a.firstChild.nodeType) {
                          a = a.firstChild;
                      }return a;
                  }).append(this);
              }return this;
          }, wrapInner: function wrapInner(a) {
              return this.each(n.isFunction(a) ? function (b) {
                  n(this).wrapInner(a.call(this, b));
              } : function () {
                  var b = n(this),
                      c = b.contents();c.length ? c.wrapAll(a) : b.append(a);
              });
          }, wrap: function wrap(a) {
              var b = n.isFunction(a);return this.each(function (c) {
                  n(this).wrapAll(b ? a.call(this, c) : a);
              });
          }, unwrap: function unwrap() {
              return this.parent().each(function () {
                  n.nodeName(this, "body") || n(this).replaceWith(this.childNodes);
              }).end();
          } }), n.expr.filters.hidden = function (a) {
          return a.offsetWidth <= 0 && a.offsetHeight <= 0 || !l.reliableHiddenOffsets() && "none" === (a.style && a.style.display || n.css(a, "display"));
      }, n.expr.filters.visible = function (a) {
          return !n.expr.filters.hidden(a);
      };var Rc = /%20/g,
          Sc = /\[\]$/,
          Tc = /\r?\n/g,
          Uc = /^(?:submit|button|image|reset|file)$/i,
          Vc = /^(?:input|select|textarea|keygen)/i;function Wc(a, b, c, d) {
          var e;if (n.isArray(b)) n.each(b, function (b, e) {
              c || Sc.test(a) ? d(a, e) : Wc(a + "[" + ("object" == (typeof e === "undefined" ? "undefined" : _typeof(e)) ? b : "") + "]", e, c, d);
          });else if (c || "object" !== n.type(b)) d(a, b);else for (e in b) {
              Wc(a + "[" + e + "]", b[e], c, d);
          }
      }n.param = function (a, b) {
          var c,
              d = [],
              e = function e(a, b) {
              b = n.isFunction(b) ? b() : null == b ? "" : b, d[d.length] = encodeURIComponent(a) + "=" + encodeURIComponent(b);
          };if (void 0 === b && (b = n.ajaxSettings && n.ajaxSettings.traditional), n.isArray(a) || a.jquery && !n.isPlainObject(a)) n.each(a, function () {
              e(this.name, this.value);
          });else for (c in a) {
              Wc(c, a[c], b, e);
          }return d.join("&").replace(Rc, "+");
      }, n.fn.extend({ serialize: function serialize() {
              return n.param(this.serializeArray());
          }, serializeArray: function serializeArray() {
              return this.map(function () {
                  var a = n.prop(this, "elements");return a ? n.makeArray(a) : this;
              }).filter(function () {
                  var a = this.type;return this.name && !n(this).is(":disabled") && Vc.test(this.nodeName) && !Uc.test(a) && (this.checked || !X.test(a));
              }).map(function (a, b) {
                  var c = n(this).val();return null == c ? null : n.isArray(c) ? n.map(c, function (a) {
                      return { name: b.name, value: a.replace(Tc, "\r\n") };
                  }) : { name: b.name, value: c.replace(Tc, "\r\n") };
              }).get();
          } }), n.ajaxSettings.xhr = void 0 !== a.ActiveXObject ? function () {
          return !this.isLocal && /^(get|post|head|put|delete|options)$/i.test(this.type) && $c() || _c();
      } : $c;var Xc = 0,
          Yc = {},
          Zc = n.ajaxSettings.xhr();a.ActiveXObject && n(a).on("unload", function () {
          for (var a in Yc) {
              Yc[a](void 0, !0);
          }
      }), l.cors = !!Zc && "withCredentials" in Zc, Zc = l.ajax = !!Zc, Zc && n.ajaxTransport(function (a) {
          if (!a.crossDomain || l.cors) {
              var _b3;return { send: function send(c, d) {
                      var e,
                          f = a.xhr(),
                          g = ++Xc;if (f.open(a.type, a.url, a.async, a.username, a.password), a.xhrFields) for (e in a.xhrFields) {
                          f[e] = a.xhrFields[e];
                      }a.mimeType && f.overrideMimeType && f.overrideMimeType(a.mimeType), a.crossDomain || c["X-Requested-With"] || (c["X-Requested-With"] = "XMLHttpRequest");for (e in c) {
                          void 0 !== c[e] && f.setRequestHeader(e, c[e] + "");
                      }f.send(a.hasContent && a.data || null), _b3 = function b(c, e) {
                          var h, i, j;if (_b3 && (e || 4 === f.readyState)) if (delete Yc[g], _b3 = void 0, f.onreadystatechange = n.noop, e) 4 !== f.readyState && f.abort();else {
                              j = {}, h = f.status, "string" == typeof f.responseText && (j.text = f.responseText);try {
                                  i = f.statusText;
                              } catch (k) {
                                  i = "";
                              }h || !a.isLocal || a.crossDomain ? 1223 === h && (h = 204) : h = j.text ? 200 : 404;
                          }j && d(h, i, j, f.getAllResponseHeaders());
                      }, a.async ? 4 === f.readyState ? setTimeout(_b3) : f.onreadystatechange = Yc[g] = _b3 : _b3();
                  }, abort: function abort() {
                      _b3 && _b3(void 0, !0);
                  } };
          }
      });function $c() {
          try {
              return new a.XMLHttpRequest();
          } catch (b) {}
      }function _c() {
          try {
              return new a.ActiveXObject("Microsoft.XMLHTTP");
          } catch (b) {}
      }n.ajaxSetup({ accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, contents: { script: /(?:java|ecma)script/ }, converters: { "text script": function textScript(a) {
                  return n.globalEval(a), a;
              } } }), n.ajaxPrefilter("script", function (a) {
          void 0 === a.cache && (a.cache = !1), a.crossDomain && (a.type = "GET", a.global = !1);
      }), n.ajaxTransport("script", function (a) {
          if (a.crossDomain) {
              var b,
                  c = z.head || n("head")[0] || z.documentElement;return { send: function send(d, e) {
                      b = z.createElement("script"), b.async = !0, a.scriptCharset && (b.charset = a.scriptCharset), b.src = a.url, b.onload = b.onreadystatechange = function (a, c) {
                          (c || !b.readyState || /loaded|complete/.test(b.readyState)) && (b.onload = b.onreadystatechange = null, b.parentNode && b.parentNode.removeChild(b), b = null, c || e(200, "success"));
                      }, c.insertBefore(b, c.firstChild);
                  }, abort: function abort() {
                      b && b.onload(void 0, !0);
                  } };
          }
      });var ad = [],
          bd = /(=)\?(?=&|$)|\?\?/;n.ajaxSetup({ jsonp: "callback", jsonpCallback: function jsonpCallback() {
              var a = ad.pop() || n.expando + "_" + wc++;return this[a] = !0, a;
          } }), n.ajaxPrefilter("json jsonp", function (b, c, d) {
          var e,
              f,
              g,
              h = b.jsonp !== !1 && (bd.test(b.url) ? "url" : "string" == typeof b.data && !(b.contentType || "").indexOf("application/x-www-form-urlencoded") && bd.test(b.data) && "data");return h || "jsonp" === b.dataTypes[0] ? (e = b.jsonpCallback = n.isFunction(b.jsonpCallback) ? b.jsonpCallback() : b.jsonpCallback, h ? b[h] = b[h].replace(bd, "$1" + e) : b.jsonp !== !1 && (b.url += (xc.test(b.url) ? "&" : "?") + b.jsonp + "=" + e), b.converters["script json"] = function () {
              return g || n.error(e + " was not called"), g[0];
          }, b.dataTypes[0] = "json", f = a[e], a[e] = function () {
              g = arguments;
          }, d.always(function () {
              a[e] = f, b[e] && (b.jsonpCallback = c.jsonpCallback, ad.push(e)), g && n.isFunction(f) && f(g[0]), g = f = void 0;
          }), "script") : void 0;
      }), n.parseHTML = function (a, b, c) {
          if (!a || "string" != typeof a) return null;"boolean" == typeof b && (c = b, b = !1), b = b || z;var d = v.exec(a),
              e = !c && [];return d ? [b.createElement(d[1])] : (d = n.buildFragment([a], b, e), e && e.length && n(e).remove(), n.merge([], d.childNodes));
      };var cd = n.fn.load;n.fn.load = function (a, b, c) {
          if ("string" != typeof a && cd) return cd.apply(this, arguments);var d,
              e,
              f,
              g = this,
              h = a.indexOf(" ");return h >= 0 && (d = a.slice(h, a.length), a = a.slice(0, h)), n.isFunction(b) ? (c = b, b = void 0) : b && "object" == (typeof b === "undefined" ? "undefined" : _typeof(b)) && (f = "POST"), g.length > 0 && n.ajax({ url: a, type: f, dataType: "html", data: b }).done(function (a) {
              e = arguments, g.html(d ? n("<div>").append(n.parseHTML(a)).find(d) : a);
          }).complete(c && function (a, b) {
              g.each(c, e || [a.responseText, b, a]);
          }), this;
      }, n.expr.filters.animated = function (a) {
          return n.grep(n.timers, function (b) {
              return a === b.elem;
          }).length;
      };var dd = a.document.documentElement;function ed(a) {
          return n.isWindow(a) ? a : 9 === a.nodeType ? a.defaultView || a.parentWindow : !1;
      }n.offset = { setOffset: function setOffset(a, b, c) {
              var d,
                  e,
                  f,
                  g,
                  h,
                  i,
                  j,
                  k = n.css(a, "position"),
                  l = n(a),
                  m = {};"static" === k && (a.style.position = "relative"), h = l.offset(), f = n.css(a, "top"), i = n.css(a, "left"), j = ("absolute" === k || "fixed" === k) && n.inArray("auto", [f, i]) > -1, j ? (d = l.position(), g = d.top, e = d.left) : (g = parseFloat(f) || 0, e = parseFloat(i) || 0), n.isFunction(b) && (b = b.call(a, c, h)), null != b.top && (m.top = b.top - h.top + g), null != b.left && (m.left = b.left - h.left + e), "using" in b ? b.using.call(a, m) : l.css(m);
          } }, n.fn.extend({ offset: function offset(a) {
              if (arguments.length) return void 0 === a ? this : this.each(function (b) {
                  n.offset.setOffset(this, a, b);
              });var b,
                  c,
                  d = { top: 0, left: 0 },
                  e = this[0],
                  f = e && e.ownerDocument;if (f) return b = f.documentElement, n.contains(b, e) ? (_typeof(e.getBoundingClientRect) !== L && (d = e.getBoundingClientRect()), c = ed(f), { top: d.top + (c.pageYOffset || b.scrollTop) - (b.clientTop || 0), left: d.left + (c.pageXOffset || b.scrollLeft) - (b.clientLeft || 0) }) : d;
          }, position: function position() {
              if (this[0]) {
                  var a,
                      b,
                      c = { top: 0, left: 0 },
                      d = this[0];return "fixed" === n.css(d, "position") ? b = d.getBoundingClientRect() : (a = this.offsetParent(), b = this.offset(), n.nodeName(a[0], "html") || (c = a.offset()), c.top += n.css(a[0], "borderTopWidth", !0), c.left += n.css(a[0], "borderLeftWidth", !0)), { top: b.top - c.top - n.css(d, "marginTop", !0), left: b.left - c.left - n.css(d, "marginLeft", !0) };
              }
          }, offsetParent: function offsetParent() {
              return this.map(function () {
                  var a = this.offsetParent || dd;while (a && !n.nodeName(a, "html") && "static" === n.css(a, "position")) {
                      a = a.offsetParent;
                  }return a || dd;
              });
          } }), n.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function (a, b) {
          var c = /Y/.test(b);n.fn[a] = function (d) {
              return W(this, function (a, d, e) {
                  var f = ed(a);return void 0 === e ? f ? b in f ? f[b] : f.document.documentElement[d] : a[d] : void (f ? f.scrollTo(c ? n(f).scrollLeft() : e, c ? e : n(f).scrollTop()) : a[d] = e);
              }, a, d, arguments.length, null);
          };
      }), n.each(["top", "left"], function (a, b) {
          n.cssHooks[b] = Mb(l.pixelPosition, function (a, c) {
              return c ? (c = Kb(a, b), Ib.test(c) ? n(a).position()[b] + "px" : c) : void 0;
          });
      }), n.each({ Height: "height", Width: "width" }, function (a, b) {
          n.each({ padding: "inner" + a, content: b, "": "outer" + a }, function (c, d) {
              n.fn[d] = function (d, e) {
                  var f = arguments.length && (c || "boolean" != typeof d),
                      g = c || (d === !0 || e === !0 ? "margin" : "border");return W(this, function (b, c, d) {
                      var e;return n.isWindow(b) ? b.document.documentElement["client" + a] : 9 === b.nodeType ? (e = b.documentElement, Math.max(b.body["scroll" + a], e["scroll" + a], b.body["offset" + a], e["offset" + a], e["client" + a])) : void 0 === d ? n.css(b, c, g) : n.style(b, c, d, g);
                  }, b, f ? d : void 0, f, null);
              };
          });
      }), n.fn.size = function () {
          return this.length;
      }, n.fn.andSelf = n.fn.addBack, "function" == typeof define && define.amd && define("jquery", [], function () {
          return n;
      });var fd = a.jQuery,
          gd = a.$;return n.noConflict = function (b) {
          return a.$ === n && (a.$ = gd), b && a.jQuery === n && (a.jQuery = fd), n;
      }, (typeof b === "undefined" ? "undefined" : _typeof(b)) === L && (a.jQuery = a.$ = n), n;
  });
  
  /*!
   * Bootstrap v3.1.1 (http://getbootstrap.com)
   * Copyright 2011-2014 Twitter, Inc.
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   */
  if ("undefined" == typeof jQuery) throw new Error("Bootstrap's JavaScript requires jQuery");+function (a) {
      "use strict";
      function b() {
          var a = document.createElement("bootstrap"),
              b = { WebkitTransition: "webkitTransitionEnd", MozTransition: "transitionend", OTransition: "oTransitionEnd otransitionend", transition: "transitionend" };for (var c in b) {
              if (void 0 !== a.style[c]) return { end: b[c] };
          }return !1;
      }a.fn.emulateTransitionEnd = function (b) {
          var c = !1,
              d = this;a(this).one(a.support.transition.end, function () {
              c = !0;
          });var e = function e() {
              c || a(d).trigger(a.support.transition.end);
          };return setTimeout(e, b), this;
      }, a(function () {
          a.support.transition = b();
      });
  }(jQuery), +function (a) {
      "use strict";
      var b = '[data-dismiss="alert"]',
          c = function c(_c2) {
          a(_c2).on("click", b, this.close);
      };c.prototype.close = function (b) {
          function c() {
              f.trigger("closed.bs.alert").remove();
          }var d = a(this),
              e = d.attr("data-target");e || (e = d.attr("href"), e = e && e.replace(/.*(?=#[^\s]*$)/, ""));var f = a(e);b && b.preventDefault(), f.length || (f = d.hasClass("alert") ? d : d.parent()), f.trigger(b = a.Event("close.bs.alert")), b.isDefaultPrevented() || (f.removeClass("in"), a.support.transition && f.hasClass("fade") ? f.one(a.support.transition.end, c).emulateTransitionEnd(150) : c());
      };var d = a.fn.alert;a.fn.alert = function (b) {
          return this.each(function () {
              var d = a(this),
                  e = d.data("bs.alert");e || d.data("bs.alert", e = new c(this)), "string" == typeof b && e[b].call(d);
          });
      }, a.fn.alert.Constructor = c, a.fn.alert.noConflict = function () {
          return a.fn.alert = d, this;
      }, a(document).on("click.bs.alert.data-api", b, c.prototype.close);
  }(jQuery), +function (a) {
      "use strict";
      var b = function b(c, d) {
          this.$element = a(c), this.options = a.extend({}, b.DEFAULTS, d), this.isLoading = !1;
      };b.DEFAULTS = { loadingText: "loading..." }, b.prototype.setState = function (b) {
          var c = "disabled",
              d = this.$element,
              e = d.is("input") ? "val" : "html",
              f = d.data();b += "Text", f.resetText || d.data("resetText", d[e]()), d[e](f[b] || this.options[b]), setTimeout(a.proxy(function () {
              "loadingText" == b ? (this.isLoading = !0, d.addClass(c).attr(c, c)) : this.isLoading && (this.isLoading = !1, d.removeClass(c).removeAttr(c));
          }, this), 0);
      }, b.prototype.toggle = function () {
          var a = !0,
              b = this.$element.closest('[data-toggle="buttons"]');if (b.length) {
              var c = this.$element.find("input");"radio" == c.prop("type") && (c.prop("checked") && this.$element.hasClass("active") ? a = !1 : b.find(".active").removeClass("active")), a && c.prop("checked", !this.$element.hasClass("active")).trigger("change");
          }a && this.$element.toggleClass("active");
      };var c = a.fn.button;a.fn.button = function (c) {
          return this.each(function () {
              var d = a(this),
                  e = d.data("bs.button"),
                  f = "object" == (typeof c === "undefined" ? "undefined" : _typeof(c)) && c;e || d.data("bs.button", e = new b(this, f)), "toggle" == c ? e.toggle() : c && e.setState(c);
          });
      }, a.fn.button.Constructor = b, a.fn.button.noConflict = function () {
          return a.fn.button = c, this;
      }, a(document).on("click.bs.button.data-api", "[data-toggle^=button]", function (b) {
          var c = a(b.target);c.hasClass("btn") || (c = c.closest(".btn")), c.button("toggle"), b.preventDefault();
      });
  }(jQuery), +function (a) {
      "use strict";
      var b = function b(_b4, c) {
          this.$element = a(_b4), this.$indicators = this.$element.find(".carousel-indicators"), this.options = c, this.paused = this.sliding = this.interval = this.$active = this.$items = null, "hover" == this.options.pause && this.$element.on("mouseenter", a.proxy(this.pause, this)).on("mouseleave", a.proxy(this.cycle, this));
      };b.DEFAULTS = { interval: 5e3, pause: "hover", wrap: !0 }, b.prototype.cycle = function (b) {
          return b || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(a.proxy(this.next, this), this.options.interval)), this;
      }, b.prototype.getActiveIndex = function () {
          return this.$active = this.$element.find(".item.active"), this.$items = this.$active.parent().children(), this.$items.index(this.$active);
      }, b.prototype.to = function (b) {
          var c = this,
              d = this.getActiveIndex();return b > this.$items.length - 1 || 0 > b ? void 0 : this.sliding ? this.$element.one("slid.bs.carousel", function () {
              c.to(b);
          }) : d == b ? this.pause().cycle() : this.slide(b > d ? "next" : "prev", a(this.$items[b]));
      }, b.prototype.pause = function (b) {
          return b || (this.paused = !0), this.$element.find(".next, .prev").length && a.support.transition && (this.$element.trigger(a.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this;
      }, b.prototype.next = function () {
          return this.sliding ? void 0 : this.slide("next");
      }, b.prototype.prev = function () {
          return this.sliding ? void 0 : this.slide("prev");
      }, b.prototype.slide = function (b, c) {
          var d = this.$element.find(".item.active"),
              e = c || d[b](),
              f = this.interval,
              g = "next" == b ? "left" : "right",
              h = "next" == b ? "first" : "last",
              i = this;if (!e.length) {
              if (!this.options.wrap) return;e = this.$element.find(".item")[h]();
          }if (e.hasClass("active")) return this.sliding = !1;var j = a.Event("slide.bs.carousel", { relatedTarget: e[0], direction: g });return this.$element.trigger(j), j.isDefaultPrevented() ? void 0 : (this.sliding = !0, f && this.pause(), this.$indicators.length && (this.$indicators.find(".active").removeClass("active"), this.$element.one("slid.bs.carousel", function () {
              var b = a(i.$indicators.children()[i.getActiveIndex()]);b && b.addClass("active");
          })), a.support.transition && this.$element.hasClass("slide") ? (e.addClass(b), e[0].offsetWidth, d.addClass(g), e.addClass(g), d.one(a.support.transition.end, function () {
              e.removeClass([b, g].join(" ")).addClass("active"), d.removeClass(["active", g].join(" ")), i.sliding = !1, setTimeout(function () {
                  i.$element.trigger("slid.bs.carousel");
              }, 0);
          }).emulateTransitionEnd(1e3 * d.css("transition-duration").slice(0, -1))) : (d.removeClass("active"), e.addClass("active"), this.sliding = !1, this.$element.trigger("slid.bs.carousel")), f && this.cycle(), this);
      };var c = a.fn.carousel;a.fn.carousel = function (c) {
          return this.each(function () {
              var d = a(this),
                  e = d.data("bs.carousel"),
                  f = a.extend({}, b.DEFAULTS, d.data(), "object" == (typeof c === "undefined" ? "undefined" : _typeof(c)) && c),
                  g = "string" == typeof c ? c : f.slide;e || d.data("bs.carousel", e = new b(this, f)), "number" == typeof c ? e.to(c) : g ? e[g]() : f.interval && e.pause().cycle();
          });
      }, a.fn.carousel.Constructor = b, a.fn.carousel.noConflict = function () {
          return a.fn.carousel = c, this;
      }, a(document).on("click.bs.carousel.data-api", "[data-slide], [data-slide-to]", function (b) {
          var c,
              d = a(this),
              e = a(d.attr("data-target") || (c = d.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, "")),
              f = a.extend({}, e.data(), d.data()),
              g = d.attr("data-slide-to");g && (f.interval = !1), e.carousel(f), (g = d.attr("data-slide-to")) && e.data("bs.carousel").to(g), b.preventDefault();
      }), a(window).on("load", function () {
          a('[data-ride="carousel"]').each(function () {
              var b = a(this);b.carousel(b.data());
          });
      });
  }(jQuery), +function (a) {
      "use strict";
      var b = function b(c, d) {
          this.$element = a(c), this.options = a.extend({}, b.DEFAULTS, d), this.transitioning = null, this.options.parent && (this.$parent = a(this.options.parent)), this.options.toggle && this.toggle();
      };b.DEFAULTS = { toggle: !0 }, b.prototype.dimension = function () {
          var a = this.$element.hasClass("width");return a ? "width" : "height";
      }, b.prototype.show = function () {
          if (!this.transitioning && !this.$element.hasClass("in")) {
              var b = a.Event("show.bs.collapse");if (this.$element.trigger(b), !b.isDefaultPrevented()) {
                  var c = this.$parent && this.$parent.find("> .panel > .in");if (c && c.length) {
                      var d = c.data("bs.collapse");if (d && d.transitioning) return;c.collapse("hide"), d || c.data("bs.collapse", null);
                  }var e = this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0), this.transitioning = 1;var f = function f() {
                      this.$element.removeClass("collapsing").addClass("collapse in")[e]("auto"), this.transitioning = 0, this.$element.trigger("shown.bs.collapse");
                  };if (!a.support.transition) return f.call(this);var g = a.camelCase(["scroll", e].join("-"));this.$element.one(a.support.transition.end, a.proxy(f, this)).emulateTransitionEnd(350)[e](this.$element[0][g]);
              }
          }
      }, b.prototype.hide = function () {
          if (!this.transitioning && this.$element.hasClass("in")) {
              var b = a.Event("hide.bs.collapse");if (this.$element.trigger(b), !b.isDefaultPrevented()) {
                  var c = this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"), this.transitioning = 1;var d = function d() {
                      this.transitioning = 0, this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse");
                  };return a.support.transition ? void this.$element[c](0).one(a.support.transition.end, a.proxy(d, this)).emulateTransitionEnd(350) : d.call(this);
              }
          }
      }, b.prototype.toggle = function () {
          this[this.$element.hasClass("in") ? "hide" : "show"]();
      };var c = a.fn.collapse;a.fn.collapse = function (c) {
          return this.each(function () {
              var d = a(this),
                  e = d.data("bs.collapse"),
                  f = a.extend({}, b.DEFAULTS, d.data(), "object" == (typeof c === "undefined" ? "undefined" : _typeof(c)) && c);!e && f.toggle && "show" == c && (c = !c), e || d.data("bs.collapse", e = new b(this, f)), "string" == typeof c && e[c]();
          });
      }, a.fn.collapse.Constructor = b, a.fn.collapse.noConflict = function () {
          return a.fn.collapse = c, this;
      }, a(document).on("click.bs.collapse.data-api", "[data-toggle=collapse]", function (b) {
          var c,
              d = a(this),
              e = d.attr("data-target") || b.preventDefault() || (c = d.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, ""),
              f = a(e),
              g = f.data("bs.collapse"),
              h = g ? "toggle" : d.data(),
              i = d.attr("data-parent"),
              j = i && a(i);g && g.transitioning || (j && j.find('[data-toggle=collapse][data-parent="' + i + '"]').not(d).addClass("collapsed"), d[f.hasClass("in") ? "addClass" : "removeClass"]("collapsed")), f.collapse(h);
      });
  }(jQuery), +function (a) {
      "use strict";
      function b(b) {
          a(d).remove(), a(e).each(function () {
              var d = c(a(this)),
                  e = { relatedTarget: this };d.hasClass("open") && (d.trigger(b = a.Event("hide.bs.dropdown", e)), b.isDefaultPrevented() || d.removeClass("open").trigger("hidden.bs.dropdown", e));
          });
      }function c(b) {
          var c = b.attr("data-target");c || (c = b.attr("href"), c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, ""));var d = c && a(c);return d && d.length ? d : b.parent();
      }var d = ".dropdown-backdrop",
          e = "[data-toggle=dropdown]",
          f = function f(b) {
          a(b).on("click.bs.dropdown", this.toggle);
      };f.prototype.toggle = function (d) {
          var e = a(this);if (!e.is(".disabled, :disabled")) {
              var f = c(e),
                  g = f.hasClass("open");if (b(), !g) {
                  "ontouchstart" in document.documentElement && !f.closest(".navbar-nav").length && a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click", b);var h = { relatedTarget: this };if (f.trigger(d = a.Event("show.bs.dropdown", h)), d.isDefaultPrevented()) return;f.toggleClass("open").trigger("shown.bs.dropdown", h), e.focus();
              }return !1;
          }
      }, f.prototype.keydown = function (b) {
          if (/(38|40|27)/.test(b.keyCode)) {
              var d = a(this);if (b.preventDefault(), b.stopPropagation(), !d.is(".disabled, :disabled")) {
                  var f = c(d),
                      g = f.hasClass("open");if (!g || g && 27 == b.keyCode) return 27 == b.which && f.find(e).focus(), d.click();var h = " li:not(.divider):visible a",
                      i = f.find("[role=menu]" + h + ", [role=listbox]" + h);if (i.length) {
                      var j = i.index(i.filter(":focus"));38 == b.keyCode && j > 0 && j--, 40 == b.keyCode && j < i.length - 1 && j++, ~j || (j = 0), i.eq(j).focus();
                  }
              }
          }
      };var g = a.fn.dropdown;a.fn.dropdown = function (b) {
          return this.each(function () {
              var c = a(this),
                  d = c.data("bs.dropdown");d || c.data("bs.dropdown", d = new f(this)), "string" == typeof b && d[b].call(c);
          });
      }, a.fn.dropdown.Constructor = f, a.fn.dropdown.noConflict = function () {
          return a.fn.dropdown = g, this;
      }, a(document).on("click.bs.dropdown.data-api", b).on("click.bs.dropdown.data-api", ".dropdown form", function (a) {
          a.stopPropagation();
      }).on("click.bs.dropdown.data-api", e, f.prototype.toggle).on("keydown.bs.dropdown.data-api", e + ", [role=menu], [role=listbox]", f.prototype.keydown);
  }(jQuery), +function (a) {
      "use strict";
      var b = function b(_b5, c) {
          this.options = c, this.$element = a(_b5), this.$backdrop = this.isShown = null, this.options.remote && this.$element.find(".modal-content").load(this.options.remote, a.proxy(function () {
              this.$element.trigger("loaded.bs.modal");
          }, this));
      };b.DEFAULTS = { backdrop: !0, keyboard: !0, show: !0 }, b.prototype.toggle = function (a) {
          return this[this.isShown ? "hide" : "show"](a);
      }, b.prototype.show = function (b) {
          var c = this,
              d = a.Event("show.bs.modal", { relatedTarget: b });this.$element.trigger(d), this.isShown || d.isDefaultPrevented() || (this.isShown = !0, this.escape(), this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', a.proxy(this.hide, this)), this.backdrop(function () {
              var d = a.support.transition && c.$element.hasClass("fade");c.$element.parent().length || c.$element.appendTo(document.body), c.$element.show().scrollTop(0), d && c.$element[0].offsetWidth, c.$element.addClass("in").attr("aria-hidden", !1), c.enforceFocus();var e = a.Event("shown.bs.modal", { relatedTarget: b });d ? c.$element.find(".modal-dialog").one(a.support.transition.end, function () {
                  c.$element.focus().trigger(e);
              }).emulateTransitionEnd(300) : c.$element.focus().trigger(e);
          }));
      }, b.prototype.hide = function (b) {
          b && b.preventDefault(), b = a.Event("hide.bs.modal"), this.$element.trigger(b), this.isShown && !b.isDefaultPrevented() && (this.isShown = !1, this.escape(), a(document).off("focusin.bs.modal"), this.$element.removeClass("in").attr("aria-hidden", !0).off("click.dismiss.bs.modal"), a.support.transition && this.$element.hasClass("fade") ? this.$element.one(a.support.transition.end, a.proxy(this.hideModal, this)).emulateTransitionEnd(300) : this.hideModal());
      }, b.prototype.enforceFocus = function () {
          a(document).off("focusin.bs.modal").on("focusin.bs.modal", a.proxy(function (a) {
              this.$element[0] === a.target || this.$element.has(a.target).length || this.$element.focus();
          }, this));
      }, b.prototype.escape = function () {
          this.isShown && this.options.keyboard ? this.$element.on("keyup.dismiss.bs.modal", a.proxy(function (a) {
              27 == a.which && this.hide();
          }, this)) : this.isShown || this.$element.off("keyup.dismiss.bs.modal");
      }, b.prototype.hideModal = function () {
          var a = this;this.$element.hide(), this.backdrop(function () {
              a.removeBackdrop(), a.$element.trigger("hidden.bs.modal");
          });
      }, b.prototype.removeBackdrop = function () {
          this.$backdrop && this.$backdrop.remove(), this.$backdrop = null;
      }, b.prototype.backdrop = function (b) {
          var c = this.$element.hasClass("fade") ? "fade" : "";if (this.isShown && this.options.backdrop) {
              var d = a.support.transition && c;if (this.$backdrop = a('<div class="modal-backdrop ' + c + '" />').appendTo(document.body), this.$element.on("click.dismiss.bs.modal", a.proxy(function (a) {
                  a.target === a.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus.call(this.$element[0]) : this.hide.call(this));
              }, this)), d && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !b) return;d ? this.$backdrop.one(a.support.transition.end, b).emulateTransitionEnd(150) : b();
          } else !this.isShown && this.$backdrop ? (this.$backdrop.removeClass("in"), a.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one(a.support.transition.end, b).emulateTransitionEnd(150) : b()) : b && b();
      };var c = a.fn.modal;a.fn.modal = function (c, d) {
          return this.each(function () {
              var e = a(this),
                  f = e.data("bs.modal"),
                  g = a.extend({}, b.DEFAULTS, e.data(), "object" == (typeof c === "undefined" ? "undefined" : _typeof(c)) && c);f || e.data("bs.modal", f = new b(this, g)), "string" == typeof c ? f[c](d) : g.show && f.show(d);
          });
      }, a.fn.modal.Constructor = b, a.fn.modal.noConflict = function () {
          return a.fn.modal = c, this;
      }, a(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function (b) {
          var c = a(this),
              d = c.attr("href"),
              e = a(c.attr("data-target") || d && d.replace(/.*(?=#[^\s]+$)/, "")),
              f = e.data("bs.modal") ? "toggle" : a.extend({ remote: !/#/.test(d) && d }, e.data(), c.data());c.is("a") && b.preventDefault(), e.modal(f, this).one("hide", function () {
              c.is(":visible") && c.focus();
          });
      }), a(document).on("show.bs.modal", ".modal", function () {
          a(document.body).addClass("modal-open");
      }).on("hidden.bs.modal", ".modal", function () {
          a(document.body).removeClass("modal-open");
      });
  }(jQuery), +function (a) {
      "use strict";
      var b = function b(a, _b6) {
          this.type = this.options = this.enabled = this.timeout = this.hoverState = this.$element = null, this.init("tooltip", a, _b6);
      };b.DEFAULTS = { animation: !0, placement: "top", selector: !1, template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', trigger: "hover focus", title: "", delay: 0, html: !1, container: !1 }, b.prototype.init = function (b, c, d) {
          this.enabled = !0, this.type = b, this.$element = a(c), this.options = this.getOptions(d);for (var e = this.options.trigger.split(" "), f = e.length; f--;) {
              var g = e[f];if ("click" == g) this.$element.on("click." + this.type, this.options.selector, a.proxy(this.toggle, this));else if ("manual" != g) {
                  var h = "hover" == g ? "mouseenter" : "focusin",
                      i = "hover" == g ? "mouseleave" : "focusout";this.$element.on(h + "." + this.type, this.options.selector, a.proxy(this.enter, this)), this.$element.on(i + "." + this.type, this.options.selector, a.proxy(this.leave, this));
              }
          }this.options.selector ? this._options = a.extend({}, this.options, { trigger: "manual", selector: "" }) : this.fixTitle();
      }, b.prototype.getDefaults = function () {
          return b.DEFAULTS;
      }, b.prototype.getOptions = function (b) {
          return b = a.extend({}, this.getDefaults(), this.$element.data(), b), b.delay && "number" == typeof b.delay && (b.delay = { show: b.delay, hide: b.delay }), b;
      }, b.prototype.getDelegateOptions = function () {
          var b = {},
              c = this.getDefaults();return this._options && a.each(this._options, function (a, d) {
              c[a] != d && (b[a] = d);
          }), b;
      }, b.prototype.enter = function (b) {
          var c = b instanceof this.constructor ? b : a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type);return clearTimeout(c.timeout), c.hoverState = "in", c.options.delay && c.options.delay.show ? void (c.timeout = setTimeout(function () {
              "in" == c.hoverState && c.show();
          }, c.options.delay.show)) : c.show();
      }, b.prototype.leave = function (b) {
          var c = b instanceof this.constructor ? b : a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type);return clearTimeout(c.timeout), c.hoverState = "out", c.options.delay && c.options.delay.hide ? void (c.timeout = setTimeout(function () {
              "out" == c.hoverState && c.hide();
          }, c.options.delay.hide)) : c.hide();
      }, b.prototype.show = function () {
          var b = a.Event("show.bs." + this.type);if (this.hasContent() && this.enabled) {
              if (this.$element.trigger(b), b.isDefaultPrevented()) return;var c = this,
                  d = this.tip();this.setContent(), this.options.animation && d.addClass("fade");var e = "function" == typeof this.options.placement ? this.options.placement.call(this, d[0], this.$element[0]) : this.options.placement,
                  f = /\s?auto?\s?/i,
                  g = f.test(e);g && (e = e.replace(f, "") || "top"), d.detach().css({ top: 0, left: 0, display: "block" }).addClass(e), this.options.container ? d.appendTo(this.options.container) : d.insertAfter(this.$element);var h = this.getPosition(),
                  i = d[0].offsetWidth,
                  j = d[0].offsetHeight;if (g) {
                  var k = this.$element.parent(),
                      l = e,
                      m = document.documentElement.scrollTop || document.body.scrollTop,
                      n = "body" == this.options.container ? window.innerWidth : k.outerWidth(),
                      o = "body" == this.options.container ? window.innerHeight : k.outerHeight(),
                      p = "body" == this.options.container ? 0 : k.offset().left;e = "bottom" == e && h.top + h.height + j - m > o ? "top" : "top" == e && h.top - m - j < 0 ? "bottom" : "right" == e && h.right + i > n ? "left" : "left" == e && h.left - i < p ? "right" : e, d.removeClass(l).addClass(e);
              }var q = this.getCalculatedOffset(e, h, i, j);this.applyPlacement(q, e), this.hoverState = null;var r = function r() {
                  c.$element.trigger("shown.bs." + c.type);
              };a.support.transition && this.$tip.hasClass("fade") ? d.one(a.support.transition.end, r).emulateTransitionEnd(150) : r();
          }
      }, b.prototype.applyPlacement = function (b, c) {
          var d,
              e = this.tip(),
              f = e[0].offsetWidth,
              g = e[0].offsetHeight,
              h = parseInt(e.css("margin-top"), 10),
              i = parseInt(e.css("margin-left"), 10);isNaN(h) && (h = 0), isNaN(i) && (i = 0), b.top = b.top + h, b.left = b.left + i, a.offset.setOffset(e[0], a.extend({ using: function using(a) {
                  e.css({ top: Math.round(a.top), left: Math.round(a.left) });
              } }, b), 0), e.addClass("in");var j = e[0].offsetWidth,
              k = e[0].offsetHeight;if ("top" == c && k != g && (d = !0, b.top = b.top + g - k), /bottom|top/.test(c)) {
              var l = 0;b.left < 0 && (l = -2 * b.left, b.left = 0, e.offset(b), j = e[0].offsetWidth, k = e[0].offsetHeight), this.replaceArrow(l - f + j, j, "left");
          } else this.replaceArrow(k - g, k, "top");d && e.offset(b);
      }, b.prototype.replaceArrow = function (a, b, c) {
          this.arrow().css(c, a ? 50 * (1 - a / b) + "%" : "");
      }, b.prototype.setContent = function () {
          var a = this.tip(),
              b = this.getTitle();a.find(".tooltip-inner")[this.options.html ? "html" : "text"](b), a.removeClass("fade in top bottom left right");
      }, b.prototype.hide = function () {
          function b() {
              "in" != c.hoverState && d.detach(), c.$element.trigger("hidden.bs." + c.type);
          }var c = this,
              d = this.tip(),
              e = a.Event("hide.bs." + this.type);return this.$element.trigger(e), e.isDefaultPrevented() ? void 0 : (d.removeClass("in"), a.support.transition && this.$tip.hasClass("fade") ? d.one(a.support.transition.end, b).emulateTransitionEnd(150) : b(), this.hoverState = null, this);
      }, b.prototype.fixTitle = function () {
          var a = this.$element;(a.attr("title") || "string" != typeof a.attr("data-original-title")) && a.attr("data-original-title", a.attr("title") || "").attr("title", "");
      }, b.prototype.hasContent = function () {
          return this.getTitle();
      }, b.prototype.getPosition = function () {
          var b = this.$element[0];return a.extend({}, "function" == typeof b.getBoundingClientRect ? b.getBoundingClientRect() : { width: b.offsetWidth, height: b.offsetHeight }, this.$element.offset());
      }, b.prototype.getCalculatedOffset = function (a, b, c, d) {
          return "bottom" == a ? { top: b.top + b.height, left: b.left + b.width / 2 - c / 2 } : "top" == a ? { top: b.top - d, left: b.left + b.width / 2 - c / 2 } : "left" == a ? { top: b.top + b.height / 2 - d / 2, left: b.left - c } : { top: b.top + b.height / 2 - d / 2, left: b.left + b.width };
      }, b.prototype.getTitle = function () {
          var a,
              b = this.$element,
              c = this.options;return a = b.attr("data-original-title") || ("function" == typeof c.title ? c.title.call(b[0]) : c.title);
      }, b.prototype.tip = function () {
          return this.$tip = this.$tip || a(this.options.template);
      }, b.prototype.arrow = function () {
          return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow");
      }, b.prototype.validate = function () {
          this.$element[0].parentNode || (this.hide(), this.$element = null, this.options = null);
      }, b.prototype.enable = function () {
          this.enabled = !0;
      }, b.prototype.disable = function () {
          this.enabled = !1;
      }, b.prototype.toggleEnabled = function () {
          this.enabled = !this.enabled;
      }, b.prototype.toggle = function (b) {
          var c = b ? a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type) : this;c.tip().hasClass("in") ? c.leave(c) : c.enter(c);
      }, b.prototype.destroy = function () {
          clearTimeout(this.timeout), this.hide().$element.off("." + this.type).removeData("bs." + this.type);
      };var c = a.fn.tooltip;a.fn.tooltip = function (c) {
          return this.each(function () {
              var d = a(this),
                  e = d.data("bs.tooltip"),
                  f = "object" == (typeof c === "undefined" ? "undefined" : _typeof(c)) && c;(e || "destroy" != c) && (e || d.data("bs.tooltip", e = new b(this, f)), "string" == typeof c && e[c]());
          });
      }, a.fn.tooltip.Constructor = b, a.fn.tooltip.noConflict = function () {
          return a.fn.tooltip = c, this;
      };
  }(jQuery), +function (a) {
      "use strict";
      var b = function b(a, _b7) {
          this.init("popover", a, _b7);
      };if (!a.fn.tooltip) throw new Error("Popover requires tooltip.js");b.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, { placement: "right", trigger: "click", content: "", template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>' }), b.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype), b.prototype.constructor = b, b.prototype.getDefaults = function () {
          return b.DEFAULTS;
      }, b.prototype.setContent = function () {
          var a = this.tip(),
              b = this.getTitle(),
              c = this.getContent();a.find(".popover-title")[this.options.html ? "html" : "text"](b), a.find(".popover-content")[this.options.html ? "string" == typeof c ? "html" : "append" : "text"](c), a.removeClass("fade top bottom left right in"), a.find(".popover-title").html() || a.find(".popover-title").hide();
      }, b.prototype.hasContent = function () {
          return this.getTitle() || this.getContent();
      }, b.prototype.getContent = function () {
          var a = this.$element,
              b = this.options;return a.attr("data-content") || ("function" == typeof b.content ? b.content.call(a[0]) : b.content);
      }, b.prototype.arrow = function () {
          return this.$arrow = this.$arrow || this.tip().find(".arrow");
      }, b.prototype.tip = function () {
          return this.$tip || (this.$tip = a(this.options.template)), this.$tip;
      };var c = a.fn.popover;a.fn.popover = function (c) {
          return this.each(function () {
              var d = a(this),
                  e = d.data("bs.popover"),
                  f = "object" == (typeof c === "undefined" ? "undefined" : _typeof(c)) && c;(e || "destroy" != c) && (e || d.data("bs.popover", e = new b(this, f)), "string" == typeof c && e[c]());
          });
      }, a.fn.popover.Constructor = b, a.fn.popover.noConflict = function () {
          return a.fn.popover = c, this;
      };
  }(jQuery), +function (a) {
      "use strict";
      function b(c, d) {
          var e,
              f = a.proxy(this.process, this);this.$element = a(a(c).is("body") ? window : c), this.$body = a("body"), this.$scrollElement = this.$element.on("scroll.bs.scroll-spy.data-api", f), this.options = a.extend({}, b.DEFAULTS, d), this.selector = (this.options.target || (e = a(c).attr("href")) && e.replace(/.*(?=#[^\s]+$)/, "") || "") + " .nav li > a", this.offsets = a([]), this.targets = a([]), this.activeTarget = null, this.refresh(), this.process();
      }b.DEFAULTS = { offset: 10 }, b.prototype.refresh = function () {
          var b = this.$element[0] == window ? "offset" : "position";this.offsets = a([]), this.targets = a([]);{
              var c = this;this.$body.find(this.selector).map(function () {
                  var d = a(this),
                      e = d.data("target") || d.attr("href"),
                      f = /^#./.test(e) && a(e);return f && f.length && f.is(":visible") && [[f[b]().top + (!a.isWindow(c.$scrollElement.get(0)) && c.$scrollElement.scrollTop()), e]] || null;
              }).sort(function (a, b) {
                  return a[0] - b[0];
              }).each(function () {
                  c.offsets.push(this[0]), c.targets.push(this[1]);
              });
          }
      }, b.prototype.process = function () {
          var a,
              b = this.$scrollElement.scrollTop() + this.options.offset,
              c = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight,
              d = c - this.$scrollElement.height(),
              e = this.offsets,
              f = this.targets,
              g = this.activeTarget;if (b >= d) return g != (a = f.last()[0]) && this.activate(a);if (g && b <= e[0]) return g != (a = f[0]) && this.activate(a);for (a = e.length; a--;) {
              g != f[a] && b >= e[a] && (!e[a + 1] || b <= e[a + 1]) && this.activate(f[a]);
          }
      }, b.prototype.activate = function (b) {
          this.activeTarget = b, a(this.selector).parentsUntil(this.options.target, ".active").removeClass("active");var c = this.selector + '[data-target="' + b + '"],' + this.selector + '[href="' + b + '"]',
              d = a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length && (d = d.closest("li.dropdown").addClass("active")), d.trigger("activate.bs.scrollspy");
      };var c = a.fn.scrollspy;a.fn.scrollspy = function (c) {
          return this.each(function () {
              var d = a(this),
                  e = d.data("bs.scrollspy"),
                  f = "object" == (typeof c === "undefined" ? "undefined" : _typeof(c)) && c;e || d.data("bs.scrollspy", e = new b(this, f)), "string" == typeof c && e[c]();
          });
      }, a.fn.scrollspy.Constructor = b, a.fn.scrollspy.noConflict = function () {
          return a.fn.scrollspy = c, this;
      }, a(window).on("load", function () {
          a('[data-spy="scroll"]').each(function () {
              var b = a(this);b.scrollspy(b.data());
          });
      });
  }(jQuery), +function (a) {
      "use strict";
      var b = function b(_b8) {
          this.element = a(_b8);
      };b.prototype.show = function () {
          var b = this.element,
              c = b.closest("ul:not(.dropdown-menu)"),
              d = b.data("target");if (d || (d = b.attr("href"), d = d && d.replace(/.*(?=#[^\s]*$)/, "")), !b.parent("li").hasClass("active")) {
              var e = c.find(".active:last a")[0],
                  f = a.Event("show.bs.tab", { relatedTarget: e });if (b.trigger(f), !f.isDefaultPrevented()) {
                  var g = a(d);this.activate(b.parent("li"), c), this.activate(g, g.parent(), function () {
                      b.trigger({ type: "shown.bs.tab", relatedTarget: e });
                  });
              }
          }
      }, b.prototype.activate = function (b, c, d) {
          function e() {
              f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"), b.addClass("active"), g ? (b[0].offsetWidth, b.addClass("in")) : b.removeClass("fade"), b.parent(".dropdown-menu") && b.closest("li.dropdown").addClass("active"), d && d();
          }var f = c.find("> .active"),
              g = d && a.support.transition && f.hasClass("fade");g ? f.one(a.support.transition.end, e).emulateTransitionEnd(150) : e(), f.removeClass("in");
      };var c = a.fn.tab;a.fn.tab = function (c) {
          return this.each(function () {
              var d = a(this),
                  e = d.data("bs.tab");e || d.data("bs.tab", e = new b(this)), "string" == typeof c && e[c]();
          });
      }, a.fn.tab.Constructor = b, a.fn.tab.noConflict = function () {
          return a.fn.tab = c, this;
      }, a(document).on("click.bs.tab.data-api", '[data-toggle="tab"], [data-toggle="pill"]', function (b) {
          b.preventDefault(), a(this).tab("show");
      });
  }(jQuery), +function (a) {
      "use strict";
      var b = function b(c, d) {
          this.options = a.extend({}, b.DEFAULTS, d), this.$window = a(window).on("scroll.bs.affix.data-api", a.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", a.proxy(this.checkPositionWithEventLoop, this)), this.$element = a(c), this.affixed = this.unpin = this.pinnedOffset = null, this.checkPosition();
      };b.RESET = "affix affix-top affix-bottom", b.DEFAULTS = { offset: 0 }, b.prototype.getPinnedOffset = function () {
          if (this.pinnedOffset) return this.pinnedOffset;this.$element.removeClass(b.RESET).addClass("affix");var a = this.$window.scrollTop(),
              c = this.$element.offset();return this.pinnedOffset = c.top - a;
      }, b.prototype.checkPositionWithEventLoop = function () {
          setTimeout(a.proxy(this.checkPosition, this), 1);
      }, b.prototype.checkPosition = function () {
          if (this.$element.is(":visible")) {
              var c = a(document).height(),
                  d = this.$window.scrollTop(),
                  e = this.$element.offset(),
                  f = this.options.offset,
                  g = f.top,
                  h = f.bottom;"top" == this.affixed && (e.top += d), "object" != (typeof f === "undefined" ? "undefined" : _typeof(f)) && (h = g = f), "function" == typeof g && (g = f.top(this.$element)), "function" == typeof h && (h = f.bottom(this.$element));var i = null != this.unpin && d + this.unpin <= e.top ? !1 : null != h && e.top + this.$element.height() >= c - h ? "bottom" : null != g && g >= d ? "top" : !1;if (this.affixed !== i) {
                  this.unpin && this.$element.css("top", "");var j = "affix" + (i ? "-" + i : ""),
                      k = a.Event(j + ".bs.affix");this.$element.trigger(k), k.isDefaultPrevented() || (this.affixed = i, this.unpin = "bottom" == i ? this.getPinnedOffset() : null, this.$element.removeClass(b.RESET).addClass(j).trigger(a.Event(j.replace("affix", "affixed"))), "bottom" == i && this.$element.offset({ top: c - h - this.$element.height() }));
              }
          }
      };var c = a.fn.affix;a.fn.affix = function (c) {
          return this.each(function () {
              var d = a(this),
                  e = d.data("bs.affix"),
                  f = "object" == (typeof c === "undefined" ? "undefined" : _typeof(c)) && c;e || d.data("bs.affix", e = new b(this, f)), "string" == typeof c && e[c]();
          });
      }, a.fn.affix.Constructor = b, a.fn.affix.noConflict = function () {
          return a.fn.affix = c, this;
      }, a(window).on("load", function () {
          a('[data-spy="affix"]').each(function () {
              var b = a(this),
                  c = b.data();c.offset = c.offset || {}, c.offsetBottom && (c.offset.bottom = c.offsetBottom), c.offsetTop && (c.offset.top = c.offsetTop), b.affix(c);
          });
      });
  }(jQuery);
  /*!
   * jQuery Cookie Plugin v1.4.1
   * https://github.com/carhartl/jquery-cookie
   *
   * Copyright 2013 Klaus Hartl
   * Released under the MIT license
   */
  (function (factory) {
      if (typeof define === 'function' && define.amd) {
          // AMD
          define(['jquery'], factory);
      } else if ((typeof exports === "undefined" ? "undefined" : _typeof(exports)) === 'object') {
          // CommonJS
          factory(require('jquery'));
      } else {
          // Browser globals
          factory(jQuery);
      }
  })(function ($) {
  
      var pluses = /\+/g;
  
      function encode(s) {
          return config.raw ? s : encodeURIComponent(s);
      }
  
      function decode(s) {
          return config.raw ? s : decodeURIComponent(s);
      }
  
      function stringifyCookieValue(value) {
          return encode(config.json ? JSON.stringify(value) : String(value));
      }
  
      function parseCookieValue(s) {
          if (s.indexOf('"') === 0) {
              // This is a quoted cookie as according to RFC2068, unescape...
              s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
          }
  
          try {
              // Replace server-side written pluses with spaces.
              // If we can't decode the cookie, ignore it, it's unusable.
              // If we can't parse the cookie, ignore it, it's unusable.
              s = decodeURIComponent(s.replace(pluses, ' '));
              return config.json ? JSON.parse(s) : s;
          } catch (e) {}
      }
  
      function read(s, converter) {
          var value = config.raw ? s : parseCookieValue(s);
          return $.isFunction(converter) ? converter(value) : value;
      }
  
      var config = $.cookie = function (key, value, options) {
  
          // Write
  
          if (value !== undefined && !$.isFunction(value)) {
              options = $.extend({}, config.defaults, options);
  
              if (typeof options.expires === 'number') {
                  var days = options.expires,
                      t = options.expires = new Date();
                  t.setTime(+t + days * 864e+5);
              }
  
              return document.cookie = [encode(key), '=', stringifyCookieValue(value), options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
              options.path ? '; path=' + options.path : '', options.domain ? '; domain=' + options.domain : '', options.secure ? '; secure' : ''].join('');
          }
  
          // Read
  
          var result = key ? undefined : {};
  
          // To prevent the for loop in the first place assign an empty array
          // in case there are no cookies at all. Also prevents odd result when
          // calling $.cookie().
          var cookies = document.cookie ? document.cookie.split('; ') : [];
  
          for (var i = 0, l = cookies.length; i < l; i++) {
              var parts = cookies[i].split('=');
              var name = decode(parts.shift());
              var cookie = parts.join('=');
  
              if (key && key === name) {
                  // If second argument (value) is a function it's a converter...
                  result = read(cookie, value);
                  break;
              }
  
              // Prevent storing a cookie that we couldn't decode.
              if (!key && (cookie = read(cookie)) !== undefined) {
                  result[name] = cookie;
              }
          }
  
          return result;
      };
  
      config.defaults = {};
  
      $.removeCookie = function (key, options) {
          if ($.cookie(key) === undefined) {
              return false;
          }
  
          // Must not alter options, thus extending a fresh object...
          $.cookie(key, '', $.extend({}, options, { expires: -1 }));
          return !$.cookie(key);
      };
  });
  
  // Generated by CoffeeScript 1.6.2
  /*!
  jQuery Waypoints - v2.0.5
  Copyright (c) 2011-2014 Caleb Troughton
  Licensed under the MIT license.
  https://github.com/imakewebthings/jquery-waypoints/blob/master/licenses.txt
  */
  (function () {
      var t = [].indexOf || function (t) {
          for (var e = 0, n = this.length; e < n; e++) {
              if (e in this && this[e] === t) return e;
          }return -1;
      },
          e = [].slice;(function (t, e) {
          if (typeof define === "function" && define.amd) {
              return define("waypoints", ["jquery"], function (n) {
                  return e(n, t);
              });
          } else {
              return e(t.jQuery, t);
          }
      })(window, function (n, r) {
          var i, o, l, s, f, u, c, a, h, d, p, y, v, w, g, m;i = n(r);a = t.call(r, "ontouchstart") >= 0;s = { horizontal: {}, vertical: {} };f = 1;c = {};u = "waypoints-context-id";p = "resize.waypoints";y = "scroll.waypoints";v = 1;w = "waypoints-waypoint-ids";g = "waypoint";m = "waypoints";o = function () {
              function t(t) {
                  var e = this;this.$element = t;this.element = t[0];this.didResize = false;this.didScroll = false;this.id = "context" + f++;this.oldScroll = { x: t.scrollLeft(), y: t.scrollTop() };this.waypoints = { horizontal: {}, vertical: {} };this.element[u] = this.id;c[this.id] = this;t.bind(y, function () {
                      var t;if (!(e.didScroll || a)) {
                          e.didScroll = true;t = function t() {
                              e.doScroll();return e.didScroll = false;
                          };return r.setTimeout(t, n[m].settings.scrollThrottle);
                      }
                  });t.bind(p, function () {
                      var t;if (!e.didResize) {
                          e.didResize = true;t = function t() {
                              n[m]("refresh");return e.didResize = false;
                          };return r.setTimeout(t, n[m].settings.resizeThrottle);
                      }
                  });
              }t.prototype.doScroll = function () {
                  var t,
                      e = this;t = { horizontal: { newScroll: this.$element.scrollLeft(), oldScroll: this.oldScroll.x, forward: "right", backward: "left" }, vertical: { newScroll: this.$element.scrollTop(), oldScroll: this.oldScroll.y, forward: "down", backward: "up" } };if (a && (!t.vertical.oldScroll || !t.vertical.newScroll)) {
                      n[m]("refresh");
                  }n.each(t, function (t, r) {
                      var i, o, l;l = [];o = r.newScroll > r.oldScroll;i = o ? r.forward : r.backward;n.each(e.waypoints[t], function (t, e) {
                          var n, i;if (r.oldScroll < (n = e.offset) && n <= r.newScroll) {
                              return l.push(e);
                          } else if (r.newScroll < (i = e.offset) && i <= r.oldScroll) {
                              return l.push(e);
                          }
                      });l.sort(function (t, e) {
                          return t.offset - e.offset;
                      });if (!o) {
                          l.reverse();
                      }return n.each(l, function (t, e) {
                          if (e.options.continuous || t === l.length - 1) {
                              return e.trigger([i]);
                          }
                      });
                  });return this.oldScroll = { x: t.horizontal.newScroll, y: t.vertical.newScroll };
              };t.prototype.refresh = function () {
                  var t,
                      e,
                      r,
                      i = this;r = n.isWindow(this.element);e = this.$element.offset();this.doScroll();t = { horizontal: { contextOffset: r ? 0 : e.left, contextScroll: r ? 0 : this.oldScroll.x, contextDimension: this.$element.width(), oldScroll: this.oldScroll.x, forward: "right", backward: "left", offsetProp: "left" }, vertical: { contextOffset: r ? 0 : e.top, contextScroll: r ? 0 : this.oldScroll.y, contextDimension: r ? n[m]("viewportHeight") : this.$element.height(), oldScroll: this.oldScroll.y, forward: "down", backward: "up", offsetProp: "top" } };return n.each(t, function (t, e) {
                      return n.each(i.waypoints[t], function (t, r) {
                          var i, o, l, s, f;i = r.options.offset;l = r.offset;o = n.isWindow(r.element) ? 0 : r.$element.offset()[e.offsetProp];if (n.isFunction(i)) {
                              i = i.apply(r.element);
                          } else if (typeof i === "string") {
                              i = parseFloat(i);if (r.options.offset.indexOf("%") > -1) {
                                  i = Math.ceil(e.contextDimension * i / 100);
                              }
                          }r.offset = o - e.contextOffset + e.contextScroll - i;if (r.options.onlyOnScroll && l != null || !r.enabled) {
                              return;
                          }if (l !== null && l < (s = e.oldScroll) && s <= r.offset) {
                              return r.trigger([e.backward]);
                          } else if (l !== null && l > (f = e.oldScroll) && f >= r.offset) {
                              return r.trigger([e.forward]);
                          } else if (l === null && e.oldScroll >= r.offset) {
                              return r.trigger([e.forward]);
                          }
                      });
                  });
              };t.prototype.checkEmpty = function () {
                  if (n.isEmptyObject(this.waypoints.horizontal) && n.isEmptyObject(this.waypoints.vertical)) {
                      this.$element.unbind([p, y].join(" "));return delete c[this.id];
                  }
              };return t;
          }();l = function () {
              function t(t, e, r) {
                  var i, o;if (r.offset === "bottom-in-view") {
                      r.offset = function () {
                          var t;t = n[m]("viewportHeight");if (!n.isWindow(e.element)) {
                              t = e.$element.height();
                          }return t - n(this).outerHeight();
                      };
                  }this.$element = t;this.element = t[0];this.axis = r.horizontal ? "horizontal" : "vertical";this.callback = r.handler;this.context = e;this.enabled = r.enabled;this.id = "waypoints" + v++;this.offset = null;this.options = r;e.waypoints[this.axis][this.id] = this;s[this.axis][this.id] = this;i = (o = this.element[w]) != null ? o : [];i.push(this.id);this.element[w] = i;
              }t.prototype.trigger = function (t) {
                  if (!this.enabled) {
                      return;
                  }if (this.callback != null) {
                      this.callback.apply(this.element, t);
                  }if (this.options.triggerOnce) {
                      return this.destroy();
                  }
              };t.prototype.disable = function () {
                  return this.enabled = false;
              };t.prototype.enable = function () {
                  this.context.refresh();return this.enabled = true;
              };t.prototype.destroy = function () {
                  delete s[this.axis][this.id];delete this.context.waypoints[this.axis][this.id];return this.context.checkEmpty();
              };t.getWaypointsByElement = function (t) {
                  var e, r;r = t[w];if (!r) {
                      return [];
                  }e = n.extend({}, s.horizontal, s.vertical);return n.map(r, function (t) {
                      return e[t];
                  });
              };return t;
          }();d = { init: function init(t, e) {
                  var r;e = n.extend({}, n.fn[g].defaults, e);if ((r = e.handler) == null) {
                      e.handler = t;
                  }this.each(function () {
                      var t, r, i, s;t = n(this);i = (s = e.context) != null ? s : n.fn[g].defaults.context;if (!n.isWindow(i)) {
                          i = t.closest(i);
                      }i = n(i);r = c[i[0][u]];if (!r) {
                          r = new o(i);
                      }return new l(t, r, e);
                  });n[m]("refresh");return this;
              }, disable: function disable() {
                  return d._invoke.call(this, "disable");
              }, enable: function enable() {
                  return d._invoke.call(this, "enable");
              }, destroy: function destroy() {
                  return d._invoke.call(this, "destroy");
              }, prev: function prev(t, e) {
                  return d._traverse.call(this, t, e, function (t, e, n) {
                      if (e > 0) {
                          return t.push(n[e - 1]);
                      }
                  });
              }, next: function next(t, e) {
                  return d._traverse.call(this, t, e, function (t, e, n) {
                      if (e < n.length - 1) {
                          return t.push(n[e + 1]);
                      }
                  });
              }, _traverse: function _traverse(t, e, i) {
                  var o, l;if (t == null) {
                      t = "vertical";
                  }if (e == null) {
                      e = r;
                  }l = h.aggregate(e);o = [];this.each(function () {
                      var e;e = n.inArray(this, l[t]);return i(o, e, l[t]);
                  });return this.pushStack(o);
              }, _invoke: function _invoke(t) {
                  this.each(function () {
                      var e;e = l.getWaypointsByElement(this);return n.each(e, function (e, n) {
                          n[t]();return true;
                      });
                  });return this;
              } };n.fn[g] = function () {
              var t, r;r = arguments[0], t = 2 <= arguments.length ? e.call(arguments, 1) : [];if (d[r]) {
                  return d[r].apply(this, t);
              } else if (n.isFunction(r)) {
                  return d.init.apply(this, arguments);
              } else if (n.isPlainObject(r)) {
                  return d.init.apply(this, [null, r]);
              } else if (!r) {
                  return n.error("jQuery Waypoints needs a callback function or handler option.");
              } else {
                  return n.error("The " + r + " method does not exist in jQuery Waypoints.");
              }
          };n.fn[g].defaults = { context: r, continuous: true, enabled: true, horizontal: false, offset: 0, triggerOnce: false };h = { refresh: function refresh() {
                  return n.each(c, function (t, e) {
                      return e.refresh();
                  });
              }, viewportHeight: function viewportHeight() {
                  var t;return (t = r.innerHeight) != null ? t : i.height();
              }, aggregate: function aggregate(t) {
                  var e, r, i;e = s;if (t) {
                      e = (i = c[n(t)[0][u]]) != null ? i.waypoints : void 0;
                  }if (!e) {
                      return [];
                  }r = { horizontal: [], vertical: [] };n.each(r, function (t, i) {
                      n.each(e[t], function (t, e) {
                          return i.push(e);
                      });i.sort(function (t, e) {
                          return t.offset - e.offset;
                      });r[t] = n.map(i, function (t) {
                          return t.element;
                      });return r[t] = n.unique(r[t]);
                  });return r;
              }, above: function above(t) {
                  if (t == null) {
                      t = r;
                  }return h._filter(t, "vertical", function (t, e) {
                      return e.offset <= t.oldScroll.y;
                  });
              }, below: function below(t) {
                  if (t == null) {
                      t = r;
                  }return h._filter(t, "vertical", function (t, e) {
                      return e.offset > t.oldScroll.y;
                  });
              }, left: function left(t) {
                  if (t == null) {
                      t = r;
                  }return h._filter(t, "horizontal", function (t, e) {
                      return e.offset <= t.oldScroll.x;
                  });
              }, right: function right(t) {
                  if (t == null) {
                      t = r;
                  }return h._filter(t, "horizontal", function (t, e) {
                      return e.offset > t.oldScroll.x;
                  });
              }, enable: function enable() {
                  return h._invoke("enable");
              }, disable: function disable() {
                  return h._invoke("disable");
              }, destroy: function destroy() {
                  return h._invoke("destroy");
              }, extendFn: function extendFn(t, e) {
                  return d[t] = e;
              }, _invoke: function _invoke(t) {
                  var e;e = n.extend({}, s.vertical, s.horizontal);return n.each(e, function (e, n) {
                      n[t]();return true;
                  });
              }, _filter: function _filter(t, e, r) {
                  var i, o;i = c[n(t)[0][u]];if (!i) {
                      return [];
                  }o = [];n.each(i.waypoints[e], function (t, e) {
                      if (r(i, e)) {
                          return o.push(e);
                      }
                  });o.sort(function (t, e) {
                      return t.offset - e.offset;
                  });return n.map(o, function (t) {
                      return t.element;
                  });
              } };n[m] = function () {
              var t, n;n = arguments[0], t = 2 <= arguments.length ? e.call(arguments, 1) : [];if (h[n]) {
                  return h[n].apply(null, t);
              } else {
                  return h.aggregate.call(null, n);
              }
          };n[m].settings = { resizeThrottle: 100, scrollThrottle: 30 };return i.on("load.waypoints", function () {
              return n[m]("refresh");
          });
      });
  }).call(this);
  /*!
   * Modernizr v2.8.2
   * www.modernizr.com
   *
   * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton
   * Available under the BSD and MIT licenses: www.modernizr.com/license/
   */
  
  /*
   * Modernizr tests which native CSS3 and HTML5 features are available in
   * the current UA and makes the results available to you in two ways:
   * as properties on a global Modernizr object, and as classes on the
   * <html> element. This information allows you to progressively enhance
   * your pages with a granular level of control over the experience.
   *
   * Modernizr has an optional (not included) conditional resource loader
   * called Modernizr.load(), based on Yepnope.js (yepnopejs.com).
   * To get a build that includes Modernizr.load(), as well as choosing
   * which tests to include, go to www.modernizr.com/download/
   *
   * Authors        Faruk Ates, Paul Irish, Alex Sexton
   * Contributors   Ryan Seddon, Ben Alman
   */
  
  window.Modernizr = function (window, document, undefined) {
  
      var version = '2.8.2',
          Modernizr = {},
  
  
      /*>>cssclasses*/
      // option for enabling the HTML classes to be added
      enableClasses = true,
  
      /*>>cssclasses*/
  
      docElement = document.documentElement,
  
  
      /**
       * Create our "modernizr" element that we do most feature tests on.
       */
      mod = 'modernizr',
          modElem = document.createElement(mod),
          mStyle = modElem.style,
  
  
      /**
       * Create the input element for various Web Forms feature tests.
       */
      inputElem /*>>inputelem*/ = document.createElement('input') /*>>inputelem*/
  
      ,
          /*>>smile*/
      smile = ':)',
  
      /*>>smile*/
  
      toString = {}.toString,
  
  
      // TODO :: make the prefixes more granular
      /*>>prefixes*/
      // List of property values to set for css tests. See ticket #21
      prefixes = ' -webkit- -moz- -o- -ms- '.split(' '),
  
      /*>>prefixes*/
  
      /*>>domprefixes*/
      // Following spec is to expose vendor-specific style properties as:
      //   elem.style.WebkitBorderRadius
      // and the following would be incorrect:
      //   elem.style.webkitBorderRadius
  
      // Webkit ghosts their properties in lowercase but Opera & Moz do not.
      // Microsoft uses a lowercase `ms` instead of the correct `Ms` in IE8+
      //   erik.eae.net/archives/2008/03/10/21.48.10/
  
      // More here: github.com/Modernizr/Modernizr/issues/issue/21
      omPrefixes = 'Webkit Moz O ms',
          cssomPrefixes = omPrefixes.split(' '),
          domPrefixes = omPrefixes.toLowerCase().split(' '),
  
      /*>>domprefixes*/
  
      /*>>ns*/
      ns = { 'svg': 'http://www.w3.org/2000/svg' },
  
      /*>>ns*/
  
      tests = {},
          inputs = {},
          attrs = {},
          classes = [],
          slice = classes.slice,
          featureName,
          // used in testing loop
  
  
      /*>>teststyles*/
      // Inject element with style element and some CSS rules
      injectElementWithStyles = function injectElementWithStyles(rule, callback, nodes, testnames) {
  
          var style,
              ret,
              node,
              docOverflow,
              div = document.createElement('div'),
  
          // After page load injecting a fake body doesn't work so check if body exists
          body = document.body,
  
          // IE6 and 7 won't return offsetWidth or offsetHeight unless it's in the body element, so we fake it.
          fakeBody = body || document.createElement('body');
  
          if (parseInt(nodes, 10)) {
              // In order not to give false positives we create a node for each test
              // This also allows the method to scale for unspecified uses
              while (nodes--) {
                  node = document.createElement('div');
                  node.id = testnames ? testnames[nodes] : mod + (nodes + 1);
                  div.appendChild(node);
              }
          }
  
          // <style> elements in IE6-9 are considered 'NoScope' elements and therefore will be removed
          // when injected with innerHTML. To get around this you need to prepend the 'NoScope' element
          // with a 'scoped' element, in our case the soft-hyphen entity as it won't mess with our measurements.
          // msdn.microsoft.com/en-us/library/ms533897%28VS.85%29.aspx
          // Documents served as xml will throw if using &shy; so use xml friendly encoded version. See issue #277
          style = ['&#173;', '<style id="s', mod, '">', rule, '</style>'].join('');
          div.id = mod;
          // IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody.
          // Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270
          (body ? div : fakeBody).innerHTML += style;
          fakeBody.appendChild(div);
          if (!body) {
              //avoid crashing IE8, if background image is used
              fakeBody.style.background = '';
              //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible
              fakeBody.style.overflow = 'hidden';
              docOverflow = docElement.style.overflow;
              docElement.style.overflow = 'hidden';
              docElement.appendChild(fakeBody);
          }
  
          ret = callback(div, rule);
          // If this is done after page load we don't want to remove the body so check if body exists
          if (!body) {
              fakeBody.parentNode.removeChild(fakeBody);
              docElement.style.overflow = docOverflow;
          } else {
              div.parentNode.removeChild(div);
          }
  
          return !!ret;
      },
  
      /*>>teststyles*/
  
      /*>>mq*/
      // adapted from matchMedia polyfill
      // by Scott Jehl and Paul Irish
      // gist.github.com/786768
      testMediaQuery = function testMediaQuery(mq) {
  
          var matchMedia = window.matchMedia || window.msMatchMedia;
          if (matchMedia) {
              return matchMedia(mq) && matchMedia(mq).matches || false;
          }
  
          var bool;
  
          injectElementWithStyles('@media ' + mq + ' { #' + mod + ' { position: absolute; } }', function (node) {
              bool = (window.getComputedStyle ? getComputedStyle(node, null) : node.currentStyle)['position'] == 'absolute';
          });
  
          return bool;
      },
  
      /*>>mq*/
  
      /*>>hasevent*/
      //
      // isEventSupported determines if a given element supports the given event
      // kangax.github.com/iseventsupported/
      //
      // The following results are known incorrects:
      //   Modernizr.hasEvent("webkitTransitionEnd", elem) // false negative
      //   Modernizr.hasEvent("textInput") // in Webkit. github.com/Modernizr/Modernizr/issues/333
      //   ...
      isEventSupported = function () {
  
          var TAGNAMES = {
              'select': 'input', 'change': 'input',
              'submit': 'form', 'reset': 'form',
              'error': 'img', 'load': 'img', 'abort': 'img'
          };
  
          function isEventSupported(eventName, element) {
  
              element = element || document.createElement(TAGNAMES[eventName] || 'div');
              eventName = 'on' + eventName;
  
              // When using `setAttribute`, IE skips "unload", WebKit skips "unload" and "resize", whereas `in` "catches" those
              var isSupported = eventName in element;
  
              if (!isSupported) {
                  // If it has no `setAttribute` (i.e. doesn't implement Node interface), try generic element
                  if (!element.setAttribute) {
                      element = document.createElement('div');
                  }
                  if (element.setAttribute && element.removeAttribute) {
                      element.setAttribute(eventName, '');
                      isSupported = is(element[eventName], 'function');
  
                      // If property was created, "remove it" (by setting value to `undefined`)
                      if (!is(element[eventName], 'undefined')) {
                          element[eventName] = undefined;
                      }
                      element.removeAttribute(eventName);
                  }
              }
  
              element = null;
              return isSupported;
          }
          return isEventSupported;
      }(),
  
      /*>>hasevent*/
  
      // TODO :: Add flag for hasownprop ? didn't last time
  
      // hasOwnProperty shim by kangax needed for Safari 2.0 support
      _hasOwnProperty = {}.hasOwnProperty,
          hasOwnProp;
  
      if (!is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined')) {
          hasOwnProp = function hasOwnProp(object, property) {
              return _hasOwnProperty.call(object, property);
          };
      } else {
          hasOwnProp = function hasOwnProp(object, property) {
              /* yes, this can give false positives/negatives, but most of the time we don't care about those */
              return property in object && is(object.constructor.prototype[property], 'undefined');
          };
      }
  
      // Adapted from ES5-shim https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js
      // es5.github.com/#x15.3.4.5
  
      if (!Function.prototype.bind) {
          Function.prototype.bind = function bind(that) {
  
              var target = this;
  
              if (typeof target != "function") {
                  throw new TypeError();
              }
  
              var args = slice.call(arguments, 1),
                  bound = function bound() {
  
                  if (this instanceof bound) {
  
                      var F = function F() {};
                      F.prototype = target.prototype;
                      var self = new F();
  
                      var result = target.apply(self, args.concat(slice.call(arguments)));
                      if (Object(result) === result) {
                          return result;
                      }
                      return self;
                  } else {
  
                      return target.apply(that, args.concat(slice.call(arguments)));
                  }
              };
  
              return bound;
          };
      }
  
      /**
       * setCss applies given styles to the Modernizr DOM node.
       */
      function setCss(str) {
          mStyle.cssText = str;
      }
  
      /**
       * setCssAll extrapolates all vendor-specific css strings.
       */
      function setCssAll(str1, str2) {
          return setCss(prefixes.join(str1 + ';') + (str2 || ''));
      }
  
      /**
       * is returns a boolean for if typeof obj is exactly type.
       */
      function is(obj, type) {
          return (typeof obj === "undefined" ? "undefined" : _typeof(obj)) === type;
      }
  
      /**
       * contains returns a boolean for if substr is found within str.
       */
      function contains(str, substr) {
          return !!~('' + str).indexOf(substr);
      }
  
      /*>>testprop*/
  
      // testProps is a generic CSS / DOM property test.
  
      // In testing support for a given CSS property, it's legit to test:
      //    `elem.style[styleName] !== undefined`
      // If the property is supported it will return an empty string,
      // if unsupported it will return undefined.
  
      // We'll take advantage of this quick test and skip setting a style
      // on our modernizr element, but instead just testing undefined vs
      // empty string.
  
      // Because the testing of the CSS property names (with "-", as
      // opposed to the camelCase DOM properties) is non-portable and
      // non-standard but works in WebKit and IE (but not Gecko or Opera),
      // we explicitly reject properties with dashes so that authors
      // developing in WebKit or IE first don't end up with
      // browser-specific content by accident.
  
      function testProps(props, prefixed) {
          for (var i in props) {
              var prop = props[i];
              if (!contains(prop, "-") && mStyle[prop] !== undefined) {
                  return prefixed == 'pfx' ? prop : true;
              }
          }
          return false;
      }
      /*>>testprop*/
  
      // TODO :: add testDOMProps
      /**
       * testDOMProps is a generic DOM property test; if a browser supports
       *   a certain property, it won't return undefined for it.
       */
      function testDOMProps(props, obj, elem) {
          for (var i in props) {
              var item = obj[props[i]];
              if (item !== undefined) {
  
                  // return the property name as a string
                  if (elem === false) return props[i];
  
                  // let's bind a function
                  if (is(item, 'function')) {
                      // default to autobind unless override
                      return item.bind(elem || obj);
                  }
  
                  // return the unbound function or obj or value
                  return item;
              }
          }
          return false;
      }
  
      /*>>testallprops*/
      /**
       * testPropsAll tests a list of DOM properties we want to check against.
       *   We specify literally ALL possible (known and/or likely) properties on
       *   the element including the non-vendor prefixed one, for forward-
       *   compatibility.
       */
      function testPropsAll(prop, prefixed, elem) {
  
          var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1),
              props = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' ');
  
          // did they call .prefixed('boxSizing') or are we just testing a prop?
          if (is(prefixed, "string") || is(prefixed, "undefined")) {
              return testProps(props, prefixed);
  
              // otherwise, they called .prefixed('requestAnimationFrame', window[, elem])
          } else {
              props = (prop + ' ' + domPrefixes.join(ucProp + ' ') + ucProp).split(' ');
              return testDOMProps(props, prefixed, elem);
          }
      }
      /*>>testallprops*/
  
      /**
       * Tests
       * -----
       */
  
      // The *new* flexbox
      // dev.w3.org/csswg/css3-flexbox
  
      tests['flexbox'] = function () {
          return testPropsAll('flexWrap');
      };
  
      // The *old* flexbox
      // www.w3.org/TR/2009/WD-css3-flexbox-20090723/
  
      tests['flexboxlegacy'] = function () {
          return testPropsAll('boxDirection');
      };
  
      // On the S60 and BB Storm, getContext exists, but always returns undefined
      // so we actually have to call getContext() to verify
      // github.com/Modernizr/Modernizr/issues/issue/97/
  
      tests['canvas'] = function () {
          var elem = document.createElement('canvas');
          return !!(elem.getContext && elem.getContext('2d'));
      };
  
      tests['canvastext'] = function () {
          return !!(Modernizr['canvas'] && is(document.createElement('canvas').getContext('2d').fillText, 'function'));
      };
  
      // webk.it/70117 is tracking a legit WebGL feature detect proposal
  
      // We do a soft detect which may false positive in order to avoid
      // an expensive context creation: bugzil.la/732441
  
      tests['webgl'] = function () {
          return !!window.WebGLRenderingContext;
      };
  
      /*
       * The Modernizr.touch test only indicates if the browser supports
       *    touch events, which does not necessarily reflect a touchscreen
       *    device, as evidenced by tablets running Windows 7 or, alas,
       *    the Palm Pre / WebOS (touch) phones.
       *
       * Additionally, Chrome (desktop) used to lie about its support on this,
       *    but that has since been rectified: crbug.com/36415
       *
       * We also test for Firefox 4 Multitouch Support.
       *
       * For more info, see: modernizr.github.com/Modernizr/touch.html
       */
  
      tests['touch'] = function () {
          var bool;
  
          if ('ontouchstart' in window || window.DocumentTouch && document instanceof DocumentTouch) {
              bool = true;
          } else {
              injectElementWithStyles(['@media (', prefixes.join('touch-enabled),('), mod, ')', '{#modernizr{top:9px;position:absolute}}'].join(''), function (node) {
                  bool = node.offsetTop === 9;
              });
          }
  
          return bool;
      };
  
      // geolocation is often considered a trivial feature detect...
      // Turns out, it's quite tricky to get right:
      //
      // Using !!navigator.geolocation does two things we don't want. It:
      //   1. Leaks memory in IE9: github.com/Modernizr/Modernizr/issues/513
      //   2. Disables page caching in WebKit: webk.it/43956
      //
      // Meanwhile, in Firefox < 8, an about:config setting could expose
      // a false positive that would throw an exception: bugzil.la/688158
  
      tests['geolocation'] = function () {
          return 'geolocation' in navigator;
      };
  
      tests['postmessage'] = function () {
          return !!window.postMessage;
      };
  
      // Chrome incognito mode used to throw an exception when using openDatabase
      // It doesn't anymore.
      tests['websqldatabase'] = function () {
          return !!window.openDatabase;
      };
  
      // Vendors had inconsistent prefixing with the experimental Indexed DB:
      // - Webkit's implementation is accessible through webkitIndexedDB
      // - Firefox shipped moz_indexedDB before FF4b9, but since then has been mozIndexedDB
      // For speed, we don't test the legacy (and beta-only) indexedDB
      tests['indexedDB'] = function () {
          return !!testPropsAll("indexedDB", window);
      };
  
      // documentMode logic from YUI to filter out IE8 Compat Mode
      //   which false positives.
      tests['hashchange'] = function () {
          return isEventSupported('hashchange', window) && (document.documentMode === undefined || document.documentMode > 7);
      };
  
      // Per 1.6:
      // This used to be Modernizr.historymanagement but the longer
      // name has been deprecated in favor of a shorter and property-matching one.
      // The old API is still available in 1.6, but as of 2.0 will throw a warning,
      // and in the first release thereafter disappear entirely.
      tests['history'] = function () {
          return !!(window.history && history.pushState);
      };
  
      tests['draganddrop'] = function () {
          var div = document.createElement('div');
          return 'draggable' in div || 'ondragstart' in div && 'ondrop' in div;
      };
  
      // FF3.6 was EOL'ed on 4/24/12, but the ESR version of FF10
      // will be supported until FF19 (2/12/13), at which time, ESR becomes FF17.
      // FF10 still uses prefixes, so check for it until then.
      // for more ESR info, see: mozilla.org/en-US/firefox/organizations/faq/
      tests['websockets'] = function () {
          return 'WebSocket' in window || 'MozWebSocket' in window;
      };
  
      // css-tricks.com/rgba-browser-support/
      tests['rgba'] = function () {
          // Set an rgba() color and check the returned value
  
          setCss('background-color:rgba(150,255,150,.5)');
  
          return contains(mStyle.backgroundColor, 'rgba');
      };
  
      tests['hsla'] = function () {
          // Same as rgba(), in fact, browsers re-map hsla() to rgba() internally,
          //   except IE9 who retains it as hsla
  
          setCss('background-color:hsla(120,40%,100%,.5)');
  
          return contains(mStyle.backgroundColor, 'rgba') || contains(mStyle.backgroundColor, 'hsla');
      };
  
      tests['multiplebgs'] = function () {
          // Setting multiple images AND a color on the background shorthand property
          //  and then querying the style.background property value for the number of
          //  occurrences of "url(" is a reliable method for detecting ACTUAL support for this!
  
          setCss('background:url(https://),url(https://),red url(https://)');
  
          // If the UA supports multiple backgrounds, there should be three occurrences
          //   of the string "url(" in the return value for elemStyle.background
  
          return (/(url\s*\(.*?){3}/.test(mStyle.background)
          );
      };
  
      // this will false positive in Opera Mini
      //   github.com/Modernizr/Modernizr/issues/396
  
      tests['backgroundsize'] = function () {
          return testPropsAll('backgroundSize');
      };
  
      tests['borderimage'] = function () {
          return testPropsAll('borderImage');
      };
  
      // Super comprehensive table about all the unique implementations of
      // border-radius: muddledramblings.com/table-of-css3-border-radius-compliance
  
      tests['borderradius'] = function () {
          return testPropsAll('borderRadius');
      };
  
      // WebOS unfortunately false positives on this test.
      tests['boxshadow'] = function () {
          return testPropsAll('boxShadow');
      };
  
      // FF3.0 will false positive on this test
      tests['textshadow'] = function () {
          return document.createElement('div').style.textShadow === '';
      };
  
      tests['opacity'] = function () {
          // Browsers that actually have CSS Opacity implemented have done so
          //  according to spec, which means their return values are within the
          //  range of [0.0,1.0] - including the leading zero.
  
          setCssAll('opacity:.55');
  
          // The non-literal . in this regex is intentional:
          //   German Chrome returns this value as 0,55
          // github.com/Modernizr/Modernizr/issues/#issue/59/comment/516632
          return (/^0.55$/.test(mStyle.opacity)
          );
      };
  
      // Note, Android < 4 will pass this test, but can only animate
      //   a single property at a time
      //   goo.gl/v3V4Gp
      tests['cssanimations'] = function () {
          return testPropsAll('animationName');
      };
  
      tests['csscolumns'] = function () {
          return testPropsAll('columnCount');
      };
  
      tests['cssgradients'] = function () {
          /**
           * For CSS Gradients syntax, please see:
           * webkit.org/blog/175/introducing-css-gradients/
           * developer.mozilla.org/en/CSS/-moz-linear-gradient
           * developer.mozilla.org/en/CSS/-moz-radial-gradient
           * dev.w3.org/csswg/css3-images/#gradients-
           */
  
          var str1 = 'background-image:',
              str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));',
              str3 = 'linear-gradient(left top,#9f9, white);';
  
          setCss(
          // legacy webkit syntax (FIXME: remove when syntax not in use anymore)
          (str1 + '-webkit- '.split(' ').join(str2 + str1) +
          // standard syntax             // trailing 'background-image:'
          prefixes.join(str3 + str1)).slice(0, -str1.length));
  
          return contains(mStyle.backgroundImage, 'gradient');
      };
  
      tests['cssreflections'] = function () {
          return testPropsAll('boxReflect');
      };
  
      tests['csstransforms'] = function () {
          return !!testPropsAll('transform');
      };
  
      tests['csstransforms3d'] = function () {
  
          var ret = !!testPropsAll('perspective');
  
          // Webkit's 3D transforms are passed off to the browser's own graphics renderer.
          //   It works fine in Safari on Leopard and Snow Leopard, but not in Chrome in
          //   some conditions. As a result, Webkit typically recognizes the syntax but
          //   will sometimes throw a false positive, thus we must do a more thorough check:
          if (ret && 'webkitPerspective' in docElement.style) {
  
              // Webkit allows this media query to succeed only if the feature is enabled.
              // `@media (transform-3d),(-webkit-transform-3d){ ... }`
              injectElementWithStyles('@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}', function (node, rule) {
                  ret = node.offsetLeft === 9 && node.offsetHeight === 3;
              });
          }
          return ret;
      };
  
      tests['csstransitions'] = function () {
          return testPropsAll('transition');
      };
  
      /*>>fontface*/
      // @font-face detection routine by Diego Perini
      // javascript.nwbox.com/CSSSupport/
  
      // false positives:
      //   WebOS github.com/Modernizr/Modernizr/issues/342
      //   WP7   github.com/Modernizr/Modernizr/issues/538
      tests['fontface'] = function () {
          var bool;
  
          injectElementWithStyles('@font-face {font-family:"font";src:url("https://")}', function (node, rule) {
              var style = document.getElementById('smodernizr'),
                  sheet = style.sheet || style.styleSheet,
                  cssText = sheet ? sheet.cssRules && sheet.cssRules[0] ? sheet.cssRules[0].cssText : sheet.cssText || '' : '';
  
              bool = /src/i.test(cssText) && cssText.indexOf(rule.split(' ')[0]) === 0;
          });
  
          return bool;
      };
      /*>>fontface*/
  
      // CSS generated content detection
      tests['generatedcontent'] = function () {
          var bool;
  
          injectElementWithStyles(['#', mod, '{font:0/0 a}#', mod, ':after{content:"', smile, '";visibility:hidden;font:3px/1 a}'].join(''), function (node) {
              bool = node.offsetHeight >= 3;
          });
  
          return bool;
      };
  
      // These tests evaluate support of the video/audio elements, as well as
      // testing what types of content they support.
      //
      // We're using the Boolean constructor here, so that we can extend the value
      // e.g.  Modernizr.video     // true
      //       Modernizr.video.ogg // 'probably'
      //
      // Codec values from : github.com/NielsLeenheer/html5test/blob/9106a8/index.html#L845
      //                     thx to NielsLeenheer and zcorpan
  
      // Note: in some older browsers, "no" was a return value instead of empty string.
      //   It was live in FF3.5.0 and 3.5.1, but fixed in 3.5.2
      //   It was also live in Safari 4.0.0 - 4.0.4, but fixed in 4.0.5
  
      tests['video'] = function () {
          var elem = document.createElement('video'),
              bool = false;
  
          // IE9 Running on Windows Server SKU can cause an exception to be thrown, bug #224
          try {
              if (bool = !!elem.canPlayType) {
                  bool = new Boolean(bool);
                  bool.ogg = elem.canPlayType('video/ogg; codecs="theora"').replace(/^no$/, '');
  
                  // Without QuickTime, this value will be `undefined`. github.com/Modernizr/Modernizr/issues/546
                  bool.h264 = elem.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/, '');
  
                  bool.webm = elem.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/, '');
              }
          } catch (e) {}
  
          return bool;
      };
  
      tests['audio'] = function () {
          var elem = document.createElement('audio'),
              bool = false;
  
          try {
              if (bool = !!elem.canPlayType) {
                  bool = new Boolean(bool);
                  bool.ogg = elem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, '');
                  bool.mp3 = elem.canPlayType('audio/mpeg;').replace(/^no$/, '');
  
                  // Mimetypes accepted:
                  //   developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements
                  //   bit.ly/iphoneoscodecs
                  bool.wav = elem.canPlayType('audio/wav; codecs="1"').replace(/^no$/, '');
                  bool.m4a = (elem.canPlayType('audio/x-m4a;') || elem.canPlayType('audio/aac;')).replace(/^no$/, '');
              }
          } catch (e) {}
  
          return bool;
      };
  
      // In FF4, if disabled, window.localStorage should === null.
  
      // Normally, we could not test that directly and need to do a
      //   `('localStorage' in window) && ` test first because otherwise Firefox will
      //   throw bugzil.la/365772 if cookies are disabled
  
      // Also in iOS5 Private Browsing mode, attempting to use localStorage.setItem
      // will throw the exception:
      //   QUOTA_EXCEEDED_ERRROR DOM Exception 22.
      // Peculiarly, getItem and removeItem calls do not throw.
  
      // Because we are forced to try/catch this, we'll go aggressive.
  
      // Just FWIW: IE8 Compat mode supports these features completely:
      //   www.quirksmode.org/dom/html5.html
      // But IE8 doesn't support either with local files
  
      tests['localstorage'] = function () {
          try {
              localStorage.setItem(mod, mod);
              localStorage.removeItem(mod);
              return true;
          } catch (e) {
              return false;
          }
      };
  
      tests['sessionstorage'] = function () {
          try {
              sessionStorage.setItem(mod, mod);
              sessionStorage.removeItem(mod);
              return true;
          } catch (e) {
              return false;
          }
      };
  
      tests['webworkers'] = function () {
          return !!window.Worker;
      };
  
      tests['applicationcache'] = function () {
          return !!window.applicationCache;
      };
  
      // Thanks to Erik Dahlstrom
      tests['svg'] = function () {
          return !!document.createElementNS && !!document.createElementNS(ns.svg, 'svg').createSVGRect;
      };
  
      // specifically for SVG inline in HTML, not within XHTML
      // test page: paulirish.com/demo/inline-svg
      tests['inlinesvg'] = function () {
          var div = document.createElement('div');
          div.innerHTML = '<svg/>';
          return (div.firstChild && div.firstChild.namespaceURI) == ns.svg;
      };
  
      // SVG SMIL animation
      tests['smil'] = function () {
          return !!document.createElementNS && /SVGAnimate/.test(toString.call(document.createElementNS(ns.svg, 'animate')));
      };
  
      // This test is only for clip paths in SVG proper, not clip paths on HTML content
      // demo: srufaculty.sru.edu/david.dailey/svg/newstuff/clipPath4.svg
  
      // However read the comments to dig into applying SVG clippaths to HTML content here:
      //   github.com/Modernizr/Modernizr/issues/213#issuecomment-1149491
      tests['svgclippaths'] = function () {
          return !!document.createElementNS && /SVGClipPath/.test(toString.call(document.createElementNS(ns.svg, 'clipPath')));
      };
  
      /*>>webforms*/
      // input features and input types go directly onto the ret object, bypassing the tests loop.
      // Hold this guy to execute in a moment.
      function webforms() {
          /*>>input*/
          // Run through HTML5's new input attributes to see if the UA understands any.
          // We're using f which is the <input> element created early on
          // Mike Taylr has created a comprehensive resource for testing these attributes
          //   when applied to all input types:
          //   miketaylr.com/code/input-type-attr.html
          // spec: www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary
  
          // Only input placeholder is tested while textarea's placeholder is not.
          // Currently Safari 4 and Opera 11 have support only for the input placeholder
          // Both tests are available in feature-detects/forms-placeholder.js
          Modernizr['input'] = function (props) {
              for (var i = 0, len = props.length; i < len; i++) {
                  attrs[props[i]] = !!(props[i] in inputElem);
              }
              if (attrs.list) {
                  // safari false positive's on datalist: webk.it/74252
                  // see also github.com/Modernizr/Modernizr/issues/146
                  attrs.list = !!(document.createElement('datalist') && window.HTMLDataListElement);
              }
              return attrs;
          }('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' '));
          /*>>input*/
  
          /*>>inputtypes*/
          // Run through HTML5's new input types to see if the UA understands any.
          //   This is put behind the tests runloop because it doesn't return a
          //   true/false like all the other tests; instead, it returns an object
          //   containing each input type with its corresponding true/false value
  
          // Big thanks to @miketaylr for the html5 forms expertise. miketaylr.com/
          Modernizr['inputtypes'] = function (props) {
  
              for (var i = 0, bool, inputElemType, defaultView, len = props.length; i < len; i++) {
  
                  inputElem.setAttribute('type', inputElemType = props[i]);
                  bool = inputElem.type !== 'text';
  
                  // We first check to see if the type we give it sticks..
                  // If the type does, we feed it a textual value, which shouldn't be valid.
                  // If the value doesn't stick, we know there's input sanitization which infers a custom UI
                  if (bool) {
  
                      inputElem.value = smile;
                      inputElem.style.cssText = 'position:absolute;visibility:hidden;';
  
                      if (/^range$/.test(inputElemType) && inputElem.style.WebkitAppearance !== undefined) {
  
                          docElement.appendChild(inputElem);
                          defaultView = document.defaultView;
  
                          // Safari 2-4 allows the smiley as a value, despite making a slider
                          bool = defaultView.getComputedStyle && defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== 'textfield' &&
                          // Mobile android web browser has false positive, so must
                          // check the height to see if the widget is actually there.
                          inputElem.offsetHeight !== 0;
  
                          docElement.removeChild(inputElem);
                      } else if (/^(search|tel)$/.test(inputElemType)) {
                          // Spec doesn't define any special parsing or detectable UI
                          //   behaviors so we pass these through as true
  
                          // Interestingly, opera fails the earlier test, so it doesn't
                          //  even make it here.
  
                      } else if (/^(url|email)$/.test(inputElemType)) {
                          // Real url and email support comes with prebaked validation.
                          bool = inputElem.checkValidity && inputElem.checkValidity() === false;
                      } else {
                          // If the upgraded input compontent rejects the :) text, we got a winner
                          bool = inputElem.value != smile;
                      }
                  }
  
                  inputs[props[i]] = !!bool;
              }
              return inputs;
          }('search tel url email datetime date month week time datetime-local number range color'.split(' '));
          /*>>inputtypes*/
      }
      /*>>webforms*/
  
      // End of test definitions
      // -----------------------
  
  
      // Run through all tests and detect their support in the current UA.
      // todo: hypothetically we could be doing an array of tests and use a basic loop here.
      for (var feature in tests) {
          if (hasOwnProp(tests, feature)) {
              // run the test, throw the return value into the Modernizr,
              //   then based on that boolean, define an appropriate className
              //   and push it into an array of classes we'll join later.
              featureName = feature.toLowerCase();
              Modernizr[featureName] = tests[feature]();
  
              classes.push((Modernizr[featureName] ? '' : 'no-') + featureName);
          }
      }
  
      /*>>webforms*/
      // input tests need to run.
      Modernizr.input || webforms();
      /*>>webforms*/
  
      /**
       * addTest allows the user to define their own feature tests
       * the result will be added onto the Modernizr object,
       * as well as an appropriate className set on the html element
       *
       * @param feature - String naming the feature
       * @param test - Function returning true if feature is supported, false if not
       */
      Modernizr.addTest = function (feature, test) {
          if ((typeof feature === "undefined" ? "undefined" : _typeof(feature)) == 'object') {
              for (var key in feature) {
                  if (hasOwnProp(feature, key)) {
                      Modernizr.addTest(key, feature[key]);
                  }
              }
          } else {
  
              feature = feature.toLowerCase();
  
              if (Modernizr[feature] !== undefined) {
                  // we're going to quit if you're trying to overwrite an existing test
                  // if we were to allow it, we'd do this:
                  //   var re = new RegExp("\\b(no-)?" + feature + "\\b");
                  //   docElement.className = docElement.className.replace( re, '' );
                  // but, no rly, stuff 'em.
                  return Modernizr;
              }
  
              test = typeof test == 'function' ? test() : test;
  
              if (typeof enableClasses !== "undefined" && enableClasses) {
                  docElement.className += ' ' + (test ? '' : 'no-') + feature;
              }
              Modernizr[feature] = test;
          }
  
          return Modernizr; // allow chaining.
      };
  
      // Reset modElem.cssText to nothing to reduce memory footprint.
      setCss('');
      modElem = inputElem = null;
  
      /*>>shiv*/
      /**
       * @preserve HTML5 Shiv prev3.7.1 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
       */
      ;(function (window, document) {
          /*jshint evil:true */
          /** version */
          var version = '3.7.0';
  
          /** Preset options */
          var options = window.html5 || {};
  
          /** Used to skip problem elements */
          var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
  
          /** Not all elements can be cloned in IE **/
          var saveClones = /^(?: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;
  
          /** Detect whether the browser supports default html5 styles */
          var supportsHtml5Styles;
  
          /** Name of the expando, to work with multiple documents or to re-shiv one document */
          var expando = '_html5shiv';
  
          /** The id for the the documents expando */
          var expanID = 0;
  
          /** Cached data for each document */
          var expandoData = {};
  
          /** Detect whether the browser supports unknown elements */
          var supportsUnknownElements;
  
          (function () {
              try {
                  var a = document.createElement('a');
                  a.innerHTML = '<xyz></xyz>';
                  //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles
                  supportsHtml5Styles = 'hidden' in a;
  
                  supportsUnknownElements = a.childNodes.length == 1 || function () {
                      // assign a false positive if unable to shiv
                      document.createElement('a');
                      var frag = document.createDocumentFragment();
                      return typeof frag.cloneNode == 'undefined' || typeof frag.createDocumentFragment == 'undefined' || typeof frag.createElement == 'undefined';
                  }();
              } catch (e) {
                  // assign a false positive if detection fails => unable to shiv
                  supportsHtml5Styles = true;
                  supportsUnknownElements = true;
              }
          })();
  
          /*--------------------------------------------------------------------------*/
  
          /**
           * Creates a style sheet with the given CSS text and adds it to the document.
           * @private
           * @param {Document} ownerDocument The document.
           * @param {String} cssText The CSS text.
           * @returns {StyleSheet} The style element.
           */
          function addStyleSheet(ownerDocument, cssText) {
              var p = ownerDocument.createElement('p'),
                  parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
  
              p.innerHTML = 'x<style>' + cssText + '</style>';
              return parent.insertBefore(p.lastChild, parent.firstChild);
          }
  
          /**
           * Returns the value of `html5.elements` as an array.
           * @private
           * @returns {Array} An array of shived element node names.
           */
          function getElements() {
              var elements = html5.elements;
              return typeof elements == 'string' ? elements.split(' ') : elements;
          }
  
          /**
           * Returns the data associated to the given document
           * @private
           * @param {Document} ownerDocument The document.
           * @returns {Object} An object of data.
           */
          function getExpandoData(ownerDocument) {
              var data = expandoData[ownerDocument[expando]];
              if (!data) {
                  data = {};
                  expanID++;
                  ownerDocument[expando] = expanID;
                  expandoData[expanID] = data;
              }
              return data;
          }
  
          /**
           * returns a shived element for the given nodeName and document
           * @memberOf html5
           * @param {String} nodeName name of the element
           * @param {Document} ownerDocument The context document.
           * @returns {Object} The shived element.
           */
          function createElement(nodeName, ownerDocument, data) {
              if (!ownerDocument) {
                  ownerDocument = document;
              }
              if (supportsUnknownElements) {
                  return ownerDocument.createElement(nodeName);
              }
              if (!data) {
                  data = getExpandoData(ownerDocument);
              }
              var node;
  
              if (data.cache[nodeName]) {
                  node = data.cache[nodeName].cloneNode();
              } else if (saveClones.test(nodeName)) {
                  node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
              } else {
                  node = data.createElem(nodeName);
              }
  
              // Avoid adding some elements to fragments in IE < 9 because
              // * Attributes like `name` or `type` cannot be set/changed once an element
              //   is inserted into a document/fragment
              // * Link elements with `src` attributes that are inaccessible, as with
              //   a 403 response, will cause the tab/window to crash
              // * Script elements appended to fragments will execute when their `src`
              //   or `text` property is set
              return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
          }
  
          /**
           * returns a shived DocumentFragment for the given document
           * @memberOf html5
           * @param {Document} ownerDocument The context document.
           * @returns {Object} The shived DocumentFragment.
           */
          function createDocumentFragment(ownerDocument, data) {
              if (!ownerDocument) {
                  ownerDocument = document;
              }
              if (supportsUnknownElements) {
                  return ownerDocument.createDocumentFragment();
              }
              data = data || getExpandoData(ownerDocument);
              var clone = data.frag.cloneNode(),
                  i = 0,
                  elems = getElements(),
                  l = elems.length;
              for (; i < l; i++) {
                  clone.createElement(elems[i]);
              }
              return clone;
          }
  
          /**
           * Shivs the `createElement` and `createDocumentFragment` methods of the document.
           * @private
           * @param {Document|DocumentFragment} ownerDocument The document.
           * @param {Object} data of the document.
           */
          function shivMethods(ownerDocument, data) {
              if (!data.cache) {
                  data.cache = {};
                  data.createElem = ownerDocument.createElement;
                  data.createFrag = ownerDocument.createDocumentFragment;
                  data.frag = data.createFrag();
              }
  
              ownerDocument.createElement = function (nodeName) {
                  //abort shiv
                  if (!html5.shivMethods) {
                      return data.createElem(nodeName);
                  }
                  return createElement(nodeName, ownerDocument, data);
              };
  
              ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' + 'var n=f.cloneNode(),c=n.createElement;' + 'h.shivMethods&&(' +
              // unroll the `createElement` calls
              getElements().join().replace(/[\w\-]+/g, function (nodeName) {
                  data.createElem(nodeName);
                  data.frag.createElement(nodeName);
                  return 'c("' + nodeName + '")';
              }) + ');return n}')(html5, data.frag);
          }
  
          /*--------------------------------------------------------------------------*/
  
          /**
           * Shivs the given document.
           * @memberOf html5
           * @param {Document} ownerDocument The document to shiv.
           * @returns {Document} The shived document.
           */
          function shivDocument(ownerDocument) {
              if (!ownerDocument) {
                  ownerDocument = document;
              }
              var data = getExpandoData(ownerDocument);
  
              if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) {
                  data.hasCSS = !!addStyleSheet(ownerDocument,
                  // corrects block display not defined in IE6/7/8/9
                  'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' +
                  // adds styling not present in IE6/7/8/9
                  'mark{background:#FF0;color:#000}' +
                  // hides non-rendered elements
                  'template{display:none}');
              }
              if (!supportsUnknownElements) {
                  shivMethods(ownerDocument, data);
              }
              return ownerDocument;
          }
  
          /*--------------------------------------------------------------------------*/
  
          /**
           * The `html5` object is exposed so that more elements can be shived and
           * existing shiving can be detected on iframes.
           * @type Object
           * @example
           *
           * // options can be changed before the script is included
           * html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false };
           */
          var html5 = {
  
              /**
               * An array or space separated string of node names of the elements to shiv.
               * @memberOf html5
               * @type Array|String
               */
              'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video',
  
              /**
               * current version of html5shiv
               */
              'version': version,
  
              /**
               * A flag to indicate that the HTML5 style sheet should be inserted.
               * @memberOf html5
               * @type Boolean
               */
              'shivCSS': options.shivCSS !== false,
  
              /**
               * Is equal to true if a browser supports creating unknown/HTML5 elements
               * @memberOf html5
               * @type boolean
               */
              'supportsUnknownElements': supportsUnknownElements,
  
              /**
               * A flag to indicate that the document's `createElement` and `createDocumentFragment`
               * methods should be overwritten.
               * @memberOf html5
               * @type Boolean
               */
              'shivMethods': options.shivMethods !== false,
  
              /**
               * A string to describe the type of `html5` object ("default" or "default print").
               * @memberOf html5
               * @type String
               */
              'type': 'default',
  
              // shivs the document according to the specified `html5` object options
              'shivDocument': shivDocument,
  
              //creates a shived element
              createElement: createElement,
  
              //creates a shived documentFragment
              createDocumentFragment: createDocumentFragment
          };
  
          /*--------------------------------------------------------------------------*/
  
          // expose html5
          window.html5 = html5;
  
          // shiv the document
          shivDocument(document);
      })(this, document);
      /*>>shiv*/
  
      // Assign private properties to the return object with prefix
      Modernizr._version = version;
  
      // expose these for the plugin API. Look in the source for how to join() them against your input
      /*>>prefixes*/
      Modernizr._prefixes = prefixes;
      /*>>prefixes*/
      /*>>domprefixes*/
      Modernizr._domPrefixes = domPrefixes;
      Modernizr._cssomPrefixes = cssomPrefixes;
      /*>>domprefixes*/
  
      /*>>mq*/
      // Modernizr.mq tests a given media query, live against the current state of the window
      // A few important notes:
      //   * If a browser does not support media queries at all (eg. oldIE) the mq() will always return false
      //   * A max-width or orientation query will be evaluated against the current state, which may change later.
      //   * You must specify values. Eg. If you are testing support for the min-width media query use:
      //       Modernizr.mq('(min-width:0)')
      // usage:
      // Modernizr.mq('only screen and (max-width:768)')
      Modernizr.mq = testMediaQuery;
      /*>>mq*/
  
      /*>>hasevent*/
      // Modernizr.hasEvent() detects support for a given event, with an optional element to test on
      // Modernizr.hasEvent('gesturestart', elem)
      Modernizr.hasEvent = isEventSupported;
      /*>>hasevent*/
  
      /*>>testprop*/
      // Modernizr.testProp() investigates whether a given style property is recognized
      // Note that the property names must be provided in the camelCase variant.
      // Modernizr.testProp('pointerEvents')
      Modernizr.testProp = function (prop) {
          return testProps([prop]);
      };
      /*>>testprop*/
  
      /*>>testallprops*/
      // Modernizr.testAllProps() investigates whether a given style property,
      //   or any of its vendor-prefixed variants, is recognized
      // Note that the property names must be provided in the camelCase variant.
      // Modernizr.testAllProps('boxSizing')
      Modernizr.testAllProps = testPropsAll;
      /*>>testallprops*/
  
      /*>>teststyles*/
      // Modernizr.testStyles() allows you to add custom styles to the document and test an element afterwards
      // Modernizr.testStyles('#modernizr { position:absolute }', function(elem, rule){ ... })
      Modernizr.testStyles = injectElementWithStyles;
      /*>>teststyles*/
  
      /*>>prefixed*/
      // Modernizr.prefixed() returns the prefixed or nonprefixed property name variant of your input
      // Modernizr.prefixed('boxSizing') // 'MozBoxSizing'
  
      // Properties must be passed as dom-style camelcase, rather than `box-sizing` hypentated style.
      // Return values will also be the camelCase variant, if you need to translate that to hypenated style use:
      //
      //     str.replace(/([A-Z])/g, function(str,m1){ return '-' + m1.toLowerCase(); }).replace(/^ms-/,'-ms-');
  
      // If you're trying to ascertain which transition end event to bind to, you might do something like...
      //
      //     var transEndEventNames = {
      //       'WebkitTransition' : 'webkitTransitionEnd',
      //       'MozTransition'    : 'transitionend',
      //       'OTransition'      : 'oTransitionEnd',
      //       'msTransition'     : 'MSTransitionEnd',
      //       'transition'       : 'transitionend'
      //     },
      //     transEndEventName = transEndEventNames[ Modernizr.prefixed('transition') ];
  
      Modernizr.prefixed = function (prop, obj, elem) {
          if (!obj) {
              return testPropsAll(prop, 'pfx');
          } else {
              // Testing DOM property e.g. Modernizr.prefixed('requestAnimationFrame', window) // 'mozRequestAnimationFrame'
              return testPropsAll(prop, obj, elem);
          }
      };
      /*>>prefixed*/
  
      /*>>cssclasses*/
      // Remove "no-js" class from <html> element, if it exists:
      docElement.className = docElement.className.replace(/(^|\s)no-js(\s|$)/, '$1$2') + (
  
      // Add the new classes to the <html> element.
      enableClasses ? ' js ' + classes.join(' ') : '');
      /*>>cssclasses*/
  
      return Modernizr;
  }(this, this.document);
  
  /**
   * Project: Bootstrap Hover Dropdown
   * Author: Cameron Spear
   * Contributors: Mattia Larentis
   *
   * Dependencies: Bootstrap's Dropdown plugin, jQuery
   *
   * A simple plugin to enable Bootstrap dropdowns to active on hover and provide a nice user experience.
   *
   * License: MIT
   *
   * http://cameronspear.com/blog/bootstrap-dropdown-on-hover-plugin/
   */
  ;
  (function ($, window, undefined) {
      // outside the scope of the jQuery plugin to
      // keep track of all dropdowns
      var $allDropdowns = $();
      // if instantlyCloseOthers is true, then it will instantly
      // shut other nav items when a new one is hovered over
      $.fn.dropdownHover = function (options) {
          // don't do anything if touch is supported
          // (plugin causes some issues on mobile)
          if ('ontouchstart' in document) return this; // don't want to affect chaining
  
          // the element we really care about
          // is the dropdown-toggle's parent
          $allDropdowns = $allDropdowns.add(this.parent());
          return this.each(function () {
              var $this = $(this),
                  $parent = $this.parent(),
                  defaults = {
                  delay: 500,
                  instantlyCloseOthers: true
              },
                  data = {
                  delay: $(this).data('delay'),
                  instantlyCloseOthers: $(this).data('close-others')
              },
                  showEvent = 'show.bs.dropdown',
                  hideEvent = 'hide.bs.dropdown',
  
              // shownEvent  = 'shown.bs.dropdown',
              // hiddenEvent = 'hidden.bs.dropdown',
              settings = $.extend(true, {}, defaults, options, data),
                  timeout;
              $parent.hover(function (event) {
                  // so a neighbor can't open the dropdown
                  if (!$parent.hasClass('open') && !$this.is(event.target)) {
                      // stop this event, stop executing any code
                      // in this callback but continue to propagate
                      return true;
                  }
  
                  openDropdown(event);
              }, function () {
                  if ($(document).width() > 768) {
                      timeout = window.setTimeout(function () {
  
                          $parent.removeClass('open');
                          $this.trigger(hideEvent);
                      }, settings.delay);
                  }
              });
              // this helps with button groups!
              $this.hover(function (event) {
                  // this helps prevent a double event from firing.
                  // see https://github.com/CWSpear/bootstrap-hover-dropdown/issues/55
                  if (!$parent.hasClass('open') && !$parent.is(event.target)) {
                      // stop this event, stop executing any code
                      // in this callback but continue to propagate
                      return true;
                  }
  
                  openDropdown(event);
              });
              // handle submenus
              $parent.find('.dropdown-submenu').each(function () {
                  var $this = $(this);
                  var subTimeout;
                  $this.hover(function () {
                      window.clearTimeout(subTimeout);
                      $this.children('.dropdown-menu').show();
                      // always close submenu siblings instantly
                      $this.siblings().children('.dropdown-menu').hide();
                  }, function () {
                      var $submenu = $this.children('.dropdown-menu');
                      subTimeout = window.setTimeout(function () {
                          $submenu.hide();
                      }, settings.delay);
                  });
              });
              function openDropdown(event) {
                  if ($(document).width() > 760) {
                      $allDropdowns.find(':focus').blur();
                      if (settings.instantlyCloseOthers === true) $allDropdowns.removeClass('open');
                      window.clearTimeout(timeout);
                      $parent.addClass('open');
                      $this.trigger(showEvent);
                  }
              }
          });
      };
      $(document).ready(function () {
          // apply dropdownHover to all elements with the data-hover="dropdown" attribute
          $('[data-hover="dropdown"]').dropdownHover();
      });
  })(jQuery, this);
  
  eval(function (p, a, c, k, _e, r) {
      _e = function e(c) {
          return (c < a ? '' : _e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36));
      };if (!''.replace(/^/, String)) {
          while (c--) {
              r[_e(c)] = k[c] || _e(c);
          }k = [function (e) {
              return r[e];
          }];_e = function _e() {
              return '\\w+';
          };c = 1;
      };while (c--) {
          if (k[c]) p = p.replace(new RegExp('\\b' + _e(c) + '\\b', 'g'), k[c]);
      }return p;
  }('7(A 3c.3q!=="9"){3c.3q=9(e){9 t(){}t.5S=e;p 5R t}}(9(e,t,n){h r={1N:9(t,n){h r=c;r.$k=e(n);r.6=e.4M({},e.37.2B.6,r.$k.v(),t);r.2A=t;r.4L()},4L:9(){9 r(e){h n,r="";7(A t.6.33==="9"){t.6.33.R(c,[e])}l{1A(n 38 e.d){7(e.d.5M(n)){r+=e.d[n].1K}}t.$k.2y(r)}t.3t()}h t=c,n;7(A t.6.2H==="9"){t.6.2H.R(c,[t.$k])}7(A t.6.2O==="2Y"){n=t.6.2O;e.5K(n,r)}l{t.3t()}},3t:9(){h e=c;e.$k.v("d-4I",e.$k.2x("2w")).v("d-4F",e.$k.2x("H"));e.$k.z({2u:0});e.2t=e.6.q;e.4E();e.5v=0;e.1X=14;e.23()},23:9(){h e=c;7(e.$k.25().N===0){p b}e.1M();e.4C();e.$S=e.$k.25();e.E=e.$S.N;e.4B();e.$G=e.$k.17(".d-1K");e.$K=e.$k.17(".d-1p");e.3u="U";e.13=0;e.26=[0];e.m=0;e.4A();e.4z()},4z:9(){h e=c;e.2V();e.2W();e.4t();e.30();e.4r();e.4q();e.2p();e.4o();7(e.6.2o!==b){e.4n(e.6.2o)}7(e.6.O===j){e.6.O=4Q}e.19();e.$k.17(".d-1p").z("4i","4h");7(!e.$k.2m(":3n")){e.3o()}l{e.$k.z("2u",1)}e.5O=b;e.2l();7(A e.6.3s==="9"){e.6.3s.R(c,[e.$k])}},2l:9(){h e=c;7(e.6.1Z===j){e.1Z()}7(e.6.1B===j){e.1B()}e.4g();7(A e.6.3w==="9"){e.6.3w.R(c,[e.$k])}},3x:9(){h e=c;7(A e.6.3B==="9"){e.6.3B.R(c,[e.$k])}e.3o();e.2V();e.2W();e.4f();e.30();e.2l();7(A e.6.3D==="9"){e.6.3D.R(c,[e.$k])}},3F:9(){h e=c;t.1c(9(){e.3x()},0)},3o:9(){h e=c;7(e.$k.2m(":3n")===b){e.$k.z({2u:0});t.18(e.1C);t.18(e.1X)}l{p b}e.1X=t.4d(9(){7(e.$k.2m(":3n")){e.3F();e.$k.4b({2u:1},2M);t.18(e.1X)}},5x)},4B:9(){h e=c;e.$S.5n(\'<L H="d-1p">\').4a(\'<L H="d-1K"></L>\');e.$k.17(".d-1p").4a(\'<L H="d-1p-49">\');e.1H=e.$k.17(".d-1p-49");e.$k.z("4i","4h")},1M:9(){h e=c,t=e.$k.1I(e.6.1M),n=e.$k.1I(e.6.2i);7(!t){e.$k.I(e.6.1M)}7(!n){e.$k.I(e.6.2i)}},2V:9(){h t=c,n,r;7(t.6.2Z===b){p b}7(t.6.48===j){t.6.q=t.2t=1;t.6.1h=b;t.6.1s=b;t.6.1O=b;t.6.22=b;t.6.1Q=b;t.6.1R=b;p b}n=e(t.6.47).1f();7(n>(t.6.1s[0]||t.2t)){t.6.q=t.2t}7(t.6.1h!==b){t.6.1h.5g(9(e,t){p e[0]-t[0]});1A(r=0;r<t.6.1h.N;r+=1){7(t.6.1h[r][0]<=n){t.6.q=t.6.1h[r][1]}}}l{7(n<=t.6.1s[0]&&t.6.1s!==b){t.6.q=t.6.1s[1]}7(n<=t.6.1O[0]&&t.6.1O!==b){t.6.q=t.6.1O[1]}7(n<=t.6.22[0]&&t.6.22!==b){t.6.q=t.6.22[1]}7(n<=t.6.1Q[0]&&t.6.1Q!==b){t.6.q=t.6.1Q[1]}7(n<=t.6.1R[0]&&t.6.1R!==b){t.6.q=t.6.1R[1]}}7(t.6.q>t.E&&t.6.46===j){t.6.q=t.E}},4r:9(){h n=c,r,i;7(n.6.2Z!==j){p b}i=e(t).1f();n.3d=9(){7(e(t).1f()!==i){7(n.6.O!==b){t.18(n.1C)}t.5d(r);r=t.1c(9(){i=e(t).1f();n.3x()},n.6.45)}};e(t).44(n.3d)},4f:9(){h e=c;e.2g(e.m);7(e.6.O!==b){e.3j()}},43:9(){h t=c,n=0,r=t.E-t.6.q;t.$G.2f(9(i){h s=e(c);s.z({1f:t.M}).v("d-1K",3p(i));7(i%t.6.q===0||i===r){7(!(i>r)){n+=1}}s.v("d-24",n)})},42:9(){h e=c,t=e.$G.N*e.M;e.$K.z({1f:t*2,T:0});e.43()},2W:9(){h e=c;e.40();e.42();e.3Z();e.3v()},40:9(){h e=c;e.M=1F.4O(e.$k.1f()/e.6.q)},3v:9(){h e=c,t=(e.E*e.M-e.6.q*e.M)*-1;7(e.6.q>e.E){e.D=0;t=0;e.3z=0}l{e.D=e.E-e.6.q;e.3z=t}p t},3Y:9(){p 0},3Z:9(){h t=c,n=0,r=0,i,s,o;t.J=[0];t.3E=[];1A(i=0;i<t.E;i+=1){r+=t.M;t.J.2D(-r);7(t.6.12===j){s=e(t.$G[i]);o=s.v("d-24");7(o!==n){t.3E[n]=t.J[i];n=o}}}},4t:9(){h t=c;7(t.6.2a===j||t.6.1v===j){t.B=e(\'<L H="d-5A"/>\').5m("5l",!t.F.15).5c(t.$k)}7(t.6.1v===j){t.3T()}7(t.6.2a===j){t.3S()}},3S:9(){h t=c,n=e(\'<L H="d-4U"/>\');t.B.1o(n);t.1u=e("<L/>",{"H":"d-1n",2y:t.6.2U[0]||""});t.1q=e("<L/>",{"H":"d-U",2y:t.6.2U[1]||""});n.1o(t.1u).1o(t.1q);n.w("2X.B 21.B",\'L[H^="d"]\',9(e){e.1l()});n.w("2n.B 28.B",\'L[H^="d"]\',9(n){n.1l();7(e(c).1I("d-U")){t.U()}l{t.1n()}})},3T:9(){h t=c;t.1k=e(\'<L H="d-1v"/>\');t.B.1o(t.1k);t.1k.w("2n.B 28.B",".d-1j",9(n){n.1l();7(3p(e(c).v("d-1j"))!==t.m){t.1g(3p(e(c).v("d-1j")),j)}})},3P:9(){h t=c,n,r,i,s,o,u;7(t.6.1v===b){p b}t.1k.2y("");n=0;r=t.E-t.E%t.6.q;1A(s=0;s<t.E;s+=1){7(s%t.6.q===0){n+=1;7(r===s){i=t.E-t.6.q}o=e("<L/>",{"H":"d-1j"});u=e("<3N></3N>",{4R:t.6.39===j?n:"","H":t.6.39===j?"d-59":""});o.1o(u);o.v("d-1j",r===s?i:s);o.v("d-24",n);t.1k.1o(o)}}t.35()},35:9(){h t=c;7(t.6.1v===b){p b}t.1k.17(".d-1j").2f(9(){7(e(c).v("d-24")===e(t.$G[t.m]).v("d-24")){t.1k.17(".d-1j").Z("2d");e(c).I("2d")}})},3e:9(){h e=c;7(e.6.2a===b){p b}7(e.6.2e===b){7(e.m===0&&e.D===0){e.1u.I("1b");e.1q.I("1b")}l 7(e.m===0&&e.D!==0){e.1u.I("1b");e.1q.Z("1b")}l 7(e.m===e.D){e.1u.Z("1b");e.1q.I("1b")}l 7(e.m!==0&&e.m!==e.D){e.1u.Z("1b");e.1q.Z("1b")}}},30:9(){h e=c;e.3P();e.3e();7(e.B){7(e.6.q>=e.E){e.B.3K()}l{e.B.3J()}}},55:9(){h e=c;7(e.B){e.B.3k()}},U:9(e){h t=c;7(t.1E){p b}t.m+=t.6.12===j?t.6.q:1;7(t.m>t.D+(t.6.12===j?t.6.q-1:0)){7(t.6.2e===j){t.m=0;e="2k"}l{t.m=t.D;p b}}t.1g(t.m,e)},1n:9(e){h t=c;7(t.1E){p b}7(t.6.12===j&&t.m>0&&t.m<t.6.q){t.m=0}l{t.m-=t.6.12===j?t.6.q:1}7(t.m<0){7(t.6.2e===j){t.m=t.D;e="2k"}l{t.m=0;p b}}t.1g(t.m,e)},1g:9(e,n,r){h i=c,s;7(i.1E){p b}7(A i.6.1Y==="9"){i.6.1Y.R(c,[i.$k])}7(e>=i.D){e=i.D}l 7(e<=0){e=0}i.m=i.d.m=e;7(i.6.2o!==b&&r!=="4e"&&i.6.q===1&&i.F.1x===j){i.1t(0);7(i.F.1x===j){i.1L(i.J[e])}l{i.1r(i.J[e],1)}i.2r();i.4l();p b}s=i.J[e];7(i.F.1x===j){i.1T=b;7(n===j){i.1t("1w");t.1c(9(){i.1T=j},i.6.1w)}l 7(n==="2k"){i.1t(i.6.2v);t.1c(9(){i.1T=j},i.6.2v)}l{i.1t("1m");t.1c(9(){i.1T=j},i.6.1m)}i.1L(s)}l{7(n===j){i.1r(s,i.6.1w)}l 7(n==="2k"){i.1r(s,i.6.2v)}l{i.1r(s,i.6.1m)}}i.2r()},2g:9(e){h t=c;7(A t.6.1Y==="9"){t.6.1Y.R(c,[t.$k])}7(e>=t.D||e===-1){e=t.D}l 7(e<=0){e=0}t.1t(0);7(t.F.1x===j){t.1L(t.J[e])}l{t.1r(t.J[e],1)}t.m=t.d.m=e;t.2r()},2r:9(){h e=c;e.26.2D(e.m);e.13=e.d.13=e.26[e.26.N-2];e.26.5f(0);7(e.13!==e.m){e.35();e.3e();e.2l();7(e.6.O!==b){e.3j()}}7(A e.6.3y==="9"&&e.13!==e.m){e.6.3y.R(c,[e.$k])}},X:9(){h e=c;e.3A="X";t.18(e.1C)},3j:9(){h e=c;7(e.3A!=="X"){e.19()}},19:9(){h e=c;e.3A="19";7(e.6.O===b){p b}t.18(e.1C);e.1C=t.4d(9(){e.U(j)},e.6.O)},1t:9(e){h t=c;7(e==="1m"){t.$K.z(t.2z(t.6.1m))}l 7(e==="1w"){t.$K.z(t.2z(t.6.1w))}l 7(A e!=="2Y"){t.$K.z(t.2z(e))}},2z:9(e){p{"-1G-1a":"2C "+e+"1z 2s","-1W-1a":"2C "+e+"1z 2s","-o-1a":"2C "+e+"1z 2s",1a:"2C "+e+"1z 2s"}},3H:9(){p{"-1G-1a":"","-1W-1a":"","-o-1a":"",1a:""}},3I:9(e){p{"-1G-P":"1i("+e+"V, C, C)","-1W-P":"1i("+e+"V, C, C)","-o-P":"1i("+e+"V, C, C)","-1z-P":"1i("+e+"V, C, C)",P:"1i("+e+"V, C,C)"}},1L:9(e){h t=c;t.$K.z(t.3I(e))},3L:9(e){h t=c;t.$K.z({T:e})},1r:9(e,t){h n=c;n.29=b;n.$K.X(j,j).4b({T:e},{54:t||n.6.1m,3M:9(){n.29=j}})},4E:9(){h e=c,r="1i(C, C, C)",i=n.56("L"),s,o,u,a;i.2w.3O="  -1W-P:"+r+"; -1z-P:"+r+"; -o-P:"+r+"; -1G-P:"+r+"; P:"+r;s=/1i\\(C, C, C\\)/g;o=i.2w.3O.5i(s);u=o!==14&&o.N===1;a="5z"38 t||t.5Q.4P;e.F={1x:u,15:a}},4q:9(){h e=c;7(e.6.27!==b||e.6.1U!==b){e.3Q();e.3R()}},4C:9(){h e=c,t=["s","e","x"];e.16={};7(e.6.27===j&&e.6.1U===j){t=["2X.d 21.d","2N.d 3U.d","2n.d 3V.d 28.d"]}l 7(e.6.27===b&&e.6.1U===j){t=["2X.d","2N.d","2n.d 3V.d"]}l 7(e.6.27===j&&e.6.1U===b){t=["21.d","3U.d","28.d"]}e.16.3W=t[0];e.16.2K=t[1];e.16.2J=t[2]},3R:9(){h t=c;t.$k.w("5y.d",9(e){e.1l()});t.$k.w("21.3X",9(t){p e(t.1d).2m("5C, 5E, 5F, 5N")})},3Q:9(){9 s(e){7(e.2b!==W){p{x:e.2b[0].2c,y:e.2b[0].41}}7(e.2b===W){7(e.2c!==W){p{x:e.2c,y:e.41}}7(e.2c===W){p{x:e.52,y:e.53}}}}9 o(t){7(t==="w"){e(n).w(r.16.2K,a);e(n).w(r.16.2J,f)}l 7(t==="Q"){e(n).Q(r.16.2K);e(n).Q(r.16.2J)}}9 u(n){h u=n.3h||n||t.3g,a;7(u.5a===3){p b}7(r.E<=r.6.q){p}7(r.29===b&&!r.6.3f){p b}7(r.1T===b&&!r.6.3f){p b}7(r.6.O!==b){t.18(r.1C)}7(r.F.15!==j&&!r.$K.1I("3b")){r.$K.I("3b")}r.11=0;r.Y=0;e(c).z(r.3H());a=e(c).2h();i.2S=a.T;i.2R=s(u).x-a.T;i.2P=s(u).y-a.5o;o("w");i.2j=b;i.2L=u.1d||u.4c}9 a(o){h u=o.3h||o||t.3g,a,f;r.11=s(u).x-i.2R;r.2I=s(u).y-i.2P;r.Y=r.11-i.2S;7(A r.6.2E==="9"&&i.3C!==j&&r.Y!==0){i.3C=j;r.6.2E.R(r,[r.$k])}7((r.Y>8||r.Y<-8)&&r.F.15===j){7(u.1l!==W){u.1l()}l{u.5L=b}i.2j=j}7((r.2I>10||r.2I<-10)&&i.2j===b){e(n).Q("2N.d")}a=9(){p r.Y/5};f=9(){p r.3z+r.Y/5};r.11=1F.3v(1F.3Y(r.11,a()),f());7(r.F.1x===j){r.1L(r.11)}l{r.3L(r.11)}}9 f(n){h s=n.3h||n||t.3g,u,a,f;s.1d=s.1d||s.4c;i.3C=b;7(r.F.15!==j){r.$K.Z("3b")}7(r.Y<0){r.1y=r.d.1y="T"}l{r.1y=r.d.1y="3i"}7(r.Y!==0){u=r.4j();r.1g(u,b,"4e");7(i.2L===s.1d&&r.F.15!==j){e(s.1d).w("3a.4k",9(t){t.4S();t.4T();t.1l();e(t.1d).Q("3a.4k")});a=e.4N(s.1d,"4V").3a;f=a.4W();a.4X(0,0,f)}}o("Q")}h r=c,i={2R:0,2P:0,4Y:0,2S:0,2h:14,4Z:14,50:14,2j:14,51:14,2L:14};r.29=j;r.$k.w(r.16.3W,".d-1p",u)},4j:9(){h e=c,t=e.4m();7(t>e.D){e.m=e.D;t=e.D}l 7(e.11>=0){t=0;e.m=0}p t},4m:9(){h t=c,n=t.6.12===j?t.3E:t.J,r=t.11,i=14;e.2f(n,9(s,o){7(r-t.M/20>n[s+1]&&r-t.M/20<o&&t.34()==="T"){i=o;7(t.6.12===j){t.m=e.4p(i,t.J)}l{t.m=s}}l 7(r+t.M/20<o&&r+t.M/20>(n[s+1]||n[s]-t.M)&&t.34()==="3i"){7(t.6.12===j){i=n[s+1]||n[n.N-1];t.m=e.4p(i,t.J)}l{i=n[s+1];t.m=s+1}}});p t.m},34:9(){h e=c,t;7(e.Y<0){t="3i";e.3u="U"}l{t="T";e.3u="1n"}p t},4A:9(){h e=c;e.$k.w("d.U",9(){e.U()});e.$k.w("d.1n",9(){e.1n()});e.$k.w("d.19",9(t,n){e.6.O=n;e.19();e.32="19"});e.$k.w("d.X",9(){e.X();e.32="X"});e.$k.w("d.1g",9(t,n){e.1g(n)});e.$k.w("d.2g",9(t,n){e.2g(n)})},2p:9(){h e=c;7(e.6.2p===j&&e.F.15!==j&&e.6.O!==b){e.$k.w("57",9(){e.X()});e.$k.w("58",9(){7(e.32!=="X"){e.19()}})}},1Z:9(){h t=c,n,r,i,s,o;7(t.6.1Z===b){p b}1A(n=0;n<t.E;n+=1){r=e(t.$G[n]);7(r.v("d-1e")==="1e"){4s}i=r.v("d-1K");s=r.17(".5b");7(A s.v("1J")!=="2Y"){r.v("d-1e","1e");4s}7(r.v("d-1e")===W){s.3K();r.I("4u").v("d-1e","5e")}7(t.6.4v===j){o=i>=t.m}l{o=j}7(o&&i<t.m+t.6.q&&s.N){t.4w(r,s)}}},4w:9(e,n){9 o(){e.v("d-1e","1e").Z("4u");n.5h("v-1J");7(r.6.4x==="4y"){n.5j(5k)}l{n.3J()}7(A r.6.2T==="9"){r.6.2T.R(c,[r.$k])}}9 u(){i+=1;7(r.2Q(n.3l(0))||s===j){o()}l 7(i<=2q){t.1c(u,2q)}l{o()}}h r=c,i=0,s;7(n.5p("5q")==="5r"){n.z("5s-5t","5u("+n.v("1J")+")");s=j}l{n[0].1J=n.v("1J")}u()},1B:9(){9 s(){h r=e(n.$G[n.m]).2G();n.1H.z("2G",r+"V");7(!n.1H.1I("1B")){t.1c(9(){n.1H.I("1B")},0)}}9 o(){i+=1;7(n.2Q(r.3l(0))){s()}l 7(i<=2q){t.1c(o,2q)}l{n.1H.z("2G","")}}h n=c,r=e(n.$G[n.m]).17("5w"),i;7(r.3l(0)!==W){i=0;o()}l{s()}},2Q:9(e){h t;7(!e.3M){p b}t=A e.4D;7(t!=="W"&&e.4D===0){p b}p j},4g:9(){h t=c,n;7(t.6.2F===j){t.$G.Z("2d")}t.1D=[];1A(n=t.m;n<t.m+t.6.q;n+=1){t.1D.2D(n);7(t.6.2F===j){e(t.$G[n]).I("2d")}}t.d.1D=t.1D},4n:9(e){h t=c;t.4G="d-"+e+"-5B";t.4H="d-"+e+"-38"},4l:9(){9 a(e){p{2h:"5D",T:e+"V"}}h e=c,t=e.4G,n=e.4H,r=e.$G.1S(e.m),i=e.$G.1S(e.13),s=1F.4J(e.J[e.m])+e.J[e.13],o=1F.4J(e.J[e.m])+e.M/2,u="5G 5H 5I 5J";e.1E=j;e.$K.I("d-1P").z({"-1G-P-1P":o+"V","-1W-4K-1P":o+"V","4K-1P":o+"V"});i.z(a(s,10)).I(t).w(u,9(){e.3m=j;i.Q(u);e.31(i,t)});r.I(n).w(u,9(){e.36=j;r.Q(u);e.31(r,n)})},31:9(e,t){h n=c;e.z({2h:"",T:""}).Z(t);7(n.3m&&n.36){n.$K.Z("d-1P");n.3m=b;n.36=b;n.1E=b}},4o:9(){h e=c;e.d={2A:e.2A,5P:e.$k,S:e.$S,G:e.$G,m:e.m,13:e.13,1D:e.1D,15:e.F.15,F:e.F,1y:e.1y}},3G:9(){h r=c;r.$k.Q(".d d 21.3X");e(n).Q(".d d");e(t).Q("44",r.3d)},1V:9(){h e=c;7(e.$k.25().N!==0){e.$K.3r();e.$S.3r().3r();7(e.B){e.B.3k()}}e.3G();e.$k.2x("2w",e.$k.v("d-4I")||"").2x("H",e.$k.v("d-4F"))},5T:9(){h e=c;e.X();t.18(e.1X);e.1V();e.$k.5U()},5V:9(t){h n=c,r=e.4M({},n.2A,t);n.1V();n.1N(r,n.$k)},5W:9(e,t){h n=c,r;7(!e){p b}7(n.$k.25().N===0){n.$k.1o(e);n.23();p b}n.1V();7(t===W||t===-1){r=-1}l{r=t}7(r>=n.$S.N||r===-1){n.$S.1S(-1).5X(e)}l{n.$S.1S(r).5Y(e)}n.23()},5Z:9(e){h t=c,n;7(t.$k.25().N===0){p b}7(e===W||e===-1){n=-1}l{n=e}t.1V();t.$S.1S(n).3k();t.23()}};e.37.2B=9(t){p c.2f(9(){7(e(c).v("d-1N")===j){p b}e(c).v("d-1N",j);h n=3c.3q(r);n.1N(t,c);e.v(c,"2B",n)})};e.37.2B.6={q:5,1h:b,1s:[60,4],1O:[61,3],22:[62,2],1Q:b,1R:[63,1],48:b,46:b,1m:2M,1w:64,2v:65,O:b,2p:b,2a:b,2U:["1n","U"],2e:j,12:b,1v:j,39:b,2Z:j,45:2M,47:t,1M:"d-66",2i:"d-2i",1Z:b,4v:j,4x:"4y",1B:b,2O:b,33:b,3f:j,27:j,1U:j,2F:b,2o:b,3B:b,3D:b,2H:b,3s:b,1Y:b,3y:b,3w:b,2E:b,2T:b}})(67,68,69)', 62, 382, '||||||options|if||function||false|this|owl||||var||true|elem|else|currentItem|||return|items|||||data|on|||css|typeof|owlControls|0px|maximumItem|itemsAmount|browser|owlItems|class|addClass|positionsInArray|owlWrapper|div|itemWidth|length|autoPlay|transform|off|apply|userItems|left|next|px|undefined|stop|newRelativeX|removeClass||newPosX|scrollPerPage|prevItem|null|isTouch|ev_types|find|clearInterval|play|transition|disabled|setTimeout|target|loaded|width|goTo|itemsCustom|translate3d|page|paginationWrapper|preventDefault|slideSpeed|prev|append|wrapper|buttonNext|css2slide|itemsDesktop|swapSpeed|buttonPrev|pagination|paginationSpeed|support3d|dragDirection|ms|for|autoHeight|autoPlayInterval|visibleItems|isTransition|Math|webkit|wrapperOuter|hasClass|src|item|transition3d|baseClass|init|itemsDesktopSmall|origin|itemsTabletSmall|itemsMobile|eq|isCss3Finish|touchDrag|unWrap|moz|checkVisible|beforeMove|lazyLoad||mousedown|itemsTablet|setVars|roundPages|children|prevArr|mouseDrag|mouseup|isCssFinish|navigation|touches|pageX|active|rewindNav|each|jumpTo|position|theme|sliding|rewind|eachMoveUpdate|is|touchend|transitionStyle|stopOnHover|100|afterGo|ease|orignalItems|opacity|rewindSpeed|style|attr|html|addCssSpeed|userOptions|owlCarousel|all|push|startDragging|addClassActive|height|beforeInit|newPosY|end|move|targetElement|200|touchmove|jsonPath|offsetY|completeImg|offsetX|relativePos|afterLazyLoad|navigationText|updateItems|calculateAll|touchstart|string|responsive|updateControls|clearTransStyle|hoverStatus|jsonSuccess|moveDirection|checkPagination|endCurrent|fn|in|paginationNumbers|click|grabbing|Object|resizer|checkNavigation|dragBeforeAnimFinish|event|originalEvent|right|checkAp|remove|get|endPrev|visible|watchVisibility|Number|create|unwrap|afterInit|logIn|playDirection|max|afterAction|updateVars|afterMove|maximumPixels|apStatus|beforeUpdate|dragging|afterUpdate|pagesInArray|reload|clearEvents|removeTransition|doTranslate|show|hide|css2move|complete|span|cssText|updatePagination|gestures|disabledEvents|buildButtons|buildPagination|mousemove|touchcancel|start|disableTextSelect|min|loops|calculateWidth|pageY|appendWrapperSizes|appendItemsSizes|resize|responsiveRefreshRate|itemsScaleUp|responsiveBaseWidth|singleItem|outer|wrap|animate|srcElement|setInterval|drag|updatePosition|onVisibleItems|block|display|getNewPosition|disable|singleItemTransition|closestItem|transitionTypes|owlStatus|inArray|moveEvents|response|continue|buildControls|loading|lazyFollow|lazyPreload|lazyEffect|fade|onStartup|customEvents|wrapItems|eventTypes|naturalWidth|checkBrowser|originalClasses|outClass|inClass|originalStyles|abs|perspective|loadContent|extend|_data|round|msMaxTouchPoints|5e3|text|stopImmediatePropagation|stopPropagation|buttons|events|pop|splice|baseElWidth|minSwipe|maxSwipe|dargging|clientX|clientY|duration|destroyControls|createElement|mouseover|mouseout|numbers|which|lazyOwl|appendTo|clearTimeout|checked|shift|sort|removeAttr|match|fadeIn|400|clickable|toggleClass|wrapAll|top|prop|tagName|DIV|background|image|url|wrapperWidth|img|500|dragstart|ontouchstart|controls|out|input|relative|textarea|select|webkitAnimationEnd|oAnimationEnd|MSAnimationEnd|animationend|getJSON|returnValue|hasOwnProperty|option|onstartup|baseElement|navigator|new|prototype|destroy|removeData|reinit|addItem|after|before|removeItem|1199|979|768|479|800|1e3|carousel|jQuery|window|document'.split('|'), 0, {}));
  if ($.cookie("theme_csspath")) {
      $('link#theme-stylesheet').attr("href", $.cookie("theme_csspath"));
  }
  
  $(function () {
  
      animations();
      productDetailGallery(4000);
      carousels();
      utils();
      demo();
  });
  
  $(window).load(function () {
      $(this).alignElementsSameHeight();
  });
  
  $(window).resize(function () {
      setTimeout(function () {
          $(this).alignElementsSameHeight();
      }, 150);
  });
  
  /* for demo purpose only - can be deleted */
  
  function demo() {
  
      if ($.cookie("theme_csspath")) {
          $('link#theme-stylesheet').attr("href", $.cookie("theme_csspath"));
      }
  
      $("#colour").change(function () {
  
          if ($(this).val() !== '') {
  
              var theme_csspath = 'css/style.' + $(this).val() + '.css';
  
              $('link#theme-stylesheet').attr("href", theme_csspath);
  
              $.cookie("theme_csspath", theme_csspath, { expires: 365, path: '/' });
          }
  
          return false;
      });
  }
  
  /* product detail gallery */
  
  function productDetailGallery(confDetailSwitch) {
      $('.thumb:first').addClass('active');
      timer = setInterval(autoSwitch, confDetailSwitch);
      $(".thumb").click(function (e) {
  
          switchImage($(this));
          clearInterval(timer);
          timer = setInterval(autoSwitch, confDetailSwitch);
          e.preventDefault();
      });
      $('#mainImage').hover(function () {
          clearInterval(timer);
      }, function () {
          timer = setInterval(autoSwitch, confDetailSwitch);
      });
  
      function autoSwitch() {
          var nextThumb = $('.thumb.active').closest('div').next('div').find('.thumb');
          if (nextThumb.length == 0) {
              nextThumb = $('.thumb:first');
          }
          switchImage(nextThumb);
      }
  
      function switchImage(thumb) {
  
          $('.thumb').removeClass('active');
          var bigUrl = thumb.attr('href');
          thumb.addClass('active');
          $('#mainImage img').attr('src', bigUrl);
      }
  }
  
  function utils() {
  
      /* click on the box activates the radio */
  
      $('#checkout').on('click', '.box.shipping-method, .box.payment-method', function (e) {
          var radio = $(this).find(':radio');
          radio.prop('checked', true);
      });
      /* click on the box activates the link in it */
  
      $('.box.clickable').on('click', function (e) {
  
          window.location = $(this).find('a').attr('href');
      });
      /* external links in new window*/
  
      $('.external').on('click', function (e) {
  
          e.preventDefault();
          window.open($(this).attr("href"));
      });
      /* animated scrolling */
  
      $('.scroll-to, .scroll-to-top').click(function (event) {
  
          var full_url = this.href;
          var parts = full_url.split("#");
          if (parts.length > 1) {
  
              scrollTo(full_url);
              event.preventDefault();
          }
      });
      function scrollTo(full_url) {
          var parts = full_url.split("#");
          var trgt = parts[1];
          var target_offset = $("#" + trgt).offset();
          var target_top = target_offset.top - 100;
          if (target_top < 0) {
              target_top = 0;
          }
  
          $('html, body').animate({
              scrollTop: target_top
          }, 1000);
      }
  }
  
  /* carousels */
  
  function carousels() {
  
      $("#get-inspired").owlCarousel({
          navigation: true, // Show next and prev buttons
          slideSpeed: 300,
          paginationSpeed: 400,
          autoPlay: true,
          stopOnHover: true,
          singleItem: true,
          afterInit: ''
      });
  }
  
  /* animations */
  
  function animations() {
      delayTime = 0;
      $('[data-animate]').css({ opacity: '0' });
      $('[data-animate]').waypoint(function (direction) {
          delayTime += 150;
          $(this).delay(delayTime).queue(function (next) {
              $(this).toggleClass('animated');
              $(this).toggleClass($(this).data('animate'));
              delayTime = 0;
              next();
              //$(this).removeClass('animated');
              //$(this).toggleClass($(this).data('animate'));
          });
      }, {
          offset: '90%',
          triggerOnce: true
      });
  
      $('[data-animate-hover]').hover(function () {
          $(this).css({ opacity: 1 });
          $(this).addClass('animated');
          $(this).removeClass($(this).data('animate'));
          $(this).addClass($(this).data('animate-hover'));
      }, function () {
          $(this).removeClass('animated');
          $(this).removeClass($(this).data('animate-hover'));
      });
  }
  
  $.fn.alignElementsSameHeight = function () {
      $('.same-height-row').each(function () {
  
          var maxHeight = 0;
  
          var children = $(this).find('.same-height');
  
          children.height('auto');
  
          if ($(document).width() > 768) {
              children.each(function () {
                  if ($(this).innerHeight() > maxHeight) {
                      maxHeight = $(this).innerHeight();
                  }
              });
  
              children.innerHeight(maxHeight);
          }
  
          maxHeight = 0;
          children = $(this).find('.same-height-always');
  
          children.height('auto');
  
          children.each(function () {
              if ($(this).innerHeight() > maxHeight) {
                  maxHeight = $(this).innerHeight();
              }
          });
  
          children.innerHeight(maxHeight);
      });
  };
  