function s(t, e) {
for(;
(t = t[e]) && 1 !== t.nodeType;);
return t
}
function a(t) {
return t
}
function l(t) {
throw t
}
function c(t, e, n, i) {
var o;
try {
t && lt.isFunction(o = t.promise) ? o.call(t).done(e).fail(n) : t && lt.isFunction(o = t.then) ? o.call(t, e, n) : e.apply(void 0, [t].slice(i))
} catch(t) {
n.apply(void 0, [t])
}
}