PageSourceSearch

https://www.coelbe.de/:res/modules/module-view.darksite.de.js?fp=788f25763060

js coelbe.de collected 2026-09-25 05:29:19 UTC 170,829 bytes, 7,586 lines download raw bytes

1
2(function(){
3const __ionasCoreApi=(function(exports){
4'use strict';
5const COMMUNICATION_ERROR_MESSAGE="Communication with server failed";
6const COMMUNICATION_ERROR_CODE="communication_error";
7const COOKIES_NOT_SUPPORT_MESSAGE="Cookies must be permitted";
8const COOKIES_NOT_SUPPORT_CODE="cookies_not_supported";
9const BAD_CAPTCHA_RESPONSE_MESSAGE="Bad captcha response";
10const BAD_CAPTCHA_RESPONSE_CODE="bad_captcha_response";
11const PASSWORD_EXPIRED_RESPONSE_MESSAGE="Password expired response";
12const PASSWORD_EXPIRED_RESPONSE_CODE="password_expired_response";
13const VERIFICATION_CODE_NEEDED_RESPONSE_CODE="verification_code_needed";
14const BAD_CREDENTIALS_MESSAGE="Bad credentials";
15const BAD_CREDENTIALS_CODE="bad_credentials";
16const COOKIE_CONSENT_INFO_UNAVAILABLE_MESSAGE="Cookie consent information unavailable";
17const COOKIE_CONSENT_INFO_UNAVAILABLE_CODE="cookies_consent_information_unavailable";
18const CUSTOM_ERROR_CODE="custom_error";
19class XhrError extends Error{
20statusText;
21status;
22constructor(message,statusText,status){
23super(message);
24this.statusText=statusText;
25this.status=status;
26}
27}
28class SessionError extends Error{
29code;
30constructor(message,code){
31super(message);
32this.code=code;
33}
34}
35function isCommunicationError(error){
36return error
37&&(error instanceof SessionError||("code"in error))
38&&COMMUNICATION_ERROR_CODE===error.code;
39}
40function isLacksCookieSupportError(error){
41return error
42&&(error instanceof SessionError||("code"in error))
43&&COOKIES_NOT_SUPPORT_CODE===error.code;
44}
45function isBadCaptchaResponseError(error){
46return error
47&&(error instanceof SessionError||("code"in error))
48&&BAD_CAPTCHA_RESPONSE_CODE===error.code;
49}
50function isPasswordExpiredResponseError(error){
51return error
52&&(error instanceof SessionError||("code"in error))
53&&PASSWORD_EXPIRED_RESPONSE_CODE===error.code;
54}
55function isBadCredentialsError(error){
56return error
57&&(error instanceof SessionError||("code"in error))
58&&BAD_CREDENTIALS_CODE===error.code;
59}
60function isCookieConsentInfoUnavailableError(error){
61return error
62&&(error instanceof SessionError||("code"in error))
63&&COOKIE_CONSENT_INFO_UNAVAILABLE_CODE===error.code;
64}
65let ionasInfoElement=document.getElementById('ionasInfo');
66var ionasInfo=ionasInfoElement?JSON.parse(ionasInfoElement.innerText):undefined;
67function getBaseUrl(){
68if(ionasInfo?.context){
69return ionasInfo.context;
70}
71const ionas4=window.ionas4;
72if(ionas4?.contextPath){
73return"";
74}
75if(document.head.dataset.contextPath!==undefined){
76return document.head.dataset.contextPath;
77}
78const baseLink=document.head.querySelector("link[rel='base']");
79if(baseLink&&baseLink.href){
80return baseLink.href;
81}
82return"";
83}
84function getBackendBaseUrl(){
85if(ionasInfo?.backend){
86return ionasInfo.backend;
87}
88const baseLink=document.head.querySelector("link[rel='base']");
89if(baseLink&&baseLink.href){
90return baseLink.href;
91}
92return"";
93}
94let coreCookieInfo=null;
95async function requestCoreCookieInfo(){
96let response=await fetch(getBaseUrl()+'/:ionasinfo/coreCookieConsent',{headers:{'Accept':'application/json'}});
97if(response.ok){
98return response.json();
99}
100throw new SessionError(COOKIE_CONSENT_INFO_UNAVAILABLE_MESSAGE,COOKIE_CONSENT_INFO_UNAVAILABLE_CODE);
101}
102function getCoreCookieInfo(){
103return coreCookieInfo=(coreCookieInfo||requestCoreCookieInfo());
104}
105window.addEventListener('cookie-consent-issued',()=>{
106window.IONAS_CSRF_TOKEN=undefined;
107window.IONAS_CSRF_TOKEN_PERMITTED_COOKIES=undefined;
108});
109async function requestCsrfToken(permitCookies){
110let url=new URL(getBaseUrl()+'/:ionasinfo/csrfToken',location.href);
111if(permitCookies){
112let coreCookieInfo=await getCoreCookieInfo();
113url.searchParams.append(coreCookieInfo.cookieName,coreCookieInfo.cookieValue);
114}
115let response=await fetch(url.href,{headers:{'Accept':'application/json'}});
116if(response.ok){
117return response.json();
118}
119throw new Error("Cannot fetch CSRF token. "+response.statusText);
120}
121function getCsrfToken(permitCookies){
122if(permitCookies){
123window.IONAS_CSRF_TOKEN_PERMITTED_COOKIES??=requestCsrfToken(permitCookies).finally(()=>{
124window.IONAS_CSRF_TOKEN_PERMITTED_COOKIES=undefined;
125});
126return window.IONAS_CSRF_TOKEN_PERMITTED_COOKIES;
127}
128else{
129window.IONAS_CSRF_TOKEN??=requestCsrfToken(permitCookies).finally(()=>{
130window.IONAS_CSRF_TOKEN=undefined;
131});
132return window.IONAS_CSRF_TOKEN;
133}
134}
135async function getCsrfHeaders(permitCookies){
136let csrfToken=await getCsrfToken(permitCookies);
137const csrfHeaders=new Headers();
138csrfHeaders.append(csrfToken.headerName,csrfToken.token);
139return csrfHeaders;
140}
141async function loadLoginOptions(targetUri){
142const url=getBaseUrl()+'/:users/login/options?targetUri='+encodeURIComponent(targetUri||"");
143return fetch(url,{headers:{'Accept':'application/json'}})
144.then(response=>{
145if(response.ok){
146return response.json();
147}
148else{
149throw new SessionError(`${response.status} ${response.statusText}`,COMMUNICATION_ERROR_CODE);
150}
151});
152}
153async function determineCaptchaIsNecessary(){
154return fetch(getBaseUrl()+'/:users/login/displayCaptcha',{headers:{'Accept':'application/json'}})
155.then(response=>{
156if(response.ok){
157return response.json();
158}
159else{
160throw new SessionError(`${response.status} ${response.statusText}`,COMMUNICATION_ERROR_CODE);
161}
162})
163.then(answer=>{
164return{
165type:answer.type,
166display:answer.display,
167until:answer.until?new Date(answer.until):null
168};
169});
170}
171async function login(username,password,optionsOrCaptcha){
172document.cookie="menu-slide-in=false; path=/";
173if(!(";"+document.cookie+";").match(/;\s*menu-slide-in=false;/)){
174return Promise.reject(new SessionError(COOKIES_NOT_SUPPORT_MESSAGE,COOKIES_NOT_SUPPORT_CODE));
175}
176const data=new FormData();
177data.append("login",username);
178data.append("password",password);
179data.append("dologin","true");
180let contextPath=getBaseUrl().match(/^(?:https?:\/\/[^\/]+)?(\/[^\/]+)$/)?.[1];
181data.append("deviceId",localStorage.getItem("ionas-device-id"+contextPath)||localStorage.getItem("ionas-device-id")||"");
182return getCoreCookieInfo().then(cookieInfo=>{
183let captcha;
184let verificationCode;
185if(typeof optionsOrCaptcha==="string"){
186captcha=optionsOrCaptcha;
187}
188else if(optionsOrCaptcha!==undefined){
189captcha=optionsOrCaptcha.captcha;
190verificationCode=optionsOrCaptcha.verificationCode;
191}
192data.append(cookieInfo.cookieName,cookieInfo.cookieValue);
193if(captcha){
194data.append("g-recaptcha-response",captcha);
195}
196if(verificationCode){
197data.append("verificationCode",verificationCode);
198}
199return getCsrfHeaders(true)
200.then(csrfHeaders=>{
201let headers=new Headers(csrfHeaders);
202headers.set("Accept","application/json");
203return fetch(getBaseUrl()+'/:users/login/checkSession',{
204method:'POST',
205body:data,
206headers:headers
207});
208})
209.then(response=>{
210if(response.ok){
211return response.json();
212}
213else{
214throw new SessionError(`${response.status} ${response.statusText}`,COMMUNICATION_ERROR_CODE);
215}
216})
217.then(answer=>{
218if(answer.__errorNo&&answer.__errorNo===42){
219throw new SessionError(BAD_CAPTCHA_RESPONSE_MESSAGE,BAD_CAPTCHA_RESPONSE_CODE);
220}
221else if(answer.__errorNo&&answer.__errorNo===46){
222throw new SessionError(PASSWORD_EXPIRED_RESPONSE_MESSAGE,PASSWORD_EXPIRED_RESPONSE_CODE);
223}
224else if(answer.__errorNo&&answer.__errorNo===47){
225throw new SessionError(answer.__error,VERIFICATION_CODE_NEEDED_RESPONSE_CODE);
226}
227else if(answer.__error){
228throw new SessionError(answer.__error,CUSTOM_ERROR_CODE);
229}
230else if(answer!==false){
231let result=answer;
232if(result.deviceId!=null){
233localStorage.setItem("ionas-device-id"+contextPath,result.deviceId);
234}
235return result;
236}
237else{
238throw new SessionError(BAD_CREDENTIALS_MESSAGE,BAD_CREDENTIALS_CODE);
239}
240});
241});
242}
243async function loadCurrentSessionInfo(){
244return fetch(getBaseUrl()+'/:users/login/sessionInfo',{headers:{'Accept':'application/json'}})
245.then(response=>{
246if(response.ok){
247return response.json();
248}
249else{
250throw new SessionError(`${response.status} ${response.statusText}`,COMMUNICATION_ERROR_CODE);
251}
252});
253}
254function getLogoutUrl(){
255return ionasInfo?.logoutRoot||getBaseUrl()+'/:logout';
256}
257async function logout(){
258return logoutCurrentWindow('/');
259}
260async function logoutCurrentWindow(logoutSuccessPath){
261let csrfHeaders=await getCsrfHeaders();
262let headers=new Headers(csrfHeaders);
263headers.set("Accept","application/json");
264return fetch(getLogoutUrl()+(logoutSuccessPath||"/"),{
265method:'POST',
266headers:headers
267});
268}
269async function forgotPassword(email){
270return getCsrfHeaders()
271.then(csrfHeaders=>{
272let headers=new Headers(csrfHeaders);
273headers.set("Accept","application/json");
274const data=new FormData();
275data.append("email",email);
276return fetch(getBaseUrl()+'/:users/login/forgotPassword',{
277method:'POST',
278body:data,
279headers:headers
280});
281})
282.then(response=>{
283if(response.ok){
284return response.json();
285}
286else{
287throw new SessionError(`${response.status} ${response.statusText}`,COMMUNICATION_ERROR_CODE);
288}
289})
290.then(response=>{
291return response;
292});
293}
294function eventually(func,timeout,immediate){
295let timeoutHandle=undefined;
296if(immediate){
297return function(...args){
298if(!timeoutHandle){
299func.apply(this,args);
300timeoutHandle=setTimeout(function(){
301timeoutHandle=undefined;
302},timeout||0);
303}
304};
305}
306else{
307return function(...args){
308if(timeoutHandle){
309clearTimeout(timeoutHandle);
310}
311timeoutHandle=setTimeout((function(){
312timeoutHandle=undefined;
313func.apply(this,args);
314}).bind(this),timeout||0);
315};
316}
317}
318function once(func){
319let called=false;
320return function(...args){
321if(!called){
322called=true;
323return func.apply(this,args);
324}
325};
326}
327function debounced(func,immediate){
328return eventually(func,300,immediate);
329}
330function delayedAsync(func,delay,restartDelay){
331let active=false;
332let retrigger=false;
333let timeout=null;
334let timeoutTime=0;
335let finish=function(){
336active=false;
337if(retrigger){
338retrigger=false;
339executeNow();
340}
341};
342let executeNow=function(){
343active=true;
344try{
345func().catch(function(error){throw error;});
346}
347finally{
348finish();
349}
350};
351let trigger=function(){
352timeout=null;
353if(active){
354retrigger=true;
355}
356else{
357executeNow();
358}
359};
360return function(customDelay){
361let actualDelay=customDelay!=null?customDelay:delay;
362let newTimeoutTime=Date.now()+actualDelay;
363if(timeout!=null){
364if(restartDelay||actualDelay<0||newTimeoutTime<timeoutTime){
365clearTimeout(timeout);
366timeout=null;
367}
368else{
369return;
370}
371}
372if(actualDelay<0){
373trigger();
374}
375else{
376timeout=setTimeout(trigger,actualDelay);
377timeoutTime=newTimeoutTime;
378}
379};
380}
381function delayedAsyncRestart(func,delay){
382return delayedAsync(func,delay,true);
383}
384function findElement(elementList,predicate,thisArg){
385if(elementList){
386for(let i=0,n=elementList.length;i<n;i++){
387if(predicate.call(thisArg,elementList[i],i,elementList)){
388return elementList[i];
389}
390}
391}
392return null;
393}
394async function whenReadyState(state,document){
395return new Promise(function(resolve){
396let effectiveState=state||'complete';
397let effectiveDocument=document||window.document;
398function onReadyStateChange(){
399if(effectiveDocument.readyState===effectiveState){
400resolve(effectiveDocument);
401effectiveDocument.removeEventListener('readystatechange',onReadyStateChange);
402}
403}
404effectiveDocument.addEventListener('readystatechange',onReadyStateChange);
405onReadyStateChange();
406});
407}
408function ngAppInvoke(){
409let $rootElement=jQuery('[ng-app]');
410let $injector=$rootElement.injector();
411return $injector.invoke.apply($injector,arguments);
412}
413exports.BAD_CAPTCHA_RESPONSE_CODE=BAD_CAPTCHA_RESPONSE_CODE;
414exports.BAD_CAPTCHA_RESPONSE_MESSAGE=BAD_CAPTCHA_RESPONSE_MESSAGE;
415exports.BAD_CREDENTIALS_CODE=BAD_CREDENTIALS_CODE;
416exports.BAD_CREDENTIALS_MESSAGE=BAD_CREDENTIALS_MESSAGE;
417exports.COMMUNICATION_ERROR_CODE=COMMUNICATION_ERROR_CODE;
418exports.COMMUNICATION_ERROR_MESSAGE=COMMUNICATION_ERROR_MESSAGE;
419exports.COOKIES_NOT_SUPPORT_CODE=COOKIES_NOT_SUPPORT_CODE;
420exports.COOKIES_NOT_SUPPORT_MESSAGE=COOKIES_NOT_SUPPORT_MESSAGE;
421exports.COOKIE_CONSENT_INFO_UNAVAILABLE_CODE=COOKIE_CONSENT_INFO_UNAVAILABLE_CODE;
422exports.COOKIE_CONSENT_INFO_UNAVAILABLE_MESSAGE=COOKIE_CONSENT_INFO_UNAVAILABLE_MESSAGE;
423exports.CUSTOM_ERROR_CODE=CUSTOM_ERROR_CODE;
424exports.PASSWORD_EXPIRED_RESPONSE_CODE=PASSWORD_EXPIRED_RESPONSE_CODE;
425exports.PASSWORD_EXPIRED_RESPONSE_MESSAGE=PASSWORD_EXPIRED_RESPONSE_MESSAGE;
426exports.SessionError=SessionError;
427exports.VERIFICATION_CODE_NEEDED_RESPONSE_CODE=VERIFICATION_CODE_NEEDED_RESPONSE_CODE;
428exports.XhrError=XhrError;
429exports.debounced=debounced;
430exports.delayedAsync=delayedAsync;
431exports.delayedAsyncRestart=delayedAsyncRestart;
432exports.determineCaptchaIsNecessary=determineCaptchaIsNecessary;
433exports.eventually=eventually;
434exports.findElement=findElement;
435exports.forgotPassword=forgotPassword;
436exports.getBackendBaseUrl=getBackendBaseUrl;
437exports.getBaseUrl=getBaseUrl;
438exports.getCoreCookieInfo=getCoreCookieInfo;
439exports.getCsrfHeaders=getCsrfHeaders;
440exports.getCsrfToken=getCsrfToken;
441exports.ionasInfo=ionasInfo;
442exports.isBadCaptchaResponseError=isBadCaptchaResponseError;
443exports.isBadCredentialsError=isBadCredentialsError;
444exports.isCommunicationError=isCommunicationError;
445exports.isCookieConsentInfoUnavailableError=isCookieConsentInfoUnavailableError;
446exports.isLacksCookieSupportError=isLacksCookieSupportError;
447exports.isPasswordExpiredResponseError=isPasswordExpiredResponseError;
448exports.loadCurrentSessionInfo=loadCurrentSessionInfo;
449exports.loadLoginOptions=loadLoginOptions;
450exports.login=login;
451exports.logout=logout;
452exports.logoutCurrentWindow=logoutCurrentWindow;
453exports.ngAppInvoke=ngAppInvoke;
454exports.once=once;
455exports.whenReadyState=whenReadyState;
456Object.defineProperty(exports,'__esModule',{value:true});
457return exports;
458})({});self.__ionasCoreApi=__ionasCoreApi;
459}());
460self.ionas=(function(ionas,__ionasCoreApi){
461async function getCsrfHeaders(permitCookies){
462let csrfHeadersAsObject={};
463let csrfHeaders=await __ionasCoreApi.getCsrfHeaders(permitCookies);
464csrfHeaders.forEach(function(value,key){csrfHeadersAsObject[key]=value;});
465return csrfHeadersAsObject;
466}
467return Object.assign(ionas,{
468ionasInfo:__ionasCoreApi.ionasInfo,
469getCoreCookieInfo:__ionasCoreApi.getCoreCookieInfo,
470getCsrfToken:__ionasCoreApi.getCsrfToken,
471getCsrfHeaders:getCsrfHeaders,
472eventually:__ionasCoreApi.eventually,
473debounced:__ionasCoreApi.debounced,
474once:__ionasCoreApi.once,
475findElement:__ionasCoreApi.findElement,
476whenReadyState:__ionasCoreApi.whenReadyState,
477delayedAsync:__ionasCoreApi.delayedAsync,
478delayedAsyncRestart:__ionasCoreApi.delayedAsyncRestart,
479doLogout:__ionasCoreApi.logoutCurrentWindow,
480ngAppInvoke:__ionasCoreApi.ngAppInvoke
481});
482}(self.ionas||{},self.__ionasCoreApi));
483var ionas;
484(function(ionas){
485ionas.UMLAUT_MAPPING={
486"ä":"ae",
487"ö":"oe",
488"ü":"ue",
489"ß":"ss",
490"é":"e"
491};
492function normalizeName(name,forFile){
493var normalizedName="";
494var previousIsNonWordCharacter=false;
495name=name.toLowerCase();
496for(var index=0;
496index<name.length;index++){
497var character=name[index];
498if(character.match(/^[a-zA-Z0-9äöüßé]$/)){
499if(previousIsNonWordCharacter&&normalizedName.length>0){
500normalizedName+="-";
501}
502if(ionas.UMLAUT_MAPPING[character]){
503normalizedName+=ionas.UMLAUT_MAPPING[character];
504}
505else{
506normalizedName+=character;
507}
508previousIsNonWordCharacter=false;
509}
510else if(forFile&&"."==character){
511normalizedName+=".";
512previousIsNonWordCharacter=false;
513}
514else{
515previousIsNonWordCharacter=true;
516}
517}
518return normalizedName;
519}
520ionas.normalizeName=normalizeName;
521})(ionas||(ionas={}));self.ionas=(function(ionas){
522var RESIZE_EXPRESSION_PATTERN=new RegExp("(([^:]+):)?(\\d+,\\d+,\\d+,\\d+)?_?(.*)");
523var DATA_DYMANIC_RESIZE_IN_PROGRESS="data-dynamic-resize-in-progress";
524var isSrcsetSupported=(function(){
525var img=new Image();
526return('srcset'in img);
527}());
528async function whenWindowLoaded(){
529return new Promise(function(resolve){
530if(document.readyState==='complete'){
531resolve();
532}else{
533window.addEventListener("load",resolve);
534}
535});
536}
537async function whenDocumentReady(){
538return new Promise(function(resolve,reject){
539if(document.readyState==='interactive'||document.readyState==='c
539omplete'){
540resolve();
541}else{
542document.addEventListener("DOMContentLoaded",resolve);
543}
544});
545}
546function isVisible(element){
547return!!(element.offsetWidth||element.offsetHeight||element.getClientRects().length);
548}
549function handleDynamicResize(image){
550var resizeMode=image.getAttribute("data-resize-mode");
551if("dynamic"===resizeMode&&isVisible(image)){
552doDynamicResize(image);
553}
554}
555function doDynamicResize(image){
556if(image.getAttribute("data-src")){
557resizeImageAttribute(image,"data-src");
558}else if(image.getAttribute("src")){
559resizeImageAttribute(image,"src");
560}
561}
562function handleRetinaSupport(image){
563let src=image.getAttribute('data-src');
564if(src){
565const dpr=window.devicePixelRatio;
566if(dpr>1){
567let newSrc=setSrcParam(src,"dpr",dpr);
568image.setAttribute('data-src',newSrc);
569}
570}
571}
572function registerImage(image){
573var lazyMode=image.getAttribute('data-lazy-mode');
574image.removeAttribute('data-lazy-mode');
575var resizeMode=image.getAttribute("data-resize-mode");
576handleRetinaSupport(image);
577handleDynamicResize(image);
578if("dynamic"===resizeMode){
579resizeObserver.observe(image);
580}
581if(lazyMode==='after-load'){
582whenWindowLoaded().then(loadImage.bind(this,image));
583}else if(lazyMode==='on-visible'){
584lazyIntersectionObserver.observe(image);
585}else if(lazyMode==='none'){
586loadImage(image);
587}
588imageSrcObserver.observe(image,imageSrcObserverOptions);
589image.addEventListener('load',function(){
590image.classList.add("complete");
591if("dynamic"===resizeMode){
592image.classList.remove("image-resizing");
593image.removeAttribute(DATA_DYMANIC_RESIZE_IN_PROGRESS);
594}
595});
596}
597function registerImages(images){
598for(var i=0;i<images.length;i++){
599registerImage(images[i]);
600}
601}
602function join(array,seperator){
603return array.filter(function(element){
604return element;
605}).join(seperator);
606}
607function setSrcParam(src,paramName,newParamValue){
608let url=new URL(src,window.location.href);
609let oldParamValue=url.searchParams.get(paramName);
610if(oldParamValue){
611let matches=RESIZE_EXPRESSION_PATTERN.exec(oldParamValue);
612if(matches){
613let hash=matches[2];
614let clipValue=matches[3];
615if(clipValue===undefined){
616hash=undefined;
617}
618newParamValue=join([hash,join([clipValue,newParamValue],'_')],':');
619}
620}
621url.searchParams.set(paramName,newParamValue);
622return url.href;
623}
624function findImageResizeValue(width,height){
625let resizeOptions=window.ionasInfo.resizeOptions;
626let maxAspectRatio=resizeOptions.maxAspectRatio;
627let allowedValues=resizeOptions.allowedValues;
628function constrainValue(value){
629let greaterValues=allowedValues.filter(function(allowedValue){
630return value<=allowedValue;
631});
632return greaterValues.length===0?allowedValues[allowedValues.length-1]:greaterValues[0];
633}
634if(width>0&&height>0){
635let aspectRatio=Math.max(1/maxAspectRatio,Math.min(width/height,maxAspectRatio));
636if(aspectRatio<1.0){
637width=Math.round(height*aspectRatio);
638}else{
639height=Math.round(width/aspectRatio);
640}
641}
642width=constrainValue(width);
643height=constrainValue(height);
644return""+width+"x"+height+"c";
645}
646function resizeImageAttribute(image,attributeName){
647let attributeValue=image.getAttribute(attributeName);
648let newAttributeValue=resizeImageSrc(attributeValue,image.width,image.height);
649if(newAttributeValue!==attributeValue){
650image.setAttribute(DATA_DYMANIC_RESIZE_IN_PROGRESS,"true");
651image.setAttribute(attributeName,newAttributeValue);
652image.classList.add("image-resizing");
653}
654}
655function resizeImageSrc(src,width,height){
656return src&&!src.startsWith("data:")&&!src.startsWith("blob:")&&width>0&&height>0
657?setSrcParam(src,"resize",findImageResizeValue(width,height))
658:src;
659}
660function loadImage(image){
661function switchAttribute(attributeName){
662let dataAttributeName='data-'+attributeName;
663let value=image.getAttribute(dataAttributeName);
664if(value){
665image.setAttribute(attributeName,value);
666image.removeAttribute(dataAttributeName);
667}
668}
669switchAttribute('sizes');
670switchAttribute('srcset');
671if(!isSrcsetSupported||!image.getAttribute('srcset')){
672switchAttribute('src');
673if(!image.complete){
674image.classList.add("i4-image-loading");
675image.addEventListener('load',function(){
676image.classList.remove("i4-image-loading");
677});
678}
679}
680}
681var lazyIntersectionOptions={root:null,rootMargin:"0px",threshold:0.01};
682var lazyIntersectionObserver=new IntersectionObserver(function(intersections,observer){
683intersections.forEach(function(intersection){
684if(intersection.intersectionRatio>0){
685observer.unobserve(intersection.target);
686loadImage(intersection.target);
687}
688});
689},lazyIntersectionOptions);
690function isImage(node){
691return node.nodeType===Node.ELEMENT_NODE&&node.nodeName==="IMG";
692}
693function getObserverTarget(observerEntry){
694return observerEntry.target;
695}
696var imageSrcObserver=new MutationObserver(function(mutations){
697mutations.filter(function(mutation){return mutation.type==="attributes"&&mutation.attributeName==="src";})
698.map(getObserverTarget)
699.filter(isImage)
700.filter(function(image){return!image.hasAttribute(DATA_DYMANIC_RESIZE_IN_PROGRESS);})
701.forEach(function(image){handleDynamicResize(image);});
702});
703var imageSrcObserverOptions={attributes:true,childList:false,characterData:false,subtree:false};
704imageSrcObserver.observe(document.body,imageSrcObserverOptions);
705var resizeObserver=new ResizeObserver(function(entries){
706entries.map(getObserverTarget)
707.filter(isImage)
708.forEach(function(image){
709if(image.resizeTimeoutHandle){
710clearTimeout(image.resizeTimeoutHandle);
711}
712image.resizeTimeoutHandle=setTimeout(function(){
713image.resizeTimeoutHandle=undefined;
714handleDynamicResize(image);
715},500);
716});
717});
718document.body.addEventListener("imageSizeChange",function(e){
719for(var i=0;i<e.images.length;i++){
720handleDynamicResize(e.images[i]);
721}
722});
723whenDocumentReady().then(function registerAllImages(){
724var nodeList=document.querySelectorAll("img");
725for(var i=0;i<nodeList.length;i++){
726registerImage(nodeList[i]);
727}
728});
729var newImagesObserver=new MutationObserver(function(mutations){
730mutations.forEach(function(mutation){
731for(var j=0,m=mutation.addedNodes.length;j<m;j++){
732var node=mutation.addedNodes[j];
733if(node.nodeType===Node.ELEMENT_NODE){
734if(node.nodeName==="IMG"){
735registerImage(node);
736}else{
737var imageNodeList=node.querySelectorAll("img");
738for(var i=0,n=imageNodeList.length;i<n;i++){
739registerImage(imageNodeList[i]);
740}
741}
742}
743}
744});
745});
746newImagesObserver.observe(document.body,{attributes:false,childList:true,characterData:false,subtree:true});
747return Object.assign(ionas,{
748registerImage,
749registerImages,
750handleDynamicResize,
751resizeImageSrc
752});
753}(self.ionas||{}));
754function stopJavascriptEvents(event){
755event.preventDefault();
756event.stopPropagation();
757}
758(function(global,factory){
759"use strict";
760if(typeof module==="object"&&typeof module.exports==="object"){
761module.exports=global.document?
762factory(global,true):
763function(w){
764if(!w.document){
765throw new Error("jQuery requires a window with a document");
766}
767return factory(w);
768};
769}else{
770factory(global);
771}
772})(typeof window!=="undefined"?window:this,function(window,noGlobal){
773"use strict";
774var arr=[];
775var getProto=Object.getPrototypeOf;
776var slice=arr.slice;
777var flat=arr.flat?function(array){
778return arr.flat.call(array);
779}:function(array){
780return arr.concat.apply([],array);
781};
782var push=arr.push;
783var indexOf=arr.indexOf;
784var class2type={};
785var toString=class2type.toString;
786var hasOwn=class2type.hasOwnProperty;
787var fnToString=hasOwn.toString;
788var ObjectFunctionString=fnToString.call(Object);
789var support={};
790var isFunction=function isFunction(obj){
791return typeof obj==="function"&&typeof obj.nodeType!=="number"&&
792typeof obj.item!=="function";
793};
794var isWindow=function isWindow(obj){
795return obj!=null&&obj===obj.window;
796};
797var document=window.document;
798var preservedScriptAttributes={
799type:true,
800src:true,
801nonce:true,
802noModule:true
803};
804function DOMEval(code,node,doc){
805doc=doc||document;
806var i,val,
807script=doc.createElement("script");
808script.text=code;
809if(node){
810for(i in preservedScriptAttributes){
811val=node[i]||node.getAttribute&&node.getAttribute(i);
812if(val){
813script.setAttribute(i,val);
814}
815}
816}
817doc.head.appendChild(script).parentNode.removeChild(script);
818}
819function toType(obj){
820if(obj==null){
821return obj+"";
822}
823return typeof obj==="object"||typeof obj==="function"?
824class2type[toString.call(obj)]||"object":
825typeof obj;
826}
827var version="3.7.1",
828rhtmlSuffix=/HTML$/i,
829jQuery=function(selector,context){
830return new jQuery.fn.init(selector,context);
831};
832jQuery.fn=jQuery.prototype={
833jquery:version,
834constructor:jQuery,
835length:0,
836toArray:function(){
837return slice.call(this);
838},
839get:function(num){
840if(num==null){
841return slice.call(this);
842}
843return num<0?this[num+this.length]:this[num];
844},
845pushStack:function(elems){
846var ret=jQuery.merge(this.constructor(),elems);
vendor: 141,740 bytes, lines 847-7371
847ret.prevObject=this;
848return ret;
849},
850each:function(callback){
851return jQuery.each(this,callback);
852},
853map:function(callback){
854return this.pushStack(jQuery.map(this,function(elem,i){
855return callback.call(elem,i,elem);
856}));
857},
858slice:function(){
859return this.pushStack(slice.apply(this,arguments));
860},
861first:function(){
862return this.eq(0);
863},
864last:function(){
865return this.eq(-1);
866},
867even:function(){
868return this.pushStack(jQuery.grep(this,function(_elem,i){
869return(i+1)%2;
870}));
871},
872odd:function(){
873return this.pushStack(jQuery.grep(this,function(_elem,i){
874return i%2;
875}));
876},
877eq:function(i){
878var len=this.length,
879j=+i+(i<0?len:0);
880return this.pushStack(j>=0&&j<len?[this[j]]:[]);
881},
882end:function(){
883return this.prevObject||this.constructor();
884},
885push:push,
886sort:arr.sort,
887splice:arr.splice
888};
889jQuery.extend=jQuery.fn.extend=function(){
890var options,name,src,copy,copyIsArray,clone,
891target=arguments[0]||{},
892i=1,
893length=arguments.length,
894deep=false;
895if(typeof target==="boolean"){
896deep=target;
897target=arguments[i]||{};
898i++;
899}
900if(typeof target!=="object"&&!isFunction(target)){
901target={};
902}
903if(i===length){
904target=this;
905i--;
906}
907for(;i<length;i++){
908if((options=arguments[i])!=null){
909for(name in options){
910copy=options[name];
911if(name==="__proto__"||target===copy){
912continue;
913}
914if(deep&&copy&&(jQuery.isPlainObject(copy)||
915(copyIsArray=Array.isArray(copy)))){
916src=target[name];
917if(copyIsArray&&!Array.isArray(src)){
918clone=[];
919}else if(!copyIsArray&&!jQuery.isPlainObject(src)){
920clone={};
921}else{
922clone=src;
923}
924copyIsArray=false;
925target[name]=jQuery.extend(deep,clone,copy);
926}else if(copy!==undefined){
927target[name]=copy;
928}
929}
930}
931}
932return target;
933};
934jQuery.extend({
935expando:"jQuery"+(version+Math.random()).replace(/\D/g,""),
936isReady:true,
937error:function(msg){
938throw new Error(msg);
939},
940noop:function(){},
941isPlainObject:function(obj){
942var proto,Ctor;
943if(!obj||toString.call(obj)!=="[object Object]"){
944return false;
945}
946proto=getProto(obj);
947if(!proto){
948return true;
949}
950Ctor=hasOwn.call(proto,"constructor")&&proto.constructor;
951return typeof Ctor==="function"&&fnToString.call(Ctor)===ObjectFunctionString;
952},
953isEmptyObject:function(obj){
954var name;
955for(name in obj){
956return false;
957}
958return true;
959},
960globalEval:function(code,options,doc){
961DOMEval(code,{nonce:options&&options.nonce},doc);
962},
963each:function(obj,callback){
964var length,i=0;
965if(isArrayLike(obj)){
966length=obj.length;
967for(;i<length;i++){
968if(callback.call(obj[i],i,obj[i])===false){
969break;
970}
971}
972}else{
973for(i in obj){
974if(callback.call(obj[i],i,obj[i])===false){
975break;
976}
977}
978}
979return obj;
980},
981text:function(elem){
982var node,
983ret="",
984i=0,
985nodeType=elem.nodeType;
986if(!nodeType){
987while((node=elem[i++])){
988ret+=jQuery.text(node);
989}
990}
991if(nodeType===1||nodeType===11){
992return elem.textContent;
993}
994if(nodeType===9){
995return elem.documentElement.textContent;
996}
997if(nodeType===3||nodeType===4){
998return elem.nodeValue;
999}
1000return ret;
1001},
1002makeArray:function(arr,results){
1003var ret=results||[];
1004if(arr!=null){
1005if(isArrayLike(Object(arr))){
1006jQuery.merge(ret,
1007typeof arr==="string"?
1008[arr]:arr
1009);
1010}else{
1011push.call(ret,arr);
1012}
1013}
1014return ret;
1015},
1016inArray:function(elem,arr,i){
1017return arr==null?-1:indexOf.call(arr,elem,i);
1018},
1019isXMLDoc:function(elem){
1020var namespace=elem&&elem.namespaceURI,
1021docElem=elem&&(elem.ownerDocument||elem).documentElement;
1022return!rhtmlSuffix.test(namespace||docElem&&docElem.nodeName||"HTML");
1023},
1024merge:function(first,second){
1025var len=+second.length,
1026j=0,
1027i=first.length;
1028for(;j<len;j++){
1029first[i++]=second[j];
1030}
1031first.length=i;
1032return first;
1033},
1034grep:function(elems,callback,invert){
1035var callbackInverse,
1036matches=[],
1037i=0,
1038length=elems.length,
1039callbackExpect=!invert;
1040for(;i<length;i++){
1041callbackInverse=!callback(elems[i],i);
1042if(callbackInverse!==callbackExpect){
1043matches.push(elems[i]);
1044}
1045}
1046return matches;
1047},
1048map:function(elems,callback,arg){
1049var length,value,
1050i=0,
1051ret=[];
1052if(isArrayLike(elems)){
1053length=elems.length;
1054for(;i<length;i++){
1055value=callback(elems[i],i,arg);
1056if(value!=null){
1057ret.push(value);
1058}
1059}
1060}else{
1061for(i in elems){
1062value=callback(elems[i],i,arg);
1063if(value!=null){
1064ret.push(value);
1065}
1066}
1067}
1068return flat(ret);
1069},
1070guid:1,
1071support:support
1072});
1073if(typeof Symbol==="function"){
1074jQuery.fn[Symbol.iterator]=arr[Symbol.iterator];
1075}
1076jQuery.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),
1077function(_i,name){
1078class2type["[object "+name+"]"]=name.toLowerCase();
1079});
1080function isArrayLike(obj){
1081var length=!!obj&&"length"in obj&&obj.length,
1082type=toType(obj);
1083if(isFunction(obj)||isWindow(obj)){
1084return false;
1085}
1086return type==="array"||length===0||
1087typeof length==="number"&&length>0&&(length-1)in obj;
1088}
1089function nodeName(elem,name){
1090return elem.nodeName&&elem.nodeName.toLowerCase()===name.toLowerCase();
1091}
1092var pop=arr.pop;
1093var sort=arr.sort;
1094var splice=arr.splice;
1095var whitespace="[\\x20\\t\\r\\n\\f]";
1096var rtrimCSS=new RegExp(
1097"^"+whitespace+"+|((?:^|[^\\\\])(?:\\\\.)*)"+whitespace+"+$",
1098"g"
1099);
1100jQuery.contains=function(a,b){
1101var bup=b&&b.parentNode;
1102return a===bup||!!(bup&&bup.nodeType===1&&(
1103a.contains?
1104a.contains(bup):
1105a.compareDocumentPosition&&a.compareDocumentPosition(bup)&16
1106));
1107};
1108var rcssescape=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;
1109function fcssescape(ch,asCodePoint){
1110if(asCodePoint){
1111if(ch==="\0"){
1112return"\uFFFD";
1113}
1114return ch.slice(0,-1)+"\\"+ch.charCodeAt(ch.length-1).toString(16)+" ";
1115}
1116return"\\"+ch;
1117}
1118jQuery.escapeSelector=function(sel){
1119return(sel+"").replace(rcssescape,fcssescape);
1120};
1121var preferredDoc=document,
1122pushNative=push;
1123(function(){
1124var i,
1125Expr,
1126outermostContext,
1127sortInput,
1128hasDuplicate,
1129push=pushNative,
1130document,
1131documentElement,
1132documentIsHTML,
1133rbuggyQSA,
1134matches,
1135expando=jQuery.expando,
1136dirruns=0,
1137done=0,
1138classCache=createCache(),
1139tokenCache=createCache(),
1140compilerCache=createCache(),
1141nonnativeSelectorCache=createCache(),
1142sortOrder=function(a,b){
1143if(a===b){
1144hasDuplicate=true;
1145}
1146return 0;
1147},
1148booleans="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|"+
1149"loop|multiple|open|readonly|required|scoped",
1150identifier="(?:\\\\[\\da-fA-F]{1,6}"+whitespace+
1151"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
1152attributes="\\["+whitespace+"*("+identifier+")(?:"+whitespace+
1153"*([*^$|!~]?=)"+whitespace+
1154"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+identifier+"))|)"+
1155whitespace+"*\\]",
1156pseudos=":("+identifier+")(?:\\(("+
1157"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|"+
1158"((?:\\\\.|[^\\\\()[\\]]|"+attributes+")*)|"+
1159".*"+
1160")\\)|)",
1161rwhitespace=new RegExp(whitespace+"+","g"),
1162rcomma=new RegExp("^"+whitespace+"*,"+whitespace+"*"),
1163rleadingCombinator=new RegExp("^"+whitespace+"*([>+~]|"+whitespace+")"+
1164whitespace+"*"),
1165rdescend=new RegExp(whitespace+"|>"),
1166rpseudo=new RegExp(pseudos),
1167ridentifier=new RegExp("^"+identifier+"$"),
1168matchExpr={
1169ID:new RegExp("^#("+identifier+")"),
1170CLASS:new RegExp("^\\.("+identifier+")"),
1171TAG:new RegExp("^("+identifier+"|[*])"),
1172ATTR:new RegExp("^"+attributes),
1173PSEUDO:new RegExp("^"+pseudos),
1174CHILD:new RegExp(
1175"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+
1176whitespace+"*(even|odd|(([+-]|)(\\d*)n|)"+whitespace+"*(?:([+-]|)"+
1177whitespace+"*(\\d+)|))"+whitespace+"*\\)|)","i"),
1178bool:new RegExp("^(?:"+booleans+")$","i"),
1179needsContext:new RegExp("^"+whitespace+
1180"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+whitespace+
1181"*((?:-\\d)?\\d*)"+whitespace+"*\\)|)(?=[^-]|$)","i")
1182},
1183rinputs=/^(?:input|select|textarea|button)$/i,
1184rheader=/^h\d$/i,
1185rquickExpr=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
1186rsibling=/[+~]/,
1187runescape=new RegExp("\\\\[\\da-fA-F]{1,6}"+whitespace+
1188"?|\\\\([^\\r\\n\\f])","g"),
1189funescape=function(escape,nonHex){
1190var high="0x"+escape.slice(1)-0x10000;
1191if(nonHex){
1192return nonHex;
1193}
1194return high<0?
1195String.fromCharCode(high+0x10000):
1196String.fromCharCode(high>>10|0xD800,high&0x3FF|0xDC00);
1197},
1198unloadHandler=function(){
1199setDocument();
1200},
1201inDisabledFieldset=addCombinator(
1202function(elem){
1203return elem.disabled===true&&nodeName(elem,"fieldset");
1204},
1205{dir:"parentNode",next:"legend"}
1206);
1207function safeActiveElement(){
1208try{
1209return document.activeElement;
1210}catch(err){}
1211}
1212try{
1213push.apply(
1214(arr=slice.call(preferredDoc.childNodes)),
1215preferredDoc.childNodes
1216);
1217arr[preferredDoc.childNodes.length].nodeType;
1218}catch(e){
1219push={
1220apply:function(target,els){
1221pushNative.apply(target,slice.call(els));
1222},
1223call:function(target){
1224pushNative.apply(target,slice.call(arguments,1));
1225}
1226};
1227}
1228function find(selector,context,results,seed){
1229var m,i,elem,nid,match,groups,newSelector,
1230newContext=context&&context.ownerDocument,
1231nodeType=context?context.nodeType:9;
1232results=results||[];
1233if(typeof selector!=="string"||!selector||
1234nodeType!==1&&nodeType!==9&&nodeType!==11){
1235return results;
1236}
1237if(!seed){
1238setDocument(context);
1239context=context||document;
1240if(documentIsHTML){
1241if(nodeType!==11&&(match=rquickExpr.exec(selector))){
1242if((m=match[1])){
1243if(nodeType===9){
1244if((elem=context.getElementById(m))){
1245if(elem.id===m){
1246push.call(results,elem);
1247return results;
1248}
1249}else{
1250return results;
1251}
1252}else{
1253if(newContext&&(elem=newContext.getElementById(m))&&
1254find.contains(context,elem)&&
1255elem.id===m){
1256push.call(results,elem);
1257return results;
1258}
1259}
1260}else if(match[2]){
1261push.apply(results,context.getElementsByTagName(selector));
1262return results;
1263}else if((m=match[3])&&context.getElementsByClassName){
1264push.apply(results,context.getElementsByClassName(m));
1265return results;
1266}
1267}
1268if(!nonnativeSelectorCache[selector+" "]&&
1269(!rbuggyQSA||!rbuggyQSA.test(selector))){
1270newSelector=selector;
1271newContext=context;
1272if(nodeType===1&&
1273(rdescend.test(selector)||rleadingCombinator.test(selector))){
1274newContext=rsibling.test(selector)&&testContext(context.parentNode)||
1275context;
1276if(newContext!=context||!support.scope){
1277if((nid=context.getAttribute("id"))){
1278nid=jQuery.escapeSelector(nid);
1279}else{
1280context.setAttribute("id",(nid=expando));
1281}
1282}
1283groups=tokenize(selector);
1284i=groups.length;
1285while(i--){
1286groups[i]=(nid?"#"+nid:":scope")+" "+
1287toSelector(groups[i]);
1288}
1289newSelector=groups.join(",");
1290}
1291try{
1292push.apply(results,
1293newContext.querySelectorAll(newSelector)
1294);
1295return results;
1296}catch(qsaError){
1297nonnativeSelectorCache(selector,true);
1298}finally{
1299if(nid===expando){
1300context.removeAttribute("id");
1301}
1302}
1303}
1304}
1305}
1306return select(selector.replace(rtrimCSS,"$1"),context,results,seed);
1307}
1308function createCache(){
1309var keys=[];
1310function cache(key,value){
1311if(keys.push(key+" ")>Expr.cacheLength){
1312delete cache[keys.shift()];
1313}
1314return(cache[key+" "]=value);
1315}
1316return cache;
1317}
1318function markFunction(fn){
1319fn[expando]=true;
1320return fn;
1321}
1322function assert(fn){
1323var el=document.createElement("fieldset");
1324try{
1325return!!fn(el);
1326}catch(e){
1327return false;
1328}finally{
1329if(el.parentNode){
1330el.parentNode.removeChild(el);
1331}
1332el=null;
1333}
1334}
1335function createInputPseudo(type){
1336return function(elem){
1337return nodeName(elem,"input")&&elem.type===type;
1338};
1339}
1340function createButtonPseudo(type){
1341return function(elem){
1342return(nodeName(elem,"input")||nodeName(elem,"button"))&&
1343elem.type===type;
1344};
1345}
1346function createDisabledPseudo(disabled){
1347return function(elem){
1348if("form"in elem){
1349if(elem.parentNode&&elem.disabled===false){
1350if("label"in elem){
1351if("label"in elem.parentNode){
1352return elem.parentNode.disabled===disabled;
1353}else{
1354return elem.disabled===disabled;
1355}
1356}
1357return elem.isDisabled===disabled||
1358elem.isDisabled!==!disabled&&
1359inDisabledFieldset(elem)===disabled;
1360}
1361return elem.disabled===disabled;
1362}else if("label"in elem){
1363return elem.disabled===disabled;
1364}
1365return false;
1366};
1367}
1368function createPositionalPseudo(fn){
1369return markFunction(function(argument){
1370argument=+argument;
1371return markFunction(function(seed,matches){
1372var j,
1373matchIndexes=fn([],seed.length,argument),
1374i=matchIndexes.length;
1375while(i--){
1376if(seed[(j=matchIndexes[i])]){
1377seed[j]=!(matches[j]=seed[j]);
1378}
1379}
1380});
1381});
1382}
1383function testContext(context){
1384return context&&typeof context.getElementsByTagName!=="undefined"&&context;
1385}
1386function setDocument(node){
1387var subWindow,
1388doc=node?node.ownerDocument||node:preferredDoc;
1389if(doc==document||doc.nodeType!==9||!doc.documentElement){
1390return document;
1391}
1392document=doc;
1393documentElement=document.documentElement;
1394documentIsHTML=!jQuery.isXMLDoc(document);
1395matches=documentElement.matches||
1396documentElement.webkitMatchesSelector||
1397documentElement.msMatchesSelector;
1398if(documentElement.msMatchesSelector&&
1399preferredDoc!=document&&
1400(subWindow=document.defaultView)&&subWindow.top!==subWindow){
1401subWindow.addEventListener("unload",unloadHandler);
1402}
1403support.getById=assert(function(el){
1404documentElement.appendChild(el).id=jQuery.expando;
1405return!document.getElementsByName||
1406!document.getElementsByName(jQuery.expando).length;
1407});
1408support.disconnectedMatch=assert(function(el){
1409return matches.call(el,"*");
1410});
1411support.scope=assert(function(){
1412return document.querySelectorAll(":scope");
1413});
1414support.cssHas=assert(function(){
1415try{
1416document.querySelector(":has(*,:jqfake)");
1417return false;
1418}catch(e){
1419return true;
1420}
1421});
1422if(support.getById){
1423Expr.filter.ID=function(id){
1424var attrId=id.replace(runescape,funescape);
1425return function(elem){
1426return elem.getAttribute("id")===attrId;
1427};
1428};
1429Expr.find.ID=function(id,context){
1430if(typeof context.getElementById!=="undefined"&&documentIsHTML){
1431var elem=context.getElementById(id);
1432return elem?[elem]:[];
1433}
1434};
1435}else{
1436Expr.filter.ID=function(id){
1437var attrId=id.replace(runescape,funescape);
1438return function(elem){
1439var node=typeof elem.getAttributeNode!=="undefined"&&
1440elem.getAttributeNode("id");
1441return node&&node.value===attrId;
1442};
1443};
1444Expr.find.ID=function(id,context){
1445if(typeof context.getElementById!=="undefined"&&documentIsHTML){
1446var node,i,elems,
1447elem=context.getElementById(id);
1448if(elem){
1449node=elem.getAttributeNode("id");
1450if(node&&node.value===id){
1451return[elem];
1452}
1453elems=context.getElementsByName(id);
1454i=0;
1455while((elem=elems[i++])){
1456node=elem.getAttributeNode("id");
1457if(node&&node.value===id){
1458return[elem];
1459}
1460}
1461}
1462return[];
1463}
1464};
1465}
1466Expr.find.TAG=function(tag,context){
1467if(typeof context.getElementsByTagName!=="undefined"){
1468return context.getElementsByTagName(tag);
1469}else{
1470return context.querySelectorAll(tag);
1471}
1472};
1473Expr.find.CLASS=function(className,context){
1474if(typeof context.getElementsByClassName!=="undefined"&&documentIsHTML){
1475return context.getElementsByClassName(className);
1476}
1477};
1478rbuggyQSA=[];
1479assert(function(el){
1480var input;
1481documentElement.appendChild(el).innerHTML=
1482"<a id='"+expando+"' href='' disabled='disabled'></a>"+
1483"<select id='"+expando+"-\r\\' disabled='disabled'>"+
1484"<option selected=''></option></select>";
1485if(!el.querySelectorAll("[selected]").length){
1486rbuggyQSA.push("\\["+whitespace+"*(?:value|"+booleans+")");
1487}
1488if(!el.querySelectorAll("[id~="+expando+"-]").length){
1489rbuggyQSA.push("~=");
1490}
1491if(!el.querySelectorAll("a#"+expando+"+*").length){
1492rbuggyQSA.push(".#.+[+~]");
1493}
1494if(!el.querySelectorAll(":checked").length){
1495rbuggyQSA.push(":checked");
1496}
1497input=document.createElement("input");
1498input.setAttribute("type","hidden");
1499el.appendChild(input).setAttribute("name","D");
1500documentElement.appendChild(el).disabled=true;
1501if(el.querySelectorAll(":disabled").length!==2){
1502rbuggyQSA.push(":enabled",":disabled");
1503}
1504input=document.createElement("input");
1505input.setAttribute("name","");
1506el.appendChild(input);
1507if(!el.querySelectorAll("[name='']").length){
1508rbuggyQSA.push("\\["+whitespace+"*name"+whitespace+"*="+
1509whitespace+"*(?:''|\"\")");
1510}
1511});
1512if(!support.cssHas){
1513rbuggyQSA.push(":has");
1514}
1515rbuggyQSA=rbuggyQSA.length&&new RegExp(rbuggyQSA.join("|"));
1516sortOrder=function(a,b){
1517if(a===b){
1518hasDuplicate=true;
1519return 0;
1520}
1521var compare=!a.compareDocumentPosition-!b.compareDocumentPosition;
1522if(compare){
1523return compare;
1524}
1525compare=(a.ownerDocument||a)==(b.ownerDocument||b)?
1526a.compareDocumentPosition(b):
15271;
1528if(compare&1||
1529(!support.sortDetached&&b.compareDocumentPosition(a)===compare)){
1530if(a===document||a.ownerDocument==preferredDoc&&
1531find.contains(preferredDoc,a)){
1532return-1;
1533}
1534if(b===document||b.ownerDocument==preferredDoc&&
1535find.contains(preferredDoc,b)){
1536return 1;
1537}
1538return sortInput?
1539(indexOf.call(sortInput,a)-indexOf.call(sortInput,b)):
15400;
1541}
1542return compare&4?-1:1;
1543};
1544return document;
1545}
1546find.matches=function(expr,elements){
1547return find(expr,null,null,elements);
1548};
1549find.matchesSelector=function(elem,expr){
1550setDocument(elem);
1551if(documentIsHTML&&
1552!nonnativeSelectorCache[expr+" "]&&
1553(!rbuggyQSA||!rbuggyQSA.test(expr))){
1554try{
1555var ret=matches.call(elem,expr);
1556if(ret||support.disconnectedMatch||
1557elem.document&&elem.document.nodeType!==11){
1558return ret;
1559}
1560}catch(e){
1561nonnativeSelectorCache(expr,true);
1562}
1563}
1564return find(expr,document,null,[elem]).length>0;
1565};
1566find.contains=function(context,elem){
1567if((context.ownerDocument||context)!=document){
1568setDocument(context);
1569}
1570return jQuery.contains(context,elem);
1571};
1572find.attr=function(elem,name){
1573if((elem.ownerDocument||elem)!=document){
1574setDocument(elem);
1575}
1576var fn=Expr.attrHandle[name.toLowerCase()],
1577val=fn&&hasOwn.call(Expr.attrHandle,name.toLowerCase())?
1578fn(elem,name,!documentIsHTML):
1579undefined;
1580if(val!==undefined){
1581return val;
1582}
1583return elem.getAttribute(name);
1584};
1585find.error=function(msg){
1586throw new Error("Syntax error, unrecognized expression: "+msg);
1587};
1588jQuery.uniqueSort=function(results){
1589var elem,
1590duplicates=[],
1591j=0,
1592i=0;
1593hasDuplicate=!support.sortStable;
1594sortInput=!support.sortStable&&slice.call(results,0);
1595sort.call(results,sortOrder);
1596if(hasDuplicate){
1597while((elem=results[i++])){
1598if(elem===results[i]){
1599j=duplicates.push(i);
1600}
1601}
1602while(j--){
1603splice.call(results,duplicates[j],1);
1604}
1605}
1606sortInput=null;
1607return results;
1608};
1609jQuery.fn.uniqueSort=function(){
1610return this.pushStack(jQuery.uniqueSort(slice.apply(this)));
1611};
1612Expr=jQuery.expr={
1613cacheLength:50,
1614createPseudo:markFunction,
1615match:matchExpr,
1616attrHandle:{},
1617find:{},
1618relative:{
1619">":{dir:"parentNode",first:true},
1620" ":{dir:"parentNode"},
1621"+":{dir:"previousSibling",first:true},
1622"~":{dir:"previousSibling"}
1623},
1624preFilter:{
1625ATTR:function(match){
1626match[1]=match[1].replace(runescape,funescape);
1627match[3]=(match[3]||match[4]||match[5]||"")
1628.replace(runescape,funescape);
1629if(match[2]==="~="){
1630match[3]=" "+match[3]+" ";
1631}
1632return match.slice(0,4);
1633},
1634CHILD:function(match){
1635match[1]=match[1].toLowerCase();
1636if(match[1].slice(0,3)==="nth"){
1637if(!match[3]){
1638find.error(match[0]);
1639}
1640match[4]=+(match[4]?
1641match[5]+(match[6]||1):
16422*(match[3]==="even"||match[3]==="odd")
1643);
1644match[5]=+((match[7]+match[8])||match[3]==="odd");
1645}else if(match[3]){
1646find.error(match[0]);
1647}
1648return match;
1649},
1650PSEUDO:function(match){
1651var excess,
1652unquoted=!match[6]&&match[2];
1653if(matchExpr.CHILD.test(match[0])){
1654return null;
1655}
1656if(match[3]){
1657match[2]=match[4]||match[5]||"";
1658}else if(unquoted&&rpseudo.test(unquoted)&&
1659(excess=tokenize(unquoted,true))&&
1660(excess=unquoted.indexOf(")",unquoted.length-excess)-unquoted.length)){
1661match[0]=match[0].slice(0,excess);
1662match[2]=unquoted.slice(0,excess);
1663}
1664return match.slice(0,3);
1665}
1666},
1667filter:{
1668TAG:function(nodeNameSelector){
1669var expectedNodeName=nodeNameSelector.replace(runescape,funescape).toLowerCase();
1670return nodeNameSelector==="*"?
1671function(){
1672return true;
1673}:
1674function(elem){
1675return nodeName(elem,expectedNodeName);
1676};
1677},
1678CLASS:function(className){
1679var pattern=classCache[className+" "];
1680return pattern||
1681(pattern=new RegExp("(^|"+whitespace+")"+className+
1682"("+whitespace+"|$)"))&&
1683classCache(className,function(elem){
1684return pattern.test(
1685typeof elem.className==="string"&&elem.className||
1686typeof elem.getAttribute!=="undefined"&&
1687elem.getAttribute("class")||
1688""
1689);
1690});
1691},
1692ATTR:function(name,operator,check){
1693return function(elem){
1694var result=find.attr(elem,name);
1695if(result==null){
1696return operator==="!=";
1697}
1698if(!operator){
1699return true;
1700}
1701result+="";
1702if(operator==="="){
1703return result===check;
1704}
1705if(operator==="!="){
1706return result!==check;
1707}
1708if(operator==="^="){
1709return check&&result.indexOf(check)===0;
1710}
1711if(operator==="*="){
1712return check&&result.indexOf(check)>-1;
1713}
1714if(operator==="$="){
1715return check&&result.slice(-check.length)===check;
1716}
1717if(operator==="~="){
1718return(" "+result.replace(rwhitespace," ")+" ")
1719.indexOf(check)>-1;
1720}
1721if(operator==="|="){
1722return result===check||result.slice(0,check.length+1)===check+"-";
1723}
1724return false;
1725};
1726},
1727CHILD:function(type,what,_argument,first,last){
1728var simple=type.slice(0,3)!=="nth",
1729forward=type.slice(-4)!=="last",
1730ofType=what==="of-type";
1731return first===1&&last===0?
1732function(elem){
1733return!!elem.parentNode;
1734}:
1735function(elem,_context,xml){
1736var cache,outerCache,node,nodeIndex,start,
1737dir=simple!==forward?"nextSibling":"previousSibling",
1738parent=elem.parentNode,
1739name=ofType&&elem.nodeName.toLowerCase(),
1740useCache=!xml&&!ofType,
1741diff=false;
1742if(parent){
1743if(simple){
1744while(dir){
1745node=elem;
1746while((node=node[dir])){
1747if(ofType?
1748nodeName(node,name):
1749node.nodeType===1){
1750return false;
1751}
1752}
1753start=dir=type==="only"&&!start&&"nextSibling";
1754}
1755return true;
1756}
1757start=[forward?parent.firstChild:parent.lastChild];
1758if(forward&&useCache){
1759outerCache=parent[expando]||(parent[expando]={});
1760cache=outerCache[type]||[];
1761nodeIndex=cache[0]===dirruns&&cache[1];
1762diff=nodeIndex&&cache[2];
1763node=nodeIndex&&parent.childNodes[nodeIndex];
1764while((node=++nodeIndex&&node&&node[dir]||
1765(diff=nodeIndex=0)||start.pop())){
1766if(node.nodeType===1&&++diff&&node===elem){
1767outerCache[type]=[dirruns,nodeIndex,diff];
1768break;
1769}
1770}
1771}else{
1772if(useCache){
1773outerCache=elem[expando]||(elem[expando]={});
1774cache=outerCache[type]||[];
1775nodeIndex=cache[0]===dirruns&&cache[1];
1776diff=nodeIndex;
1777}
1778if(diff===false){
1779while((node=++nodeIndex&&node&&node[dir]||
1780(diff=nodeIndex=0)||start.pop())){
1781if((ofType?
1782nodeName(node,name):
1783node.nodeType===1)&&
1784++diff){
1785if(useCache){
1786outerCache=node[expando]||
1787(node[expando]={});
1788outerCache[type]=[dirruns,diff];
1789}
1790if(node===elem){
1791break;
1792}
1793}
1794}
1795}
1796}
1797diff-=last;
1798return diff===first||(diff%first===0&&diff/first>=0);
1799}
1800};
1801},
1802PSEUDO:function(pseudo,argument){
1803var args,
1804fn=Expr.pseudos[pseudo]||Expr.setFilters[pseudo.toLowerCase()]||
1805find.error("unsupported pseudo: "+pseudo);
1806if(fn[expando]){
1807return fn(argument);
1808}
1809if(fn.length>1){
1810args=[pseudo,pseudo,"",argument];
1811return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase())?
1812markFunction(function(seed,matches){
1813var idx,
1814matched=fn(seed,argument),
1815i=matched.length;
1816while(i--){
1817idx=indexOf.call(seed,matched[i]);
1818seed[idx]=!(matches[idx]=matched[i]);
1819}
1820}):
1821function(elem){
1822return fn(elem,0,args);
1823};
1824}
1825return fn;
1826}
1827},
1828pseudos:{
1829not:markFunction(function(selector){
1830var input=[],
1831results=[],
1832matcher=compile(selector.replace(rtrimCSS,"$1"));
1833return matcher[expando]?
1834markFunction(function(seed,matches,_context,xml){
1835var elem,
1836unmatched=matcher(seed,null,xml,[]),
1837i=seed.length;
1838while(i--){
1839if((elem=unmatched[i])){
1840seed[i]=!(matches[i]=elem);
1841}
1842}
1843}):
1844function(elem,_context,xml){
1845input[0]=elem;
1846matcher(input,null,xml,results);
1847input[0]=null;
1848return!results.pop();
1849};
1850}),
1851has:markFunction(function(selector){
1852return function(elem){
1853return find(selector,elem).length>0;
1854};
1855}),
1856contains:markFunction(function(text){
1857text=text.replace(runescape,funescape);
1858return function(elem){
1859return(elem.textContent||jQuery.text(elem)).indexOf(text)>-1;
1860};
1861}),
1862lang:markFunction(function(lang){
1863if(!ridentifier.test(lang||"")){
1864find.error("unsupported lang: "+lang);
1865}
1866lang=lang.replace(runescape,funescape).toLowerCase();
1867return function(elem){
1868var elemLang;
1869do{
1870if((elemLang=documentIsHTML?
1871elem.lang:
1872elem.getAttribute("xml:lang")||elem.getAttribute("lang"))){
1873elemLang=elemLang.toLowerCase();
1874return elemLang===lang||elemLang.indexOf(lang+"-")===0;
1875}
1876}while((elem=elem.parentNode)&&elem.nodeType===1);
1877return false;
1878};
1879}),
1880target:function(elem){
1881var hash=window.location&&window.location.hash;
1882return hash&&hash.slice(1)===elem.id;
1883},
1884root:function(elem){
1885return elem===documentElement;
1886},
1887focus:function(elem){
1888return elem===safeActiveElement()&&
1889document.hasFocus()&&
1890!!(elem.type||elem.href||~elem.tabIndex);
1891},
1892enabled:createDisabledPseudo(false),
1893disabled:createDisabledPseudo(true),
1894checked:function(elem){
1895return(nodeName(elem,"input")&&!!elem.checked)||
1896(nodeName(elem,"option")&&!!elem.selected);
1897},
1898selected:function(elem){
1899if(elem.parentNode){
1900elem.parentNode.selectedIndex;
1901}
1902return elem.selected===true;
1903},
1904empty:function(elem){
1905for(elem=elem.firstChild;elem;elem=elem.nextSibling){
1906if(elem.nodeType<6){
1907return false;
1908}
1909}
1910return true;
1911},
1912parent:function(elem){
1913return!Expr.pseudos.empty(elem);
1914},
1915header:function(elem){
1916return rheader.test(elem.nodeName);
1917},
1918input:function(elem){
1919return rinputs.test(elem.nodeName);
1920},
1921button:function(elem){
1922return nodeName(elem,"input")&&elem.type==="button"||
1923nodeName(elem,"button");
1924},
1925text:function(elem){
1926var attr;
1927return nodeName(elem,"input")&&elem.type==="text"&&
1928((attr=elem.getAttribute("type"))==null||
1929attr.toLowerCase()==="text");
1930},
1931first:createPositionalPseudo(function(){
1932return[0];
1933}),
1934last:createPositionalPseudo(function(_matchIndexes,length){
1935return[length-1];
1936}),
1937eq:createPositionalPseudo(function(_matchIndexes,length,argument){
1938return[argument<0?argument+length:argument];
1939}),
1940even:createPositionalPseudo(function(matchIndexes,length){
1941var i=0;
1942for(;i<length;i+=2){
1943matchIndexes.push(i);
1944}
1945return matchIndexes;
1946}),
1947odd:createPositionalPseudo(function(matchIndexes,length){
1948var i=1;
1949for(;i<length;i+=2){
1950matchIndexes.push(i);
1951}
1952return matchIndexes;
1953}),
1954lt:createPositionalPseudo(function(matchIndexes,length,argument){
1955var i;
1956if(argument<0){
1957i=argument+length;
1958}else if(argument>length){
1959i=length;
1960}else{
1961i=argument;
1962}
1963for(;--i>=0;){
1964matchIndexes.push(i);
1965}
1966return matchIndexes;
1967}),
1968gt:createPositionalPseudo(function(matchIndexes,length,argument){
1969var i=argument<0?argument+length:argument;
1970for(;++i<length;){
1971matchIndexes.push(i);
1972}
1973return matchIndexes;
1974})
1975}
1976};
1977Expr.pseudos.nth=Expr.pseudos.eq;
1978for(i in{radio:true,checkbox:true,file:true,password:true,image:true}){
1979Expr.pseudos[i]=createInputPseudo(i);
1980}
1981for(i in{submit:true,reset:true}){
1982Expr.pseudos[i]=createButtonPseudo(i);
1983}
1984function setFilters(){}
1985setFilters.prototype=Expr.filters=Expr.pseudos;
1986Expr.setFilters=new setFilters();
1987function tokenize(selector,parseOnly){
1988var matched,match,tokens,type,
1989soFar,groups,preFilters,
1990cached=tokenCache[selector+" "];
1991if(cached){
1992return parseOnly?0:cached.slice(0);
1993}
1994soFar=selector;
1995groups=[];
1996preFilters=Expr.preFilter;
1997while(soFar){
1998if(!matched||(match=rcomma.exec(soFar))){
1999if(match){
2000soFar=soFar.slice(match[0].length)||soFar;
2001}
2002groups.push((tokens=[]));
2003}
2004matched=false;
2005if((match=rleadingCombinator.exec(soFar))){
2006matched=match.shift();
2007tokens.push({
2008value:matched,
2009type:match[0].replace(rtrimCSS," ")
2010});
2011soFar=soFar.slice(matched.length);
2012}
2013for(type in Expr.filter){
2014if((match=matchExpr[type].exec(soFar))&&(!preFilters[type]||
2015(match=preFilters[type](match)))){
2016matched=match.shift();
2017tokens.push({
2018value:matched,
2019type:type,
2020matches:match
2021});
2022soFar=soFar.slice(matched.length);
2023}
2024}
2025if(!matched){
2026break;
2027}
2028}
2029if(parseOnly){
2030return soFar.length;
2031}
2032return soFar?
2033find.error(selector):
2034tokenCache(selector,groups).slice(0);
2035}
2036function toSelector(tokens){
2037var i=0,
2038len=tokens.length,
2039selector="";
2040for(;i<len;i++){
2041selector+=tokens[i].value;
2042}
2043return selector;
2044}
2045function addCombinator(matcher,combinator,base){
2046var dir=combinator.dir,
2047skip=combinator.next,
2048key=skip||dir,
2049checkNonElements=base&&key==="parentNode",
2050doneName=done++;
2051return combinator.first?
2052function(elem,context,xml){
2053while((elem=elem[dir])){
2054if(elem.nodeType===1||checkNonElements){
2055return matcher(elem,context,xml);
2056}
2057}
2058return false;
2059}:
2060function(elem,context,xml){
2061var oldCache,outerCache,
2062newCache=[dirruns,doneName];
2063if(xml){
2064while((elem=elem[dir])){
2065if(elem.nodeType===1||checkNonElements){
2066if(matcher(elem,context,xml)){
2067return true;
2068}
2069}
2070}
2071}else{
2072while((elem=elem[dir])){
2073if(elem.nodeType===1||checkNonElements){
2074outerCache=elem[expando]||(elem[expando]={});
2075if(skip&&nodeName(elem,skip)){
2076elem=elem[dir]||elem;
2077}else if((oldCache=outerCache[key])&&
2078oldCache[0]===dirruns&&oldCache[1]===doneName){
2079return(newCache[2]=oldCache[2]);
2080}else{
2081outerCache[key]=newCache;
2082if((newCache[2]=matcher(elem,context,xml))){
2083return true;
2084}
2085}
2086}
2087}
2088}
2089return false;
2090};
2091}
2092function elementMatcher(matchers){
2093return matchers.length>1?
2094function(elem,context,xml){
2095var i=matchers.length;
2096while(i--){
2097if(!matchers[i](elem,context,xml)){
2098return false;
2099}
2100}
2101return true;
2102}:
2103matchers[0];
2104}
2105function multipleContexts(selector,contexts,results){
2106var i=0,
2107len=contexts.length;
2108for(;i<len;i++){
2109find(selector,contexts[i],results);
2110}
2111return results;
2112}
2113function condense(unmatched,map,filter,context,xml){
2114var elem,
2115newUnmatched=[],
2116i=0,
2117len=unmatched.length,
2118mapped=map!=null;
2119for(;i<len;i++){
2120if((elem=unmatched[i])){
2121if(!filter||filter(elem,context,xml)){
2122newUnmatched.push(elem);
2123if(mapped){
2124map.push(i);
2125}
2126}
2127}
2128}
2129return newUnmatched;
2130}
2131function setMatcher(preFilter,selector,matcher,postFilter,postFinder,postSelector){
2132if(postFilter&&!postFilter[expando]){
2133postFilter=setMatcher(postFilter);
2134}
2135if(postFinder&&!postFinder[expando]){
2136postFinder=setMatcher(postFinder,postSelector);
2137}
2138return markFunction(function(seed,results,context,xml){
2139var temp,i,elem,matcherOut,
2140preMap=[],
2141postMap=[],
2142preexisting=results.length,
2143elems=seed||
2144multipleContexts(selector||"*",
2145context.nodeType?[context]:context,[]),
2146matcherIn=preFilter&&(seed||!selector)?
2147condense(elems,preMap,preFilter,context,xml):
2148elems;
2149if(matcher){
2150matcherOut=postFinder||(seed?preFilter:preexisting||postFilter)?
2151[]:
2152results;
2153matcher(matcherIn,matcherOut,context,xml);
2154}else{
2155matcherOut=matcherIn;
2156}
2157if(postFilter){
2158temp=condense(matcherOut,postMap);
2159postFilter(temp,[],context,xml);
2160i=temp.length;
2161while(i--){
2162if((elem=temp[i])){
2163matcherOut[postMap[i]]=!(matcherIn[postMap[i]]=elem);
2164}
2165}
2166}
2167if(seed){
2168if(postFinder||preFilter){
2169if(postFinder){
2170temp=[];
2171i=matcherOut.length;
2172while(i--){
2173if((elem=matcherOut[i])){
2174temp.push((matcherIn[i]=elem));
2175}
2176}
2177postFinder(null,(matcherOut=[]),temp,xml);
2178}
2179i=matcherOut.length;
2180while(i--){
2181if((elem=matcherOut[i])&&
2182(temp=postFinder?indexOf.call(seed,elem):preMap[i])>-1){
2183seed[temp]=!(results[temp]=elem);
2184}
2185}
2186}
2187}else{
2188matcherOut=condense(
2189matcherOut===results?
2190matcherOut.splice(preexisting,matcherOut.length):
2191matcherOut
2192);
2193if(postFinder){
2194postFinder(null,results,matcherOut,xml);
2195}else{
2196push.apply(results,matcherOut);
2197}
2198}
2199});
2200}
2201function matcherFromTokens(tokens){
2202var checkContext,matcher,j,
2203len=tokens.length,
2204leadingRelative=Expr.relative[tokens[0].type],
2205implicitRelative=leadingRelative||Expr.relative[" "],
2206i=leadingRelative?1:0,
2207matchContext=addCombinator(function(elem){
2208return elem===checkContext;
2209},implicitRelative,true),
2210matchAnyContext=addCombinator(function(elem){
2211return indexOf.call(checkContext,elem)>-1;
2212},implicitRelative,true),
2213matchers=[function(elem,context,xml){
2214var ret=(!leadingRelative&&(xml||context!=outermostContext))||(
2215(checkContext=context).nodeType?
2216matchContext(elem,context,xml):
2217matchAnyContext(elem,context,xml));
2218checkContext=null;
2219return ret;
2220}];
2221for(;i<len;i++){
2222if((matcher=Expr.relative[tokens[i].type])){
2223matchers=[addCombinator(elementMatcher(matchers),matcher)];
2224}else{
2225matcher=Expr.filter[tokens[i].type].apply(null,tokens[i].matches);
2226if(matcher[expando]){
2227j=++i;
2228for(;j<len;j++){
2229if(Expr.relative[tokens[j].type]){
2230break;
2231}
2232}
2233return setMatcher(
2234i>1&&elementMatcher(matchers),
2235i>1&&toSelector(
2236tokens.slice(0,i-1)
2237.concat({value:tokens[i-2].type===" "?"*":""})
2238).replace(rtrimCSS,"$1"),
2239matcher,
2240i<j&&matcherFromTokens(tokens.slice(i,j)),
2241j<len&&matcherFromTokens((tokens=tokens.slice(j))),
2242j<len&&toSelector(tokens)
2243);
2244}
2245matchers.push(matcher);
2246}
2247}
2248return elementMatcher(matchers);
2249}
2250function matcherFromGroupMatchers(elementMatchers,setMatchers){
2251var bySet=setMatchers.length>0,
2252byElement=elementMatchers.length>0,
2253superMatcher=function(seed,context,xml,results,outermost){
2254var elem,j,matcher,
2255matchedCount=0,
2256i="0",
2257unmatched=seed&&[],
2258setMatched=[],
2259contextBackup=outermostContext,
2260elems=seed||byElement&&Expr.find.TAG("*",outermost),
2261dirrunsUnique=(dirruns+=contextBackup==null?1:Math.random()||0.1),
2262len=elems.length;
2263if(outermost){
2264outermostContext=context==document||context||outermost;
2265}
2266for(;i!==len&&(elem=elems[i])!=null;i++){
2267if(byElement&&elem){
2268j=0;
2269if(!context&&elem.ownerDocument!=document){
2270setDocument(elem);
2271xml=!documentIsHTML;
2272}
2273while((matcher=elementMatchers[j++])){
2274if(matcher(elem,context||document,xml)){
2275push.call(results,elem);
2276break;
2277}
2278}
2279if(outermost){
2280dirruns=dirrunsUnique;
2281}
2282}
2283if(bySet){
2284if((elem=!matcher&&elem)){
2285matchedCount--;
2286}
2287if(seed){
2288unmatched.push(elem);
2289}
2290}
2291}
2292matchedCount+=i;
2293if(bySet&&i!==matchedCount){
2294j=0;
2295while((matcher=setMatchers[j++])){
2296matcher(unmatched,setMatched,context,xml);
2297}
2298if(seed){
2299if(matchedCount>0){
2300while(i--){
2301if(!(unmatched[i]||setMatched[i])){
2302setMatched[i]=pop.call(results);
2303}
2304}
2305}
2306setMatched=condense(setMatched);
2307}
2308push.apply(results,setMatched);
2309if(outermost&&!seed&&setMatched.length>0&&
2310(matchedCount+setMatchers.length)>1){
2311jQuery.uniqueSort(results);
2312}
2313}
2314if(outermost){
2315dirruns=dirrunsUnique;
2316outermostContext=contextBackup;
2317}
2318return unmatched;
2319};
2320return bySet?
2321markFunction(superMatcher):
2322superMatcher;
2323}
2324function compile(selector,match){
2325var i,
2326setMatchers=[],
2327elementMatchers=[],
2328cached=compilerCache[selector+" "];
2329if(!cached){
2330if(!match){
2331match=tokenize(selector);
2332}
2333i=match.length;
2334while(i--){
2335cached=matcherFromTokens(match[i]);
2336if(cached[expando]){
2337setMatchers.push(cached);
2338}else{
2339elementMatchers.push(cached);
2340}
2341}
2342cached=compilerCache(selector,
2343matcherFromGroupMatchers(elementMatchers,setMatchers));
2344cached.selector=selector;
2345}
2346return cached;
2347}
2348function select(selector,context,results,seed){
2349var i,tokens,token,type,find,
2350compiled=typeof selector==="function"&&selector,
2351match=!seed&&tokenize((selector=compiled.selector||selector));
2352results=results||[];
2353if(match.length===1){
2354tokens=match[0]=match[0].slice(0);
2355if(tokens.length>2&&(token=tokens[0]).type==="ID"&&
2356context.nodeType===9&&documentIsHTML&&Expr.relative[tokens[1].type]){
2357context=(Expr.find.ID(
2358token.matches[0].replace(runescape,funescape),
2359context
2360)||[])[0];
2361if(!context){
2362return results;
2363}else if(compiled){
2364context=context.parentNode;
2365}
2366selector=selector.slice(tokens.shift().value.length);
2367}
2368i=matchExpr.needsContext.test(selector)?0:tokens.length;
2369while(i--){
2370token=tokens[i];
2371if(Expr.relative[(type=token.type)]){
2372break;
2373}
2374if((find=Expr.find[type])){
2375if((seed=find(
2376token.matches[0].replace(runescape,funescape),
2377rsibling.test(tokens[0].type)&&
2378testContext(context.parentNode)||context
2379))){
2380tokens.splice(i,1);
2381selector=seed.length&&toSelector(tokens);
2382if(!selector){
2383push.apply(results,seed);
2384return results;
2385}
2386break;
2387}
2388}
2389}
2390}
2391(compiled||compile(selector,match))(
2392seed,
2393context,
2394!documentIsHTML,
2395results,
2396!context||rsibling.test(selector)&&testContext(context.parentNode)||context
2397);
2398return results;
2399}
2400support.sortStable=expando.split("").sort(sortOrder).join("")===expando;
2401setDocument();
2402support.sortDetached=assert(function(el){
2403return el.compareDocumentPosition(document.createElement("fieldset"))&1;
2404});
2405jQuery.find=find;
2406jQuery.expr[":"]=jQuery.expr.pseudos;
2407jQuery.unique=jQuery.uniqueSort;
2408find.compile=compile;
2409find.select=select;
2410find.setDocument=setDocument;
2411find.tokenize=tokenize;
2412find.escape=jQuery.escapeSelector;
2413find.getText=jQuery.text;
2414find.isXML=jQuery.isXMLDoc;
2415find.selectors=jQuery.expr;
2416find.support=jQuery.support;
2417find.uniqueSort=jQuery.uniqueSort;
2418})();
2419var dir=function(elem,dir,until){
2420var matched=[],
2421truncate=until!==undefined;
2422while((elem=elem[dir])&&elem.nodeType!==9){
2423if(elem.nodeType===1){
2424if(truncate&&jQuery(elem).is(until)){
2425break;
2426}
2427matched.push(elem);
2428}
2429}
2430return matched;
2431};
2432var siblings=function(n,elem){
2433var matched=[];
2434for(;n;n=n.nextSibling){
2435if(n.nodeType===1&&n!==elem){
2436matched.push(n);
2437}
2438}
2439return matched;
2440};
2441var rneedsContext=jQuery.expr.match.needsContext;
2442var rsingleTag=(/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i);
2443function winnow(elements,qualifier,not){
2444if(isFunction(qualifier)){
2445return jQuery.grep(elements,function(elem,i){
2446return!!qualifier.call(elem,i,elem)!==not;
2447});
2448}
2449if(qualifier.nodeType){
2450return jQuery.grep(elements,function(elem){
2451return(elem===qualifier)!==not;
2452});
2453}
2454if(typeof qualifier!=="string"){
2455return jQuery.grep(elements,function(elem){
2456return(indexOf.call(qualifier,elem)>-1)!==not;
2457});
2458}
2459return jQuery.filter(qualifier,elements,not);
2460}
2461jQuery.filter=function(expr,elems,not){
2462var elem=elems[0];
2463if(not){
2464expr=":not("+expr+")";
2465}
2466if(elems.length===1&&elem.nodeType===1){
2467return jQuery.find.matchesSelector(elem,expr)?[elem]:[];
2468}
2469return jQuery.find.matches(expr,jQuery.grep(elems,function(elem){
2470return elem.nodeType===1;
2471}));
2472};
2473jQuery.fn.extend({
2474find:function(selector){
2475var i,ret,
2476len=this.length,
2477self=this;
2478if(typeof selector!=="string"){
2479return this.pushStack(jQuery(selector).filter(function(){
2480for(i=0;i<len;i++){
2481if(jQuery.contains(self[i],this)){
2482return true;
2483}
2484}
2485}));
2486}
2487ret=this.pushStack([]);
2488for(i=0;i<len;i++){
2489jQuery.find(selector,self[i],ret);
2490}
2491return len>1?jQuery.uniqueSort(ret):ret;
2492},
2493filter:function(selector){
2494return this.pushStack(winnow(this,selector||[],false));
2495},
2496not:function(selector){
2497return this.pushStack(winnow(this,selector||[],true));
2498},
2499is:function(selector){
2500return!!winnow(
2501this,
2502typeof selector==="string"&&rneedsContext.test(selector)?
2503jQuery(selector):
2504selector||[],
2505false
2506).length;
2507}
2508});
2509var rootjQuery,
2510rquickExpr=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
2511init=jQuery.fn.init=function(selector,context,root){
2512var match,elem;
2513if(!selector){
2514return this;
2515}
2516root=root||rootjQuery;
2517if(typeof selector==="string"){
2518if(selector[0]==="<"&&
2519selector[selector.length-1]===">"&&
2520selector.length>=3){
2521match=[null,selector,null];
2522}else{
2523match=rquickExpr.exec(selector);
2524}
2525if(match&&(match[1]||!context)){
2526if(match[1]){
2527context=context instanceof jQuery?context[0]:context;
2528jQuery.merge(this,jQuery.parseHTML(
2529match[1],
2530context&&context.nodeType?context.ownerDocument||context:document,
2531true
2532));
2533if(rsingleTag.test(match[1])&&jQuery.isPlainObject(context)){
2534for(match in context){
2535if(isFunction(this[match])){
2536this[match](context[match]);
2537}else{
2538this.attr(match,context[match]);
2539}
2540}
2541}
2542return this;
2543}else{
2544elem=document.getElementById(match[2]);
2545if(elem){
2546this[0]=elem;
2547this.length=1;
2548}
2549return this;
2550}
2551}else if(!context||context.jquery){
2552return(context||root).find(selector);
2553}else{
2554return this.constructor(context).find(selector);
2555}
2556}else if(selector.nodeType){
2557this[0]=selector;
2558this.length=1;
2559return this;
2560}else if(isFunction(selector)){
2561return root.ready!==undefined?
2562root.ready(selector):
2563selector(jQuery);
2564}
2565return jQuery.makeArray(selector,this);
2566};
2567init.prototype=jQuery.fn;
2568rootjQuery=jQuery(document);
2569var rparentsprev=/^(?:parents|prev(?:Until|All))/,
2570guaranteedUnique={
2571children:true,
2572contents:true,
2573next:true,
2574prev:true
2575};
2576jQuery.fn.extend({
2577has:function(target){
2578var targets=jQuery(target,this),
2579l=targets.length;
2580return this.filter(function(){
2581var i=0;
2582for(;i<l;i++){
2583if(jQuery.contains(this,targets[i])){
2584return true;
2585}
2586}
2587});
2588},
2589closest:function(selectors,context){
2590var cur,
2591i=0,
2592l=this.length,
2593matched=[],
2594targets=typeof selectors!=="string"&&jQuery(selectors);
2595if(!rneedsContext.test(selectors)){
2596for(;i<l;i++){
2597for(cur=this[i];cur&&cur!==context;cur=cur.parentNode){
2598if(cur.nodeType<11&&(targets?
2599targets.index(cur)>-1:
2600cur.nodeType===1&&
2601jQuery.find.matchesSelector(cur,selectors))){
2602matched.push(cur);
2603break;
2604}
2605}
2606}
2607}
2608return this.pushStack(matched.length>1?jQuery.uniqueSort(matched):matched);
2609},
2610index:function(elem){
2611if(!elem){
2612return(this[0]&&this[0].parentNode)?this.first().prevAll().length:-1;
2613}
2614if(typeof elem==="string"){
2615return indexOf.call(jQuery(elem),this[0]);
2616}
2617return indexOf.call(this,
2618elem.jquery?elem[0]:elem
2619);
2620},
2621add:function(selector,context){
2622return this.pushStack(
2623jQuery.uniqueSort(
2624jQuery.merge(this.get(),jQuery(selector,context))
2625)
2626);
2627},
2628addBack:function(selector){
2629return this.add(selector==null?
2630this.prevObject:this.prevObject.filter(selector)
2631);
2632}
2633});
2634function sibling(cur,dir){
2635while((cur=cur[dir])&&cur.nodeType!==1){}
2636return cur;
2637}
2638jQuery.each({
2639parent:function(elem){
2640var parent=elem.parentNode;
2641return parent&&parent.nodeType!==11?parent:null;
2642},
2643parents:function(elem){
2644return dir(elem,"parentNode");
2645},
2646parentsUntil:function(elem,_i,until){
2647return dir(elem,"parentNode",until);
2648},
2649next:function(elem){
2650return sibling(elem,"nextSibling");
2651},
2652prev:function(elem){
2653return sibling(elem,"previousSibling");
2654},
2655nextAll:function(elem){
2656return dir(elem,"nextSibling");
2657},
2658prevAll:function(elem){
2659return dir(elem,"previousSibling");
2660},
2661nextUntil:function(elem,_i,until){
2662return dir(elem,"nextSibling",until);
2663},
2664prevUntil:function(elem,_i,until){
2665return dir(elem,"previousSibling",until);
2666},
2667siblings:function(elem){
2668return siblings((elem.parentNode||{}).firstChild,elem);
2669},
2670children:function(elem){
2671return siblings(elem.firstChild);
2672},
2673contents:function(elem){
2674if(elem.contentDocument!=null&&
2675getProto(elem.contentDocument)){
2676return elem.contentDocument;
2677}
2678if(nodeName(elem,"template")){
2679elem=elem.content||elem;
2680}
2681return jQuery.merge([],elem.childNodes);
2682}
2683},function(name,fn){
2684jQuery.fn[name]=function(until,selector){
2685var matched=jQuery.map(this,fn,until);
2686if(name.slice(-5)!=="Until"){
2687selector=until;
2688}
2689if(selector&&typeof selector==="string"){
2690matched=jQuery.filter(selector,matched);
2691}
2692if(this.length>1){
2693if(!guaranteedUnique[name]){
2694jQuery.uniqueSort(matched);
2695}
2696if(rparentsprev.test(name)){
2697matched.reverse();
2698}
2699}
2700return this.pushStack(matched);
2701};
2702});
2703var rnothtmlwhite=(/[^\x20\t\r\n\f]+/g);
2704function createOptions(options){
2705var object={};
2706jQuery.each(options.match(rnothtmlwhite)||[],function(_,flag){
2707object[flag]=true;
2708});
2709return object;
2710}
2711jQuery.Callbacks=function(options){
2712options=typeof options==="string"?
2713createOptions(options):
2714jQuery.extend({},options);
2715var
2716firing,
2717memory,
2718fired,
2719locked,
2720list=[],
2721queue=[],
2722firingIndex=-1,
2723fire=function(){
2724locked=locked||options.once;
2725fired=firing=true;
2726for(;queue.length;firingIndex=-1){
2727memory=queue.shift();
2728while(++firingIndex<list.length){
2729if(list[firingIndex].apply(memory[0],memory[1])===false&&
2730options.stopOnFalse){
2731firingIndex=list.length;
2732memory=false;
2733}
2734}
2735}
2736if(!options.memory){
2737memory=false;
2738}
2739firing=false;
2740if(locked){
2741if(memory){
2742list=[];
2743}else{
2744list="";
2745}
2746}
2747},
2748self={
2749add:function(){
2750if(list){
2751if(memory&&!firing){
2752firingIndex=list.length-1;
2753queue.push(memory);
2754}
2755(function add(args){
2756jQuery.each(args,function(_,arg){
2757if(isFunction(arg)){
2758if(!options.unique||!self.has(arg)){
2759list.push(arg);
2760}
2761}else if(arg&&arg.length&&toType(arg)!=="string"){
2762add(arg);
2763}
2764});
2765})(arguments);
2766if(memory&&!firing){
2767fire();
2768}
2769}
2770return this;
2771},
2772remove:function(){
2773jQuery.each(arguments,function(_,arg){
2774var index;
2775while((index=jQuery.inArray(arg,list,index))>-1){
2776list.splice(index,1);
2777if(index<=firingIndex){
2778firingIndex--;
2779}
2780}
2781});
2782return this;
2783},
2784has:function(fn){
2785return fn?
2786jQuery.inArray(fn,list)>-1:
2787list.length>0;
2788},
2789empty:function(){
2790if(list){
2791list=[];
2792}
2793return this;
2794},
2795disable:function(){
2796locked=queue=[];
2797list=memory="";
2798return this;
2799},
2800disabled:function(){
2801return!list;
2802},
2803lock:function(){
2804locked=queue=[];
2805if(!memory&&!firing){
2806list=memory="";
2807}
2808return this;
2809},
2810locked:function(){
2811return!!locked;
2812},
2813fireWith:function(context,args){
2814if(!locked){
2815args=args||[];
2816args=[context,args.slice?args.slice():args];
2817queue.push(args);
2818if(!firing){
2819fire();
2820}
2821}
2822return this;
2823},
2824fire:function(){
2825self.fireWith(this,arguments);
2826return this;
2827},
2828fired:function(){
2829return!!fired;
2830}
2831};
2832return self;
2833};
2834function Identity(v){
2835return v;
2836}
2837function Thrower(ex){
2838throw ex;
2839}
2840function adoptValue(value,resolve,reject,noValue){
2841var method;
2842try{
2843if(value&&isFunction((method=value.promise))){
2844method.call(value).done(resolve).fail(reject);
2845}else if(value&&isFunction((method=value.then))){
2846method.call(value,resolve,reject);
2847}else{
2848resolve.apply(undefined,[value].slice(noValue));
2849}
2850}catch(value){
2851reject.apply(undefined,[value]);
2852}
2853}
2854jQuery.extend({
2855Deferred:function(func){
2856var tuples=[
2857["notify","progress",jQuery.Callbacks("memory"),
2858jQuery.Callbacks("memory"),2],
2859["resolve","done",jQuery.Callbacks("once memory"),
2860jQuery.Callbacks("once memory"),0,"resolved"],
2861["reject","fail",jQuery.Callbacks("once memory"),
2862jQuery.Callbacks("once memory"),1,"rejected"]
2863],
2864state="pending",
2865promise={
2866state:function(){
2867return state;
2868},
2869always:function(){
2870deferred.done(arguments).fail(arguments);
2871return this;
2872},
2873"catch":function(fn){
2874return promise.then(null,fn);
2875},
2876pipe:function(){
2877var fns=arguments;
2878return jQuery.Deferred(function(newDefer){
2879jQuery.each(tuples,function(_i,tuple){
2880var fn=isFunction(fns[tuple[4]])&&fns[tuple[4]];
2881deferred[tuple[1]](function(){
2882var returned=fn&&fn.apply(this,arguments);
2883if(returned&&isFunction(returned.promise)){
2884returned.promise()
2885.progress(newDefer.notify)
2886.done(newDefer.resolve)
2887.fail(newDefer.reject);
2888}else{
2889newDefer[tuple[0]+"With"](
2890this,
2891fn?[returned]:arguments
2892);
2893}
2894});
2895});
2896fns=null;
2897}).promise();
2898},
2899then:function(onFulfilled,onRejected,onProgress){
2900var maxDepth=0;
2901function resolve(depth,deferred,handler,special){
2902return function(){
2903var that=this,
2904args=arguments,
2905mightThrow=function(){
2906var returned,then;
2907if(depth<maxDepth){
2908return;
2909}
2910returned=handler.apply(that,args);
2911if(returned===deferred.promise()){
2912throw new TypeError("Thenable self-resolution");
2913}
2914then=returned&&
2915(typeof returned==="object"||
2916typeof returned==="function")&&
2917returned.then;
2918if(isFunction(then)){
2919if(special){
2920then.call(
2921returned,
2922resolve(maxDepth,deferred,Identity,special),
2923resolve(maxDepth,deferred,Thrower,special)
2924);
2925}else{
2926maxDepth++;
2927then.call(
2928returned,
2929resolve(maxDepth,deferred,Identity,special),
2930resolve(maxDepth,deferred,Thrower,special),
2931resolve(maxDepth,deferred,Identity,
2932deferred.notifyWith)
2933);
2934}
2935}else{
2936if(handler!==Identity){
2937that=undefined;
2938args=[returned];
2939}
2940(special||deferred.resolveWith)(that,args);
2941}
2942},
2943process=special?
2944mightThrow:
2945function(){
2946try{
2947mightThrow();
2948}catch(e){
2949if(jQuery.Deferred.exceptionHook){
2950jQuery.Deferred.exceptionHook(e,
2951process.error);
2952}
2953if(depth+1>=maxDepth){
2954if(handler!==Thrower){
2955that=undefined;
2956args=[e];
2957}
2958deferred.rejectWith(that,args);
2959}
2960}
2961};
2962if(depth){
2963process();
2964}else{
2965if(jQuery.Deferred.getErrorHook){
2966process.error=jQuery.Deferred.getErrorHook();
2967}else if(jQuery.Deferred.getStackHook){
2968process.error=jQuery.Deferred.getStackHook();
2969}
2970window.setTimeout(process);
2971}
2972};
2973}
2974return jQuery.Deferred(function(newDefer){
2975tuples[0][3].add(
2976resolve(
29770,
2978newDefer,
2979isFunction(onProgress)?
2980onProgress:
2981Identity,
2982newDefer.notifyWith
2983)
2984);
2985tuples[1][3].add(
2986resolve(
29870,
2988newDefer,
2989isFunction(onFulfilled)?
2990onFulfilled:
2991Identity
2992)
2993);
2994tuples[2][3].add(
2995resolve(
29960,
2997newDefer,
2998isFunction(onRejected)?
2999onRejected:
3000Thrower
3001)
3002);
3003}).promise();
3004},
3005promise:function(obj){
3006return obj!=null?jQuery.extend(obj,promise):promise;
3007}
3008},
3009deferred={};
3010jQuery.each(tuples,function(i,tuple){
3011var list=tuple[2],
3012stateString=tuple[5];
3013promise[tuple[1]]=list.add;
3014if(stateString){
3015list.add(
3016function(){
3017state=stateString;
3018},
3019tuples[3-i][2].disable,
3020tuples[3-i][3].disable,
3021tuples[0][2].lock,
3022tuples[0][3].lock
3023);
3024}
3025list.add(tuple[3].fire);
3026deferred[tuple[0]]=function(){
3027deferred[tuple[0]+"With"](this===deferred?undefined:this,arguments);
3028return this;
3029};
3030deferred[tuple[0]+"With"]=list.fireWith;
3031});
3032promise.promise(deferred);
3033if(func){
3034func.call(deferred,deferred);
3035}
3036return deferred;
3037},
3038when:function(singleValue){
3039var
3040remaining=arguments.length,
3041i=remaining,
3042resolveContexts=Array(i),
3043resolveValues=slice.call(arguments),
3044primary=jQuery.Deferred(),
3045updateFunc=function(i){
3046return function(value){
3047resolveContexts[i]=this;
3048resolveValues[i]=arguments.length>1?slice.call(arguments):value;
3049if(!(--remaining)){
3050primary.resolveWith(resolveContexts,resolveValues);
3051}
3052};
3053};
3054if(remaining<=1){
3055adoptValue(singleValue,primary.done(updateFunc(i)).resolve,primary.reject,
3056!remaining);
3057if(primary.state()==="pending"||
3058isFunction(resolveValues[i]&&resolveValues[i].then)){
3059return primary.then();
3060}
3061}
3062while(i--){
3063adoptValue(resolveValues[i],updateFunc(i),primary.reject);
3064}
3065return primary.promise();
3066}
3067});
3068var rerrorNames=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
3069jQuery.Deferred.exceptionHook=function(error,asyncError){
3070if(window.console&&window.console.warn&&error&&rerrorNames.test(error.name)){
3071window.console.warn("jQuery.Deferred exception: "+error.message,
3072error.stack,asyncError);
3073}
3074};
3075jQuery.readyException=function(error){
3076window.setTimeout(function(){
3077throw error;
3078});
3079};
3080var readyList=jQuery.Deferred();
3081jQuery.fn.ready=function(fn){
3082readyList
3083.then(fn)
3084.catch(function(error){
3085jQuery.readyException(error);
3086});
3087return this;
3088};
3089jQuery.extend({
3090isReady:false,
3091readyWait:1,
3092ready:function(wait){
3093if(wait===true?--jQuery.readyWait:jQuery.isReady){
3094return;
3095}
3096jQuery.isReady=true;
3097if(wait!==true&&--jQuery.readyWait>0){
3098return;
3099}
3100readyList.resolveWith(document,[jQuery]);
3101}
3102});
3103jQuery.ready.then=readyList.then;
3104function completed(){
3105document.removeEventListener("DOMContentLoaded",completed);
3106window.removeEventListener("load",completed);
3107jQuery.ready();
3108}
3109if(document.readyState==="complete"||
3110(document.readyState!=="loading"&&!document.documentElement.doScroll)){
3111window.setTimeout(jQuery.ready);
3112}else{
3113document.addEventListener("DOMContentLoaded",completed);
3114window.addEventListener("load",completed);
3115}
3116var access=function(elems,fn,key,value,chainable,emptyGet,raw){
3117var i=0,
3118len=elems.length,
3119bulk=key==null;
3120if(toType(key)==="object"){
3121chainable=true;
3122for(i in key){
3123access(elems,fn,i,key[i],true,emptyGet,raw);
3124}
3125}else if(value!==undefined){
3126chainable=true;
3127if(!isFunction(value)){
3128raw=true;
3129}
3130if(bulk){
3131if(raw){
3132fn.call(elems,value);
3133fn=null;
3134}else{
3135bulk=fn;
3136fn=function(elem,_key,value){
3137return bulk.call(jQuery(elem),value);
3138};
3139}
3140}
3141if(fn){
3142for(;i<len;i++){
3143fn(
3144elems[i],key,raw?
3145value:
3146value.call(elems[i],i,fn(elems[i],key))
3147);
3148}
3149}
3150}
3151if(chainable){
3152return elems;
3153}
3154if(bulk){
3155return fn.call(elems);
3156}
3157return len?fn(elems[0],key):emptyGet;
3158};
3159var rmsPrefix=/^-ms-/,
3160rdashAlpha=/-([a-z])/g;
3161function fcamelCase(_all,letter){
3162return letter.toUpperCase();
3163}
3164function camelCase(string){
3165return string.replace(rmsPrefix,"ms-").replace(rdashAlpha,fcamelCase);
3166}
3167var acceptData=function(owner){
3168return owner.nodeType===1||owner.nodeType===9||!(+owner.nodeType);
3169};
3170function Data(){
3171this.expando=jQuery.expando+Data.uid++;
3172}
3173Data.uid=1;
3174Data.prototype={
3175cache:function(owner){
3176var value=owner[this.expando];
3177if(!value){
3178value={};
3179if(acceptData(owner)){
3180if(owner.nodeType){
3181owner[this.expando]=value;
3182}else{
3183Object.defineProperty(owner,this.expando,{
3184value:value,
3185configurable:true
3186});
3187}
3188}
3189}
3190return value;
3191},
3192set:function(owner,data,value){
3193var prop,
3194cache=this.cache(owner);
3195if(typeof data==="string"){
3196cache[camelCase(data)]=value;
3197}else{
3198for(prop in data){
3199cache[camelCase(prop)]=data[prop];
3200}
3201}
3202return cache;
3203},
3204get:function(owner,key){
3205return key===undefined?
3206this.cache(owner):
3207owner[this.expando]&&owner[this.expando][camelCase(key)];
3208},
3209access:function(owner,key,value){
3210if(key===undefined||
3211((key&&typeof key==="string")&&value===undefined)){
3212return this.get(owner,key);
3213}
3214this.set(owner,key,value);
3215return value!==undefined?value:key;
3216},
3217remove:function(owner,key){
3218var i,
3219cache=owner[this.expando];
3220if(cache===undefined){
3221return;
3222}
3223if(key!==undefined){
3224if(Array.isArray(key)){
3225key=key.map(camelCase);
3226}else{
3227key=camelCase(key);
3228key=key in cache?
3229[key]:
3230(key.match(rnothtmlwhite)||[]);
3231}
3232i=key.length;
3233while(i--){
3234delete cache[key[i]];
3235}
3236}
3237if(key===undefined||jQuery.isEmptyObject(cache)){
3238if(owner.nodeType){
3239owner[this.expando]=undefined;
3240}else{
3241delete owner[this.expando];
3242}
3243}
3244},
3245hasData:function(owner){
3246var cache=owner[this.expando];
3247return cache!==undefined&&!jQuery.isEmptyObject(cache);
3248}
3249};
3250var dataPriv=new Data();
3251var dataUser=new Data();
3252var rbrace=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
3253rmultiDash=/[A-Z]/g;
3254function getData(data){
3255if(data==="true"){
3256return true;
3257}
3258if(data==="false"){
3259return false;
3260}
3261if(data==="null"){
3262return null;
3263}
3264if(data===+data+""){
3265return+data;
3266}
3267if(rbrace.test(data)){
3268return JSON.parse(data);
3269}
3270return data;
3271}
3272function dataAttr(elem,key,data){
3273var name;
3274if(data===undefined&&elem.nodeType===1){
3275name="data-"+key.replace(rmultiDash,"-$&").toLowerCase();
3276data=elem.getAttribute(name);
3277if(typeof data==="string"){
3278try{
3279data=getData(data);
3280}catch(e){}
3281dataUser.set(elem,key,data);
3282}else{
3283data=undefined;
3284}
3285}
3286return data;
3287}
3288jQuery.extend({
3289hasData:function(elem){
3290return dataUser.hasData(elem)||dataPriv.hasData(elem);
3291},
3292data:function(elem,name,data){
3293return dataUser.access(elem,name,data);
3294},
3295removeData:function(elem,name){
3296dataUser.remove(elem,name);
3297},
3298_data:function(elem,name,data){
3299return dataPriv.access(elem,name,data);
3300},
3301_removeData:function(elem,name){
3302dataPriv.remove(elem,name);
3303}
3304});
3305jQuery.fn.extend({
3306data:function(key,value){
3307var i,name,data,
3308elem=this[0],
3309attrs=elem&&elem.attributes;
3310if(key===undefined){
3311if(this.length){
3312data=dataUser.get(elem);
3313if(elem.nodeType===1&&!dataPriv.get(elem,"hasDataAttrs")){
3314i=attrs.length;
3315while(i--){
3316if(attrs[i]){
3317name=attrs[i].name;
3318if(name.indexOf("data-")===0){
3319name=camelCase(name.slice(5));
3320dataAttr(elem,name,data[name]);
3321}
3322}
3323}
3324dataPriv.set(elem,"hasDataAttrs",true);
3325}
3326}
3327return data;
3328}
3329if(typeof key==="object"){
3330return this.each(function(){
3331dataUser.set(this,key);
3332});
3333}
3334return access(this,function(value){
3335var data;
3336if(elem&&value===undefined){
3337data=dataUser.get(elem,key);
3338if(data!==undefined){
3339return data;
3340}
3341data=dataAttr(elem,key);
3342if(data!==undefined){
3343return data;
3344}
3345return;
3346}
3347this.each(function(){
3348dataUser.set(this,key,value);
3349});
3350},null,value,arguments.length>1,null,true);
3351},
3352removeData:function(key){
3353return this.each(function(){
3354dataUser.remove(this,key);
3355});
3356}
3357});
3358jQuery.extend({
3359queue:function(elem,type,data){
3360var queue;
3361if(elem){
3362type=(type||"fx")+"queue";
3363queue=dataPriv.get(elem,type);
3364if(data){
3365if(!queue||Array.isArray(data)){
3366queue=dataPriv.access(elem,type,jQuery.makeArray(data));
3367}else{
3368queue.push(data);
3369}
3370}
3371return queue||[];
3372}
3373},
3374dequeue:function(elem,type){
3375type=type||"fx";
3376var queue=jQuery.queue(elem,type),
3377startLength=queue.length,
3378fn=queue.shift(),
3379hooks=jQuery._queueHooks(elem,type),
3380next=function(){
3381jQuery.dequeue(elem,type);
3382};
3383if(fn==="inprogress"){
3384fn=queue.shift();
3385startLength--;
3386}
3387if(fn){
3388if(type==="fx"){
3389queue.unshift("inprogress");
3390}
3391delete hooks.stop;
3392fn.call(elem,next,hooks);
3393}
3394if(!startLength&&hooks){
3395hooks.empty.fire();
3396}
3397},
3398_queueHooks:function(elem,type){
3399var key=type+"queueHooks";
3400return dataPriv.get(elem,key)||dataPriv.access(elem,key,{
3401empty:jQuery.Callbacks("once memory").add(function(){
3402dataPriv.remove(elem,[type+"queue",key]);
3403})
3404});
3405}
3406});
3407jQuery.fn.extend({
3408queue:function(type,data){
3409var setter=2;
3410if(typeof type!=="string"){
3411data=type;
3412type="fx";
3413setter--;
3414}
3415if(arguments.length<setter){
3416return jQuery.queue(this[0],type);
3417}
3418return data===undefined?
3419this:
3420this.each(function(){
3421var queue=jQuery.queue(this,type,data);
3422jQuery._queueHooks(this,type);
3423if(type==="fx"&&queue[0]!=="inprogress"){
3424jQuery.dequeue(this,type);
3425}
3426});
3427},
3428dequeue:function(type){
3429return this.each(function(){
3430jQuery.dequeue(this,type);
3431});
3432},
3433clearQueue:function(type){
3434return this.queue(type||"fx",[]);
3435},
3436promise:function(type,obj){
3437var tmp,
3438count=1,
3439defer=jQuery.Deferred(),
3440elements=this,
3441i=this.length,
3442resolve=function(){
3443if(!(--count)){
3444defer.resolveWith(elements,[elements]);
3445}
3446};
3447if(typeof type!=="string"){
3448obj=type;
3449type=undefined;
3450}
3451type=type||"fx";
3452while(i--){
3453tmp=dataPriv.get(elements[i],type+"queueHooks");
3454if(tmp&&tmp.empty){
3455count++;
3456tmp.empty.add(resolve);
3457}
3458}
3459resolve();
3460return defer.promise(obj);
3461}
3462});
3463var pnum=(/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source;
3464var rcssNum=new RegExp("^(?:([+-])=|)("+pnum+")([a-z%]*)$","i");
3465var cssExpand=["Top","Right","Bottom","Left"];
3466var documentElement=document.documentElement;
3467var isAttached=function(elem){
3468return jQuery.contains(elem.ownerDocument,elem);
3469},
3470composed={composed:true};
3471if(documentElement.getRootNode){
3472isAttached=function(elem){
3473return jQuery.contains(elem.ownerDocument,elem)||
3474elem.getRootNode(composed)===elem.ownerDocument;
3475};
3476}
3477var isHiddenWithinTree=function(elem,el){
3478elem=el||elem;
3479return elem.style.display==="none"||
3480elem.style.display===""&&
3481isAttached(elem)&&
3482jQuery.css(elem,"display")==="none";
3483};
3484function adjustCSS(elem,prop,valueParts,tween){
3485var adjusted,scale,
3486maxIterations=20,
3487currentValue=tween?
3488function(){
3489return tween.cur();
3490}:
3491function(){
3492return jQuery.css(elem,prop,"");
3493},
3494initial=currentValue(),
3495unit=valueParts&&valueParts[3]||(jQuery.cssNumber[prop]?"":"px"),
3496initialInUnit=elem.nodeType&&
3497(jQuery.cssNumber[prop]||unit!=="px"&&+initial)&&
3498rcssNum.exec(jQuery.css(elem,prop));
3499if(initialInUnit&&initialInUnit[3]!==unit){
3500initial=initial/2;
3501unit=unit||initialInUnit[3];
3502initialInUnit=+initial||1;
3503while(maxIterations--){
3504jQuery.style(elem,prop,initialInUnit+unit);
3505if((1-scale)*(1-(scale=currentValue()/initial||0.5))<=0){
3506maxIterations=0;
3507}
3508initialInUnit=initialInUnit/scale;
3509}
3510initialInUnit=initialInUnit*2;
3511jQuery.style(elem,prop,initialInUnit+unit);
3512valueParts=valueParts||[];
3513}
3514if(valueParts){
3515initialInUnit=+initialInUnit||+initial||0;
3516adjusted=valueParts[1]?
3517initialInUnit+(valueParts[1]+1)*valueParts[2]:
3518+valueParts[2];
3519if(tween){
3520tween.unit=unit;
3521tween.start=initialInUnit;
3522tween.end=adjusted;
3523}
3524}
3525return adjusted;
3526}
3527var defaultDisplayMap={};
3528function getDefaultDisplay(elem){
3529var temp,
3530doc=elem.ownerDocument,
3531nodeName=elem.nodeName,
3532display=defaultDisplayMap[nodeName];
3533if(display){
3534return display;
3535}
3536temp=doc.body.appendChild(doc.createElement(nodeName));
3537display=jQuery.css(temp,"display");
3538temp.parentNode.removeChild(temp);
3539if(display==="none"){
3540display="block";
3541}
3542defaultDisplayMap[nodeName]=display;
3543return display;
3544}
3545function showHide(elements,show){
3546var display,elem,
3547values=[],
3548index=0,
3549length=elements.length;
3550for(;index<length;index++){
3551elem=elements[index];
3552if(!elem.style){
3553continue;
3554}
3555display=elem.style.display;
3556if(show){
3557if(display==="none"){
3558values[index]=dataPriv.get(elem,"display")||null;
3559if(!values[index]){
3560elem.style.display="";
3561}
3562}
3563if(elem.style.display===""&&isHiddenWithinTree(elem)){
3564values[index]=getDefaultDisplay(elem);
3565}
3566}else{
3567if(display!=="none"){
3568values[index]="none";
3569dataPriv.set(elem,"display",display);
3570}
3571}
3572}
3573for(index=0;index<length;index++){
3574if(values[index]!=null){
3575elements[index].style.display=values[index];
3576}
3577}
3578return elements;
3579}
3580jQuery.fn.extend({
3581show:function(){
3582return showHide(this,true);
3583},
3584hide:function(){
3585return showHide(this);
3586},
3587toggle:function(state){
3588if(typeof state==="boolean"){
3589return state?this.show():this.hide();
3590}
3591return this.each(function(){
3592if(isHiddenWithinTree(this)){
3593jQuery(this).show();
3594}else{
3595jQuery(this).hide();
3596}
3597});
3598}
3599});
3600var rcheckableType=(/^(?:checkbox|radio)$/i);
3601var rtagName=(/<([a-z][^\/\0>\x20\t\r\n\f]*)/i);
3602var rscriptType=(/^$|^module$|\/(?:java|ecma)script/i);
3603(function(){
3604var fragment=document.createDocumentFragment(),
3605div=fragment.appendChild(document.createElement("div")),
3606input=document.createElement("input");
3607input.setAttribute("type","radio");
3608input.setAttribute("checked","checked");
3609input.setAttribute("name","t");
3610div.appendChild(input);
3611support.checkClone=div.cloneNode(true).cloneNode(true).lastChild.checked;
3612div.innerHTML="<textarea>x</textarea>";
3613support.noCloneChecked=!!div.cloneNode(true).lastChild.defaultValue;
3614div.innerHTML="<option></option>";
3615support.option=!!div.lastChild;
3616})();
3617var wrapMap={
3618thead:[1,"<table>","</table>"],
3619col:[2,"<table><colgroup>","</colgroup></table>"],
3620tr:[2,"<table><tbody>","</tbody></table>"],
3621td:[3,"<table><tbody><tr>","</tr></tbody></table>"],
3622_default:[0,"",""]
3623};
3624wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead;
3625wrapMap.th=wrapMap.td;
3626if(!support.option){
3627wrapMap.optgroup=wrapMap.option=[1,"<select multiple='multiple'>","</select>"];
3628}
3629function getAll(context,tag){
3630var ret;
3631if(typeof context.getElementsByTagName!=="undefined"){
3632ret=context.getElementsByTagName(tag||"*");
3633}else if(typeof context.querySelectorAll!=="undefined"){
3634ret=context.querySelectorAll(tag||"*");
3635}else{
3636ret=[];
3637}
3638if(tag===undefined||tag&&nodeName(context,tag)){
3639return jQuery.merge([context],ret);
3640}
3641return ret;
3642}
3643function setGlobalEval(elems,refElements){
3644var i=0,
3645l=elems.length;
3646for(;i<l;i++){
3647dataPriv.set(
3648elems[i],
3649"globalEval",
3650!refElements||dataPriv.get(refElements[i],"globalEval")
3651);
3652}
3653}
3654var rhtml=/<|&#?\w+;/;
3655function buildFragment(elems,context,scripts,selection,ignored){
3656var elem,tmp,tag,wrap,attached,j,
3657fragment=context.createDocumentFragment(),
3658nodes=[],
3659i=0,
3660l=elems.length;
3661for(;i<l;i++){
3662elem=elems[i];
3663if(elem||elem===0){
3664if(toType(elem)==="object"){
3665jQuery.merge(nodes,elem.nodeType?[elem]:elem);
3666}else if(!rhtml.test(elem)){
3667nodes.push(context.createTextNode(elem));
3668}else{
3669tmp=tmp||fragment.appendChild(context.createElement("div"));
3670tag=(rtagName.exec(elem)||["",""])[1].toLowerCase();
3671wrap=wrapMap[tag]||wrapMap._default;
3672tmp.innerHTML=wrap[1]+jQuery.htmlPrefilter(elem)+wrap[2];
3673j=wrap[0];
3674while(j--){
3675tmp=tmp.lastChild;
3676}
3677jQuery.merge(nodes,tmp.childNodes);
3678tmp=fragment.firstChild;
3679tmp.textContent="";
3680}
3681}
3682}
3683fragment.textContent="";
3684i=0;
3685while((elem=nodes[i++])){
3686if(selection&&jQuery.inArray(elem,selection)>-1){
3687if(ignored){
3688ignored.push(elem);
3689}
3690continue;
3691}
3692attached=isAttached(elem);
3693tmp=getAll(fragment.appendChild(elem),"script");
3694if(attached){
3695setGlobalEval(tmp);
3696}
3697if(scripts){
3698j=0;
3699while((elem=tmp[j++])){
3700if(rscriptType.test(elem.type||"")){
3701scripts.push(elem);
3702}
3703}
3704}
3705}
3706return fragment;
3707}
3708var rtypenamespace=/^([^.]*)(?:\.(.+)|)/;
3709function returnTrue(){
3710return true;
3711}
3712function returnFalse(){
3713return false;
3714}
3715function on(elem,types,selector,data,fn,one){
3716var origFn,type;
3717if(typeof types==="object"){
3718if(typeof selector!=="string"){
3719data=data||selector;
3720selector=undefined;
3721}
3722for(type in types){
3723on(elem,type,selector,data,types[type],one);
3724}
3725return elem;
3726}
3727if(data==null&&fn==null){
3728fn=selector;
3729data=selector=undefined;
3730}else if(fn==null){
3731if(typeof selector==="string"){
3732fn=data;
3733data=undefined;
3734}else{
3735fn=data;
3736data=selector;
3737selector=undefined;
3738}
3739}
3740if(fn===false){
3741fn=returnFalse;
3742}else if(!fn){
3743return elem;
3744}
3745if(one===1){
3746origFn=fn;
3747fn=function(event){
3748jQuery().off(event);
3749return origFn.apply(this,arguments);
3750};
3751fn.guid=origFn.guid||(origFn.guid=jQuery.guid++);
3752}
3753return elem.each(function(){
3754jQuery.event.add(this,types,fn,data,selector);
3755});
3756}
3757jQuery.event={
3758global:{},
3759add:function(elem,types,handler,data,selector){
3760var handleObjIn,eventHandle,tmp,
3761events,t,handleObj,
3762special,handlers,type,namespaces,origType,
3763elemData=dataPriv.get(elem);
3764if(!acceptData(elem)){
3765return;
3766}
3767if(handler.handler){
3768handleObjIn=handler;
3769handler=handleObjIn.handler;
3770selector=handleObjIn.selector;
3771}
3772if(selector){
3773jQuery.find.matchesSelector(documentElement,selector);
3774}
3775if(!handler.guid){
3776handler.guid=jQuery.guid++;
3777}
3778if(!(events=elemData.events)){
3779events=elemData.events=Object.create(null);
3780}
3781if(!(eventHandle=elemData.handle)){
3782eventHandle=elemData.handle=function(e){
3783return typeof jQuery!=="undefined"&&jQuery.event.triggered!==e.type?
3784jQuery.event.dispatch.apply(elem,arguments):undefined;
3785};
3786}
3787types=(types||"").match(rnothtmlwhite)||[""];
3788t=types.length;
3789while(t--){
3790tmp=rtypenamespace.exec(types[t])||[];
3791type=origType=tmp[1];
3792namespaces=(tmp[2]||"").split(".").sort();
3793if(!type){
3794continue;
3795}
3796special=jQuery.event.special[type]||{};
3797type=(selector?special.delegateType:special.bindType)||type;
3798special=jQuery.event.special[type]||{};
3799handleObj=jQuery.extend({
3800type:type,
3801origType:origType,
3802data:data,
3803handler:handler,
3804guid:handler.guid,
3805selector:selector,
3806needsContext:selector&&jQuery.expr.match.needsContext.test(selector),
3807namespace:namespaces.join(".")
3808},handleObjIn);
3809if(!(handlers=events[type])){
3810handlers=events[type]=[];
3811handlers.delegateCount=0;
3812if(!special.setup||
3813special.setup.call(elem,data,namespaces,eventHandle)===false){
3814if(elem.addEventListener){
3815elem.addEventListener(type,eventHandle);
3816}
3817}
3818}
3819if(special.add){
3820special.add.call(elem,handleObj);
3821if(!handleObj.handler.guid){
3822handleObj.handler.guid=handler.guid;
3823}
3824}
3825if(selector){
3826handlers.splice(handlers.delegateCount++,0,handleObj);
3827}else{
3828handlers.push(handleObj);
3829}
3830jQuery.event.global[type]=true;
3831}
3832},
3833remove:function(elem,types,handler,selector,mappedTypes){
3834var j,origCount,tmp,
3835events,t,handleObj,
3836special,handlers,type,namespaces,origType,
3837elemData=dataPriv.hasData(elem)&&dataPriv.get(elem);
3838if(!elemData||!(events=elemData.events)){
3839return;
3840}
3841types=(types||"").match(rnothtmlwhite)||[""];
3842t=types.length;
3843while(t--){
3844tmp=rtypenamespace.exec(types[t])||[];
3845type=origType=tmp[1];
3846namespaces=(tmp[2]||"").split(".").sort();
3847if(!type){
3848for(type in events){
3849jQuery.event.remove(elem,type+types[t],handler,selector,true);
3850}
3851continue;
3852}
3853special=jQuery.event.special[type]||{};
3854type=(selector?special.delegateType:special.bindType)||type;
3855handlers=events[type]||[];
3856tmp=tmp[2]&&
3857new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)");
3858origCount=j=handlers.length;
3859while(j--){
3860handleObj=handlers[j];
3861if((mappedTypes||origType===handleObj.origType)&&
3862(!handler||handler.guid===handleObj.guid)&&
3863(!tmp||tmp.test(handleObj.namespace))&&
3864(!selector||selector===handleObj.selector||
3865selector==="**"&&handleObj.selector)){
3866handlers.splice(j,1);
3867if(handleObj.selector){
3868handlers.delegateCount--;
3869}
3870if(special.remove){
3871special.remove.call(elem,handleObj);
3872}
3873}
3874}
3875if(origCount&&!handlers.length){
3876if(!special.teardown||
3877special.teardown.call(elem,namespaces,elemData.handle)===false){
3878jQuery.removeEvent(elem,type,elemData.handle);
3879}
3880delete events[type];
3881}
3882}
3883if(jQuery.isEmptyObject(events)){
3884dataPriv.remove(elem,"handle events");
3885}
3886},
3887dispatch:function(nativeEvent){
3888var i,j,ret,matched,handleObj,handlerQueue,
3889args=new Array(arguments.length),
3890event=jQuery.event.fix(nativeEvent),
3891handlers=(
3892dataPriv.get(this,"events")||Object.create(null)
3893)[event.type]||[],
3894special=jQuery.event.special[event.type]||{};
3895args[0]=event;
3896for(i=1;i<arguments.length;i++){
3897args[i]=arguments[i];
3898}
3899event.delegateTarget=this;
3900if(special.preDispatch&&special.preDispatch.call(this,event)===false){
3901return;
3902}
3903handlerQueue=jQuery.event.handlers.call(this,event,handlers);
3904i=0;
3905while((matched=handlerQueue[i++])&&!event.isPropagationStopped()){
3906event.currentTarget=matched.elem;
3907j=0;
3908while((handleObj=matched.handlers[j++])&&
3909!event.isImmediatePropagationStopped()){
3910if(!event.rnamespace||handleObj.namespace===false||
3911event.rnamespace.test(handleObj.namespace)){
3912event.handleObj=handleObj;
3913event.data=handleObj.data;
3914ret=((jQuery.event.special[handleObj.origType]||{}).handle||
3915handleObj.handler).apply(matched.elem,args);
3916if(ret!==undefined){
3917if((event.result=ret)===false){
3918event.preventDefault();
3919event.stopPropagation();
3920}
3921}
3922}
3923}
3924}
3925if(special.postDispatch){
3926special.postDispatch.call(this,event);
3927}
3928return event.result;
3929},
3930handlers:function(event,handlers){
3931var i,handleObj,sel,matchedHandlers,matchedSelectors,
3932handlerQueue=[],
3933delegateCount=handlers.delegateCount,
3934cur=event.target;
3935if(delegateCount&&
3936cur.nodeType&&
3937!(event.type==="click"&&event.button>=1)){
3938for(;cur!==this;cur=cur.parentNode||this){
3939if(cur.nodeType===1&&!(event.type==="click"&&cur.disabled===true)){
3940matchedHandlers=[];
3941matchedSelectors={};
3942for(i=0;i<delegateCount;i++){
3943handleObj=handlers[i];
3944sel=handleObj.selector+" ";
3945if(matchedSelectors[sel]===undefined){
3946matchedSelectors[sel]=handleObj.needsContext?
3947jQuery(sel,this).index(cur)>-1:
3948jQuery.find(sel,this,null,[cur]).length;
3949}
3950if(matchedSelectors[sel]){
3951matchedHandlers.push(handleObj);
3952}
3953}
3954if(matchedHandlers.length){
3955handlerQueue.push({elem:cur,handlers:matchedHandlers});
3956}
3957}
3958}
3959}
3960cur=this;
3961if(delegateCount<handlers.length){
3962handlerQueue.push({elem:cur,handlers:handlers.slice(delegateCount)});
3963}
3964return handlerQueue;
3965},
3966addProp:function(name,hook){
3967Object.defineProperty(jQuery.Event.prototype,name,{
3968enumerable:true,
3969configurable:true,
3970get:isFunction(hook)?
3971function(){
3972if(this.originalEvent){
3973return hook(this.originalEvent);
3974}
3975}:
3976function(){
3977if(this.originalEvent){
3978return this.originalEvent[name];
3979}
3980},
3981set:function(value){
3982Object.defineProperty(this,name,{
3983enumerable:true,
3984configurable:true,
3985writable:true,
3986value:value
3987});
3988}
3989});
3990},
3991fix:function(originalEvent){
3992return originalEvent[jQuery.expando]?
3993originalEvent:
3994new jQuery.Event(originalEvent);
3995},
3996special:{
3997load:{
3998noBubble:true
3999},
4000click:{
4001setup:function(data){
4002var el=this||data;
4003if(rcheckableType.test(el.type)&&
4004el.click&&nodeName(el,"input")){
4005leverageNative(el,"click",true);
4006}
4007return false;
4008},
4009trigger:function(data){
4010var el=this||data;
4011if(rcheckableType.test(el.type)&&
4012el.click&&nodeName(el,"input")){
4013leverageNative(el,"click");
4014}
4015return true;
4016},
4017_default:function(event){
4018var target=event.target;
4019return rcheckableType.test(target.type)&&
4020target.click&&nodeName(target,"input")&&
4021dataPriv.get(target,"click")||
4022nodeName(target,"a");
4023}
4024},
4025beforeunload:{
4026postDispatch:function(event){
4027if(event.result!==undefined&&event.originalEvent){
4028event.originalEvent.returnValue=event.result;
4029}
4030}
4031}
4032}
4033};
4034function leverageNative(el,type,isSetup){
4035if(!isSetup){
4036if(dataPriv.get(el,type)===undefined){
4037jQuery.event.add(el,type,returnTrue);
4038}
4039return;
4040}
4041dataPriv.set(el,type,false);
4042jQuery.event.add(el,type,{
4043namespace:false,
4044handler:function(event){
4045var result,
4046saved=dataPriv.get(this,type);
4047if((event.isTrigger&1)&&this[type]){
4048if(!saved){
4049saved=slice.call(arguments);
4050dataPriv.set(this,type,saved);
4051this[type]();
4052result=dataPriv.get(this,type);
4053dataPriv.set(this,type,false);
4054if(saved!==result){
4055event.stopImmediatePropagation();
4056event.preventDefault();
4057return result;
4058}
4059}else if((jQuery.event.special[type]||{}).delegateType){
4060event.stopPropagation();
4061}
4062}else if(saved){
4063dataPriv.set(this,type,jQuery.event.trigger(
4064saved[0],
4065saved.slice(1),
4066this
4067));
4068event.stopPropagation();
4069event.isImmediatePropagationStopped=returnTrue;
4070}
4071}
4072});
4073}
4074jQuery.removeEvent=function(elem,type,handle){
4075if(elem.removeEventListener){
4076elem.removeEventListener(type,handle);
4077}
4078};
4079jQuery.Event=function(src,props){
4080if(!(this instanceof jQuery.Event)){
4081return new jQuery.Event(src,props);
4082}
4083if(src&&src.type){
4084this.originalEvent=src;
4085this.type=src.type;
4086this.isDefaultPrevented=src.defaultPrevented||
4087src.defaultPrevented===undefined&&
4088src.returnValue===false?
4089returnTrue:
4090returnFalse;
4091this.target=(src.target&&src.target.nodeType===3)?
4092src.target.parentNode:
4093src.target;
4094this.currentTarget=src.currentTarget;
4095this.relatedTarget=src.relatedTarget;
4096}else{
4097this.type=src;
4098}
4099if(props){
4100jQuery.extend(this,props);
4101}
4102this.timeStamp=src&&src.timeStamp||Date.now();
4103this[jQuery.expando]=true;
4104};
4105jQuery.Event.prototype={
4106constructor:jQuery.Event,
4107isDefaultPrevented:returnFalse,
4108isPropagationStopped:returnFalse,
4109isImmediatePropagationStopped:returnFalse,
4110isSimulated:false,
4111preventDefault:function(){
4112var e=this.originalEvent;
4113this.isDefaultPrevented=returnTrue;
4114if(e&&!this.isSimulated){
4115e.preventDefault();
4116}
4117},
4118stopPropagation:function(){
4119var e=this.originalEvent;
4120this.isPropagationStopped=returnTrue;
4121if(e&&!this.isSimulated){
4122e.stopPropagation();
4123}
4124},
4125stopImmediatePropagation:function(){
4126var e=this.originalEvent;
4127this.isImmediatePropagationStopped=returnTrue;
4128if(e&&!this.isSimulated){
4129e.stopImmediatePropagation();
4130}
4131this.stopPropagation();
4132}
4133};
4134jQuery.each({
4135altKey:true,
4136bubbles:true,
4137cancelable:true,
4138changedTouches:true,
4139ctrlKey:true,
4140detail:true,
4141eventPhase:true,
4142metaKey:true,
4143pageX:true,
4144pageY:true,
4145shiftKey:true,
4146view:true,
4147"char":true,
4148code:true,
4149charCode:true,
4150key:true,
4151keyCode:true,
4152button:true,
4153buttons:true,
4154clientX:true,
4155clientY:true,
4156offsetX:true,
4157offsetY:true,
4158pointerId:true,
4159pointerType:true,
4160screenX:true,
4161screenY:true,
4162targetTouches:true,
4163toElement:true,
4164touches:true,
4165which:true
4166},jQuery.event.addProp);
4167jQuery.each({focus:"focusin",blur:"focusout"},function(type,delegateType){
4168function focusMappedHandler(nativeEvent){
4169if(document.documentMode){
4170var handle=dataPriv.get(this,"handle"),
4171event=jQuery.event.fix(nativeEvent);
4172event.type=nativeEvent.type==="focusin"?"focus":"blur";
4173event.isSimulated=true;
4174handle(nativeEvent);
4175if(event.target===event.currentTarget){
4176handle(event);
4177}
4178}else{
4179jQuery.event.simulate(delegateType,nativeEvent.target,
4180jQuery.event.fix(nativeEvent));
4181}
4182}
4183jQuery.event.special[type]={
4184setup:function(){
4185var attaches;
4186leverageNative(this,type,true);
4187if(document.documentMode){
4188attaches=dataPriv.get(this,delegateType);
4189if(!attaches){
4190this.addEventListener(delegateType,focusMappedHandler);
4191}
4192dataPriv.set(this,delegateType,(attaches||0)+1);
4193}else{
4194return false;
4195}
4196},
4197trigger:function(){
4198leverageNative(this,type);
4199return true;
4200},
4201teardown:function(){
4202var attaches;
4203if(document.documentMode){
4204attaches=dataPriv.get(this,delegateType)-1;
4205if(!attaches){
4206this.removeEventListener(delegateType,focusMappedHandler);
4207dataPriv.remove(this,delegateType);
4208}else{
4209dataPriv.set(this,delegateType,attaches);
4210}
4211}else{
4212return false;
4213}
4214},
4215_default:function(event){
4216return dataPriv.get(event.target,type);
4217},
4218delegateType:delegateType
4219};
4220jQuery.event.special[delegateType]={
4221setup:function(){
4222var doc=this.ownerDocument||this.document||this,
4223dataHolder=document.documentMode?this:doc,
4224attaches=dataPriv.get(dataHolder,delegateType);
4225if(!attaches){
4226if(document.documentMode){
4227this.addEventListener(delegateType,focusMappedHandler);
4228}else{
4229doc.addEventListener(type,focusMappedHandler,true);
4230}
4231}
4232dataPriv.set(dataHolder,delegateType,(attaches||0)+1);
4233},
4234teardown:function(){
4235var doc=this.ownerDocument||this.document||this,
4236dataHolder=document.documentMode?this:doc,
4237attaches=dataPriv.get(dataHolder,delegateType)-1;
4238if(!attaches){
4239if(document.documentMode){
4240this.removeEventListener(delegateType,focusMappedHandler);
4241}else{
4242doc.removeEventListener(type,focusMappedHandler,true);
4243}
4244dataPriv.remove(dataHolder,delegateType);
4245}else{
4246dataPriv.set(dataHolder,delegateType,attaches);
4247}
4248}
4249};
4250});
4251jQuery.each({
4252mouseenter:"mouseover",
4253mouseleave:"mouseout",
4254pointerenter:"pointerover",
4255pointerleave:"pointerout"
4256},function(orig,fix){
4257jQuery.event.special[orig]={
4258delegateType:fix,
4259bindType:fix,
4260handle:function(event){
4261var ret,
4262target=this,
4263related=event.relatedTarget,
4264handleObj=event.handleObj;
4265if(!related||(related!==target&&!jQuery.contains(target,related))){
4266event.type=handleObj.origType;
4267ret=handleObj.handler.apply(this,arguments);
4268event.type=fix;
4269}
4270return ret;
4271}
4272};
4273});
4274jQuery.fn.extend({
4275on:function(types,selector,data,fn){
4276return on(this,types,selector,data,fn);
4277},
4278one:function(types,selector,data,fn){
4279return on(this,types,selector,data,fn,1);
4280},
4281off:function(types,selector,fn){
4282var handleObj,type;
4283if(types&&types.preventDefault&&types.handleObj){
4284handleObj=types.handleObj;
4285jQuery(types.delegateTarget).off(
4286handleObj.namespace?
4287handleObj.origType+"."+handleObj.namespace:
4288handleObj.origType,
4289handleObj.selector,
4290handleObj.handler
4291);
4292return this;
4293}
4294if(typeof types==="object"){
4295for(type in types){
4296this.off(type,selector,types[type]);
4297}
4298return this;
4299}
4300if(selector===false||typeof selector==="function"){
4301fn=selector;
4302selector=undefined;
4303}
4304if(fn===false){
4305fn=returnFalse;
4306}
4307return this.each(function(){
4308jQuery.event.remove(this,types,fn,selector);
4309});
4310}
4311});
4312var
4313rnoInnerhtml=/<script|<style|<link/i,
4314rchecked=/checked\s*(?:[^=]|=\s*.checked.)/i,
4315rcleanScript=/^\s*<!\[CDATA\[|\]\]>\s*$/g;
4316function manipulationTarget(elem,content){
4317if(nodeName(elem,"table")&&
4318nodeName(content.nodeType!==11?content:content.firstChild,"tr")){
4319return jQuery(elem).children("tbody")[0]||elem;
4320}
4321return elem;
4322}
4323function disableScript(elem){
4324elem.type=(elem.getAttribute("type")!==null)+"/"+elem.type;
4325return elem;
4326}
4327function restoreScript(elem){
4328if((elem.type||"").slice(0,5)==="true/"){
4329elem.type=elem.type.slice(5);
4330}else{
4331elem.removeAttribute("type");
4332}
4333return elem;
4334}
4335function cloneCopyEvent(src,dest){
4336var i,l,type,pdataOld,udataOld,udataCur,events;
4337if(dest.nodeType!==1){
4338return;
4339}
4340if(dataPriv.hasData(src)){
4341pdataOld=dataPriv.get(src);
4342events=pdataOld.events;
4343if(events){
4344dataPriv.remove(dest,"handle events");
4345for(type in events){
4346for(i=0,l=events[type].length;i<l;i++){
4347jQuery.event.add(dest,type,events[type][i]);
4348}
4349}
4350}
4351}
4352if(dataUser.hasData(src)){
4353udataOld=dataUser.access(src);
4354udataCur=jQuery.extend({},udataOld);
4355dataUser.set(dest,udataCur);
4356}
4357}
4358function fixInput(src,dest){
4359var nodeName=dest.nodeName.toLowerCase();
4360if(nodeName==="input"&&rcheckableType.test(src.type)){
4361dest.checked=src.checked;
4362}else if(nodeName==="input"||nodeName==="textarea"){
4363dest.defaultValue=src.defaultValue;
4364}
4365}
4366function domManip(collection,args,callback,ignored){
4367args=flat(args);
4368var fragment,first,scripts,hasScripts,node,doc,
4369i=0,
4370l=collection.length,
4371iNoClone=l-1,
4372value=args[0],
4373valueIsFunction=isFunction(value);
4374if(valueIsFunction||
4375(l>1&&typeof value==="string"&&
4376!support.checkClone&&rchecked.test(value))){
4377return collection.each(function(index){
4378var self=collection.eq(index);
4379if(valueIsFunction){
4380args[0]=value.call(this,index,self.html());
4381}
4382domManip(self,args,callback,ignored);
4383});
4384}
4385if(l){
4386fragment=buildFragment(args,collection[0].ownerDocument,false,collection,ignored);
4387first=fragment.firstChild;
4388if(fragment.childNodes.length===1){
4389fragment=first;
4390}
4391if(first||ignored){
4392scripts=jQuery.map(getAll(fragment,"script"),disableScript);
4393hasScripts=scripts.length;
4394for(;i<l;i++){
4395node=fragment;
4396if(i!==iNoClone){
4397node=jQuery.clone(node,true,true);
4398if(hasScripts){
4399jQuery.merge(scripts,getAll(node,"script"));
4400}
4401}
4402callback.call(collection[i],node,i);
4403}
4404if(hasScripts){
4405doc=scripts[scripts.length-1].ownerDocument;
4406jQuery.map(scripts,restoreScript);
4407for(i=0;i<hasScripts;i++){
4408node=scripts[i];
4409if(rscriptType.test(node.type||"")&&
4410!dataPriv.access(node,"globalEval")&&
4411jQuery.contains(doc,node)){
4412if(node.src&&(node.type||"").toLowerCase()!=="module"){
4413if(jQuery._evalUrl&&!node.noModule){
4414jQuery._evalUrl(node.src,{
4415nonce:node.nonce||node.getAttribute("nonce")
4416},doc);
4417}
4418}else{
4419DOMEval(node.textContent.replace(rcleanScript,""),node,doc);
4420}
4421}
4422}
4423}
4424}
4425}
4426return collection;
4427}
4428function remove(elem,selector,keepData){
4429var node,
4430nodes=selector?jQuery.filter(selector,elem):elem,
4431i=0;
4432for(;(node=nodes[i])!=null;i++){
4433if(!keepData&&node.nodeType===1){
4434jQuery.cleanData(getAll(node));
4435}
4436if(node.parentNode){
4437if(keepData&&isAttached(node)){
4438setGlobalEval(getAll(node,"script"));
4439}
4440node.parentNode.removeChild(node);
4441}
4442}
4443return elem;
4444}
4445jQuery.extend({
4446htmlPrefilter:function(html){
4447return html;
4448},
4449clone:function(elem,dataAndEvents,deepDataAndEvents){
4450var i,l,srcElements,destElements,
4451clone=elem.cloneNode(true),
4452inPage=isAttached(elem);
4453if(!support.noCloneChecked&&(elem.nodeType===1||elem.nodeType===11)&&
4454!jQuery.isXMLDoc(elem)){
4455destElements=getAll(clone);
4456srcElements=getAll(elem);
4457for(i=0,l=srcElements.length;i<l;i++){
4458fixInput(srcElements[i],destElements[i]);
4459}
4460}
4461if(dataAndEvents){
4462if(deepDataAndEvents){
4463srcElements=srcElements||getAll(elem);
4464destElements=destElements||getAll(clone);
4465for(i=0,l=srcElements.length;i<l;i++){
4466cloneCopyEvent(srcElements[i],destElements[i]);
4467}
4468}else{
4469cloneCopyEvent(elem,clone);
4470}
4471}
4472destElements=getAll(clone,"script");
4473if(destElements.length>0){
4474setGlobalEval(destElements,!inPage&&getAll(elem,"script"));
4475}
4476return clone;
4477},
4478cleanData:function(elems){
4479var data,elem,type,
4480special=jQuery.event.special,
4481i=0;
4482for(;(elem=elems[i])!==undefined;i++){
4483if(acceptData(elem)){
4484if((data=elem[dataPriv.expando])){
4485if(data.events){
4486for(type in data.events){
4487if(special[type]){
4488jQuery.event.remove(elem,type);
4489}else{
4490jQuery.removeEvent(elem,type,data.handle);
4491}
4492}
4493}
4494elem[dataPriv.expando]=undefined;
4495}
4496if(elem[dataUser.expando]){
4497elem[dataUser.expando]=undefined;
4498}
4499}
4500}
4501}
4502});
4503jQuery.fn.extend({
4504detach:function(selector){
4505return remove(this,selector,true);
4506},
4507remove:function(selector){
4508return remove(this,selector);
4509},
4510text:function(value){
4511return access(this,function(value){
4512return value===undefined?
4513jQuery.text(this):
4514this.empty().each(function(){
4515if(this.nodeType===1||this.nodeType===11||this.nodeType===9){
4516this.textContent=value;
4517}
4518});
4519},null,value,arguments.length);
4520},
4521append:function(){
4522return domManip(this,arguments,function(elem){
4523if(this.nodeType===1||this.nodeType===11||this.nodeType===9){
4524var target=manipulationTarget(this,elem);
4525target.appendChild(elem);
4526}
4527});
4528},
4529prepend:function(){
4530return domManip(this,arguments,function(elem){
4531if(this.nodeType===1||this.nodeType===11||this.nodeType===9){
4532var target=manipulationTarget(this,elem);
4533target.insertBefore(elem,target.firstChild);
4534}
4535});
4536},
4537before:function(){
4538return domManip(this,arguments,function(elem){
4539if(this.parentNode){
4540this.parentNode.insertBefore(elem,this);
4541}
4542});
4543},
4544after:function(){
4545return domManip(this,arguments,function(elem){
4546if(this.parentNode){
4547this.parentNode.insertBefore(elem,this.nextSibling);
4548}
4549});
4550},
4551empty:function(){
4552var elem,
4553i=0;
4554for(;(elem=this[i])!=null;i++){
4555if(elem.nodeType===1){
4556jQuery.cleanData(getAll(elem,false));
4557elem.textContent="";
4558}
4559}
4560return this;
4561},
4562clone:function(dataAndEvents,deepDataAndEvents){
4563dataAndEvents=dataAndEvents==null?false:dataAndEvents;
4564deepDataAndEvents=deepDataAndEvents==null?dataAndEvents:deepDataAndEvents;
4565return this.map(function(){
4566return jQuery.clone(this,dataAndEvents,deepDataAndEvents);
4567});
4568},
4569html:function(value){
4570return access(this,function(value){
4571var elem=this[0]||{},
4572i=0,
4573l=this.length;
4574if(value===undefined&&elem.nodeType===1){
4575return elem.innerHTML;
4576}
4577if(typeof value==="string"&&!rnoInnerhtml.test(value)&&
4578!wrapMap[(rtagName.exec(value)||["",""])[1].toLowerCase()]){
4579value=jQuery.htmlPrefilter(value);
4580try{
4581for(;i<l;i++){
4582elem=this[i]||{};
4583if(elem.nodeType===1){
4584jQuery.cleanData(getAll(elem,false));
4585elem.innerHTML=value;
4586}
4587}
4588elem=0;
4589}catch(e){}
4590}
4591if(elem){
4592this.empty().append(value);
4593}
4594},null,value,arguments.length);
4595},
4596replaceWith:function(){
4597var ignored=[];
4598return domManip(this,arguments,function(elem){
4599var parent=this.parentNode;
4600if(jQuery.inArray(this,ignored)<0){
4601jQuery.cleanData(getAll(this));
4602if(parent){
4603parent.replaceChild(elem,this);
4604}
4605}
4606},ignored);
4607}
4608});
4609jQuery.each({
4610appendTo:"append",
4611prependTo:"prepend",
4612insertBefore:"before",
4613insertAfter:"after",
4614replaceAll:"replaceWith"
4615},function(name,original){
4616jQuery.fn[name]=function(selector){
4617var elems,
4618ret=[],
4619insert=jQuery(selector),
4620last=insert.length-1,
4621i=0;
4622for(;i<=last;i++){
4623elems=i===last?this:this.clone(true);
4624jQuery(insert[i])[original](elems);
4625push.apply(ret,elems.get());
4626}
4627return this.pushStack(ret);
4628};
4629});
4630var rnumnonpx=new RegExp("^("+pnum+")(?!px)[a-z%]+$","i");
4631var rcustomProp=/^--/;
4632var getStyles=function(elem){
4633var view=elem.ownerDocument.defaultView;
4634if(!view||!view.opener){
4635view=window;
4636}
4637return view.getComputedStyle(elem);
4638};
4639var swap=function(elem,options,callback){
4640var ret,name,
4641old={};
4642for(name in options){
4643old[name]=elem.style[name];
4644elem.style[name]=options[name];
4645}
4646ret=callback.call(elem);
4647for(name in options){
4648elem.style[name]=old[name];
4649}
4650return ret;
4651};
4652var rboxStyle=new RegExp(cssExpand.join("|"),"i");
4653(function(){
4654function computeStyleTests(){
4655if(!div){
4656return;
4657}
4658container.style.cssText="position:absolute;left:-11111px;width:60px;"+
4659"margin-top:1px;padding:0;border:0";
4660div.style.cssText=
4661"position:relative;display:block;box-sizing:border-box;overflow:scroll;"+
4662"margin:auto;border:1px;padding:1px;"+
4663"width:60%;top:1%";
4664documentElement.appendChild(container).appendChild(div);
4665var divStyle=window.getComputedStyle(div);
4666pixelPositionVal=divStyle.top!=="1%";
4667reliableMarginLeftVal=roundPixelMeasures(divStyle.marginLeft)===12;
4668div.style.right="60%";
4669pixelBoxStylesVal=roundPixelMeasures(divStyle.right)===36;
4670boxSizingReliableVal=roundPixelMeasures(divStyle.width)===36;
4671div.style.position="absolute";
4672scrollboxSizeVal=roundPixelMeasures(div.offsetWidth/3)===12;
4673documentElement.removeChild(container);
4674div=null;
4675}
4676function roundPixelMeasures(measure){
4677return Math.round(parseFloat(measure));
4678}
4679var pixelPositionVal,boxSizingReliableVal,scrollboxSizeVal,pixelBoxStylesVal,
4680reliableTrDimensionsVal,reliableMarginLeftVal,
4681container=document.createElement("div"),
4682div=document.createElement("div");
4683if(!div.style){
4684return;
4685}
4686div.style.backgroundClip="content-box";
4687div.cloneNode(true).style.backgroundClip="";
4688support.clearCloneStyle=div.style.backgroundClip==="content-box";
4689jQuery.extend(support,{
4690boxSizingReliable:function(){
4691computeStyleTests();
4692return boxSizingReliableVal;
4693},
4694pixelBoxStyles:function(){
4695computeStyleTests();
4696return pixelBoxStylesVal;
4697},
4698pixelPosition:function(){
4699computeStyleTests();
4700return pixelPositionVal;
4701},
4702reliableMarginLeft:function(){
4703computeStyleTests();
4704return reliableMarginLeftVal;
4705},
4706scrollboxSize:function(){
4707computeStyleTests();
4708return scrollboxSizeVal;
4709},
4710reliableTrDimensions:function(){
4711var table,tr,trChild,trStyle;
4712if(reliableTrDimensionsVal==null){
4713table=document.createElement("table");
4714tr=document.createElement("tr");
4715trChild=document.createElement("div");
4716table.style.cssText="position:absolute;left:-11111px;border-collapse:separate";
4717tr.style.cssText="box-sizing:content-box;border:1px solid";
4718tr.style.height="1px";
4719trChild.style.height="9px";
4720trChild.style.display="block";
4721documentElement
4722.appendChild(table)
4723.appendChild(tr)
4724.appendChild(trChild);
4725trStyle=window.getComputedStyle(tr);
4726reliableTrDimensionsVal=(parseInt(trStyle.height,10)+
4727parseInt(trStyle.borderTopWidth,10)+
4728parseInt(trStyle.borderBottomWidth,10))===tr.offsetHeight;
4729documentElement.removeChild(table);
4730}
4731return reliableTrDimensionsVal;
4732}
4733});
4734})();
4735function curCSS(elem,name,computed){
4736var width,minWidth,maxWidth,ret,
4737isCustomProp=rcustomProp.test(name),
4738style=elem.style;
4739computed=computed||getStyles(elem);
4740if(computed){
4741ret=computed.getPropertyValue(name)||computed[name];
4742if(isCustomProp&&ret){
4743ret=ret.replace(rtrimCSS,"$1")||undefined;
4744}
4745if(ret===""&&!isAttached(elem)){
4746ret=jQuery.style(elem,name);
4747}
4748if(!support.pixelBoxStyles()&&rnumnonpx.test(ret)&&rboxStyle.test(name)){
4749width=style.width;
4750minWidth=style.minWidth;
4751maxWidth=style.maxWidth;
4752style.minWidth=style.maxWidth=style.width=ret;
4753ret=computed.width;
4754style.width=width;
4755style.minWidth=minWidth;
4756style.maxWidth=maxWidth;
4757}
4758}
4759return ret!==undefined?
4760ret+"":
4761ret;
4762}
4763function addGetHookIf(conditionFn,hookFn){
4764return{
4765get:function(){
4766if(conditionFn()){
4767delete this.get;
4768return;
4769}
4770return(this.get=hookFn).apply(this,arguments);
4771}
4772};
4773}
4774var cssPrefixes=["Webkit","Moz","ms"],
4775emptyStyle=document.createElement("div").style,
4776vendorProps={};
4777function vendorPropName(name){
4778var capName=name[0].toUpperCase()+name.slice(1),
4779i=cssPrefixes.length;
4780while(i--){
4781name=cssPrefixes[i]+capName;
4782if(name in emptyStyle){
4783return name;
4784}
4785}
4786}
4787function finalPropName(name){
4788var final=jQuery.cssProps[name]||vendorProps[name];
4789if(final){
4790return final;
4791}
4792if(name in emptyStyle){
4793return name;
4794}
4795return vendorProps[name]=vendorPropName(name)||name;
4796}
4797var
4798rdisplayswap=/^(none|table(?!-c[ea]).+)/,
4799cssShow={position:"absolute",visibility:"hidden",display:"block"},
4800cssNormalTransform={
4801letterSpacing:"0",
4802fontWeight:"400"
4803};
4804function setPositiveNumber(_elem,value,subtract){
4805var matches=rcssNum.exec(value);
4806return matches?
4807Math.max(0,matches[2]-(subtract||0))+(matches[3]||"px"):
4808value;
4809}
4810function boxModelAdjustment(elem,dimension,box,isBorderBox,styles,computedVal){
4811var i=dimension==="width"?1:0,
4812extra=0,
4813delta=0,
4814marginDelta=0;
4815if(box===(isBorderBox?"border":"content")){
4816return 0;
4817}
4818for(;i<4;i+=2){
4819if(box==="margin"){
4820marginDelta+=jQuery.css(elem,box+cssExpand[i],true,styles);
4821}
4822if(!isBorderBox){
4823delta+=jQuery.css(elem,"padding"+cssExpand[i],true,styles);
4824if(box!=="padding"){
4825delta+=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles);
4826}else{
4827extra+=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles);
4828}
4829}else{
4830if(box==="content"){
4831delta-=jQuery.css(elem,"padding"+cssExpand[i],true,styles);
4832}
4833if(box!=="margin"){
4834delta-=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles);
4835}
4836}
4837}
4838if(!isBorderBox&&computedVal>=0){
4839delta+=Math.max(0,Math.ceil(
4840elem["offset"+dimension[0].toUpperCase()+dimension.slice(1)]-
4841computedVal-
4842delta-
4843extra-
48440.5
4845))||0;
4846}
4847return delta+marginDelta;
4848}
4849function getWidthOrHeight(elem,dimension,extra){
4850var styles=getStyles(elem),
4851boxSizingNeeded=!support.boxSizingReliable()||extra,
4852isBorderBox=boxSizingNeeded&&
4853jQuery.css(elem,"boxSizing",false,styles)==="border-box",
4854valueIsBorderBox=isBorderBox,
4855val=curCSS(elem,dimension,styles),
4856offsetProp="offset"+dimension[0].toUpperCase()+dimension.slice(1);
4857if(rnumnonpx.test(val)){
4858if(!extra){
4859return val;
4860}
4861val="auto";
4862}
4863if((!support.boxSizingReliable()&&isBorderBox||
4864!support.reliableTrDimensions()&&nodeName(elem,"tr")||
4865val==="auto"||
4866!parseFloat(val)&&jQuery.css(elem,"display",false,styles)==="inline")&&
4867elem.getClientRects().length){
4868isBorderBox=jQuery.css(elem,"boxSizing",false,styles)==="border-box";
4869valueIsBorderBox=offsetProp in elem;
4870if(valueIsBorderBox){
4871val=elem[offsetProp];
4872}
4873}
4874val=parseFloat(val)||0;
4875return(val+
4876boxModelAdjustment(
4877elem,
4878dimension,
4879extra||(isBorderBox?"border":"content"),
4880valueIsBorderBox,
4881styles,
4882val
4883)
4884)+"px";
4885}
4886jQuery.extend({
4887cssHooks:{
4888opacity:{
4889get:function(elem,computed){
4890if(computed){
4891var ret=curCSS(elem,"opacity");
4892return ret===""?"1":ret;
4893}
4894}
4895}
4896},
4897cssNumber:{
4898animationIterationCount:true,
4899aspectRatio:true,
4900borderImageSlice:true,
4901columnCount:true,
4902flexGrow:true,
4903flexShrink:true,
4904fontWeight:true,
4905gridArea:true,
4906gridColumn:true,
4907gridColumnEnd:true,
4908gridColumnStart:true,
4909gridRow:true,
4910gridRowEnd:true,
4911gridRowStart:true,
4912lineHeight:true,
4913opacity:true,
4914order:true,
4915orphans:true,
4916scale:true,
4917widows:true,
4918zIndex:true,
4919zoom:true,
4920fillOpacity:true,
4921floodOpacity:true,
4922stopOpacity:true,
4923strokeMiterlimit:true,
4924strokeOpacity:true
4925},
4926cssProps:{},
4927style:function(elem,name,value,extra){
4928if(!elem||elem.nodeType===3||elem.nodeType===8||!elem.style){
4929return;
4930}
4931var ret,type,hooks,
4932origName=camelCase(name),
4933isCustomProp=rcustomProp.test(name),
4934style=elem.style;
4935if(!isCustomProp){
4936name=finalPropName(origName);
4937}
4938hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];
4939if(value!==undefined){
4940type=typeof value;
4941if(type==="string"&&(ret=rcssNum.exec(value))&&ret[1]){
4942value=adjustCSS(elem,name,ret);
4943type="number";
4944}
4945if(value==null||value!==value){
4946return;
4947}
4948if(type==="number"&&!isCustomProp){
4949value+=ret&&ret[3]||(jQuery.cssNumber[origName]?"":"px");
4950}
4951if(!support.clearCloneStyle&&value===""&&name.indexOf("background")===0){
4952style[name]="inherit";
4953}
4954if(!hooks||!("set"in hooks)||
4955(value=hooks.set(elem,value,extra))!==undefined){
4956if(isCustomProp){
4957style.setProperty(name,value);
4958}else{
4959style[name]=value;
4960}
4961}
4962}else{
4963if(hooks&&"get"in hooks&&
4964(ret=hooks.get(elem,false,extra))!==undefined){
4965return ret;
4966}
4967return style[name];
4968}
4969},
4970css:function(elem,name,extra,styles){
4971var val,num,hooks,
4972origName=camelCase(name),
4973isCustomProp=rcustomProp.test(name);
4974if(!isCustomProp){
4975name=finalPropName(origName);
4976}
4977hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];
4978if(hooks&&"get"in hooks){
4979val=hooks.get(elem,true,extra);
4980}
4981if(val===undefined){
4982val=curCSS(elem,name,styles);
4983}
4984if(val==="normal"&&name in cssNormalTransform){
4985val=cssNormalTransform[name];
4986}
4987if(extra===""||extra){
4988num=parseFloat(val);
4989return extra===true||isFinite(num)?num||0:val;
4990}
4991return val;
4992}
4993});
4994jQuery.each(["height","width"],function(_i,dimension){
4995jQuery.cssHooks[dimension]={
4996get:function(elem,computed,extra){
4997if(computed){
4998return rdisplayswap.test(jQuery.css(elem,"display"))&&
4999(!elem.getClientRects().length||!elem.getBoundingClientRect().width)?
5000swap(elem,cssShow,function(){
5001return getWidthOrHeight(elem,dimension,extra);
5002}):
5003getWidthOrHeight(elem,dimension,extra);
5004}
5005},
5006set:function(elem,value,extra){
5007var matches,
5008styles=getStyles(elem),
5009scrollboxSizeBuggy=!support.scrollboxSize()&&
5010styles.position==="absolute",
5011boxSizingNeeded=scrollboxSizeBuggy||extra,
5012isBorderBox=boxSizingNeeded&&
5013jQuery.css(elem,"boxSizing",false,styles)==="border-box",
5014subtract=extra?
5015boxModelAdjustment(
5016elem,
5017dimension,
5018extra,
5019isBorderBox,
5020styles
5021):
50220;
5023if(isBorderBox&&scrollboxSizeBuggy){
5024subtract-=Math.ceil(
5025elem["offset"+dimension[0].toUpperCase()+dimension.slice(1)]-
5026parseFloat(styles[dimension])-
5027boxModelAdjustment(elem,dimension,"border",false,styles)-
50280.5
5029);
5030}
5031if(subtract&&(matches=rcssNum.exec(value))&&
5032(matches[3]||"px")!=="px"){
5033elem.style[dimension]=value;
5034value=jQuery.css(elem,dimension);
5035}
5036return setPositiveNumber(elem,value,subtract);
5037}
5038};
5039});
5040jQuery.cssHooks.marginLeft=addGetHookIf(support.reliableMarginLeft,
5041function(elem,computed){
5042if(computed){
5043return(parseFloat(curCSS(elem,"marginLeft"))||
5044elem.getBoundingClientRect().left-
5045swap(elem,{marginLeft:0},function(){
5046return elem.getBoundingClientRect().left;
5047})
5048)+"px";
5049}
5050}
5051);
5052jQuery.each({
5053margin:"",
5054padding:"",
5055border:"Width"
5056},function(prefix,suffix){
5057jQuery.cssHooks[prefix+suffix]={
5058expand:function(value){
5059var i=0,
5060expanded={},
5061parts=typeof value==="string"?value.split(" "):[value];
5062for(;i<4;i++){
5063expanded[prefix+cssExpand[i]+suffix]=
5064parts[i]||parts[i-2]||parts[0];
5065}
5066return expanded;
5067}
5068};
5069if(prefix!=="margin"){
5070jQuery.cssHooks[prefix+suffix].set=setPositiveNumber;
5071}
5072});
5073jQuery.fn.extend({
5074css:function(name,value){
5075return access(this,function(elem,name,value){
5076var styles,len,
5077map={},
5078i=0;
5079if(Array.isArray(name)){
5080styles=getStyles(elem);
5081len=name.length;
5082for(;i<len;i++){
5083map[name[i]]=jQuery.css(elem,name[i],false,styles);
5084}
5085return map;
5086}
5087return value!==undefined?
5088jQuery.style(elem,name,value):
5089jQuery.css(elem,name);
5090},name,value,arguments.length>1);
5091}
5092});
5093function Tween(elem,options,prop,end,easing){
5094return new Tween.prototype.init(elem,options,prop,end,easing);
5095}
5096jQuery.Tween=Tween;
5097Tween.prototype={
5098constructor:Tween,
5099init:function(elem,options,prop,end,easing,unit){
5100this.elem=elem;
5101this.prop=prop;
5102this.easing=easing||jQuery.easing._default;
5103this.options=options;
5104this.start=this.now=this.cur();
5105this.end=end;
5106this.unit=unit||(jQuery.cssNumber[prop]?"":"px");
5107},
5108cur:function(){
5109var hooks=Tween.propHooks[this.prop];
5110return hooks&&hooks.get?
5111hooks.get(this):
5112Tween.propHooks._default.get(this);
5113},
5114run:function(percent){
5115var eased,
5116hooks=Tween.propHooks[this.prop];
5117if(this.options.duration){
5118this.pos=eased=jQuery.easing[this.easing](
5119percent,this.options.duration*percent,0,1,this.options.duration
5120);
5121}else{
5122this.pos=eased=percent;
5123}
5124this.now=(this.end-this.start)*eased+this.start;
5125if(this.options.step){
5126this.options.step.call(this.elem,this.now,this);
5127}
5128if(hooks&&hooks.set){
5129hooks.set(this);
5130}else{
5131Tween.propHooks._default.set(this);
5132}
5133return this;
5134}
5135};
5136Tween.prototype.init.prototype=Tween.prototype;
5137Tween.propHooks={
5138_default:{
5139get:function(tween){
5140var result;
5141if(tween.elem.nodeType!==1||
5142tween.elem[tween.prop]!=null&&tween.elem.style[tween.prop]==null){
5143return tween.elem[tween.prop];
5144}
5145result=jQuery.css(tween.elem,tween.prop,"");
5146return!result||result==="auto"?0:result;
5147},
5148set:function(tween){
5149if(jQuery.fx.step[tween.prop]){
5150jQuery.fx.step[tween.prop](tween);
5151}else if(tween.elem.nodeType===1&&(
5152jQuery.cssHooks[tween.prop]||
5153tween.elem.style[finalPropName(tween.prop)]!=null)){
5154jQuery.style(tween.elem,tween.prop,tween.now+tween.unit);
5155}else{
5156tween.elem[tween.prop]=tween.now;
5157}
5158}
5159}
5160};
5161Tween.propHooks.scrollTop=Tween.propHooks.scrollLeft={
5162set:function(tween){
5163if(tween.elem.nodeType&&tween.elem.parentNode){
5164tween.elem[tween.prop]=tween.now;
5165}
5166}
5167};
5168jQuery.easing={
5169linear:function(p){
5170return p;
5171},
5172swing:function(p){
5173return 0.5-Math.cos(p*Math.PI)/2;
5174},
5175_default:"swing"
5176};
5177jQuery.fx=Tween.prototype.init;
5178jQuery.fx.step={};
5179var
5180fxNow,inProgress,
5181rfxtypes=/^(?:toggle|show|hide)$/,
5182rrun=/queueHooks$/;
5183function schedule(){
5184if(inProgress){
5185if(document.hidden===false&&window.requestAnimationFrame){
5186window.requestAnimationFrame(schedule);
5187}else{
5188window.setTimeout(schedule,jQuery.fx.interval);
5189}
5190jQuery.fx.tick();
5191}
5192}
5193function createFxNow(){
5194window.setTimeout(function(){
5195fxNow=undefined;
5196});
5197return(fxNow=Date.now());
5198}
5199function genFx(type,includeWidth){
5200var which,
5201i=0,
5202attrs={height:type};
5203includeWidth=includeWidth?1:0;
5204for(;i<4;i+=2-includeWidth){
5205which=cssExpand[i];
5206attrs["margin"+which]=attrs["padding"+which]=type;
5207}
5208if(includeWidth){
5209attrs.opacity=attrs.width=type;
5210}
5211return attrs;
5212}
5213function createTween(value,prop,animation){
5214var tween,
5215collection=(Animation.tweeners[prop]||[]).concat(Animation.tweeners["*"]),
5216index=0,
5217length=collection.length;
5218for(;index<length;index++){
5219if((tween=collection[index].call(animation,prop,value))){
5220return tween;
5221}
5222}
5223}
5224function defaultPrefilter(elem,props,opts){
5225var prop,value,toggle,hooks,oldfire,propTween,restoreDisplay,display,
5226isBox="width"in props||"height"in props,
5227anim=this,
5228orig={},
5229style=elem.style,
5230hidden=elem.nodeType&&isHiddenWithinTree(elem),
5231dataShow=dataPriv.get(elem,"fxshow");
5232if(!opts.queue){
5233hooks=jQuery._queueHooks(elem,"fx");
5234if(hooks.unqueued==null){
5235hooks.unqueued=0;
5236oldfire=hooks.empty.fire;
5237hooks.empty.fire=function(){
5238if(!hooks.unqueued){
5239oldfire();
5240}
5241};
5242}
5243hooks.unqueued++;
5244anim.always(function(){
5245anim.always(function(){
5246hooks.unqueued--;
5247if(!jQuery.queue(elem,"fx").length){
5248hooks.empty.fire();
5249}
5250});
5251});
5252}
5253for(prop in props){
5254value=props[prop];
5255if(rfxtypes.test(value)){
5256delete props[prop];
5257toggle=toggle||value==="toggle";
5258if(value===(hidden?"hide":"show")){
5259if(value==="show"&&dataShow&&dataShow[prop]!==undefined){
5260hidden=true;
5261}else{
5262continue;
5263}
5264}
5265orig[prop]=dataShow&&dataShow[prop]||jQuery.style(elem,prop);
5266}
5267}
5268propTween=!jQuery.isEmptyObject(props);
5269if(!propTween&&jQuery.isEmptyObject(orig)){
5270return;
5271}
5272if(isBox&&elem.nodeType===1){
5273opts.overflow=[style.overflow,style.overflowX,style.overflowY];
5274restoreDisplay=dataShow&&dataShow.display;
5275if(restoreDisplay==null){
5276restoreDisplay=dataPriv.get(elem,"display");
5277}
5278display=jQuery.css(elem,"display");
5279if(display==="none"){
5280if(restoreDisplay){
5281display=restoreDisplay;
5282}else{
5283showHide([elem],true);
5284restoreDisplay=elem.style.display||restoreDisplay;
5285display=jQuery.css(elem,"display");
5286showHide([elem]);
5287}
5288}
5289if(display==="inline"||display==="inline-block"&&restoreDisplay!=null){
5290if(jQuery.css(elem,"float")==="none"){
5291if(!propTween){
5292anim.done(function(){
5293style.display=restoreDisplay;
5294});
5295if(restoreDisplay==null){
5296display=style.display;
5297restoreDisplay=display==="none"?"":display;
5298}
5299}
5300style.display="inline-block";
5301}
5302}
5303}
5304if(opts.overflow){
5305style.overflow="hidden";
5306anim.always(function(){
5307style.overflow=opts.overflow[0];
5308style.overflowX=opts.overflow[1];
5309style.overflowY=opts.overflow[2];
5310});
5311}
5312propTween=false;
5313for(prop in orig){
5314if(!propTween){
5315if(dataShow){
5316if("hidden"in dataShow){
5317hidden=dataShow.hidden;
5318}
5319}else{
5320dataShow=dataPriv.access(elem,"fxshow",{display:restoreDisplay});
5321}
5322if(toggle){
5323dataShow.hidden=!hidden;
5324}
5325if(hidden){
5326showHide([elem],true);
5327}
5328anim.done(function(){
5329if(!hidden){
5330showHide([elem]);
5331}
5332dataPriv.remove(elem,"fxshow");
5333for(prop in orig){
5334jQuery.style(elem,prop,orig[prop]);
5335}
5336});
5337}
5338propTween=createTween(hidden?dataShow[prop]:0,prop,anim);
5339if(!(prop in dataShow)){
5340dataShow[prop]=propTween.start;
5341if(hidden){
5342propTween.end=propTween.start;
5343propTween.start=0;
5344}
5345}
5346}
5347}
5348function propFilter(props,specialEasing){
5349var index,name,easing,value,hooks;
5350for(index in props){
5351name=camelCase(index);
5352easing=specialEasing[name];
5353value=props[index];
5354if(Array.isArray(value)){
5355easing=value[1];
5356value=props[index]=value[0];
5357}
5358if(index!==name){
5359props[name]=value;
5360delete props[index];
5361}
5362hooks=jQuery.cssHooks[name];
5363if(hooks&&"expand"in hooks){
5364value=hooks.expand(value);
5365delete props[name];
5366for(index in value){
5367if(!(index in props)){
5368props[index]=value[index];
5369specialEasing[index]=easing;
5370}
5371}
5372}else{
5373specialEasing[name]=easing;
5374}
5375}
5376}
5377function Animation(elem,properties,options){
5378var result,
5379stopped,
5380index=0,
5381length=Animation.prefilters.length,
5382deferred=jQuery.Deferred().always(function(){
5383delete tick.elem;
5384}),
5385tick=function(){
5386if(stopped){
5387return false;
5388}
5389var currentTime=fxNow||createFxNow(),
5390remaining=Math.max(0,animation.startTime+animation.duration-currentTime),
5391temp=remaining/animation.duration||0,
5392percent=1-temp,
5393index=0,
5394length=animation.tweens.length;
5395for(;index<length;index++){
5396animation.tweens[index].run(percent);
5397}
5398deferred.notifyWith(elem,[animation,percent,remaining]);
5399if(percent<1&&length){
5400return remaining;
5401}
5402if(!length){
5403deferred.notifyWith(elem,[animation,1,0]);
5404}
5405deferred.resolveWith(elem,[animation]);
5406return false;
5407},
5408animation=deferred.promise({
5409elem:elem,
5410props:jQuery.extend({},properties),
5411opts:jQuery.extend(true,{
5412specialEasing:{},
5413easing:jQuery.easing._default
5414},options),
5415originalProperties:properties,
5416originalOptions:options,
5417startTime:fxNow||createFxNow(),
5418duration:options.duration,
5419tweens:[],
5420createTween:function(prop,end){
5421var tween=jQuery.Tween(elem,animation.opts,prop,end,
5422animation.opts.specialEasing[prop]||animation.opts.easing);
5423animation.tweens.push(tween);
5424return tween;
5425},
5426stop:function(gotoEnd){
5427var index=0,
5428length=gotoEnd?animation.tweens.length:0;
5429if(stopped){
5430return this;
5431}
5432stopped=true;
5433for(;index<length;index++){
5434animation.tweens[index].run(1);
5435}
5436if(gotoEnd){
5437deferred.notifyWith(elem,[animation,1,0]);
5438deferred.resolveWith(elem,[animation,gotoEnd]);
5439}else{
5440deferred.rejectWith(elem,[animation,gotoEnd]);
5441}
5442return this;
5443}
5444}),
5445props=animation.props;
5446propFilter(props,animation.opts.specialEasing);
5447for(;index<length;index++){
5448result=Animation.prefilters[index].call(animation,elem,props,animation.opts);
5449if(result){
5450if(isFunction(result.stop)){
5451jQuery._queueHooks(animation.elem,animation.opts.queue).stop=
5452result.stop.bind(result);
5453}
5454return result;
5455}
5456}
5457jQuery.map(props,createTween,animation);
5458if(isFunction(animation.opts.start)){
5459animation.opts.start.call(elem,animation);
5460}
5461animation
5462.progress(animation.opts.progress)
5463.done(animation.opts.done,animation.opts.complete)
5464.fail(animation.opts.fail)
5465.always(animation.opts.always);
5466jQuery.fx.timer(
5467jQuery.extend(tick,{
5468elem:elem,
5469anim:animation,
5470queue:animation.opts.queue
5471})
5472);
5473return animation;
5474}
5475jQuery.Animation=jQuery.extend(Animation,{
5476tweeners:{
5477"*":[function(prop,value){
5478var tween=this.createTween(prop,value);
5479adjustCSS(tween.elem,prop,rcssNum.exec(value),tween);
5480return tween;
5481}]
5482},
5483tweener:function(props,callback){
5484if(isFunction(props)){
5485callback=props;
5486props=["*"];
5487}else{
5488props=props.match(rnothtmlwhite);
5489}
5490var prop,
5491index=0,
5492length=props.length;
5493for(;index<length;index++){
5494prop=props[index];
5495Animation.tweeners[prop]=Animation.tweeners[prop]||[];
5496Animation.tweeners[prop].unshift(callback);
5497}
5498},
5499prefilters:[defaultPrefilter],
5500prefilter:function(callback,prepend){
5501if(prepend){
5502Animation.prefilters.unshift(callback);
5503}else{
5504Animation.prefilters.push(callback);
5505}
5506}
5507});
5508jQuery.speed=function(speed,easing,fn){
5509var opt=speed&&typeof speed==="object"?jQuery.extend({},speed):{
5510complete:fn||!fn&&easing||
5511isFunction(speed)&&speed,
5512duration:speed,
5513easing:fn&&easing||easing&&!isFunction(easing)&&easing
5514};
5515if(jQuery.fx.off){
5516opt.duration=0;
5517}else{
5518if(typeof opt.duration!=="number"){
5519if(opt.duration in jQuery.fx.speeds){
5520opt.duration=jQuery.fx.speeds[opt.duration];
5521}else{
5522opt.duration=jQuery.fx.speeds._default;
5523}
5524}
5525}
5526if(opt.queue==null||opt.queue===true){
5527opt.queue="fx";
5528}
5529opt.old=opt.complete;
5530opt.complete=function(){
5531if(isFunction(opt.old)){
5532opt.old.call(this);
5533}
5534if(opt.queue){
5535jQuery.dequeue(this,opt.queue);
5536}
5537};
5538return opt;
5539};
5540jQuery.fn.extend({
5541fadeTo:function(speed,to,easing,callback){
5542return this.filter(isHiddenWithinTree).css("opacity",0).show()
5543.end().animate({opacity:to},speed,easing,callback);
5544},
5545animate:function(prop,speed,easing,callback){
5546var empty=jQuery.isEmptyObject(prop),
5547optall=jQuery.speed(speed,easing,callback),
5548doAnimation=function(){
5549var anim=Animation(this,jQuery.extend({},prop),optall);
5550if(empty||dataPriv.get(this,"finish")){
5551anim.stop(true);
5552}
5553};
5554doAnimation.finish=doAnimation;
5555return empty||optall.queue===false?
5556this.each(doAnimation):
5557this.queue(optall.queue,doAnimation);
5558},
5559stop:function(type,clearQueue,gotoEnd){
5560var stopQueue=function(hooks){
5561var stop=hooks.stop;
5562delete hooks.stop;
5563stop(gotoEnd);
5564};
5565if(typeof type!=="string"){
5566gotoEnd=clearQueue;
5567clearQueue=type;
5568type=undefined;
5569}
5570if(clearQueue){
5571this.queue(type||"fx",[]);
5572}
5573return this.each(function(){
5574var dequeue=true,
5575index=type!=null&&type+"queueHooks",
5576timers=jQuery.timers,
5577data=dataPriv.get(this);
5578if(index){
5579if(data[index]&&data[index].stop){
5580stopQueue(data[index]);
5581}
5582}else{
5583for(index in data){
5584if(data[index]&&data[index].stop&&rrun.test(index)){
5585stopQueue(data[index]);
5586}
5587}
5588}
5589for(index=timers.length;index--;){
5590if(timers[index].elem===this&&
5591(type==null||timers[index].queue===type)){
5592timers[index].anim.stop(gotoEnd);
5593dequeue=false;
5594timers.splice(index,1);
5595}
5596}
5597if(dequeue||!gotoEnd){
5598jQuery.dequeue(this,type);
5599}
5600});
5601},
5602finish:function(type){
5603if(type!==false){
5604type=type||"fx";
5605}
5606return this.each(function(){
5607var index,
5608data=dataPriv.get(this),
5609queue=data[type+"queue"],
5610hooks=data[type+"queueHooks"],
5611timers=jQuery.timers,
5612length=queue?queue.length:0;
5613data.finish=true;
5614jQuery.queue(this,type,[]);
5615if(hooks&&hooks.stop){
5616hooks.stop.call(this,true);
5617}
5618for(index=timers.length;index--;){
5619if(timers[index].elem===this&&timers[index].queue===type){
5620timers[index].anim.stop(true);
5621timers.splice(index,1);
5622}
5623}
5624for(index=0;index<length;index++){
5625if(queue[index]&&queue[index].finish){
5626queue[index].finish.call(this);
5627}
5628}
5629delete data.finish;
5630});
5631}
5632});
5633jQuery.each(["toggle","show","hide"],function(_i,name){
5634var cssFn=jQuery.fn[name];
5635jQuery.fn[name]=function(speed,easing,callback){
5636return speed==null||typeof speed==="boolean"?
5637cssFn.apply(this,arguments):
5638this.animate(genFx(name,true),speed,easing,callback);
5639};
5640});
5641jQuery.each({
5642slideDown:genFx("show"),
5643slideUp:genFx("hide"),
5644slideToggle:genFx("toggle"),
5645fadeIn:{opacity:"show"},
5646fadeOut:{opacity:"hide"},
5647fadeToggle:{opacity:"toggle"}
5648},function(name,props){
5649jQuery.fn[name]=function(speed,easing,callback){
5650return this.animate(props,speed,easing,callback);
5651};
5652});
5653jQuery.timers=[];
5654jQuery.fx.tick=function(){
5655var timer,
5656i=0,
5657timers=jQuery.timers;
5658fxNow=Date.now();
5659for(;i<timers.length;i++){
5660timer=timers[i];
5661if(!timer()&&timers[i]===timer){
5662timers.splice(i--,1);
5663}
5664}
5665if(!timers.length){
5666jQuery.fx.stop();
5667}
5668fxNow=undefined;
5669};
5670jQuery.fx.timer=function(timer){
5671jQuery.timers.push(timer);
5672jQuery.fx.start();
5673};
5674jQuery.fx.interval=13;
5675jQuery.fx.start=function(){
5676if(inProgress){
5677return;
5678}
5679inProgress=true;
5680schedule();
5681};
5682jQuery.fx.stop=function(){
5683inProgress=null;
5684};
5685jQuery.fx.speeds={
5686slow:600,
5687fast:200,
5688_default:400
5689};
5690jQuery.fn.delay=function(time,type){
5691time=jQuery.fx?jQuery.fx.speeds[time]||time:time;
5692type=type||"fx";
5693return this.queue(type,function(next,hooks){
5694var timeout=window.setTimeout(next,time);
5695hooks.stop=function(){
5696window.clearTimeout(timeout);
5697};
5698});
5699};
5700(function(){
5701var input=document.createElement("input"),
5702select=document.createElement("select"),
5703opt=select.appendChild(document.createElement("option"));
5704input.type="checkbox";
5705support.checkOn=input.value!=="";
5706support.optSelected=opt.selected;
5707input=document.createElement("input");
5708input.value="t";
5709input.type="radio";
5710support.radioValue=input.value==="t";
5711})();
5712var boolHook,
5713attrHandle=jQuery.expr.attrHandle;
5714jQuery.fn.extend({
5715attr:function(name,value){
5716return access(this,jQuery.attr,name,value,arguments.length>1);
5717},
5718removeAttr:function(name){
5719return this.each(function(){
5720jQuery.removeAttr(this,name);
5721});
5722}
5723});
5724jQuery.extend({
5725attr:function(elem,name,value){
5726var ret,hooks,
5727nType=elem.nodeType;
5728if(nType===3||nType===8||nType===2){
5729return;
5730}
5731if(typeof elem.getAttribute==="undefined"){
5732return jQuery.prop(elem,name,value);
5733}
5734if(nType!==1||!jQuery.isXMLDoc(elem)){
5735hooks=jQuery.attrHooks[name.toLowerCase()]||
5736(jQuery.expr.match.bool.test(name)?boolHook:undefined);
5737}
5738if(value!==undefined){
5739if(value===null){
5740jQuery.removeAttr(elem,name);
5741return;
5742}
5743if(hooks&&"set"in hooks&&
5744(ret=hooks.set(elem,value,name))!==undefined){
5745return ret;
5746}
5747elem.setAttribute(name,value+"");
5748return value;
5749}
5750if(hooks&&"get"in hooks&&(ret=hooks.get(elem,name))!==null){
5751return ret;
5752}
5753ret=jQuery.find.attr(elem,name);
5754return ret==null?undefined:ret;
5755},
5756attrHooks:{
5757type:{
5758set:function(elem,value){
5759if(!support.radioValue&&value==="radio"&&
5760nodeName(elem,"input")){
5761var val=elem.value;
5762elem.setAttribute("type",value);
5763if(val){
5764elem.value=val;
5765}
5766return value;
5767}
5768}
5769}
5770},
5771removeAttr:function(elem,value){
5772var name,
5773i=0,
5774attrNames=value&&value.match(rnothtmlwhite);
5775if(attrNames&&elem.nodeType===1){
5776while((name=attrNames[i++])){
5777elem.removeAttribute(name);
5778}
5779}
5780}
5781});
5782boolHook={
5783set:function(elem,value,name){
5784if(value===false){
5785jQuery.removeAttr(elem,name);
5786}else{
5787elem.setAttribute(name,name);
5788}
5789return name;
5790}
5791};
5792jQuery.each(jQuery.expr.match.bool.source.match(/\w+/g),function(_i,name){
5793var getter=attrHandle[name]||jQuery.find.attr;
5794attrHandle[name]=function(elem,name,isXML){
5795var ret,handle,
5796lowercaseName=name.toLowerCase();
5797if(!isXML){
5798handle=attrHandle[lowercaseName];
5799attrHandle[lowercaseName]=ret;
5800ret=getter(elem,name,isXML)!=null?
5801lowercaseName:
5802null;
5803attrHandle[lowercaseName]=handle;
5804}
5805return ret;
5806};
5807});
5808var rfocusable=/^(?:input|select|textarea|button)$/i,
5809rclickable=/^(?:a|area)$/i;
5810jQuery.fn.extend({
5811prop:function(name,value){
5812return access(this,jQuery.prop,name,value,arguments.length>1);
5813},
5814removeProp:function(name){
5815return this.each(function(){
5816delete this[jQuery.propFix[name]||name];
5817});
5818}
5819});
5820jQuery.extend({
5821prop:function(elem,name,value){
5822var ret,hooks,
5823nType=elem.nodeType;
5824if(nType===3||nType===8||nType===2){
5825return;
5826}
5827if(nType!==1||!jQuery.isXMLDoc(elem)){
5828name=jQuery.propFix[name]||name;
5829hooks=jQuery.propHooks[name];
5830}
5831if(value!==undefined){
5832if(hooks&&"set"in hooks&&
5833(ret=hooks.set(elem,value,name))!==undefined){
5834return ret;
5835}
5836return(elem[name]=value);
5837}
5838if(hooks&&"get"in hooks&&(ret=hooks.get(elem,name))!==null){
5839return ret;
5840}
5841return elem[name];
5842},
5843propHooks:{
5844tabIndex:{
5845get:function(elem){
5846var tabindex=jQuery.find.attr(elem,"tabindex");
5847if(tabindex){
5848return parseInt(tabindex,10);
5849}
5850if(
5851rfocusable.test(elem.nodeName)||
5852rclickable.test(elem.nodeName)&&
5853elem.href
5854){
5855return 0;
5856}
5857return-1;
5858}
5859}
5860},
5861propFix:{
5862"for":"htmlFor",
5863"class":"className"
5864}
5865});
5866if(!support.optSelected){
5867jQuery.propHooks.selected={
5868get:function(elem){
5869var parent=elem.parentNode;
5870if(parent&&parent.parentNode){
5871parent.parentNode.selectedIndex;
5872}
5873return null;
5874},
5875set:function(elem){
5876var parent=elem.parentNode;
5877if(parent){
5878parent.selectedIndex;
5879if(parent.parentNode){
5880parent.parentNode.selectedIndex;
5881}
5882}
5883}
5884};
5885}
5886jQuery.each([
5887"tabIndex",
5888"readOnly",
5889"maxLength",
5890"cellSpacing",
5891"cellPadding",
5892"rowSpan",
5893"colSpan",
5894"useMap",
5895"frameBorder",
5896"contentEditable"
5897],function(){
5898jQuery.propFix[this.toLowerCase()]=this;
5899});
5900function stripAndCollapse(value){
5901var tokens=value.match(rnothtmlwhite)||[];
5902return tokens.join(" ");
5903}
5904function getClass(elem){
5905return elem.getAttribute&&elem.getAttribute("class")||"";
5906}
5907function classesToArray(value){
5908if(Array.isArray(value)){
5909return value;
5910}
5911if(typeof value==="string"){
5912return value.match(rnothtmlwhite)||[];
5913}
5914return[];
5915}
5916jQuery.fn.extend({
5917addClass:function(value){
5918var classNames,cur,curValue,className,i,finalValue;
5919if(isFunction(value)){
5920return this.each(function(j){
5921jQuery(this).addClass(value.call(this,j,getClass(this)));
5922});
5923}
5924classNames=classesToArray(value);
5925if(classNames.length){
5926return this.each(function(){
5927curValue=getClass(this);
5928cur=this.nodeType===1&&(" "+stripAndCollapse(curValue)+" ");
5929if(cur){
5930for(i=0;i<classNames.length;i++){
5931className=classNames[i];
5932if(cur.indexOf(" "+className+" ")<0){
5933cur+=className+" ";
5934}
5935}
5936finalValue=stripAndCollapse(cur);
5937if(curValue!==finalValue){
5938this.setAttribute("class",finalValue);
5939}
5940}
5941});
5942}
5943return this;
5944},
5945removeClass:function(value){
5946var classNames,cur,curValue,className,i,finalValue;
5947if(isFunction(value)){
5948return this.each(function(j){
5949jQuery(this).removeClass(value.call(this,j,getClass(this)));
5950});
5951}
5952if(!arguments.length){
5953return this.attr("class","");
5954}
5955classNames=classesToArray(value);
5956if(classNames.length){
5957return this.each(function(){
5958curValue=getClass(this);
5959cur=this.nodeType===1&&(" "+stripAndCollapse(curValue)+" ");
5960if(cur){
5961for(i=0;i<classNames.length;i++){
5962className=classNames[i];
5963while(cur.indexOf(" "+className+" ")>-1){
5964cur=cur.replace(" "+className+" "," ");
5965}
5966}
5967finalValue=stripAndCollapse(cur);
5968if(curValue!==finalValue){
5969this.setAttribute("class",finalValue);
5970}
5971}
5972});
5973}
5974return this;
5975},
5976toggleClass:function(value,stateVal){
5977var classNames,className,i,self,
5978type=typeof value,
5979isValidValue=type==="string"||Array.isArray(value);
5980if(isFunction(value)){
5981return this.each(function(i){
5982jQuery(this).toggleClass(
5983value.call(this,i,getClass(this),stateVal),
5984stateVal
5985);
5986});
5987}
5988if(typeof stateVal==="boolean"&&isValidValue){
5989return stateVal?this.addClass(value):this.removeClass(value);
5990}
5991classNames=classesToArray(value);
5992return this.each(function(){
5993if(isValidValue){
5994self=jQuery(this);
5995for(i=0;i<classNames.length;i++){
5996className=classNames[i];
5997if(self.hasClass(className)){
5998self.removeClass(className);
5999}else{
6000self.addClass(className);
6001}
6002}
6003}else if(value===undefined||type==="boolean"){
6004className=getClass(this);
6005if(className){
6006dataPriv.set(this,"__className__",className);
6007}
6008if(this.setAttribute){
6009this.setAttribute("class",
6010className||value===false?
6011"":
6012dataPriv.get(this,"__className__")||""
6013);
6014}
6015}
6016});
6017},
6018hasClass:function(selector){
6019var className,elem,
6020i=0;
6021className=" "+selector+" ";
6022while((elem=this[i++])){
6023if(elem.nodeType===1&&
6024(" "+stripAndCollapse(getClass(elem))+" ").indexOf(className)>-1){
6025return true;
6026}
6027}
6028return false;
6029}
6030});
6031var rreturn=/\r/g;
6032jQuery.fn.extend({
6033val:function(value){
6034var hooks,ret,valueIsFunction,
6035elem=this[0];
6036if(!arguments.length){
6037if(elem){
6038hooks=jQuery.valHooks[elem.type]||
6039jQuery.valHooks[elem.nodeName.toLowerCase()];
6040if(hooks&&
6041"get"in hooks&&
6042(ret=hooks.get(elem,"value"))!==undefined
6043){
6044return ret;
6045}
6046ret=elem.value;
6047if(typeof ret==="string"){
6048return ret.replace(rreturn,"");
6049}
6050return ret==null?"":ret;
6051}
6052return;
6053}
6054valueIsFunction=isFunction(value);
6055return this.each(function(i){
6056var val;
6057if(this.nodeType!==1){
6058return;
6059}
6060if(valueIsFunction){
6061val=value.call(this,i,jQuery(this).val());
6062}else{
6063val=value;
6064}
6065if(val==null){
6066val="";
6067}else if(typeof val==="number"){
6068val+="";
6069}else if(Array.isArray(val)){
6070val=jQuery.map(val,function(value){
6071return value==null?"":value+"";
6072});
6073}
6074hooks=jQuery.valHooks[this.type]||jQuery.valHooks[this.nodeName.toLowerCase()];
6075if(!hooks||!("set"in hooks)||hooks.set(this,val,"value")===undefined){
6076this.value=val;
6077}
6078});
6079}
6080});
6081jQuery.extend({
6082valHooks:{
6083option:{
6084get:function(elem){
6085var val=jQuery.find.attr(elem,"value");
6086return val!=null?
6087val:
6088stripAndCollapse(jQuery.text(elem));
6089}
6090},
6091select:{
6092get:function(elem){
6093var value,option,i,
6094options=elem.options,
6095index=elem.selectedIndex,
6096one=elem.type==="select-one",
6097values=one?null:[],
6098max=one?index+1:options.length;
6099if(index<0){
6100i=max;
6101}else{
6102i=one?index:0;
6103}
6104for(;i<max;i++){
6105option=options[i];
6106if((option.selected||i===index)&&
6107!option.disabled&&
6108(!option.parentNode.disabled||
6109!nodeName(option.parentNode,"optgroup"))){
6110value=jQuery(option).val();
6111if(one){
6112return value;
6113}
6114values.push(value);
6115}
6116}
6117return values;
6118},
6119set:function(elem,value){
6120var optionSet,option,
6121options=elem.options,
6122values=jQuery.makeArray(value),
6123i=options.length;
6124while(i--){
6125option=options[i];
6126if(option.selected=
6127jQuery.inArray(jQuery.valHooks.option.get(option),values)>-1
6128){
6129optionSet=true;
6130}
6131}
6132if(!optionSet){
6133elem.selectedIndex=-1;
6134}
6135return values;
6136}
6137}
6138}
6139});
6140jQuery.each(["radio","checkbox"],function(){
6141jQuery.valHooks[this]={
6142set:function(elem,value){
6143if(Array.isArray(value)){
6144return(elem.checked=jQuery.inArray(jQuery(elem).val(),value)>-1);
6145}
6146}
6147};
6148if(!support.checkOn){
6149jQuery.valHooks[this].get=function(elem){
6150return elem.getAttribute("value")===null?"on":elem.value;
6151};
6152}
6153});
6154var location=window.location;
6155var nonce={guid:Date.now()};
6156var rquery=(/\?/);
6157jQuery.parseXML=function(data){
6158var xml,parserErrorElem;
6159if(!data||typeof data!=="string"){
6160return null;
6161}
6162try{
6163xml=(new window.DOMParser()).parseFromString(data,"text/xml");
6164}catch(e){}
6165parserErrorElem=xml&&xml.getElementsByTagName("parsererror")[0];
6166if(!xml||parserErrorElem){
6167jQuery.error("Invalid XML: "+(
6168parserErrorElem?
6169jQuery.map(parserErrorElem.childNodes,function(el){
6170return el.textContent;
6171}).join("\n"):
6172data
6173));
6174}
6175return xml;
6176};
6177var rfocusMorph=/^(?:focusinfocus|focusoutblur)$/,
6178stopPropagationCallback=function(e){
6179e.stopPropagation();
6180};
6181jQuery.extend(jQuery.event,{
6182trigger:function(event,data,elem,onlyHandlers){
6183var i,cur,tmp,bubbleType,ontype,handle,special,lastElement,
6184eventPath=[elem||document],
6185type=hasOwn.call(event,"type")?event.type:event,
6186namespaces=hasOwn.call(event,"namespace")?event.namespace.split("."):[];
6187cur=lastElement=tmp=elem=elem||document;
6188if(elem.nodeType===3||elem.nodeType===8){
6189return;
6190}
6191if(rfocusMorph.test(type+jQuery.event.triggered)){
6192return;
6193}
6194if(type.indexOf(".")>-1){
6195namespaces=type.split(".");
6196type=namespaces.shift();
6197namespaces.sort();
6198}
6199ontype=type.indexOf(":")<0&&"on"+type;
6200event=event[jQuery.expando]?
6201event:
6202new jQuery.Event(type,typeof event==="object"&&event);
6203event.isTrigger=onlyHandlers?2:3;
6204event.namespace=namespaces.join(".");
6205event.rnamespace=event.namespace?
6206new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)"):
6207null;
6208event.result=undefined;
6209if(!event.target){
6210event.target=elem;
6211}
6212data=data==null?
6213[event]:
6214jQuery.makeArray(data,[event]);
6215special=jQuery.event.special[type]||{};
6216if(!onlyHandlers&&special.trigger&&special.trigger.apply(elem,data)===false){
6217return;
6218}
6219if(!onlyHandlers&&!special.noBubble&&!isWindow(elem)){
6220bubbleType=special.delegateType||type;
6221if(!rfocusMorph.test(bubbleType+type)){
6222cur=cur.parentNode;
6223}
6224for(;cur;cur=cur.parentNode){
6225eventPath.push(cur);
6226tmp=cur;
6227}
6228if(tmp===(elem.ownerDocument||document)){
6229eventPath.push(tmp.defaultView||tmp.parentWindow||window);
6230}
6231}
6232i=0;
6233while((cur=eventPath[i++])&&!event.isPropagationStopped()){
6234lastElement=cur;
6235event.type=i>1?
6236bubbleType:
6237special.bindType||type;
6238handle=(dataPriv.get(cur,"events")||Object.create(null))[event.type]&&
6239dataPriv.get(cur,"handle");
6240if(handle){
6241handle.apply(cur,data);
6242}
6243handle=ontype&&cur[ontype];
6244if(handle&&handle.apply&&acceptData(cur)){
6245event.result=handle.apply(cur,data);
6246if(event.result===false){
6247event.preventDefault();
6248}
6249}
6250}
6251event.type=type;
6252if(!onlyHandlers&&!event.isDefaultPrevented()){
6253if((!special._default||
6254special._default.apply(eventPath.pop(),data)===false)&&
6255acceptData(elem)){
6256if(ontype&&isFunction(elem[type])&&!isWindow(elem)){
6257tmp=elem[ontype];
6258if(tmp){
6259elem[ontype]=null;
6260}
6261jQuery.event.triggered=type;
6262if(event.isPropagationStopped()){
6263lastElement.addEventListener(type,stopPropagationCallback);
6264}
6265elem[type]();
6266if(event.isPropagationStopped()){
6267lastElement.removeEventListener(type,stopPropagationCallback);
6268}
6269jQuery.event.triggered=undefined;
6270if(tmp){
6271elem[ontype]=tmp;
6272}
6273}
6274}
6275}
6276return event.result;
6277},
6278simulate:function(type,elem,event){
6279var e=jQuery.extend(
6280new jQuery.Event(),
6281event,
6282{
6283type:type,
6284isSimulated:true
6285}
6286);
6287jQuery.event.trigger(e,null,elem);
6288}
6289});
6290jQuery.fn.extend({
6291trigger:function(type,data){
6292return this.each(function(){
6293jQuery.event.trigger(type,data,this);
6294});
6295},
6296triggerHandler:function(type,data){
6297var elem=this[0];
6298if(elem){
6299return jQuery.event.trigger(type,data,elem,true);
6300}
6301}
6302});
6303var
6304rbracket=/\[\]$/,
6305rCRLF=/\r?\n/g,
6306rsubmitterTypes=/^(?:submit|button|image|reset|file)$/i,
6307rsubmittable=/^(?:input|select|textarea|keygen)/i;
6308function buildParams(prefix,obj,traditional,add){
6309var name;
6310if(Array.isArray(obj)){
6311jQuery.each(obj,function(i,v){
6312if(traditional||rbracket.test(prefix)){
6313add(prefix,v);
6314}else{
6315buildParams(
6316prefix+"["+(typeof v==="object"&&v!=null?i:"")+"]",
6317v,
6318traditional,
6319add
6320);
6321}
6322});
6323}else if(!traditional&&toType(obj)==="object"){
6324for(name in obj){
6325buildParams(prefix+"["+name+"]",obj[name],traditional,add);
6326}
6327}else{
6328add(prefix,obj);
6329}
6330}
6331jQuery.param=function(a,traditional){
6332var prefix,
6333s=[],
6334add=function(key,valueOrFunction){
6335var value=isFunction(valueOrFunction)?
6336valueOrFunction():
6337valueOrFunction;
6338s[s.length]=encodeURIComponent(key)+"="+
6339encodeURIComponent(value==null?"":value);
6340};
6341if(a==null){
6342return"";
6343}
6344if(Array.isArray(a)||(a.jquery&&!jQuery.isPlainObject(a))){
6345jQuery.each(a,function(){
6346add(this.name,this.value);
6347});
6348}else{
6349for(prefix in a){
6350buildParams(prefix,a[prefix],traditional,add);
6351}
6352}
6353return s.join("&");
6354};
6355jQuery.fn.extend({
6356serialize:function(){
6357return jQuery.param(this.serializeArray());
6358},
6359serializeArray:function(){
6360return this.map(function(){
6361var elements=jQuery.prop(this,"elements");
6362return elements?jQuery.makeArray(elements):this;
6363}).filter(function(){
6364var type=this.type;
6365return this.name&&!jQuery(this).is(":disabled")&&
6366rsubmittable.test(this.nodeName)&&!rsubmitterTypes.test(type)&&
6367(this.checked||!rcheckableType.test(type));
6368}).map(function(_i,elem){
6369var val=jQuery(this).val();
6370if(val==null){
6371return null;
6372}
6373if(Array.isArray(val)){
6374return jQuery.map(val,function(val){
6375return{name:elem.name,value:val.replace(rCRLF,"\r\n")};
6376});
6377}
6378return{name:elem.name,value:val.replace(rCRLF,"\r\n")};
6379}).get();
6380}
6381});
6382var
6383r20=/%20/g,
6384rhash=/#.*$/,
6385rantiCache=/([?&])_=[^&]*/,
6386rheaders=/^(.*?):[ \t]*([^\r\n]*)$/mg,
6387rlocalProtocol=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
6388rnoContent=/^(?:GET|HEAD)$/,
6389rprotocol=/^\/\//,
6390prefilters={},
6391transports={},
6392allTypes="*/".concat("*"),
6393originAnchor=document.createElement("a");
6394originAnchor.href=location.href;
6395function addToPrefiltersOrTransports(structure){
6396return function(dataTypeExpression,func){
6397if(typeof dataTypeExpression!=="string"){
6398func=dataTypeExpression;
6399dataTypeExpression="*";
6400}
6401var dataType,
6402i=0,
6403dataTypes=dataTypeExpression.toLowerCase().match(rnothtmlwhite)||[];
6404if(isFunction(func)){
6405while((dataType=dataTypes[i++])){
6406if(dataType[0]==="+"){
6407dataType=dataType.slice(1)||"*";
6408(structure[dataType]=structure[dataType]||[]).unshift(func);
6409}else{
6410(structure[dataType]=structure[dataType]||[]).push(func);
6411}
6412}
6413}
6414};
6415}
6416function inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR){
6417var inspected={},
6418seekingTransport=(structure===transports);
6419function inspect(dataType){
6420var selected;
6421inspected[dataType]=true;
6422jQuery.each(structure[dataType]||[],function(_,prefilterOrFactory){
6423var dataTypeOrTransport=prefilterOrFactory(options,originalOptions,jqXHR);
6424if(typeof dataTypeOrTransport==="string"&&
6425!seekingTransport&&!inspected[dataTypeOrTransport]){
6426options.dataTypes.unshift(dataTypeOrTransport);
6427inspect(dataTypeOrTransport);
6428return false;
6429}else if(seekingTransport){
6430return!(selected=dataTypeOrTransport);
6431}
6432});
6433return selected;
6434}
6435return inspect(options.dataTypes[0])||!inspected["*"]&&inspect("*");
6436}
6437function ajaxExtend(target,src){
6438var key,deep,
6439flatOptions=jQuery.ajaxSettings.flatOptions||{};
6440for(key in src){
6441if(src[key]!==undefined){
6442(flatOptions[key]?target:(deep||(deep={})))[key]=src[key];
6443}
6444}
6445if(deep){
6446jQuery.extend(true,target,deep);
6447}
6448return target;
6449}
6450function ajaxHandleResponses(s,jqXHR,responses){
6451var ct,type,finalDataType,firstDataType,
6452contents=s.contents,
6453dataTypes=s.dataTypes;
6454while(dataTypes[0]==="*"){
6455dataTypes.shift();
6456if(ct===undefined){
6457ct=s.mimeType||jqXHR.getResponseHeader("Content-Type");
6458}
6459}
6460if(ct){
6461for(type in contents){
6462if(contents[type]&&contents[type].test(ct)){
6463dataTypes.unshift(type);
6464break;
6465}
6466}
6467}
6468if(dataTypes[0]in responses){
6469finalDataType=dataTypes[0];
6470}else{
6471for(type in responses){
6472if(!dataTypes[0]||s.converters[type+" "+dataTypes[0]]){
6473finalDataType=type;
6474break;
6475}
6476if(!firstDataType){
6477firstDataType=type;
6478}
6479}
6480finalDataType=finalDataType||firstDataType;
6481}
6482if(finalDataType){
6483if(finalDataType!==dataTypes[0]){
6484dataTypes.unshift(finalDataType);
6485}
6486return responses[finalDataType];
6487}
6488}
6489function ajaxConvert(s,response,jqXHR,isSuccess){
6490var conv2,current,conv,tmp,prev,
6491converters={},
6492dataTypes=s.dataTypes.slice();
6493if(dataTypes[1]){
6494for(conv in s.converters){
6495converters[conv.toLowerCase()]=s.converters[conv];
6496}
6497}
6498current=dataTypes.shift();
6499while(current){
6500if(s.responseFields[current]){
6501jqXHR[s.responseFields[current]]=response;
6502}
6503if(!prev&&isSuccess&&s.dataFilter){
6504response=s.dataFilter(response,s.dataType);
6505}
6506prev=current;
6507current=dataTypes.shift();
6508if(current){
6509if(current==="*"){
6510current=prev;
6511}else if(prev!=="*"&&prev!==current){
6512conv=converters[prev+" "+current]||converters["* "+current];
6513if(!conv){
6514for(conv2 in converters){
6515tmp=conv2.split(" ");
6516if(tmp[1]===current){
6517conv=converters[prev+" "+tmp[0]]||
6518converters["* "+tmp[0]];
6519if(conv){
6520if(conv===true){
6521conv=converters[conv2];
6522}else if(converters[conv2]!==true){
6523current=tmp[0];
6524dataTypes.unshift(tmp[1]);
6525}
6526break;
6527}
6528}
6529}
6530}
6531if(conv!==true){
6532if(conv&&s.throws){
6533response=conv(response);
6534}else{
6535try{
6536response=conv(response);
6537}catch(e){
6538return{
6539state:"parsererror",
6540error:conv?e:"No conversion from "+prev+" to "+current
6541};
6542}
6543}
6544}
6545}
6546}
6547}
6548return{state:"success",data:response};
6549}
6550jQuery.extend({
6551active:0,
6552lastModified:{},
6553etag:{},
6554ajaxSettings:{
6555url:location.href,
6556type:"GET",
6557isLocal:rlocalProtocol.test(location.protocol),
6558global:true,
6559processData:true,
6560async:true,
6561contentType:"application/x-www-form-urlencoded; charset=UTF-8",
6562accepts:{
6563"*":allTypes,
6564text:"text/plain",
6565html:"text/html",
6566xml:"application/xml, text/xml",
6567json:"application/json, text/javascript"
6568},
6569contents:{
6570xml:/\bxml\b/,
6571html:/\bhtml/,
6572json:/\bjson\b/
6573},
6574responseFields:{
6575xml:"responseXML",
6576text:"responseText",
6577json:"responseJSON"
6578},
6579converters:{
6580"* text":String,
6581"text html":true,
6582"text json":JSON.parse,
6583"text xml":jQuery.parseXML
6584},
6585flatOptions:{
6586url:true,
6587context:true
6588}
6589},
6590ajaxSetup:function(target,settings){
6591return settings?
6592ajaxExtend(ajaxExtend(target,jQuery.ajaxSettings),settings):
6593ajaxExtend(jQuery.ajaxSettings,target);
6594},
6595ajaxPrefilter:addToPrefiltersOrTransports(prefilters),
6596ajaxTransport:addToPrefiltersOrTransports(transports),
6597ajax:function(url,options){
6598if(typeof url==="object"){
6599options=url;
6600url=undefined;
6601}
6602options=options||{};
6603var transport,
6604cacheURL,
6605responseHeadersString,
6606responseHeaders,
6607timeoutTimer,
6608urlAnchor,
6609completed,
6610fireGlobals,
6611i,
6612uncached,
6613s=jQuery.ajaxSetup({},options),
6614callbackContext=s.context||s,
6615globalEventContext=s.context&&
6616(callbackContext.nodeType||callbackContext.jquery)?
6617jQuery(callbackContext):
6618jQuery.event,
6619deferred=jQuery.Deferred(),
6620completeDeferred=jQuery.Callbacks("once memory"),
6621statusCode=s.statusCode||{},
6622requestHeaders={},
6623requestHeadersNames={},
6624strAbort="canceled",
6625jqXHR={
6626readyState:0,
6627getResponseHeader:function(key){
6628var match;
6629if(completed){
6630if(!responseHeaders){
6631responseHeaders={};
6632while((match=rheaders.exec(responseHeadersString))){
6633responseHeaders[match[1].toLowerCase()+" "]=
6634(responseHeaders[match[1].toLowerCase()+" "]||[])
6635.concat(match[2]);
6636}
6637}
6638match=responseHeaders[key.toLowerCase()+" "];
6639}
6640return match==null?null:match.join(", ");
6641},
6642getAllResponseHeaders:function(){
6643return completed?responseHeadersString:null;
6644},
6645setRequestHeader:function(name,value){
6646if(completed==null){
6647name=requestHeadersNames[name.toLowerCase()]=
6648requestHeadersNames[name.toLowerCase()]||name;
6649requestHeaders[name]=value;
6650}
6651return this;
6652},
6653overrideMimeType:function(type){
6654if(completed==null){
6655s.mimeType=type;
6656}
6657return this;
6658},
6659statusCode:function(map){
6660var code;
6661if(map){
6662if(completed){
6663jqXHR.always(map[jqXHR.status]);
6664}else{
6665for(code in map){
6666statusCode[code]=[statusCode[code],map[code]];
6667}
6668}
6669}
6670return this;
6671},
6672abort:function(statusText){
6673var finalText=statusText||strAbort;
6674if(transport){
6675transport.abort(finalText);
6676}
6677done(0,finalText);
6678return this;
6679}
6680};
6681deferred.promise(jqXHR);
6682s.url=((url||s.url||location.href)+"")
6683.replace(rprotocol,location.protocol+"//");
6684s.type=options.method||options.type||s.method||s.type;
6685s.dataTypes=(s.dataType||"*").toLowerCase().match(rnothtmlwhite)||[""];
6686if(s.crossDomain==null){
6687urlAnchor=document.createElement("a");
6688try{
6689urlAnchor.href=s.url;
6690urlAnchor.href=urlAnchor.href;
6691s.crossDomain=originAnchor.protocol+"//"+originAnchor.host!==
6692urlAnchor.protocol+"//"+urlAnchor.host;
6693}catch(e){
6694s.crossDomain=true;
6695}
6696}
6697if(s.data&&s.processData&&typeof s.data!=="string"){
6698s.data=jQuery.param(s.data,s.traditional);
6699}
6700inspectPrefiltersOrTransports(prefilters,s,options,jqXHR);
6701if(completed){
6702return jqXHR;
6703}
6704fireGlobals=jQuery.event&&s.global;
6705if(fireGlobals&&jQuery.active++===0){
6706jQuery.event.trigger("ajaxStart");
6707}
6708s.type=s.type.toUpperCase();
6709s.hasContent=!rnoContent.test(s.type);
6710cacheURL=s.url.replace(rhash,"");
6711if(!s.hasContent){
6712uncached=s.url.slice(cacheURL.length);
6713if(s.data&&(s.processData||typeof s.data==="string")){
6714cacheURL+=(rquery.test(cacheURL)?"&":"?")+s.data;
6715delete s.data;
6716}
6717if(s.cache===false){
6718cacheURL=cacheURL.replace(rantiCache,"$1");
6719uncached=(rquery.test(cacheURL)?"&":"?")+"_="+(nonce.guid++)+
6720uncached;
6721}
6722s.url=cacheURL+uncached;
6723}else if(s.data&&s.processData&&
6724(s.contentType||"").indexOf("application/x-www-form-urlencoded")===0){
6725s.data=s.data.replace(r20,"+");
6726}
6727if(s.ifModified){
6728if(jQuery.lastModified[cacheURL]){
6729jqXHR.setRequestHeader("If-Modified-Since",jQuery.lastModified[cacheURL]);
6730}
6731if(jQuery.etag[cacheURL]){
6732jqXHR.setRequestHeader("If-None-Match",jQuery.etag[cacheURL]);
6733}
6734}
6735if(s.data&&s.hasContent&&s.contentType!==false||options.contentType){
6736jqXHR.setRequestHeader("Content-Type",s.contentType);
6737}
6738jqXHR.setRequestHeader(
6739"Accept",
6740s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?
6741s.accepts[s.dataTypes[0]]+
6742(s.dataTypes[0]!=="*"?", "+allTypes+"; q=0.01":""):
6743s.accepts["*"]
6744);
6745for(i in s.headers){
6746jqXHR.setRequestHeader(i,s.headers[i]);
6747}
6748if(s.beforeSend&&
6749(s.beforeSend.call(callbackContext,jqXHR,s)===false||completed)){
6750return jqXHR.abort();
6751}
6752strAbort="abort";
6753completeDeferred.add(s.complete);
6754jqXHR.done(s.success);
6755jqXHR.fail(s.error);
6756transport=inspectPrefiltersOrTransports(transports,s,options,jqXHR);
6757if(!transport){
6758done(-1,"No Transport");
6759}else{
6760jqXHR.readyState=1;
6761if(fireGlobals){
6762globalEventContext.trigger("ajaxSend",[jqXHR,s]);
6763}
6764if(completed){
6765return jqXHR;
6766}
6767if(s.async&&s.timeout>0){
6768timeoutTimer=window.setTimeout(function(){
6769jqXHR.abort("timeout");
6770},s.timeout);
6771}
6772try{
6773completed=false;
6774transport.send(requestHeaders,done);
6775}catch(e){
6776if(completed){
6777throw e;
6778}
6779done(-1,e);
6780}
6781}
6782function done(status,nativeStatusText,responses,headers){
6783var isSuccess,success,error,response,modified,
6784statusText=nativeStatusText;
6785if(completed){
6786return;
6787}
6788completed=true;
6789if(timeoutTimer){
6790window.clearTimeout(timeoutTimer);
6791}
6792transport=undefined;
6793responseHeadersString=headers||"";
6794jqXHR.readyState=status>0?4:0;
6795isSuccess=status>=200&&status<300||status===304;
6796if(responses){
6797response=ajaxHandleResponses(s,jqXHR,responses);
6798}
6799if(!isSuccess&&
6800jQuery.inArray("script",s.dataTypes)>-1&&
6801jQuery.inArray("json",s.dataTypes)<0){
6802s.converters["text script"]=function(){};
6803}
6804response=ajaxConvert(s,response,jqXHR,isSuccess);
6805if(isSuccess){
6806if(s.ifModified){
6807modified=jqXHR.getResponseHeader("Last-Modified");
6808if(modified){
6809jQuery.lastModified[cacheURL]=modified;
6810}
6811modified=jqXHR.getResponseHeader("etag");
6812if(modified){
6813jQuery.etag[cacheURL]=modified;
6814}
6815}
6816if(status===204||s.type==="HEAD"){
6817statusText="nocontent";
6818}else if(status===304){
6819statusText="notmodified";
6820}else{
6821statusText=response.state;
6822success=response.data;
6823error=response.error;
6824isSuccess=!error;
6825}
6826}else{
6827error=statusText;
6828if(status||!statusText){
6829statusText="error";
6830if(status<0){
6831status=0;
6832}
6833}
6834}
6835jqXHR.status=status;
6836jqXHR.statusText=(nativeStatusText||statusText)+"";
6837if(isSuccess){
6838deferred.resolveWith(callbackContext,[success,statusText,jqXHR]);
6839}else{
6840deferred.rejectWith(callbackContext,[jqXHR,statusText,error]);
6841}
6842jqXHR.statusCode(statusCode);
6843statusCode=undefined;
6844if(fireGlobals){
6845globalEventContext.trigger(isSuccess?"ajaxSuccess":"ajaxError",
6846[jqXHR,s,isSuccess?success:error]);
6847}
6848completeDeferred.fireWith(callbackContext,[jqXHR,statusText]);
6849if(fireGlobals){
6850globalEventContext.trigger("ajaxComplete",[jqXHR,s]);
6851if(!(--jQuery.active)){
6852jQuery.event.trigger("ajaxStop");
6853}
6854}
6855}
6856return jqXHR;
6857},
6858getJSON:function(url,data,callback){
6859return jQuery.get(url,data,callback,"json");
6860},
6861getScript:function(url,callback){
6862return jQuery.get(url,undefined,callback,"script");
6863}
6864});
6865jQuery.each(["get","post"],function(_i,method){
6866jQuery[method]=function(url,data,callback,type){
6867if(isFunction(data)){
6868type=type||callback;
6869callback=data;
6870data=undefined;
6871}
6872return jQuery.ajax(jQuery.extend({
6873url:url,
6874type:method,
6875dataType:type,
6876data:data,
6877success:callback
6878},jQuery.isPlainObject(url)&&url));
6879};
6880});
6881jQuery.ajaxPrefilter(function(s){
6882var i;
6883for(i in s.headers){
6884if(i.toLowerCase()==="content-type"){
6885s.contentType=s.headers[i]||"";
6886}
6887}
6888});
6889jQuery._evalUrl=function(url,options,doc){
6890return jQuery.ajax({
6891url:url,
6892type:"GET",
6893dataType:"script",
6894cache:true,
6895async:false,
6896global:false,
6897converters:{
6898"text script":function(){}
6899},
6900dataFilter:function(response){
6901jQuery.globalEval(response,options,doc);
6902}
6903});
6904};
6905jQuery.fn.extend({
6906wrapAll:function(html){
6907var wrap;
6908if(this[0]){
6909if(isFunction(html)){
6910html=html.call(this[0]);
6911}
6912wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(true);
6913if(this[0].parentNode){
6914wrap.insertBefore(this[0]);
6915}
6916wrap.map(function(){
6917var elem=this;
6918while(elem.firstElementChild){
6919elem=elem.firstElementChild;
6920}
6921return elem;
6922}).append(this);
6923}
6924return this;
6925},
6926wrapInner:function(html){
6927if(isFunction(html)){
6928return this.each(function(i){
6929jQuery(this).wrapInner(html.call(this,i));
6930});
6931}
6932return this.each(function(){
6933var self=jQuery(this),
6934contents=self.contents();
6935if(contents.length){
6936contents.wrapAll(html);
6937}else{
6938self.append(html);
6939}
6940});
6941},
6942wrap:function(html){
6943var htmlIsFunction=isFunction(html);
6944return this.each(function(i){
6945jQuery(this).wrapAll(htmlIsFunction?html.call(this,i):html);
6946});
6947},
6948unwrap:function(selector){
6949this.parent(selector).not("body").each(function(){
6950jQuery(this).replaceWith(this.childNodes);
6951});
6952return this;
6953}
6954});
6955jQuery.expr.pseudos.hidden=function(elem){
6956return!jQuery.expr.pseudos.visible(elem);
6957};
6958jQuery.expr.pseudos.visible=function(elem){
6959return!!(elem.offsetWidth||elem.offsetHeight||elem.getClientRects().length);
6960};
6961jQuery.ajaxSettings.xhr=function(){
6962try{
6963return new window.XMLHttpRequest();
6964}catch(e){}
6965};
6966var xhrSuccessStatus={
69670:200,
69681223:204
6969},
6970xhrSupported=jQuery.ajaxSettings.xhr();
6971support.cors=!!xhrSupported&&("withCredentials"in xhrSupported);
6972support.ajax=xhrSupported=!!xhrSupported;
6973jQuery.ajaxTransport(function(options){
6974var callback,errorCallback;
6975if(support.cors||xhrSupported&&!options.crossDomain){
6976return{
6977send:function(headers,complete){
6978var i,
6979xhr=options.xhr();
6980xhr.open(
6981options.type,
6982options.url,
6983options.async,
6984options.username,
6985options.password
6986);
6987if(options.xhrFields){
6988for(i in options.xhrFields){
6989xhr[i]=options.xhrFields[i];
6990}
6991}
6992if(options.mimeType&&xhr.overrideMimeType){
6993xhr.overrideMimeType(options.mimeType);
6994}
6995if(!options.crossDomain&&!headers["X-Requested-With"]){
6996headers["X-Requested-With"]="XMLHttpRequest";
6997}
6998for(i in headers){
6999xhr.setRequestHeader(i,headers[i]);
7000}
7001callback=function(type){
7002return function(){
7003if(callback){
7004callback=errorCallback=xhr.onload=
7005xhr.onerror=xhr.onabort=xhr.ontimeout=
7006xhr.onreadystatechange=null;
7007if(type==="abort"){
7008xhr.abort();
7009}else if(type==="error"){
7010if(typeof xhr.status!=="number"){
7011complete(0,"error");
7012}else{
7013complete(
7014xhr.status,
7015xhr.statusText
7016);
7017}
7018}else{
7019complete(
7020xhrSuccessStatus[xhr.status]||xhr.status,
7021xhr.statusText,
7022(xhr.responseType||"text")!=="text"||
7023typeof xhr.responseText!=="string"?
7024{binary:xhr.response}:
7025{text:xhr.responseText},
7026xhr.getAllResponseHeaders()
7027);
7028}
7029}
7030};
7031};
7032xhr.onload=callback();
7033errorCallback=xhr.onerror=xhr.ontimeout=callback("error");
7034if(xhr.onabort!==undefined){
7035xhr.onabort=errorCallback;
7036}else{
7037xhr.onreadystatechange=function(){
7038if(xhr.readyState===4){
7039window.setTimeout(function(){
7040if(callback){
7041errorCallback();
7042}
7043});
7044}
7045};
7046}
7047callback=callback("abort");
7048try{
7049xhr.send(options.hasContent&&options.data||null);
7050}catch(e){
7051if(callback){
7052throw e;
7053}
7054}
7055},
7056abort:function(){
7057if(callback){
7058callback();
7059}
7060}
7061};
7062}
7063});
7064jQuery.ajaxPrefilter(function(s){
7065if(s.crossDomain){
7066s.contents.script=false;
7067}
7068});
7069jQuery.ajaxSetup({
7070accepts:{
7071script:"text/javascript, application/javascript, "+
7072"application/ecmascript, application/x-ecmascript"
7073},
7074contents:{
7075script:/\b(?:java|ecma)script\b/
7076},
7077converters:{
7078"text script":function(text){
7079jQuery.globalEval(text);
7080return text;
7081}
7082}
7083});
7084jQuery.ajaxPrefilter("script",function(s){
7085if(s.cache===undefined){
7086s.cache=false;
7087}
7088if(s.crossDomain){
7089s.type="GET";
7090}
7091});
7092jQuery.ajaxTransport("script",function(s){
7093if(s.crossDomain||s.scriptAttrs){
7094var script,callback;
7095return{
7096send:function(_,complete){
7097script=jQuery("<script>")
7098.attr(s.scriptAttrs||{})
7099.prop({charset:s.scriptCharset,src:s.url})
7100.on("load error",callback=function(evt){
7101script.remove();
7102callback=null;
7103if(evt){
7104complete(evt.type==="error"?404:200,evt.type);
7105}
7106});
7107document.head.appendChild(script[0]);
7108},
7109abort:function(){
7110if(callback){
7111callback();
7112}
7113}
7114};
7115}
7116});
7117var oldCallbacks=[],
7118rjsonp=/(=)\?(?=&|$)|\?\?/;
7119jQuery.ajaxSetup({
7120jsonp:"callback",
7121jsonpCallback:function(){
7122var callback=oldCallbacks.pop()||(jQuery.expando+"_"+(nonce.guid++));
7123this[callback]=true;
7124return callback;
7125}
7126});
7127jQuery.ajaxPrefilter("json jsonp",function(s,originalSettings,jqXHR){
7128var callbackName,overwritten,responseContainer,
7129jsonProp=s.jsonp!==false&&(rjsonp.test(s.url)?
7130"url":
7131typeof s.data==="string"&&
7132(s.contentType||"")
7133.indexOf("application/x-www-form-urlencoded")===0&&
7134rjsonp.test(s.data)&&"data"
7135);
7136if(jsonProp||s.dataTypes[0]==="jsonp"){
7137callbackName=s.jsonpCallback=isFunction(s.jsonpCallback)?
7138s.jsonpCallback():
7139s.jsonpCallback;
7140if(jsonProp){
7141s[jsonProp]=s[jsonProp].replace(rjsonp,"$1"+callbackName);
7142}else if(s.jsonp!==false){
7143s.url+=(rquery.test(s.url)?"&":"?")+s.jsonp+"="+callbackName;
7144}
7145s.converters["script json"]=function(){
7146if(!responseContainer){
7147jQuery.error(callbackName+" was not called");
7148}
7149return responseContainer[0];
7150};
7151s.dataTypes[0]="json";
7152overwritten=window[callbackName];
7153window[callbackName]=function(){
7154responseContainer=arguments;
7155};
7156jqXHR.always(function(){
7157if(overwritten===undefined){
7158jQuery(window).removeProp(callbackName);
7159}else{
7160window[callbackName]=overwritten;
7161}
7162if(s[callbackName]){
7163s.jsonpCallback=originalSettings.jsonpCallback;
7164oldCallbacks.push(callbackName);
7165}
7166if(responseContainer&&isFunction(overwritten)){
7167overwritten(responseContainer[0]);
7168}
7169responseContainer=overwritten=undefined;
7170});
7171return"script";
7172}
7173});
7174support.createHTMLDocument=(function(){
7175var body=document.implementation.createHTMLDocument("").body;
7176body.innerHTML="<form></form><form></form>";
7177return body.childNodes.length===2;
7178})();
7179jQuery.parseHTML=function(data,context,keepScripts){
7180if(typeof data!=="string"){
7181return[];
7182}
7183if(typeof context==="boolean"){
7184keepScripts=context;
7185context=false;
7186}
7187var base,parsed,scripts;
7188if(!context){
7189if(support.createHTMLDocument){
7190context=document.implementation.createHTMLDocument("");
7191base=context.createElement("base");
7192base.href=document.location.href;
7193context.head.appendChild(base);
7194}else{
7195context=document;
7196}
7197}
7198parsed=rsingleTag.exec(data);
7199scripts=!keepScripts&&[];
7200if(parsed){
7201return[context.createElement(parsed[1])];
7202}
7203parsed=buildFragment([data],context,scripts);
7204if(scripts&&scripts.length){
7205jQuery(scripts).remove();
7206}
7207return jQuery.merge([],parsed.childNodes);
7208};
7209jQuery.fn.load=function(url,params,callback){
7210var selector,type,response,
7211self=this,
7212off=url.indexOf(" ");
7213if(off>-1){
7214selector=stripAndCollapse(url.slice(off));
7215url=url.slice(0,off);
7216}
7217if(isFunction(params)){
7218callback=params;
7219params=undefined;
7220}else if(params&&typeof params==="object"){
7221type="POST";
7222}
7223if(self.length>0){
7224jQuery.ajax({
7225url:url,
7226type:type||"GET",
7227dataType:"html",
7228data:params
7229}).done(function(responseText){
7230response=arguments;
7231self.html(selector?
7232jQuery("<div>").append(jQuery.parseHTML(responseText)).find(selector):
7233responseText);
7234}).always(callback&&function(jqXHR,status){
7235self.each(function(){
7236callback.apply(this,response||[jqXHR.responseText,status,jqXHR]);
7237});
7238});
7239}
7240return this;
7241};
7242jQuery.expr.pseudos.animated=function(elem){
7243return jQuery.grep(jQuery.timers,function(fn){
7244return elem===fn.elem;
7245}).length;
7246};
7247jQuery.offset={
7248setOffset:function(elem,options,i){
7249var curPosition,curLeft,curCSSTop,curTop,curOffset,curCSSLeft,calculatePosition,
7250position=jQuery.css(elem,"position"),
7251curElem=jQuery(elem),
7252props={};
7253if(position==="static"){
7254elem.style.position="relative";
7255}
7256curOffset=curElem.offset();
7257curCSSTop=jQuery.css(elem,"top");
7258curCSSLeft=jQuery.css(elem,"left");
7259calculatePosition=(position==="absolute"||position==="fixed")&&
7260(curCSSTop+curCSSLeft).indexOf("auto")>-1;
7261if(calculatePosition){
7262curPosition=curElem.position();
7263curTop=curPosition.top;
7264curLeft=curPosition.left;
7265}else{
7266curTop=parseFloat(curCSSTop)||0;
7267curLeft=parseFloat(curCSSLeft)||0;
7268}
7269if(isFunction(options)){
7270options=options.call(elem,i,jQuery.extend({},curOffset));
7271}
7272if(options.top!=null){
7273props.top=(options.top-curOffset.top)+curTop;
7274}
7275if(options.left!=null){
7276props.left=(options.left-curOffset.left)+curLeft;
7277}
7278if("using"in options){
7279options.using.call(elem,props);
7280}else{
7281curElem.css(props);
7282}
7283}
7284};
7285jQuery.fn.extend({
7286offset:function(options){
7287if(arguments.length){
7288return options===undefined?
7289this:
7290this.each(function(i){
7291jQuery.offset.setOffset(this,options,i);
7292});
7293}
7294var rect,win,
7295elem=this[0];
7296if(!elem){
7297return;
7298}
7299if(!elem.getClientRects().length){
7300return{top:0,left:0};
7301}
7302rect=elem.getBoundingClientRect();
7303win=elem.ownerDocument.defaultView;
7304return{
7305top:rect.top+win.pageYOffset,
7306left:rect.left+win.pageXOffset
7307};
7308},
7309position:function(){
7310if(!this[0]){
7311return;
7312}
7313var offsetParent,offset,doc,
7314elem=this[0],
7315parentOffset={top:0,left:0};
7316if(jQuery.css(elem,"position")==="fixed"){
7317offset=elem.getBoundingClientRect();
7318}else{
7319offset=this.offset();
7320doc=elem.ownerDocument;
7321offsetParent=elem.offsetParent||doc.documentElement;
7322while(offsetParent&&
7323(offsetParent===doc.body||offsetParent===doc.documentElement)&&
7324jQuery.css(offsetParent,"position")==="static"){
7325offsetParent=offsetParent.parentNode;
7326}
7327if(offsetParent&&offsetParent!==elem&&offsetParent.nodeType===1){
7328parentOffset=jQuery(offsetParent).offset();
7329parentOffset.top+=jQuery.css(offsetParent,"borderTopWidth",true);
7330parentOffset.left+=jQuery.css(offsetParent,"borderLeftWidth",true);
7331}
7332}
7333return{
7334top:offset.top-parentOffset.top-jQuery.css(elem,"marginTop",true),
7335left:offset.left-parentOffset.left-jQuery.css(elem,"marginLeft",true)
7336};
7337},
7338offsetParent:function(){
7339return this.map(function(){
7340var offsetParent=this.offsetParent;
7341while(offsetParent&&jQuery.css(offsetParent,"position")==="static"){
7342offsetParent=offsetParent.offsetParent;
7343}
7344return offsetParent||documentElement;
7345});
7346}
7347});
7348jQuery.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(method,prop){
7349var top="pageYOffset"===prop;
7350jQuery.fn[method]=function(val){
7351return access(this,function(elem,method,val){
7352var win;
7353if(isWindow(elem)){
7354win=elem;
7355}else if(elem.nodeType===9){
7356win=elem.defaultView;
7357}
7358if(val===undefined){
7359return win?win[prop]:elem[method];
7360}
7361if(win){
7362win.scrollTo(
7363!top?val:win.pageXOffset,
7364top?val:win.pageYOffset
7365);
7366}else{
7367elem[method]=val;
7368}
7369},method,val,arguments.length);
7370};
7371});
7372jQuery.each(["top","left"],function(_i,prop){
7373jQuery.cssHooks[prop]=addGetHookIf(support.pixelPosition,
7374function(elem,computed){
7375if(computed){
7376computed=curCSS(elem,prop);
7377return rnumnonpx.test(computed)?
7378jQuery(elem).position()[prop]+"px":
7379computed;
7380}
7381}
7382);
7383});
7384jQuery.each({Height:"height",Width:"width"},function(name,type){
7385jQuery.each({
7386padding:"inner"+name,
7387content:type,
7388"":"outer"+name
7389},function(defaultExtra,funcName){
7390jQuery.fn[funcName]=function(margin,value){
7391var chainable=arguments.length&&(defaultExtra||typeof margin!=="boolean"),
7392extra=defaultExtra||(margin===true||value===true?"margin":"border");
7393return access(this,function(elem,type,value){
7394var doc;
7395if(isWindow(elem)){
7396return funcName.indexOf("outer")===0?
7397elem["inner"+name]:
7398elem.document.documentElement["client"+name];
7399}
7400if(elem.nodeType===9){
7401doc=elem.documentElement;
7402return Math.max(
7403elem.body["scroll"+name],doc["scroll"+name],
7404elem.body["offset"+name],doc["offset"+name],
7405doc["client"+name]
7406);
7407}
7408return value===undefined?
7409jQuery.css(elem,type,extra):
7410jQuery.style(elem,type,value,extra);
7411},type,chainable?margin:undefined,chainable);
7412};
7413});
7414});
7415jQuery.each([
7416"ajaxStart",
7417"ajaxStop",
7418"ajaxComplete",
7419"ajaxError",
7420"ajaxSuccess",
7421"ajaxSend"
7422],function(_i,type){
7423jQuery.fn[type]=function(fn){
7424return this.on(type,fn);
7425};
7426});
7427jQuery.fn.extend({
7428bind:function(types,data,fn){
7429return this.on(types,null,data,fn);
7430},
7431unbind:function(types,fn){
7432return this.off(types,null,fn);
7433},
7434delegate:function(selector,types,data,fn){
7435return this.on(types,selector,data,fn);
7436},
7437undelegate:function(selector,types,fn){
7438return arguments.length===1?
7439this.off(selector,"**"):
7440this.off(types,selector||"**",fn);
7441},
7442hover:function(fnOver,fnOut){
7443return this
7444.on("mouseenter",fnOver)
7445.on("mouseleave",fnOut||fnOver);
7446}
7447});
7448jQuery.each(
7449("blur focus focusin focusout resize scroll click dblclick "+
7450"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave "+
7451"change select submit keydown keypress keyup contextmenu").split(" "),
7452function(_i,name){
7453jQuery.fn[name]=function(data,fn){
7454return arguments.length>0?
7455this.on(name,null,data,fn):
7456this.trigger(name);
7457};
7458}
7459);
7460var rtrim=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;
7461jQuery.proxy=function(fn,context){
7462var tmp,args,proxy;
7463if(typeof context==="string"){
7464tmp=fn[context];
7465context=fn;
7466fn=tmp;
7467}
7468if(!isFunction(fn)){
7469return undefined;
7470}
7471args=slice.call(arguments,2);
7472proxy=function(){
7473return fn.apply(context||this,args.concat(slice.call(arguments)));
7474};
7475proxy.guid=fn.guid=fn.guid||jQuery.guid++;
7476return proxy;
7477};
7478jQuery.holdReady=function(hold){
7479if(hold){
7480jQuery.readyWait++;
7481}else{
7482jQuery.ready(true);
7483}
7484};
7485jQuery.isArray=Array.isArray;
7486jQuery.parseJSON=JSON.parse;
7487jQuery.nodeName=nodeName;
7488jQuery.isFunction=isFunction;
7489jQuery.isWindow=isWindow;
7490jQuery.camelCase=camelCase;
7491jQuery.type=toType;
7492jQuery.now=Date.now;
7493jQuery.isNumeric=function(obj){
7494var type=jQuery.type(obj);
7495return(type==="number"||type==="string")&&
7496!isNaN(obj-parseFloat(obj));
7497};
7498jQuery.trim=function(text){
7499return text==null?
7500"":
7501(text+"").replace(rtrim,"$1");
7502};
7503if(typeof define==="function"&&define.amd){
7504define("jquery",[],function(){
7505return jQuery;
7506});
7507}
7508var
7509_jQuery=window.jQuery,
7510_$=window.$;
7511jQuery.noConflict=function(deep){
7512if(window.$===jQuery){
7513window.$=_$;
7514}
7515if(deep&&window.jQuery===jQuery){
7516window.jQuery=_jQuery;
7517}
7518return jQuery;
7519};
7520if(typeof noGlobal==="undefined"){
7521window.jQuery=window.$=jQuery;
7522}
7523return jQuery;
7524});
7525(function($){
7526var log=console.warn||console.log;
7527var logError=console.error||log;
7528function deprecated(message,alternative){
7529return log("Deprecated call to "+message+". Use "+alternative);
7530}
7531$.fn.size=function(){
7532deprecated(".size()",".length");
7533return this.length;
7534};
7535$.fn.load=function(callback){
7536deprecated(".load(callback)",".on('load', callback)");
7537return this.on("load",callback);
7538};
7539$.fn.error=function(callback){
7540deprecated(".error(callback)",".on('error', callback)");
7541return this.on("error",callback);
7542};
7543$.fn.andSelf=function(){
7544deprecated(".andSelf()",".addBack");
7545return this.addBack();
7546};
7547var queue=[];
7548var pending=false;
7549var executeQueue=function(){
7550var oldQueue=queue;
7551queue=[];
7552pending=false;
7553var errors=[];
7554while(oldQueue.length){
7555try{
7556(oldQueue.shift())($);
7557}catch(e){
7558errors.push(e);
7559}
7560}
7561while(errors.length>1){
7562logError(errors.shift());
7563}
7564if(errors.length){
7565throw errors.shift();
7566}
7567};
7568$.fn.ready=function(handler){
7569queue.push(handler);
7570if(!pending){
7571pending=true;
7572if(document.readyState==="complete"||(document.readyState!=="loading"&&!document.documentElement.doScroll)){
7573setTimeout(executeQueue);
7574}else{
7575var eventListener=function(){
7576document.removeEventListener("DOMContentLoaded",eventListener);
7577window.removeEventListener("load",eventListener);
7578executeQueue();
7579};
7580document.addEventListener("DOMContentLoaded",eventListener);
7581window.addEventListener("load",eventListener);
7582}
7583}
7584};
7585}(jQuery));
7586ionasQ(jQuery,document);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.