abadd50d331d.js

From disqus.com, 1 Month ago, written in JavaScript, viewed 3 times. This paste is a reply to recaptcha_en.js from disqus.com - view diff
URL https://pastebin.freepbx.org/view/3a1740d6 Embed
Download Paste or View Raw
  1. (function(q, m) {
  2.     function la(a, b, d) {
  3.         if (d === m && a.nodeType === 1)
  4.             if (d = a.getAttribute("data-" + b), typeof d === "string") {
  5.                 try {
  6.                     d = d === "true" ? !0 : d === "false" ? !1 : d === "null" ? null : !c.isNaN(d) ? parseFloat(d) : Ra.test(d) ? c.parseJSON(d) : d
  7.                 } catch (e) {}
  8.                 c.data(a, b, d)
  9.             } else d = m;
  10.         return d
  11.     }
  12.  
  13.     function $(a) {
  14.         for (var b in a)
  15.             if (b !== "toJSON") return !1;
  16.         return !0
  17.     }
  18.  
  19.     function F() {
  20.         return !1
  21.     }
  22.  
  23.     function H() {
  24.         return !0
  25.     }
  26.  
  27.     function ma(a, b, d) {
  28.         var e = c.extend({}, d[0]);
  29.         e.type = a;
  30.         e.originalEvent = {};
  31.         e.liveFired = m;
  32.         c.event.handle.call(b, e);
  33.         e.isDefaultPrevented() && d[0].preventDefault()
  34.     }
  35.  
  36.     function Sa(a) {
  37.         var b, d, e, f, h, g, i, l, k, n, j, m = [];
  38.         f = [];
  39.         h = c._data(this, "events");
  40.         if (!(a.liveFired === this || !h || !h.live || a.target.disabled || a.button && a.type === "click")) {
  41.             a.namespace && (j = RegExp("(^|\\.)" + a.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)"));
  42.             a.liveFired = this;
  43.             var p = h.live.slice(0);
  44.             for (i = 0; i < p.length; i++) h = p[i], h.origType.replace(O, "") === a.type ? f.push(h.selector) : p.splice(i--, 1);
  45.             f = c(a.target).closest(f, a.currentTarget);
  46.             l = 0;
  47.             for (k = f.length; l < k; l++) {
  48.                 n = f[l];
  49.                 for (i = 0; i < p.length; i++)
  50.                     if (h = p[i], n.selector ===
  51.                         h.selector && (!j || j.test(h.namespace)) && !n.elem.disabled) {
  52.                         g = n.elem;
  53.                         e = null;
  54.                         if (h.preType === "mouseenter" || h.preType === "mouseleave") a.type = h.preType, e = c(a.relatedTarget).closest(h.selector)[0];
  55.                         (!e || e !== g) && m.push({
  56.                             elem: g,
  57.                             handleObj: h,
  58.                             level: n.level
  59.                         })
  60.                     }
  61.             }
  62.             l = 0;
  63.             for (k = m.length; l < k; l++) {
  64.                 f = m[l];
  65.                 if (d && f.level > d) break;
  66.                 a.currentTarget = f.elem;
  67.                 a.data = f.handleObj.data;
  68.                 a.handleObj = f.handleObj;
  69.                 j = f.handleObj.origHandler.apply(f.elem, arguments);
  70.                 if (j === !1 || a.isPropagationStopped())
  71.                     if (d = f.level, j === !1 && (b = !1), a.isImmediatePropagationStopped()) break
  72.             }
  73.             return b
  74.         }
  75.     }
  76.  
  77.     function T(a, b) {
  78.         return (a && a !== "*" ? a + "." : "") + b.replace(Ua, "`").replace(Va, "&")
  79.     }
  80.  
  81.     function na(a, b, d) {
  82.         if (c.isFunction(b)) return c.grep(a, function(a, c) {
  83.             return !!b.call(a, c, a) === d
  84.         });
  85.         else if (b.nodeType) return c.grep(a, function(a) {
  86.             return a === b === d
  87.         });
  88.         else if (typeof b === "string") {
  89.             var e = c.grep(a, function(a) {
  90.                 return a.nodeType === 1
  91.             });
  92.             if (Wa.test(b)) return c.filter(b, e, !d);
  93.             else b = c.filter(b, e)
  94.         }
  95.         return c.grep(a, function(a) {
  96.             return c.inArray(a, b) >= 0 === d
  97.         })
  98.     }
  99.  
  100.     function oa(a, b) {
  101.         if (b.nodeType === 1 && c.hasData(a)) {
  102.             var d = c.expando,
  103.                 e = c.data(a),
  104.                 f = c.data(b, e);
  105.             if (e = e[d]) {
  106.                 var h = e.events,
  107.                     f = f[d] = c.extend({}, e);
  108.                 if (h) {
  109.                     delete f.handle;
  110.                     f.events = {};
  111.                     for (var g in h) {
  112.                         d = 0;
  113.                         for (e = h[g].length; d < e; d++) c.event.add(b, g + (h[g][d].namespace ? "." : "") + h[g][d].namespace, h[g][d], h[g][d].data)
  114.                     }
  115.                 }
  116.             }
  117.         }
  118.     }
  119.  
  120.     function pa(a, b) {
  121.         if (b.nodeType === 1) {
  122.             var d = b.nodeName.toLowerCase();
  123.             b.clearAttributes();
  124.             b.mergeAttributes(a);
  125.             if (d === "object") b.outerHTML = a.outerHTML;
  126.             else if (d === "input" && (a.type === "checkbox" || a.type === "radio")) {
  127.                 if (a.checked) b.defaultChecked = b.checked = a.checked;
  128.                 if (b.value !== a.value) b.value = a.value
  129.             } else if (d === "option") b.selected = a.defaultSelected;
  130.             else if (d === "input" || d === "textarea") b.defaultValue = a.defaultValue;
  131.             b.removeAttribute(c.expando)
  132.         }
  133.     }
  134.  
  135.     function U(a) {
  136.         return "getElementsByTagName" in a ? a.getElementsByTagName("*") : "querySelectorAll" in a ? a.querySelectorAll("*") : []
  137.     }
  138.  
  139.     function Xa(a, b) {
  140.         b.src ? c.ajax({
  141.             url: b.src,
  142.             async: !1,
  143.             dataType: "script"
  144.         }) : c.globalEval(b.text || b.textContent || b.innerHTML || "");
  145.         b.parentNode && b.parentNode.removeChild(b)
  146.     }
  147.  
  148.     function qa(a, b, d) {
  149.         var e = b ===
  150.             "width" ? a.offsetWidth : a.offsetHeight;
  151.         if (d === "border") return e;
  152.         c.each(b === "width" ? Ya : Za, function() {
  153.             d || (e -= parseFloat(c.css(a, "padding" + this)) || 0);
  154.             d === "margin" ? e += parseFloat(c.css(a, "margin" + this)) || 0 : e -= parseFloat(c.css(a, "border" + this + "Width")) || 0
  155.         });
  156.         return e
  157.     }
  158.  
  159.     function ra(a) {
  160.         return function(b, d) {
  161.             var k;
  162.             typeof b !== "string" && (d = b, b = "*");
  163.             if (c.isFunction(d))
  164.                 for (var e = b.toLowerCase().split(sa), f = 0, h = e.length, g, i; f < h; f++) g = e[f], (i = /^\+/.test(g)) && (g = g.substr(1) || "*"), k = a[g] = a[g] || [], g = k, g[i ? "unshift" : "push"](d)
  165.         }
  166.     }
  167.  
  168.     function V(a, b, c, e, f, h) {
  169.         f = f || b.dataTypes[0];
  170.         h = h || {};
  171.         h[f] = !0;
  172.         for (var f = a[f], g = 0, i = f ? f.length : 0, l = a === aa, k; g < i && (l || !k); g++) k = f[g](b, c, e), typeof k === "string" && (!l || h[k] ? k = m : (b.dataTypes.unshift(k), k = V(a, b, c, e, k, h)));
  173.         if ((l || !k) && !h["*"]) k = V(a, b, c, e, "*", h);
  174.         return k
  175.     }
  176.  
  177.     function ba(a, b, d, e) {
  178.         if (c.isArray(b) && b.length) c.each(b, function(b, f) {
  179.             d || $a.test(a) ? e(a, f) : ba(a + "[" + (typeof f === "object" || c.isArray(f) ? b : "") + "]", f, d, e)
  180.         });
  181.         else if (!d && b != null && typeof b === "object")
  182.             if (c.isArray(b) || c.isEmptyObject(b)) e(a, "");
  183.             else
  184.                 for (var f in b) ba(a + "[" + f + "]", b[f], d, e);
  185.         else e(a, b)
  186.     }
  187.  
  188.     function ab() {
  189.         c(q).unload(function() {
  190.             for (var a in C) C[a](0, 1)
  191.         })
  192.     }
  193.  
  194.     function ta() {
  195.         try {
  196.             return new q.XMLHttpRequest
  197.         } catch (a) {}
  198.     }
  199.  
  200.     function D(a, b) {
  201.         var d = {};
  202.         c.each(ua.concat.apply([], ua.slice(0, b)), function() {
  203.             d[this] = a
  204.         });
  205.         return d
  206.     }
  207.  
  208.     function va(a) {
  209.         if (!ca[a]) {
  210.             var b = c("<" + a + ">").appendTo("body"),
  211.                 d = b.css("display");
  212.             b.remove();
  213.             if (d === "none" || d === "") d = "block";
  214.             ca[a] = d
  215.         }
  216.         return ca[a]
  217.     }
  218.  
  219.     function da(a) {
  220.         return c.isWindow(a) ? a : a.nodeType === 9 ? a.defaultView || a.parentWindow :
  221.             !1
  222.     }
  223.     var j = q.document,
  224.         c = function() {
  225.             function a() {
  226.                 if (!b.isReady) {
  227.                     try {
  228.                         j.documentElement.doScroll("left")
  229.                     } catch (c) {
  230.                         setTimeout(a, 1);
  231.                         return
  232.                     }
  233.                     b.ready()
  234.                 }
  235.             }
  236.             var b = function(a, c) {
  237.                     return new b.fn.init(a, c, f)
  238.                 },
  239.                 c = q.jQuery,
  240.                 e = q.$,
  241.                 f, h = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,
  242.                 g = /\S/,
  243.                 i = /^\s+/,
  244.                 l = /\s+$/,
  245.                 k = /\d/,
  246.                 n = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
  247.                 Ta = /^[\],:{}\s]*$/,
  248.                 v = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
  249.                 p = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
  250.                 s = /(?:^|:|,)(?:\s*\[)+/g,
  251.                 w = /(webkit)[ \/]([\w.]+)/,
  252.                 t = /(opera)(?:.*version)?[ \/]([\w.]+)/,
  253.                 L = /(msie) ([\w.]+)/,
  254.                 u = /(mozilla)(?:.*? rv:([\w.]+))?/,
  255.                 o = navigator.userAgent,
  256.                 y = !1,
  257.                 ea, fa = "then done fail isResolved isRejected promise".split(" "),
  258.                 P, bb = Object.prototype.toString,
  259.                 ga = Object.prototype.hasOwnProperty,
  260.                 ha = Array.prototype.push,
  261.                 S = Array.prototype.slice,
  262.                 wa = String.prototype.trim,
  263.                 xa = Array.prototype.indexOf,
  264.                 ya = {};
  265.             b.fn = b.prototype = {
  266.                 constructor: b,
  267.                 init: function(a, c, d) {
  268.                     var e;
  269.                     if (!a) return this;
  270.                     if (a.nodeType) return this.context = this[0] = a, this.length = 1, this;
  271.                     if (a === "body" && !c && j.body) return this.context =
  272.                         j, this[0] = j.body, this.selector = "body", this.length = 1, this;
  273.                     if (typeof a === "string")
  274.                         if ((e = h.exec(a)) && (e[1] || !c))
  275.                             if (e[1]) return d = (c = c instanceof b ? c[0] : c) ? c.ownerDocument || c : j, (a = n.exec(a)) ? b.isPlainObject(c) ? (a = [j.createElement(a[1])], b.fn.attr.call(a, c, !0)) : a = [d.createElement(a[1])] : (a = b.buildFragment([e[1]], [d]), a = (a.cacheable ? b.clone(a.fragment) : a.fragment).childNodes), b.merge(this, a);
  276.                             else {
  277.                                 if ((c = j.getElementById(e[2])) && c.parentNode) {
  278.                                     if (c.id !== e[2]) return d.find(a);
  279.                                     this.length = 1;
  280.                                     this[0] = c
  281.                                 }
  282.                                 this.context =
  283.                                     j;
  284.                                 this.selector = a;
  285.                                 return this
  286.                             }
  287.                     else return !c || c.jquery ? (c || d).find(a) : this.constructor(c).find(a);
  288.                     else if (b.isFunction(a)) return d.ready(a);
  289.                     if (a.selector !== m) this.selector = a.selector, this.context = a.context;
  290.                     return b.makeArray(a, this)
  291.                 },
  292.                 selector: "",
  293.                 jquery: "1.5.1",
  294.                 length: 0,
  295.                 size: function() {
  296.                     return this.length
  297.                 },
  298.                 toArray: function() {
  299.                     return S.call(this, 0)
  300.                 },
  301.                 get: function(a) {
  302.                     return a == null ? this.toArray() : a < 0 ? this[this.length + a] : this[a]
  303.                 },
  304.                 pushStack: function(a, c, d) {
  305.                     var e = this.constructor();
  306.                     b.isArray(a) ? ha.apply(e,
  307.                         a) : b.merge(e, a);
  308.                     e.prevObject = this;
  309.                     e.context = this.context;
  310.                     if (c === "find") e.selector = this.selector + (this.selector ? " " : "") + d;
  311.                     else if (c) e.selector = this.selector + "." + c + "(" + d + ")";
  312.                     return e
  313.                 },
  314.                 each: function(a, c) {
  315.                     return b.each(this, a, c)
  316.                 },
  317.                 ready: function(a) {
  318.                     b.bindReady();
  319.                     ea.done(a);
  320.                     return this
  321.                 },
  322.                 eq: function(a) {
  323.                     return a === -1 ? this.slice(a) : this.slice(a, +a + 1)
  324.                 },
  325.                 first: function() {
  326.                     return this.eq(0)
  327.                 },
  328.                 last: function() {
  329.                     return this.eq(-1)
  330.                 },
  331.                 slice: function() {
  332.                     return this.pushStack(S.apply(this, arguments), "slice", S.call(arguments).join(","))
  333.                 },
  334.                 map: function(a) {
  335.                     return this.pushStack(b.map(this, function(b, c) {
  336.                         return a.call(b, c, b)
  337.                     }))
  338.                 },
  339.                 end: function() {
  340.                     return this.prevObject || this.constructor(null)
  341.                 },
  342.                 push: ha,
  343.                 sort: [].sort,
  344.                 splice: [].splice
  345.             };
  346.             b.fn.init.prototype = b.fn;
  347.             b.extend = b.fn.extend = function() {
  348.                 var a, c, d, e, f, o = arguments[0] || {},
  349.                     h = 1,
  350.                     g = arguments.length,
  351.                     y = !1;
  352.                 typeof o === "boolean" && (y = o, o = arguments[1] || {}, h = 2);
  353.                 typeof o !== "object" && !b.isFunction(o) && (o = {});
  354.                 g === h && (o = this, --h);
  355.                 for (; h < g; h++)
  356.                     if ((a = arguments[h]) != null)
  357.                         for (c in a) d = o[c], e = a[c], o !== e && (y && e &&
  358.                             (b.isPlainObject(e) || (f = b.isArray(e))) ? (f ? (f = !1, d = d && b.isArray(d) ? d : []) : d = d && b.isPlainObject(d) ? d : {}, o[c] = b.extend(y, d, e)) : e !== m && (o[c] = e));
  359.                 return o
  360.             };
  361.             b.extend({
  362.                 noConflict: function(a) {
  363.                     q.$ = e;
  364.                     if (a) q.jQuery = c;
  365.                     return b
  366.                 },
  367.                 isReady: !1,
  368.                 readyWait: 1,
  369.                 ready: function(a) {
  370.                     a === !0 && b.readyWait--;
  371.                     if (!b.readyWait || a !== !0 && !b.isReady) {
  372.                         if (!j.body) return setTimeout(b.ready, 1);
  373.                         b.isReady = !0;
  374.                         a !== !0 && --b.readyWait > 0 || (ea.resolveWith(j, [b]), b.fn.trigger && b(j).trigger("ready").unbind("ready"))
  375.                     }
  376.                 },
  377.                 bindReady: function() {
  378.                     if (!y) {
  379.                         y = !0;
  380.                         if (j.readyState === "complete") return setTimeout(b.ready, 1);
  381.                         if (j.addEventListener) j.addEventListener("DOMContentLoaded", P, !1), q.addEventListener("load", b.ready, !1);
  382.                         else if (j.attachEvent) {
  383.                             j.attachEvent("onreadystatechange", P);
  384.                             q.attachEvent("onload", b.ready);
  385.                             var c = !1;
  386.                             try {
  387.                                 c = q.frameElement == null
  388.                             } catch (d) {}
  389.                             j.documentElement.doScroll && c && a()
  390.                         }
  391.                     }
  392.                 },
  393.                 isFunction: function(a) {
  394.                     return b.type(a) === "function"
  395.                 },
  396.                 isArray: function(a) {
  397.                     return b.type(a) === "array"
  398.                 },
  399.                 isWindow: function(a) {
  400.                     return a && typeof a === "object" && "setInterval" in
  401.                         a
  402.                 },
  403.                 isNaN: function(a) {
  404.                     return a == null || !k.test(a) || isNaN(a)
  405.                 },
  406.                 type: function(a) {
  407.                     return a == null ? String(a) : ya[bb.call(a)] || "object"
  408.                 },
  409.                 isPlainObject: function(a) {
  410.                     if (!a || b.type(a) !== "object" || a.nodeType || b.isWindow(a)) return !1;
  411.                     if (a.constructor && !ga.call(a, "constructor") && !ga.call(a.constructor.prototype, "isPrototypeOf")) return !1;
  412.                     for (var c in a);
  413.                     return c === m || ga.call(a, c)
  414.                 },
  415.                 isEmptyObject: function(a) {
  416.                     for (var b in a) return !1;
  417.                     return !0
  418.                 },
  419.                 error: function(a) {
  420.                     throw a;
  421.                 },
  422.                 parseJSON: function(a) {
  423.                     if (typeof a !== "string" || !a) return null;
  424.                     a = b.trim(a);
  425.                     if (Ta.test(a.replace(v, "@").replace(p, "]").replace(s, ""))) return q.JSON && q.JSON.parse ? q.JSON.parse(a) : (new Function("return " + a))();
  426.                     else b.error("Invalid JSON: " + a)
  427.                 },
  428.                 parseXML: function(a, c, d) {
  429.                     q.DOMParser ? (d = new DOMParser, c = d.parseFromString(a, "text/xml")) : (c = new ActiveXObject("Microsoft.XMLDOM"), c.async = "false", c.loadXML(a));
  430.                     d = c.documentElement;
  431.                     (!d || !d.nodeName || d.nodeName === "parsererror") && b.error("Invalid XML: " + a);
  432.                     return c
  433.                 },
  434.                 noop: function() {},
  435.                 globalEval: function(a) {
  436.                     if (a && g.test(a)) {
  437.                         var c =
  438.                             j.head || j.getElementsByTagName("head")[0] || j.documentElement,
  439.                             d = j.createElement("script");
  440.                         b.support.scriptEval() ? d.appendChild(j.createTextNode(a)) : d.text = a;
  441.                         c.insertBefore(d, c.firstChild);
  442.                         c.removeChild(d)
  443.                     }
  444.                 },
  445.                 nodeName: function(a, b) {
  446.                     return a.nodeName && a.nodeName.toUpperCase() === b.toUpperCase()
  447.                 },
  448.                 each: function(a, c, d) {
  449.                     var e, f = 0,
  450.                         o = a.length,
  451.                         h = o === m || b.isFunction(a);
  452.                     if (d)
  453.                         if (h)
  454.                             for (e in a) {
  455.                                 if (c.apply(a[e], d) === !1) break
  456.                             } else
  457.                                 for (; f < o;) {
  458.                                     if (c.apply(a[f++], d) === !1) break
  459.                                 } else if (h)
  460.                                     for (e in a) {
  461.                                         if (c.call(a[e], e, a[e]) ===
  462.                                             !1) break
  463.                                     } else
  464.                                         for (d = a[0]; f < o && c.call(d, f, d) !== !1; d = a[++f]);
  465.                     return a
  466.                 },
  467.                 trim: wa ? function(a) {
  468.                     return a == null ? "" : wa.call(a)
  469.                 } : function(a) {
  470.                     return a == null ? "" : a.toString().replace(i, "").replace(l, "")
  471.                 },
  472.                 makeArray: function(a, c) {
  473.                     var d = c || [];
  474.                     if (a != null) {
  475.                         var e = b.type(a);
  476.                         a.length == null || e === "string" || e === "function" || e === "regexp" || b.isWindow(a) ? ha.call(d, a) : b.merge(d, a)
  477.                     }
  478.                     return d
  479.                 },
  480.                 inArray: function(a, b) {
  481.                     if (b.indexOf) return b.indexOf(a);
  482.                     for (var c = 0, d = b.length; c < d; c++)
  483.                         if (b[c] === a) return c;
  484.                     return -1
  485.                 },
  486.                 merge: function(a, b) {
  487.                     var c =
  488.                         a.length,
  489.                         d = 0;
  490.                     if (typeof b.length === "number")
  491.                         for (var e = b.length; d < e; d++) a[c++] = b[d];
  492.                     else
  493.                         for (; b[d] !== m;) a[c++] = b[d++];
  494.                     a.length = c;
  495.                     return a
  496.                 },
  497.                 grep: function(a, b, c) {
  498.                     for (var d = [], e, c = !!c, f = 0, o = a.length; f < o; f++) e = !!b(a[f], f), c !== e && d.push(a[f]);
  499.                     return d
  500.                 },
  501.                 map: function(a, b, c) {
  502.                     for (var d = [], e, f = 0, o = a.length; f < o; f++) e = b(a[f], f, c), e != null && (d[d.length] = e);
  503.                     return d.concat.apply([], d)
  504.                 },
  505.                 guid: 1,
  506.                 proxy: function(a, c, d) {
  507.                     arguments.length === 2 && (typeof c === "string" ? (d = a, a = d[c], c = m) : c && !b.isFunction(c) && (d = c, c = m));
  508.                     !c && a && (c =
  509.                         function() {
  510.                             return a.apply(d || this, arguments)
  511.                         });
  512.                     if (a) c.guid = a.guid = a.guid || c.guid || b.guid++;
  513.                     return c
  514.                 },
  515.                 access: function(a, c, d, e, f, o) {
  516.                     var h = a.length;
  517.                     if (typeof c === "object") {
  518.                         for (var g in c) b.access(a, g, c[g], e, f, d);
  519.                         return a
  520.                     }
  521.                     if (d !== m) {
  522.                         e = !o && e && b.isFunction(d);
  523.                         for (g = 0; g < h; g++) f(a[g], c, e ? d.call(a[g], g, f(a[g], c)) : d, o);
  524.                         return a
  525.                     }
  526.                     return h ? f(a[0], c) : m
  527.                 },
  528.                 now: function() {
  529.                     return (new Date).getTime()
  530.                 },
  531.                 _Deferred: function() {
  532.                     var a = [],
  533.                         c, d, e, f = {
  534.                             done: function() {
  535.                                 if (!e) {
  536.                                     var d = arguments,
  537.                                         o, h, g, y, k;
  538.                                     c && (k = c, c = 0);
  539.                                     o = 0;
  540.                                     for (h = d.length; o <
  541.                                         h; o++) g = d[o], y = b.type(g), y === "array" ? f.done.apply(f, g) : y === "function" && a.push(g);
  542.                                     k && f.resolveWith(k[0], k[1])
  543.                                 }
  544.                                 return this
  545.                             },
  546.                             resolveWith: function(b, f) {
  547.                                 if (!e && !c && !d) {
  548.                                     d = 1;
  549.                                     try {
  550.                                         for (; a[0];) a.shift().apply(b, f)
  551.                                     } catch (o) {
  552.                                         throw o;
  553.                                     } finally {
  554.                                         c = [b, f], d = 0
  555.                                     }
  556.                                 }
  557.                                 return this
  558.                             },
  559.                             resolve: function() {
  560.                                 f.resolveWith(b.isFunction(this.promise) ? this.promise() : this, arguments);
  561.                                 return this
  562.                             },
  563.                             isResolved: function() {
  564.                                 return !(!d && !c)
  565.                             },
  566.                             cancel: function() {
  567.                                 e = 1;
  568.                                 a = [];
  569.                                 return this
  570.                             }
  571.                         };
  572.                     return f
  573.                 },
  574.                 Deferred: function(a) {
  575.                     var c = b._Deferred(),
  576.                         d = b._Deferred(),
  577.                         e;
  578.                     b.extend(c, {
  579.                         then: function(a, b) {
  580.                             c.done(a).fail(b);
  581.                             return this
  582.                         },
  583.                         fail: d.done,
  584.                         rejectWith: d.resolveWith,
  585.                         reject: d.resolve,
  586.                         isRejected: d.isResolved,
  587.                         promise: function(a) {
  588.                             if (a == null) {
  589.                                 if (e) return e;
  590.                                 e = a = {}
  591.                             }
  592.                             for (var b = fa.length; b--;) a[fa[b]] = c[fa[b]];
  593.                             return a
  594.                         }
  595.                     });
  596.                     c.done(d.cancel).fail(c.cancel);
  597.                     delete c.cancel;
  598.                     a && a.call(c, c);
  599.                     return c
  600.                 },
  601.                 when: function(a) {
  602.                     var c = arguments.length,
  603.                         d = c <= 1 && a && b.isFunction(a.promise) ? a : b.Deferred(),
  604.                         e = d.promise();
  605.                     if (c > 1) {
  606.                         for (var f = S.call(arguments, 0), o = c, h = function(a) {
  607.                                 return function(b) {
  608.                                     f[a] =
  609.                                         arguments.length > 1 ? S.call(arguments, 0) : b;
  610.                                     --o || d.resolveWith(e, f)
  611.                                 }
  612.                             }; c--;)(a = f[c]) && b.isFunction(a.promise) ? a.promise().then(h(c), d.reject) : --o;
  613.                         o || d.resolveWith(e, f)
  614.                     } else d !== a && d.resolve(a);
  615.                     return e
  616.                 },
  617.                 uaMatch: function(a) {
  618.                     a = a.toLowerCase();
  619.                     a = w.exec(a) || t.exec(a) || L.exec(a) || a.indexOf("compatible") < 0 && u.exec(a) || [];
  620.                     return {
  621.                         browser: a[1] || "",
  622.                         version: a[2] || "0"
  623.                     }
  624.                 },
  625.                 sub: function() {
  626.                     function a(b, c) {
  627.                         return new a.fn.init(b, c)
  628.                     }
  629.                     b.extend(!0, a, this);
  630.                     a.superclass = this;
  631.                     a.fn = a.prototype = this();
  632.                     a.fn.constructor = a;
  633.                     a.subclass =
  634.                         this.subclass;
  635.                     a.fn.init = function(d, e) {
  636.                         e && e instanceof b && !(e instanceof a) && (e = a(e));
  637.                         return b.fn.init.call(this, d, e, c)
  638.                     };
  639.                     a.fn.init.prototype = a.fn;
  640.                     var c = a(j);
  641.                     return a
  642.                 },
  643.                 browser: {}
  644.             });
  645.             ea = b._Deferred();
  646.             b.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(a, b) {
  647.                 ya["[object " + b + "]"] = b.toLowerCase()
  648.             });
  649.             o = b.uaMatch(o);
  650.             if (o.browser) b.browser[o.browser] = !0, b.browser.version = o.version;
  651.             if (b.browser.webkit) b.browser.safari = !0;
  652.             if (xa) b.inArray = function(a, b) {
  653.                 return xa.call(b, a)
  654.             };
  655.             g.test("\u00a0") &&
  656.                 (i = /^[\s\xA0]+/, l = /[\s\xA0]+$/);
  657.             f = b(j);
  658.             j.addEventListener ? P = function() {
  659.                 j.removeEventListener("DOMContentLoaded", P, !1);
  660.                 b.ready()
  661.             } : j.attachEvent && (P = function() {
  662.                 j.readyState === "complete" && (j.detachEvent("onreadystatechange", P), b.ready())
  663.             });
  664.             return b
  665.         }();
  666.     (function() {
  667.         c.support = {};
  668.         var a = j.createElement("div");
  669.         a.style.display = "none";
  670.         a.innerHTML = "   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
  671.         var b = a.getElementsByTagName("*"),
  672.             d = a.getElementsByTagName("a")[0],
  673.             e = j.createElement("select"),
  674.             f = e.appendChild(j.createElement("option")),
  675.             h = a.getElementsByTagName("input")[0];
  676.         if (b && b.length && d) {
  677.             c.support = {
  678.                 leadingWhitespace: a.firstChild.nodeType === 3,
  679.                 tbody: !a.getElementsByTagName("tbody").length,
  680.                 htmlSerialize: !!a.getElementsByTagName("link").length,
  681.                 style: /red/.test(d.getAttribute("style")),
  682.                 hrefNormalized: d.getAttribute("href") === "/a",
  683.                 opacity: /^0.55$/.test(d.style.opacity),
  684.                 cssFloat: !!d.style.cssFloat,
  685.                 checkOn: h.value === "on",
  686.                 optSelected: f.selected,
  687.                 deleteExpando: !0,
  688.                 optDisabled: !1,
  689.                 checkClone: !1,
  690.                 noCloneEvent: !0,
  691.                 noCloneChecked: !0,
  692.                 boxModel: null,
  693.                 inlineBlockNeedsLayout: !1,
  694.                 shrinkWrapBlocks: !1,
  695.                 reliableHiddenOffsets: !0
  696.             };
  697.             h.checked = !0;
  698.             c.support.noCloneChecked = h.cloneNode(!0).checked;
  699.             e.disabled = !0;
  700.             c.support.optDisabled = !f.disabled;
  701.             var g = null;
  702.             c.support.scriptEval = function() {
  703.                 if (g === null) {
  704.                     var a = j.documentElement,
  705.                         b = j.createElement("script"),
  706.                         d = "script" + c.now();
  707.                     try {
  708.                         b.appendChild(j.createTextNode("window." + d + "=1;"))
  709.                     } catch (e) {}
  710.                     a.insertBefore(b, a.firstChild);
  711.                     q[d] ? (g = !0, delete q[d]) : g = !1;
  712.                     a.removeChild(b)
  713.                 }
  714.                 return g
  715.             };
  716.             try {
  717.                 delete a.test
  718.             } catch (i) {
  719.                 c.support.deleteExpando = !1
  720.             }!a.addEventListener && a.attachEvent && a.fireEvent && (a.attachEvent("onclick", function k() {
  721.                 c.support.noCloneEvent = !1;
  722.                 a.detachEvent("onclick", k)
  723.             }), a.cloneNode(!0).fireEvent("onclick"));
  724.             a = j.createElement("div");
  725.             a.innerHTML = "<input type='radio' name='radiotest' checked='checked'/>";
  726.             b = j.createDocumentFragment();
  727.             b.appendChild(a.firstChild);
  728.             c.support.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked;
  729.             c(function() {
  730.                 var a = j.createElement("div"),
  731.                     b = j.getElementsByTagName("body")[0];
  732.                 if (b) {
  733.                     a.style.width = a.style.paddingLeft = "1px";
  734.                     b.appendChild(a);
  735.                     c.boxModel = c.support.boxModel = a.offsetWidth === 2;
  736.                     if ("zoom" in a.style) a.style.display = "inline", a.style.zoom = 1, c.support.inlineBlockNeedsLayout = a.offsetWidth === 2, a.style.display = "", a.innerHTML = "<div style='width:4px;'></div>", c.support.shrinkWrapBlocks = a.offsetWidth !== 2;
  737.                     a.innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";
  738.                     var d = a.getElementsByTagName("td");
  739.                     c.support.reliableHiddenOffsets = d[0].offsetHeight ===
  740.                         0;
  741.                     d[0].style.display = "";
  742.                     d[1].style.display = "none";
  743.                     c.support.reliableHiddenOffsets = c.support.reliableHiddenOffsets && d[0].offsetHeight === 0;
  744.                     a.innerHTML = "";
  745.                     b.removeChild(a).style.display = "none"
  746.                 }
  747.             });
  748.             b = function(a) {
  749.                 var b = j.createElement("div"),
  750.                     a = "on" + a;
  751.                 if (!b.attachEvent) return !0;
  752.                 var c = a in b;
  753.                 c || (b.setAttribute(a, "return;"), c = typeof b[a] === "function");
  754.                 return c
  755.             };
  756.             c.support.submitBubbles = b("submit");
  757.             c.support.changeBubbles = b("change");
  758.             a = b = d = null
  759.         }
  760.     })();
  761.     var Ra = /^(?:\{.*\}|\[.*\])$/;
  762.     c.extend({
  763.         cache: {},
  764.         uuid: 0,
  765.         expando: "jQuery" +
  766.             (c.fn.jquery + Math.random()).replace(/\D/g, ""),
  767.         noData: {
  768.             embed: !0,
  769.             object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
  770.             applet: !0
  771.         },
  772.         hasData: function(a) {
  773.             a = a.nodeType ? c.cache[a[c.expando]] : a[c.expando];
  774.             return !!a && !$(a)
  775.         },
  776.         data: function(a, b, d, e) {
  777.             if (c.acceptData(a)) {
  778.                 var f = c.expando,
  779.                     h = typeof b === "string",
  780.                     g = a.nodeType,
  781.                     i = g ? c.cache : a,
  782.                     l = g ? a[c.expando] : a[c.expando] && c.expando;
  783.                 if (l && (!e || !l || i[l][f]) || !(h && d === m)) {
  784.                     if (!l) g ? a[c.expando] = l = ++c.uuid : l = c.expando;
  785.                     if (!i[l] && (i[l] = {}, !g)) i[l].toJSON = c.noop;
  786.                     if (typeof b === "object" ||
  787.                         typeof b === "function") e ? i[l][f] = c.extend(i[l][f], b) : i[l] = c.extend(i[l], b);
  788.                     a = i[l];
  789.                     e && (a[f] || (a[f] = {}), a = a[f]);
  790.                     d !== m && (a[b] = d);
  791.                     if (b === "events" && !a[b]) return a[f] && a[f].events;
  792.                     return h ? a[b] : a
  793.                 }
  794.             }
  795.         },
  796.         removeData: function(a, b, d) {
  797.             if (c.acceptData(a)) {
  798.                 var e = c.expando,
  799.                     f = a.nodeType,
  800.                     h = f ? c.cache : a,
  801.                     g = f ? a[c.expando] : c.expando;
  802.                 if (h[g]) {
  803.                     if (b) {
  804.                         var i = d ? h[g][e] : h[g];
  805.                         if (i && (delete i[b], !$(i))) return
  806.                     }
  807.                     if (d && (delete h[g][e], !$(h[g]))) return;
  808.                     b = h[g][e];
  809.                     c.support.deleteExpando || h != q ? delete h[g] : h[g] = null;
  810.                     if (b) {
  811.                         h[g] = {};
  812.                         if (!f) h[g].toJSON =
  813.                             c.noop;
  814.                         h[g][e] = b
  815.                     } else f && (c.support.deleteExpando ? delete a[c.expando] : a.removeAttribute ? a.removeAttribute(c.expando) : a[c.expando] = null)
  816.                 }
  817.             }
  818.         },
  819.         _data: function(a, b, d) {
  820.             return c.data(a, b, d, !0)
  821.         },
  822.         acceptData: function(a) {
  823.             if (a.nodeName) {
  824.                 var b = c.noData[a.nodeName.toLowerCase()];
  825.                 if (b) return !(b === !0 || a.getAttribute("classid") !== b)
  826.             }
  827.             return !0
  828.         }
  829.     });
  830.     c.fn.extend({
  831.         data: function(a, b) {
  832.             var d = null;
  833.             if (typeof a === "undefined") {
  834.                 if (this.length && (d = c.data(this[0]), this[0].nodeType === 1))
  835.                     for (var e = this[0].attributes, f, h = 0, g = e.length; h <
  836.                         g; h++) f = e[h].name, f.indexOf("data-") === 0 && (f = f.substr(5), la(this[0], f, d[f]));
  837.                 return d
  838.             } else if (typeof a === "object") return this.each(function() {
  839.                 c.data(this, a)
  840.             });
  841.             var i = a.split(".");
  842.             i[1] = i[1] ? "." + i[1] : "";
  843.             return b === m ? (d = this.triggerHandler("getData" + i[1] + "!", [i[0]]), d === m && this.length && (d = c.data(this[0], a), d = la(this[0], a, d)), d === m && i[1] ? this.data(i[0]) : d) : this.each(function() {
  844.                 var d = c(this),
  845.                     e = [i[0], b];
  846.                 d.triggerHandler("setData" + i[1] + "!", e);
  847.                 c.data(this, a, b);
  848.                 d.triggerHandler("changeData" + i[1] + "!", e)
  849.             })
  850.         },
  851.         removeData: function(a) {
  852.             return this.each(function() {
  853.                 c.removeData(this, a)
  854.             })
  855.         }
  856.     });
  857.     c.extend({
  858.         queue: function(a, b, d) {
  859.             if (a) {
  860.                 var b = (b || "fx") + "queue",
  861.                     e = c._data(a, b);
  862.                 if (!d) return e || [];
  863.                 !e || c.isArray(d) ? e = c._data(a, b, c.makeArray(d)) : e.push(d);
  864.                 return e
  865.             }
  866.         },
  867.         dequeue: function(a, b) {
  868.             var b = b || "fx",
  869.                 d = c.queue(a, b),
  870.                 e = d.shift();
  871.             e === "inprogress" && (e = d.shift());
  872.             e && (b === "fx" && d.unshift("inprogress"), e.call(a, function() {
  873.                 c.dequeue(a, b)
  874.             }));
  875.             d.length || c.removeData(a, b + "queue", !0)
  876.         }
  877.     });
  878.     c.fn.extend({
  879.         queue: function(a, b) {
  880.             typeof a !== "string" &&
  881.                 (b = a, a = "fx");
  882.             if (b === m) return c.queue(this[0], a);
  883.             return this.each(function() {
  884.                 var d = c.queue(this, a, b);
  885.                 a === "fx" && d[0] !== "inprogress" && c.dequeue(this, a)
  886.             })
  887.         },
  888.         dequeue: function(a) {
  889.             return this.each(function() {
  890.                 c.dequeue(this, a)
  891.             })
  892.         },
  893.         delay: function(a, b) {
  894.             a = c.fx ? c.fx.speeds[a] || a : a;
  895.             b = b || "fx";
  896.             return this.queue(b, function() {
  897.                 var d = this;
  898.                 setTimeout(function() {
  899.                     c.dequeue(d, b)
  900.                 }, a)
  901.             })
  902.         },
  903.         clearQueue: function(a) {
  904.             return this.queue(a || "fx", [])
  905.         }
  906.     });
  907.     var za = /[\n\t\r]/g,
  908.         ia = /\s+/,
  909.         cb = /\r/g,
  910.         db = /^(?:href|src|style)$/,
  911.         eb = /^(?:button|input)$/i,
  912.         fb = /^(?:button|input|object|select|textarea)$/i,
  913.         gb = /^a(?:rea)?$/i,
  914.         Aa = /^(?:radio|checkbox)$/i;
  915.     c.props = {
  916.         "for": "htmlFor",
  917.         "class": "className",
  918.         readonly: "readOnly",
  919.         maxlength: "maxLength",
  920.         cellspacing: "cellSpacing",
  921.         rowspan: "rowSpan",
  922.         colspan: "colSpan",
  923.         tabindex: "tabIndex",
  924.         usemap: "useMap",
  925.         frameborder: "frameBorder"
  926.     };
  927.     c.fn.extend({
  928.         attr: function(a, b) {
  929.             return c.access(this, a, b, !0, c.attr)
  930.         },
  931.         removeAttr: function(a) {
  932.             return this.each(function() {
  933.                 c.attr(this, a, "");
  934.                 this.nodeType === 1 && this.removeAttribute(a)
  935.             })
  936.         },
  937.         addClass: function(a) {
  938.             if (c.isFunction(a)) return this.each(function(b) {
  939.                 var d =
  940.                     c(this);
  941.                 d.addClass(a.call(this, b, d.attr("class")))
  942.             });
  943.             if (a && typeof a === "string")
  944.                 for (var b = (a || "").split(ia), d = 0, e = this.length; d < e; d++) {
  945.                     var f = this[d];
  946.                     if (f.nodeType === 1)
  947.                         if (f.className) {
  948.                             for (var h = " " + f.className + " ", g = f.className, i = 0, l = b.length; i < l; i++) h.indexOf(" " + b[i] + " ") < 0 && (g += " " + b[i]);
  949.                             f.className = c.trim(g)
  950.                         } else f.className = a
  951.                 }
  952.             return this
  953.         },
  954.         removeClass: function(a) {
  955.             if (c.isFunction(a)) return this.each(function(b) {
  956.                 var d = c(this);
  957.                 d.removeClass(a.call(this, b, d.attr("class")))
  958.             });
  959.             if (a && typeof a === "string" ||
  960.                 a === m)
  961.                 for (var b = (a || "").split(ia), d = 0, e = this.length; d < e; d++) {
  962.                     var f = this[d];
  963.                     if (f.nodeType === 1 && f.className)
  964.                         if (a) {
  965.                             for (var h = (" " + f.className + " ").replace(za, " "), g = 0, i = b.length; g < i; g++) h = h.replace(" " + b[g] + " ", " ");
  966.                             f.className = c.trim(h)
  967.                         } else f.className = ""
  968.                 }
  969.             return this
  970.         },
  971.         toggleClass: function(a, b) {
  972.             var d = typeof a,
  973.                 e = typeof b === "boolean";
  974.             if (c.isFunction(a)) return this.each(function(d) {
  975.                 var e = c(this);
  976.                 e.toggleClass(a.call(this, d, e.attr("class"), b), b)
  977.             });
  978.             return this.each(function() {
  979.                 if (d === "string")
  980.                     for (var f, h =
  981.                             0, g = c(this), i = b, l = a.split(ia); f = l[h++];) i = e ? i : !g.hasClass(f), g[i ? "addClass" : "removeClass"](f);
  982.                 else if (d === "undefined" || d === "boolean") this.className && c._data(this, "__className__", this.className), this.className = this.className || a === !1 ? "" : c._data(this, "__className__") || ""
  983.             })
  984.         },
  985.         hasClass: function(a) {
  986.             for (var a = " " + a + " ", b = 0, c = this.length; b < c; b++)
  987.                 if ((" " + this[b].className + " ").replace(za, " ").indexOf(a) > -1) return !0;
  988.             return !1
  989.         },
  990.         val: function(a) {
  991.             if (!arguments.length) {
  992.                 var b = this[0];
  993.                 if (b) {
  994.                     if (c.nodeName(b, "option")) {
  995.                         var d =
  996.                             b.attributes.value;
  997.                         return !d || d.specified ? b.value : b.text
  998.                     }
  999.                     if (c.nodeName(b, "select")) {
  1000.                         var d = b.selectedIndex,
  1001.                             e = [],
  1002.                             f = b.options,
  1003.                             b = b.type === "select-one";
  1004.                         if (d < 0) return null;
  1005.                         for (var h = b ? d : 0, g = b ? d + 1 : f.length; h < g; h++) {
  1006.                             var i = f[h];
  1007.                             if (i.selected && (c.support.optDisabled ? !i.disabled : i.getAttribute("disabled") === null) && (!i.parentNode.disabled || !c.nodeName(i.parentNode, "optgroup"))) {
  1008.                                 a = c(i).val();
  1009.                                 if (b) return a;
  1010.                                 e.push(a)
  1011.                             }
  1012.                         }
  1013.                         if (b && !e.length && f.length) return c(f[d]).val();
  1014.                         return e
  1015.                     }
  1016.                     if (Aa.test(b.type) && !c.support.checkOn) return b.getAttribute("value") ===
  1017.                         null ? "on" : b.value;
  1018.                     return (b.value || "").replace(cb, "")
  1019.                 }
  1020.                 return m
  1021.             }
  1022.             var l = c.isFunction(a);
  1023.             return this.each(function(b) {
  1024.                 var d = c(this),
  1025.                     e = a;
  1026.                 if (this.nodeType === 1)
  1027.                     if (l && (e = a.call(this, b, d.val())), e == null ? e = "" : typeof e === "number" ? e += "" : c.isArray(e) && (e = c.map(e, function(a) {
  1028.                             return a == null ? "" : a + ""
  1029.                         })), c.isArray(e) && Aa.test(this.type)) this.checked = c.inArray(d.val(), e) >= 0;
  1030.                     else if (c.nodeName(this, "select")) {
  1031.                     var f = c.makeArray(e);
  1032.                     c("option", this).each(function() {
  1033.                         this.selected = c.inArray(c(this).val(), f) >= 0
  1034.                     });
  1035.                     if (!f.length) this.selectedIndex = -1
  1036.                 } else this.value = e
  1037.             })
  1038.         }
  1039.     });
  1040.     c.extend({
  1041.         attrFn: {
  1042.             val: !0,
  1043.             css: !0,
  1044.             html: !0,
  1045.             text: !0,
  1046.             data: !0,
  1047.             width: !0,
  1048.             height: !0,
  1049.             offset: !0
  1050.         },
  1051.         attr: function(a, b, d, e) {
  1052.             if (!a || a.nodeType === 3 || a.nodeType === 8 || a.nodeType === 2) return m;
  1053.             if (e && b in c.attrFn) return c(a)[b](d);
  1054.             var e = a.nodeType !== 1 || !c.isXMLDoc(a),
  1055.                 f = d !== m,
  1056.                 b = e && c.props[b] || b;
  1057.             if (a.nodeType === 1) {
  1058.                 var h = db.test(b);
  1059.                 if ((b in a || a[b] !== m) && e && !h) {
  1060.                     f && (b === "type" && eb.test(a.nodeName) && a.parentNode && c.error("type property can't be changed"), d === null ? a.nodeType === 1 && a.removeAttribute(b) :
  1061.                         a[b] = d);
  1062.                     if (c.nodeName(a, "form") && a.getAttributeNode(b)) return a.getAttributeNode(b).nodeValue;
  1063.                     if (b === "tabIndex") return (b = a.getAttributeNode("tabIndex")) && b.specified ? b.value : fb.test(a.nodeName) || gb.test(a.nodeName) && a.href ? 0 : m;
  1064.                     return a[b]
  1065.                 }
  1066.                 if (!c.support.style && e && b === "style") {
  1067.                     if (f) a.style.cssText = "" + d;
  1068.                     return a.style.cssText
  1069.                 }
  1070.                 f && a.setAttribute(b, "" + d);
  1071.                 if (!a.attributes[b] && a.hasAttribute && !a.hasAttribute(b)) return m;
  1072.                 a = !c.support.hrefNormalized && e && h ? a.getAttribute(b, 2) : a.getAttribute(b);
  1073.                 return a === null ?
  1074.                     m : a
  1075.             }
  1076.             f && (a[b] = d);
  1077.             return a[b]
  1078.         }
  1079.     });
  1080.     var O = /\.(.*)$/,
  1081.         ja = /^(?:textarea|input|select)$/i,
  1082.         Ua = /\./g,
  1083.         Va = / /g,
  1084.         hb = /[^\w\s.|`]/g,
  1085.         ib = function(a) {
  1086.             return a.replace(hb, "\\$&")
  1087.         };
  1088.     c.event = {
  1089.         add: function(a, b, d, e) {
  1090.             if (!(a.nodeType === 3 || a.nodeType === 8)) {
  1091.                 try {
  1092.                     c.isWindow(a) && a !== q && !a.frameElement && (a = q)
  1093.                 } catch (f) {}
  1094.                 if (d === !1) d = F;
  1095.                 else if (!d) return;
  1096.                 var h, g;
  1097.                 if (d.handler) h = d, d = h.handler;
  1098.                 if (!d.guid) d.guid = c.guid++;
  1099.                 if (g = c._data(a)) {
  1100.                     var i = g.events,
  1101.                         l = g.handle;
  1102.                     if (!i) g.events = i = {};
  1103.                     if (!l) g.handle = l = function() {
  1104.                         return typeof c !== "undefined" &&
  1105.                             !c.event.triggered ? c.event.handle.apply(l.elem, arguments) : m
  1106.                     };
  1107.                     l.elem = a;
  1108.                     for (var b = b.split(" "), k, n = 0, j; k = b[n++];) {
  1109.                         g = h ? c.extend({}, h) : {
  1110.                             handler: d,
  1111.                             data: e
  1112.                         };
  1113.                         k.indexOf(".") > -1 ? (j = k.split("."), k = j.shift(), g.namespace = j.slice(0).sort().join(".")) : (j = [], g.namespace = "");
  1114.                         g.type = k;
  1115.                         if (!g.guid) g.guid = d.guid;
  1116.                         var v = i[k],
  1117.                             p = c.event.special[k] || {};
  1118.                         if (!v && (v = i[k] = [], !p.setup || p.setup.call(a, e, j, l) === !1)) a.addEventListener ? a.addEventListener(k, l, !1) : a.attachEvent && a.attachEvent("on" + k, l);
  1119.                         if (p.add && (p.add.call(a, g), !g.handler.guid)) g.handler.guid =
  1120.                             d.guid;
  1121.                         v.push(g);
  1122.                         c.event.global[k] = !0
  1123.                     }
  1124.                     a = null
  1125.                 }
  1126.             }
  1127.         },
  1128.         global: {},
  1129.         remove: function(a, b, d, e) {
  1130.             if (!(a.nodeType === 3 || a.nodeType === 8)) {
  1131.                 d === !1 && (d = F);
  1132.                 var f, h, g = 0,
  1133.                     i, l, k, n, j, q, p = c.hasData(a) && c._data(a),
  1134.                     s = p && p.events;
  1135.                 if (p && s) {
  1136.                     if (b && b.type) d = b.handler, b = b.type;
  1137.                     if (!b || typeof b === "string" && b.charAt(0) === ".")
  1138.                         for (f in b = b || "", s) c.event.remove(a, f + b);
  1139.                     else {
  1140.                         for (b = b.split(" "); f = b[g++];)
  1141.                             if (n = f, i = f.indexOf(".") < 0, l = [], i || (l = f.split("."), f = l.shift(), k = RegExp("(^|\\.)" + c.map(l.slice(0).sort(), ib).join("\\.(?:.*\\.)?") + "(\\.|$)")),
  1142.                                 j = s[f])
  1143.                                 if (d) {
  1144.                                     n = c.event.special[f] || {};
  1145.                                     for (h = e || 0; h < j.length; h++)
  1146.                                         if (q = j[h], d.guid === q.guid) {
  1147.                                             if (i || k.test(q.namespace)) e == null && j.splice(h--, 1), n.remove && n.remove.call(a, q);
  1148.                                             if (e != null) break
  1149.                                         }
  1150.                                     if (j.length === 0 || e != null && j.length === 1)(!n.teardown || n.teardown.call(a, l) === !1) && c.removeEvent(a, f, p.handle), delete s[f]
  1151.                                 } else
  1152.                                     for (h = 0; h < j.length; h++)
  1153.                                         if (q = j[h], i || k.test(q.namespace)) c.event.remove(a, n, q.handler, h), j.splice(h--, 1);
  1154.                         if (c.isEmptyObject(s)) {
  1155.                             if (b = p.handle) b.elem = null;
  1156.                             delete p.events;
  1157.                             delete p.handle;
  1158.                             c.isEmptyObject(p) &&
  1159.                                 c.removeData(a, m, !0)
  1160.                         }
  1161.                     }
  1162.                 }
  1163.             }
  1164.         },
  1165.         trigger: function(a, b, d, e) {
  1166.             var f = a.type || a;
  1167.             if (!e) {
  1168.                 a = typeof a === "object" ? a[c.expando] ? a : c.extend(c.Event(f), a) : c.Event(f);
  1169.                 if (f.indexOf("!") >= 0) a.type = f = f.slice(0, -1), a.exclusive = !0;
  1170.                 d || (a.stopPropagation(), c.event.global[f] && c.each(c.cache, function() {
  1171.                     var d = this[c.expando];
  1172.                     d && d.events && d.events[f] && c.event.trigger(a, b, d.handle.elem)
  1173.                 }));
  1174.                 if (!d || d.nodeType === 3 || d.nodeType === 8) return m;
  1175.                 a.result = m;
  1176.                 a.target = d;
  1177.                 b = c.makeArray(b);
  1178.                 b.unshift(a)
  1179.             }
  1180.             a.currentTarget = d;
  1181.             (e = c._data(d, "handle")) &&
  1182.             e.apply(d, b);
  1183.             e = d.parentNode || d.ownerDocument;
  1184.             try {
  1185.                 if ((!d || !d.nodeName || !c.noData[d.nodeName.toLowerCase()]) && d["on" + f] && d["on" + f].apply(d, b) === !1) a.result = !1, a.preventDefault()
  1186.             } catch (h) {}
  1187.             if (!a.isPropagationStopped() && e) c.event.trigger(a, b, e, !0);
  1188.             else if (!a.isDefaultPrevented()) {
  1189.                 var g, e = a.target,
  1190.                     i = f.replace(O, ""),
  1191.                     l = c.nodeName(e, "a") && i === "click",
  1192.                     k = c.event.special[i] || {};
  1193.                 if ((!k._default || k._default.call(d, a) === !1) && !l && (!e || !e.nodeName || !c.noData[e.nodeName.toLowerCase()])) {
  1194.                     try {
  1195.                         if (e[i])(g = e["on" + i]) &&
  1196.                             (e["on" + i] = null), c.event.triggered = !0, e[i]()
  1197.                     } catch (j) {}
  1198.                     g && (e["on" + i] = g);
  1199.                     c.event.triggered = !1
  1200.                 }
  1201.             }
  1202.         },
  1203.         handle: function(a) {
  1204.             var b, d, e, f;
  1205.             d = [];
  1206.             var h = c.makeArray(arguments),
  1207.                 a = h[0] = c.event.fix(a || q.event);
  1208.             a.currentTarget = this;
  1209.             b = a.type.indexOf(".") < 0 && !a.exclusive;
  1210.             if (!b) e = a.type.split("."), a.type = e.shift(), d = e.slice(0).sort(), e = RegExp("(^|\\.)" + d.join("\\.(?:.*\\.)?") + "(\\.|$)");
  1211.             a.namespace = a.namespace || d.join(".");
  1212.             f = c._data(this, "events");
  1213.             d = (f || {})[a.type];
  1214.             if (f && d) {
  1215.                 d = d.slice(0);
  1216.                 f = 0;
  1217.                 for (var g = d.length; f < g; f++) {
  1218.                     var i =
  1219.                         d[f];
  1220.                     if (b || e.test(i.namespace)) {
  1221.                         a.handler = i.handler;
  1222.                         a.data = i.data;
  1223.                         a.handleObj = i;
  1224.                         i = i.handler.apply(this, h);
  1225.                         if (i !== m) a.result = i, i === !1 && (a.preventDefault(), a.stopPropagation());
  1226.                         if (a.isImmediatePropagationStopped()) break
  1227.                     }
  1228.                 }
  1229.             }
  1230.             return a.result
  1231.         },
  1232.         props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
  1233.         fix: function(a) {
  1234.             if (a[c.expando]) return a;
  1235.             for (var b = a, a = c.Event(b), d = this.props.length, e; d;) e = this.props[--d], a[e] = b[e];
  1236.             if (!a.target) a.target = a.srcElement || j;
  1237.             if (a.target.nodeType === 3) a.target = a.target.parentNode;
  1238.             if (!a.relatedTarget && a.fromElement) a.relatedTarget = a.fromElement === a.target ? a.toElement : a.fromElement;
  1239.             if (a.pageX == null && a.clientX != null) b = j.documentElement, d = j.body, a.pageX = a.clientX + (b && b.scrollLeft || d && d.scrollLeft || 0) - (b && b.clientLeft || d && d.clientLeft || 0), a.pageY = a.clientY + (b && b.scrollTop ||
  1240.                 d && d.scrollTop || 0) - (b && b.clientTop || d && d.clientTop || 0);
  1241.             if (a.which == null && (a.charCode != null || a.keyCode != null)) a.which = a.charCode != null ? a.charCode : a.keyCode;
  1242.             if (!a.metaKey && a.ctrlKey) a.metaKey = a.ctrlKey;
  1243.             if (!a.which && a.button !== m) a.which = a.button & 1 ? 1 : a.button & 2 ? 3 : a.button & 4 ? 2 : 0;
  1244.             return a
  1245.         },
  1246.         guid: 1E8,
  1247.         proxy: c.proxy,
  1248.         special: {
  1249.             ready: {
  1250.                 setup: c.bindReady,
  1251.                 teardown: c.noop
  1252.             },
  1253.             live: {
  1254.                 add: function(a) {
  1255.                     c.event.add(this, T(a.origType, a.selector), c.extend({}, a, {
  1256.                         handler: Sa,
  1257.                         guid: a.handler.guid
  1258.                     }))
  1259.                 },
  1260.                 remove: function(a) {
  1261.                     c.event.remove(this,
  1262.                         T(a.origType, a.selector), a)
  1263.                 }
  1264.             },
  1265.             beforeunload: {
  1266.                 setup: function(a, b, d) {
  1267.                     if (c.isWindow(this)) this.onbeforeunload = d
  1268.                 },
  1269.                 teardown: function(a, b) {
  1270.                     if (this.onbeforeunload === b) this.onbeforeunload = null
  1271.                 }
  1272.             }
  1273.         }
  1274.     };
  1275.     c.removeEvent = j.removeEventListener ? function(a, b, c) {
  1276.         a.removeEventListener && a.removeEventListener(b, c, !1)
  1277.     } : function(a, b, c) {
  1278.         a.detachEvent && a.detachEvent("on" + b, c)
  1279.     };
  1280.     c.Event = function(a) {
  1281.         if (!this.preventDefault) return new c.Event(a);
  1282.         a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented ||
  1283.             a.returnValue === !1 || a.getPreventDefault && a.getPreventDefault() ? H : F) : this.type = a;
  1284.         this.timeStamp = c.now();
  1285.         this[c.expando] = !0
  1286.     };
  1287.     c.Event.prototype = {
  1288.         preventDefault: function() {
  1289.             this.isDefaultPrevented = H;
  1290.             var a = this.originalEvent;
  1291.             if (a) a.preventDefault ? a.preventDefault() : a.returnValue = !1
  1292.         },
  1293.         stopPropagation: function() {
  1294.             this.isPropagationStopped = H;
  1295.             var a = this.originalEvent;
  1296.             if (a) a.stopPropagation && a.stopPropagation(), a.cancelBubble = !0
  1297.         },
  1298.         stopImmediatePropagation: function() {
  1299.             this.isImmediatePropagationStopped = H;
  1300.             this.stopPropagation()
  1301.         },
  1302.         isDefaultPrevented: F,
  1303.         isPropagationStopped: F,
  1304.         isImmediatePropagationStopped: F
  1305.     };
  1306.     var Ba = function(a) {
  1307.             var b = a.relatedTarget;
  1308.             try {
  1309.                 if (b === j || b.parentNode) {
  1310.                     for (; b && b !== this;) b = b.parentNode;
  1311.                     if (b !== this) a.type = a.data, c.event.handle.apply(this, arguments)
  1312.                 }
  1313.             } catch (d) {}
  1314.         },
  1315.         Ca = function(a) {
  1316.             a.type = a.data;
  1317.             c.event.handle.apply(this, arguments)
  1318.         };
  1319.     c.each({
  1320.         mouseenter: "mouseover",
  1321.         mouseleave: "mouseout"
  1322.     }, function(a, b) {
  1323.         c.event.special[a] = {
  1324.             setup: function(d) {
  1325.                 c.event.add(this, b, d && d.selector ? Ca : Ba, a)
  1326.             },
  1327.             teardown: function(a) {
  1328.                 c.event.remove(this,
  1329.                     b, a && a.selector ? Ca : Ba)
  1330.             }
  1331.         }
  1332.     });
  1333.     if (!c.support.submitBubbles) c.event.special.submit = {
  1334.         setup: function() {
  1335.             if (this.nodeName && this.nodeName.toLowerCase() !== "form") c.event.add(this, "click.specialSubmit", function(a) {
  1336.                 var b = a.target,
  1337.                     d = b.type;
  1338.                 (d === "submit" || d === "image") && c(b).closest("form").length && ma("submit", this, arguments)
  1339.             }), c.event.add(this, "keypress.specialSubmit", function(a) {
  1340.                 var b = a.target,
  1341.                     d = b.type;
  1342.                 (d === "text" || d === "password") && c(b).closest("form").length && a.keyCode === 13 && ma("submit", this, arguments)
  1343.             });
  1344.             else return !1
  1345.         },
  1346.         teardown: function() {
  1347.             c.event.remove(this, ".specialSubmit")
  1348.         }
  1349.     };
  1350.     if (!c.support.changeBubbles) {
  1351.         var M, Da = function(a) {
  1352.                 var b = a.type,
  1353.                     d = a.value;
  1354.                 if (b === "radio" || b === "checkbox") d = a.checked;
  1355.                 else if (b === "select-multiple") d = a.selectedIndex > -1 ? c.map(a.options, function(a) {
  1356.                     return a.selected
  1357.                 }).join("-") : "";
  1358.                 else if (a.nodeName.toLowerCase() === "select") d = a.selectedIndex;
  1359.                 return d
  1360.             },
  1361.             W = function(a, b) {
  1362.                 var d = a.target,
  1363.                     e, f;
  1364.                 if (ja.test(d.nodeName) && !d.readOnly && (e = c._data(d, "_change_data"), f = Da(d), (a.type !== "focusout" || d.type !== "radio") &&
  1365.                         c._data(d, "_change_data", f), !(e === m || f === e)))
  1366.                     if (e != null || f) a.type = "change", a.liveFired = m, c.event.trigger(a, b, d)
  1367.             };
  1368.         c.event.special.change = {
  1369.             filters: {
  1370.                 focusout: W,
  1371.                 beforedeactivate: W,
  1372.                 click: function(a) {
  1373.                     var b = a.target,
  1374.                         c = b.type;
  1375.                     (c === "radio" || c === "checkbox" || b.nodeName.toLowerCase() === "select") && W.call(this, a)
  1376.                 },
  1377.                 keydown: function(a) {
  1378.                     var b = a.target,
  1379.                         c = b.type;
  1380.                     (a.keyCode === 13 && b.nodeName.toLowerCase() !== "textarea" || a.keyCode === 32 && (c === "checkbox" || c === "radio") || c === "select-multiple") && W.call(this, a)
  1381.                 },
  1382.                 beforeactivate: function(a) {
  1383.                     a =
  1384.                         a.target;
  1385.                     c._data(a, "_change_data", Da(a))
  1386.                 }
  1387.             },
  1388.             setup: function() {
  1389.                 if (this.type === "file") return !1;
  1390.                 for (var a in M) c.event.add(this, a + ".specialChange", M[a]);
  1391.                 return ja.test(this.nodeName)
  1392.             },
  1393.             teardown: function() {
  1394.                 c.event.remove(this, ".specialChange");
  1395.                 return ja.test(this.nodeName)
  1396.             }
  1397.         };
  1398.         M = c.event.special.change.filters;
  1399.         M.focus = M.beforeactivate
  1400.     }
  1401.     j.addEventListener && c.each({
  1402.         focus: "focusin",
  1403.         blur: "focusout"
  1404.     }, function(a, b) {
  1405.         function d(a) {
  1406.             a = c.event.fix(a);
  1407.             a.type = b;
  1408.             return c.event.handle.call(this, a)
  1409.         }
  1410.         c.event.special[b] = {
  1411.             setup: function() {
  1412.                 this.addEventListener(a,
  1413.                     d, !0)
  1414.             },
  1415.             teardown: function() {
  1416.                 this.removeEventListener(a, d, !0)
  1417.             }
  1418.         }
  1419.     });
  1420.     c.each(["bind", "one"], function(a, b) {
  1421.         c.fn[b] = function(a, e, f) {
  1422.             if (typeof a === "object") {
  1423.                 for (var h in a) this[b](h, e, a[h], f);
  1424.                 return this
  1425.             }
  1426.             if (c.isFunction(e) || e === !1) f = e, e = m;
  1427.             var g = b === "one" ? c.proxy(f, function(a) {
  1428.                 c(this).unbind(a, g);
  1429.                 return f.apply(this, arguments)
  1430.             }) : f;
  1431.             if (a === "unload" && b !== "one") this.one(a, e, f);
  1432.             else {
  1433.                 h = 0;
  1434.                 for (var i = this.length; h < i; h++) c.event.add(this[h], a, g, e)
  1435.             }
  1436.             return this
  1437.         }
  1438.     });
  1439.     c.fn.extend({
  1440.         unbind: function(a, b) {
  1441.             if (typeof a === "object" &&
  1442.                 !a.preventDefault)
  1443.                 for (var d in a) this.unbind(d, a[d]);
  1444.             else {
  1445.                 d = 0;
  1446.                 for (var e = this.length; d < e; d++) c.event.remove(this[d], a, b)
  1447.             }
  1448.             return this
  1449.         },
  1450.         delegate: function(a, b, c, e) {
  1451.             return this.live(b, c, e, a)
  1452.         },
  1453.         undelegate: function(a, b, c) {
  1454.             return arguments.length === 0 ? this.unbind("live") : this.die(b, null, c, a)
  1455.         },
  1456.         trigger: function(a, b) {
  1457.             return this.each(function() {
  1458.                 c.event.trigger(a, b, this)
  1459.             })
  1460.         },
  1461.         triggerHandler: function(a, b) {
  1462.             if (this[0]) {
  1463.                 var d = c.Event(a);
  1464.                 d.preventDefault();
  1465.                 d.stopPropagation();
  1466.                 c.event.trigger(d, b, this[0]);
  1467.                 return d.result
  1468.             }
  1469.         },
  1470.         toggle: function(a) {
  1471.             for (var b = arguments, d = 1; d < b.length;) c.proxy(a, b[d++]);
  1472.             return this.click(c.proxy(a, function(e) {
  1473.                 var f = (c._data(this, "lastToggle" + a.guid) || 0) % d;
  1474.                 c._data(this, "lastToggle" + a.guid, f + 1);
  1475.                 e.preventDefault();
  1476.                 return b[f].apply(this, arguments) || !1
  1477.             }))
  1478.         },
  1479.         hover: function(a, b) {
  1480.             return this.mouseenter(a).mouseleave(b || a)
  1481.         }
  1482.     });
  1483.     var Ea = {
  1484.         focus: "focusin",
  1485.         blur: "focusout",
  1486.         mouseenter: "mouseover",
  1487.         mouseleave: "mouseout"
  1488.     };
  1489.     c.each(["live", "die"], function(a, b) {
  1490.         c.fn[b] = function(a, e, f, h) {
  1491.             var g, i = 0,
  1492.                 l, k, j = h || this.selector,
  1493.                 h = h ? this : c(this.context);
  1494.             if (typeof a === "object" && !a.preventDefault) {
  1495.                 for (g in a) h[b](g, e, a[g], j);
  1496.                 return this
  1497.             }
  1498.             c.isFunction(e) && (f = e, e = m);
  1499.             for (a = (a || "").split(" ");
  1500.                 (g = a[i++]) != null;)
  1501.                 if (l = O.exec(g), k = "", l && (k = l[0], g = g.replace(O, "")), g === "hover") a.push("mouseenter" + k, "mouseleave" + k);
  1502.                 else if (l = g, g === "focus" || g === "blur" ? (a.push(Ea[g] + k), g += k) : g = (Ea[g] || g) + k, b === "live") {
  1503.                 k = 0;
  1504.                 for (var q = h.length; k < q; k++) c.event.add(h[k], "live." + T(g, j), {
  1505.                     data: e,
  1506.                     selector: j,
  1507.                     handler: f,
  1508.                     origType: g,
  1509.                     origHandler: f,
  1510.                     preType: l
  1511.                 })
  1512.             } else h.unbind("live." +
  1513.                 T(g, j), f);
  1514.             return this
  1515.         }
  1516.     });
  1517.     c.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".split(" "), function(a, b) {
  1518.         c.fn[b] = function(a, c) {
  1519.             c == null && (c = a, a = null);
  1520.             return arguments.length > 0 ? this.bind(b, a, c) : this.trigger(b)
  1521.         };
  1522.         c.attrFn && (c.attrFn[b] = !0)
  1523.     });
  1524.     (function() {
  1525.         function a(a, b, c, d, e, f) {
  1526.             for (var e = 0, h = d.length; e < h; e++) {
  1527.                 var g = d[e];
  1528.                 if (g) {
  1529.                     for (var i = !1, g = g[a]; g;) {
  1530.                         if (g.sizcache ===
  1531.                             c) {
  1532.                             i = d[g.sizset];
  1533.                             break
  1534.                         }
  1535.                         if (g.nodeType === 1 && !f) g.sizcache = c, g.sizset = e;
  1536.                         if (g.nodeName.toLowerCase() === b) {
  1537.                             i = g;
  1538.                             break
  1539.                         }
  1540.                         g = g[a]
  1541.                     }
  1542.                     d[e] = i
  1543.                 }
  1544.             }
  1545.         }
  1546.  
  1547.         function b(a, b, c, d, e, f) {
  1548.             for (var e = 0, h = d.length; e < h; e++) {
  1549.                 var g = d[e];
  1550.                 if (g) {
  1551.                     for (var i = !1, g = g[a]; g;) {
  1552.                         if (g.sizcache === c) {
  1553.                             i = d[g.sizset];
  1554.                             break
  1555.                         }
  1556.                         if (g.nodeType === 1) {
  1557.                             if (!f) g.sizcache = c, g.sizset = e;
  1558.                             if (typeof b !== "string") {
  1559.                                 if (g === b) {
  1560.                                     i = !0;
  1561.                                     break
  1562.                                 }
  1563.                             } else if (k.filter(b, [g]).length > 0) {
  1564.                                 i = g;
  1565.                                 break
  1566.                             }
  1567.                         }
  1568.                         g = g[a]
  1569.                     }
  1570.                     d[e] = i
  1571.                 }
  1572.             }
  1573.         }
  1574.         var d = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
  1575.             e = 0,
  1576.             f = Object.prototype.toString,
  1577.             h = !1,
  1578.             g = !0,
  1579.             i = /\\/g,
  1580.             l = /\W/;
  1581.         [0, 0].sort(function() {
  1582.             g = !1;
  1583.             return 0
  1584.         });
  1585.         var k = function(a, b, c, e) {
  1586.             var c = c || [],
  1587.                 h = b = b || j;
  1588.             if (b.nodeType !== 1 && b.nodeType !== 9) return [];
  1589.             if (!a || typeof a !== "string") return c;
  1590.             var g, i, l, m, p, t = !0,
  1591.                 v = k.isXML(b),
  1592.                 r = [],
  1593.                 w = a;
  1594.             do
  1595.                 if (d.exec(""), g = d.exec(w))
  1596.                     if (w = g[3], r.push(g[1]), g[2]) {
  1597.                         m = g[3];
  1598.                         break
  1599.                     }
  1600.             while (g);
  1601.             if (r.length > 1 && q.exec(a))
  1602.                 if (r.length === 2 && n.relative[r[0]]) i = u(r[0] + r[1], b);
  1603.                 else
  1604.                     for (i = n.relative[r[0]] ? [b] : k(r.shift(), b); r.length;) a = r.shift(), n.relative[a] && (a +=
  1605.                         r.shift()), i = u(a, i);
  1606.             else if (!e && r.length > 1 && b.nodeType === 9 && !v && n.match.ID.test(r[0]) && !n.match.ID.test(r[r.length - 1]) && (g = k.find(r.shift(), b, v), b = g.expr ? k.filter(g.expr, g.set)[0] : g.set[0]), b) {
  1607.                 g = e ? {
  1608.                     expr: r.pop(),
  1609.                     set: s(e)
  1610.                 } : k.find(r.pop(), r.length === 1 && (r[0] === "~" || r[0] === "+") && b.parentNode ? b.parentNode : b, v);
  1611.                 i = g.expr ? k.filter(g.expr, g.set) : g.set;
  1612.                 for (r.length > 0 ? l = s(i) : t = !1; r.length;) g = p = r.pop(), n.relative[p] ? g = r.pop() : p = "", g == null && (g = b), n.relative[p](l, g, v)
  1613.             } else l = [];
  1614.             l || (l = i);
  1615.             l || k.error(p || a);
  1616.             if (f.call(l) ===
  1617.                 "[object Array]")
  1618.                 if (t)
  1619.                     if (b && b.nodeType === 1)
  1620.                         for (a = 0; l[a] != null; a++) l[a] && (l[a] === !0 || l[a].nodeType === 1 && k.contains(b, l[a])) && c.push(i[a]);
  1621.                     else
  1622.                         for (a = 0; l[a] != null; a++) l[a] && l[a].nodeType === 1 && c.push(i[a]);
  1623.             else c.push.apply(c, l);
  1624.             else s(l, c);
  1625.             m && (k(m, h, c, e), k.uniqueSort(c));
  1626.             return c
  1627.         };
  1628.         k.uniqueSort = function(a) {
  1629.             if (t && (h = g, a.sort(t), h))
  1630.                 for (var b = 1; b < a.length; b++) a[b] === a[b - 1] && a.splice(b--, 1);
  1631.             return a
  1632.         };
  1633.         k.matches = function(a, b) {
  1634.             return k(a, null, null, b)
  1635.         };
  1636.         k.matchesSelector = function(a, b) {
  1637.             return k(b, null, null, [a]).length >
  1638.                 0
  1639.         };
  1640.         k.find = function(a, b, c) {
  1641.             var d;
  1642.             if (!a) return [];
  1643.             for (var e = 0, f = n.order.length; e < f; e++) {
  1644.                 var h, g = n.order[e];
  1645.                 if (h = n.leftMatch[g].exec(a)) {
  1646.                     var k = h[1];
  1647.                     h.splice(1, 1);
  1648.                     if (k.substr(k.length - 1) !== "\\" && (h[1] = (h[1] || "").replace(i, ""), d = n.find[g](h, b, c), d != null)) {
  1649.                         a = a.replace(n.match[g], "");
  1650.                         break
  1651.                     }
  1652.                 }
  1653.             }
  1654.             d || (d = typeof b.getElementsByTagName !== "undefined" ? b.getElementsByTagName("*") : []);
  1655.             return {
  1656.                 set: d,
  1657.                 expr: a
  1658.             }
  1659.         };
  1660.         k.filter = function(a, b, c, d) {
  1661.             for (var e, f, h = a, g = [], i = b, l = b && b[0] && k.isXML(b[0]); a && b.length;) {
  1662.                 for (var j in n.filter)
  1663.                     if ((e =
  1664.                             n.leftMatch[j].exec(a)) != null && e[2]) {
  1665.                         var p, r, q = n.filter[j];
  1666.                         r = e[1];
  1667.                         f = !1;
  1668.                         e.splice(1, 1);
  1669.                         if (r.substr(r.length - 1) !== "\\") {
  1670.                             i === g && (g = []);
  1671.                             if (n.preFilter[j])
  1672.                                 if (e = n.preFilter[j](e, i, c, g, d, l)) {
  1673.                                     if (e === !0) continue
  1674.                                 } else f = p = !0;
  1675.                             if (e)
  1676.                                 for (var s = 0;
  1677.                                     (r = i[s]) != null; s++)
  1678.                                     if (r) {
  1679.                                         p = q(r, e, s, i);
  1680.                                         var t = d ^ !!p;
  1681.                                         c && p != null ? t ? f = !0 : i[s] = !1 : t && (g.push(r), f = !0)
  1682.                                     }
  1683.                             if (p !== m) {
  1684.                                 c || (i = g);
  1685.                                 a = a.replace(n.match[j], "");
  1686.                                 if (!f) return [];
  1687.                                 break
  1688.                             }
  1689.                         }
  1690.                     }
  1691.                 if (a === h)
  1692.                     if (f == null) k.error(a);
  1693.                     else break;
  1694.                 h = a
  1695.             }
  1696.             return i
  1697.         };
  1698.         k.error = function(a) {
  1699.             throw "Syntax error, unrecognized expression: " +
  1700.                 a;
  1701.         };
  1702.         var n = k.selectors = {
  1703.                 order: ["ID", "NAME", "TAG"],
  1704.                 match: {
  1705.                     ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
  1706.                     CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
  1707.                     NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
  1708.                     ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,
  1709.                     TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,
  1710.                     CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,
  1711.                     POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
  1712.                     PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
  1713.                 },
  1714.                 leftMatch: {},
  1715.                 attrMap: {
  1716.                     "class": "className",
  1717.                     "for": "htmlFor"
  1718.                 },
  1719.                 attrHandle: {
  1720.                     href: function(a) {
  1721.                         return a.getAttribute("href")
  1722.                     },
  1723.                     type: function(a) {
  1724.                         return a.getAttribute("type")
  1725.                     }
  1726.                 },
  1727.                 relative: {
  1728.                     "+": function(a, b) {
  1729.                         var c = typeof b === "string",
  1730.                             d = c && !l.test(b),
  1731.                             c = c && !d;
  1732.                         d && (b = b.toLowerCase());
  1733.                         for (var d = 0, e = a.length, f; d < e; d++)
  1734.                             if (f = a[d]) {
  1735.                                 for (;
  1736.                                     (f = f.previousSibling) && f.nodeType !== 1;);
  1737.                                 a[d] = c || f && f.nodeName.toLowerCase() === b ? f || !1 : f === b
  1738.                             }
  1739.                         c && k.filter(b,
  1740.                             a, !0)
  1741.                     },
  1742.                     ">": function(a, b) {
  1743.                         var c, d = typeof b === "string",
  1744.                             e = 0,
  1745.                             f = a.length;
  1746.                         if (d && !l.test(b))
  1747.                             for (b = b.toLowerCase(); e < f; e++) {
  1748.                                 if (c = a[e]) c = c.parentNode, a[e] = c.nodeName.toLowerCase() === b ? c : !1
  1749.                             } else {
  1750.                                 for (; e < f; e++)(c = a[e]) && (a[e] = d ? c.parentNode : c.parentNode === b);
  1751.                                 d && k.filter(b, a, !0)
  1752.                             }
  1753.                     },
  1754.                     "": function(c, d, f) {
  1755.                         var h, g = e++,
  1756.                             i = b;
  1757.                         typeof d === "string" && !l.test(d) && (h = d = d.toLowerCase(), i = a);
  1758.                         i("parentNode", d, g, c, h, f)
  1759.                     },
  1760.                     "~": function(c, d, f) {
  1761.                         var h, g = e++,
  1762.                             i = b;
  1763.                         typeof d === "string" && !l.test(d) && (h = d = d.toLowerCase(), i = a);
  1764.                         i("previousSibling",
  1765.                             d, g, c, h, f)
  1766.                     }
  1767.                 },
  1768.                 find: {
  1769.                     ID: function(a, b, c) {
  1770.                         if (typeof b.getElementById !== "undefined" && !c) return (a = b.getElementById(a[1])) && a.parentNode ? [a] : []
  1771.                     },
  1772.                     NAME: function(a, b) {
  1773.                         if (typeof b.getElementsByName !== "undefined") {
  1774.                             for (var c = [], d = b.getElementsByName(a[1]), e = 0, f = d.length; e < f; e++) d[e].getAttribute("name") === a[1] && c.push(d[e]);
  1775.                             return c.length === 0 ? null : c
  1776.                         }
  1777.                     },
  1778.                     TAG: function(a, b) {
  1779.                         if (typeof b.getElementsByTagName !== "undefined") return b.getElementsByTagName(a[1])
  1780.                     }
  1781.                 },
  1782.                 preFilter: {
  1783.                     CLASS: function(a, b, c, d, e, f) {
  1784.                         a = " " + a[1].replace(i,
  1785.                             "") + " ";
  1786.                         if (f) return a;
  1787.                         for (var f = 0, h;
  1788.                             (h = b[f]) != null; f++) h && (e ^ (h.className && (" " + h.className + " ").replace(/[\t\n\r]/g, " ").indexOf(a) >= 0) ? c || d.push(h) : c && (b[f] = !1));
  1789.                         return !1
  1790.                     },
  1791.                     ID: function(a) {
  1792.                         return a[1].replace(i, "")
  1793.                     },
  1794.                     TAG: function(a) {
  1795.                         return a[1].replace(i, "").toLowerCase()
  1796.                     },
  1797.                     CHILD: function(a) {
  1798.                         if (a[1] === "nth") {
  1799.                             a[2] || k.error(a[0]);
  1800.                             a[2] = a[2].replace(/^\+|\s*/g, "");
  1801.                             var b = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2] === "even" && "2n" || a[2] === "odd" && "2n+1" || !/\D/.test(a[2]) && "0n+" + a[2] || a[2]);
  1802.                             a[2] = b[1] + (b[2] || 1) - 0;
  1803.                             a[3] = b[3] - 0
  1804.                         } else a[2] && k.error(a[0]);
  1805.                         a[0] = e++;
  1806.                         return a
  1807.                     },
  1808.                     ATTR: function(a, b, c, d, e, f) {
  1809.                         b = a[1] = a[1].replace(i, "");
  1810.                         !f && n.attrMap[b] && (a[1] = n.attrMap[b]);
  1811.                         a[4] = (a[4] || a[5] || "").replace(i, "");
  1812.                         a[2] === "~=" && (a[4] = " " + a[4] + " ");
  1813.                         return a
  1814.                     },
  1815.                     PSEUDO: function(a, b, c, e, f) {
  1816.                         if (a[1] === "not")
  1817.                             if ((d.exec(a[3]) || "").length > 1 || /^\w/.test(a[3])) a[3] = k(a[3], null, null, b);
  1818.                             else return a = k.filter(a[3], b, c, 1 ^ f), c || e.push.apply(e, a), !1;
  1819.                         else if (n.match.POS.test(a[0]) || n.match.CHILD.test(a[0])) return !0;
  1820.                         return a
  1821.                     },
  1822.                     POS: function(a) {
  1823.                         a.unshift(!0);
  1824.                         return a
  1825.                     }
  1826.                 },
  1827.                 filters: {
  1828.                     enabled: function(a) {
  1829.                         return a.disabled === !1 && a.type !== "hidden"
  1830.                     },
  1831.                     disabled: function(a) {
  1832.                         return a.disabled === !0
  1833.                     },
  1834.                     checked: function(a) {
  1835.                         return a.checked === !0
  1836.                     },
  1837.                     selected: function(a) {
  1838.                         return a.selected === !0
  1839.                     },
  1840.                     parent: function(a) {
  1841.                         return !!a.firstChild
  1842.                     },
  1843.                     empty: function(a) {
  1844.                         return !a.firstChild
  1845.                     },
  1846.                     has: function(a, b, c) {
  1847.                         return !!k(c[3], a).length
  1848.                     },
  1849.                     header: function(a) {
  1850.                         return /h\d/i.test(a.nodeName)
  1851.                     },
  1852.                     text: function(a) {
  1853.                         return "text" === a.getAttribute("type")
  1854.                     },
  1855.                     radio: function(a) {
  1856.                         return "radio" === a.type
  1857.                     },
  1858.                     checkbox: function(a) {
  1859.                         return "checkbox" ===
  1860.                             a.type
  1861.                     },
  1862.                     file: function(a) {
  1863.                         return "file" === a.type
  1864.                     },
  1865.                     password: function(a) {
  1866.                         return "password" === a.type
  1867.                     },
  1868.                     submit: function(a) {
  1869.                         return "submit" === a.type
  1870.                     },
  1871.                     image: function(a) {
  1872.                         return "image" === a.type
  1873.                     },
  1874.                     reset: function(a) {
  1875.                         return "reset" === a.type
  1876.                     },
  1877.                     button: function(a) {
  1878.                         return "button" === a.type || a.nodeName.toLowerCase() === "button"
  1879.                     },
  1880.                     input: function(a) {
  1881.                         return /input|select|textarea|button/i.test(a.nodeName)
  1882.                     }
  1883.                 },
  1884.                 setFilters: {
  1885.                     first: function(a, b) {
  1886.                         return b === 0
  1887.                     },
  1888.                     last: function(a, b, c, d) {
  1889.                         return b === d.length - 1
  1890.                     },
  1891.                     even: function(a, b) {
  1892.                         return b % 2 ===
  1893.                             0
  1894.                     },
  1895.                     odd: function(a, b) {
  1896.                         return b % 2 === 1
  1897.                     },
  1898.                     lt: function(a, b, c) {
  1899.                         return b < c[3] - 0
  1900.                     },
  1901.                     gt: function(a, b, c) {
  1902.                         return b > c[3] - 0
  1903.                     },
  1904.                     nth: function(a, b, c) {
  1905.                         return c[3] - 0 === b
  1906.                     },
  1907.                     eq: function(a, b, c) {
  1908.                         return c[3] - 0 === b
  1909.                     }
  1910.                 },
  1911.                 filter: {
  1912.                     PSEUDO: function(a, b, c, d) {
  1913.                         var e = b[1],
  1914.                             f = n.filters[e];
  1915.                         if (f) return f(a, c,<