PageSourceSearch

https://xcmg-ru.ru/local/templates/xcmg2024/js/app-project-base.js?998811728

js xcmg-ru.ru collected 2026-09-25 06:33:19 UTC 474,485 bytes, 11,037 lines download raw bytes

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}&times;`;
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.