vendor: 24,103 bytes, lines 1-9
1/*! 2 * Masonry PACKAGED v4.2.2 3 * Cascading grid layout library 4 * https://masonry.desandro.com 5 * MIT License 6 * by David DeSandro 7 */ 8 9!function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,r,a){function h(t,e,n){var o,r="$()."+i+'("'+e+'")';return t.each(function(t,h){var u=a.data(h,i);if(!u)return void s(i+" not initialized. Cannot call methods, i.e. "+r);var d=u[e];if(!d||"_"==e.charAt(0))return void s(r+" is not a valid method");var l=d.apply(u,n);o=void 0===o?l:o}),void 0!==o?o:t}function u(t,e){t.each(function(t,n){var o=a.data(n,i);o?(o.option(e),o._init()):(o=new r(n,e),a.data(n,i,o))})}a=a||e||t.jQuery,a&&(r.prototype.option||(r.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=o.call(arguments,1);return h(this,t,e)}return u(this,t),this},n(a))}function n(t){!t||t&&t.bridget||(t.bridget=i)}var o=Array.prototype.slice,r=t.console,s="undefined"==typeof r?function(){}:function(t){r.error(t)};return n(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var n=this._onceEvents&&this._onceEvents[t],o=0;o<i.length;o++){var r=i[o],s=n&&n[r];s&&(this.off(t,r),delete n[r]),r.apply(this,e)}return this}},e.allOff=function(){delete this._events,delete this._onceEvents},t}),function(t,e){"function"==typeof define&&define.amd?define("get-size/get-size",e):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function t(t){var e=parseFloat(t),i=-1==t.indexOf("%")&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;u>e;e++){var i=h[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}function o(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);s=200==Math.round(t(o.width)),r.isBoxSizeOuter=s,i.removeChild(e)}}function r(e){if(o(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var r=n(e);if("none"==r.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==r.boxSizing,l=0;u>l;l++){var c=h[l],f=r[c],m=parseFloat(f);a[c]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,g=a.paddingTop+a.paddingBottom,y=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,E=d&&s,b=t(r.width);b!==!1&&(a.width=b+(E?0:p+_));var x=t(r.height);return x!==!1&&(a.height=x+(E?0:g+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(g+z),a.outerWidth=a.width+y,a.outerHeight=a.height+v,a}}var s,a="undefined"==typeof console?e:function(t){console.error(t)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],u=h.length,d=!1;return r}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var n=e[i],o=n+"MatchesSelector";if(t[o])return o}}();return function(e,i){return e[t](i)}}),function(t,e){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["desandro-matches-selector/matches-selector"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("desandro-matches-selector")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e};var n=Array.prototype.slice;i.makeArray=function(t){if(Array.isArray(t))return t;if(null===t||void 0===t)return[];var e="object"==typeof t&&"number"==typeof t.length;return e?n.call(t):[t]},i.removeFrom=function(t,e){var i=t.indexOf(e);-1!=i&&t.splice(i,1)},i.getParent=function(t,i){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,n){t=i.makeArray(t);var o=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!n)return void o.push(t);e(t,n)&&o.push(t);for(var i=t.querySelectorAll(n),r=0;r<i.length;r++)o.push(i[r])}}),o},i.debounceMethod=function(t,e,i){i=i||100;var n=t.prototype[e],o=e+"Timeout";t.prototype[e]=function(){var t=this[o];clearTimeout(t);var e=arguments,r=this;this[o]=setTimeout(function(){n.apply(r,e),delete r[o]},i)}},i.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?setTimeout(t):document.addEventListener("DOMContentLoaded",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var o=t.console;return i.htmlInit=function(e,n){i.docReady(function(){var r=i.toDashed(n),s="data-"+r,a=document.querySelectorAll("["+s+"]"),h=document.querySelectorAll(".js-"+r),u=i.makeArray(a).concat(i.makeArray(h)),d=s+"-options",l=t.jQuery;u.forEach(function(t){var i,r=t.getAttribute(s)||t.getAttribute(d);try{i=r&&JSON.parse(r)}catch(a){return void(o&&o.error("Error parsing "+s+" on "+t.className+": "+a))}var h=new e(t,i);l&&l.data(t,n,h)})})},i}),function(t,e){"function"==typeof define&&define.amd?define("outlayer/item",["ev-emitter/ev-emitter","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("ev-emitter"),require("get-size")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){"use strict";function i(t){for(var e in t)return!1;return e=null,!0}function n(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function o(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}var r=document.documentElement.style,s="string"==typeof r.transition?"transition":"WebkitTransition",a="string"==typeof r.transform?"transform":"WebkitTransform",h={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[s],u={transform:a,transition:s,transitionDuration:s+"Duration",transitionProperty:s+"Property",transitionDelay:s+"Delay"},d=n.prototype=Object.create(t.prototype);d.constructor=n,d._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},d.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},d.getSize=function(){this.size=e(this.element)},d.css=function(t){var e=this.element.style;for(var i in t){var n=u[i]||i;e[n]=t[i]}},d.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),n=t[e?"left":"right"],o=t[i?"top":"bottom"],r=parseFloat(n),s=parseFloat(o),a=this.layout.size;-1!=n.indexOf("%")&&(r=r/100*a.width),-1!=o.indexOf("%")&&(s=s/100*a.height),r=isNaN(r)?0:r,s=isNaN(s)?0:s,r-=e?a.paddingLeft:a.paddingRight,s-=i?a.paddingTop:a.paddingBottom,this.position.x=r,this.position.y=s},d.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop"),o=i?"paddingLeft":"paddingRight",r=i?"left":"right",s=i?"right":"left",a=this.position.x+t[o];e[r]=this.getXValue(a),e[s]="";var h=n?"paddingTop":"paddingBottom",u=n?"top":"bottom",d=n?"bottom":"top",l=this.position.y+t[h];e[u]=this.getYValue(l),e[d]="",this.css(e),this.emitEvent("layout",[this])},d.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},d.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},d._transitionTo=function(t,e){this.getPosition();var i=this.position.x,n=this.position.y,o=t==this.position.x&&e==this.position.y;if(this.setPosition(t,e),o&&!this.isTransitioning)return void this.layoutPosition();var r=t-i,s=e-n,a={};a.transform=this.getTranslate(r,s),this.transition({to:a,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},d.getTranslate=function(t,e){var i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop");return t=i?t:-t,e=n?e:-e,"translate3d("+t+"px, "+e+"px, 0)"},d.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},d.moveTo=d._transitionTo,d.setPosition=function(t,e){this.position.x=parseFloat(t),this.position.y=parseFloat(e)},d._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},d.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var n=this.element.offsetHeight;n=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var l="opacity,"+o(a);d.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:l,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(h,this,!1)}},d.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},d.onotransitionend=function(t){this.ontransitionend(t)};var c={"-webkit-transform":"transform"};d.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,n=c[t.propertyName]||t.propertyName;if(delete e.ingProperties[n],i(e.ingProperties)&&this.disableTransition(),n in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[n]),n in e.onEnd){var o=e.onEnd[n];o.call(this),delete e.onEnd[n]}this.emitEvent("transitionEnd",[this])}},d.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(h,this,!1),this.isTransitioning=!1},d._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var f={transitionProperty:"",transitionDuration:"",transitionDelay:""};return d.removeTransitionStyles=function(){this.css(f)},d.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},d.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},d.remove=function(){return s&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),void this.hide()):void this.removeElem()},d.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("visibleStyle");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},d.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},d.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var i in e)return i},d.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("hiddenStyle");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},d.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},d.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},n}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(i,n,o,r){return e(t,i,n,o,r)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):t.Outlayer=e(t,t.EvEmitter,t.getSize,t.fizzyUIUtils,t.Outlayer.Item)}(window,function(t,e,i,n,o){"use strict";function r(t,e){var i=n.getQueryElement(t);if(!i)return void(h&&h.error("Bad element for "+this.constructor.namespace+": "+(i||t)));this.element=i,u&&(this.$element=u(this.element)),this.options=n.extend({},this.constructor.defaults),this.option(e);var o=++l;this.element.outlayerGUID=o,c[o]=this,this._create();var r=this._getOption("initLayout");r&&this.layout()}function s(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),i=e&&e[1],n=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var o=m[n]||1;return i*o}var h=t.console,u=t.jQuery,d=function(){},l=0,c={};r.namespace="outlayer",r.Item=o,r.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var f=r.prototype;n.extend(f,e.prototype),f.option=function(t){n.extend(this.options,t)},f._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},r.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},f._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),n.extend(this.element.style,this.options.containerStyle);var t=this._getOption("resize");t&&this.bindResize()},f.reloadItems=function(){this.items=this._itemize(this.element.children)},f._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,n=[],o=0;o<e.length;o++){var r=e[o],s=new i(r,this);n.push(s)}return n},f._filterFindItemElements=function(t){return n.filterFindElements(t,this.options.itemSelector)},f.getItemElements=function(){return this.items.map(function(t){return t.element})},f.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},f._init=f.layout,f._resetLayout=function(){this.getSize()},f.getSize=function(){this.size=i(this.element)},f._getMeasurement=function(t,e){var n,o=this.options[t];o?("string"==typeof o?n=this.element.querySelector(o):o instanceof HTMLElement&&(n=o),this[t]=n?i(n)[e]:o):this[t]=0},f.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},f._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},f._layoutItems=function(t,e){if(this._emitCompleteOnItems("layout",t),t&&t.length){var i=[];t.forEach(function(t){var n=this._getItemLayoutPosition(t);n.item=t,n.isInstant=e||t.isLayoutInstant,i.push(n)},this),this._processLayoutQueue(i)}},f._getItemLayoutPosition=function(){return{x:0,y:0}},f._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},f.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},f._positionItem=function(t,e,i,n,o){n?t.goTo(e,i):(t.stagger(o*this.stagger),t.moveTo(e,i))},f._postLayout=function(){this.resizeContainer()},f.resizeContainer=function(){var t=this._getOption("resizeContainer");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},f._getContainerSize=d,f._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},f._emitCompleteOnItems=function(t,e){function i(){o.dispatchEvent(t+"Complete",null,[e])}function n(){s++,s==r&&i()}var o=this,r=e.length;if(!e||!r)return void i();var s=0;e.forEach(function(e){e.once(t,n)})},f.dispatchEvent=function(t,e,i){var n=e?[e].concat(i):i;if(this.emitEvent(t,n),u)if(this.$element=this.$element||u(this.element),e){var o=u.Event(e);o.type=t,this.$element.trigger(o,i)}else this.$element.trigger(t,i)},f.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},f.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},f.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},f.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){n.removeFrom(this.stamps,t),this.unignore(t)},this)},f._find=function(t){return t?("string"==typeof t&&(t=this.element.querySelectorAll(t)),t=n.makeArray(t)):void 0},f._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},f._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},f._manageStamp=d,f._getElementOffset=function(t){var e=t.getBoundingClientRect(),n=this._boundingRect,o=i(t),r={left:e.left-n.left-o.marginLeft,top:e.top-n.top-o.marginTop,right:n.right-e.right-o.marginRight,bottom:n.bottom-e.bottom-o.marginBottom};return r},f.handleEvent=n.handleEvent,f.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},f.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},f.onresize=function(){this.resize()},n.debounceMethod(r,"onresize",100),f.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},f.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},f.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},f.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},f.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},f.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},f.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},f.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},f.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},f.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},f.getItems=function(t){t=n.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},f.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach(function(t){t.remove(),n.removeFrom(this.items,t)},this)},f.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete c[e],delete this.element.outlayerGUID,u&&u.removeData(this.element,this.constructor.namespace)},r.data=function(t){t=n.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&c[e]},r.create=function(t,e){var i=s(r);return i.defaults=n.extend({},r.defaults),n.extend(i.defaults,e),i.compatOptions=n.extend({},r.compatOptions),i.namespace=t,i.data=r.data,i.Item=s(o),n.htmlInit(i,t),u&&u.bridget&&u.bridget(t,i),i};var m={ms:1,s:1e3};return r.Item=o,r}),function(t,e){"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer"),require("get-size")):t.Masonry=e(t.Outlayer,t.getSize)}(window,function(t,e){var i=t.create("masonry");i.compatOptions.fitWidth="isFitWidth";var n=i.prototype;return n._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},n.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],i=t&&t.element;this.columnWidth=i&&e(i).outerWidth||this.containerWidth}var n=this.columnWidth+=this.gutter,o=this.containerWidth+this.gutter,r=o/n,s=n-o%n,a=s&&1>s?"round":"floor";r=Math[a](r),this.cols=Math.max(r,1)},n.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,n=e(i);this.containerWidth=n&&n.innerWidth},n._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&1>e?"round":"ceil",n=Math[i](t.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var o=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",r=this[o](n,t),s={x:this.columnWidth*r.col,y:r.y},a=r.y+t.size.outerHeight,h=n+r.col,u=r.col;h>u;u++)this.colYs[u]=a;return s},n._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},n._getTopColGroup=function(t){if(2>t)return this.colYs;for(var e=[],i=this.cols+1-t,n=0;i>n;n++)e[n]=this._getColGroupY(n,t);return e},n._getColGroupY=function(t,e){if(2>e)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},n._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,n=t>1&&i+t>this.cols;i=n?0:i;var o=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=o?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},n._manageStamp=function(t){var i=e(t),n=this._getElementOffset(t),o=this._getOption("originLeft"),r=o?n.left:n.right,s=r+i.outerWidth,a=Math.floor(r/this.columnWidth);a=Math.max(0,a);var h=Math.floor(s/this.columnWidth);h-=s%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var u=this._getOption("originTop"),d=(u?n.top:n.bottom)+i.outerHeight,l=a;h>=l;l++)this.colYs[l]=Math.max(d,this.colYs[l])},n._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},n._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},n.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i});
9 10/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ 11!(function (e, t) { 12 "use strict"; 13 "object" == typeof module && "object" == typeof module.exports 14 ? (module.exports = e.document 15 ? t(e, !0) 16 : function (e) { 17 if (!e.document) 18 throw new Error("jQuery requires a window with a document"); 19 return t(e); 20 }) 21 : t(e); 22})("undefined" != typeof window ? window : this, function (ie, e) { 23 "use strict"; 24 var oe = [], 25 r = Object.getPrototypeOf, 26 ae = oe.slice, 27 g = oe.flat 28 ? function (e) { 29 return oe.flat.call(e); 30 } 31 : function (e) { 32 return oe.concat.apply([], e); 33 }, 34 s = oe.push, 35 se = oe.indexOf, 36 n = {}, 37 i = n.toString, 38 ue = n.hasOwnProperty, 39 o = ue.toString, 40 a = o.call(Object), 41 le = {}, 42 v = function (e) { 43 return ( 44 "function" == typeof e && 45 "number" != typeof e.nodeType && 46 "function" != typeof e.item 47 ); 48 }, 49 y = function (e) { 50 return null != e && e === e.window; 51 }, 52 C = ie.document, 53 u = { type: !0, src: !0, nonce: !0, noModule: !0 }; 54 function m(e, t, n) { 55 var r, 56 i, 57 o = (n = n || C).createElement("script"); 58 if (((o.text = e), t)) 59 for (r in u) 60 (i = t[r] || (t.getAttribute && t.getAttribute(r))) && 61 o.setAttribute(r, i); 62 n.head.appendChild(o).parentNode.removeChild(o); 63 } 64 function x(e) { 65 return null == e 66 ? e + "" 67 : "object" == typeof e || "function" == typeof e 68 ? n[i.call(e)] || "object" 69 : typeof e; 70 } 71 var t = "3.7.1", 72 l = /HTML$/i, 73 ce = function (e, t) { 74 return new ce.fn.init(e, t); 75 }; 76 function c(e) { 77 var t = !!e && "length" in e && e.length, 78 n = x(e); 79 return ( 80 !v(e) && 81 !y(e) && 82 ("array" === n || 83 0 === t || 84 ("number" == typeof t && 0 < t && t - 1 in e)) 85 ); 86 } 87 function fe(e, t) { 88 return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase(); 89 } 90 (ce.fn = ce.prototype = 91 { 92 jquery: t, 93 constructor: ce, 94 length: 0, 95 toArray: function () { 96 return ae.call(this); 97 }, 98 get: function (e) { 99 return null == e 100 ? ae.call(this) 101 : e < 0 102 ? this[e + this.length] 103 : this[e]; 104 }, 105 pushStack: function (e) { 106 var t = ce.merge(this.constructor(), e); 107 return (t.prevObject = this), t; 108 }, 109 each: function (e) { 110 return ce.each(this, e); 111 }, 112 map: function (n) { 113 return this.pushStack( 114 ce.map(this, function (e, t) { 115 return n.call(e, t, e); 116 }) 117 ); 118 }, 119 slice: function () { 120 return this.pushStack(ae.apply(this, arguments)); 121 }, 122 first: function () { 123 return this.eq(0); 124 }, 125 last: function () { 126 return this.eq(-1); 127 }, 128 even: function () { 129 return this.pushStack( 130 ce.grep(this, function (e, t) { 131 return (t + 1) % 2; 132 }) 133 ); 134 }, 135 odd: function () { 136 return this.pushStack( 137 ce.grep(this, function (e, t) { 138 return t % 2; 139 }) 140 ); 141 }, 142 eq: function (e) { 143 var t = this.length, 144 n = +e + (e < 0 ? t : 0); 145 return this.pushStack(0 <= n && n < t ? [this[n]] : []); 146 }, 147 end: function () { 148 return this.prevObject || this.constructor(); 149 }, 150 push: s, 151 sort: oe.sort, 152 splice: oe.splice, 153 }), 154 (ce.extend = ce.fn.extend = 155 function () { 156 var e, 157 t, 158 n, 159 r, 160 i, 161 o, 162 a = arguments[0] || {}, 163 s = 1, 164 u = arguments.length, 165 l = !1; 166 for ( 167 "boolean" == typeof a && ((l = a), (a = arguments[s] || {}), s++), 168 "object" == typeof a || v(a) || (a = {}), 169 s === u && ((a = this), s--); 170 s < u; 171 s++ 172 ) 173 if (null != (e = arguments[s])) 174 for (t in e) 175 (r = e[t]), 176 "__proto__" !== t && 177 a !== r && 178 (l && r && (ce.isPlainObject(r) || (i = Array.isArray(r))) 179 ? ((n = a[t]), 180 (o = 181 i && !Array.isArray(n) 182 ? [] 183 : i || ce.isPlainObject(n) 184 ? n 185 : {}), 186 (i = !1), 187 (a[t] = ce.extend(l, o, r))) 188 : void 0 !== r && (a[t] = r)); 189 return a; 190 }), 191 ce.extend({ 192 expando: "jQuery" + (t + Math.random()).replace(/\D/g, ""), 193 isReady: !0, 194 error: function (e) { 195 throw new Error(e); 196 }, 197 noop: function () {}, 198 isPlainObject: function (e) { 199 var t, n; 200 return ( 201 !(!e || "[object Object]" !== i.call(e)) && 202 (!(t = r(e)) || 203 ("function" == 204 typeof (n = ue.call(t, "constructor") && t.constructor) && 205 o.call(n) === a)) 206 ); 207 }, 208 isEmptyObject: function (e) { 209 var t; 210 for (t in e) return !1; 211 return !0; 212 }, 213 globalEval: function (e, t, n) { 214 m(e, { nonce: t && t.nonce }, n); 215 }, 216 each: function (e, t) { 217 var n, 218 r = 0; 219 if (c(e)) { 220 for (n = e.length; r < n; r++) 221 if (!1 === t.call(e[r], r, e[r])) break; 222 } else for (r in e) if (!1 === t.call(e[r], r, e[r])) break; 223 return e; 224 }, 225 text: function (e) { 226 var t, 227 n = "", 228 r = 0, 229 i = e.nodeType; 230 if (!i) while ((t = e[r++])) n += ce.text(t); 231 return 1 === i || 11 === i 232 ? e.textContent 233 : 9 === i 234 ? e.documentElement.textContent 235 : 3 === i || 4 === i 236 ? e.nodeValue 237 : n; 238 }, 239 makeArray: function (e, t) { 240 var n = t || []; 241 return ( 242 null != e && 243 (c(Object(e)) 244 ? ce.merge(n, "string" == typeof e ? [e] : e) 245 : s.call(n, e)), 246 n 247 ); 248 }, 249 inArray: function (e, t, n) { 250 return null == t ? -1 : se.call(t, e, n); 251 }, 252 isXMLDoc: function (e) { 253 var t = e && e.namespaceURI, 254 n = e && (e.ownerDocument || e).documentElement; 255 return !l.test(t || (n && n.nodeName) || "HTML"); 256 }, 257 merge: function (e, t) { 258 for (var n = +t.length, r = 0, i = e.length; r < n; r++) e[i++] = t[r]; 259 return (e.length = i), e; 260 }, 261 grep: function (e, t, n) { 262 for (var r = [], i = 0, o = e.length, a = !n; i < o; i++) 263 !t(e[i], i) !== a && r.push(e[i]); 264 return r; 265 }, 266 map: function (e, t, n) { 267 var r, 268 i, 269 o = 0, 270 a = []; 271 if (c(e)) 272 for (r = e.length; o < r; o++) 273 null != (i = t(e[o], o, n)) && a.push(i); 274 else for (o in e) null != (i = t(e[o], o, n)) && a.push(i); 275 return g(a); 276 }, 277 guid: 1, 278 support: le, 279 }), 280 "function" == typeof Symbol && 281 (ce.fn[Symbol.iterator] = oe[Symbol.iterator]), 282 ce.each( 283 "Boolean Number String Function Array Date RegExp Object Error Symbol".split( 284 " " 285 ), 286 function (e, t) { 287 n["[object " + t + "]"] = t.toLowerCase(); 288 } 289 ); 290 var pe = oe.pop, 291 de = oe.sort, 292 he = oe.splice, 293 ge = "[\\x20\\t\\r\\n\\f]", 294 ve = new RegExp("^" + ge + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ge + "+$", "g"); 295 ce.contains = function (e, t) { 296 var n = t && t.parentNode; 297 return ( 298 e === n || 299 !( 300 !n || 301 1 !== n.nodeType || 302 !(e.contains 303 ? e.contains(n) 304 : e.compareDocumentPosition && 16 & e.compareDocumentPosition(n)) 305 ) 306 ); 307 }; 308 var f = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g; 309 function p(e, t) { 310 return t 311 ? "\0" === e 312 ? "\ufffd" 313 : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " 314 : "\\" + e; 315 } 316 ce.escapeSelector = function (e) { 317 return (e + "").replace(f, p); 318 }; 319 var ye = C, 320 me = s; 321 !(function () { 322 var e, 323 b, 324 w, 325 o, 326 a, 327 T, 328 r, 329 C, 330 d, 331 i, 332 k = me, 333 S = ce.expando, 334 E = 0, 335 n = 0, 336 s = W(), 337 c = W(), 338 u = W(), 339 h = W(), 340 l = function (e, t) { 341 return e === t && (a = !0), 0; 342 }, 343 f = 344 "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", 345 t = 346 "(?:\\\\[\\da-fA-F]{1,6}" + 347 ge + 348 "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", 349 p = 350 "\\[" + 351 ge + 352 "*(" + 353 t + 354 ")(?:" + 355 ge + 356 "*([*^$|!~]?=)" + 357 ge + 358 "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + 359 t + 360 "))|)" + 361 ge + 362 "*\\]", 363 g = 364 ":(" + 365 t + 366 ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + 367 p + 368 ")*)|.*)\\)|)", 369 v = new RegExp(ge + "+", "g"), 370 y = new RegExp("^" + ge + "*," + ge + "*"), 371 m = new RegExp("^" + ge + "*([>+~]|" + ge + ")" + ge + "*"), 372 x = new RegExp(ge + "|>"), 373 j = new RegExp(g), 374 A = new RegExp("^" + t + "$"), 375 D = { 376 ID: new RegExp("^#(" + t + ")"), 377 CLASS: new RegExp("^\\.(" + t + ")"), 378 TAG: new RegExp("^(" + t + "|[*])"), 379 ATTR: new RegExp("^" + p), 380 PSEUDO: new RegExp("^" + g), 381 CHILD: new RegExp( 382 "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + 383 ge + 384 "*(even|odd|(([+-]|)(\\d*)n|)" + 385 ge + 386 "*(?:([+-]|)" + 387 ge + 388 "*(\\d+)|))" + 389 ge + 390 "*\\)|)", 391 "i" 392 ), 393 bool: new RegExp("^(?:" + f + ")$", "i"), 394 needsContext: new RegExp( 395 "^" + 396 ge + 397 "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + 398 ge + 399 "*((?:-\\d)?\\d*)" + 400 ge + 401 "*\\)|)(?=[^-]|$)", 402 "i" 403 ), 404 }, 405 N = /^(?:input|select|textarea|button)$/i, 406 q = /^h\d$/i, 407 L = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, 408 H = /[+~]/, 409 O = new RegExp("\\\\[\\da-fA-F]{1,6}" + ge + "?|\\\\([^\\r\\n\\f])", "g"), 410 P = function (e, t) { 411 var n = "0x" + e.slice(1) - 65536; 412 return ( 413 t || 414 (n < 0 415 ? String.fromCharCode(n + 65536) 416 : String.fromCharCode((n >> 10) | 55296, (1023 & n) | 56320)) 417 ); 418 }, 419 M = function () { 420 V(); 421 }, 422 R = J( 423 function (e) { 424 return !0 === e.disabled && fe(e, "fieldset"); 425 }, 426 { dir: "parentNode", next: "legend" } 427 ); 428 try { 429 k.apply((oe = ae.call(ye.childNodes)), ye.childNodes), 430 oe[ye.childNodes.length].nodeType; 431 } catch (e) { 432 k = { 433 apply: function (e, t) { 434 me.apply(e, ae.call(t)); 435 }, 436 call: function (e) { 437 me.apply(e, ae.call(arguments, 1)); 438 }, 439 }; 440 } 441 function I(t, e, n, r) { 442 var i, 443 o, 444 a, 445 s, 446 u, 447 l, 448 c, 449 f = e && e.ownerDocument, 450 p = e ? e.nodeType : 9; 451 if ( 452 ((n = n || []), 453 "string" != typeof t || !t || (1 !== p && 9 !== p && 11 !== p)) 454 ) 455 return n; 456 if (!r && (V(e), (e = e || T), C)) { 457 if (11 !== p && (u = L.exec(t)))
458 if ((i = u[1])) { 459 if (9 === p) { 460 if (!(a = e.getElementById(i))) return n; 461 if (a.id === i) return k.call(n, a), n; 462 } else if ( 463 f && 464 (a = f.getElementById(i)) && 465 I.contains(e, a) && 466 a.id === i 467 ) 468 return k.call(n, a), n; 469 } else { 470 if (u[2]) return k.apply(n, e.getElementsByTagName(t)), n; 471 if ((i = u[3]) && e.getElementsByClassName) 472 return k.apply(n, e.getElementsByClassName(i)), n; 473 } 474 if (!(h[t + " "] || (d && d.test(t)))) { 475 if (((c = t), (f = e), 1 === p && (x.test(t) || m.test(t)))) { 476 ((f = (H.test(t) && U(e.parentNode)) || e) == e && le.scope) || 477 ((s = e.getAttribute("id")) 478 ? (s = ce.escapeSelector(s)) 479 : e.setAttribute("id", (s = S))), 480 (o = (l = Y(t)).length); 481 while (o--) l[o] = (s ? "#" + s : ":scope") + " " + Q(l[o]); 482 c = l.join(","); 483 } 484 try { 485 return k.apply(n, f.querySelectorAll(c)), n; 486 } catch (e) { 487 h(t, !0); 488 } finally { 489 s === S && e.removeAttribute("id"); 490 } 491 } 492 } 493 return re(t.replace(ve, "$1"), e, n, r); 494 } 495 function W() { 496 var r = []; 497 return function e(t, n) { 498 return ( 499 r.push(t + " ") > b.cacheLength && delete e[r.shift()], 500 (e[t + " "] = n) 501 ); 502 }; 503 } 504 function F(e) { 505 return (e[S] = !0), e; 506 } 507 function $(e) { 508 var t = T.createElement("fieldset"); 509 try { 510 return !!e(t); 511 } catch (e) { 512 return !1; 513 } finally { 514 t.parentNode && t.parentNode.removeChild(t), (t = null); 515 } 516 } 517 function B(t) { 518 return function (e) { 519 return fe(e, "input") && e.type === t; 520 }; 521 } 522 function _(t) { 523 return function (e) { 524 return (fe(e, "input") || fe(e, "button")) && e.type === t; 525 }; 526 } 527 function z(t) { 528 return function (e) { 529 return "form" in e 530 ? e.parentNode && !1 === e.disabled 531 ? "label" in e 532 ? "label" in e.parentNode 533 ? e.parentNode.disabled === t 534 : e.disabled === t 535 : e.isDisabled === t || (e.isDisabled !== !t && R(e) === t) 536 : e.disabled === t 537 : "label" in e && e.disabled === t; 538 }; 539 } 540 function X(a) { 541 return F(function (o) { 542 return ( 543 (o = +o), 544 F(function (e, t) { 545 var n, 546 r = a([], e.length, o), 547 i = r.length; 548 while (i--) e[(n = r[i])] && (e[n] = !(t[n] = e[n])); 549 }) 550 ); 551 }); 552 } 553 function U(e) { 554 return e && "undefined" != typeof e.getElementsByTagName && e; 555 } 556 function V(e) { 557 var t, 558 n = e ? e.ownerDocument || e : ye; 559 return ( 560 n != T && 561 9 === n.nodeType && 562 n.documentElement && 563 ((r = (T = n).documentElement), 564 (C = !ce.isXMLDoc(T)), 565 (i = r.matches || r.webkitMatchesSelector || r.msMatchesSelector), 566 r.msMatchesSelector && 567 ye != T && 568 (t = T.defaultView) && 569 t.top !== t && 570 t.addEventListener("unload", M), 571 (le.getById = $(function (e) { 572 return ( 573 (r.appendChild(e).id = ce.expando), 574 !T.getElementsByName || !T.getElementsByName(ce.expando).length 575 ); 576 })), 577 (le.disconnectedMatch = $(function (e) { 578 return i.call(e, "*"); 579 })), 580 (le.scope = $(function () { 581 return T.querySelectorAll(":scope"); 582 })), 583 (le.cssHas = $(function () { 584 try { 585 return T.querySelector(":has(*,:jqfake)"), !1; 586 } catch (e) { 587 return !0; 588 } 589 })), 590 le.getById 591 ? ((b.filter.ID = function (e) { 592 var t = e.replace(O, P); 593 return function (e) { 594 return e.getAttribute("id") === t; 595 }; 596 }), 597 (b.find.ID = function (e, t) { 598 if ("undefined" != typeof t.getElementById && C) { 599 var n = t.getElementById(e); 600 return n ? [n] : []; 601 } 602 })) 603 : ((b.filter.ID = function (e) { 604 var n = e.replace(O, P); 605 return function (e) { 606 var t = 607 "undefined" != typeof e.getAttributeNode && 608 e.getAttributeNode("id"); 609 return t && t.value === n; 610 }; 611 }), 612 (b.find.ID = function (e, t) { 613 if ("undefined" != typeof t.getElementById && C) { 614 var n, 615 r, 616 i, 617 o = t.getElementById(e); 618 if (o) { 619 if ((n = o.getAttributeNode("id")) && n.value === e) 620 return [o]; 621 (i = t.getElementsByName(e)), (r = 0); 622 while ((o = i[r++])) 623 if ((n = o.getAttributeNode("id")) && n.value === e) 624 return [o]; 625 } 626 return []; 627 } 628 })), 629 (b.find.TAG = function (e, t) { 630 return "undefined" != typeof t.getElementsByTagName 631 ? t.getElementsByTagName(e) 632 : t.querySelectorAll(e); 633 }), 634 (b.find.CLASS = function (e, t) { 635 if ("undefined" != typeof t.getElementsByClassName && C) 636 return t.getElementsByClassName(e); 637 }), 638 (d = []), 639 $(function (e) { 640 var t; 641 (r.appendChild(e).innerHTML = 642 "<a id='" + 643 S + 644 "' href='' disabled='disabled'></a><select id='" + 645 S + 646 "-\r\\' disabled='disabled'><option selected=''></option></select>"), 647 e.querySelectorAll("[selected]").length || 648 d.push("\\[" + ge + "*(?:value|" + f + ")"), 649 e.querySelectorAll("[id~=" + S + "-]").length || d.push("~="), 650 e.querySelectorAll("a#" + S + "+*").length || d.push(".#.+[+~]"), 651 e.querySelectorAll(":checked").length || d.push(":checked"), 652 (t = T.createElement("input")).setAttribute("type", "hidden"), 653 e.appendChild(t).setAttribute("name", "D"), 654 (r.appendChild(e).disabled = !0), 655 2 !== e.querySelectorAll(":disabled").length && 656 d.push(":enabled", ":disabled"), 657 (t = T.createElement("input")).setAttribute("name", ""), 658 e.appendChild(t), 659 e.querySelectorAll("[name='']").length ||
660 d.push("\\[" + ge + "*name" + ge + "*=" + ge + "*(?:''|\"\")"); 661 }), 662 le.cssHas || d.push(":has"), 663 (d = d.length && new RegExp(d.join("|"))), 664 (l = function (e, t) { 665 if (e === t) return (a = !0), 0; 666 var n = !e.compareDocumentPosition - !t.compareDocumentPosition; 667 return ( 668 n || 669 (1 & 670 (n = 671 (e.ownerDocument || e) == (t.ownerDocument || t) 672 ? e.compareDocumentPosition(t) 673 : 1) || 674 (!le.sortDetached && t.compareDocumentPosition(e) === n) 675 ? e === T || (e.ownerDocument == ye && I.contains(ye, e)) 676 ? -1 677 : t === T || (t.ownerDocument == ye && I.contains(ye, t)) 678 ? 1 679 : o 680 ? se.call(o, e) - se.call(o, t) 681 : 0 682 : 4 & n 683 ? -1 684 : 1) 685 ); 686 })), 687 T 688 ); 689 } 690 for (e in ((I.matches = function (e, t) { 691 return I(e, null, null, t); 692 }), 693 (I.matchesSelector = function (e, t) { 694 if ((V(e), C && !h[t + " "] && (!d || !d.test(t)))) 695 try { 696 var n = i.call(e, t); 697 if ( 698 n || 699 le.disconnectedMatch || 700 (e.document && 11 !== e.document.nodeType) 701 ) 702 return n; 703 } catch (e) { 704 h(t, !0); 705 } 706 return 0 < I(t, T, null, [e]).length; 707 }), 708 (I.contains = function (e, t) { 709 return (e.ownerDocument || e) != T && V(e), ce.contains(e, t); 710 }), 711 (I.attr = function (e, t) { 712 (e.ownerDocument || e) != T && V(e); 713 var n = b.attrHandle[t.toLowerCase()], 714 r = n && ue.call(b.attrHandle, t.toLowerCase()) ? n(e, t, !C) : void 0; 715 return void 0 !== r ? r : e.getAttribute(t); 716 }), 717 (I.error = function (e) { 718 throw new Error("Syntax error, unrecognized expression: " + e); 719 }), 720 (ce.uniqueSort = function (e) { 721 var t, 722 n = [], 723 r = 0, 724 i = 0; 725 if ( 726 ((a = !le.sortStable), 727 (o = !le.sortStable && ae.call(e, 0)), 728 de.call(e, l), 729 a) 730 ) { 731 while ((t = e[i++])) t === e[i] && (r = n.push(i)); 732 while (r--) he.call(e, n[r], 1); 733 } 734 return (o = null), e; 735 }), 736 (ce.fn.uniqueSort = function () { 737 return this.pushStack(ce.uniqueSort(ae.apply(this))); 738 }), 739 ((b = ce.expr = 740 { 741 cacheLength: 50, 742 createPseudo: F, 743 match: D, 744 attrHandle: {}, 745 find: {}, 746 relative: { 747 ">": { dir: "parentNode", first: !0 },
748 " ": { dir: "parentNode" }, 749 "+": { dir: "previousSibling", first: !0 }, 750 "~": { dir: "previousSibling" }, 751 }, 752 preFilter: { 753 ATTR: function (e) { 754 return ( 755 (e[1] = e[1].replace(O, P)), 756 (e[3] = (e[3] || e[4] || e[5] || "").replace(O, P)), 757 "~=" === e[2] && (e[3] = " " + e[3] + " "), 758 e.slice(0, 4) 759 ); 760 }, 761 CHILD: function (e) { 762 return ( 763 (e[1] = e[1].toLowerCase()), 764 "nth" === e[1].slice(0, 3) 765 ? (e[3] || I.error(e[0]), 766 (e[4] = +(e[4] 767 ? e[5] + (e[6] || 1) 768 : 2 * ("even" === e[3] || "odd" === e[3]))), 769 (e[5] = +(e[7] + e[8] || "odd" === e[3]))) 770 : e[3] && I.error(e[0]), 771 e 772 ); 773 }, 774 PSEUDO: function (e) { 775 var t, 776 n = !e[6] && e[2]; 777 return D.CHILD.test(e[0]) 778 ? null 779 : (e[3] 780 ? (e[2] = e[4] || e[5] || "") 781 : n && 782 j.test(n) && 783 (t = Y(n, !0)) && 784 (t = n.indexOf(")", n.length - t) - n.length) && 785 ((e[0] = e[0].slice(0, t)), (e[2] = n.slice(0, t))), 786 e.slice(0, 3)); 787 }, 788 }, 789 filter: { 790 TAG: function (e) { 791 var t = e.replace(O, P).toLowerCase(); 792 return "*" === e 793 ? function () { 794 return !0; 795 } 796 : function (e) { 797 return fe(e, t); 798 }; 799 }, 800 CLASS: function (e) { 801 var t = s[e + " "]; 802 return ( 803 t || 804 ((t = new RegExp("(^|" + ge + ")" + e + "(" + ge + "|$)")) && 805 s(e, function (e) { 806 return t.test( 807 ("string" == typeof e.className && e.className) || 808 ("undefined" != typeof e.getAttribute && 809 e.getAttribute("class")) || 810 "" 811 ); 812 })) 813 ); 814 }, 815 ATTR: function (n, r, i) { 816 return function (e) { 817 var t = I.attr(e, n); 818 return null == t 819 ? "!=" === r 820 : !r || 821 ((t += ""), 822 "=" === r 823 ? t === i 824 : "!=" === r 825 ? t !== i 826 : "^=" === r 827 ? i && 0 === t.indexOf(i) 828 : "*=" === r 829 ? i && -1 < t.indexOf(i) 830 : "$=" === r 831 ? i && t.slice(-i.length) === i 832 : "~=" === r 833 ? -1 < (" " + t.replace(v, " ") + " ").indexOf(i) 834 : "|=" === r && 835 (t === i || t.slice(0, i.length + 1) === i + "-")); 836 }; 837 }, 838 CHILD: function (d, e, t, h, g) { 839 var v = "nth" !== d.slice(0, 3), 840 y = "last" !== d.slice(-4), 841 m = "of-type" === e; 842 return 1 === h && 0 === g 843 ? function (e) { 844 return !!e.parentNode; 845 } 846 : function (e, t, n) { 847 var r, 848 i, 849 o, 850 a, 851 s, 852 u = v !== y ? "nextSibling" : "previousSibling", 853 l = e.parentNode, 854 c = m && e.nodeName.toLowerCase(), 855 f = !n && !m, 856 p = !1; 857 if (l) { 858 if (v) { 859 while (u) { 860 o = e; 861 while ((o = o[u])) 862 if (m ? fe(o, c) : 1 === o.nodeType) return !1; 863 s = u = "only" === d && !s && "nextSibling"; 864 } 865 return !0; 866 } 867 if (((s = [y ? l.firstChild : l.lastChild]), y && f)) { 868 (p = 869 (a = 870 (r = (i = l[S] || (l[S] = {}))[d] || [])[0] === E && 871 r[1]) && r[2]), 872 (o = a && l.childNodes[a]); 873 while ((o = (++a && o && o[u]) || (p = a = 0) || s.pop())) 874 if (1 === o.nodeType && ++p && o === e) { 875 i[d] = [E, a, p]; 876 break; 877 } 878 } else if ( 879 (f && 880 (p = a = 881 (r = (i = e[S] || (e[S] = {}))[d] || [])[0] === E && 882 r[1]), 883 !1 === p) 884 ) 885 while ((o = (++a && o && o[u]) || (p = a = 0) || s.pop())) 886 if ( 887 (m ? fe(o, c) : 1 === o.nodeType) && 888 ++p && 889 (f && ((i = o[S] || (o[S] = {}))[d] = [E, p]), 890 o === e) 891 ) 892 break; 893 return (p -= g) === h || (p % h == 0 && 0 <= p / h); 894 } 895 }; 896 }, 897 PSEUDO: function (e, o) { 898 var t, 899 a = 900 b.pseudos[e] || 901 b.setFilters[e.toLowerCase()] || 902 I.error("unsupported pseudo: " + e); 903 return a[S] 904 ? a(o) 905 : 1 < a.length 906 ? ((t = [e, e, "", o]), 907 b.setFilters.hasOwnProperty(e.toLowerCase()) 908 ? F(function (e, t) { 909 var n, 910 r = a(e, o), 911 i = r.length; 912 while (i--) e[(n = se.call(e, r[i]))] = !(t[n] = r[i]); 913 }) 914 : function (e) { 915 return a(e, 0, t); 916 }) 917 : a; 918 }, 919 }, 920 pseudos: { 921 not: F(function (e) { 922 var r = [], 923 i = [], 924 s = ne(e.replace(ve, "$1")); 925 return s[S] 926 ? F(function (e, t, n, r) { 927 var i, 928 o = s(e, null, r, []), 929 a = e.length; 930 while (a--) (i = o[a]) && (e[a] = !(t[a] = i)); 931 }) 932 : function (e, t, n) { 933 return (r[0] = e), s(r, null, n, i), (r[0] = null), !i.pop(); 934 }; 935 }), 936 has: F(function (t) { 937 return function (e) { 938 return 0 < I(t, e).length; 939 }; 940 }), 941 contains: F(function (t) { 942 return ( 943 (t = t.replace(O, P)), 944 function (e) { 945 return -1 < (e.textContent || ce.text(e)).indexOf(t); 946 } 947 ); 948 }), 949 lang: F(function (n) { 950 return ( 951 A.test(n || "") || I.error("unsupported lang: " + n), 952 (n = n.replace(O, P).toLowerCase()), 953 function (e) { 954 var t; 955 do { 956 if ( 957 (t = C 958 ? e.lang 959 : e.getAttribute("xml:lang") || e.getAttribute("lang")) 960 ) 961 return ( 962 (t = t.toLowerCase()) === n || 0 === t.indexOf(n + "-") 963 ); 964 } while ((e = e.parentNode) && 1 === e.nodeType); 965 return !1; 966 } 967 ); 968 }), 969 target: function (e) { 970 var t = ie.location && ie.location.hash; 971 return t && t.slice(1) === e.id; 972 }, 973 root: function (e) { 974 return e === r; 975 }, 976 focus: function (e) { 977 return ( 978 e === 979 (function () { 980 try { 981 return T.activeElement; 982 } catch (e) {} 983 })() && 984 T.hasFocus() && 985 !!(e.type || e.href || ~e.tabIndex) 986 ); 987 }, 988 enabled: z(!1), 989 disabled: z(!0), 990 checked: function (e) { 991 return ( 992 (fe(e, "input") && !!e.checked) || 993 (fe(e, "option") && !!e.selected) 994 ); 995 }, 996 selected: function (e) { 997 return ( 998 e.parentNode && e.parentNode.selectedIndex, !0 === e.selected 999 ); 1000 }, 1001 empty: function (e) { 1002 for (e = e.firstChild; e; e = e.nextSibling) 1003 if (e.nodeType < 6) return !1; 1004 return !0; 1005 }, 1006 parent: function (e) { 1007 return !b.pseudos.empty(e); 1008 }, 1009 header: function (e) { 1010 return q.test(e.nodeName); 1011 }, 1012 input: function (e) { 1013 return N.test(e.nodeName); 1014 }, 1015 button: function (e) { 1016 return (fe(e, "input") && "button" === e.type) || fe(e, "button"); 1017 }, 1018 text: function (e) { 1019 var t; 1020 return ( 1021 fe(e, "input") && 1022 "text" === e.type && 1023 (null == (t = e.getAttribute("type")) || 1024 "text" === t.toLowerCase()) 1025 ); 1026 }, 1027 first: X(function () { 1028 return [0]; 1029 }), 1030 last: X(function (e, t) { 1031 return [t - 1]; 1032 }), 1033 eq: X(function (e, t, n) { 1034 return [n < 0 ? n + t : n]; 1035 }), 1036 even: X(function (e, t) { 1037 for (var n = 0; n < t; n += 2) e.push(n); 1038 return e; 1039 }), 1040 odd: X(function (e, t) { 1041 for (var n = 1; n < t; n += 2) e.push(n); 1042 return e; 1043 }), 1044 lt: X(function (e, t, n) { 1045 var r; 1046 for (r = n < 0 ? n + t : t < n ? t : n; 0 <= --r; ) e.push(r); 1047 return e; 1048 }), 1049 gt: X(function (e, t, n) { 1050 for (var r = n < 0 ? n + t : n; ++r < t; ) e.push(r); 1051 return e; 1052 }), 1053 }, 1054 }).pseudos.nth = b.pseudos.eq), 1055 { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 })) 1056 b.pseudos[e] = B(e); 1057 for (e in { submit: !0, reset: !0 }) b.pseudos[e] = _(e); 1058 function G() {} 1059 function Y(e, t) { 1060 var n, 1061 r, 1062 i, 1063 o, 1064 a, 1065 s, 1066 u, 1067 l = c[e + " "]; 1068 if (l) return t ? 0 : l.slice(0); 1069 (a = e), (s = []), (u = b.preFilter); 1070 while (a) { 1071 for (o in ((n && !(r = y.exec(a))) || 1072 (r && (a = a.slice(r[0].length) || a), s.push((i = []))), 1073 (n = !1), 1074 (r = m.exec(a)) && 1075 ((n = r.shift()), 1076 i.push({ value: n, type: r[0].replace(ve, " ") }), 1077 (a = a.slice(n.length))), 1078 b.filter)) 1079 !(r = D[o].exec(a)) || 1080 (u[o] && !(r = u[o](r))) || 1081 ((n = r.shift()), 1082 i.push({ value: n, type: o, matches: r }), 1083 (a = a.slice(n.length))); 1084 if (!n) break; 1085 } 1086 return t ? a.length : a ? I.error(e) : c(e, s).slice(0); 1087 } 1088 function Q(e) { 1089 for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value; 1090 return r; 1091 } 1092 function J(a, e, t) { 1093 var s = e.dir, 1094 u = e.next, 1095 l = u || s, 1096 c = t && "parentNode" === l, 1097 f = n++; 1098 return e.first 1099 ? function (e, t, n) { 1100 while ((e = e[s])) if (1 === e.nodeType || c) return a(e, t, n); 1101 return !1; 1102 } 1103 : function (e, t, n) { 1104 var r, 1105 i, 1106 o = [E, f]; 1107 if (n) { 1108 while ((e = e[s])) 1109 if ((1 === e.nodeType || c) && a(e, t, n)) return !0; 1110 } else 1111 while ((e = e[s])) 1112 if (1 === e.nodeType || c) 1113 if (((i = e[S] || (e[S] = {})), u && fe(e, u))) e = e[s] || e; 1114 else { 1115 if ((r = i[l]) && r[0] === E && r[1] === f) 1116 return (o[2] = r[2]); 1117 if (((i[l] = o)[2] = a(e, t, n))) return !0; 1118 } 1119 return !1; 1120 }; 1121 } 1122 function K(i) { 1123 return 1 < i.length 1124 ? function (e, t, n) { 1125 var r = i.length; 1126 while (r--) if (!i[r](e, t, n)) return !1; 1127 return !0; 1128 } 1129 : i[0]; 1130 } 1131 function Z(e, t, n, r, i) { 1132 for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++) 1133 (o = e[s]) && ((n && !n(o, r, i)) || (a.push(o), l && t.push(s))); 1134 return a; 1135 } 1136 function ee(d, h, g, v, y, e) { 1137 return ( 1138 v && !v[S] && (v = ee(v)), 1139 y && !y[S] && (y = ee(y, e)), 1140 F(function (e, t, n, r) { 1141 var i, 1142 o, 1143 a, 1144 s, 1145 u = [], 1146 l = [], 1147 c = t.length, 1148 f = 1149 e || 1150 (function (e, t, n) { 1151 for (var r = 0, i = t.length; r < i; r++) I(e, t[r], n); 1152 return n; 1153 })(h || "*", n.nodeType ? [n] : n, []), 1154 p = !d || (!e && h) ? f : Z(f, u, d, n, r); 1155 if ( 1156 (g ? g(p, (s = y || (e ? d : c || v) ? [] : t), n, r) : (s = p), v) 1157 ) { 1158 (i = Z(s, l)), v(i, [], n, r), (o = i.length); 1159 while (o--) (a = i[o]) && (s[l[o]] = !(p[l[o]] = a)); 1160 } 1161 if (e) { 1162 if (y || d) { 1163 if (y) {
1164 (i = []), (o = s.length); 1165 while (o--) (a = s[o]) && i.push((p[o] = a)); 1166 y(null, (s = []), i, r); 1167 } 1168 o = s.length; 1169 while (o--) 1170 (a = s[o]) && 1171 -1 < (i = y ? se.call(e, a) : u[o]) && 1172 (e[i] = !(t[i] = a)); 1173 } 1174 } else (s = Z(s === t ? s.splice(c, s.length) : s)), y ? y(null, t, s, r) : k.apply(t, s); 1175 }) 1176 ); 1177 } 1178 function te(e) { 1179 for ( 1180 var i, 1181 t, 1182 n, 1183 r = e.length, 1184 o = b.relative[e[0].type], 1185 a = o || b.relative[" "], 1186 s = o ? 1 : 0, 1187 u = J( 1188 function (e) { 1189 return e === i; 1190 }, 1191 a, 1192 !0 1193 ), 1194 l = J( 1195 function (e) { 1196 return -1 < se.call(i, e); 1197 }, 1198 a, 1199 !0 1200 ), 1201 c = [ 1202 function (e, t, n) { 1203 var r = 1204 (!o && (n || t != w)) || 1205 ((i = t).nodeType ? u(e, t, n) : l(e, t, n)); 1206 return (i = null), r; 1207 }, 1208 ]; 1209 s < r; 1210 s++ 1211 ) 1212 if ((t = b.relative[e[s].type])) c = [J(K(c), t)]; 1213 else { 1214 if ((t = b.filter[e[s].type].apply(null, e[s].matches))[S]) { 1215 for (n = ++s; n < r; n++) if (b.relative[e[n].type]) break; 1216 return ee( 1217 1 < s && K(c), 1218 1 < s && 1219 Q( 1220 e 1221 .slice(0, s - 1) 1222 .concat({ value: " " === e[s - 2].type ? "*" : "" }) 1223 ).replace(ve, "$1"), 1224 t, 1225 s < n && te(e.slice(s, n)), 1226 n < r && te((e = e.slice(n))), 1227 n < r && Q(e) 1228 ); 1229 } 1230 c.push(t); 1231 } 1232 return K(c); 1233 } 1234 function ne(e, t) { 1235 var n, 1236 v, 1237 y, 1238 m, 1239 x, 1240 r, 1241 i = [], 1242 o = [], 1243 a = u[e + " "]; 1244 if (!a) { 1245 t || (t = Y(e)), (n = t.length); 1246 while (n--) (a = te(t[n]))[S] ? i.push(a) : o.push(a); 1247 (a = u( 1248 e, 1249 ((v = o), 1250 (m = 0 < (y = i).length), 1251 (x = 0 < v.length), 1252 (r = function (e, t, n, r, i) { 1253 var o, 1254 a, 1255 s, 1256 u = 0, 1257 l = "0", 1258 c = e && [], 1259 f = [], 1260 p = w, 1261 d = e || (x && b.find.TAG("*", i)), 1262 h = (E += null == p ? 1 : Math.random() || 0.1), 1263 g = d.length; 1264 for ( 1265 i && (w = t == T || t || i); 1266 l !== g && null != (o = d[l]); 1267 l++ 1268 ) { 1269 if (x && o) { 1270 (a = 0), t || o.ownerDocument == T || (V(o), (n = !C)); 1271 while ((s = v[a++])) 1272 if (s(o, t || T, n)) { 1273 k.call(r, o); 1274 break; 1275 } 1276 i && (E = h); 1277 } 1278 m && ((o = !s && o) && u--, e && c.push(o)); 1279 } 1280 if (((u += l), m && l !== u)) { 1281 a = 0; 1282 while ((s = y[a++])) s(c, f, t, n); 1283 if (e) { 1284 if (0 < u) while (l--) c[l] || f[l] || (f[l] = pe.call(r)); 1285 f = Z(f); 1286 } 1287 k.apply(r, f), 1288 i && !e && 0 < f.length && 1 < u + y.length && ce.uniqueSort(r); 1289 } 1290 return i && ((E = h), (w = p)), c; 1291 }), 1292 m ? F(r) : r) 1293 )).selector = e; 1294 } 1295 return a; 1296 } 1297 function re(e, t, n, r) { 1298 var i, 1299 o, 1300 a, 1301 s, 1302 u, 1303 l = "function" == typeof e && e, 1304 c = !r && Y((e = l.selector || e)); 1305 if (((n = n || []), 1 === c.length)) { 1306 if ( 1307 2 < (o = c[0] = c[0].slice(0)).length && 1308 "ID" === (a = o[0]).type && 1309 9 === t.nodeType && 1310 C && 1311 b.relative[o[1].type] 1312 ) { 1313 if (!(t = (b.find.ID(a.matches[0].replace(O, P), t) || [])[0])) 1314 return n; 1315 l && (t = t.parentNode), (e = e.slice(o.shift().value.length)); 1316 } 1317 i = D.needsContext.test(e) ? 0 : o.length; 1318 while (i--) { 1319 if (((a = o[i]), b.relative[(s = a.type)])) break; 1320 if ( 1321 (u = b.find[s]) && 1322 (r = u( 1323 a.matches[0].replace(O, P), 1324 (H.test(o[0].type) && U(t.parentNode)) || t 1325 )) 1326 ) { 1327 if ((o.splice(i, 1), !(e = r.length && Q(o)))) 1328 return k.apply(n, r), n; 1329 break; 1330 } 1331 } 1332 } 1333 return ( 1334 (l || ne(e, c))(r, t, !C, n, !t || (H.test(e) && U(t.parentNode)) || t), 1335 n 1336 ); 1337 } 1338 (G.prototype = b.filters = b.pseudos),
1339 (b.setFilters = new G()), 1340 (le.sortStable = S.split("").sort(l).join("") === S), 1341 V(), 1342 (le.sortDetached = $(function (e) { 1343 return 1 & e.compareDocumentPosition(T.createElement("fieldset")); 1344 })), 1345 (ce.find = I), 1346 (ce.expr[":"] = ce.expr.pseudos), 1347 (ce.unique = ce.uniqueSort), 1348 (I.compile = ne), 1349 (I.select = re), 1350 (I.setDocument = V), 1351 (I.tokenize = Y), 1352 (I.escape = ce.escapeSelector), 1353 (I.getText = ce.text), 1354 (I.isXML = ce.isXMLDoc), 1355 (I.selectors = ce.expr), 1356 (I.support = ce.support), 1357 (I.uniqueSort = ce.uniqueSort); 1358 })(); 1359 var d = function (e, t, n) { 1360 var r = [], 1361 i = void 0 !== n; 1362 while ((e = e[t]) && 9 !== e.nodeType) 1363 if (1 === e.nodeType) { 1364 if (i && ce(e).is(n)) break; 1365 r.push(e); 1366 } 1367 return r; 1368 }, 1369 h = function (e, t) { 1370 for (var n = []; e; e = e.nextSibling) 1371 1 === e.nodeType && e !== t && n.push(e); 1372 return n; 1373 }, 1374 b = ce.expr.match.needsContext, 1375 w = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; 1376 function T(e, n, r) { 1377 return v(n) 1378 ? ce.grep(e, function (e, t) { 1379 return !!n.call(e, t, e) !== r; 1380 }) 1381 : n.nodeType 1382 ? ce.grep(e, function (e) { 1383 return (e === n) !== r; 1384 }) 1385 : "string" != typeof n 1386 ? ce.grep(e, function (e) { 1387 return -1 < se.call(n, e) !== r; 1388 }) 1389 : ce.filter(n, e, r); 1390 } 1391 (ce.filter = function (e, t, n) { 1392 var r = t[0]; 1393 return ( 1394 n && (e = ":not(" + e + ")"), 1395 1 === t.length && 1 === r.nodeType 1396 ? ce.find.matchesSelector(r, e) 1397 ? [r] 1398 : [] 1399 : ce.find.matches( 1400 e, 1401 ce.grep(t, function (e) { 1402 return 1 === e.nodeType; 1403 }) 1404 ) 1405 ); 1406 }), 1407 ce.fn.extend({ 1408 find: function (e) { 1409 var t, 1410 n, 1411 r = this.length, 1412 i = this; 1413 if ("string" != typeof e) 1414 return this.pushStack( 1415 ce(e).filter(function () { 1416 for (t = 0; t < r; t++) if (ce.contains(i[t], this)) return !0; 1417 }) 1418 ); 1419 for (n = this.pushStack([]), t = 0; t < r; t++) ce.find(e, i[t], n); 1420 return 1 < r ? ce.uniqueSort(n) : n; 1421 }, 1422 filter: function (e) { 1423 return this.pushStack(T(this, e || [], !1)); 1424 }, 1425 not: function (e) { 1426 return this.pushStack(T(this, e || [], !0)); 1427 }, 1428 is: function (e) { 1429 return !!T( 1430 this, 1431 "string" == typeof e && b.test(e) ? ce(e) : e || [], 1432 !1 1433 ).length; 1434 }, 1435 }); 1436 var k, 1437 S = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/; 1438 ((ce.fn.init = function (e, t, n) { 1439 var r, i; 1440 if (!e) return this; 1441 if (((n = n || k), "string" == typeof e)) { 1442 if ( 1443 !(r = 1444 "<" === e[0] && ">" === e[e.length - 1] && 3 <= e.length 1445 ? [null, e, null] 1446 : S.exec(e)) || 1447 (!r[1] && t) 1448 ) 1449 return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e); 1450 if (r[1]) { 1451 if ( 1452 ((t = t instanceof ce ? t[0] : t), 1453 ce.merge( 1454 this, 1455 ce.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : C, !0) 1456 ), 1457 w.test(r[1]) && ce.isPlainObject(t)) 1458 ) 1459 for (r in t) v(this[r]) ? this[r](t[r]) : this.attr(r, t[r]); 1460 return this; 1461 } 1462 return ( 1463 (i = C.getElementById(r[2])) && ((this[0] = i), (this.length = 1)), this 1464 ); 1465 } 1466 return e.nodeType 1467 ? ((this[0] = e), (this.length = 1), this) 1468 : v(e) 1469 ? void 0 !== n.ready 1470 ? n.ready(e) 1471 : e(ce) 1472 : ce.makeArray(e, this); 1473 }).prototype = ce.fn), 1474 (k = ce(C)); 1475 var E = /^(?:parents|prev(?:Until|All))/, 1476 j = { children: !0, contents: !0, next: !0, prev: !0 }; 1477 function A(e, t) { 1478 while ((e = e[t]) && 1 !== e.nodeType); 1479 return e; 1480 } 1481 ce.fn.extend({ 1482 has: function (e) { 1483 var t = ce(e, this), 1484 n = t.length; 1485 return this.filter(function () { 1486 for (var e = 0; e < n; e++) if (ce.contains(this, t[e])) return !0; 1487 }); 1488 }, 1489 closest: function (e, t) { 1490 var n, 1491 r = 0, 1492 i = this.length, 1493 o = [], 1494 a = "string" != typeof e && ce(e); 1495 if (!b.test(e)) 1496 for (; r < i; r++) 1497 for (n = this[r]; n && n !== t; n = n.parentNode) 1498 if ( 1499 n.nodeType < 11 && 1500 (a 1501 ? -1 < a.index(n) 1502 : 1 === n.nodeType && ce.find.matchesSelector(n, e)) 1503 ) { 1504 o.push(n); 1505 break; 1506 } 1507 return this.pushStack(1 < o.length ? ce.uniqueSort(o) : o); 1508 }, 1509 index: function (e) { 1510 return e 1511 ? "string" == typeof e 1512 ? se.call(ce(e), this[0]) 1513 : se.call(this, e.jquery ? e[0] : e) 1514 : this[0] && this[0].parentNode 1515 ? this.first().prevAll().length 1516 : -1; 1517 }, 1518 add: function (e, t) { 1519 return this.pushStack(ce.uniqueSort(ce.merge(this.get(), ce(e, t)))); 1520 }, 1521 addBack: function (e) { 1522 return this.add(null == e ? this.prevObject : this.prevObject.filter(e)); 1523 }, 1524 }), 1525 ce.each( 1526 { 1527 parent: function (e) { 1528 var t = e.parentNode; 1529 return t && 11 !== t.nodeType ? t : null; 1530 }, 1531 parents: function (e) { 1532 return d(e, "parentNode"); 1533 }, 1534 parentsUntil: function (e, t, n) { 1535 return d(e, "parentNode", n); 1536 }, 1537 next: function (e) { 1538 return A(e, "nextSibling"); 1539 }, 1540 prev: function (e) { 1541 return A(e, "previousSibling"); 1542 }, 1543 nextAll: function (e) { 1544 return d(e, "nextSibling"); 1545 }, 1546 prevAll: function (e) { 1547 return d(e, "previousSibling"); 1548 }, 1549 nextUntil: function (e, t, n) { 1550 return d(e, "nextSibling", n); 1551 }, 1552 prevUntil: function (e, t, n) { 1553 return d(e, "previousSibling", n); 1554 }, 1555 siblings: function (e) { 1556 return h((e.parentNode || {}).firstChild, e); 1557 }, 1558 children: function (e) {
1559 return h(e.firstChild); 1560 }, 1561 contents: function (e) { 1562 return null != e.contentDocument && r(e.contentDocument) 1563 ? e.contentDocument 1564 : (fe(e, "template") && (e = e.content || e), 1565 ce.merge([], e.childNodes)); 1566 }, 1567 }, 1568 function (r, i) { 1569 ce.fn[r] = function (e, t) { 1570 var n = ce.map(this, i, e); 1571 return ( 1572 "Until" !== r.slice(-5) && (t = e), 1573 t && "string" == typeof t && (n = ce.filter(t, n)), 1574 1 < this.length && 1575 (j[r] || ce.uniqueSort(n), E.test(r) && n.reverse()), 1576 this.pushStack(n) 1577 ); 1578 }; 1579 } 1580 ); 1581 var D = /[^\x20\t\r\n\f]+/g; 1582 function N(e) { 1583 return e; 1584 } 1585 function q(e) { 1586 throw e; 1587 } 1588 function L(e, t, n, r) { 1589 var i; 1590 try { 1591 e && v((i = e.promise)) 1592 ? i.call(e).done(t).fail(n) 1593 : e && v((i = e.then)) 1594 ? i.call(e, t, n) 1595 : t.apply(void 0, [e].slice(r)); 1596 } catch (e) { 1597 n.apply(void 0, [e]); 1598 } 1599 } 1600 (ce.Callbacks = function (r) { 1601 var e, n; 1602 r = 1603 "string" == typeof r 1604 ? ((e = r), 1605 (n = {}), 1606 ce.each(e.match(D) || [], function (e, t) { 1607 n[t] = !0; 1608 }), 1609 n) 1610 : ce.extend({}, r); 1611 var i, 1612 t, 1613 o, 1614 a, 1615 s = [], 1616 u = [], 1617 l = -1, 1618 c = function () { 1619 for (a = a || r.once, o = i = !0; u.length; l = -1) { 1620 t = u.shift(); 1621 while (++l < s.length) 1622 !1 === s[l].apply(t[0], t[1]) && 1623 r.stopOnFalse && 1624 ((l = s.length), (t = !1)); 1625 } 1626 r.memory || (t = !1), (i = !1), a && (s = t ? [] : ""); 1627 }, 1628 f = { 1629 add: function () { 1630 return ( 1631 s && 1632 (t && !i && ((l = s.length - 1), u.push(t)), 1633 (function n(e) { 1634 ce.each(e, function (e, t) { 1635 v(t) 1636 ? (r.unique && f.has(t)) || s.push(t) 1637 : t && t.length && "string" !== x(t) && n(t); 1638 }); 1639 })(arguments), 1640 t && !i && c()), 1641 this 1642 ); 1643 }, 1644 remove: function () { 1645 return ( 1646 ce.each(arguments, function (e, t) { 1647 var n; 1648 while (-1 < (n = ce.inArray(t, s, n))) 1649 s.splice(n, 1), n <= l && l--; 1650 }), 1651 this 1652 ); 1653 }, 1654 has: function (e) { 1655 return e ? -1 < ce.inArray(e, s) : 0 < s.length; 1656 }, 1657 empty: function () { 1658 return s && (s = []), this; 1659 }, 1660 disable: function () { 1661 return (a = u = []), (s = t = ""), this; 1662 }, 1663 disabled: function () { 1664 return !s; 1665 }, 1666 lock: function () { 1667 return (a = u = []), t || i || (s = t = ""), this; 1668 }, 1669 locked: function () { 1670 return !!a; 1671 }, 1672 fireWith: function (e, t) { 1673 return ( 1674 a || 1675 ((t = [e, (t = t || []).slice ? t.slice() : t]), 1676 u.push(t), 1677 i || c()), 1678 this 1679 ); 1680 }, 1681 fire: function () { 1682 return f.fireWith(this, arguments), this; 1683 }, 1684 fired: function () { 1685 return !!o; 1686 }, 1687 }; 1688 return f; 1689 }), 1690 ce.extend({ 1691 Deferred: function (e) { 1692 var o = [ 1693 [ 1694 "notify", 1695 "progress", 1696 ce.Callbacks("memory"), 1697 ce.Callbacks("memory"), 1698 2, 1699 ], 1700 [ 1701 "resolve", 1702 "done", 1703 ce.Callbacks("once memory"), 1704 ce.Callbacks("once memory"), 1705 0, 1706 "resolved", 1707 ], 1708 [ 1709 "reject", 1710 "fail", 1711 ce.Callbacks("once memory"), 1712 ce.Callbacks("once memory"), 1713 1, 1714 "rejected", 1715 ], 1716 ], 1717 i = "pending", 1718 a = { 1719 state: function () { 1720 return i; 1721 }, 1722 always: function () { 1723 return s.done(arguments).fail(arguments), this; 1724 }, 1725 catch: function (e) { 1726 return a.then(null, e); 1727 }, 1728 pipe: function () { 1729 var i = arguments; 1730 return ce 1731 .Deferred(function (r) { 1732 ce.each(o, function (e, t) { 1733 var n = v(i[t[4]]) && i[t[4]]; 1734 s[t[1]](function () { 1735 var e = n && n.apply(this, arguments); 1736 e && v(e.promise) 1737 ? e 1738 .promise() 1739 .progress(r.notify) 1740 .done(r.resolve) 1741 .fail(r.reject) 1742 : r[t[0] + "With"](this, n ? [e] : arguments); 1743 }); 1744 }), 1745 (i = null); 1746 }) 1747 .promise(); 1748 }, 1749 then: function (t, n, r) { 1750 var u = 0; 1751 function l(i, o, a, s) { 1752 return function () { 1753 var n = this, 1754 r = arguments, 1755 e = function () { 1756 var e, t; 1757 if (!(i < u)) { 1758 if ((e = a.apply(n, r)) === o.promise())
1759 throw new TypeError("Thenable self-resolution"); 1760 (t = 1761 e && 1762 ("object" == typeof e || "function" == typeof e) && 1763 e.then), 1764 v(t) 1765 ? s 1766 ? t.call(e, l(u, o, N, s), l(u, o, q, s)) 1767 : (u++, 1768 t.call( 1769 e, 1770 l(u, o, N, s), 1771 l(u, o, q, s), 1772 l(u, o, N, o.notifyWith) 1773 )) 1774 : (a !== N && ((n = void 0), (r = [e])), 1775 (s || o.resolveWith)(n, r)); 1776 } 1777 }, 1778 t = s 1779 ? e 1780 : function () { 1781 try { 1782 e(); 1783 } catch (e) { 1784 ce.Deferred.exceptionHook && 1785 ce.Deferred.exceptionHook(e, t.error), 1786 u <= i + 1 && 1787 (a !== q && ((n = void 0), (r = [e])), 1788 o.rejectWith(n, r)); 1789 } 1790 }; 1791 i 1792 ? t() 1793 : (ce.Deferred.getErrorHook 1794 ? (t.error = ce.Deferred.getErrorHook()) 1795 : ce.Deferred.getStackHook && 1796 (t.error = ce.Deferred.getStackHook()), 1797 ie.setTimeout(t)); 1798 }; 1799 } 1800 return ce 1801 .Deferred(function (e) { 1802 o[0][3].add(l(0, e, v(r) ? r : N, e.notifyWith)), 1803 o[1][3].add(l(0, e, v(t) ? t : N)), 1804 o[2][3].add(l(0, e, v(n) ? n : q)); 1805 }) 1806 .promise(); 1807 }, 1808 promise: function (e) { 1809 return null != e ? ce.extend(e, a) : a; 1810 }, 1811 }, 1812 s = {}; 1813 return ( 1814 ce.each(o, function (e, t) { 1815 var n = t[2], 1816 r = t[5]; 1817 (a[t[1]] = n.add), 1818 r && 1819 n.add( 1820 function () { 1821 i = r; 1822 }, 1823 o[3 - e][2].disable, 1824 o[3 - e][3].disable, 1825 o[0][2].lock, 1826 o[0][3].lock 1827 ), 1828 n.add(t[3].fire), 1829 (s[t[0]] = function () { 1830 return ( 1831 s[t[0] + "With"](this === s ? void 0 : this, arguments), this 1832 ); 1833 }), 1834 (s[t[0] + "With"] = n.fireWith); 1835 }), 1836 a.promise(s), 1837 e && e.call(s, s), 1838 s 1839 ); 1840 }, 1841 when: function (e) { 1842 var n = arguments.length, 1843 t = n, 1844 r = Array(t), 1845 i = ae.call(arguments), 1846 o = ce.Deferred(), 1847 a = function (t) { 1848 return function (e) { 1849 (r[t] = this), 1850 (i[t] = 1 < arguments.length ? ae.call(arguments) : e), 1851 --n || o.resolveWith(r, i); 1852 }; 1853 }; 1854 if ( 1855 n <= 1 && 1856 (L(e, o.done(a(t)).resolve, o.reject, !n), 1857 "pending" === o.state() || v(i[t] && i[t].then)) 1858 ) 1859 return o.then(); 1860 while (t--) L(i[t], a(t), o.reject); 1861 return o.promise(); 1862 }, 1863 }); 1864 var H = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; 1865 (ce.Deferred.exceptionHook = function (e, t) { 1866 ie.console && 1867 ie.console.warn && 1868 e && 1869 H.test(e.name) && 1870 ie.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t); 1871 }), 1872 (ce.readyException = function (e) { 1873 ie.setTimeout(function () { 1874 throw e; 1875 }); 1876 }); 1877 var O = ce.Deferred(); 1878 function P() { 1879 C.removeEventListener("DOMContentLoaded", P), 1880 ie.removeEventListener("load", P), 1881 ce.ready(); 1882 } 1883 (ce.fn.ready = function (e) { 1884 return ( 1885 O.then(e)["catch"](function (e) { 1886 ce.readyException(e); 1887 }), 1888 this 1889 ); 1890 }), 1891 ce.extend({ 1892 isReady: !1, 1893 readyWait: 1, 1894 ready: function (e) { 1895 (!0 === e ? --ce.readyWait : ce.isReady) || 1896 ((ce.isReady = !0) !== e && 0 < --ce.readyWait) || 1897 O.resolveWith(C, [ce]); 1898 }, 1899 }), 1900 (ce.ready.then = O.then), 1901 "complete" === C.readyState || 1902 ("loading" !== C.readyState && !C.documentElement.doScroll) 1903 ? ie.setTimeout(ce.ready) 1904 : (C.addEventListener("DOMContentLoaded", P), 1905 ie.addEventListener("load", P)); 1906 var M = function (e, t, n, r, i, o, a) { 1907 var s = 0, 1908 u = e.length, 1909 l = null == n; 1910 if ("object" === x(n)) 1911 for (s in ((i = !0), n)) M(e, t, s, n[s], !0, o, a); 1912 else if ( 1913 void 0 !== r && 1914 ((i = !0), 1915 v(r) || (a = !0), 1916 l && 1917 (a 1918 ? (t.call(e, r), (t = null)) 1919 : ((l = t), 1920 (t = function (e, t, n) { 1921 return l.call(ce(e), n); 1922 }))), 1923 t) 1924 ) 1925 for (; s < u;
1925 s++) t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n))); 1926 return i ? e : l ? t.call(e) : u ? t(e[0], n) : o; 1927 }, 1928 R = /^-ms-/, 1929 I = /-([a-z])/g; 1930 function W(e, t) { 1931 return t.toUpperCase(); 1932 } 1933 function F(e) { 1934 return e.replace(R, "ms-").replace(I, W); 1935 } 1936 var $ = function (e) { 1937 return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType; 1938 }; 1939 function B() { 1940 this.expando = ce.expando + B.uid++; 1941 } 1942 (B.uid = 1), 1943 (B.prototype = { 1944 cache: function (e) { 1945 var t = e[this.expando]; 1946 return ( 1947 t || 1948 ((t = {}), 1949 $(e) && 1950 (e.nodeType 1951 ? (e[this.expando] = t) 1952 : Object.defineProperty(e, this.expando, { 1953 value: t, 1954 configurable: !0, 1955 }))), 1956 t 1957 ); 1958 }, 1959 set: function (e, t, n) { 1960 var r, 1961 i = this.cache(e); 1962 if ("string" == typeof t) i[F(t)] = n; 1963 else for (r in t) i[F(r)] = t[r]; 1964 return i; 1965 }, 1966 get: function (e, t) { 1967 return void 0 === t 1968 ? this.cache(e) 1969 : e[this.expando] && e[this.expando][F(t)]; 1970 }, 1971 access: function (e, t, n) { 1972 return void 0 === t || (t && "string" == typeof t && void 0 === n) 1973 ? this.get(e, t) 1974 : (this.set(e, t, n), void 0 !== n ? n : t); 1975 }, 1976 remove: function (e, t) { 1977 var n, 1978 r = e[this.expando]; 1979 if (void 0 !== r) { 1980 if (void 0 !== t) { 1981 n = (t = Array.isArray(t) 1982 ? t.map(F) 1983 : (t = F(t)) in r 1984 ? [t] 1985 : t.match(D) || []).length; 1986 while (n--) delete r[t[n]]; 1987 } 1988 (void 0 === t || ce.isEmptyObject(r)) && 1989 (e.nodeType ? (e[this.expando] = void 0) : delete e[this.expando]); 1990 } 1991 }, 1992 hasData: function (e) { 1993 var t = e[this.expando]; 1994 return void 0 !== t && !ce.isEmptyObject(t); 1995 }, 1996 }); 1997 var _ = new B(), 1998 z = new B(), 1999 X = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, 2000 U = /[A-Z]/g; 2001 function V(e, t, n) { 2002 var r, i; 2003 if (void 0 === n && 1 === e.nodeType) 2004 if ( 2005 ((r = "data-" + t.replace(U, "-$&").toLowerCase()), 2006 "string" == typeof (n = e.getAttribute(r))) 2007 ) { 2008 try { 2009 n = 2010 "true" === (i = n) || 2011 ("false" !== i && 2012 ("null" === i 2013 ? null 2014 : i === +i + "" 2015 ? +i 2016 : X.test(i) 2017 ? JSON.parse(i) 2018 : i)); 2019 } catch (e) {} 2020 z.set(e, t, n); 2021 } else n = void 0; 2022 return n; 2023 } 2024 ce.extend({ 2025 hasData: function (e) { 2026 return z.hasData(e) || _.hasData(e); 2027 }, 2028 data: function (e, t, n) { 2029 return z.access(e, t, n); 2030 }, 2031 removeData: function (e, t) { 2032 z.remove(e, t); 2033 }, 2034 _data: function (e, t, n) { 2035 return _.access(e, t, n); 2036 }, 2037 _removeData: function (e, t) { 2038 _.remove(e, t); 2039 }, 2040 }), 2041 ce.fn.extend({ 2042 data: function (n, e) { 2043 var t, 2044 r, 2045 i, 2046 o = this[0], 2047 a = o && o.attributes; 2048 if (void 0 === n) { 2049 if ( 2050 this.length && 2051 ((i = z.get(o)), 1 === o.nodeType && !_.get(o, "hasDataAttrs")) 2052 ) { 2053 t = a.length; 2054 while (t--) 2055 a[t] && 2056 0 === (r = a[t].name).indexOf("data-") && 2057 ((r = F(r.slice(5))), V(o, r, i[r])); 2058 _.set(o, "hasDataAttrs", !0); 2059 } 2060 return i; 2061 } 2062 return "object" == typeof n 2063 ? this.each(function () { 2064 z.set(this, n); 2065 }) 2066 : M( 2067 this, 2068 function (e) { 2069 var t; 2070 if (o && void 0 === e) 2071 return void 0 !== (t = z.get(o, n)) 2072 ? t 2073 : void 0 !== (t = V(o, n)) 2074 ? t 2075 : void 0; 2076 this.each(function () { 2077 z.set(this, n, e); 2078 }); 2079 }, 2080 null, 2081 e, 2082 1 < arguments.length, 2083 null, 2084 !0 2085 ); 2086 }, 2087 removeData: function (e) { 2088 return this.each(function () { 2089 z.remove(this, e); 2090 }); 2091 }, 2092 }), 2093 ce.extend({ 2094 queue: function (e, t, n) { 2095 var r; 2096 if (e) 2097 return ( 2098 (t = (t || "fx") + "queue"), 2099 (r = _.get(e, t)), 2100 n && 2101 (!r || Array.isArray(n) 2102 ? (r = _.access(e, t, ce.makeArray(n))) 2103 : r.push(n)), 2104 r || [] 2105 ); 2106 }, 2107 dequeue: function (e, t) { 2108 t = t || "fx"; 2109 var n = ce.queue(e, t), 2110 r = n.length, 2111 i = n.shift(), 2112 o = ce._queueHooks(e, t); 2113 "inprogress" === i && ((i = n.shift()), r--), 2114 i && 2115 ("fx" === t && n.unshift("inprogress"), 2116 delete o.stop, 2117 i.call( 2118 e, 2119 function () { 2120 ce.dequeue(e, t); 2121 }, 2122 o 2123 )), 2124 !r && o && o.empty.fire(); 2125 }, 2126 _queueHooks: function (e, t) { 2127 var n = t + "queueHooks"; 2128 return ( 2129 _.get(e, n) || 2130 _.access(e, n, { 2131 empty: ce.Callbacks("once memory").add(function () { 2132 _.remove(e, [t + "queue", n]); 2133 }), 2134 }) 2135 ); 2136 }, 2137 }), 2138 ce.fn.extend({ 2139 queue: function (t, n) { 2140 var e = 2; 2141 return ( 2142 "string" != typeof t && ((n = t), (t = "fx"), e--), 2143 arguments.length < e 2144 ? ce.queue(this[0], t) 2145 : void 0 === n 2146 ? this 2147 : this.each(function () { 2148 var e = ce.queue(this, t, n); 2149 ce._queueHooks(this, t), 2150 "fx" === t && "inprogress" !== e[0] && ce.dequeue(this, t); 2151 }) 2152 ); 2153 }, 2154 dequeue: function (e) { 2155 return this.each(function () { 2156 ce.dequeue(this, e); 2157 }); 2158 }, 2159 clearQueue: function (e) { 2160 return this.queue(e || "fx", []); 2161 }, 2162 promise: function (e, t) { 2163 var n, 2164 r = 1, 2165 i = ce.Deferred(), 2166 o = this, 2167 a = this.length, 2168 s = function () { 2169 --r || i.resolveWith(o, [o]); 2170 }; 2171 "string" != typeof e && ((t = e), (e = void 0)), (e = e || "fx"); 2172 while (a--) 2173 (n = _.get(o[a], e + "queueHooks")) && 2174 n.empty && 2175 (r++, n.empty.add(s)); 2176 return s(), i.promise(t); 2177 }, 2178 }); 2179 var G = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
2180 Y = new RegExp("^(?:([+-])=|)(" + G + ")([a-z%]*)$", "i"), 2181 Q = ["Top", "Right", "Bottom", "Left"], 2182 J = C.documentElement, 2183 K = function (e) { 2184 return ce.contains(e.ownerDocument, e); 2185 }, 2186 Z = { composed: !0 }; 2187 J.getRootNode && 2188 (K = function (e) { 2189 return ( 2190 ce.contains(e.ownerDocument, e) || e.getRootNode(Z) === e.ownerDocument 2191 ); 2192 }); 2193 var ee = function (e, t) { 2194 return ( 2195 "none" === (e = t || e).style.display || 2196 ("" === e.style.display && K(e) && "none" === ce.css(e, "display")) 2197 ); 2198 }; 2199 function te(e, t, n, r) { 2200 var i, 2201 o, 2202 a = 20, 2203 s = r 2204 ? function () { 2205 return r.cur(); 2206 } 2207 : function () { 2208 return ce.css(e, t, ""); 2209 }, 2210 u = s(), 2211 l = (n && n[3]) || (ce.cssNumber[t] ? "" : "px"), 2212 c = 2213 e.nodeType && 2214 (ce.cssNumber[t] || ("px" !== l && +u)) && 2215 Y.exec(ce.css(e, t)); 2216 if (c && c[3] !== l) { 2217 (u /= 2), (l = l || c[3]), (c = +u || 1); 2218 while (a--) 2219 ce.style(e, t, c + l), 2220 (1 - o) * (1 - (o = s() / u || 0.5)) <= 0 && (a = 0), 2221 (c /= o); 2222 (c *= 2), ce.style(e, t, c + l), (n = n || []); 2223 } 2224 return ( 2225 n && 2226 ((c = +c || +u || 0), 2227 (i = n[1] ? c + (n[1] + 1) * n[2] : +n[2]), 2228 r && ((r.unit = l), (r.start = c), (r.end = i))), 2229 i 2230 ); 2231 } 2232 var ne = {}; 2233 function re(e, t) { 2234 for (var n, r, i, o, a, s, u, l = [], c = 0, f = e.length; c < f; c++) 2235 (r = e[c]).style && 2236 ((n = r.style.display), 2237 t 2238 ? ("none" === n &&
2239 ((l[c] = _.get(r, "display") || null), 2240 l[c] || (r.style.display = "")), 2241 "" === r.style.display && 2242 ee(r) && 2243 (l[c] = 2244 ((u = a = o = void 0), 2245 (a = (i = r).ownerDocument), 2246 (s = i.nodeName), 2247 (u = ne[s]) || 2248 ((o = a.body.appendChild(a.createElement(s))), 2249 (u = ce.css(o, "display")), 2250 o.parentNode.removeChild(o), 2251 "none" === u && (u = "block"), 2252 (ne[s] = u))))) 2253 : "none" !== n && ((l[c] = "none"), _.set(r, "display", n))); 2254 for (c = 0; c < f; c++) null != l[c] && (e[c].style.display = l[c]); 2255 return e; 2256 } 2257 ce.fn.extend({ 2258 show: function () { 2259 return re(this, !0); 2260 }, 2261 hide: function () { 2262 return re(this); 2263 }, 2264 toggle: function (e) { 2265 return "boolean" == typeof e 2266 ? e 2267 ? this.show() 2268 : this.hide() 2269 : this.each(function () { 2270 ee(this) ? ce(this).show() : ce(this).hide(); 2271 }); 2272 }, 2273 }); 2274 var xe, 2275 be, 2276 we = /^(?:checkbox|radio)$/i, 2277 Te = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i, 2278 Ce = /^$|^module$|\/(?:java|ecma)script/i; 2279 (xe = C.createDocumentFragment().appendChild(C.createElement("div"))), 2280 (be = C.createElement("input")).setAttribute("type", "radio"), 2281 be.setAttribute("checked", "checked"), 2282 be.setAttribute("name", "t"), 2283 xe.appendChild(be), 2284 (le.checkClone = xe.cloneNode(!0).cloneNode(!0).lastChild.checked), 2285 (xe.innerHTML = "<textarea>x</textarea>"), 2286 (le.noCloneChecked = !!xe.cloneNode(!0).lastChild.defaultValue), 2287 (xe.innerHTML = "<option></option>"), 2288 (le.option = !!xe.lastChild); 2289 var ke = { 2290 thead: [1, "<table>", "</table>"], 2291 col: [2, "<table><colgroup>", "</colgroup></table>"], 2292 tr: [2, "<table><tbody>", "</tbody></table>"], 2293 td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], 2294 _default: [0, "", ""], 2295 }; 2296 function Se(e, t) { 2297 var n; 2298 return ( 2299 (n = 2300 "undefined" != typeof e.getElementsByTagName 2301 ? e.getElementsByTagName(t || "*") 2302 : "undefined" != typeof e.querySelectorAll 2303 ? e.querySelectorAll(t || "*") 2304 : []), 2305 void 0 === t || (t && fe(e, t)) ? ce.merge([e], n) : n 2306 ); 2307 } 2308 function Ee(e, t) { 2309 for (var n = 0, r = e.length; n < r; n++) 2310 _.set(e[n], "globalEval", !t || _.get(t[n], "globalEval")); 2311 } 2312 (ke.tbody = ke.tfoot = ke.colgroup = ke.caption = ke.thead), 2313 (ke.th = ke.td), 2314 le.option || 2315 (ke.optgroup = ke.option = 2316 [1, "<select multiple='multiple'>", "</select>"]);
2317 var je = /<|&#?\w+;/; 2318 function Ae(e, t, n, r, i) { 2319 for ( 2320 var o, 2321 a, 2322 s, 2323 u, 2324 l, 2325 c, 2326 f = t.createDocumentFragment(), 2327 p = [], 2328 d = 0, 2329 h = e.length; 2330 d < h; 2331 d++ 2332 ) 2333 if ((o = e[d]) || 0 === o) 2334 if ("object" === x(o)) ce.merge(p, o.nodeType ? [o] : o); 2335 else if (je.test(o)) { 2336 (a = a || f.appendChild(t.createElement("div"))), 2337 (s = (Te.exec(o) || ["", ""])[1].toLowerCase()), 2338 (u = ke[s] || ke._default), 2339 (a.innerHTML = u[1] + ce.htmlPrefilter(o) + u[2]), 2340 (c = u[0]); 2341 while (c--) a = a.lastChild; 2342 ce.merge(p, a.childNodes), ((a = f.firstChild).textContent = ""); 2343 } else p.push(t.createTextNode(o)); 2344 (f.textContent = ""), (d = 0); 2345 while ((o = p[d++])) 2346 if (r && -1 < ce.inArray(o, r)) i && i.push(o); 2347 else if ( 2348 ((l = K(o)), (a = Se(f.appendChild(o), "script")), l && Ee(a), n) 2349 ) { 2350 c = 0; 2351 while ((o = a[c++])) Ce.test(o.type || "") && n.push(o); 2352 } 2353 return f; 2354 } 2355 var De = /^([^.]*)(?:\.(.+)|)/; 2356 function Ne() { 2357 return !0; 2358 } 2359 function qe() { 2360 return !1; 2361 } 2362 function Le(e, t, n, r, i, o) { 2363 var a, s; 2364 if ("object" == typeof t) { 2365 for (s in ("string" != typeof n && ((r = r || n), (n = void 0)), t)) 2366 Le(e, s, n, r, t[s], o); 2367 return e; 2368 } 2369 if ( 2370 (null == r && null == i 2371 ? ((i = n), (r = n = void 0)) 2372 : null == i && 2373 ("string" == typeof n 2374 ? ((i = r), (r = void 0)) 2375 : ((i = r), (r = n), (n = void 0))), 2376 !1 === i) 2377 ) 2378 i = qe; 2379 else if (!i) return e; 2380 return ( 2381 1 === o && 2382 ((a = i), 2383 ((i = function (e) { 2384 return ce().off(e), a.apply(this, arguments); 2385 }).guid = a.guid || (a.guid = ce.guid++))), 2386 e.each(function () { 2387 ce.event.add(this, t, i, r, n); 2388 }) 2389 ); 2390 } 2391 function He(e, r, t) { 2392 t 2393 ? (_.set(e, r, !1), 2394 ce.event.add(e, r, { 2395 namespace: !1, 2396 handler: function (e) { 2397 var t, 2398 n = _.get(this, r); 2399 if (1 & e.isTrigger && this[r]) { 2400 if (n) 2401 (ce.event.special[r] || {}).delegateType && e.stopPropagation(); 2402 else if ( 2403 ((n = ae.call(arguments)), 2404 _.set(this, r, n), 2405 this[r](), 2406 (t = _.get(this, r)), 2407 _.set(this, r, !1), 2408 n !== t) 2409 ) 2410 return e.stopImmediatePropagation(), e.preventDefault(), t; 2411 } else 2412 n && 2413 (_.set(this, r, ce.event.trigger(n[0], n.slice(1), this)), 2414 e.stopPropagation(), 2415 (e.isImmediatePropagationStopped = Ne)); 2416 }, 2417 })) 2418 : void 0 === _.get(e, r) && ce.event.add(e, r, Ne); 2419 } 2420 (ce.event = { 2421 global: {}, 2422 add: function (t, e, n, r, i) { 2423 var o, 2424 a, 2425 s, 2426 u, 2427 l, 2428 c, 2429 f, 2430 p, 2431 d, 2432 h, 2433 g, 2434 v = _.get(t); 2435 if ($(t)) { 2436 n.handler && ((n = (o = n).handler), (i = o.selector)), 2437 i && ce.find.matchesSelector(J, i), 2438 n.guid || (n.guid = ce.guid++), 2439 (u = v.events) || (u = v.events = Object.create(null)), 2440 (a = v.handle) || 2441 (a = v.handle = 2442 function (e) { 2443 return "undefined" != typeof ce && ce.event.triggered !== e.type 2444 ? ce.event.dispatch.apply(t, arguments) 2445 : void 0; 2446 }), 2447 (l = (e = (e || "").match(D) || [""]).length); 2448 while (l--) 2449 (d = g = (s = De.exec(e[l]) || [])[1]), 2450 (h = (s[2] || "").split(".").sort()), 2451 d && 2452 ((f = ce.event.special[d] || {}), 2453 (d = (i ? f.delegateType : f.bindType) || d), 2454 (f = ce.event.special[d] || {}), 2455 (c = ce.extend( 2456 { 2457 type: d, 2458 origType: g, 2459 data: r, 2460 handler: n, 2461 guid: n.guid, 2462 selector: i, 2463 needsContext: i && ce.expr.match.needsContext.test(i), 2464 namespace: h.join("."), 2465 }, 2466 o 2467 )), 2468 (p = u[d]) || 2469 (((p = u[d] = []).delegateCount = 0), 2470 (f.setup && !1 !== f.setup.call(t, r, h, a)) || 2471 (t.addEventListener && t.addEventListener(d, a))), 2472 f.add && 2473 (f.add.call(t, c), c.handler.guid || (c.handler.guid = n.guid)), 2474 i ? p.splice(p.delegateCount++, 0, c) : p.push(c), 2475 (ce.event.global[d] = !0)); 2476 } 2477 }, 2478 remove: function (e, t, n, r, i) { 2479 var o, 2480 a, 2481 s, 2482 u, 2483 l, 2484 c, 2485 f, 2486 p, 2487 d, 2488 h, 2489 g, 2490 v = _.hasData(e) && _.get(e); 2491 if (v && (u = v.events)) { 2492 l = (t = (t || "").match(D) || [""]).length; 2493 while (l--) 2494 if ( 2495 ((d = g = (s = De.exec(t[l]) || [])[1]), 2496 (h = (s[2] || "").split(".").sort()), 2497 d) 2498 ) { 2499 (f = ce.event.special[d] || {}), 2500 (p = u[(d = (r ? f.delegateType : f.bindType) || d)] || []), 2501 (s = 2502 s[2] && 2503 new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)")), 2504 (a = o = p.length); 2505 while (o--) 2506 (c = p[o]), 2507 (!i && g !== c.origType) || 2508 (n && n.guid !== c.guid) || 2509 (s && !s.test(c.namespace)) || 2510 (r && r !== c.selector && ("**" !== r || !c.selector)) || 2511 (p.splice(o, 1), 2512 c.selector && p.delegateCount--, 2513 f.remove && f.remove.call(e, c)); 2514 a && 2515 !p.length && 2516 ((f.teardown && !1 !== f.teardown.call(e, h, v.handle)) || 2517 ce.removeEvent(e, d, v.handle), 2518 delete u[d]); 2519 } else for (d in u) ce.event.remove(e, d + t[l], n, r, !0); 2520 ce.isEmptyObject(u) && _.remove(e, "handle events"); 2521 } 2522 }, 2523 dispatch: function (e) { 2524 var t, 2525 n, 2526 r, 2527 i, 2528 o, 2529 a, 2530 s = new Array(arguments.length), 2531 u = ce.event.fix(e), 2532 l = (_.get(this, "events") || Object.create(null))[u.type] || [], 2533 c = ce.event.special[u.type] || {}; 2534 for (s[0] = u, t = 1; t < arguments.length; t++) s[t] = arguments[t]; 2535 if ( 2536 ((u.delegateTarget = this), 2537 !c.preDispatch || !1 !== c.preDispatch.call(this, u)) 2538 ) { 2539 (a = ce.event.handlers.call(this, u, l)), (t = 0); 2540 while ((i = a[t++]) && !u.isPropagationStopped()) { 2541 (u.currentTarget = i.elem), (n = 0); 2542 while ((o = i.handlers[n++]) && !u.isImmediatePropagationStopped()) 2543 (u.rnamespace && 2544 !1 !== o.namespace && 2545 !u.rnamespace.test(o.namespace)) || 2546 ((u.handleObj = o), 2547 (u.data = o.data), 2548 void 0 !== 2549 (r = ( 2550 (ce.event.special[o.origType] || {}).handle || o.handler 2551 ).apply(i.elem, s)) && 2552 !1 === (u.result = r) && 2553 (u.preventDefault(), u.stopPropagation())); 2554 } 2555 return c.postDispatch && c.postDispatch.call(this, u), u.result; 2556 } 2557 }, 2558 handlers: function (e, t) { 2559 var n, 2560 r, 2561 i, 2562 o, 2563 a, 2564 s = [], 2565 u = t.delegateCount, 2566 l = e.target; 2567 if (u && l.nodeType && !("click" === e.type && 1 <= e.button)) 2568 for (; l !== this; l = l.parentNode || this) 2569 if (1 === l.nodeType && ("click" !== e.type || !0 !== l.disabled)) { 2570 for (o = [], a = {}, n = 0; n < u; n++) 2571 void 0 === a[(i = (r = t[n]).selector + " ")] && 2572 (a[i] = r.needsContext 2573 ? -1 < ce(i, this).index(l) 2574 : ce.find(i, this, null, [l]).length), 2575 a[i] && o.push(r); 2576 o.length && s.push({ elem: l, handlers: o }); 2577 } 2578 return ( 2579 (l = this), u < t.length && s.push({ elem: l, handlers: t.slice(u) }), s 2580 ); 2581 }, 2582 addProp: function (t, e) { 2583 Object.defineProperty(ce.Event.prototype, t, { 2584 enumerable: !0, 2585 configurable: !0, 2586 get: v(e) 2587 ? function () { 2588 if (this.originalEvent) return e(this.originalEvent); 2589 } 2590 : function () { 2591 if (this.originalEvent) return this.originalEvent[t]; 2592 }, 2593 set: function (e) { 2594 Object.defineProperty(this, t, { 2595 enumerable: !0, 2596 configurable: !0, 2597 writable: !0, 2598 value: e, 2599 }); 2600 }, 2601 }); 2602 }, 2603 fix: function (e) { 2604 return e[ce.expando] ? e : new ce.Event(e); 2605 }, 2606 special: { 2607 load: { noBubble: !0 },
2608 click: { 2609 setup: function (e) { 2610 var t = this || e; 2611 return ( 2612 we.test(t.type) && t.click && fe(t, "input") && He(t, "click", !0), 2613 !1 2614 ); 2615 }, 2616 trigger: function (e) { 2617 var t = this || e; 2618 return ( 2619 we.test(t.type) && t.click && fe(t, "input") && He(t, "click"), !0 2620 ); 2621 }, 2622 _default: function (e) { 2623 var t = e.target; 2624 return ( 2625 (we.test(t.type) && 2626 t.click && 2627 fe(t, "input") && 2628 _.get(t, "click")) || 2629 fe(t, "a") 2630 ); 2631 }, 2632 }, 2633 beforeunload: { 2634 postDispatch: function (e) { 2635 void 0 !== e.result && 2636 e.originalEvent && 2637 (e.originalEvent.returnValue = e.result); 2638 }, 2639 }, 2640 }, 2641 }), 2642 (ce.removeEvent = function (e, t, n) { 2643 e.removeEventListener && e.removeEventListener(t, n); 2644 }), 2645 (ce.Event = function (e, t) { 2646 if (!(this instanceof ce.Event)) return new ce.Event(e, t); 2647 e && e.type 2648 ? ((this.originalEvent = e), 2649 (this.type = e.type), 2650 (this.isDefaultPrevented = 2651 e.defaultPrevented || 2652 (void 0 === e.defaultPrevented && !1 === e.returnValue) 2653 ? Ne 2654 : qe), 2655 (this.target = 2656 e.target && 3 === e.target.nodeType 2657 ? e.target.parentNode 2658 : e.target), 2659 (this.currentTarget = e.currentTarget), 2660 (this.relatedTarget = e.relatedTarget)) 2661 : (this.type = e), 2662 t && ce.extend(this, t), 2663 (this.timeStamp = (e && e.timeStamp) || Date.now()), 2664 (this[ce.expando] = !0); 2665 }), 2666 (ce.Event.prototype = { 2667 constructor: ce.Event, 2668 isDefaultPrevented: qe, 2669 isPropagationStopped: qe, 2670 isImmediatePropagationStopped: qe, 2671 isSimulated: !1, 2672 preventDefault: function () { 2673 var e = this.originalEvent; 2674 (this.isDefaultPrevented = Ne), 2675 e && !this.isSimulated && e.preventDefault(); 2676 }, 2677 stopPropagation: function () { 2678 var e = this.originalEvent; 2679 (this.isPropagationStopped = Ne), 2680 e && !this.isSimulated && e.stopPropagation(); 2681 }, 2682 stopImmediatePropagation: function () { 2683 var e = this.originalEvent; 2684 (this.isImmediatePropagationStopped = Ne), 2685 e && !this.isSimulated && e.stopImmediatePropagation(), 2686 this.stopPropagation(); 2687 }, 2688 }), 2689 ce.each( 2690 { 2691 altKey: !0, 2692 bubbles: !0, 2693 cancelable: !0, 2694 changedTouches: !0, 2695 ctrlKey: !0, 2696 detail: !0, 2697 eventPhase: !0, 2698 metaKey: !0, 2699 pageX: !0, 2700 pageY: !0, 2701 shiftKey: !0, 2702 view: !0, 2703 char: !0, 2704 code: !0, 2705 charCode: !0, 2706 key: !0, 2707 keyCode: !0, 2708 button: !0, 2709 buttons: !0, 2710 clientX: !0, 2711 clientY: !0, 2712 offsetX: !0, 2713 offsetY: !0, 2714 pointerId: !0, 2715 pointerType: !0, 2716 screenX: !0, 2717 screenY: !0, 2718 targetTouches: !0, 2719 toElement: !0, 2720 touches: !0, 2721 which: !0, 2722 }, 2723 ce.event.addProp 2724 ), 2725 ce.each({ focus: "focusin", blur: "focusout" }, function (r, i) { 2726 function o(e) { 2727 if (C.documentMode) { 2728 var t = _.get(this, "handle"), 2729 n = ce.event.fix(e); 2730 (n.type = "focusin" === e.type ? "focus" : "blur"), 2731 (n.isSimulated = !0), 2732 t(e), 2733 n.target === n.currentTarget && t(n); 2734 } else ce.event.simulate(i, e.target, ce.event.fix(e)); 2735 } 2736 (ce.event.special[r] = { 2737 setup: function () { 2738 var e; 2739 if ((He(this, r, !0), !C.documentMode)) return !1; 2740 (e = _.get(this, i)) || this.addEventListener(i, o), 2741 _.set(this, i, (e || 0) + 1); 2742 }, 2743 trigger: function () { 2744 return He(this, r), !0; 2745 }, 2746 teardown: function () { 2747 var e; 2748 if (!C.documentMode) return !1; 2749 (e = _.get(this, i) - 1) 2750 ? _.set(this, i, e) 2751 : (this.removeEventListener(i, o), _.remove(this, i)); 2752 }, 2753 _default: function (e) { 2754 return _.get(e.target, r); 2755 }, 2756 delegateType: i, 2757 }), 2758 (ce.event.special[i] = { 2759 setup: function () { 2760 var e = this.ownerDocument || this.document || this, 2761 t = C.documentMode ? this : e, 2762 n = _.get(t, i); 2763 n || 2764 (C.documentMode 2765 ? this.addEventListener(i, o) 2766 : e.addEventListener(r, o, !0)), 2767 _.set(t, i, (n || 0) + 1); 2768 }, 2769 teardown: function () { 2770 var e = this.ownerDocument || this.document || this, 2771 t = C.documentMode ? this : e, 2772 n = _.get(t, i) - 1; 2773 n 2774 ? _.set(t, i, n) 2775 : (C.documentMode 2776 ? this.removeEventListener(i, o) 2777 : e.removeEventListener(r, o, !0), 2778 _.remove(t, i)); 2779 }, 2780 }); 2781 }), 2782 ce.each( 2783 { 2784 mouseenter: "mouseover", 2785 mouseleave: "mouseout", 2786 pointerenter: "pointerover", 2787 pointerleave: "pointerout", 2788 }, 2789 function (e, i) { 2790 ce.event.special[e] = { 2791 delegateType: i, 2792 bindType: i, 2793 handle: function (e) { 2794 var t, 2795 n = e.relatedTarget, 2796 r = e.handleObj; 2797 return ( 2798 (n && (n === this || ce.contains(this, n))) || 2799 ((e.type = r.origType), 2800 (t = r.handler.apply(this, arguments)), 2801 (e.type = i)), 2802 t 2803 ); 2804 }, 2805 }; 2806 } 2807 ), 2808 ce.fn.extend({ 2809 on: function (e, t, n, r) { 2810 return Le(this, e, t, n, r); 2811 }, 2812 one: function (e, t, n, r) { 2813 return Le(this, e, t, n, r, 1); 2814 }, 2815 off: function (e, t, n) { 2816 var r, i; 2817 if (e && e.preventDefault && e.handleObj) 2818 return ( 2819 (r = e.handleObj), 2820 ce(e.delegateTarget).off( 2821 r.namespace ? r.origType + "." + r.namespace : r.origType, 2822 r.selector, 2823 r.handler 2824 ), 2825 this 2826 ); 2827 if ("object" == typeof e) { 2828 for (i in e) this.off(i, t, e[i]); 2829 return this; 2830 } 2831 return ( 2832 (!1 !== t && "function" != typeof t) || ((n = t), (t = void 0)), 2833 !1 === n && (n = qe), 2834 this.each(function () { 2835 ce.event.remove(this, e, n, t); 2836 }) 2837 ); 2838 }, 2839 }); 2840 var Oe = /<script|<style|<link/i, 2841 Pe = /checked\s*(?:[^=]|=\s*.checked.)/i, 2842 Me = /^\s*<!\[CDATA\[|\]\]>\s*$/g; 2843 function Re(e, t) { 2844 return ( 2845 (fe(e, "table") && 2846 fe(11 !== t.nodeType ? t : t.firstChild, "tr") && 2847 ce(e).children("tbody")[0]) || 2848 e 2849 ); 2850 } 2851 function Ie(e) { 2852 return (e.type = (null !== e.getAttribute("type")) + "/" + e.type), e; 2853 } 2854 function We(e) { 2855 return ( 2856 "true/" === (e.type || "").slice(0, 5) 2857 ? (e.type = e.type.slice(5)) 2858 : e.removeAttribute("type"), 2859 e 2860 ); 2861 } 2862 function Fe(e, t) { 2863 var n, r, i, o, a, s; 2864 if (1 === t.nodeType) { 2865 if (_.hasData(e) && (s = _.get(e).events)) 2866 for (i in (_.remove(t, "handle events"), s)) 2867 for (n = 0, r = s[i].length; n < r; n++) ce.event.add(t, i, s[i][n]); 2868 z.hasData(e) && ((o = z.access(e)), (a = ce.extend({}, o)), z.set(t, a)); 2869 } 2870 } 2871 function $e(n, r, i, o) { 2872 r = g(r); 2873 var e, 2874 t, 2875 a, 2876 s, 2877 u, 2878 l, 2879 c = 0, 2880 f = n.length, 2881 p = f - 1, 2882 d = r[0], 2883 h = v(d); 2884 if (h || (1 < f && "string" == typeof d && !le.checkClone && Pe.test(d))) 2885 return n.each(function (e) { 2886 var t = n.eq(e); 2887 h && (r[0] = d.call(this, e, t.html())), $e(t, r, i, o); 2888 }); 2889 if ( 2890 f && 2891 ((t = (e = Ae(r, n[0].ownerDocument, !1, n, o)).firstChild), 2892 1 === e.childNodes.length && (e = t), 2893 t || o) 2894 ) { 2895 for (s = (a = ce.map(Se(e, "script"), Ie)).length; c < f; c++) 2896 (u = e), 2897 c !== p && 2898 ((u = ce.clone(u, !0, !0)), s && ce.merge(a, Se(u, "script"))), 2899 i.call(n[c], u, c); 2900 if (s) 2901 for ( 2902 l = a[a.length - 1].ownerDocument, ce.map(a, We), c = 0; 2903 c < s; 2904 c++ 2905 ) 2906 (u = a[c]), 2907 Ce.test(u.type || "") && 2908 !_.access(u, "globalEval") && 2909 ce.contains(l, u) && 2910 (u.src && "module" !== (u.type || "").toLowerCase() 2911 ? ce._evalUrl && 2912 !u.noModule && 2913 ce._evalUrl( 2914 u.src, 2915 { nonce: u.nonce || u.getAttribute("nonce") }, 2916 l 2917 ) 2918 : m(u.textContent.replace(Me, ""), u, l)); 2919 } 2920 return n; 2921 } 2922 function Be(e, t, n) { 2923 for (var r, i = t ? ce.filter(t, e) : e, o = 0; null != (r = i[o]); o++) 2924 n || 1 !== r.nodeType || ce.cleanData(Se(r)), 2925 r.parentNode && 2926 (n && K(r) && Ee(Se(r, "script")), r.parentNode.removeChild(r)); 2927 return e; 2928 } 2929 ce.extend({ 2930 htmlPrefilter: function (e) { 2931 return e; 2932 }, 2933 clone: function (e, t, n) { 2934 var r, 2935 i, 2936 o, 2937 a, 2938 s, 2939 u, 2940 l, 2941 c = e.cloneNode(!0), 2942 f = K(e); 2943 if ( 2944 !( 2945 le.noCloneChecked ||
2946 (1 !== e.nodeType && 11 !== e.nodeType) || 2947 ce.isXMLDoc(e) 2948 ) 2949 ) 2950 for (a = Se(c), r = 0, i = (o = Se(e)).length; r < i; r++) 2951 (s = o[r]), 2952 (u = a[r]), 2953 void 0, 2954 "input" === (l = u.nodeName.toLowerCase()) && we.test(s.type) 2955 ? (u.checked = s.checked) 2956 : ("input" !== l && "textarea" !== l) || 2957 (u.defaultValue = s.defaultValue); 2958 if (t) 2959 if (n) 2960 for (o = o || Se(e), a = a || Se(c), r = 0, i = o.length; r < i; r++) 2961 Fe(o[r], a[r]); 2962 else Fe(e, c); 2963 return ( 2964 0 < (a = Se(c, "script")).length && Ee(a, !f && Se(e, "script")), c 2965 ); 2966 }, 2967 cleanData: function (e) { 2968 for (var t, n, r, i = ce.event.special, o = 0; void 0 !== (n = e[o]); o++) 2969 if ($(n)) { 2970 if ((t = n[_.expando])) { 2971 if (t.events) 2972 for (r in t.events) 2973 i[r] ? ce.event.remove(n, r) : ce.removeEvent(n, r, t.handle); 2974 n[_.expando] = void 0; 2975 } 2976 n[z.expando] && (n[z.expando] = void 0); 2977 } 2978 }, 2979 }), 2980 ce.fn.extend({ 2981 detach: function (e) { 2982 return Be(this, e, !0); 2983 }, 2984 remove: function (e) { 2985 return Be(this, e); 2986 }, 2987 text: function (e) { 2988 return M( 2989 this, 2990 function (e) { 2991 return void 0 === e 2992 ? ce.text(this) 2993 : this.empty().each(function () { 2994 (1 !== this.nodeType && 2995 11 !== this.nodeType && 2996 9 !== this.nodeType) || 2997 (this.textContent = e); 2998 }); 2999 }, 3000 null, 3001 e, 3002 arguments.length 3003 ); 3004 }, 3005 append: function () { 3006 return $e(this, arguments, function (e) { 3007 (1 !== this.nodeType && 3008 11 !== this.nodeType && 3009 9 !== this.nodeType) || 3010 Re(this, e).appendChild(e); 3011 }); 3012 }, 3013 prepend: function () { 3014 return $e(this, arguments, function (e) { 3015 if ( 3016 1 === this.nodeType || 3017 11 === this.nodeType || 3018 9 === this.nodeType 3019 ) { 3020 var t = Re(this, e); 3021 t.insertBefore(e, t.firstChild); 3022 } 3023 }); 3024 }, 3025 before: function () { 3026 return $e(this, arguments, function (e) { 3027 this.parentNode && this.parentNode.insertBefore(e, this); 3028 }); 3029 }, 3030 after: function () { 3031 return $e(this, arguments, function (e) { 3032 this.parentNode && this.parentNode.insertBefore(e, this.nextSibling); 3033 }); 3034 }, 3035 empty: function () { 3036 for (var e, t = 0; null != (e = this[t]); t++) 3037 1 === e.nodeType && (ce.cleanData(Se(e, !1)), (e.textContent = "")); 3038 return this; 3039 }, 3040 clone: function (e, t) { 3041 return ( 3042 (e = null != e && e), 3043 (t = null == t ? e : t), 3044 this.map(function () { 3045 return ce.clone(this, e, t); 3046 }) 3047 ); 3048 }, 3049 html: function (e) { 3050 return M( 3051 this, 3052 function (e) { 3053 var t = this[0] || {}, 3054 n = 0, 3055 r = this.length; 3056 if (void 0 === e && 1 === t.nodeType) return t.innerHTML; 3057 if ( 3058 "string" == typeof e && 3059 !Oe.test(e) && 3060 !ke[(Te.exec(e) || ["", ""])[1].toLowerCase()] 3061 ) { 3062 e = ce.htmlPrefilter(e); 3063 try { 3064 for (; n < r; n++) 3065 1 === (t = this[n] || {}).nodeType && 3066 (ce.cleanData(Se(t, !1)), (t.innerHTML = e)); 3067 t = 0; 3068 } catch (e) {} 3069 } 3070 t && this.empty().append(e); 3071 }, 3072 null, 3073 e, 3074 arguments.length 3075 ); 3076 }, 3077 replaceWith: function () { 3078 var n = []; 3079 return $e( 3080 this, 3081 arguments, 3082 function (e) { 3083 var t = this.parentNode; 3084 ce.inArray(this, n) < 0 && 3085 (ce.cleanData(Se(this)), t && t.replaceChild(e, this)); 3086 }, 3087 n 3088 ); 3089 }, 3090 }), 3091 ce.each( 3092 { 3093 appendTo: "append",
3094 prependTo: "prepend", 3095 insertBefore: "before", 3096 insertAfter: "after", 3097 replaceAll: "replaceWith", 3098 }, 3099 function (e, a) { 3100 ce.fn[e] = function (e) { 3101 for (var t, n = [], r = ce(e), i = r.length - 1, o = 0; o <= i; o++) 3102 (t = o === i ? this : this.clone(!0)), 3103 ce(r[o])[a](t), 3104 s.apply(n, t.get()); 3105 return this.pushStack(n); 3106 }; 3107 } 3108 ); 3109 var _e = new RegExp("^(" + G + ")(?!px)[a-z%]+$", "i"), 3110 ze = /^--/, 3111 Xe = function (e) { 3112 var t = e.ownerDocument.defaultView; 3113 return (t && t.opener) || (t = ie), t.getComputedStyle(e); 3114 }, 3115 Ue = function (e, t, n) { 3116 var r, 3117 i, 3118 o = {}; 3119 for (i in t) (o[i] = e.style[i]), (e.style[i] = t[i]); 3120 for (i in ((r = n.call(e)), t)) e.style[i] = o[i]; 3121 return r; 3122 }, 3123 Ve = new RegExp(Q.join("|"), "i"); 3124 function Ge(e, t, n) { 3125 var r, 3126 i, 3127 o, 3128 a, 3129 s = ze.test(t), 3130 u = e.style; 3131 return ( 3132 (n = n || Xe(e)) && 3133 ((a = n.getPropertyValue(t) || n[t]), 3134 s && a && (a = a.replace(ve, "$1") || void 0), 3135 "" !== a || K(e) || (a = ce.style(e, t)), 3136 !le.pixelBoxStyles() && 3137 _e.test(a) && 3138 Ve.test(t) && 3139 ((r = u.width), 3140 (i = u.minWidth), 3141 (o = u.maxWidth), 3142 (u.minWidth = u.maxWidth = u.width = a), 3143 (a = n.width), 3144 (u.width = r), 3145 (u.minWidth = i), 3146 (u.maxWidth = o))), 3147 void 0 !== a ? a + "" : a 3148 ); 3149 } 3150 function Ye(e, t) { 3151 return { 3152 get: function () { 3153 if (!e()) return (this.get = t).apply(this, arguments); 3154 delete this.get; 3155 }, 3156 }; 3157 } 3158 !(function () { 3159 function e() { 3160 if (l) { 3161 (u.style.cssText = 3162 "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0"), 3163 (l.style.cssText = 3164 "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%"), 3165 J.appendChild(u).appendChild(l); 3166 var e = ie.getComputedStyle(l); 3167 (n = "1%" !== e.top), 3168 (s = 12 === t(e.marginLeft)), 3169 (l.style.right = "60%"), 3170 (o = 36 === t(e.right)), 3171 (r = 36 === t(e.width)), 3172 (l.style.position = "absolute"), 3173 (i = 12 === t(l.offsetWidth / 3)), 3174 J.removeChild(u), 3175 (l = null); 3176 } 3177 } 3178 function t(e) { 3179 return Math.round(parseFloat(e)); 3180 } 3181 var n, 3182 r, 3183 i, 3184 o, 3185 a, 3186 s, 3187 u = C.createElement("div"), 3188 l = C.createElement("div"); 3189 l.style && 3190 ((l.style.backgroundClip = "content-box"), 3191 (l.cloneNode(!0).style.backgroundClip = ""), 3192 (le.clearCloneStyle = "content-box" === l.style.backgroundClip), 3193 ce.extend(le, { 3194 boxSizingReliable: function () { 3195 return e(), r; 3196 }, 3197 pixelBoxStyles: function () { 3198 return e(), o; 3199 }, 3200 pixelPosition: function () { 3201 return e(), n; 3202 }, 3203 reliableMarginLeft: function () { 3204 return e(), s; 3205 }, 3206 scrollboxSize: function () { 3207 return e(), i; 3208 }, 3209 reliableTrDimensions: function () { 3210 var e, t, n, r; 3211 return ( 3212 null == a && 3213 ((e = C.createElement("table")), 3214 (t = C.createElement("tr")), 3215 (n = C.createElement("div")), 3216 (e.style.cssText = 3217 "position:absolute;left:-11111px;border-collapse:separate"), 3218 (t.style.cssText = "box-sizing:content-box;border:1px solid"), 3219 (t.style.height = "1px"), 3220 (n.style.height = "9px"), 3221 (n.style.display = "block"), 3222 J.appendChild(e).appendChild(t).appendChild(n), 3223 (r = ie.getComputedStyle(t)), 3224 (a = 3225 parseInt(r.height, 10) + 3226 parseInt(r.borderTopWidth, 10) + 3227 parseInt(r.borderBottomWidth, 10) === 3228 t.offsetHeight), 3229 J.removeChild(e)), 3230 a 3231 ); 3232 }, 3233 })); 3234 })(); 3235 var Qe = ["Webkit", "Moz", "ms"], 3236 Je = C.createElement("div").style, 3237 Ke = {}; 3238 function Ze(e) { 3239 var t = ce.cssProps[e] || Ke[e]; 3240 return ( 3241 t || 3242 (e in Je 3243 ? e 3244 : (Ke[e] = 3245 (function (e) { 3246 var t = e[0].toUpperCase() + e.slice(1), 3247 n = Qe.length; 3248 while (n--) if ((e = Qe[n] + t) in Je) return e; 3249 })(e) || e)) 3250 ); 3251 } 3252 var et = /^(none|table(?!-c[ea]).+)/, 3253 tt = { position: "absolute", visibility: "hidden", display: "block" }, 3254 nt = { letterSpacing: "0", fontWeight: "400" }; 3255 function rt(e, t, n) { 3256 var r = Y.exec(t); 3257 return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t; 3258 } 3259 function it(e, t, n, r, i, o) { 3260 var a = "width" === t ? 1 : 0, 3261 s = 0, 3262 u = 0, 3263 l = 0; 3264 if (n === (r ? "border" : "content")) return 0; 3265 for (; a < 4; a += 2) 3266 "margin" === n && (l += ce.css(e, n + Q[a], !0, i)), 3267 r 3268 ? ("content" === n && (u -= ce.css(e, "padding" + Q[a], !0, i)), 3269 "margin" !== n && 3270 (u -= ce.css(e, "border" + Q[a] + "Width", !0, i))) 3271 : ((u += ce.css(e, "padding" + Q[a], !0, i)), 3272 "padding" !== n 3273 ? (u += ce.css(e, "border" + Q[a] + "Width", !0, i)) 3274 : (s += ce.css(e, "border" + Q[a] + "Width", !0, i))); 3275 return ( 3276 !r && 3277 0 <= o && 3278 (u += 3279 Math.max( 3280 0, 3281 Math.ceil( 3282 e["offset" + t[0].toUpperCase() + t.slice(1)] - o - u - s - 0.5 3283 ) 3284 ) || 0), 3285 u + l 3286 ); 3287 } 3288 function ot(e, t, n) { 3289 var r = Xe(e), 3290 i = 3291 (!le.boxSizingReliable() || n) && 3292 "border-box" === ce.css(e, "boxSizing", !1, r), 3293 o = i, 3294 a = Ge(e, t, r), 3295 s = "offset" + t[0].toUpperCase() + t.slice(1); 3296 if (_e.test(a)) { 3297 if (!n) return a; 3298 a = "auto"; 3299 } 3300 return ( 3301 ((!le.boxSizingReliable() && i) || 3302 (!le.reliableTrDimensions() && fe(e, "tr")) || 3303 "auto" === a || 3304 (!parseFloat(a) && "inline" === ce.css(e, "display", !1, r))) && 3305 e.getClientRects().length && 3306 ((i = "border-box" === ce.css(e, "boxSizing", !1, r)), 3307 (o = s in e) && (a = e[s])), 3308 (a = parseFloat(a) || 0) + 3309 it(e, t, n || (i ? "border" : "content"), o, r, a) + 3310 "px" 3311 ); 3312 } 3313 function at(e, t, n, r, i) { 3314 return new at.prototype.init(e, t, n, r, i); 3315 } 3316 ce.extend({ 3317 cssHooks: { 3318 opacity: { 3319 get: function (e, t) { 3320 if (t) { 3321 var n = Ge(e, "opacity"); 3322 return "" === n ? "1" : n; 3323 } 3324 }, 3325 }, 3326 }, 3327 cssNumber: { 3328 animationIterationCount: !0, 3329 aspectRatio: !0, 3330 borderImageSlice: !0, 3331 columnCount: !0, 3332 flexGrow: !0, 3333 flexShrink: !0, 3334 fontWeight: !0, 3335 gridArea: !0, 3336 gridColumn: !0, 3337 gridColumnEnd: !0, 3338 gridColumnStart: !0, 3339 gridRow: !0, 3340 gridRowEnd: !0, 3341 gridRowStart: !0, 3342 lineHeight: !0, 3343 opacity: !0, 3344 order: !0, 3345 orphans: !0, 3346 scale: !0, 3347 widows: !0, 3348 zIndex: !0, 3349 zoom: !0, 3350 fillOpacity: !0, 3351 floodOpacity: !0, 3352 stopOpacity: !0, 3353 strokeMiterlimit: !0, 3354 strokeOpacity: !0, 3355 }, 3356 cssProps: {}, 3357 style: function (e, t, n, r) { 3358 if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { 3359 var i, 3360 o, 3361 a, 3362 s = F(t), 3363 u = ze.test(t), 3364 l = e.style; 3365 if ( 3366 (u || (t = Ze(s)), 3367 (a = ce.cssHooks[t] || ce.cssHooks[s]), 3368 void 0 === n) 3369 ) 3370 return a && "get" in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t]; 3371 "string" === (o = typeof n) && 3372 (i = Y.exec(n)) && 3373 i[1] && 3374 ((n = te(e, t, i)), (o = "number")), 3375 null != n && 3376 n == n && 3377 ("number" !== o || 3378 u || 3379 (n += (i && i[3]) || (ce.cssNumber[s] ? "" : "px")), 3380 le.clearCloneStyle || 3381 "" !== n || 3382 0 !== t.indexOf("background") || 3383 (l[t] = "inherit"), 3384 (a && "set" in a && void 0 === (n = a.set(e, n, r))) || 3385 (u ? l.setProperty(t, n) : (l[t] = n))); 3386 } 3387 }, 3388 css: function (e, t, n, r) { 3389 var i, 3390 o, 3391 a, 3392 s = F(t); 3393 return ( 3394 ze.test(t) || (t = Ze(s)), 3395 (a = ce.cssHooks[t] || ce.cssHooks[s]) && 3396 "get" in a && 3397 (i = a.get(e, !0, n)), 3398 void 0 === i && (i = Ge(e, t, r)), 3399 "normal" === i && t in nt && (i = nt[t]), 3400 "" === n || n 3401 ? ((o = parseFloat(i)), !0 === n || isFinite(o) ? o || 0 : i) 3402 : i 3403 ); 3404 }, 3405 }), 3406 ce.each(["height", "width"], function (e, u) { 3407 ce.cssHooks[u] = { 3408 get: function (e, t, n) { 3409 if (t) 3410 return !et.test(ce.css(e, "display")) || 3411 (e.getClientRects().length && e.getBoundingClientRect().width) 3412 ? ot(e, u, n) 3413 : Ue(e, tt, function () { 3414 return ot(e, u, n); 3415 }); 3416 }, 3417 set: function (e, t, n) { 3418 var r, 3419 i = Xe(e), 3420 o = !le.scrollboxSize() && "absolute" === i.position, 3421 a = (o || n) && "border-box" === ce.css(e, "boxSizing", !1, i), 3422 s = n ? it(e, u, n, a, i) : 0; 3423 return ( 3424 a && 3425 o && 3426 (s -= Math.ceil( 3427 e["offset" + u[0].toUpperCase() + u.slice(1)] - 3428 parseFloat(i[u]) - 3429 it(e, u, "border", !1, i) - 3430 0.5 3431 )), 3432 s && 3433 (r = Y.exec(t)) && 3434 "px" !== (r[3] || "px") && 3435 ((e.style[u] = t), (t = ce.css(e, u))), 3436 rt(0, t, s) 3437 ); 3438 }, 3439 }; 3440 }), 3441 (ce.cssHooks.marginLeft = Ye(le.reliableMarginLeft, function (e, t) { 3442 if (t) 3443 return ( 3444 (parseFloat(Ge(e, "marginLeft")) || 3445 e.getBoundingClientRect().left - 3446 Ue(e, { marginLeft: 0 }, function () { 3447 return e.getBoundingClientRect().left; 3448 })) + "px" 3449 ); 3450 })), 3451 ce.each({ margin: "", padding: "", border: "Width" }, function (i, o) { 3452 (ce.cssHooks[i + o] = { 3453 expand: function (e) { 3454 for ( 3455 var t = 0, n = {}, r = "string" == typeof e ? e.split(" ") : [e]; 3456 t < 4; 3457 t++ 3458 ) 3459 n[i + Q[t] + o] = r[t] || r[t - 2] || r[0]; 3460 return n; 3461 }, 3462 }), 3463 "margin" !== i && (ce.cssHooks[i + o].set = rt); 3464 }), 3465 ce.fn.extend({ 3466 css: function (e, t) { 3467 return M( 3468 this, 3469 function (e, t, n) { 3470 var r, 3471 i, 3472 o = {}, 3473 a = 0; 3474 if (Array.isArray(t)) { 3475 for (r = Xe(e), i = t.length; a < i; a++) 3476 o[t[a]] = ce.css(e, t[a], !1, r); 3477 return o; 3478 } 3479 return void 0 !== n ? ce.style(e, t, n) : ce.css(e, t); 3480 }, 3481 e, 3482 t, 3483 1 < arguments.length 3484 ); 3485 }, 3486 }), 3487 (((ce.Tween = at).prototype = { 3488 constructor: at, 3489 init: function (e, t, n, r, i, o) { 3490 (this.elem = e), 3491 (this.prop = n), 3492 (this.easing = i || ce.easing._default), 3493 (this.options = t), 3494 (this.start = this.now = this.cur()), 3495 (this.end = r), 3496 (this.unit = o || (ce.cssNumber[n] ? "" : "px")); 3497 }, 3498 cur: function () { 3499 var e = at.propHooks[this.prop]; 3500 return e && e.get ? e.get(this) : at.propHooks._default.get(this); 3501 }, 3502 run: function (e) { 3503 var t, 3504 n = at.propHooks[this.prop]; 3505 return ( 3506 this.options.duration 3507 ? (this.pos = t = 3508 ce.easing[this.easing]( 3509 e, 3510 this.options.duration * e, 3511 0, 3512 1, 3513 this.options.duration 3514 )) 3515 : (this.pos = t = e),
3516 (this.now = (this.end - this.start) * t + this.start), 3517 this.options.step && 3518 this.options.step.call(this.elem, this.now, this), 3519 n && n.set ? n.set(this) : at.propHooks._default.set(this), 3520 this 3521 ); 3522 }, 3523 }).init.prototype = at.prototype), 3524 ((at.propHooks = { 3525 _default: { 3526 get: function (e) { 3527 var t; 3528 return 1 !== e.elem.nodeType || 3529 (null != e.elem[e.prop] && null == e.elem.style[e.prop]) 3530 ? e.elem[e.prop] 3531 : (t = ce.css(e.elem, e.prop, "")) && "auto" !== t 3532 ? t 3533 : 0; 3534 }, 3535 set: function (e) { 3536 ce.fx.step[e.prop] 3537 ? ce.fx.step[e.prop](e) 3538 : 1 !== e.elem.nodeType || 3539 (!ce.cssHooks[e.prop] && null == e.elem.style[Ze(e.prop)]) 3540 ? (e.elem[e.prop] = e.now) 3541 : ce.style(e.elem, e.prop, e.now + e.unit); 3542 }, 3543 }, 3544 }).scrollTop = at.propHooks.scrollLeft = 3545 { 3546 set: function (e) { 3547 e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now); 3548 }, 3549 }), 3550 (ce.easing = { 3551 linear: function (e) { 3552 return e; 3553 }, 3554 swing: function (e) { 3555 return 0.5 - Math.cos(e * Math.PI) / 2; 3556 }, 3557 _default: "swing", 3558 }), 3559 (ce.fx = at.prototype.init), 3560 (ce.fx.step = {}); 3561 var st, 3562 ut, 3563 lt, 3564 ct, 3565 ft = /^(?:toggle|show|hide)$/, 3566 pt = /queueHooks$/; 3567 function dt() { 3568 ut && 3569 (!1 === C.hidden && ie.requestAnimationFrame 3570 ? ie.requestAnimationFrame(dt) 3571 : ie.setTimeout(dt, ce.fx.interval), 3572 ce.fx.tick()); 3573 } 3574 function ht() { 3575 return ( 3576 ie.setTimeout(function () { 3577 st = void 0; 3578 }), 3579 (st = Date.now()) 3580 ); 3581 } 3582 function gt(e, t) { 3583 var n, 3584 r = 0, 3585 i = { height: e }; 3586 for (t = t ? 1 : 0; r < 4; r += 2 - t) 3587 i["margin" + (n = Q[r])] = i["padding" + n] = e; 3588 return t && (i.opacity = i.width = e), i; 3589 } 3590 function vt(e, t, n) { 3591 for ( 3592 var r, 3593 i = (yt.tweeners[t] || []).concat(yt.tweeners["*"]), 3594 o = 0, 3595 a = i.length; 3596 o < a; 3597 o++ 3598 ) 3599 if ((r = i[o].call(n, t, e))) return r; 3600 } 3601 function yt(o, e, t) { 3602 var n, 3603 a, 3604 r = 0, 3605 i = yt.prefilters.length, 3606 s = ce.Deferred().always(function () { 3607 delete u.elem; 3608 }), 3609 u = function () { 3610 if (a) return !1; 3611 for ( 3612 var e = st || ht(), 3613 t = Math.max(0, l.startTime + l.duration - e), 3614 n = 1 - (t / l.duration || 0), 3615 r = 0, 3616 i = l.tweens.length; 3617 r < i; 3618 r++ 3619 ) 3620 l.tweens[r].run(n); 3621 return ( 3622 s.notifyWith(o, [l, n, t]), 3623 n < 1 && i 3624 ? t 3625 : (i || s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l]), !1) 3626 ); 3627 }, 3628 l = s.promise({ 3629 elem: o, 3630 props: ce.extend({}, e), 3631 opts: ce.extend( 3632 !0, 3633 { specialEasing: {}, easing: ce.easing._default }, 3634 t 3635 ), 3636 originalProperties: e, 3637 originalOptions: t, 3638 startTime: st || ht(), 3639 duration: t.duration, 3640 tweens: [], 3641 createTween: function (e, t) { 3642 var n = ce.Tween( 3643 o, 3644 l.opts, 3645 e, 3646 t, 3647 l.opts.specialEasing[e] || l.opts.easing 3648 ); 3649 return l.tweens.push(n), n; 3650 }, 3651 stop: function (e) { 3652 var t = 0, 3653 n = e ? l.tweens.length : 0; 3654 if (a) return this; 3655 for (a = !0; t < n; t++) l.tweens[t].run(1); 3656 return ( 3657 e 3658 ? (s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l, e])) 3659 : s.rejectWith(o, [l, e]), 3660 this 3661 ); 3662 }, 3663 }), 3664 c = l.props; 3665 for ( 3666 !(function (e, t) { 3667 var n, r, i, o, a; 3668 for (n in e) 3669 if ( 3670 ((i = t[(r = F(n))]), 3671 (o = e[n]), 3672 Array.isArray(o) && ((i = o[1]), (o = e[n] = o[0])), 3673 n !== r && ((e[r] = o), delete e[n]),
3674 (a = ce.cssHooks[r]) && ("expand" in a)) 3675 ) 3676 for (n in ((o = a.expand(o)), delete e[r], o)) 3677 (n in e) || ((e[n] = o[n]), (t[n] = i)); 3678 else t[r] = i; 3679 })(c, l.opts.specialEasing); 3680 r < i; 3681 r++ 3682 ) 3683 if ((n = yt.prefilters[r].call(l, o, c, l.opts))) 3684 return ( 3685 v(n.stop) && 3686 (ce._queueHooks(l.elem, l.opts.queue).stop = n.stop.bind(n)), 3687 n 3688 ); 3689 return ( 3690 ce.map(c, vt, l), 3691 v(l.opts.start) && l.opts.start.call(o, l), 3692 l 3693 .progress(l.opts.progress) 3694 .done(l.opts.done, l.opts.complete) 3695 .fail(l.opts.fail) 3696 .always(l.opts.always), 3697 ce.fx.timer(ce.extend(u, { elem: o, anim: l, queue: l.opts.queue })), 3698 l 3699 ); 3700 } 3701 (ce.Animation = ce.extend(yt, { 3702 tweeners: { 3703 "*": [ 3704 function (e, t) { 3705 var n = this.createTween(e, t); 3706 return te(n.elem, e, Y.exec(t), n), n; 3707 }, 3708 ], 3709 }, 3710 tweener: function (e, t) { 3711 v(e) ? ((t = e), (e = ["*"])) : (e = e.match(D)); 3712 for (var n, r = 0, i = e.length; r < i; r++) 3713 (n = e[r]), 3714 (yt.tweeners[n] = yt.tweeners[n] || []), 3715 yt.tweeners[n].unshift(t); 3716 }, 3717 prefilters: [ 3718 function (e, t, n) { 3719 var r, 3720 i, 3721 o, 3722 a, 3723 s, 3724 u, 3725 l, 3726 c, 3727 f = "width" in t || "height" in t, 3728 p = this, 3729 d = {}, 3730 h = e.style, 3731 g = e.nodeType && ee(e), 3732 v = _.get(e, "fxshow"); 3733 for (r in (n.queue || 3734 (null == (a = ce._queueHooks(e, "fx")).unqueued && 3735 ((a.unqueued = 0), 3736 (s = a.empty.fire), 3737 (a.empty.fire = function () { 3738 a.unqueued || s(); 3739 })), 3740 a.unqueued++, 3741 p.always(function () { 3742 p.always(function () { 3743 a.unqueued--, ce.queue(e, "fx").length || a.empty.fire(); 3744 }); 3745 })), 3746 t)) 3747 if (((i = t[r]), ft.test(i))) { 3748 if ( 3749 (delete t[r], 3750 (o = o || "toggle" === i), 3751 i === (g ? "hide" : "show")) 3752 ) { 3753 if ("show" !== i || !v || void 0 === v[r]) continue; 3754 g = !0; 3755 } 3756 d[r] = (v && v[r]) || ce.style(e, r); 3757 } 3758 if ((u = !ce.isEmptyObject(t)) || !ce.isEmptyObject(d)) 3759 for (r in (f && 3760 1 === e.nodeType && 3761 ((n.overflow = [h.overflow, h.overflowX, h.overflowY]), 3762 null == (l = v && v.display) && (l = _.get(e, "display")), 3763 "none" === (c = ce.css(e, "display")) && 3764 (l 3765 ? (c = l) 3766 : (re([e], !0), 3767 (l = e.style.display || l), 3768 (c = ce.css(e, "display")), 3769 re([e]))), 3770 ("inline" === c || ("inline-block" === c && null != l)) && 3771 "none" === ce.css(e, "float") && 3772 (u || 3773 (p.done(function () { 3774 h.display = l; 3775 }), 3776 null == l && ((c = h.display), (l = "none" === c ? "" : c))), 3777 (h.display = "inline-block"))), 3778 n.overflow && 3779 ((h.overflow = "hidden"), 3780 p.always(function () { 3781 (h.overflow = n.overflow[0]), 3782 (h.overflowX = n.overflow[1]), 3783 (h.overflowY = n.overflow[2]); 3784 })), 3785 (u = !1), 3786 d)) 3787 u || 3788 (v 3789 ? "hidden" in v && (g = v.hidden) 3790 : (v = _.access(e, "fxshow", { display: l })), 3791 o && (v.hidden = !g), 3792 g && re([e], !0), 3793 p.done(function () { 3794 for (r in (g || re([e]), _.remove(e, "fxshow"), d)) 3795 ce.style(e, r, d[r]); 3796 })), 3797 (u = vt(g ? v[r] : 0, r, p)), 3798 r in v || 3799 ((v[r] = u.start), g && ((u.end = u.start), (u.start = 0))); 3800 }, 3801 ], 3802 prefilter: function (e, t) { 3803 t ? yt.prefilters.unshift(e) : yt.prefilters.push(e); 3804 }, 3805 })), 3806 (ce.speed = function (e, t, n) { 3807 var r = 3808 e && "object" == typeof e 3809 ? ce.extend({}, e) 3810 : { 3811 complete: n || (!n && t) || (v(e) && e), 3812 duration: e, 3813 easing: (n && t) || (t && !v(t) && t), 3814 }; 3815 return ( 3816 ce.fx.off 3817 ? (r.duration = 0) 3818 : "number" != typeof r.duration && 3819 (r.duration in ce.fx.speeds 3820 ? (r.duration = ce.fx.speeds[r.duration]) 3821 : (r.duration = ce.fx.speeds._default)), 3822 (null != r.queue && !0 !== r.queue) || (r.queue = "fx"), 3823 (r.old = r.complete), 3824 (r.complete = function () { 3825 v(r.old) && r.old.call(this), r.queue && ce.dequeue(this, r.queue); 3826 }), 3827 r 3828 ); 3829 }), 3830 ce.fn.extend({ 3831 fadeTo: function (e, t, n, r) { 3832 return this.filter(ee) 3833 .css("opacity", 0) 3834 .show() 3835 .end() 3836 .animate({ opacity: t }, e, n, r); 3837 }, 3838 animate: function (t, e, n, r) { 3839 var i = ce.isEmptyObject(t), 3840 o = ce.speed(e, n, r), 3841 a = function () { 3842 var e = yt(this, ce.extend({}, t), o); 3843 (i || _.get(this, "finish")) && e.stop(!0); 3844 }; 3845 return ( 3846 (a.finish = a), 3847 i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a) 3848 ); 3849 }, 3850 stop: function (i, e, o) { 3851 var a = function (e) { 3852 var t = e.stop; 3853 delete e.stop, t(o); 3854 }; 3855 return ( 3856 "string" != typeof i && ((o = e), (e = i), (i = void 0)), 3857 e && this.queue(i || "fx", []), 3858 this.each(function () { 3859 var e = !0, 3860 t = null != i && i + "queueHooks", 3861 n = ce.timers, 3862 r = _.get(this); 3863 if (t) r[t] && r[t].stop && a(r[t]); 3864 else for (t in r) r[t] && r[t].stop && pt.test(t) && a(r[t]); 3865 for (t = n.length; t--; ) 3866 n[t].elem !== this || 3867 (null != i && n[t].queue !== i) || 3868 (n[t].anim.stop(o), (e = !1), n.splice(t, 1)); 3869 (!e && o) || ce.dequeue(this, i); 3870 }) 3871 ); 3872 }, 3873 finish: function (a) { 3874 return ( 3875 !1 !== a && (a = a || "fx"), 3876 this.each(function () { 3877 var e, 3878 t = _.get(this), 3879 n = t[a + "queue"], 3880 r = t[a + "queueHooks"], 3881 i = ce.timers, 3882 o = n ? n.length : 0; 3883 for ( 3884 t.finish = !0, 3885 ce.queue(this, a, []), 3886 r && r.stop && r.stop.call(this, !0), 3887 e = i.length; 3888 e--; 3889 3890 ) 3891 i[e].elem === this && 3892 i[e].queue === a && 3893 (i[e].anim.stop(!0), i.splice(e, 1)); 3894 for (e = 0; e < o; e++) 3895 n[e] && n[e].finish && n[e].finish.call(this); 3896 delete t.finish; 3897 }) 3898 ); 3899 }, 3900 }), 3901 ce.each(["toggle", "show", "hide"], function (e, r) { 3902 var i = ce.fn[r]; 3903 ce.fn[r] = function (e, t, n) { 3904 return null == e || "boolean" == typeof e 3905 ? i.apply(this, arguments) 3906 : this.animate(gt(r, !0), e, t, n); 3907 }; 3908 }), 3909 ce.each( 3910 { 3911 slideDown: gt("show"), 3912 slideUp: gt("hide"), 3913 slideToggle: gt("toggle"), 3914 fadeIn: { opacity: "show" }, 3915 fadeOut: { opacity: "hide" }, 3916 fadeToggle: { opacity: "toggle" }, 3917 }, 3918 function (e, r) { 3919 ce.fn[e] = function (e, t, n) { 3920 return this.animate(r, e, t, n); 3921 }; 3922 } 3923 ), 3924 (ce.timers = []), 3925 (ce.fx.tick = function () { 3926 var e, 3927 t = 0, 3928 n = ce.timers; 3929 for (st = Date.now(); t < n.length; t++) 3930 (e = n[t])() || n[t] !== e || n.splice(t--, 1); 3931 n.length || ce.fx.stop(), (st = void 0); 3932 }), 3933 (ce.fx.timer = function (e) { 3934 ce.timers.push(e), ce.fx.start(); 3935 }), 3936 (ce.fx.interval = 13), 3937 (ce.fx.start = function () { 3938 ut || ((ut = !0), dt()); 3939 }), 3940 (ce.fx.stop = function () { 3941 ut = null; 3942 }), 3943 (ce.fx.speeds = { slow: 600, fast: 200, _default: 400 }),
3944 (ce.fn.delay = function (r, e) { 3945 return ( 3946 (r = (ce.fx && ce.fx.speeds[r]) || r), 3947 (e = e || "fx"), 3948 this.queue(e, function (e, t) { 3949 var n = ie.setTimeout(e, r); 3950 t.stop = function () { 3951 ie.clearTimeout(n); 3952 }; 3953 }) 3954 ); 3955 }), 3956 (lt = C.createElement("input")), 3957 (ct = C.createElement("select").appendChild(C.createElement("option"))), 3958 (lt.type = "checkbox"), 3959 (le.checkOn = "" !== lt.value), 3960 (le.optSelected = ct.selected), 3961 ((lt = C.createElement("input")).value = "t"), 3962 (lt.type = "radio"), 3963 (le.radioValue = "t" === lt.value); 3964 var mt, 3965 xt = ce.expr.attrHandle; 3966 ce.fn.extend({ 3967 attr: function (e, t) { 3968 return M(this, ce.attr, e, t, 1 < arguments.length); 3969 }, 3970 removeAttr: function (e) { 3971 return this.each(function () { 3972 ce.removeAttr(this, e); 3973 }); 3974 }, 3975 }), 3976 ce.extend({ 3977 attr: function (e, t, n) { 3978 var r, 3979 i, 3980 o = e.nodeType; 3981 if (3 !== o && 8 !== o && 2 !== o) 3982 return "undefined" == typeof e.getAttribute 3983 ? ce.prop(e, t, n) 3984 : ((1 === o && ce.isXMLDoc(e)) || 3985 (i = 3986 ce.attrHooks[t.toLowerCase()] || 3987 (ce.expr.match.bool.test(t) ? mt : void 0)), 3988 void 0 !== n 3989 ? null === n 3990 ? void ce.removeAttr(e, t) 3991 : i && "set" in i && void 0 !== (r = i.set(e, n, t)) 3992 ? r 3993 : (e.setAttribute(t, n + ""), n) 3994 : i && "get" in i && null !== (r = i.get(e, t)) 3995 ? r 3996 : null == (r = ce.find.attr(e, t)) 3997 ? void 0 3998 : r); 3999 }, 4000 attrHooks: { 4001 type: { 4002 set: function (e, t) { 4003 if (!le.radioValue && "radio" === t && fe(e, "input")) { 4004 var n = e.value; 4005 return e.setAttribute("type", t), n && (e.value = n), t; 4006 } 4007 }, 4008 }, 4009 }, 4010 removeAttr: function (e, t) { 4011 var n, 4012 r = 0, 4013 i = t && t.match(D); 4014 if (i && 1 === e.nodeType) while ((n = i[r++])) e.removeAttribute(n); 4015 }, 4016 }), 4017 (mt = { 4018 set: function (e, t, n) { 4019 return !1 === t ? ce.removeAttr(e, n) : e.setAttribute(n, n), n; 4020 }, 4021 }), 4022 ce.each(ce.expr.match.bool.source.match(/\w+/g), function (e, t) { 4023 var a = xt[t] || ce.find.attr; 4024 xt[t] = function (e, t, n) { 4025 var r, 4026 i, 4027 o = t.toLowerCase(); 4028 return ( 4029 n || 4030 ((i = xt[o]), 4031 (xt[o] = r), 4032 (r = null != a(e, t, n) ? o : null), 4033 (xt[o] = i)), 4034 r 4035 ); 4036 }; 4037 }); 4038 var bt = /^(?:input|select|textarea|button)$/i, 4039 wt = /^(?:a|area)$/i; 4040 function Tt(e) { 4041 return (e.match(D) || []).join(" "); 4042 } 4043 function Ct(e) { 4044 return (e.getAttribute && e.getAttribute("class")) || ""; 4045 } 4046 function kt(e) { 4047 return Array.isArray(e) ? e : ("string" == typeof e && e.match(D)) || []; 4048 } 4049 ce.fn.extend({ 4050 prop: function (e, t) { 4051 return M(this, ce.prop, e, t, 1 < arguments.length); 4052 }, 4053 removeProp: function (e) { 4054 return this.each(function () { 4055 delete this[ce.propFix[e] || e]; 4056 }); 4057 }, 4058 }), 4059 ce.extend({ 4060 prop: function (e, t, n) { 4061 var r, 4062 i, 4063 o = e.nodeType; 4064 if (3 !== o && 8 !== o && 2 !== o) 4065 return ( 4066 (1 === o && ce.isXMLDoc(e)) || 4067 ((t = ce.propFix[t] || t), (i = ce.propHooks[t])), 4068 void 0 !== n 4069 ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) 4070 ? r 4071 : (e[t] = n) 4072 : i && "get" in i && null !== (r = i.get(e, t)) 4073 ? r 4074 : e[t] 4075 ); 4076 }, 4077 propHooks: { 4078 tabIndex: { 4079 get: function (e) { 4080 var t = ce.find.attr(e, "tabindex"); 4081 return t 4082 ? parseInt(t, 10) 4083 : bt.test(e.nodeName) || (wt.test(e.nodeName) && e.href) 4084 ? 0 4085 : -1; 4086 }, 4087 }, 4088 }, 4089 propFix: { for: "htmlFor", class: "className" }, 4090 }),
4091 le.optSelected || 4092 (ce.propHooks.selected = { 4093 get: function (e) { 4094 var t = e.parentNode; 4095 return t && t.parentNode && t.parentNode.selectedIndex, null; 4096 }, 4097 set: function (e) { 4098 var t = e.parentNode; 4099 t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex); 4100 }, 4101 }), 4102 ce.each( 4103 [ 4104 "tabIndex", 4105 "readOnly", 4106 "maxLength", 4107 "cellSpacing", 4108 "cellPadding", 4109 "rowSpan", 4110 "colSpan", 4111 "useMap", 4112 "frameBorder", 4113 "contentEditable", 4114 ], 4115 function () { 4116 ce.propFix[this.toLowerCase()] = this; 4117 } 4118 ), 4119 ce.fn.extend({ 4120 addClass: function (t) { 4121 var e, n, r, i, o, a; 4122 return v(t) 4123 ? this.each(function (e) { 4124 ce(this).addClass(t.call(this, e, Ct(this))); 4125 }) 4126 : (e = kt(t)).length 4127 ? this.each(function () { 4128 if ( 4129 ((r = Ct(this)), (n = 1 === this.nodeType && " " + Tt(r) + " ")) 4130 ) { 4131 for (o = 0; o < e.length; o++) 4132 (i = e[o]), n.indexOf(" " + i + " ") < 0 && (n += i + " "); 4133 (a = Tt(n)), r !== a && this.setAttribute("class", a); 4134 } 4135 }) 4136 : this; 4137 }, 4138 removeClass: function (t) { 4139 var e, n, r, i, o, a; 4140 return v(t) 4141 ? this.each(function (e) { 4142 ce(this).removeClass(t.call(this, e, Ct(this))); 4143 }) 4144 : arguments.length 4145 ? (e = kt(t)).length 4146 ? this.each(function () { 4147 if ( 4148 ((r = Ct(this)), 4149 (n = 1 === this.nodeType && " " + Tt(r) + " ")) 4150 ) { 4151 for (o = 0; o < e.length; o++) { 4152 i = e[o]; 4153 while (-1 < n.indexOf(" " + i + " ")) 4154 n = n.replace(" " + i + " ", " "); 4155 } 4156 (a = Tt(n)), r !== a && this.setAttribute("class", a); 4157 } 4158 }) 4159 : this 4160 : this.attr("class", ""); 4161 }, 4162 toggleClass: function (t, n) { 4163 var e, 4164 r, 4165 i, 4166 o, 4167 a = typeof t, 4168 s = "string" === a || Array.isArray(t); 4169 return v(t) 4170 ? this.each(function (e) { 4171 ce(this).toggleClass(t.call(this, e, Ct(this), n), n); 4172 }) 4173 : "boolean" == typeof n && s 4174 ? n 4175 ? this.addClass(t) 4176 : this.removeClass(t) 4177 : ((e = kt(t)), 4178 this.each(function () { 4179 if (s) 4180 for (o = ce(this), i = 0; i < e.length; i++) 4181 (r = e[i]), o.hasClass(r) ? o.removeClass(r) : o.addClass(r); 4182 else 4183 (void 0 !== t && "boolean" !== a) || 4184 ((r = Ct(this)) && _.set(this, "__className__", r), 4185 this.setAttribute && 4186 this.setAttribute( 4187 "class", 4188 r || !1 === t ? "" : _.get(this, "__className__") || "" 4189 )); 4190 })); 4191 }, 4192 hasClass: function (e) { 4193 var t, 4194 n, 4195 r = 0; 4196 t = " " + e + " "; 4197 while ((n = this[r++])) 4198 if (1 === n.nodeType && -1 < (" " + Tt(Ct(n)) + " ").indexOf(t)) 4199 return !0; 4200 return !1; 4201 }, 4202 }); 4203 var St = /\r/g; 4204 ce.fn.extend({ 4205 val: function (n) { 4206 var r, 4207 e, 4208 i, 4209 t = this[0]; 4210 return arguments.length 4211 ? ((i = v(n)), 4212 this.each(function (e) { 4213 var t; 4214 1 === this.nodeType && 4215 (null == (t = i ? n.call(this, e, ce(this).val()) : n) 4216 ? (t = "") 4217 : "number" == typeof t 4218 ? (t += "") 4219 : Array.isArray(t) && 4220 (t = ce.map(t, function (e) { 4221 return null == e ? "" : e + ""; 4222 })), 4223 ((r = 4224 ce.valHooks[this.type] || 4225 ce.valHooks[this.nodeName.toLowerCase()]) && 4226 "set" in r && 4227 void 0 !== r.set(this, t, "value")) || 4228 (this.value = t)); 4229 })) 4230 : t 4231 ? (r = ce.valHooks[t.type] || ce.valHooks[t.nodeName.toLowerCase()]) && 4232 "get" in r && 4233 void 0 !== (e = r.get(t, "value")) 4234 ? e 4235 : "string" == typeof (e = t.value) 4236 ? e.replace(St, "") 4237 : null == e 4238 ? "" 4239 : e 4240 : void 0; 4241 }, 4242 }), 4243 ce.extend({ 4244 valHooks: { 4245 option: { 4246 get: function (e) { 4247 var t = ce.find.attr(e, "value"); 4248 return null != t ? t : Tt(ce.text(e)); 4249 }, 4250 }, 4251 select: { 4252 get: function (e) { 4253 var t, 4254 n, 4255 r, 4256 i = e.options, 4257 o = e.selectedIndex, 4258 a = "select-one" === e.type, 4259 s = a ? null : [], 4260 u = a ? o + 1 : i.length; 4261 for (r = o < 0 ? u : a ? o : 0; r < u; r++) 4262 if ( 4263 ((n = i[r]).selected || r === o) && 4264 !n.disabled && 4265 (!n.parentNode.disabled || !fe(n.parentNode, "optgroup")) 4266 ) { 4267 if (((t = ce(n).val()), a)) return t; 4268 s.push(t); 4269 } 4270 return s; 4271 }, 4272 set: function (e, t) { 4273 var n, 4274 r, 4275 i = e.options, 4276 o = ce.makeArray(t), 4277 a = i.length; 4278 while (a--) 4279 ((r = i[a]).selected = 4280 -1 < ce.inArray(ce.valHooks.option.get(r), o)) && (n = !0); 4281 return n || (e.selectedIndex = -1), o; 4282 }, 4283 }, 4284 }, 4285 }), 4286 ce.each(["radio", "checkbox"], function () { 4287 (ce.valHooks[this] = { 4288 set: function (e, t) { 4289 if (Array.isArray(t)) 4290 return (e.checked = -1 < ce.inArray(ce(e).val(), t)); 4291 }, 4292 }), 4293 le.checkOn || 4294 (ce.valHooks[this].get = function (e) { 4295 return null === e.getAttribute("value") ? "on" : e.value; 4296 }); 4297 }); 4298 var Et = ie.location, 4299 jt = { guid: Date.now() }, 4300 At = /\?/; 4301 ce.parseXML = function (e) { 4302 var t, n; 4303 if (!e || "string" != typeof e) return null; 4304 try { 4305 t = new ie.DOMParser().parseFromString(e, "text/xml"); 4306 } catch (e) {} 4307 return ( 4308 (n = t && t.getElementsByTagName("parsererror")[0]), 4309 (t && !n) || 4310 ce.error( 4311 "Invalid XML: " + 4312 (n 4313 ? ce 4314 .map(n.childNodes, function (e) { 4315 return e.textContent; 4316 }) 4317 .join("\n") 4318 : e) 4319 ), 4320 t 4321 ); 4322 }; 4323 var Dt = /^(?:focusinfocus|focusoutblur)$/, 4324 Nt = function (e) { 4325 e.stopPropagation(); 4326 }; 4327 ce.extend(ce.event, { 4328 trigger: function (e, t, n, r) { 4329 var i, 4330 o, 4331 a, 4332 s, 4333 u, 4334 l, 4335 c, 4336 f, 4337 p = [n || C], 4338 d = ue.call(e, "type") ? e.type : e, 4339 h = ue.call(e, "namespace") ? e.namespace.split(".") : []; 4340 if ( 4341 ((o = f = a = n = n || C), 4342 3 !== n.nodeType && 4343 8 !== n.nodeType && 4344 !Dt.test(d + ce.event.triggered) && 4345 (-1 < d.indexOf(".") && ((d = (h = d.split(".")).shift()), h.sort()),
4346 (u = d.indexOf(":") < 0 && "on" + d), 4347 ((e = e[ce.expando] 4348 ? e 4349 : new ce.Event(d, "object" == typeof e && e)).isTrigger = r 4350 ? 2 4351 : 3), 4352 (e.namespace = h.join(".")), 4353 (e.rnamespace = e.namespace 4354 ? new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)") 4355 : null), 4356 (e.result = void 0), 4357 e.target || (e.target = n), 4358 (t = null == t ? [e] : ce.makeArray(t, [e])), 4359 (c = ce.event.special[d] || {}), 4360 r || !c.trigger || !1 !== c.trigger.apply(n, t))) 4361 ) { 4362 if (!r && !c.noBubble && !y(n)) { 4363 for ( 4364 s = c.delegateType || d, Dt.test(s + d) || (o = o.parentNode); 4365 o; 4366 o = o.parentNode 4367 ) 4368 p.push(o), (a = o); 4369 a === (n.ownerDocument || C) && 4370 p.push(a.defaultView || a.parentWindow || ie); 4371 } 4372 i = 0; 4373 while ((o = p[i++]) && !e.isPropagationStopped()) 4374 (f = o), 4375 (e.type = 1 < i ? s : c.bindType || d), 4376 (l = 4377 (_.get(o, "events") || Object.create(null))[e.type] && 4378 _.get(o, "handle")) && l.apply(o, t), 4379 (l = u && o[u]) && 4380 l.apply && 4381 $(o) && 4382 ((e.result = l.apply(o, t)), 4383 !1 === e.result && e.preventDefault()); 4384 return ( 4385 (e.type = d), 4386 r || 4387 e.isDefaultPrevented() || 4388 (c._default && !1 !== c._default.apply(p.pop(), t)) || 4389 !$(n) || 4390 (u && 4391 v(n[d]) && 4392 !y(n) && 4393 ((a = n[u]) && (n[u] = null), 4394 (ce.event.triggered = d), 4395 e.isPropagationStopped() && f.addEventListener(d, Nt), 4396 n[d](), 4397 e.isPropagationStopped() && f.removeEventListener(d, Nt), 4398 (ce.event.triggered = void 0), 4399 a && (n[u] = a))), 4400 e.result 4401 ); 4402 } 4403 }, 4404 simulate: function (e, t, n) { 4405 var r = ce.extend(new ce.Event(), n, { type: e, isSimulated: !0 }); 4406 ce.event.trigger(r, null, t); 4407 }, 4408 }), 4409 ce.fn.extend({ 4410 trigger: function (e, t) { 4411 return this.each(function () { 4412 ce.event.trigger(e, t, this); 4413 }); 4414 }, 4415 triggerHandler: function (e, t) { 4416 var n = this[0]; 4417 if (n) return ce.event.trigger(e, t, n, !0); 4418 }, 4419 }); 4420 var qt = /\[\]$/, 4421 Lt = /\r?\n/g, 4422 Ht = /^(?:submit|button|image|reset|file)$/i, 4423 Ot = /^(?:input|select|textarea|keygen)/i; 4424 function Pt(n, e, r, i) { 4425 var t; 4426 if (Array.isArray(e)) 4427 ce.each(e, function (e, t) { 4428 r || qt.test(n) 4429 ? i(n, t) 4430 : Pt( 4431 n + "[" + ("object" == typeof t && null != t ? e : "") + "]", 4432 t, 4433 r, 4434 i 4435 ); 4436 }); 4437 else if (r || "object" !== x(e)) i(n, e); 4438 else for (t in e) Pt(n + "[" + t + "]", e[t], r, i); 4439 } 4440 (ce.param = function (e, t) { 4441 var n, 4442 r = [], 4443 i = function (e, t) { 4444 var n = v(t) ? t() : t; 4445 r[r.length] = 4446 encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n); 4447 }; 4448 if (null == e) return ""; 4449 if (Array.isArray(e) || (e.jquery && !ce.isPlainObject(e))) 4450 ce.each(e, function () { 4451 i(this.name, this.value); 4452 }); 4453 else for (n in e) Pt(n, e[n], t, i); 4454 return r.join("&"); 4455 }), 4456 ce.fn.extend({ 4457 serialize: function () { 4458 return ce.param(this.serializeArray()); 4459 }, 4460 serializeArray: function () { 4461 return this.map(function () { 4462 var e = ce.prop(this, "elements"); 4463 return e ? ce.makeArray(e) : this; 4464 }) 4465 .filter(function () { 4466 var e = this.type; 4467 return ( 4468 this.name && 4469 !ce(this).is(":disabled") && 4470 Ot.test(this.nodeName) && 4471 !Ht.test(e) && 4472 (this.checked || !we.test(e)) 4473 ); 4474 }) 4475 .map(function (e, t) { 4476 var n = ce(this).val(); 4477 return null == n 4478 ? null 4479 : Array.isArray(n) 4480 ? ce.map(n, function (e) { 4481 return { name: t.name, value: e.replace(Lt, "\r\n") }; 4482 }) 4483 : { name: t.name, value: n.replace(Lt, "\r\n") }; 4484 }) 4485 .get(); 4486 }, 4487 }); 4488 var Mt = /%20/g, 4489 Rt = /#.*$/, 4490 It = /([?&])_=[^&]*/, 4491 Wt = /^(.*?):[ \t]*([^\r\n]*)$/gm, 4492 Ft = /^(?:GET|HEAD)$/, 4493 $t = /^\/\//, 4494 Bt = {}, 4495 _t = {}, 4496 zt = "*/".concat("*"), 4497 Xt = C.createElement("a"); 4498 function Ut(o) { 4499 return function (e, t) { 4500 "string" != typeof e && ((t = e), (e = "*")); 4501 var n, 4502 r = 0, 4503 i = e.toLowerCase().match(D) || []; 4504 if (v(t)) 4505 while ((n = i[r++])) 4506 "+" === n[0] 4507 ? ((n = n.slice(1) || "*"), (o[n] = o[n] || []).unshift(t)) 4508 : (o[n] = o[n] || []).push(t); 4509 }; 4510 } 4511 function Vt(t, i, o, a) { 4512 var s = {}, 4513 u = t === _t; 4514 function l(e) { 4515 var r; 4516 return ( 4517 (s[e] = !0), 4518 ce.each(t[e] || [], function (e, t) { 4519 var n = t(i, o, a); 4520 return "string" != typeof n || u || s[n] 4521 ? u 4522 ? !(r = n) 4523 : void 0 4524 : (i.dataTypes.unshift(n), l(n), !1); 4525 }), 4526 r 4527 ); 4528 } 4529 return l(i.dataTypes[0]) || (!s["*"] && l("*")); 4530 } 4531 function Gt(e, t) { 4532 var n, 4533 r, 4534 i = ce.ajaxSettings.flatOptions || {}; 4535 for (n in t) void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]); 4536 return r && ce.extend(!0, e, r), e; 4537 } 4538 (Xt.href = Et.href), 4539 ce.extend({ 4540 active: 0, 4541 lastModified: {}, 4542 etag: {}, 4543 ajaxSettings: { 4544 url: Et.href, 4545 type: "GET", 4546 isLocal: 4547 /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test( 4548 Et.protocol 4549 ), 4550 global: !0, 4551 processData: !0, 4552 async: !0, 4553 contentType: "application/x-www-form-urlencoded; charset=UTF-8", 4554 accepts: { 4555 "*": zt, 4556 text: "text/plain", 4557 html: "text/html", 4558 xml: "application/xml, text/xml", 4559 json: "application/json, text/javascript", 4560 }, 4561 contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ }, 4562 responseFields: { 4563 xml: "responseXML", 4564 text: "responseText", 4565 json: "responseJSON", 4566 }, 4567 converters: { 4568 "* text": String, 4569 "text html": !0, 4570 "text json": JSON.parse, 4571 "text xml": ce.parseXML, 4572 }, 4573 flatOptions: { url: !0, context: !0 },
4574 }, 4575 ajaxSetup: function (e, t) { 4576 return t ? Gt(Gt(e, ce.ajaxSettings), t) : Gt(ce.ajaxSettings, e); 4577 }, 4578 ajaxPrefilter: Ut(Bt), 4579 ajaxTransport: Ut(_t), 4580 ajax: function (e, t) { 4581 "object" == typeof e && ((t = e), (e = void 0)), (t = t || {}); 4582 var c, 4583 f, 4584 p, 4585 n, 4586 d, 4587 r, 4588 h, 4589 g, 4590 i, 4591 o, 4592 v = ce.ajaxSetup({}, t), 4593 y = v.context || v, 4594 m = v.context && (y.nodeType || y.jquery) ? ce(y) : ce.event, 4595 x = ce.Deferred(), 4596 b = ce.Callbacks("once memory"), 4597 w = v.statusCode || {}, 4598 a = {}, 4599 s = {}, 4600 u = "canceled", 4601 T = { 4602 readyState: 0, 4603 getResponseHeader: function (e) { 4604 var t; 4605 if (h) { 4606 if (!n) { 4607 n = {}; 4608 while ((t = Wt.exec(p))) 4609 n[t[1].toLowerCase() + " "] = ( 4610 n[t[1].toLowerCase() + " "] || [] 4611 ).concat(t[2]); 4612 } 4613 t = n[e.toLowerCase() + " "]; 4614 } 4615 return null == t ? null : t.join(", "); 4616 }, 4617 getAllResponseHeaders: function () { 4618 return h ? p : null; 4619 }, 4620 setRequestHeader: function (e, t) { 4621 return ( 4622 null == h && 4623 ((e = s[e.toLowerCase()] = s[e.toLowerCase()] || e), 4624 (a[e] = t)), 4625 this 4626 ); 4627 }, 4628 overrideMimeType: function (e) { 4629 return null == h && (v.mimeType = e), this; 4630 }, 4631 statusCode: function (e) { 4632 var t; 4633 if (e) 4634 if (h) T.always(e[T.status]); 4635 else for (t in e) w[t] = [w[t], e[t]]; 4636 return this; 4637 }, 4638 abort: function (e) { 4639 var t = e || u; 4640 return c && c.abort(t), l(0, t), this; 4641 }, 4642 }; 4643 if ( 4644 (x.promise(T), 4645 (v.url = ((e || v.url || Et.href) + "").replace( 4646 $t, 4647 Et.protocol + "//" 4648 )), 4649 (v.type = t.method || t.type || v.method || v.type), 4650 (v.dataTypes = (v.dataType || "*").toLowerCase().match(D) || [""]), 4651 null == v.crossDomain) 4652 ) { 4653 r = C.createElement("a"); 4654 try { 4655 (r.href = v.url), 4656 (r.href = r.href), 4657 (v.crossDomain = 4658 Xt.protocol + "//" + Xt.host != r.protocol + "//" + r.host); 4659 } catch (e) { 4660 v.crossDomain = !0; 4661 } 4662 } 4663 if ( 4664 (v.data && 4665 v.processData && 4666 "string" != typeof v.data && 4667 (v.data = ce.param(v.data, v.traditional)), 4668 Vt(Bt, v, t, T), 4669 h) 4670 ) 4671 return T; 4672 for (i in ((g = ce.event && v.global) && 4673 0 == ce.active++ && 4674 ce.event.trigger("ajaxStart"), 4675 (v.type = v.type.toUpperCase()), 4676 (v.hasContent = !Ft.test(v.type)), 4677 (f = v.url.replace(Rt, "")), 4678 v.hasContent 4679 ? v.data && 4680 v.processData && 4681 0 === 4682 (v.contentType || "").indexOf( 4683 "application/x-www-form-urlencoded" 4684 ) && 4685 (v.data = v.data.replace(Mt, "+")) 4686 : ((o = v.url.slice(f.length)), 4687 v.data && 4688 (v.processData || "string" == typeof v.data) && 4689 ((f += (At.test(f) ? "&" : "?") + v.data), delete v.data), 4690 !1 === v.cache && 4691 ((f = f.replace(It, "$1")), 4692 (o = (At.test(f) ? "&" : "?") + "_=" + jt.guid++ + o)), 4693 (v.url = f + o)), 4694 v.ifModified && 4695 (ce.lastModified[f] && 4696 T.setRequestHeader("If-Modified-Since", ce.lastModified[f]), 4697 ce.etag[f] && T.setRequestHeader("If-None-Match", ce.etag[f])), 4698 ((v.data && v.hasContent && !1 !== v.contentType) || t.contentType) && 4699 T.setRequestHeader("Content-Type", v.contentType), 4700 T.setRequestHeader( 4701 "Accept", 4702 v.dataTypes[0] && v.accepts[v.dataTypes[0]] 4703 ? v.accepts[v.dataTypes[0]] + 4704 ("*" !== v.dataTypes[0] ? ", " + zt + "; q=0.01" : "") 4705 : v.accepts["*"] 4706 ), 4707 v.headers)) 4708 T.setRequestHeader(i, v.headers[i]);
4709 if (v.beforeSend && (!1 === v.beforeSend.call(y, T, v) || h)) 4710 return T.abort(); 4711 if ( 4712 ((u = "abort"), 4713 b.add(v.complete), 4714 T.done(v.success), 4715 T.fail(v.error), 4716 (c = Vt(_t, v, t, T))) 4717 ) { 4718 if (((T.readyState = 1), g && m.trigger("ajaxSend", [T, v]), h)) 4719 return T; 4720 v.async && 4721 0 < v.timeout && 4722 (d = ie.setTimeout(function () { 4723 T.abort("timeout"); 4724 }, v.timeout)); 4725 try { 4726 (h = !1), c.send(a, l); 4727 } catch (e) { 4728 if (h) throw e; 4729 l(-1, e); 4730 } 4731 } else l(-1, "No Transport"); 4732 function l(e, t, n, r) { 4733 var i, 4734 o, 4735 a, 4736 s, 4737 u, 4738 l = t; 4739 h || 4740 ((h = !0), 4741 d && ie.clearTimeout(d), 4742 (c = void 0), 4743 (p = r || ""), 4744 (T.readyState = 0 < e ? 4 : 0), 4745 (i = (200 <= e && e < 300) || 304 === e), 4746 n && 4747 (s = (function (e, t, n) { 4748 var r, 4749 i, 4750 o, 4751 a, 4752 s = e.contents, 4753 u = e.dataTypes; 4754 while ("*" === u[0]) 4755 u.shift(), 4756 void 0 === r && 4757 (r = e.mimeType || t.getResponseHeader("Content-Type")); 4758 if (r) 4759 for (i in s) 4760 if (s[i] && s[i].test(r)) { 4761 u.unshift(i); 4762 break; 4763 } 4764 if (u[0] in n) o = u[0]; 4765 else { 4766 for (i in n) { 4767 if (!u[0] || e.converters[i + " " + u[0]]) { 4768 o = i; 4769 break; 4770 } 4771 a || (a = i); 4772 } 4773 o = o || a; 4774 } 4775 if (o) return o !== u[0] && u.unshift(o), n[o]; 4776 })(v, T, n)), 4777 !i && 4778 -1 < ce.inArray("script", v.dataTypes) && 4779 ce.inArray("json", v.dataTypes) < 0 && 4780 (v.converters["text script"] = function () {}), 4781 (s = (function (e, t, n, r) { 4782 var i, 4783 o, 4784 a, 4785 s, 4786 u, 4787 l = {}, 4788 c = e.dataTypes.slice(); 4789 if (c[1]) 4790 for (a in e.converters) l[a.toLowerCase()] = e.converters[a]; 4791 o = c.shift(); 4792 while (o) 4793 if ( 4794 (e.responseFields[o] && (n[e.responseFields[o]] = t), 4795 !u && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), 4796 (u = o), 4797 (o = c.shift())) 4798 ) 4799 if ("*" === o) o = u; 4800 else if ("*" !== u && u !== o) { 4801 if (!(a = l[u + " " + o] || l["* " + o])) 4802 for (i in l) 4803 if ( 4804 (s = i.split(" "))[1] === o && 4805 (a = l[u + " " + s[0]] || l["* " + s[0]]) 4806 ) { 4807 !0 === a 4808 ? (a = l[i]) 4809 : !0 !== l[i] && ((o = s[0]), c.unshift(s[1])); 4810 break; 4811 } 4812 if (!0 !== a) 4813 if (a && e["throws"]) t = a(t); 4814 else 4815 try { 4816 t = a(t); 4817 } catch (e) { 4818 return { 4819 state: "parsererror", 4820 error: a 4821 ? e 4822 : "No conversion from " + u + " to " + o, 4823 }; 4824 } 4825 } 4826 return { state: "success", data: t }; 4827 })(v, s, T, i)), 4828 i 4829 ? (v.ifModified && 4830 ((u = T.getResponseHeader("Last-Modified")) && 4831 (ce.lastModified[f] = u), 4832 (u = T.getResponseHeader("etag")) && (ce.etag[f] = u)), 4833 204 === e || "HEAD" === v.type 4834 ? (l = "nocontent") 4835 : 304 === e 4836 ? (l = "notmodified") 4837 : ((l = s.state), (o = s.data), (i = !(a = s.error)))) 4838 : ((a = l), (!e && l) || ((l = "error"), e < 0 && (e = 0))), 4839 (T.status = e), 4840 (T.statusText = (t || l) + ""), 4841 i ? x.resolveWith(y, [o, l, T]) : x.rejectWith(y, [T, l, a]), 4842 T.statusCode(w), 4843 (w = void 0), 4844 g && m.trigger(i ? "ajaxSuccess" : "ajaxError", [T, v, i ? o : a
4844]), 4845 b.fireWith(y, [T, l]), 4846 g && 4847 (m.trigger("ajaxComplete", [T, v]), 4848 --ce.active || ce.event.trigger("ajaxStop"))); 4849 } 4850 return T; 4851 }, 4852 getJSON: function (e, t, n) { 4853 return ce.get(e, t, n, "json"); 4854 }, 4855 getScript: function (e, t) { 4856 return ce.get(e, void 0, t, "script"); 4857 }, 4858 }), 4859 ce.each(["get", "post"], function (e, i) { 4860 ce[i] = function (e, t, n, r) { 4861 return ( 4862 v(t) && ((r = r || n), (n = t), (t = void 0)), 4863 ce.ajax( 4864 ce.extend( 4865 { url: e, type: i, dataType: r, data: t, success: n }, 4866 ce.isPlainObject(e) && e 4867 ) 4868 ) 4869 ); 4870 }; 4871 }), 4872 ce.ajaxPrefilter(function (e) { 4873 var t; 4874 for (t in e.headers) 4875 "content-type" === t.toLowerCase() && 4876 (e.contentType = e.headers[t] || ""); 4877 }), 4878 (ce._evalUrl = function (e, t, n) { 4879 return ce.ajax({ 4880 url: e, 4881 type: "GET", 4882 dataType: "script", 4883 cache: !0, 4884 async: !1, 4885 global: !1, 4886 converters: { "text script": function () {} }, 4887 dataFilter: function (e) { 4888 ce.globalEval(e, t, n); 4889 }, 4890 }); 4891 }), 4892 ce.fn.extend({ 4893 wrapAll: function (e) { 4894 var t; 4895 return ( 4896 this[0] && 4897 (v(e) && (e = e.call(this[0])), 4898 (t = ce(e, this[0].ownerDocument).eq(0).clone(!0)), 4899 this[0].parentNode && t.insertBefore(this[0]), 4900 t 4901 .map(function () { 4902 var e = this; 4903 while (e.firstElementChild) e = e.firstElementChild; 4904 return e; 4905 }) 4906 .append(this)), 4907 this 4908 ); 4909 }, 4910 wrapInner: function (n) { 4911 return v(n) 4912 ? this.each(function (e) { 4913 ce(this).wrapInner(n.call(this, e)); 4914 }) 4915 : this.each(function () { 4916 var e = ce(this), 4917 t = e.contents(); 4918 t.length ? t.wrapAll(n) : e.append(n); 4919 }); 4920 }, 4921 wrap: function (t) { 4922 var n = v(t); 4923 return this.each(function (e) { 4924 ce(this).wrapAll(n ? t.call(this, e) : t); 4925 }); 4926 }, 4927 unwrap: function (e) { 4928 return ( 4929 this.parent(e) 4930 .not("body") 4931 .each(function () { 4932 ce(this).replaceWith(this.childNodes); 4933 }), 4934 this 4935 ); 4936 }, 4937 }), 4938 (ce.expr.pseudos.hidden = function (e) { 4939 return !ce.expr.pseudos.visible(e); 4940 }), 4941 (ce.expr.pseudos.visible = function (e) { 4942 return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length); 4943 }), 4944 (ce.ajaxSettings.xhr = function () { 4945 try { 4946 return new ie.XMLHttpRequest(); 4947 } catch (e) {} 4948 }); 4949 var Yt = { 0: 200, 1223: 204 }, 4950 Qt = ce.ajaxSettings.xhr(); 4951 (le.cors = !!Qt && "withCredentials" in Qt), 4952 (le.ajax = Qt = !!Qt), 4953 ce.ajaxTransport(function (i) { 4954 var o, a; 4955 if (le.cors || (Qt && !i.crossDomain)) 4956 return { 4957 send: function (e, t) { 4958 var n, 4959 r = i.xhr(); 4960 if ( 4961 (r.open(i.type, i.url, i.async, i.username, i.password), 4962 i.xhrFields) 4963 ) 4964 for (n in i.xhrFields) r[n] = i.xhrFields[n]; 4965 for (n in (i.mimeType && 4966 r.overrideMimeType && 4967 r.overrideMimeType(i.mimeType), 4968 i.crossDomain || 4969 e["X-Requested-With"] || 4970 (e["X-Requested-With"] = "XMLHttpRequest"), 4971 e)) 4972 r.setRequestHeader(n, e[n]); 4973 (o = function (e) { 4974 return function () { 4975 o && 4976 ((o = 4977 a = 4978 r.onload = 4979 r.onerror = 4980 r.onabort = 4981 r.ontimeout = 4982 r.onreadystatechange = 4983 null), 4984 "abort" === e 4985 ? r.abort() 4986 : "error" === e 4987 ? "number" != typeof r.status 4988 ? t(0, "error") 4989 : t(r.status, r.statusText) 4990 : t( 4991 Yt[r.status] || r.status, 4992 r.statusText, 4993 "text" !== (r.responseType || "text") || 4994 "string" != typeof r.responseText 4995 ? { binary: r.response } 4996 : { text: r.responseText }, 4997 r.getAllResponseHeaders() 4998 )); 4999 }; 5000 }), 5001 (r.onload = o()), 5002 (a = r.onerror = r.ontimeout = o("error")), 5003 void 0 !== r.onabort 5004 ? (r.onabort = a) 5005 : (r.onreadystatechange = function () { 5006 4 === r.readyState && 5007 ie.setTimeout(function () { 5008 o && a(); 5009 }); 5010 }), 5011 (o = o("abort")); 5012 try { 5013 r.send((i.hasContent && i.data) || null); 5014 } catch (e) { 5015 if (o) throw e; 5016 } 5017 }, 5018 abort: function () { 5019 o && o(); 5020 }, 5021 }; 5022 }), 5023 ce.ajaxPrefilter(function (e) { 5024 e.crossDomain && (e.contents.script = !1); 5025 }), 5026 ce.ajaxSetup({ 5027 accepts: { 5028 script: 5029 "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript", 5030 }, 5031 contents: { script: /\b(?:java|ecma)script\b/ }, 5032 converters: { 5033 "text script": function (e) { 5034 return ce.globalEval(e), e; 5035 }, 5036 }, 5037 }), 5038 ce.ajaxPrefilter("script", function (e) { 5039 void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET"); 5040 }), 5041 ce.ajaxTransport("script", function (n) { 5042 var r, i; 5043 if (n.crossDomain || n.scriptAttrs) 5044 return { 5045 send: function (e, t) { 5046 (r = ce("<script>") 5047 .attr(n.scriptAttrs || {}) 5048 .prop({ charset: n.scriptCharset, src: n.url }) 5049 .on( 5050 "load error", 5051 (i = function (e) { 5052 r.remove(), 5053 (i = null),
5054 e && t("error" === e.type ? 404 : 200, e.type); 5055 }) 5056 )), 5057 C.head.appendChild(r[0]); 5058 }, 5059 abort: function () { 5060 i && i(); 5061 }, 5062 }; 5063 }); 5064 var Jt, 5065 Kt = [], 5066 Zt = /(=)\?(?=&|$)|\?\?/; 5067 ce.ajaxSetup({ 5068 jsonp: "callback", 5069 jsonpCallback: function () { 5070 var e = Kt.pop() || ce.expando + "_" + jt.guid++; 5071 return (this[e] = !0), e; 5072 }, 5073 }), 5074 ce.ajaxPrefilter("json jsonp", function (e, t, n) { 5075 var r, 5076 i, 5077 o, 5078 a = 5079 !1 !== e.jsonp && 5080 (Zt.test(e.url) 5081 ? "url" 5082 : "string" == typeof e.data && 5083 0 === 5084 (e.contentType || "").indexOf( 5085 "application/x-www-form-urlencoded" 5086 ) && 5087 Zt.test(e.data) && 5088 "data"); 5089 if (a || "jsonp" === e.dataTypes[0]) 5090 return ( 5091 (r = e.jsonpCallback = 5092 v(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback), 5093 a 5094 ? (e[a] = e[a].replace(Zt, "$1" + r)) 5095 : !1 !== e.jsonp && 5096 (e.url += (At.test(e.url) ? "&" : "?") + e.jsonp + "=" + r), 5097 (e.converters["script json"] = function () { 5098 return o || ce.error(r + " was not called"), o[0]; 5099 }), 5100 (e.dataTypes[0] = "json"), 5101 (i = ie[r]), 5102 (ie[r] = function () { 5103 o = arguments; 5104 }), 5105 n.always(function () { 5106 void 0 === i ? ce(ie).removeProp(r) : (ie[r] = i), 5107 e[r] && ((e.jsonpCallback = t.jsonpCallback), Kt.push(r)), 5108 o && v(i) && i(o[0]), 5109 (o = i = void 0); 5110 }), 5111 "script" 5112 ); 5113 }), 5114 (le.createHTMLDocument = 5115 (((Jt = C.implementation.createHTMLDocument("").body).innerHTML = 5116 "<form></form><form></form>"), 5117 2 === Jt.childNodes.length)), 5118 (ce.parseHTML = function (e, t, n) { 5119 return "string" != typeof e 5120 ? [] 5121 : ("boolean" == typeof t && ((n = t), (t = !1)), 5122 t || 5123 (le.createHTMLDocument 5124 ? (((r = (t = 5125 C.implementation.createHTMLDocument("")).createElement( 5126 "base" 5127 )).href = C.location.href), 5128 t.head.appendChild(r)) 5129 : (t = C)), 5130 (o = !n && []), 5131 (i = w.exec(e)) 5132 ? [t.createElement(i[1])] 5133 : ((i = Ae([e], t, o)), 5134 o && o.length && ce(o).remove(), 5135 ce.merge([], i.childNodes))); 5136 var r, i, o; 5137 }), 5138 (ce.fn.load = function (e, t, n) { 5139 var r, 5140 i, 5141 o, 5142 a = this, 5143 s = e.indexOf(" "); 5144 return ( 5145 -1 < s && ((r = Tt(e.slice(s))), (e = e.slice(0, s))), 5146 v(t) 5147 ? ((n = t), (t = void 0)) 5148 : t && "object" == typeof t && (i = "POST"), 5149 0 < a.length && 5150 ce 5151 .ajax({ url: e, type: i || "GET", dataType: "html", data: t }) 5152 .done(function (e) { 5153 (o = arguments), 5154 a.html(r ? ce("<div>").append(ce.parseHTML(e)).find(r) : e); 5155 }) 5156 .always( 5157 n && 5158 function (e, t) { 5159 a.each(function () { 5160 n.apply(this, o || [e.responseText, t, e]); 5161 }); 5162 } 5163 ), 5164 this 5165 ); 5166 }), 5167 (ce.expr.pseudos.animated = function (t) { 5168 return ce.grep(ce.timers, function (e) { 5169 return t === e.elem; 5170 }).length; 5171 }), 5172 (ce.offset = { 5173 setOffset: function (e, t, n) { 5174 var r, 5175 i, 5176 o, 5177 a, 5178 s, 5179 u, 5180 l = ce.css(e, "position"), 5181 c = ce(e), 5182 f = {}; 5183 "static" === l && (e.style.position = "relative"), 5184 (s = c.offset()), 5185 (o = ce.css(e, "top")), 5186 (u = ce.css(e, "left")), 5187 ("absolute" === l || "fixed" === l) && -1 < (o + u).indexOf("auto") 5188 ? ((a = (r = c.position()).top), (i = r.left)) 5189 : ((a = parseFloat(o) || 0), (i = parseFloat(u) || 0)), 5190 v(t) && (t = t.call(e, n, ce.extend({}, s))), 5191 null != t.top && (f.top = t.top - s.top + a), 5192 null != t.left && (f.left = t.left - s.left + i), 5193 "using" in t ? t.using.call(e, f) : c.css(f); 5194 }, 5195 }), 5196 ce.fn.extend({ 5197 offset: function (t) { 5198 if (arguments.length) 5199 return void 0 === t 5200 ? this 5201 : this.each(function (e) { 5202 ce.offset.setOffset(this, t, e); 5203 }); 5204 var e, 5205 n, 5206 r = this[0]; 5207 return r 5208 ? r.getClientRects().length 5209 ? ((e = r.getBoundingClientRect()), 5210 (n = r.ownerDocument.defaultView), 5211 { top: e.top + n.pageYOffset, left: e.left + n.pageXOffset }) 5212 : { top: 0, left: 0 } 5213 : void 0; 5214 }, 5215 position: function () { 5216 if (this[0]) { 5217 var e, 5218 t, 5219 n, 5220 r = this[0], 5221 i = { top: 0, left: 0 }; 5222 if ("fixed" === ce.css(r, "position")) t = r.getBoundingClientRect(); 5223 else { 5224 (t = this.offset()), 5225 (n = r.ownerDocument), 5226 (e = r.offsetParent || n.documentElement); 5227 while ( 5228 e && 5229 (e === n.body || e === n.documentElement) && 5230 "static" === ce.css(e, "position") 5231 ) 5232 e = e.parentNode; 5233 e && 5234 e !== r && 5235 1 === e.nodeType && 5236 (((i = ce(e).offset()).top += ce.css(e, "borderTopWidth", !0)), 5237 (i.left += ce.css(e, "borderLeftWidth", !0))); 5238 } 5239 return { 5240 top: t.top - i.top - ce.css(r, "marginTop", !0), 5241 left: t.left - i.left - ce.css(r, "marginLeft", !0), 5242 }; 5243 } 5244 }, 5245 offsetParent: function () { 5246 return this.map(function () { 5247 var e = this.offsetParent; 5248 while (e && "static" === ce.css(e, "position")) e = e.offsetParent; 5249 return e || J; 5250 }); 5251 }, 5252 }), 5253 ce.each( 5254 { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, 5255 function (t, i) { 5256 var o = "pageYOffset" === i; 5257 ce.fn[t] = function (e) { 5258 return M( 5259 this, 5260 function (e, t, n) { 5261 var r; 5262 if (
5263 (y(e) ? (r = e) : 9 === e.nodeType && (r = e.defaultView), 5264 void 0 === n) 5265 ) 5266 return r ? r[i] : e[t]; 5267 r 5268 ? r.scrollTo(o ? r.pageXOffset : n, o ? n : r.pageYOffset) 5269 : (e[t] = n); 5270 }, 5271 t, 5272 e, 5273 arguments.length 5274 ); 5275 }; 5276 } 5277 ), 5278 ce.each(["top", "left"], function (e, n) { 5279 ce.cssHooks[n] = Ye(le.pixelPosition, function (e, t) { 5280 if (t) 5281 return (t = Ge(e, n)), _e.test(t) ? ce(e).position()[n] + "px" : t; 5282 }); 5283 }), 5284 ce.each({ Height: "height", Width: "width" }, function (a, s) { 5285 ce.each( 5286 { padding: "inner" + a, content: s, "": "outer" + a }, 5287 function (r, o) { 5288 ce.fn[o] = function (e, t) { 5289 var n = arguments.length && (r || "boolean" != typeof e), 5290 i = r || (!0 === e || !0 === t ? "margin" : "border"); 5291 return M( 5292 this, 5293 function (e, t, n) { 5294 var r; 5295 return y(e) 5296 ? 0 === o.indexOf("outer") 5297 ? e["inner" + a] 5298 : e.document.documentElement["client" + a] 5299 : 9 === e.nodeType 5300 ? ((r = e.documentElement), 5301 Math.max( 5302 e.body["scroll" + a], 5303 r["scroll" + a], 5304 e.body["offset" + a], 5305 r["offset" + a], 5306 r["client" + a] 5307 )) 5308 : void 0 === n 5309 ? ce.css(e, t, i) 5310 : ce.style(e, t, n, i); 5311 }, 5312 s, 5313 n ? e : void 0, 5314 n 5315 ); 5316 }; 5317 } 5318 ); 5319 }), 5320 ce.each( 5321 [ 5322 "ajaxStart", 5323 "ajaxStop", 5324 "ajaxComplete", 5325 "ajaxError", 5326 "ajaxSuccess", 5327 "ajaxSend", 5328 ], 5329 function (e, t) { 5330 ce.fn[t] = function (e) { 5331 return this.on(t, e); 5332 }; 5333 } 5334 ), 5335 ce.fn.extend({ 5336 bind: function (e, t, n) { 5337 return this.on(e, null, t, n); 5338 }, 5339 unbind: function (e, t) { 5340 return this.off(e, null, t); 5341 }, 5342 delegate: function (e, t, n, r) { 5343 return this.on(t, e, n, r); 5344 }, 5345 undelegate: function (e, t, n) { 5346 return 1 === arguments.length 5347 ? this.off(e, "**") 5348 : this.off(t, e || "**", n); 5349 }, 5350 hover: function (e, t) { 5351 return this.on("mouseenter", e).on("mouseleave", t || e); 5352 }, 5353 }), 5354 ce.each( 5355 "blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split( 5356 " " 5357 ), 5358 function (e, n) { 5359 ce.fn[n] = function (e, t) { 5360 return 0 < arguments.length 5361 ? this.on(n, null, e, t) 5362 : this.trigger(n); 5363 }; 5364 } 5365 ); 5366 var en = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g; 5367 (ce.proxy = function (e, t) { 5368 var n, r, i; 5369 if (("string" == typeof t && ((n = e[t]), (t = e), (e = n)), v(e))) 5370 return ( 5371 (r = ae.call(arguments, 2)), 5372 ((i = function () { 5373 return e.apply(t || this, r.concat(ae.call(arguments))); 5374 }).guid = e.guid = 5375 e.guid || ce.guid++), 5376 i 5377 ); 5378 }), 5379 (ce.holdReady = function (e) { 5380 e ? ce.readyWait++ : ce.ready(!0); 5381 }), 5382 (ce.isArray = Array.isArray), 5383 (ce.parseJSON = JSON.parse), 5384 (ce.nodeName = fe), 5385 (ce.isFunction = v), 5386 (ce.isWindow = y), 5387 (ce.camelCase = F), 5388 (ce.type = x), 5389 (ce.now = Date.now), 5390 (ce.isNumeric = function (e) { 5391 var t = ce.type(e); 5392 return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e)); 5393 }), 5394 (ce.trim = function (e) { 5395 return null == e ? "" : (e + "").replace(en, "$1"); 5396 }), 5397 "function" == typeof define && 5398 define.amd && 5399 define("jquery", [], function () { 5400 return ce; 5401 }); 5402 var tn = ie.jQuery, 5403 nn = ie.$; 5404 return ( 5405 (ce.noConflict = function (e) { 5406 return ( 5407 ie.$ === ce && (ie.$ = nn), 5408 e && ie.jQuery === ce && (ie.jQuery = tn), 5409 ce 5410 ); 5411 }), 5412 "undefined" == typeof e && (ie.jQuery = ie.$ = ce), 5413 ce 5414 ); 5415}); 5416 5417!function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):"undefined"!=typeof exports?module.exports=i(require("jquery")):i(jQuery)}(function(i){"use strict";var e=window.Slick||{};(e=function(){var e=0;return function(t,o){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:i(t),appendDots:i(t),arrows:!0,asNavFor:null,prevArrow:'<button class="slick-prev" aria-label="Previous" type="button">Previous</button>',nextArrow:'<button class="slick-next" aria-label="Next" type="button">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(e,t){return i('<button type="button" />').text(t+1)},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,focusOnChange:!1,infinite:!0,initialSlide:0,lazyLoad:"ondemand",mobileFirst:!1,pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,respondTo:"window",responsive:null,rows:1,rtl:!1,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},n.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,scrolling:!1,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,
vendor: 6,594 bytes, line 5417
5417sliding:!1,slideOffset:0,swipeLeft:null,swiping:!1,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},i.extend(n,n.initials),n.activeBreakpoint=null,n.animType=null,n.animProp=null,n.breakpoints=[],n.breakpointSettings=[],n.cssTransitions=!1,n.focussed=!1,n.interrupted=!1,n.hidden="hidden",n.paused=!0,n.positionProp=null,n.respondTo=null,n.rowCount=1,n.shouldClick=!0,n.$slider=i(t),n.$slidesCache=null,n.transformType=null,n.transitionType=null,n.visibilityChange="visibilitychange",n.windowWidth=0,n.windowTimer=null,s=i(t).data("slick")||{},n.options=i.extend({},n.defaults,o,s),n.currentSlide=n.options.initialSlide,n.originalSettings=n.options,void 0!==document.mozHidden?(n.hidden="mozHidden",n.visibilityChange="mozvisibilitychange"):void 0!==document.webkitHidden&&(n.hidden="webkitHidden",n.visibilityChange="webkitvisibilitychange"),n.autoPlay=i.proxy(n.autoPlay,n),n.autoPlayClear=i.proxy(n.autoPlayClear,n),n.autoPlayIterator=i.proxy(n.autoPlayIterator,n),n.changeSlide=i.proxy(n.changeSlide,n),n.clickHandler=i.proxy(n.clickHandler,n),n.selectHandler=i.proxy(n.selectHandler,n),n.setPosition=i.proxy(n.setPosition,n),n.swipeHandler=i.proxy(n.swipeHandler,n),n.dragHandler=i.proxy(n.dragHandler,n),n.keyHandler=i.proxy(n.keyHandler,n),n.instanceUid=e++,n.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,n.registerBreakpoints(),n.init(!0)}}()).prototype.activateADA=function(){this.$slideTrack.find(".slick-active").attr({"aria-hidden":"false"}).find("a, input, button, select").attr({tabindex:"0"})},e.prototype.addSlide=e.prototype.slickAdd=function(e,t,o){var s=this;if("boolean"==typeof t)o=t,t=null;else if(t<0||t>=s.slideCount)return!1;s.unload(),"number"==typeof t?0===t&&0===s.$slides.length?i(e).appendTo(s.$slideTrack):o?i(e).insertBefore(s.$slides.eq(t)):i(e).insertAfter(s.$slides.eq(t)):!0===o?i(e).prependTo(s.$slideTrack):i(e).appendTo(s.$slideTrack),s.$slides=s.$slideTrack.children(this.options.slide),s.$slideTrack.children(this.options.slide).detach(),s.$slideTrack.append(s.$slides),s.$slides.each(function(e,t){i(t).attr("data-slick-index",e)}),s.$slidesCache=s.$slides,s.reinit()},e.prototype.animateHeight=function(){var i=this;if(1===i.options.slidesToShow&&!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.animate({height:e},i.options.speed)}},e.prototype.animateSlide=function(e,t){var o={},s=this;s.animateHeight(),!0===s.options.rtl&&!1===s.options.vertical&&(e=-e),!1===s.transformsEnabled?!1===s.options.vertical?s.$slideTrack.animate({left:e},s.options.speed,s.options.easing,t):s.$slideTrack.animate({top:e},s.options.speed,s.options.easing,t):!1===s.cssTransitions?(!0===s.options.rtl&&(s.currentLeft=-s.currentLeft),i({animStart:s.currentLeft}).animate({animStart:e},{duration:s.options.speed,easing:s.options.easing,step:function(i){i=Math.ceil(i),!1===s.options.vertical?(o[s.animType]="translate("+i+"px, 0px)",s.$slideTrack.css(o)):(o[s.animType]="translate(0px,"+i+"px)",s.$slideTrack.css(o))},complete:function(){t&&t.call()}})):(s.applyTransition(),e=Math.ceil(e),!1===s.options.vertical?o[s.animType]="translate3d("+e+"px, 0px, 0px)":o[s.animType]="translate3d(0px,"+e+"px, 0px)",s.$slideTrack.css(o),t&&setTimeout(function(){s.disableTransition(),t.call()},s.options.speed))},e.prototype.getNavTarget=function(){var e=this,t=e.options.asNavFor;return t&&null!==t&&(t=i(t).not(e.$slider)),t},e.prototype.asNavFor=function(e){var t=this.getNavTarget();null!==t&&"object"==typeof t&&t.each(function(){var t=i(this).slick("getSlick");t.unslicked||t.slideHandler(e,!0)})},e.prototype.applyTransition=function(i){var e=this,t={};!1===e.options.fade?t[e.transitionType]=e.transformType+" "+e.options.speed+"ms "+e.options.cssEase:t[e.transitionType]="opacity "+e.options.speed+"ms "+e.options.cssEase,!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.autoPlay=function(){var i=this;i.autoPlayClear(),i.slideCount>i.options.slidesToShow&&(i.autoPlayTimer=setInterval(i.autoPlayIterator,i.options.autoplaySpeed))},e.prototype.autoPlayClear=function(){var i=this;i.autoPlayTimer&&clearInterval(i.autoPlayTimer)},e.prototype.autoPlayIterator=function(){var i=this,e=i.currentSlide+i.options.slidesToScroll;i.paused||i.interrupted||i.focussed||(!1===i.options.infinite&&(1===i.direction&&i.currentSlide+1===i.slideCount-1?i.direction=0:0===i.direction&&(e=i.currentSlide-i.options.slidesToScroll,i.currentSlide-1==0&&(i.direction=1))),i.slideHandler(e))},e.prototype.buildArrows=function(){var e=this;!0===e.options.arrows&&(e.$prevArrow=i(e.options.prevArrow).addClass("slick-arrow"),e.$nextArrow=i(e.options.nextArrow).addClass("slick-arrow"),e.slideCount>e.options.slidesToShow?(e.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.prependTo(e.options.appendArrows),e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.appendTo(e.options.appendArrows),!0!==e.options.infinite&&e.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true")):e.$prevArrow.add(e.$nextArrow).addClass("slick-hidden").attr({"aria-disabled":"true",tabindex:"-1"}))},e.prototype.buildDots=function(){var e,t,o=this;if(!0===o.options.dots){for(o.$slider.addClass("slick-dotted"),t=i("<ul />").addClass(o.options.dotsClass),e=0;e<=o.getDotCount();e+=1)t.append(i("<li />").append(o.options.customPaging.call(this,o,e)));o.$dots=t.appendTo(o.options.appendDots),o.$dots.find("li").first().addClass("slick-active")}},e.prototype.buildOut=function(){var e=this;e.$slides=e.$slider.children(e.options.slide+":not(.slick-cloned)").addClass("slick-slide"),e.slideCount=e.$slides.length,e.$slides.each(function(e,t){i(t).attr("data-slick-index",e).data("originalStyling",i(t).attr("style")||"")}),e.$slider.addClass("slick-slider"),e.$slideTrack=0===e.slideCount?i('<div class="slick-track"/>').appendTo(e.$slider):e.$slides.wrapAll('<div class="slick-track"/>').parent(),e.$list=e.$slideTrack.wrap('<div class="slick-list"/>').parent(),e.$slideTrack.css("opacity",0),!0!==e.options.centerMode&&!0!==e.options.swipeToSlide||(e.options.slidesToScroll=1),i("img[data-lazy]",e.$slider).not("[src]").addClass("slick-loading"),e.setupInfinite(),e.buildArrows(),e.buildDots(),e.updateDots(),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),!0===e.options.draggable&&e.$list.addClass("draggable")},e.prototype.buildRows=function(){var i,e,t,o,s,n,r,l=this;if(o=document.createDocumentFragment(),n=l.$slider.children(),l.o
vendor: 3,442 bytes, line 5417
5417ptions.rows>1){for(r=l.options.slidesPerRow*l.options.rows,s=Math.ceil(n.length/r),i=0;i<s;i++){var d=document.createElement("div");for(e=0;e<l.options.rows;e++){var a=document.createElement("div");for(t=0;t<l.options.slidesPerRow;t++){var c=i*r+(e*l.options.slidesPerRow+t);n.get(c)&&a.appendChild(n.get(c))}d.appendChild(a)}o.appendChild(d)}l.$slider.empty().append(o),l.$slider.children().children().children().css({width:100/l.options.slidesPerRow+"%",display:"inline-block"})}},e.prototype.checkResponsive=function(e,t){var o,s,n,r=this,l=!1,d=r.$slider.width(),a=window.innerWidth||i(window).width();if("window"===r.respondTo?n=a:"slider"===r.respondTo?n=d:"min"===r.respondTo&&(n=Math.min(a,d)),r.options.responsive&&r.options.responsive.length&&null!==r.options.responsive){s=null;for(o in r.breakpoints)r.breakpoints.hasOwnProperty(o)&&(!1===r.originalSettings.mobileFirst?n<r.breakpoints[o]&&(s=r.breakpoints[o]):n>r.breakpoints[o]&&(s=r.breakpoints[o]));null!==s?null!==r.activeBreakpoint?(s!==r.activeBreakpoint||t)&&(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):null!==r.activeBreakpoint&&(r.activeBreakpoint=null,r.options=r.originalSettings,!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e),l=s),e||!1===l||r.$slider.trigger("breakpoint",[r,l])}},e.prototype.changeSlide=function(e,t){var o,s,n,r=this,l=i(e.currentTarget);switch(l.is("a")&&e.preventDefault(),l.is("li")||(l=l.closest("li")),n=r.slideCount%r.options.slidesToScroll!=0,o=n?0:(r.slideCount-r.currentSlide)%r.options.slidesToScroll,e.data.message){case"previous":s=0===o?r.options.slidesToScroll:r.options.slidesToShow-o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide-s,!1,t);break;case"next":s=0===o?r.options.slidesToScroll:o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide+s,!1,t);break;case"index":var d=0===e.data.index?0:e.data.index||l.index()*r.options.slidesToScroll;r.slideHandler(r.checkNavigable(d),!1,t),l.children().trigger("focus");break;default:return}},e.prototype.checkNavigable=function(i){var e,t;if(e=this.getNavigableIndexes(),t=0,i>e[e.length-1])i=e[e.length-1];else for(var o in e){if(i<e[o]){i=t;break}t=e[o]}return i},e.prototype.cleanUpEvents=function(){var e=this;e.options.dots&&null!==e.$dots&&(i("li",e.$dots).off("click.slick",e.changeSlide).off("mouseenter.slick",i.proxy(e.interrupt,e,!0)).off("mouseleave.slick",i.proxy(e.interrupt,e,!1)),!0===e.options.accessibility&&e.$dots.off("keydown.slick",e.keyHandler)),e.$slider.off("focus.slick blur.slick"),!0===e.options.arrows&&e.slideCount>e.options.slidesToShow&&(e.$prevArrow&&e.$prevArrow.off("click.slick",e.changeSlide),e.$nextArrow&&e.$nextArrow.off("click.slick",e.changeSlide),!0===e.options.accessibility&&(e.$prevArrow&&e.$prevArrow.off("keydown.slick",e.keyHandler),e.$nextArrow&&e.$nextArrow.off("keydown.slick",e.keyHandler))),e.$list.off("touchstart.slick mousedown.slick",e.swipeHandler),e.$list.off("touchmove.slick mousemove.slick",e.swipeHandler),e.$list.off("touchend.slick mouseup.slick",e.swipeHandler),e.$list.off("touchcancel.slick mouseleave.
5417slick",e.swipeHandler),e.$list.off("click.slick",e.clickHandler),i(document).off(e.visibilityChange,e.visibility),e.cleanUpSlideEvents(),!0===e.options.accessibility&&e.$list.off("keydown.slick",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().off("click.slick",e.selectHandler),i(window).off("orientationchange.slick.slick-"+e.instanceUid,e.orientationChange),i(window).off("resize.slick.slick-"+e.instanceUid,e.resize),i("[draggable!=true]",e.$slideTrack).off("dragstart",e.preventDefault),i(window).off("load.slick.slick-"+e.instanceUid,e.setPosition)},e.prototype.cleanUpSlideEvents=function(){var e=this;e.$list.off("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.off("mouseleave.slick",i.proxy(e.interrupt,e,!1))},e.prototype.cleanUpRows=function(){var i,e=this;e.options.rows>1&&((i=e.$slides.children().children()).removeAttr("style"),e.$slider.empty().append(i))},e.prototype.clickHandler=function(i){!1===this.shouldClick&&(i.stopImmediatePropagation(),i.stopPropagation(),i.preventDefault())},e.prototype.destroy=function(e){var t=this;t.autoPlayClear(),t.touchObject={},t.cleanUpEvents(),i(".slick-cloned",t.$slider).detach(),t.$dots&&t.$dots.remove(),t.$prevArrow&&t.$prevArrow.length&&(t.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.prevArrow)&&t.$prevArrow.remove()),t.$nextArrow&&t.$nextArrow.length&&(t.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.nextArrow)&&t.$nextArrow.remove()),t.$slides&&(t.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function(){i(this).attr("style",i(this).data("originalStyling"))}),t.$slideTrack.children(this.options.slide).detach(),t.$slideTrack.detach(),t.$list.detach(),t.$slider.append(t.$slides)),t.cleanUpRows(),t.$slider.removeClass("slick-slider"),t.$slider.removeClass("slick-initialized"),t.$slider.removeClass("slick-dotted"),t.unslicked=!0,e||t.$slider.trigger("destroy",[t])},e.prototype.disableTransition=function(i){var e=this,t={};t[e.transitionType]="",!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.fadeSlide=function(i,e){var t=this;!1===t.cssTransitions?(t.$slides.eq(i).css({zIndex:t.options.zIndex}),t.$slides.eq(i).animate({opacity:1},t.options.speed,t.options.easing,e)):(t.applyTransition(i),t.$slides.eq(i).css({opacity:1,zIndex:t.options.zIndex}),e&&setTimeout(function(){t.disableTransition(i),e.call()},t.options.speed))},e.prototype.fadeSlideOut=function(i){var e=this;!1===e.cssTransitions?e.$slides.eq(i).animate({opacity:0,zIndex:e.options.zIndex-2},e.options.speed,e.options.easing):(e.applyTransition(i),e.$slides.eq(i).css({opacity:0,zIndex:e.options.zIndex-2}))},e.prototype.filterSlides=e.prototype.slickFilter=function(i){var e=this;null!==i&&(e.$slidesCache=e.$slides,e.unload(),e.$slideTrack.children(this.options.slide).detach(),e.$slidesCache.filter(i).appendTo(e.$slideTrack),e.reinit())},e.prototype.focusHandler=function(){var e=this;e.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick","*",function(t){t.stopImmediatePropagation();var o=i(this);setTimeout(function(){e.options.pauseOnFocus&&(e.focussed=o.is(":focus"),e.autoPlay())},0)})},e.prototype.getCurrent=e.prototype.slickCurrentSlide=function(){return this.currentSlide},e.prototype.getDotCount=function(){var i=this,e=0,t=0,o=0;if(!0===i.options.infinite)if(i.slideCount<=i.options.slidesToShow)++o;else for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else if(!0===i.options.centerMode)o=i.slideCount;else if(i.options.asNavFor)for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else o=1+Math.ceil((i.slideCount-i.options.slidesToShow)/i.options.slidesToScroll);return o-1},e.prototype.getLeft=function(i){var e,t,o,s,n=this,r=0;return n.slideOffset=0,t=n.$slides.first().outerHeight(!0),!0===n.options.infinite?(n.slideCount>n.options.slidesToShow&&(n.slideOffset=n.slideWidth*n.options.slidesToShow*-1,s=-1,!0===n.options.vertical&&!0===n.options.centerMode&&(2===n.options.slidesToShow?s=-1.5:1===n.options.slidesToShow&&(s=-2)),r=t*n.options.slidesToShow*s),n.slideCount%n.options.slidesToScroll!=0&&i+n.options.slidesToScroll>n.slideCount&&n.slideCount>n.options.slidesToShow&&(i>n.slideCount?(n.slideOffset=(n.options.slidesToShow-(i-n.slideCount))*n.slideWidth*-1,r=(n.options.slidesToShow-(i-n.slideCount))*t*-1):(n.slideOffset=n.slideCount%n.options.slidesToScroll*n.slideWidth*-1,r=n.slideCount%n.options.slidesToScroll*t*-1))):i+n.options.slidesToShow>n.slideCount&&(n.slideOffset=(i+n.options.slidesToShow-n.slideCount)*n.slideWidth,r=(i+n.options.slidesToShow-n.slideCount)*t),n.slideCount<=n.options.slidesToShow&&(n.slideOffset=0,r=0),!0===n.options.centerMode&&n.slideCount<=n.options.slidesToShow?n.slideOffset=n.slideWidth*Math.floor(n.options.slidesToShow)/2-n.slideWidth*n.slideCount/2:!0===n.options.centerMode&&!0===n.options.infinite?n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)-n.slideWidth:!0===n.options.centerMode&&(n.slideOffset=0,n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)),e=!1===n.options.vertical?i*n.slideWidth*-1+n.slideOffset:i*t*-1+r,!0===n.options.variableWidth&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,!0===n.options.centerMode&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow+1),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,e+=(n.$list.width()-o.outerWidth())/2)),e},e.prototype.getOption=e.prototype.slickGetOption=function(i){return this.options[i]},e.prototype.getNavigableIndexes=function(){var i,e=this,t=0,o=0,s=[];for(!1===e.options.infinite?i=e.slideCount:(t=-1*e.options.slidesToScroll,o=-1*e.options.slidesToScroll,i=2*e.slideCount);t<i;)s.push(t),t=o+e.options.slidesToScroll,o+=e.options.slidesToScroll<=e.options.slidesToShow?e.options.slidesToScroll:e.options.slidesToShow;return s},e.prototype.getSlick=function(){return this},e.prototype.getSlideCount=function(){var e,t,o=this;return t=!0===o.options.centerMode?o.slideWidth*Math.floor(o.options.slidesToShow/2):0,!0===o.options.swipeToSlide?(o.$slideTrack.find(".slick-slide").each(function(s,n){if(n.offsetLeft-t+i(n).outerWidth()/2>-1*o.swipeLeft)return e=n,!1}),Math.abs(i(e).attr("data-slick-index")-o.currentSlide)||1):o.options.slidesToScroll},e.prototype.goTo=e.prototype.slickGoTo=function(i,e){this.changeSlide({data:{message:"index",index:
5417parseInt(i)}},e)},e.prototype.init=function(e){var t=this;i(t.$slider).hasClass("slick-initialized")||(i(t.$slider).addClass("slick-initialized"),t.buildRows(),t.buildOut(),t.setProps(),t.startLoad(),t.loadSlider(),t.initializeEvents(),t.updateArrows(),t.updateDots(),t.checkResponsive(!0),t.focusHandler()),e&&t.$slider.trigger("init",[t]),!0===t.options.accessibility&&t.initADA(),t.options.autoplay&&(t.paused=!1,t.autoPlay())},e.prototype.initADA=function(){var e=this,t=Math.ceil(e.slideCount/e.options.slidesToShow),o=e.getNavigableIndexes().filter(function(i){return i>=0&&i<e.slideCount});e.$slides.add(e.$slideTrack.find(".slick-cloned")).attr({"aria-hidden":"true",tabindex:"-1"}).find("a, input, button, select").attr({tabindex:"-1"}),null!==e.$dots&&(e.$slides.not(e.$slideTrack.find(".slick-cloned")).each(function(t){var s=o.indexOf(t);i(this).attr({role:"tabpanel",id:"slick-slide"+e.instanceUid+t,tabindex:-1}),-1!==s&&i(this).attr({"aria-describedby":"slick-slide-control"+e.instanceUid+s})}),e.$dots.attr("role","tablist").find("li").each(function(s){var n=o[s];i(this).attr({role:"presentation"}),i(this).find("button").first().attr({role:"tab",id:"slick-slide-control"+e.instanceUid+s,"aria-controls":"slick-slide"+e.instanceUid+n,"aria-label":s+1+" of "+t,"aria-selected":null,tabindex:"-1"})}).eq(e.currentSlide).find("button").attr({"aria-selected":"true",tabindex:"0"}).end());for(var s=e.currentSlide,n=s+e.options.slidesToShow;s<n;s++)e.$slides.eq(s).attr("tabindex",0);e.activateADA()},e.prototype.initArrowEvents=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.off("click.slick").on("click.slick",{message:"previous"},i.changeSlide),i.$nextArrow.off("click.slick").on("click.slick",{message:"next"},i.changeSlide),!0===i.options.accessibility&&(i.$prevArrow.on("keydown.slick",i.keyHandler),i.$nextArrow.on("keydown.slick",i.keyHandler)))},e.prototype.initDotEvents=function(){var e=this;!0===e.options.dots&&(i("li",e.$dots).on("click.slick",{message:"index"},e.changeSlide),!0===e.options.accessibility&&e.$dots.on("keydown.slick",e.keyHandler)),!0===e.options.dots&&!0===e.options.pauseOnDotsHover&&i("li",e.$dots).on("mouseenter.slick",i.proxy(e.interrupt,e,!0)).on("mouseleave.slick",i.proxy(e.interrupt,e,!1))},e.prototype.initSlideEvents=function(){var e=this;e.options.pauseOnHover&&(e.$list.on("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.on("mouseleave.slick",i.proxy(e.interrupt,e,!1)))},e.prototype.initializeEvents=function(){var e=this;e.initArrowEvents(),e.initDotEvents(),e.initSlideEvents(),e.$list.on("touchstart.slick mousedown.slick",{action:"start"},e.swipeHandler),e.$list.on("touchmove.slick mousemove.slick",{action:"move"},e.swipeHandler),e.$list.on("touchend.slick mouseup.slick",{action:"end"}
5417,e.swipeHandler),e.$list.on("touchcancel.slick mouseleave.slick",{action:"end"},e.swipeHandler),e.$list.on("click.slick",e.clickHandler),i(document).on(e.visibilityChange,i.proxy(e.visibility,e)),!0===e.options.accessibility&&e.$list.on("keydown.slick",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),i(window).on("orientationchange.slick.slick-"+e.instanceUid,i.proxy(e.orientationChange,e)),i(window).on("resize.slick.slick-"+e.instanceUid,i.proxy(e.resize,e)),i("[draggable!=true]",e.$slideTrack).on("dragstart",e.preventDefault),i(window).on("load.slick.slick-"+e.instanceUid,e.setPosition),i(e.setPosition)},e.prototype.initUI=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.show(),i.$nextArrow.show()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.show()},e.prototype.keyHandler=function(i){var e=this;i.target.tagName.match("TEXTAREA|INPUT|SELECT")||(37===i.keyCode&&!0===e.options.accessibility?e.changeSlide({data:{message:!0===e.options.rtl?"next":"previous"}}):39===i.keyCode&&!0===e.options.accessibility&&e.changeSlide({data:{message:!0===e.options.rtl?"previous":"next"}}))},e.prototype.lazyLoad=function(){function e(e){i("img[data-lazy]",e).each(function(){var e=i(this),t=i(this).attr("data-lazy"),o=i(this).attr("data-srcset"),s=i(this).attr("data-sizes")||n.$slider.attr("data-sizes"),r=document.createElement("img");r.onload=function(){e.animate({opacity:0}
vendor: 5,619 bytes, line 5417
5417,100,function(){o&&(e.attr("srcset",o),s&&e.attr("sizes",s)),e.attr("src",t).animate({opacity:1},200,function(){e.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading")}),n.$slider.trigger("lazyLoaded",[n,e,t])})},r.onerror=function(){e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),n.$slider.trigger("lazyLoadError",[n,e,t])},r.src=t})}var t,o,s,n=this;if(!0===n.options.centerMode?!0===n.options.infinite?s=(o=n.currentSlide+(n.options.slidesToShow/2+1))+n.options.slidesToShow+2:(o=Math.max(0,n.currentSlide-(n.options.slidesToShow/2+1)),s=n.options.slidesToShow/2+1+2+n.currentSlide):(o=n.options.infinite?n.options.slidesToShow+n.currentSlide:n.currentSlide,s=Math.ceil(o+n.options.slidesToShow),!0===n.options.fade&&(o>0&&o--,s<=n.slideCount&&s++)),t=n.$slider.find(".slick-slide").slice(o,s),"anticipated"===n.options.lazyLoad)for(var r=o-1,l=s,d=n.$slider.find(".slick-slide"),a=0;a<n.options.slidesToScroll;a++)r<0&&(r=n.slideCount-1),t=(t=t.add(d.eq(r))).add(d.eq(l)),r--,l++;e(t),n.slideCount<=n.options.slidesToShow?e(n.$slider.find(".slick-slide")):n.currentSlide>=n.slideCount-n.options.slidesToShow?e(n.$slider.find(".slick-cloned").slice(0,n.options.slidesToShow)):0===n.currentSlide&&e(n.$slider.find(".slick-cloned").slice(-1*n.options.slidesToShow))},e.prototype.loadSlider=function(){var i=this;i.setPosition(),i.$slideTrack.css({opacity:1}),i.$slider.removeClass("slick-loading"),i.initUI(),"progressive"===i.options.lazyLoad&&i.progressiveLazyLoad()},e.prototype.next=e.prototype.slickNext=function(){this.changeSlide({data:{message:"next"}})},e.prototype.orientationChange=function(){var i=this;i.checkResponsive(),i.setPosition()},e.prototype.pause=e.prototype.slickPause=function(){var i=this;i.autoPlayClear(),i.paused=!0},e.prototype.play=e.prototype.slickPlay=function(){var i=this;i.autoPlay(),i.options.autoplay=!0,i.paused=!1,i.focussed=!1,i.interrupted=!1},e.prototype.postSlide=function(e){var t=this;t.unslicked||(t.$slider.trigger("afterChange",[t,e]),t.animating=!1,t.slideCount>t.options.slidesToShow&&t.setPosition(),t.swipeLeft=null,t.options.autoplay&&t.autoPlay(),!0===t.options.accessibility&&(t.initADA(),t.options.focusOnChange&&i(t.$slides.get(t.currentSlide)).attr("tabindex",0).focus()))},e.prototype.prev=e.prototype.slickPrev=function(){this.changeSlide({data:{message:"previous"}})},e.prototype.preventDefault=function(i){i.preventDefault()},e.prototype.progressiveLazyLoad=function(e){e=e||1;var t,o,s,n,r,l=this,d=i("img[data-lazy]",l.$slider);d.length?(t=d.first(),o=t.attr("data-lazy"),s=t.attr("data-srcset"),n=t.attr("data-sizes")||l.$slider.attr("data-sizes"),(r=document.createElement("img")).onload=function(){s&&(t.attr("srcset",s),n&&t.attr("sizes",n)),t.attr("src",o).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"),!0===l.options.adaptiveHeight&&l.setPosition(),l.$slider.trigger("lazyLoaded",[l,t,o]),l.progressiveLazyLoad()},r.onerror=function(){e<3?setTimeout(function(){l.progressiveLazyLoad(e+1)},500):(t.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),l.$slider.trigger("lazyLoadError",[l,t,o]),l.progressiveLazyLoad())},r.src=o):l.$slider.trigger("allImagesLoaded",[l])},e.prototype.refresh=function(e){var t,o,s=this;o=s.slideCount-s.options.slidesToShow,!s.options.infinite&&s.currentSlide>o&&(s.currentSlide=o),s.slideCount<=s.options.slidesToShow&&(s.currentSlide=0),t=s.currentSlide,s.destroy(!0),i.extend(s,s.initials,{currentSlide:t}),s.init(),e||s.changeSlide({data:{message:"index",index:t}},!1)},e.prototype.registerBreakpoints=function(){var e,t,o,s=this,n=s.options.responsive||null;if("array"===i.type(n)&&n.length){s.respondTo=s.options.respondTo||"window";for(e in n)if(o=s.breakpoints.length-1,n.hasOwnProperty(e)){for(t=n[e].breakpoint;o>=0;)s.breakpoints[o]&&s.breakpoints[o]===t&&s.breakpoints.splice(o,1),o--;s.breakpoints.push(t),s.breakpointSettings[t]=n[e].settings}s.breakpoints.sort(function(i,e){return s.options.mobileFirst?i-e:e-i})}},e.prototype.reinit=function(){var e=this;e.$slides=e.$slideTrack.children(e.options.slide).addClass("slick-slide"),e.slideCount=e.$slides.length,e.currentSlide>=e.slideCount&&0!==e.currentSlide&&(e.currentSlide=e.currentSlide-e.options.slidesToScroll),e.slideCount<=e.options.slidesToShow&&(e.currentSlide=0),e.registerBreakpoints(),e.setProps(),e.setupInfinite(),e.buildArrows(),e.updateArrows(),e.initArrowEvents(),e.buildDots(),e.updateDots(),e.initDotEvents(),e.cleanUpSlideEvents(),e.initSlideEvents(),e.checkResponsive(!1,!0),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),e.setPosition(),e.focusHandler(),e.paused=!e.options.autoplay,e.autoPlay(),e.$slider.trigger("reInit",[e])},e.prototype.resize=function(){var e=this;i(window).width()!==e.windowWidth&&(clearTimeout(e.windowDelay),e.windowDelay=window.setTimeout(function(){e.windowWidth=i(window).width(),e.checkResponsive(),e.unslicked||e.setPosition()},50))},e.prototype.removeSlide=e.prototype.slickRemove=function(i,e,t){var o=this;if(i="boolean"==typeof i?!0===(e=i)?0:o.slideCount-1:!0===e?--i:i,o.slideCount<1||i<0||i>o.slideCount-1)return!1;o.unload(),!0===t?o.$slideTrack.children().remove():o.$slideTrack.children(this.options.slide).eq(i).remove(),o.$slides=o.$slideTrack.children(this.options.slide),o.$slideTrack.children(this.options.slide).detach(),o.$slideTrack.append(o.$slides),o.$slidesCache=o.$slides,o.reinit()},e.prototype.setCSS=function(i){var e,t,o=this,s={};
5417!0===o.options.rtl&&(i=-i),e="left"==o.positionProp?Math.ceil(i)+"px":"0px",t="top"==o.positionProp?Math.ceil(i)+"px":"0px",s[o.positionProp]=i,!1===o.transformsEnabled?o.$slideTrack.css(s):(s={},!1===o.cssTransitions?(s[o.animType]="translate("+e+", "+t+")",o.$slideTrack.css(s)):(s[o.animType]="translate3d("+e+", "+t+", 0px)",o.$slideTrack.css(s)))},e.prototype.setDimensions=function(){var i=this;!1===i.options.vertical?!0===i.options.centerMode&&i.$list.css({padding:"0px "+i.options.centerPadding}):(i.$list.height(i.$slides.first().outerHeight(!0)*i.options.slidesToShow),!0===i.options.centerMode&&i.$list.css({padding:i.options.centerPadding+" 0px"})),i.listWidth=i.$list.width(),i.listHeight=i.$list.height(),!1===i.options.vertical&&!1===i.options.variableWidth?(i.slideWidth=Math.ceil(i.listWidth/i.options.slidesToShow),i.$slideTrack.width(Math.ceil(i.slideWidth*i.$slideTrack.children(".slick-slide").length))):!0===i.options.variableWidth?i.$slideTrack.width(5e3*i.slideCount):(i.slideWidth=Math.ceil(i.listWidth),i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0)*i.$slideTrack.children(".slick-slide").length)));var e=i.$slides.first().outerWidth(!0)-i.$slides.first().width();!1===i.options.variableWidth&&i.$slideTrack.children(".slick-slide").width(i.slideWidth-e)},e.prototype.setFade=function(){var e,t=this;t.$slides.each(function(o,s){e=t.slideWidth*o*-1,!0===t.options.rtl?i(s).css({position:"relative",right:e,top:0,zIndex:t.options.zIndex-2,opacity:0}
5417):i(s).css({position:"relative",left:e,top:0,zIndex:t.options.zIndex-2,opacity:0})}),t.$slides.eq(t.currentSlide).css({zIndex:t.options.zIndex-1,opacity:1})},e.prototype.setHeight=function(){var i=this;if(1===i.options.slidesToShow&&!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.css("height",e)}},e.prototype.setOption=e.prototype.slickSetOption=function(){var e,t,o,s,n,r=this,l=!1;if("object"===i.type(arguments[0])?(o=arguments[0],l=arguments[1],n="multiple"):"string"===i.type(arguments[0])&&(o=arguments[0],s=arguments[1],l=arguments[2],"responsive"===arguments[0]&&"array"===i.type(arguments[1])?n="responsive":void 0!==arguments[1]&&(n="single")),"single"===n)r.options[o]=s;else if("multiple"===n)i.each(o,function(i,e){r.options[i]=e});else if("responsive"===n)for(t in s)if("array"!==i.type(r.options.responsive))r.options.responsive=[s[t]];else{for(e=r.options.responsive.length-1;e>=0;)r.options.responsive[e].breakpoint===s[t].breakpoint&&r.options.responsive.splice(e,1),e--;r.options.responsive.push(s[t])}l&&(r.unload(),r.reinit())},e.prototype.setPosition=function(){var i=this;i.setDimensions(),i.setHeight(),!1===i.options.fade?i.setCSS(i.getLeft(i.currentSlide)):i.setFade(),i.$slider.trigger("setPosition",[i])},e.prototype.setProps=function(){var i=this,e=document.body.style;i.positionProp=!0===i.options.vertical?"top":"left","top"===i.positionProp?i.$slider.addClass("slick-vertical"):i.$slider.removeClass("slick-vertical"),void 0===e.WebkitTransition&&void 0===e.MozTransition&&void 0===e.msTransition||!0===i.options.useCSS&&(i.cssTransitions=!0),i.options.fade&&("number"==typeof i.options.zIndex?i.options.zIndex<3&&(i.options.zIndex=3):i.options.zIndex=i.defaults.zIndex),void 0!==e.OTransform&&(i.animType="OTransform",i.transformType="-o-transform",i.transitionType="OTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.MozTransform&&(i.animType="MozTransform",i.transformType="-moz-transform",i.transitionType="MozTransition",void 0===e.perspectiveProperty&&void 0===e.MozPerspective&&(i.animType=!1)),void 0!==e.webkitTransform&&(i.animType="webkitTransform",i.transformType="-webkit-transform",i.transitionType="webkitTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.msTransform&&(i.animType="msTransform",i.transformType="-ms-transform",i.transitionType="msTransition",void 0===e.msTransform&&(i.animType=!1)),void 0!==e.transform&&!1!==i.animType&&(i.animType="transform",i.transformType="transform",i.transitionType="transition"),i.transformsEnabled=i.options.useTransform&&null!==i.animType&&!1!==i.animType},e.prototype.setSlideClasses=function(i){var e,t,o,s,n=this;if(t=n.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden","true"),n.$slides.eq(i).addClass("slick-current"),!0===n.options.centerMode){var r=n.options.slidesToShow%2==0?1:0;e=Math.floor(n.options.slidesToShow/2),!0===n.options.infinite&&(i>=e&&i<=n.slideCount-1-e?n.$slides.slice(i-e+r,i+e+1).addClass("slick-active").attr("aria-hidden","false"):(o=n.options.slidesToShow+i,t.slice(o-e+1+r,o+e+2).addClass("slick-active").attr("aria-hidden","false")),0===i?t.eq(t.length-1-n.options.slidesToShow).addClass("slick-center"):i===n.slideCount-1&&t.eq(n.options.slidesToShow).addClass("slick-center")),n.$slides.eq(i).addClass("slick-center")}else i>=0&&i<=n.slideCount-n.options.slidesToShow?n.$slides.slice(i,i+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"):t.length<=n.options.slidesToShow?t.addClass("slick-active").attr("aria-hidden","false"):(s=n.slideCount%n.options.slidesToShow,o=!0===n.options.infinite?n.options.slidesToShow+i:i,n.options.slidesToShow==n.options.slidesToScroll&&n.slideCount-i<n.options.slidesToShow?t.slice(o-(n.options.slidesToShow-s),o+s).addClass("slick-active").attr("aria-hidden","false"):t.slice(o,o+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"));"ondemand"!==n.options.lazyLoad&&"anticipated"!==n.options.lazyLoad||n.lazyLoad()},e.prototype.setupInfinite=function(){var e,t,o,s=this;if(!0===s.options.fade&&(s.options.centerMode=!1),!0===s.options.infinite&&!1===s.options.fade&&(t=null,s.slideCount>s.options.slidesToShow)){for(o=!0===s.options.centerMode?s.options.slidesToShow+1:s.options.slidesToShow,e=s.slideCount;e>s.slideCount-o;e-=1)t=e-1,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t-s.slideCount).prependTo(s.$slideTrack).addClass("slick-cloned");for(e=0;e<o+s.slideCount;e+=1)t=e,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t+s.slideCount).appendTo(s.$slideTrack).addClass("slick-cloned");s.$slideTrack.find(".slick-cloned").find("[id]").each(function(){i(this).attr("id","")})}},e.prototype.interrupt=function(i){var e=this;i||e.autoPlay(),e.interrupted=i},e.prototype.selectHandler=function(e){var t=this,o=i(e.target).is(".slick-slide")?i(e.target):i(e.target).parents(".slick-slide"),s=parseInt(o.attr("data-slick-index"));s||(s=0),t.slideCount<=t.options.slidesToShow?t.slideHandler(s,!1,!0):t.slideHandler(s)},e.prototype.slideHandler=function(i,e,t){var o,s,n,r,l,d=null,a=this;if(e=e||!1,!(!0===a.animating&&!0===a.options.waitForAnimate||!0===a.options.fade&&a.currentSlide===i))if(!1===e&&a.asNavFor(i),o=i,d=a.getLeft(o),r=a.getLeft(a.currentSlide),a.currentLeft=null===a.swipeLeft?r:a.swipeLeft,!1===a.options.infinite&&!1===a.options.centerMode&&(i<0||i>a.getDotCount()*a.options.slidesToScroll))!1===a.options.fade&&(o=a.currentSlide,!0!==t?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o));else if(!1===a.options.infinite&&!0===a.options.centerMode&&(i<0||i>a.slideCount-a.options.slidesToScroll))!1===a.options.fade&&(o=a.currentSlide,!0!==t?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o));else{if(a.options.autoplay&&clearInterval(a.autoPlayTimer),s=o<0?a.slideCount%a.options.slidesToScroll!=0?a.slideCount-a.slideCount%a.options.slidesToScroll:a.slideCount+
5417o:o>=a.slideCount?a.slideCount%a.options.slidesToScroll!=0?0:o-a.slideCount:o,a.animating=!0,a.$slider.trigger("beforeChange",[a,a.currentSlide,s]),n=a.currentSlide,a.currentSlide=s,a.setSlideClasses(a.currentSlide),a.options.asNavFor&&(l=(l=a.getNavTarget()).slick("getSlick")).slideCount<=l.options.slidesToShow&&l.setSlideClasses(a.currentSlide),a.updateDots(),a.updateArrows(),!0===a.options.fade)return!0!==t?(a.fadeSlideOut(n),a.fadeSlide(s,function(){a.postSlide(s)})):a.postSlide(s),void a.animateHeight();!0!==t?a.animateSlide(d,function(){a.postSlide(s)}):a.postSlide(s)}},e.prototype.startLoad=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.hide(),i.$nextArrow.hide()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.hide(),i.$slider.addClass("slick-loading")},e.prototype.swipeDirection=function(){var i,e,t,o,s=this;return i=s.touchObject.startX-s.touchObject.curX,e=s.touchObject.startY-s.touchObject.curY,t=Math.atan2(e,i),(o=Math.round(180*t/Math.PI))<0&&(o=360-Math.abs(o)),o<=45&&o>=0?!1===s.options.rtl?"left":"right":o<=360&&o>=315?!1===s.options.rtl?"left":"right":o>=135&&o<=225?!1===s.options.rtl?"right":"left":!0===s.options.verticalSwiping?o>=35&&o<=135?"down":"up":"vertical"},e.prototype.swipeEnd=function(i){var e,t,o=this;if(o.dragging=!1,o.swiping=!1,o.scrolling)return o.scrolling=!1,!1;if(o.interrupted=!1,o.shouldClick=!(o.touchObject.swipeLength>10),void 0===o.touchObject.curX)return!1;if(!0===o.touchObject.edgeHit&&o.$slider.trigger("edge",[o,o.swipeDirection()]),o.touchObject.swipeLength>=o.touchObject.minSwipe){switch(t=o.swipeDirection()){case"left":case"down":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide+o.getSlideCount()):o.currentSlide+o.getSlideCount(),o.currentDirection=0;break;case"right":case"up":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide-o.getSlideCount()):o.currentSlide-o.getSlideCount(),o.currentDirection=1}"vertical"!=t&&(o.slideHandler(e),o.touchObject={},o.$slider.trigger("swipe",[o,t]))}else o.touchObject.startX!==o.touchObject.curX&&(o.slideHandler(o.currentSlide),o.touchObject={})},e.prototype.swipeHandler=function(i){var e=this;if(!(!1===e.options.swipe||"ontouchend"in document&&!1===e.options.swipe||!1===e.options.draggable&&-1!==i.type.indexOf("mouse")))switch(e.touchObject.fingerCount=i.originalEvent&&void 0!==i.originalEvent.touches?i.originalEvent.touches.length:1,e.touchObject.minSwipe=e.listWidth/e.options.touchThreshold,!0===e.options.verticalSwiping&&(e.touchObject.minSwipe=e.listHeight/e.options.touchThreshold),i.data.action){case"start":e.swipeStart(i);break;case"move":e.swipeMove(i);break;case"end":e.swipeEnd(i)}},e.prototype.swipeMove=function(i){var e,t,o,s,n,r,l=this;return n=void 0!==i.originalEvent?i.originalEvent.touches:null,!(!l.dragging||l.scrolling||n&&1!==n.length)&&(e=l.getLeft(l.currentSlide),l.touchObject.curX=void 0!==n?n[0].pageX:i.clientX,l.touchObject.curY=void 0!==n?n[0].pageY:i.clientY,l.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(l.touchObject.curX-l.touchObject.startX,2))),r=Math.round(Math.sqrt(Math.pow(l.touchObject.curY-l.touchObject.startY,2))),!l.options.verticalSwiping&&!l.swiping&&r>4?(l.scrolling=!0,!1):(!0===l.options.verticalSwiping&&(l.touchObject.swipeLength=r),t=l.swipeDirection(),void 0!==i.originalEvent&&l.touchObject.swipeLength>4&&(l.swiping=!0,i.preventDefault()),s=(!1===l.options.rtl?1:-1)*(l.touchObject.curX>l.touchObject.startX?1:-1),!0===l.options.verticalSwiping&&(s=l.touchObject.curY>l.touchObject.startY?1:-1),o=l.touchObject.swipeLength,l.touchObject.edgeHit=!1,!1===l.options.infinite&&(0===l.currentSlide&&"right"===t||l.currentSlide>=l.getDotCount()&&"left"===t)&&(o=l.touchObject.swipeLength*l.options.edgeFriction,l.touchObject.edgeHit=!0),!1===l.options.vertical?l.swipeLeft=e+o*s:l.swipeLeft=e+o*(l.$list.height()/l.listWidth)*s,!0===l.options.verticalSwiping&&(l.swipeLeft=e+o*s),!0!==l.options.fade&&!1!==l.options.touchMove&&(!0===l.animating?(l.swipeLeft=null,!1):void l.setCSS(l.swipeLeft))))},e.prototype.swipeStart=function(i){var e,t=this;if(t.interrupted=!0,1!==t.touchObject.fingerCount||t.slideCount<=t.options.slidesToShow)return t.touchObject={},!1;void 0!==i.originalEvent&&void 0!==i.originalEvent.touches&&(e=i.originalEvent.touches[0]),t.touchObject.startX=t.touchObject.curX=void 0!==e?e.pageX:i.clientX,t.touchObject.startY=t.touchObject.curY=void 0!==e?e.pageY:i.clientY,t.dragging=!0},e.prototype.unfilterSlides=e.prototype.slickUnfilter=function(){var i=this;null!==i.$slidesCache&&(i.unload(),i.$slideTrack.children(this.options.slide).detach(),i.$slidesCache.appendTo(i.$slideTrack),i.reinit())},e.prototype.unload=function(){var e=this;i(".slick-cloned",e.$slider).remove(),e.$dots&&e.$dots.remove(),e.$prevArrow&&e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.remove(),e.$nextArrow&&e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.remove(),e.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden","true").css("width","")}
5417,e.prototype.unslick=function(i){var e=this;e.$slider.trigger("unslick",[e,i]),e.destroy()},e.prototype.updateArrows=function(){var i=this;Math.floor(i.options.slidesToShow/2),!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&!i.options.infinite&&(i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false"),i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false"),0===i.currentSlide?(i.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false")):i.currentSlide>=i.slideCount-i.options.slidesToShow&&!1===i.options.centerMode?(i.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")):i.currentSlide>=i.slideCount-1&&!0===i.options.centerMode&&(i.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")))},e.prototype.updateDots=function(){var i=this;null!==i.$dots&&(i.$dots.find("li").removeClass("slick-active").end(),i.$dots.find("li").eq(Math.floor(i.currentSlide/i.options.slidesToScroll)).addClass("slick-active"))},e.prototype.visibility=function(){var i=this;i.options.autoplay&&(document[i.hidden]?i.interrupted=!0:i.interrupted=!1)},i.fn.slick=function(){var i,t,o=this,s=arguments[0],n=Array.prototype.slice.call(arguments,1),r=o.length;for(i=0;i<r;i++)if("object"==typeof s||void 0===s?o[i].slick=new e(o[i],s):t=o[i].slick[s].apply(o[i].slick,n),void 0!==t)return t;return o}}); 5418 5419"object" == typeof navigator && 5420 (function (e, t) { 5421 "object" == typeof exports && "undefined" != typeof module 5422 ? (module.exports = t()) 5423 : "function" == typeof define && define.amd 5424 ? define("Plyr", t) 5425 : ((e = "undefined" != typeof globalThis ? globalThis : e || self).Plyr = 5426 t()); 5427 })(this, function () { 5428 "use strict"; 5429 function e(e, t, i) { 5430 return ( 5431 (t = (function (e) { 5432 var t = (function (e, t) { 5433 if ("object" != typeof e || null === e) return e; 5434 var i = e[Symbol.toPrimitive]; 5435 if (void 0 !== i) { 5436 var s = i.call(e, t || "default"); 5437 if ("object" != typeof s) return s; 5438 throw new TypeError( 5439 "@@toPrimitive must return a primitive value." 5440 ); 5441 } 5442 return ("string" === t ? String : Number)(e); 5443 })(e, "string"); 5444 return "symbol" == typeof t ? t : String(t); 5445 })(t)) in e 5446 ? Object.defineProperty(e, t, { 5447 value: i, 5448 enumerable: !0, 5449 configurable: !0, 5450 writable: !0, 5451 }) 5452 : (e[t] = i), 5453 e 5454 ); 5455 } 5456 function t(e, t) { 5457 for (var i = 0; i < t.length; i++) { 5458 var s = t[i]; 5459 (s.enumerable = s.enumerable || !1), 5460 (s.configurable = !0), 5461 "value" in s && (s.writable = !0), 5462 Object.defineProperty(e, s.key, s); 5463 } 5464 } 5465 function i(e, t, i) { 5466 return ( 5467 t in e 5468 ? Object.defineProperty(e, t, { 5469 value: i, 5470 enumerable: !0, 5471 configurable: !0, 5472 writable: !0, 5473 }) 5474 : (e[t] = i), 5475 e 5476 ); 5477 } 5478 function s(e, t) { 5479 var i = Object.keys(e); 5480 if (Object.getOwnPropertySymbols) { 5481 var s = Object.getOwnPropertySymbols(e); 5482 t && 5483 (s = s.filter(function (t) { 5484 return Object.getOwnPropertyDescriptor(e, t).enumerable; 5485 })), 5486 i.push.apply(i, s); 5487 } 5488 return i; 5489 } 5490 function n(e) { 5491 for (var t = 1; t < arguments.length; t++) { 5492 var n = null != arguments[t] ? arguments[t] : {}; 5493 t % 2 5494 ? s(Object(n), !0).forEach(function (t) { 5495 i(e, t, n[t]); 5496 }) 5497 : Object.getOwnPropertyDescriptors 5498 ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) 5499 : s(Object(n)).forEach(function (t) { 5500 Object.defineProperty( 5501 e, 5502 t, 5503 Object.getOwnPropertyDescriptor(n, t) 5504 ); 5505 }); 5506 } 5507 return e; 5508 } 5509 var a = { addCSS: !0, thumbWidth: 15, watch: !0 }; 5510 var l = function (e) { 5511 return null != e ? e.constructor : null; 5512 }, 5513 r = function (e, t) { 5514 return !!(e && t && e instanceof t); 5515 }, 5516 o = function (e) { 5517 return null == e; 5518 }, 5519 c = function (e) { 5520 return l(e) === Object; 5521 }, 5522 u = function (e) { 5523 return l(e) === String; 5524 }, 5525 h = function (e) { 5526 return Array.isArray(e); 5527 }, 5528 d = function (e) { 5529 return r(e, NodeList); 5530 }, 5531 m = { 5532 nullOrUndefined: o, 5533 object: c, 5534 number: function (e) { 5535 return l(e) === Number && !Number.isNaN(e); 5536 },
5537 string: u, 5538 boolean: function (e) { 5539 return l(e) === Boolean; 5540 }, 5541 function: function (e) { 5542 return l(e) === Function; 5543 }, 5544 array: h, 5545 nodeList: d, 5546 element: function (e) { 5547 return r(e, Element); 5548 }, 5549 event: function (e) { 5550 return r(e, Event); 5551 }, 5552 empty: function (e) { 5553 return ( 5554 o(e) || 5555 ((u(e) || h(e) || d(e)) && !e.length) || 5556 (c(e) && !Object.keys(e).length) 5557 ); 5558 }, 5559 }; 5560 function p(e, t) { 5561 if (1 > t) { 5562 var i = (function (e) { 5563 var t = "".concat(e).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/); 5564 return t 5565 ? Math.max(0, (t[1] ? t[1].length : 0) - (t[2] ? +t[2] : 0)) 5566 : 0; 5567 })(t); 5568 return parseFloat(e.toFixed(i)); 5569 } 5570 return Math.round(e / t) * t; 5571 } 5572 var g = (function () { 5573 function e(t, i) { 5574 (function (e, t) { 5575 if (!(e instanceof t)) 5576 throw new TypeError("Cannot call a class as a function"); 5577 })(this, e), 5578 m.element(t) 5579 ? (this.element = t) 5580 : m.string(t) && (this.element = document.querySelector(t)), 5581 m.element(this.element) && 5582 m.empty(this.element.rangeTouch) && 5583 ((this.config = n({}, a, {}, i)), this.init()); 5584 } 5585 return ( 5586 (function (e, i, s) { 5587 i && t(e.prototype, i), s && t(e, s); 5588 })( 5589 e, 5590 [ 5591 { 5592 key: "init", 5593 value: function () { 5594 e.enabled && 5595 (this.config.addCSS && 5596 ((this.element.style.userSelect = "none"), 5597 (this.element.style.webKitUserSelect = "none"), 5598 (this.element.style.touchAction = "manipulation")), 5599 this.listeners(!0), 5600 (this.element.rangeTouch = this)); 5601 }, 5602 }, 5603 { 5604 key: "destroy", 5605 value: function () { 5606 e.enabled && 5607 (this.config.addCSS && 5608 ((this.element.style.userSelect = ""), 5609 (this.element.style.webKitUserSelect = ""), 5610 (this.element.style.touchAction = "")), 5611 this.listeners(!1), 5612 (this.element.rangeTouch = null)); 5613 }, 5614 }, 5615 { 5616 key: "listeners", 5617 value: function (e) { 5618 var t = this, 5619 i = e ? "addEventListener" : "removeEventListener"; 5620 ["touchstart", "touchmove", "touchend"].forEach(function (e) { 5621 t.element[i]( 5622 e, 5623 function (e) { 5624 return t.set(e); 5625 }, 5626 !1 5627 ); 5628 }); 5629 }, 5630 }, 5631 { 5632 key: "get", 5633 value: function (t) { 5634 if (!e.enabled || !m.event(t)) return null; 5635 var i, 5636 s = t.target, 5637 n = t.changedTouches[0], 5638 a = parseFloat(s.getAttribute("min")) || 0, 5639 l = parseFloat(s.getAttribute("max")) || 100, 5640 r = parseFloat(s.getAttribute("step")) || 1, 5641 o = s.getBoundingClientRect(), 5642 c = ((100 / o.width) * (this.config.thumbWidth / 2)) / 100; 5643 return ( 5644 0 > (i = (100 / o.width) * (n.clientX - o.left)) 5645 ? (i = 0) 5646 : 100 < i && (i = 100), 5647 50 > i 5648 ? (i -= (100 - 2 * i) * c) 5649 : 50 < i && (i += 2 * (i - 50) * c), 5650 a + p((i / 100) * (l - a), r) 5651 ); 5652 }, 5653 }, 5654 { 5655 key: "set", 5656 value: function (t) { 5657 e.enabled && 5658 m.event(t) && 5659 !t.target.disabled && 5660 (t.preventDefault(), 5661 (t.target.value = this.get(t)), 5662 (function (e, t) { 5663 if (e && t) { 5664 var i = new Event(t, { bubbles: !0 }); 5665 e.dispatchEvent(i); 5666 } 5667 })(t.target, "touchend" === t.type ? "change" : "input")); 5668 }, 5669 }, 5670 ], 5671 [ 5672 { 5673 key: "setup", 5674 value: function (t) { 5675 var i = 5676 1 < arguments.length && void 0 !== arguments[1] 5677 ? arguments[1] 5678 : {}, 5679 s = null; 5680 if ( 5681 (m.empty(t) || m.string(t) 5682 ? (s = Array.from( 5683 document.querySelectorAll( 5684 m.string(t) ? t : 'input[type="range"]' 5685 ) 5686 )) 5687 : m.element(t) 5688 ? (s = [t]) 5689 : m.nodeList(t) 5690 ? (s = Array.from(t)) 5691 : m.array(t) && (s = t.filter(m.element)), 5692 m.empty(s)) 5693 ) 5694 return null; 5695 var l = n({}, a, {}, i); 5696 if (m.string(t) && l.watch) { 5697 var r = new MutationObserver(function (i) {
5698 Array.from(i).forEach(function (i) { 5699 Array.from(i.addedNodes).forEach(function (i) { 5700 m.element(i) && 5701 (function (e, t) { 5702 return function () { 5703 return Array.from( 5704 document.querySelectorAll(t) 5705 ).includes(this); 5706 }.call(e, t); 5707 })(i, t) && 5708 new e(i, l); 5709 }); 5710 }); 5711 }); 5712 r.observe(document.body, { childList: !0, subtree: !0 }); 5713 } 5714 return s.map(function (t) { 5715 return new e(t, i); 5716 }); 5717 }, 5718 }, 5719 { 5720 key: "enabled", 5721 get: function () { 5722 return "ontouchstart" in document.documentElement; 5723 }, 5724 }, 5725 ] 5726 ), 5727 e 5728 ); 5729 })(); 5730 const f = (e) => (null != e ? e.constructor : null), 5731 y = (e, t) => Boolean(e && t && e instanceof t), 5732 b = (e) => null == e, 5733 v = (e) => f(e) === Object, 5734 w = (e) => f(e) === String, 5735 T = (e) => "function" == typeof e, 5736 k = (e) => Array.isArray(e), 5737 C = (e) => y(e, NodeList), 5738 A = (e) => 5739 b(e) || 5740 ((w(e) || k(e) || C(e)) && !e.length) || 5741 (v(e) && !Object.keys(e).length); 5742 var S = { 5743 nullOrUndefined: b, 5744 object: v, 5745 number: (e) => f(e) === Number && !Number.isNaN(e), 5746 string: w, 5747 boolean: (e) => f(e) === Boolean, 5748 function: T, 5749 array: k, 5750 weakMap: (e) => y(e, WeakMap), 5751 nodeList: C, 5752 element: (e) => 5753 null !== e && 5754 "object" == typeof e && 5755 1 === e.nodeType && 5756 "object" == typeof e.style && 5757 "object" == typeof e.ownerDocument, 5758 textNode: (e) => f(e) === Text, 5759 event: (e) => y(e, Event), 5760 keyboardEvent: (e) => y(e, KeyboardEvent), 5761 cue: (e) => y(e, window.TextTrackCue) || y(e, window.VTTCue), 5762 track: (e) => y(e, TextTrack) || (!b(e) && w(e.kind)), 5763 promise: (e) => y(e, Promise) && T(e.then), 5764 url: (e) => { 5765 if (y(e, window.URL)) return !0; 5766 if (!w(e)) return !1; 5767 let t = e; 5768 (e.startsWith("http://") && e.startsWith("https://")) || 5769 (t = `http://${e}`); 5770 try { 5771 return !A(new URL(t).hostname); 5772 } catch (e) { 5773 return !1; 5774 } 5775 }, 5776 empty: A, 5777 }; 5778 const E = (() => { 5779 const e = document.createElement("span"), 5780 t = { 5781 WebkitTransition: "webkitTransitionEnd", 5782 MozTransition: "transitionend", 5783 OTransition: "oTransitionEnd otransitionend", 5784 transition: "transitionend", 5785 }, 5786 i = Object.keys(t).find((t) => void 0 !== e.style[t]); 5787 return !!S.string(i) && t[i]; 5788 })(); 5789 function P(e, t) { 5790 setTimeout(() => { 5791 try { 5792 (e.hidden = !0), e.offsetHeight, (e.hidden = !1); 5793 } catch (e) {} 5794 }, t); 5795 } 5796 var M = { 5797 isIE: Boolean(window.document.documentMode), 5798 isEdge: /Edge/g.test(navigator.userAgent), 5799 isWebKit: 5800 "WebkitAppearance" in document.documentElement.style && 5801 !/Edge/g.test(navigator.userAgent), 5802 isIPhone: 5803 /iPhone|iPod/gi.test(navigator.userAgent) && 5804 navigator.maxTouchPoints > 1, 5805 isIPadOS: 5806 "MacIntel" === navigator.platform && navigator.maxTouchPoints > 1, 5807 isIos: 5808 /iPad|iPhone|iPod/gi.test(navigator.userAgent) && 5809 navigator.maxTouchPoints > 1, 5810 }; 5811 function N(e, t) { 5812 return t.split(".").reduce((e, t) => e && e[t], e); 5813 } 5814 function x(e = {}, ...t) { 5815 if (!t.length) return e; 5816 const i = t.shift(); 5817 return S.object(i)
5818 ? (Object.keys(i).forEach((t) => { 5819 S.object(i[t]) 5820 ? (Object.keys(e).includes(t) || Object.assign(e, { [t]: {} }), 5821 x(e[t], i[t])) 5822 : Object.assign(e, { [t]: i[t] }); 5823 }), 5824 x(e, ...t)) 5825 : e; 5826 } 5827 function L(e, t) { 5828 const i = e.length ? e : [e]; 5829 Array.from(i) 5830 .reverse() 5831 .forEach((e, i) => { 5832 const s = i > 0 ? t.cloneNode(!0) : t, 5833 n = e.parentNode, 5834 a = e.nextSibling; 5835 s.appendChild(e), a ? n.insertBefore(s, a) : n.appendChild(s); 5836 }); 5837 } 5838 function I(e, t) { 5839 S.element(e) && 5840 !S.empty(t) && 5841 Object.entries(t) 5842 .filter(([, e]) => !S.nullOrUndefined(e)) 5843 .forEach(([t, i]) => e.setAttribute(t, i)); 5844 } 5845 function $(e, t, i) { 5846 const s = document.createElement(e); 5847 return S.object(t) && I(s, t), S.string(i) && (s.innerText = i), s; 5848 } 5849 function _(e, t, i, s) { 5850 S.element(t) && t.appendChild($(e, i, s)); 5851 } 5852 function O(e) { 5853 S.nodeList(e) || S.array(e) 5854 ? Array.from(e).forEach(O) 5855 : S.element(e) && 5856 S.element(e.parentNode) && 5857 e.parentNode.removeChild(e); 5858 } 5859 function j(e) { 5860 if (!S.element(e)) return; 5861 let { length: t } = e.childNodes; 5862 for (; t > 0; ) e.removeChild(e.lastChild), (t -= 1); 5863 } 5864 function q(e, t) { 5865 return S.element(t) && S.element(t.parentNode) && S.element(e) 5866 ? (t.parentNode.replaceChild(e, t), e) 5867 : null; 5868 } 5869 function D(e, t) { 5870 if (!S.string(e) || S.empty(e)) return {}; 5871 const i = {}, 5872 s = x({}, t); 5873 return ( 5874 e.split(",").forEach((e) => { 5875 const t = e.trim(), 5876 n = t.replace(".", ""), 5877 a = t.replace(/[[\]]/g, "").split("="), 5878 [l] = a, 5879 r = a.length > 1 ? a[1].replace(/["']/g, "") : ""; 5880 switch (t.charAt(0)) { 5881 case ".": 5882 S.string(s.class) ? (i.class = `${s.class} ${n}`) : (i.class = n); 5883 break; 5884 case "#": 5885 i.id = t.replace("#", ""); 5886 break; 5887 case "[": 5888 i[l] = r; 5889 } 5890 }), 5891 x(s, i) 5892 ); 5893 } 5894 function H(e, t) { 5895 if (!S.element(e)) return; 5896 let i = t; 5897 S.boolean(i) || (i = !e.hidden), (e.hidden = i); 5898 } 5899 function R(e, t, i) { 5900 if (S.nodeList(e)) return Array.from(e).map((e) => R(e, t, i)); 5901 if (S.element(e)) { 5902 let s = "toggle"; 5903 return ( 5904 void 0 !== i && (s = i ? "add" : "remove"), 5905 e.classList[s](t), 5906 e.classList.contains(t) 5907 ); 5908 } 5909 return !1; 5910 } 5911 function F(e, t) { 5912 return S.element(e) && e.classList.contains(t); 5913 } 5914 function V(e, t) { 5915 const { prototype: i } = Element; 5916 return ( 5917 i.matches || 5918 i.webkitMatchesSelector || 5919 i.mozMatchesSelector || 5920 i.msMatchesSelector || 5921 function () { 5922 return Array.from(document.querySelectorAll(t)).includes(this); 5923 } 5924 ).call(e, t); 5925 } 5926 function U(e) { 5927 return this.elements.container.querySelectorAll(e); 5928 } 5929 function B(e) { 5930 return this.elements.container.querySelector(e); 5931 } 5932 function W(e = null, t = !1) { 5933 S.element(e) && e.focus({ preventScroll: !0, focusVisible: t }); 5934 } 5935 const z = { 5936 "audio/ogg": "vorbis", 5937 "audio/wav": "1", 5938 "video/webm": "vp8, vorbis", 5939 "video/mp4": "avc1.42E01E, mp4a.40.2", 5940 "video/ogg": "theora", 5941 }, 5942 K = { 5943 audio: "canPlayType" in document.createElement("audio"), 5944 video: "canPlayType" in document.createElement("video"), 5945 check(e, t) { 5946 const i = K[e] || "html5" !== t; 5947 return { api: i, ui: i && K.rangeInput }; 5948 }, 5949 pip: !( 5950 M.isIPhone || 5951 (!S.function($("video").webkitSetPresentationMode) && 5952 (!document.pictureInPictureEnabled || 5953 $("video").disablePictureInPicture)) 5954 ), 5955 airplay: S.function(window.WebKitPlaybackTargetAvailabilityEvent),
5956 playsinline: "playsInline" in document.createElement("video"), 5957 mime(e) { 5958 if (S.empty(e)) return !1; 5959 const [t] = e.split("/"); 5960 let i = e; 5961 if (!this.isHTML5 || t !== this.type) return !1; 5962 Object.keys(z).includes(i) && (i += `; codecs="${z[e]}"`); 5963 try { 5964 return Boolean(i && this.media.canPlayType(i).replace(/no/, "")); 5965 } catch (e) { 5966 return !1; 5967 } 5968 }, 5969 textTracks: "textTracks" in document.createElement("video"), 5970 rangeInput: (() => { 5971 const e = document.createElement("input"); 5972 return (e.type = "range"), "range" === e.type; 5973 })(), 5974 touch: "ontouchstart" in document.documentElement, 5975 transitions: !1 !== E, 5976 reducedMotion: 5977 "matchMedia" in window && 5978 window.matchMedia("(prefers-reduced-motion)").matches, 5979 }, 5980 Y = (() => { 5981 let e = !1; 5982 try { 5983 const t = Object.defineProperty({}, "passive", { 5984 get: () => ((e = !0), null), 5985 }); 5986 window.addEventListener("test", null, t), 5987 window.removeEventListener("test", null, t); 5988 } catch (e) {} 5989 return e; 5990 })(); 5991 function Q(e, t, i, s = !1, n = !0, a = !1) { 5992 if (!e || !("addEventListener" in e) || S.empty(t) || !S.function(i)) 5993 return; 5994 const l = t.split(" "); 5995 let r = a; 5996 Y && (r = { passive: n, capture: a }), 5997 l.forEach((t) => { 5998 this && 5999 this.eventListeners && 6000 s && 6001 this.eventListeners.push({ 6002 element: e, 6003 type: t, 6004 callback: i, 6005 options: r, 6006 }), 6007 e[s ? "addEventListener" : "removeEventListener"](t, i, r); 6008 }); 6009 } 6010 function X(e, t = "", i, s = !0, n = !1) { 6011 Q.call(this, e, t, i, !0, s, n); 6012 } 6013 function J(e, t = "", i, s = !0, n = !1) { 6014 Q.call(this, e, t, i, !1, s, n); 6015 } 6016 function G(e, t = "", i, s = !0, n = !1) { 6017 const a = (...l) => { 6018 J(e, t, a, s, n), i.apply(this, l); 6019 }; 6020 Q.call(this, e, t, a, !0, s, n); 6021 } 6022 function Z(e, t = "", i = !1, s = {}) { 6023 if (!S.element(e) || S.empty(t)) return; 6024 const n = new CustomEvent(t, { 6025 bubbles: i, 6026 detail: { ...s, plyr: this }, 6027 }); 6028 e.dispatchEvent(n); 6029 } 6030 function ee() { 6031 this && 6032 this.eventListeners && 6033 (this.eventListeners.forEach((e) => { 6034 const { element: t, type: i, callback: s, options: n } = e; 6035 t.removeEventListener(i, s, n); 6036 }), 6037 (this.eventListeners = [])); 6038 } 6039 function te() { 6040 return new Promise((e) => 6041 this.ready 6042 ? setTimeout(e, 0) 6043 : X.call(this, this.elements.container, "ready", e) 6044 ).then(() => {}); 6045 } 6046 function ie(e) { 6047 S.promise(e) && e.then(null, () => {}); 6048 } 6049 function se(e) { 6050 return S.array(e) ? e.filter((t, i) => e.indexOf(t) === i) : e; 6051 } 6052 function ne(e, t) { 6053 return S.array(e) && e.length 6054 ? e.reduce((e, i) => (Math.abs(i - t) < Math.abs(e - t) ? i : e)) 6055 : null; 6056 } 6057 function ae(e) { 6058 return !(!window || !window.CSS) && window.CSS.supports(e); 6059 } 6060 const le = [ 6061 [1, 1], 6062 [4, 3], 6063 [3, 4], 6064 [5, 4], 6065 [4, 5], 6066 [3, 2], 6067 [2, 3], 6068 [16, 10], 6069 [10, 16], 6070 [16, 9], 6071 [9, 16], 6072 [21, 9], 6073 [9, 21], 6074 [32, 9], 6075 [9, 32], 6076 ].reduce((e, [t, i]) => ({ ...e, [t / i]: [t, i] }), {}); 6077 function re(e) { 6078 if (!(S.array(e) || (S.string(e) && e.includes(":")))) return !1; 6079 return (S.array(e) ? e : e.split(":")).map(Number).every(S.number); 6080 } 6081 function oe(e) { 6082 if (!S.array(e) || !e.every(S.number)) return null; 6083 const [t, i] = e, 6084 s = (e, t) => (0 === t ? e : s(t, e % t)), 6085 n = s(t, i); 6086 return [t / n, i / n]; 6087 } 6088 function ce(e) { 6089 const t = (e) => (re(e) ? e.split(":").map(Number) : null); 6090 let i = t(e); 6091 if ( 6092 (null === i && (i = t(this.config.ratio)), 6093 null === i && 6094 !S.empty(this.embed) && 6095 S.array(this.embed.ratio) && 6096 ({ ratio: i } = this.embed), 6097 null === i && this.isHTML5) 6098 ) { 6099 const { videoWidth: e, videoHeight: t } = this.media; 6100 i = [e, t]; 6101 } 6102 return oe(i); 6103 } 6104 function ue(e) { 6105 if (!this.isVideo) return {}; 6106 const { wrapper: t } = this.elements, 6107 i = ce.call(this, e); 6108 if (!S.array(i)) return {}; 6109 const [s, n] = oe(i),
6110 a = (100 / s) * n; 6111 if ( 6112 (ae(`aspect-ratio: ${s}/${n}`) 6113 ? (t.style.aspectRatio = `${s}/${n}`) 6114 : (t.style.paddingBottom = `${a}%`), 6115 this.isVimeo && !this.config.vimeo.premium && this.supported.ui) 6116 ) { 6117 const e = 6118 (100 / this.media.offsetWidth) * 6119 parseInt(window.getComputedStyle(this.media).paddingBottom, 10), 6120 i = (e - a) / (e / 50); 6121 this.fullscreen.active 6122 ? (t.style.paddingBottom = null) 6123 : (this.media.style.transform = `translateY(-${i}%)`); 6124 } else this.isHTML5 && t.classList.add(this.config.classNames.videoFixedRatio); 6125 return { padding: a, ratio: i }; 6126 } 6127 function he(e, t, i = 0.05) { 6128 const s = e / t, 6129 n = ne(Object.keys(le), s); 6130 return Math.abs(n - s) <= i ? le[n] : [e, t]; 6131 } 6132 const de = { 6133 getSources() { 6134 if (!this.isHTML5) return []; 6135 return Array.from(this.media.querySelectorAll("source")).filter((e) => { 6136 const t = e.getAttribute("type"); 6137 return !!S.empty(t) || K.mime.call(this, t); 6138 }); 6139 }, 6140 getQualityOptions() { 6141 return this.config.quality.forced 6142 ? this.config.quality.options 6143 : de.getSources 6144 .call(this) 6145 .map((e) => Number(e.getAttribute("size"))) 6146 .filter(Boolean); 6147 }, 6148 setup() { 6149 if (!this.isHTML5) return; 6150 const e = this; 6151 (e.options.speed = e.config.speed.options), 6152 S.empty(this.config.ratio) || ue.call(e), 6153 Object.defineProperty(e.media, "quality", { 6154 get() { 6155 const t = de.getSources 6156 .call(e) 6157 .find((t) => t.getAttribute("src") === e.source); 6158 return t && Number(t.getAttribute("size")); 6159 }, 6160 set(t) { 6161 if (e.quality !== t) { 6162 if ( 6163 e.config.quality.forced && 6164 S.function(e.config.quality.onChange) 6165 ) 6166 e.config.quality.onChange(t); 6167 else { 6168 const i = de.getSources 6169 .call(e) 6170 .find((e) => Number(e.getAttribute("size")) === t); 6171 if (!i) return; 6172 const { 6173 currentTime: s, 6174 paused: n, 6175 preload: a, 6176 readyState: l, 6177 playbackRate: r, 6178 } = e.media; 6179 (e.media.src = i.getAttribute("src")), 6180 ("none" !== a || l) && 6181 (e.once("loadedmetadata", () => { 6182 (e.speed = r), (e.currentTime = s), n || ie(e.play()); 6183 }), 6184 e.media.load()); 6185 } 6186 Z.call(e, e.media, "qualitychange", !1, { quality: t }); 6187 } 6188 }, 6189 }); 6190 }, 6191 cancelRequests() { 6192 this.isHTML5 && 6193 (O(de.getSources.call(this)), 6194 this.media.setAttribute("src", this.config.blankVideo), 6195 this.media.load(), 6196 this.debug.log("Cancelled network requests")); 6197 }, 6198 }; 6199 function me(e, ...t) { 6200 return S.empty(e) 6201 ? e 6202 : e.toString().replace(/{(\d+)}/g, (e, i) => t[i].toString()); 6203 } 6204 const pe = (e = "", t = "", i = "") => 6205 e.replace( 6206 new RegExp( 6207 t.toString().replace(/([.*+?^=!:${}()|[\]/\\])/g, "\\$1"), 6208 "g" 6209 ), 6210 i.toString() 6211 ), 6212 ge = (e = "") => 6213 e 6214 .toString() 6215 .replace( 6216 /\w\S*/g, 6217 (e) => e.charAt(0).toUpperCase() + e.slice(1).toLowerCase() 6218 ); 6219 function fe(e = "") { 6220 let t = e.toString(); 6221 return ( 6222 (t = (function (e = "") { 6223 let t = e.toString(); 6224 return ( 6225 (t = pe(t, "-", " ")), 6226 (t = pe(t, "_", " ")), 6227 (t = ge(t)), 6228 pe(t, " ", "") 6229 ); 6230 })(t)), 6231 t.charAt(0).toLowerCase() + t.slice(1) 6232 ); 6233 } 6234 function ye(e) { 6235 const t = document.createElement("div"); 6236 return t.appendChild(e), t.innerHTML; 6237 } 6238 const be = { 6239 pip: "PIP", 6240 airplay: "AirPlay", 6241 html5: "HTML5", 6242 vimeo: "Vimeo", 6243 youtube: "YouTube", 6244 }, 6245 ve = { 6246 get(e = "", t = {}) { 6247 if (S.empty(e) || S.empty(t)) return ""; 6248 let i = N(t.i18n, e); 6249 if (S.empty(i)) return Object.keys(be).includes(e) ? be[e] : ""; 6250 const s = { "{seektime}": t.seekTime, "{title}": t.title }; 6251 return (
6252 Object.entries(s).forEach(([e, t]) => { 6253 i = pe(i, e, t); 6254 }), 6255 i 6256 ); 6257 }, 6258 }; 6259 class we { 6260 constructor(t) { 6261 e(this, "get", (e) => { 6262 if (!we.supported || !this.enabled) return null; 6263 const t = window.localStorage.getItem(this.key); 6264 if (S.empty(t)) return null; 6265 const i = JSON.parse(t); 6266 return S.string(e) && e.length ? i[e] : i; 6267 }), 6268 e(this, "set", (e) => { 6269 if (!we.supported || !this.enabled) return; 6270 if (!S.object(e)) return; 6271 let t = this.get(); 6272 S.empty(t) && (t = {}), x(t, e); 6273 try { 6274 window.localStorage.setItem(this.key, JSON.stringify(t)); 6275 } catch (e) {} 6276 }), 6277 (this.enabled = t.config.storage.enabled), 6278 (this.key = t.config.storage.key); 6279 } 6280 static get supported() { 6281 try { 6282 if (!("localStorage" in window)) return !1; 6283 const e = "___test"; 6284 return ( 6285 window.localStorage.setItem(e, e), 6286 window.localStorage.removeItem(e), 6287 !0 6288 ); 6289 } catch (e) { 6290 return !1; 6291 } 6292 } 6293 } 6294 function Te(e, t = "text") { 6295 return new Promise((i, s) => { 6296 try { 6297 const s = new XMLHttpRequest(); 6298 if (!("withCredentials" in s)) return; 6299 s.addEventListener("load", () => { 6300 if ("text" === t) 6301 try { 6302 i(JSON.parse(s.responseText)); 6303 } catch (e) { 6304 i(s.responseText); 6305 } 6306 else i(s.response); 6307 }), 6308 s.addEventListener("error", () => { 6309 throw new Error(s.status); 6310 }), 6311 s.open("GET", e, !0), 6312 (s.responseType = t), 6313 s.send(); 6314 } catch (e) { 6315 s(e); 6316 } 6317 }); 6318 } 6319 function ke(e, t) { 6320 if (!S.string(e)) return; 6321 const i = "cache", 6322 s = S.string(t); 6323 let n = !1; 6324 const a = () => null !== document.getElementById(t), 6325 l = (e, t) => { 6326 (e.innerHTML = t), 6327 (s && a()) || document.body.insertAdjacentElement("afterbegin", e); 6328 }; 6329 if (!s || !a()) { 6330 const a = we.supported, 6331 r = document.createElement("div"); 6332 if ((r.setAttribute("hidden", ""), s && r.setAttribute("id", t), a)) { 6333 const e = window.localStorage.getItem(`${i}-${t}`); 6334 if (((n = null !== e), n)) { 6335 const t = JSON.parse(e); 6336 l(r, t.content); 6337 } 6338 } 6339 Te(e) 6340 .then((e) => { 6341 if (!S.empty(e)) { 6342 if (a) 6343 try { 6344 window.localStorage.setItem( 6345 `${i}-${t}`, 6346 JSON.stringify({ content: e }) 6347 ); 6348 } catch (e) {} 6349 l(r, e); 6350 } 6351 }) 6352 .catch(() => {}); 6353 } 6354 } 6355 const Ce = (e) => Math.trunc((e / 60 / 60) % 60, 10), 6356 Ae = (e) => Math.trunc((e / 60) % 60, 10), 6357 Se = (e) => Math.trunc(e % 60, 10); 6358 function Ee(e = 0, t = !1, i = !1) { 6359 if (!S.number(e)) return Ee(void 0, t, i); 6360 const s = (e) => `0${e}`.slice(-2); 6361 let n = Ce(e); 6362 const a = Ae(e), 6363 l = Se(e); 6364 return ( 6365 (n = t || n > 0 ? `${n}:` : ""), 6366 `${i && e > 0 ? "-" : ""}${n}${s(a)}:${s(l)}` 6367 ); 6368 } 6369 const Pe = { 6370 getIconUrl() { 6371 const e = new URL(this.config.iconUrl, window.location), 6372 t = window.location.host 6373 ? window.location.host 6374 : window.top.location.host, 6375 i = e.host !== t || (M.isIE && !window.svg4everybody); 6376 return { url: this.config.iconUrl, cors: i }; 6377 }, 6378 findElements() { 6379 try { 6380 return ( 6381 (this.elements.controls = B.call( 6382 this, 6383 this.config.selectors.controls.wrapper 6384 )), 6385 (this.elements.buttons = { 6386 play: U.call(this, this.config.selectors.buttons.play), 6387 pause: B.call(this, this.config.selectors.buttons.pause), 6388 restart: B.call(this, this.config.selectors.buttons.restart), 6389 rewind: B.call(this, this.config.selectors.buttons.rewind), 6390 fastForward: B.call( 6391 this, 6392 this.config.selectors.buttons.fastForward 6393 ), 6394 mute: B.call(this, this.config.selectors.buttons.mute), 6395 pip: B.call(this, this.config.selectors.buttons.pip), 6396 airplay: B.call(this, this.config.selectors.buttons.airplay), 6397 settings: B.call(this, this.config.selectors.buttons.settings), 6398 captions: B.call(this, this.config.selectors.buttons.captions), 6399 fullscreen: B.call( 6400 this, 6401 this.config.selectors.buttons.fullscreen 6402 ), 6403 }), 6404 (this.elements.progress = B.call( 6405 this, 6406 this.config.selectors.progress 6407 )), 6408 (this.elements.inputs = { 6409 seek: B.call(this, this.config.selectors.inputs.seek), 6410 volume: B.call(this, this.config.selectors.inputs.volume), 6411 }), 6412 (this.elements.display = { 6413 buffer: B.call(this, this.config.selectors.display.buffer), 6414 currentTime: B.call( 6415 this, 6416 this.config.selectors.display.currentTime 6417 ),
6418 duration: B.call(this, this.config.selectors.display.duration), 6419 }), 6420 S.element(this.elements.progress) && 6421 (this.elements.display.seekTooltip = 6422 this.elements.progress.querySelector( 6423 `.${this.config.classNames.tooltip}` 6424 )), 6425 !0 6426 ); 6427 } catch (e) { 6428 return ( 6429 this.debug.warn( 6430 "It looks like there is a problem with your custom controls HTML", 6431 e 6432 ), 6433 this.toggleNativeControls(!0), 6434 !1 6435 ); 6436 } 6437 }, 6438 createIcon(e, t) { 6439 const i = "http://www.w3.org/2000/svg", 6440 s = Pe.getIconUrl.call(this), 6441 n = `${s.cors ? "" : s.url}#${this.config.iconPrefix}`, 6442 a = document.createElementNS(i, "svg"); 6443 I(a, x(t, { "aria-hidden": "true", focusable: "false" })); 6444 const l = document.createElementNS(i, "use"), 6445 r = `${n}-${e}`; 6446 return ( 6447 "href" in l && 6448 l.setAttributeNS("http://www.w3.org/1999/xlink", "href", r), 6449 l.setAttributeNS("http://www.w3.org/1999/xlink", "xlink:href", r), 6450 a.appendChild(l), 6451 a 6452 ); 6453 }, 6454 createLabel(e, t = {}) { 6455 const i = ve.get(e, this.config); 6456 return $( 6457 "span", 6458 { 6459 ...t, 6460 class: [t.class, this.config.classNames.hidden] 6461 .filter(Boolean) 6462 .join(" "), 6463 }, 6464 i 6465 ); 6466 }, 6467 createBadge(e) { 6468 if (S.empty(e)) return null; 6469 const t = $("span", { class: this.config.classNames.menu.value }); 6470 return ( 6471 t.appendChild( 6472 $("span", { class: this.config.classNames.menu.badge }, e) 6473 ), 6474 t 6475 ); 6476 }, 6477 createButton(e, t) { 6478 const i = x({}, t); 6479 let s = fe(e); 6480 const n = { 6481 element: "button", 6482 toggle: !1, 6483 label: null, 6484 icon: null, 6485 labelPressed: null, 6486 iconPressed: null, 6487 }; 6488 switch ( 6489 (["element", "icon", "label"].forEach((e) => { 6490 Object.keys(i).includes(e) && ((n[e] = i[e]), delete i[e]); 6491 }), 6492 "button" !== n.element || 6493 Object.keys(i).includes("type") || 6494 (i.type = "button"), 6495 Object.keys(i).includes("class") 6496 ? i.class 6497 .split(" ") 6498 .some((e) => e === this.config.classNames.control) || 6499 x(i, { class: `${i.class} ${this.config.classNames.control}` }) 6500 : (i.class = this.config.classNames.control), 6501 e) 6502 ) { 6503 case "play": 6504 (n.toggle = !0), 6505 (n.label = "play"), 6506 (n.labelPressed = "pause"), 6507 (n.icon = "play"), 6508 (n.iconPressed = "pause"); 6509 break; 6510 case "mute": 6511 (n.toggle = !0), 6512 (n.label = "mute"), 6513 (n.labelPressed = "unmute"), 6514 (n.icon = "volume"), 6515 (n.iconPressed = "muted"); 6516 break; 6517 case "captions": 6518 (n.toggle = !0), 6519 (n.label = "enableCaptions"), 6520 (n.labelPressed = "disableCaptions"), 6521 (n.icon = "captions-off"), 6522 (n.iconPressed = "captions-on"); 6523 break; 6524 case "fullscreen": 6525 (n.toggle = !0), 6526 (n.label = "enterFullscreen"), 6527 (n.labelPressed = "exitFullscreen"), 6528 (n.icon = "enter-fullscreen"), 6529 (n.iconPressed = "exit-fullscreen"); 6530 break; 6531 case "play-large": 6532 (i.class += ` ${this.config.classNames.control}--overlaid`), 6533 (s = "play"), 6534 (n.label = "play"), 6535 (n.icon = "play"); 6536 break; 6537 default: 6538 S.empty(n.label) && (n.label = s), S.empty(n.icon) && (n.icon = e); 6539 } 6540 const a = $(n.element); 6541 return ( 6542 n.toggle 6543 ? (a.appendChild( 6544 Pe.createIcon.call(this, n.iconPressed, { 6545 class: "icon--pressed", 6546 }) 6547 ), 6548 a.appendChild( 6549 Pe.createIcon.call(this, n.icon, { class: "icon--not-pressed" }) 6550 ), 6551 a.appendChild( 6552 Pe.createLabel.call(this, n.labelPressed, { 6553 class: "label--pressed", 6554 }) 6555 ), 6556 a.appendChild( 6557 Pe.createLabel.call(this, n.label, { 6558 class: "label--not-pressed", 6559 }) 6560 )) 6561 : (a.appendChild(Pe.createIcon.call(this, n.icon)), 6562 a.appendChild(Pe.createLabel.call(this, n.label))), 6563 x(i, D(this.config.selectors.buttons[s], i)), 6564 I(a, i), 6565 "play" === s 6566 ? (S.array(this.elements.buttons[s]) || 6567 (this.elements.buttons[s] = []), 6568 this.elements.buttons[s].push(a)) 6569 : (this.elements.buttons[s] = a), 6570 a 6571 ); 6572 }, 6573 createRange(e, t) { 6574 const i = $( 6575 "input", 6576 x( 6577 D(this.config.selectors.inputs[e]), 6578 { 6579 type: "range", 6580 min: 0, 6581 max: 100, 6582 step: 0.01, 6583 value: 0, 6584 autocomplete: "off", 6585 role: "slider", 6586 "aria-label": ve.get(e, this.config), 6587 "aria-valuemin": 0, 6588 "aria-valuemax": 100, 6589 "aria-valuenow": 0, 6590 }, 6591 t 6592 ) 6593 ); 6594 return ( 6595 (this.elements.inputs[e] = i), 6596 Pe.updateRangeFill.call(this, i), 6597 g.setup(i), 6598 i 6599 ); 6600 }, 6601 createProgress(e, t) { 6602 const i = $( 6603 "progress", 6604 x( 6605 D(this.config.selectors.display[e]), 6606 { 6607 min: 0, 6608 max: 100, 6609 value: 0, 6610 role: "progressbar", 6611 "aria-hidden": !0, 6612 }, 6613 t 6614 ) 6615 ); 6616 if ("volume" !== e) { 6617 i.appendChild($("span", null, "0")); 6618 const t = { played: "played", buffer: "buffered" }[e], 6619 s = t ? ve.get(t, this.config) : ""; 6620 i.innerText = `% ${s.toLowerCase()}`; 6621 }
6622 return (this.elements.display[e] = i), i; 6623 }, 6624 createTime(e, t) { 6625 const i = D(this.config.selectors.display[e], t), 6626 s = $( 6627 "div", 6628 x(i, { 6629 class: `${i.class ? i.class : ""} ${ 6630 this.config.classNames.display.time 6631 } `.trim(), 6632 "aria-label": ve.get(e, this.config), 6633 role: "timer", 6634 }), 6635 "00:00" 6636 ); 6637 return (this.elements.display[e] = s), s; 6638 }, 6639 bindMenuItemShortcuts(e, t) { 6640 X.call( 6641 this, 6642 e, 6643 "keydown keyup", 6644 (i) => { 6645 if (![" ", "ArrowUp", "ArrowDown", "ArrowRight"].includes(i.key)) 6646 return; 6647 if ((i.preventDefault(), i.stopPropagation(), "keydown" === i.type)) 6648 return; 6649 const s = V(e, '[role="menuitemradio"]'); 6650 if (!s && [" ", "ArrowRight"].includes(i.key)) 6651 Pe.showMenuPanel.call(this, t, !0); 6652 else { 6653 let t; 6654 " " !== i.key && 6655 ("ArrowDown" === i.key || (s && "ArrowRight" === i.key) 6656 ? ((t = e.nextElementSibling), 6657 S.element(t) || (t = e.parentNode.firstElementChild)) 6658 : ((t = e.previousElementSibling), 6659 S.element(t) || (t = e.parentNode.lastElementChild)), 6660 W.call(this, t, !0)); 6661 } 6662 }, 6663 !1 6664 ), 6665 X.call(this, e, "keyup", (e) => { 6666 "Return" === e.key && Pe.focusFirstMenuItem.call(this, null, !0); 6667 }); 6668 }, 6669 createMenuItem({ 6670 value: e, 6671 list: t, 6672 type: i, 6673 title: s, 6674 badge: n = null, 6675 checked: a = !1, 6676 }) { 6677 const l = D(this.config.selectors.inputs[i]), 6678 r = $( 6679 "button", 6680 x(l, { 6681 type: "button", 6682 role: "menuitemradio", 6683 class: `${this.config.classNames.control} ${ 6684 l.class ? l.class : "" 6685 }`.trim(), 6686 "aria-checked": a, 6687 value: e, 6688 }) 6689 ), 6690 o = $("span"); 6691 (o.innerHTML = s), 6692 S.element(n) && o.appendChild(n), 6693 r.appendChild(o), 6694 Object.defineProperty(r, "checked", { 6695 enumerable: !0, 6696 get: () => "true" === r.getAttribute("aria-checked"), 6697 set(e) { 6698 e && 6699 Array.from(r.parentNode.children) 6700 .filter((e) => V(e, '[role="menuitemradio"]')) 6701 .forEach((e) => e.setAttribute("aria-checked", "false")), 6702 r.setAttribute("aria-checked", e ? "true" : "false"); 6703 }, 6704 }), 6705 this.listeners.bind( 6706 r, 6707 "click keyup", 6708 (t) => { 6709 if (!S.keyboardEvent(t) || " " === t.key) { 6710 switch ( 6711 (t.preventDefault(), t.stopPropagation(), (r.checked = !0), i) 6712 ) { 6713 case "language": 6714 this.currentTrack = Number(e); 6715 break; 6716 case "quality": 6717 this.quality = e; 6718 break; 6719 case "speed": 6720 this.speed = parseFloat(e); 6721 } 6722 Pe.showMenuPanel.call(this, "home", S.keyboardEvent(t)); 6723 } 6724 }, 6725 i, 6726 !1 6727 ), 6728 Pe.bindMenuItemShortcuts.call(this, r, i), 6729 t.appendChild(r); 6730 }, 6731 formatTime(e = 0, t = !1) { 6732 if (!S.number(e)) return e; 6733 return Ee(e, Ce(this.duration) > 0, t); 6734 }, 6735 updateTimeDisplay(e = null, t = 0, i = !1) { 6736 S.element(e) && S.number(t) && (e.innerText = Pe.formatTime(t, i)); 6737 }, 6738 updateVolume() { 6739 this.supported.ui && 6740 (S.element(this.elements.inputs.volume) && 6741 Pe.setRange.call( 6742 this, 6743 this.elements.inputs.volume, 6744 this.muted ? 0 : this.volume 6745 ),
6746 S.element(this.elements.buttons.mute) && 6747 (this.elements.buttons.mute.pressed = 6748 this.muted || 0 === this.volume)); 6749 }, 6750 setRange(e, t = 0) { 6751 S.element(e) && ((e.value = t), Pe.updateRangeFill.call(this, e)); 6752 }, 6753 updateProgress(e) { 6754 if (!this.supported.ui || !S.event(e)) return; 6755 let t = 0; 6756 const i = (e, t) => { 6757 const i = S.number(t) ? t : 0, 6758 s = S.element(e) ? e : this.elements.display.buffer; 6759 if (S.element(s)) { 6760 s.value = i; 6761 const e = s.getElementsByTagName("span")[0]; 6762 S.element(e) && (e.childNodes[0].nodeValue = i); 6763 } 6764 }; 6765 if (e) 6766 switch (e.type) { 6767 case "timeupdate": 6768 case "seeking": 6769 case "seeked": 6770 (s = this.currentTime), 6771 (n = this.duration), 6772 (t = 6773 0 === s || 0 === n || Number.isNaN(s) || Number.isNaN(n) 6774 ? 0 6775 : ((s / n) * 100).toFixed(2)), 6776 "timeupdate" === e.type && 6777 Pe.setRange.call(this, this.elements.inputs.seek, t); 6778 break; 6779 case "playing": 6780 case "progress": 6781 i(this.elements.display.buffer, 100 * this.buffered); 6782 } 6783 var s, n; 6784 }, 6785 updateRangeFill(e) { 6786 const t = S.event(e) ? e.target : e; 6787 if (S.element(t) && "range" === t.getAttribute("type")) { 6788 if (V(t, this.config.selectors.inputs.seek)) { 6789 t.setAttribute("aria-valuenow", this.currentTime); 6790 const e = Pe.formatTime(this.currentTime), 6791 i = Pe.formatTime(this.duration), 6792 s = ve.get("seekLabel", this.config); 6793 t.setAttribute( 6794 "aria-valuetext", 6795 s.replace("{currentTime}", e).replace("{duration}", i) 6796 ); 6797 } else if (V(t, this.config.selectors.inputs.volume)) { 6798 const e = 100 * t.value; 6799 t.setAttribute("aria-valuenow", e), 6800 t.setAttribute("aria-valuetext", `${e.toFixed(1)}%`); 6801 } else t.setAttribute("aria-valuenow", t.value); 6802 (M.isWebKit || M.isIPadOS) && 6803 t.style.setProperty("--value", (t.value / t.max) * 100 + "%"); 6804 } 6805 }, 6806 updateSeekTooltip(e) { 6807 var t, i; 6808 if ( 6809 !this.config.tooltips.seek || 6810 !S.element(this.elements.inputs.seek) || 6811 !S.element(this.elements.display.seekTooltip) || 6812 0 === this.duration 6813 ) 6814 return; 6815 const s = this.elements.display.seekTooltip, 6816 n = `${this.config.classNames.tooltip}--visible`, 6817 a = (e) => R(s, n, e); 6818 if (this.touch) return void a(!1); 6819 let l = 0; 6820 const r = this.elements.progress.getBoundingClientRect(); 6821 if (S.event(e)) l = (100 / r.width) * (e.pageX - r.left); 6822 else { 6823 if (!F(s, n)) return; 6824 l = parseFloat(s.style.left, 10); 6825 } 6826 l < 0 ? (l = 0) : l > 100 && (l = 100); 6827 const o = (this.duration / 100) * l; 6828 s.innerText = Pe.formatTime(o); 6829 const c = 6830 null === (t = this.config.markers) || 6831 void 0 === t || 6832 null === (i = t.points) || 6833 void 0 === i 6834 ? void 0 6835 : i.find(({ time: e }) => e === Math.round(o)); 6836 c && s.insertAdjacentHTML("afterbegin", `${c.label}<br>`), 6837 (s.style.left = `${l}%`), 6838 S.event(e) && 6839 ["mouseenter", "mouseleave"].includes(e.type) && 6840 a("mouseenter" === e.type); 6841 }, 6842 timeUpdate(e) { 6843 const t = 6844 !S.element(this.elements.display.duration) && this.config.invertTime; 6845 Pe.updateTimeDisplay.call( 6846 this, 6847 this.elements.display.currentTime, 6848 t ? this.duration - this.currentTime : this.currentTime, 6849 t 6850 ), 6851 (e && "timeupdate" === e.type && this.media.seeking) || 6852 Pe.updateProgress.call(this, e); 6853 }, 6854 durationUpdate() { 6855 if (!this.supported.ui || (!this.config.invertTime && this.currentTime)) 6856 return; 6857 if (this.duration >= 2 ** 32) 6858 return ( 6859 H(this.elements.display.currentTime, !0), 6860 void H(this.elements.progress, !0) 6861 );
6862 S.element(this.elements.inputs.seek) && 6863 this.elements.inputs.seek.setAttribute( 6864 "aria-valuemax", 6865 this.duration 6866 ); 6867 const e = S.element(this.elements.display.duration); 6868 !e && 6869 this.config.displayDuration && 6870 this.paused && 6871 Pe.updateTimeDisplay.call( 6872 this, 6873 this.elements.display.currentTime, 6874 this.duration 6875 ), 6876 e && 6877 Pe.updateTimeDisplay.call( 6878 this, 6879 this.elements.display.duration, 6880 this.duration 6881 ), 6882 this.config.markers.enabled && Pe.setMarkers.call(this), 6883 Pe.updateSeekTooltip.call(this); 6884 }, 6885 toggleMenuButton(e, t) { 6886 H(this.elements.settings.buttons[e], !t); 6887 }, 6888 updateSetting(e, t, i) { 6889 const s = this.elements.settings.panels[e]; 6890 let n = null, 6891 a = t; 6892 if ("captions" === e) n = this.currentTrack; 6893 else { 6894 if ( 6895 ((n = S.empty(i) ? this[e] : i), 6896 S.empty(n) && (n = this.config[e].default), 6897 !S.empty(this.options[e]) && !this.options[e].includes(n)) 6898 ) 6899 return void this.debug.warn(`Unsupported value of '${n}' for ${e}`); 6900 if (!this.config[e].options.includes(n)) 6901 return void this.debug.warn(`Disabled value of '${n}' for ${e}`); 6902 } 6903 if ( 6904 (S.element(a) || (a = s && s.querySelector('[role="menu"]')), 6905 !S.element(a)) 6906 ) 6907 return; 6908 this.elements.settings.buttons[e].querySelector( 6909 `.${this.config.classNames.menu.value}` 6910 ).innerHTML = Pe.getLabel.call(this, e, n); 6911 const l = a && a.querySelector(`[value="${n}"]`); 6912 S.element(l) && (l.checked = !0); 6913 }, 6914 getLabel(e, t) { 6915 switch (e) { 6916 case "speed": 6917 return 1 === t ? ve.get("normal", this.config) : `${t}×`; 6918 case "quality": 6919 if (S.number(t)) { 6920 const e = ve.get(`qualityLabel.${t}`, this.config); 6921 return e.length ? e : `${t}p`; 6922 } 6923 return ge(t); 6924 case "captions": 6925 return xe.getLabel.call(this); 6926 default: 6927 return null; 6928 } 6929 }, 6930 setQualityMenu(e) { 6931 if (!S.element(this.elements.settings.panels.quality)) return; 6932 const t = "quality", 6933 i = 6934 this.elements.settings.panels.quality.querySelector( 6935 '[role="menu"]' 6936 ); 6937 S.array(e) && 6938 (this.options.quality = se(e).filter((e) => 6939 this.config.quality.options.includes(e) 6940 )); 6941 const s = 6942 !S.empty(this.options.quality) && this.options.quality.length > 1; 6943 if ( 6944 (Pe.toggleMenuButton.call(this, t, s), 6945 j(i), 6946 Pe.checkMenu.call(this), 6947 !s) 6948 ) 6949 return; 6950 const n = (e) => { 6951 const t = ve.get(`qualityBadge.${e}`, this.config); 6952 return t.length ? Pe.createBadge.call(this, t) : null; 6953 }; 6954 this.options.quality 6955 .sort((e, t) => { 6956 const i = this.config.quality.options; 6957 return i.indexOf(e) > i.indexOf(t) ? 1 : -1; 6958 }) 6959 .forEach((e) => { 6960 Pe.createMenuItem.call(this, { 6961 value: e, 6962 list: i, 6963 type: t, 6964 title: Pe.getLabel.call(this, "quality", e), 6965 badge: n(e), 6966 }); 6967 }), 6968 Pe.updateSetting.call(this, t, i); 6969 }, 6970 setCaptionsMenu() { 6971 if (!S.element(this.elements.settings.panels.captions)) return; 6972 const e = "captions", 6973 t = 6974 this.elements.settings.panels.captions.querySelector( 6975 '[role="menu"]' 6976 ), 6977 i = xe.getTracks.call(this), 6978 s = Boolean(i.length); 6979 if ( 6980 (Pe.toggleMenuButton.call(this, e, s), 6981 j(t), 6982 Pe.checkMenu.call(this), 6983 !s) 6984 ) 6985 return; 6986 const n = i.map((e, i) => ({ 6987 value: i, 6988 checked: this.captions.toggled && this.currentTrack === i, 6989 title: xe.getLabel.call(this, e), 6990 badge: 6991 e.language && Pe.createBadge.call(this, e.language.toUpperCase()), 6992 list: t, 6993 type: "language", 6994 })); 6995 n.unshift({ 6996 value: -1, 6997 checked: !this.captions.toggled, 6998 title: ve.get("disabled", this.config), 6999 list: t, 7000 type: "language", 7001 }),
7002 n.forEach(Pe.createMenuItem.bind(this)), 7003 Pe.updateSetting.call(this, e, t); 7004 }, 7005 setSpeedMenu() { 7006 if (!S.element(this.elements.settings.panels.speed)) return; 7007 const e = "speed", 7008 t = 7009 this.elements.settings.panels.speed.querySelector('[role="menu"]'); 7010 this.options.speed = this.options.speed.filter( 7011 (e) => e >= this.minimumSpeed && e <= this.maximumSpeed 7012 ); 7013 const i = !S.empty(this.options.speed) && this.options.speed.length > 1; 7014 Pe.toggleMenuButton.call(this, e, i), 7015 j(t), 7016 Pe.checkMenu.call(this), 7017 i && 7018 (this.options.speed.forEach((i) => { 7019 Pe.createMenuItem.call(this, { 7020 value: i, 7021 list: t, 7022 type: e, 7023 title: Pe.getLabel.call(this, "speed", i), 7024 }); 7025 }), 7026 Pe.updateSetting.call(this, e, t)); 7027 }, 7028 checkMenu() { 7029 const { buttons: e } = this.elements.settings, 7030 t = !S.empty(e) && Object.values(e).some((e) => !e.hidden); 7031 H(this.elements.settings.menu, !t); 7032 }, 7033 focusFirstMenuItem(e, t = !1) { 7034 if (this.elements.settings.popup.hidden) return; 7035 let i = e; 7036 S.element(i) || 7037 (i = Object.values(this.elements.settings.panels).find( 7038 (e) => !e.hidden 7039 )); 7040 const s = i.querySelector('[role^="menuitem"]'); 7041 W.call(this, s, t); 7042 }, 7043 toggleMenu(e) { 7044 const { popup: t } = this.elements.settings, 7045 i = this.elements.buttons.settings; 7046 if (!S.element(t) || !S.element(i)) return; 7047 const { hidden: s } = t; 7048 let n = s; 7049 if (S.boolean(e)) n = e; 7050 else if (S.keyboardEvent(e) && "Escape" === e.key) n = !1; 7051 else if (S.event(e)) { 7052 const s = S.function(e.composedPath) ? e.composedPath()[0] : e.target, 7053 a = t.contains(s); 7054 if (a || (!a && e.target !== i && n)) return; 7055 } 7056 i.setAttribute("aria-expanded", n), 7057 H(t, !n), 7058 R(this.elements.container, this.config.classNames.menu.open, n), 7059 n && S.keyboardEvent(e) 7060 ? Pe.focusFirstMenuItem.call(this, null, !0) 7061 : n || s || W.call(this, i, S.keyboardEvent(e)); 7062 }, 7063 getMenuSize(e) { 7064 const t = e.cloneNode(!0); 7065 (t.style.position = "absolute"), 7066 (t.style.opacity = 0), 7067 t.removeAttribute("hidden"), 7068 e.parentNode.appendChild(t); 7069 const i = t.scrollWidth, 7070 s = t.scrollHeight; 7071 return O(t), { width: i, height: s }; 7072 }, 7073 showMenuPanel(e = "", t = !1) { 7074 const i = this.elements.container.querySelector( 7075 `#plyr-settings-${this.id}-${e}` 7076 ); 7077 if (!S.element(i)) return; 7078 const s = i.parentNode, 7079 n = Array.from(s.children).find((e) => !e.hidden); 7080 if (K.transitions && !K.reducedMotion) { 7081 (s.style.width = `${n.scrollWidth}px`), 7082 (s.style.height = `${n.scrollHeight}px`); 7083 const e = Pe.getMenuSize.call(this, i), 7084 t = (e) => { 7085 e.target === s && 7086 ["width", "height"].includes(e.propertyName) && 7087 ((s.style.width = ""), 7088 (s.style.height = ""), 7089 J.call(this, s, E, t)); 7090 }; 7091 X.call(this, s, E, t), 7092 (s.style.width = `${e.width}px`), 7093 (s.style.height = `${e.height}px`); 7094 } 7095 H(n, !0), H(i, !1), Pe.focusFirstMenuItem.call(this, i, t); 7096 },
7097 setDownloadUrl() { 7098 const e = this.elements.buttons.download; 7099 S.element(e) && e.setAttribute("href", this.download); 7100 }, 7101 create(e) { 7102 const { 7103 bindMenuItemShortcuts: t, 7104 createButton: i, 7105 createProgress: s, 7106 createRange: n, 7107 createTime: a, 7108 setQualityMenu: l, 7109 setSpeedMenu: r, 7110 showMenuPanel: o, 7111 } = Pe; 7112 (this.elements.controls = null), 7113 S.array(this.config.controls) && 7114 this.config.controls.includes("play-large") && 7115 this.elements.container.appendChild(i.call(this, "play-large")); 7116 const c = $("div", D(this.config.selectors.controls.wrapper)); 7117 this.elements.controls = c; 7118 const u = { class: "plyr__controls__item" }; 7119 return ( 7120 se(S.array(this.config.controls) ? this.config.controls : []).forEach( 7121 (l) => { 7122 if ( 7123 ("restart" === l && c.appendChild(i.call(this, "restart", u)), 7124 "rewind" === l && c.appendChild(i.call(this, "rewind", u)), 7125 "play" === l && c.appendChild(i.call(this, "play", u)), 7126 "fast-forward" === l && 7127 c.appendChild(i.call(this, "fast-forward", u)), 7128 "progress" === l) 7129 ) { 7130 const t = $("div", { 7131 class: `${u.class} plyr__progress__container`, 7132 }), 7133 i = $("div", D(this.config.selectors.progress)); 7134 if ( 7135 (i.appendChild( 7136 n.call(this, "seek", { id: `plyr-seek-${e.id}` }) 7137 ), 7138 i.appendChild(s.call(this, "buffer")), 7139 this.config.tooltips.seek) 7140 ) { 7141 const e = $( 7142 "span", 7143 { class: this.config.classNames.tooltip }, 7144 "00:00" 7145 ); 7146 i.appendChild(e), (this.elements.display.seekTooltip = e); 7147 } 7148 (this.elements.progress = i), 7149 t.appendChild(this.elements.progress), 7150 c.appendChild(t); 7151 } 7152 if ( 7153 ("current-time" === l && 7154 c.appendChild(a.call(this, "currentTime", u)), 7155 "duration" === l && c.appendChild(a.call(this, "duration", u)), 7156 "mute" === l || "volume" === l) 7157 ) { 7158 let { volume: t } = this.elements; 7159 if ( 7160 ((S.element(t) && c.contains(t)) || 7161 ((t = $( 7162 "div", 7163 x({}, u, { class: `${u.class} plyr__volume`.trim() }) 7164 )), 7165 (this.elements.volume = t), 7166 c.appendChild(t)), 7167 "mute" === l && t.appendChild(i.call(this, "mute")), 7168 "volume" === l && !M.isIos && !M.isIPadOS) 7169 ) { 7170 const i = { max: 1, step: 0.05, value: this.config.volume }; 7171 t.appendChild( 7172 n.call(this, "volume", x(i, { id: `plyr-volume-${e.id}` })) 7173 ); 7174 } 7175 } 7176 if ( 7177 ("captions" === l && c.appendChild(i.call(this, "captions", u)), 7178 "settings" === l && !S.empty(this.config.settings)) 7179 ) { 7180 const s = $( 7181 "div", 7182 x({}, u, { 7183 class: `${u.class} plyr__menu`.trim(), 7184 hidden: "", 7185 }) 7186 ); 7187 s.appendChild( 7188 i.call(this, "settings", { 7189 "aria-haspopup": !0, 7190 "aria-controls": `plyr-settings-${e.id}`, 7191 "aria-expanded": !1, 7192 }) 7193 ); 7194 const n = $("div", { 7195 class: "plyr__menu__container", 7196 id: `plyr-settings-${e.id}`, 7197 hidden: "", 7198 }), 7199 a = $("div"), 7200 l = $("div", { id: `plyr-settings-${e.id}-home` }), 7201 r = $("div", { role: "menu" }); 7202 l.appendChild(r), 7203 a.appendChild(l), 7204 (this.elements.settings.panels.home = l),
7205 this.config.settings.forEach((i) => { 7206 const s = $( 7207 "button", 7208 x(D(this.config.selectors.buttons.settings), { 7209 type: "button", 7210 class: `${this.config.classNames.control} ${this.config.classNames.control}--forward`, 7211 role: "menuitem", 7212 "aria-haspopup": !0, 7213 hidden: "", 7214 }) 7215 ); 7216 t.call(this, s, i), 7217 X.call(this, s, "click", () => { 7218 o.call(this, i, !1); 7219 }); 7220 const n = $("span", null, ve.get(i, this.config)), 7221 l = $("span", { 7222 class: this.config.classNames.menu.value, 7223 }); 7224 (l.innerHTML = e[i]), 7225 n.appendChild(l), 7226 s.appendChild(n), 7227 r.appendChild(s); 7228 const c = $("div", { 7229 id: `plyr-settings-${e.id}-${i}`, 7230 hidden: "", 7231 }), 7232 u = $("button", { 7233 type: "button", 7234 class: `${this.config.classNames.control} ${this.config.classNames.control}--back`, 7235 }); 7236 u.appendChild( 7237 $("span", { "aria-hidden": !0 }, ve.get(i, this.config)) 7238 ), 7239 u.appendChild( 7240 $( 7241 "span", 7242 { class: this.config.classNames.hidden }, 7243 ve.get("menuBack", this.config) 7244 ) 7245 ), 7246 X.call( 7247 this, 7248 c, 7249 "keydown", 7250 (e) => { 7251 "ArrowLeft" === e.key && 7252 (e.preventDefault(), 7253 e.stopPropagation(), 7254 o.call(this, "home", !0)); 7255 }, 7256 !1 7257 ), 7258 X.call(this, u, "click", () => { 7259 o.call(this, "home", !1); 7260 }), 7261 c.appendChild(u), 7262 c.appendChild($("div", { role: "menu" })), 7263 a.appendChild(c), 7264 (this.elements.settings.buttons[i] = s), 7265 (this.elements.settings.panels[i] = c); 7266 }), 7267 n.appendChild(a), 7268 s.appendChild(n), 7269 c.appendChild(s), 7270 (this.elements.settings.popup = n), 7271 (this.elements.settings.menu = s); 7272 } 7273 if ( 7274 ("pip" === l && K.pip && c.appendChild(i.call(this, "pip", u)), 7275 "airplay" === l && 7276 K.airplay && 7277 c.appendChild(i.call(this, "airplay", u)), 7278 "download" === l) 7279 ) { 7280 const e = x({}, u, { 7281 element: "a", 7282 href: this.download, 7283 target: "_blank", 7284 }); 7285 this.isHTML5 && (e.download = ""); 7286 const { download: t } = this.config.urls; 7287 !S.url(t) && 7288 this.isEmbed && 7289 x(e, { icon: `logo-${this.provider}`, label: this.provider }), 7290 c.appendChild(i.call(this, "download", e)); 7291 } 7292 "fullscreen" === l && 7293 c.appendChild(i.call(this, "fullscreen", u)); 7294 } 7295 ), 7296 this.isHTML5 && l.call(this, de.getQualityOptions.call(this)), 7297 r.call(this), 7298 c 7299 ); 7300 }, 7301 inject() { 7302 if (this.config.loadSprite) { 7303 const e = Pe.getIconUrl.call(this); 7304 e.cors && ke(e.url, "sprite-plyr"); 7305 } 7306 this.id = Math.floor(1e4 * Math.random()); 7307 let e = null; 7308 this.elements.controls = null; 7309 const t = { 7310 id: this.id, 7311 seektime: this.config.seekTime, 7312 title: this.config.title, 7313 }; 7314 let i = !0; 7315 S.function(this.config.controls) && 7316 (this.config.controls = this.config.controls.call(this, t)), 7317 this.config.controls || (this.config.controls = []),
7318 S.element(this.config.controls) || S.string(this.config.controls) 7319 ? (e = this.config.controls) 7320 : ((e = Pe.create.call(this, { 7321 id: this.id, 7322 seektime: this.config.seekTime, 7323 speed: this.speed, 7324 quality: this.quality, 7325 captions: xe.getLabel.call(this), 7326 })), 7327 (i = !1)); 7328 let s; 7329 i && 7330 S.string(this.config.controls) && 7331 (e = ((e) => { 7332 let i = e; 7333 return ( 7334 Object.entries(t).forEach(([e, t]) => { 7335 i = pe(i, `{${e}}`, t); 7336 }), 7337 i 7338 ); 7339 })(e)), 7340 S.string(this.config.selectors.controls.container) && 7341 (s = document.querySelector( 7342 this.config.selectors.controls.container 7343 )), 7344 S.element(s) || (s = this.elements.container); 7345 if ( 7346 (s[S.element(e) ? "insertAdjacentElement" : "insertAdjacentHTML"]( 7347 "afterbegin", 7348 e 7349 ), 7350 S.element(this.elements.controls) || Pe.findElements.call(this), 7351 !S.empty(this.elements.buttons)) 7352 ) { 7353 const e = (e) => { 7354 const t = this.config.classNames.controlPressed; 7355 e.setAttribute("aria-pressed", "false"), 7356 Object.defineProperty(e, "pressed", { 7357 configurable: !0, 7358 enumerable: !0, 7359 get: () => F(e, t), 7360 set(i = !1) { 7361 R(e, t, i), 7362 e.setAttribute("aria-pressed", i ? "true" : "false"); 7363 }, 7364 }); 7365 }; 7366 Object.values(this.elements.buttons) 7367 .filter(Boolean) 7368 .forEach((t) => { 7369 S.array(t) || S.nodeList(t) 7370 ? Array.from(t).filter(Boolean).forEach(e) 7371 : e(t); 7372 }); 7373 } 7374 if ((M.isEdge && P(s), this.config.tooltips.controls)) { 7375 const { classNames: e, selectors: t } = this.config, 7376 i = `${t.controls.wrapper} ${t.labels} .${e.hidden}`, 7377 s = U.call(this, i); 7378 Array.from(s).forEach((e) => { 7379 R(e, this.config.classNames.hidden, !1), 7380 R(e, this.config.classNames.tooltip, !0); 7381 }); 7382 } 7383 }, 7384 setMediaMetadata() { 7385 try { 7386 "mediaSession" in navigator && 7387 (navigator.mediaSession.metadata = new window.MediaMetadata({ 7388 title: this.config.mediaMetadata.title, 7389 artist: this.config.mediaMetadata.artist, 7390 album: this.config.mediaMetadata.album, 7391 artwork: this.config.mediaMetadata.artwork, 7392 })); 7393 } catch (e) {} 7394 }, 7395 setMarkers() { 7396 var e, t; 7397 if (!this.duration || this.elements.markers) return; 7398 const i = 7399 null === (e = this.config.markers) || 7400 void 0 === e || 7401 null === (t = e.points) || 7402 void 0 === t 7403 ? void 0 7404 : t.filter(({ time: e }) => e > 0 && e < this.duration); 7405 if (null == i || !i.length) return; 7406 const s = document.createDocumentFragment(), 7407 n = document.createDocumentFragment(); 7408 let a = null; 7409 const l = `${this.config.classNames.tooltip}--visible`, 7410 r = (e) => R(a, l, e); 7411 i.forEach((e) => { 7412 const t = $("span", { class: this.config.classNames.marker }, ""), 7413 i = (e.time / this.duration) * 100 + "%"; 7414 a && 7415 (t.addEventListener("mouseenter", () => { 7416 e.label || ((a.style.left = i), (a.innerHTML = e.label), r(!0)); 7417 }), 7418 t.addEventListener("mouseleave", () => { 7419 r(!1); 7420 })), 7421 t.addEventListener("click", () => { 7422 this.currentTime = e.time; 7423 }), 7424 (t.style.left = i), 7425 n.appendChild(t); 7426 }), 7427 s.appendChild(n), 7428 this.config.tooltips.seek || 7429 ((a = $("span", { class: this.config.classNames.tooltip }, "")), 7430 s.appendChild(a)), 7431 (this.elements.markers = { points: n, tip: a }), 7432 this.elements.progress.appendChild(s); 7433 }, 7434 }; 7435 function Me(e, t = !0) { 7436 let i = e; 7437 if (t) { 7438 const e = document.createElement("a"); 7439 (e.href = i), (i = e.href); 7440 }
7441 try { 7442 return new URL(i); 7443 } catch (e) { 7444 return null; 7445 } 7446 } 7447 function Ne(e) { 7448 const t = new URLSearchParams(); 7449 return ( 7450 S.object(e) && 7451 Object.entries(e).forEach(([e, i]) => { 7452 t.set(e, i); 7453 }), 7454 t 7455 ); 7456 } 7457 const xe = { 7458 setup() { 7459 if (!this.supported.ui) return; 7460 if ( 7461 !this.isVideo || 7462 this.isYouTube || 7463 (this.isHTML5 && !K.textTracks) 7464 ) 7465 return void ( 7466 S.array(this.config.controls) && 7467 this.config.controls.includes("settings") && 7468 this.config.settings.includes("captions") && 7469 Pe.setCaptionsMenu.call(this) 7470 ); 7471 var e, t; 7472 if ( 7473 (S.element(this.elements.captions) || 7474 ((this.elements.captions = $( 7475 "div", 7476 D(this.config.selectors.captions) 7477 )), 7478 this.elements.captions.setAttribute("dir", "auto"), 7479 (e = this.elements.captions), 7480 (t = this.elements.wrapper), 7481 S.element(e) && 7482 S.element(t) && 7483 t.parentNode.insertBefore(e, t.nextSibling)), 7484 M.isIE && window.URL) 7485 ) { 7486 const e = this.media.querySelectorAll("track"); 7487 Array.from(e).forEach((e) => { 7488 const t = e.getAttribute("src"), 7489 i = Me(t); 7490 null !== i && 7491 i.hostname !== window.location.href.hostname && 7492 ["http:", "https:"].includes(i.protocol) && 7493 Te(t, "blob") 7494 .then((t) => { 7495 e.setAttribute("src", window.URL.createObjectURL(t)); 7496 }) 7497 .catch(() => { 7498 O(e); 7499 }); 7500 }); 7501 } 7502 const i = se( 7503 ( 7504 navigator.languages || [ 7505 navigator.language || navigator.userLanguage || "en", 7506 ] 7507 ).map((e) => e.split("-")[0]) 7508 ); 7509 let s = ( 7510 this.storage.get("language") || 7511 this.config.captions.language || 7512 "auto" 7513 ).toLowerCase(); 7514 "auto" === s && ([s] = i); 7515 let n = this.storage.get("captions"); 7516 if ( 7517 (S.boolean(n) || ({ active: n } = this.config.captions), 7518 Object.assign(this.captions, { 7519 toggled: !1, 7520 active: n, 7521 language: s, 7522 languages: i, 7523 }), 7524 this.isHTML5) 7525 ) { 7526 const e = this.config.captions.update 7527 ? "addtrack removetrack" 7528 : "removetrack"; 7529 X.call(this, this.media.textTracks, e, xe.update.bind(this)); 7530 } 7531 setTimeout(xe.update.bind(this), 0); 7532 }, 7533 update() { 7534 const e = xe.getTracks.call(this, !0), 7535 { 7536 active: t, 7537 language: i, 7538 meta: s, 7539 currentTrackNode: n, 7540 } = this.captions, 7541 a = Boolean(e.find((e) => e.language === i)); 7542 this.isHTML5 && 7543 this.isVideo && 7544 e 7545 .filter((e) => !s.get(e)) 7546 .forEach((e) => { 7547 this.debug.log("Track added", e), 7548 s.set(e, { default: "showing" === e.mode }), 7549 "showing" === e.mode && (e.mode = "hidden"), 7550 X.call(this, e, "cuechange", () => xe.updateCues.call(this)); 7551 }), 7552 ((a && this.language !== i) || !e.includes(n)) && 7553 (xe.setLanguage.call(this, i), xe.toggle.call(this, t && a)), 7554 this.elements && 7555 R( 7556 this.elements.container, 7557 this.config.classNames.captions.enabled, 7558 !S.empty(e) 7559 ), 7560 S.array(this.config.controls) && 7561 this.config.controls.includes("settings") && 7562 this.config.settings.includes("captions") && 7563 Pe.setCaptionsMenu.call(this); 7564 }, 7565 toggle(e, t = !0) { 7566 if (!this.supported.ui) return; 7567 const { toggled: i } = this.captions, 7568 s = this.config.classNames.captions.active, 7569 n = S.nullOrUndefined(e) ? !i : e; 7570 if (n !== i) { 7571 if ( 7572 (t || 7573 ((this.captions.active = n), this.storage.set({ captions: n })), 7574 !this.language && n && !t) 7575 ) { 7576 const e = xe.getTracks.call(this), 7577 t = xe.findTrack.call( 7578 this, 7579 [this.captions.language, ...this.captions.languages], 7580 !0 7581 ); 7582 return ( 7583 (this.captions.language = t.language), 7584 void xe.set.call(this, e.indexOf(t)) 7585 ); 7586 } 7587 this.elements.buttons.captions && 7588 (this.elements.buttons.captions.pressed = n), 7589 R(this.elements.container, s, n), 7590 (this.captions.toggled = n), 7591 Pe.updateSetting.call(this, "captions"), 7592 Z.call( 7593 this, 7594 this.media, 7595 n ? "captionsenabled" : "captionsdisabled" 7596 ); 7597 } 7598 setTimeout(() => { 7599 n && 7600 this.captions.toggled && 7601 (this.captions.currentTrackNode.mode = "hidden"); 7602 }); 7603 }, 7604 set(e, t = !0) { 7605 const i = xe.getTracks.call(this); 7606 if (-1 !== e) 7607 if (S.number(e))
7608 if (e in i) { 7609 if (this.captions.currentTrack !== e) { 7610 this.captions.currentTrack = e; 7611 const s = i[e], 7612 { language: n } = s || {}; 7613 (this.captions.currentTrackNode = s), 7614 Pe.updateSetting.call(this, "captions"), 7615 t || 7616 ((this.captions.language = n), 7617 this.storage.set({ language: n })), 7618 this.isVimeo && this.embed.enableTextTrack(n), 7619 Z.call(this, this.media, "languagechange"); 7620 } 7621 xe.toggle.call(this, !0, t), 7622 this.isHTML5 && this.isVideo && xe.updateCues.call(this); 7623 } else this.debug.warn("Track not found", e); 7624 else this.debug.warn("Invalid caption argument", e); 7625 else xe.toggle.call(this, !1, t); 7626 }, 7627 setLanguage(e, t = !0) { 7628 if (!S.string(e)) 7629 return void this.debug.warn("Invalid language argument", e); 7630 const i = e.toLowerCase(); 7631 this.captions.language = i; 7632 const s = xe.getTracks.call(this), 7633 n = xe.findTrack.call(this, [i]); 7634 xe.set.call(this, s.indexOf(n), t); 7635 }, 7636 getTracks(e = !1) { 7637 return Array.from((this.media || {}).textTracks || []) 7638 .filter((t) => !this.isHTML5 || e || this.captions.meta.has(t)) 7639 .filter((e) => ["captions", "subtitles"].includes(e.kind)); 7640 }, 7641 findTrack(e, t = !1) { 7642 const i = xe.getTracks.call(this), 7643 s = (e) => Number((this.captions.meta.get(e) || {}).default), 7644 n = Array.from(i).sort((e, t) => s(t) - s(e)); 7645 let a; 7646 return ( 7647 e.every((e) => ((a = n.find((t) => t.language === e)), !a)), 7648 a || (t ? n[0] : void 0) 7649 ); 7650 }, 7651 getCurrentTrack() { 7652 return xe.getTracks.call(this)[this.currentTrack]; 7653 }, 7654 getLabel(e) { 7655 let t = e; 7656 return ( 7657 !S.track(t) && 7658 K.textTracks && 7659 this.captions.toggled && 7660 (t = xe.getCurrentTrack.call(this)), 7661 S.track(t) 7662 ? S.empty(t.label) 7663 ? S.empty(t.language) 7664 ? ve.get("enabled", this.config) 7665 : e.language.toUpperCase() 7666 : t.label 7667 : ve.get("disabled", this.config) 7668 ); 7669 }, 7670 updateCues(e) { 7671 if (!this.supported.ui) return; 7672 if (!S.element(this.elements.captions)) 7673 return void this.debug.warn("No captions element to render to"); 7674 if (!S.nullOrUndefined(e) && !Array.isArray(e)) 7675 return void this.debug.warn("updateCues: Invalid input", e); 7676 let t = e; 7677 if (!t) { 7678 const e = xe.getCurrentTrack.call(this); 7679 t = Array.from((e || {}).activeCues || []) 7680 .map((e) => e.getCueAsHTML()) 7681 .map(ye); 7682 } 7683 const i = t.map((e) => e.trim()).join("\n"); 7684 if (i !== this.elements.captions.innerHTML) { 7685 j(this.elements.captions); 7686 const e = $("span", D(this.config.selectors.caption)); 7687 (e.innerHTML = i), 7688 this.elements.captions.appendChild(e), 7689 Z.call(this, this.media, "cuechange"); 7690 } 7691 }, 7692 }, 7693 Le = { 7694 enabled: !0, 7695 title: "", 7696 debug: !1, 7697 autoplay: !1, 7698 autopause: !0, 7699 playsinline: !0, 7700 seekTime: 10, 7701 volume: 1, 7702 muted: !1, 7703 duration: null, 7704 displayDuration: !0, 7705 invertTime: !0, 7706 toggleInvert: !0, 7707 ratio: null, 7708 clickToPlay: !0, 7709 hideControls: !0, 7710 resetOnEnd: !1, 7711 disableContextMenu: !0, 7712 loadSprite: !0, 7713 iconPrefix: "plyr", 7714 iconUrl: "https://cdn.plyr.io/3.7.8/plyr.svg", 7715 blankVideo: "https://cdn.plyr.io/static/blank.mp4", 7716 quality: { 7717 default: 576, 7718 options: [4320, 2880, 2160, 1440, 1080, 720, 576, 480, 360, 240], 7719 forced: !1, 7720 onChange: null, 7721 }, 7722 loop: { active: !1 }, 7723 speed: { selected: 1, options: [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 4] }, 7724 keyboard: { focused: !0, global: !1 },
7725 tooltips: { controls: !1, seek: !0 }, 7726 captions: { active: !1, language: "auto", update: !1 }, 7727 fullscreen: { enabled: !0, fallback: !0, iosNative: !1 }, 7728 storage: { enabled: !0, key: "plyr" }, 7729 controls: [ 7730 "play-large", 7731 "play", 7732 "progress", 7733 "current-time", 7734 "mute", 7735 "volume", 7736 "captions", 7737 "settings", 7738 "pip", 7739 "airplay", 7740 "fullscreen", 7741 ], 7742 settings: ["captions", "quality", "speed"], 7743 i18n: { 7744 restart: "Restart", 7745 rewind: "Rewind {seektime}s", 7746 play: "Play", 7747 pause: "Pause", 7748 fastForward: "Forward {seektime}s", 7749 seek: "Seek", 7750 seekLabel: "{currentTime} of {duration}", 7751 played: "Played", 7752 buffered: "Buffered", 7753 currentTime: "Current time", 7754 duration: "Duration", 7755 volume: "Volume", 7756 mute: "Mute", 7757 unmute: "Unmute", 7758 enableCaptions: "Enable captions", 7759 disableCaptions: "Disable captions", 7760 download: "Download", 7761 enterFullscreen: "Enter fullscreen", 7762 exitFullscreen: "Exit fullscreen", 7763 frameTitle: "Player for {title}", 7764 captions: "Captions", 7765 settings: "Settings", 7766 pip: "PIP", 7767 menuBack: "Go back to previous menu", 7768 speed: "Speed", 7769 normal: "Normal", 7770 quality: "Quality", 7771 loop: "Loop", 7772 start: "Start", 7773 end: "End", 7774 all: "All", 7775 reset: "Reset", 7776 disabled: "Disabled", 7777 enabled: "Enabled", 7778 advertisement: "Ad", 7779 qualityBadge: { 7780 2160: "4K", 7781 1440: "HD", 7782 1080: "HD", 7783 720: "HD", 7784 576: "SD", 7785 480: "SD", 7786 }, 7787 }, 7788 urls: { 7789 download: null, 7790 vimeo: { 7791 sdk: "https://player.vimeo.com/api/player.js", 7792 iframe: "https://player.vimeo.com/video/{0}?{1}", 7793 api: "https://vimeo.com/api/oembed.json?url={0}", 7794 }, 7795 youtube: { 7796 sdk: "https://www.youtube.com/iframe_api", 7797 api: "https://noembed.com/embed?url=https://www.youtube.com/watch?v={0}", 7798 }, 7799 googleIMA: { 7800 sdk: "https://imasdk.googleapis.com/js/sdkloader/ima3.js", 7801 }, 7802 }, 7803 listeners: { 7804 seek: null, 7805 play: null, 7806 pause: null, 7807 restart: null, 7808 rewind: null, 7809 fastForward: null, 7810 mute: null, 7811 volume: null, 7812 captions: null, 7813 download: null, 7814 fullscreen: null, 7815 pip: null, 7816 airplay: null, 7817 speed: null, 7818 quality: null, 7819 loop: null, 7820 language: null, 7821 }, 7822 events: [ 7823 "ended", 7824 "progress", 7825 "stalled", 7826 "playing", 7827 "waiting", 7828 "canplay", 7829 "canplaythrough", 7830 "loadstart", 7831 "loadeddata", 7832 "loadedmetadata", 7833 "timeupdate", 7834 "volumechange", 7835 "play", 7836 "pause", 7837 "error", 7838 "seeking", 7839 "seeked", 7840 "emptied", 7841 "ratechange", 7842 "cuechange", 7843 "download", 7844 "enterfullscreen", 7845 "exitfullscreen", 7846 "captionsenabled", 7847 "captionsdisabled", 7848 "languagechange", 7849 "controlshidden", 7850 "controlsshown", 7851 "ready", 7852 "statechange", 7853 "qualitychange", 7854 "adsloaded", 7855 "adscontentpause", 7856 "adscontentresume", 7857 "adstarted", 7858 "adsmidpoint", 7859 "adscomplete", 7860 "adsallcomplete", 7861 "adsimpression", 7862 "adsclick", 7863 ], 7864 selectors: { 7865 editable: "input, textarea, select, [contenteditable]", 7866 container: ".plyr", 7867 controls: { container: null, wrapper: ".plyr__controls" }, 7868 labels: "[data-plyr]", 7869 buttons: { 7870 play: '[data-plyr="play"]', 7871 pause: '[data-plyr="pause"]', 7872 restart: '[data-plyr="restart"]', 7873 rewind: '[data-plyr="rewind"]', 7874 fastForward: '[data-plyr="fast-forward"]', 7875 mute: '[data-plyr="mute"]', 7876 captions: '[data-plyr="captions"]', 7877 download: '[data-plyr="download"]', 7878 fullscreen: '[data-plyr="fullscreen"]', 7879 pip: '[data-plyr="pip"]', 7880 airplay: '[data-plyr="airplay"]', 7881 settings: '[data-plyr="settings"]', 7882 loop: '[data-plyr="loop"]', 7883 }, 7884 inputs: { 7885 seek: '[data-plyr="seek"]', 7886 volume: '[data-plyr="volume"]', 7887 speed: '[data-plyr="speed"]', 7888 language: '[data-plyr="language"]',
7889 quality: '[data-plyr="quality"]', 7890 }, 7891 display: { 7892 currentTime: ".plyr__time--current", 7893 duration: ".plyr__time--duration", 7894 buffer: ".plyr__progress__buffer", 7895 loop: ".plyr__progress__loop", 7896 volume: ".plyr__volume--display", 7897 }, 7898 progress: ".plyr__progress", 7899 captions: ".plyr__captions", 7900 caption: ".plyr__caption", 7901 }, 7902 classNames: { 7903 type: "plyr--{0}", 7904 provider: "plyr--{0}", 7905 video: "plyr__video-wrapper", 7906 embed: "plyr__video-embed", 7907 videoFixedRatio: "plyr__video-wrapper--fixed-ratio", 7908 embedContainer: "plyr__video-embed__container", 7909 poster: "plyr__poster", 7910 posterEnabled: "plyr__poster-enabled", 7911 ads: "plyr__ads", 7912 control: "plyr__control", 7913 controlPressed: "plyr__control--pressed", 7914 playing: "plyr--playing", 7915 paused: "plyr--paused", 7916 stopped: "plyr--stopped", 7917 loading: "plyr--loading", 7918 hover: "plyr--hover", 7919 tooltip: "plyr__tooltip", 7920 cues: "plyr__cues", 7921 marker: "plyr__progress__marker", 7922 hidden: "plyr__sr-only", 7923 hideControls: "plyr--hide-controls", 7924 isTouch: "plyr--is-touch", 7925 uiSupported: "plyr--full-ui", 7926 noTransition: "plyr--no-transition", 7927 display: { time: "plyr__time" }, 7928 menu: { 7929 value: "plyr__menu__value", 7930 badge: "plyr__badge", 7931 open: "plyr--menu-open", 7932 }, 7933 captions: { 7934 enabled: "plyr--captions-enabled", 7935 active: "plyr--captions-active", 7936 }, 7937 fullscreen: { 7938 enabled: "plyr--fullscreen-enabled", 7939 fallback: "plyr--fullscreen-fallback", 7940 }, 7941 pip: { supported: "plyr--pip-supported", active: "plyr--pip-active" }, 7942 airplay: { 7943 supported: "plyr--airplay-supported", 7944 active: "plyr--airplay-active", 7945 }, 7946 previewThumbnails: { 7947 thumbContainer: "plyr__preview-thumb", 7948 thumbContainerShown: "plyr__preview-thumb--is-shown", 7949 imageContainer: "plyr__preview-thumb__image-container", 7950 timeContainer: "plyr__preview-thumb__time-container", 7951 scrubbingContainer: "plyr__preview-scrubbing", 7952 scrubbingContainerShown: "plyr__preview-scrubbing--is-shown", 7953 }, 7954 }, 7955 attributes: { 7956 embed: { 7957 provider: "data-plyr-provider", 7958 id: "data-plyr-embed-id", 7959 hash: "data-plyr-embed-hash", 7960 }, 7961 }, 7962 ads: { enabled: !1, publisherId: "", tagUrl: "" }, 7963 previewThumbnails: { enabled: !1, src: "" }, 7964 vimeo: { 7965 byline: !1, 7966 portrait: !1, 7967 title: !1, 7968 speed: !0, 7969 transparent: !1, 7970 customControls: !0, 7971 referrerPolicy: null, 7972 premium: !1, 7973 }, 7974 youtube: { 7975 rel: 0, 7976 showinfo: 0, 7977 iv_load_policy: 3, 7978 modestbranding: 1, 7979 customControls: !0, 7980 noCookie: !1, 7981 }, 7982 mediaMetadata: { title: "", artist: "", album: "", artwork: [] }, 7983 markers: { enabled: !1, points: [] }, 7984 }, 7985 Ie = "picture-in-picture", 7986 $e = "inline", 7987 _e = { html5: "html5", youtube: "youtube", vimeo: "vimeo" }, 7988 Oe = "audio", 7989 je = "video"; 7990 const qe = () => {}; 7991 class De { 7992 constructor(e = !1) { 7993 (this.enabled = window.console && e), 7994 this.enabled && this.log("Debugging enabled"); 7995 } 7996 get log() { 7997 return this.enabled 7998 ? Function.prototype.bind.call(console.log, console) 7999 : qe; 8000 } 8001 get warn() { 8002 return this.enabled 8003 ? Function.prototype.bind.call(console.warn, console) 8004 : qe; 8005 } 8006 get error() { 8007 return this.enabled 8008 ? Function.prototype.bind.call(console.error, console) 8009 : qe; 8010 } 8011 } 8012 class He { 8013 constructor(t) {
8014 e(this, "onChange", () => { 8015 if (!this.supported) return; 8016 const e = this.player.elements.buttons.fullscreen; 8017 S.element(e) && (e.pressed = this.active); 8018 const t = 8019 this.target === this.player.media 8020 ? this.target 8021 : this.player.elements.container; 8022 Z.call( 8023 this.player, 8024 t, 8025 this.active ? "enterfullscreen" : "exitfullscreen", 8026 !0 8027 ); 8028 }), 8029 e(this, "toggleFallback", (e = !1) => { 8030 if ( 8031 (e 8032 ? (this.scrollPosition = { 8033 x: window.scrollX ?? 0, 8034 y: window.scrollY ?? 0, 8035 }) 8036 : window.scrollTo(this.scrollPosition.x, this.scrollPosition.y), 8037 (document.body.style.overflow = e ? "hidden" : ""), 8038 R( 8039 this.target, 8040 this.player.config.classNames.fullscreen.fallback, 8041 e 8042 ), 8043 M.isIos) 8044 ) { 8045 let t = document.head.querySelector('meta[name="viewport"]'); 8046 const i = "viewport-fit=cover"; 8047 t || 8048 ((t = document.createElement("meta")), 8049 t.setAttribute("name", "viewport")); 8050 const s = S.string(t.content) && t.content.includes(i); 8051 e 8052 ? ((this.cleanupViewport = !s), s || (t.content += `,${i}`)) 8053 : this.cleanupViewport && 8054 (t.content = t.content 8055 .split(",") 8056 .filter((e) => e.trim() !== i) 8057 .join(",")); 8058 } 8059 this.onChange(); 8060 }), 8061 e(this, "trapFocus", (e) => { 8062 if (M.isIos || M.isIPadOS || !this.active || "Tab" !== e.key) 8063 return; 8064 const t = document.activeElement, 8065 i = U.call( 8066 this.player, 8067 "a[href], button:not(:disabled), input:not(:disabled), [tabindex]" 8068 ), 8069 [s] = i, 8070 n = i[i.length - 1]; 8071 t !== n || e.shiftKey 8072 ? t === s && e.shiftKey && (n.focus(), e.preventDefault()) 8073 : (s.focus(), e.preventDefault()); 8074 }), 8075 e(this, "update", () => { 8076 if (this.supported) { 8077 let e; 8078 (e = this.forceFallback 8079 ? "Fallback (forced)" 8080 : He.nativeSupported 8081 ? "Native" 8082 : "Fallback"), 8083 this.player.debug.log(`${e} fullscreen enabled`); 8084 } else 8085 this.player.debug.log( 8086 "Fullscreen not supported and fallback disabled" 8087 ); 8088 R( 8089 this.player.elements.container, 8090 this.player.config.classNames.fullscreen.enabled, 8091 this.supported 8092 ); 8093 }), 8094 e(this, "enter", () => { 8095 this.supported && 8096 (M.isIos && this.player.config.fullscreen.iosNative 8097 ? this.player.isVimeo 8098 ? this.player.embed.requestFullscreen() 8099 : this.target.webkitEnterFullscreen() 8100 : !He.nativeSupported || this.forceFallback 8101 ? this.toggleFallback(!0) 8102 : this.prefix 8103 ? S.empty(this.prefix) || 8104 this.target[`${this.prefix}Request${this.property}`]() 8105 : this.target.requestFullscreen({ navigationUI: "hide" })); 8106 }), 8107 e(this, "exit", () => { 8108 if (this.supported) 8109 if (M.isIos && this.player.config.fullscreen.iosNative) 8110 this.player.isVimeo 8111 ? this.player.embed.exitFullscreen() 8112 : this.target.webkitEnterFullscreen(), 8113 ie(this.player.play()); 8114 else if (!He.nativeSupported || this.forceFallback) 8115 this.toggleFallback(!1); 8116 else if (this.prefix) { 8117 if (!S.empty(this.prefix)) { 8118 const e = "moz" === this.prefix ? "Cancel" : "Exit"; 8119 document[`${this.prefix}${e}${this.property}`](); 8120 } 8121 } else 8122 (document.cancelFullScreen || document.exitFullscreen).call( 8123 document 8124 ); 8125 }), 8126 e(this, "toggle", () => { 8127 this.active ? this.exit() : this.enter(); 8128 }), 8129 (this.player = t), 8130 (this.prefix = He.prefix), 8131 (this.property = He.property), 8132 (this.scrollPosition = { x: 0, y: 0 }), 8133 (this.forceFallback = "force" === t.config.fullscreen.fallback), 8134 (this.player.elements.fullscreen = 8135 t.config.fullscreen.container && 8136 (function (e, t) { 8137 const { prototype: i } = Element; 8138 return ( 8139 i.closest || 8140 function () { 8141 let e = this; 8142 do { 8143 if (V.matches(e, t)) return e; 8144 e = e.parentElement || e.parentNode; 8145 } while (null !== e && 1 === e.nodeType); 8146 return null; 8147 } 8148 ).call(e, t); 8149 })(this.player.elements.container, t.config.fullscreen.container)), 8150 X.call( 8151 this.player, 8152 document, 8153 "ms" === this.prefix 8154 ? "MSFullscreenChange" 8155 : `${this.prefix}fullscreenchange`, 8156 () => { 8157 this.onChange(); 8158 } 8159 ), 8160 X.call( 8161 this.player, 8162 this.player.elements.container, 8163 "dblclick", 8164 (e) => {
8165 (S.element(this.player.elements.controls) && 8166 this.player.elements.controls.contains(e.target)) || 8167 this.player.listeners.proxy(e, this.toggle, "fullscreen"); 8168 } 8169 ), 8170 X.call(this, this.player.elements.container, "keydown", (e) => 8171 this.trapFocus(e) 8172 ), 8173 this.update(); 8174 } 8175 static get nativeSupported() { 8176 return !!( 8177 document.fullscreenEnabled || 8178 document.webkitFullscreenEnabled || 8179 document.mozFullScreenEnabled || 8180 document.msFullscreenEnabled 8181 ); 8182 } 8183 get useNative() { 8184 return He.nativeSupported && !this.forceFallback; 8185 } 8186 static get prefix() { 8187 if (S.function(document.exitFullscreen)) return ""; 8188 let e = ""; 8189 return ( 8190 ["webkit", "moz", "ms"].some( 8191 (t) => 8192 !( 8193 !S.function(document[`${t}ExitFullscreen`]) && 8194 !S.function(document[`${t}CancelFullScreen`]) 8195 ) && ((e = t), !0) 8196 ), 8197 e 8198 ); 8199 } 8200 static get property() { 8201 return "moz" === this.prefix ? "FullScreen" : "Fullscreen"; 8202 } 8203 get supported() { 8204 return [ 8205 this.player.config.fullscreen.enabled, 8206 this.player.isVideo, 8207 He.nativeSupported || this.player.config.fullscreen.fallback, 8208 !this.player.isYouTube || 8209 He.nativeSupported || 8210 !M.isIos || 8211 (this.player.config.playsinline && 8212 !this.player.config.fullscreen.iosNative), 8213 ].every(Boolean); 8214 } 8215 get active() { 8216 if (!this.supported) return !1; 8217 if (!He.nativeSupported || this.forceFallback) 8218 return F( 8219 this.target, 8220 this.player.config.classNames.fullscreen.fallback 8221 ); 8222 const e = this.prefix 8223 ? this.target.getRootNode()[`${this.prefix}${this.property}Element`] 8224 : this.target.getRootNode().fullscreenElement; 8225 return e && e.shadowRoot 8226 ? e === this.target.getRootNode().host 8227 : e === this.target; 8228 } 8229 get target() { 8230 return M.isIos && this.player.config.fullscreen.iosNative 8231 ? this.player.media 8232 : this.player.elements.fullscreen ?? this.player.elements.container; 8233 } 8234 } 8235 function Re(e, t = 1) { 8236 return new Promise((i, s) => { 8237 const n = new Image(), 8238 a = () => { 8239 delete n.onload, delete n.onerror, (n.naturalWidth >= t ? i : s)(n); 8240 }; 8241 Object.assign(n, { onload: a, onerror: a, src: e }); 8242 }); 8243 } 8244 const Fe = { 8245 addStyleHook() { 8246 R( 8247 this.elements.container, 8248 this.config.selectors.container.replace(".", ""), 8249 !0 8250 ), 8251 R( 8252 this.elements.container, 8253 this.config.classNames.uiSupported, 8254 this.supported.ui 8255 ); 8256 }, 8257 toggleNativeControls(e = !1) { 8258 e && this.isHTML5 8259 ? this.media.setAttribute("controls", "") 8260 : this.media.removeAttribute("controls"); 8261 }, 8262 build() { 8263 if ((this.listeners.media(), !this.supported.ui)) 8264 return ( 8265 this.debug.warn( 8266 `Basic support only for ${this.provider} ${this.type}` 8267 ), 8268 void Fe.toggleNativeControls.call(this, !0) 8269 ); 8270 S.element(this.elements.controls) || 8271 (Pe.inject.call(this), this.listeners.controls()), 8272 Fe.toggleNativeControls.call(this), 8273 this.isHTML5 && xe.setup.call(this), 8274 (this.volume = null), 8275 (this.muted = null), 8276 (this.loop = null),
8277 (this.quality = null), 8278 (this.speed = null), 8279 Pe.updateVolume.call(this), 8280 Pe.timeUpdate.call(this), 8281 Pe.durationUpdate.call(this), 8282 Fe.checkPlaying.call(this), 8283 R( 8284 this.elements.container, 8285 this.config.classNames.pip.supported, 8286 K.pip && this.isHTML5 && this.isVideo 8287 ), 8288 R( 8289 this.elements.container, 8290 this.config.classNames.airplay.supported, 8291 K.airplay && this.isHTML5 8292 ), 8293 R( 8294 this.elements.container, 8295 this.config.classNames.isTouch, 8296 this.touch 8297 ), 8298 (this.ready = !0), 8299 setTimeout(() => { 8300 Z.call(this, this.media, "ready"); 8301 }, 0), 8302 Fe.setTitle.call(this), 8303 this.poster && 8304 Fe.setPoster.call(this, this.poster, !1).catch(() => {}), 8305 this.config.duration && Pe.durationUpdate.call(this), 8306 this.config.mediaMetadata && Pe.setMediaMetadata.call(this); 8307 }, 8308 setTitle() { 8309 let e = ve.get("play", this.config); 8310 if ( 8311 (S.string(this.config.title) && 8312 !S.empty(this.config.title) && 8313 (e += `, ${this.config.title}`), 8314 Array.from(this.elements.buttons.play || []).forEach((t) => { 8315 t.setAttribute("aria-label", e); 8316 }), 8317 this.isEmbed) 8318 ) { 8319 const e = B.call(this, "iframe"); 8320 if (!S.element(e)) return; 8321 const t = S.empty(this.config.title) ? "video" : this.config.title, 8322 i = ve.get("frameTitle", this.config); 8323 e.setAttribute("title", i.replace("{title}", t)); 8324 } 8325 }, 8326 togglePoster(e) { 8327 R(this.elements.container, this.config.classNames.posterEnabled, e); 8328 }, 8329 setPoster(e, t = !0) { 8330 return t && this.poster 8331 ? Promise.reject(new Error("Poster already set")) 8332 : (this.media.setAttribute("data-poster", e), 8333 this.elements.poster.removeAttribute("hidden"), 8334 te 8335 .call(this) 8336 .then(() => Re(e)) 8337 .catch((t) => { 8338 throw (e === this.poster && Fe.togglePoster.call(this, !1), t); 8339 }) 8340 .then(() => { 8341 if (e !== this.poster) 8342 throw new Error( 8343 "setPoster cancelled by later call to setPoster" 8344 ); 8345 }) 8346 .then( 8347 () => ( 8348 Object.assign(this.elements.poster.style, { 8349 backgroundImage: `url('${e}')`, 8350 backgroundSize: "", 8351 }), 8352 Fe.togglePoster.call(this, !0), 8353 e 8354 ) 8355 )); 8356 }, 8357 checkPlaying(e) { 8358 R( 8359 this.elements.container, 8360 this.config.classNames.playing, 8361 this.playing 8362 ), 8363 R( 8364 this.elements.container, 8365 this.config.classNames.paused, 8366 this.paused 8367 ), 8368 R( 8369 this.elements.container, 8370 this.config.classNames.stopped, 8371 this.stopped 8372 ), 8373 Array.from(this.elements.buttons.play || []).forEach((e) => { 8374 Object.assign(e, { pressed: this.playing }), 8375 e.setAttribute( 8376 "aria-label", 8377 ve.get(this.playing ? "pause" : "play", this.config) 8378 ); 8379 }), 8380 (S.event(e) && "timeupdate" === e.type) || 8381 Fe.toggleControls.call(this); 8382 }, 8383 checkLoading(e) { 8384 (this.loading = ["stalled", "waiting"].includes(e.type)), 8385 clearTimeout(this.timers.loading), 8386 (this.timers.loading = setTimeout( 8387 () => { 8388 R( 8389 this.elements.container, 8390 this.config.classNames.loading, 8391 this.loading 8392 ), 8393 Fe.toggleControls.call(this); 8394 }, 8395 this.loading ? 250 : 0 8396 )); 8397 }, 8398 toggleControls(e) { 8399 const { controls: t } = this.elements; 8400 if (t && this.config.hideControls) { 8401 const i = this.touch && this.lastSeekTime + 2e3 > Date.now(); 8402 this.toggleControls( 8403 Boolean( 8404 e || this.loading || this.paused || t.pressed || t.hover || i 8405 ) 8406 ); 8407 } 8408 }, 8409 migrateStyles() { 8410 Object.values({ ...this.media.style }) 8411 .filter((e) => !S.empty(e) && S.string(e) && e.startsWith("--plyr")) 8412 .forEach((e) => { 8413 this.elements.container.style.setProperty( 8414 e, 8415 this.media.style.getPropertyValue(e) 8416 ), 8417 this.media.style.removeProperty(e); 8418 }), 8419 S.empty(this.media.style) && this.media.removeAttribute("style"); 8420 }, 8421 }; 8422 class Ve { 8423 constructor(t) { 8424 e(this, "firstTouch", () => { 8425 const { player: e } = this, 8426 { elements: t } = e; 8427 (e.touch = !0), R(t.container, e.config.classNames.isTouch, !0); 8428 }), 8429 e(this, "global", (e = !0) => { 8430 const { player: t } = this; 8431 t.config.keyboard.global && 8432 Q.call(t, window, "keydown keyup", this.handleKey, e, !1), 8433 Q.call(t, document.body, "click", this.toggleMenu, e), 8434 G.call(t, document.body, "touchstart", this.firstTouch); 8435 }), 8436 e(this, "container", () => { 8437 const { player: e } = this,
8438 { config: t, elements: i, timers: s } = e; 8439 !t.keyboard.global && 8440 t.keyboard.focused && 8441 X.call(e, i.container, "keydown keyup", this.handleKey, !1), 8442 X.call( 8443 e, 8444 i.container, 8445 "mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen", 8446 (t) => { 8447 const { controls: n } = i; 8448 n && 8449 "enterfullscreen" === t.type && 8450 ((n.pressed = !1), (n.hover = !1)); 8451 let a = 0; 8452 ["touchstart", "touchmove", "mousemove"].includes(t.type) && 8453 (Fe.toggleControls.call(e, !0), (a = e.touch ? 3e3 : 2e3)), 8454 clearTimeout(s.controls), 8455 (s.controls = setTimeout( 8456 () => Fe.toggleControls.call(e, !1), 8457 a 8458 )); 8459 } 8460 ); 8461 const n = () => { 8462 if (!e.isVimeo || e.config.vimeo.premium) return; 8463 const t = i.wrapper, 8464 { active: s } = e.fullscreen, 8465 [n, a] = ce.call(e), 8466 l = ae(`aspect-ratio: ${n} / ${a}`); 8467 if (!s) 8468 return void (l 8469 ? ((t.style.width = null), (t.style.height = null)) 8470 : ((t.style.maxWidth = null), (t.style.margin = null))); 8471 const [r, o] = [ 8472 Math.max( 8473 document.documentElement.clientWidth || 0, 8474 window.innerWidth || 0 8475 ), 8476 Math.max( 8477 document.documentElement.clientHeight || 0, 8478 window.innerHeight || 0 8479 ), 8480 ], 8481 c = r / o > n / a; 8482 l 8483 ? ((t.style.width = c ? "auto" : "100%"), 8484 (t.style.height = c ? "100%" : "auto")) 8485 : ((t.style.maxWidth = c ? (o / a) * n + "px" : null), 8486 (t.style.margin = c ? "0 auto" : null)); 8487 }, 8488 a = () => { 8489 clearTimeout(s.resized), (s.resized = setTimeout(n, 50)); 8490 }; 8491 X.call(e, i.container, "enterfullscreen exitfullscreen", (t) => { 8492 const { target: s } = e.fullscreen; 8493 if (s !== i.container) return; 8494 if (!e.isEmbed && S.empty(e.config.ratio)) return; 8495 n(); 8496 ("enterfullscreen" === t.type ? X : J).call( 8497 e, 8498 window, 8499 "resize", 8500 a 8501 ); 8502 }); 8503 }), 8504 e(this, "media", () => { 8505 const { player: e } = this, 8506 { elements: t } = e; 8507 if ( 8508 (X.call(e, e.media, "timeupdate seeking seeked", (t) => 8509 Pe.timeUpdate.call(e, t) 8510 ), 8511 X.call( 8512 e, 8513 e.media, 8514 "durationchange loadeddata loadedmetadata", 8515 (t) => Pe.durationUpdate.call(e, t) 8516 ), 8517 X.call(e, e.media, "ended", () => { 8518 e.isHTML5 && 8519 e.isVideo && 8520 e.config.resetOnEnd && 8521 (e.restart(), e.pause()); 8522 }), 8523 X.call(e, e.media, "progress playing seeking seeked", (t) => 8524 Pe.updateProgress.call(e, t) 8525 ), 8526 X.call(e, e.media, "volumechange", (t) => 8527 Pe.updateVolume.call(e, t) 8528 ), 8529 X.call( 8530 e, 8531 e.media, 8532 "playing play pause ended emptied timeupdate", 8533 (t) => Fe.checkPlaying.call(e, t) 8534 ), 8535 X.call(e, e.media, "waiting canplay seeked playing", (t) => 8536 Fe.checkLoading.call(e, t) 8537 ), 8538 e.supported.ui && e.config.clickToPlay && !e.isAudio) 8539 ) { 8540 const i = B.call(e, `.${e.config.classNames.video}`);
8541 if (!S.element(i)) return; 8542 X.call(e, t.container, "click", (s) => { 8543 ([t.container, i].includes(s.target) || i.contains(s.target)) && 8544 ((e.touch && e.config.hideControls) || 8545 (e.ended 8546 ? (this.proxy(s, e.restart, "restart"), 8547 this.proxy( 8548 s, 8549 () => { 8550 ie(e.play()); 8551 }, 8552 "play" 8553 )) 8554 : this.proxy( 8555 s, 8556 () => { 8557 ie(e.togglePlay()); 8558 }, 8559 "play" 8560 ))); 8561 }); 8562 } 8563 e.supported.ui && 8564 e.config.disableContextMenu && 8565 X.call( 8566 e, 8567 t.wrapper, 8568 "contextmenu", 8569 (e) => { 8570 e.preventDefault(); 8571 }, 8572 !1 8573 ), 8574 X.call(e, e.media, "volumechange", () => { 8575 e.storage.set({ volume: e.volume, muted: e.muted }); 8576 }), 8577 X.call(e, e.media, "ratechange", () => { 8578 Pe.updateSetting.call(e, "speed"), 8579 e.storage.set({ speed: e.speed }); 8580 }), 8581 X.call(e, e.media, "qualitychange", (t) => { 8582 Pe.updateSetting.call(e, "quality", null, t.detail.quality); 8583 }), 8584 X.call(e, e.media, "ready qualitychange", () => { 8585 Pe.setDownloadUrl.call(e); 8586 }); 8587 const i = e.config.events.concat(["keyup", "keydown"]).join(" "); 8588 X.call(e, e.media, i, (i) => { 8589 let { detail: s = {} } = i; 8590 "error" === i.type && (s = e.media.error), 8591 Z.call(e, t.container, i.type, !0, s); 8592 }); 8593 }), 8594 e(this, "proxy", (e, t, i) => { 8595 const { player: s } = this, 8596 n = s.config.listeners[i]; 8597 let a = !0; 8598 S.function(n) && (a = n.call(s, e)), 8599 !1 !== a && S.function(t) && t.call(s, e); 8600 }), 8601 e(this, "bind", (e, t, i, s, n = !0) => { 8602 const { player: a } = this, 8603 l = a.config.listeners[s], 8604 r = S.function(l); 8605 X.call(a, e, t, (e) => this.proxy(e, i, s), n && !r); 8606 }), 8607 e(this, "controls", () => { 8608 const { player: e } = this, 8609 { elements: t } = e, 8610 i = M.isIE ? "change" : "input"; 8611 if ( 8612 (t.buttons.play && 8613 Array.from(t.buttons.play).forEach((t) => { 8614 this.bind( 8615 t, 8616 "click", 8617 () => { 8618 ie(e.togglePlay()); 8619 }, 8620 "play" 8621 ); 8622 }), 8623 this.bind(t.buttons.restart, "click", e.restart, "restart"), 8624 this.bind( 8625 t.buttons.rewind, 8626 "click", 8627 () => { 8628 (e.lastSeekTime = Date.now()), e.rewind(); 8629 }, 8630 "rewind" 8631 ), 8632 this.bind( 8633 t.buttons.fastForward, 8634 "click", 8635 () => { 8636 (e.lastSeekTime = Date.now()), e.forward(); 8637 }, 8638 "fastForward" 8639 ), 8640 this.bind( 8641 t.buttons.mute, 8642 "click", 8643 () => { 8644 e.muted = !e.muted; 8645 }, 8646 "mute" 8647 ), 8648 this.bind(t.buttons.captions, "click", () => e.toggleCaptions()), 8649 this.bind( 8650 t.buttons.download, 8651 "click", 8652 () => { 8653 Z.call(e, e.media, "download"); 8654 }, 8655 "download" 8656 ), 8657 this.bind( 8658 t.buttons.fullscreen, 8659 "click", 8660 () => { 8661 e.fullscreen.toggle(); 8662 }, 8663 "fullscreen" 8664 ), 8665 this.bind( 8666 t.buttons.pip, 8667 "click", 8668 () => { 8669 e.pip = "toggle"; 8670 }, 8671 "pip" 8672 ), 8673 this.bind(t.buttons.airplay, "click", e.airplay, "airplay"), 8674 this.bind( 8675 t.buttons.settings, 8676 "click", 8677 (t) => { 8678 t.stopPropagation(), 8679 t.preventDefault(), 8680 Pe.toggleMenu.call(e, t); 8681 }, 8682 null, 8683 !1 8684 ), 8685 this.bind( 8686 t.buttons.settings, 8687 "keyup", 8688 (t) => { 8689 [" ", "Enter"].includes(t.key) && 8690 ("Enter" !== t.key 8691 ? (t.preventDefault(), 8692 t.stopPropagation(), 8693 Pe.toggleMenu.call(e, t)) 8694 : Pe.focusFirstMenuItem.call(e, null, !0)); 8695 }, 8696 null, 8697 !1 8698 ), 8699 this.bind(t.settings.menu, "keydown", (t) => { 8700 "Escape" === t.key && Pe.toggleMenu.call(e, t); 8701 }), 8702 this.bind(t.inputs.seek, "mousedown mousemove", (e) => { 8703 const i = t.progress.getBoundingClientRect(), 8704 s = (100 / i.width) * (e.pageX - i.left); 8705 e.currentTarget.setAttribute("seek-value", s); 8706 }), 8707 this.bind(
8708 t.inputs.seek, 8709 "mousedown mouseup keydown keyup touchstart touchend", 8710 (t) => { 8711 const i = t.currentTarget, 8712 s = "play-on-seeked"; 8713 if ( 8714 S.keyboardEvent(t) && 8715 !["ArrowLeft", "ArrowRight"].includes(t.key) 8716 ) 8717 return; 8718 e.lastSeekTime = Date.now(); 8719 const n = i.hasAttribute(s), 8720 a = ["mouseup", "touchend", "keyup"].includes(t.type); 8721 n && a 8722 ? (i.removeAttribute(s), ie(e.play())) 8723 : !a && e.playing && (i.setAttribute(s, ""), e.pause()); 8724 } 8725 ), 8726 M.isIos) 8727 ) { 8728 const t = U.call(e, 'input[type="range"]'); 8729 Array.from(t).forEach((e) => this.bind(e, i, (e) => P(e.target))); 8730 } 8731 this.bind( 8732 t.inputs.seek, 8733 i, 8734 (t) => { 8735 const i = t.currentTarget; 8736 let s = i.getAttribute("seek-value"); 8737 S.empty(s) && (s = i.value), 8738 i.removeAttribute("seek-value"), 8739 (e.currentTime = (s / i.max) * e.duration); 8740 }, 8741 "seek" 8742 ), 8743 this.bind(t.progress, "mouseenter mouseleave mousemove", (t) => 8744 Pe.updateSeekTooltip.call(e, t) 8745 ), 8746 this.bind(t.progress, "mousemove touchmove", (t) => { 8747 const { previewThumbnails: i } = e; 8748 i && i.loaded && i.startMove(t); 8749 }), 8750 this.bind(t.progress, "mouseleave touchend click", () => { 8751 const { previewThumbnails: t } = e; 8752 t && t.loaded && t.endMove(!1, !0); 8753 }), 8754 this.bind(t.progress, "mousedown touchstart", (t) => { 8755 const { previewThumbnails: i } = e; 8756 i && i.loaded && i.startScrubbing(t); 8757 }), 8758 this.bind(t.progress, "mouseup touchend", (t) => { 8759 const { previewThumbnails: i } = e; 8760 i && i.loaded && i.endScrubbing(t); 8761 }), 8762 M.isWebKit && 8763 Array.from(U.call(e, 'input[type="range"]')).forEach((t) => { 8764 this.bind(t, "input", (t) => 8765 Pe.updateRangeFill.call(e, t.target) 8766 ); 8767 }), 8768 e.config.toggleInvert && 8769 !S.element(t.display.duration) && 8770 this.bind(t.display.currentTime, "click", () => { 8771 0 !== e.currentTime && 8772 ((e.config.invertTime = !e.config.invertTime), 8773 Pe.timeUpdate.call(e)); 8774 }), 8775 this.bind( 8776 t.inputs.volume, 8777 i, 8778 (t) => { 8779 e.volume = t.target.value; 8780 }, 8781 "volume" 8782 ), 8783 this.bind(t.controls, "mouseenter mouseleave", (i) => { 8784 t.controls.hover = !e.touch && "mouseenter" === i.type; 8785 }), 8786 t.fullscreen && 8787 Array.from(t.fullscreen.children) 8788 .filter((e) => !e.contains(t.container)) 8789 .forEach((i) => { 8790 this.bind(i, "mouseenter mouseleave", (i) => { 8791 t.controls && 8792 (t.controls.hover = 8793 !e.touch && "mouseenter" === i.type); 8794 }); 8795 }), 8796 this.bind( 8797 t.controls, 8798 "mousedown mouseup touchstart touchend touchcancel", 8799 (e) => { 8800 t.controls.pressed = ["mousedown", "touchstart"].includes( 8801 e.type 8802 ); 8803 } 8804 ), 8805 this.bind(t.controls, "focusin", () => { 8806 const { config: i, timers: s } = e; 8807 R(t.controls, i.classNames.noTransition, !0), 8808 Fe.toggleControls.call(e, !0), 8809 setTimeout(() => { 8810 R(t.controls, i.classNames.noTransition, !1); 8811 }, 0); 8812 const n = this.touch ? 3e3 : 4e3; 8813 clearTimeout(s.controls), 8814 (s.controls = setTimeout( 8815 () => Fe.toggleControls.call(e, !1), 8816 n 8817 )); 8818 }), 8819 this.bind(
8820 t.inputs.volume, 8821 "wheel", 8822 (t) => { 8823 const i = t.webkitDirectionInvertedFromDevice, 8824 [s, n] = [t.deltaX, -t.deltaY].map((e) => (i ? -e : e)), 8825 a = Math.sign(Math.abs(s) > Math.abs(n) ? s : n); 8826 e.increaseVolume(a / 50); 8827 const { volume: l } = e.media; 8828 ((1 === a && l < 1) || (-1 === a && l > 0)) && 8829 t.preventDefault(); 8830 }, 8831 "volume", 8832 !1 8833 ); 8834 }), 8835 (this.player = t), 8836 (this.lastKey = null), 8837 (this.focusTimer = null), 8838 (this.lastKeyDown = null), 8839 (this.handleKey = this.handleKey.bind(this)), 8840 (this.toggleMenu = this.toggleMenu.bind(this)), 8841 (this.firstTouch = this.firstTouch.bind(this)); 8842 } 8843 handleKey(e) { 8844 const { player: t } = this, 8845 { elements: i } = t, 8846 { 8847 key: s, 8848 type: n, 8849 altKey: a, 8850 ctrlKey: l, 8851 metaKey: r, 8852 shiftKey: o, 8853 } = e, 8854 c = "keydown" === n, 8855 u = c && s === this.lastKey; 8856 if (a || l || r || o) return; 8857 if (!s) return; 8858 if (c) { 8859 const n = document.activeElement; 8860 if (S.element(n)) { 8861 const { editable: s } = t.config.selectors, 8862 { seek: a } = i.inputs; 8863 if (n !== a && V(n, s)) return; 8864 if (" " === e.key && V(n, 'button, [role^="menuitem"]')) return; 8865 } 8866 switch ( 8867 ([ 8868 " ", 8869 "ArrowLeft", 8870 "ArrowUp", 8871 "ArrowRight", 8872 "ArrowDown", 8873 "0", 8874 "1", 8875 "2", 8876 "3", 8877 "4", 8878 "5", 8879 "6", 8880 "7", 8881 "8", 8882 "9", 8883 "c", 8884 "f", 8885 "k", 8886 "l", 8887 "m", 8888 ].includes(s) && (e.preventDefault(), e.stopPropagation()), 8889 s) 8890 ) { 8891 case "0": 8892 case "1": 8893 case "2": 8894 case "3": 8895 case "4": 8896 case "5": 8897 case "6": 8898 case "7": 8899 case "8": 8900 case "9": 8901 u || 8902 ((h = parseInt(s, 10)), 8903 (t.currentTime = (t.duration / 10) * h)); 8904 break; 8905 case " ": 8906 case "k": 8907 u || ie(t.togglePlay()); 8908 break; 8909 case "ArrowUp": 8910 t.increaseVolume(0.1); 8911 break; 8912 case "ArrowDown": 8913 t.decreaseVolume(0.1); 8914 break; 8915 case "m": 8916 u || (t.muted = !t.muted); 8917 break; 8918 case "ArrowRight": 8919 t.forward(); 8920 break; 8921 case "ArrowLeft": 8922 t.rewind(); 8923 break; 8924 case "f": 8925 t.fullscreen.toggle(); 8926 break; 8927 case "c": 8928 u || t.toggleCaptions(); 8929 break; 8930 case "l": 8931 t.loop = !t.loop; 8932 } 8933 "Escape" === s && 8934 !t.fullscreen.usingNative && 8935 t.fullscreen.active && 8936 t.fullscreen.toggle(), 8937 (this.lastKey = s); 8938 } else this.lastKey = null; 8939 var h; 8940 } 8941 toggleMenu(e) { 8942 Pe.toggleMenu.call(this.player, e); 8943 } 8944 } 8945 "undefined" != typeof globalThis 8946 ? globalThis 8947 : "undefined" != typeof window 8948 ? window 8949 : "undefined" != typeof global 8950 ? global 8951 : "undefined" != typeof self && self; 8952 var Ue = (function (e, t) { 8953 return e((t = { exports: {} }), t.exports), t.exports; 8954 })(function (e, t) { 8955 e.exports = (function () { 8956 var e = function () {}, 8957 t = {}, 8958 i = {}, 8959 s = {}; 8960 function n(e, t) { 8961 e = e.push ? e : [e]; 8962 var n, 8963 a, 8964 l, 8965 r = [], 8966 o = e.length, 8967 c = o; 8968 for ( 8969 n = function (e, i) { 8970 i.length && r.push(e), --c || t(r); 8971 }; 8972 o--; 8973 8974 ) 8975 (a = e[o]), (l = i[a]) ? n(a, l) : (s[a] = s[a] || []).push(n); 8976 } 8977 function a(e, t) { 8978 if (e) { 8979 var n = s[e]; 8980 if (((i[e] = t), n)) for (; n.length; ) n[0](e, t), n.splice(0, 1); 8981 } 8982 } 8983 function l(t, i) { 8984 t.call && (t = { success: t }), 8985 i.length ? (t.error || e)(i) : (t.success || e)(t); 8986 } 8987 function r(t, i, s, n) { 8988 var a, 8989 l, 8990 o = document, 8991 c = s.async, 8992 u = (s.numRetries || 0) + 1, 8993 h = s.before || e, 8994 d = t.replace(/[\?|#].*$/, ""), 8995 m = t.replace(/^(css|img)!/, ""); 8996 (n = n || 0), 8997 /(^css!|\.css$)/.test(d) 8998 ? (((l = o.createElement("link")).rel = "stylesheet"), 8999 (l.href = m), 9000 (a = "hideFocus" in l) && 9001 l.relList && 9002 ((a = 0), (l.rel = "preload"), (l.as = "style"))) 9003 : /(^img!|\.(png|gif|jpg|svg|webp)$)/.test(d) 9004 ? ((l = o.createElement("img")).src = m) 9005 : (((l = o.createElement("script")).src = t), 9006 (l.async = void 0 === c || c)), 9007 (l.onload = 9008 l.onerror = 9009 l.onbeforeload = 9010 function (e) { 9011 var o = e.type[0]; 9012 if (a) 9013 try { 9014 l.sheet.cssText.length || (o = "e"); 9015 } catch (e) { 9016 18 != e.code && (o = "e"); 9017 } 9018 if ("e" == o) { 9019 if ((n += 1) < u) return r(t, i, s, n); 9020 } else if ("preload" == l.rel && "style" == l.as) 9021 return (l.rel = "stylesheet"); 9022 i(t, o, e.defaultPrevented); 9023 }), 9024 !1 !== h(t, l) && o.head.appendChild(l); 9025 } 9026 function o(e, t, i) { 9027 var s, 9028 n, 9029 a = (e = e.push ? e : [e]).length, 9030 l = a, 9031 o = []; 9032 for ( 9033 s = function (e, i, s) { 9034 if (("e" == i && o.push(e), "b" == i)) { 9035 if (!s) return; 9036 o.push(e); 9037 } 9038 --a || t(o); 9039 }, 9040 n = 0; 9041 n < l; 9042 n++ 9043 ) 9044 r(e[n], s, i); 9045 } 9046 function c(e, i, s) { 9047 var n, r; 9048 if ((i && i.trim && (n = i), (r = (n ? s : i) || {}), n)) { 9049 if (n in t) throw "LoadJS"; 9050 t[n] = !0; 9051 } 9052 function c(t, i) { 9053 o( 9054 e, 9055 function (e) { 9056 l(r, e), t && l({ success: t, error: i }, e), a(n, e); 9057 }, 9058 r 9059 ); 9060 } 9061 if (r.returnPromise) return new Promise(c); 9062 c(); 9063 } 9064 return ( 9065 (c.ready = function (e, t) { 9066 return ( 9067 n(e, function (e) { 9068 l(t, e); 9069 }), 9070 c 9071 ); 9072 }), 9073 (c.done = function (e) { 9074 a(e, []); 9075 }), 9076 (c.reset = function () { 9077 (t = {}), (i = {}), (s = {}); 9078 }), 9079 (c.isDefined = function (e) { 9080 return e in t; 9081 }), 9082 c 9083 ); 9084 })(); 9085 }); 9086 function Be(e) { 9087 return new Promise((t, i) => { 9088 Ue(e, { success: t, error: i }); 9089 }); 9090 } 9091 function We(e) { 9092 e && !this.embed.hasPlayed && (this.embed.hasPlayed = !0), 9093 this.media.paused === e && 9094 ((this.media.paused = !e), 9095 Z.call(this, this.media, e ? "play" : "pause")); 9096 } 9097 const ze = { 9098 setup() { 9099 const e = this; 9100 R(e.elements.wrapper, e.config.classNames.embed, !0), 9101 (e.options.speed = e.config.speed.options), 9102 ue.call(e), 9103 S.object(window.Vimeo) 9104 ? ze.ready.call(e) 9105 : Be(e.config.urls.vimeo.sdk) 9106 .then(() => { 9107 ze.ready.call(e); 9108 }) 9109 .catch((t) => { 9110 e.debug.warn("Vimeo SDK (player.js) failed to load", t); 9111 }); 9112 }, 9113 ready() { 9114 const e = this, 9115 t = e.config.vimeo, 9116 { premium: i, referrerPolicy: s, ...n } = t; 9117 let a = e.media.getAttribute("src"), 9118 l = ""; 9119 S.empty(a) 9120 ? ((a = e.media.getAttribute(e.config.attributes.embed.id)), 9121 (l = e.media.getAttribute(e.config.attributes.embed.hash))) 9122 : (l = (function (e) { 9123 const t = e.match( 9124 /^.*(vimeo.com\/|video\/)(\d+)(\?.*&*h=|\/)+([\d,a-f]+)/ 9125 ); 9126 return t && 5 === t.length ? t[4] : null; 9127 })(a)); 9128 const r = l ? { h: l } : {}; 9129 i && Object.assign(n, { controls: !1, sidedock: !1 }); 9130 const o = Ne({ 9131 loop: e.config.loop.active, 9132 autoplay: e.autoplay, 9133 muted: e.muted, 9134 gesture: "media", 9135 playsinline: e.config.playsinline, 9136 ...r, 9137 ...n, 9138 }), 9139 c = 9140 ((u = a), 9141 S.empty(u) 9142 ? null 9143 : S.number(Number(u)) 9144 ? u 9145 : u.match(/^.*(vimeo.com\/|video\/)(\d+).*/) 9146 ? RegExp.$2 9147 : u); 9148 var u; 9149 const h = $("iframe"), 9150 d = me(e.config.urls.vimeo.iframe, c, o); 9151 if ( 9152 (h.setAttribute("src", d), 9153 h.setAttribute("allowfullscreen", ""), 9154 h.setAttribute( 9155 "allow", 9156 [ 9157 "autoplay", 9158 "fullscreen", 9159 "picture-in-picture", 9160 "encrypted-media", 9161 "accelerometer", 9162 "gyroscope", 9163 ].join("; ") 9164 ), 9165 S.empty(s) || h.setAttribute("referrerPolicy", s), 9166 i || !t.customControls) 9167 ) 9168 h.setAttribute("data-poster", e.poster), (e.media = q(h, e.media)); 9169 else { 9170 const t = $("div", { 9171 class: e.config.classNames.embedContainer, 9172 "data-poster": e.poster, 9173 }); 9174 t.appendChild(h), (e.media = q(t, e.media)); 9175 } 9176 t.customControls || 9177 Te(me(e.config.urls.vimeo.api, d)).then((t) => { 9178 !S.empty(t) && 9179 t.thumbnail_url && 9180 Fe.setPoster.call(e, t.thumbnail_url).catch(() => {}); 9181 }), 9182 (e.embed = new window.Vimeo.Player(h, {
9183 autopause: e.config.autopause, 9184 muted: e.muted, 9185 })), 9186 (e.media.paused = !0), 9187 (e.media.currentTime = 0), 9188 e.supported.ui && e.embed.disableTextTrack(), 9189 (e.media.play = () => (We.call(e, !0), e.embed.play())), 9190 (e.media.pause = () => (We.call(e, !1), e.embed.pause())), 9191 (e.media.stop = () => { 9192 e.pause(), (e.currentTime = 0); 9193 }); 9194 let { currentTime: m } = e.media; 9195 Object.defineProperty(e.media, "currentTime", { 9196 get: () => m, 9197 set(t) { 9198 const { embed: i, media: s, paused: n, volume: a } = e, 9199 l = n && !i.hasPlayed; 9200 (s.seeking = !0), 9201 Z.call(e, s, "seeking"), 9202 Promise.resolve(l && i.setVolume(0)) 9203 .then(() => i.setCurrentTime(t)) 9204 .then(() => l && i.pause()) 9205 .then(() => l && i.setVolume(a)) 9206 .catch(() => {}); 9207 }, 9208 }); 9209 let p = e.config.speed.selected; 9210 Object.defineProperty(e.media, "playbackRate", { 9211 get: () => p, 9212 set(t) { 9213 e.embed 9214 .setPlaybackRate(t) 9215 .then(() => { 9216 (p = t), Z.call(e, e.media, "ratechange"); 9217 }) 9218 .catch(() => { 9219 e.options.speed = [1]; 9220 }); 9221 }, 9222 }); 9223 let { volume: g } = e.config; 9224 Object.defineProperty(e.media, "volume", { 9225 get: () => g, 9226 set(t) { 9227 e.embed.setVolume(t).then(() => { 9228 (g = t), Z.call(e, e.media, "volumechange"); 9229 }); 9230 }, 9231 }); 9232 let { muted: f } = e.config; 9233 Object.defineProperty(e.media, "muted", { 9234 get: () => f, 9235 set(t) { 9236 const i = !!S.boolean(t) && t; 9237 e.embed.setMuted(!!i || e.config.muted).then(() => { 9238 (f = i), Z.call(e, e.media, "volumechange"); 9239 }); 9240 }, 9241 }); 9242 let y, 9243 { loop: b } = e.config; 9244 Object.defineProperty(e.media, "loop", { 9245 get: () => b, 9246 set(t) { 9247 const i = S.boolean(t) ? t : e.config.loop.active; 9248 e.embed.setLoop(i).then(() => { 9249 b = i; 9250 }); 9251 }, 9252 }), 9253 e.embed 9254 .getVideoUrl() 9255 .then((t) => { 9256 (y = t), Pe.setDownloadUrl.call(e); 9257 }) 9258 .catch((e) => { 9259 this.debug.warn(e); 9260 }), 9261 Object.defineProperty(e.media, "currentSrc", { get: () => y }), 9262 Object.defineProperty(e.media, "ended", { 9263 get: () => e.currentTime === e.duration, 9264 }), 9265 Promise.all([e.embed.getVideoWidth(), e.embed.getVideoHeight()]).then( 9266 (t) => { 9267 const [i, s] = t; 9268 (e.embed.ratio = he(i, s)), ue.call(this); 9269 } 9270 ), 9271 e.embed.setAutopause(e.config.autopause).then((t) => { 9272 e.config.autopause = t; 9273 }), 9274 e.embed.getVideoTitle().then((t) => { 9275 (e.config.title = t), Fe.setTitle.call(this); 9276 }), 9277 e.embed.getCurrentTime().then((t) => { 9278 (m = t), Z.call(e, e.media, "timeupdate"); 9279 }), 9280 e.embed.getDuration().then((t) => { 9281 (e.media.duration = t), Z.call(e, e.media, "durationchange"); 9282 }), 9283 e.embed.getTextTracks().then((t) => { 9284 (e.media.textTracks = t), xe.setup.call(e); 9285 }), 9286 e.embed.on("cuechange", ({ cues: t = [] }) => { 9287 const i = t.map((e) => 9288 (function (e) { 9289 const t = document.createDocumentFragment(), 9290 i = document.createElement("div"); 9291 return ( 9292 t.appendChild(i), (i.innerHTML = e), t.firstChild.innerText 9293 ); 9294 })(e.text) 9295 ); 9296 xe.updateCues.call(e, i); 9297 }), 9298 e.embed.on("loaded", () => { 9299 if ( 9300 (e.embed.getPaused().then((t) => { 9301 We.call(e, !t), t || Z.call(e, e.media, "playing"); 9302 }),
9303 S.element(e.embed.element) && e.supported.ui) 9304 ) { 9305 e.embed.element.setAttribute("tabindex", -1); 9306 } 9307 }), 9308 e.embed.on("bufferstart", () => { 9309 Z.call(e, e.media, "waiting"); 9310 }), 9311 e.embed.on("bufferend", () => { 9312 Z.call(e, e.media, "playing"); 9313 }), 9314 e.embed.on("play", () => { 9315 We.call(e, !0), Z.call(e, e.media, "playing"); 9316 }), 9317 e.embed.on("pause", () => { 9318 We.call(e, !1); 9319 }), 9320 e.embed.on("timeupdate", (t) => { 9321 (e.media.seeking = !1), 9322 (m = t.seconds), 9323 Z.call(e, e.media, "timeupdate"); 9324 }), 9325 e.embed.on("progress", (t) => { 9326 (e.media.buffered = t.percent), 9327 Z.call(e, e.media, "progress"), 9328 1 === parseInt(t.percent, 10) && 9329 Z.call(e, e.media, "canplaythrough"), 9330 e.embed.getDuration().then((t) => { 9331 t !== e.media.duration && 9332 ((e.media.duration = t), 9333 Z.call(e, e.media, "durationchange")); 9334 }); 9335 }), 9336 e.embed.on("seeked", () => { 9337 (e.media.seeking = !1), Z.call(e, e.media, "seeked"); 9338 }), 9339 e.embed.on("ended", () => { 9340 (e.media.paused = !0), Z.call(e, e.media, "ended"); 9341 }), 9342 e.embed.on("error", (t) => { 9343 (e.media.error = t), Z.call(e, e.media, "error"); 9344 }), 9345 t.customControls && setTimeout(() => Fe.build.call(e), 0); 9346 }, 9347 }; 9348 function Ke(e) { 9349 e && !this.embed.hasPlayed && (this.embed.hasPlayed = !0), 9350 this.media.paused === e && 9351 ((this.media.paused = !e), 9352 Z.call(this, this.media, e ? "play" : "pause")); 9353 } 9354 function Ye(e) { 9355 return e.noCookie 9356 ? "https://www.youtube-nocookie.com" 9357 : "http:" === window.location.protocol 9358 ? "http://www.youtube.com" 9359 : void 0; 9360 } 9361 const Qe = { 9362 setup() { 9363 if ( 9364 (R(this.elements.wrapper, this.config.classNames.embed, !0), 9365 S.object(window.YT) && S.function(window.YT.Player)) 9366 ) 9367 Qe.ready.call(this); 9368 else { 9369 const e = window.onYouTubeIframeAPIReady; 9370 (window.onYouTubeIframeAPIReady = () => { 9371 S.function(e) && e(), Qe.ready.call(this); 9372 }), 9373 Be(this.config.urls.youtube.sdk).catch((e) => { 9374 this.debug.warn("YouTube API failed to load", e); 9375 }); 9376 } 9377 }, 9378 getTitle(e) { 9379 Te(me(this.config.urls.youtube.api, e)) 9380 .then((e) => { 9381 if (S.object(e)) { 9382 const { title: t, height: i, width: s } = e; 9383 (this.config.title = t), 9384 Fe.setTitle.call(this), 9385 (this.embed.ratio = he(s, i)); 9386 } 9387 ue.call(this); 9388 }) 9389 .catch(() => { 9390 ue.call(this); 9391 }); 9392 }, 9393 ready() { 9394 const e = this, 9395 t = e.config.youtube, 9396 i = e.media && e.media.getAttribute("id"); 9397 if (!S.empty(i) && i.startsWith("youtube-")) return; 9398 let s = e.media.getAttribute("src"); 9399 S.empty(s) && 9400 (s = e.media.getAttribute(this.config.attributes.embed.id)); 9401 const n = 9402 ((a = s), 9403 S.empty(a) 9404 ? null 9405 : a.match( 9406 /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&?]*).*/ 9407 ) 9408 ? RegExp.$2 9409 : a); 9410 var a; 9411 const l = $("div", { 9412 id: `${e.provider}-${Math.floor(1e4 * Math.random())}`, 9413 "data-poster": t.customControls ? e.poster : void 0, 9414 }); 9415 if (((e.media = q(l, e.media)), t.customControls)) { 9416 const t = (e) => `https://i.ytimg.com/vi/${n}/${e}default.jpg`; 9417 Re(t("maxres"), 121) 9418 .catch(() => Re(t("sd"), 121)) 9419 .catch(() => Re(t("hq"))) 9420 .then((t) => Fe.setPoster.call(e, t.src)) 9421 .then((t) => { 9422 t.includes("maxres") || 9423 (e.elements.poster.style.backgroundSize = "cover"); 9424 }) 9425 .catch(() => {}); 9426 } 9427 e.embed = new window.YT.Player(e.media, { 9428 videoId: n, 9429 host: Ye(t), 9430 playerVars: x( 9431 {}, 9432 {
9433 autoplay: e.config.autoplay ? 1 : 0, 9434 hl: e.config.hl, 9435 controls: e.supported.ui && t.customControls ? 0 : 1, 9436 disablekb: 1, 9437 playsinline: 9438 e.config.playsinline && !e.config.fullscreen.iosNative 9439 ? 1 9440 : 0, 9441 cc_load_policy: e.captions.active ? 1 : 0, 9442 cc_lang_pref: e.config.captions.language, 9443 widget_referrer: window ? window.location.href : null, 9444 }, 9445 t 9446 ), 9447 events: { 9448 onError(t) { 9449 if (!e.media.error) { 9450 const i = t.data, 9451 s = 9452 { 9453 2: "The request contains an invalid parameter value. For example, this error occurs if you specify a video ID that does not have 11 characters, or if the video ID contains invalid characters, such as exclamation points or asterisks.", 9454 5: "The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.", 9455 100: "The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.", 9456 101: "The owner of the requested video does not allow it to be played in embedded players.", 9457 150: "The owner of the requested video does not allow it to be played in embedded players.", 9458 }[i] || "An unknown error occurred"; 9459 (e.media.error = { code: i, message: s }), 9460 Z.call(e, e.media, "error"); 9461 } 9462 }, 9463 onPlaybackRateChange(t) { 9464 const i = t.target; 9465 (e.media.playbackRate = i.getPlaybackRate()), 9466 Z.call(e, e.media, "ratechange"); 9467 }, 9468 onReady(i) { 9469 if (S.function(e.media.play)) return; 9470 const s = i.target; 9471 Qe.getTitle.call(e, n), 9472 (e.media.play = () => { 9473 Ke.call(e, !0), s.playVideo(); 9474 }), 9475 (e.media.pause = () => { 9476 Ke.call(e, !1), s.pauseVideo(); 9477 }), 9478 (e.media.stop = () => { 9479 s.stopVideo(); 9480 }), 9481 (e.media.duration = s.getDuration()), 9482 (e.media.paused = !0), 9483 (e.media.currentTime = 0), 9484 Object.defineProperty(e.media, "currentTime", { 9485 get: () => Number(s.getCurrentTime()), 9486 set(t) { 9487 e.paused && !e.embed.hasPlayed && e.embed.mute(), 9488 (e.media.seeking = !0), 9489 Z.call(e, e.media, "seeking"), 9490 s.seekTo(t); 9491 }, 9492 }), 9493 Object.defineProperty(e.media, "playbackRate", { 9494 get: () => s.getPlaybackRate(), 9495 set(e) { 9496 s.setPlaybackRate(e); 9497 }, 9498 }); 9499 let { volume: a } = e.config; 9500 Object.defineProperty(e.media, "volume", { 9501 get: () => a, 9502 set(t) { 9503 (a = t), 9504 s.setVolume(100 * a), 9505 Z.call(e, e.media, "volumechange"); 9506 }, 9507 }); 9508 let { muted: l } = e.config; 9509 Object.defineProperty(e.media, "muted", { 9510 get: () => l, 9511 set(t) { 9512 const i = S.boolean(t) ? t : l; 9513 (l = i), 9514 s[i ? "mute" : "unMute"](), 9515 s.setVolume(100 * a), 9516 Z.call(e, e.media, "volumechange"); 9517 }, 9518 }), 9519 Object.defineProperty(e.media, "currentSrc", { 9520 get: () => s.getVideoUrl(), 9521 }), 9522 Object.defineProperty(e.media, "ended", { 9523 get: () => e.currentTime === e.duration, 9524 }); 9525 const r = s.getAvailablePlaybackRates(); 9526 (e.options.speed = r.filter((t) => 9527 e.config.speed.options.includes(t) 9528 )), 9529 e.supported.ui && 9530 t.customControls && 9531 e.media.setAttribute("tabindex", -1), 9532 Z.call(e, e.media, "timeupdate"), 9533 Z.call(e, e.media, "durationchange"), 9534 clearInterval(e.timers.buffering), 9535 (e.timers.buffering = setInterval(() => { 9536 (e.media.buffered = s.getVideoLoadedFraction()), 9537 (null === e.media.lastBuffered || 9538 e.media.lastBuffered < e.media.buffered) && 9539 Z.call(e, e.media, "progress"), 9540 (e.media.lastBuffered = e.media.buffered), 9541 1 === e.media.buffered && 9542 (clearInterval(e.timers.buffering), 9543 Z.call(e, e.media, "canplaythrough")); 9544 }, 200)), 9545 t.customControls && setTimeout(() => Fe.build.call(e), 50); 9546 }, 9547 onStateChange(i) { 9548 const s = i.target; 9549 clearInterval(e.timers.playing); 9550 switch ( 9551 (e.media.seeking && 9552 [1, 2].includes(i.data) && 9553 ((e.media.seeking = !1), Z.call(e, e.media, "seeked")), 9554 i.data) 9555 ) { 9556 case -1: 9557 Z.call(e, e.media, "timeupdate"), 9558 (e.media.buffered = s.getVideoLoadedFraction()), 9559 Z.call(e, e.media, "progress"); 9560 break; 9561 case 0: 9562 Ke.call(e, !1), 9563 e.media.loop 9564 ? (s.stopVideo(), s.playVideo()) 9565 : Z.call(e, e.media, "ended"); 9566 break; 9567 case 1: 9568 t.customControls &&
9569 !e.config.autoplay && 9570 e.media.paused && 9571 !e.embed.hasPlayed 9572 ? e.media.pause() 9573 : (Ke.call(e, !0), 9574 Z.call(e, e.media, "playing"), 9575 (e.timers.playing = setInterval(() => { 9576 Z.call(e, e.media, "timeupdate"); 9577 }, 50)), 9578 e.media.duration !== s.getDuration() && 9579 ((e.media.duration = s.getDuration()), 9580 Z.call(e, e.media, "durationchange"))); 9581 break; 9582 case 2: 9583 e.muted || e.embed.unMute(), Ke.call(e, !1); 9584 break; 9585 case 3: 9586 Z.call(e, e.media, "waiting"); 9587 } 9588 Z.call(e, e.elements.container, "statechange", !1, { 9589 code: i.data, 9590 }); 9591 }, 9592 }, 9593 }); 9594 }, 9595 }, 9596 Xe = { 9597 setup() { 9598 this.media 9599 ? (R( 9600 this.elements.container, 9601 this.config.classNames.type.replace("{0}", this.type), 9602 !0 9603 ), 9604 R( 9605 this.elements.container, 9606 this.config.classNames.provider.replace("{0}", this.provider), 9607 !0 9608 ), 9609 this.isEmbed && 9610 R( 9611 this.elements.container, 9612 this.config.classNames.type.replace("{0}", "video"), 9613 !0 9614 ), 9615 this.isVideo && 9616 ((this.elements.wrapper = $("div", { 9617 class: this.config.classNames.video, 9618 })), 9619 L(this.media, this.elements.wrapper), 9620 (this.elements.poster = $("div", { 9621 class: this.config.classNames.poster, 9622 })), 9623 this.elements.wrapper.appendChild(this.elements.poster)), 9624 this.isHTML5 9625 ? de.setup.call(this) 9626 : this.isYouTube 9627 ? Qe.setup.call(this) 9628 : this.isVimeo && ze.setup.call(this)) 9629 : this.debug.warn("No media element found!"); 9630 }, 9631 }; 9632 class Je { 9633 constructor(t) { 9634 e(this, "load", () => { 9635 this.enabled && 9636 (S.object(window.google) && S.object(window.google.ima) 9637 ? this.ready() 9638 : Be(this.player.config.urls.googleIMA.sdk) 9639 .then(() => { 9640 this.ready(); 9641 }) 9642 .catch(() => { 9643 this.trigger( 9644 "error", 9645 new Error("Google IMA SDK failed to load") 9646 ); 9647 })); 9648 }), 9649 e(this, "ready", () => { 9650 var e; 9651 this.enabled || 9652 ((e = this).manager && e.manager.destroy(), 9653 e.elements.displayContainer && 9654 e.elements.displayContainer.destroy(), 9655 e.elements.container.remove()), 9656 this.startSafetyTimer(12e3, "ready()"), 9657 this.managerPromise.then(() => { 9658 this.clearSafetyTimer("onAdsManagerLoaded()"); 9659 }), 9660 this.listeners(), 9661 this.setupIMA(); 9662 }), 9663 e(this, "setupIMA", () => { 9664 (this.elements.container = $("div", { 9665 class: this.player.config.classNames.ads, 9666 })), 9667 this.player.elements.container.appendChild( 9668 this.elements.container 9669 ), 9670 google.ima.settings.setVpaidMode( 9671 google.ima.ImaSdkSettings.VpaidMode.ENABLED 9672 ), 9673 google.ima.settings.setLocale(this.player.config.ads.language), 9674 google.ima.settings.setDisableCustomPlaybackForIOS10Plus( 9675 this.player.config.playsinline 9676 ), 9677 (this.elements.displayContainer = 9678 new google.ima.AdDisplayContainer( 9679 this.elements.container, 9680 this.player.media 9681 )), 9682 (this.loader = new google.ima.AdsLoader( 9683 this.elements.displayContainer 9684 )), 9685 this.loader.addEventListener( 9686 google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, 9687 (e) => this.onAdsManagerLoaded(e), 9688 !1 9689 ), 9690 this.loader.addEventListener( 9691 google.ima.AdErrorEvent.Type.AD_ERROR, 9692 (e) => this.onAdError(e), 9693 !1 9694 ), 9695 this.requestAds(); 9696 }),
9697 e(this, "requestAds", () => { 9698 const { container: e } = this.player.elements; 9699 try { 9700 const t = new google.ima.AdsRequest(); 9701 (t.adTagUrl = this.tagUrl), 9702 (t.linearAdSlotWidth = e.offsetWidth), 9703 (t.linearAdSlotHeight = e.offsetHeight), 9704 (t.nonLinearAdSlotWidth = e.offsetWidth), 9705 (t.nonLinearAdSlotHeight = e.offsetHeight), 9706 (t.forceNonLinearFullSlot = !1), 9707 t.setAdWillPlayMuted(!this.player.muted), 9708 this.loader.requestAds(t); 9709 } catch (e) { 9710 this.onAdError(e); 9711 } 9712 }), 9713 e(this, "pollCountdown", (e = !1) => { 9714 if (!e) 9715 return ( 9716 clearInterval(this.countdownTimer), 9717 void this.elements.container.removeAttribute("data-badge-text") 9718 ); 9719 this.countdownTimer = setInterval(() => { 9720 const e = Ee(Math.max(this.manager.getRemainingTime(), 0)), 9721 t = `${ve.get("advertisement", this.player.config)} - ${e}`; 9722 this.elements.container.setAttribute("data-badge-text", t); 9723 }, 100); 9724 }), 9725 e(this, "onAdsManagerLoaded", (e) => { 9726 if (!this.enabled) return; 9727 const t = new google.ima.AdsRenderingSettings(); 9728 (t.restoreCustomPlaybackStateOnAdBreakComplete = !0), 9729 (t.enablePreloading = !0), 9730 (this.manager = e.getAdsManager(this.player, t)), 9731 (this.cuePoints = this.manager.getCuePoints()), 9732 this.manager.addEventListener( 9733 google.ima.AdErrorEvent.Type.AD_ERROR, 9734 (e) => this.onAdError(e) 9735 ), 9736 Object.keys(google.ima.AdEvent.Type).forEach((e) => { 9737 this.manager.addEventListener(google.ima.AdEvent.Type[e], (e) => 9738 this.onAdEvent(e) 9739 ); 9740 }), 9741 this.trigger("loaded"); 9742 }), 9743 e(this, "addCuePoints", () => { 9744 S.empty(this.cuePoints) || 9745 this.cuePoints.forEach((e) => { 9746 if (0 !== e && -1 !== e && e < this.player.duration) { 9747 const t = this.player.elements.progress; 9748 if (S.element(t)) { 9749 const i = (100 / this.player.duration) * e, 9750 s = $("span", { 9751 class: this.player.config.classNames.cues, 9752 }); 9753 (s.style.left = `${i.toString()}%`), t.appendChild(s); 9754 } 9755 } 9756 }); 9757 }), 9758 e(this, "onAdEvent", (e) => { 9759 const { container: t } = this.player.elements, 9760 i = e.getAd(), 9761 s = e.getAdData(); 9762 switch ( 9763 (((e) => { 9764 Z.call( 9765 this.player, 9766 this.player.media, 9767 `ads${e.replace(/_/g, "").toLowerCase()}` 9768 ); 9769 })(e.type), 9770 e.type) 9771 ) { 9772 case google.ima.AdEvent.Type.LOADED: 9773 this.trigger("loaded"), 9774 this.pollCountdown(!0), 9775 i.isLinear() || 9776 ((i.width = t.offsetWidth), (i.height = t.offsetHeight)); 9777 break; 9778 case google.ima.AdEvent.Type.STARTED: 9779 this.manager.setVolume(this.player.volume); 9780 break; 9781 case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: 9782 this.player.ended 9783 ? this.loadAds() 9784 : this.loader.contentComplete(); 9785 break; 9786 case google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED: 9787 this.pauseContent(); 9788 break; 9789 case google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED: 9790 this.pollCountdown(), this.resumeContent(); 9791 break; 9792 case google.ima.AdEvent.Type.LOG: 9793 s.adError && 9794 this.player.debug.warn( 9795 `Non-fatal ad error: ${s.adError.getMessage()}` 9796 ); 9797 } 9798 }), 9799 e(this, "onAdError", (e) => { 9800 this.cancel(), this.player.debug.warn("Ads error", e); 9801 }), 9802 e(this, "listeners", () => { 9803 const { container: e } = this.player.elements; 9804 let t;
9805 this.player.on("canplay", () => { 9806 this.addCuePoints(); 9807 }), 9808 this.player.on("ended", () => { 9809 this.loader.contentComplete(); 9810 }), 9811 this.player.on("timeupdate", () => { 9812 t = this.player.currentTime; 9813 }), 9814 this.player.on("seeked", () => { 9815 const e = this.player.currentTime; 9816 S.empty(this.cuePoints) || 9817 this.cuePoints.forEach((i, s) => { 9818 t < i && 9819 i < e && 9820 (this.manager.discardAdBreak(), 9821 this.cuePoints.splice(s, 1)); 9822 }); 9823 }), 9824 window.addEventListener("resize", () => { 9825 this.manager && 9826 this.manager.resize( 9827 e.offsetWidth, 9828 e.offsetHeight, 9829 google.ima.ViewMode.NORMAL 9830 ); 9831 }); 9832 }), 9833 e(this, "play", () => { 9834 const { container: e } = this.player.elements; 9835 this.managerPromise || this.resumeContent(), 9836 this.managerPromise 9837 .then(() => { 9838 this.manager.setVolume(this.player.volume), 9839 this.elements.displayContainer.initialize(); 9840 try { 9841 this.initialized || 9842 (this.manager.init( 9843 e.offsetWidth, 9844 e.offsetHeight, 9845 google.ima.ViewMode.NORMAL 9846 ), 9847 this.manager.start()), 9848 (this.initialized = !0); 9849 } catch (e) { 9850 this.onAdError(e); 9851 } 9852 }) 9853 .catch(() => {}); 9854 }), 9855 e(this, "resumeContent", () => { 9856 (this.elements.container.style.zIndex = ""), 9857 (this.playing = !1), 9858 ie(this.player.media.play()); 9859 }), 9860 e(this, "pauseContent", () => { 9861 (this.elements.container.style.zIndex = 3), 9862 (this.playing = !0), 9863 this.player.media.pause(); 9864 }), 9865 e(this, "cancel", () => { 9866 this.initialized && this.resumeContent(), 9867 this.trigger("error"), 9868 this.loadAds(); 9869 }), 9870 e(this, "loadAds", () => { 9871 this.managerPromise 9872 .then(() => { 9873 this.manager && this.manager.destroy(), 9874 (this.managerPromise = new Promise((e) => { 9875 this.on("loaded", e), this.player.debug.log(this.manager); 9876 })), 9877 (this.initialized = !1), 9878 this.requestAds(); 9879 }) 9880 .catch(() => {}); 9881 }), 9882 e(this, "trigger", (e, ...t) => { 9883 const i = this.events[e]; 9884 S.array(i) && 9885 i.forEach((e) => { 9886 S.function(e) && e.apply(this, t); 9887 }); 9888 }), 9889 e( 9890 this, 9891 "on", 9892 (e, t) => ( 9893 S.array(this.events[e]) || (this.events[e] = []), 9894 this.events[e].push(t), 9895 this 9896 ) 9897 ), 9898 e(this, "startSafetyTimer", (e, t) => { 9899 this.player.debug.log(`Safety timer invoked from: ${t}`), 9900 (this.safetyTimer = setTimeout(() => { 9901 this.cancel(), this.clearSafetyTimer("startSafetyTimer()"); 9902 }, e)); 9903 }), 9904 e(this, "clearSafetyTimer", (e) => { 9905 S.nullOrUndefined(this.safetyTimer) || 9906 (this.player.debug.log(`Safety timer cleared from: ${e}`), 9907 clearTimeout(this.safetyTimer), 9908 (this.safetyTimer = null)); 9909 }), 9910 (this.player = t), 9911 (this.config = t.config.ads), 9912 (this.playing = !1), 9913 (this.initialized = !1), 9914 (this.elements = { container: null, displayContainer: null }), 9915 (this.manager = null),
9916 (this.loader = null), 9917 (this.cuePoints = null), 9918 (this.events = {}), 9919 (this.safetyTimer = null), 9920 (this.countdownTimer = null), 9921 (this.managerPromise = new Promise((e, t) => { 9922 this.on("loaded", e), this.on("error", t); 9923 })), 9924 this.load(); 9925 } 9926 get enabled() { 9927 const { config: e } = this; 9928 return ( 9929 this.player.isHTML5 && 9930 this.player.isVideo && 9931 e.enabled && 9932 (!S.empty(e.publisherId) || S.url(e.tagUrl)) 9933 ); 9934 } 9935 get tagUrl() { 9936 const { config: e } = this; 9937 if (S.url(e.tagUrl)) return e.tagUrl; 9938 return `https://go.aniview.com/api/adserver6/vast/?${Ne({ 9939 AV_PUBLISHERID: "58c25bb0073ef448b1087ad6", 9940 AV_CHANNELID: "5a0458dc28a06145e4519d21", 9941 AV_URL: window.location.hostname, 9942 cb: Date.now(), 9943 AV_WIDTH: 640, 9944 AV_HEIGHT: 480, 9945 AV_CDIM2: e.publisherId, 9946 })}`; 9947 } 9948 } 9949 function Ge(e = 0, t = 0, i = 255) { 9950 return Math.min(Math.max(e, t), i); 9951 } 9952 const Ze = (e) => { 9953 const t = []; 9954 return (
9955 e.split(/\r\n\r\n|\n\n|\r\r/).forEach((e) => { 9956 const i = {}; 9957 e.split(/\r\n|\n|\r/).forEach((e) => { 9958 if (S.number(i.startTime)) { 9959 if (!S.empty(e.trim()) && S.empty(i.text)) { 9960 const t = e.trim().split("#xywh="); 9961 ([i.text] = t), 9962 t[1] && ([i.x, i.y, i.w, i.h] = t[1].split(",")); 9963 } 9964 } else { 9965 const t = e.match( 9966 /([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})( ?--> ?)([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})/ 9967 ); 9968 t && 9969 ((i.startTime = 9970 60 * Number(t[1] || 0) * 60 + 9971 60 * Number(t[2]) + 9972 Number(t[3]) + 9973 Number(`0.${t[4]}`)), 9974 (i.endTime = 9975 60 * Number(t[6] || 0) * 60 + 9976 60 * Number(t[7]) + 9977 Number(t[8]) + 9978 Number(`0.${t[9]}`))); 9979 } 9980 }), 9981 i.text && t.push(i); 9982 }), 9983 t 9984 ); 9985 }, 9986 et = (e, t) => { 9987 const i = {}; 9988 return ( 9989 e > t.width / t.height 9990 ? ((i.width = t.width), (i.height = (1 / e) * t.width)) 9991 : ((i.height = t.height), (i.width = e * t.height)), 9992 i 9993 ); 9994 }; 9995 class tt { 9996 constructor(t) { 9997 e(this, "load", () => { 9998 this.player.elements.display.seekTooltip && 9999 (this.player.elements.display.seekTooltip.hidden = this.enabled), 10000 this.enabled && 10001 this.getThumbnails().then(() => { 10002 this.enabled && 10003 (this.render(), 10004 this.determineContainerAutoSizing(), 10005 this.listeners(), 10006 (this.loaded = !0)); 10007 }); 10008 }), 10009 e( 10010 this, 10011 "getThumbnails", 10012 () => 10013 new Promise((e) => { 10014 const { src: t } = this.player.config.previewThumbnails; 10015 if (S.empty(t)) 10016 throw new Error( 10017 "Missing previewThumbnails.src config attribute" 10018 ); 10019 const i = () => { 10020 this.thumbnails.sort((e, t) => e.height - t.height), 10021 this.player.debug.log( 10022 "Preview thumbnails", 10023 this.thumbnails 10024 ), 10025 e(); 10026 }; 10027 if (S.function(t)) 10028 t((e) => { 10029 (this.thumbnails = e), i(); 10030 }); 10031 else { 10032 const e = (S.string(t) ? [t] : t).map((e) => 10033 this.getThumbnail(e) 10034 ); 10035 Promise.all(e).then(i); 10036 } 10037 }) 10038 ), 10039 e( 10040 this, 10041 "getThumbnail", 10042 (e) => 10043 new Promise((t) => { 10044 Te(e).then((i) => { 10045 const s = { frames: Ze(i), height: null, urlPrefix: "" }; 10046 s.frames[0].text.startsWith("/") || 10047 s.frames[0].text.startsWith("http://") || 10048 s.frames[0].text.startsWith("https://") || 10049 (s.urlPrefix = e.substring(0, e.lastIndexOf("/") + 1)); 10050 const n = new Image(); 10051 (n.onload = () => { 10052 (s.height = n.naturalHeight), 10053 (s.width = n.naturalWidth), 10054 this.thumbnails.push(s), 10055 t(); 10056 }), 10057 (n.src = s.urlPrefix + s.frames[0].text); 10058 }); 10059 }) 10060 ), 10061 e(this, "startMove", (e) => { 10062 if ( 10063 this.loaded && 10064 S.event(e) && 10065 ["touchmove", "mousemove"].includes(e.type) && 10066 this.player.media.duration 10067 ) { 10068 if ("touchmove" === e.type) 10069 this.seekTime = 10070 this.player.media.duration * 10071 (this.player.elements.inputs.seek.value / 100); 10072 else { 10073 var t, i; 10074 const s = this.player.elements.progress.getBoundingClientRect(), 10075 n = (100 / s.width) * (e.pageX - s.left); 10076 (this.seekTime = this.player.media.duration * (n / 100)), 10077 this.seekTime < 0 && (this.seekTime = 0), 10078 this.seekTime > this.player.media.duration - 1 && 10079 (this.seekTime = this.player.media.duration - 1), 10080 (this.mousePosX = e.pageX), 10081 (this.elements.thumb.time.innerText = Ee(this.seekTime)); 10082 const a = 10083 null === (t = this.player.config.markers) || 10084 void 0 === t || 10085 null === (i = t.points) || 10086 void 0 === i 10087 ? void 0 10088 : i.find(({ time: e }) => e === Math.round(this.seekTime)); 10089 a && 10090 this.elements.thumb.time.insertAdjacentHTML( 10091 "afterbegin", 10092 `${a.label}<br>` 10093 ); 10094 } 10095 this.showImageAtCurrentTime(); 10096 } 10097 }), 10098 e(this, "endMove", () => { 10099 this.toggleThumbContainer(!1, !0); 10100 }), 10101 e(this, "startScrubbing", (e) => { 10102 (S.nullOrUndefined(e.button) || 10103 !1 === e.button || 10104 0 === e.button) && 10105 ((this.mouseDown = !0), 10106 this.player.media.duration && 10107 (this.toggleScrubbingContainer(!0), 10108 this.toggleThumbContainer(!1, !0), 10109 this.showImageAtCurrentTime())); 10110 }), 10111 e(this, "endScrubbing", () => { 10112 (this.mouseDown = !1), 10113 Math.ceil(this.lastTime) === 10114 Math.ceil(this.player.media.currentTime) 10115 ? this.toggleScrubbingContainer(!1) 10116 : G.call(this.player, this.player.media, "timeupdate", () => { 10117 this.mouseDown || this.toggleScrubbingContainer(!1); 10118 }); 10119 }), 10120 e(this, "listeners", () => { 10121 this.player.on("play", () => { 10122 this.toggleThumbContainer(!1, !0); 10123 }), 10124 this.player.on("seeked", () => { 10125 this.toggleThumbContainer(!1); 10126 }), 10127 this.player.on("timeupdate", () => { 10128 this.lastTime = this.player.media.currentTime; 10129 }); 10130 }), 10131 e(this, "render", () => { 10132 (this.elements.thumb.container = $("div", { 10133 class: 10134 this.player.config.classNames.previewThumbnails.thumbContainer, 10135 })), 10136 (this.elements.thumb.imageContainer = $("div", { 10137 class: 10138 this.player.config.classNames.previewThumbnails 10139 .imageContainer, 10140 })), 10141 this.elements.thumb.container.appendChild( 10142 this.elements.thumb.imageContainer 10143 ); 10144 const e = $("div", { 10145 class: 10146 this.player.config.classNames.previewThumbnails.timeContainer, 10147 }); 10148 (this.elements.thumb.time = $("span", {}, "00:00")), 10149 e.appendChild(this.elements.thumb.time), 10150 this.elements.thumb.imageContainer.appendChild(e),
10151 S.element(this.player.elements.progress) && 10152 this.player.elements.progress.appendChild( 10153 this.elements.thumb.container 10154 ), 10155 (this.elements.scrubbing.container = $("div", { 10156 class: 10157 this.player.config.classNames.previewThumbnails 10158 .scrubbingContainer, 10159 })), 10160 this.player.elements.wrapper.appendChild( 10161 this.elements.scrubbing.container 10162 ); 10163 }), 10164 e(this, "destroy", () => { 10165 this.elements.thumb.container && 10166 this.elements.thumb.container.remove(), 10167 this.elements.scrubbing.container && 10168 this.elements.scrubbing.container.remove(); 10169 }), 10170 e(this, "showImageAtCurrentTime", () => { 10171 this.mouseDown 10172 ? this.setScrubbingContainerSize() 10173 : this.setThumbContainerSizeAndPos(); 10174 const e = this.thumbnails[0].frames.findIndex( 10175 (e) => 10176 this.seekTime >= e.startTime && this.seekTime <= e.endTime 10177 ), 10178 t = e >= 0; 10179 let i = 0; 10180 this.mouseDown || this.toggleThumbContainer(t), 10181 t && 10182 (this.thumbnails.forEach((t, s) => { 10183 this.loadedImages.includes(t.frames[e].text) && (i = s); 10184 }), 10185 e !== this.showingThumb && 10186 ((this.showingThumb = e), this.loadImage(i))); 10187 }), 10188 e(this, "loadImage", (e = 0) => { 10189 const t = this.showingThumb, 10190 i = this.thumbnails[e], 10191 { urlPrefix: s } = i, 10192 n = i.frames[t], 10193 a = i.frames[t].text, 10194 l = s + a; 10195 if ( 10196 this.currentImageElement && 10197 this.currentImageElement.dataset.filename === a 10198 ) 10199 this.showImage(this.currentImageElement, n, e, t, a, !1), 10200 (this.currentImageElement.dataset.index = t), 10201 this.removeOldImages(this.currentImageElement); 10202 else { 10203 this.loadingImage && 10204 this.usingSprites && 10205 (this.loadingImage.onload = null); 10206 const i = new Image(); 10207 (i.src = l), 10208 (i.dataset.index = t), 10209 (i.dataset.filename = a), 10210 (this.showingThumbFilename = a), 10211 this.player.debug.log(`Loading image: ${l}`), 10212 (i.onload = () => this.showImage(i, n, e, t, a, !0)), 10213 (this.loadingImage = i), 10214 this.removeOldImages(i); 10215 } 10216 }), 10217 e(this, "showImage", (e, t, i, s, n, a = !0) => { 10218 this.player.debug.log( 10219 `Showing thumb: ${n}. num: ${s}. qual: ${i}. newimg: ${a}` 10220 ), 10221 this.setImageSizeAndOffset(e, t), 10222 a && 10223 (this.currentImageContainer.appendChild(e), 10224 (this.currentImageElement = e), 10225 this.loadedImages.includes(n) || this.loadedImages.push(n)), 10226 this.preloadNearby(s, !0) 10227 .then(this.preloadNearby(s, !1)) 10228 .then(this.getHigherQuality(i, e, t, n)); 10229 }), 10230 e(this, "removeOldImages", (e) => { 10231 Array.from(this.currentImageContainer.children).forEach((t) => { 10232 if ("img" !== t.tagName.toLowerCase()) return; 10233 const i = this.usingSprites ? 500 : 1e3; 10234 if (t.dataset.index !== e.dataset.index && !t.dataset.deleting) { 10235 t.dataset.deleting = !0; 10236 const { currentImageContainer: e } = this; 10237 setTimeout(() => { 10238 e.removeChild(t), 10239 this.player.debug.log( 10240 `Removing thumb: ${t.dataset.filename}` 10241 ); 10242 }, i); 10243 } 10244 }); 10245 }), 10246 e( 10247 this, 10248 "preloadNearby", 10249 (e, t = !0) => 10250 new Promise((i) => { 10251 setTimeout(() => {
10252 const s = this.thumbnails[0].frames[e].text; 10253 if (this.showingThumbFilename === s) { 10254 let n; 10255 n = t 10256 ? this.thumbnails[0].frames.slice(e) 10257 : this.thumbnails[0].frames.slice(0, e).reverse(); 10258 let a = !1; 10259 n.forEach((e) => { 10260 const t = e.text; 10261 if (t !== s && !this.loadedImages.includes(t)) { 10262 (a = !0), 10263 this.player.debug.log( 10264 `Preloading thumb filename: ${t}` 10265 ); 10266 const { urlPrefix: e } = this.thumbnails[0], 10267 s = e + t, 10268 n = new Image(); 10269 (n.src = s), 10270 (n.onload = () => { 10271 this.player.debug.log( 10272 `Preloaded thumb filename: ${t}` 10273 ), 10274 this.loadedImages.includes(t) || 10275 this.loadedImages.push(t), 10276 i(); 10277 }); 10278 } 10279 }), 10280 a || i(); 10281 } 10282 }, 300); 10283 }) 10284 ), 10285 e(this, "getHigherQuality", (e, t, i, s) => { 10286 if (e < this.thumbnails.length - 1) { 10287 let n = t.naturalHeight; 10288 this.usingSprites && (n = i.h), 10289 n < this.thumbContainerHeight && 10290 setTimeout(() => { 10291 this.showingThumbFilename === s && 10292 (this.player.debug.log( 10293 `Showing higher quality thumb for: ${s}` 10294 ), 10295 this.loadImage(e + 1)); 10296 }, 300); 10297 } 10298 }), 10299 e(this, "toggleThumbContainer", (e = !1, t = !1) => { 10300 const i = 10301 this.player.config.classNames.previewThumbnails 10302 .thumbContainerShown; 10303 this.elements.thumb.container.classList.toggle(i, e), 10304 !e && 10305 t && 10306 ((this.showingThumb = null), 10307 (this.showingThumbFilename = null)); 10308 }), 10309 e(this, "toggleScrubbingContainer", (e = !1) => { 10310 const t = 10311 this.player.config.classNames.previewThumbnails 10312 .scrubbingContainerShown; 10313 this.elements.scrubbing.container.classList.toggle(t, e), 10314 e || 10315 ((this.showingThumb = null), 10316 (this.showingThumbFilename = null)); 10317 }), 10318 e(this, "determineContainerAutoSizing", () => { 10319 (this.elements.thumb.imageContainer.clientHeight > 20 || 10320 this.elements.thumb.imageContainer.clientWidth > 20) && 10321 (this.sizeSpecifiedInCSS = !0); 10322 }), 10323 e(this, "setThumbContainerSizeAndPos", () => { 10324 const { imageContainer: e } = this.elements.thumb; 10325 if (this.sizeSpecifiedInCSS) { 10326 if (e.clientHeight > 20 && e.clientWidth < 20) { 10327 const t = Math.floor(e.clientHeight * this.thumbAspectRatio); 10328 e.style.width = `${t}px`; 10329 } else if (e.clientHeight < 20 && e.clientWidth > 20) { 10330 const t = Math.floor(e.clientWidth / this.thumbAspectRatio); 10331 e.style.height = `${t}px`; 10332 } 10333 } else { 10334 const t = Math.floor( 10335 this.thumbContainerHeight * this.thumbAspectRatio 10336 ); 10337 (e.style.height = `${this.thumbContainerHeight}px`), 10338 (e.style.width = `${t}px`); 10339 } 10340 this.setThumbContainerPos(); 10341 }), 10342 e(this, "setThumbContainerPos", () => { 10343 const e = this.player.elements.progress.getBoundingClientRect(), 10344 t = this.player.elements.container.getBoundingClientRect(), 10345 { container: i } = this.elements.thumb, 10346 s = t.left - e.left + 10, 10347 n = t.right - e.left - i.clientWidth - 10, 10348 a = this.mousePosX - e.left - i.clientWidth / 2, 10349 l = Ge(a, s, n); 10350 (i.style.left = `${l}px`), 10351 i.style.setProperty("--preview-arrow-offset", a - l + "px"); 10352 }), 10353 e(this, "setScrubbingContainerSize", () => { 10354 const { width: e, height: t } = et(this.thumbAspectRatio, { 10355 width: this.player.media.clientWidth, 10356 height: this.player.media.clientHeight, 10357 }); 10358 (this.elements.scrubbing.container.style.width = `${e}px`), 10359 (this.elements.scrubbing.container.style.height = `${t}px`); 10360 }), 10361 e(this, "setImageSizeAndOffset", (e, t) => { 10362 if (!this.usingSprites) return; 10363 const i = this.thumbContainerHeight / t.h; 10364 (e.style.height = e.naturalHeight * i + "px"),
10365 (e.style.width = e.naturalWidth * i + "px"), 10366 (e.style.left = `-${t.x * i}px`), 10367 (e.style.top = `-${t.y * i}px`); 10368 }), 10369 (this.player = t), 10370 (this.thumbnails = []), 10371 (this.loaded = !1), 10372 (this.lastMouseMoveTime = Date.now()), 10373 (this.mouseDown = !1), 10374 (this.loadedImages = []), 10375 (this.elements = { thumb: {}, scrubbing: {} }), 10376 this.load(); 10377 } 10378 get enabled() { 10379 return ( 10380 this.player.isHTML5 && 10381 this.player.isVideo && 10382 this.player.config.previewThumbnails.enabled 10383 ); 10384 } 10385 get currentImageContainer() { 10386 return this.mouseDown 10387 ? this.elements.scrubbing.container 10388 : this.elements.thumb.imageContainer; 10389 } 10390 get usingSprites() { 10391 return Object.keys(this.thumbnails[0].frames[0]).includes("w"); 10392 } 10393 get thumbAspectRatio() { 10394 return this.usingSprites 10395 ? this.thumbnails[0].frames[0].w / this.thumbnails[0].frames[0].h 10396 : this.thumbnails[0].width / this.thumbnails[0].height; 10397 } 10398 get thumbContainerHeight() { 10399 if (this.mouseDown) { 10400 const { height: e } = et(this.thumbAspectRatio, { 10401 width: this.player.media.clientWidth, 10402 height: this.player.media.clientHeight, 10403 }); 10404 return e; 10405 } 10406 return this.sizeSpecifiedInCSS 10407 ? this.elements.thumb.imageContainer.clientHeight 10408 : Math.floor( 10409 this.player.media.clientWidth / this.thumbAspectRatio / 4 10410 ); 10411 } 10412 get currentImageElement() { 10413 return this.mouseDown 10414 ? this.currentScrubbingImageElement 10415 : this.currentThumbnailImageElement; 10416 } 10417 set currentImageElement(e) { 10418 this.mouseDown 10419 ? (this.currentScrubbingImageElement = e) 10420 : (this.currentThumbnailImageElement = e); 10421 } 10422 } 10423 const it = { 10424 insertElements(e, t) { 10425 S.string(t) 10426 ? _(e, this.media, { src: t }) 10427 : S.array(t) && 10428 t.forEach((t) => { 10429 _(e, this.media, t); 10430 }); 10431 }, 10432 change(e) { 10433 N(e, "sources.length") 10434 ? (de.cancelRequests.call(this), 10435 this.destroy.call( 10436 this, 10437 () => { 10438 (this.options.quality = []), 10439 O(this.media), 10440 (this.media = null), 10441 S.element(this.elements.container) && 10442 this.elements.container.removeAttribute("class"); 10443 const { sources: t, type: i } = e, 10444 [{ provider: s = _e.html5, src: n }] = t, 10445 a = "html5" === s ? i : "div", 10446 l = "html5" === s ? {} : { src: n }; 10447 Object.assign(this, { 10448 provider: s, 10449 type: i, 10450 supported: K.check(i, s, this.config.playsinline), 10451 media: $(a, l), 10452 }), 10453 this.elements.container.appendChild(this.media), 10454 S.boolean(e.autoplay) && (this.config.autoplay = e.autoplay), 10455 this.isHTML5 && 10456 (this.config.crossorigin && 10457 this.media.setAttribute("crossorigin", ""), 10458 this.config.autoplay && 10459 this.media.setAttribute("autoplay", ""), 10460 S.empty(e.poster) || (this.poster = e.poster), 10461 this.config.loop.active && 10462 this.media.setAttribute("loop", ""), 10463 this.config.muted && this.media.setAttribute("muted", ""), 10464 this.config.playsinline && 10465 this.media.setAttribute("playsinline", "")), 10466 Fe.addStyleHook.call(this), 10467 this.isHTML5 && it.insertElements.call(this, "source", t), 10468 (this.config.title = e.title), 10469 Xe.setup.call(this), 10470 this.isHTML5 && 10471 Object.keys(e).includes("tracks") && 10472 it.insertElements.call(this, "track", e.tracks), 10473 (this.isHTML5 || (this.isEmbed && !this.supported.ui)) && 10474 Fe.build.call(this), 10475 this.isHTML5 && this.media.load(), 10476 S.empty(e.previewThumbnails) || 10477 (Object.assign( 10478 this.config.previewThumbnails, 10479 e.previewThumbnails 10480 ), 10481 this.previewThumbnails && 10482 this.previewThumbnails.loaded && 10483 (this.previewThumbnails.destroy(), 10484 (this.previewThumbnails = null)), 10485 this.config.previewThumbnails.enabled && 10486 (this.previewThumbnails = new tt(this))), 10487 this.fullscreen.update(); 10488 }, 10489 !0 10490 )) 10491 : this.debug.warn("Invalid source format"); 10492 }, 10493 }; 10494 class st { 10495 constructor(t, i) { 10496 if ( 10497 (e(this, "play", () => 10498 S.function(this.media.play) 10499 ? (this.ads && 10500 this.ads.enabled && 10501 this.ads.managerPromise 10502 .then(() => this.ads.play()) 10503 .catch(() => ie(this.media.play())), 10504 this.media.play()) 10505 : null 10506 ), 10507 e(this, "pause", () => 10508 this.playing && S.function(this.media.pause) 10509 ? this.media.pause() 10510 : null 10511 ), 10512 e(this, "togglePlay", (e) => 10513 (S.boolean(e) ? e : !this.playing) ? this.play() : this.pause() 10514 ), 10515 e(this, "stop", () => { 10516 this.isHTML5 10517 ? (this.pause(), this.restart()) 10518 : S.function(this.media.stop) && this.media.stop(); 10519 }), 10520 e(this, "restart", () => { 10521 this.currentTime = 0; 10522 }), 10523 e(this, "rewind", (e) => { 10524 this.currentTime -= S.number(e) ? e : this.config.seekTime; 10525 }), 10526 e(this, "forward", (e) => { 10527 this.currentTime += S.number(e) ? e : this.config.seekTime; 10528 }), 10529 e(this, "increaseVolume", (e) => { 10530 const t = this.media.muted ? 0 : this.volume; 10531 this.volume = t + (S.number(e) ? e : 0); 10532 }), 10533 e(this, "decreaseVolume", (e) => { 10534 this.increaseVolume(-e); 10535 }), 10536 e(this, "airplay", () => { 10537 K.airplay && this.media.webkitShowPlaybackTargetPicker(); 10538 }), 10539 e(this, "toggleControls", (e) => { 10540 if (this.supported.ui && !this.isAudio) { 10541 const t = F( 10542 this.elements.container, 10543 this.config.classNames.hideControls 10544 ), 10545 i = void 0 === e ? void 0 : !e, 10546 s = R( 10547 this.elements.container, 10548 this.config.classNames.hideControls, 10549 i 10550 ); 10551 if ( 10552 (s && 10553 S.array(this.config.controls) && 10554 this.config.controls.includes("settings") && 10555 !S.empty(this.config.settings) && 10556 Pe.toggleMenu.call(this, !1), 10557 s !== t) 10558 ) { 10559 const e = s ? "controlshidden" : "controlsshown"; 10560 Z.call(this, this.media, e); 10561 } 10562 return !s; 10563 } 10564 return !1; 10565 }), 10566 e(this, "on", (e, t) => { 10567 X.call(this, this.elements.container, e, t); 10568 }), 10569 e(this, "once", (e, t) => { 10570 G.call(this, this.elements.container, e, t); 10571 }), 10572 e(this, "off", (e, t) => { 10573 J(this.elements.container, e, t); 10574 }), 10575 e(this, "destroy", (e, t = !1) => { 10576 if (!this.ready) return; 10577 const i = () => { 10578 (document.body.style.overflow = ""), 10579 (this.embed = null),
10580 t 10581 ? (Object.keys(this.elements).length && 10582 (O(this.elements.buttons.play), 10583 O(this.elements.captions), 10584 O(this.elements.controls), 10585 O(this.elements.wrapper), 10586 (this.elements.buttons.play = null), 10587 (this.elements.captions = null), 10588 (this.elements.controls = null), 10589 (this.elements.wrapper = null)), 10590 S.function(e) && e()) 10591 : (ee.call(this), 10592 de.cancelRequests.call(this), 10593 q(this.elements.original, this.elements.container), 10594 Z.call(this, this.elements.original, "destroyed", !0), 10595 S.function(e) && e.call(this.elements.original), 10596 (this.ready = !1), 10597 setTimeout(() => { 10598 (this.elements = null), (this.media = null); 10599 }, 200)); 10600 }; 10601 this.stop(), 10602 clearTimeout(this.timers.loading), 10603 clearTimeout(this.timers.controls), 10604 clearTimeout(this.timers.resized), 10605 this.isHTML5 10606 ? (Fe.toggleNativeControls.call(this, !0), i()) 10607 : this.isYouTube 10608 ? (clearInterval(this.timers.buffering), 10609 clearInterval(this.timers.playing), 10610 null !== this.embed && 10611 S.function(this.embed.destroy) && 10612 this.embed.destroy(), 10613 i()) 10614 : this.isVimeo && 10615 (null !== this.embed && this.embed.unload().then(i), 10616 setTimeout(i, 200)); 10617 }), 10618 e(this, "supports", (e) => K.mime.call(this, e)), 10619 (this.timers = {}), 10620 (this.ready = !1), 10621 (this.loading = !1), 10622 (this.failed = !1), 10623 (this.touch = K.touch), 10624 (this.media = t), 10625 S.string(this.media) && 10626 (this.media = document.querySelectorAll(this.media)), 10627 ((window.jQuery && this.media instanceof jQuery) || 10628 S.nodeList(this.media) || 10629 S.array(this.media)) && 10630 (this.media = this.media[0]), 10631 (this.config = x( 10632 {}, 10633 Le, 10634 st.defaults, 10635 i || {}, 10636 (() => { 10637 try { 10638 return JSON.parse(this.media.getAttribute("data-plyr-config")); 10639 } catch (e) { 10640 return {}; 10641 } 10642 })() 10643 )), 10644 (this.elements = { 10645 container: null, 10646 fullscreen: null, 10647 captions: null, 10648 buttons: {}, 10649 display: {}, 10650 progress: {}, 10651 inputs: {}, 10652 settings: { popup: null, menu: null, panels: {}, buttons: {} }, 10653 }), 10654 (this.captions = { 10655 active: null, 10656 currentTrack: -1, 10657 meta: new WeakMap(), 10658 }), 10659 (this.fullscreen = { active: !1 }), 10660 (this.options = { speed: [], quality: [] }), 10661 (this.debug = new De(this.config.debug)), 10662 this.debug.log("Config", this.config), 10663 this.debug.log("Support", K), 10664 S.nullOrUndefined(this.media) || !S.element(this.media)) 10665 ) 10666 return void this.debug.error( 10667 "Setup failed: no suitable element passed" 10668 ); 10669 if (this.media.plyr) 10670 return void this.debug.warn("Target already setup"); 10671 if (!this.config.enabled) 10672 return void this.debug.error("Setup failed: disabled by config"); 10673 if (!K.check().api) 10674 return void this.debug.error("Setup failed: no support"); 10675 const s = this.media.cloneNode(!0); 10676 (s.autoplay = !1), (this.elements.original = s); 10677 const n = this.media.tagName.toLowerCase(); 10678 let a = null, 10679 l = null; 10680 switch (n) { 10681 case "div": 10682 if (((a = this.media.querySelector("iframe")), S.element(a))) { 10683 if ( 10684 ((l = Me(a.getAttribute("src"))), 10685 (this.provider = (function (e) { 10686 return /^(https?:\/\/)?(www\.)?(youtube\.com|youtube-nocookie\.com|youtu\.?be)\/.+$/.test( 10687 e 10688 ) 10689 ? _e.youtube 10690 : /^https?:\/\/player.vimeo.com\/video\/\d{0,9}(?=\b|\/)/.test( 10691 e 10692 ) 10693 ? _e.vimeo 10694 : null; 10695 })(l.toString())), 10696 (this.elements.container = this.media), 10697 (this.media = a), 10698 (this.elements.container.className = ""), 10699 l.search.length) 10700 ) { 10701 const e = ["1", "true"]; 10702 e.includes(l.searchParams.get("autoplay")) &&
10703 (this.config.autoplay = !0), 10704 e.includes(l.searchParams.get("loop")) && 10705 (this.config.loop.active = !0), 10706 this.isYouTube 10707 ? ((this.config.playsinline = e.includes( 10708 l.searchParams.get("playsinline") 10709 )), 10710 (this.config.youtube.hl = l.searchParams.get("hl"))) 10711 : (this.config.playsinline = !0); 10712 } 10713 } else (this.provider = this.media.getAttribute(this.config.attributes.embed.provider)), this.media.removeAttribute(this.config.attributes.embed.provider); 10714 if ( 10715 S.empty(this.provider) || 10716 !Object.values(_e).includes(this.provider) 10717 ) 10718 return void this.debug.error("Setup failed: Invalid provider"); 10719 this.type = je; 10720 break; 10721 case "video": 10722 case "audio": 10723 (this.type = n), 10724 (this.provider = _e.html5), 10725 this.media.hasAttribute("crossorigin") && 10726 (this.config.crossorigin = !0), 10727 this.media.hasAttribute("autoplay") && 10728 (this.config.autoplay = !0), 10729 (this.media.hasAttribute("playsinline") || 10730 this.media.hasAttribute("webkit-playsinline")) && 10731 (this.config.playsinline = !0), 10732 this.media.hasAttribute("muted") && (this.config.muted = !0), 10733 this.media.hasAttribute("loop") && (this.config.loop.active = !0); 10734 break; 10735 default: 10736 return void this.debug.error("Setup failed: unsupported type"); 10737 } 10738 (this.supported = K.check(this.type, this.provider)), 10739 this.supported.api 10740 ? ((this.eventListeners = []), 10741 (this.listeners = new Ve(this)), 10742 (this.storage = new we(this)), 10743 (this.media.plyr = this), 10744 S.element(this.elements.container) || 10745 ((this.elements.container = $("div")), 10746 L(this.media, this.elements.container)), 10747 Fe.migrateStyles.call(this), 10748 Fe.addStyleHook.call(this), 10749 Xe.setup.call(this), 10750 this.config.debug && 10751 X.call( 10752 this, 10753 this.elements.container, 10754 this.config.events.join(" "), 10755 (e) => { 10756 this.debug.log(`event: ${e.type}`); 10757 } 10758 ), 10759 (this.fullscreen = new He(this)), 10760 (this.isHTML5 || (this.isEmbed && !this.supported.ui)) && 10761 Fe.build.call(this), 10762 this.listeners.container(), 10763 this.listeners.global(), 10764 this.config.ads.enabled && (this.ads = new Je(this)), 10765 this.isHTML5 && 10766 this.config.autoplay && 10767 this.once("canplay", () => ie(this.play())), 10768 (this.lastSeekTime = 0), 10769 this.config.previewThumbnails.enabled && 10770 (this.previewThumbnails = new tt(this))) 10771 : this.debug.error("Setup failed: no support"); 10772 } 10773 get isHTML5() { 10774 return this.provider === _e.html5; 10775 } 10776 get isEmbed() { 10777 return this.isYouTube || this.isVimeo; 10778 } 10779 get isYouTube() { 10780 return this.provider === _e.youtube; 10781 } 10782 get isVimeo() { 10783 return this.provider === _e.vimeo; 10784 } 10785 get isVideo() { 10786 return this.type === je; 10787 } 10788 get isAudio() { 10789 return this.type === Oe; 10790 } 10791 get playing() { 10792 return Boolean(this.ready && !this.paused && !this.ended); 10793 } 10794 get paused() { 10795 return Boolean(this.media.paused); 10796 } 10797 get stopped() { 10798 return Boolean(this.paused && 0 === this.currentTime); 10799 } 10800 get ended() { 10801 return Boolean(this.media.ended); 10802 } 10803 set currentTime(e) { 10804 if (!this.duration) return; 10805 const t = S.number(e) && e > 0; 10806 (this.media.currentTime = t ? Math.min(e, this.duration) : 0), 10807 this.debug.log(`Seeking to ${this.currentTime} seconds`); 10808 } 10809 get currentTime() { 10810 return Number(this.media.currentTime); 10811 } 10812 get buffered() { 10813 const { buffered: e } = this.media; 10814 return S.number(e) 10815 ? e 10816 : e && e.length && this.duration > 0 10817 ? e.end(0) / this.duration 10818 : 0; 10819 } 10820 get seeking() { 10821 return Boolean(this.media.seeking); 10822 } 10823 get duration() { 10824 const e = parseFloat(this.config.duration), 10825 t = (this.media || {}).duration, 10826 i = S.number(t) && t !== 1 / 0 ? t : 0; 10827 return e || i; 10828 } 10829 set volume(e) { 10830 let t = e; 10831 S.string(t) && (t = Number(t)), 10832 S.number(t) || (t = this.storage.get("volume")), 10833 S.number(t) || ({ volume: t } = this.config), 10834 t > 1 && (t = 1), 10835 t < 0 && (t = 0), 10836 (this.config.volume = t), 10837 (this.media.volume = t), 10838 !S.empty(e) && this.muted && t > 0 && (this.muted = !1); 10839 } 10840 get volume() { 10841 return Number(this.media.volume); 10842 } 10843 set muted(e) { 10844 let t = e; 10845 S.boolean(t) || (t = this.storage.get("muted")), 10846 S.boolean(t) || (t = this.config.muted), 10847 (this.config.muted = t), 10848 (this.media.muted = t); 10849 } 10850 get muted() { 10851 return Boolean(this.media.muted); 10852 } 10853 get hasAudio() { 10854 return ( 10855 !this.isHTML5 || 10856 !!this.isAudio || 10857 Boolean(this.media.mozHasAudio) || 10858 Boolean(this.media.webkitAudioDecodedByteCount) || 10859 Boolean(this.media.audioTracks && this.media.audioTracks.length) 10860 ); 10861 } 10862 set speed(e) { 10863 let t = null; 10864 S.number(e) && (t = e), 10865 S.number(t) || (t = this.storage.get("speed")), 10866 S.number(t) || (t = this.config.speed.selected); 10867 const { minimumSpeed: i, maximumSpeed: s } = this; 10868 (t = Ge(t, i, s)), 10869 (this.config.speed.selected = t), 10870 setTimeout(() => { 10871 this.media && (this.media.playbackRate = t); 10872 }, 0); 10873 } 10874 get speed() { 10875 return Number(this.media.playbackRate); 10876 } 10877 get minimumSpeed() { 10878 return this.isYouTube 10879 ? Math.min(...this.options.speed) 10880 : this.isVimeo 10881 ? 0.5 10882 : 0.0625; 10883 } 10884 get maximumSpeed() { 10885 return this.isYouTube 10886 ? Math.max(...this.options.speed) 10887 : this.isVimeo 10888 ? 2 10889 : 16; 10890 } 10891 set quality(e) { 10892 const t = this.config.quality, 10893 i = this.options.quality; 10894 if (!i.length) return; 10895 let s = [ 10896 !S.empty(e) && Number(e), 10897 this.storage.get("quality"), 10898 t.selected, 10899 t.default, 10900 ].find(S.number), 10901 n = !0; 10902 if (!i.includes(s)) { 10903 const e = ne(i, s); 10904 this.debug.warn( 10905 `Unsupported quality option: ${s}, using ${e} instead` 10906 ), 10907 (s = e), 10908 (n = !1); 10909 } 10910 (t.selected = s), 10911 (this.media.quality = s), 10912 n && this.storage.set({ quality: s }); 10913 }
10914 get quality() { 10915 return this.media.quality; 10916 } 10917 set loop(e) { 10918 const t = S.boolean(e) ? e : this.config.loop.active; 10919 (this.config.loop.active = t), (this.media.loop = t); 10920 } 10921 get loop() { 10922 return Boolean(this.media.loop); 10923 } 10924 set source(e) { 10925 it.change.call(this, e); 10926 } 10927 get source() { 10928 return this.media.currentSrc; 10929 } 10930 get download() { 10931 const { download: e } = this.config.urls; 10932 return S.url(e) ? e : this.source; 10933 } 10934 set download(e) { 10935 S.url(e) && 10936 ((this.config.urls.download = e), Pe.setDownloadUrl.call(this)); 10937 } 10938 set poster(e) { 10939 this.isVideo 10940 ? Fe.setPoster.call(this, e, !1).catch(() => {}) 10941 : this.debug.warn("Poster can only be set for video"); 10942 } 10943 get poster() { 10944 return this.isVideo 10945 ? this.media.getAttribute("poster") || 10946 this.media.getAttribute("data-poster") 10947 : null; 10948 } 10949 get ratio() { 10950 if (!this.isVideo) return null; 10951 const e = oe(ce.call(this)); 10952 return S.array(e) ? e.join(":") : e; 10953 } 10954 set ratio(e) { 10955 this.isVideo 10956 ? S.string(e) && re(e) 10957 ? ((this.config.ratio = oe(e)), ue.call(this)) 10958 : this.debug.error(`Invalid aspect ratio specified (${e})`) 10959 : this.debug.warn("Aspect ratio can only be set for video"); 10960 } 10961 set autoplay(e) { 10962 this.config.autoplay = S.boolean(e) ? e : this.config.autoplay; 10963 } 10964 get autoplay() { 10965 return Boolean(this.config.autoplay); 10966 } 10967 toggleCaptions(e) { 10968 xe.toggle.call(this, e, !1); 10969 } 10970 set currentTrack(e) { 10971 xe.set.call(this, e, !1), xe.setup.call(this); 10972 } 10973 get currentTrack() { 10974 const { toggled: e, currentTrack: t } = this.captions; 10975 return e ? t : -1; 10976 } 10977 set language(e) { 10978 xe.setLanguage.call(this, e, !1); 10979 } 10980 get language() { 10981 return (xe.getCurrentTrack.call(this) || {}).language; 10982 } 10983 set pip(e) { 10984 if (!K.pip) return; 10985 const t = S.boolean(e) ? e : !this.pip; 10986 S.function(this.media.webkitSetPresentationMode) && 10987 this.media.webkitSetPresentationMode(t ? Ie : $e), 10988 S.function(this.media.requestPictureInPicture) && 10989 (!this.pip && t 10990 ? this.media.requestPictureInPicture() 10991 : this.pip && !t && document.exitPictureInPicture()); 10992 } 10993 get pip() { 10994 return K.pip 10995 ? S.empty(this.media.webkitPresentationMode) 10996 ? this.media === document.pictureInPictureElement 10997 : this.media.webkitPresentationMode === Ie 10998 : null; 10999 } 11000 setPreviewThumbnails(e) { 11001 this.previewThumbnails && 11002 this.previewThumbnails.loaded && 11003 (this.previewThumbnails.destroy(), (this.previewThumbnails = null)), 11004 Object.assign(this.config.previewThumbnails, e), 11005 this.config.previewThumbnails.enabled && 11006 (this.previewThumbnails = new tt(this)); 11007 } 11008 static supported(e, t) { 11009 return K.check(e, t); 11010 } 11011 static loadSprite(e, t) { 11012 return ke(e, t); 11013 } 11014 static setup(e, t = {}) { 11015 let i = null; 11016 return ( 11017 S.string(e) 11018 ? (i = Array.from(document.querySelectorAll(e))) 11019 : S.nodeList(e) 11020 ? (i = Array.from(e)) 11021 : S.array(e) && (i = e.filter(S.element)), 11022 S.empty(i) ? null : i.map((e) => new st(e, t)) 11023 ); 11024 } 11025 } 11026 var nt; 11027 return (st.defaults = ((nt = Le), JSON.parse(JSON.stringify(nt)))), st; 11028 }); 11029 11030/** 11031 * lightgallery | 2.8.0-beta.1 | November 27th 2023 11032 * http://www.lightgalleryjs.com/ 11033 * Copyright (c) 2020 Sachin Neravath; 11034 * @license GPLv3 11035 */ 11036 11037!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).lightGallery=e()}(this,(function(){"use strict";var t=function(){return(t=Object.assign||function(t){for(var e,i=1,s=arguments.length;i<s;i++)for(var n in e=arguments[i])Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}).apply(this,arguments)};var e="lgAfterAppendSlide",i="lgInit",s="lgHasVideo",n="lgContainerResize",o="lgUpd
11037ateSlides",r="lgAfterAppendSubHtml",l="lgBeforeOpen",a="lgAfterOpen",d="lgSlideItemLoad",g="lgBeforeSlide",h="lgAfterSlide",c="lgPosterClick",u="lgDragStart",m="lgDragMove",p="lgDragEnd",f="lgBeforeNextSlide",y="lgBeforePrevSlide",v="lgBeforeClose",b="lgAfterClose",I={mode:"lg-slide",easing:"ease",speed:400,licenseKey:"0000-0000-000-0000",height:"100%",width:"100%",addClass:"",startClass:"lg-start-zoom",backdropDuration:300,container:"",startAnimationDuration:400,zoomFromOrigin:!0,hideBarsDelay:0,showBarsAfter:1e4,slideDelay:0,supportLegacyBrowser:!0,allowMediaOverlap:!1,videoMaxSize:"1280-720",loadYouTubePoster:!0,defaultCaptionHeight:0,ariaLabelledby:"",ariaDescribedby:"",resetScrollPosition:!0,hideScrollbar:!1,closable:!0,swipeToClose:!0,closeOnTap:!0,showCloseIcon:!0,showMaximizeIcon:!1,loop:!0,escKey:!0,keyPress:!0,trapFocus:!0,controls:!0,slideEndAnimation:!0,hideControlOnEnd:!1,mousewheel:!1,getCaptionFromTitleOrAlt:!0,appendSubHtmlTo:".lg-sub-html",subHtmlSelectorRelative:!1,preload:2,numberOfSlideItemsInDom:10,selector:"",selectWithin:"",nextHtml:"",prevHtml:"",index:0,iframeWidth:"100%",iframeHeight:"100%",iframeMaxWidth:"100%",iframeMaxHeight:"100%",download:!0,counter:!0,appendCounterTo:".lg-toolbar",swipeThreshold:50,enableSwipe:!0,enableDrag:!0,dynamic:!1,dynamicEl:[],extraProps:[],exThumbImage:"",isMobile:void 0,mobileSettings:{controls:!1,showCloseIcon:!1,download:!1},plugins:[],strings:{closeGallery:"Close gallery",toggleMaximize:"Toggle maximize",previousSlide:"Previous slide",nextSlide:"Next slide",download:"Download",playVideo:"Play video",mediaLoadingFailed:"Oops... Failed to load content..."}};var C=function(){function t(t){return this.cssVenderPrefixes=["TransitionDuration","TransitionTimingFunction","Transform","Transition"],this.selector=this._getSelector(t),this.firstElement=this._getFirstEl(),this}return t.generateUUID=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){var e=16*Math.random()|0;return("x"==t?e:3&e|8).toString(16)}))},t.prototype._getSelector=function(t,e){return void 0===e&&(e=document),"string"!=typeof t?t:(e=e||document,"#"===t.substring(0,1)?e.querySelector(t):e.querySelectorAll(t))},t.prototype._each=function(t){return this.selector?(void 0!==this.selector.length?[].forEach.call(this.selector,t):t(this.selector,0),this):this},t.prototype._setCssVendorPrefix=function(t,e,i){var s=e.replace(/-([a-z])/gi,(function(t,e){return e.toUpperCase()}));-1!==this.cssVenderPrefixes.indexOf(s)?(t.style[s.charAt(0).toLowerCase()+s.slice(1)]=i,t.style["webkit"+s]=i,t.style["moz"+s]=i,t.style["ms"+s]=i,t.style["o"+s]=i):t.style[s]=i},t.prototype._getFirstEl=function(){return this.selector&&void 0!==this.selector.length?this.selector[0]:this.selector},t.prototype.isEventMatched=function(t,e){var i=e.split(".");return t.split(".").filter((function(t){return t})).every((function(t){return-1!==i.indexOf(t)}))},t.prototype.attr=function(t,e){return void 0===e?this.firstElement?this.firstElement.getAttribute(t):"":(this._each((function(i){i.setAttribute(t,e)})),this)},t.prototype.find=function(t){return x(this._getSelector(t,this.selector))},t.prototype.first=function(){return this.selector&&void 0!==this.selector.length?x(this.selector[0]):x(this.selector)},t.prototype.eq=function(t){return x(this.selector[t])},t.prototype.parent=function(){return x(this.selector.parentElement)},t.prototype.get=function(){return this._getFirstEl()},t.prototype.removeAttr=function(t){var e=t.split(" ");return this._each((function(t){e.forEach((function(e){return t.removeAttribute(e)}))})),this},t.prototype.wrap=function(t){if(!this.firstElement)return this;var e=document.createElement("div");return e.className=t,this.firstElement.parentNode.insertBefore(e,this.firstElement),this.firstElement.parentNode.removeChild(this.firstElement),e.appendChild(this.firstElement),this},t.prototype.addClass=function(t){return void 0===t&&(t=""),this._each((function(e){t.split(" ").forEach((function(t){t&&e.classList.add(t)}))})),this},t.prototype.removeClass=function(t){return this._each((function(e){t.split(" ").forEach((function(t){t&&e.classList.remove(t)}))}
vendor: 10,873 bytes, line 11037
11037)),this},t.prototype.hasClass=function(t){return!!this.firstElement&&this.firstElement.classList.contains(t)},t.prototype.hasAttribute=function(t){return!!this.firstElement&&this.firstElement.hasAttribute(t)},t.prototype.toggleClass=function(t){return this.firstElement?(this.hasClass(t)?this.removeClass(t):this.addClass(t),this):this},t.prototype.css=function(t,e){var i=this;return this._each((function(s){i._setCssVendorPrefix(s,t,e)})),this},t.prototype.on=function(e,i){var s=this;return this.selector?(e.split(" ").forEach((function(e){Array.isArray(t.eventListeners[e])||(t.eventListeners[e]=[]),t.eventListeners[e].push(i),s.selector.addEventListener(e.split(".")[0],i)})),this):this},t.prototype.once=function(t,e){var i=this;return this.on(t,(function(){i.off(t),e(t)})),this},t.prototype.off=function(e){var i=this;return this.selector?(Object.keys(t.eventListeners).forEach((function(s){i.isEventMatched(e,s)&&(t.eventListeners[s].forEach((function(t){i.selector.removeEventListener(s.split(".")[0],t)})),t.eventListeners[s]=[])})),this):this},t.prototype.trigger=function(t,e){if(!this.firstElement)return this;var i=new CustomEvent(t.split(".")[0],{detail:e||null});return this.firstElement.dispatchEvent(i),this},t.prototype.load=function(t){var e=this;return fetch(t).then((function(t){return t.text()})).then((function(t){e.selector.innerHTML=t})),this},t.prototype.html=function(t){return void 0===t?this.firstElement?this.firstElement.innerHTML:"":(this._each((function(e){e.innerHTML=t})),this)},t.prototype.append=function(t){return this._each((function(e){"string"==typeof t?e.insertAdjacentHTML("beforeend",t):e.appendChild(t)})),this},t.prototype.prepend=function(t){return this._each((function(e){e.insertAdjacentHTML("afterbegin",t)})),this},t.prototype.remove=function(){return this._each((function(t){t.parentNode.removeChild(t)})),this},t.prototype.empty=function(){return this._each((function(t){t.innerHTML=""})),this},t.prototype.scrollTop=function(t){return void 0!==t?(document.body.scrollTop=t,document.documentElement.scrollTop=t,this):window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0},t.prototype.scrollLeft=function(t){return void 0!==t?(document.body.scrollLeft=t,document.documentElement.scrollLeft=t,this):window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0},t.prototype.offset=function(){if(!this.firstElement)return{left:0,top:0};var t=this.firstElement.getBoundingClientRect(),e=x("body").style().marginLeft;return{left:t.left-parseFloat(e)+this.scrollLeft(),top:t.top+this.scrollTop()}},t.prototype.style=function(){return this.firstElement?this.firstElement.currentStyle||window.getComputedStyle(this.firstElement):{}},t.prototype.width=function(){var t=this.style();return this.firstElement.clientWidth-parseFloat(t.paddingLeft)-parseFloat(t.paddingRight)},t.prototype.height=function(){var t=this.style();return this.firstElement.clientHeight-parseFloat(t.paddingTop)-parseFloat(t.paddingBottom)},t.eventListeners={},t}();function x(t){return function(){if("function"==typeof window.CustomEvent)return!1;window.CustomEvent=function(t,e){e=e||{bubbles:!1,cancelable:!1,detail:null};var i=document.createEvent("CustomEvent");return i.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),i}}(),Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),new C(t)}var w=["src","sources","subHtml","subHtmlUrl","html","video","poster","slideName","responsive","srcset","sizes","iframe","downloadUrl","download","width","facebookShareUrl","tweetText","iframeTitle","twitterShareUrl","pinterestShareUrl","pinterestText","fbHtml","disqusIdentifier","disqusUrl"];function S(t){return"href"===t?"src":t=(t=(t=t.replace("data-","")).charAt(0).toLowerCase()+t.slice(1)).replace(/-([a-z])/g,(function(t){return t[1].toUpperCase()}))}var T=function(t,e,i,s){void 0===i&&(i=0);var n=x(t).attr("data-lg-size")||s;if(n){var o=n.split(",");if(o[1])for(var r=window.innerWidth,l=0;l<o.length;l++){var a=o[l];if(parseInt(a.split("-")[2],10)>r){n=a;break}l===o.length-1&&(n=a)}var d=n.split("-"),g=parseInt(d[0],10),h=parseInt(d[1],10),c=e.width(),u=e.height()-i,m=Math.min(c,g),p=Math.min(u,h),f=Math.min(m/g,p/h);return{width:g*f,height:h*f}}},E=function(t,e,i,s,n){if(n){var o=x(t).find("img").first();if(o.get()){var r=e.get().getBoundingClientRect(),l=r.width,a=e.height()-(i+s),d=o.width(),g=o.height(),h=o.style(),c=(l-d)/2-o.offset().left+(parseFloat(h.paddingLeft)||0)+(parseFloat(h.borderLeft)||0)+x(window).scrollLeft()+r.left,u=(a-g)/2-o.offset().top+(parseFloat(h.paddingTop)||0)+(parseFloat(h.borderTop)||0)+x(window).scrollTop()+i;return"translate3d("+(c*=-1)+"px, "+(u*=-1)+"px, 0) scale3d("+d/n.width+", "+g/n.height+", 1)"}}},O=function(t,e,i,s,n,o){return'<div class="lg-video-cont lg-has-iframe" style="width:'+t+"; max-width:"+i+"; height: "+e+"; max-height:"+s+'">\n <iframe class="lg-object" frameborder="0" '+(o?'title="'+o+'"':"")+' src="'+n+'" allowfullscreen="true"></iframe>\n </div>'},D=function(t,e,i,s,n,o){var r="<img "+i+" "+(s?'srcset="'+s+'"':"")+" "+(n?'sizes="'+n+'"':"")+' class="lg-object lg-image" data-index="'+t+'" src="'+e+'" />',l="";o&&(l=("string"==typeof o?JSON.parse(o):o).map((function(t){var e="";return Object.keys(t).forEach((function(i){e+=" "+i+'="'+t[i]+'"'})),"<source "+e+"></source>"})));return""+l+r},L=function(t){for(var e=[],i=[],s="",n=0;n<t.length;n++){var o=t[n].split(" ");""===o[0]&&o.splice(0,1),i.push(o[0]),e.push(o[1])}for(var r=window.innerWidth,l=0;l<e.length;l++)if(parseInt(e[l],10)>r){s=i[l];break}return s},z=function(t){return!!t&&(!!t.complete&&0!==t.naturalWidth)},M=function(t,e,i,s,n){return'<div class="lg-video-cont '+(n&&n.youtube?"lg-has-youtube":n&&n.vimeo?"lg-has-vimeo":"lg-has-html5")+'" style="'+i+'">\n <div class="lg-video-play-button">\n <svg\n viewBox="0 0 20 20"\n preserveAspectRatio="xMidYMid"\n focusable="false"\n aria-labelledby="'+s+'"\n role="img"\n class="lg-video-play-icon"\n >\n <title>'+s+'</title>\n <polygon class="lg-video-play-icon-inner" points="1,0 20,10 1,20"></polygon>\n </svg>\n <svg class="lg-video-play-icon-bg" viewBox="0 0 50 50" focusable="false">\n <circle cx="50%" cy="50%" r="20"></circle></svg>\n <svg class="lg-video-play-icon-circle" viewBox="0 0 50 50" focusable="false">\n <circle cx="50%" cy="50%" r="20"></circle>\n </svg>\n </div>\n '+(e||"")+'\n <img class="lg-object lg-video-poster" src="'+t+'" />\n </div>'},G=function(t){var e=t.querySelectorAll('a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), input[type="radio"]:not([disabled]), input[type="checkbox"]:not([disabled]), select:not([disabled])');return[].filter.call(e,(function(t){var e=window.getComputedStyle(t);return"none"!==e.display&&"hidden"!==e.visibility}))},k=function(t,e,i,s){var n=[],o=function(){for(var t=0,e=0,i=arguments.length;e<i;e++)t+=arguments[e].length;var s=Array(t),n=0;for(e=0;e<i;e++)for(var o=arguments[e],r=0,l=o.length;r<l;r++,n++)s[n]=o[r];return s}(w,e);return[].forEach.call(t,(function(t){for(var e={},r=0;r<t.attributes.length;r++){var l=t.attributes[r];if(l.specified){var a=S(l.name),d="";o.indexOf(a)>-1&&(d=a),d&&(e[d]=l.value)}}var g=x(t),h=g.find("img").first().attr("alt"),c=g.attr("title"),u=s?g.attr(s):g.find("img").first().attr("src");e.thumb=u,i&&!e.subHtml&&(e.subHtml=c||h||""),e.alt=h||c||"",n.push(e)})),n},A=function(){return/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)},P=function(t,e,i){if(!t)return e?{html5:!0}:void console.error("lightGallery :- data-src is not provided on slide item "+(i+1)+". Please make sure the selector property is properly configured. More info - https://www.lightgalleryjs.com/demos/html-markup/");var s=t.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com|be-nocookie\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-\_\%]+)([\&|?][\S]*)*/i),n=t.match(/\/\/(?:www\.)?(?:player\.)?vimeo.com\/(?:video\/)?([0-9a-z\-_]+)(.*)?/i),o=t.match(/https?:\/\/(.+)?(wistia\.com|wi\.st)\/(medias|embed)\/([0-9a-z\-_]+)(.*)/);return s?{youtube:s}:n?{vimeo:n}:o?{wistia:o}:void 0},B=0,F=function(){function w(t,e){if(this.lgOpened=!1,this.index=0,this.plugins=[],this.lGalleryOn=!1,this.lgBusy=!1,this.currentItemsInDom=[],this.prevScrollTop=0,this.bodyPaddingRight=0,this.isDummyImageRemoved=!1,this.dragOrSwipeEnabled=!1,this.mediaContainerPosition={top:0,bottom:0},!t)return this;if(B++,this.lgId=B,this.el=t,this.LGel=x(t),this.generateSettings(e),this.buildModules(),this.settings.dynamic&&void 0!==this.settings.dynamicEl&&!Array.isArray(this.settings.dynamicEl))throw"When using dynamic mode, you must also define dynamicEl as an Array.";return this.galleryItems=this.getItems(),this.normalizeSettings(),this.init(),this.validateLicense(),this}return w.prototype.generateSettings=function(e){if(this.settings=t(t({},I),e),this.settings.isMobile&&"function"==typeof this.settings.isMobile?this.settings.isMobile():A()){var i=t(t({},this.settings.mobileSettings),this.settings.mobileSettings);this.settings=t(t({},this.settings),i)}},w.prototype.normalizeSettings=function(){this.settings.slideEndAnimation&&(this.settings.hideControlOnEnd=!1),this.settings.closable||(this.settings.swipeToClose=!1),this.zoomFromOrigin=this.settings.zoomFromOrigin,this.settings.dynamic&&(this.zoomFromOrigin=!1),this.settings.container||(this.settings.container=document.body),this.settings.preload=Math.min(this.settings.preload,this.galleryItems.length)},w.prototype.init=function(){var t=this;this.addSlideVideoInfo(this.galleryItems),this.buildStructure(),this.LGel.trigger(i,{instance:this}),this.settings.keyPress&&this.keyPress(),setTimeout((function(){t.enableDrag(),t.enableSwipe(),t.triggerPosterClick()}),50),this.arrow(),this.settings.mousewheel&&this.mousewheel(),this.settings.dynamic||this.openGalleryOnItemClick()},w.prototype.openGalleryOnItemClick=function(){for(var t=this,e=function(e){var s=i.items[e],n=x(s),o=C.generateUUID();n.attr("data-lg-id",o).on("click.lgcustom-item-"+o,(function(i){i.preventDefault();var n=t.settings.index||e;t.openGallery(n,s)}))},i=this,s=0;s<this.items.length;s++)e(s)},w.prototype.buildModules=function(){var t=this;this.settings.plugins.forEach((function(e){t.plugins.push(new e(t,x))}))},w.prototype.validateLicense=function(){this.settings.licenseKey?"0000-0000-000-0000"===this.settings.licenseKey&&console.warn("lightGallery: "+this.settings.licenseKey+" license key is not val
11037id for production use"):console.error("Please provide a valid license key")},w.prototype.getSlideItem=function(t){return x(this.getSlideItemId(t))},w.prototype.getSlideItemId=function(t){return"#lg-item-"+this.lgId+"-"+t},w.prototype.getIdName=function(t){return t+"-"+this.lgId},w.prototype.getElementById=function(t){return x("#"+this.getIdName(t))},w.prototype.manageSingleSlideClassName=function(){this.galleryItems.length<2?this.outer.addClass("lg-single-item"):this.outer.removeClass("lg-single-item")},w.prototype.buildStructure=function(){var t=this;if(!(this.$container&&this.$container.get())){var e="",i="";this.settings.controls&&(e='<button type="button" id="'+this.getIdName("lg-prev")+'" aria-label="'+this.settings.strings.previousSlide+'" class="lg-prev lg-icon"> '+this.settings.prevHtml+' </button>\n <button type="button" id="'+this.getIdName("lg-next")+'" aria-label="'+this.settings.strings.nextSlide+'" class="lg-next lg-icon"> '+this.settings.nextHtml+" </button>"),".lg-item"!==this.settings.appendSubHtmlTo&&(i='<div class="lg-sub-html" role="status" aria-live="polite"></div>');var s="";this.settings.allowMediaOverlap&&(s+="lg-media-overlap ");var n=this.settings.ariaLabelledby?'aria-labelledby="'+this.settings.ariaLabelledby+'"':"",o=this.settings.ariaDescribedby?'aria-describedby="'+this.settings.ariaDescribedby+'"':"",r="lg-container "+this.settings.addClass+" "+(document.body!==this.settings.container?"lg-inline":""),l=this.settings.closable&&this.settings.showCloseIcon?'<button type="button" aria-label="'+this.settings.strings.closeGallery+'" id="'+this.getIdName("lg-close")+'" class="lg-close lg-icon"></button>':"",a=this.settings.showMaximizeIcon?'<button type="button" aria-label="'+this.settings.strings.toggleMaximize+'" id="'+this.getIdName("lg-maximize")+'" class="lg-maximize lg-icon"></button>':"",d='\n <div class="'+r+'" id="'+this.getIdName("lg-container")+'" tabindex="-1" aria-modal="true" '+n+" "+o+' role="dialog"\n >\n <div id="'+this.getIdName("lg-backdrop")+'" class="lg-backdrop"></div>\n\n <div id="'+this.getIdName("lg-outer")+'" class="lg-outer lg-use-css3 lg-css3 lg-hide-items '+s+' ">\n\n <div id="'+this.getIdName("lg-content")+'" class="lg-content">\n <div id="'+this.getIdName("lg-inner")+'" class="lg-inner">\n </div>\n '+e+'\n </div>\n <div id="'+this.getIdName("lg-toolbar")+'" class="lg-toolbar lg-group">\n '+a+"\n "+l+"\n </div>\n "+(".lg-outer"===this.settings.appendSubHtmlTo?i:"")+'\n <div id="'+this.getIdName("lg-components")+'" class="lg-components">\n '+(".lg-sub-html"===this.settings.appendSubHtmlTo?i:"")+"\n </div>\n </div>\n </div>\n ";x(this.settings.container).append(d),document.body!==this.settings.container&&x(this.settings.container).css("position","relative"),this.outer=this.getElementById("lg-outer"),this.$lgComponents=this.getElementById("lg-components"),this.$backdrop=this.getElementById("lg-backdrop"),this.$container=this.getElementById("lg-container"),this.$inner=this.getElementById("lg-inner"),this.$content=this.getElementById("lg-content"),this.$toolbar=this.getElementById("lg-toolbar"),this.$backdrop.css("transition-duration",this.settings.backdropDuration+"ms");var g=this.settings.mode+" ";this.manageSingleSlideClassName(),this.settings.enableDrag&&(g+="lg-grab "),this.outer.addClass(g),this.$inner.css("transition-timing-function",this.settings.easing),this.$inner.css("transition-duration",this.settings.speed+"ms"),this.settings.download&&this.$toolbar.append('<a id="'+this.getIdName("lg-download")+'" target="_blank" rel="noopener" aria-label="'+this.settings.strings.download+'" download class="lg-download lg-icon"></a>'),this.counter(),x(window).on("resize.lg.global"+this.lgId+" orientationchange.lg.global"+this.lgId,(function(){t.refreshOnResize()})),this.hideBars(),this.manageCloseGallery(),this.toggleMaximize(),this.initModules()}},w.prototype.refreshOnResize=function(){if(this.lgOpened){var t=this.galleryItems[this.index].__slideVideoInfo;this.mediaContainerPosition=this.getMediaContainerPosition();var e=this.mediaContainerPosition,i=e.top,s=e.bottom;if(this.currentImageSize=T(this.items[this.index],this.outer,i+s,t&&this.settings.videoMaxSize),t&&this.resizeVideoSlide(this.index,this.currentImageSize),this.zoomFromOrigin&&!this.isDummyImageRemoved){var o=this.getDummyImgStyles(this.currentImageSize);this.outer.find(".lg-current .lg-dummy-img").first().attr("style",o)}this.LGel.trigger(n)}},w.prototype.resizeVideoSlide=function(t,e){var i=this.getVideoContStyle(e);
vendor: 14,145 bytes, line 11037
11037this.getSlideItem(t).find(".lg-video-cont").attr("style",i)},w.prototype.updateSlides=function(t,e){if(this.index>t.length-1&&(this.index=t.length-1),1===t.length&&(this.index=0),t.length){var i=this.galleryItems[e].src;this.galleryItems=t,this.updateControls(),this.$inner.empty(),this.currentItemsInDom=[];var s=0;this.galleryItems.some((function(t,e){return t.src===i&&(s=e,!0)})),this.currentItemsInDom=this.organizeSlideItems(s,-1),this.loadContent(s,!0),this.getSlideItem(s).addClass("lg-current"),this.index=s,this.updateCurrentCounter(s),this.LGel.trigger(o)}else this.closeGallery()},w.prototype.getItems=function(){if(this.items=[],this.settings.dynamic)return this.settings.dynamicEl||[];if("this"===this.settings.selector)this.items.push(this.el);else if(this.settings.selector)if("string"==typeof this.settings.selector)if(this.settings.selectWithin){var t=x(this.settings.selectWithin);this.items=t.find(this.settings.selector).get()}else this.items=this.el.querySelectorAll(this.settings.selector);else this.items=this.settings.selector;else this.items=this.el.children;return k(this.items,this.settings.extraProps,this.settings.getCaptionFromTitleOrAlt,this.settings.exThumbImage)},w.prototype.shouldHideScrollbar=function(){return this.settings.hideScrollbar&&document.body===this.settings.container},w.prototype.hideScrollbar=function(){if(this.shouldHideScrollbar()){this.bodyPaddingRight=parseFloat(x("body").style().paddingRight);var t=document.documentElement.getBoundingClientRect(),e=window.innerWidth-t.width;x(document.body).css("padding-right",e+this.bodyPaddingRight+"px"),x(document.body).addClass("lg-overlay-open")}},w.prototype.resetScrollBar=function(){this.shouldHideScrollbar()&&(x(document.body).css("padding-right",this.bodyPaddingRight+"px"),x(document.body).removeClass("lg-overlay-open"))},w.prototype.openGallery=function(t,e){var i=this;if(void 0===t&&(t=this.settings.index),!this.lgOpened){this.lgOpened=!0,this.outer.removeClass("lg-hide-items"),this.hideScrollbar(),this.$container.addClass("lg-show");var s=this.getItemsToBeInsertedToDom(t,t);this.currentItemsInDom=s;var n="";s.forEach((function(t){n=n+'<div id="'+t+'" class="lg-item"></div>'})),this.$inner.append(n),this.addHtml(t);var o="";this.mediaContainerPosition=this.getMediaContainerPosition();var r=this.mediaContainerPosition,d=r.top,g=r.bottom;this.settings.allowMediaOverlap||this.setMediaContainerPosition(d,g);var h=this.galleryItems[t].__slideVideoInfo;this.zoomFromOrigin&&e&&(this.currentImageSize=T(e,this.outer,d+g,h&&this.settings.videoMaxSize),o=E(e,this.outer,d,g,this.currentImageSize)),this.zoomFromOrigin&&o||(this.outer.addClass(this.settings.startClass),this.getSlideItem(t).removeClass("lg-complete"));var c=this.settings.zoomFromOrigin?100:this.settings.backdropDuration;setTimeout((function(){i.outer.addClass("lg-components-open")}),c),this.index=t,this.LGel.trigger(l),this.getSlideItem(t).addClass("lg-current"),this.lGalleryOn=!1,this.prevScrollTop=x(window).scrollTop(),setTimeout((function(){if(i.zoomFromOrigin&&o){var e=i.getSlideItem(t);e.css("transform",o),setTimeout((function(){e.addClass("lg-start-progress lg-start-end-progress").css("transition-duration",i.settings.startAnimationDuration+"ms"),i.outer.addClass("lg-zoom-from-image")})),setTimeout((function(){e.css("transform","translate3d(0, 0, 0)")}),100)}setTimeout((function(){i.$backdrop.addClass("in"),i.$container.addClass("lg-show-in")}),10),setTimeout((function(){i.settings.trapFocus&&document.body===i.settings.container&&i.trapFocus()}),i.settings.backdropDuration+50),i.zoomFromOrigin&&o||setTimeout((function(){i.outer.addClass("lg-visible")}),i.settings.backdropDuration),i.slide(t,!1,!1,!1),i.LGel.trigger(a)})),document.body===this.settings.container&&x("html").addClass("lg-on")}},w.prototype.getMediaContainerPosition=function(){if(this.settings.allowMediaOverlap)return{top:0,bottom:0};var t=this.$toolbar.get().clientHeight||0,e=this.outer.find(".lg-components .lg-sub-html").get(),i=this.settings.defaultCaptionHeight||e&&e.clientHeight||0,s=this.outer.find(".lg-thumb-outer").get();return{top:t,bottom:(s?s.clientHeight:0)+i}},w.prototype.setMediaContainerPosition=function(t,e){void 0===t&&(t=0),void 0===e&&(e=0),this.$content.css("top",t+"px").css("bottom",e+"px")},w.prototype.hideBars=function(){var t=this;setTimeout((function(){t.outer.removeClass("lg-hide-items"),t.settings.hideBarsDelay>0&&(t.outer.on("mousemove.lg click.lg touchstart.lg",(function(){t.outer.removeClass("lg-hide-items"),clearTimeout(t.hideBarTimeout),t.hideBarTimeout=setTimeout((function(){t.outer.addClass("lg-hide-items")}),t.settings.hideBarsDelay)})),t.outer.trigger("mousemove.lg"))}),this.settings.showBarsAfter)},w.prototype.initPictureFill=function(t){if(this.settings.supportLegacyBrowser)try{picturefill({elements:[t.get()]})}catch(t){console.warn("lightGallery :- If you want srcset or picture tag to be supported for older browser please include picturefil javascript library in your document.")}},w.prototype.counter=function(){if(this.settings.counter){var t='<div class="lg-counter" role="status" aria-live="polite">\n <span id="'+this.getIdName("lg-counter-current")+'" class="lg-counter-current">'+(this.index+1)+' </span> /\n <span id="'+this.getIdName("lg-counter-all")+'" class="lg-counter-all">'+this.galleryItems.length+" </span></div>";this.outer.find(this.settings.appendCounterTo).append(t)}},w.prototype.addHtml=function(t){var e,i;if(this.galleryItems[t].subHtmlUrl?i=this.galleryItems[t].subHtmlUrl:e=this.galleryItems[t].subHtml,!i)if(e){var s=e.substring(0,1);"."!==s&&"#"!==s||(e=this.settings.subHtmlSelectorRelative&&!this.settings.dynamic?x(this.items).eq(t).find(e).first().html():x(e).first().html())}else e="";if(".lg-item"!==this.settings.appendSubHtmlTo)i?this.outer.find(".lg-sub-html").load(i):this.outer.find(".lg-sub-html").html(e);else{var n=x(this.getSlideItemId(t));i?n.load(i):n.append('<div class="lg-sub-html">'+e+"</div>")}null!=e&&(""===e?this.outer.find(this.settings.appendSubHtmlTo).addClass("lg-empty-html"):this.outer.find(this.settings.appendSubHtmlTo).removeClass("lg-empty-html")),this.LGel.trigger(r,{index:t})},w.prototype.preload=function(t){for(var e=1;e<=this.settings.preload&&!(e>=this.galleryItems.length-t);e++)this.loadContent(t+e,!1);for(var i=1;i<=this.settings.preload&&!(t-i<0);i++)this.loadContent(t-i,!1)},w.prototype.getDummyImgStyles=function(t){return t?"width:"+t.width+"px;\n margin-left: -"+t.width/2+"px;\n margin-top: -"+t.height/2+"px;\n height:"+t.height+"px":""},w.prototype.getVideoContStyle=function(t){return t?"width:"+t.width+"px;\n height:"+t.height+"px":""},w.prototype.getDummyImageContent=function(t,e,i){var s;if(this.settings.dynamic||(s=x(this.items).eq(e)),s){var n=void 0;if(!(n=this.settings.exThumbImage?s.attr(this.settings.exThumbImage):s.find("img").first().attr("src")))return"";var o="<img "+i+' style="'+this.getDummyImgStyles(this.currentImageSize)+'" class="lg-dummy-img" src="'+n+'" />';return t.addClass("lg-first-slide"),this.outer.addClass("lg-first-slide-loading"),o}return""},w.prototype.setImgMarkup=function(t,e,i){var s=this.galleryItems[i],n=s.alt,o=s.srcset,r=s.sizes,l=s.sources,a=n?'alt="'+n+'"':"",d='<picture class="lg-img-wrap"> '+(this.isFirstSlideWithZoomAnimation()?this.getDummyImageContent(e,i,a):D(i,t,a,o,r,l))+"</picture>";e.prepend(d)},w.prototype.onSlideObjectLoad=function(t,e,i,s){var n=t.find(".lg-object").first();z(n.get())||e?i():(n.on("load.lg error.lg",(function(){i&&i()})),n.on("error.lg",(function(){s&&s()})))},w.prototype.onLgObjectLoad=function(t,e,i,s,n,o){var r=this;this.onSlideObjectLoad(t,o,(function(){r.triggerSlideItemLoad(t,e,i,s,n)}),(function(){t.addClass("lg-complete lg-complete_"),t.html('<span class="lg-error-msg">'+r.settings.strings.mediaLoadingFailed+"</span>")}))},w.prototype.triggerSlideItemLoad=function(t,e,i,s,n){var o=this,r=this.galleryItems[e],l=n&&"video"===this.getSlideType(r)&&!r.poster?s:0;setTimeout((function(){t.addClass("lg-complete lg-complete_"),o.LGel.trigger(d,{index:e,delay:i||0,isFirstSlide:n})}),l)},w.prototype.isFirstSlideWithZoomAnimation=function(){return!(this.lGalleryOn||!this.zoomFromOrigin||!this.currentImageSize)},w.prototype.addSlideVideoInfo=function(t){var e=this;t.forEach((function(t,i){t.__slideVideoInfo=P(t.src,!!t.video,i),t.__slideVideoInfo&&e.settings.loadYouTubePoster&&!t.poster&&t.__slideVideoInfo.youtube&&(t.poster="//img.youtube.com/vi/"+t.__slideVideoInfo.youtube[1]+"/maxresdefault.jpg")}))},w.prototype.loadContent=function(t,i){var n=this,o=this.galleryItems[t],r=x(this.getSlideItemId(t)),l=o.poster,a=o.srcset,d=o.sizes,g=o.sources,h=o.src,c=o.video,u=c&&"string"==typeof c?JSON.parse(c):c;if(o.responsive){var m=o.responsive.split(",");h=L(m)||h}var p=o.__slideVideoInfo,f="",y=!!o.iframe,v=!this.lGalleryOn,b=0;if(v&&(b=this.zoomFromOrigin&&this.currentImageSize?this.settings.startAnimationDuration+10:this.settings.backdropDuration+10),!r.hasClass("lg-loaded")){if(p){var I=this.mediaContainerPosition,C=I.top,w=I.bottom,S=T(this.items[t],this.outer,C+w,p&&this.settings.videoMaxSize);f=this.getVideoContStyle(S)}if(y){var E=O(this.settings.iframeWidth,this.settings.iframeHeight,this.settings.iframeMaxWidth,this.settings.iframeMaxHeight,h,o.iframeTitle);r.prepend(E)}else if(l){var z="";v&&this.zoomFromOrigin&&this.currentImageSize&&(z=this.getDummyImageContent(r,t,""));E=M(l,z||"",f,this.settings.strings.playVideo,p);r.prepend(E)}else if(p){E='<div class="lg-video-cont " style="'+f+'"></div>';r.prepend(E)}else if(this.setImgMarkup(h,r,t),a||g){var G=r.find(".lg-object");this.initPictureFill(G)}(l||p)&&this.LGel.trigger(s,{index:t,src:h,html5Video:u,hasPoster:!!l}),this.LGel.trigger(e,{index:t}),this.lGalleryOn&&".lg-item"===this.settings.appendSubHtmlTo&&this.addHtml(t)}var k=0;b&&!x(document.body).hasClass("lg-from-hash")&&(k=b),this.isFirstSlideWithZoomAnimation()&&(setTimeout((function(){r.removeClass("lg-start-end-progress lg-start-progress").removeAttr("style")}),this.settings.startAnimationDuration+100),r.hasClass("lg-loaded")||setTimeout((function(){if("image"===n.getSlideType(o)){var e=o.alt,i=e?'alt="'+e+'"':"";if(r.find(".lg-img-wrap").append(D(t,h,i,a,d,o.sources)),a||g){var s=r.find(".lg-object");n.initPictureFill(s)}}("image"===n.getSlideType(o)||"video"===n.getSlideType(o)&&l)&&(n.onLgObjectLoad(r,t,b,k,!0,!1),n.onSlideObjectLoad(r,!(!p||!p.html5||l),(function(){n.loadContentOnFirstSlideLoad(t,r,k)}),(function(){n.loadContentOnFirstSlideLoad(t,r,k)})))}),this.settings.startAnimationDuration+100)),r.addClass("lg-loaded"),this.isFirstSlideWithZoomAnimation()&&("video"!==this.getSlideType(o)||l)||this.onLgObjectLoad(r,t,b,k,v,!(!p||!p.html5||l)),this.zoomFromOrigin&&this.currentImageSize||!r.hasClass("lg-complete_")||this.lGalleryOn||setTimeout((function(){r.addClass("lg-complete")}),this.settings.backdropDuration),this.lGalleryOn=!0,!0===i&&(r.hasClass("lg-complete_")?this.preload(t):r.find(".lg-object").first().on("load.lg error.lg",(function(){n.preload(t)})))},w.prototype.loadContentOnFirstSlideLoad=function(t,e,i){var s=this;setTimeout((function(){e.find(".lg-dummy-img").remove(),e.removeClass("lg-first-slide"),s.outer.removeClass("lg-first-slide-loading"),s.isDummyImageRemoved=!0,s.preload(t)}),i+300)},w.prototype.getItemsToBeInsertedToDom=function(t,e,i){var s=this;void 0===i&&(i=0);var n=[],o=Math.max(i,3);o=Math.min(o,this.galleryItems.length);var r="lg-item-"+this.lgId+"-"+e;if(this.galleryItems.length<=3)return this.galleryItems.forEach((function(t,e){n.push("lg-item-"+s.lgId+"-"+e)})),n;if(t<(this.galleryItems.length-1)/2){for(var l=t;l>t-o/2&&l>=0;l--)n.push("lg-item-"+this.lgId+"-"+l);var a=n.length;for(l=0;l<o-a;l++)n.push("lg-item-"+this.lgId+"-"+(t+l+1))}else{for(l=t;l<=this.galleryItems.length-1&&l<t+o/2;l++)n.push("lg-item-"+this.lgId+"-"+l);for(a=n.length,l=0;l<o-a;l++)n.push("lg-item-"+this.lgId+"-"+(t-l-1))}return this.settings.loop&&(t===this.galleryItems.length-1?n.push("lg-item-"+this.lgId+"-0"):0===t&&n.push("lg-item-"+this.lgId+"-"+(this.galleryItems.length-1))),-1===n.indexOf(r)&&n.push("lg-item-"+this.lgId+"-"+e),n},w.prototype.organizeSlideItems=function(t,e){var i=this,s=this.getItemsToBeInsertedToDom(t,e,this.settings.numberOfSlideItemsInDom);return s.forEach((function(t){-1===i.currentItemsInDom.indexOf(t)&&i.$inner.append('<div id="'+t+'" class="lg-item"></div>')})),this.currentItemsInDom.forEach((function(t){-1===s.indexOf(t)&&x("#"+t).remove()})),s},w.prototype.getPreviousSlideIndex=function(){var t=0;try{var e=this.outer.find(".lg-current").first().attr("id");t=parseInt(e.split("-")[3])||0}catch(e){t=0}return t},w.prototype.setDownloadValue=function(t){if(this.settings.download){var e=this.galleryItems[t];if(!1===e.downloadUrl||"false"===e.downloadUrl)this.outer.addClass("lg-hide-download");else{var i=this.getElementById("lg-download");this.outer.removeClass("lg-hide-download"),i.attr("href",e.downloadUrl||e.src),e.download&&i.attr("download",e.download)}}},w.prototype.makeSlideAnimation=function(t,e,i){var s=this;this.lGalleryOn&&i.addClass("lg-slide-progress"),setTimeout((function(){s.outer.addClass("lg-no-trans"),s.outer.find(".lg-item").removeClass("lg-prev-slide lg-next-slide"),"prev"===t?(e.addClass("lg-prev-slide"),i.addClass("lg-next-slide")):(e.addClass("lg-next-slide"),i.addClass("lg-prev-slide")),setTimeout((function(){s.outer.find(".lg-item").removeClass("lg-current"),e.addClass("lg-current"),s.outer.removeClass("lg-no-trans")}),50)}),this.lGalleryOn?this.settings.slideDelay:0)},w.prototype.slide=function(t,e,i,s){var n=this,o=this.getPreviousSlideIndex();if(this.currentItemsInDom=this.organizeSlideItems(t,o),!this.lGalleryOn||o!==t){var r=this.galleryItems.length;if(!this.lgBusy){this.settings.counter&&this.updateCurrentCounter(t);var l=this.getSlideItem(t),a=this.getSlideItem(o),d=this.galleryItems[t],c=d.__slideVideoInfo;if(this.outer.attr("data-lg-slide-type",this.getSlideType(d)),this.setDownloadValue(t),c){var u=this.mediaContainerPosition,m=u.top,p=u.bottom,f=T
vendor: 8,173 bytes, line 11037
11037(this.items[t],this.outer,m+p,c&&this.settings.videoMaxSize);this.resizeVideoSlide(t,f)}if(this.LGel.trigger(g,{prevIndex:o,index:t,fromTouch:!!e,fromThumb:!!i}),this.lgBusy=!0,clearTimeout(this.hideBarTimeout),this.arrowDisable(t),s||(t<o?s="prev":t>o&&(s="next")),e){this.outer.find(".lg-item").removeClass("lg-prev-slide lg-current lg-next-slide");var y=void 0,v=void 0;r>2?(y=t-1,v=t+1,(0===t&&o===r-1||t===r-1&&0===o)&&(v=0,y=r-1)):(y=0,v=1),"prev"===s?this.getSlideItem(v).addClass("lg-next-slide"):this.getSlideItem(y).addClass("lg-prev-slide"),l.addClass("lg-current")}else this.makeSlideAnimation(s,l,a);this.lGalleryOn?setTimeout((function(){n.loadContent(t,!0),".lg-item"!==n.settings.appendSubHtmlTo&&n.addHtml(t)}),this.settings.speed+50+(e?0:this.settings.slideDelay)):this.loadContent(t,!0),setTimeout((function(){n.lgBusy=!1,a.removeClass("lg-slide-progress"),n.LGel.trigger(h,{prevIndex:o,index:t,fromTouch:e,fromThumb:i})}),(this.lGalleryOn?this.settings.speed+100:100)+(e?0:this.settings.slideDelay))}this.index=t}},w.prototype.updateCurrentCounter=function(t){this.getElementById("lg-counter-current").html(t+1+"")},w.prototype.updateCounterTotal=function(){this.getElementById("lg-counter-all").html(this.galleryItems.length+"")},w.prototype.getSlideType=function(t){return t.__slideVideoInfo?"video":t.iframe?"iframe":"image"},w.prototype.touchMove=function(t,e,i){var s=e.pageX-t.pageX,n=e.pageY-t.pageY,o=!1;if(this.swipeDirection?o=!0:Math.abs(s)>15?(this.swipeDirection="horizontal",o=!0):Math.abs(n)>15&&(this.swipeDirection="vertical",o=!0),o){var r=this.getSlideItem(this.index);if("horizontal"===this.swipeDirection){null==i||i.preventDefault(),this.outer.addClass("lg-dragging"),this.setTranslate(r,s,0);var l=r.get().offsetWidth,a=15*l/100-Math.abs(10*s/100);this.setTranslate(this.outer.find(".lg-prev-slide").first(),-l+s-a,0),this.setTranslate(this.outer.find(".lg-next-slide").first(),l+s+a,0)}else if("vertical"===this.swipeDirection&&this.settings.swipeToClose){null==i||i.preventDefault(),this.$container.addClass("lg-dragging-vertical");var d=1-Math.abs(n)/window.innerHeight;this.$backdrop.css("opacity",d);var g=1-Math.abs(n)/(2*window.innerWidth);this.setTranslate(r,0,n,g,g),Math.abs(n)>100&&this.outer.addClass("lg-hide-items").removeClass("lg-components-open")}}},w.prototype.touchEnd=function(t,e,i){var s,n=this;"lg-slide"!==this.settings.mode&&this.outer.addClass("lg-slide"),setTimeout((function(){n.$container.removeClass("lg-dragging-vertical"),n.outer.removeClass("lg-dragging lg-hide-items").addClass("lg-components-open");var o=!0;if("horizontal"===n.swipeDirection){s=t.pageX-e.pageX;var r=Math.abs(t.pageX-e.pageX);s<0&&r>n.settings.swipeThreshold?(n.goToNextSlide(!0),o=!1):s>0&&r>n.settings.swipeThreshold&&(n.goToPrevSlide(!0),o=!1)}else if("vertical"===n.swipeDirection){if(s=Math.abs(t.pageY-e.pageY),n.settings.closable&&n.settings.swipeToClose&&s>100)return void n.closeGallery();n.$backdrop.css("opacity",1)}if(n.outer.find(".lg-item").removeAttr("style"),o&&Math.abs(t.pageX-e.pageX)<5){var l=x(i.target);n.isPosterElement(l)&&n.LGel.trigger(c)}n.swipeDirection=void 0})),setTimeout((function(){n.outer.hasClass("lg-dragging")||"lg-slide"===n.settings.mode||n.outer.removeClass("lg-slide")}),this.settings.speed+100)},w.prototype.enableSwipe=function(){var t=this,e={},i={},s=!1,n=!1;this.settings.enableSwipe&&(this.$inner.on("touchstart.lg",(function(i){t.dragOrSwipeEnabled=!0;var s=t.getSlideItem(t.index);!x(i.target).hasClass("lg-item")&&!s.get().contains(i.target)||t.outer.hasClass("lg-zoomed")||t.lgBusy||1!==i.touches.length||(n=!0,t.touchAction="swipe",t.manageSwipeClass(),e={pageX:i.touches[0].pageX,pageY:i.touches[0].pageY})})),this.$inner.on("touchmove.lg",(function(o){n&&"swipe"===t.touchAction&&1===o.touches.length&&(i={pageX:o.touches[0].pageX,pageY:o.touches[0].pageY},t.touchMove(e,i,o),s=!0)})),this.$inner.on("touchend.lg",(function(o){if("swipe"===t.touchAction){if(s)s=!1,t.touchEnd(i,e,o);else if(n){var r=x(o.target);t.isPosterElement(r)&&t.LGel.trigger(c)}t.touchAction=void 0,n=!1}})))},w.prototype.enableDrag=function(){var t=this,e={},i={},s=!1,n=!1;this.settings.enableDrag&&(this.outer.on("mousedown.lg",(function(i){t.dragOrSwipeEnabled=!0;var n=t.getSlideItem(t.index);(x(i.target).hasClass("lg-item")||n.get().contains(i.target))&&(t.outer.hasClass("lg-zoomed")||t.lgBusy||(i.preventDefault(),t.lgBusy||(t.manageSwipeClass(),e={pageX:i.pageX,pageY:i.pageY},s=!0,t.outer.get().scrollLeft+=1,t.outer.get().scrollLeft-=1,t.outer.removeClass("lg-grab").addClass("lg-grabbing"),t.LGel.trigger(u))))})),x(window).on("mousemove.lg.global"+this.lgId,(function(o){s&&t.lgOpened&&(n=!0,i={pageX:o.pageX,pageY:o.pageY},t.touchMove(e,i),t.LGel.trigger(m))})),x(window).on("mouseup.lg.global"+this.lgId,(function(o){if(t.lgOpened){var r=x(o.target);n?(n=!1,t.touchEnd(i,e,o),t.LGel.trigger(p)):t.isPosterElement(r)&&t.LGel.trigger(c),s&&(s=!1,t.outer.removeClass("lg-grabbing").addClass("lg-grab"))}})))},w.prototype.triggerPosterClick=function(){var t=this;this.$inner.on("click.lg",(function(e){!t.dragOrSwipeEnabled&&t.isPosterElement(x(e.target))&&t.LGel.trigger(c)}))},w.prototype.manageSwipeClass=function(){var t=this.index+1,e=this.index-1;this.settings.loop&&this.galleryItems.length>2&&(0===this.index?e=this.galleryItems.length-1:this.index===this.galleryItems.length-1&&(t=0)),this.outer.find(".lg-item").removeClass("lg-next-slide lg-prev-slide"),e>-1&&this.getSlideItem(e).addClass("lg-prev-slide"),this.getSlideItem(t).addClass("lg-next-slide")},w.prototype.goToNextSlide=function(t){var e=this,i=this.settings.loop;t&&this.galleryItems.length<3&&(i=!1),this.lgBusy||(this.index+1<this.galleryItems.length?(this.index++,this.LGel.trigger(f,{index:this.index}),this.slide(this.index,!!t,!1,"next")):i?(this.index=0,this.LGel.trigger(f,{index:this.index}),this.slide(this.index,!!t,!1,"next")):this.settings.slideEndAnimation&&!t&&(this.outer.addClass("lg-right-end"),setTimeout((function(){e.outer.removeClass("lg-right-end")}),400)))},w.prototype.goToPrevSlide=function(t){var e=this,i=this.settings.loop;t&&this.galleryItems.length<3&&(i=!1),this.lgBusy||(this.index>0?(this.index--,this.LGel.trigger(y,{index:this.index,fromTouch:t}),this.slide(this.index,!!t,!1,"prev")):i?(this.index=this.galleryItems.length-1,this.LGel.trigger(y,{index:this.index,fromTouch:t}),this.slide(this.index,!!t,!1,"prev")):this.settings.slideEndAnimation&&!t&&(this.outer.addClass("lg-left-end"),setTimeout((function(){e.outer.removeClass("lg-left-end")}),400)))},w.prototype.keyPress=function(){var t=this;x(window).on("keydown.lg.global"+this.lgId,(function(e){t.lgOpened&&!0===t.settings.escKey&&27===e.keyCode&&(e.preventDefault(),t.settings.allowMediaOverlap&&t.outer.hasClass("lg-can-toggle")&&t.outer.hasClass("lg-components-open")?t.outer.removeClass("lg-components-open"):t.closeGallery()),t.lgOpened&&t.galleryItems.length>1&&(37===e.keyCode&&(e.preventDefault(),t.goToPrevSlide()),39===e.keyCode&&(e.preventDefault(),t.goToNextSlide()))}))},w.prototype.arrow=function(){var t=this;this.getElementById("lg-prev").on("click.lg",(function(){t.goToPrevSlide()})),this.getElementById("lg-next").on("click.lg",(function(){t.goToNextSlide()}))},w.prototype.arrowDisable=function(t){if(!this.settings.loop&&this.settings.hideControlOnEnd){var e=this.getElementById("lg-prev"),i=this.getElementById("lg-next");t+1===this.galleryItems.length?i.attr("disabled","disabled").addClass("disabled"):i.removeAttr("disabled").removeClass("disabled"),0===t?e.attr("disabled","disabled").addClass("disabled"):e.removeAttr("disabled").removeClass("disabled")}},w.prototype.setTranslate=function(t,e,i,s,n){void 0===s&&(s=1),void 0===n&&(n=1),t.css("transform","translate3d("+e+"px, "+i+"px, 0px) scale3d("+s+", "+n+", 1)")},w.prototype.mousewheel=function(){var t=this,e=0;this.outer.on("wheel.lg",(function(i){if(i.deltaY&&!(t.galleryItems.length<2)){i.preventDefault();var s=(new Date).getTime();s-e<1e3||(e=s,i.deltaY>0?t.goToNextSlide():i.deltaY<0&&t.goToPrevSlide())}}))},w.prototype.isSlideElement=function(t){return t.hasClass("lg-outer")||t.hasClass("lg-item")||t.hasClass("lg-img-wrap")
vendor: 4,280 bytes, line 11037
11037},w.prototype.isPosterElement=function(t){var e=this.getSlideItem(this.index).find(".lg-video-play-button").get();return t.hasClass("lg-video-poster")||t.hasClass("lg-video-play-button")||e&&e.contains(t.get())},w.prototype.toggleMaximize=function(){var t=this;this.getElementById("lg-maximize").on("click.lg",(function(){t.$container.toggleClass("lg-inline"),t.refreshOnResize()}))},w.prototype.invalidateItems=function(){for(var t=0;t<this.items.length;t++){var e=x(this.items[t]);e.off("click.lgcustom-item-"+e.attr("data-lg-id"))}},w.prototype.trapFocus=function(){var t=this;this.$container.get().focus({preventScroll:!0}),x(window).on("keydown.lg.global"+this.lgId,(function(e){if(t.lgOpened&&("Tab"===e.key||9===e.keyCode)){var i=G(t.$container.get()),s=i[0],n=i[i.length-1];e.shiftKey?document.activeElement===s&&(n.focus(),e.preventDefault()):document.activeElement===n&&(s.focus(),e.preventDefault())}}))},w.prototype.manageCloseGallery=function(){var t=this;if(this.settings.closable){var e=!1;this.getElementById("lg-close").on("click.lg",(function(){t.closeGallery()})),this.settings.closeOnTap&&(this.outer.on("mousedown.lg",(function(i){var s=x(i.target);e=!!t.isSlideElement(s)})),this.outer.on("mousemove.lg",(function(){e=!1})),this.outer.on("mouseup.lg",(function(i){var s=x(i.target);t.isSlideElement(s)&&e&&(t.outer.hasClass("lg-dragging")||t.closeGallery())})))}},w.prototype.closeGallery=function(t){var e=this;if(!this.lgOpened||!this.settings.closable&&!t)return 0;this.LGel.trigger(v),this.settings.resetScrollPosition&&!this.settings.hideScrollbar&&x(window).scrollTop(this.prevScrollTop);var i,s=this.items[this.index];if(this.zoomFromOrigin&&s){var n=this.mediaContainerPosition,o=n.top,r=n.bottom,l=this.galleryItems[this.index],a=l.__slideVideoInfo,d=l.poster,g=T(s,this.outer,o+r,a&&d&&this.settings.videoMaxSize);i=E(s,this.outer,o,r,g)}this.zoomFromOrigin&&i?(this.outer.addClass("lg-closing lg-zoom-from-image"),this.getSlideItem(this.index).addClass("lg-start-end-progress").css("transition-duration",this.settings.startAnimationDuration+"ms").css("transform",i)):(this.outer.addClass("lg-hide-items"),this.outer.removeClass("lg-zoom-from-image")),this.destroyModules(),this.lGalleryOn=!1,this.isDummyImageRemoved=!1,this.zoomFromOrigin=this.settings.zoomFromOrigin,clearTimeout(this.hideBarTimeout),this.hideBarTimeout=!1,x("html").removeClass("lg-on"),this.outer.removeClass("lg-visible lg-components-open"),this.$backdrop.removeClass("in").css("opacity",0);var h=this.zoomFromOrigin&&i?Math.max(this.settings.startAnimationDuration,this.settings.backdropDuration):this.settings.backdropDuration;return this.$container.removeClass("lg-show-in"),setTimeout((function(){e.zoomFromOrigin&&i&&e.outer.removeClass("lg-zoom-from-image"),e.$container.removeClass("lg-show"),e.resetScrollBar(),e.$backdrop.removeAttr("style").css("transition-duration",e.settings.backdropDuration+"ms"),e.outer.removeClass("lg-closing "+e.settings.startClass),e.getSlideItem(e.index).removeClass("lg-start-end-progress"),e.$inner.empty(),e.lgOpened&&e.LGel.trigger(b,{instance:e}),e.$container.get()&&e.$container.get().blur(),e.lgOpened=!1}),h+100),h+100},w.prototype.initModules=function(){this.plugins.forEach((function(t){try{t.init()}catch(t){console.warn("lightGallery:- make sure lightGallery module is properly initiated")}}))},w.prototype.destroyModules=function(t){this.plugins.forEach((function(e){try{t?e.destroy():e.closeGallery&&e.closeGallery()}catch(t){console.warn("lightGallery:- make sure lightGallery module is properly destroyed")}}))},w.prototype.refresh=function(t){this.settings.dynamic||this.invalidateItems(),this.galleryItems=t||this.getItems(),this.updateControls(),this.openGalleryOnItemClick(),this.LGel.trigger(o)},w.prototype.updateControls=function(){this.addSlideVideoInfo(this.galleryItems),this.updateCounterTotal(),this.manageSingleSlideClassName()},w.prototype.destroyGallery=function(){this.destroyModules(!0),this.settings.dynamic||this.invalidateItems(),x(window).off(".lg.global"+this.lgId),this.LGel.off(".lg"),this.$container.remove()},w.prototype.destroy=function(){var t=this.closeGallery(!0);return t?setTimeout(this.destroyGallery.bind(this),t):this.destroyGallery(),t},w}();return function(t,e){return new F(t,e)}}));
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.