jQuery Updater - Version 3.4.0

Version Description

Please clear the server and browser cache after upgrading/disabling

Download this release

Release Info

Developer Ramoonus
Plugin Icon wp plugin jQuery Updater
Version 3.4.0
Comparing to
See all releases

Code changes from version 3.3.1 to 3.4.0

jquery-updater.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin Name: jQuery Updater
5
  * Plugin URI: http://www.ramoonus.nl/wordpress/jquery-updater/
6
  * Description: This plugin updates jQuery to the latest stable version.
7
- * Version: 3.3.1
8
  * Author: Ramoonus
9
  * Author URI: http://www.ramoonus.nl/
10
  * License: GPL3
@@ -15,18 +15,18 @@
15
  /**
16
  * Replace jQuery with a newer version, load jQuery Migrate
17
  *
18
- * @version 3.3.1
19
  * @since 1.0.0
20
  */
21
  function rw_jquery_updater()
22
  {
23
-
24
  // jQuery
25
  // Deregister core jQuery
26
  wp_deregister_script('jquery');
27
  // Register
28
- wp_enqueue_script('jquery', plugins_url('/js/jquery-3.3.1.min.js', __FILE__), false, '3.3.1');
29
-
30
  // jQuery Migrate
31
  // Deregister core jQuery Migrate
32
  wp_deregister_script('jquery-migrate');
@@ -53,4 +53,4 @@ function rw__load_plugin_textdomain()
53
  load_plugin_textdomain('jquery-updater', FALSE, basename(dirname(__FILE__)) . '/languages/');
54
  }
55
 
56
- add_action('plugins_loaded', 'rw__load_plugin_textdomain');
4
  * Plugin Name: jQuery Updater
5
  * Plugin URI: http://www.ramoonus.nl/wordpress/jquery-updater/
6
  * Description: This plugin updates jQuery to the latest stable version.
7
+ * Version: 3.4.0
8
  * Author: Ramoonus
9
  * Author URI: http://www.ramoonus.nl/
10
  * License: GPL3
15
  /**
16
  * Replace jQuery with a newer version, load jQuery Migrate
17
  *
18
+ * @version 3.4.0
19
  * @since 1.0.0
20
  */
21
  function rw_jquery_updater()
22
  {
23
+
24
  // jQuery
25
  // Deregister core jQuery
26
  wp_deregister_script('jquery');
27
  // Register
28
+ wp_enqueue_script('jquery', plugins_url('/js/jquery-3.4.0.min.js', __FILE__), false, '3.4.0');
29
+
30
  // jQuery Migrate
31
  // Deregister core jQuery Migrate
32
  wp_deregister_script('jquery-migrate');
53
  load_plugin_textdomain('jquery-updater', FALSE, basename(dirname(__FILE__)) . '/languages/');
54
  }
55
 
56
+ add_action('plugins_loaded', 'rw__load_plugin_textdomain');
js/jquery-3.3.1.min.js DELETED
@@ -1,2 +0,0 @@
1
- /*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */
2
- !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:n.sort,splice:n.splice},w.extend=w.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||g(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&w.isPlainObject(n)?n:{},a[t]=w.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},w.extend({expando:"jQuery"+("3.3.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==c.call(e))&&(!(t=i(e))||"function"==typeof(n=f.call(t,"constructor")&&t.constructor)&&p.call(n)===d)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){m(e)},each:function(e,t){var n,r=0;if(C(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(C(Object(e))?w.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:u.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;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;o<a;o++)(r=!t(e[o],o))!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,i,o=0,s=[];if(C(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&s.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&s.push(i);return a.apply([],s)},guid:1,support:h}),"function"==typeof Symbol&&(w.fn[Symbol.iterator]=n[Symbol.iterator]),w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function C(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!g(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",I="\\["+M+"*("+R+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+R+"))|)"+M+"*\\]",W=":("+R+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+I+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),F=new RegExp("^"+M+"*,"+M+"*"),_=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="<a id='"+b+"'></a><select id='"+b+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.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)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,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(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===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]||oe.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]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(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(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},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,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===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===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!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,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.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:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:he(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:he(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=fe(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=pe(t);function ye(){}ye.prototype=r.filters=r.pseudos,r.setFilters=new ye,a=oe.tokenize=function(e,t){var n,i,o,a,s,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=r.preFilter;while(s){n&&!(i=F.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),n=!1,(i=_.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(B," ")}),s=s.slice(n.length));for(a in r.filter)!(i=V[a].exec(s))||l[a]&&!(i=l[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?oe.error(e):k(e,u).slice(0)};function ve(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function me(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&"parentNode"===o,s=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,u){var l,c,f,p=[T,s];if(u){while(t=t[r])if((1===t.nodeType||a)&&e(t,n,u))return!0}else while(t=t[r])if(1===t.nodeType||a)if(f=t[b]||(t[b]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===T&&l[1]===s)return p[2]=l[2];if(c[o]=p,p[2]=e(t,n,u))return!0}return!1}}function xe(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r<i;r++)oe(e,t[r],n);return n}function we(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Te(e,t,n,r,i,o){return r&&!r[b]&&(r=Te(r)),i&&!i[b]&&(i=Te(i,o)),se(function(o,a,s,u){var l,c,f,p=[],d=[],h=a.length,g=o||be(t||"*",s.nodeType?[s]:s,[]),y=!e||!o&&t?g:we(g,p,e,s,u),v=n?i||(o?e:h||r)?[]:a:y;if(n&&n(y,v,s,u),r){l=we(v,d),r(l,[],s,u),c=l.length;while(c--)(f=l[c])&&(v[d[c]]=!(y[d[c]]=f))}if(o){if(i||e){if(i){l=[],c=v.length;while(c--)(f=v[c])&&l.push(y[c]=f);i(null,v=[],l,u)}c=v.length;while(c--)(f=v[c])&&(l=i?O(o,f):p[c])>-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u<o;u++)if(n=r.relative[e[u].type])p=[me(xe(p),n)];else{if((n=r.filter[e[u].type].apply(null,e[u].matches))[b]){for(i=++u;i<o;i++)if(r.relative[e[i].type])break;return Te(u>1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u<i&&Ce(e.slice(u,i)),i<o&&Ce(e=e.slice(i)),i<o&&ve(e))}p.push(n)}return xe(p)}function Ee(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t<r;t++)if(w.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)w.find(e,i[t],n);return r>1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(w.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&w(e);if(!D.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s<o.length)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1)}e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},l={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){w.each(n,function(n,r){g(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&"string"!==x(r)&&t(r)})}(arguments),n&&!t&&u()),this},remove:function(){return w.each(arguments,function(e,t){var n;while((n=w.inArray(t,o,n))>-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.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=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t<o)){if((e=r.apply(s,u))===n.promise())throw new TypeError("Thenable self-resolution");l=e&&("object"==typeof e||"function"==typeof e)&&e.then,g(l)?i?l.call(e,a(o,n,I,i),a(o,n,W,i)):(o++,l.call(e,a(o,n,I,i),a(o,n,W,i),a(o,n,I,n.notifyWith))):(r!==I&&(s=void 0,u=[e]),(i||n.resolveWith)(s,u))}},c=i?l:function(){try{l()}catch(e){w.Deferred.exceptionHook&&w.Deferred.exceptionHook(e,c.stackTrace),t+1>=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s<u;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},X=/^-ms-/,U=/-([a-z])/g;function V(e,t){return t.toUpperCase()}function G(e){return e.replace(X,"ms-").replace(U,V)}var Y=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Q(){this.expando=w.expando+Q.uid++}Q.uid=1,Q.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Y(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[G(t)]=n;else for(r in t)i[G(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][G(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(G):(t=G(t))in r?[t]:t.match(M)||[]).length;while(n--)delete r[t[n]]}(void 0===t||w.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!w.isEmptyObject(t)}};var J=new Q,K=new Q,Z=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ee=/[A-Z]/g;function te(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:Z.test(e)?JSON.parse(e):e)}function ne(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(ee,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=te(n)}catch(e){}K.set(e,t,n)}else n=void 0;return n}w.extend({hasData:function(e){return K.hasData(e)||J.hasData(e)},data:function(e,t,n){return K.access(e,t,n)},removeData:function(e,t){K.remove(e,t)},_data:function(e,t,n){return J.access(e,t,n)},_removeData:function(e,t){J.remove(e,t)}}),w.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=K.get(o),1===o.nodeType&&!J.get(o,"hasDataAttrs"))){n=a.length;while(n--)a[n]&&0===(r=a[n].name).indexOf("data-")&&(r=G(r.slice(5)),ne(o,r,i[r]));J.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){K.set(this,e)}):z(this,function(t){var n;if(o&&void 0===t){if(void 0!==(n=K.get(o,e)))return n;if(void 0!==(n=ne(o,e)))return n}else this.each(function(){K.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.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 J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?w.queue(this[0],e):void 0===t?this:this.each(function(){var n=w.queue(this,e,t);w._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&w.dequeue(this,e)})},dequeue:function(e){return this.each(function(){w.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=w.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=J.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var re=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ie=new RegExp("^(?:([+-])=|)("+re+")([a-z%]*)$","i"),oe=["Top","Right","Bottom","Left"],ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&w.contains(e.ownerDocument,e)&&"none"===w.css(e,"display")},se=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};function ue(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return w.css(e,t,"")},u=s(),l=n&&n[3]||(w.cssNumber[t]?"":"px"),c=(w.cssNumber[t]||"px"!==l&&+u)&&ie.exec(w.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)w.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,w.style(e,t,c+l),n=n||[]}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}var le={};function ce(e){var t,n=e.ownerDocument,r=e.nodeName,i=le[r];return i||(t=n.body.appendChild(n.createElement(r)),i=w.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),le[r]=i,i)}function fe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?("none"===n&&(i[o]=J.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&ae(r)&&(i[o]=ce(r))):"none"!==n&&(i[o]="none",J.set(r,"display",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}w.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?w(this).show():w(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)J.set(e[n],"globalEval",!t||J.get(t[n],"globalEval"))}var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))w.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+w.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;w.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&w.inArray(o,r)>-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(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)De(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)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n<arguments.length;n++)u[n]=arguments[n];if(t.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,t)){s=w.event.handlers.call(this,t,l),n=0;while((o=s[n++])&&!t.isPropagationStopped()){t.currentTarget=o.elem,r=0;while((a=o.handlers[r++])&&!t.isImmediatePropagationStopped())t.rnamespace&&!t.rnamespace.test(a.namespace)||(t.handleObj=a,t.data=a.data,void 0!==(i=((w.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u))&&!1===(t.result=i)&&(t.preventDefault(),t.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,t),t.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&e.button>=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?w(i,this).index(l)>-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(e,t){Object.defineProperty(w.Event.prototype,e,{enumerable:!0,configurable:!0,get:g(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[w.expando]?e:new w.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==Se()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===Se()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&N(this,"input"))return this.click(),!1},_default:function(e){return N(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},w.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},w.Event=function(e,t){if(!(this instanceof w.Event))return new w.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ee:ke,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&w.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[w.expando]=!0},w.Event.prototype={constructor:w.Event,isDefaultPrevented:ke,isPropagationStopped:ke,isImmediatePropagationStopped:ke,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ee,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ee,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ee,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},w.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&we.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Te.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},w.event.addProp),w.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){w.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||w.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),w.fn.extend({on:function(e,t,n,r){return De(this,e,t,n,r)},one:function(e,t,n,r){return De(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,w(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!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=ke),this.each(function(){w.event.remove(this,e,n,t)})}});var Ne=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/<script|<style|<link/i,je=/checked\s*(?:[^=]|=\s*.checked.)/i,qe=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n<r;n++)w.event.add(t,i,l[i][n])}K.hasData(e)&&(s=K.access(e),u=w.extend({},s),K.set(t,u))}}function Me(e,t){var n=t.nodeName.toLowerCase();"input"===n&&pe.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function Re(e,t,n,r){t=a.apply([],t);var i,o,s,u,l,c,f=0,p=e.length,d=p-1,y=t[0],v=g(y);if(v||p>1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f<p;f++)l=i,f!==d&&(l=w.clone(l,!0,!0),u&&w.merge(s,ye(l,"script"))),n.call(e[f],l,f);if(u)for(c=s[s.length-1].ownerDocument,w.map(s,Oe),f=0;f<u;f++)l=s[f],he.test(l.type||"")&&!J.access(l,"globalEval")&&w.contains(c,l)&&(l.src&&"module"!==(l.type||"").toLowerCase()?w._evalUrl&&w._evalUrl(l.src):m(l.textContent.replace(qe,""),c,l))}return e}function Ie(e,t,n){for(var r,i=t?w.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||w.cleanData(ye(r)),r.parentNode&&(n&&w.contains(r.ownerDocument,r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}w.extend({htmlPrefilter:function(e){return e.replace(Ne,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r<i;r++)Me(o[r],a[r]);if(t)if(n)for(o=o||ye(e),a=a||ye(s),r=0,i=o.length;r<i;r++)Pe(o[r],a[r]);else Pe(e,s);return(a=ye(s,"script")).length>0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(w.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return Re(this,arguments,function(t){var n=this.parentNode;w.inArray(this,e)<0&&(w.cleanData(ye(this)),n&&n.replaceChild(t,this))},e)}}),w.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){w.fn[e]=function(e){for(var n,r=[],i=w(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),w(i[a])[t](n),s.apply(r,n.get());return this.pushStack(r)}});var We=new RegExp("^("+re+")(?!px)[a-z%]+$","i"),$e=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},Be=new RegExp(oe.join("|"),"i");!function(){function t(){if(c){l.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",c.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",be.appendChild(l).appendChild(c);var t=e.getComputedStyle(c);i="1%"!==t.top,u=12===n(t.marginLeft),c.style.right="60%",s=36===n(t.right),o=36===n(t.width),c.style.position="absolute",a=36===c.offsetWidth||"absolute",be.removeChild(l),c=null}}function n(e){return Math.round(parseFloat(e))}var i,o,a,s,u,l=r.createElement("div"),c=r.createElement("div");c.style&&(c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",h.clearCloneStyle="content-box"===c.style.backgroundClip,w.extend(h,{boxSizingReliable:function(){return t(),o},pixelBoxStyles:function(){return t(),s},pixelPosition:function(){return t(),i},reliableMarginLeft:function(){return t(),u},scrollboxSize:function(){return t(),a}}))}();function Fe(e,t,n){var r,i,o,a,s=e.style;return(n=n||$e(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||w.contains(e.ownerDocument,e)||(a=w.style(e,t)),!h.pixelBoxStyles()&&We.test(a)&&Be.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}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}var ze=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ue={position:"absolute",visibility:"hidden",display:"block"},Ve={letterSpacing:"0",fontWeight:"400"},Ge=["Webkit","Moz","ms"],Ye=r.createElement("div").style;function Qe(e){if(e in Ye)return e;var t=e[0].toUpperCase()+e.slice(1),n=Ge.length;while(n--)if((e=Ge[n]+t)in Ye)return e}function Je(e){var t=w.cssProps[e];return t||(t=w.cssProps[e]=Qe(e)||e),t}function Ke(e,t,n){var r=ie.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ze(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=w.css(e,n+oe[a],!0,i)),r?("content"===n&&(u-=w.css(e,"padding"+oe[a],!0,i)),"margin"!==n&&(u-=w.css(e,"border"+oe[a]+"Width",!0,i))):(u+=w.css(e,"padding"+oe[a],!0,i),"padding"!==n?u+=w.css(e,"border"+oe[a]+"Width",!0,i):s+=w.css(e,"border"+oe[a]+"Width",!0,i));return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(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:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a<i;a++)o[t[a]]=w.css(e,t[a],!1,r);return o}return void 0!==n?w.style(e,t,n):w.css(e,t)},e,t,arguments.length>1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.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):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.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=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ct(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=J.get(e,"fxshow");n.queue||(null==(a=w._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,w.queue(e,"fx").length||a.empty.fire()})}));for(r in t)if(i=t[r],it.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||w.style(e,r)}if((u=!w.isEmptyObject(t))||!w.isEmptyObject(d)){f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=J.get(e,"display")),"none"===(c=w.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=w.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===w.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1;for(r in d)u||(y?"hidden"in y&&(g=y.hidden):y=J.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&fe([e],!0),p.done(function(){g||fe([e]),J.remove(e,"fxshow");for(r in d)w.style(e,r,d[r])})),u=lt(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}}function ft(e,t){var n,r,i,o,a;for(n in e)if(r=G(n),i=t[r],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=w.cssHooks[r])&&"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 pt(e,t,n){var r,i,o=0,a=pt.prefilters.length,s=w.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=nt||st(),n=Math.max(0,l.startTime+l.duration-t),r=1-(n/l.duration||0),o=0,a=l.tweens.length;o<a;o++)l.tweens[o].run(r);return s.notifyWith(e,[l,r,n]),r<1&&a?n:(a||s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:w.extend({},t),opts:w.extend(!0,{specialEasing:{},easing:w.easing._default},n),originalProperties:t,originalOptions:n,startTime:nt||st(),duration:n.duration,tweens:[],createTween:function(t,n){var r=w.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;n<r;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(ft(c,l.opts.specialEasing);o<a;o++)if(r=pt.prefilters[o].call(l,e,c,l.opts))return g(r.stop)&&(w._queueHooks(l.elem,l.opts.queue).stop=r.stop.bind(r)),r;return w.map(c,lt,l),g(l.opts.start)&&l.opts.start.call(e,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),w.fx.timer(w.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l}w.Animation=w.extend(pt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return ue(n.elem,e,ie.exec(t),n),n}]},tweener:function(e,t){g(e)?(t=e,e=["*"]):e=e.match(M);for(var n,r=0,i=e.length;r<i;r++)n=e[r],pt.tweeners[n]=pt.tweeners[n]||[],pt.tweeners[n].unshift(t)},prefilters:[ct],prefilter:function(e,t){t?pt.prefilters.unshift(e):pt.prefilters.push(e)}}),w.speed=function(e,t,n){var r=e&&"object"==typeof e?w.extend({},e):{complete:n||!n&&t||g(e)&&e,duration:e,easing:n&&t||t&&!g(t)&&t};return w.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in w.fx.speeds?r.duration=w.fx.speeds[r.duration]:r.duration=w.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){g(r.old)&&r.old.call(this),r.queue&&w.dequeue(this,r.queue)},r},w.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=w.isEmptyObject(e),o=w.speed(t,n,r),a=function(){var t=pt(this,w.extend({},e),o);(i||J.get(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?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&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=w.timers,a=J.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&ot.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||w.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=J.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=w.timers,a=r?r.length:0;for(n.finish=!0,w.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;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),w.each(["toggle","show","hide"],function(e,t){var n=w.fn[t];w.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ut(t,!0),e,r,i)}}),w.each({slideDown:ut("show"),slideUp:ut("hide"),slideToggle:ut("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){w.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),w.timers=[],w.fx.tick=function(){var e,t=0,n=w.timers;for(nt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||w.fx.stop(),nt=void 0},w.fx.timer=function(e){w.timers.push(e),w.fx.start()},w.fx.interval=13,w.fx.start=function(){rt||(rt=!0,at())},w.fx.stop=function(){rt=null},w.fx.speeds={slow:600,fast:200,_default:400},w.fn.delay=function(t,n){return t=w.fx?w.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e=r.createElement("input"),t=r.createElement("select").appendChild(r.createElement("option"));e.type="checkbox",h.checkOn=""!==e.value,h.optSelected=t.selected,(e=r.createElement("input")).value="t",e.type="radio",h.radioValue="t"===e.value}();var dt,ht=w.expr.attrHandle;w.fn.extend({attr:function(e,t){return z(this,w.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.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:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.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=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,"optgroup"))){if(t=w(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=w.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=w.inArray(w.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(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];o=c.shift();while(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]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,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":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.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 w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w("<script>").prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&o("error"===e.type?404:200,e.type)}),r.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Yt=[],Qt=/(=)\?(?=&|$)|\?\?/;w.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Yt.pop()||w.expando+"_"+Et++;return this[e]=!0,e}}),w.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=!1!==t.jsonp&&(Qt.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Qt.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=g(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(Qt,"$1"+i):!1!==t.jsonp&&(t.url+=(kt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||w.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?w(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,Yt.push(i)),a&&g(o)&&o(a[0]),a=o=void 0}),"script"}),h.createHTMLDocument=function(){var e=r.implementation.createHTMLDocument("").body;return e.innerHTML="<form></form><form></form>",2===e.childNodes.length}(),w.parseHTML=function(e,t,n){if("string"!=typeof e)return[];"boolean"==typeof t&&(n=t,t=!1);var i,o,a;return t||(h.createHTMLDocument?((i=(t=r.implementation.createHTMLDocument("")).createElement("base")).href=r.location.href,t.head.appendChild(i)):t=r),o=A.exec(e),a=!n&&[],o?[t.createElement(o[1])]:(o=xe([e],t,a),a&&a.length&&w(a).remove(),w.merge([],o.childNodes))},w.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=vt(e.slice(s)),e=e.slice(0,s)),g(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&w.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?w("<div>").append(w.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},w.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){w.fn[t]=function(e){return this.on(t,e)}}),w.expr.pseudos.animated=function(e){return w.grep(w.timers,function(t){return e===t.elem}).length},w.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=w.css(e,"position"),f=w(e),p={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=w.css(e,"top"),u=w.css(e,"left"),(l=("absolute"===c||"fixed"===c)&&(o+u).indexOf("auto")>-1)?(a=(r=f.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),g(t)&&(t=t.call(e,n,w.extend({},s))),null!=t.top&&(p.top=t.top-s.top+a),null!=t.left&&(p.left=t.left-s.left+i),"using"in t?t.using.call(e,p):f.css(p)}},w.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){w.offset.setOffset(this,e,t)});var t,n,r=this[0];if(r)return r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===w.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===w.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=w(e).offset()).top+=w.css(e,"borderTopWidth",!0),i.left+=w.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-w.css(r,"marginTop",!0),left:t.left-i.left-w.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===w.css(e,"position"))e=e.offsetParent;return e||be})}}),w.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;w.fn[e]=function(r){return z(this,function(e,r,i){var o;if(y(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),w.each(["top","left"],function(e,t){w.cssHooks[t]=_e(h.pixelPosition,function(e,n){if(n)return n=Fe(e,t),We.test(n)?w(e).position()[t]+"px":n})}),w.each({Height:"height",Width:"width"},function(e,t){w.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){w.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),s=n||(!0===i||!0===o?"margin":"border");return z(this,function(t,n,i){var o;return y(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?w.css(t,n,s):w.style(t,n,i,s)},t,a?i:void 0,a)}})}),w.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){w.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.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)}}),w.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=N,w.isFunction=g,w.isWindow=y,w.camelCase=G,w.type=x,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return w});var Jt=e.jQuery,Kt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},t||(e.jQuery=e.$=w),w});
 
 
js/{jquery-3.3.1.js → jquery-3.4.0.js} RENAMED
@@ -1,5 +1,5 @@
1
  /*!
2
- * jQuery JavaScript Library v3.3.1
3
  * https://jquery.com/
4
  *
5
  * Includes Sizzle.js
@@ -9,7 +9,7 @@
9
  * Released under the MIT license
10
  * https://jquery.org/license
11
  *
12
- * Date: 2018-01-20T17:24Z
13
  */
14
  ( function( global, factory ) {
15
 
@@ -91,20 +91,33 @@ var isWindow = function isWindow( obj ) {
91
  var preservedScriptAttributes = {
92
  type: true,
93
  src: true,
 
94
  noModule: true
95
  };
96
 
97
- function DOMEval( code, doc, node ) {
98
  doc = doc || document;
99
 
100
- var i,
101
  script = doc.createElement( "script" );
102
 
103
  script.text = code;
104
  if ( node ) {
105
  for ( i in preservedScriptAttributes ) {
106
- if ( node[ i ] ) {
107
- script[ i ] = node[ i ];
 
 
 
 
 
 
 
 
 
 
 
 
108
  }
109
  }
110
  }
@@ -129,7 +142,7 @@ function toType( obj ) {
129
 
130
 
131
  var
132
- version = "3.3.1",
133
 
134
  // Define a local copy of jQuery
135
  jQuery = function( selector, context ) {
@@ -258,25 +271,28 @@ jQuery.extend = jQuery.fn.extend = function() {
258
 
259
  // Extend the base object
260
  for ( name in options ) {
261
- src = target[ name ];
262
  copy = options[ name ];
263
 
 
264
  // Prevent never-ending loop
265
- if ( target === copy ) {
266
  continue;
267
  }
268
 
269
  // Recurse if we're merging plain objects or arrays
270
  if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
271
  ( copyIsArray = Array.isArray( copy ) ) ) ) {
 
272
 
273
- if ( copyIsArray ) {
274
- copyIsArray = false;
275
- clone = src && Array.isArray( src ) ? src : [];
276
-
 
277
  } else {
278
- clone = src && jQuery.isPlainObject( src ) ? src : {};
279
  }
 
280
 
281
  // Never move original objects, clone them
282
  target[ name ] = jQuery.extend( deep, clone, copy );
@@ -329,9 +345,6 @@ jQuery.extend( {
329
  },
330
 
331
  isEmptyObject: function( obj ) {
332
-
333
- /* eslint-disable no-unused-vars */
334
- // See https://github.com/eslint/eslint/issues/6125
335
  var name;
336
 
337
  for ( name in obj ) {
@@ -341,8 +354,8 @@ jQuery.extend( {
341
  },
342
 
343
  // Evaluates a script in a global context
344
- globalEval: function( code ) {
345
- DOMEval( code );
346
  },
347
 
348
  each: function( obj, callback ) {
@@ -498,14 +511,14 @@ function isArrayLike( obj ) {
498
  }
499
  var Sizzle =
500
  /*!
501
- * Sizzle CSS Selector Engine v2.3.3
502
  * https://sizzlejs.com/
503
  *
504
- * Copyright jQuery Foundation and other contributors
505
  * Released under the MIT license
506
- * http://jquery.org/license
507
  *
508
- * Date: 2016-08-08
509
  */
510
  (function( window ) {
511
 
@@ -539,6 +552,7 @@ var i,
539
  classCache = createCache(),
540
  tokenCache = createCache(),
541
  compilerCache = createCache(),
 
542
  sortOrder = function( a, b ) {
543
  if ( a === b ) {
544
  hasDuplicate = true;
@@ -600,8 +614,7 @@ var i,
600
 
601
  rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
602
  rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
603
-
604
- rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
605
 
606
  rpseudo = new RegExp( pseudos ),
607
  ridentifier = new RegExp( "^" + identifier + "$" ),
@@ -622,6 +635,7 @@ var i,
622
  whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
623
  },
624
 
 
625
  rinputs = /^(?:input|select|textarea|button)$/i,
626
  rheader = /^h\d$/i,
627
 
@@ -676,9 +690,9 @@ var i,
676
  setDocument();
677
  },
678
 
679
- disabledAncestor = addCombinator(
680
  function( elem ) {
681
- return elem.disabled === true && ("form" in elem || "label" in elem);
682
  },
683
  { dir: "parentNode", next: "legend" }
684
  );
@@ -791,18 +805,22 @@ function Sizzle( selector, context, results, seed ) {
791
 
792
  // Take advantage of querySelectorAll
793
  if ( support.qsa &&
794
- !compilerCache[ selector + " " ] &&
795
- (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
796
-
797
- if ( nodeType !== 1 ) {
798
- newContext = context;
799
- newSelector = selector;
800
 
801
- // qSA looks outside Element context, which is not what we want
802
- // Thanks to Andrew Dupont for this workaround technique
803
- // Support: IE <=8
804
  // Exclude object elements
805
- } else if ( context.nodeName.toLowerCase() !== "object" ) {
 
 
 
 
 
 
 
 
 
 
806
 
807
  // Capture the context ID, setting it first if necessary
808
  if ( (nid = context.getAttribute( "id" )) ) {
@@ -824,17 +842,16 @@ function Sizzle( selector, context, results, seed ) {
824
  context;
825
  }
826
 
827
- if ( newSelector ) {
828
- try {
829
- push.apply( results,
830
- newContext.querySelectorAll( newSelector )
831
- );
832
- return results;
833
- } catch ( qsaError ) {
834
- } finally {
835
- if ( nid === expando ) {
836
- context.removeAttribute( "id" );
837
- }
838
  }
839
  }
840
  }
@@ -998,7 +1015,7 @@ function createDisabledPseudo( disabled ) {
998
  // Where there is no isDisabled, check manually
999
  /* jshint -W018 */
1000
  elem.isDisabled !== !disabled &&
1001
- disabledAncestor( elem ) === disabled;
1002
  }
1003
 
1004
  return elem.disabled === disabled;
@@ -1055,10 +1072,13 @@ support = Sizzle.support = {};
1055
  * @returns {Boolean} True iff elem is a non-HTML XML node
1056
  */
1057
  isXML = Sizzle.isXML = function( elem ) {
1058
- // documentElement is verified for cases where it doesn't yet exist
1059
- // (such as loading iframes in IE - #4833)
1060
- var documentElement = elem && (elem.ownerDocument || elem).documentElement;
1061
- return documentElement ? documentElement.nodeName !== "HTML" : false;
 
 
 
1062
  };
1063
 
1064
  /**
@@ -1480,11 +1500,8 @@ Sizzle.matchesSelector = function( elem, expr ) {
1480
  setDocument( elem );
1481
  }
1482
 
1483
- // Make sure that attribute selectors are quoted
1484
- expr = expr.replace( rattributeQuotes, "='$1']" );
1485
-
1486
  if ( support.matchesSelector && documentIsHTML &&
1487
- !compilerCache[ expr + " " ] &&
1488
  ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
1489
  ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
1490
 
@@ -1498,7 +1515,9 @@ Sizzle.matchesSelector = function( elem, expr ) {
1498
  elem.document && elem.document.nodeType !== 11 ) {
1499
  return ret;
1500
  }
1501
- } catch (e) {}
 
 
1502
  }
1503
 
1504
  return Sizzle( expr, document, null, [ elem ] ).length > 0;
@@ -1957,7 +1976,7 @@ Expr = Sizzle.selectors = {
1957
  "contains": markFunction(function( text ) {
1958
  text = text.replace( runescape, funescape );
1959
  return function( elem ) {
1960
- return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
1961
  };
1962
  }),
1963
 
@@ -2096,7 +2115,11 @@ Expr = Sizzle.selectors = {
2096
  }),
2097
 
2098
  "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
2099
- var i = argument < 0 ? argument + length : argument;
 
 
 
 
2100
  for ( ; --i >= 0; ) {
2101
  matchIndexes.push( i );
2102
  }
@@ -3146,18 +3169,18 @@ jQuery.each( {
3146
  return siblings( elem.firstChild );
3147
  },
3148
  contents: function( elem ) {
3149
- if ( nodeName( elem, "iframe" ) ) {
3150
- return elem.contentDocument;
3151
- }
3152
 
3153
- // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
3154
- // Treat the template element as a regular one in browsers that
3155
- // don't support it.
3156
- if ( nodeName( elem, "template" ) ) {
3157
- elem = elem.content || elem;
3158
- }
3159
 
3160
- return jQuery.merge( [], elem.childNodes );
3161
  }
3162
  }, function( name, fn ) {
3163
  jQuery.fn[ name ] = function( until, selector ) {
@@ -4466,6 +4489,22 @@ var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
4466
 
4467
  var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
4468
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4469
  var isHiddenWithinTree = function( elem, el ) {
4470
 
4471
  // isHiddenWithinTree might be called from jQuery#filter function;
@@ -4480,7 +4519,7 @@ var isHiddenWithinTree = function( elem, el ) {
4480
  // Support: Firefox <=43 - 45
4481
  // Disconnected elements can have computed display: none, so first confirm that elem is
4482
  // in the document.
4483
- jQuery.contains( elem.ownerDocument, elem ) &&
4484
 
4485
  jQuery.css( elem, "display" ) === "none";
4486
  };
@@ -4522,7 +4561,8 @@ function adjustCSS( elem, prop, valueParts, tween ) {
4522
  unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
4523
 
4524
  // Starting value computation is required for potential unit mismatches
4525
- initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
 
4526
  rcssNum.exec( jQuery.css( elem, prop ) );
4527
 
4528
  if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
@@ -4669,7 +4709,7 @@ jQuery.fn.extend( {
4669
  } );
4670
  var rcheckableType = ( /^(?:checkbox|radio)$/i );
4671
 
4672
- var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
4673
 
4674
  var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
4675
 
@@ -4741,7 +4781,7 @@ function setGlobalEval( elems, refElements ) {
4741
  var rhtml = /<|&#?\w+;/;
4742
 
4743
  function buildFragment( elems, context, scripts, selection, ignored ) {
4744
- var elem, tmp, tag, wrap, contains, j,
4745
  fragment = context.createDocumentFragment(),
4746
  nodes = [],
4747
  i = 0,
@@ -4805,13 +4845,13 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
4805
  continue;
4806
  }
4807
 
4808
- contains = jQuery.contains( elem.ownerDocument, elem );
4809
 
4810
  // Append to fragment
4811
  tmp = getAll( fragment.appendChild( elem ), "script" );
4812
 
4813
  // Preserve script evaluation history
4814
- if ( contains ) {
4815
  setGlobalEval( tmp );
4816
  }
4817
 
@@ -4854,8 +4894,6 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
4854
  div.innerHTML = "<textarea>x</textarea>";
4855
  support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
4856
  } )();
4857
- var documentElement = document.documentElement;
4858
-
4859
 
4860
 
4861
  var
@@ -4871,8 +4909,19 @@ function returnFalse() {
4871
  return false;
4872
  }
4873
 
 
 
 
 
 
 
 
 
 
 
4874
  // Support: IE <=9 only
4875
- // See #13393 for more info
 
4876
  function safeActiveElement() {
4877
  try {
4878
  return document.activeElement;
@@ -5172,9 +5221,10 @@ jQuery.event = {
5172
  while ( ( handleObj = matched.handlers[ j++ ] ) &&
5173
  !event.isImmediatePropagationStopped() ) {
5174
 
5175
- // Triggered event must either 1) have no namespace, or 2) have namespace(s)
5176
- // a subset or equal to those in the bound event (both can have no namespace).
5177
- if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
 
5178
 
5179
  event.handleObj = handleObj;
5180
  event.data = handleObj.data;
@@ -5298,39 +5348,53 @@ jQuery.event = {
5298
  // Prevent triggered image.load events from bubbling to window.load
5299
  noBubble: true
5300
  },
5301
- focus: {
5302
 
5303
- // Fire native event if possible so blur/focus sequence is correct
5304
- trigger: function() {
5305
- if ( this !== safeActiveElement() && this.focus ) {
5306
- this.focus();
5307
- return false;
5308
- }
5309
- },
5310
- delegateType: "focusin"
5311
- },
5312
- blur: {
5313
- trigger: function() {
5314
- if ( this === safeActiveElement() && this.blur ) {
5315
- this.blur();
5316
- return false;
5317
  }
 
 
 
5318
  },
5319
- delegateType: "focusout"
5320
- },
5321
- click: {
5322
 
5323
- // For checkbox, fire native event so checked state will be right
5324
- trigger: function() {
5325
- if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
5326
- this.click();
5327
- return false;
 
 
 
 
 
5328
  }
 
 
 
5329
  },
5330
 
5331
- // For cross-browser consistency, don't fire native .click() on links
 
5332
  _default: function( event ) {
5333
- return nodeName( event.target, "a" );
 
 
 
 
5334
  }
5335
  },
5336
 
@@ -5347,6 +5411,85 @@ jQuery.event = {
5347
  }
5348
  };
5349
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5350
  jQuery.removeEvent = function( elem, type, handle ) {
5351
 
5352
  // This "if" is needed for plain objects
@@ -5459,6 +5602,7 @@ jQuery.each( {
5459
  shiftKey: true,
5460
  view: true,
5461
  "char": true,
 
5462
  charCode: true,
5463
  key: true,
5464
  keyCode: true,
@@ -5505,6 +5649,33 @@ jQuery.each( {
5505
  }
5506
  }, jQuery.event.addProp );
5507
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5508
  // Create mouseenter/leave events using mouseover/out and event-time checks
5509
  // so that event delegation works in jQuery.
5510
  // Do the same for pointerenter/pointerleave and pointerover/pointerout
@@ -5755,11 +5926,13 @@ function domManip( collection, args, callback, ignored ) {
5755
  if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) {
5756
 
5757
  // Optional AJAX dependency, but won't run scripts if not present
5758
- if ( jQuery._evalUrl ) {
5759
- jQuery._evalUrl( node.src );
 
 
5760
  }
5761
  } else {
5762
- DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node );
5763
  }
5764
  }
5765
  }
@@ -5781,7 +5954,7 @@ function remove( elem, selector, keepData ) {
5781
  }
5782
 
5783
  if ( node.parentNode ) {
5784
- if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
5785
  setGlobalEval( getAll( node, "script" ) );
5786
  }
5787
  node.parentNode.removeChild( node );
@@ -5799,7 +5972,7 @@ jQuery.extend( {
5799
  clone: function( elem, dataAndEvents, deepDataAndEvents ) {
5800
  var i, l, srcElements, destElements,
5801
  clone = elem.cloneNode( true ),
5802
- inPage = jQuery.contains( elem.ownerDocument, elem );
5803
 
5804
  // Fix IE cloning issues
5805
  if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
@@ -6095,8 +6268,10 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
6095
 
6096
  // Support: IE 9 only
6097
  // Detect overflow:scroll screwiness (gh-3699)
 
 
6098
  div.style.position = "absolute";
6099
- scrollboxSizeVal = div.offsetWidth === 36 || "absolute";
6100
 
6101
  documentElement.removeChild( container );
6102
 
@@ -6167,7 +6342,7 @@ function curCSS( elem, name, computed ) {
6167
  if ( computed ) {
6168
  ret = computed.getPropertyValue( name ) || computed[ name ];
6169
 
6170
- if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
6171
  ret = jQuery.style( elem, name );
6172
  }
6173
 
@@ -6223,30 +6398,13 @@ function addGetHookIf( conditionFn, hookFn ) {
6223
  }
6224
 
6225
 
6226
- var
 
 
6227
 
6228
- // Swappable if display is none or starts with table
6229
- // except "table", "table-cell", or "table-caption"
6230
- // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
6231
- rdisplayswap = /^(none|table(?!-c[ea]).+)/,
6232
- rcustomProp = /^--/,
6233
- cssShow = { position: "absolute", visibility: "hidden", display: "block" },
6234
- cssNormalTransform = {
6235
- letterSpacing: "0",
6236
- fontWeight: "400"
6237
- },
6238
-
6239
- cssPrefixes = [ "Webkit", "Moz", "ms" ],
6240
- emptyStyle = document.createElement( "div" ).style;
6241
-
6242
- // Return a css property mapped to a potentially vendor prefixed property
6243
  function vendorPropName( name ) {
6244
 
6245
- // Shortcut for names that are not vendor prefixed
6246
- if ( name in emptyStyle ) {
6247
- return name;
6248
- }
6249
-
6250
  // Check for vendor prefixed names
6251
  var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
6252
  i = cssPrefixes.length;
@@ -6259,16 +6417,33 @@ function vendorPropName( name ) {
6259
  }
6260
  }
6261
 
6262
- // Return a property mapped along what jQuery.cssProps suggests or to
6263
- // a vendor prefixed property.
6264
  function finalPropName( name ) {
6265
- var ret = jQuery.cssProps[ name ];
6266
- if ( !ret ) {
6267
- ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
 
6268
  }
6269
- return ret;
 
 
 
6270
  }
6271
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6272
  function setPositiveNumber( elem, value, subtract ) {
6273
 
6274
  // Any relative (+/-) values have already been
@@ -6340,7 +6515,10 @@ function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computed
6340
  delta -
6341
  extra -
6342
  0.5
6343
- ) );
 
 
 
6344
  }
6345
 
6346
  return delta;
@@ -6350,9 +6528,16 @@ function getWidthOrHeight( elem, dimension, extra ) {
6350
 
6351
  // Start with computed style
6352
  var styles = getStyles( elem ),
 
 
 
 
 
 
 
 
6353
  val = curCSS( elem, dimension, styles ),
6354
- isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
6355
- valueIsBorderBox = isBorderBox;
6356
 
6357
  // Support: Firefox <=54
6358
  // Return a confounding non-pixel value or feign ignorance, as appropriate.
@@ -6363,22 +6548,29 @@ function getWidthOrHeight( elem, dimension, extra ) {
6363
  val = "auto";
6364
  }
6365
 
6366
- // Check for style in case a browser which returns unreliable values
6367
- // for getComputedStyle silently falls back to the reliable elem.style
6368
- valueIsBorderBox = valueIsBorderBox &&
6369
- ( support.boxSizingReliable() || val === elem.style[ dimension ] );
6370
 
6371
  // Fall back to offsetWidth/offsetHeight when value is "auto"
6372
  // This happens for inline elements with no explicit setting (gh-3571)
6373
  // Support: Android <=4.1 - 4.3 only
6374
  // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
6375
- if ( val === "auto" ||
6376
- !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) {
 
 
 
 
 
 
6377
 
6378
- val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ];
6379
 
6380
- // offsetWidth/offsetHeight provide border-box values
6381
- valueIsBorderBox = true;
 
 
 
 
 
6382
  }
6383
 
6384
  // Normalize "" and auto
@@ -6424,6 +6616,13 @@ jQuery.extend( {
6424
  "flexGrow": true,
6425
  "flexShrink": true,
6426
  "fontWeight": true,
 
 
 
 
 
 
 
6427
  "lineHeight": true,
6428
  "opacity": true,
6429
  "order": true,
@@ -6479,7 +6678,9 @@ jQuery.extend( {
6479
  }
6480
 
6481
  // If a number was passed in, add the unit (except for certain CSS properties)
6482
- if ( type === "number" ) {
 
 
6483
  value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
6484
  }
6485
 
@@ -6579,18 +6780,29 @@ jQuery.each( [ "height", "width" ], function( i, dimension ) {
6579
  set: function( elem, value, extra ) {
6580
  var matches,
6581
  styles = getStyles( elem ),
6582
- isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
6583
- subtract = extra && boxModelAdjustment(
6584
- elem,
6585
- dimension,
6586
- extra,
6587
- isBorderBox,
6588
- styles
6589
- );
 
 
 
 
 
 
 
 
 
 
 
6590
 
6591
  // Account for unreliable border-box dimensions by comparing offset* to computed and
6592
  // faking a content-box to get border and padding (gh-3699)
6593
- if ( isBorderBox && support.scrollboxSize() === styles.position ) {
6594
  subtract -= Math.ceil(
6595
  elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
6596
  parseFloat( styles[ dimension ] ) -
@@ -6758,9 +6970,9 @@ Tween.propHooks = {
6758
  // Use .style if available and use plain properties where available.
6759
  if ( jQuery.fx.step[ tween.prop ] ) {
6760
  jQuery.fx.step[ tween.prop ]( tween );
6761
- } else if ( tween.elem.nodeType === 1 &&
6762
- ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
6763
- jQuery.cssHooks[ tween.prop ] ) ) {
6764
  jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
6765
  } else {
6766
  tween.elem[ tween.prop ] = tween.now;
@@ -8467,6 +8679,10 @@ jQuery.param = function( a, traditional ) {
8467
  encodeURIComponent( value == null ? "" : value );
8468
  };
8469
 
 
 
 
 
8470
  // If an array was passed in, assume that it is an array of form elements.
8471
  if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
8472
 
@@ -8969,12 +9185,14 @@ jQuery.extend( {
8969
  if ( !responseHeaders ) {
8970
  responseHeaders = {};
8971
  while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
8972
- responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
 
 
8973
  }
8974
  }
8975
- match = responseHeaders[ key.toLowerCase() ];
8976
  }
8977
- return match == null ? null : match;
8978
  },
8979
 
8980
  // Raw string
@@ -9363,7 +9581,7 @@ jQuery.each( [ "get", "post" ], function( i, method ) {
9363
  } );
9364
 
9365
 
9366
- jQuery._evalUrl = function( url ) {
9367
  return jQuery.ajax( {
9368
  url: url,
9369
 
@@ -9373,7 +9591,16 @@ jQuery._evalUrl = function( url ) {
9373
  cache: true,
9374
  async: false,
9375
  global: false,
9376
- "throws": true
 
 
 
 
 
 
 
 
 
9377
  } );
9378
  };
9379
 
@@ -9656,24 +9883,21 @@ jQuery.ajaxPrefilter( "script", function( s ) {
9656
  // Bind script tag hack transport
9657
  jQuery.ajaxTransport( "script", function( s ) {
9658
 
9659
- // This transport only deals with cross domain requests
9660
- if ( s.crossDomain ) {
9661
  var script, callback;
9662
  return {
9663
  send: function( _, complete ) {
9664
- script = jQuery( "<script>" ).prop( {
9665
- charset: s.scriptCharset,
9666
- src: s.url
9667
- } ).on(
9668
- "load error",
9669
- callback = function( evt ) {
9670
  script.remove();
9671
  callback = null;
9672
  if ( evt ) {
9673
  complete( evt.type === "error" ? 404 : 200, evt.type );
9674
  }
9675
- }
9676
- );
9677
 
9678
  // Use native DOM manipulation to avoid our domManip AJAX trickery
9679
  document.head.appendChild( script[ 0 ] );
1
  /*!
2
+ * jQuery JavaScript Library v3.4.0
3
  * https://jquery.com/
4
  *
5
  * Includes Sizzle.js
9
  * Released under the MIT license
10
  * https://jquery.org/license
11
  *
12
+ * Date: 2019-04-10T19:48Z
13
  */
14
  ( function( global, factory ) {
15
 
91
  var preservedScriptAttributes = {
92
  type: true,
93
  src: true,
94
+ nonce: true,
95
  noModule: true
96
  };
97
 
98
+ function DOMEval( code, node, doc ) {
99
  doc = doc || document;
100
 
101
+ var i, val,
102
  script = doc.createElement( "script" );
103
 
104
  script.text = code;
105
  if ( node ) {
106
  for ( i in preservedScriptAttributes ) {
107
+
108
+ // Support: Firefox 64+, Edge 18+
109
+ // Some browsers don't support the "nonce" property on scripts.
110
+ // On the other hand, just using `getAttribute` is not enough as
111
+ // the `nonce` attribute is reset to an empty string whenever it
112
+ // becomes browsing-context connected.
113
+ // See https://github.com/whatwg/html/issues/2369
114
+ // See https://html.spec.whatwg.org/#nonce-attributes
115
+ // The `node.getAttribute` check was added for the sake of
116
+ // `jQuery.globalEval` so that it can fake a nonce-containing node
117
+ // via an object.
118
+ val = node[ i ] || node.getAttribute && node.getAttribute( i );
119
+ if ( val ) {
120
+ script.setAttribute( i, val );
121
  }
122
  }
123
  }
142
 
143
 
144
  var
145
+ version = "3.4.0",
146
 
147
  // Define a local copy of jQuery
148
  jQuery = function( selector, context ) {
271
 
272
  // Extend the base object
273
  for ( name in options ) {
 
274
  copy = options[ name ];
275
 
276
+ // Prevent Object.prototype pollution
277
  // Prevent never-ending loop
278
+ if ( name === "__proto__" || target === copy ) {
279
  continue;
280
  }
281
 
282
  // Recurse if we're merging plain objects or arrays
283
  if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
284
  ( copyIsArray = Array.isArray( copy ) ) ) ) {
285
+ src = target[ name ];
286
 
287
+ // Ensure proper type for the source value
288
+ if ( copyIsArray && !Array.isArray( src ) ) {
289
+ clone = [];
290
+ } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {
291
+ clone = {};
292
  } else {
293
+ clone = src;
294
  }
295
+ copyIsArray = false;
296
 
297
  // Never move original objects, clone them
298
  target[ name ] = jQuery.extend( deep, clone, copy );
345
  },
346
 
347
  isEmptyObject: function( obj ) {
 
 
 
348
  var name;
349
 
350
  for ( name in obj ) {
354
  },
355
 
356
  // Evaluates a script in a global context
357
+ globalEval: function( code, options ) {
358
+ DOMEval( code, { nonce: options && options.nonce } );
359
  },
360
 
361
  each: function( obj, callback ) {
511
  }
512
  var Sizzle =
513
  /*!
514
+ * Sizzle CSS Selector Engine v2.3.4
515
  * https://sizzlejs.com/
516
  *
517
+ * Copyright JS Foundation and other contributors
518
  * Released under the MIT license
519
+ * https://js.foundation/
520
  *
521
+ * Date: 2019-04-08
522
  */
523
  (function( window ) {
524
 
552
  classCache = createCache(),
553
  tokenCache = createCache(),
554
  compilerCache = createCache(),
555
+ nonnativeSelectorCache = createCache(),
556
  sortOrder = function( a, b ) {
557
  if ( a === b ) {
558
  hasDuplicate = true;
614
 
615
  rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
616
  rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
617
+ rdescend = new RegExp( whitespace + "|>" ),
 
618
 
619
  rpseudo = new RegExp( pseudos ),
620
  ridentifier = new RegExp( "^" + identifier + "$" ),
635
  whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
636
  },
637
 
638
+ rhtml = /HTML$/i,
639
  rinputs = /^(?:input|select|textarea|button)$/i,
640
  rheader = /^h\d$/i,
641
 
690
  setDocument();
691
  },
692
 
693
+ inDisabledFieldset = addCombinator(
694
  function( elem ) {
695
+ return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset";
696
  },
697
  { dir: "parentNode", next: "legend" }
698
  );
805
 
806
  // Take advantage of querySelectorAll
807
  if ( support.qsa &&
808
+ !nonnativeSelectorCache[ selector + " " ] &&
809
+ (!rbuggyQSA || !rbuggyQSA.test( selector )) &&
 
 
 
 
810
 
811
+ // Support: IE 8 only
 
 
812
  // Exclude object elements
813
+ (nodeType !== 1 || context.nodeName.toLowerCase() !== "object") ) {
814
+
815
+ newSelector = selector;
816
+ newContext = context;
817
+
818
+ // qSA considers elements outside a scoping root when evaluating child or
819
+ // descendant combinators, which is not what we want.
820
+ // In such cases, we work around the behavior by prefixing every selector in the
821
+ // list with an ID selector referencing the scope context.
822
+ // Thanks to Andrew Dupont for this technique.
823
+ if ( nodeType === 1 && rdescend.test( selector ) ) {
824
 
825
  // Capture the context ID, setting it first if necessary
826
  if ( (nid = context.getAttribute( "id" )) ) {
842
  context;
843
  }
844
 
845
+ try {
846
+ push.apply( results,
847
+ newContext.querySelectorAll( newSelector )
848
+ );
849
+ return results;
850
+ } catch ( qsaError ) {
851
+ nonnativeSelectorCache( selector, true );
852
+ } finally {
853
+ if ( nid === expando ) {
854
+ context.removeAttribute( "id" );
 
855
  }
856
  }
857
  }
1015
  // Where there is no isDisabled, check manually
1016
  /* jshint -W018 */
1017
  elem.isDisabled !== !disabled &&
1018
+ inDisabledFieldset( elem ) === disabled;
1019
  }
1020
 
1021
  return elem.disabled === disabled;
1072
  * @returns {Boolean} True iff elem is a non-HTML XML node
1073
  */
1074
  isXML = Sizzle.isXML = function( elem ) {
1075
+ var namespace = elem.namespaceURI,
1076
+ docElem = (elem.ownerDocument || elem).documentElement;
1077
+
1078
+ // Support: IE <=8
1079
+ // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes
1080
+ // https://bugs.jquery.com/ticket/4833
1081
+ return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" );
1082
  };
1083
 
1084
  /**
1500
  setDocument( elem );
1501
  }
1502
 
 
 
 
1503
  if ( support.matchesSelector && documentIsHTML &&
1504
+ !nonnativeSelectorCache[ expr + " " ] &&
1505
  ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
1506
  ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
1507
 
1515
  elem.document && elem.document.nodeType !== 11 ) {
1516
  return ret;
1517
  }
1518
+ } catch (e) {
1519
+ nonnativeSelectorCache( expr, true );
1520
+ }
1521
  }
1522
 
1523
  return Sizzle( expr, document, null, [ elem ] ).length > 0;
1976
  "contains": markFunction(function( text ) {
1977
  text = text.replace( runescape, funescape );
1978
  return function( elem ) {
1979
+ return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;
1980
  };
1981
  }),
1982
 
2115
  }),
2116
 
2117
  "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
2118
+ var i = argument < 0 ?
2119
+ argument + length :
2120
+ argument > length ?
2121
+ length :
2122
+ argument;
2123
  for ( ; --i >= 0; ) {
2124
  matchIndexes.push( i );
2125
  }
3169
  return siblings( elem.firstChild );
3170
  },
3171
  contents: function( elem ) {
3172
+ if ( typeof elem.contentDocument !== "undefined" ) {
3173
+ return elem.contentDocument;
3174
+ }
3175
 
3176
+ // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
3177
+ // Treat the template element as a regular one in browsers that
3178
+ // don't support it.
3179
+ if ( nodeName( elem, "template" ) ) {
3180
+ elem = elem.content || elem;
3181
+ }
3182
 
3183
+ return jQuery.merge( [], elem.childNodes );
3184
  }
3185
  }, function( name, fn ) {
3186
  jQuery.fn[ name ] = function( until, selector ) {
4489
 
4490
  var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
4491
 
4492
+ var documentElement = document.documentElement;
4493
+
4494
+
4495
+
4496
+ var isAttached = function( elem ) {
4497
+ return jQuery.contains( elem.ownerDocument, elem );
4498
+ },
4499
+ composed = { composed: true };
4500
+
4501
+ // Check attachment across shadow DOM boundaries when possible (gh-3504)
4502
+ if ( documentElement.attachShadow ) {
4503
+ isAttached = function( elem ) {
4504
+ return jQuery.contains( elem.ownerDocument, elem ) ||
4505
+ elem.getRootNode( composed ) === elem.ownerDocument;
4506
+ };
4507
+ }
4508
  var isHiddenWithinTree = function( elem, el ) {
4509
 
4510
  // isHiddenWithinTree might be called from jQuery#filter function;
4519
  // Support: Firefox <=43 - 45
4520
  // Disconnected elements can have computed display: none, so first confirm that elem is
4521
  // in the document.
4522
+ isAttached( elem ) &&
4523
 
4524
  jQuery.css( elem, "display" ) === "none";
4525
  };
4561
  unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
4562
 
4563
  // Starting value computation is required for potential unit mismatches
4564
+ initialInUnit = elem.nodeType &&
4565
+ ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
4566
  rcssNum.exec( jQuery.css( elem, prop ) );
4567
 
4568
  if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
4709
  } );
4710
  var rcheckableType = ( /^(?:checkbox|radio)$/i );
4711
 
4712
+ var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i );
4713
 
4714
  var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
4715
 
4781
  var rhtml = /<|&#?\w+;/;
4782
 
4783
  function buildFragment( elems, context, scripts, selection, ignored ) {
4784
+ var elem, tmp, tag, wrap, attached, j,
4785
  fragment = context.createDocumentFragment(),
4786
  nodes = [],
4787
  i = 0,
4845
  continue;
4846
  }
4847
 
4848
+ attached = isAttached( elem );
4849
 
4850
  // Append to fragment
4851
  tmp = getAll( fragment.appendChild( elem ), "script" );
4852
 
4853
  // Preserve script evaluation history
4854
+ if ( attached ) {
4855
  setGlobalEval( tmp );
4856
  }
4857
 
4894
  div.innerHTML = "<textarea>x</textarea>";
4895
  support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
4896
  } )();
 
 
4897
 
4898
 
4899
  var
4909
  return false;
4910
  }
4911
 
4912
+ // Support: IE <=9 - 11+
4913
+ // focus() and blur() are asynchronous, except when they are no-op.
4914
+ // So expect focus to be synchronous when the element is already active,
4915
+ // and blur to be synchronous when the element is not already active.
4916
+ // (focus and blur are always synchronous in other supported browsers,
4917
+ // this just defines when we can count on it).
4918
+ function expectSync( elem, type ) {
4919
+ return ( elem === safeActiveElement() ) === ( type === "focus" );
4920
+ }
4921
+
4922
  // Support: IE <=9 only
4923
+ // Accessing document.activeElement can throw unexpectedly
4924
+ // https://bugs.jquery.com/ticket/13393
4925
  function safeActiveElement() {
4926
  try {
4927
  return document.activeElement;
5221
  while ( ( handleObj = matched.handlers[ j++ ] ) &&
5222
  !event.isImmediatePropagationStopped() ) {
5223
 
5224
+ // If the event is namespaced, then each handler is only invoked if it is
5225
+ // specially universal or its namespaces are a superset of the event's.
5226
+ if ( !event.rnamespace || handleObj.namespace === false ||
5227
+ event.rnamespace.test( handleObj.namespace ) ) {
5228
 
5229
  event.handleObj = handleObj;
5230
  event.data = handleObj.data;
5348
  // Prevent triggered image.load events from bubbling to window.load
5349
  noBubble: true
5350
  },
5351
+ click: {
5352
 
5353
+ // Utilize native event to ensure correct state for checkable inputs
5354
+ setup: function( data ) {
5355
+
5356
+ // For mutual compressibility with _default, replace `this` access with a local var.
5357
+ // `|| data` is dead code meant only to preserve the variable through minification.
5358
+ var el = this || data;
5359
+
5360
+ // Claim the first handler
5361
+ if ( rcheckableType.test( el.type ) &&
5362
+ el.click && nodeName( el, "input" ) &&
5363
+ dataPriv.get( el, "click" ) === undefined ) {
5364
+
5365
+ // dataPriv.set( el, "click", ... )
5366
+ leverageNative( el, "click", returnTrue );
5367
  }
5368
+
5369
+ // Return false to allow normal processing in the caller
5370
+ return false;
5371
  },
5372
+ trigger: function( data ) {
 
 
5373
 
5374
+ // For mutual compressibility with _default, replace `this` access with a local var.
5375
+ // `|| data` is dead code meant only to preserve the variable through minification.
5376
+ var el = this || data;
5377
+
5378
+ // Force setup before triggering a click
5379
+ if ( rcheckableType.test( el.type ) &&
5380
+ el.click && nodeName( el, "input" ) &&
5381
+ dataPriv.get( el, "click" ) === undefined ) {
5382
+
5383
+ leverageNative( el, "click" );
5384
  }
5385
+
5386
+ // Return non-false to allow normal event-path propagation
5387
+ return true;
5388
  },
5389
 
5390
+ // For cross-browser consistency, suppress native .click() on links
5391
+ // Also prevent it if we're currently inside a leveraged native-event stack
5392
  _default: function( event ) {
5393
+ var target = event.target;
5394
+ return rcheckableType.test( target.type ) &&
5395
+ target.click && nodeName( target, "input" ) &&
5396
+ dataPriv.get( target, "click" ) ||
5397
+ nodeName( target, "a" );
5398
  }
5399
  },
5400
 
5411
  }
5412
  };
5413
 
5414
+ // Ensure the presence of an event listener that handles manually-triggered
5415
+ // synthetic events by interrupting progress until reinvoked in response to
5416
+ // *native* events that it fires directly, ensuring that state changes have
5417
+ // already occurred before other listeners are invoked.
5418
+ function leverageNative( el, type, expectSync ) {
5419
+
5420
+ // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add
5421
+ if ( !expectSync ) {
5422
+ jQuery.event.add( el, type, returnTrue );
5423
+ return;
5424
+ }
5425
+
5426
+ // Register the controller as a special universal handler for all event namespaces
5427
+ dataPriv.set( el, type, false );
5428
+ jQuery.event.add( el, type, {
5429
+ namespace: false,
5430
+ handler: function( event ) {
5431
+ var notAsync, result,
5432
+ saved = dataPriv.get( this, type );
5433
+
5434
+ if ( ( event.isTrigger & 1 ) && this[ type ] ) {
5435
+
5436
+ // Interrupt processing of the outer synthetic .trigger()ed event
5437
+ if ( !saved ) {
5438
+
5439
+ // Store arguments for use when handling the inner native event
5440
+ saved = slice.call( arguments );
5441
+ dataPriv.set( this, type, saved );
5442
+
5443
+ // Trigger the native event and capture its result
5444
+ // Support: IE <=9 - 11+
5445
+ // focus() and blur() are asynchronous
5446
+ notAsync = expectSync( this, type );
5447
+ this[ type ]();
5448
+ result = dataPriv.get( this, type );
5449
+ if ( saved !== result || notAsync ) {
5450
+ dataPriv.set( this, type, false );
5451
+ } else {
5452
+ result = undefined;
5453
+ }
5454
+ if ( saved !== result ) {
5455
+
5456
+ // Cancel the outer synthetic event
5457
+ event.stopImmediatePropagation();
5458
+ event.preventDefault();
5459
+ return result;
5460
+ }
5461
+
5462
+ // If this is an inner synthetic event for an event with a bubbling surrogate
5463
+ // (focus or blur), assume that the surrogate already propagated from triggering the
5464
+ // native event and prevent that from happening again here.
5465
+ // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the
5466
+ // bubbling surrogate propagates *after* the non-bubbling base), but that seems
5467
+ // less bad than duplication.
5468
+ } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {
5469
+ event.stopPropagation();
5470
+ }
5471
+
5472
+ // If this is a native event triggered above, everything is now in order
5473
+ // Fire an inner synthetic event with the original arguments
5474
+ } else if ( saved ) {
5475
+
5476
+ // ...and capture the result
5477
+ dataPriv.set( this, type, jQuery.event.trigger(
5478
+
5479
+ // Support: IE <=9 - 11+
5480
+ // Extend with the prototype to reset the above stopImmediatePropagation()
5481
+ jQuery.extend( saved.shift(), jQuery.Event.prototype ),
5482
+ saved,
5483
+ this
5484
+ ) );
5485
+
5486
+ // Abort handling of the native event
5487
+ event.stopImmediatePropagation();
5488
+ }
5489
+ }
5490
+ } );
5491
+ }
5492
+
5493
  jQuery.removeEvent = function( elem, type, handle ) {
5494
 
5495
  // This "if" is needed for plain objects
5602
  shiftKey: true,
5603
  view: true,
5604
  "char": true,
5605
+ code: true,
5606
  charCode: true,
5607
  key: true,
5608
  keyCode: true,
5649
  }
5650
  }, jQuery.event.addProp );
5651
 
5652
+ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {
5653
+ jQuery.event.special[ type ] = {
5654
+
5655
+ // Utilize native event if possible so blur/focus sequence is correct
5656
+ setup: function() {
5657
+
5658
+ // Claim the first handler
5659
+ // dataPriv.set( this, "focus", ... )
5660
+ // dataPriv.set( this, "blur", ... )
5661
+ leverageNative( this, type, expectSync );
5662
+
5663
+ // Return false to allow normal processing in the caller
5664
+ return false;
5665
+ },
5666
+ trigger: function() {
5667
+
5668
+ // Force setup before trigger
5669
+ leverageNative( this, type );
5670
+
5671
+ // Return non-false to allow normal event-path propagation
5672
+ return true;
5673
+ },
5674
+
5675
+ delegateType: delegateType
5676
+ };
5677
+ } );
5678
+
5679
  // Create mouseenter/leave events using mouseover/out and event-time checks
5680
  // so that event delegation works in jQuery.
5681
  // Do the same for pointerenter/pointerleave and pointerover/pointerout
5926
  if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) {
5927
 
5928
  // Optional AJAX dependency, but won't run scripts if not present
5929
+ if ( jQuery._evalUrl && !node.noModule ) {
5930
+ jQuery._evalUrl( node.src, {
5931
+ nonce: node.nonce || node.getAttribute( "nonce" )
5932
+ } );
5933
  }
5934
  } else {
5935
+ DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc );
5936
  }
5937
  }
5938
  }
5954
  }
5955
 
5956
  if ( node.parentNode ) {
5957
+ if ( keepData && isAttached( node ) ) {
5958
  setGlobalEval( getAll( node, "script" ) );
5959
  }
5960
  node.parentNode.removeChild( node );
5972
  clone: function( elem, dataAndEvents, deepDataAndEvents ) {
5973
  var i, l, srcElements, destElements,
5974
  clone = elem.cloneNode( true ),
5975
+ inPage = isAttached( elem );
5976
 
5977
  // Fix IE cloning issues
5978
  if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
6268
 
6269
  // Support: IE 9 only
6270
  // Detect overflow:scroll screwiness (gh-3699)
6271
+ // Support: Chrome <=64
6272
+ // Don't get tricked when zoom affects offsetWidth (gh-4029)
6273
  div.style.position = "absolute";
6274
+ scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;
6275
 
6276
  documentElement.removeChild( container );
6277
 
6342
  if ( computed ) {
6343
  ret = computed.getPropertyValue( name ) || computed[ name ];
6344
 
6345
+ if ( ret === "" && !isAttached( elem ) ) {
6346
  ret = jQuery.style( elem, name );
6347
  }
6348
 
6398
  }
6399
 
6400
 
6401
+ var cssPrefixes = [ "Webkit", "Moz", "ms" ],
6402
+ emptyStyle = document.createElement( "div" ).style,
6403
+ vendorProps = {};
6404
 
6405
+ // Return a vendor-prefixed property or undefined
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6406
  function vendorPropName( name ) {
6407
 
 
 
 
 
 
6408
  // Check for vendor prefixed names
6409
  var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
6410
  i = cssPrefixes.length;
6417
  }
6418
  }
6419
 
6420
+ // Return a potentially-mapped jQuery.cssProps or vendor prefixed property
 
6421
  function finalPropName( name ) {
6422
+ var final = jQuery.cssProps[ name ] || vendorProps[ name ];
6423
+
6424
+ if ( final ) {
6425
+ return final;
6426
  }
6427
+ if ( name in emptyStyle ) {
6428
+ return name;
6429
+ }
6430
+ return vendorProps[ name ] = vendorPropName( name ) || name;
6431
  }
6432
 
6433
+
6434
+ var
6435
+
6436
+ // Swappable if display is none or starts with table
6437
+ // except "table", "table-cell", or "table-caption"
6438
+ // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
6439
+ rdisplayswap = /^(none|table(?!-c[ea]).+)/,
6440
+ rcustomProp = /^--/,
6441
+ cssShow = { position: "absolute", visibility: "hidden", display: "block" },
6442
+ cssNormalTransform = {
6443
+ letterSpacing: "0",
6444
+ fontWeight: "400"
6445
+ };
6446
+
6447
  function setPositiveNumber( elem, value, subtract ) {
6448
 
6449
  // Any relative (+/-) values have already been
6515
  delta -
6516
  extra -
6517
  0.5
6518
+
6519
+ // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter
6520
+ // Use an explicit zero to avoid NaN (gh-3964)
6521
+ ) ) || 0;
6522
  }
6523
 
6524
  return delta;
6528
 
6529
  // Start with computed style
6530
  var styles = getStyles( elem ),
6531
+
6532
+ // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).
6533
+ // Fake content-box until we know it's needed to know the true value.
6534
+ boxSizingNeeded = !support.boxSizingReliable() || extra,
6535
+ isBorderBox = boxSizingNeeded &&
6536
+ jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
6537
+ valueIsBorderBox = isBorderBox,
6538
+
6539
  val = curCSS( elem, dimension, styles ),
6540
+ offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );
 
6541
 
6542
  // Support: Firefox <=54
6543
  // Return a confounding non-pixel value or feign ignorance, as appropriate.
6548
  val = "auto";
6549
  }
6550
 
 
 
 
 
6551
 
6552
  // Fall back to offsetWidth/offsetHeight when value is "auto"
6553
  // This happens for inline elements with no explicit setting (gh-3571)
6554
  // Support: Android <=4.1 - 4.3 only
6555
  // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
6556
+ // Support: IE 9-11 only
6557
+ // Also use offsetWidth/offsetHeight for when box sizing is unreliable
6558
+ // We use getClientRects() to check for hidden/disconnected.
6559
+ // In those cases, the computed value can be trusted to be border-box
6560
+ if ( ( !support.boxSizingReliable() && isBorderBox ||
6561
+ val === "auto" ||
6562
+ !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) &&
6563
+ elem.getClientRects().length ) {
6564
 
6565
+ isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
6566
 
6567
+ // Where available, offsetWidth/offsetHeight approximate border box dimensions.
6568
+ // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the
6569
+ // retrieved value as a content box dimension.
6570
+ valueIsBorderBox = offsetProp in elem;
6571
+ if ( valueIsBorderBox ) {
6572
+ val = elem[ offsetProp ];
6573
+ }
6574
  }
6575
 
6576
  // Normalize "" and auto
6616
  "flexGrow": true,
6617
  "flexShrink": true,
6618
  "fontWeight": true,
6619
+ "gridArea": true,
6620
+ "gridColumn": true,
6621
+ "gridColumnEnd": true,
6622
+ "gridColumnStart": true,
6623
+ "gridRow": true,
6624
+ "gridRowEnd": true,
6625
+ "gridRowStart": true,
6626
  "lineHeight": true,
6627
  "opacity": true,
6628
  "order": true,
6678
  }
6679
 
6680
  // If a number was passed in, add the unit (except for certain CSS properties)
6681
+ // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append
6682
+ // "px" to a few hardcoded values.
6683
+ if ( type === "number" && !isCustomProp ) {
6684
  value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
6685
  }
6686
 
6780
  set: function( elem, value, extra ) {
6781
  var matches,
6782
  styles = getStyles( elem ),
6783
+
6784
+ // Only read styles.position if the test has a chance to fail
6785
+ // to avoid forcing a reflow.
6786
+ scrollboxSizeBuggy = !support.scrollboxSize() &&
6787
+ styles.position === "absolute",
6788
+
6789
+ // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)
6790
+ boxSizingNeeded = scrollboxSizeBuggy || extra,
6791
+ isBorderBox = boxSizingNeeded &&
6792
+ jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
6793
+ subtract = extra ?
6794
+ boxModelAdjustment(
6795
+ elem,
6796
+ dimension,
6797
+ extra,
6798
+ isBorderBox,
6799
+ styles
6800
+ ) :
6801
+ 0;
6802
 
6803
  // Account for unreliable border-box dimensions by comparing offset* to computed and
6804
  // faking a content-box to get border and padding (gh-3699)
6805
+ if ( isBorderBox && scrollboxSizeBuggy ) {
6806
  subtract -= Math.ceil(
6807
  elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
6808
  parseFloat( styles[ dimension ] ) -
6970
  // Use .style if available and use plain properties where available.
6971
  if ( jQuery.fx.step[ tween.prop ] ) {
6972
  jQuery.fx.step[ tween.prop ]( tween );
6973
+ } else if ( tween.elem.nodeType === 1 && (
6974
+ jQuery.cssHooks[ tween.prop ] ||
6975
+ tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {
6976
  jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
6977
  } else {
6978
  tween.elem[ tween.prop ] = tween.now;
8679
  encodeURIComponent( value == null ? "" : value );
8680
  };
8681
 
8682
+ if ( a == null ) {
8683
+ return "";
8684
+ }
8685
+
8686
  // If an array was passed in, assume that it is an array of form elements.
8687
  if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
8688
 
9185
  if ( !responseHeaders ) {
9186
  responseHeaders = {};
9187
  while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
9188
+ responseHeaders[ match[ 1 ].toLowerCase() + " " ] =
9189
+ ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] )
9190
+ .concat( match[ 2 ] );
9191
  }
9192
  }
9193
+ match = responseHeaders[ key.toLowerCase() + " " ];
9194
  }
9195
+ return match == null ? null : match.join( ", " );
9196
  },
9197
 
9198
  // Raw string
9581
  } );
9582
 
9583
 
9584
+ jQuery._evalUrl = function( url, options ) {
9585
  return jQuery.ajax( {
9586
  url: url,
9587
 
9591
  cache: true,
9592
  async: false,
9593
  global: false,
9594
+
9595
+ // Only evaluate the response if it is successful (gh-4126)
9596
+ // dataFilter is not invoked for failure responses, so using it instead
9597
+ // of the default converter is kludgy but it works.
9598
+ converters: {
9599
+ "text script": function() {}
9600
+ },
9601
+ dataFilter: function( response ) {
9602
+ jQuery.globalEval( response, options );
9603
+ }
9604
  } );
9605
  };
9606
 
9883
  // Bind script tag hack transport
9884
  jQuery.ajaxTransport( "script", function( s ) {
9885
 
9886
+ // This transport only deals with cross domain or forced-by-attrs requests
9887
+ if ( s.crossDomain || s.scriptAttrs ) {
9888
  var script, callback;
9889
  return {
9890
  send: function( _, complete ) {
9891
+ script = jQuery( "<script>" )
9892
+ .attr( s.scriptAttrs || {} )
9893
+ .prop( { charset: s.scriptCharset, src: s.url } )
9894
+ .on( "load error", callback = function( evt ) {
 
 
9895
  script.remove();
9896
  callback = null;
9897
  if ( evt ) {
9898
  complete( evt.type === "error" ? 404 : 200, evt.type );
9899
  }
9900
+ } );
 
9901
 
9902
  // Use native DOM manipulation to avoid our domManip AJAX trickery
9903
  document.head.appendChild( script[ 0 ] );
js/jquery-3.4.0.min.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /*! jQuery v3.4.0 | (c) JS Foundation and other contributors | jquery.org/license */
2
+ !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.0",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.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||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),A=ue(),N=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.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)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.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+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,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(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===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]||se.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]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(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(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!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,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.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:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},A=k.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&A.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!A.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(N(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;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},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.attachShadow&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}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}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ae(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ne(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ne(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)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n=void 0,r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n}else r&&(Q.set(this,i,k.event.trigger(k.extend(r.shift(),k.Event.prototype),r,this)),e.stopImmediatePropagation())}})):k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&N(t,"input")&&void 0===Q.get(t,"click")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&N(t,"input")&&void 0===Q.get(t,"click")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&N(t,"input")&&Q.get(t,"click")||N(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ae),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ne(this,e,t,n,r)},one:function(e,t,n,r){return Ne(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(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!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.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}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.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):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.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=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.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:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.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=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var At=/\[\]$/,Nt=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||At.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(Nt,"\r\n")}}):{name:t.name,value:n.replace(Nt,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,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":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(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];o=c.shift();while(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]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.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 k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.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)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=N,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
js/jquery-3.4.0.slim.js ADDED
@@ -0,0 +1,8485 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * jQuery JavaScript Library v3.4.0 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector
3
+ * https://jquery.com/
4
+ *
5
+ * Includes Sizzle.js
6
+ * https://sizzlejs.com/
7
+ *
8
+ * Copyright JS Foundation and other contributors
9
+ * Released under the MIT license
10
+ * https://jquery.org/license
11
+ *
12
+ * Date: 2019-04-10T19:49Z
13
+ */
14
+ ( function( global, factory ) {
15
+
16
+ "use strict";
17
+
18
+ if ( typeof module === "object" && typeof module.exports === "object" ) {
19
+
20
+ // For CommonJS and CommonJS-like environments where a proper `window`
21
+ // is present, execute the factory and get jQuery.
22
+ // For environments that do not have a `window` with a `document`
23
+ // (such as Node.js), expose a factory as module.exports.
24
+ // This accentuates the need for the creation of a real `window`.
25
+ // e.g. var jQuery = require("jquery")(window);
26
+ // See ticket #14549 for more info.
27
+ module.exports = global.document ?
28
+ factory( global, true ) :
29
+ function( w ) {
30
+ if ( !w.document ) {
31
+ throw new Error( "jQuery requires a window with a document" );
32
+ }
33
+ return factory( w );
34
+ };
35
+ } else {
36
+ factory( global );
37
+ }
38
+
39
+ // Pass this if window is not defined yet
40
+ } )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
41
+
42
+ // Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
43
+ // throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
44
+ // arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
45
+ // enough that all such attempts are guarded in a try block.
46
+ "use strict";
47
+
48
+ var arr = [];
49
+
50
+ var document = window.document;
51
+
52
+ var getProto = Object.getPrototypeOf;
53
+
54
+ var slice = arr.slice;
55
+
56
+ var concat = arr.concat;
57
+
58
+ var push = arr.push;
59
+
60
+ var indexOf = arr.indexOf;
61
+
62
+ var class2type = {};
63
+
64
+ var toString = class2type.toString;
65
+
66
+ var hasOwn = class2type.hasOwnProperty;
67
+
68
+ var fnToString = hasOwn.toString;
69
+
70
+ var ObjectFunctionString = fnToString.call( Object );
71
+
72
+ var support = {};
73
+
74
+ var isFunction = function isFunction( obj ) {
75
+
76
+ // Support: Chrome <=57, Firefox <=52
77
+ // In some browsers, typeof returns "function" for HTML <object> elements
78
+ // (i.e., `typeof document.createElement( "object" ) === "function"`).
79
+ // We don't want to classify *any* DOM node as a function.
80
+ return typeof obj === "function" && typeof obj.nodeType !== "number";
81
+ };
82
+
83
+
84
+ var isWindow = function isWindow( obj ) {
85
+ return obj != null && obj === obj.window;
86
+ };
87
+
88
+
89
+
90
+
91
+ var preservedScriptAttributes = {
92
+ type: true,
93
+ src: true,
94
+ nonce: true,
95
+ noModule: true
96
+ };
97
+
98
+ function DOMEval( code, node, doc ) {
99
+ doc = doc || document;
100
+
101
+ var i, val,
102
+ script = doc.createElement( "script" );
103
+
104
+ script.text = code;
105
+ if ( node ) {
106
+ for ( i in preservedScriptAttributes ) {
107
+
108
+ // Support: Firefox 64+, Edge 18+
109
+ // Some browsers don't support the "nonce" property on scripts.
110
+ // On the other hand, just using `getAttribute` is not enough as
111
+ // the `nonce` attribute is reset to an empty string whenever it
112
+ // becomes browsing-context connected.
113
+ // See https://github.com/whatwg/html/issues/2369
114
+ // See https://html.spec.whatwg.org/#nonce-attributes
115
+ // The `node.getAttribute` check was added for the sake of
116
+ // `jQuery.globalEval` so that it can fake a nonce-containing node
117
+ // via an object.
118
+ val = node[ i ] || node.getAttribute && node.getAttribute( i );
119
+ if ( val ) {
120
+ script.setAttribute( i, val );
121
+ }
122
+ }
123
+ }
124
+ doc.head.appendChild( script ).parentNode.removeChild( script );
125
+ }
126
+
127
+
128
+ function toType( obj ) {
129
+ if ( obj == null ) {
130
+ return obj + "";
131
+ }
132
+
133
+ // Support: Android <=2.3 only (functionish RegExp)
134
+ return typeof obj === "object" || typeof obj === "function" ?
135
+ class2type[ toString.call( obj ) ] || "object" :
136
+ typeof obj;
137
+ }
138
+ /* global Symbol */
139
+ // Defining this global in .eslintrc.json would create a danger of using the global
140
+ // unguarded in another place, it seems safer to define global only for this module
141
+
142
+
143
+
144
+ var
145
+ version = "3.4.0 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector",
146
+
147
+ // Define a local copy of jQuery
148
+ jQuery = function( selector, context ) {
149
+
150
+ // The jQuery object is actually just the init constructor 'enhanced'
151
+ // Need init if jQuery is called (just allow error to be thrown if not included)
152
+ return new jQuery.fn.init( selector, context );
153
+ },
154
+
155
+ // Support: Android <=4.0 only
156
+ // Make sure we trim BOM and NBSP
157
+ rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
158
+
159
+ jQuery.fn = jQuery.prototype = {
160
+
161
+ // The current version of jQuery being used
162
+ jquery: version,
163
+
164
+ constructor: jQuery,
165
+
166
+ // The default length of a jQuery object is 0
167
+ length: 0,
168
+
169
+ toArray: function() {
170
+ return slice.call( this );
171
+ },
172
+
173
+ // Get the Nth element in the matched element set OR
174
+ // Get the whole matched element set as a clean array
175
+ get: function( num ) {
176
+
177
+ // Return all the elements in a clean array
178
+ if ( num == null ) {
179
+ return slice.call( this );
180
+ }
181
+
182
+ // Return just the one element from the set
183
+ return num < 0 ? this[ num + this.length ] : this[ num ];
184
+ },
185
+
186
+ // Take an array of elements and push it onto the stack
187
+ // (returning the new matched element set)
188
+ pushStack: function( elems ) {
189
+
190
+ // Build a new jQuery matched element set
191
+ var ret = jQuery.merge( this.constructor(), elems );
192
+
193
+ // Add the old object onto the stack (as a reference)
194
+ ret.prevObject = this;
195
+
196
+ // Return the newly-formed element set
197
+ return ret;
198
+ },
199
+
200
+ // Execute a callback for every element in the matched set.
201
+ each: function( callback ) {
202
+ return jQuery.each( this, callback );
203
+ },
204
+
205
+ map: function( callback ) {
206
+ return this.pushStack( jQuery.map( this, function( elem, i ) {
207
+ return callback.call( elem, i, elem );
208
+ } ) );
209
+ },
210
+
211
+ slice: function() {
212
+ return this.pushStack( slice.apply( this, arguments ) );
213
+ },
214
+
215
+ first: function() {
216
+ return this.eq( 0 );
217
+ },
218
+
219
+ last: function() {
220
+ return this.eq( -1 );
221
+ },
222
+
223
+ eq: function( i ) {
224
+ var len = this.length,
225
+ j = +i + ( i < 0 ? len : 0 );
226
+ return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
227
+ },
228
+
229
+ end: function() {
230
+ return this.prevObject || this.constructor();
231
+ },
232
+
233
+ // For internal use only.
234
+ // Behaves like an Array's method, not like a jQuery method.
235
+ push: push,
236
+ sort: arr.sort,
237
+ splice: arr.splice
238
+ };
239
+
240
+ jQuery.extend = jQuery.fn.extend = function() {
241
+ var options, name, src, copy, copyIsArray, clone,
242
+ target = arguments[ 0 ] || {},
243
+ i = 1,
244
+ length = arguments.length,
245
+ deep = false;
246
+
247
+ // Handle a deep copy situation
248
+ if ( typeof target === "boolean" ) {
249
+ deep = target;
250
+
251
+ // Skip the boolean and the target
252
+ target = arguments[ i ] || {};
253
+ i++;
254
+ }
255
+
256
+ // Handle case when target is a string or something (possible in deep copy)
257
+ if ( typeof target !== "object" && !isFunction( target ) ) {
258
+ target = {};
259
+ }
260
+
261
+ // Extend jQuery itself if only one argument is passed
262
+ if ( i === length ) {
263
+ target = this;
264
+ i--;
265
+ }
266
+
267
+ for ( ; i < length; i++ ) {
268
+
269
+ // Only deal with non-null/undefined values
270
+ if ( ( options = arguments[ i ] ) != null ) {
271
+
272
+ // Extend the base object
273
+ for ( name in options ) {
274
+ copy = options[ name ];
275
+
276
+ // Prevent Object.prototype pollution
277
+ // Prevent never-ending loop
278
+ if ( name === "__proto__" || target === copy ) {
279
+ continue;
280
+ }
281
+
282
+ // Recurse if we're merging plain objects or arrays
283
+ if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
284
+ ( copyIsArray = Array.isArray( copy ) ) ) ) {
285
+ src = target[ name ];
286
+
287
+ // Ensure proper type for the source value
288
+ if ( copyIsArray && !Array.isArray( src ) ) {
289
+ clone = [];
290
+ } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {
291
+ clone = {};
292
+ } else {
293
+ clone = src;
294
+ }
295
+ copyIsArray = false;
296
+
297
+ // Never move original objects, clone them
298
+ target[ name ] = jQuery.extend( deep, clone, copy );
299
+
300
+ // Don't bring in undefined values
301
+ } else if ( copy !== undefined ) {
302
+ target[ name ] = copy;
303
+ }
304
+ }
305
+ }
306
+ }
307
+
308
+ // Return the modified object
309
+ return target;
310
+ };
311
+
312
+ jQuery.extend( {
313
+
314
+ // Unique for each copy of jQuery on the page
315
+ expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
316
+
317
+ // Assume jQuery is ready without the ready module
318
+ isReady: true,
319
+
320
+ error: function( msg ) {
321
+ throw new Error( msg );
322
+ },
323
+
324
+ noop: function() {},
325
+
326
+ isPlainObject: function( obj ) {
327
+ var proto, Ctor;
328
+
329
+ // Detect obvious negatives
330
+ // Use toString instead of jQuery.type to catch host objects
331
+ if ( !obj || toString.call( obj ) !== "[object Object]" ) {
332
+ return false;
333
+ }
334
+
335
+ proto = getProto( obj );
336
+
337
+ // Objects with no prototype (e.g., `Object.create( null )`) are plain
338
+ if ( !proto ) {
339
+ return true;
340
+ }
341
+
342
+ // Objects with prototype are plain iff they were constructed by a global Object function
343
+ Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
344
+ return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
345
+ },
346
+
347
+ isEmptyObject: function( obj ) {
348
+ var name;
349
+
350
+ for ( name in obj ) {
351
+ return false;
352
+ }
353
+ return true;
354
+ },
355
+
356
+ // Evaluates a script in a global context
357
+ globalEval: function( code, options ) {
358
+ DOMEval( code, { nonce: options && options.nonce } );
359
+ },
360
+
361
+ each: function( obj, callback ) {
362
+ var length, i = 0;
363
+
364
+ if ( isArrayLike( obj ) ) {
365
+ length = obj.length;
366
+ for ( ; i < length; i++ ) {
367
+ if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
368
+ break;
369
+ }
370
+ }
371
+ } else {
372
+ for ( i in obj ) {
373
+ if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
374
+ break;
375
+ }
376
+ }
377
+ }
378
+
379
+ return obj;
380
+ },
381
+
382
+ // Support: Android <=4.0 only
383
+ trim: function( text ) {
384
+ return text == null ?
385
+ "" :
386
+ ( text + "" ).replace( rtrim, "" );
387
+ },
388
+
389
+ // results is for internal usage only
390
+ makeArray: function( arr, results ) {
391
+ var ret = results || [];
392
+
393
+ if ( arr != null ) {
394
+ if ( isArrayLike( Object( arr ) ) ) {
395
+ jQuery.merge( ret,
396
+ typeof arr === "string" ?
397
+ [ arr ] : arr
398
+ );
399
+ } else {
400
+ push.call( ret, arr );
401
+ }
402
+ }
403
+
404
+ return ret;
405
+ },
406
+
407
+ inArray: function( elem, arr, i ) {
408
+ return arr == null ? -1 : indexOf.call( arr, elem, i );
409
+ },
410
+
411
+ // Support: Android <=4.0 only, PhantomJS 1 only
412
+ // push.apply(_, arraylike) throws on ancient WebKit
413
+ merge: function( first, second ) {
414
+ var len = +second.length,
415
+ j = 0,
416
+ i = first.length;
417
+
418
+ for ( ; j < len; j++ ) {
419
+ first[ i++ ] = second[ j ];
420
+ }
421
+
422
+ first.length = i;
423
+
424
+ return first;
425
+ },
426
+
427
+ grep: function( elems, callback, invert ) {
428
+ var callbackInverse,
429
+ matches = [],
430
+ i = 0,
431
+ length = elems.length,
432
+ callbackExpect = !invert;
433
+
434
+ // Go through the array, only saving the items
435
+ // that pass the validator function
436
+ for ( ; i < length; i++ ) {
437
+ callbackInverse = !callback( elems[ i ], i );
438
+ if ( callbackInverse !== callbackExpect ) {
439
+ matches.push( elems[ i ] );
440
+ }
441
+ }
442
+
443
+ return matches;
444
+ },
445
+
446
+ // arg is for internal usage only
447
+ map: function( elems, callback, arg ) {
448
+ var length, value,
449
+ i = 0,
450
+ ret = [];
451
+
452
+ // Go through the array, translating each of the items to their new values
453
+ if ( isArrayLike( elems ) ) {
454
+ length = elems.length;
455
+ for ( ; i < length; i++ ) {
456
+ value = callback( elems[ i ], i, arg );
457
+
458
+ if ( value != null ) {
459
+ ret.push( value );
460
+ }
461
+ }
462
+
463
+ // Go through every key on the object,
464
+ } else {
465
+ for ( i in elems ) {
466
+ value = callback( elems[ i ], i, arg );
467
+
468
+ if ( value != null ) {
469
+ ret.push( value );
470
+ }
471
+ }
472
+ }
473
+
474
+ // Flatten any nested arrays
475
+ return concat.apply( [], ret );
476
+ },
477
+
478
+ // A global GUID counter for objects
479
+ guid: 1,
480
+
481
+ // jQuery.support is not used in Core but other projects attach their
482
+ // properties to it so it needs to exist.
483
+ support: support
484
+ } );
485
+
486
+ if ( typeof Symbol === "function" ) {
487
+ jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
488
+ }
489
+
490
+ // Populate the class2type map
491
+ jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
492
+ function( i, name ) {
493
+ class2type[ "[object " + name + "]" ] = name.toLowerCase();
494
+ } );
495
+
496
+ function isArrayLike( obj ) {
497
+
498
+ // Support: real iOS 8.2 only (not reproducible in simulator)
499
+ // `in` check used to prevent JIT error (gh-2145)
500
+ // hasOwn isn't used here due to false negatives
501
+ // regarding Nodelist length in IE
502
+ var length = !!obj && "length" in obj && obj.length,
503
+ type = toType( obj );
504
+
505
+ if ( isFunction( obj ) || isWindow( obj ) ) {
506
+ return false;
507
+ }
508
+
509
+ return type === "array" || length === 0 ||
510
+ typeof length === "number" && length > 0 && ( length - 1 ) in obj;
511
+ }
512
+ var Sizzle =
513
+ /*!
514
+ * Sizzle CSS Selector Engine v2.3.4
515
+ * https://sizzlejs.com/
516
+ *
517
+ * Copyright JS Foundation and other contributors
518
+ * Released under the MIT license
519
+ * https://js.foundation/
520
+ *
521
+ * Date: 2019-04-08
522
+ */
523
+ (function( window ) {
524
+
525
+ var i,
526
+ support,
527
+ Expr,
528
+ getText,
529
+ isXML,
530
+ tokenize,
531
+ compile,
532
+ select,
533
+ outermostContext,
534
+ sortInput,
535
+ hasDuplicate,
536
+
537
+ // Local document vars
538
+ setDocument,
539
+ document,
540
+ docElem,
541
+ documentIsHTML,
542
+ rbuggyQSA,
543
+ rbuggyMatches,
544
+ matches,
545
+ contains,
546
+
547
+ // Instance-specific data
548
+ expando = "sizzle" + 1 * new Date(),
549
+ preferredDoc = window.document,
550
+ dirruns = 0,
551
+ done = 0,
552
+ classCache = createCache(),
553
+ tokenCache = createCache(),
554
+ compilerCache = createCache(),
555
+ nonnativeSelectorCache = createCache(),
556
+ sortOrder = function( a, b ) {
557
+ if ( a === b ) {
558
+ hasDuplicate = true;
559
+ }
560
+ return 0;
561
+ },
562
+
563
+ // Instance methods
564
+ hasOwn = ({}).hasOwnProperty,
565
+ arr = [],
566
+ pop = arr.pop,
567
+ push_native = arr.push,
568
+ push = arr.push,
569
+ slice = arr.slice,
570
+ // Use a stripped-down indexOf as it's faster than native
571
+ // https://jsperf.com/thor-indexof-vs-for/5
572
+ indexOf = function( list, elem ) {
573
+ var i = 0,
574
+ len = list.length;
575
+ for ( ; i < len; i++ ) {
576
+ if ( list[i] === elem ) {
577
+ return i;
578
+ }
579
+ }
580
+ return -1;
581
+ },
582
+
583
+ booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
584
+
585
+ // Regular expressions
586
+
587
+ // http://www.w3.org/TR/css3-selectors/#whitespace
588
+ whitespace = "[\\x20\\t\\r\\n\\f]",
589
+
590
+ // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
591
+ identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
592
+
593
+ // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
594
+ attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
595
+ // Operator (capture 2)
596
+ "*([*^$|!~]?=)" + whitespace +
597
+ // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
598
+ "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
599
+ "*\\]",
600
+
601
+ pseudos = ":(" + identifier + ")(?:\\((" +
602
+ // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
603
+ // 1. quoted (capture 3; capture 4 or capture 5)
604
+ "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
605
+ // 2. simple (capture 6)
606
+ "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
607
+ // 3. anything else (capture 2)
608
+ ".*" +
609
+ ")\\)|)",
610
+
611
+ // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
612
+ rwhitespace = new RegExp( whitespace + "+", "g" ),
613
+ rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
614
+
615
+ rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
616
+ rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
617
+ rdescend = new RegExp( whitespace + "|>" ),
618
+
619
+ rpseudo = new RegExp( pseudos ),
620
+ ridentifier = new RegExp( "^" + identifier + "$" ),
621
+
622
+ matchExpr = {
623
+ "ID": new RegExp( "^#(" + identifier + ")" ),
624
+ "CLASS": new RegExp( "^\\.(" + identifier + ")" ),
625
+ "TAG": new RegExp( "^(" + identifier + "|[*])" ),
626
+ "ATTR": new RegExp( "^" + attributes ),
627
+ "PSEUDO": new RegExp( "^" + pseudos ),
628
+ "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
629
+ "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
630
+ "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
631
+ "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
632
+ // For use in libraries implementing .is()
633
+ // We use this for POS matching in `select`
634
+ "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
635
+ whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
636
+ },
637
+
638
+ rhtml = /HTML$/i,
639
+ rinputs = /^(?:input|select|textarea|button)$/i,
640
+ rheader = /^h\d$/i,
641
+
642
+ rnative = /^[^{]+\{\s*\[native \w/,
643
+
644
+ // Easily-parseable/retrievable ID or TAG or CLASS selectors
645
+ rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
646
+
647
+ rsibling = /[+~]/,
648
+
649
+ // CSS escapes
650
+ // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
651
+ runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
652
+ funescape = function( _, escaped, escapedWhitespace ) {
653
+ var high = "0x" + escaped - 0x10000;
654
+ // NaN means non-codepoint
655
+ // Support: Firefox<24
656
+ // Workaround erroneous numeric interpretation of +"0x"
657
+ return high !== high || escapedWhitespace ?
658
+ escaped :
659
+ high < 0 ?
660
+ // BMP codepoint
661
+ String.fromCharCode( high + 0x10000 ) :
662
+ // Supplemental Plane codepoint (surrogate pair)
663
+ String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
664
+ },
665
+
666
+ // CSS string/identifier serialization
667
+ // https://drafts.csswg.org/cssom/#common-serializing-idioms
668
+ rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
669
+ fcssescape = function( ch, asCodePoint ) {
670
+ if ( asCodePoint ) {
671
+
672
+ // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
673
+ if ( ch === "\0" ) {
674
+ return "\uFFFD";
675
+ }
676
+
677
+ // Control characters and (dependent upon position) numbers get escaped as code points
678
+ return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
679
+ }
680
+
681
+ // Other potentially-special ASCII characters get backslash-escaped
682
+ return "\\" + ch;
683
+ },
684
+
685
+ // Used for iframes
686
+ // See setDocument()
687
+ // Removing the function wrapper causes a "Permission Denied"
688
+ // error in IE
689
+ unloadHandler = function() {
690
+ setDocument();
691
+ },
692
+
693
+ inDisabledFieldset = addCombinator(
694
+ function( elem ) {
695
+ return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset";
696
+ },
697
+ { dir: "parentNode", next: "legend" }
698
+ );
699
+
700
+ // Optimize for push.apply( _, NodeList )
701
+ try {
702
+ push.apply(
703
+ (arr = slice.call( preferredDoc.childNodes )),
704
+ preferredDoc.childNodes
705
+ );
706
+ // Support: Android<4.0
707
+ // Detect silently failing push.apply
708
+ arr[ preferredDoc.childNodes.length ].nodeType;
709
+ } catch ( e ) {
710
+ push = { apply: arr.length ?
711
+
712
+ // Leverage slice if possible
713
+ function( target, els ) {
714
+ push_native.apply( target, slice.call(els) );
715
+ } :
716
+
717
+ // Support: IE<9
718
+ // Otherwise append directly
719
+ function( target, els ) {
720
+ var j = target.length,
721
+ i = 0;
722
+ // Can't trust NodeList.length
723
+ while ( (target[j++] = els[i++]) ) {}
724
+ target.length = j - 1;
725
+ }
726
+ };
727
+ }
728
+
729
+ function Sizzle( selector, context, results, seed ) {
730
+ var m, i, elem, nid, match, groups, newSelector,
731
+ newContext = context && context.ownerDocument,
732
+
733
+ // nodeType defaults to 9, since context defaults to document
734
+ nodeType = context ? context.nodeType : 9;
735
+
736
+ results = results || [];
737
+
738
+ // Return early from calls with invalid selector or context
739
+ if ( typeof selector !== "string" || !selector ||
740
+ nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
741
+
742
+ return results;
743
+ }
744
+
745
+ // Try to shortcut find operations (as opposed to filters) in HTML documents
746
+ if ( !seed ) {
747
+
748
+ if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
749
+ setDocument( context );
750
+ }
751
+ context = context || document;
752
+
753
+ if ( documentIsHTML ) {
754
+
755
+ // If the selector is sufficiently simple, try using a "get*By*" DOM method
756
+ // (excepting DocumentFragment context, where the methods don't exist)
757
+ if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
758
+
759
+ // ID selector
760
+ if ( (m = match[1]) ) {
761
+
762
+ // Document context
763
+ if ( nodeType === 9 ) {
764
+ if ( (elem = context.getElementById( m )) ) {
765
+
766
+ // Support: IE, Opera, Webkit
767
+ // TODO: identify versions
768
+ // getElementById can match elements by name instead of ID
769
+ if ( elem.id === m ) {
770
+ results.push( elem );
771
+ return results;
772
+ }
773
+ } else {
774
+ return results;
775
+ }
776
+
777
+ // Element context
778
+ } else {
779
+
780
+ // Support: IE, Opera, Webkit
781
+ // TODO: identify versions
782
+ // getElementById can match elements by name instead of ID
783
+ if ( newContext && (elem = newContext.getElementById( m )) &&
784
+ contains( context, elem ) &&
785
+ elem.id === m ) {
786
+
787
+ results.push( elem );
788
+ return results;
789
+ }
790
+ }
791
+
792
+ // Type selector
793
+ } else if ( match[2] ) {
794
+ push.apply( results, context.getElementsByTagName( selector ) );
795
+ return results;
796
+
797
+ // Class selector
798
+ } else if ( (m = match[3]) && support.getElementsByClassName &&
799
+ context.getElementsByClassName ) {
800
+
801
+ push.apply( results, context.getElementsByClassName( m ) );
802
+ return results;
803
+ }
804
+ }
805
+
806
+ // Take advantage of querySelectorAll
807
+ if ( support.qsa &&
808
+ !nonnativeSelectorCache[ selector + " " ] &&
809
+ (!rbuggyQSA || !rbuggyQSA.test( selector )) &&
810
+
811
+ // Support: IE 8 only
812
+ // Exclude object elements
813
+ (nodeType !== 1 || context.nodeName.toLowerCase() !== "object") ) {
814
+
815
+ newSelector = selector;
816
+ newContext = context;
817
+
818
+ // qSA considers elements outside a scoping root when evaluating child or
819
+ // descendant combinators, which is not what we want.
820
+ // In such cases, we work around the behavior by prefixing every selector in the
821
+ // list with an ID selector referencing the scope context.
822
+ // Thanks to Andrew Dupont for this technique.
823
+ if ( nodeType === 1 && rdescend.test( selector ) ) {
824
+
825
+ // Capture the context ID, setting it first if necessary
826
+ if ( (nid = context.getAttribute( "id" )) ) {
827
+ nid = nid.replace( rcssescape, fcssescape );
828
+ } else {
829
+ context.setAttribute( "id", (nid = expando) );
830
+ }
831
+
832
+ // Prefix every selector in the list
833
+ groups = tokenize( selector );
834
+ i = groups.length;
835
+ while ( i-- ) {
836
+ groups[i] = "#" + nid + " " + toSelector( groups[i] );
837
+ }
838
+ newSelector = groups.join( "," );
839
+
840
+ // Expand context for sibling selectors
841
+ newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
842
+ context;
843
+ }
844
+
845
+ try {
846
+ push.apply( results,
847
+ newContext.querySelectorAll( newSelector )
848
+ );
849
+ return results;
850
+ } catch ( qsaError ) {
851
+ nonnativeSelectorCache( selector, true );
852
+ } finally {
853
+ if ( nid === expando ) {
854
+ context.removeAttribute( "id" );
855
+ }
856
+ }
857
+ }
858
+ }
859
+ }
860
+
861
+ // All others
862
+ return select( selector.replace( rtrim, "$1" ), context, results, seed );
863
+ }
864
+
865
+ /**
866
+ * Create key-value caches of limited size
867
+ * @returns {function(string, object)} Returns the Object data after storing it on itself with
868
+ * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
869
+ * deleting the oldest entry
870
+ */
871
+ function createCache() {
872
+ var keys = [];
873
+
874
+ function cache( key, value ) {
875
+ // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
876
+ if ( keys.push( key + " " ) > Expr.cacheLength ) {
877
+ // Only keep the most recent entries
878
+ delete cache[ keys.shift() ];
879
+ }
880
+ return (cache[ key + " " ] = value);
881
+ }
882
+ return cache;
883
+ }
884
+
885
+ /**
886
+ * Mark a function for special use by Sizzle
887
+ * @param {Function} fn The function to mark
888
+ */
889
+ function markFunction( fn ) {
890
+ fn[ expando ] = true;
891
+ return fn;
892
+ }
893
+
894
+ /**
895
+ * Support testing using an element
896
+ * @param {Function} fn Passed the created element and returns a boolean result
897
+ */
898
+ function assert( fn ) {
899
+ var el = document.createElement("fieldset");
900
+
901
+ try {
902
+ return !!fn( el );
903
+ } catch (e) {
904
+ return false;
905
+ } finally {
906
+ // Remove from its parent by default
907
+ if ( el.parentNode ) {
908
+ el.parentNode.removeChild( el );
909
+ }
910
+ // release memory in IE
911
+ el = null;
912
+ }
913
+ }
914
+
915
+ /**
916
+ * Adds the same handler for all of the specified attrs
917
+ * @param {String} attrs Pipe-separated list of attributes
918
+ * @param {Function} handler The method that will be applied
919
+ */
920
+ function addHandle( attrs, handler ) {
921
+ var arr = attrs.split("|"),
922
+ i = arr.length;
923
+
924
+ while ( i-- ) {
925
+ Expr.attrHandle[ arr[i] ] = handler;
926
+ }
927
+ }
928
+
929
+ /**
930
+ * Checks document order of two siblings
931
+ * @param {Element} a
932
+ * @param {Element} b
933
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
934
+ */
935
+ function siblingCheck( a, b ) {
936
+ var cur = b && a,
937
+ diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
938
+ a.sourceIndex - b.sourceIndex;
939
+
940
+ // Use IE sourceIndex if available on both nodes
941
+ if ( diff ) {
942
+ return diff;
943
+ }
944
+
945
+ // Check if b follows a
946
+ if ( cur ) {
947
+ while ( (cur = cur.nextSibling) ) {
948
+ if ( cur === b ) {
949
+ return -1;
950
+ }
951
+ }
952
+ }
953
+
954
+ return a ? 1 : -1;
955
+ }
956
+
957
+ /**
958
+ * Returns a function to use in pseudos for input types
959
+ * @param {String} type
960
+ */
961
+ function createInputPseudo( type ) {
962
+ return function( elem ) {
963
+ var name = elem.nodeName.toLowerCase();
964
+ return name === "input" && elem.type === type;
965
+ };
966
+ }
967
+
968
+ /**
969
+ * Returns a function to use in pseudos for buttons
970
+ * @param {String} type
971
+ */
972
+ function createButtonPseudo( type ) {
973
+ return function( elem ) {
974
+ var name = elem.nodeName.toLowerCase();
975
+ return (name === "input" || name === "button") && elem.type === type;
976
+ };
977
+ }
978
+
979
+ /**
980
+ * Returns a function to use in pseudos for :enabled/:disabled
981
+ * @param {Boolean} disabled true for :disabled; false for :enabled
982
+ */
983
+ function createDisabledPseudo( disabled ) {
984
+
985
+ // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
986
+ return function( elem ) {
987
+
988
+ // Only certain elements can match :enabled or :disabled
989
+ // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
990
+ // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
991
+ if ( "form" in elem ) {
992
+
993
+ // Check for inherited disabledness on relevant non-disabled elements:
994
+ // * listed form-associated elements in a disabled fieldset
995
+ // https://html.spec.whatwg.org/multipage/forms.html#category-listed
996
+ // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
997
+ // * option elements in a disabled optgroup
998
+ // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
999
+ // All such elements have a "form" property.
1000
+ if ( elem.parentNode && elem.disabled === false ) {
1001
+
1002
+ // Option elements defer to a parent optgroup if present
1003
+ if ( "label" in elem ) {
1004
+ if ( "label" in elem.parentNode ) {
1005
+ return elem.parentNode.disabled === disabled;
1006
+ } else {
1007
+ return elem.disabled === disabled;
1008
+ }
1009
+ }
1010
+
1011
+ // Support: IE 6 - 11
1012
+ // Use the isDisabled shortcut property to check for disabled fieldset ancestors
1013
+ return elem.isDisabled === disabled ||
1014
+
1015
+ // Where there is no isDisabled, check manually
1016
+ /* jshint -W018 */
1017
+ elem.isDisabled !== !disabled &&
1018
+ inDisabledFieldset( elem ) === disabled;
1019
+ }
1020
+
1021
+ return elem.disabled === disabled;
1022
+
1023
+ // Try to winnow out elements that can't be disabled before trusting the disabled property.
1024
+ // Some victims get caught in our net (label, legend, menu, track), but it shouldn't
1025
+ // even exist on them, let alone have a boolean value.
1026
+ } else if ( "label" in elem ) {
1027
+ return elem.disabled === disabled;
1028
+ }
1029
+
1030
+ // Remaining elements are neither :enabled nor :disabled
1031
+ return false;
1032
+ };
1033
+ }
1034
+
1035
+ /**
1036
+ * Returns a function to use in pseudos for positionals
1037
+ * @param {Function} fn
1038
+ */
1039
+ function createPositionalPseudo( fn ) {
1040
+ return markFunction(function( argument ) {
1041
+ argument = +argument;
1042
+ return markFunction(function( seed, matches ) {
1043
+ var j,
1044
+ matchIndexes = fn( [], seed.length, argument ),
1045
+ i = matchIndexes.length;
1046
+
1047
+ // Match elements found at the specified indexes
1048
+ while ( i-- ) {
1049
+ if ( seed[ (j = matchIndexes[i]) ] ) {
1050
+ seed[j] = !(matches[j] = seed[j]);
1051
+ }
1052
+ }
1053
+ });
1054
+ });
1055
+ }
1056
+
1057
+ /**
1058
+ * Checks a node for validity as a Sizzle context
1059
+ * @param {Element|Object=} context
1060
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
1061
+ */
1062
+ function testContext( context ) {
1063
+ return context && typeof context.getElementsByTagName !== "undefined" && context;
1064
+ }
1065
+
1066
+ // Expose support vars for convenience
1067
+ support = Sizzle.support = {};
1068
+
1069
+ /**
1070
+ * Detects XML nodes
1071
+ * @param {Element|Object} elem An element or a document
1072
+ * @returns {Boolean} True iff elem is a non-HTML XML node
1073
+ */
1074
+ isXML = Sizzle.isXML = function( elem ) {
1075
+ var namespace = elem.namespaceURI,
1076
+ docElem = (elem.ownerDocument || elem).documentElement;
1077
+
1078
+ // Support: IE <=8
1079
+ // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes
1080
+ // https://bugs.jquery.com/ticket/4833
1081
+ return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" );
1082
+ };
1083
+
1084
+ /**
1085
+ * Sets document-related variables once based on the current document
1086
+ * @param {Element|Object} [doc] An element or document object to use to set the document
1087
+ * @returns {Object} Returns the current document
1088
+ */
1089
+ setDocument = Sizzle.setDocument = function( node ) {
1090
+ var hasCompare, subWindow,
1091
+ doc = node ? node.ownerDocument || node : preferredDoc;
1092
+
1093
+ // Return early if doc is invalid or already selected
1094
+ if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
1095
+ return document;
1096
+ }
1097
+
1098
+ // Update global variables
1099
+ document = doc;
1100
+ docElem = document.documentElement;
1101
+ documentIsHTML = !isXML( document );
1102
+
1103
+ // Support: IE 9-11, Edge
1104
+ // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
1105
+ if ( preferredDoc !== document &&
1106
+ (subWindow = document.defaultView) && subWindow.top !== subWindow ) {
1107
+
1108
+ // Support: IE 11, Edge
1109
+ if ( subWindow.addEventListener ) {
1110
+ subWindow.addEventListener( "unload", unloadHandler, false );
1111
+
1112
+ // Support: IE 9 - 10 only
1113
+ } else if ( subWindow.attachEvent ) {
1114
+ subWindow.attachEvent( "onunload", unloadHandler );
1115
+ }
1116
+ }
1117
+
1118
+ /* Attributes
1119
+ ---------------------------------------------------------------------- */
1120
+
1121
+ // Support: IE<8
1122
+ // Verify that getAttribute really returns attributes and not properties
1123
+ // (excepting IE8 booleans)
1124
+ support.attributes = assert(function( el ) {
1125
+ el.className = "i";
1126
+ return !el.getAttribute("className");
1127
+ });
1128
+
1129
+ /* getElement(s)By*
1130
+ ---------------------------------------------------------------------- */
1131
+
1132
+ // Check if getElementsByTagName("*") returns only elements
1133
+ support.getElementsByTagName = assert(function( el ) {
1134
+ el.appendChild( document.createComment("") );
1135
+ return !el.getElementsByTagName("*").length;
1136
+ });
1137
+
1138
+ // Support: IE<9
1139
+ support.getElementsByClassName = rnative.test( document.getElementsByClassName );
1140
+
1141
+ // Support: IE<10
1142
+ // Check if getElementById returns elements by name
1143
+ // The broken getElementById methods don't pick up programmatically-set names,
1144
+ // so use a roundabout getElementsByName test
1145
+ support.getById = assert(function( el ) {
1146
+ docElem.appendChild( el ).id = expando;
1147
+ return !document.getElementsByName || !document.getElementsByName( expando ).length;
1148
+ });
1149
+
1150
+ // ID filter and find
1151
+ if ( support.getById ) {
1152
+ Expr.filter["ID"] = function( id ) {
1153
+ var attrId = id.replace( runescape, funescape );
1154
+ return function( elem ) {
1155
+ return elem.getAttribute("id") === attrId;
1156
+ };
1157
+ };
1158
+ Expr.find["ID"] = function( id, context ) {
1159
+ if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
1160
+ var elem = context.getElementById( id );
1161
+ return elem ? [ elem ] : [];
1162
+ }
1163
+ };
1164
+ } else {
1165
+ Expr.filter["ID"] = function( id ) {
1166
+ var attrId = id.replace( runescape, funescape );
1167
+ return function( elem ) {
1168
+ var node = typeof elem.getAttributeNode !== "undefined" &&
1169
+ elem.getAttributeNode("id");
1170
+ return node && node.value === attrId;
1171
+ };
1172
+ };
1173
+
1174
+ // Support: IE 6 - 7 only
1175
+ // getElementById is not reliable as a find shortcut
1176
+ Expr.find["ID"] = function( id, context ) {
1177
+ if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
1178
+ var node, i, elems,
1179
+ elem = context.getElementById( id );
1180
+
1181
+ if ( elem ) {
1182
+
1183
+ // Verify the id attribute
1184
+ node = elem.getAttributeNode("id");
1185
+ if ( node && node.value === id ) {
1186
+ return [ elem ];
1187
+ }
1188
+
1189
+ // Fall back on getElementsByName
1190
+ elems = context.getElementsByName( id );
1191
+ i = 0;
1192
+ while ( (elem = elems[i++]) ) {
1193
+ node = elem.getAttributeNode("id");
1194
+ if ( node && node.value === id ) {
1195
+ return [ elem ];
1196
+ }
1197
+ }
1198
+ }
1199
+
1200
+ return [];
1201
+ }
1202
+ };
1203
+ }
1204
+
1205
+ // Tag
1206
+ Expr.find["TAG"] = support.getElementsByTagName ?
1207
+ function( tag, context ) {
1208
+ if ( typeof context.getElementsByTagName !== "undefined" ) {
1209
+ return context.getElementsByTagName( tag );
1210
+
1211
+ // DocumentFragment nodes don't have gEBTN
1212
+ } else if ( support.qsa ) {
1213
+ return context.querySelectorAll( tag );
1214
+ }
1215
+ } :
1216
+
1217
+ function( tag, context ) {
1218
+ var elem,
1219
+ tmp = [],
1220
+ i = 0,
1221
+ // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
1222
+ results = context.getElementsByTagName( tag );
1223
+
1224
+ // Filter out possible comments
1225
+ if ( tag === "*" ) {
1226
+ while ( (elem = results[i++]) ) {
1227
+ if ( elem.nodeType === 1 ) {
1228
+ tmp.push( elem );
1229
+ }
1230
+ }
1231
+
1232
+ return tmp;
1233
+ }
1234
+ return results;
1235
+ };
1236
+
1237
+ // Class
1238
+ Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
1239
+ if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
1240
+ return context.getElementsByClassName( className );
1241
+ }
1242
+ };
1243
+
1244
+ /* QSA/matchesSelector
1245
+ ---------------------------------------------------------------------- */
1246
+
1247
+ // QSA and matchesSelector support
1248
+
1249
+ // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
1250
+ rbuggyMatches = [];
1251
+
1252
+ // qSa(:focus) reports false when true (Chrome 21)
1253
+ // We allow this because of a bug in IE8/9 that throws an error
1254
+ // whenever `document.activeElement` is accessed on an iframe
1255
+ // So, we allow :focus to pass through QSA all the time to avoid the IE error
1256
+ // See https://bugs.jquery.com/ticket/13378
1257
+ rbuggyQSA = [];
1258
+
1259
+ if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
1260
+ // Build QSA regex
1261
+ // Regex strategy adopted from Diego Perini
1262
+ assert(function( el ) {
1263
+ // Select is set to empty string on purpose
1264
+ // This is to test IE's treatment of not explicitly
1265
+ // setting a boolean content attribute,
1266
+ // since its presence should be enough
1267
+ // https://bugs.jquery.com/ticket/12359
1268
+ docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
1269
+ "<select id='" + expando + "-\r\\' msallowcapture=''>" +
1270
+ "<option selected=''></option></select>";
1271
+
1272
+ // Support: IE8, Opera 11-12.16
1273
+ // Nothing should be selected when empty strings follow ^= or $= or *=
1274
+ // The test attribute must be unknown in Opera but "safe" for WinRT
1275
+ // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
1276
+ if ( el.querySelectorAll("[msallowcapture^='']").length ) {
1277
+ rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
1278
+ }
1279
+
1280
+ // Support: IE8
1281
+ // Boolean attributes and "value" are not treated correctly
1282
+ if ( !el.querySelectorAll("[selected]").length ) {
1283
+ rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
1284
+ }
1285
+
1286
+ // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
1287
+ if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
1288
+ rbuggyQSA.push("~=");
1289
+ }
1290
+
1291
+ // Webkit/Opera - :checked should return selected option elements
1292
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
1293
+ // IE8 throws error here and will not see later tests
1294
+ if ( !el.querySelectorAll(":checked").length ) {
1295
+ rbuggyQSA.push(":checked");
1296
+ }
1297
+
1298
+ // Support: Safari 8+, iOS 8+
1299
+ // https://bugs.webkit.org/show_bug.cgi?id=136851
1300
+ // In-page `selector#id sibling-combinator selector` fails
1301
+ if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
1302
+ rbuggyQSA.push(".#.+[+~]");
1303
+ }
1304
+ });
1305
+
1306
+ assert(function( el ) {
1307
+ el.innerHTML = "<a href='' disabled='disabled'></a>" +
1308
+ "<select disabled='disabled'><option/></select>";
1309
+
1310
+ // Support: Windows 8 Native Apps
1311
+ // The type and name attributes are restricted during .innerHTML assignment
1312
+ var input = document.createElement("input");
1313
+ input.setAttribute( "type", "hidden" );
1314
+ el.appendChild( input ).setAttribute( "name", "D" );
1315
+
1316
+ // Support: IE8
1317
+ // Enforce case-sensitivity of name attribute
1318
+ if ( el.querySelectorAll("[name=d]").length ) {
1319
+ rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
1320
+ }
1321
+
1322
+ // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
1323
+ // IE8 throws error here and will not see later tests
1324
+ if ( el.querySelectorAll(":enabled").length !== 2 ) {
1325
+ rbuggyQSA.push( ":enabled", ":disabled" );
1326
+ }
1327
+
1328
+ // Support: IE9-11+
1329
+ // IE's :disabled selector does not pick up the children of disabled fieldsets
1330
+ docElem.appendChild( el ).disabled = true;
1331
+ if ( el.querySelectorAll(":disabled").length !== 2 ) {
1332
+ rbuggyQSA.push( ":enabled", ":disabled" );
1333
+ }
1334
+
1335
+ // Opera 10-11 does not throw on post-comma invalid pseudos
1336
+ el.querySelectorAll("*,:x");
1337
+ rbuggyQSA.push(",.*:");
1338
+ });
1339
+ }
1340
+
1341
+ if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
1342
+ docElem.webkitMatchesSelector ||
1343
+ docElem.mozMatchesSelector ||
1344
+ docElem.oMatchesSelector ||
1345
+ docElem.msMatchesSelector) )) ) {
1346
+
1347
+ assert(function( el ) {
1348
+ // Check to see if it's possible to do matchesSelector
1349
+ // on a disconnected node (IE 9)
1350
+ support.disconnectedMatch = matches.call( el, "*" );
1351
+
1352
+ // This should fail with an exception
1353
+ // Gecko does not error, returns false instead
1354
+ matches.call( el, "[s!='']:x" );
1355
+ rbuggyMatches.push( "!=", pseudos );
1356
+ });
1357
+ }
1358
+
1359
+ rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
1360
+ rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
1361
+
1362
+ /* Contains
1363
+ ---------------------------------------------------------------------- */
1364
+ hasCompare = rnative.test( docElem.compareDocumentPosition );
1365
+
1366
+ // Element contains another
1367
+ // Purposefully self-exclusive
1368
+ // As in, an element does not contain itself
1369
+ contains = hasCompare || rnative.test( docElem.contains ) ?
1370
+ function( a, b ) {
1371
+ var adown = a.nodeType === 9 ? a.documentElement : a,
1372
+ bup = b && b.parentNode;
1373
+ return a === bup || !!( bup && bup.nodeType === 1 && (
1374
+ adown.contains ?
1375
+ adown.contains( bup ) :
1376
+ a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
1377
+ ));
1378
+ } :
1379
+ function( a, b ) {
1380
+ if ( b ) {
1381
+ while ( (b = b.parentNode) ) {
1382
+ if ( b === a ) {
1383
+ return true;
1384
+ }
1385
+ }
1386
+ }
1387
+ return false;
1388
+ };
1389
+
1390
+ /* Sorting
1391
+ ---------------------------------------------------------------------- */
1392
+
1393
+ // Document order sorting
1394
+ sortOrder = hasCompare ?
1395
+ function( a, b ) {
1396
+
1397
+ // Flag for duplicate removal
1398
+ if ( a === b ) {
1399
+ hasDuplicate = true;
1400
+ return 0;
1401
+ }
1402
+
1403
+ // Sort on method existence if only one input has compareDocumentPosition
1404
+ var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
1405
+ if ( compare ) {
1406
+ return compare;
1407
+ }
1408
+
1409
+ // Calculate position if both inputs belong to the same document
1410
+ compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
1411
+ a.compareDocumentPosition( b ) :
1412
+
1413
+ // Otherwise we know they are disconnected
1414
+ 1;
1415
+
1416
+ // Disconnected nodes
1417
+ if ( compare & 1 ||
1418
+ (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
1419
+
1420
+ // Choose the first element that is related to our preferred document
1421
+ if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
1422
+ return -1;
1423
+ }
1424
+ if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
1425
+ return 1;
1426
+ }
1427
+
1428
+ // Maintain original order
1429
+ return sortInput ?
1430
+ ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
1431
+ 0;
1432
+ }
1433
+
1434
+ return compare & 4 ? -1 : 1;
1435
+ } :
1436
+ function( a, b ) {
1437
+ // Exit early if the nodes are identical
1438
+ if ( a === b ) {
1439
+ hasDuplicate = true;
1440
+ return 0;
1441
+ }
1442
+
1443
+ var cur,
1444
+ i = 0,
1445
+ aup = a.parentNode,
1446
+ bup = b.parentNode,
1447
+ ap = [ a ],
1448
+ bp = [ b ];
1449
+
1450
+ // Parentless nodes are either documents or disconnected
1451
+ if ( !aup || !bup ) {
1452
+ return a === document ? -1 :
1453
+ b === document ? 1 :
1454
+ aup ? -1 :
1455
+ bup ? 1 :
1456
+ sortInput ?
1457
+ ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
1458
+ 0;
1459
+
1460
+ // If the nodes are siblings, we can do a quick check
1461
+ } else if ( aup === bup ) {
1462
+ return siblingCheck( a, b );
1463
+ }
1464
+
1465
+ // Otherwise we need full lists of their ancestors for comparison
1466
+ cur = a;
1467
+ while ( (cur = cur.parentNode) ) {
1468
+ ap.unshift( cur );
1469
+ }
1470
+ cur = b;
1471
+ while ( (cur = cur.parentNode) ) {
1472
+ bp.unshift( cur );
1473
+ }
1474
+
1475
+ // Walk down the tree looking for a discrepancy
1476
+ while ( ap[i] === bp[i] ) {
1477
+ i++;
1478
+ }
1479
+
1480
+ return i ?
1481
+ // Do a sibling check if the nodes have a common ancestor
1482
+ siblingCheck( ap[i], bp[i] ) :
1483
+
1484
+ // Otherwise nodes in our document sort first
1485
+ ap[i] === preferredDoc ? -1 :
1486
+ bp[i] === preferredDoc ? 1 :
1487
+ 0;
1488
+ };
1489
+
1490
+ return document;
1491
+ };
1492
+
1493
+ Sizzle.matches = function( expr, elements ) {
1494
+ return Sizzle( expr, null, null, elements );
1495
+ };
1496
+
1497
+ Sizzle.matchesSelector = function( elem, expr ) {
1498
+ // Set document vars if needed
1499
+ if ( ( elem.ownerDocument || elem ) !== document ) {
1500
+ setDocument( elem );
1501
+ }
1502
+
1503
+ if ( support.matchesSelector && documentIsHTML &&
1504
+ !nonnativeSelectorCache[ expr + " " ] &&
1505
+ ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
1506
+ ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
1507
+
1508
+ try {
1509
+ var ret = matches.call( elem, expr );
1510
+
1511
+ // IE 9's matchesSelector returns false on disconnected nodes
1512
+ if ( ret || support.disconnectedMatch ||
1513
+ // As well, disconnected nodes are said to be in a document
1514
+ // fragment in IE 9
1515
+ elem.document && elem.document.nodeType !== 11 ) {
1516
+ return ret;
1517
+ }
1518
+ } catch (e) {
1519
+ nonnativeSelectorCache( expr, true );
1520
+ }
1521
+ }
1522
+
1523
+ return Sizzle( expr, document, null, [ elem ] ).length > 0;
1524
+ };
1525
+
1526
+ Sizzle.contains = function( context, elem ) {
1527
+ // Set document vars if needed
1528
+ if ( ( context.ownerDocument || context ) !== document ) {
1529
+ setDocument( context );
1530
+ }
1531
+ return contains( context, elem );
1532
+ };
1533
+
1534
+ Sizzle.attr = function( elem, name ) {
1535
+ // Set document vars if needed
1536
+ if ( ( elem.ownerDocument || elem ) !== document ) {
1537
+ setDocument( elem );
1538
+ }
1539
+
1540
+ var fn = Expr.attrHandle[ name.toLowerCase() ],
1541
+ // Don't get fooled by Object.prototype properties (jQuery #13807)
1542
+ val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
1543
+ fn( elem, name, !documentIsHTML ) :
1544
+ undefined;
1545
+
1546
+ return val !== undefined ?
1547
+ val :
1548
+ support.attributes || !documentIsHTML ?
1549
+ elem.getAttribute( name ) :
1550
+ (val = elem.getAttributeNode(name)) && val.specified ?
1551
+ val.value :
1552
+ null;
1553
+ };
1554
+
1555
+ Sizzle.escape = function( sel ) {
1556
+ return (sel + "").replace( rcssescape, fcssescape );
1557
+ };
1558
+
1559
+ Sizzle.error = function( msg ) {
1560
+ throw new Error( "Syntax error, unrecognized expression: " + msg );
1561
+ };
1562
+
1563
+ /**
1564
+ * Document sorting and removing duplicates
1565
+ * @param {ArrayLike} results
1566
+ */
1567
+ Sizzle.uniqueSort = function( results ) {
1568
+ var elem,
1569
+ duplicates = [],
1570
+ j = 0,
1571
+ i = 0;
1572
+
1573
+ // Unless we *know* we can detect duplicates, assume their presence
1574
+ hasDuplicate = !support.detectDuplicates;
1575
+ sortInput = !support.sortStable && results.slice( 0 );
1576
+ results.sort( sortOrder );
1577
+
1578
+ if ( hasDuplicate ) {
1579
+ while ( (elem = results[i++]) ) {
1580
+ if ( elem === results[ i ] ) {
1581
+ j = duplicates.push( i );
1582
+ }
1583
+ }
1584
+ while ( j-- ) {
1585
+ results.splice( duplicates[ j ], 1 );
1586
+ }
1587
+ }
1588
+
1589
+ // Clear input after sorting to release objects
1590
+ // See https://github.com/jquery/sizzle/pull/225
1591
+ sortInput = null;
1592
+
1593
+ return results;
1594
+ };
1595
+
1596
+ /**
1597
+ * Utility function for retrieving the text value of an array of DOM nodes
1598
+ * @param {Array|Element} elem
1599
+ */
1600
+ getText = Sizzle.getText = function( elem ) {
1601
+ var node,
1602
+ ret = "",
1603
+ i = 0,
1604
+ nodeType = elem.nodeType;
1605
+
1606
+ if ( !nodeType ) {
1607
+ // If no nodeType, this is expected to be an array
1608
+ while ( (node = elem[i++]) ) {
1609
+ // Do not traverse comment nodes
1610
+ ret += getText( node );
1611
+ }
1612
+ } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
1613
+ // Use textContent for elements
1614
+ // innerText usage removed for consistency of new lines (jQuery #11153)
1615
+ if ( typeof elem.textContent === "string" ) {
1616
+ return elem.textContent;
1617
+ } else {
1618
+ // Traverse its children
1619
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
1620
+ ret += getText( elem );
1621
+ }
1622
+ }
1623
+ } else if ( nodeType === 3 || nodeType === 4 ) {
1624
+ return elem.nodeValue;
1625
+ }
1626
+ // Do not include comment or processing instruction nodes
1627
+
1628
+ return ret;
1629
+ };
1630
+
1631
+ Expr = Sizzle.selectors = {
1632
+
1633
+ // Can be adjusted by the user
1634
+ cacheLength: 50,
1635
+
1636
+ createPseudo: markFunction,
1637
+
1638
+ match: matchExpr,
1639
+
1640
+ attrHandle: {},
1641
+
1642
+ find: {},
1643
+
1644
+ relative: {
1645
+ ">": { dir: "parentNode", first: true },
1646
+ " ": { dir: "parentNode" },
1647
+ "+": { dir: "previousSibling", first: true },
1648
+ "~": { dir: "previousSibling" }
1649
+ },
1650
+
1651
+ preFilter: {
1652
+ "ATTR": function( match ) {
1653
+ match[1] = match[1].replace( runescape, funescape );
1654
+
1655
+ // Move the given value to match[3] whether quoted or unquoted
1656
+ match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
1657
+
1658
+ if ( match[2] === "~=" ) {
1659
+ match[3] = " " + match[3] + " ";
1660
+ }
1661
+
1662
+ return match.slice( 0, 4 );
1663
+ },
1664
+
1665
+ "CHILD": function( match ) {
1666
+ /* matches from matchExpr["CHILD"]
1667
+ 1 type (only|nth|...)
1668
+ 2 what (child|of-type)
1669
+ 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
1670
+ 4 xn-component of xn+y argument ([+-]?\d*n|)
1671
+ 5 sign of xn-component
1672
+ 6 x of xn-component
1673
+ 7 sign of y-component
1674
+ 8 y of y-component
1675
+ */
1676
+ match[1] = match[1].toLowerCase();
1677
+
1678
+ if ( match[1].slice( 0, 3 ) === "nth" ) {
1679
+ // nth-* requires argument
1680
+ if ( !match[3] ) {
1681
+ Sizzle.error( match[0] );
1682
+ }
1683
+
1684
+ // numeric x and y parameters for Expr.filter.CHILD
1685
+ // remember that false/true cast respectively to 0/1
1686
+ match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
1687
+ match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
1688
+
1689
+ // other types prohibit arguments
1690
+ } else if ( match[3] ) {
1691
+ Sizzle.error( match[0] );
1692
+ }
1693
+
1694
+ return match;
1695
+ },
1696
+
1697
+ "PSEUDO": function( match ) {
1698
+ var excess,
1699
+ unquoted = !match[6] && match[2];
1700
+
1701
+ if ( matchExpr["CHILD"].test( match[0] ) ) {
1702
+ return null;
1703
+ }
1704
+
1705
+ // Accept quoted arguments as-is
1706
+ if ( match[3] ) {
1707
+ match[2] = match[4] || match[5] || "";
1708
+
1709
+ // Strip excess characters from unquoted arguments
1710
+ } else if ( unquoted && rpseudo.test( unquoted ) &&
1711
+ // Get excess from tokenize (recursively)
1712
+ (excess = tokenize( unquoted, true )) &&
1713
+ // advance to the next closing parenthesis
1714
+ (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
1715
+
1716
+ // excess is a negative index
1717
+ match[0] = match[0].slice( 0, excess );
1718
+ match[2] = unquoted.slice( 0, excess );
1719
+ }
1720
+
1721
+ // Return only captures needed by the pseudo filter method (type and argument)
1722
+ return match.slice( 0, 3 );
1723
+ }
1724
+ },
1725
+
1726
+ filter: {
1727
+
1728
+ "TAG": function( nodeNameSelector ) {
1729
+ var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
1730
+ return nodeNameSelector === "*" ?
1731
+ function() { return true; } :
1732
+ function( elem ) {
1733
+ return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
1734
+ };
1735
+ },
1736
+
1737
+ "CLASS": function( className ) {
1738
+ var pattern = classCache[ className + " " ];
1739
+
1740
+ return pattern ||
1741
+ (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
1742
+ classCache( className, function( elem ) {
1743
+ return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
1744
+ });
1745
+ },
1746
+
1747
+ "ATTR": function( name, operator, check ) {
1748
+ return function( elem ) {
1749
+ var result = Sizzle.attr( elem, name );
1750
+
1751
+ if ( result == null ) {
1752
+ return operator === "!=";
1753
+ }
1754
+ if ( !operator ) {
1755
+ return true;
1756
+ }
1757
+
1758
+ result += "";
1759
+
1760
+ return operator === "=" ? result === check :
1761
+ operator === "!=" ? result !== check :
1762
+ operator === "^=" ? check && result.indexOf( check ) === 0 :
1763
+ operator === "*=" ? check && result.indexOf( check ) > -1 :
1764
+ operator === "$=" ? check && result.slice( -check.length ) === check :
1765
+ operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
1766
+ operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
1767
+ false;
1768
+ };
1769
+ },
1770
+
1771
+ "CHILD": function( type, what, argument, first, last ) {
1772
+ var simple = type.slice( 0, 3 ) !== "nth",
1773
+ forward = type.slice( -4 ) !== "last",
1774
+ ofType = what === "of-type";
1775
+
1776
+ return first === 1 && last === 0 ?
1777
+
1778
+ // Shortcut for :nth-*(n)
1779
+ function( elem ) {
1780
+ return !!elem.parentNode;
1781
+ } :
1782
+
1783
+ function( elem, context, xml ) {
1784
+ var cache, uniqueCache, outerCache, node, nodeIndex, start,
1785
+ dir = simple !== forward ? "nextSibling" : "previousSibling",
1786
+ parent = elem.parentNode,
1787
+ name = ofType && elem.nodeName.toLowerCase(),
1788
+ useCache = !xml && !ofType,
1789
+ diff = false;
1790
+
1791
+ if ( parent ) {
1792
+
1793
+ // :(first|last|only)-(child|of-type)
1794
+ if ( simple ) {
1795
+ while ( dir ) {
1796
+ node = elem;
1797
+ while ( (node = node[ dir ]) ) {
1798
+ if ( ofType ?
1799
+ node.nodeName.toLowerCase() === name :
1800
+ node.nodeType === 1 ) {
1801
+
1802
+ return false;
1803
+ }
1804
+ }
1805
+ // Reverse direction for :only-* (if we haven't yet done so)
1806
+ start = dir = type === "only" && !start && "nextSibling";
1807
+ }
1808
+ return true;
1809
+ }
1810
+
1811
+ start = [ forward ? parent.firstChild : parent.lastChild ];
1812
+
1813
+ // non-xml :nth-child(...) stores cache data on `parent`
1814
+ if ( forward && useCache ) {
1815
+
1816
+ // Seek `elem` from a previously-cached index
1817
+
1818
+ // ...in a gzip-friendly way
1819
+ node = parent;
1820
+ outerCache = node[ expando ] || (node[ expando ] = {});
1821
+
1822
+ // Support: IE <9 only
1823
+ // Defend against cloned attroperties (jQuery gh-1709)
1824
+ uniqueCache = outerCache[ node.uniqueID ] ||
1825
+ (outerCache[ node.uniqueID ] = {});
1826
+
1827
+ cache = uniqueCache[ type ] || [];
1828
+ nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
1829
+ diff = nodeIndex && cache[ 2 ];
1830
+ node = nodeIndex && parent.childNodes[ nodeIndex ];
1831
+
1832
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
1833
+
1834
+ // Fallback to seeking `elem` from the start
1835
+ (diff = nodeIndex = 0) || start.pop()) ) {
1836
+
1837
+ // When found, cache indexes on `parent` and break
1838
+ if ( node.nodeType === 1 && ++diff && node === elem ) {
1839
+ uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
1840
+ break;
1841
+ }
1842
+ }
1843
+
1844
+ } else {
1845
+ // Use previously-cached element index if available
1846
+ if ( useCache ) {
1847
+ // ...in a gzip-friendly way
1848
+ node = elem;
1849
+ outerCache = node[ expando ] || (node[ expando ] = {});
1850
+
1851
+ // Support: IE <9 only
1852
+ // Defend against cloned attroperties (jQuery gh-1709)
1853
+ uniqueCache = outerCache[ node.uniqueID ] ||
1854
+ (outerCache[ node.uniqueID ] = {});
1855
+
1856
+ cache = uniqueCache[ type ] || [];
1857
+ nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
1858
+ diff = nodeIndex;
1859
+ }
1860
+
1861
+ // xml :nth-child(...)
1862
+ // or :nth-last-child(...) or :nth(-last)?-of-type(...)
1863
+ if ( diff === false ) {
1864
+ // Use the same loop as above to seek `elem` from the start
1865
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
1866
+ (diff = nodeIndex = 0) || start.pop()) ) {
1867
+
1868
+ if ( ( ofType ?
1869
+ node.nodeName.toLowerCase() === name :
1870
+ node.nodeType === 1 ) &&
1871
+ ++diff ) {
1872
+
1873
+ // Cache the index of each encountered element
1874
+ if ( useCache ) {
1875
+ outerCache = node[ expando ] || (node[ expando ] = {});
1876
+
1877
+ // Support: IE <9 only
1878
+ // Defend against cloned attroperties (jQuery gh-1709)
1879
+ uniqueCache = outerCache[ node.uniqueID ] ||
1880
+ (outerCache[ node.uniqueID ] = {});
1881
+
1882
+ uniqueCache[ type ] = [ dirruns, diff ];
1883
+ }
1884
+
1885
+ if ( node === elem ) {
1886
+ break;
1887
+ }
1888
+ }
1889
+ }
1890
+ }
1891
+ }
1892
+
1893
+ // Incorporate the offset, then check against cycle size
1894
+ diff -= last;
1895
+ return diff === first || ( diff % first === 0 && diff / first >= 0 );
1896
+ }
1897
+ };
1898
+ },
1899
+
1900
+ "PSEUDO": function( pseudo, argument ) {
1901
+ // pseudo-class names are case-insensitive
1902
+ // http://www.w3.org/TR/selectors/#pseudo-classes
1903
+ // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
1904
+ // Remember that setFilters inherits from pseudos
1905
+ var args,
1906
+ fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
1907
+ Sizzle.error( "unsupported pseudo: " + pseudo );
1908
+
1909
+ // The user may use createPseudo to indicate that
1910
+ // arguments are needed to create the filter function
1911
+ // just as Sizzle does
1912
+ if ( fn[ expando ] ) {
1913
+ return fn( argument );
1914
+ }
1915
+
1916
+ // But maintain support for old signatures
1917
+ if ( fn.length > 1 ) {
1918
+ args = [ pseudo, pseudo, "", argument ];
1919
+ return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
1920
+ markFunction(function( seed, matches ) {
1921
+ var idx,
1922
+ matched = fn( seed, argument ),
1923
+ i = matched.length;
1924
+ while ( i-- ) {
1925
+ idx = indexOf( seed, matched[i] );
1926
+ seed[ idx ] = !( matches[ idx ] = matched[i] );
1927
+ }
1928
+ }) :
1929
+ function( elem ) {
1930
+ return fn( elem, 0, args );
1931
+ };
1932
+ }
1933
+
1934
+ return fn;
1935
+ }
1936
+ },
1937
+
1938
+ pseudos: {
1939
+ // Potentially complex pseudos
1940
+ "not": markFunction(function( selector ) {
1941
+ // Trim the selector passed to compile
1942
+ // to avoid treating leading and trailing
1943
+ // spaces as combinators
1944
+ var input = [],
1945
+ results = [],
1946
+ matcher = compile( selector.replace( rtrim, "$1" ) );
1947
+
1948
+ return matcher[ expando ] ?
1949
+ markFunction(function( seed, matches, context, xml ) {
1950
+ var elem,
1951
+ unmatched = matcher( seed, null, xml, [] ),
1952
+ i = seed.length;
1953
+
1954
+ // Match elements unmatched by `matcher`
1955
+ while ( i-- ) {
1956
+ if ( (elem = unmatched[i]) ) {
1957
+ seed[i] = !(matches[i] = elem);
1958
+ }
1959
+ }
1960
+ }) :
1961
+ function( elem, context, xml ) {
1962
+ input[0] = elem;
1963
+ matcher( input, null, xml, results );
1964
+ // Don't keep the element (issue #299)
1965
+ input[0] = null;
1966
+ return !results.pop();
1967
+ };
1968
+ }),
1969
+
1970
+ "has": markFunction(function( selector ) {
1971
+ return function( elem ) {
1972
+ return Sizzle( selector, elem ).length > 0;
1973
+ };
1974
+ }),
1975
+
1976
+ "contains": markFunction(function( text ) {
1977
+ text = text.replace( runescape, funescape );
1978
+ return function( elem ) {
1979
+ return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;
1980
+ };
1981
+ }),
1982
+
1983
+ // "Whether an element is represented by a :lang() selector
1984
+ // is based solely on the element's language value
1985
+ // being equal to the identifier C,
1986
+ // or beginning with the identifier C immediately followed by "-".
1987
+ // The matching of C against the element's language value is performed case-insensitively.
1988
+ // The identifier C does not have to be a valid language name."
1989
+ // http://www.w3.org/TR/selectors/#lang-pseudo
1990
+ "lang": markFunction( function( lang ) {
1991
+ // lang value must be a valid identifier
1992
+ if ( !ridentifier.test(lang || "") ) {
1993
+ Sizzle.error( "unsupported lang: " + lang );
1994
+ }
1995
+ lang = lang.replace( runescape, funescape ).toLowerCase();
1996
+ return function( elem ) {
1997
+ var elemLang;
1998
+ do {
1999
+ if ( (elemLang = documentIsHTML ?
2000
+ elem.lang :
2001
+ elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
2002
+
2003
+ elemLang = elemLang.toLowerCase();
2004
+ return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
2005
+ }
2006
+ } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
2007
+ return false;
2008
+ };
2009
+ }),
2010
+
2011
+ // Miscellaneous
2012
+ "target": function( elem ) {
2013
+ var hash = window.location && window.location.hash;
2014
+ return hash && hash.slice( 1 ) === elem.id;
2015
+ },
2016
+
2017
+ "root": function( elem ) {
2018
+ return elem === docElem;
2019
+ },
2020
+
2021
+ "focus": function( elem ) {
2022
+ return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
2023
+ },
2024
+
2025
+ // Boolean properties
2026
+ "enabled": createDisabledPseudo( false ),
2027
+ "disabled": createDisabledPseudo( true ),
2028
+
2029
+ "checked": function( elem ) {
2030
+ // In CSS3, :checked should return both checked and selected elements
2031
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
2032
+ var nodeName = elem.nodeName.toLowerCase();
2033
+ return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
2034
+ },
2035
+
2036
+ "selected": function( elem ) {
2037
+ // Accessing this property makes selected-by-default
2038
+ // options in Safari work properly
2039
+ if ( elem.parentNode ) {
2040
+ elem.parentNode.selectedIndex;
2041
+ }
2042
+
2043
+ return elem.selected === true;
2044
+ },
2045
+
2046
+ // Contents
2047
+ "empty": function( elem ) {
2048
+ // http://www.w3.org/TR/selectors/#empty-pseudo
2049
+ // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
2050
+ // but not by others (comment: 8; processing instruction: 7; etc.)
2051
+ // nodeType < 6 works because attributes (2) do not appear as children
2052
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
2053
+ if ( elem.nodeType < 6 ) {
2054
+ return false;
2055
+ }
2056
+ }
2057
+ return true;
2058
+ },
2059
+
2060
+ "parent": function( elem ) {
2061
+ return !Expr.pseudos["empty"]( elem );
2062
+ },
2063
+
2064
+ // Element/input types
2065
+ "header": function( elem ) {
2066
+ return rheader.test( elem.nodeName );
2067
+ },
2068
+
2069
+ "input": function( elem ) {
2070
+ return rinputs.test( elem.nodeName );
2071
+ },
2072
+
2073
+ "button": function( elem ) {
2074
+ var name = elem.nodeName.toLowerCase();
2075
+ return name === "input" && elem.type === "button" || name === "button";
2076
+ },
2077
+
2078
+ "text": function( elem ) {
2079
+ var attr;
2080
+ return elem.nodeName.toLowerCase() === "input" &&
2081
+ elem.type === "text" &&
2082
+
2083
+ // Support: IE<8
2084
+ // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
2085
+ ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
2086
+ },
2087
+
2088
+ // Position-in-collection
2089
+ "first": createPositionalPseudo(function() {
2090
+ return [ 0 ];
2091
+ }),
2092
+
2093
+ "last": createPositionalPseudo(function( matchIndexes, length ) {
2094
+ return [ length - 1 ];
2095
+ }),
2096
+
2097
+ "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
2098
+ return [ argument < 0 ? argument + length : argument ];
2099
+ }),
2100
+
2101
+ "even": createPositionalPseudo(function( matchIndexes, length ) {
2102
+ var i = 0;
2103
+ for ( ; i < length; i += 2 ) {
2104
+ matchIndexes.push( i );
2105
+ }
2106
+ return matchIndexes;
2107
+ }),
2108
+
2109
+ "odd": createPositionalPseudo(function( matchIndexes, length ) {
2110
+ var i = 1;
2111
+ for ( ; i < length; i += 2 ) {
2112
+ matchIndexes.push( i );
2113
+ }
2114
+ return matchIndexes;
2115
+ }),
2116
+
2117
+ "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
2118
+ var i = argument < 0 ?
2119
+ argument + length :
2120
+ argument > length ?
2121
+ length :
2122
+ argument;
2123
+ for ( ; --i >= 0; ) {
2124
+ matchIndexes.push( i );
2125
+ }
2126
+ return matchIndexes;
2127
+ }),
2128
+
2129
+ "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
2130
+ var i = argument < 0 ? argument + length : argument;
2131
+ for ( ; ++i < length; ) {
2132
+ matchIndexes.push( i );
2133
+ }
2134
+ return matchIndexes;
2135
+ })
2136
+ }
2137
+ };
2138
+
2139
+ Expr.pseudos["nth"] = Expr.pseudos["eq"];
2140
+
2141
+ // Add button/input type pseudos
2142
+ for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
2143
+ Expr.pseudos[ i ] = createInputPseudo( i );
2144
+ }
2145
+ for ( i in { submit: true, reset: true } ) {
2146
+ Expr.pseudos[ i ] = createButtonPseudo( i );
2147
+ }
2148
+
2149
+ // Easy API for creating new setFilters
2150
+ function setFilters() {}
2151
+ setFilters.prototype = Expr.filters = Expr.pseudos;
2152
+ Expr.setFilters = new setFilters();
2153
+
2154
+ tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
2155
+ var matched, match, tokens, type,
2156
+ soFar, groups, preFilters,
2157
+ cached = tokenCache[ selector + " " ];
2158
+
2159
+ if ( cached ) {
2160
+ return parseOnly ? 0 : cached.slice( 0 );
2161
+ }
2162
+
2163
+ soFar = selector;
2164
+ groups = [];
2165
+ preFilters = Expr.preFilter;
2166
+
2167
+ while ( soFar ) {
2168
+
2169
+ // Comma and first run
2170
+ if ( !matched || (match = rcomma.exec( soFar )) ) {
2171
+ if ( match ) {
2172
+ // Don't consume trailing commas as valid
2173
+ soFar = soFar.slice( match[0].length ) || soFar;
2174
+ }
2175
+ groups.push( (tokens = []) );
2176
+ }
2177
+
2178
+ matched = false;
2179
+
2180
+ // Combinators
2181
+ if ( (match = rcombinators.exec( soFar )) ) {
2182
+ matched = match.shift();
2183
+ tokens.push({
2184
+ value: matched,
2185
+ // Cast descendant combinators to space
2186
+ type: match[0].replace( rtrim, " " )
2187
+ });
2188
+ soFar = soFar.slice( matched.length );
2189
+ }
2190
+
2191
+ // Filters
2192
+ for ( type in Expr.filter ) {
2193
+ if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
2194
+ (match = preFilters[ type ]( match ))) ) {
2195
+ matched = match.shift();
2196
+ tokens.push({
2197
+ value: matched,
2198
+ type: type,
2199
+ matches: match
2200
+ });
2201
+ soFar = soFar.slice( matched.length );
2202
+ }
2203
+ }
2204
+
2205
+ if ( !matched ) {
2206
+ break;
2207
+ }
2208
+ }
2209
+
2210
+ // Return the length of the invalid excess
2211
+ // if we're just parsing
2212
+ // Otherwise, throw an error or return tokens
2213
+ return parseOnly ?
2214
+ soFar.length :
2215
+ soFar ?
2216
+ Sizzle.error( selector ) :
2217
+ // Cache the tokens
2218
+ tokenCache( selector, groups ).slice( 0 );
2219
+ };
2220
+
2221
+ function toSelector( tokens ) {
2222
+ var i = 0,
2223
+ len = tokens.length,
2224
+ selector = "";
2225
+ for ( ; i < len; i++ ) {
2226
+ selector += tokens[i].value;
2227
+ }
2228
+ return selector;
2229
+ }
2230
+
2231
+ function addCombinator( matcher, combinator, base ) {
2232
+ var dir = combinator.dir,
2233
+ skip = combinator.next,
2234
+ key = skip || dir,
2235
+ checkNonElements = base && key === "parentNode",
2236
+ doneName = done++;
2237
+
2238
+ return combinator.first ?
2239
+ // Check against closest ancestor/preceding element
2240
+ function( elem, context, xml ) {
2241
+ while ( (elem = elem[ dir ]) ) {
2242
+ if ( elem.nodeType === 1 || checkNonElements ) {
2243
+ return matcher( elem, context, xml );
2244
+ }
2245
+ }
2246
+ return false;
2247
+ } :
2248
+
2249
+ // Check against all ancestor/preceding elements
2250
+ function( elem, context, xml ) {
2251
+ var oldCache, uniqueCache, outerCache,
2252
+ newCache = [ dirruns, doneName ];
2253
+
2254
+ // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
2255
+ if ( xml ) {
2256
+ while ( (elem = elem[ dir ]) ) {
2257
+ if ( elem.nodeType === 1 || checkNonElements ) {
2258
+ if ( matcher( elem, context, xml ) ) {
2259
+ return true;
2260
+ }
2261
+ }
2262
+ }
2263
+ } else {
2264
+ while ( (elem = elem[ dir ]) ) {
2265
+ if ( elem.nodeType === 1 || checkNonElements ) {
2266
+ outerCache = elem[ expando ] || (elem[ expando ] = {});
2267
+
2268
+ // Support: IE <9 only
2269
+ // Defend against cloned attroperties (jQuery gh-1709)
2270
+ uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
2271
+
2272
+ if ( skip && skip === elem.nodeName.toLowerCase() ) {
2273
+ elem = elem[ dir ] || elem;
2274
+ } else if ( (oldCache = uniqueCache[ key ]) &&
2275
+ oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
2276
+
2277
+ // Assign to newCache so results back-propagate to previous elements
2278
+ return (newCache[ 2 ] = oldCache[ 2 ]);
2279
+ } else {
2280
+ // Reuse newcache so results back-propagate to previous elements
2281
+ uniqueCache[ key ] = newCache;
2282
+
2283
+ // A match means we're done; a fail means we have to keep checking
2284
+ if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
2285
+ return true;
2286
+ }
2287
+ }
2288
+ }
2289
+ }
2290
+ }
2291
+ return false;
2292
+ };
2293
+ }
2294
+
2295
+ function elementMatcher( matchers ) {
2296
+ return matchers.length > 1 ?
2297
+ function( elem, context, xml ) {
2298
+ var i = matchers.length;
2299
+ while ( i-- ) {
2300
+ if ( !matchers[i]( elem, context, xml ) ) {
2301
+ return false;
2302
+ }
2303
+ }
2304
+ return true;
2305
+ } :
2306
+ matchers[0];
2307
+ }
2308
+
2309
+ function multipleContexts( selector, contexts, results ) {
2310
+ var i = 0,
2311
+ len = contexts.length;
2312
+ for ( ; i < len; i++ ) {
2313
+ Sizzle( selector, contexts[i], results );
2314
+ }
2315
+ return results;
2316
+ }
2317
+
2318
+ function condense( unmatched, map, filter, context, xml ) {
2319
+ var elem,
2320
+ newUnmatched = [],
2321
+ i = 0,
2322
+ len = unmatched.length,
2323
+ mapped = map != null;
2324
+
2325
+ for ( ; i < len; i++ ) {
2326
+ if ( (elem = unmatched[i]) ) {
2327
+ if ( !filter || filter( elem, context, xml ) ) {
2328
+ newUnmatched.push( elem );
2329
+ if ( mapped ) {
2330
+ map.push( i );
2331
+ }
2332
+ }
2333
+ }
2334
+ }
2335
+
2336
+ return newUnmatched;
2337
+ }
2338
+
2339
+ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
2340
+ if ( postFilter && !postFilter[ expando ] ) {
2341
+ postFilter = setMatcher( postFilter );
2342
+ }
2343
+ if ( postFinder && !postFinder[ expando ] ) {
2344
+ postFinder = setMatcher( postFinder, postSelector );
2345
+ }
2346
+ return markFunction(function( seed, results, context, xml ) {
2347
+ var temp, i, elem,
2348
+ preMap = [],
2349
+ postMap = [],
2350
+ preexisting = results.length,
2351
+
2352
+ // Get initial elements from seed or context
2353
+ elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
2354
+
2355
+ // Prefilter to get matcher input, preserving a map for seed-results synchronization
2356
+ matcherIn = preFilter && ( seed || !selector ) ?
2357
+ condense( elems, preMap, preFilter, context, xml ) :
2358
+ elems,
2359
+
2360
+ matcherOut = matcher ?
2361
+ // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
2362
+ postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
2363
+
2364
+ // ...intermediate processing is necessary
2365
+ [] :
2366
+
2367
+ // ...otherwise use results directly
2368
+ results :
2369
+ matcherIn;
2370
+
2371
+ // Find primary matches
2372
+ if ( matcher ) {
2373
+ matcher( matcherIn, matcherOut, context, xml );
2374
+ }
2375
+
2376
+ // Apply postFilter
2377
+ if ( postFilter ) {
2378
+ temp = condense( matcherOut, postMap );
2379
+ postFilter( temp, [], context, xml );
2380
+
2381
+ // Un-match failing elements by moving them back to matcherIn
2382
+ i = temp.length;
2383
+ while ( i-- ) {
2384
+ if ( (elem = temp[i]) ) {
2385
+ matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
2386
+ }
2387
+ }
2388
+ }
2389
+
2390
+ if ( seed ) {
2391
+ if ( postFinder || preFilter ) {
2392
+ if ( postFinder ) {
2393
+ // Get the final matcherOut by condensing this intermediate into postFinder contexts
2394
+ temp = [];
2395
+ i = matcherOut.length;
2396
+ while ( i-- ) {
2397
+ if ( (elem = matcherOut[i]) ) {
2398
+ // Restore matcherIn since elem is not yet a final match
2399
+ temp.push( (matcherIn[i] = elem) );
2400
+ }
2401
+ }
2402
+ postFinder( null, (matcherOut = []), temp, xml );
2403
+ }
2404
+
2405
+ // Move matched elements from seed to results to keep them synchronized
2406
+ i = matcherOut.length;
2407
+ while ( i-- ) {
2408
+ if ( (elem = matcherOut[i]) &&
2409
+ (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
2410
+
2411
+ seed[temp] = !(results[temp] = elem);
2412
+ }
2413
+ }
2414
+ }
2415
+
2416
+ // Add elements to results, through postFinder if defined
2417
+ } else {
2418
+ matcherOut = condense(
2419
+ matcherOut === results ?
2420
+ matcherOut.splice( preexisting, matcherOut.length ) :
2421
+ matcherOut
2422
+ );
2423
+ if ( postFinder ) {
2424
+ postFinder( null, results, matcherOut, xml );
2425
+ } else {
2426
+ push.apply( results, matcherOut );
2427
+ }
2428
+ }
2429
+ });
2430
+ }
2431
+
2432
+ function matcherFromTokens( tokens ) {
2433
+ var checkContext, matcher, j,
2434
+ len = tokens.length,
2435
+ leadingRelative = Expr.relative[ tokens[0].type ],
2436
+ implicitRelative = leadingRelative || Expr.relative[" "],
2437
+ i = leadingRelative ? 1 : 0,
2438
+
2439
+ // The foundational matcher ensures that elements are reachable from top-level context(s)
2440
+ matchContext = addCombinator( function( elem ) {
2441
+ return elem === checkContext;
2442
+ }, implicitRelative, true ),
2443
+ matchAnyContext = addCombinator( function( elem ) {
2444
+ return indexOf( checkContext, elem ) > -1;
2445
+ }, implicitRelative, true ),
2446
+ matchers = [ function( elem, context, xml ) {
2447
+ var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
2448
+ (checkContext = context).nodeType ?
2449
+ matchContext( elem, context, xml ) :
2450
+ matchAnyContext( elem, context, xml ) );
2451
+ // Avoid hanging onto element (issue #299)
2452
+ checkContext = null;
2453
+ return ret;
2454
+ } ];
2455
+
2456
+ for ( ; i < len; i++ ) {
2457
+ if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
2458
+ matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
2459
+ } else {
2460
+ matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
2461
+
2462
+ // Return special upon seeing a positional matcher
2463
+ if ( matcher[ expando ] ) {
2464
+ // Find the next relative operator (if any) for proper handling
2465
+ j = ++i;
2466
+ for ( ; j < len; j++ ) {
2467
+ if ( Expr.relative[ tokens[j].type ] ) {
2468
+ break;
2469
+ }
2470
+ }
2471
+ return setMatcher(
2472
+ i > 1 && elementMatcher( matchers ),
2473
+ i > 1 && toSelector(
2474
+ // If the preceding token was a descendant combinator, insert an implicit any-element `*`
2475
+ tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
2476
+ ).replace( rtrim, "$1" ),
2477
+ matcher,
2478
+ i < j && matcherFromTokens( tokens.slice( i, j ) ),
2479
+ j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
2480
+ j < len && toSelector( tokens )
2481
+ );
2482
+ }
2483
+ matchers.push( matcher );
2484
+ }
2485
+ }
2486
+
2487
+ return elementMatcher( matchers );
2488
+ }
2489
+
2490
+ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
2491
+ var bySet = setMatchers.length > 0,
2492
+ byElement = elementMatchers.length > 0,
2493
+ superMatcher = function( seed, context, xml, results, outermost ) {
2494
+ var elem, j, matcher,
2495
+ matchedCount = 0,
2496
+ i = "0",
2497
+ unmatched = seed && [],
2498
+ setMatched = [],
2499
+ contextBackup = outermostContext,
2500
+ // We must always have either seed elements or outermost context
2501
+ elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
2502
+ // Use integer dirruns iff this is the outermost matcher
2503
+ dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
2504
+ len = elems.length;
2505
+
2506
+ if ( outermost ) {
2507
+ outermostContext = context === document || context || outermost;
2508
+ }
2509
+
2510
+ // Add elements passing elementMatchers directly to results
2511
+ // Support: IE<9, Safari
2512
+ // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
2513
+ for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
2514
+ if ( byElement && elem ) {
2515
+ j = 0;
2516
+ if ( !context && elem.ownerDocument !== document ) {
2517
+ setDocument( elem );
2518
+ xml = !documentIsHTML;
2519
+ }
2520
+ while ( (matcher = elementMatchers[j++]) ) {
2521
+ if ( matcher( elem, context || document, xml) ) {
2522
+ results.push( elem );
2523
+ break;
2524
+ }
2525
+ }
2526
+ if ( outermost ) {
2527
+ dirruns = dirrunsUnique;
2528
+ }
2529
+ }
2530
+
2531
+ // Track unmatched elements for set filters
2532
+ if ( bySet ) {
2533
+ // They will have gone through all possible matchers
2534
+ if ( (elem = !matcher && elem) ) {
2535
+ matchedCount--;
2536
+ }
2537
+
2538
+ // Lengthen the array for every element, matched or not
2539
+ if ( seed ) {
2540
+ unmatched.push( elem );
2541
+ }
2542
+ }
2543
+ }
2544
+
2545
+ // `i` is now the count of elements visited above, and adding it to `matchedCount`
2546
+ // makes the latter nonnegative.
2547
+ matchedCount += i;
2548
+
2549
+ // Apply set filters to unmatched elements
2550
+ // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
2551
+ // equals `i`), unless we didn't visit _any_ elements in the above loop because we have
2552
+ // no element matchers and no seed.
2553
+ // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
2554
+ // case, which will result in a "00" `matchedCount` that differs from `i` but is also
2555
+ // numerically zero.
2556
+ if ( bySet && i !== matchedCount ) {
2557
+ j = 0;
2558
+ while ( (matcher = setMatchers[j++]) ) {
2559
+ matcher( unmatched, setMatched, context, xml );
2560
+ }
2561
+
2562
+ if ( seed ) {
2563
+ // Reintegrate element matches to eliminate the need for sorting
2564
+ if ( matchedCount > 0 ) {
2565
+ while ( i-- ) {
2566
+ if ( !(unmatched[i] || setMatched[i]) ) {
2567
+ setMatched[i] = pop.call( results );
2568
+ }
2569
+ }
2570
+ }
2571
+
2572
+ // Discard index placeholder values to get only actual matches
2573
+ setMatched = condense( setMatched );
2574
+ }
2575
+
2576
+ // Add matches to results
2577
+ push.apply( results, setMatched );
2578
+
2579
+ // Seedless set matches succeeding multiple successful matchers stipulate sorting
2580
+ if ( outermost && !seed && setMatched.length > 0 &&
2581
+ ( matchedCount + setMatchers.length ) > 1 ) {
2582
+
2583
+ Sizzle.uniqueSort( results );
2584
+ }
2585
+ }
2586
+
2587
+ // Override manipulation of globals by nested matchers
2588
+ if ( outermost ) {
2589
+ dirruns = dirrunsUnique;
2590
+ outermostContext = contextBackup;
2591
+ }
2592
+
2593
+ return unmatched;
2594
+ };
2595
+
2596
+ return bySet ?
2597
+ markFunction( superMatcher ) :
2598
+ superMatcher;
2599
+ }
2600
+
2601
+ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
2602
+ var i,
2603
+ setMatchers = [],
2604
+ elementMatchers = [],
2605
+ cached = compilerCache[ selector + " " ];
2606
+
2607
+ if ( !cached ) {
2608
+ // Generate a function of recursive functions that can be used to check each element
2609
+ if ( !match ) {
2610
+ match = tokenize( selector );
2611
+ }
2612
+ i = match.length;
2613
+ while ( i-- ) {
2614
+ cached = matcherFromTokens( match[i] );
2615
+ if ( cached[ expando ] ) {
2616
+ setMatchers.push( cached );
2617
+ } else {
2618
+ elementMatchers.push( cached );
2619
+ }
2620
+ }
2621
+
2622
+ // Cache the compiled function
2623
+ cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
2624
+
2625
+ // Save selector and tokenization
2626
+ cached.selector = selector;
2627
+ }
2628
+ return cached;
2629
+ };
2630
+
2631
+ /**
2632
+ * A low-level selection function that works with Sizzle's compiled
2633
+ * selector functions
2634
+ * @param {String|Function} selector A selector or a pre-compiled
2635
+ * selector function built with Sizzle.compile
2636
+ * @param {Element} context
2637
+ * @param {Array} [results]
2638
+ * @param {Array} [seed] A set of elements to match against
2639
+ */
2640
+ select = Sizzle.select = function( selector, context, results, seed ) {
2641
+ var i, tokens, token, type, find,
2642
+ compiled = typeof selector === "function" && selector,
2643
+ match = !seed && tokenize( (selector = compiled.selector || selector) );
2644
+
2645
+ results = results || [];
2646
+
2647
+ // Try to minimize operations if there is only one selector in the list and no seed
2648
+ // (the latter of which guarantees us context)
2649
+ if ( match.length === 1 ) {
2650
+
2651
+ // Reduce context if the leading compound selector is an ID
2652
+ tokens = match[0] = match[0].slice( 0 );
2653
+ if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
2654
+ context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
2655
+
2656
+ context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
2657
+ if ( !context ) {
2658
+ return results;
2659
+
2660
+ // Precompiled matchers will still verify ancestry, so step up a level
2661
+ } else if ( compiled ) {
2662
+ context = context.parentNode;
2663
+ }
2664
+
2665
+ selector = selector.slice( tokens.shift().value.length );
2666
+ }
2667
+
2668
+ // Fetch a seed set for right-to-left matching
2669
+ i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
2670
+ while ( i-- ) {
2671
+ token = tokens[i];
2672
+
2673
+ // Abort if we hit a combinator
2674
+ if ( Expr.relative[ (type = token.type) ] ) {
2675
+ break;
2676
+ }
2677
+ if ( (find = Expr.find[ type ]) ) {
2678
+ // Search, expanding context for leading sibling combinators
2679
+ if ( (seed = find(
2680
+ token.matches[0].replace( runescape, funescape ),
2681
+ rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
2682
+ )) ) {
2683
+
2684
+ // If seed is empty or no tokens remain, we can return early
2685
+ tokens.splice( i, 1 );
2686
+ selector = seed.length && toSelector( tokens );
2687
+ if ( !selector ) {
2688
+ push.apply( results, seed );
2689
+ return results;
2690
+ }
2691
+
2692
+ break;
2693
+ }
2694
+ }
2695
+ }
2696
+ }
2697
+
2698
+ // Compile and execute a filtering function if one is not provided
2699
+ // Provide `match` to avoid retokenization if we modified the selector above
2700
+ ( compiled || compile( selector, match ) )(
2701
+ seed,
2702
+ context,
2703
+ !documentIsHTML,
2704
+ results,
2705
+ !context || rsibling.test( selector ) && testContext( context.parentNode ) || context
2706
+ );
2707
+ return results;
2708
+ };
2709
+
2710
+ // One-time assignments
2711
+
2712
+ // Sort stability
2713
+ support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
2714
+
2715
+ // Support: Chrome 14-35+
2716
+ // Always assume duplicates if they aren't passed to the comparison function
2717
+ support.detectDuplicates = !!hasDuplicate;
2718
+
2719
+ // Initialize against the default document
2720
+ setDocument();
2721
+
2722
+ // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
2723
+ // Detached nodes confoundingly follow *each other*
2724
+ support.sortDetached = assert(function( el ) {
2725
+ // Should return 1, but returns 4 (following)
2726
+ return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
2727
+ });
2728
+
2729
+ // Support: IE<8
2730
+ // Prevent attribute/property "interpolation"
2731
+ // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
2732
+ if ( !assert(function( el ) {
2733
+ el.innerHTML = "<a href='#'></a>";
2734
+ return el.firstChild.getAttribute("href") === "#" ;
2735
+ }) ) {
2736
+ addHandle( "type|href|height|width", function( elem, name, isXML ) {
2737
+ if ( !isXML ) {
2738
+ return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
2739
+ }
2740
+ });
2741
+ }
2742
+
2743
+ // Support: IE<9
2744
+ // Use defaultValue in place of getAttribute("value")
2745
+ if ( !support.attributes || !assert(function( el ) {
2746
+ el.innerHTML = "<input/>";
2747
+ el.firstChild.setAttribute( "value", "" );
2748
+ return el.firstChild.getAttribute( "value" ) === "";
2749
+ }) ) {
2750
+ addHandle( "value", function( elem, name, isXML ) {
2751
+ if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
2752
+ return elem.defaultValue;
2753
+ }
2754
+ });
2755
+ }
2756
+
2757
+ // Support: IE<9
2758
+ // Use getAttributeNode to fetch booleans when getAttribute lies
2759
+ if ( !assert(function( el ) {
2760
+ return el.getAttribute("disabled") == null;
2761
+ }) ) {
2762
+ addHandle( booleans, function( elem, name, isXML ) {
2763
+ var val;
2764
+ if ( !isXML ) {
2765
+ return elem[ name ] === true ? name.toLowerCase() :
2766
+ (val = elem.getAttributeNode( name )) && val.specified ?
2767
+ val.value :
2768
+ null;
2769
+ }
2770
+ });
2771
+ }
2772
+
2773
+ return Sizzle;
2774
+
2775
+ })( window );
2776
+
2777
+
2778
+
2779
+ jQuery.find = Sizzle;
2780
+ jQuery.expr = Sizzle.selectors;
2781
+
2782
+ // Deprecated
2783
+ jQuery.expr[ ":" ] = jQuery.expr.pseudos;
2784
+ jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
2785
+ jQuery.text = Sizzle.getText;
2786
+ jQuery.isXMLDoc = Sizzle.isXML;
2787
+ jQuery.contains = Sizzle.contains;
2788
+ jQuery.escapeSelector = Sizzle.escape;
2789
+
2790
+
2791
+
2792
+
2793
+ var dir = function( elem, dir, until ) {
2794
+ var matched = [],
2795
+ truncate = until !== undefined;
2796
+
2797
+ while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
2798
+ if ( elem.nodeType === 1 ) {
2799
+ if ( truncate && jQuery( elem ).is( until ) ) {
2800
+ break;
2801
+ }
2802
+ matched.push( elem );
2803
+ }
2804
+ }
2805
+ return matched;
2806
+ };
2807
+
2808
+
2809
+ var siblings = function( n, elem ) {
2810
+ var matched = [];
2811
+
2812
+ for ( ; n; n = n.nextSibling ) {
2813
+ if ( n.nodeType === 1 && n !== elem ) {
2814
+ matched.push( n );
2815
+ }
2816
+ }
2817
+
2818
+ return matched;
2819
+ };
2820
+
2821
+
2822
+ var rneedsContext = jQuery.expr.match.needsContext;
2823
+
2824
+
2825
+
2826
+ function nodeName( elem, name ) {
2827
+
2828
+ return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
2829
+
2830
+ };
2831
+ var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
2832
+
2833
+
2834
+
2835
+ // Implement the identical functionality for filter and not
2836
+ function winnow( elements, qualifier, not ) {
2837
+ if ( isFunction( qualifier ) ) {
2838
+ return jQuery.grep( elements, function( elem, i ) {
2839
+ return !!qualifier.call( elem, i, elem ) !== not;
2840
+ } );
2841
+ }
2842
+
2843
+ // Single element
2844
+ if ( qualifier.nodeType ) {
2845
+ return jQuery.grep( elements, function( elem ) {
2846
+ return ( elem === qualifier ) !== not;
2847
+ } );
2848
+ }
2849
+
2850
+ // Arraylike of elements (jQuery, arguments, Array)
2851
+ if ( typeof qualifier !== "string" ) {
2852
+ return jQuery.grep( elements, function( elem ) {
2853
+ return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
2854
+ } );
2855
+ }
2856
+
2857
+ // Filtered directly for both simple and complex selectors
2858
+ return jQuery.filter( qualifier, elements, not );
2859
+ }
2860
+
2861
+ jQuery.filter = function( expr, elems, not ) {
2862
+ var elem = elems[ 0 ];
2863
+
2864
+ if ( not ) {
2865
+ expr = ":not(" + expr + ")";
2866
+ }
2867
+
2868
+ if ( elems.length === 1 && elem.nodeType === 1 ) {
2869
+ return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
2870
+ }
2871
+
2872
+ return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
2873
+ return elem.nodeType === 1;
2874
+ } ) );
2875
+ };
2876
+
2877
+ jQuery.fn.extend( {
2878
+ find: function( selector ) {
2879
+ var i, ret,
2880
+ len = this.length,
2881
+ self = this;
2882
+
2883
+ if ( typeof selector !== "string" ) {
2884
+ return this.pushStack( jQuery( selector ).filter( function() {
2885
+ for ( i = 0; i < len; i++ ) {
2886
+ if ( jQuery.contains( self[ i ], this ) ) {
2887
+ return true;
2888
+ }
2889
+ }
2890
+ } ) );
2891
+ }
2892
+
2893
+ ret = this.pushStack( [] );
2894
+
2895
+ for ( i = 0; i < len; i++ ) {
2896
+ jQuery.find( selector, self[ i ], ret );
2897
+ }
2898
+
2899
+ return len > 1 ? jQuery.uniqueSort( ret ) : ret;
2900
+ },
2901
+ filter: function( selector ) {
2902
+ return this.pushStack( winnow( this, selector || [], false ) );
2903
+ },
2904
+ not: function( selector ) {
2905
+ return this.pushStack( winnow( this, selector || [], true ) );
2906
+ },
2907
+ is: function( selector ) {
2908
+ return !!winnow(
2909
+ this,
2910
+
2911
+ // If this is a positional/relative selector, check membership in the returned set
2912
+ // so $("p:first").is("p:last") won't return true for a doc with two "p".
2913
+ typeof selector === "string" && rneedsContext.test( selector ) ?
2914
+ jQuery( selector ) :
2915
+ selector || [],
2916
+ false
2917
+ ).length;
2918
+ }
2919
+ } );
2920
+
2921
+
2922
+ // Initialize a jQuery object
2923
+
2924
+
2925
+ // A central reference to the root jQuery(document)
2926
+ var rootjQuery,
2927
+
2928
+ // A simple way to check for HTML strings
2929
+ // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
2930
+ // Strict HTML recognition (#11290: must start with <)
2931
+ // Shortcut simple #id case for speed
2932
+ rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
2933
+
2934
+ init = jQuery.fn.init = function( selector, context, root ) {
2935
+ var match, elem;
2936
+
2937
+ // HANDLE: $(""), $(null), $(undefined), $(false)
2938
+ if ( !selector ) {
2939
+ return this;
2940
+ }
2941
+
2942
+ // Method init() accepts an alternate rootjQuery
2943
+ // so migrate can support jQuery.sub (gh-2101)
2944
+ root = root || rootjQuery;
2945
+
2946
+ // Handle HTML strings
2947
+ if ( typeof selector === "string" ) {
2948
+ if ( selector[ 0 ] === "<" &&
2949
+ selector[ selector.length - 1 ] === ">" &&
2950
+ selector.length >= 3 ) {
2951
+
2952
+ // Assume that strings that start and end with <> are HTML and skip the regex check
2953
+ match = [ null, selector, null ];
2954
+
2955
+ } else {
2956
+ match = rquickExpr.exec( selector );
2957
+ }
2958
+
2959
+ // Match html or make sure no context is specified for #id
2960
+ if ( match && ( match[ 1 ] || !context ) ) {
2961
+
2962
+ // HANDLE: $(html) -> $(array)
2963
+ if ( match[ 1 ] ) {
2964
+ context = context instanceof jQuery ? context[ 0 ] : context;
2965
+
2966
+ // Option to run scripts is true for back-compat
2967
+ // Intentionally let the error be thrown if parseHTML is not present
2968
+ jQuery.merge( this, jQuery.parseHTML(
2969
+ match[ 1 ],
2970
+ context && context.nodeType ? context.ownerDocument || context : document,
2971
+ true
2972
+ ) );
2973
+
2974
+ // HANDLE: $(html, props)
2975
+ if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
2976
+ for ( match in context ) {
2977
+
2978
+ // Properties of context are called as methods if possible
2979
+ if ( isFunction( this[ match ] ) ) {
2980
+ this[ match ]( context[ match ] );
2981
+
2982
+ // ...and otherwise set as attributes
2983
+ } else {
2984
+ this.attr( match, context[ match ] );
2985
+ }
2986
+ }
2987
+ }
2988
+
2989
+ return this;
2990
+
2991
+ // HANDLE: $(#id)
2992
+ } else {
2993
+ elem = document.getElementById( match[ 2 ] );
2994
+
2995
+ if ( elem ) {
2996
+
2997
+ // Inject the element directly into the jQuery object
2998
+ this[ 0 ] = elem;
2999
+ this.length = 1;
3000
+ }
3001
+ return this;
3002
+ }
3003
+
3004
+ // HANDLE: $(expr, $(...))
3005
+ } else if ( !context || context.jquery ) {
3006
+ return ( context || root ).find( selector );
3007
+
3008
+ // HANDLE: $(expr, context)
3009
+ // (which is just equivalent to: $(context).find(expr)
3010
+ } else {
3011
+ return this.constructor( context ).find( selector );
3012
+ }
3013
+
3014
+ // HANDLE: $(DOMElement)
3015
+ } else if ( selector.nodeType ) {
3016
+ this[ 0 ] = selector;
3017
+ this.length = 1;
3018
+ return this;
3019
+
3020
+ // HANDLE: $(function)
3021
+ // Shortcut for document ready
3022
+ } else if ( isFunction( selector ) ) {
3023
+ return root.ready !== undefined ?
3024
+ root.ready( selector ) :
3025
+
3026
+ // Execute immediately if ready is not present
3027
+ selector( jQuery );
3028
+ }
3029
+
3030
+ return jQuery.makeArray( selector, this );
3031
+ };
3032
+
3033
+ // Give the init function the jQuery prototype for later instantiation
3034
+ init.prototype = jQuery.fn;
3035
+
3036
+ // Initialize central reference
3037
+ rootjQuery = jQuery( document );
3038
+
3039
+
3040
+ var rparentsprev = /^(?:parents|prev(?:Until|All))/,
3041
+
3042
+ // Methods guaranteed to produce a unique set when starting from a unique set
3043
+ guaranteedUnique = {
3044
+ children: true,
3045
+ contents: true,
3046
+ next: true,
3047
+ prev: true
3048
+ };
3049
+
3050
+ jQuery.fn.extend( {
3051
+ has: function( target ) {
3052
+ var targets = jQuery( target, this ),
3053
+ l = targets.length;
3054
+
3055
+ return this.filter( function() {
3056
+ var i = 0;
3057
+ for ( ; i < l; i++ ) {
3058
+ if ( jQuery.contains( this, targets[ i ] ) ) {
3059
+ return true;
3060
+ }
3061
+ }
3062
+ } );
3063
+ },
3064
+
3065
+ closest: function( selectors, context ) {
3066
+ var cur,
3067
+ i = 0,
3068
+ l = this.length,
3069
+ matched = [],
3070
+ targets = typeof selectors !== "string" && jQuery( selectors );
3071
+
3072
+ // Positional selectors never match, since there's no _selection_ context
3073
+ if ( !rneedsContext.test( selectors ) ) {
3074
+ for ( ; i < l; i++ ) {
3075
+ for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
3076
+
3077
+ // Always skip document fragments
3078
+ if ( cur.nodeType < 11 && ( targets ?
3079
+ targets.index( cur ) > -1 :
3080
+
3081
+ // Don't pass non-elements to Sizzle
3082
+ cur.nodeType === 1 &&
3083
+ jQuery.find.matchesSelector( cur, selectors ) ) ) {
3084
+
3085
+ matched.push( cur );
3086
+ break;
3087
+ }
3088
+ }
3089
+ }
3090
+ }
3091
+
3092
+ return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
3093
+ },
3094
+
3095
+ // Determine the position of an element within the set
3096
+ index: function( elem ) {
3097
+
3098
+ // No argument, return index in parent
3099
+ if ( !elem ) {
3100
+ return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
3101
+ }
3102
+
3103
+ // Index in selector
3104
+ if ( typeof elem === "string" ) {
3105
+ return indexOf.call( jQuery( elem ), this[ 0 ] );
3106
+ }
3107
+
3108
+ // Locate the position of the desired element
3109
+ return indexOf.call( this,
3110
+
3111
+ // If it receives a jQuery object, the first element is used
3112
+ elem.jquery ? elem[ 0 ] : elem
3113
+ );
3114
+ },
3115
+
3116
+ add: function( selector, context ) {
3117
+ return this.pushStack(
3118
+ jQuery.uniqueSort(
3119
+ jQuery.merge( this.get(), jQuery( selector, context ) )
3120
+ )
3121
+ );
3122
+ },
3123
+
3124
+ addBack: function( selector ) {
3125
+ return this.add( selector == null ?
3126
+ this.prevObject : this.prevObject.filter( selector )
3127
+ );
3128
+ }
3129
+ } );
3130
+
3131
+ function sibling( cur, dir ) {
3132
+ while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
3133
+ return cur;
3134
+ }
3135
+
3136
+ jQuery.each( {
3137
+ parent: function( elem ) {
3138
+ var parent = elem.parentNode;
3139
+ return parent && parent.nodeType !== 11 ? parent : null;
3140
+ },
3141
+ parents: function( elem ) {
3142
+ return dir( elem, "parentNode" );
3143
+ },
3144
+ parentsUntil: function( elem, i, until ) {
3145
+ return dir( elem, "parentNode", until );
3146
+ },
3147
+ next: function( elem ) {
3148
+ return sibling( elem, "nextSibling" );
3149
+ },
3150
+ prev: function( elem ) {
3151
+ return sibling( elem, "previousSibling" );
3152
+ },
3153
+ nextAll: function( elem ) {
3154
+ return dir( elem, "nextSibling" );
3155
+ },
3156
+ prevAll: function( elem ) {
3157
+ return dir( elem, "previousSibling" );
3158
+ },
3159
+ nextUntil: function( elem, i, until ) {
3160
+ return dir( elem, "nextSibling", until );
3161
+ },
3162
+ prevUntil: function( elem, i, until ) {
3163
+ return dir( elem, "previousSibling", until );
3164
+ },
3165
+ siblings: function( elem ) {
3166
+ return siblings( ( elem.parentNode || {} ).firstChild, elem );
3167
+ },
3168
+ children: function( elem ) {
3169
+ return siblings( elem.firstChild );
3170
+ },
3171
+ contents: function( elem ) {
3172
+ if ( typeof elem.contentDocument !== "undefined" ) {
3173
+ return elem.contentDocument;
3174
+ }
3175
+
3176
+ // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
3177
+ // Treat the template element as a regular one in browsers that
3178
+ // don't support it.
3179
+ if ( nodeName( elem, "template" ) ) {
3180
+ elem = elem.content || elem;
3181
+ }
3182
+
3183
+ return jQuery.merge( [], elem.childNodes );
3184
+ }
3185
+ }, function( name, fn ) {
3186
+ jQuery.fn[ name ] = function( until, selector ) {
3187
+ var matched = jQuery.map( this, fn, until );
3188
+
3189
+ if ( name.slice( -5 ) !== "Until" ) {
3190
+ selector = until;
3191
+ }
3192
+
3193
+ if ( selector && typeof selector === "string" ) {
3194
+ matched = jQuery.filter( selector, matched );
3195
+ }
3196
+
3197
+ if ( this.length > 1 ) {
3198
+
3199
+ // Remove duplicates
3200
+ if ( !guaranteedUnique[ name ] ) {
3201
+ jQuery.uniqueSort( matched );
3202
+ }
3203
+
3204
+ // Reverse order for parents* and prev-derivatives
3205
+ if ( rparentsprev.test( name ) ) {
3206
+ matched.reverse();
3207
+ }
3208
+ }
3209
+
3210
+ return this.pushStack( matched );
3211
+ };
3212
+ } );
3213
+ var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );
3214
+
3215
+
3216
+
3217
+ // Convert String-formatted options into Object-formatted ones
3218
+ function createOptions( options ) {
3219
+ var object = {};
3220
+ jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
3221
+ object[ flag ] = true;
3222
+ } );
3223
+ return object;
3224
+ }
3225
+
3226
+ /*
3227
+ * Create a callback list using the following parameters:
3228
+ *
3229
+ * options: an optional list of space-separated options that will change how
3230
+ * the callback list behaves or a more traditional option object
3231
+ *
3232
+ * By default a callback list will act like an event callback list and can be
3233
+ * "fired" multiple times.
3234
+ *
3235
+ * Possible options:
3236
+ *
3237
+ * once: will ensure the callback list can only be fired once (like a Deferred)
3238
+ *
3239
+ * memory: will keep track of previous values and will call any callback added
3240
+ * after the list has been fired right away with the latest "memorized"
3241
+ * values (like a Deferred)
3242
+ *
3243
+ * unique: will ensure a callback can only be added once (no duplicate in the list)
3244
+ *
3245
+ * stopOnFalse: interrupt callings when a callback returns false
3246
+ *
3247
+ */
3248
+ jQuery.Callbacks = function( options ) {
3249
+
3250
+ // Convert options from String-formatted to Object-formatted if needed
3251
+ // (we check in cache first)
3252
+ options = typeof options === "string" ?
3253
+ createOptions( options ) :
3254
+ jQuery.extend( {}, options );
3255
+
3256
+ var // Flag to know if list is currently firing
3257
+ firing,
3258
+
3259
+ // Last fire value for non-forgettable lists
3260
+ memory,
3261
+
3262
+ // Flag to know if list was already fired
3263
+ fired,
3264
+
3265
+ // Flag to prevent firing
3266
+ locked,
3267
+
3268
+ // Actual callback list
3269
+ list = [],
3270
+
3271
+ // Queue of execution data for repeatable lists
3272
+ queue = [],
3273
+
3274
+ // Index of currently firing callback (modified by add/remove as needed)
3275
+ firingIndex = -1,
3276
+
3277
+ // Fire callbacks
3278
+ fire = function() {
3279
+
3280
+ // Enforce single-firing
3281
+ locked = locked || options.once;
3282
+
3283
+ // Execute callbacks for all pending executions,
3284
+ // respecting firingIndex overrides and runtime changes
3285
+ fired = firing = true;
3286
+ for ( ; queue.length; firingIndex = -1 ) {
3287
+ memory = queue.shift();
3288
+ while ( ++firingIndex < list.length ) {
3289
+
3290
+ // Run callback and check for early termination
3291
+ if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
3292
+ options.stopOnFalse ) {
3293
+
3294
+ // Jump to end and forget the data so .add doesn't re-fire
3295
+ firingIndex = list.length;
3296
+ memory = false;
3297
+ }
3298
+ }
3299
+ }
3300
+
3301
+ // Forget the data if we're done with it
3302
+ if ( !options.memory ) {
3303
+ memory = false;
3304
+ }
3305
+
3306
+ firing = false;
3307
+
3308
+ // Clean up if we're done firing for good
3309
+ if ( locked ) {
3310
+
3311
+ // Keep an empty list if we have data for future add calls
3312
+ if ( memory ) {
3313
+ list = [];
3314
+
3315
+ // Otherwise, this object is spent
3316
+ } else {
3317
+ list = "";
3318
+ }
3319
+ }
3320
+ },
3321
+
3322
+ // Actual Callbacks object
3323
+ self = {
3324
+
3325
+ // Add a callback or a collection of callbacks to the list
3326
+ add: function() {
3327
+ if ( list ) {
3328
+
3329
+ // If we have memory from a past run, we should fire after adding
3330
+ if ( memory && !firing ) {
3331
+ firingIndex = list.length - 1;
3332
+ queue.push( memory );
3333
+ }
3334
+
3335
+ ( function add( args ) {
3336
+ jQuery.each( args, function( _, arg ) {
3337
+ if ( isFunction( arg ) ) {
3338
+ if ( !options.unique || !self.has( arg ) ) {
3339
+ list.push( arg );
3340
+ }
3341
+ } else if ( arg && arg.length && toType( arg ) !== "string" ) {
3342
+
3343
+ // Inspect recursively
3344
+ add( arg );
3345
+ }
3346
+ } );
3347
+ } )( arguments );
3348
+
3349
+ if ( memory && !firing ) {
3350
+ fire();
3351
+ }
3352
+ }
3353
+ return this;
3354
+ },
3355
+
3356
+ // Remove a callback from the list
3357
+ remove: function() {
3358
+ jQuery.each( arguments, function( _, arg ) {
3359
+ var index;
3360
+ while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
3361
+ list.splice( index, 1 );
3362
+
3363
+ // Handle firing indexes
3364
+ if ( index <= firingIndex ) {
3365
+ firingIndex--;
3366
+ }
3367
+ }
3368
+ } );
3369
+ return this;
3370
+ },
3371
+
3372
+ // Check if a given callback is in the list.
3373
+ // If no argument is given, return whether or not list has callbacks attached.
3374
+ has: function( fn ) {
3375
+ return fn ?
3376
+ jQuery.inArray( fn, list ) > -1 :
3377
+ list.length > 0;
3378
+ },
3379
+
3380
+ // Remove all callbacks from the list
3381
+ empty: function() {
3382
+ if ( list ) {
3383
+ list = [];
3384
+ }
3385
+ return this;
3386
+ },
3387
+
3388
+ // Disable .fire and .add
3389
+ // Abort any current/pending executions
3390
+ // Clear all callbacks and values
3391
+ disable: function() {
3392
+ locked = queue = [];
3393
+ list = memory = "";
3394
+ return this;
3395
+ },
3396
+ disabled: function() {
3397
+ return !list;
3398
+ },
3399
+
3400
+ // Disable .fire
3401
+ // Also disable .add unless we have memory (since it would have no effect)
3402
+ // Abort any pending executions
3403
+ lock: function() {
3404
+ locked = queue = [];
3405
+ if ( !memory && !firing ) {
3406
+ list = memory = "";
3407
+ }
3408
+ return this;
3409
+ },
3410
+ locked: function() {
3411
+ return !!locked;
3412
+ },
3413
+
3414
+ // Call all callbacks with the given context and arguments
3415
+ fireWith: function( context, args ) {
3416
+ if ( !locked ) {
3417
+ args = args || [];
3418
+ args = [ context, args.slice ? args.slice() : args ];
3419
+ queue.push( args );
3420
+ if ( !firing ) {
3421
+ fire();
3422
+ }
3423
+ }
3424
+ return this;
3425
+ },
3426
+
3427
+ // Call all the callbacks with the given arguments
3428
+ fire: function() {
3429
+ self.fireWith( this, arguments );
3430
+ return this;
3431
+ },
3432
+
3433
+ // To know if the callbacks have already been called at least once
3434
+ fired: function() {
3435
+ return !!fired;
3436
+ }
3437
+ };
3438
+
3439
+ return self;
3440
+ };
3441
+
3442
+
3443
+ function Identity( v ) {
3444
+ return v;
3445
+ }
3446
+ function Thrower( ex ) {
3447
+ throw ex;
3448
+ }
3449
+
3450
+ function adoptValue( value, resolve, reject, noValue ) {
3451
+ var method;
3452
+
3453
+ try {
3454
+
3455
+ // Check for promise aspect first to privilege synchronous behavior
3456
+ if ( value && isFunction( ( method = value.promise ) ) ) {
3457
+ method.call( value ).done( resolve ).fail( reject );
3458
+
3459
+ // Other thenables
3460
+ } else if ( value && isFunction( ( method = value.then ) ) ) {
3461
+ method.call( value, resolve, reject );
3462
+
3463
+ // Other non-thenables
3464
+ } else {
3465
+
3466
+ // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:
3467
+ // * false: [ value ].slice( 0 ) => resolve( value )
3468
+ // * true: [ value ].slice( 1 ) => resolve()
3469
+ resolve.apply( undefined, [ value ].slice( noValue ) );
3470
+ }
3471
+
3472
+ // For Promises/A+, convert exceptions into rejections
3473
+ // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
3474
+ // Deferred#then to conditionally suppress rejection.
3475
+ } catch ( value ) {
3476
+
3477
+ // Support: Android 4.0 only
3478
+ // Strict mode functions invoked without .call/.apply get global-object context
3479
+ reject.apply( undefined, [ value ] );
3480
+ }
3481
+ }
3482
+
3483
+ jQuery.extend( {
3484
+
3485
+ Deferred: function( func ) {
3486
+ var tuples = [
3487
+
3488
+ // action, add listener, callbacks,
3489
+ // ... .then handlers, argument index, [final state]
3490
+ [ "notify", "progress", jQuery.Callbacks( "memory" ),
3491
+ jQuery.Callbacks( "memory" ), 2 ],
3492
+ [ "resolve", "done", jQuery.Callbacks( "once memory" ),
3493
+ jQuery.Callbacks( "once memory" ), 0, "resolved" ],
3494
+ [ "reject", "fail", jQuery.Callbacks( "once memory" ),
3495
+ jQuery.Callbacks( "once memory" ), 1, "rejected" ]
3496
+ ],
3497
+ state = "pending",
3498
+ promise = {
3499
+ state: function() {
3500
+ return state;
3501
+ },
3502
+ always: function() {
3503
+ deferred.done( arguments ).fail( arguments );
3504
+ return this;
3505
+ },
3506
+ "catch": function( fn ) {
3507
+ return promise.then( null, fn );
3508
+ },
3509
+
3510
+ // Keep pipe for back-compat
3511
+ pipe: function( /* fnDone, fnFail, fnProgress */ ) {
3512
+ var fns = arguments;
3513
+
3514
+ return jQuery.Deferred( function( newDefer ) {
3515
+ jQuery.each( tuples, function( i, tuple ) {
3516
+
3517
+ // Map tuples (progress, done, fail) to arguments (done, fail, progress)
3518
+ var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
3519
+
3520
+ // deferred.progress(function() { bind to newDefer or newDefer.notify })
3521
+ // deferred.done(function() { bind to newDefer or newDefer.resolve })
3522
+ // deferred.fail(function() { bind to newDefer or newDefer.reject })
3523
+ deferred[ tuple[ 1 ] ]( function() {
3524
+ var returned = fn && fn.apply( this, arguments );
3525
+ if ( returned && isFunction( returned.promise ) ) {
3526
+ returned.promise()
3527
+ .progress( newDefer.notify )
3528
+ .done( newDefer.resolve )
3529
+ .fail( newDefer.reject );
3530
+ } else {
3531
+ newDefer[ tuple[ 0 ] + "With" ](
3532
+ this,
3533
+ fn ? [ returned ] : arguments
3534
+ );
3535
+ }
3536
+ } );
3537
+ } );
3538
+ fns = null;
3539
+ } ).promise();
3540
+ },
3541
+ then: function( onFulfilled, onRejected, onProgress ) {
3542
+ var maxDepth = 0;
3543
+ function resolve( depth, deferred, handler, special ) {
3544
+ return function() {
3545
+ var that = this,
3546
+ args = arguments,
3547
+ mightThrow = function() {
3548
+ var returned, then;
3549
+
3550
+ // Support: Promises/A+ section 2.3.3.3.3
3551
+ // https://promisesaplus.com/#point-59
3552
+ // Ignore double-resolution attempts
3553
+ if ( depth < maxDepth ) {
3554
+ return;
3555
+ }
3556
+
3557
+ returned = handler.apply( that, args );
3558
+
3559
+ // Support: Promises/A+ section 2.3.1
3560
+ // https://promisesaplus.com/#point-48
3561
+ if ( returned === deferred.promise() ) {
3562
+ throw new TypeError( "Thenable self-resolution" );
3563
+ }
3564
+
3565
+ // Support: Promises/A+ sections 2.3.3.1, 3.5
3566
+ // https://promisesaplus.com/#point-54
3567
+ // https://promisesaplus.com/#point-75
3568
+ // Retrieve `then` only once
3569
+ then = returned &&
3570
+
3571
+ // Support: Promises/A+ section 2.3.4
3572
+ // https://promisesaplus.com/#point-64
3573
+ // Only check objects and functions for thenability
3574
+ ( typeof returned === "object" ||
3575
+ typeof returned === "function" ) &&
3576
+ returned.then;
3577
+
3578
+ // Handle a returned thenable
3579
+ if ( isFunction( then ) ) {
3580
+
3581
+ // Special processors (notify) just wait for resolution
3582
+ if ( special ) {
3583
+ then.call(
3584
+ returned,
3585
+ resolve( maxDepth, deferred, Identity, special ),
3586
+ resolve( maxDepth, deferred, Thrower, special )
3587
+ );
3588
+
3589
+ // Normal processors (resolve) also hook into progress
3590
+ } else {
3591
+
3592
+ // ...and disregard older resolution values
3593
+ maxDepth++;
3594
+
3595
+ then.call(
3596
+ returned,
3597
+ resolve( maxDepth, deferred, Identity, special ),
3598
+ resolve( maxDepth, deferred, Thrower, special ),
3599
+ resolve( maxDepth, deferred, Identity,
3600
+ deferred.notifyWith )
3601
+ );
3602
+ }
3603
+
3604
+ // Handle all other returned values
3605
+ } else {
3606
+
3607
+ // Only substitute handlers pass on context
3608
+ // and multiple values (non-spec behavior)
3609
+ if ( handler !== Identity ) {
3610
+ that = undefined;
3611
+ args = [ returned ];
3612
+ }
3613
+
3614
+ // Process the value(s)
3615
+ // Default process is resolve
3616
+ ( special || deferred.resolveWith )( that, args );
3617
+ }
3618
+ },
3619
+
3620
+ // Only normal processors (resolve) catch and reject exceptions
3621
+ process = special ?
3622
+ mightThrow :
3623
+ function() {
3624
+ try {
3625
+ mightThrow();
3626
+ } catch ( e ) {
3627
+
3628
+ if ( jQuery.Deferred.exceptionHook ) {
3629
+ jQuery.Deferred.exceptionHook( e,
3630
+ process.stackTrace );
3631
+ }
3632
+
3633
+ // Support: Promises/A+ section 2.3.3.3.4.1
3634
+ // https://promisesaplus.com/#point-61
3635
+ // Ignore post-resolution exceptions
3636
+ if ( depth + 1 >= maxDepth ) {
3637
+
3638
+ // Only substitute handlers pass on context
3639
+ // and multiple values (non-spec behavior)
3640
+ if ( handler !== Thrower ) {
3641
+ that = undefined;
3642
+ args = [ e ];
3643
+ }
3644
+
3645
+ deferred.rejectWith( that, args );
3646
+ }
3647
+ }
3648
+ };
3649
+
3650
+ // Support: Promises/A+ section 2.3.3.3.1
3651
+ // https://promisesaplus.com/#point-57
3652
+ // Re-resolve promises immediately to dodge false rejection from
3653
+ // subsequent errors
3654
+ if ( depth ) {
3655
+ process();
3656
+ } else {
3657
+
3658
+ // Call an optional hook to record the stack, in case of exception
3659
+ // since it's otherwise lost when execution goes async
3660
+ if ( jQuery.Deferred.getStackHook ) {
3661
+ process.stackTrace = jQuery.Deferred.getStackHook();
3662
+ }
3663
+ window.setTimeout( process );
3664
+ }
3665
+ };
3666
+ }
3667
+
3668
+ return jQuery.Deferred( function( newDefer ) {
3669
+
3670
+ // progress_handlers.add( ... )
3671
+ tuples[ 0 ][ 3 ].add(
3672
+ resolve(
3673
+ 0,
3674
+ newDefer,
3675
+ isFunction( onProgress ) ?
3676
+ onProgress :
3677
+ Identity,
3678
+ newDefer.notifyWith
3679
+ )
3680
+ );
3681
+
3682
+ // fulfilled_handlers.add( ... )
3683
+ tuples[ 1 ][ 3 ].add(
3684
+ resolve(
3685
+ 0,
3686
+ newDefer,
3687
+ isFunction( onFulfilled ) ?
3688
+ onFulfilled :
3689
+ Identity
3690
+ )
3691
+ );
3692
+
3693
+ // rejected_handlers.add( ... )
3694
+ tuples[ 2 ][ 3 ].add(
3695
+ resolve(
3696
+ 0,
3697
+ newDefer,
3698
+ isFunction( onRejected ) ?
3699
+ onRejected :
3700
+ Thrower
3701
+ )
3702
+ );
3703
+ } ).promise();
3704
+ },
3705
+
3706
+ // Get a promise for this deferred
3707
+ // If obj is provided, the promise aspect is added to the object
3708
+ promise: function( obj ) {
3709
+ return obj != null ? jQuery.extend( obj, promise ) : promise;
3710
+ }
3711
+ },
3712
+ deferred = {};
3713
+
3714
+ // Add list-specific methods
3715
+ jQuery.each( tuples, function( i, tuple ) {
3716
+ var list = tuple[ 2 ],
3717
+ stateString = tuple[ 5 ];
3718
+
3719
+ // promise.progress = list.add
3720
+ // promise.done = list.add
3721
+ // promise.fail = list.add
3722
+ promise[ tuple[ 1 ] ] = list.add;
3723
+
3724
+ // Handle state
3725
+ if ( stateString ) {
3726
+ list.add(
3727
+ function() {
3728
+
3729
+ // state = "resolved" (i.e., fulfilled)
3730
+ // state = "rejected"
3731
+ state = stateString;
3732
+ },
3733
+
3734
+ // rejected_callbacks.disable
3735
+ // fulfilled_callbacks.disable
3736
+ tuples[ 3 - i ][ 2 ].disable,
3737
+
3738
+ // rejected_handlers.disable
3739
+ // fulfilled_handlers.disable
3740
+ tuples[ 3 - i ][ 3 ].disable,
3741
+
3742
+ // progress_callbacks.lock
3743
+ tuples[ 0 ][ 2 ].lock,
3744
+
3745
+ // progress_handlers.lock
3746
+ tuples[ 0 ][ 3 ].lock
3747
+ );
3748
+ }
3749
+
3750
+ // progress_handlers.fire
3751
+ // fulfilled_handlers.fire
3752
+ // rejected_handlers.fire
3753
+ list.add( tuple[ 3 ].fire );
3754
+
3755
+ // deferred.notify = function() { deferred.notifyWith(...) }
3756
+ // deferred.resolve = function() { deferred.resolveWith(...) }
3757
+ // deferred.reject = function() { deferred.rejectWith(...) }
3758
+ deferred[ tuple[ 0 ] ] = function() {
3759
+ deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
3760
+ return this;
3761
+ };
3762
+
3763
+ // deferred.notifyWith = list.fireWith
3764
+ // deferred.resolveWith = list.fireWith
3765
+ // deferred.rejectWith = list.fireWith
3766
+ deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
3767
+ } );
3768
+
3769
+ // Make the deferred a promise
3770
+ promise.promise( deferred );
3771
+
3772
+ // Call given func if any
3773
+ if ( func ) {
3774
+ func.call( deferred, deferred );
3775
+ }
3776
+
3777
+ // All done!
3778
+ return deferred;
3779
+ },
3780
+
3781
+ // Deferred helper
3782
+ when: function( singleValue ) {
3783
+ var
3784
+
3785
+ // count of uncompleted subordinates
3786
+ remaining = arguments.length,
3787
+
3788
+ // count of unprocessed arguments
3789
+ i = remaining,
3790
+
3791
+ // subordinate fulfillment data
3792
+ resolveContexts = Array( i ),
3793
+ resolveValues = slice.call( arguments ),
3794
+
3795
+ // the master Deferred
3796
+ master = jQuery.Deferred(),
3797
+
3798
+ // subordinate callback factory
3799
+ updateFunc = function( i ) {
3800
+ return function( value ) {
3801
+ resolveContexts[ i ] = this;
3802
+ resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
3803
+ if ( !( --remaining ) ) {
3804
+ master.resolveWith( resolveContexts, resolveValues );
3805
+ }
3806
+ };
3807
+ };
3808
+
3809
+ // Single- and empty arguments are adopted like Promise.resolve
3810
+ if ( remaining <= 1 ) {
3811
+ adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
3812
+ !remaining );
3813
+
3814
+ // Use .then() to unwrap secondary thenables (cf. gh-3000)
3815
+ if ( master.state() === "pending" ||
3816
+ isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
3817
+
3818
+ return master.then();
3819
+ }
3820
+ }
3821
+
3822
+ // Multiple arguments are aggregated like Promise.all array elements
3823
+ while ( i-- ) {
3824
+ adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
3825
+ }
3826
+
3827
+ return master.promise();
3828
+ }
3829
+ } );
3830
+
3831
+
3832
+ // These usually indicate a programmer mistake during development,
3833
+ // warn about them ASAP rather than swallowing them by default.
3834
+ var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
3835
+
3836
+ jQuery.Deferred.exceptionHook = function( error, stack ) {
3837
+
3838
+ // Support: IE 8 - 9 only
3839
+ // Console exists when dev tools are open, which can happen at any time
3840
+ if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
3841
+ window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
3842
+ }
3843
+ };
3844
+
3845
+
3846
+
3847
+
3848
+ jQuery.readyException = function( error ) {
3849
+ window.setTimeout( function() {
3850
+ throw error;
3851
+ } );
3852
+ };
3853
+
3854
+
3855
+
3856
+
3857
+ // The deferred used on DOM ready
3858
+ var readyList = jQuery.Deferred();
3859
+
3860
+ jQuery.fn.ready = function( fn ) {
3861
+
3862
+ readyList
3863
+ .then( fn )
3864
+
3865
+ // Wrap jQuery.readyException in a function so that the lookup
3866
+ // happens at the time of error handling instead of callback
3867
+ // registration.
3868
+ .catch( function( error ) {
3869
+ jQuery.readyException( error );
3870
+ } );
3871
+
3872
+ return this;
3873
+ };
3874
+
3875
+ jQuery.extend( {
3876
+
3877
+ // Is the DOM ready to be used? Set to true once it occurs.
3878
+ isReady: false,
3879
+
3880
+ // A counter to track how many items to wait for before
3881
+ // the ready event fires. See #6781
3882
+ readyWait: 1,
3883
+
3884
+ // Handle when the DOM is ready
3885
+ ready: function( wait ) {
3886
+
3887
+ // Abort if there are pending holds or we're already ready
3888
+ if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
3889
+ return;
3890
+ }
3891
+
3892
+ // Remember that the DOM is ready
3893
+ jQuery.isReady = true;
3894
+
3895
+ // If a normal DOM Ready event fired, decrement, and wait if need be
3896
+ if ( wait !== true && --jQuery.readyWait > 0 ) {
3897
+ return;
3898
+ }
3899
+
3900
+ // If there are functions bound, to execute
3901
+ readyList.resolveWith( document, [ jQuery ] );
3902
+ }
3903
+ } );
3904
+
3905
+ jQuery.ready.then = readyList.then;
3906
+
3907
+ // The ready event handler and self cleanup method
3908
+ function completed() {
3909
+ document.removeEventListener( "DOMContentLoaded", completed );
3910
+ window.removeEventListener( "load", completed );
3911
+ jQuery.ready();
3912
+ }
3913
+
3914
+ // Catch cases where $(document).ready() is called
3915
+ // after the browser event has already occurred.
3916
+ // Support: IE <=9 - 10 only
3917
+ // Older IE sometimes signals "interactive" too soon
3918
+ if ( document.readyState === "complete" ||
3919
+ ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
3920
+
3921
+ // Handle it asynchronously to allow scripts the opportunity to delay ready
3922
+ window.setTimeout( jQuery.ready );
3923
+
3924
+ } else {
3925
+
3926
+ // Use the handy event callback
3927
+ document.addEventListener( "DOMContentLoaded", completed );
3928
+
3929
+ // A fallback to window.onload, that will always work
3930
+ window.addEventListener( "load", completed );
3931
+ }
3932
+
3933
+
3934
+
3935
+
3936
+ // Multifunctional method to get and set values of a collection
3937
+ // The value/s can optionally be executed if it's a function
3938
+ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
3939
+ var i = 0,
3940
+ len = elems.length,
3941
+ bulk = key == null;
3942
+
3943
+ // Sets many values
3944
+ if ( toType( key ) === "object" ) {
3945
+ chainable = true;
3946
+ for ( i in key ) {
3947
+ access( elems, fn, i, key[ i ], true, emptyGet, raw );
3948
+ }
3949
+
3950
+ // Sets one value
3951
+ } else if ( value !== undefined ) {
3952
+ chainable = true;
3953
+
3954
+ if ( !isFunction( value ) ) {
3955
+ raw = true;
3956
+ }
3957
+
3958
+ if ( bulk ) {
3959
+
3960
+ // Bulk operations run against the entire set
3961
+ if ( raw ) {
3962
+ fn.call( elems, value );
3963
+ fn = null;
3964
+
3965
+ // ...except when executing function values
3966
+ } else {
3967
+ bulk = fn;
3968
+ fn = function( elem, key, value ) {
3969
+ return bulk.call( jQuery( elem ), value );
3970
+ };
3971
+ }
3972
+ }
3973
+
3974
+ if ( fn ) {
3975
+ for ( ; i < len; i++ ) {
3976
+ fn(
3977
+ elems[ i ], key, raw ?
3978
+ value :
3979
+ value.call( elems[ i ], i, fn( elems[ i ], key ) )
3980
+ );
3981
+ }
3982
+ }
3983
+ }
3984
+
3985
+ if ( chainable ) {
3986
+ return elems;
3987
+ }
3988
+
3989
+ // Gets
3990
+ if ( bulk ) {
3991
+ return fn.call( elems );
3992
+ }
3993
+
3994
+ return len ? fn( elems[ 0 ], key ) : emptyGet;
3995
+ };
3996
+
3997
+
3998
+ // Matches dashed string for camelizing
3999
+ var rmsPrefix = /^-ms-/,
4000
+ rdashAlpha = /-([a-z])/g;
4001
+
4002
+ // Used by camelCase as callback to replace()
4003
+ function fcamelCase( all, letter ) {
4004
+ return letter.toUpperCase();
4005
+ }
4006
+
4007
+ // Convert dashed to camelCase; used by the css and data modules
4008
+ // Support: IE <=9 - 11, Edge 12 - 15
4009
+ // Microsoft forgot to hump their vendor prefix (#9572)
4010
+ function camelCase( string ) {
4011
+ return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
4012
+ }
4013
+ var acceptData = function( owner ) {
4014
+
4015
+ // Accepts only:
4016
+ // - Node
4017
+ // - Node.ELEMENT_NODE
4018
+ // - Node.DOCUMENT_NODE
4019
+ // - Object
4020
+ // - Any
4021
+ return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
4022
+ };
4023
+
4024
+
4025
+
4026
+
4027
+ function Data() {
4028
+ this.expando = jQuery.expando + Data.uid++;
4029
+ }
4030
+
4031
+ Data.uid = 1;
4032
+
4033
+ Data.prototype = {
4034
+
4035
+ cache: function( owner ) {
4036
+
4037
+ // Check if the owner object already has a cache
4038
+ var value = owner[ this.expando ];
4039
+
4040
+ // If not, create one
4041
+ if ( !value ) {
4042
+ value = {};
4043
+
4044
+ // We can accept data for non-element nodes in modern browsers,
4045
+ // but we should not, see #8335.
4046
+ // Always return an empty object.
4047
+ if ( acceptData( owner ) ) {
4048
+
4049
+ // If it is a node unlikely to be stringify-ed or looped over
4050
+ // use plain assignment
4051
+ if ( owner.nodeType ) {
4052
+ owner[ this.expando ] = value;
4053
+
4054
+ // Otherwise secure it in a non-enumerable property
4055
+ // configurable must be true to allow the property to be
4056
+ // deleted when data is removed
4057
+ } else {
4058
+ Object.defineProperty( owner, this.expando, {
4059
+ value: value,
4060
+ configurable: true
4061
+ } );
4062
+ }
4063
+ }
4064
+ }
4065
+
4066
+ return value;
4067
+ },
4068
+ set: function( owner, data, value ) {
4069
+ var prop,
4070
+ cache = this.cache( owner );
4071
+
4072
+ // Handle: [ owner, key, value ] args
4073
+ // Always use camelCase key (gh-2257)
4074
+ if ( typeof data === "string" ) {
4075
+ cache[ camelCase( data ) ] = value;
4076
+
4077
+ // Handle: [ owner, { properties } ] args
4078
+ } else {
4079
+
4080
+ // Copy the properties one-by-one to the cache object
4081
+ for ( prop in data ) {
4082
+ cache[ camelCase( prop ) ] = data[ prop ];
4083
+ }
4084
+ }
4085
+ return cache;
4086
+ },
4087
+ get: function( owner, key ) {
4088
+ return key === undefined ?
4089
+ this.cache( owner ) :
4090
+
4091
+ // Always use camelCase key (gh-2257)
4092
+ owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];
4093
+ },
4094
+ access: function( owner, key, value ) {
4095
+
4096
+ // In cases where either:
4097
+ //
4098
+ // 1. No key was specified
4099
+ // 2. A string key was specified, but no value provided
4100
+ //
4101
+ // Take the "read" path and allow the get method to determine
4102
+ // which value to return, respectively either:
4103
+ //
4104
+ // 1. The entire cache object
4105
+ // 2. The data stored at the key
4106
+ //
4107
+ if ( key === undefined ||
4108
+ ( ( key && typeof key === "string" ) && value === undefined ) ) {
4109
+
4110
+ return this.get( owner, key );
4111
+ }
4112
+
4113
+ // When the key is not a string, or both a key and value
4114
+ // are specified, set or extend (existing objects) with either:
4115
+ //
4116
+ // 1. An object of properties
4117
+ // 2. A key and value
4118
+ //
4119
+ this.set( owner, key, value );
4120
+
4121
+ // Since the "set" path can have two possible entry points
4122
+ // return the expected data based on which path was taken[*]
4123
+ return value !== undefined ? value : key;
4124
+ },
4125
+ remove: function( owner, key ) {
4126
+ var i,
4127
+ cache = owner[ this.expando ];
4128
+
4129
+ if ( cache === undefined ) {
4130
+ return;
4131
+ }
4132
+
4133
+ if ( key !== undefined ) {
4134
+
4135
+ // Support array or space separated string of keys
4136
+ if ( Array.isArray( key ) ) {
4137
+
4138
+ // If key is an array of keys...
4139
+ // We always set camelCase keys, so remove that.
4140
+ key = key.map( camelCase );
4141
+ } else {
4142
+ key = camelCase( key );
4143
+
4144
+ // If a key with the spaces exists, use it.
4145
+ // Otherwise, create an array by matching non-whitespace
4146
+ key = key in cache ?
4147
+ [ key ] :
4148
+ ( key.match( rnothtmlwhite ) || [] );
4149
+ }
4150
+
4151
+ i = key.length;
4152
+
4153
+ while ( i-- ) {
4154
+ delete cache[ key[ i ] ];
4155
+ }
4156
+ }
4157
+
4158
+ // Remove the expando if there's no more data
4159
+ if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
4160
+
4161
+ // Support: Chrome <=35 - 45
4162
+ // Webkit & Blink performance suffers when deleting properties
4163
+ // from DOM nodes, so set to undefined instead
4164
+ // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
4165
+ if ( owner.nodeType ) {
4166
+ owner[ this.expando ] = undefined;
4167
+ } else {
4168
+ delete owner[ this.expando ];
4169
+ }
4170
+ }
4171
+ },
4172
+ hasData: function( owner ) {
4173
+ var cache = owner[ this.expando ];
4174
+ return cache !== undefined && !jQuery.isEmptyObject( cache );
4175
+ }
4176
+ };
4177
+ var dataPriv = new Data();
4178
+
4179
+ var dataUser = new Data();
4180
+
4181
+
4182
+
4183
+ // Implementation Summary
4184
+ //
4185
+ // 1. Enforce API surface and semantic compatibility with 1.9.x branch
4186
+ // 2. Improve the module's maintainability by reducing the storage
4187
+ // paths to a single mechanism.
4188
+ // 3. Use the same single mechanism to support "private" and "user" data.
4189
+ // 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
4190
+ // 5. Avoid exposing implementation details on user objects (eg. expando properties)
4191
+ // 6. Provide a clear path for implementation upgrade to WeakMap in 2014
4192
+
4193
+ var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
4194
+ rmultiDash = /[A-Z]/g;
4195
+
4196
+ function getData( data ) {
4197
+ if ( data === "true" ) {
4198
+ return true;
4199
+ }
4200
+
4201
+ if ( data === "false" ) {
4202
+ return false;
4203
+ }
4204
+
4205
+ if ( data === "null" ) {
4206
+ return null;
4207
+ }
4208
+
4209
+ // Only convert to a number if it doesn't change the string
4210
+ if ( data === +data + "" ) {
4211
+ return +data;
4212
+ }
4213
+
4214
+ if ( rbrace.test( data ) ) {
4215
+ return JSON.parse( data );
4216
+ }
4217
+
4218
+ return data;
4219
+ }
4220
+
4221
+ function dataAttr( elem, key, data ) {
4222
+ var name;
4223
+
4224
+ // If nothing was found internally, try to fetch any
4225
+ // data from the HTML5 data-* attribute
4226
+ if ( data === undefined && elem.nodeType === 1 ) {
4227
+ name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
4228
+ data = elem.getAttribute( name );
4229
+
4230
+ if ( typeof data === "string" ) {
4231
+ try {
4232
+ data = getData( data );
4233
+ } catch ( e ) {}
4234
+
4235
+ // Make sure we set the data so it isn't changed later
4236
+ dataUser.set( elem, key, data );
4237
+ } else {
4238
+ data = undefined;
4239
+ }
4240
+ }
4241
+ return data;
4242
+ }
4243
+
4244
+ jQuery.extend( {
4245
+ hasData: function( elem ) {
4246
+ return dataUser.hasData( elem ) || dataPriv.hasData( elem );
4247
+ },
4248
+
4249
+ data: function( elem, name, data ) {
4250
+ return dataUser.access( elem, name, data );
4251
+ },
4252
+
4253
+ removeData: function( elem, name ) {
4254
+ dataUser.remove( elem, name );
4255
+ },
4256
+
4257
+ // TODO: Now that all calls to _data and _removeData have been replaced
4258
+ // with direct calls to dataPriv methods, these can be deprecated.
4259
+ _data: function( elem, name, data ) {
4260
+ return dataPriv.access( elem, name, data );
4261
+ },
4262
+
4263
+ _removeData: function( elem, name ) {
4264
+ dataPriv.remove( elem, name );
4265
+ }
4266
+ } );
4267
+
4268
+ jQuery.fn.extend( {
4269
+ data: function( key, value ) {
4270
+ var i, name, data,
4271
+ elem = this[ 0 ],
4272
+ attrs = elem && elem.attributes;
4273
+
4274
+ // Gets all values
4275
+ if ( key === undefined ) {
4276
+ if ( this.length ) {
4277
+ data = dataUser.get( elem );
4278
+
4279
+ if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
4280
+ i = attrs.length;
4281
+ while ( i-- ) {
4282
+
4283
+ // Support: IE 11 only
4284
+ // The attrs elements can be null (#14894)
4285
+ if ( attrs[ i ] ) {
4286
+ name = attrs[ i ].name;
4287
+ if ( name.indexOf( "data-" ) === 0 ) {
4288
+ name = camelCase( name.slice( 5 ) );
4289
+ dataAttr( elem, name, data[ name ] );
4290
+ }
4291
+ }
4292
+ }
4293
+ dataPriv.set( elem, "hasDataAttrs", true );
4294
+ }
4295
+ }
4296
+
4297
+ return data;
4298
+ }
4299
+
4300
+ // Sets multiple values
4301
+ if ( typeof key === "object" ) {
4302
+ return this.each( function() {
4303
+ dataUser.set( this, key );
4304
+ } );
4305
+ }
4306
+
4307
+ return access( this, function( value ) {
4308
+ var data;
4309
+
4310
+ // The calling jQuery object (element matches) is not empty
4311
+ // (and therefore has an element appears at this[ 0 ]) and the
4312
+ // `value` parameter was not undefined. An empty jQuery object
4313
+ // will result in `undefined` for elem = this[ 0 ] which will
4314
+ // throw an exception if an attempt to read a data cache is made.
4315
+ if ( elem && value === undefined ) {
4316
+
4317
+ // Attempt to get data from the cache
4318
+ // The key will always be camelCased in Data
4319
+ data = dataUser.get( elem, key );
4320
+ if ( data !== undefined ) {
4321
+ return data;
4322
+ }
4323
+
4324
+ // Attempt to "discover" the data in
4325
+ // HTML5 custom data-* attrs
4326
+ data = dataAttr( elem, key );
4327
+ if ( data !== undefined ) {
4328
+ return data;
4329
+ }
4330
+
4331
+ // We tried really hard, but the data doesn't exist.
4332
+ return;
4333
+ }
4334
+
4335
+ // Set the data...
4336
+ this.each( function() {
4337
+
4338
+ // We always store the camelCased key
4339
+ dataUser.set( this, key, value );
4340
+ } );
4341
+ }, null, value, arguments.length > 1, null, true );
4342
+ },
4343
+
4344
+ removeData: function( key ) {
4345
+ return this.each( function() {
4346
+ dataUser.remove( this, key );
4347
+ } );
4348
+ }
4349
+ } );
4350
+
4351
+
4352
+ jQuery.extend( {
4353
+ queue: function( elem, type, data ) {
4354
+ var queue;
4355
+
4356
+ if ( elem ) {
4357
+ type = ( type || "fx" ) + "queue";
4358
+ queue = dataPriv.get( elem, type );
4359
+
4360
+ // Speed up dequeue by getting out quickly if this is just a lookup
4361
+ if ( data ) {
4362
+ if ( !queue || Array.isArray( data ) ) {
4363
+ queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
4364
+ } else {
4365
+ queue.push( data );
4366
+ }
4367
+ }
4368
+ return queue || [];
4369
+ }
4370
+ },
4371
+
4372
+ dequeue: function( elem, type ) {
4373
+ type = type || "fx";
4374
+
4375
+ var queue = jQuery.queue( elem, type ),
4376
+ startLength = queue.length,
4377
+ fn = queue.shift(),
4378
+ hooks = jQuery._queueHooks( elem, type ),
4379
+ next = function() {
4380
+ jQuery.dequeue( elem, type );
4381
+ };
4382
+
4383
+ // If the fx queue is dequeued, always remove the progress sentinel
4384
+ if ( fn === "inprogress" ) {
4385
+ fn = queue.shift();
4386
+ startLength--;
4387
+ }
4388
+
4389
+ if ( fn ) {
4390
+
4391
+ // Add a progress sentinel to prevent the fx queue from being
4392
+ // automatically dequeued
4393
+ if ( type === "fx" ) {
4394
+ queue.unshift( "inprogress" );
4395
+ }
4396
+
4397
+ // Clear up the last queue stop function
4398
+ delete hooks.stop;
4399
+ fn.call( elem, next, hooks );
4400
+ }
4401
+
4402
+ if ( !startLength && hooks ) {
4403
+ hooks.empty.fire();
4404
+ }
4405
+ },
4406
+
4407
+ // Not public - generate a queueHooks object, or return the current one
4408
+ _queueHooks: function( elem, type ) {
4409
+ var key = type + "queueHooks";
4410
+ return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
4411
+ empty: jQuery.Callbacks( "once memory" ).add( function() {
4412
+ dataPriv.remove( elem, [ type + "queue", key ] );
4413
+ } )
4414
+ } );
4415
+ }
4416
+ } );
4417
+
4418
+ jQuery.fn.extend( {
4419
+ queue: function( type, data ) {
4420
+ var setter = 2;
4421
+
4422
+ if ( typeof type !== "string" ) {
4423
+ data = type;
4424
+ type = "fx";
4425
+ setter--;
4426
+ }
4427
+
4428
+ if ( arguments.length < setter ) {
4429
+ return jQuery.queue( this[ 0 ], type );
4430
+ }
4431
+
4432
+ return data === undefined ?
4433
+ this :
4434
+ this.each( function() {
4435
+ var queue = jQuery.queue( this, type, data );
4436
+
4437
+ // Ensure a hooks for this queue
4438
+ jQuery._queueHooks( this, type );
4439
+
4440
+ if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
4441
+ jQuery.dequeue( this, type );
4442
+ }
4443
+ } );
4444
+ },
4445
+ dequeue: function( type ) {
4446
+ return this.each( function() {
4447
+ jQuery.dequeue( this, type );
4448
+ } );
4449
+ },
4450
+ clearQueue: function( type ) {
4451
+ return this.queue( type || "fx", [] );
4452
+ },
4453
+
4454
+ // Get a promise resolved when queues of a certain type
4455
+ // are emptied (fx is the type by default)
4456
+ promise: function( type, obj ) {
4457
+ var tmp,
4458
+ count = 1,
4459
+ defer = jQuery.Deferred(),
4460
+ elements = this,
4461
+ i = this.length,
4462
+ resolve = function() {
4463
+ if ( !( --count ) ) {
4464
+ defer.resolveWith( elements, [ elements ] );
4465
+ }
4466
+ };
4467
+
4468
+ if ( typeof type !== "string" ) {
4469
+ obj = type;
4470
+ type = undefined;
4471
+ }
4472
+ type = type || "fx";
4473
+
4474
+ while ( i-- ) {
4475
+ tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
4476
+ if ( tmp && tmp.empty ) {
4477
+ count++;
4478
+ tmp.empty.add( resolve );
4479
+ }
4480
+ }
4481
+ resolve();
4482
+ return defer.promise( obj );
4483
+ }
4484
+ } );
4485
+ var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
4486
+
4487
+ var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
4488
+
4489
+
4490
+ var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
4491
+
4492
+ var documentElement = document.documentElement;
4493
+
4494
+
4495
+
4496
+ var isAttached = function( elem ) {
4497
+ return jQuery.contains( elem.ownerDocument, elem );
4498
+ },
4499
+ composed = { composed: true };
4500
+
4501
+ // Check attachment across shadow DOM boundaries when possible (gh-3504)
4502
+ if ( documentElement.attachShadow ) {
4503
+ isAttached = function( elem ) {
4504
+ return jQuery.contains( elem.ownerDocument, elem ) ||
4505
+ elem.getRootNode( composed ) === elem.ownerDocument;
4506
+ };
4507
+ }
4508
+ var isHiddenWithinTree = function( elem, el ) {
4509
+
4510
+ // isHiddenWithinTree might be called from jQuery#filter function;
4511
+ // in that case, element will be second argument
4512
+ elem = el || elem;
4513
+
4514
+ // Inline style trumps all
4515
+ return elem.style.display === "none" ||
4516
+ elem.style.display === "" &&
4517
+
4518
+ // Otherwise, check computed style
4519
+ // Support: Firefox <=43 - 45
4520
+ // Disconnected elements can have computed display: none, so first confirm that elem is
4521
+ // in the document.
4522
+ isAttached( elem ) &&
4523
+
4524
+ jQuery.css( elem, "display" ) === "none";
4525
+ };
4526
+
4527
+ var swap = function( elem, options, callback, args ) {
4528
+ var ret, name,
4529
+ old = {};
4530
+
4531
+ // Remember the old values, and insert the new ones
4532
+ for ( name in options ) {
4533
+ old[ name ] = elem.style[ name ];
4534
+ elem.style[ name ] = options[ name ];
4535
+ }
4536
+
4537
+ ret = callback.apply( elem, args || [] );
4538
+
4539
+ // Revert the old values
4540
+ for ( name in options ) {
4541
+ elem.style[ name ] = old[ name ];
4542
+ }
4543
+
4544
+ return ret;
4545
+ };
4546
+
4547
+
4548
+
4549
+
4550
+ function adjustCSS( elem, prop, valueParts, tween ) {
4551
+ var adjusted, scale,
4552
+ maxIterations = 20,
4553
+ currentValue = tween ?
4554
+ function() {
4555
+ return tween.cur();
4556
+ } :
4557
+ function() {
4558
+ return jQuery.css( elem, prop, "" );
4559
+ },
4560
+ initial = currentValue(),
4561
+ unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
4562
+
4563
+ // Starting value computation is required for potential unit mismatches
4564
+ initialInUnit = elem.nodeType &&
4565
+ ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
4566
+ rcssNum.exec( jQuery.css( elem, prop ) );
4567
+
4568
+ if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
4569
+
4570
+ // Support: Firefox <=54
4571
+ // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)
4572
+ initial = initial / 2;
4573
+
4574
+ // Trust units reported by jQuery.css
4575
+ unit = unit || initialInUnit[ 3 ];
4576
+
4577
+ // Iteratively approximate from a nonzero starting point
4578
+ initialInUnit = +initial || 1;
4579
+
4580
+ while ( maxIterations-- ) {
4581
+
4582
+ // Evaluate and update our best guess (doubling guesses that zero out).
4583
+ // Finish if the scale equals or crosses 1 (making the old*new product non-positive).
4584
+ jQuery.style( elem, prop, initialInUnit + unit );
4585
+ if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {
4586
+ maxIterations = 0;
4587
+ }
4588
+ initialInUnit = initialInUnit / scale;
4589
+
4590
+ }
4591
+
4592
+ initialInUnit = initialInUnit * 2;
4593
+ jQuery.style( elem, prop, initialInUnit + unit );
4594
+
4595
+ // Make sure we update the tween properties later on
4596
+ valueParts = valueParts || [];
4597
+ }
4598
+
4599
+ if ( valueParts ) {
4600
+ initialInUnit = +initialInUnit || +initial || 0;
4601
+
4602
+ // Apply relative offset (+=/-=) if specified
4603
+ adjusted = valueParts[ 1 ] ?
4604
+ initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
4605
+ +valueParts[ 2 ];
4606
+ if ( tween ) {
4607
+ tween.unit = unit;
4608
+ tween.start = initialInUnit;
4609
+ tween.end = adjusted;
4610
+ }
4611
+ }
4612
+ return adjusted;
4613
+ }
4614
+
4615
+
4616
+ var defaultDisplayMap = {};
4617
+
4618
+ function getDefaultDisplay( elem ) {
4619
+ var temp,
4620
+ doc = elem.ownerDocument,
4621
+ nodeName = elem.nodeName,
4622
+ display = defaultDisplayMap[ nodeName ];
4623
+
4624
+ if ( display ) {
4625
+ return display;
4626
+ }
4627
+
4628
+ temp = doc.body.appendChild( doc.createElement( nodeName ) );
4629
+ display = jQuery.css( temp, "display" );
4630
+
4631
+ temp.parentNode.removeChild( temp );
4632
+
4633
+ if ( display === "none" ) {
4634
+ display = "block";
4635
+ }
4636
+ defaultDisplayMap[ nodeName ] = display;
4637
+
4638
+ return display;
4639
+ }
4640
+
4641
+ function showHide( elements, show ) {
4642
+ var display, elem,
4643
+ values = [],
4644
+ index = 0,
4645
+ length = elements.length;
4646
+
4647
+ // Determine new display value for elements that need to change
4648
+ for ( ; index < length; index++ ) {
4649
+ elem = elements[ index ];
4650
+ if ( !elem.style ) {
4651
+ continue;
4652
+ }
4653
+
4654
+ display = elem.style.display;
4655
+ if ( show ) {
4656
+
4657
+ // Since we force visibility upon cascade-hidden elements, an immediate (and slow)
4658
+ // check is required in this first loop unless we have a nonempty display value (either
4659
+ // inline or about-to-be-restored)
4660
+ if ( display === "none" ) {
4661
+ values[ index ] = dataPriv.get( elem, "display" ) || null;
4662
+ if ( !values[ index ] ) {
4663
+ elem.style.display = "";
4664
+ }
4665
+ }
4666
+ if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
4667
+ values[ index ] = getDefaultDisplay( elem );
4668
+ }
4669
+ } else {
4670
+ if ( display !== "none" ) {
4671
+ values[ index ] = "none";
4672
+
4673
+ // Remember what we're overwriting
4674
+ dataPriv.set( elem, "display", display );
4675
+ }
4676
+ }
4677
+ }
4678
+
4679
+ // Set the display of the elements in a second loop to avoid constant reflow
4680
+ for ( index = 0; index < length; index++ ) {
4681
+ if ( values[ index ] != null ) {
4682
+ elements[ index ].style.display = values[ index ];
4683
+ }
4684
+ }
4685
+
4686
+ return elements;
4687
+ }
4688
+
4689
+ jQuery.fn.extend( {
4690
+ show: function() {
4691
+ return showHide( this, true );
4692
+ },
4693
+ hide: function() {
4694
+ return showHide( this );
4695
+ },
4696
+ toggle: function( state ) {
4697
+ if ( typeof state === "boolean" ) {
4698
+ return state ? this.show() : this.hide();
4699
+ }
4700
+
4701
+ return this.each( function() {
4702
+ if ( isHiddenWithinTree( this ) ) {
4703
+ jQuery( this ).show();
4704
+ } else {
4705
+ jQuery( this ).hide();
4706
+ }
4707
+ } );
4708
+ }
4709
+ } );
4710
+ var rcheckableType = ( /^(?:checkbox|radio)$/i );
4711
+
4712
+ var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i );
4713
+
4714
+ var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
4715
+
4716
+
4717
+
4718
+ // We have to close these tags to support XHTML (#13200)
4719
+ var wrapMap = {
4720
+
4721
+ // Support: IE <=9 only
4722
+ option: [ 1, "<select multiple='multiple'>", "</select>" ],
4723
+
4724
+ // XHTML parsers do not magically insert elements in the
4725
+ // same way that tag soup parsers do. So we cannot shorten
4726
+ // this by omitting <tbody> or other required elements.
4727
+ thead: [ 1, "<table>", "</table>" ],
4728
+ col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
4729
+ tr: [ 2, "<table><tbody>", "</tbody></table>" ],
4730
+ td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
4731
+
4732
+ _default: [ 0, "", "" ]
4733
+ };
4734
+
4735
+ // Support: IE <=9 only
4736
+ wrapMap.optgroup = wrapMap.option;
4737
+
4738
+ wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
4739
+ wrapMap.th = wrapMap.td;
4740
+
4741
+
4742
+ function getAll( context, tag ) {
4743
+
4744
+ // Support: IE <=9 - 11 only
4745
+ // Use typeof to avoid zero-argument method invocation on host objects (#15151)
4746
+ var ret;
4747
+
4748
+ if ( typeof context.getElementsByTagName !== "undefined" ) {
4749
+ ret = context.getElementsByTagName( tag || "*" );
4750
+
4751
+ } else if ( typeof context.querySelectorAll !== "undefined" ) {
4752
+ ret = context.querySelectorAll( tag || "*" );
4753
+
4754
+ } else {
4755
+ ret = [];
4756
+ }
4757
+
4758
+ if ( tag === undefined || tag && nodeName( context, tag ) ) {
4759
+ return jQuery.merge( [ context ], ret );
4760
+ }
4761
+
4762
+ return ret;
4763
+ }
4764
+
4765
+
4766
+ // Mark scripts as having already been evaluated
4767
+ function setGlobalEval( elems, refElements ) {
4768
+ var i = 0,
4769
+ l = elems.length;
4770
+
4771
+ for ( ; i < l; i++ ) {
4772
+ dataPriv.set(
4773
+ elems[ i ],
4774
+ "globalEval",
4775
+ !refElements || dataPriv.get( refElements[ i ], "globalEval" )
4776
+ );
4777
+ }
4778
+ }
4779
+
4780
+
4781
+ var rhtml = /<|&#?\w+;/;
4782
+
4783
+ function buildFragment( elems, context, scripts, selection, ignored ) {
4784
+ var elem, tmp, tag, wrap, attached, j,
4785
+ fragment = context.createDocumentFragment(),
4786
+ nodes = [],
4787
+ i = 0,
4788
+ l = elems.length;
4789
+
4790
+ for ( ; i < l; i++ ) {
4791
+ elem = elems[ i ];
4792
+
4793
+ if ( elem || elem === 0 ) {
4794
+
4795
+ // Add nodes directly
4796
+ if ( toType( elem ) === "object" ) {
4797
+
4798
+ // Support: Android <=4.0 only, PhantomJS 1 only
4799
+ // push.apply(_, arraylike) throws on ancient WebKit
4800
+ jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
4801
+
4802
+ // Convert non-html into a text node
4803
+ } else if ( !rhtml.test( elem ) ) {
4804
+ nodes.push( context.createTextNode( elem ) );
4805
+
4806
+ // Convert html into DOM nodes
4807
+ } else {
4808
+ tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
4809
+
4810
+ // Deserialize a standard representation
4811
+ tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
4812
+ wrap = wrapMap[ tag ] || wrapMap._default;
4813
+ tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
4814
+
4815
+ // Descend through wrappers to the right content
4816
+ j = wrap[ 0 ];
4817
+ while ( j-- ) {
4818
+ tmp = tmp.lastChild;
4819
+ }
4820
+
4821
+ // Support: Android <=4.0 only, PhantomJS 1 only
4822
+ // push.apply(_, arraylike) throws on ancient WebKit
4823
+ jQuery.merge( nodes, tmp.childNodes );
4824
+
4825
+ // Remember the top-level container
4826
+ tmp = fragment.firstChild;
4827
+
4828
+ // Ensure the created nodes are orphaned (#12392)
4829
+ tmp.textContent = "";
4830
+ }
4831
+ }
4832
+ }
4833
+
4834
+ // Remove wrapper from fragment
4835
+ fragment.textContent = "";
4836
+
4837
+ i = 0;
4838
+ while ( ( elem = nodes[ i++ ] ) ) {
4839
+
4840
+ // Skip elements already in the context collection (trac-4087)
4841
+ if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
4842
+ if ( ignored ) {
4843
+ ignored.push( elem );
4844
+ }
4845
+ continue;
4846
+ }
4847
+
4848
+ attached = isAttached( elem );
4849
+
4850
+ // Append to fragment
4851
+ tmp = getAll( fragment.appendChild( elem ), "script" );
4852
+
4853
+ // Preserve script evaluation history
4854
+ if ( attached ) {
4855
+ setGlobalEval( tmp );
4856
+ }
4857
+
4858
+ // Capture executables
4859
+ if ( scripts ) {
4860
+ j = 0;
4861
+ while ( ( elem = tmp[ j++ ] ) ) {
4862
+ if ( rscriptType.test( elem.type || "" ) ) {
4863
+ scripts.push( elem );
4864
+ }
4865
+ }
4866
+ }
4867
+ }
4868
+
4869
+ return fragment;
4870
+ }
4871
+
4872
+
4873
+ ( function() {
4874
+ var fragment = document.createDocumentFragment(),
4875
+ div = fragment.appendChild( document.createElement( "div" ) ),
4876
+ input = document.createElement( "input" );
4877
+
4878
+ // Support: Android 4.0 - 4.3 only
4879
+ // Check state lost if the name is set (#11217)
4880
+ // Support: Windows Web Apps (WWA)
4881
+ // `name` and `type` must use .setAttribute for WWA (#14901)
4882
+ input.setAttribute( "type", "radio" );
4883
+ input.setAttribute( "checked", "checked" );
4884
+ input.setAttribute( "name", "t" );
4885
+
4886
+ div.appendChild( input );
4887
+
4888
+ // Support: Android <=4.1 only
4889
+ // Older WebKit doesn't clone checked state correctly in fragments
4890
+ support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
4891
+
4892
+ // Support: IE <=11 only
4893
+ // Make sure textarea (and checkbox) defaultValue is properly cloned
4894
+ div.innerHTML = "<textarea>x</textarea>";
4895
+ support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
4896
+ } )();
4897
+
4898
+
4899
+ var
4900
+ rkeyEvent = /^key/,
4901
+ rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
4902
+ rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
4903
+
4904
+ function returnTrue() {
4905
+ return true;
4906
+ }
4907
+
4908
+ function returnFalse() {
4909
+ return false;
4910
+ }
4911
+
4912
+ // Support: IE <=9 - 11+
4913
+ // focus() and blur() are asynchronous, except when they are no-op.
4914
+ // So expect focus to be synchronous when the element is already active,
4915
+ // and blur to be synchronous when the element is not already active.
4916
+ // (focus and blur are always synchronous in other supported browsers,
4917
+ // this just defines when we can count on it).
4918
+ function expectSync( elem, type ) {
4919
+ return ( elem === safeActiveElement() ) === ( type === "focus" );
4920
+ }
4921
+
4922
+ // Support: IE <=9 only
4923
+ // Accessing document.activeElement can throw unexpectedly
4924
+ // https://bugs.jquery.com/ticket/13393
4925
+ function safeActiveElement() {
4926
+ try {
4927
+ return document.activeElement;
4928
+ } catch ( err ) { }
4929
+ }
4930
+
4931
+ function on( elem, types, selector, data, fn, one ) {
4932
+ var origFn, type;
4933
+
4934
+ // Types can be a map of types/handlers
4935
+ if ( typeof types === "object" ) {
4936
+
4937
+ // ( types-Object, selector, data )
4938
+ if ( typeof selector !== "string" ) {
4939
+
4940
+ // ( types-Object, data )
4941
+ data = data || selector;
4942
+ selector = undefined;
4943
+ }
4944
+ for ( type in types ) {
4945
+ on( elem, type, selector, data, types[ type ], one );
4946
+ }
4947
+ return elem;
4948
+ }
4949
+
4950
+ if ( data == null && fn == null ) {
4951
+
4952
+ // ( types, fn )
4953
+ fn = selector;
4954
+ data = selector = undefined;
4955
+ } else if ( fn == null ) {
4956
+ if ( typeof selector === "string" ) {
4957
+
4958
+ // ( types, selector, fn )
4959
+ fn = data;
4960
+ data = undefined;
4961
+ } else {
4962
+
4963
+ // ( types, data, fn )
4964
+ fn = data;
4965
+ data = selector;
4966
+ selector = undefined;
4967
+ }
4968
+ }
4969
+ if ( fn === false ) {
4970
+ fn = returnFalse;
4971
+ } else if ( !fn ) {
4972
+ return elem;
4973
+ }
4974
+
4975
+ if ( one === 1 ) {
4976
+ origFn = fn;
4977
+ fn = function( event ) {
4978
+
4979
+ // Can use an empty set, since event contains the info
4980
+ jQuery().off( event );
4981
+ return origFn.apply( this, arguments );
4982
+ };
4983
+
4984
+ // Use same guid so caller can remove using origFn
4985
+ fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
4986
+ }
4987
+ return elem.each( function() {
4988
+ jQuery.event.add( this, types, fn, data, selector );
4989
+ } );
4990
+ }
4991
+
4992
+ /*
4993
+ * Helper functions for managing events -- not part of the public interface.
4994
+ * Props to Dean Edwards' addEvent library for many of the ideas.
4995
+ */
4996
+ jQuery.event = {
4997
+
4998
+ global: {},
4999
+
5000
+ add: function( elem, types, handler, data, selector ) {
5001
+
5002
+ var handleObjIn, eventHandle, tmp,
5003
+ events, t, handleObj,
5004
+ special, handlers, type, namespaces, origType,
5005
+ elemData = dataPriv.get( elem );
5006
+
5007
+ // Don't attach events to noData or text/comment nodes (but allow plain objects)
5008
+ if ( !elemData ) {
5009
+ return;
5010
+ }
5011
+
5012
+ // Caller can pass in an object of custom data in lieu of the handler
5013
+ if ( handler.handler ) {
5014
+ handleObjIn = handler;
5015
+ handler = handleObjIn.handler;
5016
+ selector = handleObjIn.selector;
5017
+ }
5018
+
5019
+ // Ensure that invalid selectors throw exceptions at attach time
5020
+ // Evaluate against documentElement in case elem is a non-element node (e.g., document)
5021
+ if ( selector ) {
5022
+ jQuery.find.matchesSelector( documentElement, selector );
5023
+ }
5024
+
5025
+ // Make sure that the handler has a unique ID, used to find/remove it later
5026
+ if ( !handler.guid ) {
5027
+ handler.guid = jQuery.guid++;
5028
+ }
5029
+
5030
+ // Init the element's event structure and main handler, if this is the first
5031
+ if ( !( events = elemData.events ) ) {
5032
+ events = elemData.events = {};
5033
+ }
5034
+ if ( !( eventHandle = elemData.handle ) ) {
5035
+ eventHandle = elemData.handle = function( e ) {
5036
+
5037
+ // Discard the second event of a jQuery.event.trigger() and
5038
+ // when an event is called after a page has unloaded
5039
+ return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
5040
+ jQuery.event.dispatch.apply( elem, arguments ) : undefined;
5041
+ };
5042
+ }
5043
+
5044
+ // Handle multiple events separated by a space
5045
+ types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
5046
+ t = types.length;
5047
+ while ( t-- ) {
5048
+ tmp = rtypenamespace.exec( types[ t ] ) || [];
5049
+ type = origType = tmp[ 1 ];
5050
+ namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
5051
+
5052
+ // There *must* be a type, no attaching namespace-only handlers
5053
+ if ( !type ) {
5054
+ continue;
5055
+ }
5056
+
5057
+ // If event changes its type, use the special event handlers for the changed type
5058
+ special = jQuery.event.special[ type ] || {};
5059
+
5060
+ // If selector defined, determine special event api type, otherwise given type
5061
+ type = ( selector ? special.delegateType : special.bindType ) || type;
5062
+
5063
+ // Update special based on newly reset type
5064
+ special = jQuery.event.special[ type ] || {};
5065
+
5066
+ // handleObj is passed to all event handlers
5067
+ handleObj = jQuery.extend( {
5068
+ type: type,
5069
+ origType: origType,
5070
+ data: data,
5071
+ handler: handler,
5072
+ guid: handler.guid,
5073
+ selector: selector,
5074
+ needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
5075
+ namespace: namespaces.join( "." )
5076
+ }, handleObjIn );
5077
+
5078
+ // Init the event handler queue if we're the first
5079
+ if ( !( handlers = events[ type ] ) ) {
5080
+ handlers = events[ type ] = [];
5081
+ handlers.delegateCount = 0;
5082
+
5083
+ // Only use addEventListener if the special events handler returns false
5084
+ if ( !special.setup ||
5085
+ special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
5086
+
5087
+ if ( elem.addEventListener ) {
5088
+ elem.addEventListener( type, eventHandle );
5089
+ }
5090
+ }
5091
+ }
5092
+
5093
+ if ( special.add ) {
5094
+ special.add.call( elem, handleObj );
5095
+
5096
+ if ( !handleObj.handler.guid ) {
5097
+ handleObj.handler.guid = handler.guid;
5098
+ }
5099
+ }
5100
+
5101
+ // Add to the element's handler list, delegates in front
5102
+ if ( selector ) {
5103
+ handlers.splice( handlers.delegateCount++, 0, handleObj );
5104
+ } else {
5105
+ handlers.push( handleObj );
5106
+ }
5107
+
5108
+ // Keep track of which events have ever been used, for event optimization
5109
+ jQuery.event.global[ type ] = true;
5110
+ }
5111
+
5112
+ },
5113
+
5114
+ // Detach an event or set of events from an element
5115
+ remove: function( elem, types, handler, selector, mappedTypes ) {
5116
+
5117
+ var j, origCount, tmp,
5118
+ events, t, handleObj,
5119
+ special, handlers, type, namespaces, origType,
5120
+ elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
5121
+
5122
+ if ( !elemData || !( events = elemData.events ) ) {
5123
+ return;
5124
+ }
5125
+
5126
+ // Once for each type.namespace in types; type may be omitted
5127
+ types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
5128
+ t = types.length;
5129
+ while ( t-- ) {
5130
+ tmp = rtypenamespace.exec( types[ t ] ) || [];
5131
+ type = origType = tmp[ 1 ];
5132
+ namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
5133
+
5134
+ // Unbind all events (on this namespace, if provided) for the element
5135
+ if ( !type ) {
5136
+ for ( type in events ) {
5137
+ jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
5138
+ }
5139
+ continue;
5140
+ }
5141
+
5142
+ special = jQuery.event.special[ type ] || {};
5143
+ type = ( selector ? special.delegateType : special.bindType ) || type;
5144
+ handlers = events[ type ] || [];
5145
+ tmp = tmp[ 2 ] &&
5146
+ new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
5147
+
5148
+ // Remove matching events
5149
+ origCount = j = handlers.length;
5150
+ while ( j-- ) {
5151
+ handleObj = handlers[ j ];
5152
+
5153
+ if ( ( mappedTypes || origType === handleObj.origType ) &&
5154
+ ( !handler || handler.guid === handleObj.guid ) &&
5155
+ ( !tmp || tmp.test( handleObj.namespace ) ) &&
5156
+ ( !selector || selector === handleObj.selector ||
5157
+ selector === "**" && handleObj.selector ) ) {
5158
+ handlers.splice( j, 1 );
5159
+
5160
+ if ( handleObj.selector ) {
5161
+ handlers.delegateCount--;
5162
+ }
5163
+ if ( special.remove ) {
5164
+ special.remove.call( elem, handleObj );
5165
+ }
5166
+ }
5167
+ }
5168
+
5169
+ // Remove generic event handler if we removed something and no more handlers exist
5170
+ // (avoids potential for endless recursion during removal of special event handlers)
5171
+ if ( origCount && !handlers.length ) {
5172
+ if ( !special.teardown ||
5173
+ special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
5174
+
5175
+ jQuery.removeEvent( elem, type, elemData.handle );
5176
+ }
5177
+
5178
+ delete events[ type ];
5179
+ }
5180
+ }
5181
+
5182
+ // Remove data and the expando if it's no longer used
5183
+ if ( jQuery.isEmptyObject( events ) ) {
5184
+ dataPriv.remove( elem, "handle events" );
5185
+ }
5186
+ },
5187
+
5188
+ dispatch: function( nativeEvent ) {
5189
+
5190
+ // Make a writable jQuery.Event from the native event object
5191
+ var event = jQuery.event.fix( nativeEvent );
5192
+
5193
+ var i, j, ret, matched, handleObj, handlerQueue,
5194
+ args = new Array( arguments.length ),
5195
+ handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
5196
+ special = jQuery.event.special[ event.type ] || {};
5197
+
5198
+ // Use the fix-ed jQuery.Event rather than the (read-only) native event
5199
+ args[ 0 ] = event;
5200
+
5201
+ for ( i = 1; i < arguments.length; i++ ) {
5202
+ args[ i ] = arguments[ i ];
5203
+ }
5204
+
5205
+ event.delegateTarget = this;
5206
+
5207
+ // Call the preDispatch hook for the mapped type, and let it bail if desired
5208
+ if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
5209
+ return;
5210
+ }
5211
+
5212
+ // Determine handlers
5213
+ handlerQueue = jQuery.event.handlers.call( this, event, handlers );
5214
+
5215
+ // Run delegates first; they may want to stop propagation beneath us
5216
+ i = 0;
5217
+ while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
5218
+ event.currentTarget = matched.elem;
5219
+
5220
+ j = 0;
5221
+ while ( ( handleObj = matched.handlers[ j++ ] ) &&
5222
+ !event.isImmediatePropagationStopped() ) {
5223
+
5224
+ // If the event is namespaced, then each handler is only invoked if it is
5225
+ // specially universal or its namespaces are a superset of the event's.
5226
+ if ( !event.rnamespace || handleObj.namespace === false ||
5227
+ event.rnamespace.test( handleObj.namespace ) ) {
5228
+
5229
+ event.handleObj = handleObj;
5230
+ event.data = handleObj.data;
5231
+
5232
+ ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
5233
+ handleObj.handler ).apply( matched.elem, args );
5234
+
5235
+ if ( ret !== undefined ) {
5236
+ if ( ( event.result = ret ) === false ) {
5237
+ event.preventDefault();
5238
+ event.stopPropagation();
5239
+ }
5240
+ }
5241
+ }
5242
+ }
5243
+ }
5244
+
5245
+ // Call the postDispatch hook for the mapped type
5246
+ if ( special.postDispatch ) {
5247
+ special.postDispatch.call( this, event );
5248
+ }
5249
+
5250
+ return event.result;
5251
+ },
5252
+
5253
+ handlers: function( event, handlers ) {
5254
+ var i, handleObj, sel, matchedHandlers, matchedSelectors,
5255
+ handlerQueue = [],
5256
+ delegateCount = handlers.delegateCount,
5257
+ cur = event.target;
5258
+
5259
+ // Find delegate handlers
5260
+ if ( delegateCount &&
5261
+
5262
+ // Support: IE <=9
5263
+ // Black-hole SVG <use> instance trees (trac-13180)
5264
+ cur.nodeType &&
5265
+
5266
+ // Support: Firefox <=42
5267
+ // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
5268
+ // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
5269
+ // Support: IE 11 only
5270
+ // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
5271
+ !( event.type === "click" && event.button >= 1 ) ) {
5272
+
5273
+ for ( ; cur !== this; cur = cur.parentNode || this ) {
5274
+
5275
+ // Don't check non-elements (#13208)
5276
+ // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
5277
+ if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
5278
+ matchedHandlers = [];
5279
+ matchedSelectors = {};
5280
+ for ( i = 0; i < delegateCount; i++ ) {
5281
+ handleObj = handlers[ i ];
5282
+
5283
+ // Don't conflict with Object.prototype properties (#13203)
5284
+ sel = handleObj.selector + " ";
5285
+
5286
+ if ( matchedSelectors[ sel ] === undefined ) {
5287
+ matchedSelectors[ sel ] = handleObj.needsContext ?
5288
+ jQuery( sel, this ).index( cur ) > -1 :
5289
+ jQuery.find( sel, this, null, [ cur ] ).length;
5290
+ }
5291
+ if ( matchedSelectors[ sel ] ) {
5292
+ matchedHandlers.push( handleObj );
5293
+ }
5294
+ }
5295
+ if ( matchedHandlers.length ) {
5296
+ handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
5297
+ }
5298
+ }
5299
+ }
5300
+ }
5301
+
5302
+ // Add the remaining (directly-bound) handlers
5303
+ cur = this;
5304
+ if ( delegateCount < handlers.length ) {
5305
+ handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
5306
+ }
5307
+
5308
+ return handlerQueue;
5309
+ },
5310
+
5311
+ addProp: function( name, hook ) {
5312
+ Object.defineProperty( jQuery.Event.prototype, name, {
5313
+ enumerable: true,
5314
+ configurable: true,
5315
+
5316
+ get: isFunction( hook ) ?
5317
+ function() {
5318
+ if ( this.originalEvent ) {
5319
+ return hook( this.originalEvent );
5320
+ }
5321
+ } :
5322
+ function() {
5323
+ if ( this.originalEvent ) {
5324
+ return this.originalEvent[ name ];
5325
+ }
5326
+ },
5327
+
5328
+ set: function( value ) {
5329
+ Object.defineProperty( this, name, {
5330
+ enumerable: true,
5331
+ configurable: true,
5332
+ writable: true,
5333
+ value: value
5334
+ } );
5335
+ }
5336
+ } );
5337
+ },
5338
+
5339
+ fix: function( originalEvent ) {
5340
+ return originalEvent[ jQuery.expando ] ?
5341
+ originalEvent :
5342
+ new jQuery.Event( originalEvent );
5343
+ },
5344
+
5345
+ special: {
5346
+ load: {
5347
+
5348
+ // Prevent triggered image.load events from bubbling to window.load
5349
+ noBubble: true
5350
+ },
5351
+ click: {
5352
+
5353
+ // Utilize native event to ensure correct state for checkable inputs
5354
+ setup: function( data ) {
5355
+
5356
+ // For mutual compressibility with _default, replace `this` access with a local var.
5357
+ // `|| data` is dead code meant only to preserve the variable through minification.
5358
+ var el = this || data;
5359
+
5360
+ // Claim the first handler
5361
+ if ( rcheckableType.test( el.type ) &&
5362
+ el.click && nodeName( el, "input" ) &&
5363
+ dataPriv.get( el, "click" ) === undefined ) {
5364
+
5365
+ // dataPriv.set( el, "click", ... )
5366
+ leverageNative( el, "click", returnTrue );
5367
+ }
5368
+
5369
+ // Return false to allow normal processing in the caller
5370
+ return false;
5371
+ },
5372
+ trigger: function( data ) {
5373
+
5374
+ // For mutual compressibility with _default, replace `this` access with a local var.
5375
+ // `|| data` is dead code meant only to preserve the variable through minification.
5376
+ var el = this || data;
5377
+
5378
+ // Force setup before triggering a click
5379
+ if ( rcheckableType.test( el.type ) &&
5380
+ el.click && nodeName( el, "input" ) &&
5381
+ dataPriv.get( el, "click" ) === undefined ) {
5382
+
5383
+ leverageNative( el, "click" );
5384
+ }
5385
+
5386
+ // Return non-false to allow normal event-path propagation
5387
+ return true;
5388
+ },
5389
+
5390
+ // For cross-browser consistency, suppress native .click() on links
5391
+ // Also prevent it if we're currently inside a leveraged native-event stack
5392
+ _default: function( event ) {
5393
+ var target = event.target;
5394
+ return rcheckableType.test( target.type ) &&
5395
+ target.click && nodeName( target, "input" ) &&
5396
+ dataPriv.get( target, "click" ) ||
5397
+ nodeName( target, "a" );
5398
+ }
5399
+ },
5400
+
5401
+ beforeunload: {
5402
+ postDispatch: function( event ) {
5403
+
5404
+ // Support: Firefox 20+
5405
+ // Firefox doesn't alert if the returnValue field is not set.
5406
+ if ( event.result !== undefined && event.originalEvent ) {
5407
+ event.originalEvent.returnValue = event.result;
5408
+ }
5409
+ }
5410
+ }
5411
+ }
5412
+ };
5413
+
5414
+ // Ensure the presence of an event listener that handles manually-triggered
5415
+ // synthetic events by interrupting progress until reinvoked in response to
5416
+ // *native* events that it fires directly, ensuring that state changes have
5417
+ // already occurred before other listeners are invoked.
5418
+ function leverageNative( el, type, expectSync ) {
5419
+
5420
+ // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add
5421
+ if ( !expectSync ) {
5422
+ jQuery.event.add( el, type, returnTrue );
5423
+ return;
5424
+ }
5425
+
5426
+ // Register the controller as a special universal handler for all event namespaces
5427
+ dataPriv.set( el, type, false );
5428
+ jQuery.event.add( el, type, {
5429
+ namespace: false,
5430
+ handler: function( event ) {
5431
+ var notAsync, result,
5432
+ saved = dataPriv.get( this, type );
5433
+
5434
+ if ( ( event.isTrigger & 1 ) && this[ type ] ) {
5435
+
5436
+ // Interrupt processing of the outer synthetic .trigger()ed event
5437
+ if ( !saved ) {
5438
+
5439
+ // Store arguments for use when handling the inner native event
5440
+ saved = slice.call( arguments );
5441
+ dataPriv.set( this, type, saved );
5442
+
5443
+ // Trigger the native event and capture its result
5444
+ // Support: IE <=9 - 11+
5445
+ // focus() and blur() are asynchronous
5446
+ notAsync = expectSync( this, type );
5447
+ this[ type ]();
5448
+ result = dataPriv.get( this, type );
5449
+ if ( saved !== result || notAsync ) {
5450
+ dataPriv.set( this, type, false );
5451
+ } else {
5452
+ result = undefined;
5453
+ }
5454
+ if ( saved !== result ) {
5455
+
5456
+ // Cancel the outer synthetic event
5457
+ event.stopImmediatePropagation();
5458
+ event.preventDefault();
5459
+ return result;
5460
+ }
5461
+
5462
+ // If this is an inner synthetic event for an event with a bubbling surrogate
5463
+ // (focus or blur), assume that the surrogate already propagated from triggering the
5464
+ // native event and prevent that from happening again here.
5465
+ // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the
5466
+ // bubbling surrogate propagates *after* the non-bubbling base), but that seems
5467
+ // less bad than duplication.
5468
+ } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {
5469
+ event.stopPropagation();
5470
+ }
5471
+
5472
+ // If this is a native event triggered above, everything is now in order
5473
+ // Fire an inner synthetic event with the original arguments
5474
+ } else if ( saved ) {
5475
+
5476
+ // ...and capture the result
5477
+ dataPriv.set( this, type, jQuery.event.trigger(
5478
+
5479
+ // Support: IE <=9 - 11+
5480
+ // Extend with the prototype to reset the above stopImmediatePropagation()
5481
+ jQuery.extend( saved.shift(), jQuery.Event.prototype ),
5482
+ saved,
5483
+ this
5484
+ ) );
5485
+
5486
+ // Abort handling of the native event
5487
+ event.stopImmediatePropagation();
5488
+ }
5489
+ }
5490
+ } );
5491
+ }
5492
+
5493
+ jQuery.removeEvent = function( elem, type, handle ) {
5494
+
5495
+ // This "if" is needed for plain objects
5496
+ if ( elem.removeEventListener ) {
5497
+ elem.removeEventListener( type, handle );
5498
+ }
5499
+ };
5500
+
5501
+ jQuery.Event = function( src, props ) {
5502
+
5503
+ // Allow instantiation without the 'new' keyword
5504
+ if ( !( this instanceof jQuery.Event ) ) {
5505
+ return new jQuery.Event( src, props );
5506
+ }
5507
+
5508
+ // Event object
5509
+ if ( src && src.type ) {
5510
+ this.originalEvent = src;
5511
+ this.type = src.type;
5512
+
5513
+ // Events bubbling up the document may have been marked as prevented
5514
+ // by a handler lower down the tree; reflect the correct value.
5515
+ this.isDefaultPrevented = src.defaultPrevented ||
5516
+ src.defaultPrevented === undefined &&
5517
+
5518
+ // Support: Android <=2.3 only
5519
+ src.returnValue === false ?
5520
+ returnTrue :
5521
+ returnFalse;
5522
+
5523
+ // Create target properties
5524
+ // Support: Safari <=6 - 7 only
5525
+ // Target should not be a text node (#504, #13143)
5526
+ this.target = ( src.target && src.target.nodeType === 3 ) ?
5527
+ src.target.parentNode :
5528
+ src.target;
5529
+
5530
+ this.currentTarget = src.currentTarget;
5531
+ this.relatedTarget = src.relatedTarget;
5532
+
5533
+ // Event type
5534
+ } else {
5535
+ this.type = src;
5536
+ }
5537
+
5538
+ // Put explicitly provided properties onto the event object
5539
+ if ( props ) {
5540
+ jQuery.extend( this, props );
5541
+ }
5542
+
5543
+ // Create a timestamp if incoming event doesn't have one
5544
+ this.timeStamp = src && src.timeStamp || Date.now();
5545
+
5546
+ // Mark it as fixed
5547
+ this[ jQuery.expando ] = true;
5548
+ };
5549
+
5550
+ // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
5551
+ // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
5552
+ jQuery.Event.prototype = {
5553
+ constructor: jQuery.Event,
5554
+ isDefaultPrevented: returnFalse,
5555
+ isPropagationStopped: returnFalse,
5556
+ isImmediatePropagationStopped: returnFalse,
5557
+ isSimulated: false,
5558
+
5559
+ preventDefault: function() {
5560
+ var e = this.originalEvent;
5561
+
5562
+ this.isDefaultPrevented = returnTrue;
5563
+
5564
+ if ( e && !this.isSimulated ) {
5565
+ e.preventDefault();
5566
+ }
5567
+ },
5568
+ stopPropagation: function() {
5569
+ var e = this.originalEvent;
5570
+
5571
+ this.isPropagationStopped = returnTrue;
5572
+
5573
+ if ( e && !this.isSimulated ) {
5574
+ e.stopPropagation();
5575
+ }
5576
+ },
5577
+ stopImmediatePropagation: function() {
5578
+ var e = this.originalEvent;
5579
+
5580
+ this.isImmediatePropagationStopped = returnTrue;
5581
+
5582
+ if ( e && !this.isSimulated ) {
5583
+ e.stopImmediatePropagation();
5584
+ }
5585
+
5586
+ this.stopPropagation();
5587
+ }
5588
+ };
5589
+
5590
+ // Includes all common event props including KeyEvent and MouseEvent specific props
5591
+ jQuery.each( {
5592
+ altKey: true,
5593
+ bubbles: true,
5594
+ cancelable: true,
5595
+ changedTouches: true,
5596
+ ctrlKey: true,
5597
+ detail: true,
5598
+ eventPhase: true,
5599
+ metaKey: true,
5600
+ pageX: true,
5601
+ pageY: true,
5602
+ shiftKey: true,
5603
+ view: true,
5604
+ "char": true,
5605
+ code: true,
5606
+ charCode: true,
5607
+ key: true,
5608
+ keyCode: true,
5609
+ button: true,
5610
+ buttons: true,
5611
+ clientX: true,
5612
+ clientY: true,
5613
+ offsetX: true,
5614
+ offsetY: true,
5615
+ pointerId: true,
5616
+ pointerType: true,
5617
+ screenX: true,
5618
+ screenY: true,
5619
+ targetTouches: true,
5620
+ toElement: true,
5621
+ touches: true,
5622
+
5623
+ which: function( event ) {
5624
+ var button = event.button;
5625
+
5626
+ // Add which for key events
5627
+ if ( event.which == null && rkeyEvent.test( event.type ) ) {
5628
+ return event.charCode != null ? event.charCode : event.keyCode;
5629
+ }
5630
+
5631
+ // Add which for click: 1 === left; 2 === middle; 3 === right
5632
+ if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
5633
+ if ( button & 1 ) {
5634
+ return 1;
5635
+ }
5636
+
5637
+ if ( button & 2 ) {
5638
+ return 3;
5639
+ }
5640
+
5641
+ if ( button & 4 ) {
5642
+ return 2;
5643
+ }
5644
+
5645
+ return 0;
5646
+ }
5647
+
5648
+ return event.which;
5649
+ }
5650
+ }, jQuery.event.addProp );
5651
+
5652
+ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {
5653
+ jQuery.event.special[ type ] = {
5654
+
5655
+ // Utilize native event if possible so blur/focus sequence is correct
5656
+ setup: function() {
5657
+
5658
+ // Claim the first handler
5659
+ // dataPriv.set( this, "focus", ... )
5660
+ // dataPriv.set( this, "blur", ... )
5661
+ leverageNative( this, type, expectSync );
5662
+
5663
+ // Return false to allow normal processing in the caller
5664
+ return false;
5665
+ },
5666
+ trigger: function() {
5667
+
5668
+ // Force setup before trigger
5669
+ leverageNative( this, type );
5670
+
5671
+ // Return non-false to allow normal event-path propagation
5672
+ return true;
5673
+ },
5674
+
5675
+ delegateType: delegateType
5676
+ };
5677
+ } );
5678
+
5679
+ // Create mouseenter/leave events using mouseover/out and event-time checks
5680
+ // so that event delegation works in jQuery.
5681
+ // Do the same for pointerenter/pointerleave and pointerover/pointerout
5682
+ //
5683
+ // Support: Safari 7 only
5684
+ // Safari sends mouseenter too often; see:
5685
+ // https://bugs.chromium.org/p/chromium/issues/detail?id=470258
5686
+ // for the description of the bug (it existed in older Chrome versions as well).
5687
+ jQuery.each( {
5688
+ mouseenter: "mouseover",
5689
+ mouseleave: "mouseout",
5690
+ pointerenter: "pointerover",
5691
+ pointerleave: "pointerout"
5692
+ }, function( orig, fix ) {
5693
+ jQuery.event.special[ orig ] = {
5694
+ delegateType: fix,
5695
+ bindType: fix,
5696
+
5697
+ handle: function( event ) {
5698
+ var ret,
5699
+ target = this,
5700
+ related = event.relatedTarget,
5701
+ handleObj = event.handleObj;
5702
+
5703
+ // For mouseenter/leave call the handler if related is outside the target.
5704
+ // NB: No relatedTarget if the mouse left/entered the browser window
5705
+ if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
5706
+ event.type = handleObj.origType;
5707
+ ret = handleObj.handler.apply( this, arguments );
5708
+ event.type = fix;
5709
+ }
5710
+ return ret;
5711
+ }
5712
+ };
5713
+ } );
5714
+
5715
+ jQuery.fn.extend( {
5716
+
5717
+ on: function( types, selector, data, fn ) {
5718
+ return on( this, types, selector, data, fn );
5719
+ },
5720
+ one: function( types, selector, data, fn ) {
5721
+ return on( this, types, selector, data, fn, 1 );
5722
+ },
5723
+ off: function( types, selector, fn ) {
5724
+ var handleObj, type;
5725
+ if ( types && types.preventDefault && types.handleObj ) {
5726
+
5727
+ // ( event ) dispatched jQuery.Event
5728
+ handleObj = types.handleObj;
5729
+ jQuery( types.delegateTarget ).off(
5730
+ handleObj.namespace ?
5731
+ handleObj.origType + "." + handleObj.namespace :
5732
+ handleObj.origType,
5733
+ handleObj.selector,
5734
+ handleObj.handler
5735
+ );
5736
+ return this;
5737
+ }
5738
+ if ( typeof types === "object" ) {
5739
+
5740
+ // ( types-object [, selector] )
5741
+ for ( type in types ) {
5742
+ this.off( type, selector, types[ type ] );
5743
+ }
5744
+ return this;
5745
+ }
5746
+ if ( selector === false || typeof selector === "function" ) {
5747
+
5748
+ // ( types [, fn] )
5749
+ fn = selector;
5750
+ selector = undefined;
5751
+ }
5752
+ if ( fn === false ) {
5753
+ fn = returnFalse;
5754
+ }
5755
+ return this.each( function() {
5756
+ jQuery.event.remove( this, types, fn, selector );
5757
+ } );
5758
+ }
5759
+ } );
5760
+
5761
+
5762
+ var
5763
+
5764
+ /* eslint-disable max-len */
5765
+
5766
+ // See https://github.com/eslint/eslint/issues/3229
5767
+ rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
5768
+
5769
+ /* eslint-enable */
5770
+
5771
+ // Support: IE <=10 - 11, Edge 12 - 13 only
5772
+ // In IE/Edge using regex groups here causes severe slowdowns.
5773
+ // See https://connect.microsoft.com/IE/feedback/details/1736512/
5774
+ rnoInnerhtml = /<script|<style|<link/i,
5775
+
5776
+ // checked="checked" or checked
5777
+ rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
5778
+ rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
5779
+
5780
+ // Prefer a tbody over its parent table for containing new rows
5781
+ function manipulationTarget( elem, content ) {
5782
+ if ( nodeName( elem, "table" ) &&
5783
+ nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
5784
+
5785
+ return jQuery( elem ).children( "tbody" )[ 0 ] || elem;
5786
+ }
5787
+
5788
+ return elem;
5789
+ }
5790
+
5791
+ // Replace/restore the type attribute of script elements for safe DOM manipulation
5792
+ function disableScript( elem ) {
5793
+ elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
5794
+ return elem;
5795
+ }
5796
+ function restoreScript( elem ) {
5797
+ if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) {
5798
+ elem.type = elem.type.slice( 5 );
5799
+ } else {
5800
+ elem.removeAttribute( "type" );
5801
+ }
5802
+
5803
+ return elem;
5804
+ }
5805
+
5806
+ function cloneCopyEvent( src, dest ) {
5807
+ var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
5808
+
5809
+ if ( dest.nodeType !== 1 ) {
5810
+ return;
5811
+ }
5812
+
5813
+ // 1. Copy private data: events, handlers, etc.
5814
+ if ( dataPriv.hasData( src ) ) {
5815
+ pdataOld = dataPriv.access( src );
5816
+ pdataCur = dataPriv.set( dest, pdataOld );
5817
+ events = pdataOld.events;
5818
+
5819
+ if ( events ) {
5820
+ delete pdataCur.handle;
5821
+ pdataCur.events = {};
5822
+
5823
+ for ( type in events ) {
5824
+ for ( i = 0, l = events[ type ].length; i < l; i++ ) {
5825
+ jQuery.event.add( dest, type, events[ type ][ i ] );
5826
+ }
5827
+ }
5828
+ }
5829
+ }
5830
+
5831
+ // 2. Copy user data
5832
+ if ( dataUser.hasData( src ) ) {
5833
+ udataOld = dataUser.access( src );
5834
+ udataCur = jQuery.extend( {}, udataOld );
5835
+
5836
+ dataUser.set( dest, udataCur );
5837
+ }
5838
+ }
5839
+
5840
+ // Fix IE bugs, see support tests
5841
+ function fixInput( src, dest ) {
5842
+ var nodeName = dest.nodeName.toLowerCase();
5843
+
5844
+ // Fails to persist the checked state of a cloned checkbox or radio button.
5845
+ if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
5846
+ dest.checked = src.checked;
5847
+
5848
+ // Fails to return the selected option to the default selected state when cloning options
5849
+ } else if ( nodeName === "input" || nodeName === "textarea" ) {
5850
+ dest.defaultValue = src.defaultValue;
5851
+ }
5852
+ }
5853
+
5854
+ function domManip( collection, args, callback, ignored ) {
5855
+
5856
+ // Flatten any nested arrays
5857
+ args = concat.apply( [], args );
5858
+
5859
+ var fragment, first, scripts, hasScripts, node, doc,
5860
+ i = 0,
5861
+ l = collection.length,
5862
+ iNoClone = l - 1,
5863
+ value = args[ 0 ],
5864
+ valueIsFunction = isFunction( value );
5865
+
5866
+ // We can't cloneNode fragments that contain checked, in WebKit
5867
+ if ( valueIsFunction ||
5868
+ ( l > 1 && typeof value === "string" &&
5869
+ !support.checkClone && rchecked.test( value ) ) ) {
5870
+ return collection.each( function( index ) {
5871
+ var self = collection.eq( index );
5872
+ if ( valueIsFunction ) {
5873
+ args[ 0 ] = value.call( this, index, self.html() );
5874
+ }
5875
+ domManip( self, args, callback, ignored );
5876
+ } );
5877
+ }
5878
+
5879
+ if ( l ) {
5880
+ fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
5881
+ first = fragment.firstChild;
5882
+
5883
+ if ( fragment.childNodes.length === 1 ) {
5884
+ fragment = first;
5885
+ }
5886
+
5887
+ // Require either new content or an interest in ignored elements to invoke the callback
5888
+ if ( first || ignored ) {
5889
+ scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
5890
+ hasScripts = scripts.length;
5891
+
5892
+ // Use the original fragment for the last item
5893
+ // instead of the first because it can end up
5894
+ // being emptied incorrectly in certain situations (#8070).
5895
+ for ( ; i < l; i++ ) {
5896
+ node = fragment;
5897
+
5898
+ if ( i !== iNoClone ) {
5899
+ node = jQuery.clone( node, true, true );
5900
+
5901
+ // Keep references to cloned scripts for later restoration
5902
+ if ( hasScripts ) {
5903
+
5904
+ // Support: Android <=4.0 only, PhantomJS 1 only
5905
+ // push.apply(_, arraylike) throws on ancient WebKit
5906
+ jQuery.merge( scripts, getAll( node, "script" ) );
5907
+ }
5908
+ }
5909
+
5910
+ callback.call( collection[ i ], node, i );
5911
+ }
5912
+
5913
+ if ( hasScripts ) {
5914
+ doc = scripts[ scripts.length - 1 ].ownerDocument;
5915
+
5916
+ // Reenable scripts
5917
+ jQuery.map( scripts, restoreScript );
5918
+
5919
+ // Evaluate executable scripts on first document insertion
5920
+ for ( i = 0; i < hasScripts; i++ ) {
5921
+ node = scripts[ i ];
5922
+ if ( rscriptType.test( node.type || "" ) &&
5923
+ !dataPriv.access( node, "globalEval" ) &&
5924
+ jQuery.contains( doc, node ) ) {
5925
+
5926
+ if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) {
5927
+
5928
+ // Optional AJAX dependency, but won't run scripts if not present
5929
+ if ( jQuery._evalUrl && !node.noModule ) {
5930
+ jQuery._evalUrl( node.src, {
5931
+ nonce: node.nonce || node.getAttribute( "nonce" )
5932
+ } );
5933
+ }
5934
+ } else {
5935
+ DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc );
5936
+ }
5937
+ }
5938
+ }
5939
+ }
5940
+ }
5941
+ }
5942
+
5943
+ return collection;
5944
+ }
5945
+
5946
+ function remove( elem, selector, keepData ) {
5947
+ var node,
5948
+ nodes = selector ? jQuery.filter( selector, elem ) : elem,
5949
+ i = 0;
5950
+
5951
+ for ( ; ( node = nodes[ i ] ) != null; i++ ) {
5952
+ if ( !keepData && node.nodeType === 1 ) {
5953
+ jQuery.cleanData( getAll( node ) );
5954
+ }
5955
+
5956
+ if ( node.parentNode ) {
5957
+ if ( keepData && isAttached( node ) ) {
5958
+ setGlobalEval( getAll( node, "script" ) );
5959
+ }
5960
+ node.parentNode.removeChild( node );
5961
+ }
5962
+ }
5963
+
5964
+ return elem;
5965
+ }
5966
+
5967
+ jQuery.extend( {
5968
+ htmlPrefilter: function( html ) {
5969
+ return html.replace( rxhtmlTag, "<$1></$2>" );
5970
+ },
5971
+
5972
+ clone: function( elem, dataAndEvents, deepDataAndEvents ) {
5973
+ var i, l, srcElements, destElements,
5974
+ clone = elem.cloneNode( true ),
5975
+ inPage = isAttached( elem );
5976
+
5977
+ // Fix IE cloning issues
5978
+ if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
5979
+ !jQuery.isXMLDoc( elem ) ) {
5980
+
5981
+ // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
5982
+ destElements = getAll( clone );
5983
+ srcElements = getAll( elem );
5984
+
5985
+ for ( i = 0, l = srcElements.length; i < l; i++ ) {
5986
+ fixInput( srcElements[ i ], destElements[ i ] );
5987
+ }
5988
+ }
5989
+
5990
+ // Copy the events from the original to the clone
5991
+ if ( dataAndEvents ) {
5992
+ if ( deepDataAndEvents ) {
5993
+ srcElements = srcElements || getAll( elem );
5994
+ destElements = destElements || getAll( clone );
5995
+
5996
+ for ( i = 0, l = srcElements.length; i < l; i++ ) {
5997
+ cloneCopyEvent( srcElements[ i ], destElements[ i ] );
5998
+ }
5999
+ } else {
6000
+ cloneCopyEvent( elem, clone );
6001
+ }
6002
+ }
6003
+
6004
+ // Preserve script evaluation history
6005
+ destElements = getAll( clone, "script" );
6006
+ if ( destElements.length > 0 ) {
6007
+ setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
6008
+ }
6009
+
6010
+ // Return the cloned set
6011
+ return clone;
6012
+ },
6013
+
6014
+ cleanData: function( elems ) {
6015
+ var data, elem, type,
6016
+ special = jQuery.event.special,
6017
+ i = 0;
6018
+
6019
+ for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
6020
+ if ( acceptData( elem ) ) {
6021
+ if ( ( data = elem[ dataPriv.expando ] ) ) {
6022
+ if ( data.events ) {
6023
+ for ( type in data.events ) {
6024
+ if ( special[ type ] ) {
6025
+ jQuery.event.remove( elem, type );
6026
+
6027
+ // This is a shortcut to avoid jQuery.event.remove's overhead
6028
+ } else {
6029
+ jQuery.removeEvent( elem, type, data.handle );
6030
+ }
6031
+ }
6032
+ }
6033
+
6034
+ // Support: Chrome <=35 - 45+
6035
+ // Assign undefined instead of using delete, see Data#remove
6036
+ elem[ dataPriv.expando ] = undefined;
6037
+ }
6038
+ if ( elem[ dataUser.expando ] ) {
6039
+
6040
+ // Support: Chrome <=35 - 45+
6041
+ // Assign undefined instead of using delete, see Data#remove
6042
+ elem[ dataUser.expando ] = undefined;
6043
+ }
6044
+ }
6045
+ }
6046
+ }
6047
+ } );
6048
+
6049
+ jQuery.fn.extend( {
6050
+ detach: function( selector ) {
6051
+ return remove( this, selector, true );
6052
+ },
6053
+
6054
+ remove: function( selector ) {
6055
+ return remove( this, selector );
6056
+ },
6057
+
6058
+ text: function( value ) {
6059
+ return access( this, function( value ) {
6060
+ return value === undefined ?
6061
+ jQuery.text( this ) :
6062
+ this.empty().each( function() {
6063
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
6064
+ this.textContent = value;
6065
+ }
6066
+ } );
6067
+ }, null, value, arguments.length );
6068
+ },
6069
+
6070
+ append: function() {
6071
+ return domManip( this, arguments, function( elem ) {
6072
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
6073
+ var target = manipulationTarget( this, elem );
6074
+ target.appendChild( elem );
6075
+ }
6076
+ } );
6077
+ },
6078
+
6079
+ prepend: function() {
6080
+ return domManip( this, arguments, function( elem ) {
6081
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
6082
+ var target = manipulationTarget( this, elem );
6083
+ target.insertBefore( elem, target.firstChild );
6084
+ }
6085
+ } );
6086
+ },
6087
+
6088
+ before: function() {
6089
+ return domManip( this, arguments, function( elem ) {
6090
+ if ( this.parentNode ) {
6091
+ this.parentNode.insertBefore( elem, this );
6092
+ }
6093
+ } );
6094
+ },
6095
+
6096
+ after: function() {
6097
+ return domManip( this, arguments, function( elem ) {
6098
+ if ( this.parentNode ) {
6099
+ this.parentNode.insertBefore( elem, this.nextSibling );
6100
+ }
6101
+ } );
6102
+ },
6103
+
6104
+ empty: function() {
6105
+ var elem,
6106
+ i = 0;
6107
+
6108
+ for ( ; ( elem = this[ i ] ) != null; i++ ) {
6109
+ if ( elem.nodeType === 1 ) {
6110
+
6111
+ // Prevent memory leaks
6112
+ jQuery.cleanData( getAll( elem, false ) );
6113
+
6114
+ // Remove any remaining nodes
6115
+ elem.textContent = "";
6116
+ }
6117
+ }
6118
+
6119
+ return this;
6120
+ },
6121
+
6122
+ clone: function( dataAndEvents, deepDataAndEvents ) {
6123
+ dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
6124
+ deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
6125
+
6126
+ return this.map( function() {
6127
+ return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
6128
+ } );
6129
+ },
6130
+
6131
+ html: function( value ) {
6132
+ return access( this, function( value ) {
6133
+ var elem = this[ 0 ] || {},
6134
+ i = 0,
6135
+ l = this.length;
6136
+
6137
+ if ( value === undefined && elem.nodeType === 1 ) {
6138
+ return elem.innerHTML;
6139
+ }
6140
+
6141
+ // See if we can take a shortcut and just use innerHTML
6142
+ if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
6143
+ !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
6144
+
6145
+ value = jQuery.htmlPrefilter( value );
6146
+
6147
+ try {
6148
+ for ( ; i < l; i++ ) {
6149
+ elem = this[ i ] || {};
6150
+
6151
+ // Remove element nodes and prevent memory leaks
6152
+ if ( elem.nodeType === 1 ) {
6153
+ jQuery.cleanData( getAll( elem, false ) );
6154
+ elem.innerHTML = value;
6155
+ }
6156
+ }
6157
+
6158
+ elem = 0;
6159
+
6160
+ // If using innerHTML throws an exception, use the fallback method
6161
+ } catch ( e ) {}
6162
+ }
6163
+
6164
+ if ( elem ) {
6165
+ this.empty().append( value );
6166
+ }
6167
+ }, null, value, arguments.length );
6168
+ },
6169
+
6170
+ replaceWith: function() {
6171
+ var ignored = [];
6172
+
6173
+ // Make the changes, replacing each non-ignored context element with the new content
6174
+ return domManip( this, arguments, function( elem ) {
6175
+ var parent = this.parentNode;
6176
+
6177
+ if ( jQuery.inArray( this, ignored ) < 0 ) {
6178
+ jQuery.cleanData( getAll( this ) );
6179
+ if ( parent ) {
6180
+ parent.replaceChild( elem, this );
6181
+ }
6182
+ }
6183
+
6184
+ // Force callback invocation
6185
+ }, ignored );
6186
+ }
6187
+ } );
6188
+
6189
+ jQuery.each( {
6190
+ appendTo: "append",
6191
+ prependTo: "prepend",
6192
+ insertBefore: "before",
6193
+ insertAfter: "after",
6194
+ replaceAll: "replaceWith"
6195
+ }, function( name, original ) {
6196
+ jQuery.fn[ name ] = function( selector ) {
6197
+ var elems,
6198
+ ret = [],
6199
+ insert = jQuery( selector ),
6200
+ last = insert.length - 1,
6201
+ i = 0;
6202
+
6203
+ for ( ; i <= last; i++ ) {
6204
+ elems = i === last ? this : this.clone( true );
6205
+ jQuery( insert[ i ] )[ original ]( elems );
6206
+
6207
+ // Support: Android <=4.0 only, PhantomJS 1 only
6208
+ // .get() because push.apply(_, arraylike) throws on ancient WebKit
6209
+ push.apply( ret, elems.get() );
6210
+ }
6211
+
6212
+ return this.pushStack( ret );
6213
+ };
6214
+ } );
6215
+ var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
6216
+
6217
+ var getStyles = function( elem ) {
6218
+
6219
+ // Support: IE <=11 only, Firefox <=30 (#15098, #14150)
6220
+ // IE throws on elements created in popups
6221
+ // FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
6222
+ var view = elem.ownerDocument.defaultView;
6223
+
6224
+ if ( !view || !view.opener ) {
6225
+ view = window;
6226
+ }
6227
+
6228
+ return view.getComputedStyle( elem );
6229
+ };
6230
+
6231
+ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
6232
+
6233
+
6234
+
6235
+ ( function() {
6236
+
6237
+ // Executing both pixelPosition & boxSizingReliable tests require only one layout
6238
+ // so they're executed at the same time to save the second computation.
6239
+ function computeStyleTests() {
6240
+
6241
+ // This is a singleton, we need to execute it only once
6242
+ if ( !div ) {
6243
+ return;
6244
+ }
6245
+
6246
+ container.style.cssText = "position:absolute;left:-11111px;width:60px;" +
6247
+ "margin-top:1px;padding:0;border:0";
6248
+ div.style.cssText =
6249
+ "position:relative;display:block;box-sizing:border-box;overflow:scroll;" +
6250
+ "margin:auto;border:1px;padding:1px;" +
6251
+ "width:60%;top:1%";
6252
+ documentElement.appendChild( container ).appendChild( div );
6253
+
6254
+ var divStyle = window.getComputedStyle( div );
6255
+ pixelPositionVal = divStyle.top !== "1%";
6256
+
6257
+ // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
6258
+ reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;
6259
+
6260
+ // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3
6261
+ // Some styles come back with percentage values, even though they shouldn't
6262
+ div.style.right = "60%";
6263
+ pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;
6264
+
6265
+ // Support: IE 9 - 11 only
6266
+ // Detect misreporting of content dimensions for box-sizing:border-box elements
6267
+ boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;
6268
+
6269
+ // Support: IE 9 only
6270
+ // Detect overflow:scroll screwiness (gh-3699)
6271
+ // Support: Chrome <=64
6272
+ // Don't get tricked when zoom affects offsetWidth (gh-4029)
6273
+ div.style.position = "absolute";
6274
+ scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;
6275
+
6276
+ documentElement.removeChild( container );
6277
+
6278
+ // Nullify the div so it wouldn't be stored in the memory and
6279
+ // it will also be a sign that checks already performed
6280
+ div = null;
6281
+ }
6282
+
6283
+ function roundPixelMeasures( measure ) {
6284
+ return Math.round( parseFloat( measure ) );
6285
+ }
6286
+
6287
+ var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,
6288
+ reliableMarginLeftVal,
6289
+ container = document.createElement( "div" ),
6290
+ div = document.createElement( "div" );
6291
+
6292
+ // Finish early in limited (non-browser) environments
6293
+ if ( !div.style ) {
6294
+ return;
6295
+ }
6296
+
6297
+ // Support: IE <=9 - 11 only
6298
+ // Style of cloned element affects source element cloned (#8908)
6299
+ div.style.backgroundClip = "content-box";
6300
+ div.cloneNode( true ).style.backgroundClip = "";
6301
+ support.clearCloneStyle = div.style.backgroundClip === "content-box";
6302
+
6303
+ jQuery.extend( support, {
6304
+ boxSizingReliable: function() {
6305
+ computeStyleTests();
6306
+ return boxSizingReliableVal;
6307
+ },
6308
+ pixelBoxStyles: function() {
6309
+ computeStyleTests();
6310
+ return pixelBoxStylesVal;
6311
+ },
6312
+ pixelPosition: function() {
6313
+ computeStyleTests();
6314
+ return pixelPositionVal;
6315
+ },
6316
+ reliableMarginLeft: function() {
6317
+ computeStyleTests();
6318
+ return reliableMarginLeftVal;
6319
+ },
6320
+ scrollboxSize: function() {
6321
+ computeStyleTests();
6322
+ return scrollboxSizeVal;
6323
+ }
6324
+ } );
6325
+ } )();
6326
+
6327
+
6328
+ function curCSS( elem, name, computed ) {
6329
+ var width, minWidth, maxWidth, ret,
6330
+
6331
+ // Support: Firefox 51+
6332
+ // Retrieving style before computed somehow
6333
+ // fixes an issue with getting wrong values
6334
+ // on detached elements
6335
+ style = elem.style;
6336
+
6337
+ computed = computed || getStyles( elem );
6338
+
6339
+ // getPropertyValue is needed for:
6340
+ // .css('filter') (IE 9 only, #12537)
6341
+ // .css('--customProperty) (#3144)
6342
+ if ( computed ) {
6343
+ ret = computed.getPropertyValue( name ) || computed[ name ];
6344
+
6345
+ if ( ret === "" && !isAttached( elem ) ) {
6346
+ ret = jQuery.style( elem, name );
6347
+ }
6348
+
6349
+ // A tribute to the "awesome hack by Dean Edwards"
6350
+ // Android Browser returns percentage for some values,
6351
+ // but width seems to be reliably pixels.
6352
+ // This is against the CSSOM draft spec:
6353
+ // https://drafts.csswg.org/cssom/#resolved-values
6354
+ if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {
6355
+
6356
+ // Remember the original values
6357
+ width = style.width;
6358
+ minWidth = style.minWidth;
6359
+ maxWidth = style.maxWidth;
6360
+
6361
+ // Put in the new values to get a computed value out
6362
+ style.minWidth = style.maxWidth = style.width = ret;
6363
+ ret = computed.width;
6364
+
6365
+ // Revert the changed values
6366
+ style.width = width;
6367
+ style.minWidth = minWidth;
6368
+ style.maxWidth = maxWidth;
6369
+ }
6370
+ }
6371
+
6372
+ return ret !== undefined ?
6373
+
6374
+ // Support: IE <=9 - 11 only
6375
+ // IE returns zIndex value as an integer.
6376
+ ret + "" :
6377
+ ret;
6378
+ }
6379
+
6380
+
6381
+ function addGetHookIf( conditionFn, hookFn ) {
6382
+
6383
+ // Define the hook, we'll check on the first run if it's really needed.
6384
+ return {
6385
+ get: function() {
6386
+ if ( conditionFn() ) {
6387
+
6388
+ // Hook not needed (or it's not possible to use it due
6389
+ // to missing dependency), remove it.
6390
+ delete this.get;
6391
+ return;
6392
+ }
6393
+
6394
+ // Hook needed; redefine it so that the support test is not executed again.
6395
+ return ( this.get = hookFn ).apply( this, arguments );
6396
+ }
6397
+ };
6398
+ }
6399
+
6400
+
6401
+ var cssPrefixes = [ "Webkit", "Moz", "ms" ],
6402
+ emptyStyle = document.createElement( "div" ).style,
6403
+ vendorProps = {};
6404
+
6405
+ // Return a vendor-prefixed property or undefined
6406
+ function vendorPropName( name ) {
6407
+
6408
+ // Check for vendor prefixed names
6409
+ var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
6410
+ i = cssPrefixes.length;
6411
+
6412
+ while ( i-- ) {
6413
+ name = cssPrefixes[ i ] + capName;
6414
+ if ( name in emptyStyle ) {
6415
+ return name;
6416
+ }
6417
+ }
6418
+ }
6419
+
6420
+ // Return a potentially-mapped jQuery.cssProps or vendor prefixed property
6421
+ function finalPropName( name ) {
6422
+ var final = jQuery.cssProps[ name ] || vendorProps[ name ];
6423
+
6424
+ if ( final ) {
6425
+ return final;
6426
+ }
6427
+ if ( name in emptyStyle ) {
6428
+ return name;
6429
+ }
6430
+ return vendorProps[ name ] = vendorPropName( name ) || name;
6431
+ }
6432
+
6433
+
6434
+ var
6435
+
6436
+ // Swappable if display is none or starts with table
6437
+ // except "table", "table-cell", or "table-caption"
6438
+ // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
6439
+ rdisplayswap = /^(none|table(?!-c[ea]).+)/,
6440
+ rcustomProp = /^--/,
6441
+ cssShow = { position: "absolute", visibility: "hidden", display: "block" },
6442
+ cssNormalTransform = {
6443
+ letterSpacing: "0",
6444
+ fontWeight: "400"
6445
+ };
6446
+
6447
+ function setPositiveNumber( elem, value, subtract ) {
6448
+
6449
+ // Any relative (+/-) values have already been
6450
+ // normalized at this point
6451
+ var matches = rcssNum.exec( value );
6452
+ return matches ?
6453
+
6454
+ // Guard against undefined "subtract", e.g., when used as in cssHooks
6455
+ Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
6456
+ value;
6457
+ }
6458
+
6459
+ function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {
6460
+ var i = dimension === "width" ? 1 : 0,
6461
+ extra = 0,
6462
+ delta = 0;
6463
+
6464
+ // Adjustment may not be necessary
6465
+ if ( box === ( isBorderBox ? "border" : "content" ) ) {
6466
+ return 0;
6467
+ }
6468
+
6469
+ for ( ; i < 4; i += 2 ) {
6470
+
6471
+ // Both box models exclude margin
6472
+ if ( box === "margin" ) {
6473
+ delta += jQuery.css( elem, box + cssExpand[ i ], true, styles );
6474
+ }
6475
+
6476
+ // If we get here with a content-box, we're seeking "padding" or "border" or "margin"
6477
+ if ( !isBorderBox ) {
6478
+
6479
+ // Add padding
6480
+ delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
6481
+
6482
+ // For "border" or "margin", add border
6483
+ if ( box !== "padding" ) {
6484
+ delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
6485
+
6486
+ // But still keep track of it otherwise
6487
+ } else {
6488
+ extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
6489
+ }
6490
+
6491
+ // If we get here with a border-box (content + padding + border), we're seeking "content" or
6492
+ // "padding" or "margin"
6493
+ } else {
6494
+
6495
+ // For "content", subtract padding
6496
+ if ( box === "content" ) {
6497
+ delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
6498
+ }
6499
+
6500
+ // For "content" or "padding", subtract border
6501
+ if ( box !== "margin" ) {
6502
+ delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
6503
+ }
6504
+ }
6505
+ }
6506
+
6507
+ // Account for positive content-box scroll gutter when requested by providing computedVal
6508
+ if ( !isBorderBox && computedVal >= 0 ) {
6509
+
6510
+ // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border
6511
+ // Assuming integer scroll gutter, subtract the rest and round down
6512
+ delta += Math.max( 0, Math.ceil(
6513
+ elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
6514
+ computedVal -
6515
+ delta -
6516
+ extra -
6517
+ 0.5
6518
+
6519
+ // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter
6520
+ // Use an explicit zero to avoid NaN (gh-3964)
6521
+ ) ) || 0;
6522
+ }
6523
+
6524
+ return delta;
6525
+ }
6526
+
6527
+ function getWidthOrHeight( elem, dimension, extra ) {
6528
+
6529
+ // Start with computed style
6530
+ var styles = getStyles( elem ),
6531
+
6532
+ // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).
6533
+ // Fake content-box until we know it's needed to know the true value.
6534
+ boxSizingNeeded = !support.boxSizingReliable() || extra,
6535
+ isBorderBox = boxSizingNeeded &&
6536
+ jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
6537
+ valueIsBorderBox = isBorderBox,
6538
+
6539
+ val = curCSS( elem, dimension, styles ),
6540
+ offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );
6541
+
6542
+ // Support: Firefox <=54
6543
+ // Return a confounding non-pixel value or feign ignorance, as appropriate.
6544
+ if ( rnumnonpx.test( val ) ) {
6545
+ if ( !extra ) {
6546
+ return val;
6547
+ }
6548
+ val = "auto";
6549
+ }
6550
+
6551
+
6552
+ // Fall back to offsetWidth/offsetHeight when value is "auto"
6553
+ // This happens for inline elements with no explicit setting (gh-3571)
6554
+ // Support: Android <=4.1 - 4.3 only
6555
+ // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
6556
+ // Support: IE 9-11 only
6557
+ // Also use offsetWidth/offsetHeight for when box sizing is unreliable
6558
+ // We use getClientRects() to check for hidden/disconnected.
6559
+ // In those cases, the computed value can be trusted to be border-box
6560
+ if ( ( !support.boxSizingReliable() && isBorderBox ||
6561
+ val === "auto" ||
6562
+ !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) &&
6563
+ elem.getClientRects().length ) {
6564
+
6565
+ isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
6566
+
6567
+ // Where available, offsetWidth/offsetHeight approximate border box dimensions.
6568
+ // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the
6569
+ // retrieved value as a content box dimension.
6570
+ valueIsBorderBox = offsetProp in elem;
6571
+ if ( valueIsBorderBox ) {
6572
+ val = elem[ offsetProp ];
6573
+ }
6574
+ }
6575
+
6576
+ // Normalize "" and auto
6577
+ val = parseFloat( val ) || 0;
6578
+
6579
+ // Adjust for the element's box model
6580
+ return ( val +
6581
+ boxModelAdjustment(
6582
+ elem,
6583
+ dimension,
6584
+ extra || ( isBorderBox ? "border" : "content" ),
6585
+ valueIsBorderBox,
6586
+ styles,
6587
+
6588
+ // Provide the current computed size to request scroll gutter calculation (gh-3589)
6589
+ val
6590
+ )
6591
+ ) + "px";
6592
+ }
6593
+
6594
+ jQuery.extend( {
6595
+
6596
+ // Add in style property hooks for overriding the default
6597
+ // behavior of getting and setting a style property
6598
+ cssHooks: {
6599
+ opacity: {
6600
+ get: function( elem, computed ) {
6601
+ if ( computed ) {
6602
+
6603
+ // We should always get a number back from opacity
6604
+ var ret = curCSS( elem, "opacity" );
6605
+ return ret === "" ? "1" : ret;
6606
+ }
6607
+ }
6608
+ }
6609
+ },
6610
+
6611
+ // Don't automatically add "px" to these possibly-unitless properties
6612
+ cssNumber: {
6613
+ "animationIterationCount": true,
6614
+ "columnCount": true,
6615
+ "fillOpacity": true,
6616
+ "flexGrow": true,
6617
+ "flexShrink": true,
6618
+ "fontWeight": true,
6619
+ "gridArea": true,
6620
+ "gridColumn": true,
6621
+ "gridColumnEnd": true,
6622
+ "gridColumnStart": true,
6623
+ "gridRow": true,
6624
+ "gridRowEnd": true,
6625
+ "gridRowStart": true,
6626
+ "lineHeight": true,
6627
+ "opacity": true,
6628
+ "order": true,
6629
+ "orphans": true,
6630
+ "widows": true,
6631
+ "zIndex": true,
6632
+ "zoom": true
6633
+ },
6634
+
6635
+ // Add in properties whose names you wish to fix before
6636
+ // setting or getting the value
6637
+ cssProps: {},
6638
+
6639
+ // Get and set the style property on a DOM Node
6640
+ style: function( elem, name, value, extra ) {
6641
+
6642
+ // Don't set styles on text and comment nodes
6643
+ if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
6644
+ return;
6645
+ }
6646
+
6647
+ // Make sure that we're working with the right name
6648
+ var ret, type, hooks,
6649
+ origName = camelCase( name ),
6650
+ isCustomProp = rcustomProp.test( name ),
6651
+ style = elem.style;
6652
+
6653
+ // Make sure that we're working with the right name. We don't
6654
+ // want to query the value if it is a CSS custom property
6655
+ // since they are user-defined.
6656
+ if ( !isCustomProp ) {
6657
+ name = finalPropName( origName );
6658
+ }
6659
+
6660
+ // Gets hook for the prefixed version, then unprefixed version
6661
+ hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
6662
+
6663
+ // Check if we're setting a value
6664
+ if ( value !== undefined ) {
6665
+ type = typeof value;
6666
+
6667
+ // Convert "+=" or "-=" to relative numbers (#7345)
6668
+ if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
6669
+ value = adjustCSS( elem, name, ret );
6670
+
6671
+ // Fixes bug #9237
6672
+ type = "number";
6673
+ }
6674
+
6675
+ // Make sure that null and NaN values aren't set (#7116)
6676
+ if ( value == null || value !== value ) {
6677
+ return;
6678
+ }
6679
+
6680
+ // If a number was passed in, add the unit (except for certain CSS properties)
6681
+ // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append
6682
+ // "px" to a few hardcoded values.
6683
+ if ( type === "number" && !isCustomProp ) {
6684
+ value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
6685
+ }
6686
+
6687
+ // background-* props affect original clone's values
6688
+ if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
6689
+ style[ name ] = "inherit";
6690
+ }
6691
+
6692
+ // If a hook was provided, use that value, otherwise just set the specified value
6693
+ if ( !hooks || !( "set" in hooks ) ||
6694
+ ( value = hooks.set( elem, value, extra ) ) !== undefined ) {
6695
+
6696
+ if ( isCustomProp ) {
6697
+ style.setProperty( name, value );
6698
+ } else {
6699
+ style[ name ] = value;
6700
+ }
6701
+ }
6702
+
6703
+ } else {
6704
+
6705
+ // If a hook was provided get the non-computed value from there
6706
+ if ( hooks && "get" in hooks &&
6707
+ ( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
6708
+
6709
+ return ret;
6710
+ }
6711
+
6712
+ // Otherwise just get the value from the style object
6713
+ return style[ name ];
6714
+ }
6715
+ },
6716
+
6717
+ css: function( elem, name, extra, styles ) {
6718
+ var val, num, hooks,
6719
+ origName = camelCase( name ),
6720
+ isCustomProp = rcustomProp.test( name );
6721
+
6722
+ // Make sure that we're working with the right name. We don't
6723
+ // want to modify the value if it is a CSS custom property
6724
+ // since they are user-defined.
6725
+ if ( !isCustomProp ) {
6726
+ name = finalPropName( origName );
6727
+ }
6728
+
6729
+ // Try prefixed name followed by the unprefixed name
6730
+ hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
6731
+
6732
+ // If a hook was provided get the computed value from there
6733
+ if ( hooks && "get" in hooks ) {
6734
+ val = hooks.get( elem, true, extra );
6735
+ }
6736
+
6737
+ // Otherwise, if a way to get the computed value exists, use that
6738
+ if ( val === undefined ) {
6739
+ val = curCSS( elem, name, styles );
6740
+ }
6741
+
6742
+ // Convert "normal" to computed value
6743
+ if ( val === "normal" && name in cssNormalTransform ) {
6744
+ val = cssNormalTransform[ name ];
6745
+ }
6746
+
6747
+ // Make numeric if forced or a qualifier was provided and val looks numeric
6748
+ if ( extra === "" || extra ) {
6749
+ num = parseFloat( val );
6750
+ return extra === true || isFinite( num ) ? num || 0 : val;
6751
+ }
6752
+
6753
+ return val;
6754
+ }
6755
+ } );
6756
+
6757
+ jQuery.each( [ "height", "width" ], function( i, dimension ) {
6758
+ jQuery.cssHooks[ dimension ] = {
6759
+ get: function( elem, computed, extra ) {
6760
+ if ( computed ) {
6761
+
6762
+ // Certain elements can have dimension info if we invisibly show them
6763
+ // but it must have a current display style that would benefit
6764
+ return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
6765
+
6766
+ // Support: Safari 8+
6767
+ // Table columns in Safari have non-zero offsetWidth & zero
6768
+ // getBoundingClientRect().width unless display is changed.
6769
+ // Support: IE <=11 only
6770
+ // Running getBoundingClientRect on a disconnected node
6771
+ // in IE throws an error.
6772
+ ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
6773
+ swap( elem, cssShow, function() {
6774
+ return getWidthOrHeight( elem, dimension, extra );
6775
+ } ) :
6776
+ getWidthOrHeight( elem, dimension, extra );
6777
+ }
6778
+ },
6779
+
6780
+ set: function( elem, value, extra ) {
6781
+ var matches,
6782
+ styles = getStyles( elem ),
6783
+
6784
+ // Only read styles.position if the test has a chance to fail
6785
+ // to avoid forcing a reflow.
6786
+ scrollboxSizeBuggy = !support.scrollboxSize() &&
6787
+ styles.position === "absolute",
6788
+
6789
+ // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)
6790
+ boxSizingNeeded = scrollboxSizeBuggy || extra,
6791
+ isBorderBox = boxSizingNeeded &&
6792
+ jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
6793
+ subtract = extra ?
6794
+ boxModelAdjustment(
6795
+ elem,
6796
+ dimension,
6797
+ extra,
6798
+ isBorderBox,
6799
+ styles
6800
+ ) :
6801
+ 0;
6802
+
6803
+ // Account for unreliable border-box dimensions by comparing offset* to computed and
6804
+ // faking a content-box to get border and padding (gh-3699)
6805
+ if ( isBorderBox && scrollboxSizeBuggy ) {
6806
+ subtract -= Math.ceil(
6807
+ elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
6808
+ parseFloat( styles[ dimension ] ) -
6809
+ boxModelAdjustment( elem, dimension, "border", false, styles ) -
6810
+ 0.5
6811
+ );
6812
+ }
6813
+
6814
+ // Convert to pixels if value adjustment is needed
6815
+ if ( subtract && ( matches = rcssNum.exec( value ) ) &&
6816
+ ( matches[ 3 ] || "px" ) !== "px" ) {
6817
+
6818
+ elem.style[ dimension ] = value;
6819
+ value = jQuery.css( elem, dimension );
6820
+ }
6821
+
6822
+ return setPositiveNumber( elem, value, subtract );
6823
+ }
6824
+ };
6825
+ } );
6826
+
6827
+ jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
6828
+ function( elem, computed ) {
6829
+ if ( computed ) {
6830
+ return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
6831
+ elem.getBoundingClientRect().left -
6832
+ swap( elem, { marginLeft: 0 }, function() {
6833
+ return elem.getBoundingClientRect().left;
6834
+ } )
6835
+ ) + "px";
6836
+ }
6837
+ }
6838
+ );
6839
+
6840
+ // These hooks are used by animate to expand properties
6841
+ jQuery.each( {
6842
+ margin: "",
6843
+ padding: "",
6844
+ border: "Width"
6845
+ }, function( prefix, suffix ) {
6846
+ jQuery.cssHooks[ prefix + suffix ] = {
6847
+ expand: function( value ) {
6848
+ var i = 0,
6849
+ expanded = {},
6850
+
6851
+ // Assumes a single number if not a string
6852
+ parts = typeof value === "string" ? value.split( " " ) : [ value ];
6853
+
6854
+ for ( ; i < 4; i++ ) {
6855
+ expanded[ prefix + cssExpand[ i ] + suffix ] =
6856
+ parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
6857
+ }
6858
+
6859
+ return expanded;
6860
+ }
6861
+ };
6862
+
6863
+ if ( prefix !== "margin" ) {
6864
+ jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
6865
+ }
6866
+ } );
6867
+
6868
+ jQuery.fn.extend( {
6869
+ css: function( name, value ) {
6870
+ return access( this, function( elem, name, value ) {
6871
+ var styles, len,
6872
+ map = {},
6873
+ i = 0;
6874
+
6875
+ if ( Array.isArray( name ) ) {
6876
+ styles = getStyles( elem );
6877
+ len = name.length;
6878
+
6879
+ for ( ; i < len; i++ ) {
6880
+ map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
6881
+ }
6882
+
6883
+ return map;
6884
+ }
6885
+
6886
+ return value !== undefined ?
6887
+ jQuery.style( elem, name, value ) :
6888
+ jQuery.css( elem, name );
6889
+ }, name, value, arguments.length > 1 );
6890
+ }
6891
+ } );
6892
+
6893
+
6894
+ // Based off of the plugin by Clint Helfers, with permission.
6895
+ // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
6896
+ jQuery.fn.delay = function( time, type ) {
6897
+ time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
6898
+ type = type || "fx";
6899
+
6900
+ return this.queue( type, function( next, hooks ) {
6901
+ var timeout = window.setTimeout( next, time );
6902
+ hooks.stop = function() {
6903
+ window.clearTimeout( timeout );
6904
+ };
6905
+ } );
6906
+ };
6907
+
6908
+
6909
+ ( function() {
6910
+ var input = document.createElement( "input" ),
6911
+ select = document.createElement( "select" ),
6912
+ opt = select.appendChild( document.createElement( "option" ) );
6913
+
6914
+ input.type = "checkbox";
6915
+
6916
+ // Support: Android <=4.3 only
6917
+ // Default value for a checkbox should be "on"
6918
+ support.checkOn = input.value !== "";
6919
+
6920
+ // Support: IE <=11 only
6921
+ // Must access selectedIndex to make default options select
6922
+ support.optSelected = opt.selected;
6923
+
6924
+ // Support: IE <=11 only
6925
+ // An input loses its value after becoming a radio
6926
+ input = document.createElement( "input" );
6927
+ input.value = "t";
6928
+ input.type = "radio";
6929
+ support.radioValue = input.value === "t";
6930
+ } )();
6931
+
6932
+
6933
+ var boolHook,
6934
+ attrHandle = jQuery.expr.attrHandle;
6935
+
6936
+ jQuery.fn.extend( {
6937
+ attr: function( name, value ) {
6938
+ return access( this, jQuery.attr, name, value, arguments.length > 1 );
6939
+ },
6940
+
6941
+ removeAttr: function( name ) {
6942
+ return this.each( function() {
6943
+ jQuery.removeAttr( this, name );
6944
+ } );
6945
+ }
6946
+ } );
6947
+
6948
+ jQuery.extend( {
6949
+ attr: function( elem, name, value ) {
6950
+ var ret, hooks,
6951
+ nType = elem.nodeType;
6952
+
6953
+ // Don't get/set attributes on text, comment and attribute nodes
6954
+ if ( nType === 3 || nType === 8 || nType === 2 ) {
6955
+ return;
6956
+ }
6957
+
6958
+ // Fallback to prop when attributes are not supported
6959
+ if ( typeof elem.getAttribute === "undefined" ) {
6960
+ return jQuery.prop( elem, name, value );
6961
+ }
6962
+
6963
+ // Attribute hooks are determined by the lowercase version
6964
+ // Grab necessary hook if one is defined
6965
+ if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
6966
+ hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
6967
+ ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
6968
+ }
6969
+
6970
+ if ( value !== undefined ) {
6971
+ if ( value === null ) {
6972
+ jQuery.removeAttr( elem, name );
6973
+ return;
6974
+ }
6975
+
6976
+ if ( hooks && "set" in hooks &&
6977
+ ( ret = hooks.set( elem, value, name ) ) !== undefined ) {
6978
+ return ret;
6979
+ }
6980
+
6981
+ elem.setAttribute( name, value + "" );
6982
+ return value;
6983
+ }
6984
+
6985
+ if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
6986
+ return ret;
6987
+ }
6988
+
6989
+ ret = jQuery.find.attr( elem, name );
6990
+
6991
+ // Non-existent attributes return null, we normalize to undefined
6992
+ return ret == null ? undefined : ret;
6993
+ },
6994
+
6995
+ attrHooks: {
6996
+ type: {
6997
+ set: function( elem, value ) {
6998
+ if ( !support.radioValue && value === "radio" &&
6999
+ nodeName( elem, "input" ) ) {
7000
+ var val = elem.value;
7001
+ elem.setAttribute( "type", value );
7002
+ if ( val ) {
7003
+ elem.value = val;
7004
+ }
7005
+ return value;
7006
+ }
7007
+ }
7008
+ }
7009
+ },
7010
+
7011
+ removeAttr: function( elem, value ) {
7012
+ var name,
7013
+ i = 0,
7014
+
7015
+ // Attribute names can contain non-HTML whitespace characters
7016
+ // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
7017
+ attrNames = value && value.match( rnothtmlwhite );
7018
+
7019
+ if ( attrNames && elem.nodeType === 1 ) {
7020
+ while ( ( name = attrNames[ i++ ] ) ) {
7021
+ elem.removeAttribute( name );
7022
+ }
7023
+ }
7024
+ }
7025
+ } );
7026
+
7027
+ // Hooks for boolean attributes
7028
+ boolHook = {
7029
+ set: function( elem, value, name ) {
7030
+ if ( value === false ) {
7031
+
7032
+ // Remove boolean attributes when set to false
7033
+ jQuery.removeAttr( elem, name );
7034
+ } else {
7035
+ elem.setAttribute( name, name );
7036
+ }
7037
+ return name;
7038
+ }
7039
+ };
7040
+
7041
+ jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
7042
+ var getter = attrHandle[ name ] || jQuery.find.attr;
7043
+
7044
+ attrHandle[ name ] = function( elem, name, isXML ) {
7045
+ var ret, handle,
7046
+ lowercaseName = name.toLowerCase();
7047
+
7048
+ if ( !isXML ) {
7049
+
7050
+ // Avoid an infinite loop by temporarily removing this function from the getter
7051
+ handle = attrHandle[ lowercaseName ];
7052
+ attrHandle[ lowercaseName ] = ret;
7053
+ ret = getter( elem, name, isXML ) != null ?
7054
+ lowercaseName :
7055
+ null;
7056
+ attrHandle[ lowercaseName ] = handle;
7057
+ }
7058
+ return ret;
7059
+ };
7060
+ } );
7061
+
7062
+
7063
+
7064
+
7065
+ var rfocusable = /^(?:input|select|textarea|button)$/i,
7066
+ rclickable = /^(?:a|area)$/i;
7067
+
7068
+ jQuery.fn.extend( {
7069
+ prop: function( name, value ) {
7070
+ return access( this, jQuery.prop, name, value, arguments.length > 1 );
7071
+ },
7072
+
7073
+ removeProp: function( name ) {
7074
+ return this.each( function() {
7075
+ delete this[ jQuery.propFix[ name ] || name ];
7076
+ } );
7077
+ }
7078
+ } );
7079
+
7080
+ jQuery.extend( {
7081
+ prop: function( elem, name, value ) {
7082
+ var ret, hooks,
7083
+ nType = elem.nodeType;
7084
+
7085
+ // Don't get/set properties on text, comment and attribute nodes
7086
+ if ( nType === 3 || nType === 8 || nType === 2 ) {
7087
+ return;
7088
+ }
7089
+
7090
+ if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
7091
+
7092
+ // Fix name and attach hooks
7093
+ name = jQuery.propFix[ name ] || name;
7094
+ hooks = jQuery.propHooks[ name ];
7095
+ }
7096
+
7097
+ if ( value !== undefined ) {
7098
+ if ( hooks && "set" in hooks &&
7099
+ ( ret = hooks.set( elem, value, name ) ) !== undefined ) {
7100
+ return ret;
7101
+ }
7102
+
7103
+ return ( elem[ name ] = value );
7104
+ }
7105
+
7106
+ if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
7107
+ return ret;
7108
+ }
7109
+
7110
+ return elem[ name ];
7111
+ },
7112
+
7113
+ propHooks: {
7114
+ tabIndex: {
7115
+ get: function( elem ) {
7116
+
7117
+ // Support: IE <=9 - 11 only
7118
+ // elem.tabIndex doesn't always return the
7119
+ // correct value when it hasn't been explicitly set
7120
+ // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
7121
+ // Use proper attribute retrieval(#12072)
7122
+ var tabindex = jQuery.find.attr( elem, "tabindex" );
7123
+
7124
+ if ( tabindex ) {
7125
+ return parseInt( tabindex, 10 );
7126
+ }
7127
+
7128
+ if (
7129
+ rfocusable.test( elem.nodeName ) ||
7130
+ rclickable.test( elem.nodeName ) &&
7131
+ elem.href
7132
+ ) {
7133
+ return 0;
7134
+ }
7135
+
7136
+ return -1;
7137
+ }
7138
+ }
7139
+ },
7140
+
7141
+ propFix: {
7142
+ "for": "htmlFor",
7143
+ "class": "className"
7144
+ }
7145
+ } );
7146
+
7147
+ // Support: IE <=11 only
7148
+ // Accessing the selectedIndex property
7149
+ // forces the browser to respect setting selected
7150
+ // on the option
7151
+ // The getter ensures a default option is selected
7152
+ // when in an optgroup
7153
+ // eslint rule "no-unused-expressions" is disabled for this code
7154
+ // since it considers such accessions noop
7155
+ if ( !support.optSelected ) {
7156
+ jQuery.propHooks.selected = {
7157
+ get: function( elem ) {
7158
+
7159
+ /* eslint no-unused-expressions: "off" */
7160
+
7161
+ var parent = elem.parentNode;
7162
+ if ( parent && parent.parentNode ) {
7163
+ parent.parentNode.selectedIndex;
7164
+ }
7165
+ return null;
7166
+ },
7167
+ set: function( elem ) {
7168
+
7169
+ /* eslint no-unused-expressions: "off" */
7170
+
7171
+ var parent = elem.parentNode;
7172
+ if ( parent ) {
7173
+ parent.selectedIndex;
7174
+
7175
+ if ( parent.parentNode ) {
7176
+ parent.parentNode.selectedIndex;
7177
+ }
7178
+ }
7179
+ }
7180
+ };
7181
+ }
7182
+
7183
+ jQuery.each( [
7184
+ "tabIndex",
7185
+ "readOnly",
7186
+ "maxLength",
7187
+ "cellSpacing",
7188
+ "cellPadding",
7189
+ "rowSpan",
7190
+ "colSpan",
7191
+ "useMap",
7192
+ "frameBorder",
7193
+ "contentEditable"
7194
+ ], function() {
7195
+ jQuery.propFix[ this.toLowerCase() ] = this;
7196
+ } );
7197
+
7198
+
7199
+
7200
+
7201
+ // Strip and collapse whitespace according to HTML spec
7202
+ // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace
7203
+ function stripAndCollapse( value ) {
7204
+ var tokens = value.match( rnothtmlwhite ) || [];
7205
+ return tokens.join( " " );
7206
+ }
7207
+
7208
+
7209
+ function getClass( elem ) {
7210
+ return elem.getAttribute && elem.getAttribute( "class" ) || "";
7211
+ }
7212
+
7213
+ function classesToArray( value ) {
7214
+ if ( Array.isArray( value ) ) {
7215
+ return value;
7216
+ }
7217
+ if ( typeof value === "string" ) {
7218
+ return value.match( rnothtmlwhite ) || [];
7219
+ }
7220
+ return [];
7221
+ }
7222
+
7223
+ jQuery.fn.extend( {
7224
+ addClass: function( value ) {
7225
+ var classes, elem, cur, curValue, clazz, j, finalValue,
7226
+ i = 0;
7227
+
7228
+ if ( isFunction( value ) ) {
7229
+ return this.each( function( j ) {
7230
+ jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
7231
+ } );
7232
+ }
7233
+
7234
+ classes = classesToArray( value );
7235
+
7236
+ if ( classes.length ) {
7237
+ while ( ( elem = this[ i++ ] ) ) {
7238
+ curValue = getClass( elem );
7239
+ cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
7240
+
7241
+ if ( cur ) {
7242
+ j = 0;
7243
+ while ( ( clazz = classes[ j++ ] ) ) {
7244
+ if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
7245
+ cur += clazz + " ";
7246
+ }
7247
+ }
7248
+
7249
+ // Only assign if different to avoid unneeded rendering.
7250
+ finalValue = stripAndCollapse( cur );
7251
+ if ( curValue !== finalValue ) {
7252
+ elem.setAttribute( "class", finalValue );
7253
+ }
7254
+ }
7255
+ }
7256
+ }
7257
+
7258
+ return this;
7259
+ },
7260
+
7261
+ removeClass: function( value ) {
7262
+ var classes, elem, cur, curValue, clazz, j, finalValue,
7263
+ i = 0;
7264
+
7265
+ if ( isFunction( value ) ) {
7266
+ return this.each( function( j ) {
7267
+ jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
7268
+ } );
7269
+ }
7270
+
7271
+ if ( !arguments.length ) {
7272
+ return this.attr( "class", "" );
7273
+ }
7274
+
7275
+ classes = classesToArray( value );
7276
+
7277
+ if ( classes.length ) {
7278
+ while ( ( elem = this[ i++ ] ) ) {
7279
+ curValue = getClass( elem );
7280
+
7281
+ // This expression is here for better compressibility (see addClass)
7282
+ cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
7283
+
7284
+ if ( cur ) {
7285
+ j = 0;
7286
+ while ( ( clazz = classes[ j++ ] ) ) {
7287
+
7288
+ // Remove *all* instances
7289
+ while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
7290
+ cur = cur.replace( " " + clazz + " ", " " );
7291
+ }
7292
+ }
7293
+
7294
+ // Only assign if different to avoid unneeded rendering.
7295
+ finalValue = stripAndCollapse( cur );
7296
+ if ( curValue !== finalValue ) {
7297
+ elem.setAttribute( "class", finalValue );
7298
+ }
7299
+ }
7300
+ }
7301
+ }
7302
+
7303
+ return this;
7304
+ },
7305
+
7306
+ toggleClass: function( value, stateVal ) {
7307
+ var type = typeof value,
7308
+ isValidValue = type === "string" || Array.isArray( value );
7309
+
7310
+ if ( typeof stateVal === "boolean" && isValidValue ) {
7311
+ return stateVal ? this.addClass( value ) : this.removeClass( value );
7312
+ }
7313
+
7314
+ if ( isFunction( value ) ) {
7315
+ return this.each( function( i ) {
7316
+ jQuery( this ).toggleClass(
7317
+ value.call( this, i, getClass( this ), stateVal ),
7318
+ stateVal
7319
+ );
7320
+ } );
7321
+ }
7322
+
7323
+ return this.each( function() {
7324
+ var className, i, self, classNames;
7325
+
7326
+ if ( isValidValue ) {
7327
+
7328
+ // Toggle individual class names
7329
+ i = 0;
7330
+ self = jQuery( this );
7331
+ classNames = classesToArray( value );
7332
+
7333
+ while ( ( className = classNames[ i++ ] ) ) {
7334
+
7335
+ // Check each className given, space separated list
7336
+ if ( self.hasClass( className ) ) {
7337
+ self.removeClass( className );
7338
+ } else {
7339
+ self.addClass( className );
7340
+ }
7341
+ }
7342
+
7343
+ // Toggle whole class name
7344
+ } else if ( value === undefined || type === "boolean" ) {
7345
+ className = getClass( this );
7346
+ if ( className ) {
7347
+
7348
+ // Store className if set
7349
+ dataPriv.set( this, "__className__", className );
7350
+ }
7351
+
7352
+ // If the element has a class name or if we're passed `false`,
7353
+ // then remove the whole classname (if there was one, the above saved it).
7354
+ // Otherwise bring back whatever was previously saved (if anything),
7355
+ // falling back to the empty string if nothing was stored.
7356
+ if ( this.setAttribute ) {
7357
+ this.setAttribute( "class",
7358
+ className || value === false ?
7359
+ "" :
7360
+ dataPriv.get( this, "__className__" ) || ""
7361
+ );
7362
+ }
7363
+ }
7364
+ } );
7365
+ },
7366
+
7367
+ hasClass: function( selector ) {
7368
+ var className, elem,
7369
+ i = 0;
7370
+
7371
+ className = " " + selector + " ";
7372
+ while ( ( elem = this[ i++ ] ) ) {
7373
+ if ( elem.nodeType === 1 &&
7374
+ ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
7375
+ return true;
7376
+ }
7377
+ }
7378
+
7379
+ return false;
7380
+ }
7381
+ } );
7382
+
7383
+
7384
+
7385
+
7386
+ var rreturn = /\r/g;
7387
+
7388
+ jQuery.fn.extend( {
7389
+ val: function( value ) {
7390
+ var hooks, ret, valueIsFunction,
7391
+ elem = this[ 0 ];
7392
+
7393
+ if ( !arguments.length ) {
7394
+ if ( elem ) {
7395
+ hooks = jQuery.valHooks[ elem.type ] ||
7396
+ jQuery.valHooks[ elem.nodeName.toLowerCase() ];
7397
+
7398
+ if ( hooks &&
7399
+ "get" in hooks &&
7400
+ ( ret = hooks.get( elem, "value" ) ) !== undefined
7401
+ ) {
7402
+ return ret;
7403
+ }
7404
+
7405
+ ret = elem.value;
7406
+
7407
+ // Handle most common string cases
7408
+ if ( typeof ret === "string" ) {
7409
+ return ret.replace( rreturn, "" );
7410
+ }
7411
+
7412
+ // Handle cases where value is null/undef or number
7413
+ return ret == null ? "" : ret;
7414
+ }
7415
+
7416
+ return;
7417
+ }
7418
+
7419
+ valueIsFunction = isFunction( value );
7420
+
7421
+ return this.each( function( i ) {
7422
+ var val;
7423
+
7424
+ if ( this.nodeType !== 1 ) {
7425
+ return;
7426
+ }
7427
+
7428
+ if ( valueIsFunction ) {
7429
+ val = value.call( this, i, jQuery( this ).val() );
7430
+ } else {
7431
+ val = value;
7432
+ }
7433
+
7434
+ // Treat null/undefined as ""; convert numbers to string
7435
+ if ( val == null ) {
7436
+ val = "";
7437
+
7438
+ } else if ( typeof val === "number" ) {
7439
+ val += "";
7440
+
7441
+ } else if ( Array.isArray( val ) ) {
7442
+ val = jQuery.map( val, function( value ) {
7443
+ return value == null ? "" : value + "";
7444
+ } );
7445
+ }
7446
+
7447
+ hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
7448
+
7449
+ // If set returns undefined, fall back to normal setting
7450
+ if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
7451
+ this.value = val;
7452
+ }
7453
+ } );
7454
+ }
7455
+ } );
7456
+
7457
+ jQuery.extend( {
7458
+ valHooks: {
7459
+ option: {
7460
+ get: function( elem ) {
7461
+
7462
+ var val = jQuery.find.attr( elem, "value" );
7463
+ return val != null ?
7464
+ val :
7465
+
7466
+ // Support: IE <=10 - 11 only
7467
+ // option.text throws exceptions (#14686, #14858)
7468
+ // Strip and collapse whitespace
7469
+ // https://html.spec.whatwg.org/#strip-and-collapse-whitespace
7470
+ stripAndCollapse( jQuery.text( elem ) );
7471
+ }
7472
+ },
7473
+ select: {
7474
+ get: function( elem ) {
7475
+ var value, option, i,
7476
+ options = elem.options,
7477
+ index = elem.selectedIndex,
7478
+ one = elem.type === "select-one",
7479
+ values = one ? null : [],
7480
+ max = one ? index + 1 : options.length;
7481
+
7482
+ if ( index < 0 ) {
7483
+ i = max;
7484
+
7485
+ } else {
7486
+ i = one ? index : 0;
7487
+ }
7488
+
7489
+ // Loop through all the selected options
7490
+ for ( ; i < max; i++ ) {
7491
+ option = options[ i ];
7492
+
7493
+ // Support: IE <=9 only
7494
+ // IE8-9 doesn't update selected after form reset (#2551)
7495
+ if ( ( option.selected || i === index ) &&
7496
+
7497
+ // Don't return options that are disabled or in a disabled optgroup
7498
+ !option.disabled &&
7499
+ ( !option.parentNode.disabled ||
7500
+ !nodeName( option.parentNode, "optgroup" ) ) ) {
7501
+
7502
+ // Get the specific value for the option
7503
+ value = jQuery( option ).val();
7504
+
7505
+ // We don't need an array for one selects
7506
+ if ( one ) {
7507
+ return value;
7508
+ }
7509
+
7510
+ // Multi-Selects return an array
7511
+ values.push( value );
7512
+ }
7513
+ }
7514
+
7515
+ return values;
7516
+ },
7517
+
7518
+ set: function( elem, value ) {
7519
+ var optionSet, option,
7520
+ options = elem.options,
7521
+ values = jQuery.makeArray( value ),
7522
+ i = options.length;
7523
+
7524
+ while ( i-- ) {
7525
+ option = options[ i ];
7526
+
7527
+ /* eslint-disable no-cond-assign */
7528
+
7529
+ if ( option.selected =
7530
+ jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
7531
+ ) {
7532
+ optionSet = true;
7533
+ }
7534
+
7535
+ /* eslint-enable no-cond-assign */
7536
+ }
7537
+
7538
+ // Force browsers to behave consistently when non-matching value is set
7539
+ if ( !optionSet ) {
7540
+ elem.selectedIndex = -1;
7541
+ }
7542
+ return values;
7543
+ }
7544
+ }
7545
+ }
7546
+ } );
7547
+
7548
+ // Radios and checkboxes getter/setter
7549
+ jQuery.each( [ "radio", "checkbox" ], function() {
7550
+ jQuery.valHooks[ this ] = {
7551
+ set: function( elem, value ) {
7552
+ if ( Array.isArray( value ) ) {
7553
+ return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
7554
+ }
7555
+ }
7556
+ };
7557
+ if ( !support.checkOn ) {
7558
+ jQuery.valHooks[ this ].get = function( elem ) {
7559
+ return elem.getAttribute( "value" ) === null ? "on" : elem.value;
7560
+ };
7561
+ }
7562
+ } );
7563
+
7564
+
7565
+
7566
+
7567
+ // Return jQuery for attributes-only inclusion
7568
+
7569
+
7570
+ support.focusin = "onfocusin" in window;
7571
+
7572
+
7573
+ var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
7574
+ stopPropagationCallback = function( e ) {
7575
+ e.stopPropagation();
7576
+ };
7577
+
7578
+ jQuery.extend( jQuery.event, {
7579
+
7580
+ trigger: function( event, data, elem, onlyHandlers ) {
7581
+
7582
+ var i, cur, tmp, bubbleType, ontype, handle, special, lastElement,
7583
+ eventPath = [ elem || document ],
7584
+ type = hasOwn.call( event, "type" ) ? event.type : event,
7585
+ namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
7586
+
7587
+ cur = lastElement = tmp = elem = elem || document;
7588
+
7589
+ // Don't do events on text and comment nodes
7590
+ if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
7591
+ return;
7592
+ }
7593
+
7594
+ // focus/blur morphs to focusin/out; ensure we're not firing them right now
7595
+ if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
7596
+ return;
7597
+ }
7598
+
7599
+ if ( type.indexOf( "." ) > -1 ) {
7600
+
7601
+ // Namespaced trigger; create a regexp to match event type in handle()
7602
+ namespaces = type.split( "." );
7603
+ type = namespaces.shift();
7604
+ namespaces.sort();
7605
+ }
7606
+ ontype = type.indexOf( ":" ) < 0 && "on" + type;
7607
+
7608
+ // Caller can pass in a jQuery.Event object, Object, or just an event type string
7609
+ event = event[ jQuery.expando ] ?
7610
+ event :
7611
+ new jQuery.Event( type, typeof event === "object" && event );
7612
+
7613
+ // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
7614
+ event.isTrigger = onlyHandlers ? 2 : 3;
7615
+ event.namespace = namespaces.join( "." );
7616
+ event.rnamespace = event.namespace ?
7617
+ new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
7618
+ null;
7619
+
7620
+ // Clean up the event in case it is being reused
7621
+ event.result = undefined;
7622
+ if ( !event.target ) {
7623
+ event.target = elem;
7624
+ }
7625
+
7626
+ // Clone any incoming data and prepend the event, creating the handler arg list
7627
+ data = data == null ?
7628
+ [ event ] :
7629
+ jQuery.makeArray( data, [ event ] );
7630
+
7631
+ // Allow special events to draw outside the lines
7632
+ special = jQuery.event.special[ type ] || {};
7633
+ if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
7634
+ return;
7635
+ }
7636
+
7637
+ // Determine event propagation path in advance, per W3C events spec (#9951)
7638
+ // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
7639
+ if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {
7640
+
7641
+ bubbleType = special.delegateType || type;
7642
+ if ( !rfocusMorph.test( bubbleType + type ) ) {
7643
+ cur = cur.parentNode;
7644
+ }
7645
+ for ( ; cur; cur = cur.parentNode ) {
7646
+ eventPath.push( cur );
7647
+ tmp = cur;
7648
+ }
7649
+
7650
+ // Only add window if we got to document (e.g., not plain obj or detached DOM)
7651
+ if ( tmp === ( elem.ownerDocument || document ) ) {
7652
+ eventPath.push( tmp.defaultView || tmp.parentWindow || window );
7653
+ }
7654
+ }
7655
+
7656
+ // Fire handlers on the event path
7657
+ i = 0;
7658
+ while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
7659
+ lastElement = cur;
7660
+ event.type = i > 1 ?
7661
+ bubbleType :
7662
+ special.bindType || type;
7663
+
7664
+ // jQuery handler
7665
+ handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
7666
+ dataPriv.get( cur, "handle" );
7667
+ if ( handle ) {
7668
+ handle.apply( cur, data );
7669
+ }
7670
+
7671
+ // Native handler
7672
+ handle = ontype && cur[ ontype ];
7673
+ if ( handle && handle.apply && acceptData( cur ) ) {
7674
+ event.result = handle.apply( cur, data );
7675
+ if ( event.result === false ) {
7676
+ event.preventDefault();
7677
+ }
7678
+ }
7679
+ }
7680
+ event.type = type;
7681
+
7682
+ // If nobody prevented the default action, do it now
7683
+ if ( !onlyHandlers && !event.isDefaultPrevented() ) {
7684
+
7685
+ if ( ( !special._default ||
7686
+ special._default.apply( eventPath.pop(), data ) === false ) &&
7687
+ acceptData( elem ) ) {
7688
+
7689
+ // Call a native DOM method on the target with the same name as the event.
7690
+ // Don't do default actions on window, that's where global variables be (#6170)
7691
+ if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {
7692
+
7693
+ // Don't re-trigger an onFOO event when we call its FOO() method
7694
+ tmp = elem[ ontype ];
7695
+
7696
+ if ( tmp ) {
7697
+ elem[ ontype ] = null;
7698
+ }
7699
+
7700
+ // Prevent re-triggering of the same event, since we already bubbled it above
7701
+ jQuery.event.triggered = type;
7702
+
7703
+ if ( event.isPropagationStopped() ) {
7704
+ lastElement.addEventListener( type, stopPropagationCallback );
7705
+ }
7706
+
7707
+ elem[ type ]();
7708
+
7709
+ if ( event.isPropagationStopped() ) {
7710
+ lastElement.removeEventListener( type, stopPropagationCallback );
7711
+ }
7712
+
7713
+ jQuery.event.triggered = undefined;
7714
+
7715
+ if ( tmp ) {
7716
+ elem[ ontype ] = tmp;
7717
+ }
7718
+ }
7719
+ }
7720
+ }
7721
+
7722
+ return event.result;
7723
+ },
7724
+
7725
+ // Piggyback on a donor event to simulate a different one
7726
+ // Used only for `focus(in | out)` events
7727
+ simulate: function( type, elem, event ) {
7728
+ var e = jQuery.extend(
7729
+ new jQuery.Event(),
7730
+ event,
7731
+ {
7732
+ type: type,
7733
+ isSimulated: true
7734
+ }
7735
+ );
7736
+
7737
+ jQuery.event.trigger( e, null, elem );
7738
+ }
7739
+
7740
+ } );
7741
+
7742
+ jQuery.fn.extend( {
7743
+
7744
+ trigger: function( type, data ) {
7745
+ return this.each( function() {
7746
+ jQuery.event.trigger( type, data, this );
7747
+ } );
7748
+ },
7749
+ triggerHandler: function( type, data ) {
7750
+ var elem = this[ 0 ];
7751
+ if ( elem ) {
7752
+ return jQuery.event.trigger( type, data, elem, true );
7753
+ }
7754
+ }
7755
+ } );
7756
+
7757
+
7758
+ // Support: Firefox <=44
7759
+ // Firefox doesn't have focus(in | out) events
7760
+ // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
7761
+ //
7762
+ // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
7763
+ // focus(in | out) events fire after focus & blur events,
7764
+ // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
7765
+ // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
7766
+ if ( !support.focusin ) {
7767
+ jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
7768
+
7769
+ // Attach a single capturing handler on the document while someone wants focusin/focusout
7770
+ var handler = function( event ) {
7771
+ jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
7772
+ };
7773
+
7774
+ jQuery.event.special[ fix ] = {
7775
+ setup: function() {
7776
+ var doc = this.ownerDocument || this,
7777
+ attaches = dataPriv.access( doc, fix );
7778
+
7779
+ if ( !attaches ) {
7780
+ doc.addEventListener( orig, handler, true );
7781
+ }
7782
+ dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
7783
+ },
7784
+ teardown: function() {
7785
+ var doc = this.ownerDocument || this,
7786
+ attaches = dataPriv.access( doc, fix ) - 1;
7787
+
7788
+ if ( !attaches ) {
7789
+ doc.removeEventListener( orig, handler, true );
7790
+ dataPriv.remove( doc, fix );
7791
+
7792
+ } else {
7793
+ dataPriv.access( doc, fix, attaches );
7794
+ }
7795
+ }
7796
+ };
7797
+ } );
7798
+ }
7799
+
7800
+
7801
+ var
7802
+ rbracket = /\[\]$/,
7803
+ rCRLF = /\r?\n/g,
7804
+ rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
7805
+ rsubmittable = /^(?:input|select|textarea|keygen)/i;
7806
+
7807
+ function buildParams( prefix, obj, traditional, add ) {
7808
+ var name;
7809
+
7810
+ if ( Array.isArray( obj ) ) {
7811
+
7812
+ // Serialize array item.
7813
+ jQuery.each( obj, function( i, v ) {
7814
+ if ( traditional || rbracket.test( prefix ) ) {
7815
+
7816
+ // Treat each array item as a scalar.
7817
+ add( prefix, v );
7818
+
7819
+ } else {
7820
+
7821
+ // Item is non-scalar (array or object), encode its numeric index.
7822
+ buildParams(
7823
+ prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
7824
+ v,
7825
+ traditional,
7826
+ add
7827
+ );
7828
+ }
7829
+ } );
7830
+
7831
+ } else if ( !traditional && toType( obj ) === "object" ) {
7832
+
7833
+ // Serialize object item.
7834
+ for ( name in obj ) {
7835
+ buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
7836
+ }
7837
+
7838
+ } else {
7839
+
7840
+ // Serialize scalar item.
7841
+ add( prefix, obj );
7842
+ }
7843
+ }
7844
+
7845
+ // Serialize an array of form elements or a set of
7846
+ // key/values into a query string
7847
+ jQuery.param = function( a, traditional ) {
7848
+ var prefix,
7849
+ s = [],
7850
+ add = function( key, valueOrFunction ) {
7851
+
7852
+ // If value is a function, invoke it and use its return value
7853
+ var value = isFunction( valueOrFunction ) ?
7854
+ valueOrFunction() :
7855
+ valueOrFunction;
7856
+
7857
+ s[ s.length ] = encodeURIComponent( key ) + "=" +
7858
+ encodeURIComponent( value == null ? "" : value );
7859
+ };
7860
+
7861
+ if ( a == null ) {
7862
+ return "";
7863
+ }
7864
+
7865
+ // If an array was passed in, assume that it is an array of form elements.
7866
+ if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
7867
+
7868
+ // Serialize the form elements
7869
+ jQuery.each( a, function() {
7870
+ add( this.name, this.value );
7871
+ } );
7872
+
7873
+ } else {
7874
+
7875
+ // If traditional, encode the "old" way (the way 1.3.2 or older
7876
+ // did it), otherwise encode params recursively.
7877
+ for ( prefix in a ) {
7878
+ buildParams( prefix, a[ prefix ], traditional, add );
7879
+ }
7880
+ }
7881
+
7882
+ // Return the resulting serialization
7883
+ return s.join( "&" );
7884
+ };
7885
+
7886
+ jQuery.fn.extend( {
7887
+ serialize: function() {
7888
+ return jQuery.param( this.serializeArray() );
7889
+ },
7890
+ serializeArray: function() {
7891
+ return this.map( function() {
7892
+
7893
+ // Can add propHook for "elements" to filter or add form elements
7894
+ var elements = jQuery.prop( this, "elements" );
7895
+ return elements ? jQuery.makeArray( elements ) : this;
7896
+ } )
7897
+ .filter( function() {
7898
+ var type = this.type;
7899
+
7900
+ // Use .is( ":disabled" ) so that fieldset[disabled] works
7901
+ return this.name && !jQuery( this ).is( ":disabled" ) &&
7902
+ rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
7903
+ ( this.checked || !rcheckableType.test( type ) );
7904
+ } )
7905
+ .map( function( i, elem ) {
7906
+ var val = jQuery( this ).val();
7907
+
7908
+ if ( val == null ) {
7909
+ return null;
7910
+ }
7911
+
7912
+ if ( Array.isArray( val ) ) {
7913
+ return jQuery.map( val, function( val ) {
7914
+ return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
7915
+ } );
7916
+ }
7917
+
7918
+ return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
7919
+ } ).get();
7920
+ }
7921
+ } );
7922
+
7923
+
7924
+ jQuery.fn.extend( {
7925
+ wrapAll: function( html ) {
7926
+ var wrap;
7927
+
7928
+ if ( this[ 0 ] ) {
7929
+ if ( isFunction( html ) ) {
7930
+ html = html.call( this[ 0 ] );
7931
+ }
7932
+
7933
+ // The elements to wrap the target around
7934
+ wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
7935
+
7936
+ if ( this[ 0 ].parentNode ) {
7937
+ wrap.insertBefore( this[ 0 ] );
7938
+ }
7939
+
7940
+ wrap.map( function() {
7941
+ var elem = this;
7942
+
7943
+ while ( elem.firstElementChild ) {
7944
+ elem = elem.firstElementChild;
7945
+ }
7946
+
7947
+ return elem;
7948
+ } ).append( this );
7949
+ }
7950
+
7951
+ return this;
7952
+ },
7953
+
7954
+ wrapInner: function( html ) {
7955
+ if ( isFunction( html ) ) {
7956
+ return this.each( function( i ) {
7957
+ jQuery( this ).wrapInner( html.call( this, i ) );
7958
+ } );
7959
+ }
7960
+
7961
+ return this.each( function() {
7962
+ var self = jQuery( this ),
7963
+ contents = self.contents();
7964
+
7965
+ if ( contents.length ) {
7966
+ contents.wrapAll( html );
7967
+
7968
+ } else {
7969
+ self.append( html );
7970
+ }
7971
+ } );
7972
+ },
7973
+
7974
+ wrap: function( html ) {
7975
+ var htmlIsFunction = isFunction( html );
7976
+
7977
+ return this.each( function( i ) {
7978
+ jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );
7979
+ } );
7980
+ },
7981
+
7982
+ unwrap: function( selector ) {
7983
+ this.parent( selector ).not( "body" ).each( function() {
7984
+ jQuery( this ).replaceWith( this.childNodes );
7985
+ } );
7986
+ return this;
7987
+ }
7988
+ } );
7989
+
7990
+
7991
+ jQuery.expr.pseudos.hidden = function( elem ) {
7992
+ return !jQuery.expr.pseudos.visible( elem );
7993
+ };
7994
+ jQuery.expr.pseudos.visible = function( elem ) {
7995
+ return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
7996
+ };
7997
+
7998
+
7999
+
8000
+
8001
+ // Support: Safari 8 only
8002
+ // In Safari 8 documents created via document.implementation.createHTMLDocument
8003
+ // collapse sibling forms: the second one becomes a child of the first one.
8004
+ // Because of that, this security measure has to be disabled in Safari 8.
8005
+ // https://bugs.webkit.org/show_bug.cgi?id=137337
8006
+ support.createHTMLDocument = ( function() {
8007
+ var body = document.implementation.createHTMLDocument( "" ).body;
8008
+ body.innerHTML = "<form></form><form></form>";
8009
+ return body.childNodes.length === 2;
8010
+ } )();
8011
+
8012
+
8013
+ // Argument "data" should be string of html
8014
+ // context (optional): If specified, the fragment will be created in this context,
8015
+ // defaults to document
8016
+ // keepScripts (optional): If true, will include scripts passed in the html string
8017
+ jQuery.parseHTML = function( data, context, keepScripts ) {
8018
+ if ( typeof data !== "string" ) {
8019
+ return [];
8020
+ }
8021
+ if ( typeof context === "boolean" ) {
8022
+ keepScripts = context;
8023
+ context = false;
8024
+ }
8025
+
8026
+ var base, parsed, scripts;
8027
+
8028
+ if ( !context ) {
8029
+
8030
+ // Stop scripts or inline event handlers from being executed immediately
8031
+ // by using document.implementation
8032
+ if ( support.createHTMLDocument ) {
8033
+ context = document.implementation.createHTMLDocument( "" );
8034
+
8035
+ // Set the base href for the created document
8036
+ // so any parsed elements with URLs
8037
+ // are based on the document's URL (gh-2965)
8038
+ base = context.createElement( "base" );
8039
+ base.href = document.location.href;
8040
+ context.head.appendChild( base );
8041
+ } else {
8042
+ context = document;
8043
+ }
8044
+ }
8045
+
8046
+ parsed = rsingleTag.exec( data );
8047
+ scripts = !keepScripts && [];
8048
+
8049
+ // Single tag
8050
+ if ( parsed ) {
8051
+ return [ context.createElement( parsed[ 1 ] ) ];
8052
+ }
8053
+
8054
+ parsed = buildFragment( [ data ], context, scripts );
8055
+
8056
+ if ( scripts && scripts.length ) {
8057
+ jQuery( scripts ).remove();
8058
+ }
8059
+
8060
+ return jQuery.merge( [], parsed.childNodes );
8061
+ };
8062
+
8063
+
8064
+ jQuery.offset = {
8065
+ setOffset: function( elem, options, i ) {
8066
+ var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
8067
+ position = jQuery.css( elem, "position" ),
8068
+ curElem = jQuery( elem ),
8069
+ props = {};
8070
+
8071
+ // Set position first, in-case top/left are set even on static elem
8072
+ if ( position === "static" ) {
8073
+ elem.style.position = "relative";
8074
+ }
8075
+
8076
+ curOffset = curElem.offset();
8077
+ curCSSTop = jQuery.css( elem, "top" );
8078
+ curCSSLeft = jQuery.css( elem, "left" );
8079
+ calculatePosition = ( position === "absolute" || position === "fixed" ) &&
8080
+ ( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
8081
+
8082
+ // Need to be able to calculate position if either
8083
+ // top or left is auto and position is either absolute or fixed
8084
+ if ( calculatePosition ) {
8085
+ curPosition = curElem.position();
8086
+ curTop = curPosition.top;
8087
+ curLeft = curPosition.left;
8088
+
8089
+ } else {
8090
+ curTop = parseFloat( curCSSTop ) || 0;
8091
+ curLeft = parseFloat( curCSSLeft ) || 0;
8092
+ }
8093
+
8094
+ if ( isFunction( options ) ) {
8095
+
8096
+ // Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
8097
+ options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
8098
+ }
8099
+
8100
+ if ( options.top != null ) {
8101
+ props.top = ( options.top - curOffset.top ) + curTop;
8102
+ }
8103
+ if ( options.left != null ) {
8104
+ props.left = ( options.left - curOffset.left ) + curLeft;
8105
+ }
8106
+
8107
+ if ( "using" in options ) {
8108
+ options.using.call( elem, props );
8109
+
8110
+ } else {
8111
+ curElem.css( props );
8112
+ }
8113
+ }
8114
+ };
8115
+
8116
+ jQuery.fn.extend( {
8117
+
8118
+ // offset() relates an element's border box to the document origin
8119
+ offset: function( options ) {
8120
+
8121
+ // Preserve chaining for setter
8122
+ if ( arguments.length ) {
8123
+ return options === undefined ?
8124
+ this :
8125
+ this.each( function( i ) {
8126
+ jQuery.offset.setOffset( this, options, i );
8127
+ } );
8128
+ }
8129
+
8130
+ var rect, win,
8131
+ elem = this[ 0 ];
8132
+
8133
+ if ( !elem ) {
8134
+ return;
8135
+ }
8136
+
8137
+ // Return zeros for disconnected and hidden (display: none) elements (gh-2310)
8138
+ // Support: IE <=11 only
8139
+ // Running getBoundingClientRect on a
8140
+ // disconnected node in IE throws an error
8141
+ if ( !elem.getClientRects().length ) {
8142
+ return { top: 0, left: 0 };
8143
+ }
8144
+
8145
+ // Get document-relative position by adding viewport scroll to viewport-relative gBCR
8146
+ rect = elem.getBoundingClientRect();
8147
+ win = elem.ownerDocument.defaultView;
8148
+ return {
8149
+ top: rect.top + win.pageYOffset,
8150
+ left: rect.left + win.pageXOffset
8151
+ };
8152
+ },
8153
+
8154
+ // position() relates an element's margin box to its offset parent's padding box
8155
+ // This corresponds to the behavior of CSS absolute positioning
8156
+ position: function() {
8157
+ if ( !this[ 0 ] ) {
8158
+ return;
8159
+ }
8160
+
8161
+ var offsetParent, offset, doc,
8162
+ elem = this[ 0 ],
8163
+ parentOffset = { top: 0, left: 0 };
8164
+
8165
+ // position:fixed elements are offset from the viewport, which itself always has zero offset
8166
+ if ( jQuery.css( elem, "position" ) === "fixed" ) {
8167
+
8168
+ // Assume position:fixed implies availability of getBoundingClientRect
8169
+ offset = elem.getBoundingClientRect();
8170
+
8171
+ } else {
8172
+ offset = this.offset();
8173
+
8174
+ // Account for the *real* offset parent, which can be the document or its root element
8175
+ // when a statically positioned element is identified
8176
+ doc = elem.ownerDocument;
8177
+ offsetParent = elem.offsetParent || doc.documentElement;
8178
+ while ( offsetParent &&
8179
+ ( offsetParent === doc.body || offsetParent === doc.documentElement ) &&
8180
+ jQuery.css( offsetParent, "position" ) === "static" ) {
8181
+
8182
+ offsetParent = offsetParent.parentNode;
8183
+ }
8184
+ if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {
8185
+
8186
+ // Incorporate borders into its offset, since they are outside its content origin
8187
+ parentOffset = jQuery( offsetParent ).offset();
8188
+ parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true );
8189
+ parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true );
8190
+ }
8191
+ }
8192
+
8193
+ // Subtract parent offsets and element margins
8194
+ return {
8195
+ top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
8196
+ left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
8197
+ };
8198
+ },
8199
+
8200
+ // This method will return documentElement in the following cases:
8201
+ // 1) For the element inside the iframe without offsetParent, this method will return
8202
+ // documentElement of the parent window
8203
+ // 2) For the hidden or detached element
8204
+ // 3) For body or html element, i.e. in case of the html node - it will return itself
8205
+ //
8206
+ // but those exceptions were never presented as a real life use-cases
8207
+ // and might be considered as more preferable results.
8208
+ //
8209
+ // This logic, however, is not guaranteed and can change at any point in the future
8210
+ offsetParent: function() {
8211
+ return this.map( function() {
8212
+ var offsetParent = this.offsetParent;
8213
+
8214
+ while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
8215
+ offsetParent = offsetParent.offsetParent;
8216
+ }
8217
+
8218
+ return offsetParent || documentElement;
8219
+ } );
8220
+ }
8221
+ } );
8222
+
8223
+ // Create scrollLeft and scrollTop methods
8224
+ jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
8225
+ var top = "pageYOffset" === prop;
8226
+
8227
+ jQuery.fn[ method ] = function( val ) {
8228
+ return access( this, function( elem, method, val ) {
8229
+
8230
+ // Coalesce documents and windows
8231
+ var win;
8232
+ if ( isWindow( elem ) ) {
8233
+ win = elem;
8234
+ } else if ( elem.nodeType === 9 ) {
8235
+ win = elem.defaultView;
8236
+ }
8237
+
8238
+ if ( val === undefined ) {
8239
+ return win ? win[ prop ] : elem[ method ];
8240
+ }
8241
+
8242
+ if ( win ) {
8243
+ win.scrollTo(
8244
+ !top ? val : win.pageXOffset,
8245
+ top ? val : win.pageYOffset
8246
+ );
8247
+
8248
+ } else {
8249
+ elem[ method ] = val;
8250
+ }
8251
+ }, method, val, arguments.length );
8252
+ };
8253
+ } );
8254
+
8255
+ // Support: Safari <=7 - 9.1, Chrome <=37 - 49
8256
+ // Add the top/left cssHooks using jQuery.fn.position
8257
+ // Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
8258
+ // Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
8259
+ // getComputedStyle returns percent when specified for top/left/bottom/right;
8260
+ // rather than make the css module depend on the offset module, just check for it here
8261
+ jQuery.each( [ "top", "left" ], function( i, prop ) {
8262
+ jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
8263
+ function( elem, computed ) {
8264
+ if ( computed ) {
8265
+ computed = curCSS( elem, prop );
8266
+
8267
+ // If curCSS returns percentage, fallback to offset
8268
+ return rnumnonpx.test( computed ) ?
8269
+ jQuery( elem ).position()[ prop ] + "px" :
8270
+ computed;
8271
+ }
8272
+ }
8273
+ );
8274
+ } );
8275
+
8276
+
8277
+ // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
8278
+ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
8279
+ jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
8280
+ function( defaultExtra, funcName ) {
8281
+
8282
+ // Margin is only for outerHeight, outerWidth
8283
+ jQuery.fn[ funcName ] = function( margin, value ) {
8284
+ var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
8285
+ extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
8286
+
8287
+ return access( this, function( elem, type, value ) {
8288
+ var doc;
8289
+
8290
+ if ( isWindow( elem ) ) {
8291
+
8292
+ // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
8293
+ return funcName.indexOf( "outer" ) === 0 ?
8294
+ elem[ "inner" + name ] :
8295
+ elem.document.documentElement[ "client" + name ];
8296
+ }
8297
+
8298
+ // Get document width or height
8299
+ if ( elem.nodeType === 9 ) {
8300
+ doc = elem.documentElement;
8301
+
8302
+ // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
8303
+ // whichever is greatest
8304
+ return Math.max(
8305
+ elem.body[ "scroll" + name ], doc[ "scroll" + name ],
8306
+ elem.body[ "offset" + name ], doc[ "offset" + name ],
8307
+ doc[ "client" + name ]
8308
+ );
8309
+ }
8310
+
8311
+ return value === undefined ?
8312
+
8313
+ // Get width or height on the element, requesting but not forcing parseFloat
8314
+ jQuery.css( elem, type, extra ) :
8315
+
8316
+ // Set width or height on the element
8317
+ jQuery.style( elem, type, value, extra );
8318
+ }, type, chainable ? margin : undefined, chainable );
8319
+ };
8320
+ } );
8321
+ } );
8322
+
8323
+
8324
+ jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
8325
+ "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
8326
+ "change select submit keydown keypress keyup contextmenu" ).split( " " ),
8327
+ function( i, name ) {
8328
+
8329
+ // Handle event binding
8330
+ jQuery.fn[ name ] = function( data, fn ) {
8331
+ return arguments.length > 0 ?
8332
+ this.on( name, null, data, fn ) :
8333
+ this.trigger( name );
8334
+ };
8335
+ } );
8336
+
8337
+ jQuery.fn.extend( {
8338
+ hover: function( fnOver, fnOut ) {
8339
+ return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
8340
+ }
8341
+ } );
8342
+
8343
+
8344
+
8345
+
8346
+ jQuery.fn.extend( {
8347
+
8348
+ bind: function( types, data, fn ) {
8349
+ return this.on( types, null, data, fn );
8350
+ },
8351
+ unbind: function( types, fn ) {
8352
+ return this.off( types, null, fn );
8353
+ },
8354
+
8355
+ delegate: function( selector, types, data, fn ) {
8356
+ return this.on( types, selector, data, fn );
8357
+ },
8358
+ undelegate: function( selector, types, fn ) {
8359
+
8360
+ // ( namespace ) or ( selector, types [, fn] )
8361
+ return arguments.length === 1 ?
8362
+ this.off( selector, "**" ) :
8363
+ this.off( types, selector || "**", fn );
8364
+ }
8365
+ } );
8366
+
8367
+ // Bind a function to a context, optionally partially applying any
8368
+ // arguments.
8369
+ // jQuery.proxy is deprecated to promote standards (specifically Function#bind)
8370
+ // However, it is not slated for removal any time soon
8371
+ jQuery.proxy = function( fn, context ) {
8372
+ var tmp, args, proxy;
8373
+
8374
+ if ( typeof context === "string" ) {
8375
+ tmp = fn[ context ];
8376
+ context = fn;
8377
+ fn = tmp;
8378
+ }
8379
+
8380
+ // Quick check to determine if target is callable, in the spec
8381
+ // this throws a TypeError, but we will just return undefined.
8382
+ if ( !isFunction( fn ) ) {
8383
+ return undefined;
8384
+ }
8385
+
8386
+ // Simulated bind
8387
+ args = slice.call( arguments, 2 );
8388
+ proxy = function() {
8389
+ return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
8390
+ };
8391
+
8392
+ // Set the guid of unique handler to the same of original handler, so it can be removed
8393
+ proxy.guid = fn.guid = fn.guid || jQuery.guid++;
8394
+
8395
+ return proxy;
8396
+ };
8397
+
8398
+ jQuery.holdReady = function( hold ) {
8399
+ if ( hold ) {
8400
+ jQuery.readyWait++;
8401
+ } else {
8402
+ jQuery.ready( true );
8403
+ }
8404
+ };
8405
+ jQuery.isArray = Array.isArray;
8406
+ jQuery.parseJSON = JSON.parse;
8407
+ jQuery.nodeName = nodeName;
8408
+ jQuery.isFunction = isFunction;
8409
+ jQuery.isWindow = isWindow;
8410
+ jQuery.camelCase = camelCase;
8411
+ jQuery.type = toType;
8412
+
8413
+ jQuery.now = Date.now;
8414
+
8415
+ jQuery.isNumeric = function( obj ) {
8416
+
8417
+ // As of jQuery 3.0, isNumeric is limited to
8418
+ // strings and numbers (primitives or objects)
8419
+ // that can be coerced to finite numbers (gh-2662)
8420
+ var type = jQuery.type( obj );
8421
+ return ( type === "number" || type === "string" ) &&
8422
+
8423
+ // parseFloat NaNs numeric-cast false positives ("")
8424
+ // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
8425
+ // subtraction forces infinities to NaN
8426
+ !isNaN( obj - parseFloat( obj ) );
8427
+ };
8428
+
8429
+
8430
+
8431
+
8432
+ // Register as a named AMD module, since jQuery can be concatenated with other
8433
+ // files that may use define, but not via a proper concatenation script that
8434
+ // understands anonymous AMD modules. A named AMD is safest and most robust
8435
+ // way to register. Lowercase jquery is used because AMD module names are
8436
+ // derived from file names, and jQuery is normally delivered in a lowercase
8437
+ // file name. Do this after creating the global so that if an AMD module wants
8438
+ // to call noConflict to hide this version of jQuery, it will work.
8439
+
8440
+ // Note that for maximum portability, libraries that are not jQuery should
8441
+ // declare themselves as anonymous modules, and avoid setting a global if an
8442
+ // AMD loader is present. jQuery is a special case. For more information, see
8443
+ // https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
8444
+
8445
+ if ( typeof define === "function" && define.amd ) {
8446
+ define( "jquery", [], function() {
8447
+ return jQuery;
8448
+ } );
8449
+ }
8450
+
8451
+
8452
+
8453
+
8454
+ var
8455
+
8456
+ // Map over jQuery in case of overwrite
8457
+ _jQuery = window.jQuery,
8458
+
8459
+ // Map over the $ in case of overwrite
8460
+ _$ = window.$;
8461
+
8462
+ jQuery.noConflict = function( deep ) {
8463
+ if ( window.$ === jQuery ) {
8464
+ window.$ = _$;
8465
+ }
8466
+
8467
+ if ( deep && window.jQuery === jQuery ) {
8468
+ window.jQuery = _jQuery;
8469
+ }
8470
+
8471
+ return jQuery;
8472
+ };
8473
+
8474
+ // Expose jQuery and $ identifiers, even in AMD
8475
+ // (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
8476
+ // and CommonJS for browser emulators (#13566)
8477
+ if ( !noGlobal ) {
8478
+ window.jQuery = window.$ = jQuery;
8479
+ }
8480
+
8481
+
8482
+
8483
+
8484
+ return jQuery;
8485
+ } );
js/jquery-3.4.0.slim.min.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /*! jQuery v3.4.0 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector | (c) JS Foundation and other contributors | jquery.org/license */
2
+ !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(g,e){"use strict";var t=[],v=g.document,r=Object.getPrototypeOf,s=t.slice,y=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,m=n.hasOwnProperty,a=m.toString,l=a.call(Object),b={},x=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},w=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function C(e,t,n){var r,i,o=(n=n||v).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function T(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.0 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector",E=function(e,t){return new E.fn.init(e,t)},d=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function p(e){var t=!!e&&"length"in e&&e.length,n=T(e);return!x(e)&&!w(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}E.fn=E.prototype={jquery:f,constructor:E,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=E.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return E.each(this,e)},map:function(n){return this.pushStack(E.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},E.extend=E.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||x(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(E.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||E.isPlainObject(n)?n:{},i=!1,a[t]=E.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},E.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=m.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){C(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(d,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?E.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return y.apply([],a)},guid:1,support:b}),"function"==typeof Symbol&&(E.fn[Symbol.iterator]=t[Symbol.iterator]),E.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,p,x,o,i,h,f,g,w,u,l,C,T,a,E,v,s,c,y,N="sizzle"+1*new Date,m=n.document,k=0,r=0,d=ue(),b=ue(),A=ue(),S=ue(),D=function(e,t){return e===t&&(l=!0),0},L={}.hasOwnProperty,t=[],j=t.pop,q=t.push,O=t.push,P=t.slice,H=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},I="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",R="[\\x20\\t\\r\\n\\f]",B="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+R+"*("+B+")(?:"+R+"*([*^$|!~]?=)"+R+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+B+"))|)"+R+"*\\]",W=":("+B+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",$=new RegExp(R+"+","g"),F=new RegExp("^"+R+"+|((?:^|[^\\\\])(?:\\\\.)*)"+R+"+$","g"),z=new RegExp("^"+R+"*,"+R+"*"),_=new RegExp("^"+R+"*([>+~]|"+R+")"+R+"*"),U=new RegExp(R+"|>"),V=new RegExp(W),X=new RegExp("^"+B+"$"),Q={ID:new RegExp("^#("+B+")"),CLASS:new RegExp("^\\.("+B+")"),TAG:new RegExp("^("+B+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+W),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("^(?:"+I+")$","i"),needsContext:new RegExp("^"+R+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+R+"*((?:-\\d)?\\d*)"+R+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,G=/^(?:input|select|textarea|button)$/i,K=/^h\d$/i,J=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+R+"?|("+R+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){C()},ae=xe(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{O.apply(t=P.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){O={apply:t.length?function(e,t){q.apply(e,P.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,d=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==d&&9!==d&&11!==d)return n;if(!r&&((e?e.ownerDocument||e:m)!==T&&C(e),e=e||T,E)){if(11!==d&&(u=Z.exec(t)))if(i=u[1]){if(9===d){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return O.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&p.getElementsByClassName&&e.getElementsByClassName)return O.apply(n,e.getElementsByClassName(i)),n}if(p.qsa&&!S[t+" "]&&(!v||!v.test(t))&&(1!==d||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===d&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=N),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+be(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return O.apply(n,f.querySelectorAll(c)),n}catch(e){S(t,!0)}finally{s===N&&e.removeAttribute("id")}}}return g(t.replace(F,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>x.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[N]=!0,e}function ce(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)x.attrHandle[n[r]]=t}function de(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function pe(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in p=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},C=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==T&&9===r.nodeType&&r.documentElement&&(a=(T=r).documentElement,E=!i(T),m!==T&&(n=T.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),p.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),p.getElementsByTagName=ce(function(e){return e.appendChild(T.createComment("")),!e.getElementsByTagName("*").length}),p.getElementsByClassName=J.test(T.getElementsByClassName),p.getById=ce(function(e){return a.appendChild(e).id=N,!T.getElementsByName||!T.getElementsByName(N).length}),p.getById?(x.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},x.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(x.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},x.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),x.find.TAG=p.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):p.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},x.find.CLASS=p.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(p.qsa=J.test(T.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+N+"'></a><select id='"+N+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+R+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+R+"*(?:value|"+I+")"),e.querySelectorAll("[id~="+N+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+N+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=T.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+R+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(p.matchesSelector=J.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){p.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",W)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=J.test(a.compareDocumentPosition),y=t||J.test(a.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)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!p.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument===m&&y(m,e)?-1:t===T||t.ownerDocument===m&&y(m,t)?1:u?H(u,e)-H(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===T?-1:t===T?1:i?-1:o?1:u?H(u,e)-H(u,t):0;if(i===o)return de(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?de(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),T},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==T&&C(e),p.matchesSelector&&E&&!S[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||p.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){S(t,!0)}return 0<se(t,T,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==T&&C(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==T&&C(e);var n=x.attrHandle[t.toLowerCase()],r=n&&L.call(x.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:p.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!p.detectDuplicates,u=!p.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.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+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(x=se.selectors={cacheLength:50,createPseudo:le,match:Q,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(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===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]||se.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]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&V.test(n)&&(t=h(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(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=d[e+" "];return t||(t=new RegExp("(^|"+R+")"+e+"("+R+"|$)"))&&d(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace($," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),b="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=b&&e.nodeName.toLowerCase(),d=!n&&!b,p=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(b?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&d){p=(s=(r=(i=(o=(a=c)[N]||(a[N]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(p=s=0)||u.pop())if(1===a.nodeType&&++p&&a===e){i[h]=[k,s,p];break}}else if(d&&(p=s=(r=(i=(o=(a=e)[N]||(a[N]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===p)while(a=++s&&a&&a[l]||(p=s=0)||u.pop())if((b?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++p&&(d&&((i=(o=a[N]||(a[N]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,p]),a===e))break;return(p-=v)===g||p%g==0&&0<=p/g}}},PSEUDO:function(e,o){var t,a=x.pseudos[e]||x.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[N]?a(o):1<a.length?(t=[e,e,"",o],x.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=H(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(F,"$1"));return s[N]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return X.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===T.activeElement&&(!T.hasFocus||T.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!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,!0===e.selected},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 K.test(e.nodeName)},input:function(e){return G.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:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=x.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})x.pseudos[e]=pe(e);for(e in{submit:!0,reset:!0})x.pseudos[e]=he(e);function me(){}function be(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function xe(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,d=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,d];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[N]||(e[N]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===d)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Ce(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Te(p,h,g,v,y,e){return v&&!v[N]&&(v=Te(v)),y&&!y[N]&&(y=Te(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!p||!e&&h?c:Ce(c,s,p,n,r),d=g?y||(e?p:l||v)?[]:t:f;if(g&&g(f,d,n,r),v){i=Ce(d,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(d[u[o]]=!(f[u[o]]=a))}if(e){if(y||p){if(y){i=[],o=d.length;while(o--)(a=d[o])&&i.push(f[o]=a);y(null,d=[],i,r)}o=d.length;while(o--)(a=d[o])&&-1<(i=y?H(e,a):s[o])&&(e[i]=!(t[i]=a))}}else d=Ce(d===t?d.splice(l,d.length):d),y?y(null,t,d,r):O.apply(t,d)})}function Ee(e){for(var i,t,n,r=e.length,o=x.relative[e[0].type],a=o||x.relative[" "],s=o?1:0,u=xe(function(e){return e===i},a,!0),l=xe(function(e){return-1<H(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=x.relative[e[s].type])c=[xe(we(c),t)];else{if((t=x.filter[e[s].type].apply(null,e[s].matches))[N]){for(n=++s;n<r;n++)if(x.relative[e[n].type])break;return Te(1<s&&we(c),1<s&&be(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(F,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&be(e))}c.push(t)}return we(c)}return me.prototype=x.filters=x.pseudos,x.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=b[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=x.preFilter;while(a){for(o in n&&!(r=z.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=_.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(F," ")}),a=a.slice(n.length)),x.filter)!(r=Q[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):b(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,b,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[N]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,b=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],d=w,p=e||b&&x.find.TAG("*",i),h=k+=null==d?1:Math.random()||.1,g=p.length;for(i&&(w=t===T||t||i);l!==g&&null!=(o=p[l]);l++){if(b&&o){a=0,t||o.ownerDocument===T||(C(o),n=!E);while(s=v[a++])if(s(o,t||T,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=j.call(r));f=Ce(f)}O.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=d),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&x.relative[o[1].type]){if(!(t=(x.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=Q.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],x.relative[s=a.type])break;if((u=x.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&be(o)))return O.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},p.sortStable=N.split("").sort(D).join("")===N,p.detectDuplicates=!!l,C(),p.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(T.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),p.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(I,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(g);E.find=h,E.expr=h.selectors,E.expr[":"]=E.expr.pseudos,E.uniqueSort=E.unique=h.uniqueSort,E.text=h.getText,E.isXMLDoc=h.isXML,E.contains=h.contains,E.escapeSelector=h.escape;var N=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&E(e).is(n))break;r.push(e)}return r},k=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},A=E.expr.match.needsContext;function S(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function L(e,n,r){return x(n)?E.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?E.grep(e,function(e){return e===n!==r}):"string"!=typeof n?E.grep(e,function(e){return-1<i.call(n,e)!==r}):E.filter(n,e,r)}E.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?E.find.matchesSelector(r,e)?[r]:[]:E.find.matches(e,E.grep(t,function(e){return 1===e.nodeType}))},E.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(E(e).filter(function(){for(t=0;t<r;t++)if(E.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)E.find(e,i[t],n);return 1<r?E.uniqueSort(n):n},filter:function(e){return this.pushStack(L(this,e||[],!1))},not:function(e){return this.pushStack(L(this,e||[],!0))},is:function(e){return!!L(this,"string"==typeof e&&A.test(e)?E(e):e||[],!1).length}});var j,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(E.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof E?t[0]:t,E.merge(this,E.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:v,!0)),D.test(r[1])&&E.isPlainObject(t))for(r in t)x(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=v.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):x(e)?void 0!==n.ready?n.ready(e):e(E):E.makeArray(e,this)}).prototype=E.fn,j=E(v);var O=/^(?:parents|prev(?:Until|All))/,P={children:!0,contents:!0,next:!0,prev:!0};function H(e,t){while((e=e[t])&&1!==e.nodeType);return e}E.fn.extend({has:function(e){var t=E(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(E.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&E(e);if(!A.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&E.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?E.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(E(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(E.uniqueSort(E.merge(this.get(),E(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),E.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return N(e,"parentNode")},parentsUntil:function(e,t,n){return N(e,"parentNode",n)},next:function(e){return H(e,"nextSibling")},prev:function(e){return H(e,"previousSibling")},nextAll:function(e){return N(e,"nextSibling")},prevAll:function(e){return N(e,"previousSibling")},nextUntil:function(e,t,n){return N(e,"nextSibling",n)},prevUntil:function(e,t,n){return N(e,"previousSibling",n)},siblings:function(e){return k((e.parentNode||{}).firstChild,e)},children:function(e){return k(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(S(e,"template")&&(e=e.content||e),E.merge([],e.childNodes))}},function(r,i){E.fn[r]=function(e,t){var n=E.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=E.filter(t,n)),1<this.length&&(P[r]||E.uniqueSort(n),O.test(r)&&n.reverse()),this.pushStack(n)}});var I=/[^\x20\t\r\n\f]+/g;function R(e){return e}function B(e){throw e}function M(e,t,n,r){var i;try{e&&x(i=e.promise)?i.call(e).done(t).fail(n):e&&x(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}E.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},E.each(e.match(I)||[],function(e,t){n[t]=!0}),n):E.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){E.each(e,function(e,t){x(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==T(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return E.each(arguments,function(e,t){var n;while(-1<(n=E.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<E.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},E.extend({Deferred:function(e){var o=[["notify","progress",E.Callbacks("memory"),E.Callbacks("memory"),2],["resolve","done",E.Callbacks("once memory"),E.Callbacks("once memory"),0,"resolved"],["reject","fail",E.Callbacks("once memory"),E.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return E.Deferred(function(r){E.each(o,function(e,t){var n=x(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&x(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,x(t)?s?t.call(e,l(u,o,R,s),l(u,o,B,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,B,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){E.Deferred.exceptionHook&&E.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==B&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(E.Deferred.getStackHook&&(t.stackTrace=E.Deferred.getStackHook()),g.setTimeout(t))}}return E.Deferred(function(e){o[0][3].add(l(0,e,x(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,x(t)?t:R)),o[2][3].add(l(0,e,x(n)?n:B))}).promise()},promise:function(e){return null!=e?E.extend(e,a):a}},s={};return E.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=E.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(M(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||x(i[t]&&i[t].then)))return o.then();while(t--)M(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;E.Deferred.exceptionHook=function(e,t){g.console&&g.console.warn&&e&&W.test(e.name)&&g.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},E.readyException=function(e){g.setTimeout(function(){throw e})};var $=E.Deferred();function F(){v.removeEventListener("DOMContentLoaded",F),g.removeEventListener("load",F),E.ready()}E.fn.ready=function(e){return $.then(e)["catch"](function(e){E.readyException(e)}),this},E.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--E.readyWait:E.isReady)||(E.isReady=!0)!==e&&0<--E.readyWait||$.resolveWith(v,[E])}}),E.ready.then=$.then,"complete"===v.readyState||"loading"!==v.readyState&&!v.documentElement.doScroll?g.setTimeout(E.ready):(v.addEventListener("DOMContentLoaded",F),g.addEventListener("load",F));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===T(n))for(s in i=!0,n)z(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,x(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(E(e),n)})),t))for(;s<u;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},_=/^-ms-/,U=/-([a-z])/g;function V(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(U,V)}var Q=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=E.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Q(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(I)||[]).length;while(n--)delete r[t[n]]}(void 0===t||E.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!E.isEmptyObject(t)}};var G=new Y,K=new Y,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}K.set(e,t,n)}else n=void 0;return n}E.extend({hasData:function(e){return K.hasData(e)||G.hasData(e)},data:function(e,t,n){return K.access(e,t,n)},removeData:function(e,t){K.remove(e,t)},_data:function(e,t,n){return G.access(e,t,n)},_removeData:function(e,t){G.remove(e,t)}}),E.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=K.get(o),1===o.nodeType&&!G.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),ee(o,r,i[r]));G.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){K.set(this,n)}):z(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=K.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){K.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),E.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=G.get(e,t),n&&(!r||Array.isArray(n)?r=G.access(e,t,E.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=E.queue(e,t),r=n.length,i=n.shift(),o=E._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){E.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return G.get(e,n)||G.access(e,n,{empty:E.Callbacks("once memory").add(function(){G.remove(e,[t+"queue",n])})})}}),E.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?E.queue(this[0],t):void 0===n?this:this.each(function(){var e=E.queue(this,t,n);E._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&E.dequeue(this,t)})},dequeue:function(e){return this.each(function(){E.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=E.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=G.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=v.documentElement,oe=function(e){return E.contains(e.ownerDocument,e)},ae={composed:!0};ie.attachShadow&&(oe=function(e){return E.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===E.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};var le={};function ce(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=G.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=le[s])||(o=a.body.appendChild(a.createElement(s)),u=E.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),le[s]=u)))):"none"!==n&&(l[c]="none",G.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}E.fn.extend({show:function(){return ce(this,!0)},hide:function(){return ce(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?E(this).show():E(this).hide()})}});var fe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,pe=/^$|^module$|\/(?:java|ecma)script/i,he={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ge(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&S(e,t)?E.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)G.set(e[n],"globalEval",!t||G.get(t[n],"globalEval"))}he.optgroup=he.option,he.tbody=he.tfoot=he.colgroup=he.caption=he.thead,he.th=he.td;var ye,me,be=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),d=[],p=0,h=e.length;p<h;p++)if((o=e[p])||0===o)if("object"===T(o))E.merge(d,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=he[s]||he._default,a.innerHTML=u[1]+E.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;E.merge(d,a.childNodes),(a=f.firstChild).textContent=""}else d.push(t.createTextNode(o));f.textContent="",p=0;while(o=d[p++])if(r&&-1<E.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ge(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])pe.test(o.type||"")&&n.push(o)}return f}ye=v.createDocumentFragment().appendChild(v.createElement("div")),(me=v.createElement("input")).setAttribute("type","radio"),me.setAttribute("checked","checked"),me.setAttribute("name","t"),ye.appendChild(me),b.checkClone=ye.cloneNode(!0).cloneNode(!0).lastChild.checked,ye.innerHTML="<textarea>x</textarea>",b.noCloneChecked=!!ye.cloneNode(!0).lastChild.defaultValue;var we=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Te=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function Ne(){return!1}function ke(e,t){return e===function(){try{return v.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(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)),!1===i)i=Ne;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return E().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=E.guid++)),e.each(function(){E.event.add(this,t,i,r,n)})}function Se(e,i,o){o?(G.set(e,i,!1),E.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=G.get(this,i);if(1&e.isTrigger&&this[i]){if(r)(E.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),G.set(this,i,r),t=o(this,i),this[i](),r!==(n=G.get(this,i))||t?G.set(this,i,!1):n=void 0,r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n}else r&&(G.set(this,i,E.event.trigger(E.extend(r.shift(),E.Event.prototype),r,this)),e.stopImmediatePropagation())}})):E.event.add(e,i,Ee)}E.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,d,p,h,g,v=G.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&E.find.matchesSelector(ie,i),n.guid||(n.guid=E.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof E&&E.event.triggered!==e.type?E.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(I)||[""]).length;while(l--)p=g=(s=Te.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),p&&(f=E.event.special[p]||{},p=(i?f.delegateType:f.bindType)||p,f=E.event.special[p]||{},c=E.extend({type:p,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&E.expr.match.needsContext.test(i),namespace:h.join(".")},o),(d=u[p])||((d=u[p]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(p,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,c):d.push(c),E.event.global[p]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,d,p,h,g,v=G.hasData(e)&&G.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(I)||[""]).length;while(l--)if(p=g=(s=Te.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),p){f=E.event.special[p]||{},d=u[p=(r?f.delegateType:f.bindType)||p]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=d.length;while(o--)c=d[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(d.splice(o,1),c.selector&&d.delegateCount--,f.remove&&f.remove.call(e,c));a&&!d.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||E.removeEvent(e,p,v.handle),delete u[p])}else for(p in u)E.event.remove(e,p+t[l],n,r,!0);E.isEmptyObject(u)&&G.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=E.event.fix(e),u=new Array(arguments.length),l=(G.get(this,"events")||{})[s.type]||[],c=E.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=E.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((E.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<E(i,this).index(l):E.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(E.Event.prototype,t,{enumerable:!0,configurable:!0,get:x(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[E.expando]?e:new E.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return fe.test(t.type)&&t.click&&S(t,"input")&&void 0===G.get(t,"click")&&Se(t,"click",Ee),!1},trigger:function(e){var t=this||e;return fe.test(t.type)&&t.click&&S(t,"input")&&void 0===G.get(t,"click")&&Se(t,"click"),!0},_default:function(e){var t=e.target;return fe.test(t.type)&&t.click&&S(t,"input")&&G.get(t,"click")||S(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},E.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},E.Event=function(e,t){if(!(this instanceof E.Event))return new E.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ee:Ne,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&E.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[E.expando]=!0},E.Event.prototype={constructor:E.Event,isDefaultPrevented:Ne,isPropagationStopped:Ne,isImmediatePropagationStopped:Ne,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ee,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ee,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ee,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},E.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&we.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},E.event.addProp),E.each({focus:"focusin",blur:"focusout"},function(e,t){E.event.special[e]={setup:function(){return Se(this,e,ke),!1},trigger:function(){return Se(this,e),!0},delegateType:t}}),E.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){E.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||E.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),E.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,E(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!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Ne),this.each(function(){E.event.remove(this,e,n,t)})}});var De=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Le=/<script|<style|<link/i,je=/checked\s*(?:[^=]|=\s*.checked.)/i,qe=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return S(e,"table")&&S(11!==t.nodeType?t:t.firstChild,"tr")&&E(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Ie(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(G.hasData(e)&&(o=G.access(e),a=G.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)E.event.add(t,i,l[i][n]);K.hasData(e)&&(s=K.access(e),u=E.extend({},s),K.set(t,u))}}function Re(n,r,i,o){r=y.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,d=f-1,p=r[0],h=x(p);if(h||1<f&&"string"==typeof p&&!b.checkClone&&je.test(p))return n.each(function(e){var t=n.eq(e);h&&(r[0]=p.call(this,e,t.html())),Re(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=E.map(ge(e,"script"),Pe)).length;c<f;c++)u=e,c!==d&&(u=E.clone(u,!0,!0),s&&E.merge(a,ge(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,E.map(a,He),c=0;c<s;c++)u=a[c],pe.test(u.type||"")&&!G.access(u,"globalEval")&&E.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?E._evalUrl&&!u.noModule&&E._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):C(u.textContent.replace(qe,""),u,l))}return n}function Be(e,t,n){for(var r,i=t?E.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||E.cleanData(ge(r)),r.parentNode&&(n&&oe(r)&&ve(ge(r,"script")),r.parentNode.removeChild(r));return e}E.extend({htmlPrefilter:function(e){return e.replace(De,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(b.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||E.isXMLDoc(e)))for(a=ge(c),r=0,i=(o=ge(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&fe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ge(e),a=a||ge(c),r=0,i=o.length;r<i;r++)Ie(o[r],a[r]);else Ie(e,c);return 0<(a=ge(c,"script")).length&&ve(a,!f&&ge(e,"script")),c},cleanData:function(e){for(var t,n,r,i=E.event.special,o=0;void 0!==(n=e[o]);o++)if(Q(n)){if(t=n[G.expando]){if(t.events)for(r in t.events)i[r]?E.event.remove(n,r):E.removeEvent(n,r,t.handle);n[G.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),E.fn.extend({detach:function(e){return Be(this,e,!0)},remove:function(e){return Be(this,e)},text:function(e){return z(this,function(e){return void 0===e?E.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(E.cleanData(ge(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return E.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Le.test(e)&&!he[(de.exec(e)||["",""])[1].toLowerCase()]){e=E.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(E.cleanData(ge(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Re(this,arguments,function(e){var t=this.parentNode;E.inArray(this,n)<0&&(E.cleanData(ge(this)),t&&t.replaceChild(e,this))},n)}}),E.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){E.fn[e]=function(e){for(var t,n=[],r=E(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),E(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Me=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),We=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=g),t.getComputedStyle(e)},$e=new RegExp(re.join("|"),"i");function Fe(e,t,n){var r,i,o,a,s=e.style;return(n=n||We(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=E.style(e,t)),!b.pixelBoxStyles()&&Me.test(a)&&$e.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}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=g.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=v.createElement("div"),u=v.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",b.clearCloneStyle="content-box"===u.style.backgroundClip,E.extend(b,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var _e=["Webkit","Moz","ms"],Ue=v.createElement("div").style,Ve={};function Xe(e){var t=E.cssProps[e]||Ve[e];return t||(e in Ue?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=_e.length;while(n--)if((e=_e[n]+t)in Ue)return e}(e)||e)}var Qe,Ye,Ge=/^(none|table(?!-c[ea]).+)/,Ke=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ze={letterSpacing:"0",fontWeight:"400"};function et(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function tt(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=E.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=E.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=E.css(e,"border"+re[a]+"Width",!0,i))):(u+=E.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=E.css(e,"border"+re[a]+"Width",!0,i):s+=E.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function nt(e,t,n){var r=We(e),i=(!b.boxSizingReliable()||n)&&"border-box"===E.css(e,"boxSizing",!1,r),o=i,a=Fe(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Me.test(a)){if(!n)return a;a="auto"}return(!b.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===E.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===E.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+tt(e,t,n||(i?"border":"content"),o,r,a)+"px"}E.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Ke.test(t),l=e.style;if(u||(t=Xe(s)),a=E.cssHooks[t]||E.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=function(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return E.css(e,t,"")},u=s(),l=n&&n[3]||(E.cssNumber[t]?"":"px"),c=e.nodeType&&(E.cssNumber[t]||"px"!==l&&+u)&&ne.exec(E.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)E.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,E.style(e,t,c+l),n=n||[]}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}(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(E.cssNumber[s]?"":"px")),b.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Ke.test(t)||(t=Xe(s)),(a=E.cssHooks[t]||E.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ze&&(i=Ze[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),E.each(["height","width"],function(e,u){E.cssHooks[u]={get:function(e,t,n){if(t)return!Ge.test(E.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?nt(e,u,n):ue(e,Je,function(){return nt(e,u,n)})},set:function(e,t,n){var r,i=We(e),o=!b.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===E.css(e,"boxSizing",!1,i),s=n?tt(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-tt(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=E.css(e,u)),et(0,t,s)}}}),E.cssHooks.marginLeft=ze(b.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),E.each({margin:"",padding:"",border:"Width"},function(i,o){E.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(E.cssHooks[i+o].set=et)}),E.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=We(e),i=t.length;a<i;a++)o[t[a]]=E.css(e,t[a],!1,r);return o}return void 0!==n?E.style(e,t,n):E.css(e,t)},e,t,1<arguments.length)}}),E.fn.delay=function(r,e){return r=E.fx&&E.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=g.setTimeout(e,r);t.stop=function(){g.clearTimeout(n)}})},Qe=v.createElement("input"),Ye=v.createElement("select").appendChild(v.createElement("option")),Qe.type="checkbox",b.checkOn=""!==Qe.value,b.optSelected=Ye.selected,(Qe=v.createElement("input")).value="t",Qe.type="radio",b.radioValue="t"===Qe.value;var rt,it=E.expr.attrHandle;E.fn.extend({attr:function(e,t){return z(this,E.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){E.removeAttr(this,e)})}}),E.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?E.prop(e,t,n):(1===o&&E.isXMLDoc(e)||(i=E.attrHooks[t.toLowerCase()]||(E.expr.match.bool.test(t)?rt:void 0)),void 0!==n?null===n?void E.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:null==(r=E.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!b.radioValue&&"radio"===t&&S(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(I);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),rt={set:function(e,t,n){return!1===t?E.removeAttr(e,n):e.setAttribute(n,n),n}},E.each(E.expr.match.bool.source.match(/\w+/g),function(e,t){var a=it[t]||E.find.attr;it[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=it[o],it[o]=r,r=null!=a(e,t,n)?o:null,it[o]=i),r}});var ot=/^(?:input|select|textarea|button)$/i,at=/^(?:a|area)$/i;function st(e){return(e.match(I)||[]).join(" ")}function ut(e){return e.getAttribute&&e.getAttribute("class")||""}function lt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(I)||[]}E.fn.extend({prop:function(e,t){return z(this,E.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[E.propFix[e]||e]})}}),E.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&E.isXMLDoc(e)||(t=E.propFix[t]||t,i=E.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=E.find.attr(e,"tabindex");return t?parseInt(t,10):ot.test(e.nodeName)||at.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),b.optSelected||(E.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),E.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){E.propFix[this.toLowerCase()]=this}),E.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(x(t))return this.each(function(e){E(this).addClass(t.call(this,e,ut(this)))});if((e=lt(t)).length)while(n=this[u++])if(i=ut(n),r=1===n.nodeType&&" "+st(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=st(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(x(t))return this.each(function(e){E(this).removeClass(t.call(this,e,ut(this)))});if(!arguments.length)return this.attr("class","");if((e=lt(t)).length)while(n=this[u++])if(i=ut(n),r=1===n.nodeType&&" "+st(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=st(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):x(i)?this.each(function(e){E(this).toggleClass(i.call(this,e,ut(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=E(this),r=lt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=ut(this))&&G.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":G.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+st(ut(n))+" ").indexOf(t))return!0;return!1}});var ct=/\r/g;E.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=x(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,E(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=E.map(t,function(e){return null==e?"":e+""})),(r=E.valHooks[this.type]||E.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=E.valHooks[t.type]||E.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(ct,""):null==e?"":e:void 0}}),E.extend({valHooks:{option:{get:function(e){var t=E.find.attr(e,"value");return null!=t?t:st(E.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!S(n.parentNode,"optgroup"))){if(t=E(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=E.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<E.inArray(E.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),E.each(["radio","checkbox"],function(){E.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<E.inArray(E(e).val(),t)}},b.checkOn||(E.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),b.focusin="onfocusin"in g;var ft=/^(?:focusinfocus|focusoutblur)$/,dt=function(e){e.stopPropagation()};E.extend(E.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,d=[n||v],p=m.call(e,"type")?e.type:e,h=m.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||v,3!==n.nodeType&&8!==n.nodeType&&!ft.test(p+E.event.triggered)&&(-1<p.indexOf(".")&&(p=(h=p.split(".")).shift(),h.sort()),u=p.indexOf(":")<0&&"on"+p,(e=e[E.expando]?e:new E.Event(p,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:E.makeArray(t,[e]),c=E.event.special[p]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!w(n)){for(s=c.delegateType||p,ft.test(s+p)||(o=o.parentNode);o;o=o.parentNode)d.push(o),a=o;a===(n.ownerDocument||v)&&d.push(a.defaultView||a.parentWindow||g)}i=0;while((o=d[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||p,(l=(G.get(o,"events")||{})[e.type]&&G.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&Q(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=p,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(d.pop(),t)||!Q(n)||u&&x(n[p])&&!w(n)&&((a=n[u])&&(n[u]=null),E.event.triggered=p,e.isPropagationStopped()&&f.addEventListener(p,dt),n[p](),e.isPropagationStopped()&&f.removeEventListener(p,dt),E.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=E.extend(new E.Event,n,{type:e,isSimulated:!0});E.event.trigger(r,null,t)}}),E.fn.extend({trigger:function(e,t){return this.each(function(){E.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return E.event.trigger(e,t,n,!0)}}),b.focusin||E.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){E.event.simulate(r,e.target,E.event.fix(e))};E.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=G.access(e,r);t||e.addEventListener(n,i,!0),G.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=G.access(e,r)-1;t?G.access(e,r,t):(e.removeEventListener(n,i,!0),G.remove(e,r))}}});var pt,ht=/\[\]$/,gt=/\r?\n/g,vt=/^(?:submit|button|image|reset|file)$/i,yt=/^(?:input|select|textarea|keygen)/i;function mt(n,e,r,i){var t;if(Array.isArray(e))E.each(e,function(e,t){r||ht.test(n)?i(n,t):mt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==T(e))i(n,e);else for(t in e)mt(n+"["+t+"]",e[t],r,i)}E.param=function(e,t){var n,r=[],i=function(e,t){var n=x(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!E.isPlainObject(e))E.each(e,function(){i(this.name,this.value)});else for(n in e)mt(n,e[n],t,i);return r.join("&")},E.fn.extend({serialize:function(){return E.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=E.prop(this,"elements");return e?E.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!E(this).is(":disabled")&&yt.test(this.nodeName)&&!vt.test(e)&&(this.checked||!fe.test(e))}).map(function(e,t){var n=E(this).val();return null==n?null:Array.isArray(n)?E.map(n,function(e){return{name:t.name,value:e.replace(gt,"\r\n")}}):{name:t.name,value:n.replace(gt,"\r\n")}}).get()}}),E.fn.extend({wrapAll:function(e){var t;return this[0]&&(x(e)&&(e=e.call(this[0])),t=E(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return x(n)?this.each(function(e){E(this).wrapInner(n.call(this,e))}):this.each(function(){var e=E(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=x(t);return this.each(function(e){E(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){E(this).replaceWith(this.childNodes)}),this}}),E.expr.pseudos.hidden=function(e){return!E.expr.pseudos.visible(e)},E.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},b.createHTMLDocument=((pt=v.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===pt.childNodes.length),E.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(b.createHTMLDocument?((r=(t=v.implementation.createHTMLDocument("")).createElement("base")).href=v.location.href,t.head.appendChild(r)):t=v),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&E(o).remove(),E.merge([],i.childNodes)));var r,i,o},E.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=E.css(e,"position"),c=E(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=E.css(e,"top"),u=E.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),x(t)&&(t=t.call(e,n,E.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},E.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){E.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===E.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===E.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=E(e).offset()).top+=E.css(e,"borderTopWidth",!0),i.left+=E.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-E.css(r,"marginTop",!0),left:t.left-i.left-E.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===E.css(e,"position"))e=e.offsetParent;return e||ie})}}),E.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;E.fn[t]=function(e){return z(this,function(e,t,n){var r;if(w(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),E.each(["top","left"],function(e,n){E.cssHooks[n]=ze(b.pixelPosition,function(e,t){if(t)return t=Fe(e,n),Me.test(t)?E(e).position()[n]+"px":t})}),E.each({Height:"height",Width:"width"},function(a,s){E.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){E.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return z(this,function(e,t,n){var r;return w(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?E.css(e,t,i):E.style(e,t,n,i)},s,n?e:void 0,n)}})}),E.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){E.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),E.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),E.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)}}),E.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),x(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||E.guid++,i},E.holdReady=function(e){e?E.readyWait++:E.ready(!0)},E.isArray=Array.isArray,E.parseJSON=JSON.parse,E.nodeName=S,E.isFunction=x,E.isWindow=w,E.camelCase=X,E.type=T,E.now=Date.now,E.isNumeric=function(e){var t=E.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return E});var bt=g.jQuery,xt=g.$;return E.noConflict=function(e){return g.$===E&&(g.$=xt),e&&g.jQuery===E&&(g.jQuery=bt),E},e||(g.jQuery=g.$=E),E});
readme.txt CHANGED
@@ -3,8 +3,9 @@ Contributors: Ramoonus
3
  Donate link: http://www.ramoonus.nl/donate/
4
  Tags: jquery, update, jquery ui, javascript, jq
5
  Requires at least: 4.2
6
- Tested up to: 4.9
7
- Stable tag: 3.3.1
 
8
 
9
  This plugin updates jQuery to the latest stable version on your website.
10
 
@@ -43,13 +44,16 @@ For more information on the development visit the plugins [GitHub](https://githu
43
  1. Q: Do I need this plugin if I`m running the latest version of WordPress on my site?
44
  A: No
45
 
46
- 2. Q: Is this plugin compatible with PHP 5.2 / 5.3 / 5.4 / 5.5 / 5.6 or 7 and HHVM?
47
- A: Yes
48
-
49
- 3. Q: This plugin breaks my site! How do I fix it?
50
  A: Using jQuery version 2 could break your site. See the warning on the homepage of this plugin.
51
 
 
 
 
52
  == Changelog ==
 
 
 
53
  = 3.3.1 =
54
  * Updated [jQuery to 3.3.1](http://blog.jquery.com/2018/01/20/jquery-3-3-1-fixed-dependencies-in-release-tag/)
55
 
@@ -76,7 +80,7 @@ A: Using jQuery version 2 could break your site. See the warning on the homepage
76
  * [Updated jQuery Migrate to 3.0.0]()https://blog.jquery.com/2016/06/09/jquery-3-0-final-released/
77
  * Updated minimum supported WordPress version to 4.0 (from 3.8)
78
 
79
- = 2.2.3 =
80
  * Updated jQuery to 2.2.4
81
  * Updated jQuery Migrate to 1.4.1
82
 
@@ -92,7 +96,7 @@ A: Using jQuery version 2 could break your site. See the warning on the homepage
92
  * [Updated jQuery to 2.2.1](http://blog.jquery.com/2016/02/22/jquery-1-12-1-and-2-2-1-released/)
93
  * Updated Readme
94
 
95
- == 2.2.0.1 ==
96
  * Updated jQuery Migrate to 1.3.1
97
  * Removed unused files
98
 
@@ -214,3 +218,7 @@ jQuery 2.0 has the same API as jQuery 1.9, but does not support Internet Explore
214
 
215
  = 1.0 =
216
  * First version, uses jQuery 1.5.2 on Googles CDN
 
 
 
 
3
  Donate link: http://www.ramoonus.nl/donate/
4
  Tags: jquery, update, jquery ui, javascript, jq
5
  Requires at least: 4.2
6
+ Tested up to: 5.2
7
+ Stable tag: 3.4.0
8
+ Requires PHP: 5.6
9
 
10
  This plugin updates jQuery to the latest stable version on your website.
11
 
44
  1. Q: Do I need this plugin if I`m running the latest version of WordPress on my site?
45
  A: No
46
 
47
+ 2. Q: This plugin breaks my site! How do I fix it?
 
 
 
48
  A: Using jQuery version 2 could break your site. See the warning on the homepage of this plugin.
49
 
50
+ == Upgrade Notice ==
51
+ Please clear the server and browser cache after upgrading/disabling
52
+
53
  == Changelog ==
54
+ = 3.3.1 =
55
+ * Updated [jQuery to 3.4.0](http://blog.jquery.com/2019/04/10/jquery-3-4-0-released/)
56
+
57
  = 3.3.1 =
58
  * Updated [jQuery to 3.3.1](http://blog.jquery.com/2018/01/20/jquery-3-3-1-fixed-dependencies-in-release-tag/)
59
 
80
  * [Updated jQuery Migrate to 3.0.0]()https://blog.jquery.com/2016/06/09/jquery-3-0-final-released/
81
  * Updated minimum supported WordPress version to 4.0 (from 3.8)
82
 
83
+ = 2.2.4 =
84
  * Updated jQuery to 2.2.4
85
  * Updated jQuery Migrate to 1.4.1
86
 
96
  * [Updated jQuery to 2.2.1](http://blog.jquery.com/2016/02/22/jquery-1-12-1-and-2-2-1-released/)
97
  * Updated Readme
98
 
99
+ = 2.2.0.1 =
100
  * Updated jQuery Migrate to 1.3.1
101
  * Removed unused files
102
 
218
 
219
  = 1.0 =
220
  * First version, uses jQuery 1.5.2 on Googles CDN
221
+
222
+ == Screenshots ==
223
+ No screenshot available.
224
+