Skip to content

Instantly share code, notes, and snippets.

@scien
Created March 24, 2016 11:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save scien/5b94fcd18a4885dcabdf to your computer and use it in GitHub Desktop.
Save scien/5b94fcd18a4885dcabdf to your computer and use it in GitHub Desktop.
twitch player embed.js
! function(e, t) {
"object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? exports.video = t() : (e.Twitch = e.Twitch || {}, e.Twitch.video = t())
}(this, function() {
return function(e) {
function t(r) {
if (n[r]) return n[r].exports;
var i = n[r] = {
exports: {},
id: r,
loaded: !1
};
return e[r].call(i.exports, i, i.exports, t), i.loaded = !0, i.exports
}
var n = {};
return t.m = e, t.c = n, t.p = "", t(0)
}([function(e, t, n) {
(function(e) {
"use strict";
function r(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
Object.defineProperty(t, "__esModule", {
value: !0
}), t.PlayerEmbed = void 0;
var i = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r)
}
}
return function(t, n, r) {
return n && e(t.prototype, n), r && e(t, r), t
}
}(),
o = n(2),
a = n(3),
s = n(5),
u = n(8),
l = n(7),
c = t.PlayerEmbed = function() {
function t(n, i) {
r(this, t), this._root = n;
var u = (0, o.toString)(e.omit(i, "width", "height")),
l = a.playerHost + "/?" + u,
c = document.createElement("iframe");
c.setAttribute("src", l), i.width && c.setAttribute("width", i.width), i.height && c.setAttribute("height", i.height), c.setAttribute("frameBorder", "0"), c.setAttribute("allowFullScreen", ""), c.setAttribute("scrolling", "no"), e.isString(this._root) && (this._root = document.getElementById(this._root)), this._root.appendChild(c), this._bridge = new s.EmbedClient(c.contentWindow)
}
return i(t, [{
key: "play",
value: function() {
this._bridge.callPlayerMethod(l.METHOD_PLAY)
}
}, {
key: "pause",
value: function() {
this._bridge.callPlayerMethod(l.METHOD_PAUSE)
}
}, {
key: "seek",
value: function(e) {
this._bridge.callPlayerMethod(l.METHOD_SEEK, e)
}
}, {
key: "setVolume",
value: function(e) {
this._bridge.callPlayerMethod(l.METHOD_SET_VOLUME, e)
}
}, {
key: "setMuted",
value: function(e) {
this._bridge.callPlayerMethod(l.METHOD_SET_MUTE, e)
}
}, {
key: "setChannel",
value: function(e) {
this._bridge.callPlayerMethod(l.METHOD_SET_CHANNEL, e)
}
}, {
key: "setVideo",
value: function(e) {
this._bridge.callPlayerMethod(l.METHOD_SET_VIDEO, e)
}
}, {
key: "setQuality",
value: function(e) {
this._bridge.callPlayerMethod(l.METHOD_SET_QUALITY, e)
}
}, {
key: "addEventListener",
value: function(e, t) {
this._bridge.addEventListener(e, t)
}
}, {
key: "removeEventListener",
value: function(e, t) {
this._bridge.removeEventListener(e, t)
}
}, {
key: "getChannel",
value: function() {
return this._bridge.getPlayerState().channelName
}
}, {
key: "getCurrentTime",
value: function() {
return this._bridge.getPlayerState().currentTime
}
}, {
key: "getDuration",
value: function() {
return this._bridge.getPlayerState().duration
}
}, {
key: "getEnded",
value: function() {
return this._bridge.getPlayerState().playback === u.PLAYBACK_ENDED
}
}, {
key: "getMuted",
value: function() {
return this._bridge.getPlayerState().muted
}
}, {
key: "getPlaybackStats",
value: function() {
return this._bridge.getPlayerState().stats
}
}, {
key: "isPaused",
value: function() {
return this._bridge.getPlayerState().playback === u.PLAYBACK_PAUSED
}
}, {
key: "getQuality",
value: function() {
return this._bridge.getPlayerState().quality
}
}, {
key: "getQualities",
value: function() {
return this._bridge.getPlayerState().qualitiesAvailable
}
}, {
key: "getViewers",
value: function() {
return this._bridge.getPlayerState().viewers
}
}, {
key: "getVideo",
value: function() {
return this._bridge.getPlayerState().videoID
}
}, {
key: "getVolume",
value: function() {
return this._bridge.getPlayerState().volume
}
}]), t
}();
window.Twitch = window.Twitch || {}, window.Twitch.Player = c
}).call(t, n(1))
}, function(e, t, n) {
var r, i;
(function() {
function n(e) {
function t(t, n, r, i, o, a) {
for (; o >= 0 && a > o; o += e) {
var s = i ? i[o] : o;
r = n(r, t[s], s, t)
}
return r
}
return function(n, r, i, o) {
r = w(r, o, 4);
var a = !D(n) && x.keys(n),
s = (a || n).length,
u = e > 0 ? 0 : s - 1;
return arguments.length < 3 && (i = n[a ? a[u] : u], u += e), t(n, r, i, a, u, s)
}
}
function o(e) {
return function(t, n, r) {
n = T(n, r);
for (var i = N(t), o = e > 0 ? 0 : i - 1; o >= 0 && i > o; o += e)
if (n(t[o], o, t)) return o;
return -1
}
}
function a(e, t, n) {
return function(r, i, o) {
var a = 0,
s = N(r);
if ("number" == typeof o) e > 0 ? a = o >= 0 ? o : Math.max(o + s, a) : s = o >= 0 ? Math.min(o + 1, s) : o + s + 1;
else if (n && o && s) return o = n(r, i), r[o] === i ? o : -1;
if (i !== i) return o = t(h.call(r, a, s), x.isNaN), o >= 0 ? o + a : -1;
for (o = e > 0 ? a : s - 1; o >= 0 && s > o; o += e)
if (r[o] === i) return o;
return -1
}
}
function s(e, t) {
var n = P.length,
r = e.constructor,
i = x.isFunction(r) && r.prototype || f,
o = "constructor";
for (x.has(e, o) && !x.contains(t, o) && t.push(o); n--;) o = P[n], o in e && e[o] !== i[o] && !x.contains(t, o) && t.push(o)
}
var u = this,
l = u._,
c = Array.prototype,
f = Object.prototype,
d = Function.prototype,
p = c.push,
h = c.slice,
m = f.toString,
v = f.hasOwnProperty,
g = Array.isArray,
y = Object.keys,
b = d.bind,
E = Object.create,
_ = function() {},
x = function(e) {
return e instanceof x ? e : this instanceof x ? void(this._wrapped = e) : new x(e)
};
"undefined" != typeof e && e.exports && (t = e.exports = x), t._ = x, x.VERSION = "1.8.3";
var w = function(e, t, n) {
if (void 0 === t) return e;
switch (null == n ? 3 : n) {
case 1:
return function(n) {
return e.call(t, n)
};
case 2:
return function(n, r) {
return e.call(t, n, r)
};
case 3:
return function(n, r, i) {
return e.call(t, n, r, i)
};
case 4:
return function(n, r, i, o) {
return e.call(t, n, r, i, o)
}
}
return function() {
return e.apply(t, arguments)
}
},
T = function(e, t, n) {
return null == e ? x.identity : x.isFunction(e) ? w(e, t, n) : x.isObject(e) ? x.matcher(e) : x.property(e)
};
x.iteratee = function(e, t) {
return T(e, t, 1 / 0)
};
var k = function(e, t) {
return function(n) {
var r = arguments.length;
if (2 > r || null == n) return n;
for (var i = 1; r > i; i++)
for (var o = arguments[i], a = e(o), s = a.length, u = 0; s > u; u++) {
var l = a[u];
t && void 0 !== n[l] || (n[l] = o[l])
}
return n
}
},
S = function(e) {
if (!x.isObject(e)) return {};
if (E) return E(e);
_.prototype = e;
var t = new _;
return _.prototype = null, t
},
A = function(e) {
return function(t) {
return null == t ? void 0 : t[e]
}
},
C = Math.pow(2, 53) - 1,
N = A("length"),
D = function(e) {
var t = N(e);
return "number" == typeof t && t >= 0 && C >= t
};
x.each = x.forEach = function(e, t, n) {
t = w(t, n);
var r, i;
if (D(e))
for (r = 0, i = e.length; i > r; r++) t(e[r], r, e);
else {
var o = x.keys(e);
for (r = 0, i = o.length; i > r; r++) t(e[o[r]], o[r], e)
}
return e
}, x.map = x.collect = function(e, t, n) {
t = T(t, n);
for (var r = !D(e) && x.keys(e), i = (r || e).length, o = Array(i), a = 0; i > a; a++) {
var s = r ? r[a] : a;
o[a] = t(e[s], s, e)
}
return o
}, x.reduce = x.foldl = x.inject = n(1), x.reduceRight = x.foldr = n(-1), x.find = x.detect = function(e, t, n) {
var r;
return r = D(e) ? x.findIndex(e, t, n) : x.findKey(e, t, n), void 0 !== r && -1 !== r ? e[r] : void 0
}, x.filter = x.select = function(e, t, n) {
var r = [];
return t = T(t, n), x.each(e, function(e, n, i) {
t(e, n, i) && r.push(e)
}), r
}, x.reject = function(e, t, n) {
return x.filter(e, x.negate(T(t)), n)
}, x.every = x.all = function(e, t, n) {
t = T(t, n);
for (var r = !D(e) && x.keys(e), i = (r || e).length, o = 0; i > o; o++) {
var a = r ? r[o] : o;
if (!t(e[a], a, e)) return !1
}
return !0
}, x.some = x.any = function(e, t, n) {
t = T(t, n);
for (var r = !D(e) && x.keys(e), i = (r || e).length, o = 0; i > o; o++) {
var a = r ? r[o] : o;
if (t(e[a], a, e)) return !0
}
return !1
}, x.contains = x.includes = x.include = function(e, t, n, r) {
return D(e) || (e = x.values(e)), ("number" != typeof n || r) && (n = 0), x.indexOf(e, t, n) >= 0
}, x.invoke = function(e, t) {
var n = h.call(arguments, 2),
r = x.isFunction(t);
return x.map(e, function(e) {
var i = r ? t : e[t];
return null == i ? i : i.apply(e, n)
})
}, x.pluck = function(e, t) {
return x.map(e, x.property(t))
}, x.where = function(e, t) {
return x.filter(e, x.matcher(t))
}, x.findWhere = function(e, t) {
return x.find(e, x.matcher(t))
}, x.max = function(e, t, n) {
var r, i, o = -(1 / 0),
a = -(1 / 0);
if (null == t && null != e) {
e = D(e) ? e : x.values(e);
for (var s = 0, u = e.length; u > s; s++) r = e[s], r > o && (o = r)
} else t = T(t, n), x.each(e, function(e, n, r) {
i = t(e, n, r), (i > a || i === -(1 / 0) && o === -(1 / 0)) && (o = e, a = i)
});
return o
}, x.min = function(e, t, n) {
var r, i, o = 1 / 0,
a = 1 / 0;
if (null == t && null != e) {
e = D(e) ? e : x.values(e);
for (var s = 0, u = e.length; u > s; s++) r = e[s], o > r && (o = r)
} else t = T(t, n), x.each(e, function(e, n, r) {
i = t(e, n, r), (a > i || i === 1 / 0 && o === 1 / 0) && (o = e, a = i)
});
return o
}, x.shuffle = function(e) {
for (var t, n = D(e) ? e : x.values(e), r = n.length, i = Array(r), o = 0; r > o; o++) t = x.random(0, o), t !== o && (i[o] = i[t]), i[t] = n[o];
return i
}, x.sample = function(e, t, n) {
return null == t || n ? (D(e) || (e = x.values(e)), e[x.random(e.length - 1)]) : x.shuffle(e).slice(0, Math.max(0, t))
}, x.sortBy = function(e, t, n) {
return t = T(t, n), x.pluck(x.map(e, function(e, n, r) {
return {
value: e,
index: n,
criteria: t(e, n, r)
}
}).sort(function(e, t) {
var n = e.criteria,
r = t.criteria;
if (n !== r) {
if (n > r || void 0 === n) return 1;
if (r > n || void 0 === r) return -1
}
return e.index - t.index
}), "value")
};
var O = function(e) {
return function(t, n, r) {
var i = {};
return n = T(n, r), x.each(t, function(r, o) {
var a = n(r, o, t);
e(i, r, a)
}), i
}
};
x.groupBy = O(function(e, t, n) {
x.has(e, n) ? e[n].push(t) : e[n] = [t]
}), x.indexBy = O(function(e, t, n) {
e[n] = t
}), x.countBy = O(function(e, t, n) {
x.has(e, n) ? e[n]++ : e[n] = 1
}), x.toArray = function(e) {
return e ? x.isArray(e) ? h.call(e) : D(e) ? x.map(e, x.identity) : x.values(e) : []
}, x.size = function(e) {
return null == e ? 0 : D(e) ? e.length : x.keys(e).length
}, x.partition = function(e, t, n) {
t = T(t, n);
var r = [],
i = [];
return x.each(e, function(e, n, o) {
(t(e, n, o) ? r : i).push(e)
}), [r, i]
}, x.first = x.head = x.take = function(e, t, n) {
return null != e ? null == t || n ? e[0] : x.initial(e, e.length - t) : void 0
}, x.initial = function(e, t, n) {
return h.call(e, 0, Math.max(0, e.length - (null == t || n ? 1 : t)))
}, x.last = function(e, t, n) {
return null != e ? null == t || n ? e[e.length - 1] : x.rest(e, Math.max(0, e.length - t)) : void 0
}, x.rest = x.tail = x.drop = function(e, t, n) {
return h.call(e, null == t || n ? 1 : t)
}, x.compact = function(e) {
return x.filter(e, x.identity)
};
var L = function(e, t, n, r) {
for (var i = [], o = 0, a = r || 0, s = N(e); s > a; a++) {
var u = e[a];
if (D(u) && (x.isArray(u) || x.isArguments(u))) {
t || (u = L(u, t, n));
var l = 0,
c = u.length;
for (i.length += c; c > l;) i[o++] = u[l++]
} else n || (i[o++] = u)
}
return i
};
x.flatten = function(e, t) {
return L(e, t, !1)
}, x.without = function(e) {
return x.difference(e, h.call(arguments, 1))
}, x.uniq = x.unique = function(e, t, n, r) {
x.isBoolean(t) || (r = n, n = t, t = !1), null != n && (n = T(n, r));
for (var i = [], o = [], a = 0, s = N(e); s > a; a++) {
var u = e[a],
l = n ? n(u, a, e) : u;
t ? (a && o === l || i.push(u), o = l) : n ? x.contains(o, l) || (o.push(l), i.push(u)) : x.contains(i, u) || i.push(u)
}
return i
}, x.union = function() {
return x.uniq(L(arguments, !0, !0))
}, x.intersection = function(e) {
for (var t = [], n = arguments.length, r = 0, i = N(e); i > r; r++) {
var o = e[r];
if (!x.contains(t, o)) {
for (var a = 1; n > a && x.contains(arguments[a], o); a++);
a === n && t.push(o)
}
}
return t
}, x.difference = function(e) {
var t = L(arguments, !0, !0, 1);
return x.filter(e, function(e) {
return !x.contains(t, e)
})
}, x.zip = function() {
return x.unzip(arguments)
}, x.unzip = function(e) {
for (var t = e && x.max(e, N).length || 0, n = Array(t), r = 0; t > r; r++) n[r] = x.pluck(e, r);
return n
}, x.object = function(e, t) {
for (var n = {}, r = 0, i = N(e); i > r; r++) t ? n[e[r]] = t[r] : n[e[r][0]] = e[r][1];
return n
}, x.findIndex = o(1), x.findLastIndex = o(-1), x.sortedIndex = function(e, t, n, r) {
n = T(n, r, 1);
for (var i = n(t), o = 0, a = N(e); a > o;) {
var s = Math.floor((o + a) / 2);
n(e[s]) < i ? o = s + 1 : a = s
}
return o
}, x.indexOf = a(1, x.findIndex, x.sortedIndex), x.lastIndexOf = a(-1, x.findLastIndex), x.range = function(e, t, n) {
null == t && (t = e || 0, e = 0), n = n || 1;
for (var r = Math.max(Math.ceil((t - e) / n), 0), i = Array(r), o = 0; r > o; o++, e += n) i[o] = e;
return i
};
var j = function(e, t, n, r, i) {
if (!(r instanceof t)) return e.apply(n, i);
var o = S(e.prototype),
a = e.apply(o, i);
return x.isObject(a) ? a : o
};
x.bind = function(e, t) {
if (b && e.bind === b) return b.apply(e, h.call(arguments, 1));
if (!x.isFunction(e)) throw new TypeError("Bind must be called on a function");
var n = h.call(arguments, 2),
r = function() {
return j(e, r, t, this, n.concat(h.call(arguments)))
};
return r
}, x.partial = function(e) {
var t = h.call(arguments, 1),
n = function() {
for (var r = 0, i = t.length, o = Array(i), a = 0; i > a; a++) o[a] = t[a] === x ? arguments[r++] : t[a];
for (; r < arguments.length;) o.push(arguments[r++]);
return j(e, n, this, this, o)
};
return n
}, x.bindAll = function(e) {
var t, n, r = arguments.length;
if (1 >= r) throw new Error("bindAll must be passed function names");
for (t = 1; r > t; t++) n = arguments[t], e[n] = x.bind(e[n], e);
return e
}, x.memoize = function(e, t) {
var n = function(r) {
var i = n.cache,
o = "" + (t ? t.apply(this, arguments) : r);
return x.has(i, o) || (i[o] = e.apply(this, arguments)), i[o]
};
return n.cache = {}, n
}, x.delay = function(e, t) {
var n = h.call(arguments, 2);
return setTimeout(function() {
return e.apply(null, n)
}, t)
}, x.defer = x.partial(x.delay, x, 1), x.throttle = function(e, t, n) {
var r, i, o, a = null,
s = 0;
n || (n = {});
var u = function() {
s = n.leading === !1 ? 0 : x.now(), a = null, o = e.apply(r, i), a || (r = i = null)
};
return function() {
var l = x.now();
s || n.leading !== !1 || (s = l);
var c = t - (l - s);
return r = this, i = arguments, 0 >= c || c > t ? (a && (clearTimeout(a), a = null), s = l, o = e.apply(r, i), a || (r = i = null)) : a || n.trailing === !1 || (a = setTimeout(u, c)), o
}
}, x.debounce = function(e, t, n) {
var r, i, o, a, s, u = function() {
var l = x.now() - a;
t > l && l >= 0 ? r = setTimeout(u, t - l) : (r = null, n || (s = e.apply(o, i), r || (o = i = null)))
};
return function() {
o = this, i = arguments, a = x.now();
var l = n && !r;
return r || (r = setTimeout(u, t)), l && (s = e.apply(o, i), o = i = null), s
}
}, x.wrap = function(e, t) {
return x.partial(t, e)
}, x.negate = function(e) {
return function() {
return !e.apply(this, arguments)
}
}, x.compose = function() {
var e = arguments,
t = e.length - 1;
return function() {
for (var n = t, r = e[t].apply(this, arguments); n--;) r = e[n].call(this, r);
return r
}
}, x.after = function(e, t) {
return function() {
return --e < 1 ? t.apply(this, arguments) : void 0
}
}, x.before = function(e, t) {
var n;
return function() {
return --e > 0 && (n = t.apply(this, arguments)), 1 >= e && (t = null), n
}
}, x.once = x.partial(x.before, 2);
var I = !{
toString: null
}.propertyIsEnumerable("toString"),
P = ["valueOf", "isPrototypeOf", "toString", "propertyIsEnumerable", "hasOwnProperty", "toLocaleString"];
x.keys = function(e) {
if (!x.isObject(e)) return [];
if (y) return y(e);
var t = [];
for (var n in e) x.has(e, n) && t.push(n);
return I && s(e, t), t
}, x.allKeys = function(e) {
if (!x.isObject(e)) return [];
var t = [];
for (var n in e) t.push(n);
return I && s(e, t), t
}, x.values = function(e) {
for (var t = x.keys(e), n = t.length, r = Array(n), i = 0; n > i; i++) r[i] = e[t[i]];
return r
}, x.mapObject = function(e, t, n) {
t = T(t, n);
for (var r, i = x.keys(e), o = i.length, a = {}, s = 0; o > s; s++) r = i[s], a[r] = t(e[r], r, e);
return a
}, x.pairs = function(e) {
for (var t = x.keys(e), n = t.length, r = Array(n), i = 0; n > i; i++) r[i] = [t[i], e[t[i]]];
return r
}, x.invert = function(e) {
for (var t = {}, n = x.keys(e), r = 0, i = n.length; i > r; r++) t[e[n[r]]] = n[r];
return t
}, x.functions = x.methods = function(e) {
var t = [];
for (var n in e) x.isFunction(e[n]) && t.push(n);
return t.sort()
}, x.extend = k(x.allKeys), x.extendOwn = x.assign = k(x.keys), x.findKey = function(e, t, n) {
t = T(t, n);
for (var r, i = x.keys(e), o = 0, a = i.length; a > o; o++)
if (r = i[o], t(e[r], r, e)) return r
}, x.pick = function(e, t, n) {
var r, i, o = {},
a = e;
if (null == a) return o;
x.isFunction(t) ? (i = x.allKeys(a), r = w(t, n)) : (i = L(arguments, !1, !1, 1), r = function(e, t, n) {
return t in n
}, a = Object(a));
for (var s = 0, u = i.length; u > s; s++) {
var l = i[s],
c = a[l];
r(c, l, a) && (o[l] = c)
}
return o
}, x.omit = function(e, t, n) {
if (x.isFunction(t)) t = x.negate(t);
else {
var r = x.map(L(arguments, !1, !1, 1), String);
t = function(e, t) {
return !x.contains(r, t)
}
}
return x.pick(e, t, n)
}, x.defaults = k(x.allKeys, !0), x.create = function(e, t) {
var n = S(e);
return t && x.extendOwn(n, t), n
}, x.clone = function(e) {
return x.isObject(e) ? x.isArray(e) ? e.slice() : x.extend({}, e) : e
}, x.tap = function(e, t) {
return t(e), e
}, x.isMatch = function(e, t) {
var n = x.keys(t),
r = n.length;
if (null == e) return !r;
for (var i = Object(e), o = 0; r > o; o++) {
var a = n[o];
if (t[a] !== i[a] || !(a in i)) return !1
}
return !0
};
var H = function(e, t, n, r) {
if (e === t) return 0 !== e || 1 / e === 1 / t;
if (null == e || null == t) return e === t;
e instanceof x && (e = e._wrapped), t instanceof x && (t = t._wrapped);
var i = m.call(e);
if (i !== m.call(t)) return !1;
switch (i) {
case "[object RegExp]":
case "[object String]":
return "" + e == "" + t;
case "[object Number]":
return +e !== +e ? +t !== +t : 0 === +e ? 1 / +e === 1 / t : +e === +t;
case "[object Date]":
case "[object Boolean]":
return +e === +t
}
var o = "[object Array]" === i;
if (!o) {
if ("object" != typeof e || "object" != typeof t) return !1;
var a = e.constructor,
s = t.constructor;
if (a !== s && !(x.isFunction(a) && a instanceof a && x.isFunction(s) && s instanceof s) && "constructor" in e && "constructor" in t) return !1
}
n = n || [], r = r || [];
for (var u = n.length; u--;)
if (n[u] === e) return r[u] === t;
if (n.push(e), r.push(t), o) {
if (u = e.length, u !== t.length) return !1;
for (; u--;)
if (!H(e[u], t[u], n, r)) return !1
} else {
var l, c = x.keys(e);
if (u = c.length, x.keys(t).length !== u) return !1;
for (; u--;)
if (l = c[u], !x.has(t, l) || !H(e[l], t[l], n, r)) return !1
}
return n.pop(), r.pop(), !0
};
x.isEqual = function(e, t) {
return H(e, t)
}, x.isEmpty = function(e) {
return null == e ? !0 : D(e) && (x.isArray(e) || x.isString(e) || x.isArguments(e)) ? 0 === e.length : 0 === x.keys(e).length
}, x.isElement = function(e) {
return !(!e || 1 !== e.nodeType)
}, x.isArray = g || function(e) {
return "[object Array]" === m.call(e)
}, x.isObject = function(e) {
var t = typeof e;
return "function" === t || "object" === t && !!e
}, x.each(["Arguments", "Function", "String", "Number", "Date", "RegExp", "Error"], function(e) {
x["is" + e] = function(t) {
return m.call(t) === "[object " + e + "]"
}
}), x.isArguments(arguments) || (x.isArguments = function(e) {
return x.has(e, "callee")
}), "function" != typeof /./ && "object" != typeof Int8Array && (x.isFunction = function(e) {
return "function" == typeof e || !1
}), x.isFinite = function(e) {
return isFinite(e) && !isNaN(parseFloat(e))
}, x.isNaN = function(e) {
return x.isNumber(e) && e !== +e
}, x.isBoolean = function(e) {
return e === !0 || e === !1 || "[object Boolean]" === m.call(e)
}, x.isNull = function(e) {
return null === e
}, x.isUndefined = function(e) {
return void 0 === e
}, x.has = function(e, t) {
return null != e && v.call(e, t)
}, x.noConflict = function() {
return u._ = l, this
}, x.identity = function(e) {
return e
}, x.constant = function(e) {
return function() {
return e
}
}, x.noop = function() {}, x.property = A, x.propertyOf = function(e) {
return null == e ? function() {} : function(t) {
return e[t]
}
}, x.matcher = x.matches = function(e) {
return e = x.extendOwn({}, e),
function(t) {
return x.isMatch(t, e)
}
}, x.times = function(e, t, n) {
var r = Array(Math.max(0, e));
t = w(t, n, 1);
for (var i = 0; e > i; i++) r[i] = t(i);
return r
}, x.random = function(e, t) {
return null == t && (t = e, e = 0), e + Math.floor(Math.random() * (t - e + 1))
}, x.now = Date.now || function() {
return (new Date).getTime()
};
var M = {
"&": "&amp;",
"<": "&lt;",
">": "&gt;",
'"': "&quot;",
"'": "&#x27;",
"`": "&#x60;"
},
R = x.invert(M),
B = function(e) {
var t = function(t) {
return e[t]
},
n = "(?:" + x.keys(e).join("|") + ")",
r = RegExp(n),
i = RegExp(n, "g");
return function(e) {
return e = null == e ? "" : "" + e, r.test(e) ? e.replace(i, t) : e
}
};
x.escape = B(M), x.unescape = B(R), x.result = function(e, t, n) {
var r = null == e ? void 0 : e[t];
return void 0 === r && (r = n), x.isFunction(r) ? r.call(e) : r
};
var q = 0;
x.uniqueId = function(e) {
var t = ++q + "";
return e ? e + t : t
}, x.templateSettings = {
evaluate: /<%([\s\S]+?)%>/g,
interpolate: /<%=([\s\S]+?)%>/g,
escape: /<%-([\s\S]+?)%>/g
};
var F = /(.)^/,
V = {
"'": "'",
"\\": "\\",
"\r": "r",
"\n": "n",
"\u2028": "u2028",
"\u2029": "u2029"
},
U = /\\|'|\r|\n|\u2028|\u2029/g,
W = function(e) {
return "\\" + V[e]
};
x.template = function(e, t, n) {
!t && n && (t = n), t = x.defaults({}, t, x.templateSettings);
var r = RegExp([(t.escape || F).source, (t.interpolate || F).source, (t.evaluate || F).source].join("|") + "|$", "g"),
i = 0,
o = "__p+='";
e.replace(r, function(t, n, r, a, s) {
return o += e.slice(i, s).replace(U, W), i = s + t.length, n ? o += "'+\n((__t=(" + n + "))==null?'':_.escape(__t))+\n'" : r ? o += "'+\n((__t=(" + r + "))==null?'':__t)+\n'" : a && (o += "';\n" + a + "\n__p+='"), t
}), o += "';\n", t.variable || (o = "with(obj||{}){\n" + o + "}\n"), o = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + o + "return __p;\n";
try {
var a = new Function(t.variable || "obj", "_", o)
} catch (s) {
throw s.source = o, s
}
var u = function(e) {
return a.call(this, e, x)
},
l = t.variable || "obj";
return u.source = "function(" + l + "){\n" + o + "}", u
}, x.chain = function(e) {
var t = x(e);
return t._chain = !0, t
};
var z = function(e, t) {
return e._chain ? x(t).chain() : t
};
x.mixin = function(e) {
x.each(x.functions(e), function(t) {
var n = x[t] = e[t];
x.prototype[t] = function() {
var e = [this._wrapped];
return p.apply(e, arguments), z(this, n.apply(x, e))
}
})
}, x.mixin(x), x.each(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], function(e) {
var t = c[e];
x.prototype[e] = function() {
var n = this._wrapped;
return t.apply(n, arguments), "shift" !== e && "splice" !== e || 0 !== n.length || delete n[0], z(this, n)
}
}), x.each(["concat", "join", "slice"], function(e) {
var t = c[e];
x.prototype[e] = function() {
return z(this, t.apply(this._wrapped, arguments))
}
}), x.prototype.value = function() {
return this._wrapped
}, x.prototype.valueOf = x.prototype.toJSON = x.prototype.value, x.prototype.toString = function() {
return "" + this._wrapped
}, r = [], i = function() {
return x
}.apply(t, r), !(void 0 !== i && (e.exports = i))
}).call(this)
}, function(e, t) {
"use strict";
function n(e) {
for (var t = {}, n = e.split("&"), r = 0; r < n.length; r++) {
var i = /^(.+?)(?:=(.+))?$/.exec(n[r]);
if (i) {
var o = i[1],
a = i[2];
"true" === a ? a = !0 : "false" === a ? a = !1 : void 0 !== a ? a = decodeURIComponent(a) : "!" === o[0] ? (o = o.substring(1), a = !1) : a = !0, t[o] = a
}
}
return t
}
function r(e) {
var t = [];
for (var n in e)
if (e.hasOwnProperty(n)) {
var r = e[n];
n = encodeURIComponent(n), r === !0 ? t.push(n) : r === !1 ? t.push("!" + n) : (r = encodeURIComponent(r), t.push(n + "=" + r))
}
return t.join("&")
}
Object.defineProperty(t, "__esModule", {
value: !0
}), t.parse = n, t.toString = r
}, function(e, t, n) {
(function(e) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}), t.httpsQualityCarryover = t.unknownError = t.videoError = t.channelError = t.flashError = t.cancelResumeAmount = t.hotkeySeekAmount = t.leaveDialog = t.doubleClickUrl = t.flashTimeout = t.volumeStepAmount = t.embedParameters = t.mutedSegmentsMessage = t.chromecastStates = t.debugIgnoreEvents = t.allEvents = t.customEvents = t.mediaEvents = t.reportHideDelay = t.hoverControlsDelay = t.initialControlsDelay = t.qualityChangeDuration = t.qualityText = t.bufferPollDelay = t.pubSubEnviroment = t.version = t.chromecastId = t.popoutSize = t.gamePath = t.countessHost = t.spadeIgnore = t.spadeHost = t.mixpanelIgnore = t.mixpanelToken = t.mixpanelHost = t.trackingPlatform = t.apiTimeout = t.playerHost = t.valveApiHost = t.usherHost = t.spectreHost = t.apiHost = t.twitchHost = t.domain = void 0;
var r = n(4),
i = (t.domain = "twitch.tv", t.twitchHost = "//twitch.tv"),
o = t.apiHost = "https://api.twitch.tv",
a = (t.spectreHost = "//spectre.twitch.tv", t.usherHost = "//usher.ttvnw.net", t.valveApiHost = o + "/steam/watching", t.playerHost = function() {
var t = document.currentScript,
n = document.getElementsByTagName("script");
if (!t) {
var i = e.filter(n, function(e) {
return e.src && e.src.match(/player(?:\.\w+)?\.js$/i)
});
t = 1 === i.length ? i[0] : n[n.length - 1]
}
var o = (0, r.parseUri)(t.src);
return o.protocol + "://" + o.authority
}(), t.apiTimeout = 1e4, t.trackingPlatform = "web", t.mixpanelHost = "//api.mixpanel.com", t.mixpanelToken = "809576468572134f909dffa6bd0dcfcf", t.mixpanelIgnore = ["minute-buffered", "x_untrusted_video_init", "x_untrusted_video-play", "x_untrusted_minute-watched", "x_untrusted_buffer-empty", "x_untrusted_buffer-refill", "network_profile"], t.spadeHost = "//spade.twitch.tv", t.spadeIgnore = [], t.countessHost = "//countess.twitch.tv", t.gamePath = i + "/directory/game", t.popoutSize = {
width: 853,
height: 480
}, t.chromecastId = "358E83DC", t.version = "0.6.0", t.pubSubEnviroment = "production", t.bufferPollDelay = 1e3, t.qualityText = {
chunked: "Source",
high: "High",
medium: "Medium",
low: "Low",
mobile: "Mobile",
auto: "Auto"
}, t.qualityChangeDuration = 6e3, t.initialControlsDelay = 8e3, t.hoverControlsDelay = 5e3, t.reportHideDelay = 2e3, t.mediaEvents = ["loadstart", "progress", "suspend", "abort", "error", "emptied", "stalled", "loadedmetadata", "loadeddata", "canplay", "canplaythrough", "playing", "waiting", "seeking", "seeked", "ended", "durationchange", "timeupdate", "play", "pause", "ratechange", "volumechange"]),
s = t.customEvents = ["adcompanionrendered", "castingchange", "bufferedchange", "statschange", "qualitychange", "qualitieschange", "adstart", "adend", "init", "loadedchannel", "loadedvideo", "viewerschange", "fullscreenchange", "restricted", "segmentchange", "isspectre", "theatrechange", "online", "offline", "usherFail"];
t.allEvents = e.union(a, s), t.debugIgnoreEvents = ["statschange", "timeupdate"], t.chromecastStates = ["unavailable", "available", "connecting", "connected", "error"], t.mutedSegmentsMessage = "Audio for portions of this video has been muted as it appears to contain copyrighted content owned or controlled by a third party.", t.embedParameters = ["channel", "video", "muted", "autoplay", "time", "t", "debug", "html5", "quality", "controls"], t.volumeStepAmount = .1, t.flashTimeout = 5e3, t.doubleClickUrl = "//pubads.g.doubleclick.net/gampad/ads", t.leaveDialog = {
enabled: !1,
sinceEnded: 45,
viewerThreshold: 5e4,
text: "Don't panicBasket. The broadcast is down, but don't refresh just yet. When the broadcast is back, the player will automatically reload for you.",
refreshTimeout: 20,
warningDuration: 45
}, t.hotkeySeekAmount = 5, t.cancelResumeAmount = 10, t.flashError = "No supported video backend available; Flash is not installed", t.channelError = "Channel could not be found, or has been deleted by its owner", t.videoError = "Video could not be found, or has been deleted by its owner", t.unknownError = "An unknown error has occured", t.httpsQualityCarryover = new Date(2016, 3, 30)
}).call(t, n(1))
}, function(e, t) {
"use strict";
function n(e) {
for (var t = {
strictMode: !1,
key: ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"],
q: {
name: "queryKey",
parser: /(?:^|&)([^&=]*)=?([^&]*)/g
},
parser: {
strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
}
}, n = t.parser[t.strictMode ? "strict" : "loose"].exec(e), r = {}, i = 14; i--;) r[t.key[i]] = n[i] || "";
return r[t.q.name] = {}, r[t.key[12]].replace(t.q.parser, function(e, n, i) {
n && (r[t.q.name][n] = i)
}), r
}
Object.defineProperty(t, "__esModule", {
value: !0
}), t.parseUri = n
}, function(e, t, n) {
"use strict";
function r(e) {
return e && e.__esModule ? e : {
"default": e
}
}
function i(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
Object.defineProperty(t, "__esModule", {
value: !0
}), t.EmbedClient = t.EVENT_EMBED_READY = void 0;
var o = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r)
}
}
return function(t, n, r) {
return n && e(t.prototype, n), r && e(t, r), t
}
}(),
a = n(6),
s = r(a),
u = n(7),
l = n(8),
c = 15e3,
f = t.EVENT_EMBED_READY = "ready";
t.EmbedClient = function() {
function e(t) {
i(this, e), this._host = t, this._eventEmitter = new s["default"], this._playerState = l.DEFAULT_EMBED_STATE, this._onHostReady = this._getHostReady(), this._send(u.BRIDGE_REQ_SUBSCRIBE)
}
return o(e, [{
key: "_getHostReady",
value: function() {
var e = this;
return new Promise(function(t, n) {
function r(e) {
this._isClientMessage(e) && e.data.method === u.BRIDGE_HOST_READY && (window.removeEventListener("message", i), window.addEventListener("message", this), this._eventEmitter.emit(f), t())
}
var i = r.bind(e);
window.addEventListener("message", i), setTimeout(n, c)
})
}
}, {
key: "_send",
value: function(e) {
for (var t = arguments.length, n = Array(t > 1 ? t - 1 : 0), r = 1; t > r; r++) n[r - 1] = arguments[r];
var i = {
namespace: u.BRIDGE_HOST_NAMESPACE,
method: e,
args: n
};
this._host.postMessage(i, "*")
}
}, {
key: "_deferSend",
value: function() {
for (var e = this, t = arguments.length, n = Array(t), r = 0; t > r; r++) n[r] = arguments[r];
this._onHostReady.then(function() {
return e._send.apply(e, n)
})
}
}, {
key: "_isClientMessage",
value: function(e) {
return Boolean(e.data) && e.data.namespace === u.BRIDGE_CLIENT_NAMESPACE
}
}, {
key: "handleEvent",
value: function(e) {
if (this._isClientMessage(e)) switch (e.data.method) {
case u.BRIDGE_STATE_UPDATE:
this._playerState = e.data.args[0];
break;
case u.BRIDGE_PLAYER_EVENT:
this._eventEmitter.emit(e.data.args[0])
}
}
}, {
key: "getPlayerState",
value: function() {
return this._playerState
}
}, {
key: "addEventListener",
value: function(e, t) {
this._eventEmitter.on(e, t)
}
}, {
key: "removeEventListener",
value: function(e, t) {
this._eventEmitter.off(e, t)
}
}, {
key: "callPlayerMethod",
value: function(e, t) {
this._deferSend(e, t)
}
}]), e
}()
}, function(e, t, n) {
var r;
(function() {
"use strict";
function t() {}
function i(e, t) {
for (var n = e.length; n--;)
if (e[n].listener === t) return n;
return -1
}
function o(e) {
return function() {
return this[e].apply(this, arguments)
}
}
var a = t.prototype,
s = this,
u = s.EventEmitter;
a.getListeners = function(e) {
var t, n, r = this._getEvents();
if (e instanceof RegExp) {
t = {};
for (n in r) r.hasOwnProperty(n) && e.test(n) && (t[n] = r[n])
} else t = r[e] || (r[e] = []);
return t
}, a.flattenListeners = function(e) {
var t, n = [];
for (t = 0; t < e.length; t += 1) n.push(e[t].listener);
return n
}, a.getListenersAsObject = function(e) {
var t, n = this.getListeners(e);
return n instanceof Array && (t = {}, t[e] = n), t || n
}, a.addListener = function(e, t) {
var n, r = this.getListenersAsObject(e),
o = "object" == typeof t;
for (n in r) r.hasOwnProperty(n) && -1 === i(r[n], t) && r[n].push(o ? t : {
listener: t,
once: !1
});
return this
}, a.on = o("addListener"), a.addOnceListener = function(e, t) {
return this.addListener(e, {
listener: t,
once: !0
})
}, a.once = o("addOnceListener"), a.defineEvent = function(e) {
return this.getListeners(e), this
}, a.defineEvents = function(e) {
for (var t = 0; t < e.length; t += 1) this.defineEvent(e[t]);
return this
}, a.removeListener = function(e, t) {
var n, r, o = this.getListenersAsObject(e);
for (r in o) o.hasOwnProperty(r) && (n = i(o[r], t), -1 !== n && o[r].splice(n, 1));
return this
}, a.off = o("removeListener"), a.addListeners = function(e, t) {
return this.manipulateListeners(!1, e, t)
}, a.removeListeners = function(e, t) {
return this.manipulateListeners(!0, e, t)
}, a.manipulateListeners = function(e, t, n) {
var r, i, o = e ? this.removeListener : this.addListener,
a = e ? this.removeListeners : this.addListeners;
if ("object" != typeof t || t instanceof RegExp)
for (r = n.length; r--;) o.call(this, t, n[r]);
else
for (r in t) t.hasOwnProperty(r) && (i = t[r]) && ("function" == typeof i ? o.call(this, r, i) : a.call(this, r, i));
return this
}, a.removeEvent = function(e) {
var t, n = typeof e,
r = this._getEvents();
if ("string" === n) delete r[e];
else if (e instanceof RegExp)
for (t in r) r.hasOwnProperty(t) && e.test(t) && delete r[t];
else delete this._events;
return this
}, a.removeAllListeners = o("removeEvent"), a.emitEvent = function(e, t) {
var n, r, i, o, a, s = this.getListenersAsObject(e);
for (o in s)
if (s.hasOwnProperty(o))
for (n = s[o].slice(0), i = n.length; i--;) r = n[i], r.once === !0 && this.removeListener(e, r.listener), a = r.listener.apply(this, t || []), a === this._getOnceReturnValue() && this.removeListener(e, r.listener);
return this
}, a.trigger = o("emitEvent"), a.emit = function(e) {
var t = Array.prototype.slice.call(arguments, 1);
return this.emitEvent(e, t)
}, a.setOnceReturnValue = function(e) {
return this._onceReturnValue = e, this
}, a._getOnceReturnValue = function() {
return this.hasOwnProperty("_onceReturnValue") ? this._onceReturnValue : !0
}, a._getEvents = function() {
return this._events || (this._events = {})
}, t.noConflict = function() {
return s.EventEmitter = u, t
}, r = function() {
return t
}.call(s, n, s, e), !(void 0 !== r && (e.exports = r))
}).call(this)
}, function(e, t, n) {
(function(e) {
"use strict";
function r(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
Object.defineProperty(t, "__esModule", {
value: !0
}), t.EmbedHost = t.BRIDGE_CLIENT_NAMESPACE = t.BRIDGE_HOST_NAMESPACE = t.BRIDGE_DOCUMENT_EVENT = t.BRIDGE_PLAYER_EVENT = t.BRIDGE_STATE_UPDATE = t.BRIDGE_HOST_READY = t.BRIDGE_REQ_SUBSCRIBE = t.METHOD_DESTROY = t.METHOD_SET_VOLUME = t.METHOD_SET_MUTE = t.METHOD_SET_QUALITY = t.METHOD_SEEK = t.METHOD_SET_VIDEO = t.METHOD_SET_CHANNEL = t.METHOD_PAUSE = t.METHOD_PLAY = void 0;
var i = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r)
}
}
return function(t, n, r) {
return n && e(t.prototype, n), r && e(t, r), t
}
}(),
o = n(8),
a = t.METHOD_PLAY = "play",
s = t.METHOD_PAUSE = "pause",
u = t.METHOD_SET_CHANNEL = "channel",
l = t.METHOD_SET_VIDEO = "video",
c = t.METHOD_SEEK = "seek",
f = t.METHOD_SET_QUALITY = "quality",
d = t.METHOD_SET_MUTE = "mute",
p = t.METHOD_SET_VOLUME = "volume",
h = t.METHOD_DESTROY = "destroy",
m = t.BRIDGE_REQ_SUBSCRIBE = "subscribe",
v = t.BRIDGE_HOST_READY = "ready",
g = t.BRIDGE_STATE_UPDATE = "bridgestateupdate",
y = t.BRIDGE_PLAYER_EVENT = "bridgeplayerevent",
b = t.BRIDGE_DOCUMENT_EVENT = "bridgedocumentevent",
E = t.BRIDGE_HOST_NAMESPACE = "player.embed.host",
_ = t.BRIDGE_CLIENT_NAMESPACE = "player.embed.client",
x = ["blur", "focus", "keydown", "keypress", "keyup", "resize"];
t.EmbedHost = function() {
function t(e, n) {
r(this, t), this._player = e, this._clients = [], this._initWindowEvents(), n.addEventListener(o.EVENT_STATE_UPDATE, this._sendPlayerState.bind(this)), n.addEventListener(o.EVENT_PLAYER_UPDATE, this._sendPlayerEvent.bind(this)), window.addEventListener("message", this);
var i = window.opener || window.parent;
i && i !== window && this._addClient(i)
}
return i(t, [{
key: "_initWindowEvents",
value: function() {
var t = this;
e.each(x, function(n) {
document.addEventListener(n, function(r) {
var i = e.omit(r, e.isObject);
t._sendAll(b, [n, i])
})
})
}
}, {
key: "_addClient",
value: function(e) {
this._clients.push(e), this._send(e, v)
}
}, {
key: "_send",
value: function(e, t) {
var n = arguments.length <= 2 || void 0 === arguments[2] ? [] : arguments[2];
Array.isArray(n) || (n = [n]);
var r = {
namespace: _,
method: t,
args: n
};
e.postMessage(r, "*")
}
}, {
key: "_sendAll",
value: function(t, n) {
var r = this;
e.each(this._clients, function(e) {
r._send(e, t, n)
})
}
}, {
key: "handleEvent",
value: function(t) {
if (e.isObject(t.data) && t.data.namespace === E) switch (t.data.method) {
case m:
this._addClient(t.source);
break;
case a:
this._player.play();
break;
case s:
this._player.pause();
break;
case u:
this._player.setChannel(t.data.args[0]);
break;
case l:
this._player.setVideo(t.data.args[0]);
break;
case c:
this._player.setCurrentTime(parseFloat(t.data.args[0]));
break;
case f:
this._player.setQuality(t.data.args[0]);
break;
case d:
this._player.setMuted(!!t.data.args[0]);
break;
case p:
this._player.setVolume(parseFloat(t.data.args[0]));
break;
case h:
this._player.destroy()
}
}
}, {
key: "_sendPlayerState",
value: function(e) {
this._sendAll(g, e.toJSON())
}
}, {
key: "_sendPlayerEvent",
value: function(e) {
this._sendAll(y, e)
}
}]), t
}()
}).call(t, n(1))
}, function(e, t, n) {
(function(e) {
"use strict";
function r(e) {
if (e && e.__esModule) return e;
var t = {};
if (null != e)
for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
return t["default"] = e, t
}
function i(e) {
return e && e.__esModule ? e : {
"default": e
}
}
function o(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
Object.defineProperty(t, "__esModule", {
value: !0
}), t.State = t.DEFAULT_EMBED_STATE = t.CHROMECAST_CONNECTED = t.CHROMECAST_CONNECTING = t.CHROMECAST_AVAILABLE = t.CHROMECAST_UNAVAILABLE = t.PLAYBACK_ENDED = t.PLAYBACK_PLAYING = t.PLAYBACK_PAUSED = t.EVENT_PLAYER_UPDATE = t.EVENT_STATE_UPDATE = void 0;
var a = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r)
}
}
return function(t, n, r) {
return n && e(t.prototype, n), r && e(t, r), t
}
}(),
s = n(6),
u = i(s),
l = n(3),
c = r(l),
f = n(9),
d = n(12),
p = r(d),
h = n(14),
m = r(h),
v = n(15),
g = i(v);
n(16).patch(m);
var y = "vodResumeTimes",
b = "leaveData",
E = t.EVENT_STATE_UPDATE = "stateupdate",
_ = t.EVENT_PLAYER_UPDATE = "playerupdate",
x = t.PLAYBACK_PAUSED = "paused",
w = t.PLAYBACK_PLAYING = "playing",
T = t.PLAYBACK_ENDED = "ended",
k = t.CHROMECAST_UNAVAILABLE = "unavailable",
S = t.CHROMECAST_AVAILABLE = "available",
A = (t.CHROMECAST_CONNECTING = "connecting", t.CHROMECAST_CONNECTED = "connected"),
C = (t.DEFAULT_EMBED_STATE = {
channelName: "",
currentTime: 0,
duration: 0,
muted: !1,
playback: "",
quality: "",
qualitiesAvailable: [],
stats: {},
videoID: "",
viewers: 0,
volume: 0
}, [E, _]),
N = "adstart",
D = "adend",
O = "loadedchannel",
L = "online",
j = "offline",
I = "viewerschange";
t.State = function() {
function t(n, r, i) {
o(this, t), this._options = i, this._backend = n, this._pubSub = r, this._eventEmitter = new u["default"], this._adrunning = !1, this._isFullscreen = !1, this._theatreModeEnabled = !1, this._online = !1, this._viewers = 0, e.each(c.allEvents, function(e) {
n.addEventListener(e, this.handleEvent.bind(this, e))
}, this), r.addEventListener(I, this.onViewersChange.bind(this)), r.addEventListener(L, this.handleEvent.bind(this, L)), r.addEventListener(j, this.handleEvent.bind(this, j))
}
return a(t, [{
key: "onViewersChange",
value: function(e) {
this._viewers = e.viewers, this._backend.onViewersChange && this._backend.onViewersChange(e), this._eventEmitter.emit(E, this)
}
}, {
key: "setsessionLeaveData",
value: function(e) {
g["default"].setItem(b, e)
}
}, {
key: "settheatreEnabled",
value: function(e) {
this._theatreModeEnabled = e, this._eventEmitter.emit(E, this)
}
}, {
key: "setVodResumeTimes",
value: function(e) {
m.set(y, e), this._eventEmitter.emit(E, this)
}
}, {
key: "handleEvent",
value: function(t) {
switch (this._options.debug && !e.contains(c.debugIgnoreEvents, t) && (console.groupCollapsed("possible state change: %s", t), console.log("state: %o", this.toJSON()), console.groupEnd()), t) {
case N:
this._adrunning = !0;
break;
case D:
this._adrunning = !1;
break;
case L:
this._online = !0;
break;
case j:
this._online = !1;
break;
case O:
this._online = !0
}
this._eventEmitter.emit(_, t), this._eventEmitter.emit(E, this)
}
}, {
key: "addEventListener",
value: function(t, n) {
e.contains(C, t) && this._eventEmitter.addListener(t, n)
}
}, {
key: "removeEventListener",
value: function(e, t) {
this._eventEmitter.removeListener(e, t)
}
}, {
key: "toJSON",
value: function() {
return {
channelName: this.channelName,
currentTime: this.currentTime,
duration: this.duration,
muted: this.muted,
online: this.online,
playback: this.playback,
quality: this.quality,
qualitiesAvailable: this.qualitiesAvailable,
stats: this.stats,
videoID: this.videoID,
viewers: this.viewers,
volume: this.volume
}
}
}, {
key: "isAdRunning",
get: function() {
return this._adrunning
}
}, {
key: "autoplayEnabled",
get: function() {
return this._backend.getAutoplay()
}
}, {
key: "buffered",
get: function() {
return this._backend.getBuffered()
}
}, {
key: "castingDevice",
get: function() {
return f.BackendChromecast.getDevice()
}
}, {
key: "castingState",
get: function() {
if (f.BackendChromecast.getReadyState() !== f.BackendChromecast.HAVE_NOTHING) return A;
switch (f.BackendChromecast.getNetworkState()) {
case f.BackendChromecast.NETWORK_EMPTY:
return k;
case f.BackendChromecast.NETWORK_IDLE:
return S;
default:
return A
}
}
}, {
key: "channelName",
get: function() {
return this._backend.getChannel()
}
}, {
key: "currentBackend",
get: function() {
return this._backend.getBackend()
}
}, {
key: "currentTime",
get: function() {
return this._backend.getCurrentTime()
}
}, {
key: "duration",
get: function() {
return this._backend.getDuration()
}
}, {
key: "error",
get: function() {
return this._backend.error
}
}, {
key: "canFullscreen",
get: function() {}
}, {
key: "isFullscreen",
get: function() {},
set: function(e) {}
}, {
key: "isLoading",
get: function() {
return this.playback === w && this._backend.getReadyState() <= this._backend.HAVE_CURRENT_DATA
}
}, {
key: "muted",
get: function() {
return this._backend.getMuted()
}
}, {
key: "online",
get: function() {
return this._online
}
}, {
key: "playback",
get: function() {
return this._backend.getPaused() ? x : this._backend.getEnded() ? T : w
}
}, {
key: "quality",
get: function() {
return this._backend.getQuality()
}
}, {
key: "qualitiesAvailable",
get: function() {
return this._backend.getQualities()
}
}, {
key: "sessionLeaveData",
get: function() {
return g["default"].getItem(b)
}
}, {
key: "isSeeking",
get: function() {
return this._backend.getSeeking()
}
}, {
key: "isSpectre",
get: function() {
return this._backend.isSpectre()
}
}, {
key: "stats",
get: function() {
return this._backend.getStats()
}
}, {
key: "supportedBackends",
get: function() {
return this._backend.getSupportedBackends()
}
}, {
key: "theatreEnabled",
get: function() {
return this._theatreModeEnabled
}
}, {
key: "viewers",
get: function() {
return this._viewers
}
}, {
key: "videoID",
get: function() {
return this._backend.getVideo()
}
}, {
key: "videoURL",
get: function() {
return this._backend.getVideoURL()
}
}, {
key: "videoInfo",
get: function() {
return p.videoInfo(this._backend.getVideo())
}
}, {
key: "vodResumeTimes",
get: function() {
return m.get(y)
}
}, {
key: "volume",
get: function() {
return this._backend.getVolume()
}
}, {
key: "channelInfo",
get: function() {
return p.channelInfo(this._backend.getChannel())
}
}, {
key: "streamInfo",
get: function() {
return p.streamInfo(this._backend.getChannel())
}
}, {
key: "channelViewerInfo",
get: function() {
return p.channelViewerInfo(this._backend.getChannel())
}
}, {
key: "offlinePlaylistInfo",
get: function() {
return this.channelInfo.then(function(e) {
return p.offlinePlaylistInfo(e._id)
})
}
}]), t
}()
}).call(t, n(1))
}, function(e, t, n) {
"use strict";
function r(e) {
if (e && e.__esModule) return e;
var t = {};
if (null != e)
for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
return t["default"] = e, t
}
function i(e) {
return e && e.__esModule ? e : {
"default": e
}
}
Object.defineProperty(t, "__esModule", {
value: !0
}), t.BackendChromecast = void 0;
var o = n(6),
a = i(o),
s = n(10),
u = n(11),
l = n(3),
c = r(l),
f = n(12),
d = t.BackendChromecast = {};
! function() {
function e() {
var e = new s.Deferred;
if (window.chrome)
if (u.chrome.cast && u.chrome.cast.isAvailable) e.resolve(!0);
else {
window.__onGCastApiAvailable = function(t) {
e.resolve(t)
};
var t = 5,
n = setInterval(function() {
var r = (u.chrome.cast && u.chrome.cast.isAvailable, !1);
(r || 0 >= t) && (e.resolve(r), clearInterval(n)), t--
}, 1e3)
}
else e.resolve(!1);
return e.promise
}
function t(e) {
if (e) {
var t = new u.chrome.cast.SessionRequest(c.chromecastId),
n = new u.chrome.cast.ApiConfig(t, r, o, u.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED);
u.chrome.cast.initialize(n)
}
}
function n() {
T = !1, v()
}
function r(e) {
_ = e, _.addUpdateListener(i), w && h(w)
}
function i() {
if (_.status === u.chrome.cast.SessionStatus.CONNECTED) {
var e = _.receiver;
return E.volume !== e.volume.level && (E.volume = e.volume.level, b.emit("volumechange")), void(E.muted !== e.volume.muted && (E.muted = e.volume.muted, b.emit("volumechange")))
}
return _.status === u.chrome.cast.SessionStatus.STOPPED ? (l(null), _.removeUpdateListener(i), _ = null, S = !1, void v()) : void(_.status === u.chrome.cast.SessionStatus.DISCONNECTED)
}
function o(e) {
T = e === u.chrome.cast.ReceiverAvailability.AVAILABLE, v()
}
function l(e) {
x && x.removeUpdateListener(p), x = e, S = !1, v(), x && x.addUpdateListener(p)
}
function p() {
E.currentTime !== x.currentTime && (E.currentTime = x.currentTime, b.emit("timeupdate")), E.volume !== x.volume.level && (E.volume = x.volume.level, b.emit("volumechange")), E.muted !== x.volume.muted && (E.muted = x.volume.muted, b.emit("volumechange")), E.playbackRate !== x.playbackRate && (E.playbackRate = x.playbackRate, b.emit("ratechange"));
var e = x.playerState;
E.playerState !== x.playerState && (e === u.chrome.cast.media.PlayerState.PLAYING ? b.emit("playing") : e === u.chrome.cast.media.PlayerState.PAUSED ? b.emit("pause") : e === u.chrome.cast.media.PlayerState.BUFFERING, E.playerState = x.playerState)
}
function h(e) {
S = !0, v();
var t = (0, f.streamUrl)("channel", e, {
allow_spectre: !0
}),
n = (0, f.channelInfo)(e);
Promise.all([t, n]).then(function(t) {
var n = t[0],
r = t[1];
(0, f.offlinePlaylistInfo)(r._id).then(function(t) {
var i = t || {},
o = new u.chrome.cast.media.MediaInfo(n, "application/x-mpegurl");
o.streamType = u.chrome.cast.media.StreamType.LIVE;
var a = new u.chrome.cast.media.GenericMediaMetadata;
a.subtitle = r.game, a.title = r.display_name, a.images = [new u.chrome.cast.Image(r.logo)], o.metadata = a, o.customData = {
channel: e,
is_spectre: !!i.active
};
var s = new u.chrome.cast.media.LoadRequest(o);
s.autoplay = !0, _.loadMedia(s, l)
})
}, function(e) {
_.stop(), m(e)
})
}
function m(e) {
e && (k = e, b.emit("error"))
}
function v() {
var e = A,
t = C;
x ? (A = y.NETWORK_LOADING, C = y.HAVE_METADATA, b.emit("canplay")) : S ? (A = y.NETWORK_LOADING, C = y.HAVE_NOTHING) : T && w ? (A = y.NETWORK_IDLE, C = y.HAVE_NOTHING) : (A = y.NETWORK_EMPTY, C = y.HAVE_NOTHING), A !== e && (A === y.NETWORK_LOADING ? (b.emit("loadstart"), b.emit("progress")) : A === y.NETWORK_IDLE ? b.emit("suspend") : A === y.NETWORK_EMPTY && b.emit("emptied")), C !== t && (C === y.HAVE_METADATA ? b.emit("loadedmetadata") : C === y.HAVE_NOTHING && b.emit("ended"))
}
function g(e) {
m(e)
}
var y = d,
b = new a["default"],
E = {},
_ = void 0,
x = void 0,
w = void 0,
T = void 0,
k = void 0,
S = void 0,
A = void 0,
C = void 0,
N = !1;
y.init = function() {
if (b.removeAllListeners(), !N) {
N = !0, n();
var r = e();
r.then(t)
}
}, y.destroy = function() {}, y.addEventListener = function(e, t) {
b.on(e, t)
}, y.removeEventListener = function(e, t) {
b.off(e, t)
}, y.getNetworkProfile = function() {
return []
}, y.getError = function() {
return k
}, y.getSrc = function() {}, y.setSrc = function() {}, y.getCurrentSrc = function() {}, y.NETWORK_EMPTY = 0, y.NETWORK_IDLE = 1, y.NETWORK_LOADING = 2, y.NETWORK_NO_SOURCE = 3, y.getNetworkState = function() {
return A
}, y.getPreload = function() {}, y.setPreload = function() {}, y.load = function() {
u.chrome.cast.requestSession(r, g)
}, y.getBuffered = function() {
return {
length: 0
}
}, y.HAVE_NOTHING = 0, y.HAVE_METADATA = 1, y.HAVE_CURRENT_DATA = 2, y.HAVE_FUTURE_DATA = 3, y.HAVE_ENOUGH_DATA = 4, y.getReadyState = function() {
return C
}, y.getSeeking = function() {}, y.getCurrentTime = function() {
return x ? x.getEstimatedTime() : void 0
}, y.setCurrentTime = function(e) {
if (x) {
var t = new u.chrome.cast.media.SeekRequest;
t.time = e, x.seek(t)
}
}, y.getInitialTime = function() {}, y.getDuration = function() {}, y.getStartOffsetTime = function() {}, y.getPaused = function() {
return x ? x.playerState === u.chrome.cast.media.PlayerState.PAUSED : void 0
}, y.getDefaultPlaybackRate = function() {}, y.setDefaultPlaybackRate = function() {}, y.getPlaybackRate = function() {}, y.setPlaybackRate = function() {}, y.getPlayed = function() {}, y.getSeekable = function() {}, y.getEnded = function() {}, y.getAutoplay = function() {}, y.setAutoplay = function() {}, y.getLoop = function() {}, y.setLoop = function() {}, y.play = function() {
if (x) {
var e = new u.chrome.cast.media.PlayRequest;
x.play(e)
} else y.load()
}, y.pause = function() {
if (x) {
var e = new u.chrome.cast.media.PauseRequest;
x.pause(e)
}
}, y.getControls = function() {}, y.setControls = function() {}, y.getVolume = function() {
return x ? x.volume.level : void 0
}, y.setVolume = function(e) {
if (x) {
var t = new u.chrome.cast.Volume(e, null),
n = new u.chrome.cast.media.VolumeRequest(t);
x.setVolume(n)
}
}, y.getMuted = function() {
return x ? x.volume.muted : _ ? _.receiver.volume.muted : void 0
}, y.setMuted = function(e) {
if (x) {
var t = new u.chrome.cast.Volume(null, e),
n = new u.chrome.cast.media.VolumeRequest(t);
x.setVolume(n)
}
}, y.getDefaultMuted = function() {}, y.setDefaultMuted = function() {}, y.getQuality = function() {
return "auto"
}, y.setQuality = function() {}, y.getQualities = function() {
return ["auto"]
}, y.getChannel = function() {
return w
}, y.setChannel = function(e) {
w = e, _ && w && h(w)
}, y.getVideo = function() {
return null
}, y.setVideo = function() {
w = null
}, y.getStats = function() {}, y.getStatsEnabled = function() {}, y.setStatsEnabled = function() {}, y.getVideoInfo = function() {}, y.getBackend = function() {
return "chromecast"
}, y.stop = function() {
_ && _.stop()
}, y.getDevice = function() {
return _ && _.receiver ? _.receiver.friendlyName : void 0
}
}()
}, function(e, t) {
"use strict";
function n() {
var e = this;
e.promise = new Promise(function(t, n) {
e.resolve = t, e.reject = n
})
}
Object.defineProperty(t, "__esModule", {
value: !0
}), t.Deferred = n
}, function(e, t) {
! function() {
var e = function() {};
e.CAST_API_FILE_ = document.currentScript && -1 != document.currentScript.src.indexOf("?loadGamesSDK") ? "/cast_game_sender.js" : "/cast_sender.js", e.CLANK_BASE_PATH_ = "//www.gstatic.com/eureka/clank", e.useInternalExtensionIds_ = 0 < window.location.hash.indexOf("__CastInternalExtensionIds__"), e.CAST_PUBLIC_EXTENSION_IDS_ = ["boadgeojelhgndaghljhdicfkmllpafd", "dliochdbjfkdbacpmhlcpmleaejidimm"], e.CAST_INTERNAL_EXTENSION_IDS_ = ["hfaagokkkhdbgiakmmlclaapfelnkoah", "fmfcbgogabcbclcofgocippekhfcmgfj", "enhhojjnijigcajfphajepfemndkmdlo", "eojlgccfgnjlphjnlopmadngcgmmdgpk"], e.MR_PUBLIC_EXTENSION_IDS_ = ["pkedcjkdefgpdelpbcmbmeomcjbeemfm", "fjhoaacokmgbjemoflkofnenfaiekifl"], e.MR_INTERNAL_EXTENSION_IDS_ = ["ekpaaapppgpmolpcldedioblbkmijaca", "lhkfccafpkdlaodkicmokbmfapjadkij", "ibiljbkambkbohapfhoonkcpcikdglop", "enhhojjnijigcajfphajepfemndkmdlo"], e.CAST_EXTENSION_IDS_ = e.useInternalExtensionIds_ ? e.CAST_PUBLIC_EXTENSION_IDS_.concat(e.CAST_INTERNAL_EXTENSION_IDS_) : e.CAST_PUBLIC_EXTENSION_IDS_, e.MR_EXTENSION_IDS_ = e.useInternalExtensionIds_ ? e.MR_INTERNAL_EXTENSION_IDS_.concat(e.MR_PUBLIC_EXTENSION_IDS_) : e.MR_PUBLIC_EXTENSION_IDS_, e.EXTENSION_IDS_ = window.navigator.presentation ? e.CAST_EXTENSION_IDS_.concat(e.MR_EXTENSION_IDS_) : e.CAST_EXTENSION_IDS_, e.findInstalledExtensionWithCallback = function(t) {
window.chrome ? e.findInstalledExtensionHelper_(0, t) : t(null)
}, e.findInstalledExtensionHelper_ = function(t, n) {
t == e.EXTENSION_IDS_.length ? n(null) : e.isExtensionInstalled_(e.EXTENSION_IDS_[t], function(r) {
r ? n(e.EXTENSION_IDS_[t]) : e.findInstalledExtensionHelper_(t + 1, n)
})
}, e.getCastSenderUrl_ = function(t) {
return "chrome-extension://" + t + e.CAST_API_FILE_
}, e.isExtensionInstalled_ = function(t, n) {
var r = new XMLHttpRequest;
r.onreadystatechange = function() {
4 == r.readyState && 200 == r.status && n(!0)
}, r.onerror = function() {
n(!1)
};
try {
r.open("GET", e.getCastSenderUrl_(t), !0), r.send()
} catch (i) {
n(!1)
}
}, e.appendScript_ = function(e) {
var t = document.createElement("script");
t.src = e, (document.head || document.documentElement).appendChild(t)
}, e.isClank_ = function() {
var e = window.navigator.userAgent;
return 0 <= e.indexOf("Android") && 0 <= e.indexOf("Chrome/")
}, e.isChromeForIOS_ = function() {
var e = window.navigator.userAgent;
return 0 <= e.indexOf("CriOS")
}, e.findInstalledExtension = function() {
if (window.navigator.presentation && e.isClank_()) e.appendScript_(e.CLANK_BASE_PATH_ + e.CAST_API_FILE_);
else {
if (e.isChromeForIOS_()) {
var t = window.__gCrWeb && window.__gCrWeb.message && window.__gCrWeb.message.invokeOnHost;
if (t) return void t({
command: "cast.sender.init"
})
}
e.findInstalledExtensionWithCallback(function(t) {
if (t) window.chrome = window.chrome || {}, window.chrome.cast = window.chrome.cast || {}, window.chrome.cast.extensionId = t, e.appendScript_(e.getCastSenderUrl_(t));
else {
var n = window.__onGCastApiAvailable;
n && "function" == typeof n && n(!1, "No cast extension found")
}
})
}
}, e.findInstalledExtension()
}(), t.chrome = window.chrome
}, function(e, t, n) {
(function(e, r) {
"use strict";
function i(e) {
if (e && e.__esModule) return e;
var t = {};
if (null != e)
for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
return t["default"] = e, t
}
Object.defineProperty(t, "__esModule", {
value: !0
}), t.videoUrl = t.channelUrl = t.isVODRestricted = t.streamUrl = t.accessToken = t.oauthToken = t.channelAPIInfo = t.userInfo = t.channelViewerInfo = t.offlinePlaylistInfo = t.streamInfo = t.productInfo = t.videoInfo = t.channelInfo = void 0;
var o = n(3),
a = i(o),
s = !!("withCredentials" in new XMLHttpRequest),
u = s ? "json" : "jsonp",
l = function(e) {
return e.replace(/[^A-Za-z0-9_]/g, "")
},
c = e.memoize(function(e) {
var t = r.ajax({
url: a.apiHost + "/kraken/channels/" + l(e),
dataType: u,
timeout: a.apiTimeout
});
return Promise.resolve(t)
}),
f = e.memoize(function(t) {
var n = r.ajax({
url: a.apiHost + "/kraken/videos/" + l(t),
dataType: u,
timeout: a.apiTimeout
}),
i = r.ajax({
url: a.apiHost + "/api/videos/" + l(t),
dataType: "jsonp",
timeout: a.apiTimeout
}).then(function(t) {
return e.pick(t, "muted_segments", "increment_view_count_url", "restrictions")
}),
o = Promise.all([n, i]);
return o.then(function(t) {
return e.extend({}, t[0], t[1])
})
}),
d = e.memoize(function(e) {
var t = r.ajax({
url: a.apiHost + "/api/channels/" + l(e) + "/product",
dataType: u,
timeout: a.apiTimeout
});
return Promise.resolve(t)
}),
p = e.memoize(function(e) {
var t = r.ajax({
url: a.apiHost + "/kraken/streams/" + l(e),
dataType: u,
timeout: a.apiTimeout
});
return Promise.resolve(t)
}),
h = function(e) {
var t = r.ajax({
url: a.spectreHost + "/v1/channels/" + e,
dataType: "jsonp",
timeout: a.apiTimeout
});
return Promise.resolve(t)
},
m = e.memoize(function(e) {
var t = r.ajax({
url: a.apiHost + "/api/channels/" + l(e) + "/viewer",
xhrFields: {
withCredentials: !0
},
dataType: u,
timeout: a.apiTimeout
});
return Promise.resolve(t)
}),
v = e.memoize(function() {
return y().then(function() {
var e = r.ajax({
url: a.apiHost + "/api/viewer/info.json",
xhrFields: {
withCredentials: !0
},
dataType: u,
timeout: a.apiTimeout
});
return Promise.resolve(e)
})
}),
g = e.memoize(function(e) {
return y().then(function() {
var t = r.ajax({
url: a.apiHost + "/api/channels/" + e,
dataType: u,
timeout: a.apiTimeout
});
return Promise.resolve(t)
})
}),
y = e.memoize(function() {
var e = r.ajax({
url: a.apiHost + "/api/viewer/token.json",
xhrFields: {
withCredentials: !0
},
dataType: u,
timeout: a.apiTimeout
});
return Promise.resolve(e)
}),
b = function(e, t) {
var n = function(n) {
var i;
"channel" === e ? i = a.apiHost + "/api/channels/" + l(t) + "/access_token" : "video" === e && (i = a.apiHost + "/api/vods/" + l(t) + "/access_token");
var o = r.ajax({
url: i,
data: {
oauth_token: n
},
xhrFields: {
withCredentials: !0
},
dataType: u,
timeout: a.apiTimeout
});
return Promise.resolve(o)
};
return y().then(function(e) {
return n(e.token)
}, function() {
return n()
})
},
E = function(t, n, i) {
var o;
"channel" === t ? o = a.usherHost + "/api/channel/hls/" + l(n) + ".m3u8" : "video" === t && (o = a.usherHost + "/vod/" + l(n) + ".m3u8");
var s = b(t, n);
return s.then(function(n) {
return i = e.extend({}, i), "channel" === t ? (i.token = n.token, i.sig = n.sig) : "video" === t && (i.nauth = n.token, i.nauthsig = n.sig), o += "?" + r.param(i)
})
},
_ = function(t, n) {
return null !== t.chansub || t.is_admin ? !1 : e.reduce(n.restrictions, function(e, t) {
return e || "chansub" === t
}, !1)
},
x = function(e, t) {
var n = a.twitchHost + "/" + l(e);
return t && (n += "?" + r.param(t)), n
},
w = function(e, t, n) {
var i = x(e),
o = t[0],
a = t.substring(1);
return i += "/" + l(o) + "/" + l(a), n && (i += "?" + r.param(n)), i
};
t.channelInfo = c, t.videoInfo = f, t.productInfo = d, t.streamInfo = p, t.offlinePlaylistInfo = h, t.channelViewerInfo = m, t.userInfo = v, t.channelAPIInfo = g, t.oauthToken = y, t.accessToken = b, t.streamUrl = E, t.isVODRestricted = _, t.channelUrl = x, t.videoUrl = w
}).call(t, n(1), n(13))
}, function(e, t, n) {
var r, i;
/*!
* jQuery JavaScript Library v1.12.0
* http://jquery.com/
*
* Includes Sizzle.js
* http://sizzlejs.com/
*
* Copyright jQuery Foundation and other contributors
* Released under the MIT license
* http://jquery.org/license
*
* Date: 2016-01-08T19:56Z
*/
! function(t, n) {
"object" == typeof e && "object" == typeof e.exports ? e.exports = t.document ? n(t, !0) : function(e) {
if (!e.document) throw new Error("jQuery requires a window with a document");
return n(e)
} : n(t)
}("undefined" != typeof window ? window : this, function(n, o) {
function a(e) {
var t = !!e && "length" in e && e.length,
n = ge.type(e);
return "function" === n || ge.isWindow(e) ? !1 : "array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e
}
function s(e, t, n) {
if (ge.isFunction(t)) return ge.grep(e, function(e, r) {
return !!t.call(e, r, e) !== n
});
if (t.nodeType) return ge.grep(e, function(e) {
return e === t !== n
});
if ("string" == typeof t) {
if (Ae.test(t)) return ge.filter(t, e, n);
t = ge.filter(t, e)
}
return ge.grep(e, function(e) {
return ge.inArray(e, t) > -1 !== n
})
}
function u(e, t) {
do e = e[t]; while (e && 1 !== e.nodeType);
return e
}
function l(e) {
var t = {};
return ge.each(e.match(je) || [], function(e, n) {
t[n] = !0
}), t
}
function c() {
se.addEventListener ? (se.removeEventListener("DOMContentLoaded", f), n.removeEventListener("load", f)) : (se.detachEvent("onreadystatechange", f), n.detachEvent("onload", f))
}
function f() {
(se.addEventListener || "load" === n.event.type || "complete" === se.readyState) && (c(), ge.ready())
}
function d(e, t, n) {
if (void 0 === n && 1 === e.nodeType) {
var r = "data-" + t.replace(Re, "-$1").toLowerCase();
if (n = e.getAttribute(r), "string" == typeof n) {
try {
n = "true" === n ? !0 : "false" === n ? !1 : "null" === n ? null : +n + "" === n ? +n : Me.test(n) ? ge.parseJSON(n) : n
} catch (i) {}
ge.data(e, t, n)
} else n = void 0
}
return n
}
function p(e) {
var t;
for (t in e)
if (("data" !== t || !ge.isEmptyObject(e[t])) && "toJSON" !== t) return !1;
return !0
}
function h(e, t, n, r) {
if (He(e)) {
var i, o, a = ge.expando,
s = e.nodeType,
u = s ? ge.cache : e,
l = s ? e[a] : e[a] && a;
if (l && u[l] && (r || u[l].data) || void 0 !== n || "string" != typeof t) return l || (l = s ? e[a] = ae.pop() || ge.guid++ : a), u[l] || (u[l] = s ? {} : {
toJSON: ge.noop
}), ("object" == typeof t || "function" == typeof t) && (r ? u[l] = ge.extend(u[l], t) : u[l].data = ge.extend(u[l].data, t)), o = u[l], r || (o.data || (o.data = {}), o = o.data), void 0 !== n && (o[ge.camelCase(t)] = n), "string" == typeof t ? (i = o[t], null == i && (i = o[ge.camelCase(t)])) : i = o, i
}
}
function m(e, t, n) {
if (He(e)) {
var r, i, o = e.nodeType,
a = o ? ge.cache : e,
s = o ? e[ge.expando] : ge.expando;
if (a[s]) {
if (t && (r = n ? a[s] : a[s].data)) {
ge.isArray(t) ? t = t.concat(ge.map(t, ge.camelCase)) : t in r ? t = [t] : (t = ge.camelCase(t), t = t in r ? [t] : t.split(" ")), i = t.length;
for (; i--;) delete r[t[i]];
if (n ? !p(r) : !ge.isEmptyObject(r)) return
}(n || (delete a[s].data, p(a[s]))) && (o ? ge.cleanData([e], !0) : me.deleteExpando || a != a.window ? delete a[s] : a[s] = void 0)
}
}
}
function v(e, t, n, r) {
var i, o = 1,
a = 20,
s = r ? function() {
return r.cur()
} : function() {
return ge.css(e, t, "")
},
u = s(),
l = n && n[3] || (ge.cssNumber[t] ? "" : "px"),
c = (ge.cssNumber[t] || "px" !== l && +u) && qe.exec(ge.css(e, t));
if (c && c[3] !== l) {
l = l || c[3], n = n || [], c = +u || 1;
do o = o || ".5", c /= o, ge.style(e, t, c + l); while (o !== (o = s() / u) && 1 !== o && --a)
}
return n && (c = +c || +u || 0, i = n[1] ? c + (n[1] + 1) * n[2] : +n[2], r && (r.unit = l, r.start = c, r.end = i)), i
}
function g(e) {
var t = Ge.split("|"),
n = e.createDocumentFragment();
if (n.createElement)
for (; t.length;) n.createElement(t.pop());
return n
}
function y(e, t) {
var n, r, i = 0,
o = "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t || "*") : "undefined" != typeof e.querySelectorAll ? e.querySelectorAll(t || "*") : void 0;
if (!o)
for (o = [], n = e.childNodes || e; null != (r = n[i]); i++) !t || ge.nodeName(r, t) ? o.push(r) : ge.merge(o, y(r, t));
return void 0 === t || t && ge.nodeName(e, t) ? ge.merge([e], o) : o
}
function b(e, t) {
for (var n, r = 0; null != (n = e[r]); r++) ge._data(n, "globalEval", !t || ge._data(t[r], "globalEval"))
}
function E(e) {
We.test(e.type) && (e.defaultChecked = e.checked)
}
function _(e, t, n, r, i) {
for (var o, a, s, u, l, c, f, d = e.length, p = g(t), h = [], m = 0; d > m; m++)
if (a = e[m], a || 0 === a)
if ("object" === ge.type(a)) ge.merge(h, a.nodeType ? [a] : a);
else if (Ke.test(a)) {
for (u = u || p.appendChild(t.createElement("div")), l = (ze.exec(a) || ["", ""])[1].toLowerCase(), f = Ye[l] || Ye._default, u.innerHTML = f[1] + ge.htmlPrefilter(a) + f[2], o = f[0]; o--;) u = u.lastChild;
if (!me.leadingWhitespace && Xe.test(a) && h.push(t.createTextNode(Xe.exec(a)[0])), !me.tbody)
for (a = "table" !== l || Qe.test(a) ? "<table>" !== f[1] || Qe.test(a) ? 0 : u : u.firstChild, o = a && a.childNodes.length; o--;) ge.nodeName(c = a.childNodes[o], "tbody") && !c.childNodes.length && a.removeChild(c);
for (ge.merge(h, u.childNodes), u.textContent = ""; u.firstChild;) u.removeChild(u.firstChild);
u = p.lastChild
} else h.push(t.createTextNode(a));
for (u && p.removeChild(u), me.appendChecked || ge.grep(y(h, "input"), E), m = 0; a = h[m++];)
if (r && ge.inArray(a, r) > -1) i && i.push(a);
else if (s = ge.contains(a.ownerDocument, a), u = y(p.appendChild(a), "script"), s && b(u), n)
for (o = 0; a = u[o++];) $e.test(a.type || "") && n.push(a);
return u = null, p
}
function x() {
return !0
}
function w() {
return !1
}
function T() {
try {
return se.activeElement
} catch (e) {}
}
function k(e, t, n, r, i, o) {
var a, s;
if ("object" == typeof t) {
"string" != typeof n && (r = r || n, n = void 0);
for (s in t) k(e, s, n, r, t[s], o);
return e
}
if (null == r && null == i ? (i = n, r = n = void 0) : null == i && ("string" == typeof n ? (i = r, r = void 0) : (i = r, r = n, n = void 0)), i === !1) i = w;
else if (!i) return e;
return 1 === o && (a = i, i = function(e) {
return ge().off(e), a.apply(this, arguments)
}, i.guid = a.guid || (a.guid = ge.guid++)), e.each(function() {
ge.event.add(this, t, i, r, n)
})
}
function S(e, t) {
return ge.nodeName(e, "table") && ge.nodeName(11 !== t.nodeType ? t : t.firstChild, "tr") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e
}
function A(e) {
return e.type = (null !== ge.find.attr(e, "type")) + "/" + e.type, e
}
function C(e) {
var t = ut.exec(e.type);
return t ? e.type = t[1] : e.removeAttribute("type"), e
}
function N(e, t) {
if (1 === t.nodeType && ge.hasData(e)) {
var n, r, i, o = ge._data(e),
a = ge._data(t, o),
s = o.events;
if (s) {
delete a.handle, a.events = {};
for (n in s)
for (r = 0, i = s[n].length; i > r; r++) ge.event.add(t, n, s[n][r])
}
a.data && (a.data = ge.extend({}, a.data))
}
}
function D(e, t) {
var n, r, i;
if (1 === t.nodeType) {
if (n = t.nodeName.toLowerCase(), !me.noCloneEvent && t[ge.expando]) {
i = ge._data(t);
for (r in i.events) ge.removeEvent(t, r, i.handle);
t.removeAttribute(ge.expando)
}
"script" === n && t.text !== e.text ? (A(t).text = e.text, C(t)) : "object" === n ? (t.parentNode && (t.outerHTML = e.outerHTML), me.html5Clone && e.innerHTML && !ge.trim(t.innerHTML) && (t.innerHTML = e.innerHTML)) : "input" === n && We.test(e.type) ? (t.defaultChecked = t.checked = e.checked, t.value !== e.value && (t.value = e.value)) : "option" === n ? t.defaultSelected = t.selected = e.defaultSelected : ("input" === n || "textarea" === n) && (t.defaultValue = e.defaultValue)
}
}
function O(e, t, n, r) {
t = le.apply([], t);
var i, o, a, s, u, l, c = 0,
f = e.length,
d = f - 1,
p = t[0],
h = ge.isFunction(p);
if (h || f > 1 && "string" == typeof p && !me.checkClone && st.test(p)) return e.each(function(i) {
var o = e.eq(i);
h && (t[0] = p.call(this, i, o.html())), O(o, t, n, r)
});
if (f && (l = _(t, e[0].ownerDocument, !1, e, r), i = l.firstChild, 1 === l.childNodes.length && (l = i), i || r)) {
for (s = ge.map(y(l, "script"), A), a = s.length; f > c; c++) o = l, c !== d && (o = ge.clone(o, !0, !0), a && ge.merge(s, y(o, "script"))), n.call(e[c], o, c);
if (a)
for (u = s[s.length - 1].ownerDocument, ge.map(s, C), c = 0; a > c; c++) o = s[c], $e.test(o.type || "") && !ge._data(o, "globalEval") && ge.contains(u, o) && (o.src ? ge._evalUrl && ge._evalUrl(o.src) : ge.globalEval((o.text || o.textContent || o.innerHTML || "").replace(lt, "")));
l = i = null
}
return e
}
function L(e, t, n) {
for (var r, i = t ? ge.filter(t, e) : e, o = 0; null != (r = i[o]); o++) n || 1 !== r.nodeType || ge.cleanData(y(r)), r.parentNode && (n && ge.contains(r.ownerDocument, r) && b(y(r, "script")), r.parentNode.removeChild(r));
return e
}
function j(e, t) {
var n = ge(t.createElement(e)).appendTo(t.body),
r = ge.css(n[0], "display");
return n.detach(), r
}
function I(e) {
var t = se,
n = pt[e];
return n || (n = j(e, t), "none" !== n && n || (dt = (dt || ge("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement), t = (dt[0].contentWindow || dt[0].contentDocument).document, t.write(), t.close(), n = j(e, t), dt.detach()), pt[e] = n), n
}
function P(e, t) {
return {
get: function() {
return e() ? void delete this.get : (this.get = t).apply(this, arguments)
}
}
}
function H(e) {
if (e in Ct) return e;
for (var t = e.charAt(0).toUpperCase() + e.slice(1), n = At.length; n--;)
if (e = At[n] + t, e in Ct) return e
}
function M(e, t) {
for (var n, r, i, o = [], a = 0, s = e.length; s > a; a++) r = e[a], r.style && (o[a] = ge._data(r, "olddisplay"), n = r.style.display, t ? (o[a] || "none" !== n || (r.style.display = ""), "" === r.style.display && Ve(r) && (o[a] = ge._data(r, "olddisplay", I(r.nodeName)))) : (i = Ve(r), (n && "none" !== n || !i) && ge._data(r, "olddisplay", i ? n : ge.css(r, "display"))));
for (a = 0; s > a; a++) r = e[a], r.style && (t && "none" !== r.style.display && "" !== r.style.display || (r.style.display = t ? o[a] || "" : "none"));
return e
}
function R(e, t, n) {
var r = Tt.exec(t);
return r ? Math.max(0, r[1] - (n || 0)) + (r[2] || "px") : t
}
function B(e, t, n, r, i) {
for (var o = n === (r ? "border" : "content") ? 4 : "width" === t ? 1 : 0, a = 0; 4 > o; o += 2) "margin" === n && (a += ge.css(e, n + Fe[o], !0, i)), r ? ("content" === n && (a -= ge.css(e, "padding" + Fe[o], !0, i)), "margin" !== n && (a -= ge.css(e, "border" + Fe[o] + "Width", !0, i))) : (a += ge.css(e, "padding" + Fe[o], !0, i), "padding" !== n && (a += ge.css(e, "border" + Fe[o] + "Width", !0, i)));
return a
}
function q(e, t, r) {
var i = !0,
o = "width" === t ? e.offsetWidth : e.offsetHeight,
a = yt(e),
s = me.boxSizing && "border-box" === ge.css(e, "boxSizing", !1, a);
if (se.msFullscreenElement && n.top !== n && e.getClientRects().length && (o = Math.round(100 * e.getBoundingClientRect()[t])), 0 >= o || null == o) {
if (o = bt(e, t, a), (0 > o || null == o) && (o = e.style[t]), mt.test(o)) return o;
i = s && (me.boxSizingReliable() || o === e.style[t]), o = parseFloat(o) || 0
}
return o + B(e, t, r || (s ? "border" : "content"), i, a) + "px"
}
function F(e, t, n, r, i) {
return new F.prototype.init(e, t, n, r, i)
}
function V() {
return n.setTimeout(function() {
Nt = void 0
}), Nt = ge.now()
}
function U(e, t) {
var n, r = {
height: e
},
i = 0;
for (t = t ? 1 : 0; 4 > i; i += 2 - t) n = Fe[i], r["margin" + n] = r["padding" + n] = e;
return t && (r.opacity = r.width = e), r
}
function W(e, t, n) {
for (var r, i = (X.tweeners[t] || []).concat(X.tweeners["*"]), o = 0, a = i.length; a > o; o++)
if (r = i[o].call(n, t, e)) return r
}
function z(e, t, n) {
var r, i, o, a, s, u, l, c, f = this,
d = {},
p = e.style,
h = e.nodeType && Ve(e),
m = ge._data(e, "fxshow");
n.queue || (s = ge._queueHooks(e, "fx"), null == s.unqueued && (s.unqueued = 0, u = s.empty.fire, s.empty.fire = function() {
s.unqueued || u()
}), s.unqueued++, f.always(function() {
f.always(function() {
s.unqueued--, ge.queue(e, "fx").length || s.empty.fire()
})
})), 1 === e.nodeType && ("height" in t || "width" in t) && (n.overflow = [p.overflow, p.overflowX, p.overflowY], l = ge.css(e, "display"), c = "none" === l ? ge._data(e, "olddisplay") || I(e.nodeName) : l, "inline" === c && "none" === ge.css(e, "float") && (me.inlineBlockNeedsLayout && "inline" !== I(e.nodeName) ? p.zoom = 1 : p.display = "inline-block")), n.overflow && (p.overflow = "hidden", me.shrinkWrapBlocks() || f.always(function() {
p.overflow = n.overflow[0], p.overflowX = n.overflow[1], p.overflowY = n.overflow[2]
}));
for (r in t)
if (i = t[r], Ot.exec(i)) {
if (delete t[r], o = o || "toggle" === i, i === (h ? "hide" : "show")) {
if ("show" !== i || !m || void 0 === m[r]) continue;
h = !0
}
d[r] = m && m[r] || ge.style(e, r)
} else l = void 0;
if (ge.isEmptyObject(d)) "inline" === ("none" === l ? I(e.nodeName) : l) && (p.display = l);
else {
m ? "hidden" in m && (h = m.hidden) : m = ge._data(e, "fxshow", {}), o && (m.hidden = !h), h ? ge(e).show() : f.done(function() {
ge(e).hide()
}), f.done(function() {
var t;
ge._removeData(e, "fxshow");
for (t in d) ge.style(e, t, d[t])
});
for (r in d) a = W(h ? m[r] : 0, r, f), r in m || (m[r] = a.start, h && (a.end = a.start, a.start = "width" === r || "height" === r ? 1 : 0))
}
}
function $(e, t) {
var n, r, i, o, a;
for (n in e)
if (r = ge.camelCase(n), i = t[r], o = e[n], ge.isArray(o) && (i = o[1], o = e[n] = o[0]), n !== r && (e[r] = o, delete e[n]), a = ge.cssHooks[r], a && "expand" in a) {
o = a.expand(o), delete e[r];
for (n in o) n in e || (e[n] = o[n], t[n] = i)
} else t[r] = i
}
function X(e, t, n) {
var r, i, o = 0,
a = X.prefilters.length,
s = ge.Deferred().always(function() {
delete u.elem
}),
u = function() {
if (i) return !1;
for (var t = Nt || V(), n = Math.max(0, l.startTime + l.duration - t), r = n / l.duration || 0, o = 1 - r, a = 0, u = l.tweens.length; u > a; a++) l.tweens[a].run(o);
return s.notifyWith(e, [l, o, n]), 1 > o && u ? n : (s.resolveWith(e, [l]), !1)
},
l = s.promise({
elem: e,
props: ge.extend({}, t),
opts: ge.extend(!0, {
specialEasing: {},
easing: ge.easing._default
}, n),
originalProperties: t,
originalOptions: n,
startTime: Nt || V(),
duration: n.duration,
tweens: [],
createTween: function(t, n) {
var r = ge.Tween(e, l.opts, t, n, l.opts.specialEasing[t] || l.opts.easing);
return l.tweens.push(r), r
},
stop: function(t) {
var n = 0,
r = t ? l.tweens.length : 0;
if (i) return this;
for (i = !0; r > n; n++) l.tweens[n].run(1);
return t ? (s.notifyWith(e, [l, 1, 0]), s.resolveWith(e, [l, t])) : s.rejectWith(e, [l, t]), this
}
}),
c = l.props;
for ($(c, l.opts.specialEasing); a > o; o++)
if (r = X.prefilters[o].call(l, e, c, l.opts)) return ge.isFunction(r.stop) && (ge._queueHooks(l.elem, l.opts.queue).stop = ge.proxy(r.stop, r)), r;
return ge.map(c, W, l), ge.isFunction(l.opts.start) && l.opts.start.call(e, l), ge.fx.timer(ge.extend(u, {
elem: e,
anim: l,
queue: l.opts.queue
})), l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always)
}
function G(e) {
return ge.attr(e, "class") || ""
}
function Y(e) {
return function(t, n) {
"string" != typeof t && (n = t, t = "*");
var r, i = 0,
o = t.toLowerCase().match(je) || [];
if (ge.isFunction(n))
for (; r = o[i++];) "+" === r.charAt(0) ? (r = r.slice(1) || "*", (e[r] = e[r] || []).unshift(n)) : (e[r] = e[r] || []).push(n)
}
}
function K(e, t, n, r) {
function i(s) {
var u;
return o[s] = !0, ge.each(e[s] || [], function(e, s) {
var l = s(t, n, r);
return "string" != typeof l || a || o[l] ? a ? !(u = l) : void 0 : (t.dataTypes.unshift(l), i(l), !1)
}), u
}
var o = {},
a = e === tn;
return i(t.dataTypes[0]) || !o["*"] && i("*")
}
function Q(e, t) {
var n, r, i = ge.ajaxSettings.flatOptions || {};
for (r in t) void 0 !== t[r] && ((i[r] ? e : n || (n = {}))[r] = t[r]);
return n && ge.extend(!0, e, n), e
}
function J(e, t, n) {
for (var r, i, o, a, s = e.contents, u = e.dataTypes;
"*" === u[0];) u.shift(), void 0 === i && (i = e.mimeType || t.getResponseHeader("Content-Type"));
if (i)
for (a in s)
if (s[a] && s[a].test(i)) {
u.unshift(a);
break
}
if (u[0] in n) o = u[0];
else {
for (a in n) {
if (!u[0] || e.converters[a + " " + u[0]]) {
o = a;
break
}
r || (r = a)
}
o = o || r
}
return o ? (o !== u[0] && u.unshift(o), n[o]) : void 0
}
function Z(e, t, n, r) {
var i, o, a, s, u, l = {},
c = e.dataTypes.slice();
if (c[1])
for (a in e.converters) l[a.toLowerCase()] = e.converters[a];
for (o = c.shift(); o;)
if (e.responseFields[o] && (n[e.responseFields[o]] = t), !u && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), u = o, o = c.shift())
if ("*" === o) o = u;
else if ("*" !== u && u !== o) {
if (a = l[u + " " + o] || l["* " + o], !a)
for (i in l)
if (s = i.split(" "), s[1] === o && (a = l[u + " " + s[0]] || l["* " + s[0]])) {
a === !0 ? a = l[i] : l[i] !== !0 && (o = s[0], c.unshift(s[1]));
break
}
if (a !== !0)
if (a && e["throws"]) t = a(t);
else try {
t = a(t)
} catch (f) {
return {
state: "parsererror",
error: a ? f : "No conversion from " + u + " to " + o
}
}
}
return {
state: "success",
data: t
}
}
function ee(e) {
return e.style && e.style.display || ge.css(e, "display")
}
function te(e) {
for (; e && 1 === e.nodeType;) {
if ("none" === ee(e) || "hidden" === e.type) return !0;
e = e.parentNode
}
return !1
}
function ne(e, t, n, r) {
var i;
if (ge.isArray(t)) ge.each(t, function(t, i) {
n || sn.test(e) ? r(e, i) : ne(e + "[" + ("object" == typeof i && null != i ? t : "") + "]", i, n, r)
});
else if (n || "object" !== ge.type(t)) r(e, t);
else
for (i in t) ne(e + "[" + i + "]", t[i], n, r)
}
function re() {
try {
return new n.XMLHttpRequest
} catch (e) {}
}
function ie() {
try {
return new n.ActiveXObject("Microsoft.XMLHTTP")
} catch (e) {}
}
function oe(e) {
return ge.isWindow(e) ? e : 9 === e.nodeType ? e.defaultView || e.parentWindow : !1
}
var ae = [],
se = n.document,
ue = ae.slice,
le = ae.concat,
ce = ae.push,
fe = ae.indexOf,
de = {},
pe = de.toString,
he = de.hasOwnProperty,
me = {},
ve = "1.12.0",
ge = function(e, t) {
return new ge.fn.init(e, t)
},
ye = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
be = /^-ms-/,
Ee = /-([\da-z])/gi,
_e = function(e, t) {
return t.toUpperCase()
};
ge.fn = ge.prototype = {
jquery: ve,
constructor: ge,
selector: "",
length: 0,
toArray: function() {
return ue.call(this)
},
get: function(e) {
return null != e ? 0 > e ? this[e + this.length] : this[e] : ue.call(this)
},
pushStack: function(e) {
var t = ge.merge(this.constructor(), e);
return t.prevObject = this, t.context = this.context, t
},
each: function(e) {
return ge.each(this, e)
},
map: function(e) {
return this.pushStack(ge.map(this, function(t, n) {
return e.call(t, n, t)
}))
},
slice: function() {
return this.pushStack(ue.apply(this, arguments))
},
first: function() {
return this.eq(0)
},
last: function() {
return this.eq(-1)
},
eq: function(e) {
var t = this.length,
n = +e + (0 > e ? t : 0);
return this.pushStack(n >= 0 && t > n ? [this[n]] : [])
},
end: function() {
return this.prevObject || this.constructor()
},
push: ce,
sort: ae.sort,
splice: ae.splice
}, ge.extend = ge.fn.extend = function() {
var e, t, n, r, i, o, a = arguments[0] || {},
s = 1,
u = arguments.length,
l = !1;
for ("boolean" == typeof a && (l = a, a = arguments[s] || {}, s++), "object" == typeof a || ge.isFunction(a) || (a = {}), s === u && (a = this, s--); u > s; s++)
if (null != (i = arguments[s]))
for (r in i) e = a[r], n = i[r], a !== n && (l && n && (ge.isPlainObject(n) || (t = ge.isArray(n))) ? (t ? (t = !1, o = e && ge.isArray(e) ? e : []) : o = e && ge.isPlainObject(e) ? e : {}, a[r] = ge.extend(l, o, n)) : void 0 !== n && (a[r] = n));
return a
}, ge.extend({
expando: "jQuery" + (ve + Math.random()).replace(/\D/g, ""),
isReady: !0,
error: function(e) {
throw new Error(e)
},
noop: function() {},
isFunction: function(e) {
return "function" === ge.type(e)
},
isArray: Array.isArray || function(e) {
return "array" === ge.type(e)
},
isWindow: function(e) {
return null != e && e == e.window
},
isNumeric: function(e) {
var t = e && e.toString();
return !ge.isArray(e) && t - parseFloat(t) + 1 >= 0
},
isEmptyObject: function(e) {
var t;
for (t in e) return !1;
return !0
},
isPlainObject: function(e) {
var t;
if (!e || "object" !== ge.type(e) || e.nodeType || ge.isWindow(e)) return !1;
try {
if (e.constructor && !he.call(e, "constructor") && !he.call(e.constructor.prototype, "isPrototypeOf")) return !1
} catch (n) {
return !1
}
if (!me.ownFirst)
for (t in e) return he.call(e, t);
for (t in e);
return void 0 === t || he.call(e, t)
},
type: function(e) {
return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? de[pe.call(e)] || "object" : typeof e
},
globalEval: function(e) {
e && ge.trim(e) && (n.execScript || function(e) {
n.eval.call(n, e)
})(e)
},
camelCase: function(e) {
return e.replace(be, "ms-").replace(Ee, _e)
},
nodeName: function(e, t) {
return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
},
each: function(e, t) {
var n, r = 0;
if (a(e))
for (n = e.length; n > r && t.call(e[r], r, e[r]) !== !1; r++);
else
for (r in e)
if (t.call(e[r], r, e[r]) === !1) break; return e
},
trim: function(e) {
return null == e ? "" : (e + "").replace(ye, "")
},
makeArray: function(e, t) {
var n = t || [];
return null != e && (a(Object(e)) ? ge.merge(n, "string" == typeof e ? [e] : e) : ce.call(n, e)), n
},
inArray: function(e, t, n) {
var r;
if (t) {
if (fe) return fe.call(t, e, n);
for (r = t.length, n = n ? 0 > n ? Math.max(0, r + n) : n : 0; r > n; n++)
if (n in t && t[n] === e) return n
}
return -1
},
merge: function(e, t) {
for (var n = +t.length, r = 0, i = e.length; n > r;) e[i++] = t[r++];
if (n !== n)
for (; void 0 !== t[r];) e[i++] = t[r++];
return e.length = i, e
},
grep: function(e, t, n) {
for (var r, i = [], o = 0, a = e.length, s = !n; a > o; o++) r = !t(e[o], o), r !== s && i.push(e[o]);
return i
},
map: function(e, t, n) {
var r, i, o = 0,
s = [];
if (a(e))
for (r = e.length; r > o; o++) i = t(e[o], o, n), null != i && s.push(i);
else
for (o in e) i = t(e[o], o, n), null != i && s.push(i);
return le.apply([], s)
},
guid: 1,
proxy: function(e, t) {
var n, r, i;
return "string" == typeof t && (i = e[t], t = e, e = i), ge.isFunction(e) ? (n = ue.call(arguments, 2), r = function() {
return e.apply(t || this, n.concat(ue.call(arguments)))
}, r.guid = e.guid = e.guid || ge.guid++, r) : void 0
},
now: function() {
return +new Date
},
support: me
}), "function" == typeof Symbol && (ge.fn[Symbol.iterator] = ae[Symbol.iterator]), ge.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(e, t) {
de["[object " + t + "]"] = t.toLowerCase()
});
var xe =
/*!
* Sizzle CSS Selector Engine v2.2.1
* http://sizzlejs.com/
*
* Copyright jQuery Foundation and other contributors
* Released under the MIT license
* http://jquery.org/license
*
* Date: 2015-10-17
*/
function(e) {
function t(e, t, n, r) {
var i, o, a, s, u, l, f, p, h = t && t.ownerDocument,
m = t ? t.nodeType : 9;
if (n = n || [], "string" != typeof e || !e || 1 !== m && 9 !== m && 11 !== m) return n;
if (!r && ((t ? t.ownerDocument || t : q) !== L && O(t), t = t || L, I)) {
if (11 !== m && (l = ge.exec(e)))
if (i = l[1]) {
if (9 === m) {
if (!(a = t.getElementById(i))) return n;
if (a.id === i) return n.push(a), n
} else if (h && (a = h.getElementById(i)) && R(t, a) && a.id === i) return n.push(a), n
} else {
if (l[2]) return J.apply(n, t.getElementsByTagName(e)), n;
if ((i = l[3]) && _.getElementsByClassName && t.getElementsByClassName) return J.apply(n, t.getElementsByClassName(i)), n
}
if (_.qsa && !z[e + " "] && (!P || !P.test(e))) {
if (1 !== m) h = t, p = e;
else if ("object" !== t.nodeName.toLowerCase()) {
for ((s = t.getAttribute("id")) ? s = s.replace(be, "\\$&") : t.setAttribute("id", s = B), f = k(e), o = f.length, u = de.test(s) ? "#" + s : "[id='" + s + "']"; o--;) f[o] = u + " " + d(f[o]);
p = f.join(","), h = ye.test(e) && c(t.parentNode) || t
}
if (p) try {
return J.apply(n, h.querySelectorAll(p)), n
} catch (v) {} finally {
s === B && t.removeAttribute("id")
}
}
}
return A(e.replace(se, "$1"), t, n, r)
}
function n() {
function e(n, r) {
return t.push(n + " ") > x.cacheLength && delete e[t.shift()], e[n + " "] = r
}
var t = [];
return e
}
function r(e) {
return e[B] = !0, e
}
function i(e) {
var t = L.createElement("div");
try {
return !!e(t)
} catch (n) {
return !1
} finally {
t.parentNode && t.parentNode.removeChild(t), t = null
}
}
function o(e, t) {
for (var n = e.split("|"), r = n.length; r--;) x.attrHandle[n[r]] = t
}
function a(e, t) {
var n = t && e,
r = n && 1 === e.nodeType && 1 === t.nodeType && (~t.sourceIndex || X) - (~e.sourceIndex || X);
if (r) return r;
if (n)
for (; n = n.nextSibling;)
if (n === t) return -1;
return e ? 1 : -1
}
function s(e) {
return function(t) {
var n = t.nodeName.toLowerCase();
return "input" === n && t.type === e
}
}
function u(e) {
return function(t) {
var n = t.nodeName.toLowerCase();
return ("input" === n || "button" === n) && t.type === e
}
}
function l(e) {
return r(function(t) {
return t = +t, r(function(n, r) {
for (var i, o = e([], n.length, t), a = o.length; a--;) n[i = o[a]] && (n[i] = !(r[i] = n[i]))
})
})
}
function c(e) {
return e && "undefined" != typeof e.getElementsByTagName && e
}
function f() {}
function d(e) {
for (var t = 0, n = e.length, r = ""; n > t; t++) r += e[t].value;
return r
}
function p(e, t, n) {
var r = t.dir,
i = n && "parentNode" === r,
o = V++;
return t.first ? function(t, n, o) {
for (; t = t[r];)
if (1 === t.nodeType || i) return e(t, n, o)
} : function(t, n, a) {
var s, u, l, c = [F, o];
if (a) {
for (; t = t[r];)
if ((1 === t.nodeType || i) && e(t, n, a)) return !0
} else
for (; t = t[r];)
if (1 === t.nodeType || i) {
if (l = t[B] || (t[B] = {}), u = l[t.uniqueID] || (l[t.uniqueID] = {}), (s = u[r]) && s[0] === F && s[1] === o) return c[2] = s[2];
if (u[r] = c, c[2] = e(t, n, a)) return !0
}
}
}
function h(e) {
return e.length > 1 ? function(t, n, r) {
for (var i = e.length; i--;)
if (!e[i](t, n, r)) return !1;
return !0
} : e[0]
}
function m(e, n, r) {
for (var i = 0, o = n.length; o > i; i++) t(e, n[i], r);
return r
}
function v(e, t, n, r, i) {
for (var o, a = [], s = 0, u = e.length, l = null != t; u > s; s++)(o = e[s]) && (!n || n(o, r, i)) && (a.push(o), l && t.push(s));
return a
}
function g(e, t, n, i, o, a) {
return i && !i[B] && (i = g(i)), o && !o[B] && (o = g(o, a)), r(function(r, a, s, u) {
var l, c, f, d = [],
p = [],
h = a.length,
g = r || m(t || "*", s.nodeType ? [s] : s, []),
y = !e || !r && t ? g : v(g, d, e, s, u),
b = n ? o || (r ? e : h || i) ? [] : a : y;
if (n && n(y, b, s, u), i)
for (l = v(b, p), i(l, [], s, u), c = l.length; c--;)(f = l[c]) && (b[p[c]] = !(y[p[c]] = f));
if (r) {
if (o || e) {
if (o) {
for (l = [], c = b.length; c--;)(f = b[c]) && l.push(y[c] = f);
o(null, b = [], l, u)
}
for (c = b.length; c--;)(f = b[c]) && (l = o ? ee(r, f) : d[c]) > -1 && (r[l] = !(a[l] = f))
}
} else b = v(b === a ? b.splice(h, b.length) : b), o ? o(null, a, b, u) : J.apply(a, b)
})
}
function y(e) {
for (var t, n, r, i = e.length, o = x.relative[e[0].type], a = o || x.relative[" "], s = o ? 1 : 0, u = p(function(e) {
return e === t
}, a, !0), l = p(function(e) {
return ee(t, e) > -1
}, a, !0), c = [function(e, n, r) {
var i = !o && (r || n !== C) || ((t = n).nodeType ? u(e, n, r) : l(e, n, r));
return t = null, i
}]; i > s; s++)
if (n = x.relative[e[s].type]) c = [p(h(c), n)];
else {
if (n = x.filter[e[s].type].apply(null, e[s].matches), n[B]) {
for (r = ++s; i > r && !x.relative[e[r].type]; r++);
return g(s > 1 && h(c), s > 1 && d(e.slice(0, s - 1).concat({
value: " " === e[s - 2].type ? "*" : ""
})).replace(se, "$1"), n, r > s && y(e.slice(s, r)), i > r && y(e = e.slice(r)), i > r && d(e))
}
c.push(n)
}
return h(c)
}
function b(e, n) {
var i = n.length > 0,
o = e.length > 0,
a = function(r, a, s, u, l) {
var c, f, d, p = 0,
h = "0",
m = r && [],
g = [],
y = C,
b = r || o && x.find.TAG("*", l),
E = F += null == y ? 1 : Math.random() || .1,
_ = b.length;
for (l && (C = a === L || a || l); h !== _ && null != (c = b[h]); h++) {
if (o && c) {
for (f = 0, a || c.ownerDocument === L || (O(c), s = !I); d = e[f++];)
if (d(c, a || L, s)) {
u.push(c);
break
}
l && (F = E)
}
i && ((c = !d && c) && p--, r && m.push(c))
}
if (p += h, i && h !== p) {
for (f = 0; d = n[f++];) d(m, g, a, s);
if (r) {
if (p > 0)
for (; h--;) m[h] || g[h] || (g[h] = K.call(u));
g = v(g)
}
J.apply(u, g), l && !r && g.length > 0 && p + n.length > 1 && t.uniqueSort(u)
}
return l && (F = E, C = y), m
};
return i ? r(a) : a
}
var E, _, x, w, T, k, S, A, C, N, D, O, L, j, I, P, H, M, R, B = "sizzle" + 1 * new Date,
q = e.document,
F = 0,
V = 0,
U = n(),
W = n(),
z = n(),
$ = function(e, t) {
return e === t && (D = !0), 0
},
X = 1 << 31,
G = {}.hasOwnProperty,
Y = [],
K = Y.pop,
Q = Y.push,
J = Y.push,
Z = Y.slice,
ee = function(e, t) {
for (var n = 0, r = e.length; r > n; n++)
if (e[n] === t) return n;
return -1
},
te = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
ne = "[\\x20\\t\\r\\n\\f]",
re = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
ie = "\\[" + ne + "*(" + re + ")(?:" + ne + "*([*^$|!~]?=)" + ne + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + re + "))|)" + ne + "*\\]",
oe = ":(" + re + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + ie + ")*)|.*)\\)|)",
ae = new RegExp(ne + "+", "g"),
se = new RegExp("^" + ne + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ne + "+$", "g"),
ue = new RegExp("^" + ne + "*," + ne + "*"),
le = new RegExp("^" + ne + "*([>+~]|" + ne + ")" + ne + "*"),
ce = new RegExp("=" + ne + "*([^\\]'\"]*?)" + ne + "*\\]", "g"),
fe = new RegExp(oe),
de = new RegExp("^" + re + "$"),
pe = {
ID: new RegExp("^#(" + re + ")"),
CLASS: new RegExp("^\\.(" + re + ")"),
TAG: new RegExp("^(" + re + "|[*])"),
ATTR: new RegExp("^" + ie),
PSEUDO: new RegExp("^" + oe),
CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ne + "*(even|odd|(([+-]|)(\\d*)n|)" + ne + "*(?:([+-]|)" + ne + "*(\\d+)|))" + ne + "*\\)|)", "i"),
bool: new RegExp("^(?:" + te + ")$", "i"),
needsContext: new RegExp("^" + ne + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ne + "*((?:-\\d)?\\d*)" + ne + "*\\)|)(?=[^-]|$)", "i")
},
he = /^(?:input|select|textarea|button)$/i,
me = /^h\d$/i,
ve = /^[^{]+\{\s*\[native \w/,
ge = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
ye = /[+~]/,
be = /'|\\/g,
Ee = new RegExp("\\\\([\\da-f]{1,6}" + ne + "?|(" + ne + ")|.)", "ig"),
_e = function(e, t, n) {
var r = "0x" + t - 65536;
return r !== r || n ? t : 0 > r ? String.fromCharCode(r + 65536) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320)
},
xe = function() {
O()
};
try {
J.apply(Y = Z.call(q.childNodes), q.childNodes), Y[q.childNodes.length].nodeType
} catch (we) {
J = {
apply: Y.length ? function(e, t) {
Q.apply(e, Z.call(t))
} : function(e, t) {
for (var n = e.length, r = 0; e[n++] = t[r++];);
e.length = n - 1
}
}
}
_ = t.support = {}, T = t.isXML = function(e) {
var t = e && (e.ownerDocument || e).documentElement;
return t ? "HTML" !== t.nodeName : !1
}, O = t.setDocument = function(e) {
var t, n, r = e ? e.ownerDocument || e : q;
return r !== L && 9 === r.nodeType && r.documentElement ? (L = r, j = L.documentElement, I = !T(L), (n = L.defaultView) && n.top !== n && (n.addEventListener ? n.addEventListener("unload", xe, !1) : n.attachEvent && n.attachEvent("onunload", xe)), _.attributes = i(function(e) {
return e.className = "i", !e.getAttribute("className")
}), _.getElementsByTagName = i(function(e) {
return e.appendChild(L.createComment("")), !e.getElementsByTagName("*").length
}), _.getElementsByClassName = ve.test(L.getElementsByClassName), _.getById = i(function(e) {
return j.appendChild(e).id = B, !L.getElementsByName || !L.getElementsByName(B).length
}), _.getById ? (x.find.ID = function(e, t) {
if ("undefined" != typeof t.getElementById && I) {
var n = t.getElementById(e);
return n ? [n] : []
}
}, x.filter.ID = function(e) {
var t = e.replace(Ee, _e);
return function(e) {
return e.getAttribute("id") === t
}
}) : (delete x.find.ID, x.filter.ID = function(e) {
var t = e.replace(Ee, _e);
return function(e) {
var n = "undefined" != typeof e.getAttributeNode && e.getAttributeNode("id");
return n && n.value === t
}
}), x.find.TAG = _.getElementsByTagName ? function(e, t) {
return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e) : _.qsa ? t.querySelectorAll(e) : void 0
} : function(e, t) {
var n, r = [],
i = 0,
o = t.getElementsByTagName(e);
if ("*" === e) {
for (; n = o[i++];) 1 === n.nodeType && r.push(n);
return r
}
return o
}, x.find.CLASS = _.getElementsByClassName && function(e, t) {
return "undefined" != typeof t.getElementsByClassName && I ? t.getElementsByClassName(e) : void 0
}, H = [], P = [], (_.qsa = ve.test(L.querySelectorAll)) && (i(function(e) {
j.appendChild(e).innerHTML = "<a id='" + B + "'></a><select id='" + B + "-\r\\' msallowcapture=''><option selected=''></option></select>", e.querySelectorAll("[msallowcapture^='']").length && P.push("[*^$]=" + ne + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || P.push("\\[" + ne + "*(?:value|" + te + ")"), e.querySelectorAll("[id~=" + B + "-]").length || P.push("~="), e.querySelectorAll(":checked").length || P.push(":checked"), e.querySelectorAll("a#" + B + "+*").length || P.push(".#.+[+~]")
}), i(function(e) {
var t = L.createElement("input");
t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && P.push("name" + ne + "*[*^$|!~]?="), e.querySelectorAll(":enabled").length || P.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), P.push(",.*:")
})), (_.matchesSelector = ve.test(M = j.matches || j.webkitMatchesSelector || j.mozMatchesSelector || j.oMatchesSelector || j.msMatchesSelector)) && i(function(e) {
_.disconnectedMatch = M.call(e, "div"), M.call(e, "[s!='']:x"), H.push("!=", oe)
}), P = P.length && new RegExp(P.join("|")), H = H.length && new RegExp(H.join("|")), t = ve.test(j.compareDocumentPosition), R = t || ve.test(j.contains) ? function(e, t) {
var n = 9 === e.nodeType ? e.documentElement : e,
r = t && t.parentNode;
return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)))
} : function(e, t) {
if (t)
for (; t = t.parentNode;)
if (t === e) return !0;
return !1
}, $ = t ? function(e, t) {
if (e === t) return D = !0, 0;
var n = !e.compareDocumentPosition - !t.compareDocumentPosition;
return n ? n : (n = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1, 1 & n || !_.sortDetached && t.compareDocumentPosition(e) === n ? e === L || e.ownerDocument === q && R(q, e) ? -1 : t === L || t.ownerDocument === q && R(q, t) ? 1 : N ? ee(N, e) - ee(N, t) : 0 : 4 & n ? -1 : 1)
} : function(e, t) {
if (e === t) return D = !0, 0;
var n, r = 0,
i = e.parentNode,
o = t.parentNode,
s = [e],
u = [t];
if (!i || !o) return e === L ? -1 : t === L ? 1 : i ? -1 : o ? 1 : N ? ee(N, e) - ee(N, t) : 0;
if (i === o) return a(e, t);
for (n = e; n = n.parentNode;) s.unshift(n);
for (n = t; n = n.parentNode;) u.unshift(n);
for (; s[r] === u[r];) r++;
return r ? a(s[r], u[r]) : s[r] === q ? -1 : u[r] === q ? 1 : 0
}, L) : L
}, t.matches = function(e, n) {
return t(e, null, null, n)
}, t.matchesSelector = function(e, n) {
if ((e.ownerDocument || e) !== L && O(e), n = n.replace(ce, "='$1']"), _.matchesSelector && I && !z[n + " "] && (!H || !H.test(n)) && (!P || !P.test(n))) try {
var r = M.call(e, n);
if (r || _.disconnectedMatch || e.document && 11 !== e.document.nodeType) return r
} catch (i) {}
return t(n, L, null, [e]).length > 0
}, t.contains = function(e, t) {
return (e.ownerDocument || e) !== L && O(e), R(e, t)
}, t.attr = function(e, t) {
(e.ownerDocument || e) !== L && O(e);
var n = x.attrHandle[t.toLowerCase()],
r = n && G.call(x.attrHandle, t.toLowerCase()) ? n(e, t, !I) : void 0;
return void 0 !== r ? r : _.attributes || !I ? e.getAttribute(t) : (r = e.getAttributeNode(t)) && r.specified ? r.value : null
}, t.error = function(e) {
throw new Error("Syntax error, unrecognized expression: " + e)
}, t.uniqueSort = function(e) {
var t, n = [],
r = 0,
i = 0;
if (D = !_.detectDuplicates, N = !_.sortStable && e.slice(0), e.sort($), D) {
for (; t = e[i++];) t === e[i] && (r = n.push(i));
for (; r--;) e.splice(n[r], 1)
}
return N = null, e
}, w = t.getText = function(e) {
var t, n = "",
r = 0,
i = e.nodeType;
if (i) {
if (1 === i || 9 === i || 11 === i) {
if ("string" == typeof e.textContent) return e.textContent;
for (e = e.firstChild; e; e = e.nextSibling) n += w(e)
} else if (3 === i || 4 === i) return e.nodeValue
} else
for (; t = e[r++];) n += w(t);
return n
}, x = t.selectors = {
cacheLength: 50,
createPseudo: r,
match: pe,
attrHandle: {},
find: {},
relative: {
">": {
dir: "parentNode",
first: !0
},
" ": {
dir: "parentNode"
},
"+": {
dir: "previousSibling",
first: !0
},
"~": {
dir: "previousSibling"
}
},
preFilter: {
ATTR: function(e) {
return e[1] = e[1].replace(Ee, _e), e[3] = (e[3] || e[4] || e[5] || "").replace(Ee, _e), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4)
},
CHILD: function(e) {
return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || t.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && t.error(e[0]), e
},
PSEUDO: function(e) {
var t, n = !e[6] && e[2];
return pe.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && fe.test(n) && (t = k(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3))
}
},
filter: {
TAG: function(e) {
var t = e.replace(Ee, _e).toLowerCase();
return "*" === e ? function() {
return !0
} : function(e) {
return e.nodeName && e.nodeName.toLowerCase() === t
}
},
CLASS: function(e) {
var t = U[e + " "];
return t || (t = new RegExp("(^|" + ne + ")" + e + "(" + ne + "|$)")) && U(e, function(e) {
return t.test("string" == typeof e.className && e.className || "undefined" != typeof e.getAttribute && e.getAttribute("class") || "")
})
},
ATTR: function(e, n, r) {
return function(i) {
var o = t.attr(i, e);
return null == o ? "!=" === n : n ? (o += "", "=" === n ? o === r : "!=" === n ? o !== r : "^=" === n ? r && 0 === o.indexOf(r) : "*=" === n ? r && o.indexOf(r) > -1 : "$=" === n ? r && o.slice(-r.length) === r : "~=" === n ? (" " + o.replace(ae, " ") + " ").indexOf(r) > -1 : "|=" === n ? o === r || o.slice(0, r.length + 1) === r + "-" : !1) : !0
}
},
CHILD: function(e, t, n, r, i) {
var o = "nth" !== e.slice(0, 3),
a = "last" !== e.slice(-4),
s = "of-type" === t;
return 1 === r && 0 === i ? function(e) {
return !!e.parentNode
} : function(t, n, u) {
var l, c, f, d, p, h, m = o !== a ? "nextSibling" : "previousSibling",
v = t.parentNode,
g = s && t.nodeName.toLowerCase(),
y = !u && !s,
b = !1;
if (v) {
if (o) {
for (; m;) {
for (d = t; d = d[m];)
if (s ? d.nodeName.toLowerCase() === g : 1 === d.nodeType) return !1;
h = m = "only" === e && !h && "nextSibling"
}
return !0
}
if (h = [a ? v.firstChild : v.lastChild], a && y) {
for (d = v, f = d[B] || (d[B] = {}), c = f[d.uniqueID] || (f[d.uniqueID] = {}), l = c[e] || [], p = l[0] === F && l[1], b = p && l[2], d = p && v.childNodes[p]; d = ++p && d && d[m] || (b = p = 0) || h.pop();)
if (1 === d.nodeType && ++b && d === t) {
c[e] = [F, p, b];
break
}
} else if (y && (d = t, f = d[B] || (d[B] = {}), c = f[d.uniqueID] || (f[d.uniqueID] = {}), l = c[e] || [], p = l[0] === F && l[1], b = p), b === !1)
for (;
(d = ++p && d && d[m] || (b = p = 0) || h.pop()) && ((s ? d.nodeName.toLowerCase() !== g : 1 !== d.nodeType) || !++b || (y && (f = d[B] || (d[B] = {}), c = f[d.uniqueID] || (f[d.uniqueID] = {}), c[e] = [F, b]), d !== t)););
return b -= i, b === r || b % r === 0 && b / r >= 0
}
}
},
PSEUDO: function(e, n) {
var i, o = x.pseudos[e] || x.setFilters[e.toLowerCase()] || t.error("unsupported pseudo: " + e);
return o[B] ? o(n) : o.length > 1 ? (i = [e, e, "", n], x.setFilters.hasOwnProperty(e.toLowerCase()) ? r(function(e, t) {
for (var r, i = o(e, n), a = i.length; a--;) r = ee(e, i[a]), e[r] = !(t[r] = i[a])
}) : function(e) {
return o(e, 0, i)
}) : o
}
},
pseudos: {
not: r(function(e) {
var t = [],
n = [],
i = S(e.replace(se, "$1"));
return i[B] ? r(function(e, t, n, r) {
for (var o, a = i(e, null, r, []), s = e.length; s--;)(o = a[s]) && (e[s] = !(t[s] = o))
}) : function(e, r, o) {
return t[0] = e, i(t, null, o, n), t[0] = null, !n.pop()
}
}),
has: r(function(e) {
return function(n) {
return t(e, n).length > 0
}
}),
contains: r(function(e) {
return e = e.replace(Ee, _e),
function(t) {
return (t.textContent || t.innerText || w(t)).indexOf(e) > -1
}
}),
lang: r(function(e) {
return de.test(e || "") || t.error("unsupported lang: " + e), e = e.replace(Ee, _e).toLowerCase(),
function(t) {
var n;
do
if (n = I ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) return n = n.toLowerCase(), n === e || 0 === n.indexOf(e + "-");
while ((t = t.parentNode) && 1 === t.nodeType);
return !1
}
}),
target: function(t) {
var n = e.location && e.location.hash;
return n && n.slice(1) === t.id
},
root: function(e) {
return e === j
},
focus: function(e) {
return e === L.activeElement && (!L.hasFocus || L.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
},
enabled: function(e) {
return e.disabled === !1
},
disabled: function(e) {
return e.disabled === !0
},
checked: function(e) {
var t = e.nodeName.toLowerCase();
return "input" === t && !!e.checked || "option" === t && !!e.selected
},
selected: function(e) {
return e.parentNode && e.parentNode.selectedIndex, e.selected === !0
},
empty: function(e) {
for (e = e.firstChild; e; e = e.nextSibling)
if (e.nodeType < 6) return !1;
return !0
},
parent: function(e) {
return !x.pseudos.empty(e)
},
header: function(e) {
return me.test(e.nodeName)
},
input: function(e) {
return he.test(e.nodeName)
},
button: function(e) {
var t = e.nodeName.toLowerCase();
return "input" === t && "button" === e.type || "button" === t
},
text: function(e) {
var t;
return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase())
},
first: l(function() {
return [0]
}),
last: l(function(e, t) {
return [t - 1]
}),
eq: l(function(e, t, n) {
return [0 > n ? n + t : n]
}),
even: l(function(e, t) {
for (var n = 0; t > n; n += 2) e.push(n);
return e
}),
odd: l(function(e, t) {
for (var n = 1; t > n; n += 2) e.push(n);
return e
}),
lt: l(function(e, t, n) {
for (var r = 0 > n ? n + t : n; --r >= 0;) e.push(r);
return e
}),
gt: l(function(e, t, n) {
for (var r = 0 > n ? n + t : n; ++r < t;) e.push(r);
return e
})
}
}, x.pseudos.nth = x.pseudos.eq;
for (E in {
radio: !0,
checkbox: !0,
file: !0,
password: !0,
image: !0
}) x.pseudos[E] = s(E);
for (E in {
submit: !0,
reset: !0
}) x.pseudos[E] = u(E);
return f.prototype = x.filters = x.pseudos, x.setFilters = new f, k = t.tokenize = function(e, n) {
var r, i, o, a, s, u, l, c = W[e + " "];
if (c) return n ? 0 : c.slice(0);
for (s = e, u = [], l = x.preFilter; s;) {
(!r || (i = ue.exec(s))) && (i && (s = s.slice(i[0].length) || s), u.push(o = [])), r = !1, (i = le.exec(s)) && (r = i.shift(), o.push({
value: r,
type: i[0].replace(se, " ")
}), s = s.slice(r.length));
for (a in x.filter) !(i = pe[a].exec(s)) || l[a] && !(i = l[a](i)) || (r = i.shift(), o.push({
value: r,
type: a,
matches: i
}), s = s.slice(r.length));
if (!r) break
}
return n ? s.length : s ? t.error(e) : W(e, u).slice(0)
}, S = t.compile = function(e, t) {
var n, r = [],
i = [],
o = z[e + " "];
if (!o) {
for (t || (t = k(e)), n = t.length; n--;) o = y(t[n]), o[B] ? r.push(o) : i.push(o);
o = z(e, b(i, r)), o.selector = e
}
return o
}, A = t.select = function(e, t, n, r) {
var i, o, a, s, u, l = "function" == typeof e && e,
f = !r && k(e = l.selector || e);
if (n = n || [], 1 === f.length) {
if (o = f[0] = f[0].slice(0), o.length > 2 && "ID" === (a = o[0]).type && _.getById && 9 === t.nodeType && I && x.relative[o[1].type]) {
if (t = (x.find.ID(a.matches[0].replace(Ee, _e), t) || [])[0], !t) return n;
l && (t = t.parentNode), e = e.slice(o.shift().value.length)
}
for (i = pe.needsContext.test(e) ? 0 : o.length; i-- && (a = o[i], !x.relative[s = a.type]);)
if ((u = x.find[s]) && (r = u(a.matches[0].replace(Ee, _e), ye.test(o[0].type) && c(t.parentNode) || t))) {
if (o.splice(i, 1), e = r.length && d(o), !e) return J.apply(n, r), n;
break
}
}
return (l || S(e, f))(r, t, !I, n, !t || ye.test(e) && c(t.parentNode) || t), n
}, _.sortStable = B.split("").sort($).join("") === B, _.detectDuplicates = !!D, O(), _.sortDetached = i(function(e) {
return 1 & e.compareDocumentPosition(L.createElement("div"))
}), i(function(e) {
return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href")
}) || o("type|href|height|width", function(e, t, n) {
return n ? void 0 : e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2)
}), _.attributes && i(function(e) {
return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value")
}) || o("value", function(e, t, n) {
return n || "input" !== e.nodeName.toLowerCase() ? void 0 : e.defaultValue
}), i(function(e) {
return null == e.getAttribute("disabled")
}) || o(te, function(e, t, n) {
var r;
return n ? void 0 : e[t] === !0 ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null
}), t
}(n);
ge.find = xe, ge.expr = xe.selectors, ge.expr[":"] = ge.expr.pseudos, ge.uniqueSort = ge.unique = xe.uniqueSort, ge.text = xe.getText, ge.isXMLDoc = xe.isXML, ge.contains = xe.contains;
var we = function(e, t, n) {
for (var r = [], i = void 0 !== n;
(e = e[t]) && 9 !== e.nodeType;)
if (1 === e.nodeType) {
if (i && ge(e).is(n)) break;
r.push(e)
}
return r
},
Te = function(e, t) {
for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e);
return n
},
ke = ge.expr.match.needsContext,
Se = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,
Ae = /^.[^:#\[\.,]*$/;
ge.filter = function(e, t, n) {
var r = t[0];
return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? ge.find.matchesSelector(r, e) ? [r] : [] : ge.find.matches(e, ge.grep(t, function(e) {
return 1 === e.nodeType
}))
}, ge.fn.extend({
find: function(e) {
var t, n = [],
r = this,
i = r.length;
if ("string" != typeof e) return this.pushStack(ge(e).filter(function() {
for (t = 0; i > t; t++)
if (ge.contains(r[t], this)) return !0
}));
for (t = 0; i > t; t++) ge.find(e, r[t], n);
return n = this.pushStack(i > 1 ? ge.unique(n) : n), n.selector = this.selector ? this.selector + " " + e : e, n
},
filter: function(e) {
return this.pushStack(s(this, e || [], !1))
},
not: function(e) {
return this.pushStack(s(this, e || [], !0))
},
is: function(e) {
return !!s(this, "string" == typeof e && ke.test(e) ? ge(e) : e || [], !1).length
}
});
var Ce, Ne = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
De = ge.fn.init = function(e, t, n) {
var r, i;
if (!e) return this;
if (n = n || Ce, "string" == typeof e) {
if (r = "<" === e.charAt(0) && ">" === e.charAt(e.length - 1) && e.length >= 3 ? [null, e, null] : Ne.exec(e), !r || !r[1] && t) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e);
if (r[1]) {
if (t = t instanceof ge ? t[0] : t, ge.merge(this, ge.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : se, !0)), Se.test(r[1]) && ge.isPlainObject(t))
for (r in t) ge.isFunction(this[r]) ? this[r](t[r]) : this.attr(r, t[r]);
return this
}
if (i = se.getElementById(r[2]), i && i.parentNode) {
if (i.id !== r[2]) return Ce.find(e);
this.length = 1, this[0] = i
}
return this.context = se, this.selector = e, this
}
return e.nodeType ? (this.context = this[0] = e, this.length = 1, this) : ge.isFunction(e) ? "undefined" != typeof n.ready ? n.ready(e) : e(ge) : (void 0 !== e.selector && (this.selector = e.selector, this.context = e.context), ge.makeArray(e, this))
};
De.prototype = ge.fn, Ce = ge(se);
var Oe = /^(?:parents|prev(?:Until|All))/,
Le = {
children: !0,
contents: !0,
next: !0,
prev: !0
};
ge.fn.extend({
has: function(e) {
var t, n = ge(e, this),
r = n.length;
return this.filter(function() {
for (t = 0; r > t; t++)
if (ge.contains(this, n[t])) return !0
})
},
closest: function(e, t) {
for (var n, r = 0, i = this.length, o = [], a = ke.test(e) || "string" != typeof e ? ge(e, t || this.context) : 0; i > r; r++)
for (n = this[r]; n && n !== t; n = n.parentNode)
if (n.nodeType < 11 && (a ? a.index(n) > -1 : 1 === n.nodeType && ge.find.matchesSelector(n, e))) {
o.push(n);
break
}
return this.pushStack(o.length > 1 ? ge.uniqueSort(o) : o)
},
index: function(e) {
return e ? "string" == typeof e ? ge.inArray(this[0], ge(e)) : ge.inArray(e.jquery ? e[0] : e, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
},
add: function(e, t) {
return this.pushStack(ge.uniqueSort(ge.merge(this.get(), ge(e, t))))
},
addBack: function(e) {
return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
}
}), ge.each({
parent: function(e) {
var t = e.parentNode;
return t && 11 !== t.nodeType ? t : null
},
parents: function(e) {
return we(e, "parentNode")
},
parentsUntil: function(e, t, n) {
return we(e, "parentNode", n)
},
next: function(e) {
return u(e, "nextSibling")
},
prev: function(e) {
return u(e, "previousSibling")
},
nextAll: function(e) {
return we(e, "nextSibling")
},
prevAll: function(e) {
return we(e, "previousSibling")
},
nextUntil: function(e, t, n) {
return we(e, "nextSibling", n)
},
prevUntil: function(e, t, n) {
return we(e, "previousSibling", n)
},
siblings: function(e) {
return Te((e.parentNode || {}).firstChild, e)
},
children: function(e) {
return Te(e.firstChild)
},
contents: function(e) {
return ge.nodeName(e, "iframe") ? e.contentDocument || e.contentWindow.document : ge.merge([], e.childNodes)
}
}, function(e, t) {
ge.fn[e] = function(n, r) {
var i = ge.map(this, t, n);
return "Until" !== e.slice(-5) && (r = n), r && "string" == typeof r && (i = ge.filter(r, i)), this.length > 1 && (Le[e] || (i = ge.uniqueSort(i)), Oe.test(e) && (i = i.reverse())), this.pushStack(i)
}
});
var je = /\S+/g;
ge.Callbacks = function(e) {
e = "string" == typeof e ? l(e) : ge.extend({}, e);
var t, n, r, i, o = [],
a = [],
s = -1,
u = function() {
for (i = e.once, r = t = !0; a.length; s = -1)
for (n = a.shift(); ++s < o.length;) o[s].apply(n[0], n[1]) === !1 && e.stopOnFalse && (s = o.length, n = !1);
e.memory || (n = !1), t = !1, i && (o = n ? [] : "")
},
c = {
add: function() {
return o && (n && !t && (s = o.length - 1, a.push(n)), function r(t) {
ge.each(t, function(t, n) {
ge.isFunction(n) ? e.unique && c.has(n) || o.push(n) : n && n.length && "string" !== ge.type(n) && r(n)
})
}(arguments), n && !t && u()), this
},
remove: function() {
return ge.each(arguments, function(e, t) {
for (var n;
(n = ge.inArray(t, o, n)) > -1;) o.splice(n, 1), s >= n && s--
}), this
},
has: function(e) {
return e ? ge.inArray(e, o) > -1 : o.length > 0
},
empty: function() {
return o && (o = []), this
},
disable: function() {
return i = a = [], o = n = "", this
},
disabled: function() {
return !o
},
lock: function() {
return i = !0, n || c.disable(), this
},
locked: function() {
return !!i
},
fireWith: function(e, n) {
return i || (n = n || [], n = [e, n.slice ? n.slice() : n], a.push(n), t || u()), this
},
fire: function() {
return c.fireWith(this, arguments), this
},
fired: function() {
return !!r
}
};
return c
}, ge.extend({
Deferred: function(e) {
var t = [
["resolve", "done", ge.Callbacks("once memory"), "resolved"],
["reject", "fail", ge.Callbacks("once memory"), "rejected"],
["notify", "progress", ge.Callbacks("memory")]
],
n = "pending",
r = {
state: function() {
return n
},
always: function() {
return i.done(arguments).fail(arguments), this
},
then: function() {
var e = arguments;
return ge.Deferred(function(n) {
ge.each(t, function(t, o) {
var a = ge.isFunction(e[t]) && e[t];
i[o[1]](function() {
var e = a && a.apply(this, arguments);
e && ge.isFunction(e.promise) ? e.promise().progress(n.notify).done(n.resolve).fail(n.reject) : n[o[0] + "With"](this === r ? n.promise() : this, a ? [e] : arguments)
})
}), e = null
}).promise()
},
promise: function(e) {
return null != e ? ge.extend(e, r) : r
}
},
i = {};
return r.pipe = r.then, ge.each(t, function(e, o) {
var a = o[2],
s = o[3];
r[o[1]] = a.add, s && a.add(function() {
n = s
}, t[1 ^ e][2].disable, t[2][2].lock), i[o[0]] = function() {
return i[o[0] + "With"](this === i ? r : this, arguments), this
}, i[o[0] + "With"] = a.fireWith
}), r.promise(i), e && e.call(i, i), i
},
when: function(e) {
var t, n, r, i = 0,
o = ue.call(arguments),
a = o.length,
s = 1 !== a || e && ge.isFunction(e.promise) ? a : 0,
u = 1 === s ? e : ge.Deferred(),
l = function(e, n, r) {
return function(i) {
n[e] = this, r[e] = arguments.length > 1 ? ue.call(arguments) : i, r === t ? u.notifyWith(n, r) : --s || u.resolveWith(n, r)
}
};
if (a > 1)
for (t = new Array(a), n = new Array(a), r = new Array(a); a > i; i++) o[i] && ge.isFunction(o[i].promise) ? o[i].promise().progress(l(i, n, t)).done(l(i, r, o)).fail(u.reject) : --s;
return s || u.resolveWith(r, o), u.promise()
}
});
var Ie;
ge.fn.ready = function(e) {
return ge.ready.promise().done(e), this
}, ge.extend({
isReady: !1,
readyWait: 1,
holdReady: function(e) {
e ? ge.readyWait++ : ge.ready(!0)
},
ready: function(e) {
(e === !0 ? --ge.readyWait : ge.isReady) || (ge.isReady = !0, e !== !0 && --ge.readyWait > 0 || (Ie.resolveWith(se, [ge]), ge.fn.triggerHandler && (ge(se).triggerHandler("ready"), ge(se).off("ready"))))
}
}), ge.ready.promise = function(e) {
if (!Ie)
if (Ie = ge.Deferred(), "complete" === se.readyState) n.setTimeout(ge.ready);
else if (se.addEventListener) se.addEventListener("DOMContentLoaded", f), n.addEventListener("load", f);
else {
se.attachEvent("onreadystatechange", f), n.attachEvent("onload", f);
var t = !1;
try {
t = null == n.frameElement && se.documentElement
} catch (r) {}
t && t.doScroll && ! function i() {
if (!ge.isReady) {
try {
t.doScroll("left")
} catch (e) {
return n.setTimeout(i, 50)
}
c(), ge.ready()
}
}()
}
return Ie.promise(e)
}, ge.ready.promise();
var Pe;
for (Pe in ge(me)) break;
me.ownFirst = "0" === Pe, me.inlineBlockNeedsLayout = !1, ge(function() {
var e, t, n, r;
n = se.getElementsByTagName("body")[0], n && n.style && (t = se.createElement("div"), r = se.createElement("div"), r.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", n.appendChild(r).appendChild(t), "undefined" != typeof t.style.zoom && (t.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1", me.inlineBlockNeedsLayout = e = 3 === t.offsetWidth, e && (n.style.zoom = 1)), n.removeChild(r))
}),
function() {
var e = se.createElement("div");
me.deleteExpando = !0;
try {
delete e.test
} catch (t) {
me.deleteExpando = !1
}
e = null
}();
var He = function(e) {
var t = ge.noData[(e.nodeName + " ").toLowerCase()],
n = +e.nodeType || 1;
return 1 !== n && 9 !== n ? !1 : !t || t !== !0 && e.getAttribute("classid") === t
},
Me = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
Re = /([A-Z])/g;
ge.extend({
cache: {},
noData: {
"applet ": !0,
"embed ": !0,
"object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
},
hasData: function(e) {
return e = e.nodeType ? ge.cache[e[ge.expando]] : e[ge.expando], !!e && !p(e)
},
data: function(e, t, n) {
return h(e, t, n)
},
removeData: function(e, t) {
return m(e, t)
},
_data: function(e, t, n) {
return h(e, t, n, !0)
},
_removeData: function(e, t) {
return m(e, t, !0)
}
}), ge.fn.extend({
data: function(e, t) {
var n, r, i, o = this[0],
a = o && o.attributes;
if (void 0 === e) {
if (this.length && (i = ge.data(o), 1 === o.nodeType && !ge._data(o, "parsedAttrs"))) {
for (n = a.length; n--;) a[n] && (r = a[n].name, 0 === r.indexOf("data-") && (r = ge.camelCase(r.slice(5)), d(o, r, i[r])));
ge._data(o, "parsedAttrs", !0)
}
return i
}
return "object" == typeof e ? this.each(function() {
ge.data(this, e)
}) : arguments.length > 1 ? this.each(function() {
ge.data(this, e, t)
}) : o ? d(o, e, ge.data(o, e)) : void 0
},
removeData: function(e) {
return this.each(function() {
ge.removeData(this, e)
})
}
}), ge.extend({
queue: function(e, t, n) {
var r;
return e ? (t = (t || "fx") + "queue", r = ge._data(e, t), n && (!r || ge.isArray(n) ? r = ge._data(e, t, ge.makeArray(n)) : r.push(n)), r || []) : void 0
},
dequeue: function(e, t) {
t = t || "fx";
var n = ge.queue(e, t),
r = n.length,
i = n.shift(),
o = ge._queueHooks(e, t),
a = function() {
ge.dequeue(e, t)
};
"inprogress" === i && (i = n.shift(), r--), i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call(e, a, o)), !r && o && o.empty.fire()
},
_queueHooks: function(e, t) {
var n = t + "queueHooks";
return ge._data(e, n) || ge._data(e, n, {
empty: ge.Callbacks("once memory").add(function() {
ge._removeData(e, t + "queue"), ge._removeData(e, n)
})
})
}
}), ge.fn.extend({
queue: function(e, t) {
var n = 2;
return "string" != typeof e && (t = e, e = "fx", n--), arguments.length < n ? ge.queue(this[0], e) : void 0 === t ? this : this.each(function() {
var n = ge.queue(this, e, t);
ge._queueHooks(this, e), "fx" === e && "inprogress" !== n[0] && ge.dequeue(this, e)
})
},
dequeue: function(e) {
return this.each(function() {
ge.dequeue(this, e)
})
},
clearQueue: function(e) {
return this.queue(e || "fx", [])
},
promise: function(e, t) {
var n, r = 1,
i = ge.Deferred(),
o = this,
a = this.length,
s = function() {
--r || i.resolveWith(o, [o])
};
for ("string" != typeof e && (t = e, e = void 0), e = e || "fx"; a--;) n = ge._data(o[a], e + "queueHooks"), n && n.empty && (r++, n.empty.add(s));
return s(), i.promise(t)
}
}),
function() {
var e;
me.shrinkWrapBlocks = function() {
if (null != e) return e;
e = !1;
var t, n, r;
return n = se.getElementsByTagName("body")[0], n && n.style ? (t = se.createElement("div"), r = se.createElement("div"), r.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", n.appendChild(r).appendChild(t), "undefined" != typeof t.style.zoom && (t.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1", t.appendChild(se.createElement("div")).style.width = "5px", e = 3 !== t.offsetWidth), n.removeChild(r), e) : void 0
}
}();
var Be = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
qe = new RegExp("^(?:([+-])=|)(" + Be + ")([a-z%]*)$", "i"),
Fe = ["Top", "Right", "Bottom", "Left"],
Ve = function(e, t) {
return e = t || e, "none" === ge.css(e, "display") || !ge.contains(e.ownerDocument, e)
},
Ue = function(e, t, n, r, i, o, a) {
var s = 0,
u = e.length,
l = null == n;
if ("object" === ge.type(n)) {
i = !0;
for (s in n) Ue(e, t, s, n[s], !0, o, a)
} else if (void 0 !== r && (i = !0, ge.isFunction(r) || (a = !0), l && (a ? (t.call(e, r), t = null) : (l = t, t = function(e, t, n) {
return l.call(ge(e), n)
})), t))
for (; u > s; s++) t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n)));
return i ? e : l ? t.call(e) : u ? t(e[0], n) : o
},
We = /^(?:checkbox|radio)$/i,
ze = /<([\w:-]+)/,
$e = /^$|\/(?:java|ecma)script/i,
Xe = /^\s+/,
Ge = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";
! function() {
var e = se.createElement("div"),
t = se.createDocumentFragment(),
n = se.createElement("input");
e.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", me.leadingWhitespace = 3 === e.firstChild.nodeType, me.tbody = !e.getElementsByTagName("tbody").length, me.htmlSerialize = !!e.getElementsByTagName("link").length, me.html5Clone = "<:nav></:nav>" !== se.createElement("nav").cloneNode(!0).outerHTML, n.type = "checkbox", n.checked = !0, t.appendChild(n), me.appendChecked = n.checked, e.innerHTML = "<textarea>x</textarea>", me.noCloneChecked = !!e.cloneNode(!0).lastChild.defaultValue, t.appendChild(e), n = se.createElement("input"), n.setAttribute("type", "radio"), n.setAttribute("checked", "checked"), n.setAttribute("name", "t"), e.appendChild(n), me.checkClone = e.cloneNode(!0).cloneNode(!0).lastChild.checked, me.noCloneEvent = !!e.addEventListener, e[ge.expando] = 1, me.attributes = !e.getAttribute(ge.expando)
}();
var Ye = {
option: [1, "<select multiple='multiple'>", "</select>"],
legend: [1, "<fieldset>", "</fieldset>"],
area: [1, "<map>", "</map>"],
param: [1, "<object>", "</object>"],
thead: [1, "<table>", "</table>"],
tr: [2, "<table><tbody>", "</tbody></table>"],
col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
_default: me.htmlSerialize ? [0, "", ""] : [1, "X<div>", "</div>"]
};
Ye.optgroup = Ye.option, Ye.tbody = Ye.tfoot = Ye.colgroup = Ye.caption = Ye.thead, Ye.th = Ye.td;
var Ke = /<|&#?\w+;/,
Qe = /<tbody/i;
! function() {
var e, t, r = se.createElement("div");
for (e in {
submit: !0,
change: !0,
focusin: !0
}) t = "on" + e, (me[e] = t in n) || (r.setAttribute(t, "t"), me[e] = r.attributes[t].expando === !1);
r = null
}();
var Je = /^(?:input|select|textarea)$/i,
Ze = /^key/,
et = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
tt = /^(?:focusinfocus|focusoutblur)$/,
nt = /^([^.]*)(?:\.(.+)|)/;
ge.event = {
global: {},
add: function(e, t, n, r, i) {
var o, a, s, u, l, c, f, d, p, h, m, v = ge._data(e);
if (v) {
for (n.handler && (u = n, n = u.handler, i = u.selector), n.guid || (n.guid = ge.guid++), (a = v.events) || (a = v.events = {}), (c = v.handle) || (c = v.handle = function(e) {
return "undefined" == typeof ge || e && ge.event.triggered === e.type ? void 0 : ge.event.dispatch.apply(c.elem, arguments)
}, c.elem = e), t = (t || "").match(je) || [""], s = t.length; s--;) o = nt.exec(t[s]) || [], p = m = o[1], h = (o[2] || "").split(".").sort(), p && (l = ge.event.special[p] || {}, p = (i ? l.delegateType : l.bindType) || p, l = ge.event.special[p] || {}, f = ge.extend({
type: p,
origType: m,
data: r,
handler: n,
guid: n.guid,
selector: i,
needsContext: i && ge.expr.match.needsContext.test(i),
namespace: h.join(".")
}, u), (d = a[p]) || (d = a[p] = [], d.delegateCount = 0, l.setup && l.setup.call(e, r, h, c) !== !1 || (e.addEventListener ? e.addEventListener(p, c, !1) : e.attachEvent && e.attachEvent("on" + p, c))), l.add && (l.add.call(e, f), f.handler.guid || (f.handler.guid = n.guid)), i ? d.splice(d.delegateCount++, 0, f) : d.push(f), ge.event.global[p] = !0);
e = null
}
},
remove: function(e, t, n, r, i) {
var o, a, s, u, l, c, f, d, p, h, m, v = ge.hasData(e) && ge._data(e);
if (v && (c = v.events)) {
for (t = (t || "").match(je) || [""], l = t.length; l--;)
if (s = nt.exec(t[l]) || [], p = m = s[1], h = (s[2] || "").split(".").sort(), p) {
for (f = ge.event.special[p] || {}, p = (r ? f.delegateType : f.bindType) || p, d = c[p] || [], s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), u = o = d.length; o--;) a = d[o], !i && m !== a.origType || n && n.guid !== a.guid || s && !s.test(a.namespace) || r && r !== a.selector && ("**" !== r || !a.selector) || (d.splice(o, 1), a.selector && d.delegateCount--, f.remove && f.remove.call(e, a));
u && !d.length && (f.teardown && f.teardown.call(e, h, v.handle) !== !1 || ge.removeEvent(e, p, v.handle), delete c[p])
} else
for (p in c) ge.event.remove(e, p + t[l], n, r, !0);
ge.isEmptyObject(c) && (delete v.handle, ge._removeData(e, "events"))
}
},
trigger: function(e, t, r, i) {
var o, a, s, u, l, c, f, d = [r || se],
p = he.call(e, "type") ? e.type : e,
h = he.call(e, "namespace") ? e.namespace.split(".") : [];
if (s = c = r = r || se, 3 !== r.nodeType && 8 !== r.nodeType && !tt.test(p + ge.event.triggered) && (p.indexOf(".") > -1 && (h = p.split("."), p = h.shift(), h.sort()), a = p.indexOf(":") < 0 && "on" + p, e = e[ge.expando] ? e : new ge.Event(p, "object" == typeof e && e), e.isTrigger = i ? 2 : 3, e.namespace = h.join("."), e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, e.result = void 0, e.target || (e.target = r), t = null == t ? [e] : ge.makeArray(t, [e]), l = ge.event.special[p] || {}, i || !l.trigger || l.trigger.apply(r, t) !== !1)) {
if (!i && !l.noBubble && !ge.isWindow(r)) {
for (u = l.delegateType || p, tt.test(u + p) || (s = s.parentNode); s; s = s.parentNode) d.push(s), c = s;
c === (r.ownerDocument || se) && d.push(c.defaultView || c.parentWindow || n)
}
for (f = 0;
(s = d[f++]) && !e.isPropagationStopped();) e.type = f > 1 ? u : l.bindType || p, o = (ge._data(s, "events") || {})[e.type] && ge._data(s, "handle"), o && o.apply(s, t), o = a && s[a], o && o.apply && He(s) && (e.result = o.apply(s, t), e.result === !1 && e.preventDefault());
if (e.type = p, !i && !e.isDefaultPrevented() && (!l._default || l._default.apply(d.pop(), t) === !1) && He(r) && a && r[p] && !ge.isWindow(r)) {
c = r[a], c && (r[a] = null), ge.event.triggered = p;
try {
r[p]()
} catch (m) {}
ge.event.triggered = void 0, c && (r[a] = c)
}
return e.result
}
},
dispatch: function(e) {
e = ge.event.fix(e);
var t, n, r, i, o, a = [],
s = ue.call(arguments),
u = (ge._data(this, "events") || {})[e.type] || [],
l = ge.event.special[e.type] || {};
if (s[0] = e, e.delegateTarget = this, !l.preDispatch || l.preDispatch.call(this, e) !== !1) {
for (a = ge.event.handlers.call(this, e, u), t = 0;
(i = a[t++]) && !e.isPropagationStopped();)
for (e.currentTarget = i.elem, n = 0;
(o = i.handlers[n++]) && !e.isImmediatePropagationStopped();)(!e.rnamespace || e.rnamespace.test(o.namespace)) && (e.handleObj = o, e.data = o.data, r = ((ge.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, s), void 0 !== r && (e.result = r) === !1 && (e.preventDefault(), e.stopPropagation()));
return l.postDispatch && l.postDispatch.call(this, e), e.result
}
},
handlers: function(e, t) {
var n, r, i, o, a = [],
s = t.delegateCount,
u = e.target;
if (s && u.nodeType && ("click" !== e.type || isNaN(e.button) || e.button < 1))
for (; u != this; u = u.parentNode || this)
if (1 === u.nodeType && (u.disabled !== !0 || "click" !== e.type)) {
for (r = [], n = 0; s > n; n++) o = t[n], i = o.selector + " ", void 0 === r[i] && (r[i] = o.needsContext ? ge(i, this).index(u) > -1 : ge.find(i, this, null, [u]).length), r[i] && r.push(o);
r.length && a.push({
elem: u,
handlers: r
})
}
return s < t.length && a.push({
elem: this,
handlers: t.slice(s)
}), a
},
fix: function(e) {
if (e[ge.expando]) return e;
var t, n, r, i = e.type,
o = e,
a = this.fixHooks[i];
for (a || (this.fixHooks[i] = a = et.test(i) ? this.mouseHooks : Ze.test(i) ? this.keyHooks : {}), r = a.props ? this.props.concat(a.props) : this.props, e = new ge.Event(o), t = r.length; t--;) n = r[t], e[n] = o[n];
return e.target || (e.target = o.srcElement || se), 3 === e.target.nodeType && (e.target = e.target.parentNode), e.metaKey = !!e.metaKey, a.filter ? a.filter(e, o) : e
},
props: "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
fixHooks: {},
keyHooks: {
props: "char charCode key keyCode".split(" "),
filter: function(e, t) {
return null == e.which && (e.which = null != t.charCode ? t.charCode : t.keyCode), e
}
},
mouseHooks: {
props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
filter: function(e, t) {
var n, r, i, o = t.button,
a = t.fromElement;
return null == e.pageX && null != t.clientX && (r = e.target.ownerDocument || se, i = r.documentElement, n = r.body, e.pageX = t.clientX + (i && i.scrollLeft || n && n.scrollLeft || 0) - (i && i.clientLeft || n && n.clientLeft || 0), e.pageY = t.clientY + (i && i.scrollTop || n && n.scrollTop || 0) - (i && i.clientTop || n && n.clientTop || 0)), !e.relatedTarget && a && (e.relatedTarget = a === e.target ? t.toElement : a), e.which || void 0 === o || (e.which = 1 & o ? 1 : 2 & o ? 3 : 4 & o ? 2 : 0), e
}
},
special: {
load: {
noBubble: !0
},
focus: {
trigger: function() {
if (this !== T() && this.focus) try {
return this.focus(), !1
} catch (e) {}
},
delegateType: "focusin"
},
blur: {
trigger: function() {
return this === T() && this.blur ? (this.blur(), !1) : void 0
},
delegateType: "focusout"
},
click: {
trigger: function() {
return ge.nodeName(this, "input") && "checkbox" === this.type && this.click ? (this.click(), !1) : void 0
},
_default: function(e) {
return ge.nodeName(e.target, "a")
}
},
beforeunload: {
postDispatch: function(e) {
void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result)
}
}
},
simulate: function(e, t, n) {
var r = ge.extend(new ge.Event, n, {
type: e,
isSimulated: !0
});
ge.event.trigger(r, null, t), r.isDefaultPrevented() && n.preventDefault()
}
}, ge.removeEvent = se.removeEventListener ? function(e, t, n) {
e.removeEventListener && e.removeEventListener(t, n)
} : function(e, t, n) {
var r = "on" + t;
e.detachEvent && ("undefined" == typeof e[r] && (e[r] = null), e.detachEvent(r, n))
}, ge.Event = function(e, t) {
return this instanceof ge.Event ? (e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && e.returnValue === !1 ? x : w) : this.type = e, t && ge.extend(this, t), this.timeStamp = e && e.timeStamp || ge.now(), void(this[ge.expando] = !0)) : new ge.Event(e, t)
}, ge.Event.prototype = {
constructor: ge.Event,
isDefaultPrevented: w,
isPropagationStopped: w,
isImmediatePropagationStopped: w,
preventDefault: function() {
var e = this.originalEvent;
this.isDefaultPrevented = x, e && (e.preventDefault ? e.preventDefault() : e.returnValue = !1)
},
stopPropagation: function() {
var e = this.originalEvent;
this.isPropagationStopped = x, e && !this.isSimulated && (e.stopPropagation && e.stopPropagation(), e.cancelBubble = !0)
},
stopImmediatePropagation: function() {
var e = this.originalEvent;
this.isImmediatePropagationStopped = x, e && e.stopImmediatePropagation && e.stopImmediatePropagation(), this.stopPropagation()
}
}, ge.each({
mouseenter: "mouseover",
mouseleave: "mouseout",
pointerenter: "pointerover",
pointerleave: "pointerout"
}, function(e, t) {
ge.event.special[e] = {
delegateType: t,
bindType: t,
handle: function(e) {
var n, r = this,
i = e.relatedTarget,
o = e.handleObj;
return (!i || i !== r && !ge.contains(r, i)) && (e.type = o.origType, n = o.handler.apply(this, arguments), e.type = t), n
}
}
}), me.submit || (ge.event.special.submit = {
setup: function() {
return ge.nodeName(this, "form") ? !1 : void ge.event.add(this, "click._submit keypress._submit", function(e) {
var t = e.target,
n = ge.nodeName(t, "input") || ge.nodeName(t, "button") ? ge.prop(t, "form") : void 0;
n && !ge._data(n, "submit") && (ge.event.add(n, "submit._submit", function(e) {
e._submitBubble = !0
}), ge._data(n, "submit", !0))
})
},
postDispatch: function(e) {
e._submitBubble && (delete e._submitBubble, this.parentNode && !e.isTrigger && ge.event.simulate("submit", this.parentNode, e))
},
teardown: function() {
return ge.nodeName(this, "form") ? !1 : void ge.event.remove(this, "._submit")
}
}), me.change || (ge.event.special.change = {
setup: function() {
return Je.test(this.nodeName) ? (("checkbox" === this.type || "radio" === this.type) && (ge.event.add(this, "propertychange._change", function(e) {
"checked" === e.originalEvent.propertyName && (this._justChanged = !0)
}), ge.event.add(this, "click._change", function(e) {
this._justChanged && !e.isTrigger && (this._justChanged = !1), ge.event.simulate("change", this, e)
})), !1) : void ge.event.add(this, "beforeactivate._change", function(e) {
var t = e.target;
Je.test(t.nodeName) && !ge._data(t, "change") && (ge.event.add(t, "change._change", function(e) {
!this.parentNode || e.isSimulated || e.isTrigger || ge.event.simulate("change", this.parentNode, e)
}), ge._data(t, "change", !0))
})
},
handle: function(e) {
var t = e.target;
return this !== t || e.isSimulated || e.isTrigger || "radio" !== t.type && "checkbox" !== t.type ? e.handleObj.handler.apply(this, arguments) : void 0
},
teardown: function() {
return ge.event.remove(this, "._change"), !Je.test(this.nodeName)
}
}), me.focusin || ge.each({
focus: "focusin",
blur: "focusout"
}, function(e, t) {
var n = function(e) {
ge.event.simulate(t, e.target, ge.event.fix(e))
};
ge.event.special[t] = {
setup: function() {
var r = this.ownerDocument || this,
i = ge._data(r, t);
i || r.addEventListener(e, n, !0), ge._data(r, t, (i || 0) + 1)
},
teardown: function() {
var r = this.ownerDocument || this,
i = ge._data(r, t) - 1;
i ? ge._data(r, t, i) : (r.removeEventListener(e, n, !0), ge._removeData(r, t))
}
}
}), ge.fn.extend({
on: function(e, t, n, r) {
return k(this, e, t, n, r)
},
one: function(e, t, n, r) {
return k(this, e, t, n, r, 1)
},
off: function(e, t, n) {
var r, i;
if (e && e.preventDefault && e.handleObj) return r = e.handleObj, ge(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this;
if ("object" == typeof e) {
for (i in e) this.off(i, t, e[i]);
return this
}
return (t === !1 || "function" == typeof t) && (n = t, t = void 0), n === !1 && (n = w), this.each(function() {
ge.event.remove(this, e, n, t)
})
},
trigger: function(e, t) {
return this.each(function() {
ge.event.trigger(e, t, this)
})
},
triggerHandler: function(e, t) {
var n = this[0];
return n ? ge.event.trigger(e, t, n, !0) : void 0
}
});
var rt = / jQuery\d+="(?:null|\d+)"/g,
it = new RegExp("<(?:" + Ge + ")[\\s/>]", "i"),
ot = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
at = /<script|<style|<link/i,
st = /checked\s*(?:[^=]|=\s*.checked.)/i,
ut = /^true\/(.*)/,
lt = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
ct = g(se),
ft = ct.appendChild(se.createElement("div"));
ge.extend({
htmlPrefilter: function(e) {
return e.replace(ot, "<$1></$2>")
},
clone: function(e, t, n) {
var r, i, o, a, s, u = ge.contains(e.ownerDocument, e);
if (me.html5Clone || ge.isXMLDoc(e) || !it.test("<" + e.nodeName + ">") ? o = e.cloneNode(!0) : (ft.innerHTML = e.outerHTML, ft.removeChild(o = ft.firstChild)), !(me.noCloneEvent && me.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || ge.isXMLDoc(e)))
for (r = y(o), s = y(e), a = 0; null != (i = s[a]); ++a) r[a] && D(i, r[a]);
if (t)
if (n)
for (s = s || y(e), r = r || y(o), a = 0; null != (i = s[a]); a++) N(i, r[a]);
else N(e, o);
return r = y(o, "script"), r.length > 0 && b(r, !u && y(e, "script")), r = s = i = null, o
},
cleanData: function(e, t) {
for (var n, r, i, o, a = 0, s = ge.expando, u = ge.cache, l = me.attributes, c = ge.event.special; null != (n = e[a]); a++)
if ((t || He(n)) && (i = n[s], o = i && u[i])) {
if (o.events)
for (r in o.events) c[r] ? ge.event.remove(n, r) : ge.removeEvent(n, r, o.handle);
u[i] && (delete u[i], l || "undefined" == typeof n.removeAttribute ? n[s] = void 0 : n.removeAttribute(s), ae.push(i))
}
}
}), ge.fn.extend({
domManip: O,
detach: function(e) {
return L(this, e, !0)
},
remove: function(e) {
return L(this, e)
},
text: function(e) {
return Ue(this, function(e) {
return void 0 === e ? ge.text(this) : this.empty().append((this[0] && this[0].ownerDocument || se).createTextNode(e))
}, null, e, arguments.length)
},
append: function() {
return O(this, arguments, function(e) {
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
var t = S(this, e);
t.appendChild(e)
}
})
},
prepend: function() {
return O(this, arguments, function(e) {
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
var t = S(this, e);
t.insertBefore(e, t.firstChild)
}
})
},
before: function() {
return O(this, arguments, function(e) {
this.parentNode && this.parentNode.insertBefore(e, this)
})
},
after: function() {
return O(this, arguments, function(e) {
this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)
})
},
empty: function() {
for (var e, t = 0; null != (e = this[t]); t++) {
for (1 === e.nodeType && ge.cleanData(y(e, !1)); e.firstChild;) e.removeChild(e.firstChild);
e.options && ge.nodeName(e, "select") && (e.options.length = 0)
}
return this
},
clone: function(e, t) {
return e = null == e ? !1 : e, t = null == t ? e : t, this.map(function() {
return ge.clone(this, e, t)
})
},
html: function(e) {
return Ue(this, function(e) {
var t = this[0] || {},
n = 0,
r = this.length;
if (void 0 === e) return 1 === t.nodeType ? t.innerHTML.replace(rt, "") : void 0;
if ("string" == typeof e && !at.test(e) && (me.htmlSerialize || !it.test(e)) && (me.leadingWhitespace || !Xe.test(e)) && !Ye[(ze.exec(e) || ["", ""])[1].toLowerCase()]) {
e = ge.htmlPrefilter(e);
try {
for (; r > n; n++) t = this[n] || {}, 1 === t.nodeType && (ge.cleanData(y(t, !1)), t.innerHTML = e);
t = 0
} catch (i) {}
}
t && this.empty().append(e)
}, null, e, arguments.length)
},
replaceWith: function() {
var e = [];
return O(this, arguments, function(t) {
var n = this.parentNode;
ge.inArray(this, e) < 0 && (ge.cleanData(y(this)), n && n.replaceChild(t, this))
}, e)
}
}), ge.each({
appendTo: "append",
prependTo: "prepend",
insertBefore: "before",
insertAfter: "after",
replaceAll: "replaceWith"
}, function(e, t) {
ge.fn[e] = function(e) {
for (var n, r = 0, i = [], o = ge(e), a = o.length - 1; a >= r; r++) n = r === a ? this : this.clone(!0), ge(o[r])[t](n), ce.apply(i, n.get());
return this.pushStack(i)
}
});
var dt, pt = {
HTML: "block",
BODY: "block"
},
ht = /^margin/,
mt = new RegExp("^(" + Be + ")(?!px)[a-z%]+$", "i"),
vt = function(e, t, n, r) {
var i, o, a = {};
for (o in t) a[o] = e.style[o], e.style[o] = t[o];
i = n.apply(e, r || []);
for (o in t) e.style[o] = a[o];
return i
},
gt = se.documentElement;
! function() {
function e() {
var e, c, f = se.documentElement;
f.appendChild(u), l.style.cssText = "-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%", t = i = s = !1, r = a = !0, n.getComputedStyle && (c = n.getComputedStyle(l), t = "1%" !== (c || {}).top, s = "2px" === (c || {}).marginLeft, i = "4px" === (c || {
width: "4px"
}).width, l.style.marginRight = "50%", r = "4px" === (c || {
marginRight: "4px"
}).marginRight, e = l.appendChild(se.createElement("div")), e.style.cssText = l.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0", e.style.marginRight = e.style.width = "0", l.style.width = "1px", a = !parseFloat((n.getComputedStyle(e) || {}).marginRight), l.removeChild(e)), l.style.display = "none", o = 0 === l.getClientRects().length, o && (l.style.display = "", l.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", e = l.getElementsByTagName("td"), e[0].style.cssText = "margin:0;border:0;padding:0;display:none", o = 0 === e[0].offsetHeight, o && (e[0].style.display = "", e[1].style.display = "none", o = 0 === e[0].offsetHeight)), f.removeChild(u)
}
var t, r, i, o, a, s, u = se.createElement("div"),
l = se.createElement("div");
l.style && (l.style.cssText = "float:left;opacity:.5", me.opacity = "0.5" === l.style.opacity, me.cssFloat = !!l.style.cssFloat, l.style.backgroundClip = "content-box", l.cloneNode(!0).style.backgroundClip = "", me.clearCloneStyle = "content-box" === l.style.backgroundClip, u = se.createElement("div"), u.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute", l.innerHTML = "", u.appendChild(l), me.boxSizing = "" === l.style.boxSizing || "" === l.style.MozBoxSizing || "" === l.style.WebkitBoxSizing, ge.extend(me, {
reliableHiddenOffsets: function() {
return null == t && e(), o
},
boxSizingReliable: function() {
return null == t && e(), i
},
pixelMarginRight: function() {
return null == t && e(), r
},
pixelPosition: function() {
return null == t && e(), t
},
reliableMarginRight: function() {
return null == t && e(), a
},
reliableMarginLeft: function() {
return null == t && e(), s
}
}))
}();
var yt, bt, Et = /^(top|right|bottom|left)$/;
n.getComputedStyle ? (yt = function(e) {
var t = e.ownerDocument.defaultView;
return t.opener || (t = n), t.getComputedStyle(e)
}, bt = function(e, t, n) {
var r, i, o, a, s = e.style;
return n = n || yt(e), a = n ? n.getPropertyValue(t) || n[t] : void 0, n && ("" !== a || ge.contains(e.ownerDocument, e) || (a = ge.style(e, t)), !me.pixelMarginRight() && mt.test(a) && ht.test(t) && (r = s.width, i = s.minWidth, o = s.maxWidth, s.minWidth = s.maxWidth = s.width = a, a = n.width, s.width = r, s.minWidth = i, s.maxWidth = o)), void 0 === a ? a : a + ""
}) : gt.currentStyle && (yt = function(e) {
return e.currentStyle
}, bt = function(e, t, n) {
var r, i, o, a, s = e.style;
return n = n || yt(e), a = n ? n[t] : void 0, null == a && s && s[t] && (a = s[t]), mt.test(a) && !Et.test(t) && (r = s.left, i = e.runtimeStyle, o = i && i.left, o && (i.left = e.currentStyle.left), s.left = "fontSize" === t ? "1em" : a, a = s.pixelLeft + "px", s.left = r, o && (i.left = o)), void 0 === a ? a : a + "" || "auto"
});
var _t = /alpha\([^)]*\)/i,
xt = /opacity\s*=\s*([^)]*)/i,
wt = /^(none|table(?!-c[ea]).+)/,
Tt = new RegExp("^(" + Be + ")(.*)$", "i"),
kt = {
position: "absolute",
visibility: "hidden",
display: "block"
},
St = {
letterSpacing: "0",
fontWeight: "400"
},
At = ["Webkit", "O", "Moz", "ms"],
Ct = se.createElement("div").style;
ge.extend({
cssHooks: {
opacity: {
get: function(e, t) {
if (t) {
var n = bt(e, "opacity");
return "" === n ? "1" : n
}
}
}
},
cssNumber: {
animationIterationCount: !0,
columnCount: !0,
fillOpacity: !0,
flexGrow: !0,
flexShrink: !0,
fontWeight: !0,
lineHeight: !0,
opacity: !0,
order: !0,
orphans: !0,
widows: !0,
zIndex: !0,
zoom: !0
},
cssProps: {
"float": me.cssFloat ? "cssFloat" : "styleFloat"
},
style: function(e, t, n, r) {
if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
var i, o, a, s = ge.camelCase(t),
u = e.style;
if (t = ge.cssProps[s] || (ge.cssProps[s] = H(s) || s), a = ge.cssHooks[t] || ge.cssHooks[s], void 0 === n) return a && "get" in a && void 0 !== (i = a.get(e, !1, r)) ? i : u[t];
if (o = typeof n, "string" === o && (i = qe.exec(n)) && i[1] && (n = v(e, t, i), o = "number"), null != n && n === n && ("number" === o && (n += i && i[3] || (ge.cssNumber[s] ? "" : "px")), me.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (u[t] = "inherit"), !(a && "set" in a && void 0 === (n = a.set(e, n, r))))) try {
u[t] = n
} catch (l) {}
}
},
css: function(e, t, n, r) {
var i, o, a, s = ge.camelCase(t);
return t = ge.cssProps[s] || (ge.cssProps[s] = H(s) || s), a = ge.cssHooks[t] || ge.cssHooks[s], a && "get" in a && (o = a.get(e, !0, n)), void 0 === o && (o = bt(e, t, r)), "normal" === o && t in St && (o = St[t]), "" === n || n ? (i = parseFloat(o), n === !0 || isFinite(i) ? i || 0 : o) : o
}
}), ge.each(["height", "width"], function(e, t) {
ge.cssHooks[t] = {
get: function(e, n, r) {
return n ? wt.test(ge.css(e, "display")) && 0 === e.offsetWidth ? vt(e, kt, function() {
return q(e, t, r)
}) : q(e, t, r) : void 0
},
set: function(e, n, r) {
var i = r && yt(e);
return R(e, n, r ? B(e, t, r, me.boxSizing && "border-box" === ge.css(e, "boxSizing", !1, i), i) : 0)
}
}
}), me.opacity || (ge.cssHooks.opacity = {
get: function(e, t) {
return xt.test((t && e.currentStyle ? e.currentStyle.filter : e.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : t ? "1" : ""
},
set: function(e, t) {
var n = e.style,
r = e.currentStyle,
i = ge.isNumeric(t) ? "alpha(opacity=" + 100 * t + ")" : "",
o = r && r.filter || n.filter || "";
n.zoom = 1, (t >= 1 || "" === t) && "" === ge.trim(o.replace(_t, "")) && n.removeAttribute && (n.removeAttribute("filter"), "" === t || r && !r.filter) || (n.filter = _t.test(o) ? o.replace(_t, i) : o + " " + i)
}
}), ge.cssHooks.marginRight = P(me.reliableMarginRight, function(e, t) {
return t ? vt(e, {
display: "inline-block"
}, bt, [e, "marginRight"]) : void 0
}), ge.cssHooks.marginLeft = P(me.reliableMarginLeft, function(e, t) {
return t ? (parseFloat(bt(e, "marginLeft")) || (ge.contains(e.ownerDocument, e) ? e.getBoundingClientRect().left - vt(e, {
marginLeft: 0
}, function() {
return e.getBoundingClientRect().left
}) : 0)) + "px" : void 0
}), ge.each({
margin: "",
padding: "",
border: "Width"
}, function(e, t) {
ge.cssHooks[e + t] = {
expand: function(n) {
for (var r = 0, i = {}, o = "string" == typeof n ? n.split(" ") : [n]; 4 > r; r++) i[e + Fe[r] + t] = o[r] || o[r - 2] || o[0];
return i
}
}, ht.test(e) || (ge.cssHooks[e + t].set = R)
}), ge.fn.extend({
css: function(e, t) {
return Ue(this, function(e, t, n) {
var r, i, o = {},
a = 0;
if (ge.isArray(t)) {
for (r = yt(e), i = t.length; i > a; a++) o[t[a]] = ge.css(e, t[a], !1, r);
return o
}
return void 0 !== n ? ge.style(e, t, n) : ge.css(e, t)
}, e, t, arguments.length > 1)
},
show: function() {
return M(this, !0)
},
hide: function() {
return M(this)
},
toggle: function(e) {
return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function() {
Ve(this) ? ge(this).show() : ge(this).hide()
})
}
}), ge.Tween = F, F.prototype = {
constructor: F,
init: function(e, t, n, r, i, o) {
this.elem = e, this.prop = n, this.easing = i || ge.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = o || (ge.cssNumber[n] ? "" : "px")
},
cur: function() {
var e = F.propHooks[this.prop];
return e && e.get ? e.get(this) : F.propHooks._default.get(this)
},
run: function(e) {
var t, n = F.propHooks[this.prop];
return this.options.duration ? this.pos = t = ge.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : F.propHooks._default.set(this), this
}
}, F.prototype.init.prototype = F.prototype, F.propHooks = {
_default: {
get: function(e) {
var t;
return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = ge.css(e.elem, e.prop, ""), t && "auto" !== t ? t : 0)
},
set: function(e) {
ge.fx.step[e.prop] ? ge.fx.step[e.prop](e) : 1 !== e.elem.nodeType || null == e.elem.style[ge.cssProps[e.prop]] && !ge.cssHooks[e.prop] ? e.elem[e.prop] = e.now : ge.style(e.elem, e.prop, e.now + e.unit)
}
}
}, F.propHooks.scrollTop = F.propHooks.scrollLeft = {
set: function(e) {
e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
}
}, ge.easing = {
linear: function(e) {
return e
},
swing: function(e) {
return .5 - Math.cos(e * Math.PI) / 2
},
_default: "swing"
}, ge.fx = F.prototype.init, ge.fx.step = {};
var Nt, Dt, Ot = /^(?:toggle|show|hide)$/,
Lt = /queueHooks$/;
ge.Animation = ge.extend(X, {
tweeners: {
"*": [function(e, t) {
var n = this.createTween(e, t);
return v(n.elem, e, qe.exec(t), n), n
}]
},
tweener: function(e, t) {
ge.isFunction(e) ? (t = e, e = ["*"]) : e = e.match(je);
for (var n, r = 0, i = e.length; i > r; r++) n = e[r], X.tweeners[n] = X.tweeners[n] || [], X.tweeners[n].unshift(t)
},
prefilters: [z],
prefilter: function(e, t) {
t ? X.prefilters.unshift(e) : X.prefilters.push(e)
}
}), ge.speed = function(e, t, n) {
var r = e && "object" == typeof e ? ge.extend({}, e) : {
complete: n || !n && t || ge.isFunction(e) && e,
duration: e,
easing: n && t || t && !ge.isFunction(t) && t
};
return r.duration = ge.fx.off ? 0 : "number" == typeof r.duration ? r.duration : r.duration in ge.fx.speeds ? ge.fx.speeds[r.duration] : ge.fx.speeds._default, (null == r.queue || r.queue === !0) && (r.queue = "fx"), r.old = r.complete, r.complete = function() {
ge.isFunction(r.old) && r.old.call(this), r.queue && ge.dequeue(this, r.queue)
}, r
}, ge.fn.extend({
fadeTo: function(e, t, n, r) {
return this.filter(Ve).css("opacity", 0).show().end().animate({
opacity: t
}, e, n, r)
},
animate: function(e, t, n, r) {
var i = ge.isEmptyObject(e),
o = ge.speed(t, n, r),
a = function() {
var t = X(this, ge.extend({}, e), o);
(i || ge._data(this, "finish")) && t.stop(!0)
};
return a.finish = a, i || o.queue === !1 ? this.each(a) : this.queue(o.queue, a)
},
stop: function(e, t, n) {
var r = function(e) {
var t = e.stop;
delete e.stop, t(n)
};
return "string" != typeof e && (n = t, t = e, e = void 0), t && e !== !1 && this.queue(e || "fx", []), this.each(function() {
var t = !0,
i = null != e && e + "queueHooks",
o = ge.timers,
a = ge._data(this);
if (i) a[i] && a[i].stop && r(a[i]);
else
for (i in a) a[i] && a[i].stop && Lt.test(i) && r(a[i]);
for (i = o.length; i--;) o[i].elem !== this || null != e && o[i].queue !== e || (o[i].anim.stop(n), t = !1, o.splice(i, 1));
(t || !n) && ge.dequeue(this, e)
})
},
finish: function(e) {
return e !== !1 && (e = e || "fx"), this.each(function() {
var t, n = ge._data(this),
r = n[e + "queue"],
i = n[e + "queueHooks"],
o = ge.timers,
a = r ? r.length : 0;
for (n.finish = !0, ge.queue(this, e, []), i && i.stop && i.stop.call(this, !0), t = o.length; t--;) o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0), o.splice(t, 1));
for (t = 0; a > t; t++) r[t] && r[t].finish && r[t].finish.call(this);
delete n.finish
})
}
}), ge.each(["toggle", "show", "hide"], function(e, t) {
var n = ge.fn[t];
ge.fn[t] = function(e, r, i) {
return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(U(t, !0), e, r, i)
}
}), ge.each({
slideDown: U("show"),
slideUp: U("hide"),
slideToggle: U("toggle"),
fadeIn: {
opacity: "show"
},
fadeOut: {
opacity: "hide"
},
fadeToggle: {
opacity: "toggle"
}
}, function(e, t) {
ge.fn[e] = function(e, n, r) {
return this.animate(t, e, n, r)
}
}), ge.timers = [], ge.fx.tick = function() {
var e, t = ge.timers,
n = 0;
for (Nt = ge.now(); n < t.length; n++) e = t[n], e() || t[n] !== e || t.splice(n--, 1);
t.length || ge.fx.stop(), Nt = void 0
}, ge.fx.timer = function(e) {
ge.timers.push(e), e() ? ge.fx.start() : ge.timers.pop()
}, ge.fx.interval = 13, ge.fx.start = function() {
Dt || (Dt = n.setInterval(ge.fx.tick, ge.fx.interval))
}, ge.fx.stop = function() {
n.clearInterval(Dt), Dt = null
}, ge.fx.speeds = {
slow: 600,
fast: 200,
_default: 400
}, ge.fn.delay = function(e, t) {
return e = ge.fx ? ge.fx.speeds[e] || e : e, t = t || "fx", this.queue(t, function(t, r) {
var i = n.setTimeout(t, e);
r.stop = function() {
n.clearTimeout(i)
}
})
},
function() {
var e, t = se.createElement("input"),
n = se.createElement("div"),
r = se.createElement("select"),
i = r.appendChild(se.createElement("option"));
n = se.createElement("div"), n.setAttribute("className", "t"), n.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", e = n.getElementsByTagName("a")[0], t.setAttribute("type", "checkbox"), n.appendChild(t), e = n.getElementsByTagName("a")[0], e.style.cssText = "top:1px", me.getSetAttribute = "t" !== n.className, me.style = /top/.test(e.getAttribute("style")), me.hrefNormalized = "/a" === e.getAttribute("href"), me.checkOn = !!t.value, me.optSelected = i.selected, me.enctype = !!se.createElement("form").enctype, r.disabled = !0, me.optDisabled = !i.disabled, t = se.createElement("input"), t.setAttribute("value", ""), me.input = "" === t.getAttribute("value"), t.value = "t", t.setAttribute("type", "radio"), me.radioValue = "t" === t.value
}();
var jt = /\r/g;
ge.fn.extend({
val: function(e) {
var t, n, r, i = this[0]; {
if (arguments.length) return r = ge.isFunction(e), this.each(function(n) {
var i;
1 === this.nodeType && (i = r ? e.call(this, n, ge(this).val()) : e, null == i ? i = "" : "number" == typeof i ? i += "" : ge.isArray(i) && (i = ge.map(i, function(e) {
return null == e ? "" : e + ""
})), t = ge.valHooks[this.type] || ge.valHooks[this.nodeName.toLowerCase()], t && "set" in t && void 0 !== t.set(this, i, "value") || (this.value = i))
});
if (i) return t = ge.valHooks[i.type] || ge.valHooks[i.nodeName.toLowerCase()], t && "get" in t && void 0 !== (n = t.get(i, "value")) ? n : (n = i.value, "string" == typeof n ? n.replace(jt, "") : null == n ? "" : n)
}
}
}), ge.extend({
valHooks: {
option: {
get: function(e) {
var t = ge.find.attr(e, "value");
return null != t ? t : ge.trim(ge.text(e))
}
},
select: {
get: function(e) {
for (var t, n, r = e.options, i = e.selectedIndex, o = "select-one" === e.type || 0 > i, a = o ? null : [], s = o ? i + 1 : r.length, u = 0 > i ? s : o ? i : 0; s > u; u++)
if (n = r[u], (n.selected || u === i) && (me.optDisabled ? !n.disabled : null === n.getAttribute("disabled")) && (!n.parentNode.disabled || !ge.nodeName(n.parentNode, "optgroup"))) {
if (t = ge(n).val(), o) return t;
a.push(t)
}
return a
},
set: function(e, t) {
for (var n, r, i = e.options, o = ge.makeArray(t), a = i.length; a--;)
if (r = i[a], ge.inArray(ge.valHooks.option.get(r), o) >= 0) try {
r.selected = n = !0
} catch (s) {
r.scrollHeight
} else r.selected = !1;
return n || (e.selectedIndex = -1), i
}
}
}
}), ge.each(["radio", "checkbox"], function() {
ge.valHooks[this] = {
set: function(e, t) {
return ge.isArray(t) ? e.checked = ge.inArray(ge(e).val(), t) > -1 : void 0
}
}, me.checkOn || (ge.valHooks[this].get = function(e) {
return null === e.getAttribute("value") ? "on" : e.value
})
});
var It, Pt, Ht = ge.expr.attrHandle,
Mt = /^(?:checked|selected)$/i,
Rt = me.getSetAttribute,
Bt = me.input;
ge.fn.extend({
attr: function(e, t) {
return Ue(this, ge.attr, e, t, arguments.length > 1)
},
removeAttr: function(e) {
return this.each(function() {
ge.removeAttr(this, e)
})
}
}), ge.extend({
attr: function(e, t, n) {
var r, i, o = e.nodeType;
if (3 !== o && 8 !== o && 2 !== o) return "undefined" == typeof e.getAttribute ? ge.prop(e, t, n) : (1 === o && ge.isXMLDoc(e) || (t = t.toLowerCase(), i = ge.attrHooks[t] || (ge.expr.match.bool.test(t) ? Pt : It)), void 0 !== n ? null === n ? void ge.removeAttr(e, t) : i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : (e.setAttribute(t, n + ""), n) : i && "get" in i && null !== (r = i.get(e, t)) ? r : (r = ge.find.attr(e, t), null == r ? void 0 : r))
},
attrHooks: {
type: {
set: function(e, t) {
if (!me.radioValue && "radio" === t && ge.nodeName(e, "input")) {
var n = e.value;
return e.setAttribute("type", t), n && (e.value = n), t
}
}
}
},
removeAttr: function(e, t) {
var n, r, i = 0,
o = t && t.match(je);
if (o && 1 === e.nodeType)
for (; n = o[i++];) r = ge.propFix[n] || n, ge.expr.match.bool.test(n) ? Bt && Rt || !Mt.test(n) ? e[r] = !1 : e[ge.camelCase("default-" + n)] = e[r] = !1 : ge.attr(e, n, ""), e.removeAttribute(Rt ? n : r)
}
}), Pt = {
set: function(e, t, n) {
return t === !1 ? ge.removeAttr(e, n) : Bt && Rt || !Mt.test(n) ? e.setAttribute(!Rt && ge.propFix[n] || n, n) : e[ge.camelCase("default-" + n)] = e[n] = !0, n
}
}, ge.each(ge.expr.match.bool.source.match(/\w+/g), function(e, t) {
var n = Ht[t] || ge.find.attr;
Bt && Rt || !Mt.test(t) ? Ht[t] = function(e, t, r) {
var i, o;
return r || (o = Ht[t], Ht[t] = i, i = null != n(e, t, r) ? t.toLowerCase() : null, Ht[t] = o), i
} : Ht[t] = function(e, t, n) {
return n ? void 0 : e[ge.camelCase("default-" + t)] ? t.toLowerCase() : null
}
}), Bt && Rt || (ge.attrHooks.value = {
set: function(e, t, n) {
return ge.nodeName(e, "input") ? void(e.defaultValue = t) : It && It.set(e, t, n)
}
}), Rt || (It = {
set: function(e, t, n) {
var r = e.getAttributeNode(n);
return r || e.setAttributeNode(r = e.ownerDocument.createAttribute(n)), r.value = t += "", "value" === n || t === e.getAttribute(n) ? t : void 0
}
}, Ht.id = Ht.name = Ht.coords = function(e, t, n) {
var r;
return n ? void 0 : (r = e.getAttributeNode(t)) && "" !== r.value ? r.value : null
}, ge.valHooks.button = {
get: function(e, t) {
var n = e.getAttributeNode(t);
return n && n.specified ? n.value : void 0
},
set: It.set
}, ge.attrHooks.contenteditable = {
set: function(e, t, n) {
It.set(e, "" === t ? !1 : t, n)
}
}, ge.each(["width", "height"], function(e, t) {
ge.attrHooks[t] = {
set: function(e, n) {
return "" === n ? (e.setAttribute(t, "auto"), n) : void 0
}
}
})), me.style || (ge.attrHooks.style = {
get: function(e) {
return e.style.cssText || void 0
},
set: function(e, t) {
return e.style.cssText = t + ""
}
});
var qt = /^(?:input|select|textarea|button|object)$/i,
Ft = /^(?:a|area)$/i;
ge.fn.extend({
prop: function(e, t) {
return Ue(this, ge.prop, e, t, arguments.length > 1)
},
removeProp: function(e) {
return e = ge.propFix[e] || e, this.each(function() {
try {
this[e] = void 0, delete this[e]
} catch (t) {}
})
}
}), ge.extend({
prop: function(e, t, n) {
var r, i, o = e.nodeType;
if (3 !== o && 8 !== o && 2 !== o) return 1 === o && ge.isXMLDoc(e) || (t = ge.propFix[t] || t, i = ge.propHooks[t]), void 0 !== n ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : e[t] = n : i && "get" in i && null !== (r = i.get(e, t)) ? r : e[t]
},
propHooks: {
tabIndex: {
get: function(e) {
var t = ge.find.attr(e, "tabindex");
return t ? parseInt(t, 10) : qt.test(e.nodeName) || Ft.test(e.nodeName) && e.href ? 0 : -1
}
}
},
propFix: {
"for": "htmlFor",
"class": "className"
}
}), me.hrefNormalized || ge.each(["href", "src"], function(e, t) {
ge.propHooks[t] = {
get: function(e) {
return e.getAttribute(t, 4)
}
}
}), me.optSelected || (ge.propHooks.selected = {
get: function(e) {
var t = e.parentNode;
return t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex), null
}
}), ge.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
ge.propFix[this.toLowerCase()] = this
}), me.enctype || (ge.propFix.enctype = "encoding");
var Vt = /[\t\r\n\f]/g;
ge.fn.extend({
addClass: function(e) {
var t, n, r, i, o, a, s, u = 0;
if (ge.isFunction(e)) return this.each(function(t) {
ge(this).addClass(e.call(this, t, G(this)))
});
if ("string" == typeof e && e)
for (t = e.match(je) || []; n = this[u++];)
if (i = G(n), r = 1 === n.nodeType && (" " + i + " ").replace(Vt, " ")) {
for (a = 0; o = t[a++];) r.indexOf(" " + o + " ") < 0 && (r += o + " ");
s = ge.trim(r), i !== s && ge.attr(n, "class", s)
}
return this
},
removeClass: function(e) {
var t, n, r, i, o, a, s, u = 0;
if (ge.isFunction(e)) return this.each(function(t) {
ge(this).removeClass(e.call(this, t, G(this)))
});
if (!arguments.length) return this.attr("class", "");
if ("string" == typeof e && e)
for (t = e.match(je) || []; n = this[u++];)
if (i = G(n), r = 1 === n.nodeType && (" " + i + " ").replace(Vt, " ")) {
for (a = 0; o = t[a++];)
for (; r.indexOf(" " + o + " ") > -1;) r = r.replace(" " + o + " ", " ");
s = ge.trim(r), i !== s && ge.attr(n, "class", s)
}
return this
},
toggleClass: function(e, t) {
var n = typeof e;
return "boolean" == typeof t && "string" === n ? t ? this.addClass(e) : this.removeClass(e) : ge.isFunction(e) ? this.each(function(n) {
ge(this).toggleClass(e.call(this, n, G(this), t), t)
}) : this.each(function() {
var t, r, i, o;
if ("string" === n)
for (r = 0, i = ge(this), o = e.match(je) || []; t = o[r++];) i.hasClass(t) ? i.removeClass(t) : i.addClass(t);
else(void 0 === e || "boolean" === n) && (t = G(this), t && ge._data(this, "__className__", t), ge.attr(this, "class", t || e === !1 ? "" : ge._data(this, "__className__") || ""))
})
},
hasClass: function(e) {
var t, n, r = 0;
for (t = " " + e + " "; n = this[r++];)
if (1 === n.nodeType && (" " + G(n) + " ").replace(Vt, " ").indexOf(t) > -1) return !0;
return !1
}
}), ge.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(e, t) {
ge.fn[t] = function(e, n) {
return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t)
}
}), ge.fn.extend({
hover: function(e, t) {
return this.mouseenter(e).mouseleave(t || e)
}
});
var Ut = n.location,
Wt = ge.now(),
zt = /\?/,
$t = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;
ge.parseJSON = function(e) {
if (n.JSON && n.JSON.parse) return n.JSON.parse(e + "");
var t, r = null,
i = ge.trim(e + "");
return i && !ge.trim(i.replace($t, function(e, n, i, o) {
return t && n && (r = 0), 0 === r ? e : (t = i || n, r += !o - !i, "")
})) ? Function("return " + i)() : ge.error("Invalid JSON: " + e)
}, ge.parseXML = function(e) {
var t, r;
if (!e || "string" != typeof e) return null;
try {
n.DOMParser ? (r = new n.DOMParser, t = r.parseFromString(e, "text/xml")) : (t = new n.ActiveXObject("Microsoft.XMLDOM"), t.async = "false", t.loadXML(e))
} catch (i) {
t = void 0
}
return t && t.documentElement && !t.getElementsByTagName("parsererror").length || ge.error("Invalid XML: " + e), t
};
var Xt = /#.*$/,
Gt = /([?&])_=[^&]*/,
Yt = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
Kt = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
Qt = /^(?:GET|HEAD)$/,
Jt = /^\/\//,
Zt = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
en = {},
tn = {},
nn = "*/".concat("*"),
rn = Ut.href,
on = Zt.exec(rn.toLowerCase()) || [];
ge.extend({
active: 0,
lastModified: {},
etag: {},
ajaxSettings: {
url: rn,
type: "GET",
isLocal: Kt.test(on[1]),
global: !0,
processData: !0,
async: !0,
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
accepts: {
"*": nn,
text: "text/plain",
html: "text/html",
xml: "application/xml, text/xml",
json: "application/json, text/javascript"
},
contents: {
xml: /\bxml\b/,
html: /\bhtml/,
json: /\bjson\b/
},
responseFields: {
xml: "responseXML",
text: "responseText",
json: "responseJSON"
},
converters: {
"* text": String,
"text html": !0,
"text json": ge.parseJSON,
"text xml": ge.parseXML
},
flatOptions: {
url: !0,
context: !0
}
},
ajaxSetup: function(e, t) {
return t ? Q(Q(e, ge.ajaxSettings), t) : Q(ge.ajaxSettings, e)
},
ajaxPrefilter: Y(en),
ajaxTransport: Y(tn),
ajax: function(e, t) {
function r(e, t, r, i) {
var o, f, y, b, _, w = t;
2 !== E && (E = 2, u && n.clearTimeout(u), c = void 0, s = i || "", x.readyState = e > 0 ? 4 : 0, o = e >= 200 && 300 > e || 304 === e, r && (b = J(d, x, r)), b = Z(d, b, x, o), o ? (d.ifModified && (_ = x.getResponseHeader("Last-Modified"), _ && (ge.lastModified[a] = _), _ = x.getResponseHeader("etag"), _ && (ge.etag[a] = _)), 204 === e || "HEAD" === d.type ? w = "nocontent" : 304 === e ? w = "notmodified" : (w = b.state, f = b.data, y = b.error, o = !y)) : (y = w, (e || !w) && (w = "error", 0 > e && (e = 0))), x.status = e, x.statusText = (t || w) + "", o ? m.resolveWith(p, [f, w, x]) : m.rejectWith(p, [x, w, y]), x.statusCode(g), g = void 0, l && h.trigger(o ? "ajaxSuccess" : "ajaxError", [x, d, o ? f : y]), v.fireWith(p, [x, w]), l && (h.trigger("ajaxComplete", [x, d]), --ge.active || ge.event.trigger("ajaxStop")))
}
"object" == typeof e && (t = e, e = void 0), t = t || {};
var i, o, a, s, u, l, c, f, d = ge.ajaxSetup({}, t),
p = d.context || d,
h = d.context && (p.nodeType || p.jquery) ? ge(p) : ge.event,
m = ge.Deferred(),
v = ge.Callbacks("once memory"),
g = d.statusCode || {},
y = {},
b = {},
E = 0,
_ = "canceled",
x = {
readyState: 0,
getResponseHeader: function(e) {
var t;
if (2 === E) {
if (!f)
for (f = {}; t = Yt.exec(s);) f[t[1].toLowerCase()] = t[2];
t = f[e.toLowerCase()]
}
return null == t ? null : t
},
getAllResponseHeaders: function() {
return 2 === E ? s : null
},
setRequestHeader: function(e, t) {
var n = e.toLowerCase();
return E || (e = b[n] = b[n] || e, y[e] = t), this
},
overrideMimeType: function(e) {
return E || (d.mimeType = e), this
},
statusCode: function(e) {
var t;
if (e)
if (2 > E)
for (t in e) g[t] = [g[t], e[t]];
else x.always(e[x.status]);
return this
},
abort: function(e) {
var t = e || _;
return c && c.abort(t), r(0, t), this
}
};
if (m.promise(x).complete = v.add, x.success = x.done, x.error = x.fail, d.url = ((e || d.url || rn) + "").replace(Xt, "").replace(Jt, on[1] + "//"), d.type = t.method || t.type || d.method || d.type, d.dataTypes = ge.trim(d.dataType || "*").toLowerCase().match(je) || [""], null == d.crossDomain && (i = Zt.exec(d.url.toLowerCase()), d.crossDomain = !(!i || i[1] === on[1] && i[2] === on[2] && (i[3] || ("http:" === i[1] ? "80" : "443")) === (on[3] || ("http:" === on[1] ? "80" : "443")))), d.data && d.processData && "string" != typeof d.data && (d.data = ge.param(d.data, d.traditional)), K(en, d, t, x), 2 === E) return x;
l = ge.event && d.global, l && 0 === ge.active++ && ge.event.trigger("ajaxStart"), d.type = d.type.toUpperCase(), d.hasContent = !Qt.test(d.type), a = d.url, d.hasContent || (d.data && (a = d.url += (zt.test(a) ? "&" : "?") + d.data, delete d.data), d.cache === !1 && (d.url = Gt.test(a) ? a.replace(Gt, "$1_=" + Wt++) : a + (zt.test(a) ? "&" : "?") + "_=" + Wt++)), d.ifModified && (ge.lastModified[a] && x.setRequestHeader("If-Modified-Since", ge.lastModified[a]), ge.etag[a] && x.setRequestHeader("If-None-Match", ge.etag[a])), (d.data && d.hasContent && d.contentType !== !1 || t.contentType) && x.setRequestHeader("Content-Type", d.contentType), x.setRequestHeader("Accept", d.dataTypes[0] && d.accepts[d.dataTypes[0]] ? d.accepts[d.dataTypes[0]] + ("*" !== d.dataTypes[0] ? ", " + nn + "; q=0.01" : "") : d.accepts["*"]);
for (o in d.headers) x.setRequestHeader(o, d.headers[o]);
if (d.beforeSend && (d.beforeSend.call(p, x, d) === !1 || 2 === E)) return x.abort();
_ = "abort";
for (o in {
success: 1,
error: 1,
complete: 1
}) x[o](d[o]);
if (c = K(tn, d, t, x)) {
if (x.readyState = 1, l && h.trigger("ajaxSend", [x, d]), 2 === E) return x;
d.async && d.timeout > 0 && (u = n.setTimeout(function() {
x.abort("timeout")
}, d.timeout));
try {
E = 1, c.send(y, r)
} catch (w) {
if (!(2 > E)) throw w;
r(-1, w)
}
} else r(-1, "No Transport");
return x
},
getJSON: function(e, t, n) {
return ge.get(e, t, n, "json")
},
getScript: function(e, t) {
return ge.get(e, void 0, t, "script")
}
}), ge.each(["get", "post"], function(e, t) {
ge[t] = function(e, n, r, i) {
return ge.isFunction(n) && (i = i || r, r = n, n = void 0), ge.ajax(ge.extend({
url: e,
type: t,
dataType: i,
data: n,
success: r
}, ge.isPlainObject(e) && e))
}
}), ge._evalUrl = function(e) {
return ge.ajax({
url: e,
type: "GET",
dataType: "script",
cache: !0,
async: !1,
global: !1,
"throws": !0
})
}, ge.fn.extend({
wrapAll: function(e) {
if (ge.isFunction(e)) return this.each(function(t) {
ge(this).wrapAll(e.call(this, t))
});
if (this[0]) {
var t = ge(e, this[0].ownerDocument).eq(0).clone(!0);
this[0].parentNode && t.insertBefore(this[0]), t.map(function() {
for (var e = this; e.firstChild && 1 === e.firstChild.nodeType;) e = e.firstChild;
return e
}).append(this)
}
return this
},
wrapInner: function(e) {
return ge.isFunction(e) ? this.each(function(t) {
ge(this).wrapInner(e.call(this, t))
}) : this.each(function() {
var t = ge(this),
n = t.contents();
n.length ? n.wrapAll(e) : t.append(e)
})
},
wrap: function(e) {
var t = ge.isFunction(e);
return this.each(function(n) {
ge(this).wrapAll(t ? e.call(this, n) : e)
})
},
unwrap: function() {
return this.parent().each(function() {
ge.nodeName(this, "body") || ge(this).replaceWith(this.childNodes)
}).end()
}
}), ge.expr.filters.hidden = function(e) {
return me.reliableHiddenOffsets() ? e.offsetWidth <= 0 && e.offsetHeight <= 0 && !e.getClientRects().length : te(e)
}, ge.expr.filters.visible = function(e) {
return !ge.expr.filters.hidden(e)
};
var an = /%20/g,
sn = /\[\]$/,
un = /\r?\n/g,
ln = /^(?:submit|button|image|reset|file)$/i,
cn = /^(?:input|select|textarea|keygen)/i;
ge.param = function(e, t) {
var n, r = [],
i = function(e, t) {
t = ge.isFunction(t) ? t() : null == t ? "" : t, r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t)
};
if (void 0 === t && (t = ge.ajaxSettings && ge.ajaxSettings.traditional), ge.isArray(e) || e.jquery && !ge.isPlainObject(e)) ge.each(e, function() {
i(this.name, this.value)
});
else
for (n in e) ne(n, e[n], t, i);
return r.join("&").replace(an, "+")
}, ge.fn.extend({
serialize: function() {
return ge.param(this.serializeArray())
},
serializeArray: function() {
return this.map(function() {
var e = ge.prop(this, "elements");
return e ? ge.makeArray(e) : this
}).filter(function() {
var e = this.type;
return this.name && !ge(this).is(":disabled") && cn.test(this.nodeName) && !ln.test(e) && (this.checked || !We.test(e))
}).map(function(e, t) {
var n = ge(this).val();
return null == n ? null : ge.isArray(n) ? ge.map(n, function(e) {
return {
name: t.name,
value: e.replace(un, "\r\n")
}
}) : {
name: t.name,
value: n.replace(un, "\r\n")
}
}).get()
}
}), ge.ajaxSettings.xhr = void 0 !== n.ActiveXObject ? function() {
return this.isLocal ? ie() : se.documentMode > 8 ? re() : /^(get|post|head|put|delete|options)$/i.test(this.type) && re() || ie()
} : re;
var fn = 0,
dn = {},
pn = ge.ajaxSettings.xhr();
n.attachEvent && n.attachEvent("onunload", function() {
for (var e in dn) dn[e](void 0, !0)
}), me.cors = !!pn && "withCredentials" in pn, pn = me.ajax = !!pn, pn && ge.ajaxTransport(function(e) {
if (!e.crossDomain || me.cors) {
var t;
return {
send: function(r, i) {
var o, a = e.xhr(),
s = ++fn;
if (a.open(e.type, e.url, e.async, e.username, e.password), e.xhrFields)
for (o in e.xhrFields) a[o] = e.xhrFields[o];
e.mimeType && a.overrideMimeType && a.overrideMimeType(e.mimeType), e.crossDomain || r["X-Requested-With"] || (r["X-Requested-With"] = "XMLHttpRequest");
for (o in r) void 0 !== r[o] && a.setRequestHeader(o, r[o] + "");
a.send(e.hasContent && e.data || null), t = function(n, r) {
var o, u, l;
if (t && (r || 4 === a.readyState))
if (delete dn[s], t = void 0, a.onreadystatechange = ge.noop, r) 4 !== a.readyState && a.abort();
else {
l = {}, o = a.status, "string" == typeof a.responseText && (l.text = a.responseText);
try {
u = a.statusText
} catch (c) {
u = ""
}
o || !e.isLocal || e.crossDomain ? 1223 === o && (o = 204) : o = l.text ? 200 : 404
}
l && i(o, u, l, a.getAllResponseHeaders())
}, e.async ? 4 === a.readyState ? n.setTimeout(t) : a.onreadystatechange = dn[s] = t : t()
},
abort: function() {
t && t(void 0, !0)
}
}
}
}), ge.ajaxPrefilter(function(e) {
e.crossDomain && (e.contents.script = !1)
}), ge.ajaxSetup({
accepts: {
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
},
contents: {
script: /\b(?:java|ecma)script\b/
},
converters: {
"text script": function(e) {
return ge.globalEval(e), e
}
}
}), ge.ajaxPrefilter("script", function(e) {
void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET", e.global = !1)
}), ge.ajaxTransport("script", function(e) {
if (e.crossDomain) {
var t, n = se.head || ge("head")[0] || se.documentElement;
return {
send: function(r, i) {
t = se.createElement("script"), t.async = !0, e.scriptCharset && (t.charset = e.scriptCharset), t.src = e.url, t.onload = t.onreadystatechange = function(e, n) {
(n || !t.readyState || /loaded|complete/.test(t.readyState)) && (t.onload = t.onreadystatechange = null, t.parentNode && t.parentNode.removeChild(t), t = null, n || i(200, "success"))
}, n.insertBefore(t, n.firstChild)
},
abort: function() {
t && t.onload(void 0, !0)
}
}
}
});
var hn = [],
mn = /(=)\?(?=&|$)|\?\?/;
ge.ajaxSetup({
jsonp: "callback",
jsonpCallback: function() {
var e = hn.pop() || ge.expando + "_" + Wt++;
return this[e] = !0, e
}
}), ge.ajaxPrefilter("json jsonp", function(e, t, r) {
var i, o, a, s = e.jsonp !== !1 && (mn.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && mn.test(e.data) && "data");
return s || "jsonp" === e.dataTypes[0] ? (i = e.jsonpCallback = ge.isFunction(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback, s ? e[s] = e[s].replace(mn, "$1" + i) : e.jsonp !== !1 && (e.url += (zt.test(e.url) ? "&" : "?") + e.jsonp + "=" + i), e.converters["script json"] = function() {
return a || ge.error(i + " was not called"), a[0]
}, e.dataTypes[0] = "json", o = n[i], n[i] = function() {
a = arguments
}, r.always(function() {
void 0 === o ? ge(n).removeProp(i) : n[i] = o, e[i] && (e.jsonpCallback = t.jsonpCallback, hn.push(i)), a && ge.isFunction(o) && o(a[0]), a = o = void 0
}), "script") : void 0
}), me.createHTMLDocument = function() {
if (!se.implementation.createHTMLDocument) return !1;
var e = se.implementation.createHTMLDocument("");
return e.body.innerHTML = "<form></form><form></form>", 2 === e.body.childNodes.length
}(), ge.parseHTML = function(e, t, n) {
if (!e || "string" != typeof e) return null;
"boolean" == typeof t && (n = t, t = !1), t = t || (me.createHTMLDocument ? se.implementation.createHTMLDocument("") : se);
var r = Se.exec(e),
i = !n && [];
return r ? [t.createElement(r[1])] : (r = _([e], t, i), i && i.length && ge(i).remove(), ge.merge([], r.childNodes))
};
var vn = ge.fn.load;
ge.fn.load = function(e, t, n) {
if ("string" != typeof e && vn) return vn.apply(this, arguments);
var r, i, o, a = this,
s = e.indexOf(" ");
return s > -1 && (r = ge.trim(e.slice(s, e.length)), e = e.slice(0, s)), ge.isFunction(t) ? (n = t, t = void 0) : t && "object" == typeof t && (i = "POST"), a.length > 0 && ge.ajax({
url: e,
type: i || "GET",
dataType: "html",
data: t
}).done(function(e) {
o = arguments, a.html(r ? ge("<div>").append(ge.parseHTML(e)).find(r) : e)
}).always(n && function(e, t) {
a.each(function() {
n.apply(a, o || [e.responseText, t, e])
})
}), this
}, ge.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(e, t) {
ge.fn[t] = function(e) {
return this.on(t, e)
}
}), ge.expr.filters.animated = function(e) {
return ge.grep(ge.timers, function(t) {
return e === t.elem
}).length
}, ge.offset = {
setOffset: function(e, t, n) {
var r, i, o, a, s, u, l, c = ge.css(e, "position"),
f = ge(e),
d = {};
"static" === c && (e.style.position = "relative"), s = f.offset(), o = ge.css(e, "top"), u = ge.css(e, "left"), l = ("absolute" === c || "fixed" === c) && ge.inArray("auto", [o, u]) > -1, l ? (r = f.position(), a = r.top, i = r.left) : (a = parseFloat(o) || 0, i = parseFloat(u) || 0), ge.isFunction(t) && (t = t.call(e, n, ge.extend({}, s))), null != t.top && (d.top = t.top - s.top + a), null != t.left && (d.left = t.left - s.left + i), "using" in t ? t.using.call(e, d) : f.css(d)
}
}, ge.fn.extend({
offset: function(e) {
if (arguments.length) return void 0 === e ? this : this.each(function(t) {
ge.offset.setOffset(this, e, t)
});
var t, n, r = {
top: 0,
left: 0
},
i = this[0],
o = i && i.ownerDocument;
if (o) return t = o.documentElement, ge.contains(t, i) ? ("undefined" != typeof i.getBoundingClientRect && (r = i.getBoundingClientRect()), n = oe(o), {
top: r.top + (n.pageYOffset || t.scrollTop) - (t.clientTop || 0),
left: r.left + (n.pageXOffset || t.scrollLeft) - (t.clientLeft || 0)
}) : r
},
position: function() {
if (this[0]) {
var e, t, n = {
top: 0,
left: 0
},
r = this[0];
return "fixed" === ge.css(r, "position") ? t = r.getBoundingClientRect() : (e = this.offsetParent(), t = this.offset(), ge.nodeName(e[0], "html") || (n = e.offset()), n.top += ge.css(e[0], "borderTopWidth", !0) - e.scrollTop(), n.left += ge.css(e[0], "borderLeftWidth", !0) - e.scrollLeft()), {
top: t.top - n.top - ge.css(r, "marginTop", !0),
left: t.left - n.left - ge.css(r, "marginLeft", !0)
}
}
},
offsetParent: function() {
return this.map(function() {
for (var e = this.offsetParent; e && !ge.nodeName(e, "html") && "static" === ge.css(e, "position");) e = e.offsetParent;
return e || gt
})
}
}), ge.each({
scrollLeft: "pageXOffset",
scrollTop: "pageYOffset"
}, function(e, t) {
var n = /Y/.test(t);
ge.fn[e] = function(r) {
return Ue(this, function(e, r, i) {
var o = oe(e);
return void 0 === i ? o ? t in o ? o[t] : o.document.documentElement[r] : e[r] : void(o ? o.scrollTo(n ? ge(o).scrollLeft() : i, n ? i : ge(o).scrollTop()) : e[r] = i)
}, e, r, arguments.length, null)
}
}), ge.each(["top", "left"], function(e, t) {
ge.cssHooks[t] = P(me.pixelPosition, function(e, n) {
return n ? (n = bt(e, t), mt.test(n) ? ge(e).position()[t] + "px" : n) : void 0
})
}), ge.each({
Height: "height",
Width: "width"
}, function(e, t) {
ge.each({
padding: "inner" + e,
content: t,
"": "outer" + e
}, function(n, r) {
ge.fn[r] = function(r, i) {
var o = arguments.length && (n || "boolean" != typeof r),
a = n || (r === !0 || i === !0 ? "margin" : "border");
return Ue(this, function(t, n, r) {
var i;
return ge.isWindow(t) ? t.document.documentElement["client" + e] : 9 === t.nodeType ? (i = t.documentElement, Math.max(t.body["scroll" + e], i["scroll" + e], t.body["offset" + e], i["offset" + e], i["client" + e])) : void 0 === r ? ge.css(t, n, a) : ge.style(t, n, r, a)
}, t, o ? r : void 0, o, null)
}
})
}), ge.fn.extend({
bind: function(e, t, n) {
return this.on(e, null, t, n)
},
unbind: function(e, t) {
return this.off(e, null, t)
},
delegate: function(e, t, n, r) {
return this.on(t, e, n, r)
},
undelegate: function(e, t, n) {
return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n)
}
}), ge.fn.size = function() {
return this.length
}, ge.fn.andSelf = ge.fn.addBack, r = [], i = function() {
return ge
}.apply(t, r), !(void 0 !== i && (e.exports = i));
var gn = n.jQuery,
yn = n.$;
return ge.noConflict = function(e) {
return n.$ === ge && (n.$ = yn), e && n.jQuery === ge && (n.jQuery = gn), ge
}, o || (n.jQuery = n.$ = ge), ge
})
}, function(e, t, n) {
var r, i, o;
(function(n) {
"use strict";
! function(n, a) {
i = [], r = a, o = "function" == typeof r ? r.apply(t, i) : r, !(void 0 !== o && (e.exports = o))
}(this, function() {
function e() {
try {
return a in i && i[a]
} catch (e) {
return !1
}
}
var t, r = {},
i = "undefined" != typeof window ? window : n,
o = i.document,
a = "localStorage",
s = "script";
if (r.disabled = !1, r.version = "1.3.20", r.set = function(e, t) {}, r.get = function(e, t) {}, r.has = function(e) {
return void 0 !== r.get(e)
}, r.remove = function(e) {}, r.clear = function() {}, r.transact = function(e, t, n) {
null == n && (n = t, t = null), null == t && (t = {});
var i = r.get(e, t);
n(i), r.set(e, i)
}, r.getAll = function() {}, r.forEach = function() {}, r.serialize = function(e) {
return JSON.stringify(e)
}, r.deserialize = function(e) {
if ("string" == typeof e) try {
return JSON.parse(e)
} catch (t) {
return e || void 0
}
}, e()) t = i[a], r.set = function(e, n) {
return void 0 === n ? r.remove(e) : (t.setItem(e, r.serialize(n)), n)
}, r.get = function(e, n) {
var i = r.deserialize(t.getItem(e));
return void 0 === i ? n : i
}, r.remove = function(e) {
t.removeItem(e)
}, r.clear = function() {
t.clear()
}, r.getAll = function() {
var e = {};
return r.forEach(function(t, n) {
e[t] = n
}), e
}, r.forEach = function(e) {
for (var n = 0; n < t.length; n++) {
var i = t.key(n);
e(i, r.get(i))
}
};
else if (o && o.documentElement.addBehavior) {
var u, l;
try {
l = new ActiveXObject("htmlfile"), l.open(), l.write("<" + s + ">document.w=window</" + s + '><iframe src="/favicon.ico"></iframe>'), l.close(), u = l.w.frames[0].document, t = u.createElement("div")
} catch (c) {
t = o.createElement("div"), u = o.body
}
var f = function(e) {
return function() {
var n = Array.prototype.slice.call(arguments, 0);
n.unshift(t), u.appendChild(t), t.addBehavior("#default#userData"), t.load(a);
var i = e.apply(r, n);
return u.removeChild(t), i
}
},
d = new RegExp("[!\"#$%&'()*+,/\\\\:;<=>?@[\\]^`{|}~]", "g"),
p = function(e) {
return e.replace(/^d/, "___$&").replace(d, "___")
};
r.set = f(function(e, t, n) {
return t = p(t), void 0 === n ? r.remove(t) : (e.setAttribute(t, r.serialize(n)), e.save(a), n)
}), r.get = f(function(e, t, n) {
t = p(t);
var i = r.deserialize(e.getAttribute(t));
return void 0 === i ? n : i
}), r.remove = f(function(e, t) {
t = p(t), e.removeAttribute(t), e.save(a)
}), r.clear = f(function(e) {
var t = e.XMLDocument.documentElement.attributes;
e.load(a);
for (var n = t.length - 1; n >= 0; n--) e.removeAttribute(t[n].name);
e.save(a)
}), r.getAll = function(e) {
var t = {};
return r.forEach(function(e, n) {
t[e] = n
}), t
}, r.forEach = f(function(e, t) {
for (var n, i = e.XMLDocument.documentElement.attributes, o = 0; n = i[o]; ++o) t(n.name, r.deserialize(e.getAttribute(n.name)))
})
}
try {
var h = "__storejs__";
r.set(h, h), r.get(h) != h && (r.disabled = !0), r.remove(h)
} catch (c) {
r.disabled = !0
}
return r.enabled = !r.disabled, r
})
}).call(t, function() {
return this
}())
}, function(e, t) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var n = {};
t["default"] = n,
function() {
var e = n;
e.key = function(e) {
return sessionStorage.key(e)
}, e.getItem = function(e) {
var t = sessionStorage.getItem(e);
if (t) return JSON.parse(t)
}, e.setItem = function(e, t) {
var n = JSON.stringify(t);
sessionStorage.setItem(e, n)
}, e.removeItem = function(e) {
sessionStorage.removeItem(e)
}, e.clear = function() {
sessionStorage.clear()
}, Object.defineProperty(e, "length", {
get: function() {
return sessionStorage.length
}
})
}()
}, function(e, t, n) {
"use strict";
function r(e) {
if (e && e.__esModule) return e;
var t = {};
if (null != e)
for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
return t["default"] = e, t
}
function i(e) {
function t(e, t) {
o.hasOwnProperty(e) && a.set(o[e], JSON.stringify(t), {
expires: u.httpsQualityCarryover,
domain: "." + u.domain,
path: "/",
secure: !1
})
}
var n = "https:" === location.protocol,
r = e.get,
i = e.set,
o = {
mature: "salt_mature",
muted: "salt_muted",
quality: "salt_quality",
volume: "salt_volume"
},
s = {};
e.get = function(i, u) {
var l = r.call(e, i, s),
c = l === s;
if (c)
if (n && o.hasOwnProperty(i) && a.all().hasOwnProperty(o[i])) try {
l = JSON.parse(a.get(o[i])), e.set(i, l)
} catch (f) {
l = u
} else l = u;
else t(i, l);
return l
}, e.set = function(n, r) {
var o = i.call(e, n, r);
return t(n, r), o
}
}
Object.defineProperty(t, "__esModule", {
value: !0
}), t.patch = i;
var o = n(17),
a = r(o),
s = n(3),
u = r(s)
}, function(e, t, n) {
var r;
! function(i, o) {
var a = function() {
return a.get.apply(a, arguments)
},
s = a.utils = {
isArray: Array.isArray || function(e) {
return "[object Array]" === Object.prototype.toString.call(e)
},
isPlainObject: function(e) {
return !!e && "[object Object]" === Object.prototype.toString.call(e)
},
toArray: function(e) {
return Array.prototype.slice.call(e)
},
getKeys: Object.keys || function(e) {
var t = [],
n = "";
for (n in e) e.hasOwnProperty(n) && t.push(n);
return t
},
encode: function(e) {
return String(e).replace(/[,;"\\=\s%]/g, function(e) {
return encodeURIComponent(e)
})
},
decode: function(e) {
return decodeURIComponent(e)
},
retrieve: function(e, t) {
return null == e ? t : e
}
};
a.defaults = {}, a.expiresMultiplier = 86400, a.set = function(e, t, n) {
if (s.isPlainObject(e))
for (var r in e) e.hasOwnProperty(r) && this.set(r, e[r], t);
else {
n = s.isPlainObject(n) ? n : {
expires: n
};
var a = n.expires !== o ? n.expires : this.defaults.expires || "",
u = typeof a;
"string" === u && "" !== a ? a = new Date(a) : "number" === u && (a = new Date(+new Date + 1e3 * this.expiresMultiplier * a)), "" !== a && "toGMTString" in a && (a = ";expires=" + a.toGMTString());
var l = n.path || this.defaults.path;
l = l ? ";path=" + l : "";
var c = n.domain || this.defaults.domain;
c = c ? ";domain=" + c : "";
var f = n.secure || this.defaults.secure ? ";secure" : "";
n.secure === !1 && (f = ""), i.cookie = s.encode(e) + "=" + s.encode(t) + a + l + c + f
}
return this
}, a.setDefault = function(e, t, n) {
if (s.isPlainObject(e)) {
for (var r in e) this.get(r) === o && this.set(r, e[r], t);
return a
}
return this.get(e) === o ? this.set.apply(this, arguments) : void 0
}, a.remove = function(e) {
e = s.isArray(e) ? e : s.toArray(arguments);
for (var t = 0, n = e.length; n > t; t++) this.set(e[t], "", -1);
return this
}, a.empty = function() {
return this.remove(s.getKeys(this.all()))
}, a.get = function(e, t) {
var n = this.all();
if (s.isArray(e)) {
for (var r = {}, i = 0, o = e.length; o > i; i++) {
var a = e[i];
r[a] = s.retrieve(n[a], t)
}
return r
}
return s.retrieve(n[e], t)
}, a.all = function() {
if ("" === i.cookie) return {};
for (var e = i.cookie.split("; "), t = {}, n = 0, r = e.length; r > n; n++) {
var o = e[n].split("="),
a = s.decode(o.shift()),
u = s.decode(o.join("="));
t[a] = u
}
return t
}, a.enabled = function() {
if (navigator.cookieEnabled) return !0;
var e = "_" === a.set("_", "_").get("_");
return a.remove("_"), e
}, r = function() {
return a
}.call(t, n, t, e), !(r !== o && (e.exports = r))
}("undefined" == typeof document ? null : document)
}])
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment