editing aXDR cms

Results 1 to 1 of 1
  1. #1
    Apprentice rexto is offline
    MemberRank
    Nov 2013 Join Date
    11Posts

    editing aXDR cms

    I need help with this cms: http://kekomundo.com/foro/index.php?topic=318918.0

    I have to delete this line from the front page.


    I think the key is at the v3_landing_bottom.js file:
    Code:
    (function (e, t) {    function _(e) {
            var t = M[e] = {};
            return v.each(e.split(y), function (e, n) {
                t[n] = !0
            }), t
        }
    
    
        function H(e, n, r) {
            if (r === t && e.nodeType === 1) {
                var i = "data-" + n.replace(P, "-$1").toLowerCase();
                r = e.getAttribute(i);
                if (typeof r == "string") {
                    try {
                        r = r === "true" ? !0 : r === "false" ? !1 : r === "null" ? null : +r + "" === r ? +r : D.test(r) ? v.parseJSON(r) : r
                    } catch (s) {}
                    v.data(e, n, r)
                } else r = t
            }
            return r
        }
    
    
        function B(e) {
            var t;
            for (t in e) {
                if (t === "data" && v.isEmptyObject(e[t])) continue;
                if (t !== "toJSON") return !1
            }
            return !0
        }
    
    
        function et() {
            return !1
        }
    
    
        function tt() {
            return !0
        }
    
    
        function ut(e) {
            return !e || (!e.parentNode || e.parentNode.nodeType === 11)
        }
    
    
        function at(e, t) {
            do e = e[t]; while (e && e.nodeType !== 1);
            return e
        }
    
    
        function ft(e, t, n) {
            t = t || 0;
            if (v.isFunction(t)) return v.grep(e, function (e, r) {
                var i = !!t.call(e, r, e);
                return i === n
            });
            if (t.nodeType) return v.grep(e, function (e, r) {
                return e === t === n
            });
            if (typeof t == "string") {
                var r = v.grep(e, function (e) {
                    return e.nodeType === 1
                });
                if (it.test(t)) return v.filter(t, r, !n);
                t = v.filter(t, r)
            }
            return v.grep(e, function (e, r) {
                return v.inArray(e, t) >= 0 === n
            })
        }
    
    
        function lt(e) {
            var t =
                ct.split("|"),
                n = e.createDocumentFragment();
            if (n.createElement)
                while (t.length) n.createElement(t.pop());
            return n
        }
    
    
        function Lt(e, t) {
            return e.getElementsByTagName(t)[0] || e.appendChild(e.ownerDocument.createElement(t))
        }
    
    
        function At(e, t) {
            if (t.nodeType !== 1 || !v.hasData(e)) return;
            var n, r, i, s = v._data(e),
                o = v._data(t, s),
                u = s.events;
            if (u) {
                delete o.handle, o.events = {};
                for (n in u)
                    for (r = 0, i = u[n].length; r < i; r++) v.event.add(t, n, u[n][r])
            }
            o.data && (o.data = v.extend({}, o.data))
        }
    
    
        function Ot(e, t) {
            var n;
            if (t.nodeType !== 1) return;
            t.clearAttributes && t.clearAttributes(), t.mergeAttributes && t.mergeAttributes(e), n = t.nodeName.toLowerCase(), n === "object" ? (t.parentNode && (t.outerHTML = e.outerHTML), v.support.html5Clone && (e.innerHTML && (!v.trim(t.innerHTML) && (t.innerHTML = e.innerHTML)))) : n === "input" && Et.test(e.type) ? (t.defaultChecked = t.checked = e.checked, t.value !== e.value && (t.value = e.value)) : n === "option" ? t.selected = e.defaultSelected : n === "input" || n === "textarea" ? t.defaultValue = e.defaultValue : n === "script" && (t.text !== e.text && (t.text = e.text)),
            t.removeAttribute(v.expando)
        }
    
    
        function Mt(e) {
            return typeof e.getElementsByTagName != "undefined" ? e.getElementsByTagName("*") : typeof e.querySelectorAll != "undefined" ? e.querySelectorAll("*") : []
        }
    
    
        function _t(e) {
            Et.test(e.type) && (e.defaultChecked = e.checked)
        }
    
    
        function Qt(e, t) {
            if (t in e) return t;
            var n = t.charAt(0).toUpperCase() + t.slice(1),
                r = t,
                i = Jt.length;
            while (i--) {
                t = Jt[i] + n;
                if (t in e) return t
            }
            return r
        }
    
    
        function Gt(e, t) {
            return e = t || e, v.css(e, "display") === "none" || !v.contains(e.ownerDocument, e)
        }
    
    
        function Yt(e, t) {
            var n,
                r, i = [],
                s = 0,
                o = e.length;
            for (; s < o; s++) {
                n = e[s];
                if (!n.style) continue;
                i[s] = v._data(n, "olddisplay"), t ? (!i[s] && (n.style.display === "none" && (n.style.display = "")), n.style.display === "" && (Gt(n) && (i[s] = v._data(n, "olddisplay", nn(n.nodeName))))) : (r = Dt(n, "display"), !i[s] && (r !== "none" && v._data(n, "olddisplay", r)))
            }
            for (s = 0; s < o; s++) {
                n = e[s];
                if (!n.style) continue;
                if (!t || (n.style.display === "none" || n.style.display === "")) n.style.display = t ? i[s] || "" : "none"
            }
            return e
        }
    
    
        function Zt(e, t, n) {
            var r = Rt.exec(t);
            return r ? Math.max(0, r[1] -
                (n || 0)) + (r[2] || "px") : t
        }
    
    
        function en(e, t, n, r) {
            var i = n === (r ? "border" : "content") ? 4 : t === "width" ? 1 : 0,
                s = 0;
            for (; i < 4; i += 2) n === "margin" && (s += v.css(e, n + $t[i], !0)), r ? (n === "content" && (s -= parseFloat(Dt(e, "padding" + $t[i])) || 0), n !== "margin" && (s -= parseFloat(Dt(e, "border" + $t[i] + "Width")) || 0)) : (s += parseFloat(Dt(e, "padding" + $t[i])) || 0, n !== "padding" && (s += parseFloat(Dt(e, "border" + $t[i] + "Width")) || 0));
            return s
        }
    
    
        function tn(e, t, n) {
            var r = t === "width" ? e.offsetWidth : e.offsetHeight,
                i = !0,
                s = v.support.boxSizing && v.css(e, "boxSizing") ===
                "border-box";
            if (r <= 0 || r == null) {
                r = Dt(e, t);
                if (r < 0 || r == null) r = e.style[t];
                if (Ut.test(r)) return r;
                i = s && (v.support.boxSizingReliable || r === e.style[t]), r = parseFloat(r) || 0
            }
            return r + en(e, t, n || (s ? "border" : "content"), i) + "px"
        }
    
    
        function nn(e) {
            if (Wt[e]) return Wt[e];
            var t = v("<" + e + ">").appendTo(i.body),
                n = t.css("display");
            t.remove();
            if (n === "none" || n === "") {
                Pt = i.body.appendChild(Pt || v.extend(i.createElement("iframe"), {
                    frameBorder: 0,
                    width: 0,
                    height: 0
                }));
                if (!Ht || !Pt.createElement) Ht = (Pt.contentWindow || Pt.contentDocument).document,
                    Ht.write("<!doctype html><html><body>"), Ht.close();
                t = Ht.body.appendChild(Ht.createElement(e)), n = Dt(t, "display"), i.body.removeChild(Pt)
            }
            return Wt[e] = n, n
        }
    
    
        function fn(e, t, n, r) {
            var i;
            if (v.isArray(t)) v.each(t, function (t, i) {
                n || sn.test(e) ? r(e, i) : fn(e + "[" + (typeof i == "object" ? t : "") + "]", i, n, r)
            });
            else if (!n && v.type(t) === "object")
                for (i in t) fn(e + "[" + i + "]", t[i], n, r);
            else r(e, t)
        }
    
    
        function Cn(e) {
            return function (t, n) {
                typeof t != "string" && (n = t, t = "*");
                var r, i, s, o = t.toLowerCase().split(y),
                    u = 0,
                    a = o.length;
                if (v.isFunction(n))
                    for (; u <
                        a; u++) r = o[u], s = /^\+/.test(r), s && (r = r.substr(1) || "*"), i = e[r] = e[r] || [], i[s ? "unshift" : "push"](n)
            }
        }
    
    
        function kn(e, n, r, i, s, o) {
            s = s || n.dataTypes[0], o = o || {}, o[s] = !0;
            var u, a = e[s],
                f = 0,
                l = a ? a.length : 0,
                c = e === Sn;
            for (; f < l && (c || !u); f++) u = a[f](n, r, i), typeof u == "string" && (!c || o[u] ? u = t : (n.dataTypes.unshift(u), u = kn(e, n, r, i, u, o)));
            return (c || !u) && (!o["*"] && (u = kn(e, n, r, i, "*", o))), u
        }
    
    
        function Ln(e, n) {
            var r, i, s = v.ajaxSettings.flatOptions || {};
            for (r in n) n[r] !== t && ((s[r] ? e : i || (i = {}))[r] = n[r]);
            i && v.extend(!0, e, i)
        }
    
    
        function An(e,
            n, r) {
            var i, s, o, u, a = e.contents,
                f = e.dataTypes,
                l = e.responseFields;
            for (s in l) s in r && (n[l[s]] = r[s]);
            while (f[0] === "*") f.shift(), i === t && (i = e.mimeType || n.getResponseHeader("content-type"));
            if (i)
                for (s in a)
                    if (a[s] && a[s].test(i)) {
                        f.unshift(s);
                        break
                    }
            if (f[0] in r) o = f[0];
            else {
                for (s in r) {
                    if (!f[0] || e.converters[s + " " + f[0]]) {
                        o = s;
                        break
                    }
                    u || (u = s)
                }
                o = o || u
            } if (o) return o !== f[0] && f.unshift(o), r[o]
        }
    
    
        function On(e, t) {
            var n, r, i, s, o = e.dataTypes.slice(),
                u = o[0],
                a = {},
                f = 0;
            e.dataFilter && (t = e.dataFilter(t, e.dataType));
            if (o[1])
                for (n in e.converters) a[n.toLowerCase()] =
                    e.converters[n];
            for (; i = o[++f];)
                if (i !== "*") {
                    if (u !== "*" && u !== i) {
                        n = a[u + " " + i] || a["* " + i];
                        if (!n)
                            for (r in a) {
                                s = r.split(" ");
                                if (s[1] === i) {
                                    n = a[u + " " + s[0]] || a["* " + s[0]];
                                    if (n) {
                                        n === !0 ? n = a[r] : a[r] !== !0 && (i = s[0], o.splice(f--, 0, i));
                                        break
                                    }
                                }
                            }
                        if (n !== !0)
                            if (n && e["throws"]) t = n(t);
                            else try {
                                t = n(t)
                            } catch (l) {
                                return {
                                    state: "parsererror",
                                    error: n ? l : "No conversion from " + u + " to " + i
                                }
                            }
                    }
                    u = i
                }
            return {
                state: "success",
                data: t
            }
        }
    
    
        function Fn() {
            try {
                return new e.XMLHttpRequest
            } catch (t) {}
        }
    
    
        function In() {
            try {
                return new e.ActiveXObject("Microsoft.XMLHTTP")
            } catch (t) {}
        }
    
    
        function $n() {
            return setTimeout(function () {
                qn = t
            }, 0), qn = v.now()
        }
    
    
        function Jn(e, t) {
            v.each(t, function (t, n) {
                var r = (Vn[t] || []).concat(Vn["*"]),
                    i = 0,
                    s = r.length;
                for (; i < s; i++)
                    if (r[i].call(e, t, n)) return
            })
        }
    
    
        function Kn(e, t, n) {
            var r, i = 0,
                s = 0,
                o = Xn.length,
                u = v.Deferred().always(function () {
                    delete a.elem
                }),
                a = function () {
                    var t = qn || $n(),
                        n = Math.max(0, f.startTime + f.duration - t),
                        r = n / f.duration || 0,
                        i = 1 - r,
                        s = 0,
                        o = f.tweens.length;
                    for (; s < o; s++) f.tweens[s].run(i);
                    return u.notifyWith(e, [f, i, n]), i < 1 && o ? n : (u.resolveWith(e, [f]), !1)
                },
                f =
                u.promise({
                    elem: e,
                    props: v.extend({}, t),
                    opts: v.extend(!0, {
                        specialEasing: {}
                    }, n),
                    originalProperties: t,
                    originalOptions: n,
                    startTime: qn || $n(),
                    duration: n.duration,
                    tweens: [],
                    createTween: function (t, n, r) {
                        var i = v.Tween(e, f.opts, t, n, f.opts.specialEasing[t] || f.opts.easing);
                        return f.tweens.push(i), i
                    },
                    stop: function (t) {
                        var n = 0,
                            r = t ? f.tweens.length : 0;
                        for (; n < r; n++) f.tweens[n].run(1);
                        return t ? u.resolveWith(e, [f, t]) : u.rejectWith(e, [f, t]), this
                    }
                }),
                l = f.props;
            Qn(l, f.opts.specialEasing);
            for (; i < o; i++) {
                r = Xn[i].call(f, e, l, f.opts);
                if (r) return r
            }
            return Jn(f, l), v.isFunction(f.opts.start) && f.opts.start.call(e, f), v.fx.timer(v.extend(a, {
                anim: f,
                queue: f.opts.queue,
                elem: e
            })), f.progress(f.opts.progress).done(f.opts.done, f.opts.complete).fail(f.opts.fail).always(f.opts.always)
        }
    
    
        function Qn(e, t) {
            var n, r, i, s, o;
            for (n in e) {
                r = v.camelCase(n), i = t[r], s = e[n], v.isArray(s) && (i = s[1], s = e[n] = s[0]), n !== r && (e[r] = s, delete e[n]), o = v.cssHooks[r];
                if (o && "expand" in o) {
                    s = o.expand(s), delete e[r];
                    for (n in s) n in e || (e[n] = s[n], t[n] = i)
                } else t[r] = i
            }
        }
    
    
        function Gn(e,
            t, n) {
            var r, i, s, o, u, a, f, l, c, h = this,
                p = e.style,
                d = {},
                m = [],
                g = e.nodeType && Gt(e);
            n.queue || (l = v._queueHooks(e, "fx"), l.unqueued == null && (l.unqueued = 0, c = l.empty.fire, l.empty.fire = function () {
                l.unqueued || c()
            }), l.unqueued++, h.always(function () {
                h.always(function () {
                    l.unqueued--, v.queue(e, "fx").length || l.empty.fire()
                })
            })), e.nodeType === 1 && (("height" in t || "width" in t) && (n.overflow = [p.overflow, p.overflowX, p.overflowY], v.css(e, "display") === "inline" && (v.css(e, "float") === "none" && (!v.support.inlineBlockNeedsLayout || nn(e.nodeName) ===
                "inline" ? p.display = "inline-block" : p.zoom = 1)))), n.overflow && (p.overflow = "hidden", v.support.shrinkWrapBlocks || h.done(function () {
                p.overflow = n.overflow[0], p.overflowX = n.overflow[1], p.overflowY = n.overflow[2]
            }));
            for (r in t) {
                s = t[r];
                if (Un.exec(s)) {
                    delete t[r], a = a || s === "toggle";
                    if (s === (g ? "hide" : "show")) continue;
                    m.push(r)
                }
            }
            o = m.length;
            if (o) {
                u = v._data(e, "fxshow") || v._data(e, "fxshow", {}), "hidden" in u && (g = u.hidden), a && (u.hidden = !g), g ? v(e).show() : h.done(function () {
                    v(e).hide()
                }), h.done(function () {
                    var t;
                    v.removeData(e,
                        "fxshow", !0);
                    for (t in d) v.style(e, t, d[t])
                });
                for (r = 0; r < o; r++) i = m[r], f = h.createTween(i, g ? u[i] : 0), d[i] = u[i] || v.style(e, i), i in u || (u[i] = f.start, g && (f.end = f.start, f.start = i === "width" || i === "height" ? 1 : 0))
            }
        }
    
    
        function Yn(e, t, n, r, i) {
            return new Yn.prototype.init(e, t, n, r, i)
        }
    
    
        function Zn(e, t) {
            var n, r = {
                    height: e
                },
                i = 0;
            t = t ? 1 : 0;
            for (; i < 4; i += 2 - t) n = $t[i], r["margin" + n] = r["padding" + n] = e;
            return t && (r.opacity = r.width = e), r
        }
    
    
        function tr(e) {
            return v.isWindow(e) ? e : e.nodeType === 9 ? e.defaultView || e.parentWindow : !1
        }
        var n, r, i = e.document,
            s = e.location,
            o = e.navigator,
            u = e.jQuery,
            a = e.$,
            f = Array.prototype.push,
            l = Array.prototype.slice,
            c = Array.prototype.indexOf,
            h = Object.prototype.toString,
            p = Object.prototype.hasOwnProperty,
            d = String.prototype.trim,
            v = function (e, t) {
                return new v.fn.init(e, t, n)
            },
            m = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,
            g = /\S/,
            y = /\s+/,
            b = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
            w = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
            E = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
            S = /^[\],:{}\s]*$/,
            x = /(?:^|:|,)(?:\s*\[)+/g,
            T = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
            N = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,
            C = /^-ms-/,
            k = /-([\da-z])/gi,
            L = function (e, t) {
                return (t + "").toUpperCase()
            },
            A = function () {
                i.addEventListener ? (i.removeEventListener("DOMContentLoaded", A, !1), v.ready()) : i.readyState === "complete" && (i.detachEvent("onreadystatechange", A), v.ready())
            },
            O = {};
        v.fn = v.prototype = {
            constructor: v,
            init: function (e, n, r) {
                var s, o, u, a;
                if (!e) return this;
                if (e.nodeType) return this.context = this[0] = e, this.length = 1, this;
                if (typeof e == "string") {
                    e.charAt(0) === "<" &&
                        (e.charAt(e.length - 1) === ">" && e.length >= 3) ? s = [null, e, null] : s = w.exec(e);
                    if (s && (s[1] || !n)) {
                        if (s[1]) return n = n instanceof v ? n[0] : n, a = n && n.nodeType ? n.ownerDocument || n : i, e = v.parseHTML(s[1], a, !0), E.test(s[1]) && (v.isPlainObject(n) && this.attr.call(e, n, !0)), v.merge(this, e);
                        o = i.getElementById(s[2]);
                        if (o && o.parentNode) {
                            if (o.id !== s[2]) return r.find(e);
                            this.length = 1, this[0] = o
                        }
                        return this.context = i, this.selector = e, this
                    }
                    return !n || n.jquery ? (n || r).find(e) : this.constructor(n).find(e)
                }
                return v.isFunction(e) ? r.ready(e) :
                    (e.selector !== t && (this.selector = e.selector, this.context = e.context), v.makeArray(e, this))
            },
            selector: "",
            jquery: "1.8.3",
            length: 0,
            size: function () {
                return this.length
            },
            toArray: function () {
                return l.call(this)
            },
            get: function (e) {
                return e == null ? this.toArray() : e < 0 ? this[this.length + e] : this[e]
            },
            pushStack: function (e, t, n) {
                var r = v.merge(this.constructor(), e);
                return r.prevObject = this, r.context = this.context, t === "find" ? r.selector = this.selector + (this.selector ? " " : "") + n : t && (r.selector = this.selector + "." + t + "(" + n + ")"), r
            },
            each: function (e,
                t) {
                return v.each(this, e, t)
            },
            ready: function (e) {
                return v.ready.promise().done(e), this
            },
            eq: function (e) {
                return e = +e, e === -1 ? this.slice(e) : this.slice(e, e + 1)
            },
            first: function () {
                return this.eq(0)
            },
            last: function () {
                return this.eq(-1)
            },
            slice: function () {
                return this.pushStack(l.apply(this, arguments), "slice", l.call(arguments).join(","))
            },
            map: function (e) {
                return this.pushStack(v.map(this, function (t, n) {
                    return e.call(t, n, t)
                }))
            },
            end: function () {
                return this.prevObject || this.constructor(null)
            },
            push: f,
            sort: [].sort,
            splice: [].splice
        },
        v.fn.init.prototype = v.fn, v.extend = v.fn.extend = function () {
            var e, n, r, i, s, o, u = arguments[0] || {},
                a = 1,
                f = arguments.length,
                l = !1;
            typeof u == "boolean" && (l = u, u = arguments[1] || {}, a = 2), typeof u != "object" && (!v.isFunction(u) && (u = {})), f === a && (u = this, --a);
            for (; a < f; a++)
                if ((e = arguments[a]) != null)
                    for (n in e) {
                        r = u[n], i = e[n];
                        if (u === i) continue;
                        l && (i && (v.isPlainObject(i) || (s = v.isArray(i)))) ? (s ? (s = !1, o = r && v.isArray(r) ? r : []) : o = r && v.isPlainObject(r) ? r : {}, u[n] = v.extend(l, o, i)) : i !== t && (u[n] = i)
                    }
                return u
        }, v.extend({
            noConflict: function (t) {
                return e.$ ===
                    v && (e.$ = a), t && (e.jQuery === v && (e.jQuery = u)), v
            },
            isReady: !1,
            readyWait: 1,
            holdReady: function (e) {
                e ? v.readyWait++ : v.ready(!0)
            },
            ready: function (e) {
                if (e === !0 ? --v.readyWait : v.isReady) return;
                if (!i.body) return setTimeout(v.ready, 1);
                v.isReady = !0;
                if (e !== !0 && --v.readyWait > 0) return;
                r.resolveWith(i, [v]), v.fn.trigger && v(i).trigger("ready").off("ready")
            },
            isFunction: function (e) {
                return v.type(e) === "function"
            },
            isArray: Array.isArray || function (e) {
                return v.type(e) === "array"
            },
            isWindow: function (e) {
                return e != null && e == e.window
            },
            isNumeric: function (e) {
                return !isNaN(parseFloat(e)) && isFinite(e)
            },
            type: function (e) {
                return e == null ? String(e) : O[h.call(e)] || "object"
            },
            isPlainObject: function (e) {
                if (!e || (v.type(e) !== "object" || (e.nodeType || v.isWindow(e)))) return !1;
                try {
                    if (e.constructor && (!p.call(e, "constructor") && !p.call(e.constructor.prototype, "isPrototypeOf"))) return !1
                } catch (n) {
                    return !1
                }
                var r;
                for (r in e);
                return r === t || p.call(e, r)
            },
            isEmptyObject: function (e) {
                var t;
                for (t in e) return !1;
                return !0
            },
            error: function (e) {
                throw new Error(e);
            },
            parseHTML: function (e,
                t, n) {
                var r;
                return !e || typeof e != "string" ? null : (typeof t == "boolean" && (n = t, t = 0), t = t || i, (r = E.exec(e)) ? [t.createElement(r[1])] : (r = v.buildFragment([e], t, n ? null : []), v.merge([], (r.cacheable ? v.clone(r.fragment) : r.fragment).childNodes)))
            },
            parseJSON: function (t) {
                if (!t || typeof t != "string") return null;
                t = v.trim(t);
                if (e.JSON && e.JSON.parse) return e.JSON.parse(t);
                if (S.test(t.replace(T, "@").replace(N, "]").replace(x, ""))) return (new Function("return " + t))();
                v.error("Invalid JSON: " + t)
            },
            parseXML: function (n) {
                var r, i;
                if (!n ||
                    typeof n != "string") return null;
                try {
                    e.DOMParser ? (i = new DOMParser, r = i.parseFromString(n, "text/xml")) : (r = new ActiveXObject("Microsoft.XMLDOM"), r.async = "false", r.loadXML(n))
                } catch (s) {
                    r = t
                }
                return (!r || (!r.documentElement || r.getElementsByTagName("parsererror").length)) && v.error("Invalid XML: " + n), r
            },
            noop: function () {},
            globalEval: function (t) {
                t && (g.test(t) && (e.execScript || function (t) {
                    e.eval.call(e, t)
                })(t))
            },
            camelCase: function (e) {
                return e.replace(C, "ms-").replace(k, L)
            },
            nodeName: function (e, t) {
                return e.nodeName &&
                    e.nodeName.toLowerCase() === t.toLowerCase()
            },
            each: function (e, n, r) {
                var i, s = 0,
                    o = e.length,
                    u = o === t || v.isFunction(e);
                if (r)
                    if (u)
                        for (i in e) {
                            if (n.apply(e[i], r) === !1) break
                        } else
                            for (; s < o;) {
                                if (n.apply(e[s++], r) === !1) break
                            } else if (u)
                                for (i in e) {
                                    if (n.call(e[i], i, e[i]) === !1) break
                                } else
                                    for (; s < o;)
                                        if (n.call(e[s], s, e[s++]) === !1) break;
                return e
            },
            trim: d && !d.call("\ufeff\u00a0") ? function (e) {
                return e == null ? "" : d.call(e)
            } : function (e) {
                return e == null ? "" : (e + "").replace(b, "")
            },
            makeArray: function (e, t) {
                var n, r = t || [];
                return e !=
                    null && (n = v.type(e), e.length == null || (n === "string" || (n === "function" || (n === "regexp" || v.isWindow(e)))) ? f.call(r, e) : v.merge(r, e)), r
            },
            inArray: function (e, t, n) {
                var r;
                if (t) {
                    if (c) return c.call(t, e, n);
                    r = t.length, n = n ? n < 0 ? Math.max(0, r + n) : n : 0;
                    for (; n < r; n++)
                        if (n in t && t[n] === e) return n
                }
                return -1
            },
            merge: function (e, n) {
                var r = n.length,
                    i = e.length,
                    s = 0;
                if (typeof r == "number")
                    for (; s < r; s++) e[i++] = n[s];
                else
                    while (n[s] !== t) e[i++] = n[s++];
                return e.length = i, e
            },
            grep: function (e, t, n) {
                var r, i = [],
                    s = 0,
                    o = e.length;
                n = !!n;
                for (; s < o; s++) r = !!t(e[s], s), n !== r && i.push(e[s]);
                return i
            },
            map: function (e, n, r) {
                var i, s, o = [],
                    u = 0,
                    a = e.length,
                    f = e instanceof v || a !== t && (typeof a == "number" && (a > 0 && (e[0] && e[a - 1]) || (a === 0 || v.isArray(e))));
                if (f)
                    for (; u < a; u++) i = n(e[u], u, r), i != null && (o[o.length] = i);
                else
                    for (s in e) i = n(e[s], s, r), i != null && (o[o.length] = i);
                return o.concat.apply([], o)
            },
            guid: 1,
            proxy: function (e, n) {
                var r, i, s;
                return typeof n == "string" && (r = e[n], n = e, e = r), v.isFunction(e) ? (i = l.call(arguments, 2), s = function () {
                        return e.apply(n, i.concat(l.call(arguments)))
                    },
                    s.guid = e.guid = e.guid || v.guid++, s) : t
            },
            access: function (e, n, r, i, s, o, u) {
                var a, f = r == null,
                    l = 0,
                    c = e.length;
                if (r && typeof r == "object") {
                    for (l in r) v.access(e, n, l, r[l], 1, o, i);
                    s = 1
                } else if (i !== t) {
                    a = u === t && v.isFunction(i), f && (a ? (a = n, n = function (e, t, n) {
                        return a.call(v(e), n)
                    }) : (n.call(e, i), n = null));
                    if (n)
                        for (; l < c; l++) n(e[l], r, a ? i.call(e[l], l, n(e[l], r)) : i, u);
                    s = 1
                }
                return s ? e : f ? n.call(e) : c ? n(e[0], r) : o
            },
            now: function () {
                return (new Date).getTime()
            }
        }), v.ready.promise = function (t) {
            if (!r) {
                r = v.Deferred();
                if (i.readyState === "complete") setTimeout(v.ready,
                    1);
                else if (i.addEventListener) i.addEventListener("DOMContentLoaded", A, !1), e.addEventListener("load", v.ready, !1);
                else {
                    i.attachEvent("onreadystatechange", A), e.attachEvent("onload", v.ready);
                    var n = !1;
                    try {
                        n = e.frameElement == null && i.documentElement
                    } catch (s) {}
                    n && (n.doScroll && function o() {
                        if (!v.isReady) {
                            try {
                                n.doScroll("left")
                            } catch (e) {
                                return setTimeout(o, 50)
                            }
                            v.ready()
                        }
                    }())
                }
            }
            return r.promise(t)
        }, v.each("Boolean Number String Function Array Date RegExp Object".split(" "), function (e, t) {
            O["[object " + t + "]"] = t.toLowerCase()
        }),
        n = v(i);
        var M = {};
        v.Callbacks = function (e) {
            e = typeof e == "string" ? M[e] || _(e) : v.extend({}, e);
            var n, r, i, s, o, u, a = [],
                f = !e.once && [],
                l = function (t) {
                    n = e.memory && t, r = !0, u = s || 0, s = 0, o = a.length, i = !0;
                    for (; a && u < o; u++)
                        if (a[u].apply(t[0], t[1]) === !1 && e.stopOnFalse) {
                            n = !1;
                            break
                        }
                    i = !1, a && (f ? f.length && l(f.shift()) : n ? a = [] : c.disable())
                },
                c = {
                    add: function () {
                        if (a) {
                            var t = a.length;
                            (function r(t) {
                                v.each(t, function (t, n) {
                                    var i = v.type(n);
                                    i === "function" ? (!e.unique || !c.has(n)) && a.push(n) : n && (n.length && (i !== "string" && r(n)))
                                })
                            })(arguments),
                            i ? o = a.length : n && (s = t, l(n))
                        }
                        return this
                    },
                    remove: function () {
                        return a && v.each(arguments, function (e, t) {
                            var n;
                            while ((n = v.inArray(t, a, n)) > -1) a.splice(n, 1), i && (n <= o && o--, n <= u && u--)
                        }), this
                    },
                    has: function (e) {
                        return v.inArray(e, a) > -1
                    },
                    empty: function () {
                        return a = [], this
                    },
                    disable: function () {
                        return a = f = n = t, this
                    },
                    disabled: function () {
                        return !a
                    },
                    lock: function () {
                        return f = t, n || c.disable(), this
                    },
                    locked: function () {
                        return !f
                    },
                    fireWith: function (e, t) {
                        return t = t || [], t = [e, t.slice ? t.slice() : t], a && ((!r || f) && (i ? f.push(t) : l(t))),
                            this
                    },
                    fire: function () {
                        return c.fireWith(this, arguments), this
                    },
                    fired: function () {
                        return !!r
                    }
                };
            return c
        }, v.extend({
            Deferred: function (e) {
                var t = [
                        ["resolve", "done", v.Callbacks("once memory"), "resolved"],
                        ["reject", "fail", v.Callbacks("once memory"), "rejected"],
                        ["notify", "progress", v.Callbacks("memory")]
                    ],
                    n = "pending",
                    r = {
                        state: function () {
                            return n
                        },
                        always: function () {
                            return i.done(arguments).fail(arguments), this
                        },
                        then: function () {
                            var e = arguments;
                            return v.Deferred(function (n) {
                                v.each(t, function (t, r) {
                                    var s = r[0],
                                        o =
                                        e[t];
                                    i[r[1]](v.isFunction(o) ? function () {
                                        var e = o.apply(this, arguments);
                                        e && v.isFunction(e.promise) ? e.promise().done(n.resolve).fail(n.reject).progress(n.notify) : n[s + "With"](this === i ? n : this, [e])
                                    } : n[s])
                                }), e = null
                            }).promise()
                        },
                        promise: function (e) {
                            return e != null ? v.extend(e, r) : r
                        }
                    },
                    i = {};
                return r.pipe = r.then, v.each(t, function (e, s) {
                    var o = s[2],
                        u = s[3];
                    r[s[1]] = o.add, u && o.add(function () {
                        n = u
                    }, t[e ^ 1][2].disable, t[2][2].lock), i[s[0]] = o.fire, i[s[0] + "With"] = o.fireWith
                }), r.promise(i), e && e.call(i, i), i
            },
            when: function (e) {
                var t =
                    0,
                    n = l.call(arguments),
                    r = n.length,
                    i = r !== 1 || e && v.isFunction(e.promise) ? r : 0,
                    s = i === 1 ? e : v.Deferred(),
                    o = function (e, t, n) {
                        return function (r) {
                            t[e] = this, n[e] = arguments.length > 1 ? l.call(arguments) : r, n === u ? s.notifyWith(t, n) : --i || s.resolveWith(t, n)
                        }
                    },
                    u, a, f;
                if (r > 1) {
                    u = new Array(r), a = new Array(r), f = new Array(r);
                    for (; t < r; t++) n[t] && v.isFunction(n[t].promise) ? n[t].promise().done(o(t, f, n)).fail(s.reject).progress(o(t, a, u)) : --i
                }
                return i || s.resolveWith(f, n), s.promise()
            }
        }), v.support = function () {
            var t, n, r, s, o, u, a, f, l, c, h,
                p = i.createElement("div");
            p.setAttribute("className", "t"), p.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", n = p.getElementsByTagName("*"), r = p.getElementsByTagName("a")[0];
            if (!n || (!r || !n.length)) return {};
            s = i.createElement("select"), o = s.appendChild(i.createElement("option")), u = p.getElementsByTagName("input")[0], r.style.cssText = "top:1px;float:left;opacity:.5", t = {
                leadingWhitespace: p.firstChild.nodeType === 3,
                tbody: !p.getElementsByTagName("tbody").length,
                htmlSerialize: !!p.getElementsByTagName("link").length,
                style: /top/.test(r.getAttribute("style")),
                hrefNormalized: r.getAttribute("href") === "/a",
                opacity: /^0.5/.test(r.style.opacity),
                cssFloat: !!r.style.cssFloat,
                checkOn: u.value === "on",
                optSelected: o.selected,
                getSetAttribute: p.className !== "t",
                enctype: !!i.createElement("form").enctype,
                html5Clone: i.createElement("nav").cloneNode(!0).outerHTML !== "<:nav></:nav>",
                boxModel: i.compatMode === "CSS1Compat",
                submitBubbles: !0,
                changeBubbles: !0,
                focusinBubbles: !1,
                deleteExpando: !0,
                noCloneEvent: !0,
                inlineBlockNeedsLayout: !1,
                shrinkWrapBlocks: !1,
                reliableMarginRight: !0,
                boxSizingReliable: !0,
                pixelPosition: !1
            }, u.checked = !0, t.noCloneChecked = u.cloneNode(!0).checked, s.disabled = !0, t.optDisabled = !o.disabled;
            try {
                delete p.test
            } catch (d) {
                t.deleteExpando = !1
            }!p.addEventListener && (p.attachEvent && (p.fireEvent && (p.attachEvent("onclick", h = function () {
                t.noCloneEvent = !1
            }), p.cloneNode(!0).fireEvent("onclick"), p.detachEvent("onclick", h)))), u = i.createElement("input"), u.value = "t", u.setAttribute("type", "radio"), t.radioValue = u.value === "t", u.setAttribute("checked", "checked"),
            u.setAttribute("name", "t"), p.appendChild(u), a = i.createDocumentFragment(), a.appendChild(p.lastChild), t.checkClone = a.cloneNode(!0).cloneNode(!0).lastChild.checked, t.appendChecked = u.checked, a.removeChild(u), a.appendChild(p);
            if (p.attachEvent)
                for (l in {
                    submit: !0,
                    change: !0,
                    focusin: !0
                }) f = "on" + l, c = f in p, c || (p.setAttribute(f, "return;"), c = typeof p[f] == "function"), t[l + "Bubbles"] = c;
            return v(function () {
                    var n, r, s, o, u = "padding:0;margin:0;border:0;display:block;overflow:hidden;",
                        a = i.getElementsByTagName("body")[0];
                    if (!a) return;
                    n = i.createElement("div"), n.style.cssText = "visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px", a.insertBefore(n, a.firstChild), r = i.createElement("div"), n.appendChild(r), r.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", s = r.getElementsByTagName("td"), s[0].style.cssText = "padding:0;margin:0;border:0;display:none", c = s[0].offsetHeight === 0, s[0].style.display = "", s[1].style.display = "none", t.reliableHiddenOffsets = c && s[0].offsetHeight === 0, r.innerHTML = "", r.style.cssText =
                        "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;", t.boxSizing = r.offsetWidth === 4, t.doesNotIncludeMarginInBodyOffset = a.offsetTop !== 1, e.getComputedStyle && (t.pixelPosition = (e.getComputedStyle(r, null) || {}).top !== "1%", t.boxSizingReliable = (e.getComputedStyle(r, null) || {
                                width: "4px"
                            }).width === "4px", o = i.createElement("div"), o.style.cssText = r.style.cssText = u, o.style.marginRight = o.style.width =
                            "0", r.style.width = "1px", r.appendChild(o), t.reliableMarginRight = !parseFloat((e.getComputedStyle(o, null) || {}).marginRight)), typeof r.style.zoom != "undefined" && (r.innerHTML = "", r.style.cssText = u + "width:1px;padding:1px;display:inline;zoom:1", t.inlineBlockNeedsLayout = r.offsetWidth === 3, r.style.display = "block", r.style.overflow = "visible", r.innerHTML = "<div></div>", r.firstChild.style.width = "5px", t.shrinkWrapBlocks = r.offsetWidth !== 3, n.style.zoom = 1), a.removeChild(n), n = r = s = o = null
                }), a.removeChild(p), n = r = s = o = u = a =
                p = null, t
        }();
        var D = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/,
            P = /([A-Z])/g;
        v.extend({
            cache: {},
            deletedIds: [],
            uuid: 0,
            expando: "jQuery" + (v.fn.jquery + Math.random()).replace(/\D/g, ""),
            noData: {
                embed: !0,
                object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
                applet: !0
            },
            hasData: function (e) {
                return e = e.nodeType ? v.cache[e[v.expando]] : e[v.expando], !!e && !B(e)
            },
            data: function (e, n, r, i) {
                if (!v.acceptData(e)) return;
                var s, o, u = v.expando,
                    a = typeof n == "string",
                    f = e.nodeType,
                    l = f ? v.cache : e,
                    c = f ? e[u] : e[u] && u;
                if ((!c || (!l[c] || !i && !l[c].data)) &&
                    (a && r === t)) return;
                c || (f ? e[u] = c = v.deletedIds.pop() || v.guid++ : c = u), l[c] || (l[c] = {}, f || (l[c].toJSON = v.noop));
                if (typeof n == "object" || typeof n == "function") i ? l[c] = v.extend(l[c], n) : l[c].data = v.extend(l[c].data, n);
                return s = l[c], i || (s.data || (s.data = {}), s = s.data), r !== t && (s[v.camelCase(n)] = r), a ? (o = s[n], o == null && (o = s[v.camelCase(n)])) : o = s, o
            },
            removeData: function (e, t, n) {
                if (!v.acceptData(e)) return;
                var r, i, s, o = e.nodeType,
                    u = o ? v.cache : e,
                    a = o ? e[v.expando] : v.expando;
                if (!u[a]) return;
                if (t) {
                    r = n ? u[a] : u[a].data;
                    if (r) {
                        v.isArray(t) ||
                            (t in r ? t = [t] : (t = v.camelCase(t), t in r ? t = [t] : t = t.split(" ")));
                        for (i = 0, s = t.length; i < s; i++) delete r[t[i]];
                        if (!(n ? B : v.isEmptyObject)(r)) return
                    }
                }
                if (!n) {
                    delete u[a].data;
                    if (!B(u[a])) return
                }
                o ? v.cleanData([e], !0) : v.support.deleteExpando || u != u.window ? delete u[a] : u[a] = null
            },
            _data: function (e, t, n) {
                return v.data(e, t, n, !0)
            },
            acceptData: function (e) {
                var t = e.nodeName && v.noData[e.nodeName.toLowerCase()];
                return !t || t !== !0 && e.getAttribute("classid") === t
            }
        }), v.fn.extend({
            data: function (e, n) {
                var r, i, s, o, u, a = this[0],
                    f = 0,
                    l =
                    null;
                if (e === t) {
                    if (this.length) {
                        l = v.data(a);
                        if (a.nodeType === 1 && !v._data(a, "parsedAttrs")) {
                            s = a.attributes;
                            for (u = s.length; f < u; f++) o = s[f].name, o.indexOf("data-") || (o = v.camelCase(o.substring(5)), H(a, o, l[o]));
                            v._data(a, "parsedAttrs", !0)
                        }
                    }
                    return l
                }
                return typeof e == "object" ? this.each(function () {
                    v.data(this, e)
                }) : (r = e.split(".", 2), r[1] = r[1] ? "." + r[1] : "", i = r[1] + "!", v.access(this, function (n) {
                    if (n === t) return l = this.triggerHandler("getData" + i, [r[0]]), l === t && (a && (l = v.data(a, e), l = H(a, e, l))), l === t && r[1] ? this.data(r[0]) :
                        l;
                    r[1] = n, this.each(function () {
                        var t = v(this);
                        t.triggerHandler("setData" + i, r), v.data(this, e, n), t.triggerHandler("changeData" + i, r)
                    })
                }, null, n, arguments.length > 1, null, !1))
            },
            removeData: function (e) {
                return this.each(function () {
                    v.removeData(this, e)
                })
            }
        }), v.extend({
            queue: function (e, t, n) {
                var r;
                if (e) return t = (t || "fx") + "queue", r = v._data(e, t), n && (!r || v.isArray(n) ? r = v._data(e, t, v.makeArray(n)) : r.push(n)), r || []
            },
            dequeue: function (e, t) {
                t = t || "fx";
                var n = v.queue(e, t),
                    r = n.length,
                    i = n.shift(),
                    s = v._queueHooks(e, t),
                    o = function () {
                        v.dequeue(e,
                            t)
                    };
                i === "inprogress" && (i = n.shift(), r--), i && (t === "fx" && n.unshift("inprogress"), delete s.stop, i.call(e, o, s)), !r && (s && s.empty.fire())
            },
            _queueHooks: function (e, t) {
                var n = t + "queueHooks";
                return v._data(e, n) || v._data(e, n, {
                    empty: v.Callbacks("once memory").add(function () {
                        v.removeData(e, t + "queue", !0), v.removeData(e, n, !0)
                    })
                })
            }
        }), v.fn.extend({
            queue: function (e, n) {
                var r = 2;
                return typeof e != "string" && (n = e, e = "fx", r--), arguments.length < r ? v.queue(this[0], e) : n === t ? this : this.each(function () {
                    var t = v.queue(this, e, n);
                    v._queueHooks(this,
                        e), e === "fx" && (t[0] !== "inprogress" && v.dequeue(this, e))
                })
            },
            dequeue: function (e) {
                return this.each(function () {
                    v.dequeue(this, e)
                })
            },
            delay: function (e, t) {
                return e = v.fx ? v.fx.speeds[e] || e : e, t = t || "fx", this.queue(t, function (t, n) {
                    var r = setTimeout(t, e);
                    n.stop = function () {
                        clearTimeout(r)
                    }
                })
            },
            clearQueue: function (e) {
                return this.queue(e || "fx", [])
            },
            promise: function (e, n) {
                var r, i = 1,
                    s = v.Deferred(),
                    o = this,
                    u = this.length,
                    a = function () {
                        --i || s.resolveWith(o, [o])
                    };
                typeof e != "string" && (n = e, e = t), e = e || "fx";
                while (u--) r = v._data(o[u],
                    e + "queueHooks"), r && (r.empty && (i++, r.empty.add(a)));
                return a(), s.promise(n)
            }
        });
        var j, F, I, q = /[\t\r\n]/g,
            R = /\r/g,
            U = /^(?:button|input)$/i,
            z = /^(?:button|input|object|select|textarea)$/i,
            W = /^a(?:rea|)$/i,
            X = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
            V = v.support.getSetAttribute;
        v.fn.extend({
            attr: function (e, t) {
                return v.access(this, v.attr, e, t, arguments.length > 1)
            },
            removeAttr: function (e) {
                return this.each(function () {
                    v.removeAttr(this,
                        e)
                })
            },
            prop: function (e, t) {
                return v.access(this, v.prop, e, t, arguments.length > 1)
            },
            removeProp: function (e) {
                return e = v.propFix[e] || e, this.each(function () {
                    try {
                        this[e] = t, delete this[e]
                    } catch (n) {}
                })
            },
            addClass: function (e) {
                var t, n, r, i, s, o, u;
                if (v.isFunction(e)) return this.each(function (t) {
                    v(this).addClass(e.call(this, t, this.className))
                });
                if (e && typeof e == "string") {
                    t = e.split(y);
                    for (n = 0, r = this.length; n < r; n++) {
                        i = this[n];
                        if (i.nodeType === 1)
                            if (!i.className && t.length === 1) i.className = e;
                            else {
                                s = " " + i.className + " ";
                                for (o =
                                    0, u = t.length; o < u; o++) s.indexOf(" " + t[o] + " ") < 0 && (s += t[o] + " ");
                                i.className = v.trim(s)
                            }
                    }
                }
                return this
            },
            removeClass: function (e) {
                var n, r, i, s, o, u, a;
                if (v.isFunction(e)) return this.each(function (t) {
                    v(this).removeClass(e.call(this, t, this.className))
                });
                if (e && typeof e == "string" || e === t) {
                    n = (e || "").split(y);
                    for (u = 0, a = this.length; u < a; u++) {
                        i = this[u];
                        if (i.nodeType === 1 && i.className) {
                            r = (" " + i.className + " ").replace(q, " ");
                            for (s = 0, o = n.length; s < o; s++)
                                while (r.indexOf(" " + n[s] + " ") >= 0) r = r.replace(" " + n[s] + " ", " ");
                            i.className =
                                e ? v.trim(r) : ""
                        }
                    }
                }
                return this
            },
            toggleClass: function (e, t) {
                var n = typeof e,
                    r = typeof t == "boolean";
                return v.isFunction(e) ? this.each(function (n) {
                    v(this).toggleClass(e.call(this, n, this.className, t), t)
                }) : this.each(function () {
                    if (n === "string") {
                        var i, s = 0,
                            o = v(this),
                            u = t,
                            a = e.split(y);
                        while (i = a[s++]) u = r ? u : !o.hasClass(i), o[u ? "addClass" : "removeClass"](i)
                    } else if (n === "undefined" || n === "boolean") this.className && v._data(this, "__className__", this.className), this.className = this.className || e === !1 ? "" : v._data(this, "__className__") ||
                        ""
                })
            },
            hasClass: function (e) {
                var t = " " + e + " ",
                    n = 0,
                    r = this.length;
                for (; n < r; n++)
                    if (this[n].nodeType === 1 && (" " + this[n].className + " ").replace(q, " ").indexOf(t) >= 0) return !0;
                return !1
            },
            val: function (e) {
                var n, r, i, s = this[0];
                if (!arguments.length) {
                    if (s) return n = v.valHooks[s.type] || v.valHooks[s.nodeName.toLowerCase()], n && ("get" in n && (r = n.get(s, "value")) !== t) ? r : (r = s.value, typeof r == "string" ? r.replace(R, "") : r == null ? "" : r);
                    return
                }
                return i = v.isFunction(e), this.each(function (r) {
                    var s, o = v(this);
                    if (this.nodeType !== 1) return;
                    i ? s = e.call(this, r, o.val()) : s = e, s == null ? s = "" : typeof s == "number" ? s += "" : v.isArray(s) && (s = v.map(s, function (e) {
                        return e == null ? "" : e + ""
                    })), n = v.valHooks[this.type] || v.valHooks[this.nodeName.toLowerCase()];
                    if (!n || (!("set" in n) || n.set(this, s, "value") === t)) this.value = s
                })
            }
        }), v.extend({
            valHooks: {
                option: {
                    get: function (e) {
                        var t = e.attributes.value;
                        return !t || t.specified ? e.value : e.text
                    }
                },
                select: {
                    get: function (e) {
                        var t, n, r = e.options,
                            i = e.selectedIndex,
                            s = e.type === "select-one" || i < 0,
                            o = s ? null : [],
                            u = s ? i + 1 : r.length,
                            a = i < 0 ? u : s ?
                            i : 0;
                        for (; a < u; a++) {
                            n = r[a];
                            if ((n.selected || a === i) && ((v.support.optDisabled ? !n.disabled : n.getAttribute("disabled") === null) && (!n.parentNode.disabled || !v.nodeName(n.parentNode, "optgroup")))) {
                                t = v(n).val();
                                if (s) return t;
                                o.push(t)
                            }
                        }
                        return o
                    },
                    set: function (e, t) {
                        var n = v.makeArray(t);
                        return v(e).find("option").each(function () {
                            this.selected = v.inArray(v(this).val(), n) >= 0
                        }), n.length || (e.selectedIndex = -1), n
                    }
                }
            },
            attrFn: {},
            attr: function (e, n, r, i) {
                var s, o, u, a = e.nodeType;
                if (!e || (a === 3 || (a === 8 || a === 2))) return;
                if (i && v.isFunction(v.fn[n])) return v(e)[n](r);
                if (typeof e.getAttribute == "undefined") return v.prop(e, n, r);
                u = a !== 1 || !v.isXMLDoc(e), u && (n = n.toLowerCase(), o = v.attrHooks[n] || (X.test(n) ? F : j));
                if (r !== t) {
                    if (r === null) {
                        v.removeAttr(e, n);
                        return
                    }
                    return o && ("set" in o && (u && (s = o.set(e, r, n)) !== t)) ? s : (e.setAttribute(n, r + ""), r)
                }
                return o && ("get" in o && (u && (s = o.get(e, n)) !== null)) ? s : (s = e.getAttribute(n), s === null ? t : s)
            },
            removeAttr: function (e, t) {
                var n, r, i, s, o = 0;
                if (t && e.nodeType === 1) {
                    r = t.split(y);
                    for (; o < r.length; o++) i = r[o], i && (n = v.propFix[i] || i, s = X.test(i), s || v.attr(e,
                        i, ""), e.removeAttribute(V ? i : n), s && (n in e && (e[n] = !1)))
                }
            },
            attrHooks: {
                type: {
                    set: function (e, t) {
                        if (U.test(e.nodeName) && e.parentNode) v.error("type property can't be changed");
                        else if (!v.support.radioValue && (t === "radio" && v.nodeName(e, "input"))) {
                            var n = e.value;
                            return e.setAttribute("type", t), n && (e.value = n), t
                        }
                    }
                },
                value: {
                    get: function (e, t) {
                        return j && v.nodeName(e, "button") ? j.get(e, t) : t in e ? e.value : null
                    },
                    set: function (e, t, n) {
                        if (j && v.nodeName(e, "button")) return j.set(e, t, n);
                        e.value = t
                    }
                }
            },
            propFix: {
                tabindex: "tabIndex",
                readonly: "readOnly",
                "for": "htmlFor",
                "class": "className",
                maxlength: "maxLength",
                cellspacing: "cellSpacing",
                cellpadding: "cellPadding",
                rowspan: "rowSpan",
                colspan: "colSpan",
                usemap: "useMap",
                frameborder: "frameBorder",
                contenteditable: "contentEditable"
            },
            prop: function (e, n, r) {
                var i, s, o, u = e.nodeType;
                if (!e || (u === 3 || (u === 8 || u === 2))) return;
                return o = u !== 1 || !v.isXMLDoc(e), o && (n = v.propFix[n] || n, s = v.propHooks[n]), r !== t ? s && ("set" in s && (i = s.set(e, r, n)) !== t) ? i : e[n] = r : s && ("get" in s && (i = s.get(e, n)) !== null) ? i : e[n]
            },
            propHooks: {
                tabIndex: {
                    get: function (e) {
                        var n =
                            e.getAttributeNode("tabindex");
                        return n && n.specified ? parseInt(n.value, 10) : z.test(e.nodeName) || W.test(e.nodeName) && e.href ? 0 : t
                    }
                }
            }
        }), F = {
            get: function (e, n) {
                var r, i = v.prop(e, n);
                return i === !0 || typeof i != "boolean" && ((r = e.getAttributeNode(n)) && r.nodeValue !== !1) ? n.toLowerCase() : t
            },
            set: function (e, t, n) {
                var r;
                return t === !1 ? v.removeAttr(e, n) : (r = v.propFix[n] || n, r in e && (e[r] = !0), e.setAttribute(n, n.toLowerCase())), n
            }
        }, V || (I = {
            name: !0,
            id: !0,
            coords: !0
        }, j = v.valHooks.button = {
            get: function (e, n) {
                var r;
                return r = e.getAttributeNode(n),
                    r && (I[n] ? r.value !== "" : r.specified) ? r.value : t
            },
            set: function (e, t, n) {
                var r = e.getAttributeNode(n);
                return r || (r = i.createAttribute(n), e.setAttributeNode(r)), r.value = t + ""
            }
        }, v.each(["width", "height"], function (e, t) {
            v.attrHooks[t] = v.extend(v.attrHooks[t], {
                set: function (e, n) {
                    if (n === "") return e.setAttribute(t, "auto"), n
                }
            })
        }), v.attrHooks.contenteditable = {
            get: j.get,
            set: function (e, t, n) {
                t === "" && (t = "false"), j.set(e, t, n)
            }
        }), v.support.hrefNormalized || v.each(["href", "src", "width", "height"], function (e, n) {
            v.attrHooks[n] =
                v.extend(v.attrHooks[n], {
                    get: function (e) {
                        var r = e.getAttribute(n, 2);
                        return r === null ? t : r
                    }
                })
        }), v.support.style || (v.attrHooks.style = {
            get: function (e) {
                return e.style.cssText.toLowerCase() || t
            },
            set: function (e, t) {
                return e.style.cssText = t + ""
            }
        }), v.support.optSelected || (v.propHooks.selected = v.extend(v.propHooks.selected, {
            get: function (e) {
                var t = e.parentNode;
                return t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex), null
            }
        })), v.support.enctype || (v.propFix.enctype = "encoding"), v.support.checkOn || v.each(["radio",
            "checkbox"
        ], function () {
            v.valHooks[this] = {
                get: function (e) {
                    return e.getAttribute("value") === null ? "on" : e.value
                }
            }
        }), v.each(["radio", "checkbox"], function () {
            v.valHooks[this] = v.extend(v.valHooks[this], {
                set: function (e, t) {
                    if (v.isArray(t)) return e.checked = v.inArray(v(e).val(), t) >= 0
                }
            })
        });
        var $ = /^(?:textarea|input|select)$/i,
            J = /^([^\.]*|)(?:\.(.+)|)$/,
            K = /(?:^|\s)hover(\.\S+|)\b/,
            Q = /^key/,
            G = /^(?:mouse|contextmenu)|click/,
            Y = /^(?:focusinfocus|focusoutblur)$/,
            Z = function (e) {
                return v.event.special.hover ? e : e.replace(K,
                    "mouseenter$1 mouseleave$1")
            };
        v.event = {
            add: function (e, n, r, i, s) {
                var o, u, a, f, l, c, h, p, d, m, g;
                if (e.nodeType === 3 || (e.nodeType === 8 || (!n || (!r || !(o = v._data(e)))))) return;
                r.handler && (d = r, r = d.handler, s = d.selector), r.guid || (r.guid = v.guid++), a = o.events, a || (o.events = a = {}), u = o.handle, u || (o.handle = u = function (e) {
                    return typeof v == "undefined" || !!e && v.event.triggered === e.type ? t : v.event.dispatch.apply(u.elem, arguments)
                }, u.elem = e), n = v.trim(Z(n)).split(" ");
                for (f = 0; f < n.length; f++) {
                    l = J.exec(n[f]) || [], c = l[1], h = (l[2] || "").split(".").sort(),
                    g = v.event.special[c] || {}, c = (s ? g.delegateType : g.bindType) || c, g = v.event.special[c] || {}, p = v.extend({
                        type: c,
                        origType: l[1],
                        data: i,
                        handler: r,
                        guid: r.guid,
                        selector: s,
                        needsContext: s && v.expr.match.needsContext.test(s),
                        namespace: h.join(".")
                    }, d), m = a[c];
                    if (!m) {
                        m = a[c] = [], m.delegateCount = 0;
                        if (!g.setup || g.setup.call(e, i, h, u) === !1) e.addEventListener ? e.addEventListener(c, u, !1) : e.attachEvent && e.attachEvent("on" + c, u)
                    }
                    g.add && (g.add.call(e, p), p.handler.guid || (p.handler.guid = r.guid)), s ? m.splice(m.delegateCount++, 0, p) : m.push(p),
                    v.event.global[c] = !0
                }
                e = null
            },
            global: {},
            remove: function (e, t, n, r, i) {
                var s, o, u, a, f, l, c, h, p, d, m, g = v.hasData(e) && v._data(e);
                if (!g || !(h = g.events)) return;
                t = v.trim(Z(t || "")).split(" ");
                for (s = 0; s < t.length; s++) {
                    o = J.exec(t[s]) || [], u = a = o[1], f = o[2];
                    if (!u) {
                        for (u in h) v.event.remove(e, u + t[s], n, r, !0);
                        continue
                    }
                    p = v.event.special[u] || {}, u = (r ? p.delegateType : p.bindType) || u, d = h[u] || [], l = d.length, f = f ? new RegExp("(^|\\.)" + f.split(".").sort().join("\\.(?:.*\\.|)") + "(\\.|$)") : null;
                    for (c = 0; c < d.length; c++) m = d[c], (i || a === m.origType) &&
                        ((!n || n.guid === m.guid) && ((!f || f.test(m.namespace)) && ((!r || (r === m.selector || r === "**" && m.selector)) && (d.splice(c--, 1), m.selector && d.delegateCount--, p.remove && p.remove.call(e, m)))));
                    d.length === 0 && (l !== d.length && ((!p.teardown || p.teardown.call(e, f, g.handle) === !1) && v.removeEvent(e, u, g.handle), delete h[u]))
                }
                v.isEmptyObject(h) && (delete g.handle, v.removeData(e, "events", !0))
            },
            customEvent: {
                getData: !0,
                setData: !0,
                changeData: !0
            },
            trigger: function (n, r, s, o) {
                if (!s || s.nodeType !== 3 && s.nodeType !== 8) {
                    var u, a, f, l, c, h, p,
                        d, m, g, y = n.type || n,
                        b = [];
                    if (Y.test(y + v.event.triggered)) return;
                    y.indexOf("!") >= 0 && (y = y.slice(0, -1), a = !0), y.indexOf(".") >= 0 && (b = y.split("."), y = b.shift(), b.sort());
                    if ((!s || v.event.customEvent[y]) && !v.event.global[y]) return;
                    n = typeof n == "object" ? n[v.expando] ? n : new v.Event(y, n) : new v.Event(y), n.type = y, n.isTrigger = !0, n.exclusive = a, n.namespace = b.join("."), n.namespace_re = n.namespace ? new RegExp("(^|\\.)" + b.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, h = y.indexOf(":") < 0 ? "on" + y : "";
                    if (!s) {
                        u = v.cache;
                        for (f in u) u[f].events &&
                            (u[f].events[y] && v.event.trigger(n, r, u[f].handle.elem, !0));
                        return
                    }
                    n.result = t, n.target || (n.target = s), r = r != null ? v.makeArray(r) : [], r.unshift(n), p = v.event.special[y] || {};
                    if (p.trigger && p.trigger.apply(s, r) === !1) return;
                    m = [
                        [s, p.bindType || y]
                    ];
                    if (!o && (!p.noBubble && !v.isWindow(s))) {
                        g = p.delegateType || y, l = Y.test(g + y) ? s : s.parentNode;
                        for (c = s; l; l = l.parentNode) m.push([l, g]), c = l;
                        c === (s.ownerDocument || i) && m.push([c.defaultView || (c.parentWindow || e), g])
                    }
                    for (f = 0; f < m.length && !n.isPropagationStopped(); f++) l = m[f][0], n.type =
                        m[f][1], d = (v._data(l, "events") || {})[n.type] && v._data(l, "handle"), d && d.apply(l, r), d = h && l[h], d && (v.acceptData(l) && (d.apply && (d.apply(l, r) === !1 && n.preventDefault())));
                    return n.type = y, !o && (!n.isDefaultPrevented() && ((!p._default || p._default.apply(s.ownerDocument, r) === !1) && ((y !== "click" || !v.nodeName(s, "a")) && (v.acceptData(s) && (h && (s[y] && ((y !== "focus" && y !== "blur" || n.target.offsetWidth !== 0) && (!v.isWindow(s) && (c = s[h], c && (s[h] = null), v.event.triggered = y, s[y](), v.event.triggered = t, c && (s[h] = c)))))))))), n.result
                }
                return
            },
            dispatch: function (n) {
                n = v.event.fix(n || e.event);
                var r, i, s, o, u, a, f, c, h, p, d = (v._data(this, "events") || {})[n.type] || [],
                    m = d.delegateCount,
                    g = l.call(arguments),
                    y = !n.exclusive && !n.namespace,
                    b = v.event.special[n.type] || {},
                    w = [];
                g[0] = n, n.delegateTarget = this;
                if (b.preDispatch && b.preDispatch.call(this, n) === !1) return;
                if (m && (!n.button || n.type !== "click"))
                    for (s = n.target; s != this; s = s.parentNode || this)
                        if (s.disabled !== !0 || n.type !== "click") {
                            u = {}, f = [];
                            for (r = 0; r < m; r++) c = d[r], h = c.selector, u[h] === t && (u[h] = c.needsContext ? v(h,
                                this).index(s) >= 0 : v.find(h, this, null, [s]).length), u[h] && f.push(c);
                            f.length && w.push({
                                elem: s,
                                matches: f
                            })
                        }
                d.length > m && w.push({
                    elem: this,
                    matches: d.slice(m)
                });
                for (r = 0; r < w.length && !n.isPropagationStopped(); r++) {
                    a = w[r], n.currentTarget = a.elem;
                    for (i = 0; i < a.matches.length && !n.isImmediatePropagationStopped(); i++) {
                        c = a.matches[i];
                        if (y || (!n.namespace && !c.namespace || n.namespace_re && n.namespace_re.test(c.namespace))) n.data = c.data, n.handleObj = c, o = ((v.event.special[c.origType] || {}).handle || c.handler).apply(a.elem, g),
                            o !== t && (n.result = o, o === !1 && (n.preventDefault(), n.stopPropagation()))
                    }
                }
                return b.postDispatch && b.postDispatch.call(this, n), n.result
            },
            props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
            fixHooks: {},
            keyHooks: {
                props: "char charCode key keyCode".split(" "),
                filter: function (e, t) {
                    return e.which == null && (e.which = t.charCode != null ? t.charCode : t.keyCode), e
                }
            },
            mouseHooks: {
                props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
                filter: function (e, n) {
                    var r, s, o, u = n.button,
                        a = n.fromElement;
                    return e.pageX == null && (n.clientX != null && (r = e.target.ownerDocument || i, s = r.documentElement, o = r.body, e.pageX = n.clientX + (s && s.scrollLeft || (o && o.scrollLeft || 0)) - (s && s.clientLeft || (o && o.clientLeft || 0)), e.pageY = n.clientY + (s && s.scrollTop || (o && o.scrollTop || 0)) - (s && s.clientTop || (o && o.clientTop || 0)))), !e.relatedTarget && (a && (e.relatedTarget = a === e.target ? n.toElement : a)), !e.which && (u !== t && (e.which = u & 1 ? 1 : u & 2 ? 3 : u & 4 ? 2 : 0)), e
                }
            },
            fix: function (e) {
                if (e[v.expando]) return e;
                var t, n, r = e,
                    s = v.event.fixHooks[e.type] || {},
                    o = s.props ? this.props.concat(s.props) : this.props;
                e = v.Event(r);
                for (t = o.length; t;) n = o[--t], e[n] = r[n];
                return e.target || (e.target = r.srcElement || i), e.target.nodeType === 3 && (e.target = e.target.parentNode), e.metaKey = !!e.metaKey, s.filter ? s.filter(e, r) : e
            },
            special: {
                load: {
                    noBubble: !0
                },
                focus: {
                    delegateType: "focusin"
                },
                blur: {
                    delegateType: "focusout"
                },
                beforeunload: {
                    setup: function (e, t, n) {
                        v.isWindow(this) && (this.onbeforeunload = n)
                    },
                    teardown: function (e, t) {
                        this.onbeforeunload ===
                            t && (this.onbeforeunload = null)
                    }
                }
            },
            simulate: function (e, t, n, r) {
                var i = v.extend(new v.Event, n, {
                    type: e,
                    isSimulated: !0,
                    originalEvent: {}
                });
                r ? v.event.trigger(i, null, t) : v.event.dispatch.call(t, i), i.isDefaultPrevented() && n.preventDefault()
            }
        }, v.event.handle = v.event.dispatch, v.removeEvent = i.removeEventListener ? function (e, t, n) {
            e.removeEventListener && e.removeEventListener(t, n, !1)
        } : function (e, t, n) {
            var r = "on" + t;
            e.detachEvent && (typeof e[r] == "undefined" && (e[r] = null), e.detachEvent(r, n))
        }, v.Event = function (e, t) {
            if (!(this instanceof v.Event)) return new v.Event(e, t);
            e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || (e.returnValue === !1 || e.getPreventDefault && e.getPreventDefault()) ? tt : et) : this.type = e, t && v.extend(this, t), this.timeStamp = e && e.timeStamp || v.now(), this[v.expando] = !0
        }, v.Event.prototype = {
            preventDefault: function () {
                this.isDefaultPrevented = tt;
                var e = this.originalEvent;
                if (!e) return;
                e.preventDefault ? e.preventDefault() : e.returnValue = !1
            },
            stopPropagation: function () {
                this.isPropagationStopped =
                    tt;
                var e = this.originalEvent;
                if (!e) return;
                e.stopPropagation && e.stopPropagation(), e.cancelBubble = !0
            },
            stopImmediatePropagation: function () {
                this.isImmediatePropagationStopped = tt, this.stopPropagation()
            },
            isDefaultPrevented: et,
            isPropagationStopped: et,
            isImmediatePropagationStopped: et
        }, v.each({
            mouseenter: "mouseover",
            mouseleave: "mouseout"
        }, function (e, t) {
            v.event.special[e] = {
                delegateType: t,
                bindType: t,
                handle: function (e) {
                    var n, r = this,
                        i = e.relatedTarget,
                        s = e.handleObj,
                        o = s.selector;
                    if (!i || i !== r && !v.contains(r, i)) e.type =
                        s.origType, n = s.handler.apply(this, arguments), e.type = t;
                    return n
                }
            }
        }), v.support.submitBubbles || (v.event.special.submit = {
            setup: function () {
                if (v.nodeName(this, "form")) return !1;
                v.event.add(this, "click._submit keypress._submit", function (e) {
                    var n = e.target,
                        r = v.nodeName(n, "input") || v.nodeName(n, "button") ? n.form : t;
                    r && (!v._data(r, "_submit_attached") && (v.event.add(r, "submit._submit", function (e) {
                        e._submit_bubble = !0
                    }), v._data(r, "_submit_attached", !0)))
                })
            },
            postDispatch: function (e) {
                e._submit_bubble && (delete e._submit_bubble,
                    this.parentNode && (!e.isTrigger && v.event.simulate("submit", this.parentNode, e, !0)))
            },
            teardown: function () {
                if (v.nodeName(this, "form")) return !1;
                v.event.remove(this, "._submit")
            }
        }), v.support.changeBubbles || (v.event.special.change = {
            setup: function () {
                if ($.test(this.nodeName)) {
                    if (this.type === "checkbox" || this.type === "radio") v.event.add(this, "propertychange._change", function (e) {
                        e.originalEvent.propertyName === "checked" && (this._just_changed = !0)
                    }), v.event.add(this, "click._change", function (e) {
                        this._just_changed &&
                            (!e.isTrigger && (this._just_changed = !1)), v.event.simulate("change", this, e, !0)
                    });
                    return !1
                }
                v.event.add(this, "beforeactivate._change", function (e) {
                    var t = e.target;
                    $.test(t.nodeName) && (!v._data(t, "_change_attached") && (v.event.add(t, "change._change", function (e) {
                        this.parentNode && (!e.isSimulated && (!e.isTrigger && v.event.simulate("change", this.parentNode, e, !0)))
                    }), v._data(t, "_change_attached", !0)))
                })
            },
            handle: function (e) {
                var t = e.target;
                if (this !== t || (e.isSimulated || (e.isTrigger || t.type !== "radio" && t.type !== "checkbox"))) return e.handleObj.handler.apply(this,
                    arguments)
            },
            teardown: function () {
                return v.event.remove(this, "._change"), !$.test(this.nodeName)
            }
        }), v.support.focusinBubbles || v.each({
            focus: "focusin",
            blur: "focusout"
        }, function (e, t) {
            var n = 0,
                r = function (e) {
                    v.event.simulate(t, e.target, v.event.fix(e), !0)
                };
            v.event.special[t] = {
                setup: function () {
                    n++ === 0 && i.addEventListener(e, r, !0)
                },
                teardown: function () {
                    --n === 0 && i.removeEventListener(e, r, !0)
                }
            }
        }), v.fn.extend({
            on: function (e, n, r, i, s) {
                var o, u;
                if (typeof e == "object") {
                    typeof n != "string" && (r = r || n, n = t);
                    for (u in e) this.on(u,
                        n, r, e[u], s);
                    return this
                }
                r == null && i == null ? (i = n, r = n = t) : i == null && (typeof n == "string" ? (i = r, r = t) : (i = r, r = n, n = t));
                if (i === !1) i = et;
                else if (!i) return this;
                return s === 1 && (o = i, i = function (e) {
                    return v().off(e), o.apply(this, arguments)
                }, i.guid = o.guid || (o.guid = v.guid++)), this.each(function () {
                    v.event.add(this, e, i, r, n)
                })
            },
            one: function (e, t, n, r) {
                return this.on(e, t, n, r, 1)
            },
            off: function (e, n, r) {
                var i, s;
                if (e && (e.preventDefault && e.handleObj)) return i = e.handleObj, v(e.delegateTarget).off(i.namespace ? i.origType + "." + i.namespace :
                    i.origType, i.selector, i.handler), this;
                if (typeof e == "object") {
                    for (s in e) this.off(s, n, e[s]);
                    return this
                }
                if (n === !1 || typeof n == "function") r = n, n = t;
                return r === !1 && (r = et), this.each(function () {
                    v.event.remove(this, e, r, n)
                })
            },
            bind: function (e, t, n) {
                return this.on(e, null, t, n)
            },
            unbind: function (e, t) {
                return this.off(e, null, t)
            },
            live: function (e, t, n) {
                return v(this.context).on(e, this.selector, t, n), this
            },
            die: function (e, t) {
                return v(this.context).off(e, this.selector || "**", t), this
            },
            delegate: function (e, t, n, r) {
                return this.on(t,
                    e, n, r)
            },
            undelegate: function (e, t, n) {
                return arguments.length === 1 ? this.off(e, "**") : this.off(t, e || "**", n)
            },
            trigger: function (e, t) {
                return this.each(function () {
                    v.event.trigger(e, t, this)
                })
            },
            triggerHandler: function (e, t) {
                if (this[0]) return v.event.trigger(e, t, this[0], !0)
            },
            toggle: function (e) {
                var t = arguments,
                    n = e.guid || v.guid++,
                    r = 0,
                    i = function (n) {
                        var i = (v._data(this, "lastToggle" + e.guid) || 0) % r;
                        return v._data(this, "lastToggle" + e.guid, i + 1), n.preventDefault(), t[i].apply(this, arguments) || !1
                    };
                i.guid = n;
                while (r < t.length) t[r++].guid =
                    n;
                return this.click(i)
            },
            hover: function (e, t) {
                return this.mouseenter(e).mouseleave(t || e)
            }
        }), v.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function (e, t) {
            v.fn[t] = function (e, n) {
                return n == null && (n = e, e = null), arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t)
            }, Q.test(t) && (v.event.fixHooks[t] = v.event.keyHooks), G.test(t) && (v.event.fixHooks[t] =
                v.event.mouseHooks)
        }),
        function (e, t) {
            function nt(e, t, n, r) {
                n = n || [], t = t || g;
                var i, s, a, f, l = t.nodeType;
                if (!e || typeof e != "string") return n;
                if (l !== 1 && l !== 9) return [];
                a = o(t);
                if (!a && !r)
                    if (i = R.exec(e))
                        if (f = i[1])
                            if (l === 9) {
                                s = t.getElementById(f);
                                if (!s || !s.parentNode) return n;
                                if (s.id === f) return n.push(s), n
                            } else {
                                if (t.ownerDocument && ((s = t.ownerDocument.getElementById(f)) && (u(t, s) && s.id === f))) return n.push(s), n
                            } else {
                    if (i[2]) return S.apply(n, x.call(t.getElementsByTagName(e), 0)), n;
                    if ((f = i[3]) && (Z && t.getElementsByClassName)) return S.apply(n,
                        x.call(t.getElementsByClassName(f), 0)), n
                }
                return vt(e.replace(j, "$1"), t, n, r, a)
            }
    
    
            function rt(e) {
                return function (t) {
                    var n = t.nodeName.toLowerCase();
                    return n === "input" && t.type === e
                }
            }
    
    
            function it(e) {
                return function (t) {
                    var n = t.nodeName.toLowerCase();
                    return (n === "input" || n === "button") && t.type === e
                }
            }
    
    
            function st(e) {
                return N(function (t) {
                    return t = +t, N(function (n, r) {
                        var i, s = e([], n.length, t),
                            o = s.length;
                        while (o--) n[i = s[o]] && (n[i] = !(r[i] = n[i]))
                    })
                })
            }
    
    
            function ot(e, t, n) {
                if (e === t) return n;
                var r = e.nextSibling;
                while (r) {
                    if (r ===
                        t) return -1;
                    r = r.nextSibling
                }
                return 1
            }
    
    
            function ut(e, t) {
                var n, r, s, o, u, a, f, l = L[d][e + " "];
                if (l) return t ? 0 : l.slice(0);
                u = e, a = [], f = i.preFilter;
                while (u) {
                    if (!n || (r = F.exec(u))) r && (u = u.slice(r[0].length) || u), a.push(s = []);
                    n = !1;
                    if (r = I.exec(u)) s.push(n = new m(r.shift())), u = u.slice(n.length), n.type = r[0].replace(j, " ");
                    for (o in i.filter)(r = J[o].exec(u)) && ((!f[o] || (r = f[o](r))) && (s.push(n = new m(r.shift())), u = u.slice(n.length), n.type = o, n.matches = r));
                    if (!n) break
                }
                return t ? u.length : u ? nt.error(e) : L(e, a).slice(0)
            }
    
    
            function at(e,
                t, r) {
                var i = t.dir,
                    s = r && t.dir === "parentNode",
                    o = w++;
                return t.first ? function (t, n, r) {
                    while (t = t[i])
                        if (s || t.nodeType === 1) return e(t, n, r)
                } : function (t, r, u) {
                    if (!u) {
                        var a, f = b + " " + o + " ",
                            l = f + n;
                        while (t = t[i])
                            if (s || t.nodeType === 1) {
                                if ((a = t[d]) === l) return t.sizset;
                                if (typeof a == "string" && a.indexOf(f) === 0) {
                                    if (t.sizset) return t
                                } else {
                                    t[d] = l;
                                    if (e(t, r, u)) return t.sizset = !0, t;
                                    t.sizset = !1
                                }
                            }
                    } else
                        while (t = t[i])
                            if (s || t.nodeType === 1)
                                if (e(t, r, u)) return t
                }
            }
    
    
            function ft(e) {
                return e.length > 1 ? function (t, n, r) {
                    var i = e.length;
                    while (i--)
                        if (!e[i](t,
                            n, r)) return !1;
                    return !0
                } : e[0]
            }
    
    
            function lt(e, t, n, r, i) {
                var s, o = [],
                    u = 0,
                    a = e.length,
                    f = t != null;
                for (; u < a; u++)
                    if (s = e[u])
                        if (!n || n(s, r, i)) o.push(s), f && t.push(u);
                return o
            }
    
    
            function ct(e, t, n, r, i, s) {
                return r && (!r[d] && (r = ct(r))), i && (!i[d] && (i = ct(i, s))), N(function (s, o, u, a) {
                    var f, l, c, h = [],
                        p = [],
                        d = o.length,
                        v = s || dt(t || "*", u.nodeType ? [u] : u, []),
                        m = e && (s || !t) ? lt(v, h, e, u, a) : v,
                        g = n ? i || (s ? e : d || r) ? [] : o : m;
                    n && n(m, g, u, a);
                    if (r) {
                        f = lt(g, p), r(f, [], u, a), l = f.length;
                        while (l--)
                            if (c = f[l]) g[p[l]] = !(m[p[l]] = c)
                    }
                    if (s) {
                        if (i || e) {
                            if (i) {
                                f = [], l = g.length;
                                while (l--)(c = g[l]) && f.push(m[l] = c);
                                i(null, g = [], f, a)
                            }
                            l = g.length;
                            while (l--)(c = g[l]) && ((f = i ? T.call(s, c) : h[l]) > -1 && (s[f] = !(o[f] = c)))
                        }
                    } else g = lt(g === o ? g.splice(d, g.length) : g), i ? i(null, o, g, a) : S.apply(o, g)
                })
            }
    
    
            function ht(e) {
                var t, n, r, s = e.length,
                    o = i.relative[e[0].type],
                    u = o || i.relative[" "],
                    a = o ? 1 : 0,
                    f = at(function (e) {
                        return e === t
                    }, u, !0),
                    l = at(function (e) {
                        return T.call(t, e) > -1
                    }, u, !0),
                    h = [
                        function (e, n, r) {
                            return !o && (r || n !== c) || ((t = n).nodeType ? f(e, n, r) : l(e, n, r))
                        }
                    ];
                for (; a < s; a++)
                    if (n = i.relative[e[a].type]) h = [at(ft(h),
                        n)];
                    else {
                        n = i.filter[e[a].type].apply(null, e[a].matches);
                        if (n[d]) {
                            r = ++a;
                            for (; r < s; r++)
                                if (i.relative[e[r].type]) break;
                            return ct(a > 1 && ft(h), a > 1 && e.slice(0, a - 1).join("").replace(j, "$1"), n, a < r && ht(e.slice(a, r)), r < s && ht(e = e.slice(r)), r < s && e.join(""))
                        }
                        h.push(n)
                    }
                return ft(h)
            }
    
    
            function pt(e, t) {
                var r = t.length > 0,
                    s = e.length > 0,
                    o = function (u, a, f, l, h) {
                        var p, d, v, m = [],
                            y = 0,
                            w = "0",
                            x = u && [],
                            T = h != null,
                            N = c,
                            C = u || s && i.find.TAG("*", h && a.parentNode || a),
                            k = b += N == null ? 1 : Math.E;
                        T && (c = a !== g && a, n = o.el);
                        for (;
                            (p = C[w]) != null; w++) {
                            if (s &&
                                p) {
                                for (d = 0; v = e[d]; d++)
                                    if (v(p, a, f)) {
                                        l.push(p);
                                        break
                                    }
                                T && (b = k, n = ++o.el)
                            }
                            r && ((p = !v && p) && y--, u && x.push(p))
                        }
                        y += w;
                        if (r && w !== y) {
                            for (d = 0; v = t[d]; d++) v(x, m, a, f);
                            if (u) {
                                if (y > 0)
                                    while (w--)!x[w] && (!m[w] && (m[w] = E.call(l)));
                                m = lt(m)
                            }
                            S.apply(l, m), T && (!u && (m.length > 0 && (y + t.length > 1 && nt.uniqueSort(l))))
                        }
                        return T && (b = k, c = N), x
                    };
                return o.el = 0, r ? N(o) : o
            }
    
    
            function dt(e, t, n) {
                var r = 0,
                    i = t.length;
                for (; r < i; r++) nt(e, t[r], n);
                return n
            }
    
    
            function vt(e, t, n, r, s) {
                var o, u, f, l, c, h = ut(e),
                    p = h.length;
                if (!r && h.length === 1) {
                    u = h[0] = h[0].slice(0);
                    if (u.length >
                        2 && ((f = u[0]).type === "ID" && (t.nodeType === 9 && (!s && i.relative[u[1].type])))) {
                        t = i.find.ID(f.matches[0].replace($, ""), t, s)[0];
                        if (!t) return n;
                        e = e.slice(u.shift().length)
                    }
                    for (o = J.POS.test(e) ? -1 : u.length - 1; o >= 0; o--) {
                        f = u[o];
                        if (i.relative[l = f.type]) break;
                        if (c = i.find[l])
                            if (r = c(f.matches[0].replace($, ""), z.test(u[0].type) && t.parentNode || t, s)) {
                                u.splice(o, 1), e = r.length && u.join("");
                                if (!e) return S.apply(n, x.call(r, 0)), n;
                                break
                            }
                    }
                }
                return a(e, h)(r, t, s, n, z.test(e)), n
            }
    
    
            function mt() {}
            var n, r, i, s, o, u, a, f, l, c, h = !0,
                p = "undefined",
                d = ("sizcache" + Math.random()).replace(".", ""),
                m = String,
                g = e.document,
                y = g.documentElement,
                b = 0,
                w = 0,
                E = [].pop,
                S = [].push,
                x = [].slice,
                T = [].indexOf || function (e) {
                    var t = 0,
                        n = this.length;
                    for (; t < n; t++)
                        if (this[t] === e) return t;
                    return -1
                },
                N = function (e, t) {
                    return e[d] = t == null || t, e
                },
                C = function () {
                    var e = {},
                        t = [];
                    return N(function (n, r) {
                        return t.push(n) > i.cacheLength && delete e[t.shift()], e[n + " "] = r
                    }, e)
                },
                k = C(),
                L = C(),
                A = C(),
                O = "[\\x20\\t\\r\\n\\f]",
                M = "(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",
                _ = M.replace("w", "w#"),
                D = "([*^$|!~]?=)",
                P = "\\[" +
                O + "*(" + M + ")" + O + "*(?:" + D + O + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + _ + ")|)|)" + O + "*\\]",
                H = ":(" + M + ")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:" + P + ")|[^:]|\\\\.)*|.*))\\)|)",
                B = ":(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + O + "*((?:-\\d)?\\d*)" + O + "*\\)|)(?=[^-]|$)",
                j = new RegExp("^" + O + "+|((?:^|[^\\\\])(?:\\\\.)*)" + O + "+$", "g"),
                F = new RegExp("^" + O + "*," + O + "*"),
                I = new RegExp("^" + O + "*([\\x20\\t\\r\\n\\f>+~])" + O + "*"),
                q = new RegExp(H),
                R = /^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,
                U = /^:not/,
                z = /[\x20\t\r\n\f]*[+~]/,
                W = /:not\($/,
                X = /h\d/i,
                V = /input|select|textarea|button/i,
                $ = /\\(?!\\)/g,
                J = {
                    ID: new RegExp("^#(" + M + ")"),
                    CLASS: new RegExp("^\\.(" + M + ")"),
                    NAME: new RegExp("^\\[name=['\"]?(" + M + ")['\"]?\\]"),
                    TAG: new RegExp("^(" + M.replace("w", "w*") + ")"),
                    ATTR: new RegExp("^" + P),
                    PSEUDO: new RegExp("^" + H),
                    POS: new RegExp(B, "i"),
                    CHILD: new RegExp("^:(only|nth|first|last)-child(?:\\(" + O + "*(even|odd|(([+-]|)(\\d*)n|)" + O + "*(?:([+-]|)" + O + "*(\\d+)|))" + O + "*\\)|)", "i"),
                    needsContext: new RegExp("^" + O + "*[>+~]|" + B, "i")
                },
                K = function (e) {
                    var t = g.createElement("div");
                    try {
                        return e(t)
                    } catch (n) {
                        return !1
                    } finally {
                        t = null
                    }
                },
                Q = K(function (e) {
                    return e.appendChild(g.createComment("")), !e.getElementsByTagName("*").length
                }),
                G = K(function (e) {
                    return e.innerHTML = "<a href='#'></a>", e.firstChild && (typeof e.firstChild.getAttribute !== p && e.firstChild.getAttribute("href") === "#")
                }),
                Y = K(function (e) {
                    e.innerHTML = "<select></select>";
                    var t = typeof e.lastChild.getAttribute("multiple");
                    return t !== "boolean" && t !== "string"
                }),
                Z = K(function (e) {
                    return e.innerHTML = "<div class='hidden e'></div><div class='hidden'></div>", !e.getElementsByClassName || !e.getElementsByClassName("e").length ? !1 : (e.lastChild.className = "e", e.getElementsByClassName("e").length === 2)
                }),
                et = K(function (e) {
                    e.id = d + 0, e.innerHTML = "<a name='" + d + "'></a><div name='" + d + "'></div>", y.insertBefore(e, y.firstChild);
                    var t = g.getElementsByName && g.getElementsByName(d).length === 2 + g.getElementsByName(d + 0).length;
                    return r = !g.getElementById(d), y.removeChild(e), t
                });
            try {
                x.call(y.childNodes, 0)[0].nodeType
            } catch (tt) {
                x = function (e) {
                    var t, n = [];
                    for (; t = this[e]; e++) n.push(t);
                    return n
                }
            }
            nt.matches = function (e, t) {
                return nt(e, null, null, t)
            }, nt.matchesSelector = function (e, t) {
                return nt(t, null, null, [e]).length > 0
            }, s = nt.getText = function (e) {
                var t, n = "",
                    r = 0,
                    i = e.nodeType;
                if (i)
                    if (i === 1 || (i === 9 || i === 11)) {
                        if (typeof e.textContent == "string") return e.textContent;
                        for (e = e.firstChild; e; e = e.nextSibling) n += s(e)
                    } else {
                        if (i === 3 || i === 4) return e.nodeValue
                    } else
                    for (; t = e[r]; r++) n += s(t);
                return n
            }, o = nt.isXML = function (e) {
                var t = e && (e.ownerDocument || e).documentElement;
                return t ? t.nodeName !== "HTML" : !1
            }, u = nt.contains =
                y.contains ? function (e, t) {
                    var n = e.nodeType === 9 ? e.documentElement : e,
                        r = t && t.parentNode;
                    return e === r || !!(r && (r.nodeType === 1 && (n.contains && n.contains(r))))
            } : y.compareDocumentPosition ? function (e, t) {
                return t && !!(e.compareDocumentPosition(t) & 16)
            } : function (e, t) {
                while (t = t.parentNode)
                    if (t === e) return !0;
                return !1
            }, nt.attr = function (e, t) {
                var n, r = o(e);
                return r || (t = t.toLowerCase()), (n = i.attrHandle[t]) ? n(e) : r || Y ? e.getAttribute(t) : (n = e.getAttributeNode(t), n ? typeof e[t] == "boolean" ? e[t] ? t : null : n.specified ? n.value : null :
                    null)
            }, i = nt.selectors = {
                cacheLength: 50,
                createPseudo: N,
                match: J,
                attrHandle: G ? {} : {
                    href: function (e) {
                        return e.getAttribute("href", 2)
                    },
                    type: function (e) {
                        return e.getAttribute("type")
                    }
                },
                find: {
                    ID: r ? function (e, t, n) {
                        if (typeof t.getElementById !== p && !n) {
                            var r = t.getElementById(e);
                            return r && r.parentNode ? [r] : []
                        }
                    } : function (e, n, r) {
                        if (typeof n.getElementById !== p && !r) {
                            var i = n.getElementById(e);
                            return i ? i.id === e || typeof i.getAttributeNode !== p && i.getAttributeNode("id").value === e ? [i] : t : []
                        }
                    },
                    TAG: Q ? function (e, t) {
                        if (typeof t.getElementsByTagName !==
                            p) return t.getElementsByTagName(e)
                    } : function (e, t) {
                        var n = t.getElementsByTagName(e);
                        if (e === "*") {
                            var r, i = [],
                                s = 0;
                            for (; r = n[s]; s++) r.nodeType === 1 && i.push(r);
                            return i
                        }
                        return n
                    },
                    NAME: et && function (e, t) {
                        if (typeof t.getElementsByName !== p) return t.getElementsByName(name)
                    },
                    CLASS: Z && function (e, t, n) {
                        if (typeof t.getElementsByClassName !== p && !n) return t.getElementsByClassName(e)
                    }
                },
                relative: {
                    ">": {
                        dir: "parentNode",
                        first: !0
                    },
                    " ": {
                        dir: "parentNode"
                    },
                    "+": {
                        dir: "previousSibling",
                        first: !0
                    },
                    "~": {
                        dir: "previousSibling"
                    }
                },
                preFilter: {
                    ATTR: function (e) {
                        return e[1] =
                            e[1].replace($, ""), e[3] = (e[4] || (e[5] || "")).replace($, ""), e[2] === "~=" && (e[3] = " " + e[3] + " "), e.slice(0, 4)
                    },
                    CHILD: function (e) {
                        return e[1] = e[1].toLowerCase(), e[1] === "nth" ? (e[2] || nt.error(e[0]), e[3] = +(e[3] ? e[4] + (e[5] || 1) : 2 * (e[2] === "even" || e[2] === "odd")), e[4] = +(e[6] + e[7] || e[2] === "odd")) : e[2] && nt.error(e[0]), e
                    },
                    PSEUDO: function (e) {
                        var t, n;
                        if (J.CHILD.test(e[0])) return null;
                        if (e[3]) e[2] = e[3];
                        else if (t = e[4]) q.test(t) && ((n = ut(t, !0)) && ((n = t.indexOf(")", t.length - n) - t.length) && (t = t.slice(0, n), e[0] = e[0].slice(0, n)))),
                            e[2] = t;
                        return e.slice(0, 3)
                    }
                },
                filter: {
                    ID: r ? function (e) {
                        return e = e.replace($, ""),
                            function (t) {
                                return t.getAttribute("id") === e
                            }
                    } : function (e) {
                        return e = e.replace($, ""),
                            function (t) {
                                var n = typeof t.getAttributeNode !== p && t.getAttributeNode("id");
                                return n && n.value === e
                            }
                    },
                    TAG: function (e) {
                        return e === "*" ? function () {
                            return !0
                        } : (e = e.replace($, "").toLowerCase(), function (t) {
                            return t.nodeName && t.nodeName.toLowerCase() === e
                        })
                    },
                    CLASS: function (e) {
                        var t = k[d][e + " "];
                        return t || (t = new RegExp("(^|" + O + ")" + e + "(" + O + "|$)")) && k(e,
                            function (e) {
                                return t.test(e.className || (typeof e.getAttribute !== p && e.getAttribute("class") || ""))
                            })
                    },
                    ATTR: function (e, t, n) {
                        return function (r, i) {
                            var s = nt.attr(r, e);
                            return s == null ? t === "!=" : t ? (s += "", t === "=" ? s === n : t === "!=" ? s !== n : t === "^=" ? n && s.indexOf(n) === 0 : t === "*=" ? n && s.indexOf(n) > -1 : t === "$=" ? n && s.substr(s.length - n.length) === n : t === "~=" ? (" " + s + " ").indexOf(n) > -1 : t === "|=" ? s === n || s.substr(0, n.length + 1) === n + "-" : !1) : !0
                        }
                    },
                    CHILD: function (e, t, n, r) {
                        return e === "nth" ? function (e) {
                            var t, i, s = e.parentNode;
                            if (n === 1 &&
                                r === 0) return !0;
                            if (s) {
                                i = 0;
                                for (t = s.firstChild; t; t = t.nextSibling)
                                    if (t.nodeType === 1) {
                                        i++;
                                        if (e === t) break
                                    }
                            }
                            return i -= r, i === n || i % n === 0 && i / n >= 0
                        } : function (t) {
                            var n = t;
                            switch (e) {
                            case "only":
                            case "first":
                                while (n = n.previousSibling)
                                    if (n.nodeType === 1) return !1;
                                if (e === "first") return !0;
                                n = t;
                            case "last":
                                while (n = n.nextSibling)
                                    if (n.nodeType === 1) return !1;
                                return !0
                            }
                        }
                    },
                    PSEUDO: function (e, t) {
                        var n, r = i.pseudos[e] || (i.setFilters[e.toLowerCase()] || nt.error("unsupported pseudo: " + e));
                        return r[d] ? r(t) : r.length > 1 ? (n = [e, e, "", t], i.setFilters.hasOwnProperty(e.toLowerCase()) ?
                            N(function (e, n) {
                                var i, s = r(e, t),
                                    o = s.length;
                                while (o--) i = T.call(e, s[o]), e[i] = !(n[i] = s[o])
                            }) : function (e) {
                                return r(e, 0, n)
                            }) : r
                    }
                },
                pseudos: {
                    not: N(function (e) {
                        var t = [],
                            n = [],
                            r = a(e.replace(j, "$1"));
                        return r[d] ? N(function (e, t, n, i) {
                            var s, o = r(e, null, i, []),
                                u = e.length;
                            while (u--)
                                if (s = o[u]) e[u] = !(t[u] = s)
                        }) : function (e, i, s) {
                            return t[0] = e, r(t, null, s, n), !n.pop()
                        }
                    }),
                    has: N(function (e) {
                        return function (t) {
                            return nt(e, t).length > 0
                        }
                    }),
                    contains: N(function (e) {
                        return function (t) {
                            return (t.textContent || (t.innerText || s(t))).indexOf(e) >
                                -1
                        }
                    }),
                    enabled: function (e) {
                        return e.disabled === !1
                    },
                    disabled: function (e) {
                        return e.disabled === !0
                    },
                    checked: function (e) {
                        var t = e.nodeName.toLowerCase();
                        return t === "input" && !!e.checked || t === "option" && !!e.selected
                    },
                    selected: function (e) {
                        return e.parentNode && e.parentNode.selectedIndex, e.selected === !0
                    },
                    parent: function (e) {
                        return !i.pseudos.empty(e)
                    },
                    empty: function (e) {
                        var t;
                        e = e.firstChild;
                        while (e) {
                            if (e.nodeName > "@" || ((t = e.nodeType) === 3 || t === 4)) return !1;
                            e = e.nextSibling
                        }
                        return !0
                    },
                    header: function (e) {
                        return X.test(e.nodeName)
                    },
                    text: function (e) {
                        var t, n;
                        return e.nodeName.toLowerCase() === "input" && ((t = e.type) === "text" && ((n = e.getAttribute("type")) == null || n.toLowerCase() === t))
                    },
                    radio: rt("radio"),
                    checkbox: rt("checkbox"),
                    file: rt("file"),
                    password: rt("password"),
                    image: rt("image"),
                    submit: it("submit"),
                    reset: it("reset"),
                    button: function (e) {
                        var t = e.nodeName.toLowerCase();
                        return t === "input" && e.type === "button" || t === "button"
                    },
                    input: function (e) {
                        return V.test(e.nodeName)
                    },
                    focus: function (e) {
                        var t = e.ownerDocument;
                        return e === t.activeElement &&
                            ((!t.hasFocus || t.hasFocus()) && !!(e.type || (e.href || ~e.tabIndex)))
                    },
                    active: function (e) {
                        return e === e.ownerDocument.activeElement
                    },
                    first: st(function () {
                        return [0]
                    }),
                    last: st(function (e, t) {
                        return [t - 1]
                    }),
                    eq: st(function (e, t, n) {
                        return [n < 0 ? n + t : n]
                    }),
                    even: st(function (e, t) {
                        for (var n = 0; n < t; n += 2) e.push(n);
                        return e
                    }),
                    odd: st(function (e, t) {
                        for (var n = 1; n < t; n += 2) e.push(n);
                        return e
                    }),
                    lt: st(function (e, t, n) {
                        for (var r = n < 0 ? n + t : n; --r >= 0;) e.push(r);
                        return e
                    }),
                    gt: st(function (e, t, n) {
                        for (var r = n < 0 ? n + t : n; ++r < t;) e.push(r);
                        return e
                    })
                }
            },
            f = y.compareDocumentPosition ? function (e, t) {
                return e === t ? (l = !0, 0) : (!e.compareDocumentPosition || !t.compareDocumentPosition ? e.compareDocumentPosition : e.compareDocumentPosition(t) & 4) ? -1 : 1
            } : function (e, t) {
                if (e === t) return l = !0, 0;
                if (e.sourceIndex && t.sourceIndex) return e.sourceIndex - t.sourceIndex;
                var n, r, i = [],
                    s = [],
                    o = e.parentNode,
                    u = t.parentNode,
                    a = o;
                if (o === u) return ot(e, t);
                if (!o) return -1;
                if (!u) return 1;
                while (a) i.unshift(a), a = a.parentNode;
                a = u;
                while (a) s.unshift(a), a = a.parentNode;
                n = i.length, r = s.length;
                for (var f =
                    0; f < n && f < r; f++)
                    if (i[f] !== s[f]) return ot(i[f], s[f]);
                return f === n ? ot(e, s[f], -1) : ot(i[f], t, 1)
            }, [0, 0].sort(f), h = !l, nt.uniqueSort = function (e) {
                var t, n = [],
                    r = 1,
                    i = 0;
                l = h, e.sort(f);
                if (l) {
                    for (; t = e[r]; r++) t === e[r - 1] && (i = n.push(r));
                    while (i--) e.splice(n[i], 1)
                }
                return e
            }, nt.error = function (e) {
                throw new Error("Syntax error, unrecognized expression: " + e);
            }, a = nt.compile = function (e, t) {
                var n, r = [],
                    i = [],
                    s = A[d][e + " "];
                if (!s) {
                    t || (t = ut(e)), n = t.length;
                    while (n--) s = ht(t[n]), s[d] ? r.push(s) : i.push(s);
                    s = A(e, pt(i, r))
                }
                return s
            }, g.querySelectorAll &&
                function () {
                    var e, t = vt,
                        n = /'|\\/g,
                        r = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,
                        i = [":focus"],
                        s = [":active"],
                        u = y.matchesSelector || (y.mozMatchesSelector || (y.webkitMatchesSelector || (y.oMatchesSelector || y.msMatchesSelector)));
                    K(function (e) {
                        e.innerHTML = "<select><option selected=''></option></select>", e.querySelectorAll("[selected]").length || i.push("\\[" + O + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)"), e.querySelectorAll(":checked").length || i.push(":checked")
                    }), K(function (e) {
                        e.innerHTML =
                            "<p test=''></p>", e.querySelectorAll("[test^='']").length && i.push("[*^$]=" + O + "*(?:\"\"|'')"), e.innerHTML = "<input type='hidden'/>", e.querySelectorAll(":enabled").length || i.push(":enabled", ":disabled")
                    }), i = new RegExp(i.join("|")), vt = function (e, r, s, o, u) {
                        if (!o && (!u && !i.test(e))) {
                            var a, f, l = !0,
                                c = d,
                                h = r,
                                p = r.nodeType === 9 && e;
                            if (r.nodeType === 1 && r.nodeName.toLowerCase() !== "object") {
                                a = ut(e), (l = r.getAttribute("id")) ? c = l.replace(n, "\\$&") : r.setAttribute("id", c), c = "[id='" + c + "'] ", f = a.length;
                                while (f--) a[f] = c + a[f].join("");
                                h = z.test(e) && r.parentNode || r, p = a.join(",")
                            }
                            if (p) try {
                                return S.apply(s, x.call(h.querySelectorAll(p), 0)), s
                            } catch (v) {} finally {
                                l || r.removeAttribute("id")
                            }
                        }
                        return t(e, r, s, o, u)
                    }, u && (K(function (t) {
                        e = u.call(t, "div");
                        try {
                            u.call(t, "[test!='']:sizzle"), s.push("!=", H)
                        } catch (n) {}
                    }), s = new RegExp(s.join("|")), nt.matchesSelector = function (t, n) {
                        n = n.replace(r, "='$1']");
                        if (!o(t) && (!s.test(n) && !i.test(n))) try {
                            var a = u.call(t, n);
                            if (a || (e || t.document && t.document.nodeType !== 11)) return a
                        } catch (f) {}
                        return nt(n, null, null, [t]).length >
                            0
                    })
            }(), i.pseudos.nth = i.pseudos.eq, i.filters = mt.prototype = i.pseudos, i.setFilters = new mt, nt.attr = v.attr, v.find = nt, v.expr = nt.selectors, v.expr[":"] = v.expr.pseudos, v.unique = nt.uniqueSort, v.text = nt.getText, v.isXMLDoc = nt.isXML, v.contains = nt.contains
        }(e);
        var nt = /Until$/,
            rt = /^(?:parents|prev(?:Until|All))/,
            it = /^.[^:#\[\.,]*$/,
            st = v.expr.match.needsContext,
            ot = {
                children: !0,
                contents: !0,
                next: !0,
                prev: !0
            };
        v.fn.extend({
            find: function (e) {
                var t, n, r, i, s, o, u = this;
                if (typeof e != "string") return v(e).filter(function () {
                    for (t =
                        0, n = u.length; t < n; t++)
                        if (v.contains(u[t], this)) return !0
                });
                o = this.pushStack("", "find", e);
                for (t = 0, n = this.length; t < n; t++) {
                    r = o.length, v.find(e, this[t], o);
                    if (t > 0)
                        for (i = r; i < o.length; i++)
                            for (s = 0; s < r; s++)
                                if (o[s] === o[i]) {
                                    o.splice(i--, 1);
                                    break
                                }
                }
                return o
            },
            has: function (e) {
                var t, n = v(e, this),
                    r = n.length;
                return this.filter(function () {
                    for (t = 0; t < r; t++)
                        if (v.contains(this, n[t])) return !0
                })
            },
            not: function (e) {
                return this.pushStack(ft(this, e, !1), "not", e)
            },
            filter: function (e) {
                return this.pushStack(ft(this, e, !0), "filter", e)
            },
            is: function (e) {
                return !!e && (typeof e == "string" ? st.test(e) ? v(e, this.context).index(this[0]) >= 0 : v.filter(e, this).length > 0 : this.filter(e).length > 0)
            },
            closest: function (e, t) {
                var n, r = 0,
                    i = this.length,
                    s = [],
                    o = st.test(e) || typeof e != "string" ? v(e, t || this.context) : 0;
                for (; r < i; r++) {
                    n = this[r];
                    while (n && (n.ownerDocument && (n !== t && n.nodeType !== 11))) {
                        if (o ? o.index(n) > -1 : v.find.matchesSelector(n, e)) {
                            s.push(n);
                            break
                        }
                        n = n.parentNode
                    }
                }
                return s = s.length > 1 ? v.unique(s) : s, this.pushStack(s, "closest", e)
            },
            index: function (e) {
                return e ?
                    typeof e == "string" ? v.inArray(this[0], v(e)) : v.inArray(e.jquery ? e[0] : e, this) : this[0] && this[0].parentNode ? this.prevAll().length : -1
            },
            add: function (e, t) {
                var n = typeof e == "string" ? v(e, t) : v.makeArray(e && e.nodeType ? [e] : e),
                    r = v.merge(this.get(), n);
                return this.pushStack(ut(n[0]) || ut(r[0]) ? r : v.unique(r))
            },
            addBack: function (e) {
                return this.add(e == null ? this.prevObject : this.prevObject.filter(e))
            }
        }), v.fn.andSelf = v.fn.addBack, v.each({
            parent: function (e) {
                var t = e.parentNode;
                return t && t.nodeType !== 11 ? t : null
            },
            parents: function (e) {
                return v.dir(e,
                    "parentNode")
            },
            parentsUntil: function (e, t, n) {
                return v.dir(e, "parentNode", n)
            },
            next: function (e) {
                return at(e, "nextSibling")
            },
            prev: function (e) {
                return at(e, "previousSibling")
            },
            nextAll: function (e) {
                return v.dir(e, "nextSibling")
            },
            prevAll: function (e) {
                return v.dir(e, "previousSibling")
            },
            nextUntil: function (e, t, n) {
                return v.dir(e, "nextSibling", n)
            },
            prevUntil: function (e, t, n) {
                return v.dir(e, "previousSibling", n)
            },
            siblings: function (e) {
                return v.sibling((e.parentNode || {}).firstChild, e)
            },
            children: function (e) {
                return v.sibling(e.firstChild)
            },
            contents: function (e) {
                return v.nodeName(e, "iframe") ? e.contentDocument || e.contentWindow.document : v.merge([], e.childNodes)
            }
        }, function (e, t) {
            v.fn[e] = function (n, r) {
                var i = v.map(this, t, n);
                return nt.test(e) || (r = n), r && (typeof r == "string" && (i = v.filter(r, i))), i = this.length > 1 && !ot[e] ? v.unique(i) : i, this.length > 1 && (rt.test(e) && (i = i.reverse())), this.pushStack(i, e, l.call(arguments).join(","))
            }
        }), v.extend({
            filter: function (e, t, n) {
                return n && (e = ":not(" + e + ")"), t.length === 1 ? v.find.matchesSelector(t[0], e) ? [t[0]] : [] : v.find.matches(e,
                    t)
            },
            dir: function (e, n, r) {
                var i = [],
                    s = e[n];
                while (s && (s.nodeType !== 9 && (r === t || (s.nodeType !== 1 || !v(s).is(r))))) s.nodeType === 1 && i.push(s), s = s[n];
                return i
            },
            sibling: function (e, t) {
                var n = [];
                for (; e; e = e.nextSibling) e.nodeType === 1 && (e !== t && n.push(e));
                return n
            }
        });
        var ct = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
            ht = / jQuery\d+="(?:null|\d+)"/g,
            pt = /^\s+/,
            dt = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
            vt = /<([\w:]+)/,
            mt = /<tbody/i,
            gt = /<|&#?\w+;/,
            yt = /<(?:script|style|link)/i,
            bt = /<(?:script|object|embed|option|style)/i,
            wt = new RegExp("<(?:" + ct + ")[\\s/>]", "i"),
            Et = /^(?:checkbox|radio)$/,
            St = /checked\s*(?:[^=]|=\s*.checked.)/i,
            xt = /\/(java|ecma)script/i,
            Tt = /^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,
            Nt = {
                option: [1, "<select multiple='multiple'>", "</select>"],
                legend: [1, "<fieldset>", "</fieldset>"],
                thead: [1, "<table>", "</table>"],
                tr: [2, "<table><tbody>", "</tbody></table>"],
                td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
                col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
                area: [1, "<map>", "</map>"],
                _default: [0, "", ""]
            },
            Ct = lt(i),
            kt = Ct.appendChild(i.createElement("div"));
        Nt.optgroup = Nt.option, Nt.tbody = Nt.tfoot = Nt.colgroup = Nt.caption = Nt.thead, Nt.th = Nt.td, v.support.htmlSerialize || (Nt._default = [1, "X<div>", "</div>"]), v.fn.extend({
            text: function (e) {
                return v.access(this, function (e) {
                    return e === t ? v.text(this) : this.empty().append((this[0] && this[0].ownerDocument || i).createTextNode(e))
                }, null, e, arguments.length)
            },
            wrapAll: function (e) {
                if (v.isFunction(e)) return this.each(function (t) {
                    v(this).wrapAll(e.call(this,
                        t))
                });
                if (this[0]) {
                    var t = v(e, this[0].ownerDocument).eq(0).clone(!0);
                    this[0].parentNode && t.insertBefore(this[0]), t.map(function () {
                        var e = this;
                        while (e.firstChild && e.firstChild.nodeType === 1) e = e.firstChild;
                        return e
                    }).append(this)
                }
                return this
            },
            wrapInner: function (e) {
                return v.isFunction(e) ? this.each(function (t) {
                    v(this).wrapInner(e.call(this, t))
                }) : this.each(function () {
                    var t = v(this),
                        n = t.contents();
                    n.length ? n.wrapAll(e) : t.append(e)
                })
            },
            wrap: function (e) {
                var t = v.isFunction(e);
                return this.each(function (n) {
                    v(this).wrapAll(t ?
                        e.call(this, n) : e)
                })
            },
            unwrap: function () {
                return this.parent().each(function () {
                    v.nodeName(this, "body") || v(this).replaceWith(this.childNodes)
                }).end()
            },
            append: function () {
                return this.domManip(arguments, !0, function (e) {
                    (this.nodeType === 1 || this.nodeType === 11) && this.appendChild(e)
                })
            },
            prepend: function () {
                return this.domManip(arguments, !0, function (e) {
                    (this.nodeType === 1 || this.nodeType === 11) && this.insertBefore(e, this.firstChild)
                })
            },
            before: function () {
                if (!ut(this[0])) return this.domManip(arguments, !1, function (e) {
                    this.parentNode.insertBefore(e,
                        this)
                });
                if (arguments.length) {
                    var e = v.clean(arguments);
                    return this.pushStack(v.merge(e, this), "before", this.selector)
                }
            },
            after: function () {
                if (!ut(this[0])) return this.domManip(arguments, !1, function (e) {
                    this.parentNode.insertBefore(e, this.nextSibling)
                });
                if (arguments.length) {
                    var e = v.clean(arguments);
                    return this.pushStack(v.merge(this, e), "after", this.selector)
                }
            },
            remove: function (e, t) {
                var n, r = 0;
                for (;
                    (n = this[r]) != null; r++)
                    if (!e || v.filter(e, [n]).length)!t && (n.nodeType === 1 && (v.cleanData(n.getElementsByTagName("*")),
                    v.cleanData([n]))), n.parentNode && n.parentNode.removeChild(n);
                return this
            },
            empty: function () {
                var e, t = 0;
                for (;
                    (e = this[t]) != null; t++) {
                    e.nodeType === 1 && v.cleanData(e.getElementsByTagName("*"));
                    while (e.firstChild) e.removeChild(e.firstChild)
                }
                return this
            },
            clone: function (e, t) {
                return e = e == null ? !1 : e, t = t == null ? e : t, this.map(function () {
                    return v.clone(this, e, t)
                })
            },
            html: function (e) {
                return v.access(this, function (e) {
                    var n = this[0] || {},
                        r = 0,
                        i = this.length;
                    if (e === t) return n.nodeType === 1 ? n.innerHTML.replace(ht, "") : t;
                    if (typeof e ==
                        "string" && (!yt.test(e) && ((v.support.htmlSerialize || !wt.test(e)) && ((v.support.leadingWhitespace || !pt.test(e)) && !Nt[(vt.exec(e) || ["", ""])[1].toLowerCase()])))) {
                        e = e.replace(dt, "<$1></$2>");
                        try {
                            for (; r < i; r++) n = this[r] || {}, n.nodeType === 1 && (v.cleanData(n.getElementsByTagName("*")), n.innerHTML = e);
                            n = 0
                        } catch (s) {}
                    }
                    n && this.empty().append(e)
                }, null, e, arguments.length)
            },
            replaceWith: function (e) {
                return ut(this[0]) ? this.length ? this.pushStack(v(v.isFunction(e) ? e() : e), "replaceWith", e) : this : v.isFunction(e) ? this.each(function (t) {
                    var n =
                        v(this),
                        r = n.html();
                    n.replaceWith(e.call(this, t, r))
                }) : (typeof e != "string" && (e = v(e).detach()), this.each(function () {
                    var t = this.nextSibling,
                        n = this.parentNode;
                    v(this).remove(), t ? v(t).before(e) : v(n).append(e)
                }))
            },
            detach: function (e) {
                return this.remove(e, !0)
            },
            domManip: function (e, n, r) {
                e = [].concat.apply([], e);
                var i, s, o, u, a = 0,
                    f = e[0],
                    l = [],
                    c = this.length;
                if (!v.support.checkClone && (c > 1 && (typeof f == "string" && St.test(f)))) return this.each(function () {
                    v(this).domManip(e, n, r)
                });
                if (v.isFunction(f)) return this.each(function (i) {
                    var s =
                        v(this);
                    e[0] = f.call(this, i, n ? s.html() : t), s.domManip(e, n, r)
                });
                if (this[0]) {
                    i = v.buildFragment(e, this, l), o = i.fragment, s = o.firstChild, o.childNodes.length === 1 && (o = s);
                    if (s) {
                        n = n && v.nodeName(s, "tr");
                        for (u = i.cacheable || c - 1; a < c; a++) r.call(n && v.nodeName(this[a], "table") ? Lt(this[a], "tbody") : this[a], a === u ? o : v.clone(o, !0, !0))
                    }
                    o = s = null, l.length && v.each(l, function (e, t) {
                        t.src ? v.ajax ? v.ajax({
                            url: t.src,
                            type: "GET",
                            dataType: "script",
                            async: !1,
                            global: !1,
                            "throws": !0
                        }) : v.error("no ajax") : v.globalEval((t.text || (t.textContent ||
                            (t.innerHTML || ""))).replace(Tt, "")), t.parentNode && t.parentNode.removeChild(t)
                    })
                }
                return this
            }
        }), v.buildFragment = function (e, n, r) {
            var s, o, u, a = e[0];
            return n = n || i, n = !n.nodeType && n[0] || n, n = n.ownerDocument || n, e.length === 1 && (typeof a == "string" && (a.length < 512 && (n === i && (a.charAt(0) === "<" && (!bt.test(a) && ((v.support.checkClone || !St.test(a)) && ((v.support.html5Clone || !wt.test(a)) && (o = !0, s = v.fragments[a], u = s !== t)))))))), s || (s = n.createDocumentFragment(), v.clean(e, n, s, r), o && (v.fragments[a] = u && s)), {
                fragment: s,
                cacheable: o
            }
        },
        v.fragments = {}, v.each({
            appendTo: "append",
            prependTo: "prepend",
            insertBefore: "before",
            insertAfter: "after",
            replaceAll: "replaceWith"
        }, function (e, t) {
            v.fn[e] = function (n) {
                var r, i = 0,
                    s = [],
                    o = v(n),
                    u = o.length,
                    a = this.length === 1 && this[0].parentNode;
                if ((a == null || a && (a.nodeType === 11 && a.childNodes.length === 1)) && u === 1) return o[t](this[0]), this;
                for (; i < u; i++) r = (i > 0 ? this.clone(!0) : this).get(), v(o[i])[t](r), s = s.concat(r);
                return this.pushStack(s, e, o.selector)
            }
        }), v.extend({
            clone: function (e, t, n) {
                var r, i, s, o;
                v.support.html5Clone ||
                    (v.isXMLDoc(e) || !wt.test("<" + e.nodeName + ">")) ? o = e.cloneNode(!0) : (kt.innerHTML = e.outerHTML, kt.removeChild(o = kt.firstChild));
                if ((!v.support.noCloneEvent || !v.support.noCloneChecked) && ((e.nodeType === 1 || e.nodeType === 11) && !v.isXMLDoc(e))) {
                    Ot(e, o), r = Mt(e), i = Mt(o);
                    for (s = 0; r[s]; ++s) i[s] && Ot(r[s], i[s])
                }
                if (t) {
                    At(e, o);
                    if (n) {
                        r = Mt(e), i = Mt(o);
                        for (s = 0; r[s]; ++s) At(r[s], i[s])
                    }
                }
                return r = i = null, o
            },
            clean: function (e, t, n, r) {
                var s, o, u, a, f, l, c, h, p, d, m, g, y = t === i && Ct,
                    b = [];
                if (!t || typeof t.createDocumentFragment == "undefined") t =
                    i;
                for (s = 0;
                    (u = e[s]) != null; s++) {
                    typeof u == "number" && (u += "");
                    if (!u) continue;
                    if (typeof u == "string")
                        if (!gt.test(u)) u = t.createTextNode(u);
                        else {
                            y = y || lt(t), c = t.createElement("div"), y.appendChild(c), u = u.replace(dt, "<$1></$2>"), a = (vt.exec(u) || ["", ""])[1].toLowerCase(), f = Nt[a] || Nt._default, l = f[0], c.innerHTML = f[1] + u + f[2];
                            while (l--) c = c.lastChild;
                            if (!v.support.tbody) {
                                h = mt.test(u), p = a === "table" && !h ? c.firstChild && c.firstChild.childNodes : f[1] === "<table>" && !h ? c.childNodes : [];
                                for (o = p.length - 1; o >= 0; --o) v.nodeName(p[o],
                                    "tbody") && (!p[o].childNodes.length && p[o].parentNode.removeChild(p[o]))
                            }!v.support.leadingWhitespace && (pt.test(u) && c.insertBefore(t.createTextNode(pt.exec(u)[0]), c.firstChild)), u = c.childNodes, c.parentNode.removeChild(c)
                        }
                    u.nodeType ? b.push(u) : v.merge(b, u)
                }
                c && (u = c = y = null);
                if (!v.support.appendChecked)
                    for (s = 0;
                        (u = b[s]) != null; s++) v.nodeName(u, "input") ? _t(u) : typeof u.getElementsByTagName != "undefined" && v.grep(u.getElementsByTagName("input"), _t);
                if (n) {
                    m = function (e) {
                        if (!e.type || xt.test(e.type)) return r ? r.push(e.parentNode ?
                            e.parentNode.removeChild(e) : e) : n.appendChild(e)
                    };
                    for (s = 0;
                        (u = b[s]) != null; s++)
                        if (!v.nodeName(u, "script") || !m(u)) n.appendChild(u), typeof u.getElementsByTagName != "undefined" && (g = v.grep(v.merge([], u.getElementsByTagName("script")), m), b.splice.apply(b, [s + 1, 0].concat(g)), s += g.length)
                }
                return b
            },
            cleanData: function (e, t) {
                var n, r, i, s, o = 0,
                    u = v.expando,
                    a = v.cache,
                    f = v.support.deleteExpando,
                    l = v.event.special;
                for (;
                    (i = e[o]) != null; o++)
                    if (t || v.acceptData(i)) {
                        r = i[u], n = r && a[r];
                        if (n) {
                            if (n.events)
                                for (s in n.events) l[s] ? v.event.remove(i,
                                    s) : v.removeEvent(i, s, n.handle);
                            a[r] && (delete a[r], f ? delete i[u] : i.removeAttribute ? i.removeAttribute(u) : i[u] = null, v.deletedIds.push(r))
                        }
                    }
            }
        }),
        function () {
            var e, t;
            v.uaMatch = function (e) {
                e = e.toLowerCase();
                var t = /(chrome)[ \/]([\w.]+)/.exec(e) || (/(webkit)[ \/]([\w.]+)/.exec(e) || (/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e) || (/(msie) ([\w.]+)/.exec(e) || (e.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e) || []))));
                return {
                    browser: t[1] || "",
                    version: t[2] || "0"
                }
            }, e = v.uaMatch(o.userAgent), t = {}, e.browser &&
                (t[e.browser] = !0, t.version = e.version), t.chrome ? t.webkit = !0 : t.webkit && (t.safari = !0), v.browser = t, v.sub = function () {
                function e(t, n) {
                    return new e.fn.init(t, n)
                }
                v.extend(!0, e, this), e.superclass = this, e.fn = e.prototype = this(), e.fn.constructor = e, e.sub = this.sub, e.fn.init = function (r, i) {
                    return i && (i instanceof v && (!(i instanceof e) && (i = e(i)))), v.fn.init.call(this, r, i, t)
                }, e.fn.init.prototype = e.fn;
                var t = e(i);
                return e
            }
        }();
        var Dt, Pt, Ht, Bt = /alpha\([^)]*\)/i,
            jt = /opacity=([^)]*)/,
            Ft = /^(top|right|bottom|left)$/,
            It = /^(none|table(?!-c[ea]).+)/,
            qt = /^margin/,
            Rt = new RegExp("^(" + m + ")(.*)$", "i"),
            Ut = new RegExp("^(" + m + ")(?!px)[a-z%]+$", "i"),
            zt = new RegExp("^([-+])=(" + m + ")", "i"),
            Wt = {
                BODY: "block"
            },
            Xt = {
                position: "absolute",
                visibility: "hidden",
                display: "block"
            },
            Vt = {
                letterSpacing: 0,
                fontWeight: 400
            },
            $t = ["Top", "Right", "Bottom", "Left"],
            Jt = ["Webkit", "O", "Moz", "ms"],
            Kt = v.fn.toggle;
        v.fn.extend({
            css: function (e, n) {
                return v.access(this, function (e, n, r) {
                    return r !== t ? v.style(e, n, r) : v.css(e, n)
                }, e, n, arguments.length > 1)
            },
            show: function () {
                return Yt(this, !0)
            },
            hide: function () {
                return Yt(this)
            },
            toggle: function (e, t) {
                var n = typeof e == "boolean";
                return v.isFunction(e) && v.isFunction(t) ? Kt.apply(this, arguments) : this.each(function () {
                    (n ? e : Gt(this)) ? v(this).show() : v(this).hide()
                })
            }
        }), v.extend({
            cssHooks: {
                opacity: {
                    get: function (e, t) {
                        if (t) {
                            var n = Dt(e, "opacity");
                            return n === "" ? "1" : n
                        }
                    }
                }
            },
            cssNumber: {
                fillOpacity: !0,
                fontWeight: !0,
                lineHeight: !0,
                opacity: !0,
                orphans: !0,
                widows: !0,
                zIndex: !0,
                zoom: !0
            },
            cssProps: {
                "float": v.support.cssFloat ? "cssFloat" : "styleFloat"
            },
            style: function (e, n, r, i) {
                if (!e || (e.nodeType === 3 || (e.nodeType ===
                    8 || !e.style))) return;
                var s, o, u, a = v.camelCase(n),
                    f = e.style;
                n = v.cssProps[a] || (v.cssProps[a] = Qt(f, a)), u = v.cssHooks[n] || v.cssHooks[a];
                if (r === t) return u && ("get" in u && (s = u.get(e, !1, i)) !== t) ? s : f[n];
                o = typeof r, o === "string" && ((s = zt.exec(r)) && (r = (s[1] + 1) * s[2] + parseFloat(v.css(e, n)), o = "number"));
                if (r == null || o === "number" && isNaN(r)) return;
                o === "number" && (!v.cssNumber[a] && (r += "px"));
                if (!u || (!("set" in u) || (r = u.set(e, r, i)) !== t)) try {
                    f[n] = r
                } catch (l) {}
            },
            css: function (e, n, r, i) {
                var s, o, u, a = v.camelCase(n);
                return n = v.cssProps[a] ||
                    (v.cssProps[a] = Qt(e.style, a)), u = v.cssHooks[n] || v.cssHooks[a], u && ("get" in u && (s = u.get(e, !0, i))), s === t && (s = Dt(e, n)), s === "normal" && (n in Vt && (s = Vt[n])), r || i !== t ? (o = parseFloat(s), r || v.isNumeric(o) ? o || 0 : s) : s
            },
            swap: function (e, t, n) {
                var r, i, s = {};
                for (i in t) s[i] = e.style[i], e.style[i] = t[i];
                r = n.call(e);
                for (i in t) e.style[i] = s[i];
                return r
            }
        }), e.getComputedStyle ? Dt = function (t, n) {
            var r, i, s, o, u = e.getComputedStyle(t, null),
                a = t.style;
            return u && (r = u.getPropertyValue(n) || u[n], r === "" && (!v.contains(t.ownerDocument, t) &&
                (r = v.style(t, n))), Ut.test(r) && (qt.test(n) && (i = a.width, s = a.minWidth, o = a.maxWidth, a.minWidth = a.maxWidth = a.width = r, r = u.width, a.width = i, a.minWidth = s, a.maxWidth = o))), r
        } : i.documentElement.currentStyle && (Dt = function (e, t) {
            var n, r, i = e.currentStyle && e.currentStyle[t],
                s = e.style;
            return i == null && (s && (s[t] && (i = s[t]))), Ut.test(i) && (!Ft.test(t) && (n = s.left, r = e.runtimeStyle && e.runtimeStyle.left, r && (e.runtimeStyle.left = e.currentStyle.left), s.left = t === "fontSize" ? "1em" : i, i = s.pixelLeft + "px", s.left = n, r && (e.runtimeStyle.left =
                r))), i === "" ? "auto" : i
        }), v.each(["height", "width"], function (e, t) {
            v.cssHooks[t] = {
                get: function (e, n, r) {
                    if (n) return e.offsetWidth === 0 && It.test(Dt(e, "display")) ? v.swap(e, Xt, function () {
                        return tn(e, t, r)
                    }) : tn(e, t, r)
                },
                set: function (e, n, r) {
                    return Zt(e, n, r ? en(e, t, r, v.support.boxSizing && v.css(e, "boxSizing") === "border-box") : 0)
                }
            }
        }), v.support.opacity || (v.cssHooks.opacity = {
            get: function (e, t) {
                return jt.test((t && e.currentStyle ? e.currentStyle.filter : e.style.filter) || "") ? 0.01 * parseFloat(RegExp.$1) + "" : t ? "1" : ""
            },
            set: function (e,
                t) {
                var n = e.style,
                    r = e.currentStyle,
                    i = v.isNumeric(t) ? "alpha(opacity=" + t * 100 + ")" : "",
                    s = r && r.filter || (n.filter || "");
                n.zoom = 1;
                if (t >= 1 && (v.trim(s.replace(Bt, "")) === "" && n.removeAttribute)) {
                    n.removeAttribute("filter");
                    if (r && !r.filter) return
                }
                n.filter = Bt.test(s) ? s.replace(Bt, i) : s + " " + i
            }
        }), v(function () {
            v.support.reliableMarginRight || (v.cssHooks.marginRight = {
                get: function (e, t) {
                    return v.swap(e, {
                        display: "inline-block"
                    }, function () {
                        if (t) return Dt(e, "marginRight")
                    })
                }
            }), !v.support.pixelPosition && (v.fn.position && v.each(["top",
                "left"
            ], function (e, t) {
                v.cssHooks[t] = {
                    get: function (e, n) {
                        if (n) {
                            var r = Dt(e, t);
                            return Ut.test(r) ? v(e).position()[t] + "px" : r
                        }
                    }
                }
            }))
        }), v.expr && (v.expr.filters && (v.expr.filters.hidden = function (e) {
            return e.offsetWidth === 0 && e.offsetHeight === 0 || !v.support.reliableHiddenOffsets && (e.style && e.style.display || Dt(e, "display")) === "none"
        }, v.expr.filters.visible = function (e) {
            return !v.expr.filters.hidden(e)
        })), v.each({
            margin: "",
            padding: "",
            border: "Width"
        }, function (e, t) {
            v.cssHooks[e + t] = {
                expand: function (n) {
                    var r, i = typeof n ==
                        "string" ? n.split(" ") : [n],
                        s = {};
                    for (r = 0; r < 4; r++) s[e + $t[r] + t] = i[r] || (i[r - 2] || i[0]);
                    return s
                }
            }, qt.test(e) || (v.cssHooks[e + t].set = Zt)
        });
        var rn = /%20/g,
            sn = /\[\]$/,
            on = /\r?\n/g,
            un = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
            an = /^(?:select|textarea)/i;
        v.fn.extend({
            serialize: function () {
                return v.param(this.serializeArray())
            },
            serializeArray: function () {
                return this.map(function () {
                    return this.elements ? v.makeArray(this.elements) : this
                }).filter(function () {
                    return this.name &&
                        (!this.disabled && (this.checked || (an.test(this.nodeName) || un.test(this.type))))
                }).map(function (e, t) {
                    var n = v(this).val();
                    return n == null ? null : v.isArray(n) ? v.map(n, function (e, n) {
                        return {
                            name: t.name,
                            value: e.replace(on, "\r\n")
                        }
                    }) : {
                        name: t.name,
                        value: n.replace(on, "\r\n")
                    }
                }).get()
            }
        }), v.param = function (e, n) {
            var r, i = [],
                s = function (e, t) {
                    t = v.isFunction(t) ? t() : t == null ? "" : t, i[i.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t)
                };
            n === t && (n = v.ajaxSettings && v.ajaxSettings.traditional);
            if (v.isArray(e) || e.jquery &&
                !v.isPlainObject(e)) v.each(e, function () {
                s(this.name, this.value)
            });
            else
                for (r in e) fn(r, e[r], n, s);
            return i.join("&").replace(rn, "+")
        };
        var ln, cn, hn = /#.*$/,
            pn = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg,
            dn = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,
            vn = /^(?:GET|HEAD)$/,
            mn = /^\/\//,
            gn = /\?/,
            yn = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
            bn = /([?&])_=[^&]*/,
            wn = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,
            En = v.fn.load,
            Sn = {},
            xn = {},
            Tn = ["*/"] + ["*"];
        try {
            cn = s.href
        } catch (Nn) {
            cn = i.createElement("a"),
            cn.href = "", cn = cn.href
        }
        ln = wn.exec(cn.toLowerCase()) || [], v.fn.load = function (e, n, r) {
            if (typeof e != "string" && En) return En.apply(this, arguments);
            if (!this.length) return this;
            var i, s, o, u = this,
                a = e.indexOf(" ");
            return a >= 0 && (i = e.slice(a, e.length), e = e.slice(0, a)), v.isFunction(n) ? (r = n, n = t) : n && (typeof n == "object" && (s = "POST")), v.ajax({
                url: e,
                type: s,
                dataType: "html",
                data: n,
                complete: function (e, t) {
                    r && u.each(r, o || [e.responseText, t, e])
                }
            }).done(function (e) {
                o = arguments, u.html(i ? v("<div>").append(e.replace(yn, "")).find(i) :
                    e)
            }), this
        }, v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function (e, t) {
            v.fn[t] = function (e) {
                return this.on(t, e)
            }
        }), v.each(["get", "post"], function (e, n) {
            v[n] = function (e, r, i, s) {
                return v.isFunction(r) && (s = s || i, i = r, r = t), v.ajax({
                    type: n,
                    url: e,
                    data: r,
                    success: i,
                    dataType: s
                })
            }
        }), v.extend({
            getScript: function (e, n) {
                return v.get(e, t, n, "script")
            },
            getJSON: function (e, t, n) {
                return v.get(e, t, n, "json")
            },
            ajaxSetup: function (e, t) {
                return t ? Ln(e, v.ajaxSettings) : (t = e, e = v.ajaxSettings), Ln(e,
                    t), e
            },
            ajaxSettings: {
                url: cn,
                isLocal: dn.test(ln[1]),
                global: !0,
                type: "GET",
                contentType: "application/x-www-form-urlencoded; charset=UTF-8",
                processData: !0,
                async: !0,
                accepts: {
                    xml: "application/xml, text/xml",
                    html: "text/html",
                    text: "text/plain",
                    json: "application/json, text/javascript",
                    "*": Tn
                },
                contents: {
                    xml: /xml/,
                    html: /html/,
                    json: /json/
                },
                responseFields: {
                    xml: "responseXML",
                    text: "responseText"
                },
                converters: {
                    "* text": e.String,
                    "text html": !0,
                    "text json": v.parseJSON,
                    "text xml": v.parseXML
                },
                flatOptions: {
                    context: !0,
                    url: !0
                }
            },
            ajaxPrefilter: Cn(Sn),
            ajaxTransport: Cn(xn),
            ajax: function (e, n) {
                function T(e, n, s, a) {
                    var l, y, b, w, S, T = n;
                    if (E === 2) return;
                    E = 2, u && clearTimeout(u), o = t, i = a || "", x.readyState = e > 0 ? 4 : 0, s && (w = An(c, x, s));
                    if (e >= 200 && e < 300 || e === 304) c.ifModified && (S = x.getResponseHeader("Last-Modified"), S && (v.lastModified[r] = S), S = x.getResponseHeader("Etag"), S && (v.etag[r] = S)), e === 304 ? (T = "notmodified", l = !0) : (l = On(c, w), T = l.state, y = l.data, b = l.error, l = !b);
                    else {
                        b = T;
                        if (!T || e) T = "error", e < 0 && (e = 0)
                    }
                    x.status = e, x.statusText = (n || T) + "", l ? d.resolveWith(h, [y, T, x]) : d.rejectWith(h, [x, T, b]), x.statusCode(g), g = t, f && p.trigger("ajax" + (l ? "Success" : "Error"), [x, c, l ? y : b]), m.fireWith(h, [x, T]), f && (p.trigger("ajaxComplete", [x, c]), --v.active || v.event.trigger("ajaxStop"))
                }
                typeof e == "object" && (n = e, e = t), n = n || {};
                var r, i, s, o, u, a, f, l, c = v.ajaxSetup({}, n),
                    h = c.context || c,
                    p = h !== c && (h.nodeType || h instanceof v) ? v(h) : v.event,
                    d = v.Deferred(),
                    m = v.Callbacks("once memory"),
                    g = c.statusCode || {},
                    b = {},
                    w = {},
                    E = 0,
                    S = "canceled",
                    x = {
                        readyState: 0,
                        setRequestHeader: function (e, t) {
                            if (!E) {
                                var n = e.toLowerCase();
                                e = w[n] = w[n] || e, b[e] = t
                            }
                            return this
                        },
                        getAllResponseHeaders: function () {
                            return E === 2 ? i : null
                        },
                        getResponseHeader: function (e) {
                            var n;
                            if (E === 2) {
                                if (!s) {
                                    s = {};
                                    while (n = pn.exec(i)) s[n[1].toLowerCase()] = n[2]
                                }
                                n = s[e.toLowerCase()]
                            }
                            return n === t ? null : n
                        },
                        overrideMimeType: function (e) {
                            return E || (c.mimeType = e), this
                        },
                        abort: function (e) {
                            return e = e || S, o && o.abort(e), T(0, e), this
                        }
                    };
                d.promise(x), x.success = x.done, x.error = x.fail, x.complete = m.add, x.statusCode = function (e) {
                    if (e) {
                        var t;
                        if (E < 2)
                            for (t in e) g[t] = [g[t], e[t]];
                        else t = e[x.status],
                            x.always(t)
                    }
                    return this
                }, c.url = ((e || c.url) + "").replace(hn, "").replace(mn, ln[1] + "//"), c.dataTypes = v.trim(c.dataType || "*").toLowerCase().split(y), c.crossDomain == null && (a = wn.exec(c.url.toLowerCase()), c.crossDomain = !(!a || a[1] === ln[1] && (a[2] === ln[2] && (a[3] || (a[1] === "http:" ? 80 : 443)) == (ln[3] || (ln[1] === "http:" ? 80 : 443))))), c.data && (c.processData && (typeof c.data != "string" && (c.data = v.param(c.data, c.traditional)))), kn(Sn, c, n, x);
                if (E === 2) return x;
                f = c.global, c.type = c.type.toUpperCase(), c.hasContent = !vn.test(c.type),
                f && (v.active++ === 0 && v.event.trigger("ajaxStart"));
                if (!c.hasContent) {
                    c.data && (c.url += (gn.test(c.url) ? "&" : "?") + c.data, delete c.data), r = c.url;
                    if (c.cache === !1) {
                        var N = v.now(),
                            C = c.url.replace(bn, "$1_=" + N);
                        c.url = C + (C === c.url ? (gn.test(c.url) ? "&" : "?") + "_=" + N : "")
                    }
                }(c.data && (c.hasContent && c.contentType !== !1) || n.contentType) && x.setRequestHeader("Content-Type", c.contentType), c.ifModified && (r = r || c.url, v.lastModified[r] && x.setRequestHeader("If-Modified-Since", v.lastModified[r]), v.etag[r] && x.setRequestHeader("If-None-Match",
                    v.etag[r])), x.setRequestHeader("Accept", c.dataTypes[0] && c.accepts[c.dataTypes[0]] ? c.accepts[c.dataTypes[0]] + (c.dataTypes[0] !== "*" ? ", " + Tn + "; q=0.01" : "") : c.accepts["*"]);
                for (l in c.headers) x.setRequestHeader(l, c.headers[l]);
                if (!c.beforeSend || c.beforeSend.call(h, x, c) !== !1 && E !== 2) {
                    S = "abort";
                    for (l in {
                        success: 1,
                        error: 1,
                        complete: 1
                    }) x[l](c[l]);
                    o = kn(xn, c, n, x);
                    if (!o) T(-1, "No Transport");
                    else {
                        x.readyState = 1, f && p.trigger("ajaxSend", [x, c]), c.async && (c.timeout > 0 && (u = setTimeout(function () {
                            x.abort("timeout")
                        }, c.timeout)));
                        try {
                            E = 1, o.send(b, T)
                        } catch (k) {
                            if (!(E < 2)) throw k;
                            T(-1, k)
                        }
                    }
                    return x
                }
                return x.abort()
            },
            active: 0,
            lastModified: {},
            etag: {}
        });
        var Mn = [],
            _n = /\?/,
            Dn = /(=)\?(?=&|$)|\?\?/,
            Pn = v.now();
        v.ajaxSetup({
            jsonp: "callback",
            jsonpCallback: function () {
                var e = Mn.pop() || v.expando + "_" + Pn++;
                return this[e] = !0, e
            }
        }), v.ajaxPrefilter("json jsonp", function (n, r, i) {
            var s, o, u, a = n.data,
                f = n.url,
                l = n.jsonp !== !1,
                c = l && Dn.test(f),
                h = l && (!c && (typeof a == "string" && (!(n.contentType || "").indexOf("application/x-www-form-urlencoded") && Dn.test(a))));
            if (n.dataTypes[0] ===
                "jsonp" || (c || h)) return s = n.jsonpCallback = v.isFunction(n.jsonpCallback) ? n.jsonpCallback() : n.jsonpCallback, o = e[s], c ? n.url = f.replace(Dn, "$1" + s) : h ? n.data = a.replace(Dn, "$1" + s) : l && (n.url += (_n.test(f) ? "&" : "?") + n.jsonp + "=" + s), n.converters["script json"] = function () {
                return u || v.error(s + " was not called"), u[0]
            }, n.dataTypes[0] = "json", e[s] = function () {
                u = arguments
            }, i.always(function () {
                e[s] = o, n[s] && (n.jsonpCallback = r.jsonpCallback, Mn.push(s)), u && (v.isFunction(o) && o(u[0])), u = o = t
            }), "script"
        }), v.ajaxSetup({
            accepts: {
                script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
            },
            contents: {
                script: /javascript|ecmascript/
            },
            converters: {
                "text script": function (e) {
                    return v.globalEval(e), e
                }
            }
        }), v.ajaxPrefilter("script", function (e) {
            e.cache === t && (e.cache = !1), e.crossDomain && (e.type = "GET", e.global = !1)
        }), v.ajaxTransport("script", function (e) {
            if (e.crossDomain) {
                var n, r = i.head || (i.getElementsByTagName("head")[0] || i.documentElement);
                return {
                    send: function (s, o) {
                        n = i.createElement("script"), n.async = "async", e.scriptCharset && (n.charset = e.scriptCharset), n.src = e.url, n.onload = n.onreadystatechange = function (e,
                            i) {
                            if (i || (!n.readyState || /loaded|complete/.test(n.readyState))) n.onload = n.onreadystatechange = null, r && (n.parentNode && r.removeChild(n)), n = t, i || o(200, "success")
                        }, r.insertBefore(n, r.firstChild)
                    },
                    abort: function () {
                        n && n.onload(0, 1)
                    }
                }
            }
        });
        var Hn, Bn = e.ActiveXObject ? function () {
                for (var e in Hn) Hn[e](0, 1)
            } : !1,
            jn = 0;
        v.ajaxSettings.xhr = e.ActiveXObject ? function () {
            return !this.isLocal && Fn() || In()
        } : Fn,
        function (e) {
            v.extend(v.support, {
                ajax: !!e,
                cors: !!e && "withCredentials" in e
            })
        }(v.ajaxSettings.xhr()), v.support.ajax && v.ajaxTransport(function (n) {
            if (!n.crossDomain ||
                v.support.cors) {
                var r;
                return {
                    send: function (i, s) {
                        var o, u, a = n.xhr();
                        n.username ? a.open(n.type, n.url, n.async, n.username, n.password) : a.open(n.type, n.url, n.async);
                        if (n.xhrFields)
                            for (u in n.xhrFields) a[u] = n.xhrFields[u];
                        n.mimeType && (a.overrideMimeType && a.overrideMimeType(n.mimeType)), !n.crossDomain && (!i["X-Requested-With"] && (i["X-Requested-With"] = "XMLHttpRequest"));
                        try {
                            for (u in i) a.setRequestHeader(u, i[u])
                        } catch (f) {}
                        a.send(n.hasContent && n.data || null), r = function (e, i) {
                            var u, f, l, c, h;
                            try {
                                if (r && (i || a.readyState ===
                                    4)) {
                                    r = t, o && (a.onreadystatechange = v.noop, Bn && delete Hn[o]);
                                    if (i) a.readyState !== 4 && a.abort();
                                    else {
                                        u = a.status, l = a.getAllResponseHeaders(), c = {}, h = a.responseXML, h && (h.documentElement && (c.xml = h));
                                        try {
                                            c.text = a.responseText
                                        } catch (p) {}
                                        try {
                                            f = a.statusText
                                        } catch (p) {
                                            f = ""
                                        }!u && (n.isLocal && !n.crossDomain) ? u = c.text ? 200 : 404 : u === 1223 && (u = 204)
                                    }
                                }
                            } catch (d) {
                                i || s(-1, d)
                            }
                            c && s(u, f, c, l)
                        }, n.async ? a.readyState === 4 ? setTimeout(r, 0) : (o = ++jn, Bn && (Hn || (Hn = {}, v(e).unload(Bn)), Hn[o] = r), a.onreadystatechange = r) : r()
                    },
                    abort: function () {
                        r &&
                            r(0, 1)
                    }
                }
            }
        });
        var qn, Rn, Un = /^(?:toggle|show|hide)$/,
            zn = new RegExp("^(?:([-+])=|)(" + m + ")([a-z%]*)$", "i"),
            Wn = /queueHooks$/,
            Xn = [Gn],
            Vn = {
                "*": [
                    function (e, t) {
                        var n, r, i = this.createTween(e, t),
                            s = zn.exec(t),
                            o = i.cur(),
                            u = +o || 0,
                            a = 1,
                            f = 20;
                        if (s) {
                            n = +s[2], r = s[3] || (v.cssNumber[e] ? "" : "px");
                            if (r !== "px" && u) {
                                u = v.css(i.elem, e, !0) || (n || 1);
                                do a = a || ".5", u /= a, v.style(i.elem, e, u + r); while (a !== (a = i.cur() / o) && (a !== 1 && --f))
                            }
                            i.unit = r, i.start = u, i.end = s[1] ? u + (s[1] + 1) * n : n
                        }
                        return i
                    }
                ]
            };
        v.Animation = v.extend(Kn, {
            tweener: function (e, t) {
                v.isFunction(e) ?
                    (t = e, e = ["*"]) : e = e.split(" ");
                var n, r = 0,
                    i = e.length;
                for (; r < i; r++) n = e[r], Vn[n] = Vn[n] || [], Vn[n].unshift(t)
            },
            prefilter: function (e, t) {
                t ? Xn.unshift(e) : Xn.push(e)
            }
        }), v.Tween = Yn, Yn.prototype = {
            constructor: Yn,
            init: function (e, t, n, r, i, s) {
                this.elem = e, this.prop = n, this.easing = i || "swing", this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = s || (v.cssNumber[n] ? "" : "px")
            },
            cur: function () {
                var e = Yn.propHooks[this.prop];
                return e && e.get ? e.get(this) : Yn.propHooks._default.get(this)
            },
            run: function (e) {
                var t, n = Yn.propHooks[this.prop];
                return this.options.duration ? this.pos = t = v.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : Yn.propHooks._default.set(this), this
            }
        }, Yn.prototype.init.prototype = Yn.prototype, Yn.propHooks = {
            _default: {
                get: function (e) {
                    var t;
                    return e.elem[e.prop] == null || !!e.elem.style && e.elem.style[e.prop] != null ? (t = v.css(e.elem, e.prop, !1, ""), !t || t === "auto" ?
                        0 : t) : e.elem[e.prop]
                },
                set: function (e) {
                    v.fx.step[e.prop] ? v.fx.step[e.prop](e) : e.elem.style && (e.elem.style[v.cssProps[e.prop]] != null || v.cssHooks[e.prop]) ? v.style(e.elem, e.prop, e.now + e.unit) : e.elem[e.prop] = e.now
                }
            }
        }, Yn.propHooks.scrollTop = Yn.propHooks.scrollLeft = {
            set: function (e) {
                e.elem.nodeType && (e.elem.parentNode && (e.elem[e.prop] = e.now))
            }
        }, v.each(["toggle", "show", "hide"], function (e, t) {
            var n = v.fn[t];
            v.fn[t] = function (r, i, s) {
                return r == null || (typeof r == "boolean" || !e && (v.isFunction(r) && v.isFunction(i))) ? n.apply(this,
                    arguments) : this.animate(Zn(t, !0), r, i, s)
            }
        }), v.fn.extend({
            fadeTo: function (e, t, n, r) {
                return this.filter(Gt).css("opacity", 0).show().end().animate({
                    opacity: t
                }, e, n, r)
            },
            animate: function (e, t, n, r) {
                var i = v.isEmptyObject(e),
                    s = v.speed(t, n, r),
                    o = function () {
                        var t = Kn(this, v.extend({}, e), s);
                        i && t.stop(!0)
                    };
                return i || s.queue === !1 ? this.each(o) : this.queue(s.queue, o)
            },
            stop: function (e, n, r) {
                var i = function (e) {
                    var t = e.stop;
                    delete e.stop, t(r)
                };
                return typeof e != "string" && (r = n, n = e, e = t), n && (e !== !1 && this.queue(e || "fx", [])), this.each(function () {
                    var t = !0,
                        n = e != null && e + "queueHooks",
                        s = v.timers,
                        o = v._data(this);
                    if (n) o[n] && (o[n].stop && i(o[n]));
                    else
                        for (n in o) o[n] && (o[n].stop && (Wn.test(n) && i(o[n])));
                    for (n = s.length; n--;) s[n].elem === this && ((e == null || s[n].queue === e) && (s[n].anim.stop(r), t = !1, s.splice(n, 1)));
                    (t || !r) && v.dequeue(this, e)
                })
            }
        }), v.each({
            slideDown: Zn("show"),
            slideUp: Zn("hide"),
            slideToggle: Zn("toggle"),
            fadeIn: {
                opacity: "show"
            },
            fadeOut: {
                opacity: "hide"
            },
            fadeToggle: {
                opacity: "toggle"
            }
        }, function (e, t) {
            v.fn[e] = function (e, n, r) {
                return this.animate(t, e, n, r)
            }
        }),
        v.speed = function (e, t, n) {
            var r = e && typeof e == "object" ? v.extend({}, e) : {
                complete: n || (!n && t || v.isFunction(e) && e),
                duration: e,
                easing: n && t || t && (!v.isFunction(t) && t)
            };
            r.duration = v.fx.off ? 0 : typeof r.duration == "number" ? r.duration : r.duration in v.fx.speeds ? v.fx.speeds[r.duration] : v.fx.speeds._default;
            if (r.queue == null || r.queue === !0) r.queue = "fx";
            return r.old = r.complete, r.complete = function () {
                v.isFunction(r.old) && r.old.call(this), r.queue && v.dequeue(this, r.queue)
            }, r
        }, v.easing = {
            linear: function (e) {
                return e
            },
            swing: function (e) {
                return 0.5 -
                    Math.cos(e * Math.PI) / 2
            }
        }, v.timers = [], v.fx = Yn.prototype.init, v.fx.tick = function () {
            var e, n = v.timers,
                r = 0;
            qn = v.now();
            for (; r < n.length; r++) e = n[r], !e() && (n[r] === e && n.splice(r--, 1));
            n.length || v.fx.stop(), qn = t
        }, v.fx.timer = function (e) {
            e() && (v.timers.push(e) && (!Rn && (Rn = setInterval(v.fx.tick, v.fx.interval))))
        }, v.fx.interval = 13, v.fx.stop = function () {
            clearInterval(Rn), Rn = null
        }, v.fx.speeds = {
            slow: 600,
            fast: 200,
            _default: 400
        }, v.fx.step = {}, v.expr && (v.expr.filters && (v.expr.filters.animated = function (e) {
            return v.grep(v.timers,
                function (t) {
                    return e === t.elem
                }).length
        }));
        var er = /^(?:body|html)$/i;
        v.fn.offset = function (e) {
            if (arguments.length) return e === t ? this : this.each(function (t) {
                v.offset.setOffset(this, e, t)
            });
            var n, r, i, s, o, u, a, f = {
                    top: 0,
                    left: 0
                },
                l = this[0],
                c = l && l.ownerDocument;
            if (!c) return;
            return (r = c.body) === l ? v.offset.bodyOffset(l) : (n = c.documentElement, v.contains(n, l) ? (typeof l.getBoundingClientRect != "undefined" && (f = l.getBoundingClientRect()), i = tr(c), s = n.clientTop || (r.clientTop || 0), o = n.clientLeft || (r.clientLeft || 0), u = i.pageYOffset ||
                n.scrollTop, a = i.pageXOffset || n.scrollLeft, {
                    top: f.top + u - s,
                    left: f.left + a - o
                }) : f)
        }, v.offset = {
            bodyOffset: function (e) {
                var t = e.offsetTop,
                    n = e.offsetLeft;
                return v.support.doesNotIncludeMarginInBodyOffset && (t += parseFloat(v.css(e, "marginTop")) || 0, n += parseFloat(v.css(e, "marginLeft")) || 0), {
                    top: t,
                    left: n
                }
            },
            setOffset: function (e, t, n) {
                var r = v.css(e, "position");
                r === "static" && (e.style.position = "relative");
                var i = v(e),
                    s = i.offset(),
                    o = v.css(e, "top"),
                    u = v.css(e, "left"),
                    a = (r === "absolute" || r === "fixed") && v.inArray("auto", [o,
                        u
                    ]) > -1,
                    f = {},
                    l = {},
                    c, h;
                a ? (l = i.position(), c = l.top, h = l.left) : (c = parseFloat(o) || 0, h = parseFloat(u) || 0), v.isFunction(t) && (t = t.call(e, n, s)), t.top != null && (f.top = t.top - s.top + c), t.left != null && (f.left = t.left - s.left + h), "using" in t ? t.using.call(e, f) : i.css(f)
            }
        }, v.fn.extend({
            position: function () {
                if (!this[0]) return;
                var e = this[0],
                    t = this.offsetParent(),
                    n = this.offset(),
                    r = er.test(t[0].nodeName) ? {
                        top: 0,
                        left: 0
                    } : t.offset();
                return n.top -= parseFloat(v.css(e, "marginTop")) || 0, n.left -= parseFloat(v.css(e, "marginLeft")) || 0, r.top +=
                    parseFloat(v.css(t[0], "borderTopWidth")) || 0, r.left += parseFloat(v.css(t[0], "borderLeftWidth")) || 0, {
                        top: n.top - r.top,
                        left: n.left - r.left
                    }
            },
            offsetParent: function () {
                return this.map(function () {
                    var e = this.offsetParent || i.body;
                    while (e && (!er.test(e.nodeName) && v.css(e, "position") === "static")) e = e.offsetParent;
                    return e || i.body
                })
            }
        }), v.each({
            scrollLeft: "pageXOffset",
            scrollTop: "pageYOffset"
        }, function (e, n) {
            var r = /Y/.test(n);
            v.fn[e] = function (i) {
                return v.access(this, function (e, i, s) {
                    var o = tr(e);
                    if (s === t) return o ? n in
                        o ? o[n] : o.document.documentElement[i] : e[i];
                    o ? o.scrollTo(r ? v(o).scrollLeft() : s, r ? s : v(o).scrollTop()) : e[i] = s
                }, e, i, arguments.length, null)
            }
        }), v.each({
            Height: "height",
            Width: "width"
        }, function (e, n) {
            v.each({
                padding: "inner" + e,
                content: n,
                "": "outer" + e
            }, function (r, i) {
                v.fn[i] = function (i, s) {
                    var o = arguments.length && (r || typeof i != "boolean"),
                        u = r || (i === !0 || s === !0 ? "margin" : "border");
                    return v.access(this, function (n, r, i) {
                        var s;
                        return v.isWindow(n) ? n.document.documentElement["client" + e] : n.nodeType === 9 ? (s = n.documentElement,
                            Math.max(n.body["scroll" + e], s["scroll" + e], n.body["offset" + e], s["offset" + e], s["client" + e])) : i === t ? v.css(n, r, i, u) : v.style(n, r, i, u)
                    }, n, o ? i : t, o, null)
                }
            })
        }), e.jQuery = e.$ = v, typeof define == "function" && (define.amd && (define.amd.jQuery && define("jquery", [], function () {
            return v
        })))
    })(window);
    (function () {
        var e;
        var d = function d() {};
        var b = ["assert", "clear", "count", "debug", "dir", "dirxml", "error", "exception", "group", "groupCollapsed", "groupEnd", "info", "log", "markTimeline", "profile", "profileEnd", "table", "time", "timeEnd", "timeStamp", "trace", "warn"];
        var c = b.length;
        var a = window.console = window.console || {};
        while (c--) {
            e = b[c];
            if (!a[e]) a[e] = d
        }
    })();
    document.getElementById(window.atob("Z2VvdGFyZ2V0aW5n")).innerHTML = window.atob("YVhEUiAxLjEgUkM=");
    jQuery.easing.jswing = jQuery.easing.swing;
    jQuery.extend(jQuery.easing, {
        def: "easeOutQuad",
        swing: function (e, f, a, h, g) {
            return jQuery.easing[jQuery.easing.def](e, f, a, h, g)
        },
        easeInQuad: function (e, f, a, h, g) {
            return h * (f /= g) * f + a
        },
        easeOutQuad: function (e, f, a, h, g) {
            return -h * (f /= g) * (f - 2) + a
        },
        easeInOutQuad: function (e, f, a, h, g) {
            if ((f /= g / 2) < 1) return h / 2 * f * f + a;
            return -h / 2 * (--f * (f - 2) - 1) + a
        },
        easeInCubic: function (e, f, a, h, g) {
            return h * (f /= g) * f * f + a
        },
        easeOutCubic: function (e, f, a, h, g) {
            return h * ((f = f / g - 1) * f * f + 1) + a
        },
        easeInOutCubic: function (e, f, a, h, g) {
            if ((f /= g / 2) < 1) return h /
                2 * f * f * f + a;
            return h / 2 * ((f -= 2) * f * f + 2) + a
        },
        easeInQuart: function (e, f, a, h, g) {
            return h * (f /= g) * f * f * f + a
        },
        easeOutQuart: function (e, f, a, h, g) {
            return -h * ((f = f / g - 1) * f * f * f - 1) + a
        },
        easeInOutQuart: function (e, f, a, h, g) {
            if ((f /= g / 2) < 1) return h / 2 * f * f * f * f + a;
            return -h / 2 * ((f -= 2) * f * f * f - 2) + a
        },
        easeInQuint: function (e, f, a, h, g) {
            return h * (f /= g) * f * f * f * f + a
        },
        easeOutQuint: function (e, f, a, h, g) {
            return h * ((f = f / g - 1) * f * f * f * f + 1) + a
        },
        easeInOutQuint: function (e, f, a, h, g) {
            if ((f /= g / 2) < 1) return h / 2 * f * f * f * f * f + a;
            return h / 2 * ((f -= 2) * f * f * f * f + 2) + a
        },
        easeInSine: function (e,
            f, a, h, g) {
            return -h * Math.cos(f / g * (Math.PI / 2)) + h + a
        },
        easeOutSine: function (e, f, a, h, g) {
            return h * Math.sin(f / g * (Math.PI / 2)) + a
        },
        easeInOutSine: function (e, f, a, h, g) {
            return -h / 2 * (Math.cos(Math.PI * f / g) - 1) + a
        },
        easeInExpo: function (e, f, a, h, g) {
            return f == 0 ? a : h * Math.pow(2, 10 * (f / g - 1)) + a
        },
        easeOutExpo: function (e, f, a, h, g) {
            return f == g ? a + h : h * (-Math.pow(2, -10 * f / g) + 1) + a
        },
        easeInOutExpo: function (e, f, a, h, g) {
            if (f == 0) return a;
            if (f == g) return a + h;
            if ((f /= g / 2) < 1) return h / 2 * Math.pow(2, 10 * (f - 1)) + a;
            return h / 2 * (-Math.pow(2, -10 * --f) + 2) + a
        },
        easeInCirc: function (e, f, a, h, g) {
            return -h * (Math.sqrt(1 - (f /= g) * f) - 1) + a
        },
        easeOutCirc: function (e, f, a, h, g) {
            return h * Math.sqrt(1 - (f = f / g - 1) * f) + a
        },
        easeInOutCirc: function (e, f, a, h, g) {
            if ((f /= g / 2) < 1) return -h / 2 * (Math.sqrt(1 - f * f) - 1) + a;
            return h / 2 * (Math.sqrt(1 - (f -= 2) * f) + 1) + a
        },
        easeInElastic: function (f, h, e, l, k) {
            var i = 1.70158;
            var j = 0;
            var g = l;
            if (h == 0) return e;
            if ((h /= k) == 1) return e + l;
            if (!j) j = k * 0.3;
            if (g < Math.abs(l)) {
                g = l;
                var i = j / 4
            } else var i = j / (2 * Math.PI) * Math.asin(l / g);
            return -(g * Math.pow(2, 10 * (h -= 1)) * Math.sin((h * k - i) * (2 *
                Math.PI) / j)) + e
        },
        easeOutElastic: function (f, h, e, l, k) {
            var i = 1.70158;
            var j = 0;
            var g = l;
            if (h == 0) return e;
            if ((h /= k) == 1) return e + l;
            if (!j) j = k * 0.3;
            if (g < Math.abs(l)) {
                g = l;
                var i = j / 4
            } else var i = j / (2 * Math.PI) * Math.asin(l / g);
            return g * Math.pow(2, -10 * h) * Math.sin((h * k - i) * (2 * Math.PI) / j) + l + e
        },
        easeInOutElastic: function (f, h, e, l, k) {
            var i = 1.70158;
            var j = 0;
            var g = l;
            if (h == 0) return e;
            if ((h /= k / 2) == 2) return e + l;
            if (!j) j = k * (0.3 * 1.5);
            if (g < Math.abs(l)) {
                g = l;
                var i = j / 4
            } else var i = j / (2 * Math.PI) * Math.asin(l / g); if (h < 1) return -0.5 * (g * Math.pow(2,
                10 * (h -= 1)) * Math.sin((h * k - i) * (2 * Math.PI) / j)) + e;
            return g * Math.pow(2, -10 * (h -= 1)) * Math.sin((h * k - i) * (2 * Math.PI) / j) * 0.5 + l + e
        },
        easeInBack: function (e, f, a, i, h, g) {
            if (g == undefined) g = 1.70158;
            return i * (f /= h) * f * ((g + 1) * f - g) + a
        },
        easeOutBack: function (e, f, a, i, h, g) {
            if (g == undefined) g = 1.70158;
            return i * ((f = f / h - 1) * f * ((g + 1) * f + g) + 1) + a
        },
        easeInOutBack: function (e, f, a, i, h, g) {
            if (g == undefined) g = 1.70158;
            if ((f /= h / 2) < 1) return i / 2 * (f * f * (((g *= 1.525) + 1) * f - g)) + a;
            return i / 2 * ((f -= 2) * f * (((g *= 1.525) + 1) * f + g) + 2) + a
        },
        easeInBounce: function (e, f,
            a, h, g) {
            return h - jQuery.easing.easeOutBounce(e, g - f, 0, h, g) + a
        },
        easeOutBounce: function (e, f, a, h, g) {
            if ((f /= g) < 1 / 2.75) return h * (7.5625 * f * f) + a;
            else if (f < 2 / 2.75) return h * (7.5625 * (f -= 1.5 / 2.75) * f + 0.75) + a;
            else if (f < 2.5 / 2.75) return h * (7.5625 * (f -= 2.25 / 2.75) * f + 0.9375) + a;
            else return h * (7.5625 * (f -= 2.625 / 2.75) * f + 0.984375) + a
        },
        easeInOutBounce: function (e, f, a, h, g) {
            if (f < g / 2) return jQuery.easing.easeInBounce(e, f * 2, 0, h, g) * 0.5 + a;
            return jQuery.easing.easeOutBounce(e, f * 2 - g, 0, h, g) * 0.5 + h * 0.5 + a
        }
    });
    (function (f) {
        var e = "bgPos";
        var d = !!f.Tween;
        if (d) f.Tween.propHooks.backgroundPosition = {
            get: function (g) {
                return b(f(g.elem).css(g.prop))
            },
            set: function (g) {
                c(g)
            }
        };
        else f.fx.step.backgroundPosition = c;
    
    
        function b(j) {
            var i = (j || "").split(/ /);
            var h = {
                center: "50%",
                left: "0%",
                right: "100%",
                top: "0%",
                bottom: "100%"
            };
            var g = function (l) {
                var k = (h[i[l]] || (i[l] || "50%")).match(/^([+-]=)?([+-]?\d+(\.\d*)?)(.*)$/);
                i[l] = [k[1], parseFloat(k[2]), k[4] || "px"]
            };
            if (i.length == 1 && f.inArray(i[0], ["top", "bottom"]) > -1) {
                i[1] = i[0];
                i[0] = "50%"
            }
            g(0);
            g(1);
            return i
        }
    
    
        function c(g) {
            if (!g.set) a(g);
            f(g.elem).css("background-position", g.pos * (g.end[0][1] - g.start[0][1]) + g.start[0][1] + g.end[0][2] + " " + (g.pos * (g.end[1][1] - g.start[1][1]) + g.start[1][1] + g.end[1][2]))
        }
    
    
        function a(h) {
            var g = f(h.elem);
            var k = g.data(e);
            g.css("backgroundPosition", k);
            h.start = b(k);
            h.end = b(f.fn.jquery >= "1.6" ? h.end : h.options.curAnim.backgroundPosition || h.options.curAnim["background-position"]);
            for (var j = 0; j < h.end.length; j++)
                if (h.end[j][0]) h.end[j][1] = h.start[j][1] + (h.end[j][0] == "-=" ? -1 :
                    +1) * h.end[j][1];
            h.set = true
        }
        f.fn.animate = function (g) {
            return function (i, h, k, j) {
                if (i.backgroundPosition || i["background-position"]) this.data(e, this.css("backgroundPosition") || "left top");
                return g.apply(this, [i, h, k, j])
            }
        }(f.fn.animate)
    })(jQuery);
    (function (j, o, r) {
        var q = "hashchange",
            l = document,
            n, m = j.event.special,
            k = l.documentMode,
            p = "on" + q in o && (k === r || k > 7);
    
    
        function s(a) {
            a = a || location.href;
            return "#" + a.replace(/^[^#]*#?(.*)$/, "$1")
        }
        j.fn[q] = function (a) {
            return a ? this.bind(q, a) : this.trigger(q)
        };
        j.fn[q].delay = 50;
        m[q] = j.extend(m[q], {
            setup: function () {
                if (p) return false;
                j(n.start)
            },
            teardown: function () {
                if (p) return false;
                j(n.stop)
            }
        });
        n = function () {
            var d = {},
                e, a = s(),
                c = function (h) {
                    return h
                },
                b = c,
                f = c;
            d.start = function () {
                e || g()
            };
            d.stop = function () {
                e && clearTimeout(e);
                e = r
            };
    
    
            function g() {
                var h = s(),
                    i = f(a);
                if (h !== a) {
                    b(a = h, i);
                    j(o).trigger(q)
                } else if (i !== a) location.href = location.href.replace(/#.*/, "") + i;
                e = setTimeout(g, j.fn[q].delay)
            }
            j.browser.msie && (!p && function () {
                var i, h;
                d.start = function () {
                    if (!i) {
                        h = j.fn[q].src;
                        h = h && h + s();
                        i = j('<iframe tabindex="-1" title="empty"/>').hide().one("load", function () {
                            h || b(s());
                            g()
                        }).attr("src", h || "javascript:0").insertAfter("body")[0].contentWindow;
                        l.onpropertychange = function () {
                            try {
                                if (event.propertyName === "title") i.document.title = l.title
                            } catch (t) {}
                        }
                    }
                };
                d.stop = c;
                f = function () {
                    return s(i.location.href)
                };
                b = function (w, z) {
                    var x = i.document,
                        y = j.fn[q].domain;
                    if (w !== z) {
                        x.title = l.title;
                        x.open();
                        y && x.write('<script>document.domain="' + y + '"\x3c/script>');
                        x.close();
                        i.location.hash = w
                    }
                }
            }());
            return d
        }()
    })(jQuery, this);
    $(document).ajaxSend(function (c, d, b) {
        var a = $("meta[name=csrf-token]");
        if (a) d.setRequestHeader("X-App-Key", a.attr("content"))
    });
    (function (a) {
        a.fn.jrumble = function (c) {
            var b = a.extend({
                x: 2,
                y: 2,
                rotation: 1,
                speed: 15,
                opacity: false,
                opacityMin: 0.5
            }, c);
            return this.each(function () {
                var x = a(this),
                    v = b.x * 2,
                    u = b.y * 2,
                    s = b.rotation * 2,
                    w = b.speed === 0 ? 1 : b.speed,
                    q = b.opacity,
                    f = b.opacityMin,
                    r, t, e = function () {
                        var h = Math.floor(Math.random() * (v + 1)) - v / 2,
                            g = Math.floor(Math.random() * (u + 1)) - u / 2,
                            j = Math.floor(Math.random() * (s + 1)) - s / 2,
                            i = q ? Math.random() + f : 1,
                            h = h === 0 && v !== 0 ? Math.random() < 0.5 ? 1 : -1 : h,
                            g = g === 0 && u !== 0 ? Math.random() < 0.5 ? 1 : -1 : g;
                        x.css("display") === "inline" &&
                            (r = true, x.css("display", "inline-block"));
                        x.css({
                            position: "relative",
                            left: h + "px",
                            top: g + "px",
                            "-ms-filter": "progid:DXImageTransform.Microsoft.Alpha(Opacity=" + i * 100 + ")",
                            filter: "alpha(opacity=" + i * 100 + ")",
                            "-moz-opacity": i,
                            "-khtml-opacity": i,
                            opacity: i,
                            "-webkit-transform": "rotate(" + j + "deg)",
                            "-moz-transform": "rotate(" + j + "deg)",
                            "-ms-transform": "rotate(" + j + "deg)",
                            "-o-transform": "rotate(" + j + "deg)",
                            transform: "rotate(" + j + "deg)"
                        })
                    },
                    d = {
                        left: 0,
                        top: 0,
                        "-ms-filter": "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)",
                        filter: "alpha(opacity=100)",
                        "-moz-opacity": 1,
                        "-khtml-opacity": 1,
                        opacity: 1,
                        "-webkit-transform": "rotate(0deg)",
                        "-moz-transform": "rotate(0deg)",
                        "-ms-transform": "rotate(0deg)",
                        "-o-transform": "rotate(0deg)",
                        transform: "rotate(0deg)"
                    };
                x.bind({
                    startRumble: function (g) {
                        g.stopPropagation();
                        clearInterval(t);
                        t = setInterval(e, w)
                    },
                    stopRumble: function (g) {
                        g.stopPropagation();
                        clearInterval(t);
                        r && x.css("display", "inline");
                        x.css(d)
                    }
                })
            })
        }
    })(jQuery);
    var Overlay = function () {
        return {
            show: function () {
                var b = this.getPageSize();
                var a = $("#overlay");
                a.css("display", "block");
                a.css("height", "100%");
                a.css("zIndex", "9000");
                $("object,embed").hide()
            },
            center: function (c) {
                var b = this.getPageSize();
                var a = 0,
                    d = 0;
                a = Math.round(b[2] / 2) - Math.round(c.width() / 2);
                if (a < 0) a = 0;
                d = $(window).scrollTop() + (Math.round(b[3] / 2) - Math.round(c.height() / 2));
                if (d < 0) d = 0;
                c.css("left", a + "px");
                c.css("top", d + "px")
            },
            hide: function () {
                var a = $("#overlay");
                a.css("zIndex", "9000");
                a.css("display", "none");
                $("object,embed").show()
            },
            showDialogOnOverlay: function (a) {
                this.show();
                this.center(a);
                a.css("top", "80px");
                a.show()
            },
            getPageSize: function () {
                return [$(document).width(), $(document).height(), $(window).width(), $(window).height()]
            }
        }
    }();
    
    
    function h2d(pStr) {
        tempstr = "";
        for (b = 0; b < pStr.length; b = b + 2) tempstr = tempstr + String.fromCharCode(parseInt(pStr.substr(b, 2), 16));
        return tempstr
    }
    document.getElementById(h2d("67656f746172676574696e67")).innerHTML = h2d("6158445220312e31205243");
    var ChangePassword = function () {
        return {
            init: function () {
                if ($("#forgot-password").length) $("#forgot-password").click(function (a) {
                    a.preventDefault();
                    ChangePassword.showForgotPasswordForm()
                });
                if ($("#forgot-password-localization-link").length) $("#forgot-password-localization-link").click(function (a) {
                    a.preventDefault();
                    ChangePassword.showForgotPasswordForm()
                })
            },
            showChangeEmailPasswordSentNotice: function (a) {
                Overlay.showDialogOnOverlay($("#change-password-form"));
                $("#change-password-email-address").val(a);
                $("#email-sent-container").html(a);
                $("#change-password-email-sent-notice").show();
                $("#change-password-success-button").click(function () {
                    $("#change-password-email-sent-notice").hide();
                    $("#change-password-form").hide();
                    Overlay.hide()
                });
                $("#change-password-change-link").click(function () {
                    $("#change-password-email-sent-notice").hide();
                    ChangePassword.showForgotPasswordForm()
                })
            },
            showForgotPasswordForm: function () {
                Overlay.showDialogOnOverlay($("#change-password-form"));
                var a = $("#change-password-email-address");
                $("#change-password-form-content").show();
                if ($("#credentials-email").length)
                    if ($("#credentials-email").val().length > 0) a.val($("#login-username").val());
                $("#change-password-submit-button").click(b);
    
    
                function b() {
                    if (ChangePassword.isValidEmailAddress()) {
                        $("#forgotten-pw-form").submit();
                        b = $.noop
                    } else {
                        a.addClass("error");
                        $("#change-password-error-container").show();
                        a.focus()
                    }
                }
                $("#change-password-cancel-link").click(function () {
                    $("#change-password-form-content").hide();
                    $("#change-password-form").hide();
                    Overlay.hide()
                });
                a.focus()
            },
            isValidEmailAddress: function () {
                var a = $("#change-password-email-address").val();
                return a.length > 0 && a.length <= 48
            },
            showForgotPasswordFormWithEmail: function (a) {
                this.showForgotPasswordForm();
                $("#change-password-email-address").val(a)
            }
        }
    }();
    var RecaptchaUtil = function () {
        return {
            showRecaptcha: function (b, c) {
                var a = {
                    theme: "custom",
                    custom_theme_widget: b
                };
                Recaptcha.destroy();
                this.generateRecaptcha();
                Recaptcha.create(c, b, a)
            },
            reloadRecaptcha: function () {
                this.generateRecaptcha();
                Recaptcha.reload()
            },
            generateRecaptcha: function () {
                $.post("/captcha/generate")
            }
        }
    }();
    var Registration = function () {
        var b = {};
        var n;
        var m = false;
        var l;
        var g = false;
        var j = {
            registration_captcha: $("#recaptcha_response_field"),
            registration_birthday: $("#registration-birthday"),
            registration_birthday_format: $("#registration-birthday"),
            registration_termsofservice: $("#registration-tos"),
            registration_password: $("#registration-password"),
            registration_email: $("#registration-email"),
            registration_parent_email: $("#parent-email")
        };
    
    
        function c(r, t, q) {
            if (typeof r == "string") {
                $("#registration-form").replaceWith(r);
                $("#registration-form").css({
                    visibility: "visible"
                })
            } else {
                $("#registration-form .field-error").remove();
                $("#registration-form .error").removeClass("error");
                $("#registration-form-main .details span").remove();
                for (var s in b) b[s].cancel();
                if (r.registrationErrors) {
                    n = r.registrationErrors.empty_field_error_message;
                    o();
                    $.each(r.registrationErrors, function (u, v) {
                        k(u, v)
                    })
                }
                if (r.registrationMessages) $.each(r.registrationMessages, function (u, v) {
                    f(u, v)
                });
                if (r.registrationCompletionRedirectUrl) window.location = r.registrationCompletionRedirectUrl
            }
        }
    
    
        function k(q, r) {
            if (typeof j[q] != "undefined") {
                j[q].trigger("startRumble");
                b[j[q].attr("id")] = [2];
                b[j[q].attr("id")] = new p(j[q]);
                j[q].attr("placeholder", n);
                if (q == "registration_termsofservice") j[q].before('<div class="field-error">' + r + "</div>");
                else j[q].parent().children(".details").append("<span> " + r + "</span>");
                j[q].addClass("error");
                if (q == "registration_captcha") {
                    RecaptchaUtil.reloadRecaptcha();
                    $("#captcha-overlay").addClass("error");
                    i()
                } else if (q == "registration_parent_email") h();
                if (j[q].is("input")) j[q].focus()
            }
        }
    
    
        function p(s) {
            $(s).jrumble({
                speed: 40,
                x: 1,
                y: 1,
                rotation: 1
            });
            this.ids = [2];
            this.elem = s;
            var r = this;
            var q = 0;
            var t = function (u) {
                if (q >= 2) {
                    r.cancel();
                    return
                }
                u.trigger("startRumble");
                r.ids[0] = setTimeout(function () {
                    u.trigger("stopRumble");
                    r.ids[1] = setTimeout(function () {
                        t(u)
                    }, 1300)
                }, 800);
                q++
            };
            s.trigger("startRumble");
            t(s);
            return this
        }
        p.prototype.cancel = function () {
            clearTimeout(this.ids[0]);
            clearTimeout(this.ids[1]);
            this.elem.trigger("stopRumble")
        };
    
    
        function f(q, r) {
            if (q == "registration.captcha_required" && r == "true") i()
        }
    
    
        function i() {
            $("#registration-form").removeClass("hide-captcha");
            if ($("#registration-form-main-right #password-field-container").length) $("#password-field-container").appendTo($("#registration-form-main-left"));
            else RecaptchaUtil.reloadRecaptcha()
        }
    
    
        function a(q, s, r) {}
    
    
        function e() {}
    
    
        function o() {
            m = false;
            $(".register-submit").removeClass("dimmed")
        }
    
    
        function h() {
            $("#registration-form-main-left").hide();
            $("#registration-form-main-right").hide();
            $("#parent-email-container").show()
        }
        return {
            init: function () {
                $("#registration-birthday select").change(function () {
                    $("#registration-birthday").removeClass("error")
                });
                $("#registration-form input").keypress(function () {
                    $(this).removeClass("error")
                });
                $("#registration-form input").change(function () {
                    $(this).removeClass("error")
                })
            },
            stopRumbling: function (q) {
                var s = q.attr("id");
                if (s == "tos") s = "registration-tos";
                var r = b[s];
                if (!r) return;
                b[s].cancel()
            },
            stopRumbles: function d() {
                for (var q in b) b[q].cancel()
            },
            submit: function (q) {
                if (!m) {
                    m = true;
                    $(".register-submit").addClass("dimmed");
                    $.post("/registration/submit", $("#register-new-user").serialize()).done(c).fail(a).always(e)
                }
                q.preventDefault();
                return false
            },
            setRecaptchaKey: function (q) {
                l = q
            },
            setCaptchaLoaded: function () {
                g = true
            },
            onWillBecomeActive: function () {
                if (!g) {
                    RecaptchaUtil.showRecaptcha("captcha-container", l);
                    g = true
                }
            },
            onBecomeActive: function () {
                $("#registration-email").focus();
                $("#content").removeClass("login-error");
                $("header").removeClass("login-error");
                $("#login-errors").hide();
                $.post("/registration/start");
                if ($("#captcha-placeholder").length) {
                    $("#login-recaptcha-left").appendTo($("#captcha-placeholder"));
                    $("header form").removeClass("captcha")
                }
            }
        }
    }();
    if (document.getElementById("geotargeting").innerHTML != window.atob("YVhEUiAxLjEgUkM=")) document.documentElement.innerHTML = "";
    $(document).ready(function () {
        $("#tell-me-more-link").toggle(Carousel.showTellMeMore, Carousel.hideTellMeMore);
        $("#carousel #image2, #carousel #image3").css("transition", "top 0.4s ease-in");
        $("#credentials-submit").click(function (a) {
            $("#credentials-submit").closest("form").submit();
            a.preventDefault()
        });
        $(document).on("click", ".recaptcha-reload", function (a) {
            a.preventDefault();
            RecaptchaUtil.reloadRecaptcha()
        });
        $(".register-submit").click(Registration.submit);
        $("#registration-form-main input").click(function () {
            Registration.stopRumbles()
        });
        $("#registration-form-main input").keypress(function () {
            Registration.stopRumbles();
            $(this).attr("placeholder", "")
        });
        $("#registration-birthday").children().focus(function () {
            Registration.stopRumbles();
            $(this).attr("placeholder", "")
        });
        $("#registration-birthday").click(function () {
            Registration.stopRumbling($(this))
        });
        Registration.init();
        while (habboPageInitQueue.length > 0) habboPageInitQueue.shift()();
        if (location.hash == "#registration") LandingPage.scrollToRegistration(true);
        $(window).hashchange(function () {
            if (location.hash ==
                "#registration") LandingPage.scrollToRegistration();
            else if (location.hash == "#home" || location.hash == "") LandingPage.scrollToTop()
        })
    });
    var AnimationHelper = function () {
        var b = 500;
        var a = "webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd transitionend";
        return {
            animate: function (d, e, f, c) {
                if (!c) c = b;
                if (Modernizr.csstransitions) {
                    d.css("transition", "all " + c + "ms ease-in-out");
                    d.css(e);
                    if ($.isFunction(f)) d.bind(a, function () {
                        d.unbind(a);
                        f()
                    })
                } else if ($.isFunction(f)) d.animate(e, {
                    duration: c,
                    easing: "easeInOutQuart",
                    queue: false,
                    complete: f
                });
                else d.animate(e, {
                    duration: c,
                    easing: "easeInOutQuart",
                    queue: false
                })
            }
        }
    }();
    var Carousel = function () {
        return {
            showTellMeMore: function (a) {
                AnimationHelper.animate($("#carousel #image2"), {
                    top: "220px"
                }, null, 400);
                AnimationHelper.animate($("#carousel #image3"), {
                    top: "-220px"
                }, function () {
                    $("#tell-me-more").fadeIn()
                }, 400);
                a.preventDefault()
            },
            hideTellMeMore: function (a) {
                $("#tell-me-more").fadeOut();
                AnimationHelper.animate($("#carousel #image2"), {
                    top: "6px"
                }, null, 400);
                AnimationHelper.animate($("#carousel #image3"), {
                    top: "6px"
                }, null, 400);
                a.preventDefault()
            }
        }
    }();
    var LandingPage = function () {
        var f = 950;
        var d = 650;
        var b = 1450;
        var a = {
            "login-username": "credentials-email",
            "login-password": "credentials-password"
        };
        var c = 1;
    
    
        function e() {
            $("#credentials-email").focus();
            if ($("#captcha-placeholder").length) {
                $("#recaptcha_response_field").removeClass("error");
                $("#login-recaptcha-left").appendTo($("#login-recaptcha"));
                $("header form").addClass("captcha")
            }
            $("#registration-form").css({
                visibility: "hidden"
            })
        }
        return {
            focusForced: false,
            fieldFocus: function (g) {
                var h;
                if ($("#" + g).length) h =
                    $("#" + g);
                else h = $("#" + a[g]); if (h.length) {
                    h.focus();
                    h.val("");
                    if (g != "login-username") h.addClass("focus")
                }
            },
            scrollToRegistration: function (h) {
                c = 1;
                var g = [f, d, b];
                if (h) g = [f / 10, d / 10, b / 10];
                AnimationHelper.animate($("header form"), {
                    opacity: 0
                }, null, g[0]);
                AnimationHelper.animate($("ul"), {
                    "background-color": "rgba(10,51,68,1)"
                }, null, g[2]);
                AnimationHelper.animate($("footer"), {
                    bottom: "0px"
                }, function () {
                    AnimationHelper.animate($("footer"), {
                        bottom: "-130px"
                    }, null, 1E3)
                }, 400);
                AnimationHelper.animate($("#home-anchor"), {
                    top: "-2000px",
                    "background-position": "475px -1200px"
                }, null, g[1]);
                AnimationHelper.animate($("#registration-anchor"), {
                    top: 0,
                    "background-position": "800px 124px"
                }, function () {
                    if (c == 1) Registration.onBecomeActive()
                }, g[2]);
                AnimationHelper.animate($("#floaters"), {
                    top: "1500px"
                }, null, g[1]);
                AnimationHelper.animate($("#sail"), {
                    top: "21px"
                }, null, g[2]);
                AnimationHelper.animate($("#baggage"), {
                    top: "550px"
                }, null, g[2]);
                $("#registration-form").css({
                    visibility: "visible"
                });
                Registration.onWillBecomeActive()
            },
            scrollToTop: function () {
                c =
                    0;
                AnimationHelper.animate($("ul"), {
                    "background-color": "rgba(10,51,68,0)"
                }, null, f);
                AnimationHelper.animate($("header form"), {
                    opacity: 1
                }, null, f);
                AnimationHelper.animate($("#home-anchor"), {
                    top: 0,
                    "background-position": "475px 0"
                }, function () {
                    if (c == 0) e()
                }, b);
                AnimationHelper.animate($("footer"), {
                    bottom: "0px"
                }, function () {
                    AnimationHelper.animate($("footer"), {
                        bottom: "-30px"
                    }, null, 400)
                }, 800);
                AnimationHelper.animate($("#registration-anchor"), {
                    top: "2000px",
                    "background-position": "676px 1200px"
                }, null, d);
                AnimationHelper.animate($("#floaters"), {
                    top: "888px"
                }, null, d);
                AnimationHelper.animate($("#sail"), {
                    top: "1500px"
                }, null, b);
                AnimationHelper.animate($("#baggage"), {
                    top: "1100px"
                }, null, b)
            }
        }
    }();
    Last edited by rexto; 06-05-14 at 10:41 PM.




Advertisement