/*!
 * jQuery JavaScript Library v1.5.2
 * http://jquery.com/
 *
 * Copyright 2011, John Resig
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * Includes Sizzle.js
 * http://sizzlejs.com/
 * Copyright 2011, The Dojo Foundation
 * Released under the MIT, BSD, and GPL Licenses.
 *
 * Date: Thu Mar 31 15:28:23 2011 -0400
 */
(function (a5, M) {
    var ar = a5.document;
    var b = (function () {
        var bt = function (bN, bO) {
                return new bt.fn.init(bN, bO, br)
            },
            bI = a5.jQuery,
            bv = a5.$,
            br, bM = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,
            bB = /\S/,
            bx = /^\s+/,
            bs = /\s+$/,
            bw = /\d/,
            bp = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
            bC = /^[\],:{}\s]*$/,
            bK = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
            bE = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
            by = /(?:^|:|,)(?:\s*\[)+/g,
            bn = /(webkit)[ \/]([\w.]+)/,
            bG = /(opera)(?:.*version)?[ \/]([\w.]+)/,
            bF = /(msie) ([\w.]+)/,
            bH = /(mozilla)(?:.*? rv:([\w.]+))?/,
            bL = navigator.userAgent,
            bJ, bq, e, bA = Object.prototype.toString,
            bu = Object.prototype.hasOwnProperty,
            bo = Array.prototype.push,
            bz = Array.prototype.slice,
            bD = String.prototype.trim,
            bk = Array.prototype.indexOf,
            bm = {};
        bt.fn = bt.prototype = {
            constructor: bt,
            init: function (bN, bR, bQ) {
                var bP, bS, bO, bT;
                if (!bN) {
                    return this
                }
                if (bN.nodeType) {
                    this.context = this[0] = bN;
                    this.length = 1;
                    return this
                }
                if (bN === "body" && !bR && ar.body) {
                    this.context = ar;
                    this[0] = ar.body;
                    this.selector = "body";
                    this.length = 1;
                    return this
                }
                if (typeof bN === "string") {
                    bP = bM.exec(bN);
                    if (bP && (bP[1] || !bR)) {
                        if (bP[1]) {
                            bR = bR instanceof bt ? bR[0] : bR;
                            bT = (bR ? bR.ownerDocument || bR : ar);
                            bO = bp.exec(bN);
                            if (bO) {
                                if (bt.isPlainObject(bR)) {
                                    bN = [ar.createElement(bO[1])];
                                    bt.fn.attr.call(bN, bR, true)
                                } else {
                                    bN = [bT.createElement(bO[1])]
                                }
                            } else {
                                bO = bt.buildFragment([bP[1]], [bT]);
                                bN = (bO.cacheable ? bt.clone(bO.fragment) : bO.fragment).childNodes
                            }
                            return bt.merge(this, bN)
                        } else {
                            bS = ar.getElementById(bP[2]);
                            if (bS && bS.parentNode) {
                                if (bS.id !== bP[2]) {
                                    return bQ.find(bN)
                                }
                                this.length = 1;
                                this[0] = bS
                            }
                            this.context = ar;
                            this.selector = bN;
                            return this
                        }
                    } else {
                        if (!bR || bR.jquery) {
                            return (bR || bQ).find(bN)
                        } else {
                            return this.constructor(bR).find(bN)
                        }
                    }
                } else {
                    if (bt.isFunction(bN)) {
                        return bQ.ready(bN)
                    }
                }
                if (bN.selector !== M) {
                    this.selector = bN.selector;
                    this.context = bN.context
                }
                return bt.makeArray(bN, this)
            },
            selector: "",
            jquery: "1.5.2",
            length: 0,
            size: function () {
                return this.length
            },
            toArray: function () {
                return bz.call(this, 0)
            },
            get: function (bN) {
                return bN == null ? this.toArray() : (bN < 0 ? this[this.length + bN] : this[bN])
            },
            pushStack: function (bO, bQ, bN) {
                var bP = this.constructor();
                if (bt.isArray(bO)) {
                    bo.apply(bP, bO)
                } else {
                    bt.merge(bP, bO)
                }
                bP.prevObject = this;
                bP.context = this.context;
                if (bQ === "find") {
                    bP.selector = this.selector + (this.selector ? " " : "") + bN
                } else {
                    if (bQ) {
                        bP.selector = this.selector + "." + bQ + "(" + bN + ")"
                    }
                }
                return bP
            },
            each: function (bO, bN) {
                return bt.each(this, bO, bN)
            },
            ready: function (bN) {
                bt.bindReady();
                bq.done(bN);
                return this
            },
            eq: function (bN) {
                return bN === -1 ? this.slice(bN) : this.slice(bN, +bN + 1)
            },
            first: function () {
                return this.eq(0)
            },
            last: function () {
                return this.eq(-1)
            },
            slice: function () {
                return this.pushStack(bz.apply(this, arguments), "slice", bz.call(arguments).join(","))
            },
            map: function (bN) {
                return this.pushStack(bt.map(this, function (bP, bO) {
                    return bN.call(bP, bO, bP)
                }))
            },
            end: function () {
                return this.prevObject || this.constructor(null)
            },
            push: bo,
            sort: [].sort,
            splice: [].splice
        };
        bt.fn.init.prototype = bt.fn;
        bt.extend = bt.fn.extend = function () {
            var bW, bP, bN, bO, bT, bU, bS = arguments[0] || {},
                bR = 1,
                bQ = arguments.length,
                bV = false;
            if (typeof bS === "boolean") {
                bV = bS;
                bS = arguments[1] || {};
                bR = 2
            }
            if (typeof bS !== "object" && !bt.isFunction(bS)) {
                bS = {}
            }
            if (bQ === bR) {
                bS = this;
                --bR
            }
            for (; bR < bQ; bR++) {
                if ((bW = arguments[bR]) != null) {
                    for (bP in bW) {
                        bN = bS[bP];
                        bO = bW[bP];
                        if (bS === bO) {
                            continue
                        }
                        if (bV && bO && (bt.isPlainObject(bO) || (bT = bt.isArray(bO)))) {
                            if (bT) {
                                bT = false;
                                bU = bN && bt.isArray(bN) ? bN : []
                            } else {
                                bU = bN && bt.isPlainObject(bN) ? bN : {}
                            }
                            bS[bP] = bt.extend(bV, bU, bO)
                        } else {
                            if (bO !== M) {
                                bS[bP] = bO
                            }
                        }
                    }
                }
            }
            return bS
        };
        bt.extend({
            noConflict: function (bN) {
                a5.$ = bv;
                if (bN) {
                    a5.jQuery = bI
                }
                return bt
            },
            isReady: false,
            readyWait: 1,
            ready: function (bN) {
                if (bN === true) {
                    bt.readyWait--
                }
                if (!bt.readyWait || (bN !== true && !bt.isReady)) {
                    if (!ar.body) {
                        return setTimeout(bt.ready, 1)
                    }
                    bt.isReady = true;
                    if (bN !== true && --bt.readyWait > 0) {
                        return
                    }
                    bq.resolveWith(ar, [bt]);
                    if (bt.fn.trigger) {
                        bt(ar).trigger("ready").unbind("ready")
                    }
                }
            },
            bindReady: function () {
                if (bq) {
                    return
                }
                bq = bt._Deferred();
                if (ar.readyState === "complete") {
                    return setTimeout(bt.ready, 1)
                }
                if (ar.addEventListener) {
                    ar.addEventListener("DOMContentLoaded", e, false);
                    a5.addEventListener("load", bt.ready, false)
                } else {
                    if (ar.attachEvent) {
                        ar.attachEvent("onreadystatechange", e);
                        a5.attachEvent("onload", bt.ready);
                        var bN = false;
                        try {
                            bN = a5.frameElement == null
                        } catch (bO) {}
                        if (ar.documentElement.doScroll && bN) {
                            bl()
                        }
                    }
                }
            },
            isFunction: function (bN) {
                return bt.type(bN) === "function"
            },
            isArray: Array.isArray ||
            function (bN) {
                return bt.type(bN) === "array"
            },
            isWindow: function (bN) {
                return bN && typeof bN === "object" && "setInterval" in bN
            },
            isNaN: function (bN) {
                return bN == null || !bw.test(bN) || isNaN(bN)
            },
            type: function (bN) {
                return bN == null ? String(bN) : bm[bA.call(bN)] || "object"
            },
            isPlainObject: function (bO) {
                if (!bO || bt.type(bO) !== "object" || bO.nodeType || bt.isWindow(bO)) {
                    return false
                }
                if (bO.constructor && !bu.call(bO, "constructor") && !bu.call(bO.constructor.prototype, "isPrototypeOf")) {
                    return false
                }
                var bN;
                for (bN in bO) {}
                return bN === M || bu.call(bO, bN)
            },
            isEmptyObject: function (bO) {
                for (var bN in bO) {
                    return false
                }
                return true
            },
            error: function (bN) {
                throw bN
            },
            parseJSON: function (bN) {
                if (typeof bN !== "string" || !bN) {
                    return null
                }
                bN = bt.trim(bN);
                if (bC.test(bN.replace(bK, "@").replace(bE, "]").replace(by, ""))) {
                    return a5.JSON && a5.JSON.parse ? a5.JSON.parse(bN) : (new Function("return " + bN))()
                } else {
                    bt.error("Invalid JSON: " + bN)
                }
            },
            parseXML: function (bP, bN, bO) {
                if (a5.DOMParser) {
                    bO = new DOMParser();
                    bN = bO.parseFromString(bP, "text/xml")
                } else {
                    bN = new ActiveXObject("Microsoft.XMLDOM");
                    bN.async = "false";
                    bN.loadXML(bP)
                }
                bO = bN.documentElement;
                if (!bO || !bO.nodeName || bO.nodeName === "parsererror") {
                    bt.error("Invalid XML: " + bP)
                }
                return bN
            },
            noop: function () {},
            globalEval: function (bP) {
                if (bP && bB.test(bP)) {
                    var bO = ar.head || ar.getElementsByTagName("head")[0] || ar.documentElement,
                        bN = ar.createElement("script");
                    if (bt.support.scriptEval()) {
                        bN.appendChild(ar.createTextNode(bP))
                    } else {
                        bN.text = bP
                    }
                    bO.insertBefore(bN, bO.firstChild);
                    bO.removeChild(bN)
                }
            },
            nodeName: function (bO, bN) {
                return bO.nodeName && bO.nodeName.toUpperCase() === bN.toUpperCase()
            },
            each: function (bQ, bU, bP) {
                var bO, bR = 0,
                    bS = bQ.length,
                    bN = bS === M || bt.isFunction(bQ);
                if (bP) {
                    if (bN) {
                        for (bO in bQ) {
                            if (bU.apply(bQ[bO], bP) === false) {
                                break
                            }
                        }
                    } else {
                        for (; bR < bS;) {
                            if (bU.apply(bQ[bR++], bP) === false) {
                                break
                            }
                        }
                    }
                } else {
                    if (bN) {
                        for (bO in bQ) {
                            if (bU.call(bQ[bO], bO, bQ[bO]) === false) {
                                break
                            }
                        }
                    } else {
                        for (var bT = bQ[0]; bR < bS && bU.call(bT, bR, bT) !== false; bT = bQ[++bR]) {}
                    }
                }
                return bQ
            },
            trim: bD ?
            function (bN) {
                return bN == null ? "" : bD.call(bN)
            } : function (bN) {
                return bN == null ? "" : bN.toString().replace(bx, "").replace(bs, "")
            },
            makeArray: function (bQ, bO) {
                var bN = bO || [];
                if (bQ != null) {
                    var bP = bt.type(bQ);
                    if (bQ.length == null || bP === "string" || bP === "function" || bP === "regexp" || bt.isWindow(bQ)) {
                        bo.call(bN, bQ)
                    } else {
                        bt.merge(bN, bQ)
                    }
                }
                return bN
            },
            inArray: function (bP, bQ) {
                if (bQ.indexOf) {
                    return bQ.indexOf(bP)
                }
                for (var bN = 0, bO = bQ.length; bN < bO; bN++) {
                    if (bQ[bN] === bP) {
                        return bN
                    }
                }
                return -1
            },
            merge: function (bR, bP) {
                var bQ = bR.length,
                    bO = 0;
                if (typeof bP.length === "number") {
                    for (var bN = bP.length; bO < bN; bO++) {
                        bR[bQ++] = bP[bO]
                    }
                } else {
                    while (bP[bO] !== M) {
                        bR[bQ++] = bP[bO++]
                    }
                }
                bR.length = bQ;
                return bR
            },
            grep: function (bO, bT, bN) {
                var bP = [],
                    bS;
                bN = !! bN;
                for (var bQ = 0, bR = bO.length; bQ < bR; bQ++) {
                    bS = !! bT(bO[bQ], bQ);
                    if (bN !== bS) {
                        bP.push(bO[bQ])
                    }
                }
                return bP
            },
            map: function (bO, bT, bN) {
                var bP = [],
                    bS;
                for (var bQ = 0, bR = bO.length; bQ < bR; bQ++) {
                    bS = bT(bO[bQ], bQ, bN);
                    if (bS != null) {
                        bP[bP.length] = bS
                    }
                }
                return bP.concat.apply([], bP)
            },
            guid: 1,
            proxy: function (bP, bO, bN) {
                if (arguments.length === 2) {
                    if (typeof bO === "string") {
                        bN = bP;
                        bP = bN[bO];
                        bO = M
                    } else {
                        if (bO && !bt.isFunction(bO)) {
                            bN = bO;
                            bO = M
                        }
                    }
                }
                if (!bO && bP) {
                    bO = function () {
                        return bP.apply(bN || this, arguments)
                    }
                }
                if (bP) {
                    bO.guid = bP.guid = bP.guid || bO.guid || bt.guid++
                }
                return bO
            },
            access: function (bN, bV, bT, bP, bS, bU) {
                var bO = bN.length;
                if (typeof bV === "object") {
                    for (var bQ in bV) {
                        bt.access(bN, bQ, bV[bQ], bP, bS, bT)
                    }
                    return bN
                }
                if (bT !== M) {
                    bP = !bU && bP && bt.isFunction(bT);
                    for (var bR = 0; bR < bO; bR++) {
                        bS(bN[bR], bV, bP ? bT.call(bN[bR], bR, bS(bN[bR], bV)) : bT, bU)
                    }
                    return bN
                }
                return bO ? bS(bN[0], bV) : M
            },
            now: function () {
                return (new Date()).getTime()
            },
            uaMatch: function (bO) {
                bO = bO.toLowerCase();
                var bN = bn.exec(bO) || bG.exec(bO) || bF.exec(bO) || bO.indexOf("compatible") < 0 && bH.exec(bO) || [];
                return {
                    browser: bN[1] || "",
                    version: bN[2] || "0"
                }
            },
            sub: function () {
                function bO(bQ, bR) {
                    return new bO.fn.init(bQ, bR)
                }
                bt.extend(true, bO, this);
                bO.superclass = this;
                bO.fn = bO.prototype = this();
                bO.fn.constructor = bO;
                bO.subclass = this.subclass;
                bO.fn.init = function bP(bQ, bR) {
                    if (bR && bR instanceof bt && !(bR instanceof bO)) {
                        bR = bO(bR)
                    }
                    return bt.fn.init.call(this, bQ, bR, bN)
                };
                bO.fn.init.prototype = bO.fn;
                var bN = bO(ar);
                return bO
            },
            browser: {}
        });
        bt.each("Boolean Number String Function Array Date RegExp Object".split(" "), function (bO, bN) {
            bm["[object " + bN + "]"] = bN.toLowerCase()
        });
        bJ = bt.uaMatch(bL);
        if (bJ.browser) {
            bt.browser[bJ.browser] = true;
            bt.browser.version = bJ.version
        }
        if (bt.browser.webkit) {
            bt.browser.safari = true
        }
        if (bk) {
            bt.inArray = function (bN, bO) {
                return bk.call(bO, bN)
            }
        }
        if (bB.test("\xA0")) {
            bx = /^[\s\xA0]+/;
            bs = /[\s\xA0]+$/
        }
        br = bt(ar);
        if (ar.addEventListener) {
            e = function () {
                ar.removeEventListener("DOMContentLoaded", e, false);
                bt.ready()
            }
        } else {
            if (ar.attachEvent) {
                e = function () {
                    if (ar.readyState === "complete") {
                        ar.detachEvent("onreadystatechange", e);
                        bt.ready()
                    }
                }
            }
        }
        function bl() {
            if (bt.isReady) {
                return
            }
            try {
                ar.documentElement.doScroll("left")
            } catch (bN) {
                setTimeout(bl, 1);
                return
            }
            bt.ready()
        }
        return bt
    })();
    var a = "then done fail isResolved isRejected promise".split(" "),
        aF = [].slice;
    b.extend({
        _Deferred: function () {
            var bm = [],
                bn, bk, bl, e = {
                    done: function () {
                        if (!bl) {
                            var bp = arguments,
                                bq, bt, bs, br, bo;
                            if (bn) {
                                bo = bn;
                                bn = 0
                            }
                            for (bq = 0, bt = bp.length; bq < bt; bq++) {
                                bs = bp[bq];
                                br = b.type(bs);
                                if (br === "array") {
                                    e.done.apply(e, bs)
                                } else {
                                    if (br === "function") {
                                        bm.push(bs)
                                    }
                                }
                            }
                            if (bo) {
                                e.resolveWith(bo[0], bo[1])
                            }
                        }
                        return this
                    },
                    resolveWith: function (bp, bo) {
                        if (!bl && !bn && !bk) {
                            bo = bo || [];
                            bk = 1;
                            try {
                                while (bm[0]) {
                                    bm.shift().apply(bp, bo)
                                }
                            } finally {
                                bn = [bp, bo];
                                bk = 0
                            }
                        }
                        return this
                    },
                    resolve: function () {
                        e.resolveWith(this, arguments);
                        return this
                    },
                    isResolved: function () {
                        return !!(bk || bn)
                    },
                    cancel: function () {
                        bl = 1;
                        bm = [];
                        return this
                    }
                };
            return e
        },
        Deferred: function (bk) {
            var e = b._Deferred(),
                bm = b._Deferred(),
                bl;
            b.extend(e, {
                then: function (bo, bn) {
                    e.done(bo).fail(bn);
                    return this
                },
                fail: bm.done,
                rejectWith: bm.resolveWith,
                reject: bm.resolve,
                isRejected: bm.isResolved,
                promise: function (bo) {
                    if (bo == null) {
                        if (bl) {
                            return bl
                        }
                        bl = bo = {}
                    }
                    var bn = a.length;
                    while (bn--) {
                        bo[a[bn]] = e[a[bn]]
                    }
                    return bo
                }
            });
            e.done(bm.cancel).fail(e.cancel);
            delete e.cancel;
            if (bk) {
                bk.call(e, e)
            }
            return e
        },
        when: function (bp) {
            var bk = arguments,
                bl = 0,
                bo = bk.length,
                bn = bo,
                e = bo <= 1 && bp && b.isFunction(bp.promise) ? bp : b.Deferred();

            function bm(bq) {
                return function (br) {
                    bk[bq] = arguments.length > 1 ? aF.call(arguments, 0) : br;
                    if (!(--bn)) {
                        e.resolveWith(e, aF.call(bk, 0))
                    }
                }
            }
            if (bo > 1) {
                for (; bl < bo; bl++) {
                    if (bk[bl] && b.isFunction(bk[bl].promise)) {
                        bk[bl].promise().then(bm(bl), e.reject)
                    } else {
                        --bn
                    }
                }
                if (!bn) {
                    e.resolveWith(e, bk)
                }
            } else {
                if (e !== bp) {
                    e.resolveWith(e, bo ? [bp] : [])
                }
            }
            return e.promise()
        }
    });
    (function () {
        b.support = {};
        var bk = ar.createElement("div");
        bk.style.display = "none";
        bk.innerHTML = "   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
        var bt = bk.getElementsByTagName("*"),
            br = bk.getElementsByTagName("a")[0],
            bs = ar.createElement("select"),
            bl = bs.appendChild(ar.createElement("option")),
            bq = bk.getElementsByTagName("input")[0];
        if (!bt || !bt.length || !br) {
            return
        }
        b.support = {
            leadingWhitespace: bk.firstChild.nodeType === 3,
            tbody: !bk.getElementsByTagName("tbody").length,
            htmlSerialize: !! bk.getElementsByTagName("link").length,
            style: /red/.test(br.getAttribute("style")),
            hrefNormalized: br.getAttribute("href") === "/a",
            opacity: /^0.55$/.test(br.style.opacity),
            cssFloat: !! br.style.cssFloat,
            checkOn: bq.value === "on",
            optSelected: bl.selected,
            deleteExpando: true,
            optDisabled: false,
            checkClone: false,
            noCloneEvent: true,
            noCloneChecked: true,
            boxModel: null,
            inlineBlockNeedsLayout: false,
            shrinkWrapBlocks: false,
            reliableHiddenOffsets: true,
            reliableMarginRight: true
        };
        bq.checked = true;
        b.support.noCloneChecked = bq.cloneNode(true).checked;
        bs.disabled = true;
        b.support.optDisabled = !bl.disabled;
        var bm = null;
        b.support.scriptEval = function () {
            if (bm === null) {
                var bv = ar.documentElement,
                    bw = ar.createElement("script"),
                    by = "script" + b.now();
                try {
                    bw.appendChild(ar.createTextNode("window." + by + "=1;"))
                } catch (bx) {}
                bv.insertBefore(bw, bv.firstChild);
                if (a5[by]) {
                    bm = true;
                    delete a5[by]
                } else {
                    bm = false
                }
                bv.removeChild(bw)
            }
            return bm
        };
        try {
            delete bk.test
        } catch (bo) {
            b.support.deleteExpando = false
        }
        if (!bk.addEventListener && bk.attachEvent && bk.fireEvent) {
            bk.attachEvent("onclick", function bu() {
                b.support.noCloneEvent = false;
                bk.detachEvent("onclick", bu)
            });
            bk.cloneNode(true).fireEvent("onclick")
        }
        bk = ar.createElement("div");
        bk.innerHTML = "<input type='radio' name='radiotest' checked='checked'/>";
        var bn = ar.createDocumentFragment();
        bn.appendChild(bk.firstChild);
        b.support.checkClone = bn.cloneNode(true).cloneNode(true).lastChild.checked;
        b(function () {
            var bw = ar.createElement("div"),
                e = ar.getElementsByTagName("body")[0];
            if (!e) {
                return
            }
            bw.style.width = bw.style.paddingLeft = "1px";
            e.appendChild(bw);
            b.boxModel = b.support.boxModel = bw.offsetWidth === 2;
            if ("zoom" in bw.style) {
                bw.style.display = "inline";
                bw.style.zoom = 1;
                b.support.inlineBlockNeedsLayout = bw.offsetWidth === 2;
                bw.style.display = "";
                bw.innerHTML = "<div style='width:4px;'></div>";
                b.support.shrinkWrapBlocks = bw.offsetWidth !== 2
            }
            bw.innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";
            var bv = bw.getElementsByTagName("td");
            b.support.reliableHiddenOffsets = bv[0].offsetHeight === 0;
            bv[0].style.display = "";
            bv[1].style.display = "none";
            b.support.reliableHiddenOffsets = b.support.reliableHiddenOffsets && bv[0].offsetHeight === 0;
            bw.innerHTML = "";
            if (ar.defaultView && ar.defaultView.getComputedStyle) {
                bw.style.width = "1px";
                bw.style.marginRight = "0";
                b.support.reliableMarginRight = (parseInt(ar.defaultView.getComputedStyle(bw, null).marginRight, 10) || 0) === 0
            }
            e.removeChild(bw).style.display = "none";
            bw = bv = null
        });
        var bp = function (e) {
                var bw = ar.createElement("div");
                e = "on" + e;
                if (!bw.attachEvent) {
                    return true
                }
                var bv = (e in bw);
                if (!bv) {
                    bw.setAttribute(e, "return;");
                    bv = typeof bw[e] === "function"
                }
                return bv
            };
        b.support.submitBubbles = bp("submit");
        b.support.changeBubbles = bp("change");
        bk = bt = br = null
    })();
    var aL = /^(?:\{.*\}|\[.*\])$/;
    b.extend({
        cache: {},
        uuid: 0,
        expando: "jQuery" + (b.fn.jquery + Math.random()).replace(/\D/g, ""),
        noData: {
            embed: true,
            object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
            applet: true
        },
        hasData: function (e) {
            e = e.nodeType ? b.cache[e[b.expando]] : e[b.expando];
            return !!e && !V(e)
        },
        data: function (bm, bk, bo, bn) {
            if (!b.acceptData(bm)) {
                return
            }
            var br = b.expando,
                bq = typeof bk === "string",
                bp, bs = bm.nodeType,
                e = bs ? b.cache : bm,
                bl = bs ? bm[b.expando] : bm[b.expando] && b.expando;
            if ((!bl || (bn && bl && !e[bl][br])) && bq && bo === M) {
                return
            }
            if (!bl) {
                if (bs) {
                    bm[b.expando] = bl = ++b.uuid
                } else {
                    bl = b.expando
                }
            }
            if (!e[bl]) {
                e[bl] = {};
                if (!bs) {
                    e[bl].toJSON = b.noop
                }
            }
            if (typeof bk === "object" || typeof bk === "function") {
                if (bn) {
                    e[bl][br] = b.extend(e[bl][br], bk)
                } else {
                    e[bl] = b.extend(e[bl], bk)
                }
            }
            bp = e[bl];
            if (bn) {
                if (!bp[br]) {
                    bp[br] = {}
                }
                bp = bp[br]
            }
            if (bo !== M) {
                bp[bk] = bo
            }
            if (bk === "events" && !bp[bk]) {
                return bp[br] && bp[br].events
            }
            return bq ? bp[bk] : bp
        },
        removeData: function (bn, bl, bo) {
            if (!b.acceptData(bn)) {
                return
            }
            var bq = b.expando,
                br = bn.nodeType,
                bk = br ? b.cache : bn,
                bm = br ? bn[b.expando] : b.expando;
            if (!bk[bm]) {
                return
            }
            if (bl) {
                var bp = bo ? bk[bm][bq] : bk[bm];
                if (bp) {
                    delete bp[bl];
                    if (!V(bp)) {
                        return
                    }
                }
            }
            if (bo) {
                delete bk[bm][bq];
                if (!V(bk[bm])) {
                    return
                }
            }
            var e = bk[bm][bq];
            if (b.support.deleteExpando || bk != a5) {
                delete bk[bm]
            } else {
                bk[bm] = null
            }
            if (e) {
                bk[bm] = {};
                if (!br) {
                    bk[bm].toJSON = b.noop
                }
                bk[bm][bq] = e
            } else {
                if (br) {
                    if (b.support.deleteExpando) {
                        delete bn[b.expando]
                    } else {
                        if (bn.removeAttribute) {
                            bn.removeAttribute(b.expando)
                        } else {
                            bn[b.expando] = null
                        }
                    }
                }
            }
        },
        _data: function (bk, e, bl) {
            return b.data(bk, e, bl, true)
        },
        acceptData: function (bk) {
            if (bk.nodeName) {
                var e = b.noData[bk.nodeName.toLowerCase()];
                if (e) {
                    return !(e === true || bk.getAttribute("classid") !== e)
                }
            }
            return true
        }
    });
    b.fn.extend({
        data: function (bn, bp) {
            var bo = null;
            if (typeof bn === "undefined") {
                if (this.length) {
                    bo = b.data(this[0]);
                    if (this[0].nodeType === 1) {
                        var e = this[0].attributes,
                            bl;
                        for (var bm = 0, bk = e.length; bm < bk; bm++) {
                            bl = e[bm].name;
                            if (bl.indexOf("data-") === 0) {
                                bl = bl.substr(5);
                                a0(this[0], bl, bo[bl])
                            }
                        }
                    }
                }
                return bo
            } else {
                if (typeof bn === "object") {
                    return this.each(function () {
                        b.data(this, bn)
                    })
                }
            }
            var bq = bn.split(".");
            bq[1] = bq[1] ? "." + bq[1] : "";
            if (bp === M) {
                bo = this.triggerHandler("getData" + bq[1] + "!", [bq[0]]);
                if (bo === M && this.length) {
                    bo = b.data(this[0], bn);
                    bo = a0(this[0], bn, bo)
                }
                return bo === M && bq[1] ? this.data(bq[0]) : bo
            } else {
                return this.each(function () {
                    var bs = b(this),
                        br = [bq[0], bp];
                    bs.triggerHandler("setData" + bq[1] + "!", br);
                    b.data(this, bn, bp);
                    bs.triggerHandler("changeData" + bq[1] + "!", br)
                })
            }
        },
        removeData: function (e) {
            return this.each(function () {
                b.removeData(this, e)
            })
        }
    });

    function a0(bl, bk, bm) {
        if (bm === M && bl.nodeType === 1) {
            bm = bl.getAttribute("data-" + bk);
            if (typeof bm === "string") {
                try {
                    bm = bm === "true" ? true : bm === "false" ? false : bm === "null" ? null : !b.isNaN(bm) ? parseFloat(bm) : aL.test(bm) ? b.parseJSON(bm) : bm
                } catch (bn) {}
                b.data(bl, bk, bm)
            } else {
                bm = M
            }
        }
        return bm
    }
    function V(bk) {
        for (var e in bk) {
            if (e !== "toJSON") {
                return false
            }
        }
        return true
    }
    b.extend({
        queue: function (bk, e, bm) {
            if (!bk) {
                return
            }
            e = (e || "fx") + "queue";
            var bl = b._data(bk, e);
            if (!bm) {
                return bl || []
            }
            if (!bl || b.isArray(bm)) {
                bl = b._data(bk, e, b.makeArray(bm))
            } else {
                bl.push(bm)
            }
            return bl
        },
        dequeue: function (bm, bl) {
            bl = bl || "fx";
            var e = b.queue(bm, bl),
                bk = e.shift();
            if (bk === "inprogress") {
                bk = e.shift()
            }
            if (bk) {
                if (bl === "fx") {
                    e.unshift("inprogress")
                }
                bk.call(bm, function () {
                    b.dequeue(bm, bl)
                })
            }
            if (!e.length) {
                b.removeData(bm, bl + "queue", true)
            }
        }
    });
    b.fn.extend({
        queue: function (e, bk) {
            if (typeof e !== "string") {
                bk = e;
                e = "fx"
            }
            if (bk === M) {
                return b.queue(this[0], e)
            }
            return this.each(function (bm) {
                var bl = b.queue(this, e, bk);
                if (e === "fx" && bl[0] !== "inprogress") {
                    b.dequeue(this, e)
                }
            })
        },
        dequeue: function (e) {
            return this.each(function () {
                b.dequeue(this, e)
            })
        },
        delay: function (bk, e) {
            bk = b.fx ? b.fx.speeds[bk] || bk : bk;
            e = e || "fx";
            return this.queue(e, function () {
                var bl = this;
                setTimeout(function () {
                    b.dequeue(bl, e)
                }, bk)
            })
        },
        clearQueue: function (e) {
            return this.queue(e || "fx", [])
        }
    });
    var aJ = /[\n\t\r]/g,
        ba = /\s+/,
        aN = /\r/g,
        a9 = /^(?:href|src|style)$/,
        h = /^(?:button|input)$/i,
        H = /^(?:button|input|object|select|textarea)$/i,
        n = /^a(?:rea)?$/i,
        W = /^(?:radio|checkbox)$/i;
    b.props = {
        "for": "htmlFor",
        "class": "className",
        readonly: "readOnly",
        maxlength: "maxLength",
        cellspacing: "cellSpacing",
        rowspan: "rowSpan",
        colspan: "colSpan",
        tabindex: "tabIndex",
        usemap: "useMap",
        frameborder: "frameBorder"
    };
    b.fn.extend({
        attr: function (e, bk) {
            return b.access(this, e, bk, true, b.attr)
        },
        removeAttr: function (e, bk) {
            return this.each(function () {
                b.attr(this, e, "");
                if (this.nodeType === 1) {
                    this.removeAttribute(e)
                }
            })
        },
        addClass: function (bq) {
            if (b.isFunction(bq)) {
                return this.each(function (bt) {
                    var bs = b(this);
                    bs.addClass(bq.call(this, bt, bs.attr("class")))
                })
            }
            if (bq && typeof bq === "string") {
                var e = (bq || "").split(ba);
                for (var bm = 0, bl = this.length; bm < bl; bm++) {
                    var bk = this[bm];
                    if (bk.nodeType === 1) {
                        if (!bk.className) {
                            bk.className = bq
                        } else {
                            var bn = " " + bk.className + " ",
                                bp = bk.className;
                            for (var bo = 0, br = e.length; bo < br; bo++) {
                                if (bn.indexOf(" " + e[bo] + " ") < 0) {
                                    bp += " " + e[bo]
                                }
                            }
                            bk.className = b.trim(bp)
                        }
                    }
                }
            }
            return this
        },
        removeClass: function (bo) {
            if (b.isFunction(bo)) {
                return this.each(function (bs) {
                    var br = b(this);
                    br.removeClass(bo.call(this, bs, br.attr("class")))
                })
            }
            if ((bo && typeof bo === "string") || bo === M) {
                var bp = (bo || "").split(ba);
                for (var bl = 0, bk = this.length; bl < bk; bl++) {
                    var bn = this[bl];
                    if (bn.nodeType === 1 && bn.className) {
                        if (bo) {
                            var bm = (" " + bn.className + " ").replace(aJ, " ");
                            for (var bq = 0, e = bp.length; bq < e; bq++) {
                                bm = bm.replace(" " + bp[bq] + " ", " ")
                            }
                            bn.className = b.trim(bm)
                        } else {
                            bn.className = ""
                        }
                    }
                }
            }
            return this
        },
        toggleClass: function (bm, bk) {
            var bl = typeof bm,
                e = typeof bk === "boolean";
            if (b.isFunction(bm)) {
                return this.each(function (bo) {
                    var bn = b(this);
                    bn.toggleClass(bm.call(this, bo, bn.attr("class"), bk), bk)
                })
            }
            return this.each(function () {
                if (bl === "string") {
                    var bp, bo = 0,
                        bn = b(this),
                        bq = bk,
                        br = bm.split(ba);
                    while ((bp = br[bo++])) {
                        bq = e ? bq : !bn.hasClass(bp);
                        bn[bq ? "addClass" : "removeClass"](bp)
                    }
                } else {
                    if (bl === "undefined" || bl === "boolean") {
                        if (this.className) {
                            b._data(this, "__className__", this.className)
                        }
                        this.className = this.className || bm === false ? "" : b._data(this, "__className__") || ""
                    }
                }
            })
        },
        hasClass: function (e) {
            var bm = " " + e + " ";
            for (var bl = 0, bk = this.length; bl < bk; bl++) {
                if ((" " + this[bl].className + " ").replace(aJ, " ").indexOf(bm) > -1) {
                    return true
                }
            }
            return false
        },
        val: function (br) {
            if (!arguments.length) {
                var bl = this[0];
                if (bl) {
                    if (b.nodeName(bl, "option")) {
                        var bk = bl.attributes.value;
                        return !bk || bk.specified ? bl.value : bl.text
                    }
                    if (b.nodeName(bl, "select")) {
                        var bp = bl.selectedIndex,
                            bs = [],
                            bt = bl.options,
                            bo = bl.type === "select-one";
                        if (bp < 0) {
                            return null
                        }
                        for (var bm = bo ? bp : 0, bq = bo ? bp + 1 : bt.length; bm < bq; bm++) {
                            var bn = bt[bm];
                            if (bn.selected && (b.support.optDisabled ? !bn.disabled : bn.getAttribute("disabled") === null) && (!bn.parentNode.disabled || !b.nodeName(bn.parentNode, "optgroup"))) {
                                br = b(bn).val();
                                if (bo) {
                                    return br
                                }
                                bs.push(br)
                            }
                        }
                        if (bo && !bs.length && bt.length) {
                            return b(bt[bp]).val()
                        }
                        return bs
                    }
                    if (W.test(bl.type) && !b.support.checkOn) {
                        return bl.getAttribute("value") === null ? "on" : bl.value
                    }
                    return (bl.value || "").replace(aN, "")
                }
                return M
            }
            var e = b.isFunction(br);
            return this.each(function (bw) {
                var bv = b(this),
                    bx = br;
                if (this.nodeType !== 1) {
                    return
                }
                if (e) {
                    bx = br.call(this, bw, bv.val())
                }
                if (bx == null) {
                    bx = ""
                } else {
                    if (typeof bx === "number") {
                        bx += ""
                    } else {
                        if (b.isArray(bx)) {
                            bx = b.map(bx, function (by) {
                                return by == null ? "" : by + ""
                            })
                        }
                    }
                }
                if (b.isArray(bx) && W.test(this.type)) {
                    this.checked = b.inArray(bv.val(), bx) >= 0
                } else {
                    if (b.nodeName(this, "select")) {
                        var bu = b.makeArray(bx);
                        b("option", this).each(function () {
                            this.selected = b.inArray(b(this).val(), bu) >= 0
                        });
                        if (!bu.length) {
                            this.selectedIndex = -1
                        }
                    } else {
                        this.value = bx
                    }
                }
            })
        }
    });
    b.extend({
        attrFn: {
            val: true,
            css: true,
            html: true,
            text: true,
            data: true,
            width: true,
            height: true,
            offset: true
        },
        attr: function (bk, e, bp, bs) {
            if (!bk || bk.nodeType === 3 || bk.nodeType === 8 || bk.nodeType === 2) {
                return M
            }
            if (bs && e in b.attrFn) {
                return b(bk)[e](bp)
            }
            var bl = bk.nodeType !== 1 || !b.isXMLDoc(bk),
                bo = bp !== M;
            e = bl && b.props[e] || e;
            if (bk.nodeType === 1) {
                var bn = a9.test(e);
                if (e === "selected" && !b.support.optSelected) {
                    var bq = bk.parentNode;
                    if (bq) {
                        bq.selectedIndex;
                        if (bq.parentNode) {
                            bq.parentNode.selectedIndex
                        }
                    }
                }
                if ((e in bk || bk[e] !== M) && bl && !bn) {
                    if (bo) {
                        if (e === "type" && h.test(bk.nodeName) && bk.parentNode) {
                            b.error("type property can't be changed")
                        }
                        if (bp === null) {
                            if (bk.nodeType === 1) {
                                bk.removeAttribute(e)
                            }
                        } else {
                            bk[e] = bp
                        }
                    }
                    if (b.nodeName(bk, "form") && bk.getAttributeNode(e)) {
                        return bk.getAttributeNode(e).nodeValue
                    }
                    if (e === "tabIndex") {
                        var br = bk.getAttributeNode("tabIndex");
                        return br && br.specified ? br.value : H.test(bk.nodeName) || n.test(bk.nodeName) && bk.href ? 0 : M
                    }
                    return bk[e]
                }
                if (!b.support.style && bl && e === "style") {
                    if (bo) {
                        bk.style.cssText = "" + bp
                    }
                    return bk.style.cssText
                }
                if (bo) {
                    bk.setAttribute(e, "" + bp)
                }
                if (!bk.attributes[e] && (bk.hasAttribute && !bk.hasAttribute(e))) {
                    return M
                }
                var bm = !b.support.hrefNormalized && bl && bn ? bk.getAttribute(e, 2) : bk.getAttribute(e);
                return bm === null ? M : bm
            }
            if (bo) {
                bk[e] = bp
            }
            return bk[e]
        }
    });
    var aW = /\.(.*)$/,
        a7 = /^(?:textarea|input|select)$/i,
        Q = /\./g,
        ag = / /g,
        aC = /[^\w\s.|`]/g,
        J = function (e) {
            return e.replace(aC, "\\$&")
        };
    b.event = {
        add: function (bn, br, by, bp) {
            if (bn.nodeType === 3 || bn.nodeType === 8) {
                return
            }
            try {
                if (b.isWindow(bn) && (bn !== a5 && !bn.frameElement)) {
                    bn = a5
                }
            } catch (bs) {}
            if (by === false) {
                by = bc
            } else {
                if (!by) {
                    return
                }
            }
            var bl, bw;
            if (by.handler) {
                bl = by;
                by = bl.handler
            }
            if (!by.guid) {
                by.guid = b.guid++
            }
            var bt = b._data(bn);
            if (!bt) {
                return
            }
            var bx = bt.events,
                bq = bt.handle;
            if (!bx) {
                bt.events = bx = {}
            }
            if (!bq) {
                bt.handle = bq = function (bz) {
                    return typeof b !== "undefined" && b.event.triggered !== bz.type ? b.event.handle.apply(bq.elem, arguments) : M
                }
            }
            bq.elem = bn;
            br = br.split(" ");
            var bv, bo = 0,
                bk;
            while ((bv = br[bo++])) {
                bw = bl ? b.extend({}, bl) : {
                    handler: by,
                    data: bp
                };
                if (bv.indexOf(".") > -1) {
                    bk = bv.split(".");
                    bv = bk.shift();
                    bw.namespace = bk.slice(0).sort().join(".")
                } else {
                    bk = [];
                    bw.namespace = ""
                }
                bw.type = bv;
                if (!bw.guid) {
                    bw.guid = by.guid
                }
                var bm = bx[bv],
                    bu = b.event.special[bv] || {};
                if (!bm) {
                    bm = bx[bv] = [];
                    if (!bu.setup || bu.setup.call(bn, bp, bk, bq) === false) {
                        if (bn.addEventListener) {
                            bn.addEventListener(bv, bq, false)
                        } else {
                            if (bn.attachEvent) {
                                bn.attachEvent("on" + bv, bq)
                            }
                        }
                    }
                }
                if (bu.add) {
                    bu.add.call(bn, bw);
                    if (!bw.handler.guid) {
                        bw.handler.guid = by.guid
                    }
                }
                bm.push(bw);
                b.event.global[bv] = true
            }
            bn = null
        },
        global: {},
        remove: function (by, bt, bl, bp) {
            if (by.nodeType === 3 || by.nodeType === 8) {
                return
            }
            if (bl === false) {
                bl = bc
            }
            var bB, bo, bq, bv, bw = 0,
                bm, br, bu, bn, bs, e, bA, bx = b.hasData(by) && b._data(by),
                bk = bx && bx.events;
            if (!bx || !bk) {
                return
            }
            if (bt && bt.type) {
                bl = bt.handler;
                bt = bt.type
            }
            if (!bt || typeof bt === "string" && bt.charAt(0) === ".") {
                bt = bt || "";
                for (bo in bk) {
                    b.event.remove(by, bo + bt)
                }
                return
            }
            bt = bt.split(" ");
            while ((bo = bt[bw++])) {
                bA = bo;
                e = null;
                bm = bo.indexOf(".") < 0;
                br = [];
                if (!bm) {
                    br = bo.split(".");
                    bo = br.shift();
                    bu = new RegExp("(^|\\.)" + b.map(br.slice(0).sort(), J).join("\\.(?:.*\\.)?") + "(\\.|$)")
                }
                bs = bk[bo];
                if (!bs) {
                    continue
                }
                if (!bl) {
                    for (bv = 0; bv < bs.length; bv++) {
                        e = bs[bv];
                        if (bm || bu.test(e.namespace)) {
                            b.event.remove(by, bA, e.handler, bv);
                            bs.splice(bv--, 1)
                        }
                    }
                    continue
                }
                bn = b.event.special[bo] || {};
                for (bv = bp || 0; bv < bs.length; bv++) {
                    e = bs[bv];
                    if (bl.guid === e.guid) {
                        if (bm || bu.test(e.namespace)) {
                            if (bp == null) {
                                bs.splice(bv--, 1)
                            }
                            if (bn.remove) {
                                bn.remove.call(by, e)
                            }
                        }
                        if (bp != null) {
                            break
                        }
                    }
                }
                if (bs.length === 0 || bp != null && bs.length === 1) {
                    if (!bn.teardown || bn.teardown.call(by, br) === false) {
                        b.removeEvent(by, bo, bx.handle)
                    }
                    bB = null;
                    delete bk[bo]
                }
            }
            if (b.isEmptyObject(bk)) {
                var bz = bx.handle;
                if (bz) {
                    bz.elem = null
                }
                delete bx.events;
                delete bx.handle;
                if (b.isEmptyObject(bx)) {
                    b.removeData(by, M, true)
                }
            }
        },
        trigger: function (bk, bp, bm) {
            var bt = bk.type || bk,
                bo = arguments[3];
            if (!bo) {
                bk = typeof bk === "object" ? bk[b.expando] ? bk : b.extend(b.Event(bt), bk) : b.Event(bt);
                if (bt.indexOf("!") >= 0) {
                    bk.type = bt = bt.slice(0, -1);
                    bk.exclusive = true
                }
                if (!bm) {
                    bk.stopPropagation();
                    if (b.event.global[bt]) {
                        b.each(b.cache, function () {
                            var by = b.expando,
                                bx = this[by];
                            if (bx && bx.events && bx.events[bt]) {
                                b.event.trigger(bk, bp, bx.handle.elem)
                            }
                        })
                    }
                }
                if (!bm || bm.nodeType === 3 || bm.nodeType === 8) {
                    return M
                }
                bk.result = M;
                bk.target = bm;
                bp = b.makeArray(bp);
                bp.unshift(bk)
            }
            bk.currentTarget = bm;
            var bq = b._data(bm, "handle");
            if (bq) {
                bq.apply(bm, bp)
            }
            var bv = bm.parentNode || bm.ownerDocument;
            try {
                if (!(bm && bm.nodeName && b.noData[bm.nodeName.toLowerCase()])) {
                    if (bm["on" + bt] && bm["on" + bt].apply(bm, bp) === false) {
                        bk.result = false;
                        bk.preventDefault()
                    }
                }
            } catch (bu) {}
            if (!bk.isPropagationStopped() && bv) {
                b.event.trigger(bk, bp, bv, true)
            } else {
                if (!bk.isDefaultPrevented()) {
                    var bl, br = bk.target,
                        e = bt.replace(aW, ""),
                        bw = b.nodeName(br, "a") && e === "click",
                        bs = b.event.special[e] || {};
                    if ((!bs._default || bs._default.call(bm, bk) === false) && !bw && !(br && br.nodeName && b.noData[br.nodeName.toLowerCase()])) {
                        try {
                            if (br[e]) {
                                bl = br["on" + e];
                                if (bl) {
                                    br["on" + e] = null
                                }
                                b.event.triggered = bk.type;
                                br[e]()
                            }
                        } catch (bn) {}
                        if (bl) {
                            br["on" + e] = bl
                        }
                        b.event.triggered = M
                    }
                }
            }
        },
        handle: function (e) {
            var bs, bl, bk, bu, bt, bo = [],
                bq = b.makeArray(arguments);
            e = bq[0] = b.event.fix(e || a5.event);
            e.currentTarget = this;
            bs = e.type.indexOf(".") < 0 && !e.exclusive;
            if (!bs) {
                bk = e.type.split(".");
                e.type = bk.shift();
                bo = bk.slice(0).sort();
                bu = new RegExp("(^|\\.)" + bo.join("\\.(?:.*\\.)?") + "(\\.|$)")
            }
            e.namespace = e.namespace || bo.join(".");
            bt = b._data(this, "events");
            bl = (bt || {})[e.type];
            if (bt && bl) {
                bl = bl.slice(0);
                for (var bn = 0, bm = bl.length; bn < bm; bn++) {
                    var br = bl[bn];
                    if (bs || bu.test(br.namespace)) {
                        e.handler = br.handler;
                        e.data = br.data;
                        e.handleObj = br;
                        var bp = br.handler.apply(this, bq);
                        if (bp !== M) {
                            e.result = bp;
                            if (bp === false) {
                                e.preventDefault();
                                e.stopPropagation()
                            }
                        }
                        if (e.isImmediatePropagationStopped()) {
                            break
                        }
                    }
                }
            }
            return e.result
        },
        props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
        fix: function (bm) {
            if (bm[b.expando]) {
                return bm
            }
            var bk = bm;
            bm = b.Event(bk);
            for (var bl = this.props.length, bo; bl;) {
                bo = this.props[--bl];
                bm[bo] = bk[bo]
            }
            if (!bm.target) {
                bm.target = bm.srcElement || ar
            }
            if (bm.target.nodeType === 3) {
                bm.target = bm.target.parentNode
            }
            if (!bm.relatedTarget && bm.fromElement) {
                bm.relatedTarget = bm.fromElement === bm.target ? bm.toElement : bm.fromElement
            }
            if (bm.pageX == null && bm.clientX != null) {
                var bn = ar.documentElement,
                    e = ar.body;
                bm.pageX = bm.clientX + (bn && bn.scrollLeft || e && e.scrollLeft || 0) - (bn && bn.clientLeft || e && e.clientLeft || 0);
                bm.pageY = bm.clientY + (bn && bn.scrollTop || e && e.scrollTop || 0) - (bn && bn.clientTop || e && e.clientTop || 0)
            }
            if (bm.which == null && (bm.charCode != null || bm.keyCode != null)) {
                bm.which = bm.charCode != null ? bm.charCode : bm.keyCode
            }
            if (!bm.metaKey && bm.ctrlKey) {
                bm.metaKey = bm.ctrlKey
            }
            if (!bm.which && bm.button !== M) {
                bm.which = (bm.button & 1 ? 1 : (bm.button & 2 ? 3 : (bm.button & 4 ? 2 : 0)))
            }
            return bm
        },
        guid: 100000000,
        proxy: b.proxy,
        special: {
            ready: {
                setup: b.bindReady,
                teardown: b.noop
            },
            live: {
                add: function (e) {
                    b.event.add(this, q(e.origType, e.selector), b.extend({}, e, {
                        handler: al,
                        guid: e.handler.guid
                    }))
                },
                remove: function (e) {
                    b.event.remove(this, q(e.origType, e.selector), e)
                }
            },
            beforeunload: {
                setup: function (bl, bk, e) {
                    if (b.isWindow(this)) {
                        this.onbeforeunload = e
                    }
                },
                teardown: function (bk, e) {
                    if (this.onbeforeunload === e) {
                        this.onbeforeunload = null
                    }
                }
            }
        }
    };
    b.removeEvent = ar.removeEventListener ?
    function (bk, e, bl) {
        if (bk.removeEventListener) {
            bk.removeEventListener(e, bl, false)
        }
    } : function (bk, e, bl) {
        if (bk.detachEvent) {
            bk.detachEvent("on" + e, bl)
        }
    };
    b.Event = function (e) {
        if (!this.preventDefault) {
            return new b.Event(e)
        }
        if (e && e.type) {
            this.originalEvent = e;
            this.type = e.type;
            this.isDefaultPrevented = (e.defaultPrevented || e.returnValue === false || e.getPreventDefault && e.getPreventDefault()) ? k : bc
        } else {
            this.type = e
        }
        this.timeStamp = b.now();
        this[b.expando] = true
    };

    function bc() {
        return false
    }
    function k() {
        return true
    }
    b.Event.prototype = {
        preventDefault: function () {
            this.isDefaultPrevented = k;
            var bk = this.originalEvent;
            if (!bk) {
                return
            }
            if (bk.preventDefault) {
                bk.preventDefault()
            } else {
                bk.returnValue = false
            }
        },
        stopPropagation: function () {
            this.isPropagationStopped = k;
            var bk = this.originalEvent;
            if (!bk) {
                return
            }
            if (bk.stopPropagation) {
                bk.stopPropagation()
            }
            bk.cancelBubble = true
        },
        stopImmediatePropagation: function () {
            this.isImmediatePropagationStopped = k;
            this.stopPropagation()
        },
        isDefaultPrevented: bc,
        isPropagationStopped: bc,
        isImmediatePropagationStopped: bc
    };
    var af = function (bl) {
            var bk = bl.relatedTarget;
            try {
                if (bk && bk !== ar && !bk.parentNode) {
                    return
                }
                while (bk && bk !== this) {
                    bk = bk.parentNode
                }
                if (bk !== this) {
                    bl.type = bl.data;
                    b.event.handle.apply(this, arguments)
                }
            } catch (bm) {}
        },
        aR = function (e) {
            e.type = e.data;
            b.event.handle.apply(this, arguments)
        };
    b.each({
        mouseenter: "mouseover",
        mouseleave: "mouseout"
    }, function (bk, e) {
        b.event.special[bk] = {
            setup: function (bl) {
                b.event.add(this, e, bl && bl.selector ? aR : af, bk)
            },
            teardown: function (bl) {
                b.event.remove(this, e, bl && bl.selector ? aR : af)
            }
        }
    });
    if (!b.support.submitBubbles) {
        b.event.special.submit = {
            setup: function (bk, e) {
                if (this.nodeName && this.nodeName.toLowerCase() !== "form") {
                    b.event.add(this, "click.specialSubmit", function (bn) {
                        var bm = bn.target,
                            bl = bm.type;
                        if ((bl === "submit" || bl === "image") && b(bm).closest("form").length) {
                            aU("submit", this, arguments)
                        }
                    });
                    b.event.add(this, "keypress.specialSubmit", function (bn) {
                        var bm = bn.target,
                            bl = bm.type;
                        if ((bl === "text" || bl === "password") && b(bm).closest("form").length && bn.keyCode === 13) {
                            aU("submit", this, arguments)
                        }
                    })
                } else {
                    return false
                }
            },
            teardown: function (e) {
                b.event.remove(this, ".specialSubmit")
            }
        }
    }
    if (!b.support.changeBubbles) {
        var bd, m = function (bk) {
                var e = bk.type,
                    bl = bk.value;
                if (e === "radio" || e === "checkbox") {
                    bl = bk.checked
                } else {
                    if (e === "select-multiple") {
                        bl = bk.selectedIndex > -1 ? b.map(bk.options, function (bm) {
                            return bm.selected
                        }).join("-") : ""
                    } else {
                        if (bk.nodeName.toLowerCase() === "select") {
                            bl = bk.selectedIndex
                        }
                    }
                }
                return bl
            },
            ad = function ad(bm) {
                var bk = bm.target,
                    bl, bn;
                if (!a7.test(bk.nodeName) || bk.readOnly) {
                    return
                }
                bl = b._data(bk, "_change_data");
                bn = m(bk);
                if (bm.type !== "focusout" || bk.type !== "radio") {
                    b._data(bk, "_change_data", bn)
                }
                if (bl === M || bn === bl) {
                    return
                }
                if (bl != null || bn) {
                    bm.type = "change";
                    bm.liveFired = M;
                    b.event.trigger(bm, arguments[1], bk)
                }
            };
        b.event.special.change = {
            filters: {
                focusout: ad,
                beforedeactivate: ad,
                click: function (bm) {
                    var bl = bm.target,
                        bk = bl.type;
                    if (bk === "radio" || bk === "checkbox" || bl.nodeName.toLowerCase() === "select") {
                        ad.call(this, bm)
                    }
                },
                keydown: function (bm) {
                    var bl = bm.target,
                        bk = bl.type;
                    if ((bm.keyCode === 13 && bl.nodeName.toLowerCase() !== "textarea") || (bm.keyCode === 32 && (bk === "checkbox" || bk === "radio")) || bk === "select-multiple") {
                        ad.call(this, bm)
                    }
                },
                beforeactivate: function (bl) {
                    var bk = bl.target;
                    b._data(bk, "_change_data", m(bk))
                }
            },
            setup: function (bl, bk) {
                if (this.type === "file") {
                    return false
                }
                for (var e in bd) {
                    b.event.add(this, e + ".specialChange", bd[e])
                }
                return a7.test(this.nodeName)
            },
            teardown: function (e) {
                b.event.remove(this, ".specialChange");
                return a7.test(this.nodeName)
            }
        };
        bd = b.event.special.change.filters;
        bd.focus = bd.beforeactivate
    }
    function aU(bk, bm, e) {
        var bl = b.extend({}, e[0]);
        bl.type = bk;
        bl.originalEvent = {};
        bl.liveFired = M;
        b.event.handle.call(bm, bl);
        if (bl.isDefaultPrevented()) {
            e[0].preventDefault()
        }
    }
    if (ar.addEventListener) {
        b.each({
            focus: "focusin",
            blur: "focusout"
        }, function (bm, e) {
            var bk = 0;
            b.event.special[e] = {
                setup: function () {
                    if (bk++ === 0) {
                        ar.addEventListener(bm, bl, true)
                    }
                },
                teardown: function () {
                    if (--bk === 0) {
                        ar.removeEventListener(bm, bl, true)
                    }
                }
            };

            function bl(bn) {
                var bo = b.event.fix(bn);
                bo.type = e;
                bo.originalEvent = {};
                b.event.trigger(bo, null, bo.target);
                if (bo.isDefaultPrevented()) {
                    bn.preventDefault()
                }
            }
        })
    }
    b.each(["bind", "one"], function (bk, e) {
        b.fn[e] = function (bq, br, bp) {
            if (typeof bq === "object") {
                for (var bn in bq) {
                    this[e](bn, br, bq[bn], bp)
                }
                return this
            }
            if (b.isFunction(br) || br === false) {
                bp = br;
                br = M
            }
            var bo = e === "one" ? b.proxy(bp, function (bs) {
                b(this).unbind(bs, bo);
                return bp.apply(this, arguments)
            }) : bp;
            if (bq === "unload" && e !== "one") {
                this.one(bq, br, bp)
            } else {
                for (var bm = 0, bl = this.length; bm < bl; bm++) {
                    b.event.add(this[bm], bq, bo, br)
                }
            }
            return this
        }
    });
    b.fn.extend({
        unbind: function (bn, bm) {
            if (typeof bn === "object" && !bn.preventDefault) {
                for (var bl in bn) {
                    this.unbind(bl, bn[bl])
                }
            } else {
                for (var bk = 0, e = this.length; bk < e; bk++) {
                    b.event.remove(this[bk], bn, bm)
                }
            }
            return this
        },
        delegate: function (e, bk, bm, bl) {
            return this.live(bk, bm, bl, e)
        },
        undelegate: function (e, bk, bl) {
            if (arguments.length === 0) {
                return this.unbind("live")
            } else {
                return this.die(bk, null, bl, e)
            }
        },
        trigger: function (e, bk) {
            return this.each(function () {
                b.event.trigger(e, bk, this)
            })
        },
        triggerHandler: function (e, bl) {
            if (this[0]) {
                var bk = b.Event(e);
                bk.preventDefault();
                bk.stopPropagation();
                b.event.trigger(bk, bl, this[0]);
                return bk.result
            }
        },
        toggle: function (bl) {
            var e = arguments,
                bk = 1;
            while (bk < e.length) {
                b.proxy(bl, e[bk++])
            }
            return this.click(b.proxy(bl, function (bm) {
                var bn = (b._data(this, "lastToggle" + bl.guid) || 0) % bk;
                b._data(this, "lastToggle" + bl.guid, bn + 1);
                bm.preventDefault();
                return e[bn].apply(this, arguments) || false
            }))
        },
        hover: function (e, bk) {
            return this.mouseenter(e).mouseleave(bk || e)
        }
    });
    var aO = {
        focus: "focusin",
        blur: "focusout",
        mouseenter: "mouseover",
        mouseleave: "mouseout"
    };
    b.each(["live", "die"], function (bk, e) {
        b.fn[e] = function (bu, br, bw, bn) {
            var bv, bs = 0,
                bt, bm, by, bp = bn || this.selector,
                bl = bn ? this : b(this.context);
            if (typeof bu === "object" && !bu.preventDefault) {
                for (var bx in bu) {
                    bl[e](bx, br, bu[bx], bp)
                }
                return this
            }
            if (b.isFunction(br)) {
                bw = br;
                br = M
            }
            bu = (bu || "").split(" ");
            while ((bv = bu[bs++]) != null) {
                bt = aW.exec(bv);
                bm = "";
                if (bt) {
                    bm = bt[0];
                    bv = bv.replace(aW, "")
                }
                if (bv === "hover") {
                    bu.push("mouseenter" + bm, "mouseleave" + bm);
                    continue
                }
                by = bv;
                if (bv === "focus" || bv === "blur") {
                    bu.push(aO[bv] + bm);
                    bv = bv + bm
                } else {
                    bv = (aO[bv] || bv) + bm
                }
                if (e === "live") {
                    for (var bq = 0, bo = bl.length; bq < bo; bq++) {
                        b.event.add(bl[bq], "live." + q(bv, bp), {
                            data: br,
                            selector: bp,
                            handler: bw,
                            origType: bv,
                            origHandler: bw,
                            preType: by
                        })
                    }
                } else {
                    bl.unbind("live." + q(bv, bp), bw)
                }
            }
            return this
        }
    });

    function al(bu) {
        var br, bm, bA, bo, e, bw, bt, bv, bs, bz, bq, bp, by, bx = [],
            bn = [],
            bk = b._data(this, "events");
        if (bu.liveFired === this || !bk || !bk.live || bu.target.disabled || bu.button && bu.type === "click") {
            return
        }
        if (bu.namespace) {
            bp = new RegExp("(^|\\.)" + bu.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)")
        }
        bu.liveFired = this;
        var bl = bk.live.slice(0);
        for (bt = 0; bt < bl.length; bt++) {
            e = bl[bt];
            if (e.origType.replace(aW, "") === bu.type) {
                bn.push(e.selector)
            } else {
                bl.splice(bt--, 1)
            }
        }
        bo = b(bu.target).closest(bn, bu.currentTarget);
        for (bv = 0, bs = bo.length; bv < bs; bv++) {
            bq = bo[bv];
            for (bt = 0; bt < bl.length; bt++) {
                e = bl[bt];
                if (bq.selector === e.selector && (!bp || bp.test(e.namespace)) && !bq.elem.disabled) {
                    bw = bq.elem;
                    bA = null;
                    if (e.preType === "mouseenter" || e.preType === "mouseleave") {
                        bu.type = e.preType;
                        bA = b(bu.relatedTarget).closest(e.selector)[0]
                    }
                    if (!bA || bA !== bw) {
                        bx.push({
                            elem: bw,
                            handleObj: e,
                            level: bq.level
                        })
                    }
                }
            }
        }
        for (bv = 0, bs = bx.length; bv < bs; bv++) {
            bo = bx[bv];
            if (bm && bo.level > bm) {
                break
            }
            bu.currentTarget = bo.elem;
            bu.data = bo.handleObj.data;
            bu.handleObj = bo.handleObj;
            by = bo.handleObj.origHandler.apply(bo.elem, arguments);
            if (by === false || bu.isPropagationStopped()) {
                bm = bo.level;
                if (by === false) {
                    br = false
                }
                if (bu.isImmediatePropagationStopped()) {
                    break
                }
            }
        }
        return br
    }
    function q(bk, e) {
        return (bk && bk !== "*" ? bk + "." : "") + e.replace(Q, "`").replace(ag, "&")
    }
    b.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error").split(" "), function (bk, e) {
        b.fn[e] = function (bm, bl) {
            if (bl == null) {
                bl = bm;
                bm = null
            }
            return arguments.length > 0 ? this.bind(e, bm, bl) : this.trigger(e)
        };
        if (b.attrFn) {
            b.attrFn[e] = true
        }
    });
    /*!
     * Sizzle CSS Selector Engine
     *  Copyright 2011, The Dojo Foundation
     *  Released under the MIT, BSD, and GPL Licenses.
     *  More information: http://sizzlejs.com/
     */
    (function () {
        var bu = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
            bv = 0,
            by = Object.prototype.toString,
            bp = false,
            bo = true,
            bw = /\\/g,
            bC = /\W/;
        [0, 0].sort(function () {
            bo = false;
            return 0
        });
        var bm = function (bH, e, bK, bL) {
                bK = bK || [];
                e = e || ar;
                var bN = e;
                if (e.nodeType !== 1 && e.nodeType !== 9) {
                    return []
                }
                if (!bH || typeof bH !== "string") {
                    return bK
                }
                var bE, bP, bS, bD, bO, bR, bQ, bJ, bG = true,
                    bF = bm.isXML(e),
                    bI = [],
                    bM = bH;
                do {
                    bu.exec("");
                    bE = bu.exec(bM);
                    if (bE) {
                        bM = bE[3];
                        bI.push(bE[1]);
                        if (bE[2]) {
                            bD = bE[3];
                            break
                        }
                    }
                } while (bE);
                if (bI.length > 1 && bq.exec(bH)) {
                    if (bI.length === 2 && br.relative[bI[0]]) {
                        bP = bz(bI[0] + bI[1], e)
                    } else {
                        bP = br.relative[bI[0]] ? [e] : bm(bI.shift(), e);
                        while (bI.length) {
                            bH = bI.shift();
                            if (br.relative[bH]) {
                                bH += bI.shift()
                            }
                            bP = bz(bH, bP)
                        }
                    }
                } else {
                    if (!bL && bI.length > 1 && e.nodeType === 9 && !bF && br.match.ID.test(bI[0]) && !br.match.ID.test(bI[bI.length - 1])) {
                        bO = bm.find(bI.shift(), e, bF);
                        e = bO.expr ? bm.filter(bO.expr, bO.set)[0] : bO.set[0]
                    }
                    if (e) {
                        bO = bL ? {
                            expr: bI.pop(),
                            set: bs(bL)
                        } : bm.find(bI.pop(), bI.length === 1 && (bI[0] === "~" || bI[0] === "+") && e.parentNode ? e.parentNode : e, bF);
                        bP = bO.expr ? bm.filter(bO.expr, bO.set) : bO.set;
                        if (bI.length > 0) {
                            bS = bs(bP)
                        } else {
                            bG = false
                        }
                        while (bI.length) {
                            bR = bI.pop();
                            bQ = bR;
                            if (!br.relative[bR]) {
                                bR = ""
                            } else {
                                bQ = bI.pop()
                            }
                            if (bQ == null) {
                                bQ = e
                            }
                            br.relative[bR](bS, bQ, bF)
                        }
                    } else {
                        bS = bI = []
                    }
                }
                if (!bS) {
                    bS = bP
                }
                if (!bS) {
                    bm.error(bR || bH)
                }
                if (by.call(bS) === "[object Array]") {
                    if (!bG) {
                        bK.push.apply(bK, bS)
                    } else {
                        if (e && e.nodeType === 1) {
                            for (bJ = 0; bS[bJ] != null; bJ++) {
                                if (bS[bJ] && (bS[bJ] === true || bS[bJ].nodeType === 1 && bm.contains(e, bS[bJ]))) {
                                    bK.push(bP[bJ])
                                }
                            }
                        } else {
                            for (bJ = 0; bS[bJ] != null; bJ++) {
                                if (bS[bJ] && bS[bJ].nodeType === 1) {
                                    bK.push(bP[bJ])
                                }
                            }
                        }
                    }
                } else {
                    bs(bS, bK)
                }
                if (bD) {
                    bm(bD, bN, bK, bL);
                    bm.uniqueSort(bK)
                }
                return bK
            };
        bm.uniqueSort = function (bD) {
            if (bx) {
                bp = bo;
                bD.sort(bx);
                if (bp) {
                    for (var e = 1; e < bD.length; e++) {
                        if (bD[e] === bD[e - 1]) {
                            bD.splice(e--, 1)
                        }
                    }
                }
            }
            return bD
        };
        bm.matches = function (e, bD) {
            return bm(e, null, null, bD)
        };
        bm.matchesSelector = function (e, bD) {
            return bm(bD, null, null, [e]).length > 0
        };
        bm.find = function (bJ, e, bK) {
            var bI;
            if (!bJ) {
                return []
            }
            for (var bF = 0, bE = br.order.length; bF < bE; bF++) {
                var bG, bH = br.order[bF];
                if ((bG = br.leftMatch[bH].exec(bJ))) {
                    var bD = bG[1];
                    bG.splice(1, 1);
                    if (bD.substr(bD.length - 1) !== "\\") {
                        bG[1] = (bG[1] || "").replace(bw, "");
                        bI = br.find[bH](bG, e, bK);
                        if (bI != null) {
                            bJ = bJ.replace(br.match[bH], "");
                            break
                        }
                    }
                }
            }
            if (!bI) {
                bI = typeof e.getElementsByTagName !== "undefined" ? e.getElementsByTagName("*") : []
            }
            return {
                set: bI,
                expr: bJ
            }
        };
        bm.filter = function (bN, bM, bQ, bG) {
            var bI, e, bE = bN,
                bS = [],
                bK = bM,
                bJ = bM && bM[0] && bm.isXML(bM[0]);
            while (bN && bM.length) {
                for (var bL in br.filter) {
                    if ((bI = br.leftMatch[bL].exec(bN)) != null && bI[2]) {
                        var bR, bP, bD = br.filter[bL],
                            bF = bI[1];
                        e = false;
                        bI.splice(1, 1);
                        if (bF.substr(bF.length - 1) === "\\") {
                            continue
                        }
                        if (bK === bS) {
                            bS = []
                        }
                        if (br.preFilter[bL]) {
                            bI = br.preFilter[bL](bI, bK, bQ, bS, bG, bJ);
                            if (!bI) {
                                e = bR = true
                            } else {
                                if (bI === true) {
                                    continue
                                }
                            }
                        }
                        if (bI) {
                            for (var bH = 0;
                            (bP = bK[bH]) != null; bH++) {
                                if (bP) {
                                    bR = bD(bP, bI, bH, bK);
                                    var bO = bG ^ !! bR;
                                    if (bQ && bR != null) {
                                        if (bO) {
                                            e = true
                                        } else {
                                            bK[bH] = false
                                        }
                                    } else {
                                        if (bO) {
                                            bS.push(bP);
                                            e = true
                                        }
                                    }
                                }
                            }
                        }
                        if (bR !== M) {
                            if (!bQ) {
                                bK = bS
                            }
                            bN = bN.replace(br.match[bL], "");
                            if (!e) {
                                return []
                            }
                            break
                        }
                    }
                }
                if (bN === bE) {
                    if (e == null) {
                        bm.error(bN)
                    } else {
                        break
                    }
                }
                bE = bN
            }
            return bK
        };
        bm.error = function (e) {
            throw "Syntax error, unrecognized expression: " + e
        };
        var br = bm.selectors = {
            order: ["ID", "NAME", "TAG"],
            match: {
                ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
                CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
                NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
                ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,
                TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,
                CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,
                POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
                PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
            },
            leftMatch: {},
            attrMap: {
                "class": "className",
                "for": "htmlFor"
            },
            attrHandle: {
                href: function (e) {
                    return e.getAttribute("href")
                },
                type: function (e) {
                    return e.getAttribute("type")
                }
            },
            relative: {
                "+": function (bI, bD) {
                    var bF = typeof bD === "string",
                        bH = bF && !bC.test(bD),
                        bJ = bF && !bH;
                    if (bH) {
                        bD = bD.toLowerCase()
                    }
                    for (var bE = 0, e = bI.length, bG; bE < e; bE++) {
                        if ((bG = bI[bE])) {
                            while ((bG = bG.previousSibling) && bG.nodeType !== 1) {}
                            bI[bE] = bJ || bG && bG.nodeName.toLowerCase() === bD ? bG || false : bG === bD
                        }
                    }
                    if (bJ) {
                        bm.filter(bD, bI, true)
                    }
                },
                ">": function (bI, bD) {
                    var bH, bG = typeof bD === "string",
                        bE = 0,
                        e = bI.length;
                    if (bG && !bC.test(bD)) {
                        bD = bD.toLowerCase();
                        for (; bE < e; bE++) {
                            bH = bI[bE];
                            if (bH) {
                                var bF = bH.parentNode;
                                bI[bE] = bF.nodeName.toLowerCase() === bD ? bF : false
                            }
                        }
                    } else {
                        for (; bE < e; bE++) {
                            bH = bI[bE];
                            if (bH) {
                                bI[bE] = bG ? bH.parentNode : bH.parentNode === bD
                            }
                        }
                        if (bG) {
                            bm.filter(bD, bI, true)
                        }
                    }
                },
                "": function (bF, bD, bH) {
                    var bG, bE = bv++,
                        e = bA;
                    if (typeof bD === "string" && !bC.test(bD)) {
                        bD = bD.toLowerCase();
                        bG = bD;
                        e = bk
                    }
                    e("parentNode", bD, bE, bF, bG, bH)
                },
                "~": function (bF, bD, bH) {
                    var bG, bE = bv++,
                        e = bA;
                    if (typeof bD === "string" && !bC.test(bD)) {
                        bD = bD.toLowerCase();
                        bG = bD;
                        e = bk
                    }
                    e("previousSibling", bD, bE, bF, bG, bH)
                }
            },
            find: {
                ID: function (bD, bE, bF) {
                    if (typeof bE.getElementById !== "undefined" && !bF) {
                        var e = bE.getElementById(bD[1]);
                        return e && e.parentNode ? [e] : []
                    }
                },
                NAME: function (bE, bH) {
                    if (typeof bH.getElementsByName !== "undefined") {
                        var bD = [],
                            bG = bH.getElementsByName(bE[1]);
                        for (var bF = 0, e = bG.length; bF < e; bF++) {
                            if (bG[bF].getAttribute("name") === bE[1]) {
                                bD.push(bG[bF])
                            }
                        }
                        return bD.length === 0 ? null : bD
                    }
                },
                TAG: function (e, bD) {
                    if (typeof bD.getElementsByTagName !== "undefined") {
                        return bD.getElementsByTagName(e[1])
                    }
                }
            },
            preFilter: {
                CLASS: function (bF, bD, bE, e, bI, bJ) {
                    bF = " " + bF[1].replace(bw, "") + " ";
                    if (bJ) {
                        return bF
                    }
                    for (var bG = 0, bH;
                    (bH = bD[bG]) != null; bG++) {
                        if (bH) {
                            if (bI ^ (bH.className && (" " + bH.className + " ").replace(/[\t\n\r]/g, " ").indexOf(bF) >= 0)) {
                                if (!bE) {
                                    e.push(bH)
                                }
                            } else {
                                if (bE) {
                                    bD[bG] = false
                                }
                            }
                        }
                    }
                    return false
                },
                ID: function (e) {
                    return e[1].replace(bw, "")
                },
                TAG: function (bD, e) {
                    return bD[1].replace(bw, "").toLowerCase()
                },
                CHILD: function (e) {
                    if (e[1] === "nth") {
                        if (!e[2]) {
                            bm.error(e[0])
                        }
                        e[2] = e[2].replace(/^\+|\s*/g, "");
                        var bD = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2] === "even" && "2n" || e[2] === "odd" && "2n+1" || !/\D/.test(e[2]) && "0n+" + e[2] || e[2]);
                        e[2] = (bD[1] + (bD[2] || 1)) - 0;
                        e[3] = bD[3] - 0
                    } else {
                        if (e[2]) {
                            bm.error(e[0])
                        }
                    }
                    e[0] = bv++;
                    return e
                },
                ATTR: function (bG, bD, bE, e, bH, bI) {
                    var bF = bG[1] = bG[1].replace(bw, "");
                    if (!bI && br.attrMap[bF]) {
                        bG[1] = br.attrMap[bF]
                    }
                    bG[4] = (bG[4] || bG[5] || "").replace(bw, "");
                    if (bG[2] === "~=") {
                        bG[4] = " " + bG[4] + " "
                    }
                    return bG
                },
                PSEUDO: function (bG, bD, bE, e, bH) {
                    if (bG[1] === "not") {
                        if ((bu.exec(bG[3]) || "").length > 1 || /^\w/.test(bG[3])) {
                            bG[3] = bm(bG[3], null, null, bD)
                        } else {
                            var bF = bm.filter(bG[3], bD, bE, true ^ bH);
                            if (!bE) {
                                e.push.apply(e, bF)
                            }
                            return false
                        }
                    } else {
                        if (br.match.POS.test(bG[0]) || br.match.CHILD.test(bG[0])) {
                            return true
                        }
                    }
                    return bG
                },
                POS: function (e) {
                    e.unshift(true);
                    return e
                }
            },
            filters: {
                enabled: function (e) {
                    return e.disabled === false && e.type !== "hidden"
                },
                disabled: function (e) {
                    return e.disabled === true
                },
                checked: function (e) {
                    return e.checked === true
                },
                selected: function (e) {
                    if (e.parentNode) {
                        e.parentNode.selectedIndex
                    }
                    return e.selected === true
                },
                parent: function (e) {
                    return !!e.firstChild
                },
                empty: function (e) {
                    return !e.firstChild
                },
                has: function (bE, bD, e) {
                    return !!bm(e[3], bE).length
                },
                header: function (e) {
                    return (/h\d/i).test(e.nodeName)
                },
                text: function (bE) {
                    var e = bE.getAttribute("type"),
                        bD = bE.type;
                    return "text" === bD && (e === bD || e === null)
                },
                radio: function (e) {
                    return "radio" === e.type
                },
                checkbox: function (e) {
                    return "checkbox" === e.type
                },
                file: function (e) {
                    return "file" === e.type
                },
                password: function (e) {
                    return "password" === e.type
                },
                submit: function (e) {
                    return "submit" === e.type
                },
                image: function (e) {
                    return "image" === e.type
                },
                reset: function (e) {
                    return "reset" === e.type
                },
                button: function (e) {
                    return "button" === e.type || e.nodeName.toLowerCase() === "button"
                },
                input: function (e) {
                    return (/input|select|textarea|button/i).test(e.nodeName)
                }
            },
            setFilters: {
                first: function (bD, e) {
                    return e === 0
                },
                last: function (bE, bD, e, bF) {
                    return bD === bF.length - 1
                },
                even: function (bD, e) {
                    return e % 2 === 0
                },
                odd: function (bD, e) {
                    return e % 2 === 1
                },
                lt: function (bE, bD, e) {
                    return bD < e[3] - 0
                },
                gt: function (bE, bD, e) {
                    return bD > e[3] - 0
                },
                nth: function (bE, bD, e) {
                    return e[3] - 0 === bD
                },
                eq: function (bE, bD, e) {
                    return e[3] - 0 === bD
                }
            },
            filter: {
                PSEUDO: function (bE, bJ, bI, bK) {
                    var e = bJ[1],
                        bD = br.filters[e];
                    if (bD) {
                        return bD(bE, bI, bJ, bK)
                    } else {
                        if (e === "contains") {
                            return (bE.textContent || bE.innerText || bm.getText([bE]) || "").indexOf(bJ[3]) >= 0
                        } else {
                            if (e === "not") {
                                var bF = bJ[3];
                                for (var bH = 0, bG = bF.length; bH < bG; bH++) {
                                    if (bF[bH] === bE) {
                                        return false
                                    }
                                }
                                return true
                            } else {
                                bm.error(e)
                            }
                        }
                    }
                },
                CHILD: function (e, bF) {
                    var bI = bF[1],
                        bD = e;
                    switch (bI) {
                    case "only":
                    case "first":
                        while ((bD = bD.previousSibling)) {
                            if (bD.nodeType === 1) {
                                return false
                            }
                        }
                        if (bI === "first") {
                            return true
                        }
                        bD = e;
                    case "last":
                        while ((bD = bD.nextSibling)) {
                            if (bD.nodeType === 1) {
                                return false
                            }
                        }
                        return true;
                    case "nth":
                        var bE = bF[2],
                            bL = bF[3];
                        if (bE === 1 && bL === 0) {
                            return true
                        }
                        var bH = bF[0],
                            bK = e.parentNode;
                        if (bK && (bK.sizcache !== bH || !e.nodeIndex)) {
                            var bG = 0;
                            for (bD = bK.firstChild; bD; bD = bD.nextSibling) {
                                if (bD.nodeType === 1) {
                                    bD.nodeIndex = ++bG
                                }
                            }
                            bK.sizcache = bH
                        }
                        var bJ = e.nodeIndex - bL;
                        if (bE === 0) {
                            return bJ === 0
                        } else {
                            return (bJ % bE === 0 && bJ / bE >= 0)
                        }
                    }
                },
                ID: function (bD, e) {
                    return bD.nodeType === 1 && bD.getAttribute("id") === e
                },
                TAG: function (bD, e) {
                    return (e === "*" && bD.nodeType === 1) || bD.nodeName.toLowerCase() === e
                },
                CLASS: function (bD, e) {
                    return (" " + (bD.className || bD.getAttribute("class")) + " ").indexOf(e) > -1
                },
                ATTR: function (bH, bF) {
                    var bE = bF[1],
                        e = br.attrHandle[bE] ? br.attrHandle[bE](bH) : bH[bE] != null ? bH[bE] : bH.getAttribute(bE),
                        bI = e + "",
                        bG = bF[2],
                        bD = bF[4];
                    return e == null ? bG === "!=" : bG === "=" ? bI === bD : bG === "*=" ? bI.indexOf(bD) >= 0 : bG === "~=" ? (" " + bI + " ").indexOf(bD) >= 0 : !bD ? bI && e !== false : bG === "!=" ? bI !== bD : bG === "^=" ? bI.indexOf(bD) === 0 : bG === "$=" ? bI.substr(bI.length - bD.length) === bD : bG === "|=" ? bI === bD || bI.substr(0, bD.length + 1) === bD + "-" : false
                },
                POS: function (bG, bD, bE, bH) {
                    var e = bD[2],
                        bF = br.setFilters[e];
                    if (bF) {
                        return bF(bG, bE, bD, bH)
                    }
                }
            }
        };
        var bq = br.match.POS,
            bl = function (bD, e) {
                return "\\" + (e - 0 + 1)
            };
        for (var bn in br.match) {
            br.match[bn] = new RegExp(br.match[bn].source + (/(?![^\[]*\])(?![^\(]*\))/.source));
            br.leftMatch[bn] = new RegExp(/(^(?:.|\r|\n)*?)/.source + br.match[bn].source.replace(/\\(\d+)/g, bl))
        }
        var bs = function (bD, e) {
                bD = Array.prototype.slice.call(bD, 0);
                if (e) {
                    e.push.apply(e, bD);
                    return e
                }
                return bD
            };
        try {
            Array.prototype.slice.call(ar.documentElement.childNodes, 0)[0].nodeType
        } catch (bB) {
            bs = function (bG, bF) {
                var bE = 0,
                    bD = bF || [];
                if (by.call(bG) === "[object Array]") {
                    Array.prototype.push.apply(bD, bG)
                } else {
                    if (typeof bG.length === "number") {
                        for (var e = bG.length; bE < e; bE++) {
                            bD.push(bG[bE])
                        }
                    } else {
                        for (; bG[bE]; bE++) {
                            bD.push(bG[bE])
                        }
                    }
                }
                return bD
            }
        }
        var bx, bt;
        if (ar.documentElement.compareDocumentPosition) {
            bx = function (bD, e) {
                if (bD === e) {
                    bp = true;
                    return 0
                }
                if (!bD.compareDocumentPosition || !e.compareDocumentPosition) {
                    return bD.compareDocumentPosition ? -1 : 1
                }
                return bD.compareDocumentPosition(e) & 4 ? -1 : 1
            }
        } else {
            bx = function (bK, bJ) {
                var bH, bD, bE = [],
                    e = [],
                    bG = bK.parentNode,
                    bI = bJ.parentNode,
                    bL = bG;
                if (bK === bJ) {
                    bp = true;
                    return 0
                } else {
                    if (bG === bI) {
                        return bt(bK, bJ)
                    } else {
                        if (!bG) {
                            return -1
                        } else {
                            if (!bI) {
                                return 1
                            }
                        }
                    }
                }
                while (bL) {
                    bE.unshift(bL);
                    bL = bL.parentNode
                }
                bL = bI;
                while (bL) {
                    e.unshift(bL);
                    bL = bL.parentNode
                }
                bH = bE.length;
                bD = e.length;
                for (var bF = 0; bF < bH && bF < bD; bF++) {
                    if (bE[bF] !== e[bF]) {
                        return bt(bE[bF], e[bF])
                    }
                }
                return bF === bH ? bt(bK, e[bF], -1) : bt(bE[bF], bJ, 1)
            };
            bt = function (bD, e, bE) {
                if (bD === e) {
                    return bE
                }
                var bF = bD.nextSibling;
                while (bF) {
                    if (bF === e) {
                        return -1
                    }
                    bF = bF.nextSibling
                }
                return 1
            }
        }
        bm.getText = function (e) {
            var bD = "",
                bF;
            for (var bE = 0; e[bE]; bE++) {
                bF = e[bE];
                if (bF.nodeType === 3 || bF.nodeType === 4) {
                    bD += bF.nodeValue
                } else {
                    if (bF.nodeType !== 8) {
                        bD += bm.getText(bF.childNodes)
                    }
                }
            }
            return bD
        };
        (function () {
            var bD = ar.createElement("div"),
                bE = "script" + (new Date()).getTime(),
                e = ar.documentElement;
            bD.innerHTML = "<a name='" + bE + "'/>";
            e.insertBefore(bD, e.firstChild);
            if (ar.getElementById(bE)) {
                br.find.ID = function (bG, bH, bI) {
                    if (typeof bH.getElementById !== "undefined" && !bI) {
                        var bF = bH.getElementById(bG[1]);
                        return bF ? bF.id === bG[1] || typeof bF.getAttributeNode !== "undefined" && bF.getAttributeNode("id").nodeValue === bG[1] ? [bF] : M : []
                    }
                };
                br.filter.ID = function (bH, bF) {
                    var bG = typeof bH.getAttributeNode !== "undefined" && bH.getAttributeNode("id");
                    return bH.nodeType === 1 && bG && bG.nodeValue === bF
                }
            }
            e.removeChild(bD);
            e = bD = null
        })();
        (function () {
            var e = ar.createElement("div");
            e.appendChild(ar.createComment(""));
            if (e.getElementsByTagName("*").length > 0) {
                br.find.TAG = function (bD, bH) {
                    var bG = bH.getElementsByTagName(bD[1]);
                    if (bD[1] === "*") {
                        var bF = [];
                        for (var bE = 0; bG[bE]; bE++) {
                            if (bG[bE].nodeType === 1) {
                                bF.push(bG[bE])
                            }
                        }
                        bG = bF
                    }
                    return bG
                }
            }
            e.innerHTML = "<a href='#'></a>";
            if (e.firstChild && typeof e.firstChild.getAttribute !== "undefined" && e.firstChild.getAttribute("href") !== "#") {
                br.attrHandle.href = function (bD) {
                    return bD.getAttribute("href", 2)
                }
            }
            e = null
        })();
        if (ar.querySelectorAll) {
            (function () {
                var e = bm,
                    bF = ar.createElement("div"),
                    bE = "__sizzle__";
                bF.innerHTML = "<p class='TEST'></p>";
                if (bF.querySelectorAll && bF.querySelectorAll(".TEST").length === 0) {
                    return
                }
                bm = function (bQ, bH, bL, bP) {
                    bH = bH || ar;
                    if (!bP && !bm.isXML(bH)) {
                        var bO = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(bQ);
                        if (bO && (bH.nodeType === 1 || bH.nodeType === 9)) {
                            if (bO[1]) {
                                return bs(bH.getElementsByTagName(bQ), bL)
                            } else {
                                if (bO[2] && br.find.CLASS && bH.getElementsByClassName) {
                                    return bs(bH.getElementsByClassName(bO[2]), bL)
                                }
                            }
                        }
                        if (bH.nodeType === 9) {
                            if (bQ === "body" && bH.body) {
                                return bs([bH.body], bL)
                            } else {
                                if (bO && bO[3]) {
                                    var bK = bH.getElementById(bO[3]);
                                    if (bK && bK.parentNode) {
                                        if (bK.id === bO[3]) {
                                            return bs([bK], bL)
                                        }
                                    } else {
                                        return bs([], bL)
                                    }
                                }
                            }
                            try {
                                return bs(bH.querySelectorAll(bQ), bL)
                            } catch (bM) {}
                        } else {
                            if (bH.nodeType === 1 && bH.nodeName.toLowerCase() !== "object") {
                                var bI = bH,
                                    bJ = bH.getAttribute("id"),
                                    bG = bJ || bE,
                                    bS = bH.parentNode,
                                    bR = /^\s*[+~]/.test(bQ);
                                if (!bJ) {
                                    bH.setAttribute("id", bG)
                                } else {
                                    bG = bG.replace(/'/g, "\\$&")
                                }
                                if (bR && bS) {
                                    bH = bH.parentNode
                                }
                                try {
                                    if (!bR || bS) {
                                        return bs(bH.querySelectorAll("[id='" + bG + "'] " + bQ), bL)
                                    }
                                } catch (bN) {} finally {
                                    if (!bJ) {
                                        bI.removeAttribute("id")
                                    }
                                }
                            }
                        }
                    }
                    return e(bQ, bH, bL, bP)
                };
                for (var bD in e) {
                    bm[bD] = e[bD]
                }
                bF = null
            })()
        }(function () {
            var e = ar.documentElement,
                bE = e.matchesSelector || e.mozMatchesSelector || e.webkitMatchesSelector || e.msMatchesSelector;
            if (bE) {
                var bG = !bE.call(ar.createElement("div"), "div"),
                    bD = false;
                try {
                    bE.call(ar.documentElement, "[test!='']:sizzle")
                } catch (bF) {
                    bD = true
                }
                bm.matchesSelector = function (bI, bK) {
                    bK = bK.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
                    if (!bm.isXML(bI)) {
                        try {
                            if (bD || !br.match.PSEUDO.test(bK) && !/!=/.test(bK)) {
                                var bH = bE.call(bI, bK);
                                if (bH || !bG || bI.document && bI.document.nodeType !== 11) {
                                    return bH
                                }
                            }
                        } catch (bJ) {}
                    }
                    return bm(bK, null, null, [bI]).length > 0
                }
            }
        })();
        (function () {
            var e = ar.createElement("div");
            e.innerHTML = "<div class='test e'></div><div class='test'></div>";
            if (!e.getElementsByClassName || e.getElementsByClassName("e").length === 0) {
                return
            }
            e.lastChild.className = "e";
            if (e.getElementsByClassName("e").length === 1) {
                return
            }
            br.order.splice(1, 0, "CLASS");
            br.find.CLASS = function (bD, bE, bF) {
                if (typeof bE.getElementsByClassName !== "undefined" && !bF) {
                    return bE.getElementsByClassName(bD[1])
                }
            };
            e = null
        })();

        function bk(bD, bI, bH, bL, bJ, bK) {
            for (var bF = 0, bE = bL.length; bF < bE; bF++) {
                var e = bL[bF];
                if (e) {
                    var bG = false;
                    e = e[bD];
                    while (e) {
                        if (e.sizcache === bH) {
                            bG = bL[e.sizset];
                            break
                        }
                        if (e.nodeType === 1 && !bK) {
                            e.sizcache = bH;
                            e.sizset = bF
                        }
                        if (e.nodeName.toLowerCase() === bI) {
                            bG = e;
                            break
                        }
                        e = e[bD]
                    }
                    bL[bF] = bG
                }
            }
        }
        function bA(bD, bI, bH, bL, bJ, bK) {
            for (var bF = 0, bE = bL.length; bF < bE; bF++) {
                var e = bL[bF];
                if (e) {
                    var bG = false;
                    e = e[bD];
                    while (e) {
                        if (e.sizcache === bH) {
                            bG = bL[e.sizset];
                            break
                        }
                        if (e.nodeType === 1) {
                            if (!bK) {
                                e.sizcache = bH;
                                e.sizset = bF
                            }
                            if (typeof bI !== "string") {
                                if (e === bI) {
                                    bG = true;
                                    break
                                }
                            } else {
                                if (bm.filter(bI, [e]).length > 0) {
                                    bG = e;
                                    break
                                }
                            }
                        }
                        e = e[bD]
                    }
                    bL[bF] = bG
                }
            }
        }
        if (ar.documentElement.contains) {
            bm.contains = function (bD, e) {
                return bD !== e && (bD.contains ? bD.contains(e) : true)
            }
        } else {
            if (ar.documentElement.compareDocumentPosition) {
                bm.contains = function (bD, e) {
                    return !!(bD.compareDocumentPosition(e) & 16)
                }
            } else {
                bm.contains = function () {
                    return false
                }
            }
        }
        bm.isXML = function (e) {
            var bD = (e ? e.ownerDocument || e : 0).documentElement;
            return bD ? bD.nodeName !== "HTML" : false
        };
        var bz = function (e, bJ) {
                var bH, bF = [],
                    bG = "",
                    bE = bJ.nodeType ? [bJ] : bJ;
                while ((bH = br.match.PSEUDO.exec(e))) {
                    bG += bH[0];
                    e = e.replace(br.match.PSEUDO, "")
                }
                e = br.relative[e] ? e + "*" : e;
                for (var bI = 0, bD = bE.length; bI < bD; bI++) {
                    bm(e, bE[bI], bF)
                }
                return bm.filter(bG, bF)
            };
        b.find = bm;
        b.expr = bm.selectors;
        b.expr[":"] = b.expr.filters;
        b.unique = bm.uniqueSort;
        b.text = bm.getText;
        b.isXMLDoc = bm.isXML;
        b.contains = bm.contains
    })();
    var ac = /Until$/,
        ao = /^(?:parents|prevUntil|prevAll)/,
        a3 = /,/,
        bg = /^.[^:#\[\.,]*$/,
        S = Array.prototype.slice,
        K = b.expr.match.POS,
        av = {
            children: true,
            contents: true,
            next: true,
            prev: true
        };
    b.fn.extend({
        find: function (e) {
            var bl = this.pushStack("", "find", e),
                bo = 0;
            for (var bm = 0, bk = this.length; bm < bk; bm++) {
                bo = bl.length;
                b.find(e, this[bm], bl);
                if (bm > 0) {
                    for (var bp = bo; bp < bl.length; bp++) {
                        for (var bn = 0; bn < bo; bn++) {
                            if (bl[bn] === bl[bp]) {
                                bl.splice(bp--, 1);
                                break
                            }
                        }
                    }
                }
            }
            return bl
        },
        has: function (bk) {
            var e = b(bk);
            return this.filter(function () {
                for (var bm = 0, bl = e.length; bm < bl; bm++) {
                    if (b.contains(this, e[bm])) {
                        return true
                    }
                }
            })
        },
        not: function (e) {
            return this.pushStack(aB(this, e, false), "not", e)
        },
        filter: function (e) {
            return this.pushStack(aB(this, e, true), "filter", e)
        },
        is: function (e) {
            return !!e && b.filter(e, this).length > 0
        },
        closest: function (bt, bk) {
            var bq = [],
                bn, bl, bs = this[0];
            if (b.isArray(bt)) {
                var bp, bm, bo = {},
                    e = 1;
                if (bs && bt.length) {
                    for (bn = 0, bl = bt.length; bn < bl; bn++) {
                        bm = bt[bn];
                        if (!bo[bm]) {
                            bo[bm] = b.expr.match.POS.test(bm) ? b(bm, bk || this.context) : bm
                        }
                    }
                    while (bs && bs.ownerDocument && bs !== bk) {
                        for (bm in bo) {
                            bp = bo[bm];
                            if (bp.jquery ? bp.index(bs) > -1 : b(bs).is(bp)) {
                                bq.push({
                                    selector: bm,
                                    elem: bs,
                                    level: e
                                })
                            }
                        }
                        bs = bs.parentNode;
                        e++
                    }
                }
                return bq
            }
            var br = K.test(bt) ? b(bt, bk || this.context) : null;
            for (bn = 0, bl = this.length; bn < bl; bn++) {
                bs = this[bn];
                while (bs) {
                    if (br ? br.index(bs) > -1 : b.find.matchesSelector(bs, bt)) {
                        bq.push(bs);
                        break
                    } else {
                        bs = bs.parentNode;
                        if (!bs || !bs.ownerDocument || bs === bk) {
                            break
                        }
                    }
                }
            }
            bq = bq.length > 1 ? b.unique(bq) : bq;
            return this.pushStack(bq, "closest", bt)
        },
        index: function (e) {
            if (!e || typeof e === "string") {
                return b.inArray(this[0], e ? b(e) : this.parent().children())
            }
            return b.inArray(e.jquery ? e[0] : e, this)
        },
        add: function (e, bk) {
            var bm = typeof e === "string" ? b(e, bk) : b.makeArray(e),
                bl = b.merge(this.get(), bm);
            return this.pushStack(G(bm[0]) || G(bl[0]) ? bl : b.unique(bl))
        },
        andSelf: function () {
            return this.add(this.prevObject)
        }
    });

    function G(e) {
        return !e || !e.parentNode || e.parentNode.nodeType === 11
    }
    b.each({
        parent: function (bk) {
            var e = bk.parentNode;
            return e && e.nodeType !== 11 ? e : null
        },
        parents: function (e) {
            return b.dir(e, "parentNode")
        },
        parentsUntil: function (bk, e, bl) {
            return b.dir(bk, "parentNode", bl)
        },
        next: function (e) {
            return b.nth(e, 2, "nextSibling")
        },
        prev: function (e) {
            return b.nth(e, 2, "previousSibling")
        },
        nextAll: function (e) {
            return b.dir(e, "nextSibling")
        },
        prevAll: function (e) {
            return b.dir(e, "previousSibling")
        },
        nextUntil: function (bk, e, bl) {
            return b.dir(bk, "nextSibling", bl)
        },
        prevUntil: function (bk, e, bl) {
            return b.dir(bk, "previousSibling", bl)
        },
        siblings: function (e) {
            return b.sibling(e.parentNode.firstChild, e)
        },
        children: function (e) {
            return b.sibling(e.firstChild)
        },
        contents: function (e) {
            return b.nodeName(e, "iframe") ? e.contentDocument || e.contentWindow.document : b.makeArray(e.childNodes)
        }
    }, function (e, bk) {
        b.fn[e] = function (bo, bl) {
            var bn = b.map(this, bk, bo),
                bm = S.call(arguments);
            if (!ac.test(e)) {
                bl = bo
            }
            if (bl && typeof bl === "string") {
                bn = b.filter(bl, bn)
            }
            bn = this.length > 1 && !av[e] ? b.unique(bn) : bn;
            if ((this.length > 1 || a3.test(bl)) && ao.test(e)) {
                bn = bn.reverse()
            }
            return this.pushStack(bn, e, bm.join(","))
        }
    });
    b.extend({
        filter: function (bl, e, bk) {
            if (bk) {
                bl = ":not(" + bl + ")"
            }
            return e.length === 1 ? b.find.matchesSelector(e[0], bl) ? [e[0]] : [] : b.find.matches(bl, e)
        },
        dir: function (bl, bk, bn) {
            var e = [],
                bm = bl[bk];
            while (bm && bm.nodeType !== 9 && (bn === M || bm.nodeType !== 1 || !b(bm).is(bn))) {
                if (bm.nodeType === 1) {
                    e.push(bm)
                }
                bm = bm[bk]
            }
            return e
        },
        nth: function (bn, e, bl, bm) {
            e = e || 1;
            var bk = 0;
            for (; bn; bn = bn[bl]) {
                if (bn.nodeType === 1 && ++bk === e) {
                    break
                }
            }
            return bn
        },
        sibling: function (bl, bk) {
            var e = [];
            for (; bl; bl = bl.nextSibling) {
                if (bl.nodeType === 1 && bl !== bk) {
                    e.push(bl)
                }
            }
            return e
        }
    });

    function aB(bm, bl, e) {
        if (b.isFunction(bl)) {
            return b.grep(bm, function (bo, bn) {
                var bp = !! bl.call(bo, bn, bo);
                return bp === e
            })
        } else {
            if (bl.nodeType) {
                return b.grep(bm, function (bo, bn) {
                    return (bo === bl) === e
                })
            } else {
                if (typeof bl === "string") {
                    var bk = b.grep(bm, function (bn) {
                        return bn.nodeType === 1
                    });
                    if (bg.test(bl)) {
                        return b.filter(bl, bk, !e)
                    } else {
                        bl = b.filter(bl, bk)
                    }
                }
            }
        }
        return b.grep(bm, function (bo, bn) {
            return (b.inArray(bo, bl) >= 0) === e
        })
    }
    var ah = / jQuery\d+="(?:\d+|null)"/g,
        ap = /^\s+/,
        U = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
        f = /<([\w:]+)/,
        A = /<tbody/i,
        Z = /<|&#?\w+;/,
        R = /<(?:script|object|embed|option|style)/i,
        p = /checked\s*(?:[^=]|=\s*.checked.)/i,
        au = {
            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, "", ""]
        };
    au.optgroup = au.option;
    au.tbody = au.tfoot = au.colgroup = au.caption = au.thead;
    au.th = au.td;
    if (!b.support.htmlSerialize) {
        au._default = [1, "div<div>", "</div>"]
    }
    b.fn.extend({
        text: function (e) {
            if (b.isFunction(e)) {
                return this.each(function (bl) {
                    var bk = b(this);
                    bk.text(e.call(this, bl, bk.text()))
                })
            }
            if (typeof e !== "object" && e !== M) {
                return this.empty().append((this[0] && this[0].ownerDocument || ar).createTextNode(e))
            }
            return b.text(this)
        },
        wrapAll: function (e) {
            if (b.isFunction(e)) {
                return this.each(function (bl) {
                    b(this).wrapAll(e.call(this, bl))
                })
            }
            if (this[0]) {
                var bk = b(e, this[0].ownerDocument).eq(0).clone(true);
                if (this[0].parentNode) {
                    bk.insertBefore(this[0])
                }
                bk.map(function () {
                    var bl = this;
                    while (bl.firstChild && bl.firstChild.nodeType === 1) {
                        bl = bl.firstChild
                    }
                    return bl
                }).append(this)
            }
            return this
        },
        wrapInner: function (e) {
            if (b.isFunction(e)) {
                return this.each(function (bk) {
                    b(this).wrapInner(e.call(this, bk))
                })
            }
            return this.each(function () {
                var bk = b(this),
                    bl = bk.contents();
                if (bl.length) {
                    bl.wrapAll(e)
                } else {
                    bk.append(e)
                }
            })
        },
        wrap: function (e) {
            return this.each(function () {
                b(this).wrapAll(e)
            })
        },
        unwrap: function () {
            return this.parent().each(function () {
                if (!b.nodeName(this, "body")) {
                    b(this).replaceWith(this.childNodes)
                }
            }).end()
        },
        append: function () {
            return this.domManip(arguments, true, function (e) {
                if (this.nodeType === 1) {
                    this.appendChild(e)
                }
            })
        },
        prepend: function () {
            return this.domManip(arguments, true, function (e) {
                if (this.nodeType === 1) {
                    this.insertBefore(e, this.firstChild)
                }
            })
        },
        before: function () {
            if (this[0] && this[0].parentNode) {
                return this.domManip(arguments, false, function (bk) {
                    this.parentNode.insertBefore(bk, this)
                })
            } else {
                if (arguments.length) {
                    var e = b(arguments[0]);
                    e.push.apply(e, this.toArray());
                    return this.pushStack(e, "before", arguments)
                }
            }
        },
        after: function () {
            if (this[0] && this[0].parentNode) {
                return this.domManip(arguments, false, function (bk) {
                    this.parentNode.insertBefore(bk, this.nextSibling)
                })
            } else {
                if (arguments.length) {
                    var e = this.pushStack(this, "after", arguments);
                    e.push.apply(e, b(arguments[0]).toArray());
                    return e
                }
            }
        },
        remove: function (e, bm) {
            for (var bk = 0, bl;
            (bl = this[bk]) != null; bk++) {
                if (!e || b.filter(e, [bl]).length) {
                    if (!bm && bl.nodeType === 1) {
                        b.cleanData(bl.getElementsByTagName("*"));
                        b.cleanData([bl])
                    }
                    if (bl.parentNode) {
                        bl.parentNode.removeChild(bl)
                    }
                }
            }
            return this
        },
        empty: function () {
            for (var e = 0, bk;
            (bk = this[e]) != null; e++) {
                if (bk.nodeType === 1) {
                    b.cleanData(bk.getElementsByTagName("*"))
                }
                while (bk.firstChild) {
                    bk.removeChild(bk.firstChild)
                }
            }
            return this
        },
        clone: function (bk, e) {
            bk = bk == null ? false : bk;
            e = e == null ? bk : e;
            return this.map(function () {
                return b.clone(this, bk, e)
            })
        },
        html: function (bm) {
            if (bm === M) {
                return this[0] && this[0].nodeType === 1 ? this[0].innerHTML.replace(ah, "") : null
            } else {
                if (typeof bm === "string" && !R.test(bm) && (b.support.leadingWhitespace || !ap.test(bm)) && !au[(f.exec(bm) || ["", ""])[1].toLowerCase()]) {
                    bm = bm.replace(U, "<$1></$2>");
                    try {
                        for (var bl = 0, bk = this.length; bl < bk; bl++) {
                            if (this[bl].nodeType === 1) {
                                b.cleanData(this[bl].getElementsByTagName("*"));
                                this[bl].innerHTML = bm
                            }
                        }
                    } catch (bn) {
                        this.empty().append(bm)
                    }
                } else {
                    if (b.isFunction(bm)) {
                        this.each(function (bo) {
                            var e = b(this);
                            e.html(bm.call(this, bo, e.html()))
                        })
                    } else {
                        this.empty().append(bm)
                    }
                }
            }
            return this
        },
        replaceWith: function (e) {
            if (this[0] && this[0].parentNode) {
                if (b.isFunction(e)) {
                    return this.each(function (bm) {
                        var bl = b(this),
                            bk = bl.html();
                        bl.replaceWith(e.call(this, bm, bk))
                    })
                }
                if (typeof e !== "string") {
                    e = b(e).detach()
                }
                return this.each(function () {
                    var bl = this.nextSibling,
                        bk = this.parentNode;
                    b(this).remove();
                    if (bl) {
                        b(bl).before(e)
                    } else {
                        b(bk).append(e)
                    }
                })
            } else {
                return this.length ? this.pushStack(b(b.isFunction(e) ? e() : e), "replaceWith", e) : this
            }
        },
        detach: function (e) {
            return this.remove(e, true)
        },
        domManip: function (bq, bu, bt) {
            var bm, bn, bp, bs, br = bq[0],
                bk = [];
            if (!b.support.checkClone && arguments.length === 3 && typeof br === "string" && p.test(br)) {
                return this.each(function () {
                    b(this).domManip(bq, bu, bt, true)
                })
            }
            if (b.isFunction(br)) {
                return this.each(function (bw) {
                    var bv = b(this);
                    bq[0] = br.call(this, bw, bu ? bv.html() : M);
                    bv.domManip(bq, bu, bt)
                })
            }
            if (this[0]) {
                bs = br && br.parentNode;
                if (b.support.parentNode && bs && bs.nodeType === 11 && bs.childNodes.length === this.length) {
                    bm = {
                        fragment: bs
                    }
                } else {
                    bm = b.buildFragment(bq, this, bk)
                }
                bp = bm.fragment;
                if (bp.childNodes.length === 1) {
                    bn = bp = bp.firstChild
                } else {
                    bn = bp.firstChild
                }
                if (bn) {
                    bu = bu && b.nodeName(bn, "tr");
                    for (var bl = 0, e = this.length, bo = e - 1; bl < e; bl++) {
                        bt.call(bu ? a4(this[bl], bn) : this[bl], bm.cacheable || (e > 1 && bl < bo) ? b.clone(bp, true, true) : bp)
                    }
                }
                if (bk.length) {
                    b.each(bk, bf)
                }
            }
            return this
        }
    });

    function a4(e, bk) {
        return b.nodeName(e, "table") ? (e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody"))) : e
    }
    function x(e, bq) {
        if (bq.nodeType !== 1 || !b.hasData(e)) {
            return
        }
        var bp = b.expando,
            bm = b.data(e),
            bn = b.data(bq, bm);
        if ((bm = bm[bp])) {
            var br = bm.events;
            bn = bn[bp] = b.extend({}, bm);
            if (br) {
                delete bn.handle;
                bn.events = {};
                for (var bo in br) {
                    for (var bl = 0, bk = br[bo].length; bl < bk; bl++) {
                        b.event.add(bq, bo + (br[bo][bl].namespace ? "." : "") + br[bo][bl].namespace, br[bo][bl], br[bo][bl].data)
                    }
                }
            }
        }
    }
    function ai(bk, e) {
        if (e.nodeType !== 1) {
            return
        }
        var bl = e.nodeName.toLowerCase();
        e.clearAttributes();
        e.mergeAttributes(bk);
        if (bl === "object") {
            e.outerHTML = bk.outerHTML
        } else {
            if (bl === "input" && (bk.type === "checkbox" || bk.type === "radio")) {
                if (bk.checked) {
                    e.defaultChecked = e.checked = bk.checked
                }
                if (e.value !== bk.value) {
                    e.value = bk.value
                }
            } else {
                if (bl === "option") {
                    e.selected = bk.defaultSelected
                } else {
                    if (bl === "input" || bl === "textarea") {
                        e.defaultValue = bk.defaultValue
                    }
                }
            }
        }
        e.removeAttribute(b.expando)
    }
    b.buildFragment = function (bo, bm, bk) {
        var bn, e, bl, bp = (bm && bm[0] ? bm[0].ownerDocument || bm[0] : ar);
        if (bo.length === 1 && typeof bo[0] === "string" && bo[0].length < 512 && bp === ar && bo[0].charAt(0) === "<" && !R.test(bo[0]) && (b.support.checkClone || !p.test(bo[0]))) {
            e = true;
            bl = b.fragments[bo[0]];
            if (bl) {
                if (bl !== 1) {
                    bn = bl
                }
            }
        }
        if (!bn) {
            bn = bp.createDocumentFragment();
            b.clean(bo, bp, bn, bk)
        }
        if (e) {
            b.fragments[bo[0]] = bl ? bn : 1
        }
        return {
            fragment: bn,
            cacheable: e
        }
    };
    b.fragments = {};
    b.each({
        appendTo: "append",
        prependTo: "prepend",
        insertBefore: "before",
        insertAfter: "after",
        replaceAll: "replaceWith"
    }, function (e, bk) {
        b.fn[e] = function (bl) {
            var bo = [],
                br = b(bl),
                bq = this.length === 1 && this[0].parentNode;
            if (bq && bq.nodeType === 11 && bq.childNodes.length === 1 && br.length === 1) {
                br[bk](this[0]);
                return this
            } else {
                for (var bp = 0, bm = br.length; bp < bm; bp++) {
                    var bn = (bp > 0 ? this.clone(true) : this).get();
                    b(br[bp])[bk](bn);
                    bo = bo.concat(bn)
                }
                return this.pushStack(bo, e, br.selector)
            }
        }
    });

    function a8(e) {
        if ("getElementsByTagName" in e) {
            return e.getElementsByTagName("*")
        } else {
            if ("querySelectorAll" in e) {
                return e.querySelectorAll("*")
            } else {
                return []
            }
        }
    }
    b.extend({
        clone: function (bn, bp, bl) {
            var bo = bn.cloneNode(true),
                e, bk, bm;
            if ((!b.support.noCloneEvent || !b.support.noCloneChecked) && (bn.nodeType === 1 || bn.nodeType === 11) && !b.isXMLDoc(bn)) {
                ai(bn, bo);
                e = a8(bn);
                bk = a8(bo);
                for (bm = 0; e[bm]; ++bm) {
                    ai(e[bm], bk[bm])
                }
            }
            if (bp) {
                x(bn, bo);
                if (bl) {
                    e = a8(bn);
                    bk = a8(bo);
                    for (bm = 0; e[bm]; ++bm) {
                        x(e[bm], bk[bm])
                    }
                }
            }
            return bo
        },
        clean: function (bl, bn, bu, bp) {
            bn = bn || ar;
            if (typeof bn.createElement === "undefined") {
                bn = bn.ownerDocument || bn[0] && bn[0].ownerDocument || ar
            }
            var bv = [];
            for (var bt = 0, bo;
            (bo = bl[bt]) != null; bt++) {
                if (typeof bo === "number") {
                    bo += ""
                }
                if (!bo) {
                    continue
                }
                if (typeof bo === "string" && !Z.test(bo)) {
                    bo = bn.createTextNode(bo)
                } else {
                    if (typeof bo === "string") {
                        bo = bo.replace(U, "<$1></$2>");
                        var bw = (f.exec(bo) || ["", ""])[1].toLowerCase(),
                            bm = au[bw] || au._default,
                            bs = bm[0],
                            bk = bn.createElement("div");
                        bk.innerHTML = bm[1] + bo + bm[2];
                        while (bs--) {
                            bk = bk.lastChild
                        }
                        if (!b.support.tbody) {
                            var e = A.test(bo),
                                br = bw === "table" && !e ? bk.firstChild && bk.firstChild.childNodes : bm[1] === "<table>" && !e ? bk.childNodes : [];
                            for (var bq = br.length - 1; bq >= 0; --bq) {
                                if (b.nodeName(br[bq], "tbody") && !br[bq].childNodes.length) {
                                    br[bq].parentNode.removeChild(br[bq])
                                }
                            }
                        }
                        if (!b.support.leadingWhitespace && ap.test(bo)) {
                            bk.insertBefore(bn.createTextNode(ap.exec(bo)[0]), bk.firstChild)
                        }
                        bo = bk.childNodes
                    }
                }
                if (bo.nodeType) {
                    bv.push(bo)
                } else {
                    bv = b.merge(bv, bo)
                }
            }
            if (bu) {
                for (bt = 0; bv[bt]; bt++) {
                    if (bp && b.nodeName(bv[bt], "script") && (!bv[bt].type || bv[bt].type.toLowerCase() === "text/javascript")) {
                        bp.push(bv[bt].parentNode ? bv[bt].parentNode.removeChild(bv[bt]) : bv[bt])
                    } else {
                        if (bv[bt].nodeType === 1) {
                            bv.splice.apply(bv, [bt + 1, 0].concat(b.makeArray(bv[bt].getElementsByTagName("script"))))
                        }
                        bu.appendChild(bv[bt])
                    }
                }
            }
            return bv
        },
        cleanData: function (bk) {
            var bn, bl, e = b.cache,
                bs = b.expando,
                bq = b.event.special,
                bp = b.support.deleteExpando;
            for (var bo = 0, bm;
            (bm = bk[bo]) != null; bo++) {
                if (bm.nodeName && b.noData[bm.nodeName.toLowerCase()]) {
                    continue
                }
                bl = bm[b.expando];
                if (bl) {
                    bn = e[bl] && e[bl][bs];
                    if (bn && bn.events) {
                        for (var br in bn.events) {
                            if (bq[br]) {
                                b.event.remove(bm, br)
                            } else {
                                b.removeEvent(bm, br, bn.handle)
                            }
                        }
                        if (bn.handle) {
                            bn.handle.elem = null
                        }
                    }
                    if (bp) {
                        delete bm[b.expando]
                    } else {
                        if (bm.removeAttribute) {
                            bm.removeAttribute(b.expando)
                        }
                    }
                    delete e[bl]
                }
            }
        }
    });

    function bf(e, bk) {
        if (bk.src) {
            b.ajax({
                url: bk.src,
                async: false,
                dataType: "script"
            })
        } else {
            b.globalEval(bk.text || bk.textContent || bk.innerHTML || "")
        }
        if (bk.parentNode) {
            bk.parentNode.removeChild(bk)
        }
    }
    var ak = /alpha\([^)]*\)/i,
        aq = /opacity=([^)]*)/,
        aT = /-([a-z])/ig,
        D = /([A-Z]|^ms)/g,
        a6 = /^-?\d+(?:px)?$/i,
        be = /^-?\d/,
        a2 = {
            position: "absolute",
            visibility: "hidden",
            display: "block"
        },
        am = ["Left", "Right"],
        aY = ["Top", "Bottom"],
        aa, aE, aS, o = function (e, bk) {
            return bk.toUpperCase()
        };
    b.fn.css = function (e, bk) {
        if (arguments.length === 2 && bk === M) {
            return this
        }
        return b.access(this, e, bk, true, function (bm, bl, bn) {
            return bn !== M ? b.style(bm, bl, bn) : b.css(bm, bl)
        })
    };
    b.extend({
        cssHooks: {
            opacity: {
                get: function (bl, bk) {
                    if (bk) {
                        var e = aa(bl, "opacity", "opacity");
                        return e === "" ? "1" : e
                    } else {
                        return bl.style.opacity
                    }
                }
            }
        },
        cssNumber: {
            zIndex: true,
            fontWeight: true,
            opacity: true,
            zoom: true,
            lineHeight: true
        },
        cssProps: {
            "float": b.support.cssFloat ? "cssFloat" : "styleFloat"
        },
        style: function (bm, bl, br, bn) {
            if (!bm || bm.nodeType === 3 || bm.nodeType === 8 || !bm.style) {
                return
            }
            var bq, bo = b.camelCase(bl),
                bk = bm.style,
                bs = b.cssHooks[bo];
            bl = b.cssProps[bo] || bo;
            if (br !== M) {
                if (typeof br === "number" && isNaN(br) || br == null) {
                    return
                }
                if (typeof br === "number" && !b.cssNumber[bo]) {
                    br += "px"
                }
                if (!bs || !("set" in bs) || (br = bs.set(bm, br)) !== M) {
                    try {
                        bk[bl] = br
                    } catch (bp) {}
                }
            } else {
                if (bs && "get" in bs && (bq = bs.get(bm, false, bn)) !== M) {
                    return bq
                }
                return bk[bl]
            }
        },
        css: function (bo, bn, bk) {
            var bm, bl = b.camelCase(bn),
                e = b.cssHooks[bl];
            bn = b.cssProps[bl] || bl;
            if (e && "get" in e && (bm = e.get(bo, true, bk)) !== M) {
                return bm
            } else {
                if (aa) {
                    return aa(bo, bn, bl)
                }
            }
        },
        swap: function (bm, bl, bn) {
            var e = {};
            for (var bk in bl) {
                e[bk] = bm.style[bk];
                bm.style[bk] = bl[bk]
            }
            bn.call(bm);
            for (bk in bl) {
                bm.style[bk] = e[bk]
            }
        },
        camelCase: function (e) {
            return e.replace(aT, o)
        }
    });
    b.curCSS = b.css;
    b.each(["height", "width"], function (bk, e) {
        b.cssHooks[e] = {
            get: function (bn, bm, bl) {
                var bo;
                if (bm) {
                    if (bn.offsetWidth !== 0) {
                        bo = r(bn, e, bl)
                    } else {
                        b.swap(bn, a2, function () {
                            bo = r(bn, e, bl)
                        })
                    }
                    if (bo <= 0) {
                        bo = aa(bn, e, e);
                        if (bo === "0px" && aS) {
                            bo = aS(bn, e, e)
                        }
                        if (bo != null) {
                            return bo === "" || bo === "auto" ? "0px" : bo
                        }
                    }
                    if (bo < 0 || bo == null) {
                        bo = bn.style[e];
                        return bo === "" || bo === "auto" ? "0px" : bo
                    }
                    return typeof bo === "string" ? bo : bo + "px"
                }
            },
            set: function (bl, bm) {
                if (a6.test(bm)) {
                    bm = parseFloat(bm);
                    if (bm >= 0) {
                        return bm + "px"
                    }
                } else {
                    return bm
                }
            }
        }
    });
    if (!b.support.opacity) {
        b.cssHooks.opacity = {
            get: function (bk, e) {
                return aq.test((e && bk.currentStyle ? bk.currentStyle.filter : bk.style.filter) || "") ? (parseFloat(RegExp.$1) / 100) + "" : e ? "1" : ""
            },
            set: function (bm, bn) {
                var bl = bm.style;
                bl.zoom = 1;
                var e = b.isNaN(bn) ? "" : "alpha(opacity=" + bn * 100 + ")",
                    bk = bl.filter || "";
                bl.filter = ak.test(bk) ? bk.replace(ak, e) : bl.filter + " " + e
            }
        }
    }
    b(function () {
        if (!b.support.reliableMarginRight) {
            b.cssHooks.marginRight = {
                get: function (bl, bk) {
                    var e;
                    b.swap(bl, {
                        display: "inline-block"
                    }, function () {
                        if (bk) {
                            e = aa(bl, "margin-right", "marginRight")
                        } else {
                            e = bl.style.marginRight
                        }
                    });
                    return e
                }
            }
        }
    });
    if (ar.defaultView && ar.defaultView.getComputedStyle) {
        aE = function (bo, e, bm) {
            var bl, bn, bk;
            bm = bm.replace(D, "-$1").toLowerCase();
            if (!(bn = bo.ownerDocument.defaultView)) {
                return M
            }
            if ((bk = bn.getComputedStyle(bo, null))) {
                bl = bk.getPropertyValue(bm);
                if (bl === "" && !b.contains(bo.ownerDocument.documentElement, bo)) {
                    bl = b.style(bo, bm)
                }
            }
            return bl
        }
    }
    if (ar.documentElement.currentStyle) {
        aS = function (bn, bl) {
            var bo, bk = bn.currentStyle && bn.currentStyle[bl],
                e = bn.runtimeStyle && bn.runtimeStyle[bl],
                bm = bn.style;
            if (!a6.test(bk) && be.test(bk)) {
                bo = bm.left;
                if (e) {
                    bn.runtimeStyle.left = bn.currentStyle.left
                }
                bm.left = bl === "fontSize" ? "1em" : (bk || 0);
                bk = bm.pixelLeft + "px";
                bm.left = bo;
                if (e) {
                    bn.runtimeStyle.left = e
                }
            }
            return bk === "" ? "auto" : bk
        }
    }
    aa = aE || aS;

    function r(bl, bk, e) {
        var bn = bk === "width" ? am : aY,
            bm = bk === "width" ? bl.offsetWidth : bl.offsetHeight;
        if (e === "border") {
            return bm
        }
        b.each(bn, function () {
            if (!e) {
                bm -= parseFloat(b.css(bl, "padding" + this)) || 0
            }
            if (e === "margin") {
                bm += parseFloat(b.css(bl, "margin" + this)) || 0
            } else {
                bm -= parseFloat(b.css(bl, "border" + this + "Width")) || 0
            }
        });
        return bm
    }
    if (b.expr && b.expr.filters) {
        b.expr.filters.hidden = function (bl) {
            var bk = bl.offsetWidth,
                e = bl.offsetHeight;
            return (bk === 0 && e === 0) || (!b.support.reliableHiddenOffsets && (bl.style.display || b.css(bl, "display")) === "none")
        };
        b.expr.filters.visible = function (e) {
            return !b.expr.filters.hidden(e)
        }
    }
    var l = /%20/g,
        an = /\[\]$/,
        bj = /\r?\n/g,
        bh = /#.*$/,
        ay = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg,
        aV = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
        aI = /^(?:about|app|app\-storage|.+\-extension|file|widget):$/,
        aK = /^(?:GET|HEAD)$/,
        d = /^\/\//,
        N = /\?/,
        a1 = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
        s = /^(?:select|textarea)/i,
        j = /\s+/,
        bi = /([?&])_=[^&]*/,
        X = /(^|\-)([a-z])/g,
        aQ = function (bk, e, bl) {
            return e + bl.toUpperCase()
        },
        L = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,
        E = b.fn.load,
        ab = {},
        u = {},
        aA, v;
    try {
        aA = ar.location.href
    } catch (at) {
        aA = ar.createElement("a");
        aA.href = "";
        aA = aA.href
    }
    v = L.exec(aA.toLowerCase()) || [];

    function g(e) {
        return function (bn, bp) {
            if (typeof bn !== "string") {
                bp = bn;
                bn = "*"
            }
            if (b.isFunction(bp)) {
                var bm = bn.toLowerCase().split(j),
                    bl = 0,
                    bo = bm.length,
                    bk, bq, br;
                for (; bl < bo; bl++) {
                    bk = bm[bl];
                    br = /^\+/.test(bk);
                    if (br) {
                        bk = bk.substr(1) || "*"
                    }
                    bq = e[bk] = e[bk] || [];
                    bq[br ? "unshift" : "push"](bp)
                }
            }
        }
    }
    function aP(bk, bt, bo, bs, bq, bm) {
        bq = bq || bt.dataTypes[0];
        bm = bm || {};
        bm[bq] = true;
        var bp = bk[bq],
            bl = 0,
            e = bp ? bp.length : 0,
            bn = (bk === ab),
            br;
        for (; bl < e && (bn || !br); bl++) {
            br = bp[bl](bt, bo, bs);
            if (typeof br === "string") {
                if (!bn || bm[br]) {
                    br = M
                } else {
                    bt.dataTypes.unshift(br);
                    br = aP(bk, bt, bo, bs, br, bm)
                }
            }
        }
        if ((bn || !br) && !bm["*"]) {
            br = aP(bk, bt, bo, bs, "*", bm)
        }
        return br
    }
    b.fn.extend({
        load: function (bl, bo, bp) {
            if (typeof bl !== "string" && E) {
                return E.apply(this, arguments)
            } else {
                if (!this.length) {
                    return this
                }
            }
            var bn = bl.indexOf(" ");
            if (bn >= 0) {
                var e = bl.slice(bn, bl.length);
                bl = bl.slice(0, bn)
            }
            var bm = "GET";
            if (bo) {
                if (b.isFunction(bo)) {
                    bp = bo;
                    bo = M
                } else {
                    if (typeof bo === "object") {
                        bo = b.param(bo, b.ajaxSettings.traditional);
                        bm = "POST"
                    }
                }
            }
            var bk = this;
            b.ajax({
                url: bl,
                type: bm,
                dataType: "html",
                data: bo,
                complete: function (br, bq, bs) {
                    bs = br.responseText;
                    if (br.isResolved()) {
                        br.done(function (bt) {
                            bs = bt
                        });
                        bk.html(e ? b("<div>").append(bs.replace(a1, "")).find(e) : bs)
                    }
                    if (bp) {
                        bk.each(bp, [bs, bq, br])
                    }
                }
            });
            return this
        },
        serialize: function () {
            return b.param(this.serializeArray())
        },
        serializeArray: function () {
            return this.map(function () {
                return this.elements ? b.makeArray(this.elements) : this
            }).filter(function () {
                return this.name && !this.disabled && (this.checked || s.test(this.nodeName) || aV.test(this.type))
            }).map(function (e, bk) {
                var bl = b(this).val();
                return bl == null ? null : b.isArray(bl) ? b.map(bl, function (bn, bm) {
                    return {
                        name: bk.name,
                        value: bn.replace(bj, "\r\n")
                    }
                }) : {
                    name: bk.name,
                    value: bl.replace(bj, "\r\n")
                }
            }).get()
        }
    });
    b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function (e, bk) {
        b.fn[bk] = function (bl) {
            return this.bind(bk, bl)
        }
    });
    b.each(["get", "post"], function (e, bk) {
        b[bk] = function (bl, bn, bo, bm) {
            if (b.isFunction(bn)) {
                bm = bm || bo;
                bo = bn;
                bn = M
            }
            return b.ajax({
                type: bk,
                url: bl,
                data: bn,
                success: bo,
                dataType: bm
            })
        }
    });
    b.extend({
        getScript: function (e, bk) {
            return b.get(e, M, bk, "script")
        },
        getJSON: function (e, bk, bl) {
            return b.get(e, bk, bl, "json")
        },
        ajaxSetup: function (bl, e) {
            if (!e) {
                e = bl;
                bl = b.extend(true, b.ajaxSettings, e)
            } else {
                b.extend(true, bl, b.ajaxSettings, e)
            }
            for (var bk in {
                context: 1,
                url: 1
            }) {
                if (bk in e) {
                    bl[bk] = e[bk]
                } else {
                    if (bk in b.ajaxSettings) {
                        bl[bk] = b.ajaxSettings[bk]
                    }
                }
            }
            return bl
        },
        ajaxSettings: {
            url: aA,
            isLocal: aI.test(v[1]),
            global: true,
            type: "GET",
            contentType: "application/x-www-form-urlencoded",
            processData: true,
            async: true,
            accepts: {
                xml: "application/xml, text/xml",
                html: "text/html",
                text: "text/plain",
                json: "application/json, text/javascript",
                "*": "*/*"
            },
            contents: {
                xml: /xml/,
                html: /html/,
                json: /json/
            },
            responseFields: {
                xml: "responseXML",
                text: "responseText"
            },
            converters: {
                "* text": a5.String,
                "text html": true,
                "text json": b.parseJSON,
                "text xml": b.parseXML
            }
        },
        ajaxPrefilter: g(ab),
        ajaxTransport: g(u),
        ajax: function (bo, bm) {
            if (typeof bo === "object") {
                bm = bo;
                bo = M
            }
            bm = bm || {};
            var bs = b.ajaxSetup({}, bm),
                bG = bs.context || bs,
                bv = bG !== bs && (bG.nodeType || bG instanceof b) ? b(bG) : b.event,
                bF = b.Deferred(),
                bC = b._Deferred(),
                bq = bs.statusCode || {},
                br, bw = {},
                bE, bn, bA, bt, bx, bp = 0,
                bl, bz, by = {
                    readyState: 0,
                    setRequestHeader: function (e, bH) {
                        if (!bp) {
                            bw[e.toLowerCase().replace(X, aQ)] = bH
                        }
                        return this
                    },
                    getAllResponseHeaders: function () {
                        return bp === 2 ? bE : null
                    },
                    getResponseHeader: function (bH) {
                        var e;
                        if (bp === 2) {
                            if (!bn) {
                                bn = {};
                                while ((e = ay.exec(bE))) {
                                    bn[e[1].toLowerCase()] = e[2]
                                }
                            }
                            e = bn[bH.toLowerCase()]
                        }
                        return e === M ? null : e
                    },
                    overrideMimeType: function (e) {
                        if (!bp) {
                            bs.mimeType = e
                        }
                        return this
                    },
                    abort: function (e) {
                        e = e || "abort";
                        if (bA) {
                            bA.abort(e)
                        }
                        bu(0, e);
                        return this
                    }
                };

            function bu(bM, bK, bN, bJ) {
                if (bp === 2) {
                    return
                }
                bp = 2;
                if (bt) {
                    clearTimeout(bt)
                }
                bA = M;
                bE = bJ || "";
                by.readyState = bM ? 4 : 0;
                var bH, bR, bQ, bL = bN ? bb(bs, by, bN) : M,
                    bI, bP;
                if (bM >= 200 && bM < 300 || bM === 304) {
                    if (bs.ifModified) {
                        if ((bI = by.getResponseHeader("Last-Modified"))) {
                            b.lastModified[br] = bI
                        }
                        if ((bP = by.getResponseHeader("Etag"))) {
                            b.etag[br] = bP
                        }
                    }
                    if (bM === 304) {
                        bK = "notmodified";
                        bH = true
                    } else {
                        try {
                            bR = I(bs, bL);
                            bK = "success";
                            bH = true
                        } catch (bO) {
                            bK = "parsererror";
                            bQ = bO
                        }
                    }
                } else {
                    bQ = bK;
                    if (!bK || bM) {
                        bK = "error";
                        if (bM < 0) {
                            bM = 0
                        }
                    }
                }
                by.status = bM;
                by.statusText = bK;
                if (bH) {
                    bF.resolveWith(bG, [bR, bK, by])
                } else {
                    bF.rejectWith(bG, [by, bK, bQ])
                }
                by.statusCode(bq);
                bq = M;
                if (bl) {
                    bv.trigger("ajax" + (bH ? "Success" : "Error"), [by, bs, bH ? bR : bQ])
                }
                bC.resolveWith(bG, [by, bK]);
                if (bl) {
                    bv.trigger("ajaxComplete", [by, bs]);
                    if (!(--b.active)) {
                        b.event.trigger("ajaxStop")
                    }
                }
            }
            bF.promise(by);
            by.success = by.done;
            by.error = by.fail;
            by.complete = bC.done;
            by.statusCode = function (bH) {
                if (bH) {
                    var e;
                    if (bp < 2) {
                        for (e in bH) {
                            bq[e] = [bq[e], bH[e]]
                        }
                    } else {
                        e = bH[by.status];
                        by.then(e, e)
                    }
                }
                return this
            };
            bs.url = ((bo || bs.url) + "").replace(bh, "").replace(d, v[1] + "//");
            bs.dataTypes = b.trim(bs.dataType || "*").toLowerCase().split(j);
            if (bs.crossDomain == null) {
                bx = L.exec(bs.url.toLowerCase());
                bs.crossDomain = !! (bx && (bx[1] != v[1] || bx[2] != v[2] || (bx[3] || (bx[1] === "http:" ? 80 : 443)) != (v[3] || (v[1] === "http:" ? 80 : 443))))
            }
            if (bs.data && bs.processData && typeof bs.data !== "string") {
                bs.data = b.param(bs.data, bs.traditional)
            }
            aP(ab, bs, bm, by);
            if (bp === 2) {
                return false
            }
            bl = bs.global;
            bs.type = bs.type.toUpperCase();
            bs.hasContent = !aK.test(bs.type);
            if (bl && b.active++ === 0) {
                b.event.trigger("ajaxStart")
            }
            if (!bs.hasContent) {
                if (bs.data) {
                    bs.url += (N.test(bs.url) ? "&" : "?") + bs.data
                }
                br = bs.url;
                if (bs.cache === false) {
                    var bk = b.now(),
                        bD = bs.url.replace(bi, "$1_=" + bk);
                    bs.url = bD + ((bD === bs.url) ? (N.test(bs.url) ? "&" : "?") + "_=" + bk : "")
                }
            }
            if (bs.data && bs.hasContent && bs.contentType !== false || bm.contentType) {
                bw["Content-Type"] = bs.contentType
            }
            if (bs.ifModified) {
                br = br || bs.url;
                if (b.lastModified[br]) {
                    bw["If-Modified-Since"] = b.lastModified[br]
                }
                if (b.etag[br]) {
                    bw["If-None-Match"] = b.etag[br]
                }
            }
            bw.Accept = bs.dataTypes[0] && bs.accepts[bs.dataTypes[0]] ? bs.accepts[bs.dataTypes[0]] + (bs.dataTypes[0] !== "*" ? ", */*; q=0.01" : "") : bs.accepts["*"];
            for (bz in bs.headers) {
                by.setRequestHeader(bz, bs.headers[bz])
            }
            if (bs.beforeSend && (bs.beforeSend.call(bG, by, bs) === false || bp === 2)) {
                by.abort();
                return false
            }
            for (bz in {
                success: 1,
                error: 1,
                complete: 1
            }) {
                by[bz](bs[bz])
            }
            bA = aP(u, bs, bm, by);
            if (!bA) {
                bu(-1, "No Transport")
            } else {
                by.readyState = 1;
                if (bl) {
                    bv.trigger("ajaxSend", [by, bs])
                }
                if (bs.async && bs.timeout > 0) {
                    bt = setTimeout(function () {
                        by.abort("timeout")
                    }, bs.timeout)
                }
                try {
                    bp = 1;
                    bA.send(bw, bu)
                } catch (bB) {
                    if (status < 2) {
                        bu(-1, bB)
                    } else {
                        b.error(bB)
                    }
                }
            }
            return by
        },
        param: function (e, bl) {
            var bk = [],
                bn = function (bo, bp) {
                    bp = b.isFunction(bp) ? bp() : bp;
                    bk[bk.length] = encodeURIComponent(bo) + "=" + encodeURIComponent(bp)
                };
            if (bl === M) {
                bl = b.ajaxSettings.traditional
            }
            if (b.isArray(e) || (e.jquery && !b.isPlainObject(e))) {
                b.each(e, function () {
                    bn(this.name, this.value)
                })
            } else {
                for (var bm in e) {
                    z(bm, e[bm], bl, bn)
                }
            }
            return bk.join("&").replace(l, "+")
        }
    });

    function z(bl, bn, bk, bm) {
        if (b.isArray(bn) && bn.length) {
            b.each(bn, function (bp, bo) {
                if (bk || an.test(bl)) {
                    bm(bl, bo)
                } else {
                    z(bl + "[" + (typeof bo === "object" || b.isArray(bo) ? bp : "") + "]", bo, bk, bm)
                }
            })
        } else {
            if (!bk && bn != null && typeof bn === "object") {
                if (b.isArray(bn) || b.isEmptyObject(bn)) {
                    bm(bl, "")
                } else {
                    for (var e in bn) {
                        z(bl + "[" + e + "]", bn[e], bk, bm)
                    }
                }
            } else {
                bm(bl, bn)
            }
        }
    }
    b.extend({
        active: 0,
        lastModified: {},
        etag: {}
    });

    function bb(bs, br, bo) {
        var bk = bs.contents,
            bq = bs.dataTypes,
            bl = bs.responseFields,
            bn, bp, bm, e;
        for (bp in bl) {
            if (bp in bo) {
                br[bl[bp]] = bo[bp]
            }
        }
        while (bq[0] === "*") {
            bq.shift();
            if (bn === M) {
                bn = bs.mimeType || br.getResponseHeader("content-type")
            }
        }
        if (bn) {
            for (bp in bk) {
                if (bk[bp] && bk[bp].test(bn)) {
                    bq.unshift(bp);
                    break
                }
            }
        }
        if (bq[0] in bo) {
            bm = bq[0]
        } else {
            for (bp in bo) {
                if (!bq[0] || bs.converters[bp + " " + bq[0]]) {
                    bm = bp;
                    break
                }
                if (!e) {
                    e = bp
                }
            }
            bm = bm || e
        }
        if (bm) {
            if (bm !== bq[0]) {
                bq.unshift(bm)
            }
            return bo[bm]
        }
    }
    function I(bw, bo) {
        if (bw.dataFilter) {
            bo = bw.dataFilter(bo, bw.dataType)
        }
        var bs = bw.dataTypes,
            bv = {},
            bp, bt, bl = bs.length,
            bq, br = bs[0],
            bm, bn, bu, bk, e;
        for (bp = 1; bp < bl; bp++) {
            if (bp === 1) {
                for (bt in bw.converters) {
                    if (typeof bt === "string") {
                        bv[bt.toLowerCase()] = bw.converters[bt]
                    }
                }
            }
            bm = br;
            br = bs[bp];
            if (br === "*") {
                br = bm
            } else {
                if (bm !== "*" && bm !== br) {
                    bn = bm + " " + br;
                    bu = bv[bn] || bv["* " + br];
                    if (!bu) {
                        e = M;
                        for (bk in bv) {
                            bq = bk.split(" ");
                            if (bq[0] === bm || bq[0] === "*") {
                                e = bv[bq[1] + " " + br];
                                if (e) {
                                    bk = bv[bk];
                                    if (bk === true) {
                                        bu = e
                                    } else {
                                        if (e === true) {
                                            bu = bk
                                        }
                                    }
                                    break
                                }
                            }
                        }
                    }
                    if (!(bu || e)) {
                        b.error("No conversion from " + bn.replace(" ", " to "))
                    }
                    if (bu !== true) {
                        bo = bu ? bu(bo) : e(bk(bo))
                    }
                }
            }
        }
        return bo
    }
    var ax = b.now(),
        y = /(\=)\?(&|$)|\?\?/i;
    b.ajaxSetup({
        jsonp: "callback",
        jsonpCallback: function () {
            return b.expando + "_" + (ax++)
        }
    });
    b.ajaxPrefilter("json jsonp", function (bt, bp, bs) {
        var br = (typeof bt.data === "string");
        if (bt.dataTypes[0] === "jsonp" || bp.jsonpCallback || bp.jsonp != null || bt.jsonp !== false && (y.test(bt.url) || br && y.test(bt.data))) {
            var bq, bl = bt.jsonpCallback = b.isFunction(bt.jsonpCallback) ? bt.jsonpCallback() : bt.jsonpCallback,
                bo = a5[bl],
                e = bt.url,
                bn = bt.data,
                bk = "$1" + bl + "$2",
                bm = function () {
                    a5[bl] = bo;
                    if (bq && b.isFunction(bo)) {
                        a5[bl](bq[0])
                    }
                };
            if (bt.jsonp !== false) {
                e = e.replace(y, bk);
                if (bt.url === e) {
                    if (br) {
                        bn = bn.replace(y, bk)
                    }
                    if (bt.data === bn) {
                        e += (/\?/.test(e) ? "&" : "?") + bt.jsonp + "=" + bl
                    }
                }
            }
            bt.url = e;
            bt.data = bn;
            a5[bl] = function (bu) {
                bq = [bu]
            };
            bs.then(bm, bm);
            bt.converters["script json"] = function () {
                if (!bq) {
                    b.error(bl + " was not called")
                }
                return bq[0]
            };
            bt.dataTypes[0] = "json";
            return "script"
        }
    });
    b.ajaxSetup({
        accepts: {
            script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
        },
        contents: {
            script: /javascript|ecmascript/
        },
        converters: {
            "text script": function (e) {
                b.globalEval(e);
                return e
            }
        }
    });
    b.ajaxPrefilter("script", function (e) {
        if (e.cache === M) {
            e.cache = false
        }
        if (e.crossDomain) {
            e.type = "GET";
            e.global = false
        }
    });
    b.ajaxTransport("script", function (bl) {
        if (bl.crossDomain) {
            var e, bk = ar.head || ar.getElementsByTagName("head")[0] || ar.documentElement;
            return {
                send: function (bm, bn) {
                    e = ar.createElement("script");
                    e.async = "async";
                    if (bl.scriptCharset) {
                        e.charset = bl.scriptCharset
                    }
                    e.src = bl.url;
                    e.onload = e.onreadystatechange = function (bp, bo) {
                        if (!e.readyState || /loaded|complete/.test(e.readyState)) {
                            e.onload = e.onreadystatechange = null;
                            if (bk && e.parentNode) {
                                bk.removeChild(e)
                            }
                            e = M;
                            if (!bo) {
                                bn(200, "success")
                            }
                        }
                    };
                    bk.insertBefore(e, bk.firstChild)
                },
                abort: function () {
                    if (e) {
                        e.onload(0, 1)
                    }
                }
            }
        }
    });
    var C = b.now(),
        O, az;

    function F() {
        b(a5).unload(function () {
            for (var e in O) {
                O[e](0, 1)
            }
        })
    }
    function aH() {
        try {
            return new a5.XMLHttpRequest()
        } catch (bk) {}
    }
    function aj() {
        try {
            return new a5.ActiveXObject("Microsoft.XMLHTTP")
        } catch (bk) {}
    }
    b.ajaxSettings.xhr = a5.ActiveXObject ?
    function () {
        return !this.isLocal && aH() || aj()
    } : aH;
    az = b.ajaxSettings.xhr();
    b.support.ajax = !! az;
    b.support.cors = az && ("withCredentials" in az);
    az = M;
    if (b.support.ajax) {
        b.ajaxTransport(function (e) {
            if (!e.crossDomain || b.support.cors) {
                var bk;
                return {
                    send: function (bq, bl) {
                        var bp = e.xhr(),
                            bo, bn;
                        if (e.username) {
                            bp.open(e.type, e.url, e.async, e.username, e.password)
                        } else {
                            bp.open(e.type, e.url, e.async)
                        }
                        if (e.xhrFields) {
                            for (bn in e.xhrFields) {
                                bp[bn] = e.xhrFields[bn]
                            }
                        }
                        if (e.mimeType && bp.overrideMimeType) {
                            bp.overrideMimeType(e.mimeType)
                        }
                        if (!e.crossDomain && !bq["X-Requested-With"]) {
                            bq["X-Requested-With"] = "XMLHttpRequest"
                        }
                        try {
                            for (bn in bq) {
                                bp.setRequestHeader(bn, bq[bn])
                            }
                        } catch (bm) {}
                        bp.send((e.hasContent && e.data) || null);
                        bk = function (bz, bt) {
                            var bu, bs, br, bx, bw;
                            try {
                                if (bk && (bt || bp.readyState === 4)) {
                                    bk = M;
                                    if (bo) {
                                        bp.onreadystatechange = b.noop;
                                        delete O[bo]
                                    }
                                    if (bt) {
                                        if (bp.readyState !== 4) {
                                            bp.abort()
                                        }
                                    } else {
                                        bu = bp.status;
                                        br = bp.getAllResponseHeaders();
                                        bx = {};
                                        bw = bp.responseXML;
                                        if (bw && bw.documentElement) {
                                            bx.xml = bw
                                        }
                                        bx.text = bp.responseText;
                                        try {
                                            bs = bp.statusText
                                        } catch (by) {
                                            bs = ""
                                        }
                                        if (!bu && e.isLocal && !e.crossDomain) {
                                            bu = bx.text ? 200 : 404
                                        } else {
                                            if (bu === 1223) {
                                                bu = 204
                                            }
                                        }
                                    }
                                }
                            } catch (bv) {
                                if (!bt) {
                                    bl(-1, bv)
                                }
                            }
                            if (bx) {
                                bl(bu, bs, bx, br)
                            }
                        };
                        if (!e.async || bp.readyState === 4) {
                            bk()
                        } else {
                            if (!O) {
                                O = {};
                                F()
                            }
                            bo = C++;
                            bp.onreadystatechange = O[bo] = bk
                        }
                    },
                    abort: function () {
                        if (bk) {
                            bk(0, 1)
                        }
                    }
                }
            }
        })
    }
    var T = {},
        aw = /^(?:toggle|show|hide)$/,
        aM = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,
        aZ, aD = [
            ["height", "marginTop", "marginBottom", "paddingTop", "paddingBottom"],
            ["width", "marginLeft", "marginRight", "paddingLeft", "paddingRight"],
            ["opacity"]
        ];
    b.fn.extend({
        show: function (bm, bp, bo) {
            var bl, bn;
            if (bm || bm === 0) {
                return this.animate(aX("show", 3), bm, bp, bo)
            } else {
                for (var bk = 0, e = this.length; bk < e; bk++) {
                    bl = this[bk];
                    bn = bl.style.display;
                    if (!b._data(bl, "olddisplay") && bn === "none") {
                        bn = bl.style.display = ""
                    }
                    if (bn === "" && b.css(bl, "display") === "none") {
                        b._data(bl, "olddisplay", B(bl.nodeName))
                    }
                }
                for (bk = 0; bk < e; bk++) {
                    bl = this[bk];
                    bn = bl.style.display;
                    if (bn === "" || bn === "none") {
                        bl.style.display = b._data(bl, "olddisplay") || ""
                    }
                }
                return this
            }
        },
        hide: function (bl, bo, bn) {
            if (bl || bl === 0) {
                return this.animate(aX("hide", 3), bl, bo, bn)
            } else {
                for (var bk = 0, e = this.length; bk < e; bk++) {
                    var bm = b.css(this[bk], "display");
                    if (bm !== "none" && !b._data(this[bk], "olddisplay")) {
                        b._data(this[bk], "olddisplay", bm)
                    }
                }
                for (bk = 0; bk < e; bk++) {
                    this[bk].style.display = "none"
                }
                return this
            }
        },
        _toggle: b.fn.toggle,
        toggle: function (bl, bk, bm) {
            var e = typeof bl === "boolean";
            if (b.isFunction(bl) && b.isFunction(bk)) {
                this._toggle.apply(this, arguments)
            } else {
                if (bl == null || e) {
                    this.each(function () {
                        var bn = e ? bl : b(this).is(":hidden");
                        b(this)[bn ? "show" : "hide"]()
                    })
                } else {
                    this.animate(aX("toggle", 3), bl, bk, bm)
                }
            }
            return this
        },
        fadeTo: function (e, bm, bl, bk) {
            return this.filter(":hidden").css("opacity", 0).show().end().animate({
                opacity: bm
            }, e, bl, bk)
        },
        animate: function (bn, bk, bm, bl) {
            var e = b.speed(bk, bm, bl);
            if (b.isEmptyObject(bn)) {
                return this.each(e.complete)
            }
            return this[e.queue === false ? "each" : "queue"](function () {
                var bq = b.extend({}, e),
                    bu, br = this.nodeType === 1,
                    bs = br && b(this).is(":hidden"),
                    bo = this;
                for (bu in bn) {
                    var bp = b.camelCase(bu);
                    if (bu !== bp) {
                        bn[bp] = bn[bu];
                        delete bn[bu];
                        bu = bp
                    }
                    if (bn[bu] === "hide" && bs || bn[bu] === "show" && !bs) {
                        return bq.complete.call(this)
                    }
                    if (br && (bu === "height" || bu === "width")) {
                        bq.overflow = [this.style.overflow, this.style.overflowX, this.style.overflowY];
                        if (b.css(this, "display") === "inline" && b.css(this, "float") === "none") {
                            if (!b.support.inlineBlockNeedsLayout) {
                                this.style.display = "inline-block"
                            } else {
                                var bt = B(this.nodeName);
                                if (bt === "inline") {
                                    this.style.display = "inline-block"
                                } else {
                                    this.style.display = "inline";
                                    this.style.zoom = 1
                                }
                            }
                        }
                    }
                    if (b.isArray(bn[bu])) {
                        (bq.specialEasing = bq.specialEasing || {})[bu] = bn[bu][1];
                        bn[bu] = bn[bu][0]
                    }
                }
                if (bq.overflow != null) {
                    this.style.overflow = "hidden"
                }
                bq.curAnim = b.extend({}, bn);
                b.each(bn, function (bw, bA) {
                    var bz = new b.fx(bo, bq, bw);
                    if (aw.test(bA)) {
                        bz[bA === "toggle" ? bs ? "show" : "hide" : bA](bn)
                    } else {
                        var by = aM.exec(bA),
                            bB = bz.cur();
                        if (by) {
                            var bv = parseFloat(by[2]),
                                bx = by[3] || (b.cssNumber[bw] ? "" : "px");
                            if (bx !== "px") {
                                b.style(bo, bw, (bv || 1) + bx);
                                bB = ((bv || 1) / bz.cur()) * bB;
                                b.style(bo, bw, bB + bx)
                            }
                            if (by[1]) {
                                bv = ((by[1] === "-=" ? -1 : 1) * bv) + bB
                            }
                            bz.custom(bB, bv, bx)
                        } else {
                            bz.custom(bB, bA, "")
                        }
                    }
                });
                return true
            })
        },
        stop: function (bk, e) {
            var bl = b.timers;
            if (bk) {
                this.queue([])
            }
            this.each(function () {
                for (var bm = bl.length - 1; bm >= 0; bm--) {
                    if (bl[bm].elem === this) {
                        if (e) {
                            bl[bm](true)
                        }
                        bl.splice(bm, 1)
                    }
                }
            });
            if (!e) {
                this.dequeue()
            }
            return this
        }
    });

    function aX(bk, e) {
        var bl = {};
        b.each(aD.concat.apply([], aD.slice(0, e)), function () {
            bl[this] = bk
        });
        return bl
    }
    b.each({
        slideDown: aX("show", 1),
        slideUp: aX("hide", 1),
        slideToggle: aX("toggle", 1),
        fadeIn: {
            opacity: "show"
        },
        fadeOut: {
            opacity: "hide"
        },
        fadeToggle: {
            opacity: "toggle"
        }
    }, function (e, bk) {
        b.fn[e] = function (bl, bn, bm) {
            return this.animate(bk, bl, bn, bm)
        }
    });
    b.extend({
        speed: function (bl, bm, bk) {
            var e = bl && typeof bl === "object" ? b.extend({}, bl) : {
                complete: bk || !bk && bm || b.isFunction(bl) && bl,
                duration: bl,
                easing: bk && bm || bm && !b.isFunction(bm) && bm
            };
            e.duration = b.fx.off ? 0 : typeof e.duration === "number" ? e.duration : e.duration in b.fx.speeds ? b.fx.speeds[e.duration] : b.fx.speeds._default;
            e.old = e.complete;
            e.complete = function () {
                if (e.queue !== false) {
                    b(this).dequeue()
                }
                if (b.isFunction(e.old)) {
                    e.old.call(this)
                }
            };
            return e
        },
        easing: {
            linear: function (bl, bm, e, bk) {
                return e + bk * bl
            },
            swing: function (bl, bm, e, bk) {
                return ((-Math.cos(bl * Math.PI) / 2) + 0.5) * bk + e
            }
        },
        timers: [],
        fx: function (bk, e, bl) {
            this.options = e;
            this.elem = bk;
            this.prop = bl;
            if (!e.orig) {
                e.orig = {}
            }
        }
    });
    b.fx.prototype = {
        update: function () {
            if (this.options.step) {
                this.options.step.call(this.elem, this.now, this)
            }(b.fx.step[this.prop] || b.fx.step._default)(this)
        },
        cur: function () {
            if (this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null)) {
                return this.elem[this.prop]
            }
            var e, bk = b.css(this.elem, this.prop);
            return isNaN(e = parseFloat(bk)) ? !bk || bk === "auto" ? 0 : bk : e
        },
        custom: function (bo, bn, bm) {
            var e = this,
                bl = b.fx;
            this.startTime = b.now();
            this.start = bo;
            this.end = bn;
            this.unit = bm || this.unit || (b.cssNumber[this.prop] ? "" : "px");
            this.now = this.start;
            this.pos = this.state = 0;

            function bk(bp) {
                return e.step(bp)
            }
            bk.elem = this.elem;
            if (bk() && b.timers.push(bk) && !aZ) {
                aZ = setInterval(bl.tick, bl.interval)
            }
        },
        show: function () {
            this.options.orig[this.prop] = b.style(this.elem, this.prop);
            this.options.show = true;
            this.custom(this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur());
            b(this.elem).show()
        },
        hide: function () {
            this.options.orig[this.prop] = b.style(this.elem, this.prop);
            this.options.hide = true;
            this.custom(this.cur(), 0)
        },
        step: function (bm) {
            var br = b.now(),
                bn = true;
            if (bm || br >= this.options.duration + this.startTime) {
                this.now = this.end;
                this.pos = this.state = 1;
                this.update();
                this.options.curAnim[this.prop] = true;
                for (var bo in this.options.curAnim) {
                    if (this.options.curAnim[bo] !== true) {
                        bn = false
                    }
                }
                if (bn) {
                    if (this.options.overflow != null && !b.support.shrinkWrapBlocks) {
                        var bl = this.elem,
                            bs = this.options;
                        b.each(["", "X", "Y"], function (bt, bu) {
                            bl.style["overflow" + bu] = bs.overflow[bt]
                        })
                    }
                    if (this.options.hide) {
                        b(this.elem).hide()
                    }
                    if (this.options.hide || this.options.show) {
                        for (var e in this.options.curAnim) {
                            b.style(this.elem, e, this.options.orig[e])
                        }
                    }
                    this.options.complete.call(this.elem)
                }
                return false
            } else {
                var bk = br - this.startTime;
                this.state = bk / this.options.duration;
                var bp = this.options.specialEasing && this.options.specialEasing[this.prop];
                var bq = this.options.easing || (b.easing.swing ? "swing" : "linear");
                this.pos = b.easing[bp || bq](this.state, bk, 0, 1, this.options.duration);
                this.now = this.start + ((this.end - this.start) * this.pos);
                this.update()
            }
            return true
        }
    };
    b.extend(b.fx, {
        tick: function () {
            var bk = b.timers;
            for (var e = 0; e < bk.length; e++) {
                if (!bk[e]()) {
                    bk.splice(e--, 1)
                }
            }
            if (!bk.length) {
                b.fx.stop()
            }
        },
        interval: 13,
        stop: function () {
            clearInterval(aZ);
            aZ = null
        },
        speeds: {
            slow: 600,
            fast: 200,
            _default: 400
        },
        step: {
            opacity: function (e) {
                b.style(e.elem, "opacity", e.now)
            },
            _default: function (e) {
                if (e.elem.style && e.elem.style[e.prop] != null) {
                    e.elem.style[e.prop] = (e.prop === "width" || e.prop === "height" ? Math.max(0, e.now) : e.now) + e.unit
                } else {
                    e.elem[e.prop] = e.now
                }
            }
        }
    });
    if (b.expr && b.expr.filters) {
        b.expr.filters.animated = function (e) {
            return b.grep(b.timers, function (bk) {
                return e === bk.elem
            }).length
        }
    }
    function B(bl) {
        if (!T[bl]) {
            var e = b("<" + bl + ">").appendTo("body"),
                bk = e.css("display");
            e.remove();
            if (bk === "none" || bk === "") {
                bk = "block"
            }
            T[bl] = bk
        }
        return T[bl]
    }
    var Y = /^t(?:able|d|h)$/i,
        ae = /^(?:body|html)$/i;
    if ("getBoundingClientRect" in ar.documentElement) {
        b.fn.offset = function (bx) {
            var bn = this[0],
                bq;
            if (bx) {
                return this.each(function (e) {
                    b.offset.setOffset(this, bx, e)
                })
            }
            if (!bn || !bn.ownerDocument) {
                return null
            }
            if (bn === bn.ownerDocument.body) {
                return b.offset.bodyOffset(bn)
            }
            try {
                bq = bn.getBoundingClientRect()
            } catch (bu) {}
            var bw = bn.ownerDocument,
                bl = bw.documentElement;
            if (!bq || !b.contains(bl, bn)) {
                return bq ? {
                    top: bq.top,
                    left: bq.left
                } : {
                    top: 0,
                    left: 0
                }
            }
            var br = bw.body,
                bs = aG(bw),
                bp = bl.clientTop || br.clientTop || 0,
                bt = bl.clientLeft || br.clientLeft || 0,
                bk = bs.pageYOffset || b.support.boxModel && bl.scrollTop || br.scrollTop,
                bo = bs.pageXOffset || b.support.boxModel && bl.scrollLeft || br.scrollLeft,
                bv = bq.top + bk - bp,
                bm = bq.left + bo - bt;
            return {
                top: bv,
                left: bm
            }
        }
    } else {
        b.fn.offset = function (bu) {
            var bo = this[0];
            if (bu) {
                return this.each(function (bv) {
                    b.offset.setOffset(this, bu, bv)
                })
            }
            if (!bo || !bo.ownerDocument) {
                return null
            }
            if (bo === bo.ownerDocument.body) {
                return b.offset.bodyOffset(bo)
            }
            b.offset.initialize();
            var br, bl = bo.offsetParent,
                bk = bo,
                bt = bo.ownerDocument,
                bm = bt.documentElement,
                bp = bt.body,
                bq = bt.defaultView,
                e = bq ? bq.getComputedStyle(bo, null) : bo.currentStyle,
                bs = bo.offsetTop,
                bn = bo.offsetLeft;
            while ((bo = bo.parentNode) && bo !== bp && bo !== bm) {
                if (b.offset.supportsFixedPosition && e.position === "fixed") {
                    break
                }
                br = bq ? bq.getComputedStyle(bo, null) : bo.currentStyle;
                bs -= bo.scrollTop;
                bn -= bo.scrollLeft;
                if (bo === bl) {
                    bs += bo.offsetTop;
                    bn += bo.offsetLeft;
                    if (b.offset.doesNotAddBorder && !(b.offset.doesAddBorderForTableAndCells && Y.test(bo.nodeName))) {
                        bs += parseFloat(br.borderTopWidth) || 0;
                        bn += parseFloat(br.borderLeftWidth) || 0
                    }
                    bk = bl;
                    bl = bo.offsetParent
                }
                if (b.offset.subtractsBorderForOverflowNotVisible && br.overflow !== "visible") {
                    bs += parseFloat(br.borderTopWidth) || 0;
                    bn += parseFloat(br.borderLeftWidth) || 0
                }
                e = br
            }
            if (e.position === "relative" || e.position === "static") {
                bs += bp.offsetTop;
                bn += bp.offsetLeft
            }
            if (b.offset.supportsFixedPosition && e.position === "fixed") {
                bs += Math.max(bm.scrollTop, bp.scrollTop);
                bn += Math.max(bm.scrollLeft, bp.scrollLeft)
            }
            return {
                top: bs,
                left: bn
            }
        }
    }
    b.offset = {
        initialize: function () {
            var e = ar.body,
                bk = ar.createElement("div"),
                bn, bp, bo, bq, bl = parseFloat(b.css(e, "marginTop")) || 0,
                bm = "<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
            b.extend(bk.style, {
                position: "absolute",
                top: 0,
                left: 0,
                margin: 0,
                border: 0,
                width: "1px",
                height: "1px",
                visibility: "hidden"
            });
            bk.innerHTML = bm;
            e.insertBefore(bk, e.firstChild);
            bn = bk.firstChild;
            bp = bn.firstChild;
            bq = bn.nextSibling.firstChild.firstChild;
            this.doesNotAddBorder = (bp.offsetTop !== 5);
            this.doesAddBorderForTableAndCells = (bq.offsetTop === 5);
            bp.style.position = "fixed";
            bp.style.top = "20px";
            this.supportsFixedPosition = (bp.offsetTop === 20 || bp.offsetTop === 15);
            bp.style.position = bp.style.top = "";
            bn.style.overflow = "hidden";
            bn.style.position = "relative";
            this.subtractsBorderForOverflowNotVisible = (bp.offsetTop === -5);
            this.doesNotIncludeMarginInBodyOffset = (e.offsetTop !== bl);
            e.removeChild(bk);
            b.offset.initialize = b.noop
        },
        bodyOffset: function (e) {
            var bl = e.offsetTop,
                bk = e.offsetLeft;
            b.offset.initialize();
            if (b.offset.doesNotIncludeMarginInBodyOffset) {
                bl += parseFloat(b.css(e, "marginTop")) || 0;
                bk += parseFloat(b.css(e, "marginLeft")) || 0
            }
            return {
                top: bl,
                left: bk
            }
        },
        setOffset: function (bm, bv, bp) {
            var bq = b.css(bm, "position");
            if (bq === "static") {
                bm.style.position = "relative"
            }
            var bo = b(bm),
                bk = bo.offset(),
                e = b.css(bm, "top"),
                bt = b.css(bm, "left"),
                bu = (bq === "absolute" || bq === "fixed") && b.inArray("auto", [e, bt]) > -1,
                bs = {},
                br = {},
                bl, bn;
            if (bu) {
                br = bo.position()
            }
            bl = bu ? br.top : parseInt(e, 10) || 0;
            bn = bu ? br.left : parseInt(bt, 10) || 0;
            if (b.isFunction(bv)) {
                bv = bv.call(bm, bp, bk)
            }
            if (bv.top != null) {
                bs.top = (bv.top - bk.top) + bl
            }
            if (bv.left != null) {
                bs.left = (bv.left - bk.left) + bn
            }
            if ("using" in bv) {
                bv.using.call(bm, bs)
            } else {
                bo.css(bs)
            }
        }
    };
    b.fn.extend({
        position: function () {
            if (!this[0]) {
                return null
            }
            var bl = this[0],
                bk = this.offsetParent(),
                bm = this.offset(),
                e = ae.test(bk[0].nodeName) ? {
                    top: 0,
                    left: 0
                } : bk.offset();
            bm.top -= parseFloat(b.css(bl, "marginTop")) || 0;
            bm.left -= parseFloat(b.css(bl, "marginLeft")) || 0;
            e.top += parseFloat(b.css(bk[0], "borderTopWidth")) || 0;
            e.left += parseFloat(b.css(bk[0], "borderLeftWidth")) || 0;
            return {
                top: bm.top - e.top,
                left: bm.left - e.left
            }
        },
        offsetParent: function () {
            return this.map(function () {
                var e = this.offsetParent || ar.body;
                while (e && (!ae.test(e.nodeName) && b.css(e, "position") === "static")) {
                    e = e.offsetParent
                }
                return e
            })
        }
    });
    b.each(["Left", "Top"], function (bk, e) {
        var bl = "scroll" + e;
        b.fn[bl] = function (bo) {
            var bm = this[0],
                bn;
            if (!bm) {
                return null
            }
            if (bo !== M) {
                return this.each(function () {
                    bn = aG(this);
                    if (bn) {
                        bn.scrollTo(!bk ? bo : b(bn).scrollLeft(), bk ? bo : b(bn).scrollTop())
                    } else {
                        this[bl] = bo
                    }
                })
            } else {
                bn = aG(bm);
                return bn ? ("pageXOffset" in bn) ? bn[bk ? "pageYOffset" : "pageXOffset"] : b.support.boxModel && bn.document.documentElement[bl] || bn.document.body[bl] : bm[bl]
            }
        }
    });

    function aG(e) {
        return b.isWindow(e) ? e : e.nodeType === 9 ? e.defaultView || e.parentWindow : false
    }
    b.each(["Height", "Width"], function (bk, e) {
        var bl = e.toLowerCase();
        b.fn["inner" + e] = function () {
            return this[0] ? parseFloat(b.css(this[0], bl, "padding")) : null
        };
        b.fn["outer" + e] = function (bm) {
            return this[0] ? parseFloat(b.css(this[0], bl, bm ? "margin" : "border")) : null
        };
        b.fn[bl] = function (bn) {
            var bo = this[0];
            if (!bo) {
                return bn == null ? null : this
            }
            if (b.isFunction(bn)) {
                return this.each(function (bs) {
                    var br = b(this);
                    br[bl](bn.call(this, bs, br[bl]()))
                })
            }
            if (b.isWindow(bo)) {
                var bp = bo.document.documentElement["client" + e];
                return bo.document.compatMode === "CSS1Compat" && bp || bo.document.body["client" + e] || bp
            } else {
                if (bo.nodeType === 9) {
                    return Math.max(bo.documentElement["client" + e], bo.body["scroll" + e], bo.documentElement["scroll" + e], bo.body["offset" + e], bo.documentElement["offset" + e])
                } else {
                    if (bn === M) {
                        var bq = b.css(bo, bl),
                            bm = parseFloat(bq);
                        return b.isNaN(bm) ? bq : bm
                    } else {
                        return this.css(bl, typeof bn === "string" ? bn : bn + "px")
                    }
                }
            }
        }
    });
    a5.jQuery = a5.$ = b
})(window);
