javascript
ytdownloader
/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
function parse_query_string(n) {
for (var t, f, u = n.split("&"), i = {}, r = 0; r < u.length; r++)
t = u[r].split("="),
typeof i[t[0]] == "undefined" ? i[t[0]] = decodeURIComponent(t[1]) : typeof i[t[0]] == "string" ? (f = [i[t[0]], decodeURIComponent(t[1])],
i[t[0]] = f) : i[t[0]].push(decodeURIComponent(t[1]));
return i
}
function openNav() {
$(".topnav").toggleClass("responsive")
}
function ksearchvideo() {
var n = $("#s_input").val().trim();
return n && $.ajax({
type: "POST",
url: k_url_search,
data: {
q: n,
vt: k_page
},
beforeSend: function() {
$("#loader-wrapper").css("display", "block");
$("#search-form").css("display", "none");
$("#search-result").empty()
},
success: function(n, t, i) {
i.status != 200 && setTimeout(function() {
window.location.reload()
}, 3e3);
n.status == "ok" ? (n.p === "search" ? renderListVideo(n.items) : n.p !== "convert" || n.mess ? n.p === "facebook" ? n.mess ? renderFail(n.mess) : (k_vdata = n,
renderFacebook(n)) : n.mess && renderFail(n.mess) : (k__token = n.token,
k_time = n.timeExpires,
renderDetail(n)),
$("#loader-wrapper").css("display", "none")) : setTimeout(function() {
window.location.reload()
}, 3e3)
},
error: function(n) {
return n.status == 429 ? convertFailed(txt_error_429) : convertFailed(txt_error_404)
}
}),
!1
}
function k_parseDuration(n) {
var i;
if (!n)
return "";
var r = []
, t = 0
, f = n.match(/(?:(\d*)Y)?(?:(\d*)M)?(?:(\d*)W)?(?:(\d*)D)?T(?:(\d*)H)?(?:(\d*)M)?(?:(\d*)S)?/i)
, u = [{
pos: 1,
multiplier: 31536e3
}, {
pos: 2,
multiplier: 2592e3
}, {
pos: 3,
multiplier: 604800
}, {
pos: 4,
multiplier: 86400
}, {
pos: 5,
multiplier: 3600
}, {
pos: 6,
multiplier: 60
}, {
pos: 7,
multiplier: 1
}];
if (null === f)
return "";
for (i = 0; i < u.length; i++)
void 0 !== f[u[i].pos] && (t += parseInt(f[u[i].pos]) * u[i].multiplier);
return 3599 < t && (r.push(parseInt(t / 3600)),
t %= 3600),
r.push(("0" + parseInt(t / 60)).slice(-2)),
r.push(("0" + t % 60).slice(-2)),
r.join(":")
}
function matchYoutubeUrl(n) {
var t = /^(?:https?:\/\/)?(?:m\.|www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/;
return n.match(t) ? n.match(t)[1] : !1
}
function fancyTimeFormat(n) {
var i = ~~(n / 3600)
, r = ~~(n % 3600 / 60)
, u = ~~n % 60
, t = "";
return i > 0 && (t += "" + i + ":" + (r < 10 ? "0" : "")),
t += "" + r + ":" + (u < 10 ? "0" : ""),
t + ("" + u)
}
function renderFail(n) {
$("#loader-wrapper").css("display", "none");
$("#search-form").css("display", "block");
var t = '<div class="error"><p>' + n + "<\/p><\/div>";
$("#search-result").html(t)
}
function renderListVideo(n) {
var t, i, r, u;
if (n.length) {
for (i = $("<ul>", {
"class": "listvideo"
}),
t = 0; t < n.length; ++t)
item = n[t],
r = c_url_tmp + yt_tmp + item.v,
u = '<li> <a href="' + r + '" title="' + item.t + '" target="_blank"><div class="img-thumb"><img src="https://i.ytimg.com/vi/' + item.v + '/mqdefault.jpg" width="100%" height="100%" alt="yt5s youtube downloader"/><span class="time">' + item.d + '<\/span><\/div> <div class="content"><div class="clearfix"><h3>' + item.t + "<\/h3><\/div><\/div><\/a><\/li>",
i.append(u);
$("#search-result").html(i)
}
}
function convertSuccess(n) {
$("#mesg-convert").addClass("hidden");
$("#asuccess").attr("href", n).removeClass("hidden");
$("#cnext").removeClass("hidden")
}
function convertFailed(n) {
renderFail(n)
}
function checkTask(n) {
$.ajax({
type: "POST",
url: k_url_check_task,
data: {
vid: $("#video_id").val(),
b_id: n
},
success: function(t, i, r) {
r.status != 200 ? checkTask(n) : t.c_status == "CONVERTED" ? convertSuccess(t.dlink) : t.c_status == "FAILED" ? convertFailed(t.mess) : setTimeout(function() {
checkTask(n)
}, 5e3)
},
error: function() {
checkTask(n)
}
})
}
function convertFile(n) {
var n = $("#formatSelect").find(":selected")
, t = n.data("format")
, i = n.val();
$.ajax({
type: "POST",
url: k_url_convert,
headers: {
"X-Requested-Key": "de0cfuirtgf67a"
},
data: {
v_id: $("#video_id").val(),
ftype: t,
fquality: i,
token: k__token,
timeExpire: k_time,
client: k_prefix_name
},
beforeSend: function() {
$("#formatSelect").addClass("hidden");
$("#btn-action").addClass("hidden");
$("#mesg-convert").removeClass("hidden")
},
success: function(n) {
if (typeof n.c_status == "undefined")
return convertFailed(txt_error_404);
if (n.c_status == "ok" && typeof n.c_server != "undefined")
convert_Server(n.c_server, t, i);
else
return n.c_status == "ok" && typeof n.d_url != "undefined" ? typeof n.checkLink != "undefined" ? getLink_Server(n.d_url) : convertSuccess(n.d_url) : convertFailed(txt_error_404)
},
error: function() {
return convertFailed(txt_error_500)
}
})
}
function getLink_Server(n) {
$.ajax({
type: "GET",
url: n,
success: function(n) {
if (typeof n.c_status == "undefined")
return convertFailed(txt_error_404);
if (n.c_status == "ok")
convertSuccess(n.link);
else
return convertFailed(txt_error_404)
},
error: function() {
return convertFailed(txt_error_500)
}
})
}
function convert_Server(n, t, i) {
$.ajax({
type: "POST",
url: n + "/api/json/convert",
data: {
v_id: $("#video_id").val(),
ftype: t,
fquality: i,
fname: $("#video_fn").val(),
token: $("#c_token").val(),
timeExpire: $("#c_time").val()
},
success: function(t) {
return typeof t.status == "undefined" ? convertFailed(txt_error_404) : t.status == "success" ? t.statusCode == 200 ? convertSuccess(t.result) : t.statusCode == 300 && typeof t.jobId != "undefined" ? WSCheckStatus(n, t.jobId) : convertFailed(getStatusText(t.statusCode)) : convertFailed(txt_error_404)
},
error: function() {
return convertFailed(txt_error_500)
}
})
}
function WSCheckStatus(n, t) {
const i = new URL(n);
var r = i.protocol == "https:" ? "wss:" : "ws:"
, u = r + "//" + i.host + "/sub/" + t + "?fname=" + k_prefix_name;
socket = new WebSocket(u);
socket.onmessage = function(n) {
var t = JSON.parse(n.data);
t.action == "success" && convertSuccess(t.url);
t.action == "progress" ? UpdateProgress(t.value) : t.action == "error" && convertFailed(txt_error_500)
}
;
socket.onerror = function() {
convertFailed(txt_error_404)
}
}
function UpdateProgress(n) {
var t = $("#mesg-convert span");
t.removeClass("lds-dual-ring");
t.text(n + "%")
}
function getStatusText(n) {
var t = "";
return n == 500 ? t = txt_error_500 : n == 400 ? t = txt_error_404 : n == 300 && (t = txt_convert_next),
t
}
function randomIntFromInterval(n, t) {
return Math.floor(Math.random() * (t - n + 1) + n)
}
function renderDetail(n) {
var t = '<div class="detail"><div class="thumbnail"><input type="hidden" id="video_id" value="' + n.vid + '" /><input type="hidden" id="video_fn" value="' + escapeHtml(n.fn) + '" /><input type="hidden" id="c_token" value="' + n.token + '" /><input type="hidden" id="c_time" value="' + n.timeExpires + '" />\n<img src="https://i.ytimg.com/vi/' + n.vid + '/0.jpg">\n<div class="content"><div class="clearfix">\n<h3>' + n.title + "<\/h3>\n<p>" + n.a + '<\/p>\n<p class="mag0">' + fancyTimeFormat(n.t) + "<\/p>";
t += '<div class="magT10"> <div class="flex">';
n.links != undefined && n.links != null ? (t += renderSelectQuality(n.links),
t += '<button id="btn-action" class="btn-blue-small form-control" type="button" onclick="convertFile(0)">Get link<\/button>') : t += '<div class="error"><p>The live video cannot be processed. Please try again later.<\/p><\/div>';
t += '<span id="mesg-convert" class="form-control mesg-convert hidden"> <span class="lds-dual-ring"><\/span> ' + txt_processing + '<\/span><a id="asuccess" class="form-control mesg-convert success hidden" rel="nofollow" href="#"> ' + txt_download + ' <\/a>    <a id="cnext" class="form-control mesg-convert hidden" href="' + k_url_next + '">' + txt_convert_next + '<\/a><\/div><br/><br/><br/> <div class="addthis_inline_share_toolbox"><\/div> <\/div><\/div><\/div><\/div> ';
$("#search-result").html(t);
n.kc != undefined && n.kc != null && convertFile(n.kc)
}
function escapeHtml(n) {
"use strict";
return n.replace(/[\"&'\/<>]/g, function(n) {
return {
"'": "'",
"/": "/",
'"': """,
"&": "&",
"<": "<",
">": ">"
}[n]
})
}
function KHtmlEncode(n) {
var t = document.createElement("div");
return t.innerText = t.textContent = n,
t.innerHTML
}
function selectFileQuality(n) {
if (k_vdata.links != undefined && k_vdata.links != null && k_vdata.links.hasOwnProperty(n)) {
var t = k_vdata.title;
$("#asuccess").attr("href", k_vdata.links[n]);
$("#asuccess").attr("download", t + "_" + n + ".mp4")
}
}
function renderFacebook(n) {
var t;
if (n.thumbnail = n.thumbnail ? n.thumbnail : "https://i.ytimg.com/vi/1/0.jpg",
t = '<div class="detail"><div class="thumbnail">\n<img src="' + n.thumbnail + '">\n<div class="content"><div class="clearfix">\n<h3>' + n.title + '<\/h3>\n<p class="mag0">' + n.duration + "<\/p>",
t += '<div class="magT10"> <div class="flex">',
n.links != undefined && n.links != null) {
t += '<select name="formatSelect" class="form-control form-control-small" id="formatSelect">';
var r = ""
, i = !1
, u = n.title;
n.links.hd != undefined && n.links.hd != null && (r += '<option value="hd" onclick="selectFileQuality(\'hd\')" >MP4 HD<\/option>',
i || (i = n.links.hd,
u += "_hd.mp4"));
n.links.sd != undefined && n.links.sd != null && (r += '<option value="sd" onclick="selectFileQuality(\'sd\')" >MP4 SD<\/option>',
i || (i = n.links.sd,
u += "_sd.mp4"));
n.links.audio != undefined && n.links.audio != null && (r += '<option value="audio" onclick="selectFileQuality(\'audio\')" >MP3<\/option>',
i || (i = n.links.audio,
u += "_audio.mp4"));
t += r + "<\/select>";
t += '<a id="asuccess" class="form-control mesg-convert success" target="_blank" rel="nofollow" href="' + i + '" download="' + u + '" data-type="mp4">' + txt_download + "<\/a>"
}
t += '<\/div><br/><br/><br/> <div class="addthis_inline_share_toolbox"><\/div> <\/div><\/div><\/div><\/div> ';
$("#search-result").html(t);
$("#formatSelect").change(function() {
selectFileQuality(this.value)
})
}
function renderSelectQuality(n) {
var t = '<select class="form-control form-control-small" id="formatSelect">';
return $.each({
mp4: ["1080", "720", "480", "360", "240", "144"],
"3gp": ["144"],
ogg: ["128kbps"],
mp3: ["320kbps", "256kbps", "192kbps", "128kbps", "64kbps"]
}, function(i, r) {
n[i] !== undefined && (t += '<optgroup label="' + i + '">',
$.each(r, function(r, u) {
$.each(n[i], function(n, i) {
u == i.key && (t += '<option data-format="' + i.f + '" value="' + i.k + '" ' + (typeof i.selected != "undefined" && i.selected == "selected" ? "selected" : "") + ">" + i.q + " (" + i.size + ") <\/option>")
})
}),
t += "<\/optgroup>")
}),
t += "<\/select>"
}
!function(n, t) {
"use strict";
"object" == typeof module && "object" == typeof module.exports ? module.exports = n.document ? t(n, !0) : function(n) {
if (!n.document)
throw new Error("jQuery requires a window with a document");
return t(n)
}
: t(n)
}("undefined" != typeof window ? window : this, function(n, t) {
"use strict";
function br(n, t, i) {
var r, e, u = (i = i || f).createElement("script");
if (u.text = n,
t)
for (r in ee)
(e = t[r] || t.getAttribute && t.getAttribute(r)) && u.setAttribute(r, e);
i.head.appendChild(u).parentNode.removeChild(u)
}
function it(n) {
return null == n ? n + "" : "object" == typeof n || "function" == typeof n ? ri[pr.call(n)] || "object" : typeof n
}
function pi(n) {
var t = !!n && "length"in n && n.length
, i = it(n);
return !u(n) && !tt(n) && ("array" === i || 0 === t || "number" == typeof t && 0 < t && t - 1 in n)
}
function c(n, t) {
return n.nodeName && n.nodeName.toLowerCase() === t.toLowerCase()
}
function bi(n, t, r) {
return u(t) ? i.grep(n, function(n, i) {
return !!t.call(n, i, n) !== r
}) : t.nodeType ? i.grep(n, function(n) {
return n === t !== r
}) : "string" != typeof t ? i.grep(n, function(n) {
return -1 < ii.call(t, n) !== r
}) : i.filter(t, n, r)
}
function uu(n, t) {
while ((n = n[t]) && 1 !== n.nodeType)
;
return n
}
function ut(n) {
return n
}
function fi(n) {
throw n;
}
function fu(n, t, i, r) {
var f;
try {
n && u(f = n.promise) ? f.call(n).done(t).fail(i) : n && u(f = n.then) ? f.call(n, t, i) : t.apply(void 0, [n].slice(r))
} catch (n) {
i.apply(void 0, [n])
}
}
function oi() {
f.removeEventListener("DOMContentLoaded", oi);
n.removeEventListener("load", oi);
i.ready()
}
function ce(n, t) {
return t.toUpperCase()
}
function y(n) {
return n.replace(se, "ms-").replace(he, ce)
}
function pt() {
this.expando = i.expando + pt.uid++
}
function ou(n, t, i) {
var u, r;
if (void 0 === i && 1 === n.nodeType)
if (u = "data-" + t.replace(ae, "-$&").toLowerCase(),
"string" == typeof (i = n.getAttribute(u))) {
try {
i = "true" === (r = i) || "false" !== r && ("null" === r ? null : r === +r + "" ? +r : le.test(r) ? JSON.parse(r) : r)
} catch (n) {}
o.set(n, t, i)
} else
i = void 0;
return i
}
function hu(n, t, r, u) {
var s, h, c = 20, l = u ? function() {
return u.cur()
}
: function() {
return i.css(n, t, "")
}
, o = l(), e = r && r[3] || (i.cssNumber[t] ? "" : "px"), f = n.nodeType && (i.cssNumber[t] || "px" !== e && +o) && wt.exec(i.css(n, t));
if (f && f[3] !== e) {
for (o /= 2,
e = e || f[3],
f = +o || 1; c--; )
i.style(n, t, f + e),
(1 - h) * (1 - (h = l() / o || .5)) <= 0 && (c = 0),
f /= h;
f *= 2;
i.style(n, t, f + e);
r = r || []
}
return r && (f = +f || +o || 0,
s = r[1] ? f + (r[1] + 1) * r[2] : +r[2],
u && (u.unit = e,
u.start = f,
u.end = s)),
s
}
function et(n, t) {
for (var h, f, a, s, c, l, e, o = [], u = 0, v = n.length; u < v; u++)
(f = n[u]).style && (h = f.style.display,
t ? ("none" === h && (o[u] = r.get(f, "display") || null,
o[u] || (f.style.display = "")),
"" === f.style.display && kt(f) && (o[u] = (e = c = s = void 0,
c = (a = f).ownerDocument,
l = a.nodeName,
(e = di[l]) || (s = c.body.appendChild(c.createElement(l)),
e = i.css(s, "display"),
s.parentNode.removeChild(s),
"none" === e && (e = "block"),
di[l] = e)))) : "none" !== h && (o[u] = "none",
r.set(f, "display", h)));
for (u = 0; u < v; u++)
null != o[u] && (n[u].style.display = o[u]);
return n
}
function s(n, t) {
var r;
return r = "undefined" != typeof n.getElementsByTagName ? n.getElementsByTagName(t || "*") : "undefined" != typeof n.querySelectorAll ? n.querySelectorAll(t || "*") : [],
void 0 === t || t && c(n, t) ? i.merge([n], r) : r
}
function gi(n, t) {
for (var i = 0, u = n.length; i < u; i++)
r.set(n[i], "globalEval", !t || r.get(t[i], "globalEval"))
}
function vu(n, t, r, u, f) {
for (var e, o, p, a, w, v, c = t.createDocumentFragment(), y = [], l = 0, b = n.length; l < b; l++)
if ((e = n[l]) || 0 === e)
if ("object" === it(e))
i.merge(y, e.nodeType ? [e] : e);
else if (au.test(e)) {
for (o = o || c.appendChild(t.createElement("div")),
p = (cu.exec(e) || ["", ""])[1].toLowerCase(),
a = h[p] || h._default,
o.innerHTML = a[1] + i.htmlPrefilter(e) + a[2],
v = a[0]; v--; )
o = o.lastChild;
i.merge(y, o.childNodes);
(o = c.firstChild).textContent = ""
} else
y.push(t.createTextNode(e));
for (c.textContent = "",
l = 0; e = y[l++]; )
if (u && -1 < i.inArray(e, u))
f && f.push(e);
else if (w = ft(e),
o = s(c.appendChild(e), "script"),
w && gi(o),
r)
for (v = 0; e = o[v++]; )
lu.test(e.type || "") && r.push(e);
return c
}
function ot() {
return !0
}
function st() {
return !1
}
function we(n, t) {
return n === function() {
try {
return f.activeElement
} catch (n) {}
}() == ("focus" === t)
}
function nr(n, t, r, u, f, e) {
var o, s;
if ("object" == typeof t) {
for (s in "string" != typeof r && (u = u || r,
r = void 0),
t)
nr(n, s, r, u, t[s], e);
return n
}
if (null == u && null == f ? (f = r,
u = r = void 0) : null == f && ("string" == typeof r ? (f = u,
u = void 0) : (f = u,
u = r,
r = void 0)),
!1 === f)
f = st;
else if (!f)
return n;
return 1 === e && (o = f,
(f = function(n) {
return i().off(n),
o.apply(this, arguments)
}
).guid = o.guid || (o.guid = i.guid++)),
n.each(function() {
i.event.add(this, t, f, u, r)
})
}
function hi(n, t, u) {
u ? (r.set(n, t, !1),
i.event.add(n, t, {
namespace: !1,
handler: function(n) {
var o, e, f = r.get(this, t);
if (1 & n.isTrigger && this[t]) {
if (f.length)
(i.event.special[t] || {}).delegateType && n.stopPropagation();
else if (f = b.call(arguments),
r.set(this, t, f),
o = u(this, t),
this[t](),
f !== (e = r.get(this, t)) || o ? r.set(this, t, !1) : e = {},
f !== e)
return n.stopImmediatePropagation(),
n.preventDefault(),
e.value
} else
f.length && (r.set(this, t, {
value: i.event.trigger(i.extend(f[0], i.Event.prototype), f.slice(1), this)
}),
n.stopImmediatePropagation())
}
})) : void 0 === r.get(n, t) && i.event.add(n, t, ot)
}
function pu(n, t) {
return c(n, "table") && c(11 !== t.nodeType ? t : t.firstChild, "tr") && i(n).children("tbody")[0] || n
}
function no(n) {
return n.type = (null !== n.getAttribute("type")) + "/" + n.type,
n
}
function to(n) {
return "true/" === (n.type || "").slice(0, 5) ? n.type = n.type.slice(5) : n.removeAttribute("type"),
n
}
function wu(n, t) {
var u, c, f, s, h, l, a, e;
if (1 === t.nodeType) {
if (r.hasData(n) && (s = r.access(n),
h = r.set(t, s),
e = s.events))
for (f in delete h.handle,
h.events = {},
e)
for (u = 0,
c = e[f].length; u < c; u++)
i.event.add(t, f, e[f][u]);
o.hasData(n) && (l = o.access(n),
a = i.extend({}, l),
o.set(t, a))
}
}
function ht(n, t, f, o) {
t = yr.apply([], t);
var a, w, l, v, h, b, c = 0, y = n.length, d = y - 1, p = t[0], k = u(p);
if (k || 1 < y && "string" == typeof p && !e.checkClone && de.test(p))
return n.each(function(i) {
var r = n.eq(i);
k && (t[0] = p.call(this, i, r.html()));
ht(r, t, f, o)
});
if (y && (w = (a = vu(t, n[0].ownerDocument, !1, n, o)).firstChild,
1 === a.childNodes.length && (a = w),
w || o)) {
for (v = (l = i.map(s(a, "script"), no)).length; c < y; c++)
h = a,
c !== d && (h = i.clone(h, !0, !0),
v && i.merge(l, s(h, "script"))),
f.call(n[c], h, c);
if (v)
for (b = l[l.length - 1].ownerDocument,
i.map(l, to),
c = 0; c < v; c++)
h = l[c],
lu.test(h.type || "") && !r.access(h, "globalEval") && i.contains(b, h) && (h.src && "module" !== (h.type || "").toLowerCase() ? i._evalUrl && !h.noModule && i._evalUrl(h.src, {
nonce: h.nonce || h.getAttribute("nonce")
}) : br(h.textContent.replace(ge, ""), h, b))
}
return n
}
function bu(n, t, r) {
for (var u, e = t ? i.filter(t, n) : n, f = 0; null != (u = e[f]); f++)
r || 1 !== u.nodeType || i.cleanData(s(u)),
u.parentNode && (r && ft(u) && gi(s(u, "script")),
u.parentNode.removeChild(u));
return n
}
function ni(n, t, r) {
var o, s, h, f, u = n.style;
return (r = r || ci(n)) && ("" !== (f = r.getPropertyValue(t) || r[t]) || ft(n) || (f = i.style(n, t)),
!e.pixelBoxStyles() && tr.test(f) && io.test(t) && (o = u.width,
s = u.minWidth,
h = u.maxWidth,
u.minWidth = u.maxWidth = u.width = f,
f = r.width,
u.width = o,
u.minWidth = s,
u.maxWidth = h)),
void 0 !== f ? f + "" : f
}
function ku(n, t) {
return {
get: function() {
if (!n())
return (this.get = t).apply(this, arguments);
delete this.get
}
}
}
function ir(n) {
var t = i.cssProps[n] || nf[n];
return t || (n in gu ? n : nf[n] = function(n) {
for (var i = n[0].toUpperCase() + n.slice(1), t = du.length; t--; )
if ((n = du[t] + i)in gu)
return n
}(n) || n)
}
function uf(n, t, i) {
var r = wt.exec(t);
return r ? Math.max(0, r[2] - (i || 0)) + (r[3] || "px") : t
}
function rr(n, t, r, u, f, e) {
var o = "width" === t ? 1 : 0
, h = 0
, s = 0;
if (r === (u ? "border" : "content"))
return 0;
for (; o < 4; o += 2)
"margin" === r && (s += i.css(n, r + w[o], !0, f)),
u ? ("content" === r && (s -= i.css(n, "padding" + w[o], !0, f)),
"margin" !== r && (s -= i.css(n, "border" + w[o] + "Width", !0, f))) : (s += i.css(n, "padding" + w[o], !0, f),
"padding" !== r ? s += i.css(n, "border" + w[o] + "Width", !0, f) : h += i.css(n, "border" + w[o] + "Width", !0, f));
return !u && 0 <= e && (s += Math.max(0, Math.ceil(n["offset" + t[0].toUpperCase() + t.slice(1)] - e - s - h - .5)) || 0),
s
}
function ff(n, t, r) {
var f = ci(n)
, o = (!e.boxSizingReliable() || r) && "border-box" === i.css(n, "boxSizing", !1, f)
, s = o
, u = ni(n, t, f)
, h = "offset" + t[0].toUpperCase() + t.slice(1);
if (tr.test(u)) {
if (!r)
return u;
u = "auto"
}
return (!e.boxSizingReliable() && o || "auto" === u || !parseFloat(u) && "inline" === i.css(n, "display", !1, f)) && n.getClientRects().length && (o = "border-box" === i.css(n, "boxSizing", !1, f),
(s = h in n) && (u = n[h])),
(u = parseFloat(u) || 0) + rr(n, t, r || (o ? "border" : "content"), s, f, u) + "px"
}
function a(n, t, i, r, u) {
return new a.prototype.init(n,t,i,r,u)
}
function ur() {
li && (!1 === f.hidden && n.requestAnimationFrame ? n.requestAnimationFrame(ur) : n.setTimeout(ur, i.fx.interval),
i.fx.tick())
}
function hf() {
return n.setTimeout(function() {
ct = void 0
}),
ct = Date.now()
}
function ai(n, t) {
var u, r = 0, i = {
height: n
};
for (t = t ? 1 : 0; r < 4; r += 2 - t)
i["margin" + (u = w[r])] = i["padding" + u] = n;
return t && (i.opacity = i.width = n),
i
}
function cf(n, t, i) {
for (var u, f = (v.tweeners[t] || []).concat(v.tweeners["*"]), r = 0, e = f.length; r < e; r++)
if (u = f[r].call(i, t, n))
return u
}
function v(n, t, r) {
var o, s, h = 0, a = v.prefilters.length, e = i.Deferred().always(function() {
delete l.elem
}), l = function() {
if (s)
return !1;
for (var o = ct || hf(), t = Math.max(0, f.startTime + f.duration - o), i = 1 - (t / f.duration || 0), r = 0, u = f.tweens.length; r < u; r++)
f.tweens[r].run(i);
return e.notifyWith(n, [f, i, t]),
i < 1 && u ? t : (u || e.notifyWith(n, [f, 1, 0]),
e.resolveWith(n, [f]),
!1)
}, f = e.promise({
elem: n,
props: i.extend({}, t),
opts: i.extend(!0, {
specialEasing: {},
easing: i.easing._default
}, r),
originalProperties: t,
originalOptions: r,
startTime: ct || hf(),
duration: r.duration,
tweens: [],
createTween: function(t, r) {
var u = i.Tween(n, f.opts, t, r, f.opts.specialEasing[t] || f.opts.easing);
return f.tweens.push(u),
u
},
stop: function(t) {
var i = 0
, r = t ? f.tweens.length : 0;
if (s)
return this;
for (s = !0; i < r; i++)
f.tweens[i].run(1);
return t ? (e.notifyWith(n, [f, 1, 0]),
e.resolveWith(n, [f, t])) : e.rejectWith(n, [f, t]),
this
}
}), c = f.props;
for (!function(n, t) {
var r, f, e, u, o;
for (r in n)
if (e = t[f = y(r)],
u = n[r],
Array.isArray(u) && (e = u[1],
u = n[r] = u[0]),
r !== f && (n[f] = u,
delete n[r]),
(o = i.cssHooks[f]) && "expand"in o)
for (r in u = o.expand(u),
delete n[f],
u)
r in n || (n[r] = u[r],
t[r] = e);
else
t[f] = e
}(c, f.opts.specialEasing); h < a; h++)
if (o = v.prefilters[h].call(f, n, c, f.opts))
return u(o.stop) && (i._queueHooks(f.elem, f.opts.queue).stop = o.stop.bind(o)),
o;
return i.map(c, cf, f),
u(f.opts.start) && f.opts.start.call(n, f),
f.progress(f.opts.progress).done(f.opts.done, f.opts.complete).fail(f.opts.fail).always(f.opts.always),
i.fx.timer(i.extend(l, {
elem: n,
anim: f,
queue: f.opts.queue
})),
f
}
function g(n) {
return (n.match(l) || []).join(" ")
}
function nt(n) {
return n.getAttribute && n.getAttribute("class") || ""
}
function fr(n) {
return Array.isArray(n) ? n : "string" == typeof n && n.match(l) || []
}
function hr(n, t, r, u) {
var f;
if (Array.isArray(t))
i.each(t, function(t, i) {
r || fo.test(n) ? u(n, i) : hr(n + "[" + ("object" == typeof i && null != i ? t : "") + "]", i, r, u)
});
else if (r || "object" !== it(t))
u(n, t);
else
for (f in t)
hr(n + "[" + f + "]", t[f], r, u)
}
function df(n) {
return function(t, i) {
"string" != typeof t && (i = t,
t = "*");
var r, f = 0, e = t.toLowerCase().match(l) || [];
if (u(i))
while (r = e[f++])
"+" === r[0] ? (r = r.slice(1) || "*",
(n[r] = n[r] || []).unshift(i)) : (n[r] = n[r] || []).push(i)
}
}
function gf(n, t, r, u) {
function e(s) {
var h;
return f[s] = !0,
i.each(n[s] || [], function(n, i) {
var s = i(t, r, u);
return "string" != typeof s || o || f[s] ? o ? !(h = s) : void 0 : (t.dataTypes.unshift(s),
e(s),
!1)
}),
h
}
var f = {}
, o = n === cr;
return e(t.dataTypes[0]) || !f["*"] && e("*")
}
function ar(n, t) {
var r, u, f = i.ajaxSettings.flatOptions || {};
for (r in t)
void 0 !== t[r] && ((f[r] ? n : u || (u = {}))[r] = t[r]);
return u && i.extend(!0, n, u),
n
}
var d = [], f = n.document, ue = Object.getPrototypeOf, b = d.slice, yr = d.concat, yi = d.push, ii = d.indexOf, ri = {}, pr = ri.toString, ui = ri.hasOwnProperty, wr = ui.toString, fe = wr.call(Object), e = {}, u = function(n) {
return "function" == typeof n && "number" != typeof n.nodeType
}, tt = function(n) {
return null != n && n === n.window
}, ee = {
type: !0,
src: !0,
nonce: !0,
noModule: !0
}, kr = "3.4.1", i = function(n, t) {
return new i.fn.init(n,t)
}, oe = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, k, wi, nu, tu, iu, ru, l, eu, ei, yt, kt, ki, di, gt, si, au, ct, li, lt, ef, of, sf, lf, at, af, vf, yf, er, or, ne, vt, te, vr, vi, ie, re;
i.fn = i.prototype = {
jquery: kr,
constructor: i,
length: 0,
toArray: function() {
return b.call(this)
},
get: function(n) {
return null == n ? b.call(this) : n < 0 ? this[n + this.length] : this[n]
},
pushStack: function(n) {
var t = i.merge(this.constructor(), n);
return t.prevObject = this,
t
},
each: function(n) {
return i.each(this, n)
},
map: function(n) {
return this.pushStack(i.map(this, function(t, i) {
return n.call(t, i, t)
}))
},
slice: function() {
return this.pushStack(b.apply(this, arguments))
},
first: function() {
return this.eq(0)
},
last: function() {
return this.eq(-1)
},
eq: function(n) {
var i = this.length
, t = +n + (n < 0 ? i : 0);
return this.pushStack(0 <= t && t < i ? [this[t]] : [])
},
end: function() {
return this.prevObject || this.constructor()
},
push: yi,
sort: d.sort,
splice: d.splice
};
i.extend = i.fn.extend = function() {
var s, f, e, t, o, c, n = arguments[0] || {}, r = 1, l = arguments.length, h = !1;
for ("boolean" == typeof n && (h = n,
n = arguments[r] || {},
r++),
"object" == typeof n || u(n) || (n = {}),
r === l && (n = this,
r--); r < l; r++)
if (null != (s = arguments[r]))
for (f in s)
t = s[f],
"__proto__" !== f && n !== t && (h && t && (i.isPlainObject(t) || (o = Array.isArray(t))) ? (e = n[f],
c = o && !Array.isArray(e) ? [] : o || i.isPlainObject(e) ? e : {},
o = !1,
n[f] = i.extend(h, c, t)) : void 0 !== t && (n[f] = t));
return n
}
;
i.extend({
expando: "jQuery" + (kr + Math.random()).replace(/\D/g, ""),
isReady: !0,
error: function(n) {
throw new Error(n);
},
noop: function() {},
isPlainObject: function(n) {
var t, i;
return !(!n || "[object Object]" !== pr.call(n)) && (!(t = ue(n)) || "function" == typeof (i = ui.call(t, "constructor") && t.constructor) && wr.call(i) === fe)
},
isEmptyObject: function(n) {
for (var t in n)
return !1;
return !0
},
globalEval: function(n, t) {
br(n, {
nonce: t && t.nonce
})
},
each: function(n, t) {
var r, i = 0;
if (pi(n)) {
for (r = n.length; i < r; i++)
if (!1 === t.call(n[i], i, n[i]))
break
} else
for (i in n)
if (!1 === t.call(n[i], i, n[i]))
break;
return n
},
trim: function(n) {
return null == n ? "" : (n + "").replace(oe, "")
},
makeArray: function(n, t) {
var r = t || [];
return null != n && (pi(Object(n)) ? i.merge(r, "string" == typeof n ? [n] : n) : yi.call(r, n)),
r
},
inArray: function(n, t, i) {
return null == t ? -1 : ii.call(t, n, i)
},
merge: function(n, t) {
for (var u = +t.length, i = 0, r = n.length; i < u; i++)
n[r++] = t[i];
return n.length = r,
n
},
grep: function(n, t, i) {
for (var u = [], r = 0, f = n.length, e = !i; r < f; r++)
!t(n[r], r) !== e && u.push(n[r]);
return u
},
map: function(n, t, i) {
var e, u, r = 0, f = [];
if (pi(n))
for (e = n.length; r < e; r++)
null != (u = t(n[r], r, i)) && f.push(u);
else
for (r in n)
null != (u = t(n[r], r, i)) && f.push(u);
return yr.apply([], f)
},
guid: 1,
support: e
});
"function" == typeof Symbol && (i.fn[Symbol.iterator] = d[Symbol.iterator]);
i.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(n, t) {
ri["[object " + t + "]"] = t.toLowerCase()
});
k = function(n) {
function u(n, t, r, u) {
var s, p, l, v, w, d, g, y = t && t.ownerDocument, a = t ? t.nodeType : 9;
if (r = r || [],
"string" != typeof n || !n || 1 !== a && 9 !== a && 11 !== a)
return r;
if (!u && ((t ? t.ownerDocument || t : c) !== i && b(t),
t = t || i,
h)) {
if (11 !== a && (w = ar.exec(n)))
if (s = w[1]) {
if (9 === a) {
if (!(l = t.getElementById(s)))
return r;
if (l.id === s)
return r.push(l),
r
} else if (y && (l = y.getElementById(s)) && et(t, l) && l.id === s)
return r.push(l),
r
} else {
if (w[2])
return k.apply(r, t.getElementsByTagName(n)),
r;
if ((s = w[3]) && e.getElementsByClassName && t.getElementsByClassName)
return k.apply(r, t.getElementsByClassName(s)),
r
}
if (e.qsa && !lt[n + " "] && (!o || !o.test(n)) && (1 !== a || "object" !== t.nodeName.toLowerCase())) {
if (g = n,
y = t,
1 === a && er.test(n)) {
for ((v = t.getAttribute("id")) ? v = v.replace(yi, pi) : t.setAttribute("id", v = f),
p = (d = ft(n)).length; p--; )
d[p] = "#" + v + " " + pt(d[p]);
g = d.join(",");
y = ti.test(n) && ri(t.parentNode) || t
}
try {
return k.apply(r, y.querySelectorAll(g)),
r
} catch (t) {
lt(n, !0)
} finally {
v === f && t.removeAttribute("id")
}
}
}
return si(n.replace(at, "$1"), t, r, u)
}
function yt() {
var n = [];
return function i(r, u) {
return n.push(r + " ") > t.cacheLength && delete i[n.shift()],
i[r + " "] = u
}
}
function l(n) {
return n[f] = !0,
n
}
function a(n) {
var t = i.createElement("fieldset");
try {
return !!n(t)
} catch (n) {
return !1
} finally {
t.parentNode && t.parentNode.removeChild(t);
t = null
}
}
function ii(n, i) {
for (var r = n.split("|"), u = r.length; u--; )
t.attrHandle[r[u]] = i
}
function bi(n, t) {
var i = t && n
, r = i && 1 === n.nodeType && 1 === t.nodeType && n.sourceIndex - t.sourceIndex;
if (r)
return r;
if (i)
while (i = i.nextSibling)
if (i === t)
return -1;
return n ? 1 : -1
}
function yr(n) {
return function(t) {
return "input" === t.nodeName.toLowerCase() && t.type === n
}
}
function pr(n) {
return function(t) {
var i = t.nodeName.toLowerCase();
return ("input" === i || "button" === i) && t.type === n
}
}
function ki(n) {
return function(t) {
return "form"in t ? t.parentNode && !1 === t.disabled ? "label"in t ? "label"in t.parentNode ? t.parentNode.disabled === n : t.disabled === n : t.isDisabled === n || t.isDisabled !== !n && vr(t) === n : t.disabled === n : "label"in t && t.disabled === n
}
}
function it(n) {
return l(function(t) {
return t = +t,
l(function(i, r) {
for (var u, f = n([], i.length, t), e = f.length; e--; )
i[u = f[e]] && (i[u] = !(r[u] = i[u]))
})
})
}
function ri(n) {
return n && "undefined" != typeof n.getElementsByTagName && n
}
function di() {}
function pt(n) {
for (var t = 0, r = n.length, i = ""; t < r; t++)
i += n[t].value;
return i
}
function wt(n, t, i) {
var r = t.dir
, u = t.next
, e = u || r
, o = i && "parentNode" === e
, s = gi++;
return t.first ? function(t, i, u) {
while (t = t[r])
if (1 === t.nodeType || o)
return n(t, i, u);
return !1
}
: function(t, i, h) {
var c, l, a, y = [v, s];
if (h) {
while (t = t[r])
if ((1 === t.nodeType || o) && n(t, i, h))
return !0
} else
while (t = t[r])
if (1 === t.nodeType || o)
if (l = (a = t[f] || (t[f] = {}))[t.uniqueID] || (a[t.uniqueID] = {}),
u && u === t.nodeName.toLowerCase())
t = t[r] || t;
else {
if ((c = l[e]) && c[0] === v && c[1] === s)
return y[2] = c[2];
if ((l[e] = y)[2] = n(t, i, h))
return !0
}
return !1
}
}
function ui(n) {
return 1 < n.length ? function(t, i, r) {
for (var u = n.length; u--; )
if (!n[u](t, i, r))
return !1;
return !0
}
: n[0]
}
function bt(n, t, i, r, u) {
for (var e, o = [], f = 0, s = n.length, h = null != t; f < s; f++)
(e = n[f]) && (i && !i(e, r, u) || (o.push(e),
h && t.push(f)));
return o
}
function fi(n, t, i, r, e, o) {
return r && !r[f] && (r = fi(r)),
e && !e[f] && (e = fi(e, o)),
l(function(f, o, s, h) {
var a, l, v, w = [], p = [], b = o.length, d = f || function(n, t, i) {
for (var r = 0, f = t.length; r < f; r++)
u(n, t[r], i);
return i
}(t || "*", s.nodeType ? [s] : s, []), y = !n || !f && t ? d : bt(d, w, n, s, h), c = i ? e || (f ? n : b || r) ? [] : o : y;
if (i && i(y, c, s, h),
r)
for (a = bt(c, p),
r(a, [], s, h),
l = a.length; l--; )
(v = a[l]) && (c[p[l]] = !(y[p[l]] = v));
if (f) {
if (e || n) {
if (e) {
for (a = [],
l = c.length; l--; )
(v = c[l]) && a.push(y[l] = v);
e(null, c = [], a, h)
}
for (l = c.length; l--; )
(v = c[l]) && -1 < (a = e ? nt(f, v) : w[l]) && (f[a] = !(o[a] = v))
}
} else
c = bt(c === o ? c.splice(b, c.length) : c),
e ? e(null, o, c, h) : k.apply(o, c)
})
}
function ei(n) {
for (var o, u, r, s = n.length, h = t.relative[n[0].type], c = h || t.relative[" "], i = h ? 1 : 0, l = wt(function(n) {
return n === o
}, c, !0), a = wt(function(n) {
return -1 < nt(o, n)
}, c, !0), e = [function(n, t, i) {
var r = !h && (i || t !== ht) || ((o = t).nodeType ? l(n, t, i) : a(n, t, i));
return o = null,
r
}
]; i < s; i++)
if (u = t.relative[n[i].type])
e = [wt(ui(e), u)];
else {
if ((u = t.filter[n[i].type].apply(null, n[i].matches))[f]) {
for (r = ++i; r < s; r++)
if (t.relative[n[r].type])
break;
return fi(1 < i && ui(e), 1 < i && pt(n.slice(0, i - 1).concat({
value: " " === n[i - 2].type ? "*" : ""
})).replace(at, "$1"), u, i < r && ei(n.slice(i, r)), r < s && ei(n = n.slice(r)), r < s && pt(n))
}
e.push(u)
}
return ui(e)
}
var rt, e, t, st, oi, ft, kt, si, ht, w, ut, b, i, s, h, o, d, ct, et, f = "sizzle" + 1 * new Date, c = n.document, v = 0, gi = 0, hi = yt(), ci = yt(), li = yt(), lt = yt(), dt = function(n, t) {
return n === t && (ut = !0),
0
}, nr = {}.hasOwnProperty, g = [], tr = g.pop, ir = g.push, k = g.push, ai = g.slice, nt = function(n, t) {
for (var i = 0, r = n.length; i < r; i++)
if (n[i] === t)
return i;
return -1
}, gt = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", r = "[\\x20\\t\\r\\n\\f]", tt = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", vi = "\\[" + r + "*(" + tt + ")(?:" + r + "*([*^$|!~]?=)" + r + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + tt + "))|)" + r + "*\\]", ni = ":(" + tt + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + vi + ")*)|.*)\\)|)", rr = new RegExp(r + "+","g"), at = new RegExp("^" + r + "+|((?:^|[^\\\\])(?:\\\\.)*)" + r + "+$","g"), ur = new RegExp("^" + r + "*," + r + "*"), fr = new RegExp("^" + r + "*([>+~]|" + r + ")" + r + "*"), er = new RegExp(r + "|>"), or = new RegExp(ni), sr = new RegExp("^" + tt + "$"), vt = {
ID: new RegExp("^#(" + tt + ")"),
CLASS: new RegExp("^\\.(" + tt + ")"),
TAG: new RegExp("^(" + tt + "|[*])"),
ATTR: new RegExp("^" + vi),
PSEUDO: new RegExp("^" + ni),
CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + r + "*(even|odd|(([+-]|)(\\d*)n|)" + r + "*(?:([+-]|)" + r + "*(\\d+)|))" + r + "*\\)|)","i"),
bool: new RegExp("^(?:" + gt + ")$","i"),
needsContext: new RegExp("^" + r + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + r + "*((?:-\\d)?\\d*)" + r + "*\\)|)(?=[^-]|$)","i")
}, hr = /HTML$/i, cr = /^(?:input|select|textarea|button)$/i, lr = /^h\d$/i, ot = /^[^{]+\{\s*\[native \w/, ar = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, ti = /[+~]/, y = new RegExp("\\\\([\\da-f]{1,6}" + r + "?|(" + r + ")|.)","ig"), p = function(n, t, i) {
var r = "0x" + t - 65536;
return r != r || i ? t : r < 0 ? String.fromCharCode(r + 65536) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320)
}, yi = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, pi = function(n, t) {
return t ? "\0" === n ? "�" : n.slice(0, -1) + "\\" + n.charCodeAt(n.length - 1).toString(16) + " " : "\\" + n
}, wi = function() {
b()
}, vr = wt(function(n) {
return !0 === n.disabled && "fieldset" === n.nodeName.toLowerCase()
}, {
dir: "parentNode",
next: "legend"
});
try {
k.apply(g = ai.call(c.childNodes), c.childNodes);
g[c.childNodes.length].nodeType
} catch (rt) {
k = {
apply: g.length ? function(n, t) {
ir.apply(n, ai.call(t))
}
: function(n, t) {
for (var i = n.length, r = 0; n[i++] = t[r++]; )
;
n.length = i - 1
}
}
}
for (rt in e = u.support = {},
oi = u.isXML = function(n) {
var i = n.namespaceURI
, t = (n.ownerDocument || n).documentElement;
return !hr.test(i || t && t.nodeName || "HTML")
}
,
b = u.setDocument = function(n) {
var v, u, l = n ? n.ownerDocument || n : c;
return l !== i && 9 === l.nodeType && l.documentElement && (s = (i = l).documentElement,
h = !oi(i),
c !== i && (u = i.defaultView) && u.top !== u && (u.addEventListener ? u.addEventListener("unload", wi, !1) : u.attachEvent && u.attachEvent("onunload", wi)),
e.attributes = a(function(n) {
return n.className = "i",
!n.getAttribute("className")
}),
e.getElementsByTagName = a(function(n) {
return n.appendChild(i.createComment("")),
!n.getElementsByTagName("*").length
}),
e.getElementsByClassName = ot.test(i.getElementsByClassName),
e.getById = a(function(n) {
return s.appendChild(n).id = f,
!i.getElementsByName || !i.getElementsByName(f).length
}),
e.getById ? (t.filter.ID = function(n) {
var t = n.replace(y, p);
return function(n) {
return n.getAttribute("id") === t
}
}
,
t.find.ID = function(n, t) {
if ("undefined" != typeof t.getElementById && h) {
var i = t.getElementById(n);
return i ? [i] : []
}
}
) : (t.filter.ID = function(n) {
var t = n.replace(y, p);
return function(n) {
var i = "undefined" != typeof n.getAttributeNode && n.getAttributeNode("id");
return i && i.value === t
}
}
,
t.find.ID = function(n, t) {
if ("undefined" != typeof t.getElementById && h) {
var r, u, f, i = t.getElementById(n);
if (i) {
if ((r = i.getAttributeNode("id")) && r.value === n)
return [i];
for (f = t.getElementsByName(n),
u = 0; i = f[u++]; )
if ((r = i.getAttributeNode("id")) && r.value === n)
return [i]
}
return []
}
}
),
t.find.TAG = e.getElementsByTagName ? function(n, t) {
return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(n) : e.qsa ? t.querySelectorAll(n) : void 0
}
: function(n, t) {
var i, r = [], f = 0, u = t.getElementsByTagName(n);
if ("*" === n) {
while (i = u[f++])
1 === i.nodeType && r.push(i);
return r
}
return u
}
,
t.find.CLASS = e.getElementsByClassName && function(n, t) {
if ("undefined" != typeof t.getElementsByClassName && h)
return t.getElementsByClassName(n)
}
,
d = [],
o = [],
(e.qsa = ot.test(i.querySelectorAll)) && (a(function(n) {
s.appendChild(n).innerHTML = "<a id='" + f + "'><\/a><select id='" + f + "-\r\\' msallowcapture=''><option selected=''><\/option><\/select>";
n.querySelectorAll("[msallowcapture^='']").length && o.push("[*^$]=" + r + "*(?:''|\"\")");
n.querySelectorAll("[selected]").length || o.push("\\[" + r + "*(?:value|" + gt + ")");
n.querySelectorAll("[id~=" + f + "-]").length || o.push("~=");
n.querySelectorAll(":checked").length || o.push(":checked");
n.querySelectorAll("a#" + f + "+*").length || o.push(".#.+[+~]")
}),
a(function(n) {
n.innerHTML = "<a href='' disabled='disabled'><\/a><select disabled='disabled'><option/><\/select>";
var t = i.createElement("input");
t.setAttribute("type", "hidden");
n.appendChild(t).setAttribute("name", "D");
n.querySelectorAll("[name=d]").length && o.push("name" + r + "*[*^$|!~]?=");
2 !== n.querySelectorAll(":enabled").length && o.push(":enabled", ":disabled");
s.appendChild(n).disabled = !0;
2 !== n.querySelectorAll(":disabled").length && o.push(":enabled", ":disabled");
n.querySelectorAll("*,:x");
o.push(",.*:")
})),
(e.matchesSelector = ot.test(ct = s.matches || s.webkitMatchesSelector || s.mozMatchesSelector || s.oMatchesSelector || s.msMatchesSelector)) && a(function(n) {
e.disconnectedMatch = ct.call(n, "*");
ct.call(n, "[s!='']:x");
d.push("!=", ni)
}),
o = o.length && new RegExp(o.join("|")),
d = d.length && new RegExp(d.join("|")),
v = ot.test(s.compareDocumentPosition),
et = v || ot.test(s.contains) ? function(n, t) {
var r = 9 === n.nodeType ? n.documentElement : n
, i = t && t.parentNode;
return n === i || !(!i || 1 !== i.nodeType || !(r.contains ? r.contains(i) : n.compareDocumentPosition && 16 & n.compareDocumentPosition(i)))
}
: function(n, t) {
if (t)
while (t = t.parentNode)
if (t === n)
return !0;
return !1
}
,
dt = v ? function(n, t) {
if (n === t)
return ut = !0,
0;
var r = !n.compareDocumentPosition - !t.compareDocumentPosition;
return r || (1 & (r = (n.ownerDocument || n) === (t.ownerDocument || t) ? n.compareDocumentPosition(t) : 1) || !e.sortDetached &&
Was this helpful?
Similar Posts